# $Id: PKGBUILD 124183 2011-05-17 13:17:56Z tomegun $ # Maintainer: Aaron Griffin # Maintainer: Tobias Powalowski # Maintainer: Thomas Bächler # Maintainer: Tom Gundersen # ALARM: Kevin Mihelich # - Add our automouting rules plugrel=1 pkgbase="udev" pkgname=('udev' 'udev-compat') pkgver=168 pkgrel=2 arch=(i686 x86_64) url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" license=('GPL') groups=('base') # older initscripts versions required start_udev options=(!makeflags !libtool) makedepends=('glibc' 'coreutils' 'util-linux' 'pciutils' 'libusb-compat' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection') source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgbase-$pkgver.tar.bz2 80-drivers.rules 81-arch.rules load-modules.sh cdsymlinks.sh 01-settle.patch 02-settle.patch 11-media-by-label-auto-mount.rules 11-sd-cards-auto-mount.rules) build() { cd $srcdir/$pkgbase-$pkgver # fix https://bugs.archlinux.org/task/24288 patch -Np1 -i ../01-settle.patch patch -Np1 -i ../02-settle.patch ./configure --sysconfdir=/etc --with-rootlibdir=/lib --libexecdir=/lib/udev\ --sbindir=/sbin --with-systemdsystemunitdir=/lib/systemd/system make } package_udev() { pkgdesc="The userspace dev tools (udev)" depends=('glibc' 'coreutils' 'util-linux' 'libusb-compat' 'glib2' 'module-init-tools>=3.11' 'pciutils') install=udev.install backup=(etc/udev/udev.conf etc/modprobe.d/framebuffer_blacklist.conf) conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07') replaces=('devfsd') cd $srcdir/$pkgbase-$pkgver make DESTDIR=${pkgdir} install # Replace original 80-drivers.rules with custom one. install -D -m644 $srcdir/80-drivers.rules $pkgdir/lib/udev/rules.d/80-drivers.rules # Install our rule for permissions and symlinks install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules # install our module loading subsystem install -D -m755 $srcdir/load-modules.sh $pkgdir/lib/udev/load-modules.sh # install cdsymlinks.sh install -D -m755 $srcdir/cdsymlinks.sh $pkgdir/lib/udev/cdsymlinks.sh # disable error logging to prevent startup failures printed to vc on boot sed -i -e 's|udev_log="err"|udev_log="0"|g' $pkgdir/etc/udev/udev.conf # disable persistent cdromsymlinks and network by default # and move it to /etc/udev/rules.d mv $pkgdir/lib/udev/rules.d/75-persistent-net-generator.rules \ $pkgdir/etc/udev/rules.d/75-persistent-net-generator.rules.optional mv $pkgdir/lib/udev/rules.d/75-cd-aliases-generator.rules \ $pkgdir/etc/udev/rules.d/75-cd-aliases-generator.rules.optional # create framebuffer blacklist mkdir -p $pkgdir/etc/modprobe.d/ for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko.gz' -exec basename {} .ko.gz \;); do echo "blacklist $mod" done | sort -u > $pkgdir/etc/modprobe.d/framebuffer_blacklist.conf # create static devices in /lib/udev/devices/ mkdir ${pkgdir}/lib/udev/devices/pts mkdir ${pkgdir}/lib/udev/devices/shm mknod -m 0600 ${pkgdir}/lib/udev/devices/console c 5 1 mknod -m 0666 ${pkgdir}/lib/udev/devices/null c 1 3 mknod -m 0660 ${pkgdir}/lib/udev/devices/zero c 1 5 mknod -m 0666 ${pkgdir}/lib/udev/devices/kmsg c 1 11 ln -snf /proc/self/fd ${pkgdir}/lib/udev/devices/fd ln -snf /proc/self/fd/0 ${pkgdir}/lib/udev/devices/stdin ln -snf /proc/self/fd/1 ${pkgdir}/lib/udev/devices/stdout ln -snf /proc/self/fd/2 ${pkgdir}/lib/udev/devices/stderr ln -snf /proc/kcore ${pkgdir}/lib/udev/devices/core # these static devices are created for convenience, to autoload the modules if necessary # /dev/loop0 mknod -m 0660 ${pkgdir}/lib/udev/devices/loop0 b 7 0 chgrp disk ${pkgdir}/lib/udev/devices/loop0 # /dev/net/tun mkdir ${pkgdir}/lib/udev/devices/net mknod -m 0666 ${pkgdir}/lib/udev/devices/net/tun c 10 200 # /dev/fuse mknod -m 0666 ${pkgdir}/lib/udev/devices/fuse c 10 229 # /dev/ppp mknod -m 0600 ${pkgdir}/lib/udev/devices/ppp c 108 0 # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group for i in $pkgdir/lib/udev/rules.d/*.rules; do sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g; s#GROUP="tape"#GROUP="storage"#g; s#GROUP="cdrom"#GROUP="optical"#g' $i done # Provided by the bluez package, remove this line when updating to udev>=169 rm ${pkgdir}/lib/udev/hid2hci # Arch Linux ARM USB drive and SD card automount rules rm -rf $pkgdir/etc/udev/rules.d/* cp $srcdir/11-media-by-label-auto-mount.rules $pkgdir/etc/udev/rules.d/ cp $srcdir/11-sd-cards-auto-mount.rules $pkgdir/etc/udev/rules.d/ } package_udev-compat() { pkgdesc="The userspace dev tools (udev) - additional rules for older kernels" depends=('udev') groups=('') cd $srcdir/$pkgbase-$pkgver install -d -m755 ${pkgdir}/lib/${pkgbase}/rules.d install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules } sha256sums=('9ddc43173cf7b397c8cc01d26d644932ff2c2259b3a5eea7be90db96a28080e2' '0cb99cc7cea92238dd6b19a4c104c3b9e9f744c6b9d6b4382c7cd22be18c98f9' '377c13f20de32776107dddc8324f599f31320e8dd1185e3282856aee5cb08499' 'c6b41afb24e8f496064d8baad844697a6515cea1b7e0389054cd8a2053477377' 'cc0d281926bf2f1ac816c0060a2afc59444ddf0f8dab6e2d9924a2a7c8de4a13' '70d2fd079901bf9940c4811ec91634da0d8b3425ebcdbffeba5a73cb616be650' 'fe9d1aafb1a620108790d82960577de4eb757450c35a146475aed3f5e9356f1a' '6d386aba57f6bbd94d82244c8fa5bd330a78b13c1ff53543f695e59f654bd9a8' '946faf8e338af058a69415b804b3ca801668531d9e60098f4b44c63c486a235a')