diff options
author | Jonathan Bauer | 2019-11-08 15:34:14 +0100 |
---|---|---|
committer | Jonathan Bauer | 2019-11-08 15:34:14 +0100 |
commit | ac823e0e7c59f3697b487ea414130912c77106b2 (patch) | |
tree | ec52bba266b9358c84e52ec37cda7abb45839116 /builder/modules.d/slx-addons | |
parent | [slx-network] only replace route for same interface (diff) | |
download | systemd-init-ac823e0e7c59f3697b487ea414130912c77106b2.tar.gz systemd-init-ac823e0e7c59f3697b487ea414130912c77106b2.tar.xz systemd-init-ac823e0e7c59f3697b487ea414130912c77106b2.zip |
[slx-addon] support for pre-gen. ld.so.cache
Diffstat (limited to 'builder/modules.d/slx-addons')
-rwxr-xr-x | builder/modules.d/slx-addons/module-setup.sh | 4 | ||||
-rw-r--r-- | builder/modules.d/slx-addons/scripts/setup-addons.sh | 19 | ||||
-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 |