summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2019-11-08 15:34:14 +0100
committerJonathan Bauer2019-11-08 15:34:14 +0100
commitac823e0e7c59f3697b487ea414130912c77106b2 (patch)
treeec52bba266b9358c84e52ec37cda7abb45839116
parent[slx-network] only replace route for same interface (diff)
downloadsystemd-init-ac823e0e7c59f3697b487ea414130912c77106b2.tar.gz
systemd-init-ac823e0e7c59f3697b487ea414130912c77106b2.tar.xz
systemd-init-ac823e0e7c59f3697b487ea414130912c77106b2.zip
[slx-addon] support for pre-gen. ld.so.cache
-rwxr-xr-xbuilder/modules.d/slx-addons/module-setup.sh4
-rw-r--r--builder/modules.d/slx-addons/scripts/setup-addons.sh19
-rw-r--r--builder/modules.d/slx-addons/services/ldconfig.service (renamed from builder/modules.d/slx-addons/services/post-addon-ldconfig.service)3
3 files changed, 20 insertions, 6 deletions
diff --git a/builder/modules.d/slx-addons/module-setup.sh b/builder/modules.d/slx-addons/module-setup.sh
index 52278731..d75b38ad 100755
--- a/builder/modules.d/slx-addons/module-setup.sh
+++ b/builder/modules.d/slx-addons/module-setup.sh
@@ -9,6 +9,6 @@ depends() {
}
install() {
inst_hook pre-pivot 30 "$moddir/scripts/setup-addons.sh"
- inst "${moddir}/services/post-addon-ldconfig.service" \
- "/opt/openslx/services/post-addon-ldconfig.service"
+ inst "${moddir}/services/ldconfig.service" \
+ "/opt/openslx/services/ldconfig.service"
}
diff --git a/builder/modules.d/slx-addons/scripts/setup-addons.sh b/builder/modules.d/slx-addons/scripts/setup-addons.sh
index ed12d6c7..1fff2810 100644
--- a/builder/modules.d/slx-addons/scripts/setup-addons.sh
+++ b/builder/modules.d/slx-addons/scripts/setup-addons.sh
@@ -36,8 +36,8 @@ fi
# This just activates the ldconfig service to run during the sysinit target
# Since addons are likely to install libs, this is necessary to garantee
# that the live system "sees" the libraries.
-prepare_ldconfig() {
- local service_path="/opt/openslx/services/post-addon-ldconfig.service"
+activate_stage4_ldconfig() {
+ local service_path="/opt/openslx/services/ldconfig.service"
[ -e "$service_path" ] || return 1
local target_dir="${NEWROOT}/etc/systemd/system/sysinit.target.wants"
mkdir -p "$target_dir"
@@ -77,11 +77,24 @@ setup_addon() {
cd - &>/dev/null
}
+active=()
for addon in "${NEWROOT}/opt/openslx/addons/"*; do
if setup_addon "$addon"; then
+ active+=("$addon")
info "Activated '$addon' (@ $(date +%s))"
- prepare_ldconfig
fi
done
+# if only one addon was installed, use its pre-generated ld.so.cache
+# if more than one were installed, make sure ldconfig is called in stage4
+if [ "${#active[@]}" -eq 1 ]; then
+ addon_cache="${NEWROOT}/opt/openslx/etc/${active[0]}.ld.so.cache"
+ if [ -e "$addon_cache" ]; then
+ mv -f -- "$addon_cache" "${NEWROOT}/etc/ld.so.cache"
+ exit 0
+ fi
+elif [ "${#active[@]}" -gt 1 ]; then
+ activate_stage4_ldconfig
+fi
+
:
diff --git a/builder/modules.d/slx-addons/services/post-addon-ldconfig.service b/builder/modules.d/slx-addons/services/ldconfig.service
index 18c6c4c3..b821f743 100644
--- a/builder/modules.d/slx-addons/services/post-addon-ldconfig.service
+++ b/builder/modules.d/slx-addons/services/ldconfig.service
@@ -1,6 +1,7 @@
[Unit]
-Description=Run ldconfig post-addon
+Description=Run ldconfig
Before=graphical.target
+DefaulltDependencies=no
[Service]
Type=oneshot