[arch-commits] Commit in udev/trunk (7 files)

Tom Gundersen tomegun at archlinux.org
Thu Jun 2 14:49:12 UTC 2011


    Date: Thursday, June 2, 2011 @ 10:49:12
  Author: tomegun
Revision: 126202

upgpkg: udev 171-2
remove module-load.sh, some autoloading, and fix a bug

Added:
  udev/trunk/static-audio-nodes-group.patch
  udev/trunk/static-nodes-permissions.patch
Modified:
  udev/trunk/81-arch.rules
  udev/trunk/PKGBUILD
  udev/trunk/udev.install
Deleted:
  udev/trunk/80-drivers.rules
  udev/trunk/load-modules.sh

--------------------------------+
 80-drivers.rules               |   14 ------
 81-arch.rules                  |   31 ---------------
 PKGBUILD                       |   23 ++++-------
 load-modules.sh                |   80 ---------------------------------------
 static-audio-nodes-group.patch |   27 +++++++++++++
 static-nodes-permissions.patch |   57 +++++++++++++++++++++++++++
 udev.install                   |   16 +++++++
 7 files changed, 109 insertions(+), 139 deletions(-)

Deleted: 80-drivers.rules
===================================================================
--- 80-drivers.rules	2011-06-02 14:38:11 UTC (rev 126201)
+++ 80-drivers.rules	2011-06-02 14:49:12 UTC (rev 126202)
@@ -1,14 +0,0 @@
-# do not edit this file, it will be overwritten on update
-
-ACTION=="remove", GOTO="drivers_end"
-
-DRIVER!="?*", ENV{MODALIAS}=="?*", RUN+="/lib/udev/load-modules.sh  $env{MODALIAS}"
-SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/lib/udev/load-modules.sh  tifm_sd"
-SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/lib/udev/load-modules.sh  tifm_ms"
-SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh ms_block"
-SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh mspro_block"
-SUBSYSTEM=="i2o", RUN+="/lib/udev/load-modules.sh  i2o_block"
-SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/lib/udev/load-modules.sh sg"
-SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/lib/udev/load-modules.sh ppdev"
-
-LABEL="drivers_end"

Modified: 81-arch.rules
===================================================================
--- 81-arch.rules	2011-06-02 14:38:11 UTC (rev 126201)
+++ 81-arch.rules	2011-06-02 14:49:12 UTC (rev 126202)
@@ -19,37 +19,6 @@
 # global stuff
 #
 
-#####################################
-###### Hotplug rules - begin
-# Only additional modules, 
-# which are not detectable,
-# are loaded here!
-#####################################
-# check if the device has already been claimed by a driver
-ACTION!="add", GOTO="drivers_end"
-
-#PNP addon modules
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0800", RUN+="/lib/udev/load-modules.sh pcspkr"
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP051[01]*", RUN+="/lib/udev/load-modules.sh irtty-sir"
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNPb02f", RUN+="/lib/udev/load-modules.sh analog"
-
-# PARPORT addon modules
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh lp"
-SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh ppdev"
-
-# fix ide cdrom detection on old proliant servers
-SUBSYSTEM=="pci", ENV{MODALIAS}=="pci:v00000E11d00000001sv00000000sd00000000bc06sc02i00", RUN+="/lib/udev/load-modules.sh ide-generic"
-
-LABEL="drivers_end"
-#####################################
-##### Hotplug rules - end
-#####################################
-
-#####################################
-# Additional Archlinux
-# Permissions and Symlinks - begin
-#####################################
-
 # permission for sg devices
 KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0660"
 

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2011-06-02 14:38:11 UTC (rev 126201)
+++ PKGBUILD	2011-06-02 14:49:12 UTC (rev 126202)
@@ -7,7 +7,7 @@
 pkgbase="udev"
 pkgname=('udev' 'udev-compat')
 pkgver=171
-pkgrel=1
+pkgrel=2
 arch=(i686 x86_64)
 url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
 license=('GPL')
@@ -16,15 +16,15 @@
 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
-	static-audio-nodes-permissions.patch)
+        81-arch.rules
+	static-audio-nodes-group.patch
+	static-nodes-permissions.patch)
 
 build() {
   cd $srcdir/$pkgbase-$pkgver
   # fix https://bugs.archlinux.org/task/24362 (will be in udev-172)
-  patch -Np1 -i ../static-audio-nodes-permissions.patch
+  patch -Np1 -i ../static-audio-nodes-group.patch
+  patch -Np1 -i ../static-nodes-permissions.patch
   ./configure --sysconfdir=/etc --with-rootlibdir=/lib --libexecdir=/lib/udev\
               --sbindir=/sbin --with-systemdsystemunitdir=/lib/systemd/system\
               --disable-rule-generator
@@ -43,12 +43,8 @@
   
   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
 
   # create framebuffer blacklist
   mkdir -p $pkgdir/etc/modprobe.d/
@@ -100,7 +96,6 @@
   install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules
 }
 md5sums=('bdf4617284be2ecac11767437417e209'
-         '4427855146513a4703ab5c7eb8a0156e'
-         'd8725e64fd0ce6e784ae795fae424c0a'
-         'f91fddc67609b45b244a624977c4247b'
-         '4f625aea95a5597afd8cdf189421f193')
+         '6ee44e3feb8e0f037947e7d4ca273f12'
+         '4f625aea95a5597afd8cdf189421f193'
+         'f9e50b8dfcd2215f5423ff9bc04ecf68')

Deleted: load-modules.sh
===================================================================
--- load-modules.sh	2011-06-02 14:38:11 UTC (rev 126201)
+++ load-modules.sh	2011-06-02 14:49:12 UTC (rev 126202)
@@ -1,80 +0,0 @@
-#!/bin/bash
-# Implement blacklisting for udev-loaded modules
-
-[ $# -ne 1 ] && exit 1
-
-. /etc/rc.conf
-
-# grab modules from rc.conf
-BLACKLIST="${MOD_BLACKLIST[@]}"
-MODPROBE="/sbin/modprobe"
-LOGGER="/usr/bin/logger"
-RESOLVEALIAS="${MODPROBE} --resolve-alias"
-USEBLACKLIST="--use-blacklist"
-
-if [ -f /proc/cmdline ]; then 
-    for cmd in $(cat /proc/cmdline); do
-        case $cmd in
-            disablemodules=*) eval $cmd ;;
-            load_modules=off) exit ;;
-        esac
-    done
-    #parse cmdline entries of the form "disablemodules=x,y,z"
-    if [ -n "$disablemodules" ]; then
-        BLACKLIST="$BLACKLIST $(echo $disablemodules | sed 's|,| |g')"
-    fi
-fi
-
-#MODULES entries in rc.conf that begin with ! are blacklisted
-for mod in ${MODULES[@]}; do
-    if [ "${mod}" != "${mod#!}" ]; then
-        BLACKLIST="$BLACKLIST ${mod#!}"
-    fi
-done
-
-if [ "$MOD_AUTOLOAD" = "yes" -o "$MOD_AUTOLOAD" = "YES" ]; then
-  if [ -n "${BLACKLIST}" ]; then
-    # If an alias name is on the blacklist, load no modules for this device
-    if echo "${BLACKLIST}" | /bin/grep -q -e " $1 " -e "^$1 " -e " $1\$"; then
-      $LOGGER -p info -t "$(basename $0)" "Not loading module alias '$1' because it is blacklisted"
-      exit
-    fi
-    #sanitize the blacklist
-    BLACKLIST="$(echo "$BLACKLIST" | sed -e 's|-|_|g')"
-    # Try to find all modules for the alias
-    mods=$($RESOLVEALIAS $1)
-    # If no modules could be found, try if the alias name is a module name
-    # In that case, omit the --use-blacklist parameter to imitate normal modprobe behaviour
-    [ -z "${mods}" ] && $MODPROBE -qni $1 && mods="$1" && USEBLACKLIST=""
-    [ -z "${mods}" ] && $LOGGER -p local0.debug -t "$(basename $0)" "'$1' is not a valid module or alias name"
-    for mod in ${mods}; do
-      # Find the module and all its dependencies
-      deps="$($MODPROBE -i --show-depends ${mod})"
-      [ $? -ne 0 ] && continue
-
-      #sanitize the module names
-      deps="$(echo "$deps" | sed \
-              -e "s#^insmod /lib.*/\(.*\)\.ko.*#\1#g" \
-              -e 's|-|_|g')"
-
-      # If the module or any of its dependencies is blacklisted, don't load it
-      for dep in $deps; do
-        if echo "${BLACKLIST}" | /bin/grep -q -e " ${dep} " -e "^${dep} " -e " ${dep}\$"; then
-          if [ "${dep}" = "${mod}" ]; then
-            $LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because it is blacklisted"
-          else
-            $LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because its dependency '${dep}' is blacklisted"
-          fi
-          continue 2
-        fi
-      done
-      # modprobe usually uses the "blacklist" statements from modprobe.conf only to blacklist all aliases
-      # of a module, but not the module itself. We use --use-blacklist here so that modprobe also blacklists
-      # module names if we resolved alias names manually above
-      $MODPROBE $USEBLACKLIST ${mod}
-    done
-  else
-    $MODPROBE $USEBLACKLIST $1
-  fi
-fi
-# vim: set et ts=4:

Added: static-audio-nodes-group.patch
===================================================================
--- static-audio-nodes-group.patch	                        (rev 0)
+++ static-audio-nodes-group.patch	2011-06-02 14:49:12 UTC (rev 126202)
@@ -0,0 +1,27 @@
+From 3e227830ad6494700e18ae03297e8fb833ff26bf Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at 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
+

Added: static-nodes-permissions.patch
===================================================================
--- static-nodes-permissions.patch	                        (rev 0)
+++ static-nodes-permissions.patch	2011-06-02 14:49:12 UTC (rev 126202)
@@ -0,0 +1,57 @@
+From c112873b5bc9ebbae39c32f502bc6211f33546cc Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at 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 at 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
+

Modified: udev.install
===================================================================
--- udev.install	2011-06-02 14:38:11 UTC (rev 126201)
+++ udev.install	2011-06-02 14:49:12 UTC (rev 126202)
@@ -22,6 +22,22 @@
     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 "  --"
+    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
 }
 
 post_install() {




More information about the arch-commits mailing list