void-packages/srcpkgs/base-directories/INSTALL

87 lines
2 KiB
Text

make_system_dirs()
{
#
# Install FHS system directories.
#
for d in bin sbin boot etc etc/modprobe.d etc/skel \
home lib dev proc usr mnt opt sys var media run; do
[ ! -d ${d} ] && install -d ${d}
done
[ ! -d root ] && install -dm750 root
[ ! -d var/spool/mail ] && install -dm1777 var/spool/mail
for d in local local/bin local/sbin local/include local/lib \
bin include lib sbin src; do
[ ! -d usr/${d} ] && install -d usr/${d}
done
for d in locale misc terminfo zoneinfo doc info; do
[ ! -d usr/share/${d} ] && install -d usr/share/${d}
[ ! -d usr/local/share/${d} ] && install -d usr/local/share/${d}
done
for d in 1 2 3 4 5 6 7 8; do
[ ! -d usr/share/man/man${d} ] && \
install -d usr/share/man/man${d}
[ ! -d usr/local/share/man/man${d} ] && \
install -d usr/local/share/man/man${d}
done
[ ! -h usr/man ] && ln -sf /usr/share/man usr/man
[ ! -h usr/local/man ] && ln -sf /usr/share/man usr/local/man
for d in log run opt cache lib; do
[ ! -d var/${d} ] && install -d var/${d}
done
if [ "$(uname -m)" = "x86_64" ]; then
[ ! -h lib64 ] && ln -sf /lib lib64
[ ! -h usr/lib64 ] && ln -sf /usr/lib usr/lib64
fi
[ ! -d lib/rc ] && install -d lib/rc
for d in init.d udev; do
if [ ! -d run/${d} -a ! -h run/${d} ]; then
install -dm0755 run/${d}
fi
done
for d in lock tmp shm; do
if [ ! -d run/${d} -a ! -h run/${d} ]; then
install -dm1777 run/${d}
fi
done
}
case "${ACTION}" in
post)
make_system_dirs
# Create compat symlinks for /run.
mntpnts="tmp /run/tmp"
mntpnts="$mntpnts var/tmp /run/tmp"
mntpnts="$mntpnts var/run /run"
mntpnts="$mntpnts var/lock /run/lock"
mntpnts="$mntpnts lib/rc/init.d /run/init.d"
set -- ${mntpnts}
while [ $# -gt 0 ]; do
dir="$1"
dest="$2"
if [ -h "$dir" ]; then
if [ "$(readlink -f $dir)" != "$dest" ]; then
echo "WARNING: removing wrong symlink in /$dir..."
rm -f "$dir"
fi
elif [ -d "$dir" ]; then
echo "WARNING: removing directory /$dir..."
rm -rf "$dir"
fi
if [ ! -e "$dir" ]; then
ln -sf "$dest" "$dir"
fi
shift; shift;
done
;;
esac