Splux Linux

source-based Linux using SPS

SPS · log · files · refs · tags · releases · people · languages · GitHub · commit

3ef762e


mkiso: copy Qt/KF libraries without per-file ldd

Date
Commit3ef762ef4e20d98f81f0c0c64b32c6e4eb33cfe1
GitHubmirror

Parents

Stat

 bin/mkiso           | 7 +++++--
 tests/test_mkiso.sh | 2 ++
 2 files changed, 7 insertions(+), 2 deletions(-)

Diff

diff --git a/bin/mkiso b/bin/mkiso
index cc6c7cf..87a7e7e 100755
--- a/bin/mkiso
+++ b/bin/mkiso
@@ -479,7 +479,11 @@ mkiso_copy_plasma()
 			mkiso_copy_path "$mkiso_tree"
 		done <"$mkiso_libdir/plasma-trees"
 	fi
-	# Shared objects the session links by soname, not by a binary's ldd.
+	# Shared objects the session links by soname. Copy the files; do not
+	# ldd each one (this host has hundreds of Qt/KF libraries, and that
+	# is what made plasma ISO creation look hung after the tree copies).
+	# plasma-bins and close_libs still pull DT_NEEDED closures.
+	printf '%s: copying Qt/KF shared libraries\n' "$sps_prog" >&2
 	for mkiso_pat in /usr/lib64/libQt6*.so* /usr/lib64/libKF6*.so* \
 		/usr/lib64/libplasma*.so* /usr/lib64/libkwin*.so* \
 		/usr/lib64/libwayland*.so* /usr/lib64/libGLESv2.so* \
@@ -488,7 +492,6 @@ mkiso_copy_plasma()
 		for mkiso_so in $mkiso_pat; do
 			[ -e "$mkiso_so" ] || continue
 			mkiso_copy_path "$mkiso_so"
-			mkiso_copy_libs "$mkiso_so"
 		done
 	done
 }
diff --git a/tests/test_mkiso.sh b/tests/test_mkiso.sh
index 165986b..629344d 100755
--- a/tests/test_mkiso.sh
+++ b/tests/test_mkiso.sh
@@ -95,6 +95,8 @@ grep -q C.UTF-8 "$layout/etc/sps/live-plasma" ||
 grep -q -- '-comp zstd' "$mkiso" || fail 'mkiso must write a zstd squashfs'
 grep -q -- '-Xcompression-level 3' "$mkiso" ||
 	fail 'mkiso squashfs compression should stay fast to build'
+grep -q 'Qt/KF shared libraries' "$mkiso" ||
+	fail 'plasma ISO must copy Qt/KF libraries without per-file ldd'
 grep -q 'found live image' "$project_dir/lib/mkiso/initrd-init" ||
 	fail 'initrd must say when the ISO is found'
 grep -q 'mounting live filesystem' "$project_dir/lib/mkiso/initrd-init" ||