ohhhhhhhhhhh (exclude linux-extra-rootfs.img build artifact)
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
set -uo pipefail
|
||||
IMG=/home/deshab/deshab-dev.img
|
||||
killall qemu-system-x86_64 2>/dev/null || true
|
||||
LOOP=$(losetup --find --show --partscan "$IMG")
|
||||
sleep 0.3
|
||||
M=$(mktemp -d)
|
||||
mount -o ro "${LOOP}p1" "$M"
|
||||
EXTRA="$M/boot/linux-extra-rootfs.img"
|
||||
W=/tmp/plasma-deps
|
||||
mkdir -p "$W"
|
||||
debugfs -R "dump /usr/lib/libpam.so.0.85.1 $W/pam" "$EXTRA" >/dev/null
|
||||
debugfs -R "dump /usr/lib/libpam_misc.so.0.82.1 $W/pammisc" "$EXTRA" >/dev/null
|
||||
echo "===== pam NEEDED ====="
|
||||
readelf -d "$W/pam" "$W/pammisc" | grep NEEDED || true
|
||||
magic_of() {
|
||||
local path="$1"
|
||||
local dest sz mag
|
||||
dest=$(debugfs -R "stat $path" "$EXTRA" 2>/dev/null | sed -n 's/.*Fast link dest: "//p' | tr -d '"')
|
||||
if [[ -n "$dest" ]]; then
|
||||
[[ "$dest" != /* ]] && dest="$(dirname "$path")/$dest"
|
||||
path="$dest"
|
||||
fi
|
||||
sz=$(debugfs -R "stat $path" "$EXTRA" 2>/dev/null | sed -n 's/.*Size: *//p' | awk '{print $1; exit}')
|
||||
mag=$(debugfs -R "cat $path" "$EXTRA" 2>/dev/null | head -c 4 | od -An -tx1 | tr -s ' ')
|
||||
echo "$path size=${sz:-?} magic=$mag"
|
||||
}
|
||||
while read -r name; do
|
||||
[[ -n "$name" ]] || continue
|
||||
magic_of "/usr/lib/$name"
|
||||
done < <(readelf -d "$W/pam" "$W/pammisc" | sed -n 's/.*Shared library: \[\(.*\)\]/\1/p' | sort -u)
|
||||
umount "$M"
|
||||
losetup -d "$LOOP"
|
||||
rmdir "$M"
|
||||
echo DONE
|
||||
Reference in New Issue
Block a user