summaryrefslogtreecommitdiff
path: root/core/udev/udev.install
blob: e953ec74310e9576f7b9bd971a4726889b3dee4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 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
}

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
}