29 lines
868 B
Bash
29 lines
868 B
Bash
#!/bin/sh
|
|||
|
|
# Deregister the identity shim from /etc/ld.so.preload before its files are removed
|
||
|
|
# (NAROS.md §2.3), so the loader never names a library that is no longer on disk.
|
||
|
|
#
|
||
|
|
# Runs on remove/deconfigure only: on `upgrade` the entry must persist, since the
|
||
|
|
# replacement .so lands at the same path and the new postinst is a no-op.
|
||
|
|
set -e
|
||
|
|
|
||
|
|
LIB=/usr/lib/naros/libnaros-uname.so
|
||
|
|
PRELOAD=/etc/ld.so.preload
|
||
|
|
TMP="$PRELOAD.naros-tmp"
|
||
|
|
|
||
|
|
case "$1" in
|
||
|
|
remove | deconfigure)
|
||
|
|
[ -f "$PRELOAD" ] || exit 0
|
||
|
|
# grep exits 1 when nothing survives the filter; that is the empty case, not an error.
|
||
|
|
grep -vxF "$LIB" "$PRELOAD" > "$TMP" || true
|
||
|
|
if [ -s "$TMP" ]; then
|
||
|
|
chmod 0644 "$TMP"
|
||
|
|
mv "$TMP" "$PRELOAD"
|
||
|
|
else
|
||
|
|
# An empty ld.so.preload is legal but pointless — drop the file entirely.
|
||
|
|
rm -f "$TMP" "$PRELOAD"
|
||
|
|
fi
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
exit 0
|