28 lines
1.1 KiB
Bash
Executable File
28 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -e
|
|
|
|
if [[ "$1" == "build" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
mapfile -t PACKAGES < <(jq --raw-output .VolatilePackages[] <"$MKOSI_CONFIG")
|
|
|
|
DEP_TYPES=(--requires)
|
|
if ! ((SYSTEMD_REQUIRED_DEPS_ONLY)); then
|
|
DEP_TYPES+=(--recommends --suggests)
|
|
fi
|
|
|
|
for DEPS in "${DEP_TYPES[@]}"; do
|
|
# We need --latest-limit=1 to only consider the newest version of the packages.
|
|
# --latest-limit=1 is per <name>.<arch> so we have to pass --arch= explicitly to make sure i686 packages
|
|
# are not considered on x86-64.
|
|
# Because mkosi does not download the filelists repository metadata, we have to exclude all path based
|
|
# dependencies, (even those within /usr and /bin because of
|
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2263771).
|
|
dnf repoquery --arch="$DISTRIBUTION_ARCHITECTURE,noarch" --latest-limit=1 --quiet "$DEPS" "${PACKAGES[@]}" |
|
|
grep --extended-regexp --invert-match --regexp "$(IFS=\| ; echo "${PACKAGES[*]}")" --regexp /bin --regexp /usr --regexp grubby --regexp sdubby --regexp libcurl-minimal |
|
|
sort --unique |
|
|
xargs --delimiter '\n' --no-run-if-empty mkosi-install
|
|
done
|