mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 21:42:40 +07:00
The bus can already answer questions and change services, so give initctl the two things it still did another way: watching signals as they happen, and getting or setting user conditions. The dbus tests move with it, split by area rather than one file that grew every time the library did. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
61 lines
2.4 KiB
Bash
Executable File
61 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
echo "=== Finit Test Sysroot Setup ==="
|
|
echo "Date: $(date)"
|
|
echo "SYSROOT: $SYSROOT"
|
|
echo "top_builddir: $top_builddir"
|
|
echo "srcdir: $srcdir"
|
|
echo "================================"
|
|
echo
|
|
|
|
# shellcheck disable=SC2154
|
|
make -C "$top_builddir" DESTDIR="$SYSROOT" install
|
|
|
|
mkdir -p "$SYSROOT/sbin/"
|
|
cp "$top_builddir/test/src/serv" "$SYSROOT/sbin/"
|
|
# Prefer the real ELF in .libs/ over the libtool wrapper script --
|
|
# since the test client links libink.la, libtool wraps the top-level
|
|
# dbus-auth-client as a shell script that re-execs the real binary
|
|
# via its own RPATH, which falls apart inside the test namespace.
|
|
if [ -x "$top_builddir/test/src/.libs/dbus-auth-client" ]; then
|
|
cp "$top_builddir/test/src/.libs/dbus-auth-client" "$SYSROOT/sbin/"
|
|
elif [ -x "$top_builddir/test/src/dbus-auth-client" ]; then
|
|
cp "$top_builddir/test/src/dbus-auth-client" "$SYSROOT/sbin/"
|
|
fi
|
|
|
|
# shellcheck disable=SC2154
|
|
# Prefer the real ELF in .libs/ over the libtool wrapper script at
|
|
# $top_builddir/src/finit. Libtool generates a shell wrapper when
|
|
# the binary depends on an in-tree convenience library (e.g. libink),
|
|
# and `ldd <wrapper>` returns "not a dynamic executable", which
|
|
# silently makes sysroot.mk copy zero host libs into the sysroot.
|
|
if [ -f "$top_builddir/src/.libs/finit" ]; then
|
|
finitbin_for_ldd="$(pwd)/$top_builddir/src/.libs/finit"
|
|
else
|
|
finitbin_for_ldd="$(pwd)/$top_builddir/src/finit"
|
|
fi
|
|
FINITBIN="$finitbin_for_ldd" DEST="$SYSROOT" make -f "$srcdir/lib/sysroot.mk"
|
|
|
|
# Drop plugins we don't need in test, only causes confusing FAIL in logs.
|
|
for plugin in tty.so urandom.so rtc.so modprobe.so; do
|
|
find "$SYSROOT" -name $plugin -delete
|
|
done
|
|
|
|
# Drop system .conf files we don't need in test, same as above
|
|
# shellcheck disable=SC2043
|
|
for conf in 10-hotplug.conf; do
|
|
find "$SYSROOT" -name $conf -delete
|
|
done
|
|
|
|
# Update dynamic linker cache for /usr/local/lib libraries
|
|
echo "Running ldconfig in sysroot: $SYSROOT"
|
|
echo "Contents of $SYSROOT/etc/ld.so.conf:"
|
|
cat "$SYSROOT/etc/ld.so.conf" || echo "Warning: ld.so.conf not found"
|
|
echo "Libraries in $SYSROOT/usr/local/lib:"
|
|
ls -la "$SYSROOT/usr/local/lib/" 2>/dev/null || echo "Warning: /usr/local/lib not found in sysroot"
|
|
ldconfig -v -r "$SYSROOT" || echo "Warning: ldconfig failed with exit code $?"
|
|
echo "Verifying ldconfig cache was created:"
|
|
ls -la "$SYSROOT/etc/ld.so.cache" || echo "Warning: ld.so.cache not created"
|