diff options
Diffstat (limited to 'core/udev')
-rw-r--r-- | core/udev/81-arch.rules | 14 | ||||
-rw-r--r-- | core/udev/PKGBUILD | 85 | ||||
-rw-r--r-- | core/udev/bluetooth.patch | 36 | ||||
-rw-r--r-- | core/udev/static-audio-nodes-group.patch | 27 | ||||
-rw-r--r-- | core/udev/static-nodes-permissions.patch | 57 | ||||
-rw-r--r-- | core/udev/udev.install | 69 |
6 files changed, 117 insertions, 171 deletions
diff --git a/core/udev/81-arch.rules b/core/udev/81-arch.rules index cd4e3e9b4..71f1a883b 100644 --- a/core/udev/81-arch.rules +++ b/core/udev/81-arch.rules @@ -26,8 +26,7 @@ KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0660" SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", GROUP="optical" # permissions for SCSI CD devices -SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", SYMLINK+="scd%n", GROUP="optical" -SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", GROUP="optical" +SUBSYSTEMS=="scsi", KERNEL=="s[rg][0-9]*", ATTRS{type}=="5", GROUP="optical" # permissions for removable devices like cardreaders or sticks KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="0", GROUP="storage" @@ -61,23 +60,12 @@ KERNEL=="radio[0-9]*", GROUP="video" KERNEL=="video0", SYMLINK+="video" KERNEL=="vtx0", SYMLINK+="vtx" -# video devices -### xorg resets those permissions, adjust your xorg.conf! -KERNEL=="3dfx*", GROUP="video" -KERNEL=="fb[0-9]*", GROUP="video" - # misc KERNEL=="sgi_fetchop", MODE="0666" KERNEL=="sonypi", MODE="0666" # USB devices KERNEL=="legousbtower*", MODE="0666" - -# kbd devices -KERNEL=="kbd", MODE="0664" - -# miscellaneous -KERNEL=="rtc|rtc0", GROUP="audio", MODE="0664" ####################################### # Permissions and Symlinks - end ####################################### diff --git a/core/udev/PKGBUILD b/core/udev/PKGBUILD index 474fceb5b..f959e9b3c 100644 --- a/core/udev/PKGBUILD +++ b/core/udev/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 126202 2011-06-02 14:49:12Z tomegun $ +# $Id: PKGBUILD 134147 2011-08-02 11:38:00Z tomegun $ # Maintainer: Aaron Griffin <aaron@archlinux.org> # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Maintainer: Thomas Bächler <thomas@archlinux.org> @@ -6,8 +6,8 @@ pkgbase="udev" pkgname=('udev' 'udev-compat') -pkgver=171 -pkgrel=2 +pkgver=173 +pkgrel=3 arch=(i686 x86_64 mips64el) url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" license=('GPL') @@ -16,25 +16,26 @@ groups=('base') 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 - 81-arch.rules - static-audio-nodes-group.patch - static-nodes-permissions.patch) + bluetooth.patch + 81-arch.rules) build() { cd $srcdir/$pkgbase-$pkgver - # fix https://bugs.archlinux.org/task/24362 (will be in udev-172) - patch -Np1 -i ../static-audio-nodes-group.patch - patch -Np1 -i ../static-nodes-permissions.patch + # fix https://bugs.archlinux.org/task/25356 (submitted upstream) + patch -Np1 -i ../bluetooth.patch if [ "$CARCH" = "mips64el" ]; then msg "Remove -Wl,--gc-sections" - sed -i "753d" Makefile - sed -i "753d" Makefile.in + sed -i "/--gc-sections/d" Makefile.* fi - ./configure --sysconfdir=/etc --with-rootlibdir=/lib --libexecdir=/lib/udev\ - --sbindir=/sbin --with-systemdsystemunitdir=/lib/systemd/system\ - --disable-rule-generator + ./configure --sysconfdir=/etc\ + --with-rootlibdir=/lib\ + --libexecdir=/lib/udev\ + --sbindir=/sbin\ + --with-systemdsystemunitdir=/lib/systemd/system\ + --disable-rule-generator\ + --enable-udev_acl make } @@ -43,8 +44,7 @@ package_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) + backup=(etc/udev/udev.conf) conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07') replaces=('devfsd') @@ -54,14 +54,33 @@ package_udev() { install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules # create framebuffer blacklist - mkdir -p $pkgdir/etc/modprobe.d/ + mkdir -p $pkgdir/lib/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 + done | sort -u > $pkgdir/lib/modprobe.d/framebuffer_blacklist.conf + # 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 + + # 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 +} + +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 # create static devices in /lib/udev/devices/ - mkdir ${pkgdir}/lib/udev/devices/pts - mkdir ${pkgdir}/lib/udev/devices/shm + mkdir -p ${pkgdir}/lib/udev/devices/{pts,shm} mknod -m 0600 ${pkgdir}/lib/udev/devices/console c 5 1 mknod -m 0666 ${pkgdir}/lib/udev/devices/null c 1 3 @@ -75,9 +94,6 @@ package_udev() { 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 @@ -85,24 +101,7 @@ package_udev() { 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 -} - -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 } -md5sums=('bdf4617284be2ecac11767437417e209' - '6ee44e3feb8e0f037947e7d4ca273f12' - '4f625aea95a5597afd8cdf189421f193' - 'f9e50b8dfcd2215f5423ff9bc04ecf68') +md5sums=('91a88a359b60bbd074b024883cc0dbde' + '36cb9bfb55a8d931b7498d2e46730745' + 'ec529eb1ddaabb70c61b38f80bb8462a') diff --git a/core/udev/bluetooth.patch b/core/udev/bluetooth.patch new file mode 100644 index 000000000..96f5d6901 --- /dev/null +++ b/core/udev/bluetooth.patch @@ -0,0 +1,36 @@ +From 7462d61442f606cc118722e0572ac8db48fa2540 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20B=C3=A4chler?= <thomas@archlinux.org> +Date: Tue, 2 Aug 2011 10:56:33 +0200 +Subject: [PATCH] rules: input - fix detection of bluetooth hid devices in + Xorg + +Commit c49df20758e0f22778cfc93b598f2929f4c86272 prevented udev from +creating broken symlinks for bluetooth hid devices. Unfortunately, +it also removed the ID_INPUT=1 and ID_INPUT_{KEY,MOUSE}=1 properties +from those devices. Xorg relies on these properties for cold- and +hotplugging of input devices. + +With this patch, udev still omits the broken symlinks, but also +imports the input_id properties again. +--- + rules/rules.d/60-persistent-input.rules | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/rules/rules.d/60-persistent-input.rules b/rules/rules.d/60-persistent-input.rules +index 65a6381..28d50d2 100644 +--- a/rules/rules.d/60-persistent-input.rules ++++ b/rules/rules.d/60-persistent-input.rules +@@ -2,9 +2,9 @@ + + ACTION=="remove", GOTO="persistent_input_end" + SUBSYSTEM!="input", GOTO="persistent_input_end" +-SUBSYSTEMS=="bluetooth", GOTO="persistent_input_end" + + ENV{ID_INPUT}=="", IMPORT{program}="input_id %p" ++SUBSYSTEMS=="bluetooth", GOTO="persistent_input_end" + SUBSYSTEMS=="usb", ENV{ID_BUS}=="", IMPORT{program}="usb_id --export %p" + + # determine class name for persistent symlinks +-- +1.7.6 + diff --git a/core/udev/static-audio-nodes-group.patch b/core/udev/static-audio-nodes-group.patch deleted file mode 100644 index b1fc4f935..000000000 --- a/core/udev/static-audio-nodes-group.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 3e227830ad6494700e18ae03297e8fb833ff26bf Mon Sep 17 00:00:00 2001 -From: Kay Sievers <kay.sievers@vrfy.org> -Date: Fri, 27 May 2011 02:50:29 +0200 -Subject: [PATCH] rules: apply 'audio' group of the static snd/{seq,timer} - nodes - ---- - rules/rules.d/50-udev-default.rules | 3 ++- - 1 files changed, 2 insertions(+), 1 deletions(-) - -diff --git a/rules/rules.d/50-udev-default.rules b/rules/rules.d/50-udev-default.rules -index cd745ef..cacb533 100644 ---- a/rules/rules.d/50-udev-default.rules -+++ b/rules/rules.d/50-udev-default.rules -@@ -38,7 +38,8 @@ SUBSYSTEM=="graphics", GROUP="video" - SUBSYSTEM=="drm", GROUP="video" - - # sound --SUBSYSTEM=="sound", GROUP="audio" -+SUBSYSTEM=="sound", GROUP="audio", \ -+ OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer" - - # DVB (video) - SUBSYSTEM=="dvb", GROUP="video" --- -1.7.5.3 - diff --git a/core/udev/static-nodes-permissions.patch b/core/udev/static-nodes-permissions.patch deleted file mode 100644 index 51e6ad6bc..000000000 --- a/core/udev/static-nodes-permissions.patch +++ /dev/null @@ -1,57 +0,0 @@ -From c112873b5bc9ebbae39c32f502bc6211f33546cc Mon Sep 17 00:00:00 2001 -From: Kay Sievers <kay.sievers@vrfy.org> -Date: Mon, 30 May 2011 02:12:02 +0200 -Subject: [PATCH 1/2] rules: static_node - use 0660 if group is given to get - the cigar - ->> On Tue, May 24, 2011 at 15:33, Tom Gundersen <teg@jklm.no> wrote: -> -> Close, but no cigar. Looks like the static nodes are not assigned -> permissions 0660 even if a gid is set (the nodes have perms 0600). -> -> Cheers, -> -> Tom ---- - udev/udev-rules.c | 10 ++++++++-- - 1 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/udev/udev-rules.c b/udev/udev-rules.c -index 48395e7..56a258d 100644 ---- a/udev/udev-rules.c -+++ b/udev/udev-rules.c -@@ -2709,8 +2709,9 @@ void udev_rules_apply_static_dev_perms(struct udev_rules *rules) - case TK_A_STATIC_NODE: { - char filename[UTIL_PATH_SIZE]; - struct stat stats; -+ - /* we assure, that the permissions tokens are sorted before the static token */ -- if (mode == 0 && uid == 0 && gid == 0) -+ if (uid == 0 && gid == 0) - goto next; - util_strscpyl(filename, sizeof(filename), udev_get_dev_path(rules->udev), "/", - &rules->buf[cur->key.value_off], NULL); -@@ -2718,14 +2719,19 @@ void udev_rules_apply_static_dev_perms(struct udev_rules *rules) - goto next; - if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode)) - goto next; -- if (mode != 0 && mode != (stats.st_mode & 0777)) { -+ -+ if (mode == 0 && gid > 0) -+ mode = 0660; -+ if (mode != (stats.st_mode & 0777)) { - chmod(filename, mode); - info(rules->udev, "chmod '%s' %#o\n", filename, mode); - } -+ - if ((uid != 0 && uid != stats.st_uid) || (gid != 0 && gid != stats.st_gid)) { - chown(filename, uid, gid); - info(rules->udev, "chown '%s' %u %u\n", filename, uid, gid); - } -+ - utimensat(AT_FDCWD, filename, NULL, 0); - break; - } --- -1.7.5.2 - diff --git a/core/udev/udev.install b/core/udev/udev.install index 5c02dd15b..272ab60c0 100644 --- a/core/udev/udev.install +++ b/core/udev/udev.install @@ -2,40 +2,47 @@ # 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 <https://wiki.archlinux.org/index.php/Udev> for details." - echo "Errors are now logged (possibly to the console) by default." - echo "---------------" - fi if [ "$(vercmp $2 172)" -lt 0 ]; then echo "ATTENTION UDEV:" - echo "---------------" - echo "Arch's custom blacklisting logic has been removed. MOD_AUTOLOAD and" - echo "blacklisting in MODULES no longer works." - echo "See 'man modprobe.conf' for a replacement to blacklisting." - echo "To disable a module mod1 on the kernel command line, use" - echo "mod1.disable=1" - echo "or" - echo "modprobe.blacklist=mod1" + echo "----------" + if [ "$(vercmp $2 168)" -lt 0 ]; then + echo "Kernel 2.6.32 or newer is now required." + echo " --" + echo "OSS emulation modules are not loaded by default, add to rc.conf if needed." + echo " --" + echo "Arch specific cd symlinks are now no longer created." + echo " --" + echo "cd and net persistent rules will no longer be autogenerated," + echo "see <https://wiki.archlinux.org/index.php/Udev> for details." + echo " --" + echo "Errors are now logged (possibly to the console) by default." + echo " --" + fi + if [ "$(vercmp $2 171)" -lt 0 ]; then + echo "Arch's custom blacklisting logic has been removed. MOD_AUTOLOAD and" + echo "blacklisting in MODULES no longer works." + echo "See 'man modprobe.conf' for a replacement to blacklisting." + echo "To disable a module mod1 on the kernel command line, use" + echo "mod1.disable=1" + echo "or" + echo "modprobe.blacklist=mod1" + echo " --" + echo "The following modules are no longer unconditionally loaded:" + echo " pcspkr irtty-sir analog lp ppdev ide-generic" + echo "Add them to MODULES in rc.conf if you need them." + echo " --" + fi + echo "Support for non-devtmpfs self-compiled kernels have been moved to udev-compat." + echo " --" + echo "Blacklisting of framebuffer devices has moved from /etc/modprobe.d to" + echo "/lib/modprobe.d. Any customizations shoud be done to the file in /etc, as it" + echo "takes precedence." + echo " --" + echo "kbd and rtc devices are no longer world readable." echo " --" - echo "The following modules are no longer unconditionally loaded:" - echo " pcspkr irtty-sir analog lp ppdev ide-generic" - echo "Add them to MODULES in rc.conf if you need them." + echo "rtc is no longer in the audio group and fb devices are no longer in" + echo "the video group, as permissions and ownership of fb devices are controlled" + echo "by X." echo "---------------" fi } |