mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
mkosi: Make systemd package filtering more robust
Let's not just filter everything with systemd in the name, but instead
use the same list of volatile packages that we install to do the
filtering.
(cherry picked from commit 70ecdbfa23
)
This commit is contained in:
parent
65d59fbd1c
commit
e6feb4fa90
@ -6,9 +6,11 @@ if [[ "$1" == "build" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mapfile -t PACKAGES < <(jq --raw-output .VolatilePackages[] <"$MKOSI_CONFIG")
|
||||
|
||||
DEPS=""
|
||||
|
||||
while read -r PACKAGE; do
|
||||
for PACKAGE in "${PACKAGES[@]}"; do
|
||||
DEPS="$DEPS $(
|
||||
pacman --sync --info "$PACKAGE" |
|
||||
sed '1,/^$/d' | # Only keep result from first repository (delete everything after first blank line).
|
||||
@ -23,11 +25,11 @@ while read -r PACKAGE; do
|
||||
sed 's/ *\(.*\):.*/\1/' | # Drop descriptions (everything after first colon for all lines).
|
||||
tr '\n' ' ' # Transform newlines to whitespace.
|
||||
)"
|
||||
done < <(jq --raw-output .VolatilePackages[] <"$MKOSI_CONFIG")
|
||||
done
|
||||
|
||||
echo "$DEPS" |
|
||||
xargs | # Remove extra whitespace.
|
||||
tr ' ' '\n' |
|
||||
grep --invert-match --regexp systemd --regexp None | # systemd packages will be installed later on.
|
||||
grep --extended-regexp --invert-match --regexp "$(IFS=\| ; echo "${PACKAGES[*]}")" --regexp None | # systemd packages will be installed later on.
|
||||
sort --unique |
|
||||
xargs --delimiter '\n' --no-run-if-empty mkosi-install
|
||||
|
@ -13,7 +13,7 @@ for DEPS in --requires --recommends --suggests; do
|
||||
# --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.
|
||||
dnf repoquery --arch="$DISTRIBUTION_ARCHITECTURE,noarch" --latest-limit=1 --quiet "$DEPS" "${PACKAGES[@]}" |
|
||||
grep --invert-match --regexp systemd --regexp udev --regexp /bin/sh --regexp grubby --regexp sdubby --regexp libcurl-minimal |
|
||||
grep --extended-regexp --invert-match --regexp "$(IFS=\| ; echo "${PACKAGES[*]}")" --regexp /bin/sh --regexp grubby --regexp sdubby --regexp libcurl-minimal |
|
||||
sort --unique |
|
||||
xargs --delimiter '\n' --no-run-if-empty mkosi-install
|
||||
done
|
||||
|
@ -9,7 +9,8 @@ fi
|
||||
mapfile -t PACKAGES < <(jq --raw-output .VolatilePackages[] <"$MKOSI_CONFIG")
|
||||
|
||||
apt-cache depends "${PACKAGES[@]}" |
|
||||
grep --invert-match --regexp "<" --regexp "|" --regexp systemd | # Remove e.g. <python3:any> and |dbus-broker like results
|
||||
grep --invert-match --regexp "<" --regexp "|" | # Remove e.g. <python3:any> and |dbus-broker like results
|
||||
grep --extended-regexp --invert-match --regexp "$(IFS=\| ; echo "${PACKAGES[*]}")" |
|
||||
grep --extended-regexp "Depends|Suggests|Recommends" |
|
||||
sed --quiet 's/.*: //p' | # Get every line with ": " in it and strip it at the same time.
|
||||
sort --unique |
|
||||
|
@ -6,18 +6,20 @@ if [[ "$1" == "build" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mapfile -t PACKAGES < <(jq --raw-output .VolatilePackages[] <"$MKOSI_CONFIG")
|
||||
|
||||
DEPS=""
|
||||
|
||||
while read -r PACKAGE; do
|
||||
for PACKAGE in "${PACKAGES[@]}"; do
|
||||
# zypper's output is not machine readable so we make do with sed instead.
|
||||
DEPS="$DEPS\n$(
|
||||
zypper info --requires --recommends --suggests "$PACKAGE" |
|
||||
sed '/Requires/,$!d' | # Remove everything before Requires line
|
||||
sed --quiet 's/^ //p' # All indented lines have dependencies
|
||||
)"
|
||||
done < <(jq --raw-output .VolatilePackages[] <"$MKOSI_CONFIG")
|
||||
done
|
||||
|
||||
echo -e "$DEPS" |
|
||||
grep --invert-match --regexp systemd --regexp udev --regexp qemu |
|
||||
grep --extended-regexp --invert-match --regexp "$(IFS=\| ; echo "${PACKAGES[*]}")" --regexp qemu |
|
||||
sort --unique |
|
||||
xargs --delimiter '\n' --no-run-if-empty mkosi-install
|
||||
|
Loading…
Reference in New Issue
Block a user