SOURCES: udev-cdrom_helper (NEW), udev-net_name_helper (NEW), udev...

freetz freetz at pld-linux.org
Sun Apr 23 18:08:18 CEST 2006


Author: freetz                       Date: Sun Apr 23 16:08:18 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- scripts/rules to handle network interfaces / cdrom block devices
  (borrowed from debian/mandriva)

---- Files affected:
SOURCES:
   udev-cdrom_helper (NONE -> 1.1)  (NEW), udev-net_name_helper (NONE -> 1.1)  (NEW), udev-functions (NONE -> 1.1)  (NEW), udev-create_persistent.rules (NONE -> 1.1)  (NEW), udev-create_persistent (NONE -> 1.1)  (NEW), udev.blacklist (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/udev-cdrom_helper
diff -u /dev/null SOURCES/udev-cdrom_helper:1.1
--- /dev/null	Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-cdrom_helper	Sun Apr 23 18:08:13 2006
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+. /etc/udev/functions.udev
+
+read_rules
+
+add_first_available "cdrom"
+[ -n "$ID_CDROM_CD_RW" ]  && add_first_available "cdrw"
+[ -n "$ID_CDROM_DVD" ]    && add_first_available "dvd"
+[ -n "$ID_CDROM_DVD_RW" ] && add_first_available "dvdrw"
+
+write_rule "ENV{ID_PATH}==\"$ID_PATH\""
+echo $RESULTS

================================================================
Index: SOURCES/udev-net_name_helper
diff -u /dev/null SOURCES/udev-net_name_helper:1.1
--- /dev/null	Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-net_name_helper	Sun Apr 23 18:08:13 2006
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+. /etc/udev/functions.udev
+
+NET_ADDRESS=$1
+[ -z "`echo $NET_ADDRESS | tr -d '0:'`" ] && exit 0
+
+read_rules
+
+INTERFACE_BASE=`echo $INTERFACE | sed -e 's/[0-9]*$//'`
+INTERFACE_IFTAB=`awk "{ if (\\$3 == \"$NET_ADDRESS\") { print \\$1; exit } }" /etc/iftab`
+if [ -n "$INTERFACE_IFTAB" ] && ! already_exists "$INTERFACE_IFTAB"; then
+    RESULTS=$INTERFACE_IFTAB
+else
+    add_first_available $INTERFACE_BASE
+fi
+
+write_rule "SYSFS{address}==\"$NET_ADDRESS\""
+echo $RESULTS

================================================================
Index: SOURCES/udev-functions
diff -u /dev/null SOURCES/udev-functions:1.1
--- /dev/null	Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-functions	Sun Apr 23 18:08:13 2006
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+already_exists() {
+    echo $EXISTING | grep -q "\b$1\b"
+}
+
+add_result() {
+    if [ -z "$RESULTS" ]; then
+	RESULTS=$1
+    else
+	RESULTS="$RESULTS $1"
+    fi
+}
+
+add_first_available() {
+    BASE=$1
+    [ -z "$ADD" ] || already_exists $BASE || add_result $BASE
+    i=0
+    while [ $MAX_LOOPS -gt $i ] && already_exists "$BASE$i"; do
+	: $((i++))
+    done
+    add_result "$BASE$i"
+}
+
+write_rule() {
+    MATCH=$1
+    echo "SUBSYSTEM==\"$SUBSYSTEM\", ACTION==\"add\", $MATCH, $TARGET$ADD=\"$RESULTS\", ENV{GENERATED}=\"yes\"" >> $UDEV_RULES_FILE
+}

================================================================
Index: SOURCES/udev-create_persistent.rules
diff -u /dev/null SOURCES/udev-create_persistent.rules:1.1
--- /dev/null	Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-create_persistent.rules	Sun Apr 23 18:08:13 2006
@@ -0,0 +1,9 @@
+SUBSYSTEM=="block", ACTION=="add", ENV{ID_CDROM}=="?*", \
+    ENV{GENERATED}!="yes", \
+    PROGRAM="/usr/bin/flock /sys/block /lib/udev/cdrom_helper", \
+    SYMLINK+="%c"
+    
+SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="?*", \
+    ENV{GENERATED}!="yes", \
+    PROGRAM="/usr/bin/flock /sys/class/net /lib/udev/net_name_helper %s{address}", \
+    NAME="%c"

================================================================
Index: SOURCES/udev-create_persistent
diff -u /dev/null SOURCES/udev-create_persistent:1.1
--- /dev/null	Sun Apr 23 18:08:18 2006
+++ SOURCES/udev-create_persistent	Sun Apr 23 18:08:13 2006
@@ -0,0 +1,25 @@
+#!/bin/sh
+if [ -z "$SUBSYSTEM" ]; then
+    echo "SUBSYSTEM not defined, exiting"
+    exit -1
+fi
+
+MAX_LOOPS=1024
+UDEV_RULES_FILE=/etc/udev/rules.d/60-persistent-${SUBSYSTEM}.rules
+if [ $SUBSYSTEM = "net" ]; then
+    TARGET="NAME"
+    ADD=""
+else
+    TARGET="SYMLINK"
+    ADD="+"
+fi
+
+read_rules() {
+    if [ ! -f $UDEV_RULES_FILE ]; then
+	cat > $UDEV_RULES_FILE <<EOF
+# autogenerated udev persistent rules for $SUBSYSTEM subsystem
+#
+EOF
+    fi
+    EXISTING=`sed -ne "/^[[:space:]]*#.*/b; s/.*$TARGET$ADD=\"\([^\"]*\)\".*/\1/; T; p" $UDEV_RULES_FILE | sort -u`
+}

================================================================
Index: SOURCES/udev.blacklist
diff -u /dev/null SOURCES/udev.blacklist:1.1
--- /dev/null	Sun Apr 23 18:08:18 2006
+++ SOURCES/udev.blacklist	Sun Apr 23 18:08:13 2006
@@ -0,0 +1,6 @@
+# This directive blacklists all devices which are members of the display class.
+# It has the main effect of stopping the udev/modprobe from loading the
+# fb drivers.
+
+# vendor, device, subsystem_vendor, subsystem_device, class, class, class
+install pci:v*d*sv*sd*bc03sc*i* /bin/true
================================================================


More information about the pld-cvs-commit mailing list