mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-04-19 05:36:38 +02:00
37 lines
1.4 KiB
Text
37 lines
1.4 KiB
Text
#!/bin/busybox sh
|
|
|
|
# remove links that has been relocated or removed
|
|
# - generate a list of all symlinks in bin dirs and a list with all busybox
|
|
# applets
|
|
# - sort the list and print all lines that are unique. This is the list of
|
|
# symlinks that does not exist in the busybox applets list.
|
|
# - use stat to find the target of those symlinks printed as:
|
|
# '/path/to/symlink' -> '/path/to/target'
|
|
# The "2>/dev/null" is used to stop "can't stat" warnings appearing on
|
|
# the console for each new command added by the new version of the
|
|
# busybox package.
|
|
# - use awk to print the symlinks that points to '/bin/busybox'
|
|
# - use sed to strip the leading and training ' chars
|
|
# - finally pass the list to rm for removing the symlinks that points to
|
|
# busybox but does not exist in the `busybox --list-all` list
|
|
{ find bin sbin usr/bin usr/sbin -maxdepth 1 -type l; busybox --list-all; } \
|
|
| sort | uniq -u \
|
|
| xargs -r stat -c "%N" 2>/dev/null \
|
|
| awk "\$3 == \"'/bin/busybox'\" {print \$1}" \
|
|
| sed "s/^'//; s/'$//" \
|
|
| xargs -r rm
|
|
|
|
for link in /bin/ping /bin/ping6; do
|
|
if [ -L "$link" ] && [ "$(readlink $link)" = "/bin/bbsuid" ]; then
|
|
rm "$link"
|
|
fi
|
|
done
|
|
|
|
# We need the symlinks early
|
|
/bin/busybox --install -s || exit 1
|
|
|
|
# can't be in pre-upgrade since adduser/group may not available then
|
|
addgroup -S klogd 2>/dev/null
|
|
adduser -S -D -H -h /dev/null -s /sbin/nologin -G klogd -g klogd klogd 2>/dev/null
|
|
|
|
exit 0
|