mirror of
https://github.com/systemd/systemd
synced 2024-07-21 10:17:21 +00:00
Merge pull request #33264 from bluca/mkosi_dlopen_install
mkosi: install dlopen optional dependencies for debian/ubuntu builds
This commit is contained in:
commit
4800968bb2
2
.github/workflows/mkosi.yml
vendored
2
.github/workflows/mkosi.yml
vendored
|
@ -92,7 +92,7 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
|
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
|
||||||
- uses: systemd/mkosi@1cc81fb92ef0bb1ef7d51ac1e76327614d41ed74
|
- uses: systemd/mkosi@0081ea66faf56a35353d6aeadfe42f9679c7d1cf
|
||||||
|
|
||||||
# Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space
|
# Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space
|
||||||
# immediately, we remove the files in the background. However, we first move them to a different location
|
# immediately, we remove the files in the background. However, we first move them to a different location
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
|
||||||
|
[Match]
|
||||||
|
Environment=NO_BUILD=1
|
||||||
|
|
||||||
|
[Content]
|
||||||
|
WithNetwork=yes
|
29
mkosi.images/system/mkosi.conf.d/10-debian-ubuntu/mkosi.postinst
Executable file
29
mkosi.images/system/mkosi.conf.d/10-debian-ubuntu/mkosi.postinst
Executable file
|
@ -0,0 +1,29 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# By default Suggests are not installed (and often Recommends are disabled too), which means we will miss
|
||||||
|
# the dlopen optional dependencies, but the tests need them, so parse them from the package metadata and
|
||||||
|
# install them. This is not an issue when building locally, as the build and runtime images are the same,
|
||||||
|
# so they would get installed as build dependencies anyway.
|
||||||
|
|
||||||
|
if [ "$1" = "build" ] || ! ((NO_BUILD)); then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Query the Recommends and Suggests of all systemd packages, by matching on the version
|
||||||
|
systemd_version="$(dpkg-query --showformat '${Version}' --show systemd)"
|
||||||
|
mapfile -t systemd_packages < <( dpkg --list | grep '^ii' | grep "$systemd_version" | awk '{print $2}' | tr '\n' ' ' )
|
||||||
|
extra_packages=()
|
||||||
|
# shellcheck disable=SC2068
|
||||||
|
for package in ${systemd_packages[@]}; do
|
||||||
|
# We are looking for dlopens, so filter for libraries
|
||||||
|
mapfile -t -O "${#extra_packages[@]}" extra_packages < <(dpkg-query --showformat '${Suggests}' --show "$package" | sed -e "s/, /\n/g" -e "s/|.*//" | grep "lib")
|
||||||
|
mapfile -t -O "${#extra_packages[@]}" extra_packages < <(dpkg-query --showformat '${Recommends}' --show "$package" | sed -e "s/, /\n/g" -e "s/|.*//" | grep "lib")
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "${#extra_packages[@]}" -eq 0 ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt install "${extra_packages[@]}"
|
Loading…
Reference in a new issue