diff options
Diffstat (limited to 'abs/core/udev/udev.install')
-rw-r--r-- | abs/core/udev/udev.install | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/abs/core/udev/udev.install b/abs/core/udev/udev.install index 19d3546..bb8b166 100644 --- a/abs/core/udev/udev.install +++ b/abs/core/udev/udev.install @@ -1,9 +1,4 @@ # arg 1: the new package version -post_install() { - sbin/migrate-udev `pwd` -} - -# arg 1: the new package version # arg 2: the old package version post_upgrade() { if [ "$(vercmp $2 100)" -lt 0 ]; then @@ -17,6 +12,21 @@ if [ "$(vercmp $2 100)" -lt 0 ]; then 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} + [ -c ${ROOTDIR}/dev/console ] || mknod -m600 ${ROOTDIR}/dev/console c 5 1 + [ -c ${ROOTDIR}/dev/null ] || mknod -m644 ${ROOTDIR}/dev/null c 1 3 + [ -c ${ROOTDIR}/dev/zero ] || mknod -m644 ${ROOTDIR}/dev/zero c 1 5 + if [ -n "${ROOTDIR}" ]; then + umount ${ROOTDIR} + rmdir ${ROOTDIR} + fi +} + op=$1 shift $op $* |