# arg 1: the new package version # arg 2: the old package version post_upgrade() { if [ "$(vercmp $2 100)" -lt 0 ]; then echo "ATTENTION UDEV:" echo "----------" echo "udev >=098 rules syntax has changed, please update your own rules." echo "udev >=099 Added persistent network and CD/DVD Symlink generator rules." echo "Please read the instructions carefully before reboot." echo "They are located in /etc/udev/readme-udev-arch.txt" echo "----------" fi if [ "$(vercmp $2 169)" -lt 0 ]; then echo "ATTENTION UDEV:" echo "---------------" echo "Kernel 2.6.32 or newer is now required." echo "OSS emulation modules are not loaded by default, add to rc.conf if needed." echo "Arch specific cd symlinks are now no longer created." echo "cd and net persistent rules will no longer be autogenerated," echo "see for details." echo "Errors are now logged (possibly to the console) by default." echo "---------------" fi } post_install() { # If a ramfs is mounted, we still need to make sure that /dev/{console,null,zero} exist # The Archlinux installer bind-mounts /dev to /mnt/dev, thus making the real /dev invisible ROOTDIR="" [ "$(stat -c %D /)" != "$(stat -c %D /dev)" ] && ROOTDIR=$(mktemp -d /tmp/udevinstall.XXXXXX) [ -n "${ROOTDIR}" ] && mount --bind / ${ROOTDIR} if [ ! -c ${ROOTDIR}/dev/console ]; then rm -f ${ROOTDIR}/dev/console mknod -m600 ${ROOTDIR}/dev/console c 5 1 fi if [ ! -c ${ROOTDIR}/dev/null ]; then rm -f ${ROOTDIR}/dev/null mknod -m644 ${ROOTDIR}/dev/null c 1 3 fi if [ ! -c ${ROOTDIR}/dev/zero ]; then rm -f ${ROOTDIR}/dev/zero mknod -m644 ${ROOTDIR}/dev/zero c 1 5 fi if [ -n "${ROOTDIR}" ]; then umount ${ROOTDIR} rmdir ${ROOTDIR} fi }