rpms/udev/FC-4 firmware_helper.c, NONE, 1.1 hotplug.rules, NONE, 1.1 path_id, NONE, 1.1 udev-071-rh.patch, NONE, 1.1 sources, 1.22, 1.23 start_udev, 1.36, 1.37 udev.rules, 1.27, 1.28 udev.spec, 1.92, 1.93 ata_identify-Makefile, 1.3, NONE ata_identify.c, 1.4, NONE udev-039-dircheck.patch, 1.1, NONE udev-039-media.patch, 1.1, NONE udev-039-scsi_id-tmp_dir.patch, 1.1, NONE udev-039-static.patch, 1.3, NONE udev-048-selinux.patch, 1.1, NONE udev-056-selinux.patch, 1.1, NONE udev.get_persistent_device_name.sh, 1.3, NONE udev.get_unique_drive_id.sh, 1.3, NONE udev.get_unique_hardware_path.sh, 1.3, NONE udev.permissions, 1.9, NONE udev.rules.persistent, 1.5, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Jan 25 10:03:34 UTC 2006


Author: harald

Update of /cvs/dist/rpms/udev/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv24008

Modified Files:
	sources start_udev udev.rules udev.spec 
Added Files:
	firmware_helper.c hotplug.rules path_id udev-071-rh.patch 
Removed Files:
	ata_identify-Makefile ata_identify.c udev-039-dircheck.patch 
	udev-039-media.patch udev-039-scsi_id-tmp_dir.patch 
	udev-039-static.patch udev-048-selinux.patch 
	udev-056-selinux.patch udev.get_persistent_device_name.sh 
	udev.get_unique_drive_id.sh udev.get_unique_hardware_path.sh 
	udev.permissions udev.rules.persistent 
Log Message:
- version 071 for FC-4


--- NEW FILE firmware_helper.c ---
/*
 * A simple firmware helper program.
 * 
 * Copyright 2005 Red Hat, Inc.
 *
 * This software may be freely redistributed under the terms of the GNU
 * public license.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <syslog.h>
#include <unistd.h>

#include <sys/stat.h>

#define FIRMWARE_PATH	"/lib/firmware"


void log_err(char *firmware, int err) {
	char *driver;
	
	driver = getenv("PHYSDEVDRIVER");
	if (!driver)
		driver = "(unknown)";
	openlog("firmware_helper",LOG_PID,LOG_USER);
	syslog(LOG_ERR,"Loading of %s for %s driver failed: %s",firmware, driver, strerror(err));
	closelog();
}

/* Set the 'loading' attribute for a firmware device.
 * 1 == currently loading
 * 0 == done loading
 * -1 == error
 */
int set_loading(char *device, int value) {
	char *path;
	int rc;
	FILE *f;
	
	path = alloca(strlen(device)+15);
	sprintf(path,"/sys/%s/loading", device);
	f = fopen(path, "w");
	if (!f)
		return 1;
	rc = fprintf(f, "%d", value);
	fclose(f);
	if (rc < 0)
		return rc;
	return 0;
}
	

int main(int argc, char **argv) {
	char *devpath, *firmware, *action;
	struct stat sbuf;
	int fw_fd, count;
	int rc;
	char *fw_path, *data_path;
	char *fw_buffer;
	
	devpath = getenv("DEVPATH");
	if (!devpath) return 0;
	
	firmware = getenv("FIRMWARE");
	if (!firmware) return 0;
	
	action = getenv("ACTION");
	if (strcmp(action,"add"))
		return 0;

	set_loading(devpath, 1);
	
	fw_path = malloc(strlen(FIRMWARE_PATH) + strlen(firmware) + 2);
	if (!fw_path) {
		rc = errno;
		goto out_err;
	}
	
	sprintf(fw_path,"%s/%s", FIRMWARE_PATH, firmware);
	fw_fd = open(fw_path, O_RDONLY);
	if (fw_fd == -1) {
		rc = errno;
		goto out_err;
	}
	
	fstat(fw_fd, &sbuf);
	fw_buffer = malloc(sbuf.st_size);
	if (!fw_buffer) {
		rc = errno;
		goto out_err;
	}
	if (read(fw_fd, fw_buffer, sbuf.st_size) != sbuf.st_size) {
		rc = errno;
		goto out_err;
	}
	close(fw_fd);
	
	data_path = malloc(strlen(devpath) + 12);
	if (!data_path) {
		rc = errno;
		goto out_err;
	}
	
	sprintf(data_path,"/sys/%s/data", devpath);
	
	fw_fd = open(data_path, O_RDWR);
	if (fw_fd == -1) {
		rc = errno;
		goto out_err;
	}
	
	count = 0;
	while (count < sbuf.st_size) {
		int c;
		
		c = write(fw_fd,fw_buffer+count,sbuf.st_size-count);
		if (c <= 0) {
			rc = errno;
			goto out_err;
		}
		count += c;
	}
	close(fw_fd);
	set_loading(devpath, 0);
	return 0;
out_err:
	close(fw_fd);
	set_loading(devpath, -1);
	log_err(fw_path, rc);
	return rc;
}


--- NEW FILE hotplug.rules ---
# do not call hotplug.d and dev.d for "drivers" and "module" events
SUBSYSTEM=="drivers",	OPTIONS="last_rule"
SUBSYSTEM=="module",	OPTIONS="last_rule"

# compatibility support for the obsolete hotplug.d and dev.d directories
ENV{UDEVD_EVENT}=="1",	RUN+="/sbin/udev_run_hotplugd"
RUN+="/sbin/udev_run_devd"



--- NEW FILE path_id ---
#!/bin/sh

# provide the shortest possible unique hardware path to a block device
# for the udev persistent disk device naming scheme
#
# Copyright (C) 2005 SUSE Linux Products GmbH
# Licensed under the GPL v2.
#
# to be called from a udev rule to return the name for a symlink
# DEVPATH=/block/sda/sda3 $0  (or similar)
# $0 /block/sda
# $0 /sys/block/sda

# example for all:
# for i in `find /sys/block -name dev` ;do DEVPATH="`echo $i | sed -e 's@^/sys\|/dev@@g'`" $0 ; done

# examples:
# SCSI cdrom
# /block/sr0 -> /devices/pci0002:30/0002:30:0c.0/host0/0:0:1:0
# result: pci-0002:30:0c.0-scsi-0:0:1:0
# SCSI disk
# /block/sda -> /devices/pci0002:30/0002:30:0c.0/host0/0:0:4:0
# result: pci-0002:30:0c.0-scsi-0:0:4:0 
# SATA disk, 4 channels per controller
# /block/sda -> /devices/pci0001:00/0001:00:07.0/0001:05:0c.0/host0/0:0:0:0
# result: pci-0001:05:0c.0-scsi-0:0:0:0
# IDE disk
# /block/hda -> /devices/pci0002:02/0002:02:0d.0/ide0/0.0
# result: pci-0002:02:0d.0-ide-0.0
# IDE cdrom on a Mac ASIC:
# /block/hdc -> /devices/pci0001:01/0001:01:17.0/0.80000000:mac-io/0.00020000:ata-3/ide1/1.0
# result: mac-io_ata-3_master
# IDE cdrom on a Mac ASIC, with ide-scsi:
# /block/sr0 -> /devices/pci0001:01/0001:01:17.0/0.80000000:mac-io/0.0001f000:ata-4/ide0/0.1/host2/2:0:0:0
# result: mac-io_ata-4_slave

# USB CDrom drive without 'serial' number:
# reusing 'product' and 'manufacturer' string, if available
# /block/sr0 -> /devices/pci0001:00/0001:00:04.0/0001:02:0b.0/usb4/4-2/4-2:1.0/host4/4:0:0:0
# result: usb-storage-odd-Freecom-USIDERev930:0:0:0

# devices may have several interfaces on one PCI device, like IDE:
# pci-0001:00:04.0_ide1-master
# pci-0001:00:04.0_ide2-master
# pci-0001:00:04.0_ide2-slave
# they are marked as ports, it is expected that the driver shows
# ide1 even if there is nothing connected to either master or slave
# interface
#
# match order is important.
# first IDE to find ide-scsi devices.
# then SCSI
# first usb-storage
# then firewire sbp2
# then the rest

SYSFS=/sys
RESULT=1
CDROM=
TYPE=
OPWD="`pwd`"
# Check for 'pwd -P'
if $(pwd -P > /dev/null 2>&1); then
    pwd_cmd="pwd -P"
else
    pwd_cmd="pwd"
fi
full_sysfs_class_path=
full_sysfs_device_path=

if [ -z "$DEVPATH" -a -z "$1" ] ; then
    exit 1
fi

if [ -z "$DEVPATH" ] ; then
    case "$1" in
	$SYSFS/*)
	    DEVPATH="${1#$SYSFS}"
	    ;;
	*)
	    DEVPATH=$1
	    ;;
    esac
fi

if [ ! -d $SYSFS$DEVPATH ] ; then
    exit 1
fi
if [ ! -f $SYSFS$DEVPATH/dev ] ; then
    exit 1
fi

case "$DEVPATH" in
    /block/*)
	TYPE=block
	;;
    /class/*)
	TYPE="${DEVPATH#/class/}"
	TYPE="${TYPE%%/*}"
	;;
    *)
	exit 1
	;;
esac
	
#
##
#

get_port () {
    local type offset port
    type=$1
    offset=$2
    for i in $type[0-9]* ; do
	: i $i
	port="${i#$type}"
	if [ "$port" -lt "$offset" ] ; then offset=$port ; fi
    done
    if [ "$port" != "0" ] ; then
	echo $(($2 - $offset))
    fi
}

handle_block_ide () {
: handle_block_ide $*
	local DEV=$1
	local port idedev idecontroller
	# IDE
	: DEV $DEV
	d=$DEV
	case "$DEV" in
	# remove ide-scsi part, leave only channel info
		*/ide[0-9]*/host[0-9]*)
		while [ ! -z "$d" ] ; do
			case "$d" in
				*/host[0-9]*)
				d="${d%/*}"
				continue
				;;
				*)
				break
				;;
			esac
		done
		;;
	esac
	idedev=$d
	while [ ! -z "$d" ] ; do
		case "$d" in
			*/ide[0-9]*)
			port="${d##*/}"
			d="${d%/*}"
			continue
			;;
			*)
			break
			;;
		esac
	done
	idecontroller=$d
	# port info if the controller has more than one interface
	port="${port#ide}"
	: port $port d $d
	: idedev $idedev kernel_port $port
	case "${idedev##*.}" in
		 0)
		 channel=0
		 ;;
		 1)
		 channel=1
		 ;;
		 *)
		 echo "Error: $idedev is neither master or slave" >&2
	esac
	case "$d" in
		*:mac-io/*)
		: mac-io: $d
		d="`echo $d | sed -e 's@^.*:mac-io[^:]\+:\([^/]\+\).*@mac-io_\1@'`"
		;;
		/sys/devices)
		# PCMCIA devices
		ifname=${full_sysfs_class_path##*/}
		set -- `sed -n "/$ifname/p" /var/lib/pcmcia/stab`
		d="pcmcia-$1"
		;;
		*)
		d="pci-${d##*/}"
		# d="`echo $d | sed -e 's@^.*/\([^/]\{1,\}\)/. at pci-\1@'`"
		;;
	esac

	cd $idecontroller
	port="`get_port ide $port`"
	cd "$OPWD"
	:  hardware_port $port
	if [ -z "$port" ] ; then
		d="${d}-ide-0:$channel"
	else
		d="${d}-ide-${port}:$channel"
	fi
	   
	RESULT=0
}

handle_block_scsi () {
: handle_block_scsi $*
	local DEV=$1
	local cil controller_port controller_dev
	# SCSI device
	cil="${DEV##*/}"
	cil="${cil#*:}"
	controller_dev=$DEV
	while [ ! -z "$controller_dev" ] ; do
		case "$controller_dev" in
			*/host[0-9]*)
			controller_port=$controller_dev
			controller_dev="${controller_dev%/*}"
			;;
			*) break ;;
		esac
	done
	: controller_dev $controller_dev
	: controller_port $controller_port
	# a host controller may have more than one interface/port
	controller_port="${controller_port##*/}"
	controller_port="${controller_port##host}"
	#
	case "$controller_dev" in
		# grand central, old powermacs
		*:gc/*)
		adapter="`echo $controller_dev |  sed -e 's@/[^/]\{1,\}$@@;s@^.*/@@;s@^.*:@@'`"
		bus="gc"
		;;
		*)
		adapter="${controller_dev##*/}"
		bus="pci"
		;;
	esac
	cd "$controller_dev"
	controller_port="`get_port host $controller_port`"
	cd "$OPWD"
	d="$bus-$adapter"
	if [ -z "$controller_port" ] ; then
		controller_port=0
	fi
	d="${d}-scsi-${controller_port}:${cil}"
	RESULT=0
}

handle_block_usb_storage () {
: handle_block_usb_storage $*
	local DEV=$1
	cil="${DEV##*/}"
	cil="${cil#*:}"
	controller_dev=$DEV
	while [ ! -z "$controller_dev" ] ; do
		case "$controller_dev" in
			*/host[0-9]*)
			controller_dev="${controller_dev%/*}"
			;;
			*) break ;;
		esac
	done
	: controller_dev $controller_dev
	#
	# usb-storage devs have a serial number, hopefully unique
	serial=
	if [ -f $controller_dev/../serial ] ; then
		serial="`sed -e 's@^[ -]\{1,\}\|[ -]\{1,\}$@@g;s@[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_0123456789]@@g' < $controller_dev/../serial`"
		: serial XXX_${serial}_XXX
		d="usb-$serial"
		serial="`echo $serial | sed -e 's@[ 0]\{1,\}@@g'`"
	fi
	if [ -z "$serial" ] ; then
		# no serial, broken device
		# has eventually binary junk in vpd
		identifier=
		if [ -f $controller_dev/../product ] ; then
		product="`sed -e 's@^[ -]\{1,\}\|[ -]\{1,\}$@@g;s@[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_0123456789]@@g' < $controller_dev/../product`"
		fi
		if [ -f $controller_dev/../manufacturer ] ; then
		manufacturer="`sed -e 's@^[ -]\{1,\}\|[ -]\{1,\}$@@g;s@[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_0123456789]@@g' < $controller_dev/../manufacturer`"
		fi
		if [ -z "$product" -o -z "$manufacturer" ] ; then
			read idvendor < $controller_dev/../idVendor
			read idproduct < $controller_dev/../idProduct
			identifier="0x${idvendor}-0x${idproduct}"
		else
			identifier="${manufacturer}-${product}"
		fi
		d="usb-${identifier}"
	fi
	d="$d:$cil"
	RESULT=0


}

handle_block () {
    full_sysfs_class_path="$SYSFS$DEVPATH"
    if [ ! -f $full_sysfs_class_path/dev ] ; then return ; fi
    # the main device has (hopefully) a symlink to the real device
    # a partition is a subdir of the main (raw) device
    if [ ! -L $full_sysfs_class_path/device ] ; then
	if [ -f $full_sysfs_class_path/range ] ; then return ; fi
	full_sysfs_class_path="${full_sysfs_class_path%/*}"
	: full_sysfs_class_path "$full_sysfs_class_path"
	if [ ! -L $full_sysfs_class_path/device -o ! -f $full_sysfs_class_path/dev ] ; then
	    return
	fi
    fi
    cd $full_sysfs_class_path/device
    full_sysfs_device_path="`$pwd_cmd`"
    cd "$OPWD"
    D=$full_sysfs_device_path
    case "$D" in
	*/ide[0-9]/[0-9].[0-9]*|*/ide[0-9][0-9]/[0-9][0-9].[0-9]*)
	handle_block_ide "$D"
	;;
	*/usb[0-9]*/[0-9]*/host[0-9]*/[0-9]*:[0-9]*:[0-9]*:[0-9]*)
	handle_block_usb_storage "$D"
	;;
	*/css0/*)
	if [ -r $full_sysfs_device_path/wwpn ]; then
	    read wwpn < $full_sysfs_device_path/wwpn
	fi
	if [ -r $full_sysfs_device_path/fcp_lun ]; then
	    read lun < $full_sysfs_device_path/fcp_lun
	fi
	if [ -r $full_sysfs_device_path/hba_id ]; then
	    read bus_id < $full_sysfs_device_path/hba_id
	fi
	if [ "$bus_id" -a "$wwpn" -a "$lun" ]; then
	    # S/390 zfcp adapter
	    d="ccw-$bus_id-zfcp-$wwpn:$lun"
	    RESULT=0
	else
	    # DASD devices
	    bus="ccw"
	    adapter=${D##*/}
	    d="$bus-$adapter"
	    RESULT=0
	fi
	;;
	*/host[0-9]*/[0-9]*:[0-9]*:[0-9]*:[0-9]*)
	# check for ieee1394 sbp2 
	if test -f $D/ieee1394_id ; then
	    read ieee1394_id < $D/ieee1394_id
	    d="`echo ieee1394-${ieee1394_id} | sed -e 's@:@- at g'`"
	    RESULT=0
	else
	    handle_block_scsi "$D"
	fi
	;;

	*)
	: not handled
	RESULT=1
	return

	;;
    esac
    # look for a partition
    if [ "$full_sysfs_class_path" != "$SYSFS$DEVPATH" ] ; then
	dp="`echo $SYSFS$DEVPATH | sed -e 's@^/.*/@@;s@^[^0-9]\{1,\}@@;s at .*_@@'`"
	case "$d" in
	    *[0-9])
	    d="${d}p${dp}"
	    ;;
	    *)
		d="${d}${dp}"
		;;
	esac
    fi
    # done
    echo "ID_PATH=$d"
}

case "$TYPE" in
	block)
	handle_block
	;;
	*)
	RESULT=1
	;;
esac
exit $RESULT

udev-071-rh.patch:
 Makefile |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE udev-071-rh.patch ---
--- udev-071/Makefile.rh	2006-01-25 09:47:52.000000000 +0100
+++ udev-071/Makefile	2006-01-25 09:48:00.000000000 +0100
@@ -206,7 +206,7 @@
 
 ifeq ($(strip $(USE_SELINUX)),true)
 	UDEV_OBJS += udev_selinux.o
-	LIB_OBJS += -lselinux -lsepol
+	LIB_OBJS += -lselinux 
 	CFLAGS += -DUSE_SELINUX
 endif
 


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/udev/FC-4/sources,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- sources	21 May 2005 03:38:00 -0000	1.22
+++ sources	25 Jan 2006 10:03:30 -0000	1.23
@@ -1 +1 @@
-03be2f56cc13c7f24b0ebf296166d48a  udev-058.tar.bz2
+6325fda7a6f29ef9fce3bcf73db3ad89  udev-071.tar.bz2


Index: start_udev
===================================================================
RCS file: /cvs/dist/rpms/udev/FC-4/start_udev,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- start_udev	5 May 2005 16:24:22 -0000	1.36
+++ start_udev	25 Jan 2006 10:03:30 -0000	1.37
@@ -24,6 +24,8 @@
 
 sysfs_dir=/sys
 
+export TZ=/etc/localtime
+
 [ -d $sysfs_dir/class ] || exit 1
 [ -r /proc/mounts ] || exit 1
 [ -x /sbin/udev ] || exit 1
@@ -138,26 +140,19 @@
 
 # call hotplug with the scsi devices
 scsi_replay () {
-        HOTPLUG=$(cat /proc/sys/kernel/hotplug)
-        [ -z "$HOTPLUG" ] && return 1
+	HOTPLUG="/sbin/udevsend"
 
         scsi_hosts=$(find_d /sys/devices host\*)
-        SEQNUM=1
 
         for host in $scsi_hosts;do
                 [ -d $host ] || continue
                 devs=$(find_f $host type)
                 for dev in $devs;do
                         [ -f $dev ] || continue
-                        export SEQNUM
                         DEVPATH=${dev%/type}
                         DEVPATH=${DEVPATH#/sys}
-                        export DEVPATH
-                        export ACTION=add
-                        $HOTPLUG scsi_device
-                        SEQNUM=$[$SEQNUM + 1]
-                        $HOTPLUG scsi 
-                        SEQNUM=$[$SEQNUM + 1]
+                        /bin/env -i DEVPATH="$DEVPATH" SUBSYSTEM=scsi_device ACTION=add $HOTPLUG scsi_device
+                        /bin/env -i DEVPATH="$DEVPATH" ACTION=add SUBSYSTEM=scsi $HOTPLUG scsi
                 done
         done
         return 0
@@ -197,7 +192,7 @@
 ret=0
 STRING=$"Starting $prog: "
 # propagate $udev_root from /sys
-echo -n "$STRING "
+echo -n $STRING
 
 # mount the tmpfs on ${udev_root%/}, if not already done
 LANG=C awk "\$2 == \"${udev_root%/}\" && \$3 == \"tmpfs\" { exit 1 }" /proc/mounts && {
@@ -227,6 +222,7 @@
 rm -fr "$udev_db"
 make_extra_nodes
 kill_udevd > "$udev_root/null" 2>&1
+udevd -d
 scsi_replay > "$udev_root/null" 2>&1
 ret=$[$ret + $?]
 ide_scan > "$udev_root/null" 2>&1


Index: udev.rules
===================================================================
RCS file: /cvs/dist/rpms/udev/FC-4/udev.rules,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- udev.rules	30 Sep 2005 12:29:27 -0000	1.27
+++ udev.rules	25 Jan 2006 10:03:30 -0000	1.28
@@ -3,38 +3,38 @@
 #
 # default is OWNER="root" GROUP="root", MODE="0600"
 #
+KERNEL="*", OWNER="root" GROUP="root", MODE="0600"
 
 # all block devices
 SUBSYSTEM=="block",		GROUP="disk", MODE="0640"
+KERNEL=="root",			GROUP="disk", MODE="0640"
 
 # console devices
-KERNEL=="tty",			MODE="0666"
-KERNEL=="tty[0-9]",		GROUP="tty", MODE="0660"
-KERNEL=="tty[0-9][0-9]*",	GROUP="tty", MODE="0660"
-KERNEL=="vc/[0-9]*",		GROUP="tty", MODE="0660"
+KERNEL=="tty",			MODE="0666", OPTIONS="last_rule"
+KERNEL=="console", 		MODE="0600", OPTIONS="last_rule"
+KERNEL=="tty[0-9]",		GROUP="tty", MODE="0660", OPTIONS="last_rule"
+KERNEL=="tty[0-9][0-9]*",	GROUP="tty", MODE="0660", OPTIONS="last_rule"
+KERNEL=="vc/[0-9]*",		GROUP="tty", MODE="0660", OPTIONS="last_rule"
 
 # pty devices
 #  Set this to 0660 if you only want users belonging to tty group
 #  to be able to allocate PTYs
-KERNEL=="ptmx",			GROUP="tty", MODE="0666"
-KERNEL=="pty[p-za-e][0-9a-f]*",	GROUP="tty", MODE="0660"
-KERNEL=="tty[p-za-e][0-9a-f]*",	GROUP="tty", MODE="0660"
-KERNEL=="pty/m*",		GROUP="tty", MODE="0660"
-KERNEL=="vc/s*",		GROUP="tty", MODE="0660"
+KERNEL=="ptmx",			GROUP="tty", MODE="0666", OPTIONS="last_rule"
+KERNEL=="pty[p-za-e][0-9a-f]*",	GROUP="tty", MODE="0660", OPTIONS="last_rule"
+KERNEL=="tty[p-za-e][0-9a-f]*",	GROUP="tty", MODE="0660", OPTIONS="last_rule"
+KERNEL=="pty/m*",		GROUP="tty", MODE="0660", OPTIONS="last_rule"
+KERNEL=="vc/s*",		GROUP="tty", MODE="0660", OPTIONS="last_rule"
 
 # serial+dialup devices
-KERNEL=="ttyS*",		GROUP="uucp", MODE="0660"
-KERNEL=="ttyACM*",		GROUP="uucp", MODE="0660"
+KERNEL=="ttyS*",		GROUP="uucp", MODE="0660", OPTIONS="last_rule"
+KERNEL=="ttyACM*",		GROUP="uucp", MODE="0660", OPTIONS="last_rule"
+KERNEL=="ttyUSB*",		GROUP="uucp", MODE="0660", OPTIONS="last_rule"
 KERNEL=="ippp*",		MODE="0660"
 KERNEL=="isdn*",		MODE="0660"
 KERNEL=="isdnctrl*",		MODE="0660"
-SYSFS{dev}="68:0",              NAME="capi20"
-SYSFS{dev}="191:[0-9]*",        NAME="capi/%n"
 KERNEL=="capi*",		MODE="0660"
-
 KERNEL=="dcbri*",		MODE="0660"
 KERNEL=="ircomm*",		GROUP="uucp", MODE="0660"
-KERNEL=="ttyUSB*",		GROUP="uucp", MODE="0660"
 KERNEL=="tts/[0-9]*",		GROUP="uucp", MODE="0660"
 KERNEL=="tts/USB[0-9]*",	GROUP="uucp", MODE="0660"
 
@@ -90,14 +90,14 @@
 KERNEL=="usb/lp*",		GROUP="lp", MODE="0660"
 
 # tape devices
-KERNEL=="ht*",			GROUP="disk", MODE="0640"
-KERNEL=="nht*",			GROUP="disk", MODE="0640"
-KERNEL=="pt[0-9]*",		GROUP="disk", MODE="0640"
-KERNEL=="npt*",			GROUP="disk", MODE="0640"
-KERNEL=="st*",			GROUP="disk", MODE="0640"
-KERNEL=="nst*",			GROUP="disk", MODE="0640"
-KERNEL=="osst*",		GROUP="disk", MODE="0640"
-KERNEL=="nosst*",		GROUP="disk", MODE="0640"
+KERNEL=="ht*",			GROUP="disk", MODE="0660"
+KERNEL=="nht*",			GROUP="disk", MODE="0660"
+KERNEL=="pt[0-9]*",		GROUP="disk", MODE="0660"
+KERNEL=="npt*",			GROUP="disk", MODE="0660"
+KERNEL=="st*",			GROUP="disk", MODE="0660"
+KERNEL=="nst*",			GROUP="disk", MODE="0660"
+KERNEL=="osst*",		GROUP="disk", MODE="0660"
+KERNEL=="nosst*",		GROUP="disk", MODE="0660"
 
 # diskonkey devices
 KERNEL=="diskonkey*",		GROUP="disk", MODE="0640"
@@ -134,9 +134,9 @@
 KERNEL=="dri/*",		MODE="0666"
 
 # usb devices
-KERNEL=="usb/dabusb*",		GROUP="usb", MODE="0660"
-KERNEL=="usb/mdc800*",		GROUP="usb", MODE="0660"
-KERNEL=="usb/rio500",		GROUP="usb", MODE="0660"
+KERNEL=="usb/dabusb*",		MODE="0660"
+KERNEL=="usb/mdc800*",		MODE="0660"
+KERNEL=="usb/rio500",		MODE="0660"
 
 # s390 devices
 KERNEL=="z90crypt",		MODE="0666"
@@ -148,7 +148,7 @@
 
 # create a symlink named after the device map name
 # note devmap_name comes with extras/multipath
-#KERNEL=="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k", SYMLINK="%c"
+#KERNEL=="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k", SYMLINK+="%c"
 
 # DRI devices always go into a subdirectory (as per the LSB spec)
 KERNEL=="card*",		NAME="dri/card%n"
@@ -165,51 +165,51 @@
 KERNEL=="mice",			NAME="input/%k"
 KERNEL=="mouse*",		NAME="input/%k"
 KERNEL=="event*",		NAME="input/%k"
-KERNEL=="js*",			NAME="input/%k"
+KERNEL=="js*",			NAME="input/%k", SYMLINK+="%k"
 KERNEL=="ts*",			NAME="input/%k"
 
 # IEEE1394 (firewire) devices (must be before raw devices below)
-KERNEL=="raw1394",              NAME="%k"
-KERNEL=="dv1394*",              NAME="dv1394/%n"
-KERNEL=="video1394*",           NAME="video1394/%n"
+KERNEL=="raw1394",      	NAME="%k"
+KERNEL=="dv1394*",      	NAME="dv1394/%n"
+KERNEL=="video1394*",   	NAME="video1394/%n"
 
 KERNEL=="raw[0-9]*",		NAME="raw/%k"
 
-KERNEL=="lp[0-9]*",		SYMLINK="par%n"
+KERNEL=="lp[0-9]*",		SYMLINK+="par%n"
 BUS=="usb", KERNEL=="lp[0-9]*",	NAME="usb/%k"
 
 KERNEL=="microcode",		NAME="cpu/%k"
-# provide symlinks for backwards compatibility
-KERNEL="msr[0-9]*",     	NAME="cpu/%n/msr", SYMLINK="cpu/%k"
-KERNEL="cpu[0-9]*",     	NAME="cpu/%n/cpu", SYMLINK="cpu/%k", SYMLINK="%k"
-
-KERNEL=="ram1",			SYMLINK="ram"
-KERNEL=="video0",		SYMLINK="video"
-KERNEL=="radio0",		SYMLINK="radio"
-KERNEL=="audio0",		SYMLINK="audio"
-KERNEL=="dsp0",			SYMLINK="dsp"
-KERNEL=="fb0",			SYMLINK="fb"
-KERNEL=="qft0",			SYMLINK="ftape"
-KERNEL=="isdnctrl0",		SYMLINK="isdnctrl"
-KERNEL=="mixer0",		SYMLINK="mixer"
-KERNEL=="ram0",			SYMLINK="ramdisk"
-KERNEL=="sbpcd0",		SYMLINK="sbpcd"
-KERNEL=="radio0",		SYMLINK="radio"
-KERNEL=="tty0",			SYMLINK="systty"
-KERNEL=="vbi0",			SYMLINK="vbi"
-KERNEL=="null",			SYMLINK="XOR"
+KERNEL="msr[0-9]*",     	NAME="cpu/%n/msr"
+KERNEL="cpu[0-9]*",     	NAME="cpu/%n/cpuid"
+
+KERNEL=="ram1",			SYMLINK+="ram"
+KERNEL=="video0",		SYMLINK+="video"
+KERNEL=="radio0",		SYMLINK+="radio"
+KERNEL=="audio0",		SYMLINK+="audio"
+KERNEL=="dsp0",			SYMLINK+="dsp"
+KERNEL=="fb0",			SYMLINK+="fb"
+KERNEL=="qft0",			SYMLINK+="ftape"
+KERNEL=="isdnctrl0",		SYMLINK+="isdnctrl"
+KERNEL=="mixer0",		SYMLINK+="mixer"
+KERNEL=="ram0",			SYMLINK+="ramdisk"
+KERNEL=="sbpcd0",		SYMLINK+="sbpcd"
+KERNEL=="radio0",		SYMLINK+="radio"
+KERNEL=="tty0",			SYMLINK+="systty"
+KERNEL=="vbi0",			SYMLINK+="vbi"
+KERNEL=="null",			SYMLINK+="XOR"
 
 KERNEL=="tun",			NAME="net/%k"
 
 KERNEL=="device-mapper",	NAME="mapper/control"
 
 # old compat symlinks with enumeration
-KERNEL=="sr[0-9]*",		SYMLINK="cdrom%e"
-KERNEL=="scd[0-9]*",		SYMLINK="cdrom%e"
-KERNEL=="pcd[0-9]*",		SYMLINK="cdrom%e"
-KERNEL=="fd[0-9]*",		SYMLINK="floppy%e"
-KERNEL=="nst[0-9]", BUS=="scsi", 	SYMLINK="tape%e"
-KERNEL=="nosst[0-9]", BUS=="scsi", 	SYMLINK="tape%e"
+KERNEL=="sr[0-9]*",		SYMLINK+="cdrom%e"
+KERNEL=="scd[0-9]*",		SYMLINK+="cdrom%e"
+KERNEL=="pcd[0-9]*",		SYMLINK+="cdrom%e"
+KERNEL=="fd[0-9]*",		SYMLINK+="floppy%e"
+KERNEL=="nst[0-9]", BUS=="scsi", 	SYMLINK+="tape%e", MODE="0660"
+KERNEL=="nosst[0-9]", BUS=="scsi", 	SYMLINK+="tape%e", MODE="0660"
+KERNEL=="sg[0-9]*", BUS="scsi", SYSFS{type}=="6", SYMLINK+="scanner%e", MODE="0660"
 
 KERNEL=="umad*", 		NAME="infiniband/%k"
 KERNEL=="issm*", 		NAME="infiniband/%k"
@@ -221,22 +221,109 @@
 KERNEL=="zappseudo",  		NAME="zap/pseudo"
 KERNEL=="zap[0-9]*",  		NAME="zap/%n"
 
+BUS=="scsi", KERNEL=="sg[0-9]*", SYSFS{type}=="6", NAME="%k", SYMLINK="scanner%e", MODE="0660"
+
 # do not seperate the next 2 lines!!
-KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/ide-media.sh %k", RESULT=="floppy", SYMLINK="floppy%e", NAME{ignore_remove, all_partitions}="%k"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/ide-media.sh %k", RESULT=="floppy", SYMLINK+="floppy%e", NAME{ignore_remove, all_partitions}="%k"
 
-KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", RESULT=="cdrom", SYMLINK="cdrom%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", RESULT=="cdrom", SYMLINK+="cdrom%e"
 
-KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k DVD", SYMLINK="dvd%e"
-KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k DVD", SYMLINK="dvd%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k DVD", SYMLINK+="dvd%e"
+KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k DVD", SYMLINK+="dvd%e"
 
-KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k CD-R", SYMLINK="cdwriter%e"
-KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k CD-R", SYMLINK="cdwriter%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k CD-R", SYMLINK+="cdwriter%e"
+KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k CD-R", SYMLINK+="cdwriter%e"
 
-KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k DVD-R", SYMLINK="dvdwriter%e"
-KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k DVD-R", SYMLINK="dvdwriter%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k DVD-R", SYMLINK+="dvdwriter%e"
+KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k DVD-R", SYMLINK+="dvdwriter%e"
 
 # rename sr* to scd*
 KERNEL=="sr[0-9]*", BUS=="scsi", NAME="scd%n"
 KERNEL=="hd[a-z]*", BUS=="ide", SYSFS{removable}=="1", NAME{ignore_remove}="%k"
 
 KERNEL=="dvb*", PROGRAM=="/etc/udev/scripts/dvb.sh %k", NAME="%c"
+
+#######################################
+# Persistent block device stuff - begin
+#######################################
+# persistent disk links: /dev/disk/{by-id,by-uuid,by-label,by-path}
+# scheme based on "Linux persistent device names", 2004, Hannes Reinecke <hare at suse.de>
+
+ACTION!="add", GOTO="persistent_end"
+SUBSYSTEM!="block", GOTO="persistent_end"
+
+# skip rules for inappropriate block devices
+KERNEL=="ram*|loop*|fd*|nbd*", GOTO="persistent_end"
+
+# never access removable ide devices, the drivers are causing event loops on open()
+BUS=="ide", DRIVER!="ide-cdrom", SYSFS{removable}="1", GOTO="persistent_end"
+
+# by-id (hardware serial number)
+KERNEL=="hd*[!0-9]", IMPORT{program}="/sbin/ata_id --export $tempnode"
+KERNEL=="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}"
+KERNEL=="hd*[0-9]", IMPORT{parent}=="ID_*", SYMLINK+="disk/by-id/ata-$env{ID_MODEL}_$env{ID_SERIAL}-part%n"
+
+KERNEL=="sd*[!0-9]|sr*", SYSFS{ieee1394_id}=="*", ENV{ID_SERIAL}="$sysfs{ieee1394_id}", ENV{ID_BUS}="ieee1394"
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="", IMPORT{program}="/sbin/usb_id -x"
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="", IMPORT{program}="/sbin/scsi_id -g -x -s %p -d $tempnode"
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="", IMPORT{program}="/sbin/scsi_id -g -x -a -s %p -d $tempnode"
+KERNEL=="dasd*[!0-9]", IMPORT{program}="/sbin/dasd_id --export $tempnode"
+KERNEL=="sd*[!0-9]|sr*|dasd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
+
+# for partitions import parent information
+KERNEL=="sd*[0-9]|dasd*[0-9]", IMPORT{parent}=="ID_*"
+KERNEL=="sd*[0-9]|dasd*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
+
+# by-path (shortest physical path)
+KERNEL=="*[!0-9]|sr*", ENV{ID_TYPE}=="?*", IMPORT{program}="/sbin/path_id %p", SYMLINK+="disk/by-path/$env{ID_PATH}"
+KERNEL=="sr*", GOTO="persistent_end"
+KERNEL=="*[0-9]", IMPORT{parent}=="ID_*"
+KERNEL=="*[0-9]", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
+
+# by-label/by-uuid (filesystem properties)
+KERNEL=="*[!0-9]", SYSFS{removable}=="1", GOTO="persistent_end"
+IMPORT{program}="/sbin/vol_id --export $tempnode"
+ENV{ID_FS_UUID}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}"
+ENV{ID_FS_LABEL_SAFE}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_SAFE}"
+
+# BIOS Enhanced Disk Device
+KERNEL=="*[!0-9]", IMPORT{program}="/sbin/edd_id --export $tempnode"
+KERNEL=="*[!0-9]", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}"
+KERNEL=="*[0-9]", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n"
+
+LABEL="persistent_end"
+
+#####################################
+# Persistent block device stuff - end
+#####################################
+
+ACTION=="add", SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'X=%k X=$${X#usbdev} B=$${X%%%%.*} D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c"
+
+ACTION=="add", SUBSYSTEM=="?*", MODALIAS=="?*", RUN+="/sbin/modprobe $modalias"
+
+ACTION=="add", SUBSYSTEM=="pcmcia", MODALIAS=="*", \
+        RUN+="/bin/sh -c 'echo 1 > /sys/$DEVPATH/allow_func_id_match'"
+
+ACTION=="add", SUBSYSTEM=="ieee1394", MODALIAS=="*", \
+	RUN+="/sbin/modprobe $modalias"
+
+ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[07]", \
+	RUN+="/sbin/modprobe sd_mod"
+ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="14", \
+	RUN+="/sbin/modprobe sd_mod"
+ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[45]", \
+	RUN+="/sbin/modprobe sr_mod"
+ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="1", SYSFS{vendor}=="On[sS]tream", \
+	SYSFS{model}!="ADR*", RUN+="/sbin/modprobe osst"
+ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="1", SYSFS{vendor}=="On[sS]tream", \
+	SYSFS{model}=="ADR*", RUN+="/sbin/modprobe st"
+ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="1", SYSFS{vendor}!="On[sS]tream", \
+	RUN+="/sbin/modprobe st"
+ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[23689]", \
+	RUN+="/sbin/modprobe sg"
+
+ACTION=="add", SUBSYSTEM=="firmware", ENV{FIRMWARE}=="*", \
+        RUN+="/sbin/firmware_helper"
+
+RUN+="socket:/org/kernel/udev/monitor"
+


Index: udev.spec
===================================================================
RCS file: /cvs/dist/rpms/udev/FC-4/udev.spec,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -r1.92 -r1.93
--- udev.spec	30 Sep 2005 12:29:27 -0000	1.92
+++ udev.spec	25 Jan 2006 10:03:30 -0000	1.93
@@ -2,31 +2,21 @@
 
 %define debug false
 
-%define with_persistent 0
-
 Summary: A userspace implementation of devfs
 Name: udev
-Version: 058
-Release: 1.0.FC4.1
+Version: 071
+Release: 0.FC4.1
 License: GPL
 Group: System Environment/Base
-%if !%{with_persistent}
 Provides: udev-persistent = 0:%{version}-%{release}
 Obsoletes: udev-persistent < 0:030-5
-%endif
 Source: ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/%{name}-%{version}.tar.bz2
 Source1: udev.rules
 Source3: udev.conf
 Source4: pam_console.dev
 Source5: MAKEDEV.dev
 
-Source11: ata_identify.c
-Source12: ata_identify-Makefile
-
-Source13: udev.get_persistent_device_name.sh
-Source14: udev.get_unique_hardware_path.sh
-Source15: udev.get_unique_drive_id.sh
-Source16: udev.rules.persistent
+Source10: hotplug.rules
 
 Source17: check-cdrom.sh
 Source18: ide-media.sh
@@ -38,15 +28,18 @@
 
 Source23: udevpermconv.sh
 
-Patch1: udev-039-static.patch
-Patch50: udev-039-scsi_id-tmp_dir.patch
+Source24: path_id
+
+Source30: firmware_helper.c
+
+Patch1: udev-071-rh.patch
 
 ExclusiveOS: Linux
 URL: http://kernel.org/pub/linux/utils/kernel/hotplug/
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 Prereq: /bin/sh fileutils hotplug
 Prereq: MAKEDEV >= 0:3.11
-BuildRequires: sed libselinux-devel >= 0:1.17.9-2 flex
+BuildRequires: sed libselinux-devel >= 0:1.17.9-2 flex 
 Requires: libselinux >= 0:1.17.9-2 MAKEDEV
 Conflicts: kernel < 0:2.6 mkinitrd <= 0:4.1.11-1 initscripts < 7.84
 Obsoletes: dev
@@ -59,73 +52,53 @@
 udev is a implementation of devfs in userspace using sysfs and
 /sbin/hotplug. It requires a 2.6 kernel to run properly.
 
-%if %{with_persistent}
-%package -n udev-persistent
-Summary: Persistent device naming with udev
-Group: Utilities/System
-PreReq: udev = 0:%{version}-%{release}
-Requires: sed 
-
-%description -n udev-persistent
-udev-persistent enables persistent device naming with udev.
-%endif
-
-%define add %{nil}
-
 %prep
 %setup -q  
-
-#%patch1 -p1 -b .glibcstatic
-%patch50 -p1 -b .tmp_dir
-
-touch etc/init.d/udev.debian
-
-%if %{with_persistent}
-	mkdir ata_identify
-	cp %{SOURCE11} ata_identify
-	cp %{SOURCE12} ata_identify/Makefile
-%endif
-
+%patch1 -p1 -b .rh
 cp %{SOURCE21} .
 
 %build
 
 # Do not USE_LOG in udev.static, cause it causes segfaults on openlog (bug 136005)
-make CC="gcc $RPM_OPT_FLAGS -DUDEV_STATIC" LD="gcc $RPM_OPT_FLAGS -static" \
+make \
         USE_KLIBC=false \
         USE_SELINUX=true \
 	USE_STATIC=true \
+	STRIP="/bin/true"  \
 	udevdir="/dev" \
 	USE_LOG=false DEBUG=%{debug} \
-	EXTRAS="extras/scsi_id \
-%if %{with_persistent}
-	ata_identify \
-%endif
+	EXTRAS="extras/scsi_id extras/ata_id extras/edd_id \
 	" all
 
 mv udev udev.static
 mv udevstart udevstart.static
 mv extras/scsi_id/scsi_id extras/scsi_id/scsi_id.static
-%if %{with_persistent}
-	mv ata_identify/ata_identify ata_identify/ata_identify.static
-%endif
+mv extras/ata_id/ata_id extras/ata_id/ata_id.static
+mv extras/edd_id/edd_id extras/edd_id/edd_id.static
 make clean
 
-make CC="gcc $RPM_OPT_FLAGS" \
+make CC="gcc $RPM_OPT_FLAGS -fpie -pie" LDFLAGS="-pie" \
         USE_KLIBC=false \
 	USE_SELINUX=true \
 	udevdir="/dev" \
 	USE_LOG=true		\
 	DEBUG=%{debug}		\
+	STRIP="/bin/true"  \
 	EXTRAS="	\
         extras/scsi_id  \
-        extras/chassis_id  \
-%if %{with_persistent}
-        ata_identify \
+        extras/ata_id \
+	extras/usb_id \
+	extras/edd_id \
+	extras/volume_id \
+%ifarch s390 s390x
+	extras/dasd_id \
 %endif
+	extras/run_directory \
 	"
         #extras/volume_id  
 
+%{__cc} %{optflags} -o firmware_helper %{SOURCE30}
+
 %install
 rm -rf $RPM_BUILD_ROOT
 
@@ -134,10 +107,14 @@
 make DESTDIR=$RPM_BUILD_ROOT install \
 	EXTRAS="	\
 	extras/scsi_id	\
-	extras/chassis_id \
-%if %{with_persistent}
-        ata_identify \
+        extras/ata_id \
+	extras/usb_id \
+	extras/edd_id \
+	extras/volume_id \
+%ifarch s390 s390x
+	extras/dasd_id \
 %endif
+	extras/run_directory \
 	"
 
 
@@ -149,30 +126,18 @@
 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/dev.d/{default,block}
 
 install -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/50-udev.rules
+# Backwards compat
+install -m 0644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/hotplug.rules
 
 install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/udev/udev.conf
 
-mv $RPM_BUILD_ROOT%{_sysconfdir}/dev.d/net/hotplug.dev $RPM_BUILD_ROOT%{_sysconfdir}/udev/scripts/
-ln -s ../../udev/scripts/hotplug.dev $RPM_BUILD_ROOT%{_sysconfdir}/dev.d/net/
-# obsoleted by selinux patch
-#install -m 0755 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/dev.d/default
 install -m 0755 udev.static $RPM_BUILD_ROOT/sbin/udev.static
 install -m 0755 udevstart.static $RPM_BUILD_ROOT/sbin/udevstart.static
 install -m 0755 extras/scsi_id/scsi_id.static $RPM_BUILD_ROOT/sbin/scsi_id.static
-%if %{with_persistent}
-	install -m 0755 ata_identify/ata_identify.static $RPM_BUILD_ROOT/sbin/ata_identify.static
-%endif
+install -m 0755 extras/ata_id/ata_id.static $RPM_BUILD_ROOT/sbin/ata_id.static
+install -m 0755 extras/edd_id/edd_id.static $RPM_BUILD_ROOT/sbin/edd_id.static
 
 
-%if %{with_persistent}
-#persistent
-install -m 0755 %{SOURCE13} $RPM_BUILD_ROOT/sbin
-install -m 0755 %{SOURCE14} $RPM_BUILD_ROOT/sbin
-install -m 0755 %{SOURCE15} $RPM_BUILD_ROOT/sbin
-install -m 0644 %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/49-udev-persistent.rules
-#install -m 0644 extras/volume_id/s390-dasd.rules $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/52-udev-s390-persistent.rules
-%endif
-
 install -m 0755 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/udev/scripts/
 ln -s ../../udev/scripts/pam_console.dev $RPM_BUILD_ROOT%{_sysconfdir}/dev.d/default/05-pam_console.dev
 
@@ -183,8 +148,11 @@
 
 install -m 0755 %{SOURCE22} $RPM_BUILD_ROOT%{_sysconfdir}/udev/makedev.d/50-udev.nodes
 
+
+
 mkdir -p $RPM_BUILD_ROOT%{_datadir}/udev
 install -m 0644 %{SOURCE20} $RPM_BUILD_ROOT/sbin/start_udev
+install -m 0644 %{SOURCE24} $RPM_BUILD_ROOT/sbin/path_id
 
 # floppy madness
 for i in 0 1 2 3;do 
@@ -193,7 +161,9 @@
 done
 install -m 0755 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/udev/scripts/
 
+install -m 0755 firmware_helper $RPM_BUILD_ROOT/sbin
 
+mkdir -p -m 0755 $RPM_BUILD_ROOT/lib/firmware
 
 %preun
 if [ $1 = 0 -a -f %{_initrddir}/udev ]; then
@@ -227,23 +197,38 @@
 
 %files
 %defattr(-,root,root)
-%doc COPYING README TODO ChangeLog HOWTO*  docs/* udev.html
+%doc COPYING README TODO ChangeLog HOWTO*  RELEASE-NOTES docs/* udev.html
 %doc etc/udev/redhat/udev.rules
 %attr(0755,root,root) /sbin/udev
 %attr(0755,root,root) /sbin/udev.static
+%attr(0755,root,root) /sbin/udevcontrol
 %attr(0755,root,root) /sbin/udevsend
 %attr(0755,root,root) /sbin/udevd
 %attr(0755,root,root) /sbin/udevstart
 %attr(0755,root,root) /sbin/udevstart.static
 %attr(0755,root,root) /sbin/start_udev
 #%attr(755,root,root) /sbin/udev_volume_id
-%attr(755,root,root) /sbin/chassis_id
+%attr(0755,root,root) /sbin/udev_run_devd
+%attr(0755,root,root) /sbin/udev_run_hotplugd
 %attr(755,root,root) /sbin/scsi_id
 %attr(755,root,root) /sbin/scsi_id.static
+%attr(755,root,root) /sbin/ata_id
+%attr(755,root,root) /sbin/ata_id.static
+%attr(755,root,root) /sbin/edd_id
+%attr(755,root,root) /sbin/edd_id.static
+%attr(755,root,root) /sbin/usb_id
+%attr(755,root,root) /sbin/vol_id
+%attr(755,root,root) /sbin/path_id
+%ifarch s390 s390x
+%attr(755,root,root) /sbin/dasd_id
+%endif
+%attr(755,root,root) /sbin/firmware_helper
 
 %attr(0755,root,root) %{_bindir}/udevtest
 %attr(0755,root,root) %{_bindir}/udevinfo
 
+%attr(0755,root,root) %{_sbindir}/udevmonitor
+
 %attr(0755,root,root) %dir %{_sysconfdir}/udev/
 %attr(0755,root,root) %dir %{_sysconfdir}/udev/rules.d/
 %attr(0755,root,root) %dir %{_sysconfdir}/udev/scripts/
@@ -251,10 +236,8 @@
 %attr(0755,root,root) %dir %{_sysconfdir}/udev/makedev.d/
 %attr(0755,root,root) %{_sysconfdir}/udev/scripts/pam_console.dev
 %config(missingok) %{_sysconfdir}/dev.d/default/05-pam_console.dev
-%config(missingok) %{_sysconfdir}/dev.d/net/hotplug.dev
 
 %attr(0755,root,root) %dir %{_sysconfdir}/dev.d/default
-%attr(0755,root,root) %dir %{_sysconfdir}/dev.d/net
 
 # floppy madness
 %attr(0755,root,root) %dir %{_sysconfdir}/dev.d/
@@ -265,7 +248,6 @@
 %config(missingok) %{_sysconfdir}/dev.d/fd?/*
 %attr(0755,root,root) %{_sysconfdir}/udev/scripts/MAKEDEV.dev
 
-%attr(0755,root,root) %{_sysconfdir}/udev/scripts/hotplug.dev
 %attr(0755,root,root) %{_sysconfdir}/udev/scripts/check-cdrom.sh
 %attr(0755,root,root) %{_sysconfdir}/udev/scripts/ide-media.sh
 %attr(0755,root,root) %{_sysconfdir}/udev/scripts/dvb.sh
@@ -273,34 +255,84 @@
 
 %config %attr(0644,root,root) %{_sysconfdir}/udev/udev.conf
 %config %attr(0644,root,root) %{_sysconfdir}/udev/rules.d/50-udev.rules
+%config %attr(0644,root,root) %{_sysconfdir}/udev/rules.d/hotplug.rules
 %config %attr(0644,root,root) %dir %{_sysconfdir}/udev/makedev.d/50-udev.nodes
 
 #%config(missingok) %{_sysconfdir}/hotplug.d/default/10-udev.hotplug
 %config(noreplace) %attr(0644,root,root) %{_sysconfdir}/scsi_id.config
 
+%dir %attr(0755,root,root) /lib/firmware
 %attr(0644,root,root) %{_mandir}/man8/udev*.8*
 %attr(0644,root,root) %{_mandir}/man8/scsi_id*.8*
 
-%if %{with_persistent}
-%files -n udev-persistent
-	%if %{with_persistent}
-		%attr(0755,root,root) /sbin/ata_identify
-		%attr(0755,root,root) /sbin/ata_identify.static
-	%endif
-
-	%config %attr(0644,root,root) %{_sysconfdir}/udev/rules.d/49-udev-persistent.rules
-	%attr(0755,root,root) /sbin/udev.get_persistent_device_name.sh
-	%attr(0755,root,root) /sbin/udev.get_unique_hardware_path.sh
-	%attr(0755,root,root) /sbin/udev.get_unique_drive_id.sh
-#%attr(0644,root,root) %{_sysconfdir}/udev/rules.d/52-udev-s390-persistent.rules
-%endif
-
 %changelog
-* Fri Sep 30 2005 Harald Hoyer <harald at redhat.com> - 058-1.0.FC4.1
+* Wed Jan 25 2006 Harald Hoyer <harald at redhat.com> - 071-0.FC4.1
+- version 071 for FC-4
+
+* Mon Oct 10 2005 Harald Hoyer <harald at redhat.com> - 069-10
+- removed group usb
+
+* Mon Oct 10 2005 Harald Hoyer <harald at redhat.com> - 069-9
+- added libsepol-devel BuildReq
+- refined persistent rules
+
+* Mon Oct 10 2005 Harald Hoyer <harald at redhat.com> - 069-8
+- corrected c&p edd_id rule, symlink for js devices
+- added -lsepol
+
+* Thu Oct 06 2005 Harald Hoyer <harald at redhat.com> - 069-7
+- added edd_id
+
+* Fri Sep 30 2005 Harald Hoyer <harald at redhat.com> - 069-6
 - special handling of IEEE1394 firewire devices (bug #168093)
-- more msr and cpu symlinks
-- special handling of capi20 and capi
-- added ttyACM
+
+* Fri Sep 23 2005 Harald Hoyer <harald at redhat.com> - 069-5
+- added missing path_id
+
+* Wed Sep 21 2005 Harald Hoyer <harald at redhat.com> - 069-4
+- readded volume_id now known as vol_id, bug #168883
+
+* Thu Sep 15 2005 Bill Nottingham <notting at redhat.com> - 069-3
+- fix firmware loading
+
+* Wed Sep 14 2005 Bill Nottingham <notting at redhat.com> - 069-2
+- own /lib/firmware (#167016)
+
+* Wed Sep 14 2005 Harald Hoyer <harald at redhat.com> - 069-1
+- version 069
+
+* Thu Aug 04 2005 Harald Hoyer <harald at redhat.com> - 063-6
+- compile with pie .. again... (#158935)
+- fixed typo in echo (#138509)
+
+* Tue Aug 02 2005 Harald Hoyer <harald at redhat.com> - 063-5
+- fixed scsi hotplug replay
+
+* Tue Aug 02 2005 Bill Nottingham <notting at redhat.com> - 063-5
+- add rule to allow function id matching for pcmcia after loading
+  modules (#164665)
+
+* Tue Aug 02 2005 Harald Hoyer <harald at redhat.com> - 063-4
+- fixed typo for tape devices and changed mode to 0660
+
+* Thu Jul 28 2005 Harald Hoyer <harald at redhat.com> - 063-3
+- changed "SYMLINK=" to "SYMLINK+="
+
+* Sun Jul 24 2005 Bill Nottingham <notting at redhat.com> - 063-2
+- don't set SEQNUM for scsi replay events (#163729)
+
+* Tue Jul 19 2005 Bill Nottingham <notting at redhat.com> - 063-1
+- update to 063
+- handle the hotplug events for ieee1394, scsi, firmware
+
+* Fri Jul 08 2005 Bill Nottingham <notting at redhat.com> - 062-2
+- update to 062
+- use included ata_id, build usb_id
+- load modules for pci, usb, pcmcia
+- ship RELEASE-NOTES in %%doc
+
+* Thu Jul 07 2005 Harald Hoyer <harald at redhat.com> - 058-2
+- compile with pie
 
 * Fri May 20 2005 Bill Nottingham <notting at redhat.com> - 058-1
 - update to 058, fixes conflict with newer kernels (#158371)


--- ata_identify-Makefile DELETED ---


--- ata_identify.c DELETED ---


--- udev-039-dircheck.patch DELETED ---


--- udev-039-media.patch DELETED ---


--- udev-039-scsi_id-tmp_dir.patch DELETED ---


--- udev-039-static.patch DELETED ---


--- udev-048-selinux.patch DELETED ---


--- udev-056-selinux.patch DELETED ---


--- udev.get_persistent_device_name.sh DELETED ---


--- udev.get_unique_drive_id.sh DELETED ---


--- udev.get_unique_hardware_path.sh DELETED ---


--- udev.permissions DELETED ---


--- udev.rules.persistent DELETED ---




More information about the fedora-cvs-commits mailing list