summaryrefslogtreecommitdiff
path: root/testing/udev/udev.install
diff options
context:
space:
mode:
authorroot <root@rshg047.dnsready.net>2011-04-10 04:43:11 +0000
committerroot <root@rshg047.dnsready.net>2011-04-10 04:43:11 +0000
commit8f6922302486fa1cc1112ff8b3daddb48c3260f2 (patch)
treecdd13036f76c8a9b8efcc83bbaea166cc929a527 /testing/udev/udev.install
parentf87ab435eb966ec44eb006c48699e6ee90613286 (diff)
Sun Apr 10 04:43:11 UTC 2011
Diffstat (limited to 'testing/udev/udev.install')
-rw-r--r--testing/udev/udev.install38
1 files changed, 38 insertions, 0 deletions
diff --git a/testing/udev/udev.install b/testing/udev/udev.install
new file mode 100644
index 000000000..e953ec743
--- /dev/null
+++ b/testing/udev/udev.install
@@ -0,0 +1,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
+}