Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37536660
en ru br
ALT Linux repos
S:181-alt9

Group :: System/Legacy libraries
RPM: libudev0

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: libudev0-181-alt.patch
Download


 .gear/rules                                        |   2 +
 .../tags/a48d2cddb812a9bb9e9bd349c5c4734789baa814  |  23 +
 .gear/tags/list                                    |   1 +
 Makefile.am                                        |  28 +-
 configure.ac                                       |   2 +-
 rules/altlinux/40-ignore-remove.rules              |   7 +
 rules/rules.d/50-udev-default.rules                |   8 +-
 scripts/udevd                                      | 312 ++++++++
 scripts/udevd-final                                |  87 +++
 src/extras/cdrom_id/cdrom_id.c                     |   1 +
 src/extras/floppy/create_floppy_devices.c          |   1 +
 src/extras/keymap/keyboard-force-release.sh.in     |   2 +-
 src/extras/keymap/keymap.c                         |   2 +-
 src/extras/mtd_probe/mtd_probe.h                   |   1 +
 src/extras/scsi_id/scsi_id.config                  |  17 +
 src/extras/scsi_id/scsi_serial.c                   |   1 +
 src/libudev-device-private.c                       |   1 +
 src/libudev-device.c                               |   1 +
 src/libudev-enumerate.c                            |   1 +
 src/libudev-util-private.c                         |   6 +
 src/udev-builtin-input_id.c                        |   4 +
 src/udev-event.c                                   |   1 +
 src/udev-node.c                                    |   1 +
 src/udev-rules.c                                   |   1 +
 src/udevadm-info.c                                 |   1 +
 src/udevd.c                                        |  34 +
 udev.spec                                          | 802 +++++++++++++++++++++
 27 files changed, 1329 insertions(+), 19 deletions(-)
diff --git a/.gear/rules b/.gear/rules
new file mode 100644
index 00000000..52923ebb
--- /dev/null
+++ b/.gear/rules
@@ -0,0 +1,2 @@
+tar: @version@:.
+diff: @version@:. . name=@name@-@version@-alt.patch
diff --git a/.gear/tags/a48d2cddb812a9bb9e9bd349c5c4734789baa814 b/.gear/tags/a48d2cddb812a9bb9e9bd349c5c4734789baa814
new file mode 100644
index 00000000..8ebb9133
--- /dev/null
+++ b/.gear/tags/a48d2cddb812a9bb9e9bd349c5c4734789baa814
@@ -0,0 +1,23 @@
+object 3b2e525a5621784287601573dbf8b55d76cbe407
+type commit
+tag 181
+tagger Kay Sievers <kay.sievers@vrfy.org> 1328576339 +0100
+
+udev 181
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.12 (GNU/Linux)
+
+iQIcBAABAgAGBQJPMHdTAAoJEKnBdsx/rH1WVHcP/2dy9jfYk2IJaktaOSwL5hjf
+h+LwbkOKuj0PixPgVXQ8eWc6lJdwNXtCqN+F8bN3Y+jRkB57Z7TkpqcMZDYSG6Jq
+XAjCYT5W6GMU9k1FbcoAIYPJyMORrrG6086Ughi065VmHg/voVpSPl//nGIyqLy4
+4SOzyOG2dWOc6P5ouKslFstyk8AlHfednfa2PC5jLh2OdOF0szlYpWsbhZy8b3cK
+3n02Qn22RwCnv1BkQ+pnhrmmOE9rjOIfqvsVoLcEnUQ2NqT6MLMS4aFSQNkEbfDy
+oRLaG1BxJt0Ba57fVstzja0J61K0zmaKfKGrUmk2AI/R9PYTs/wJk9QJnwvrbtfI
+jzRUth2utvYG1uuohBhTwiY00gsI3SBcP2JlEPJag/T9Oy1JuQiRc+u/2xUuYIAV
+n7beop9Ez5X4VML+0+VQ1pJoTD8Y2Lb0lfKb8/JcVYtEvUMxt78CsHNvfaEXmcpH
+fcXco++wCBI5YIbtSyKWnDXclxFPiaUtO/g1YNRfYNj55Ibhe8dSMdcHc1HEhZiG
+ddXzXgANgFx2GJmQ/bjfGsSWywh4DFhoJ4wgr7h00krqyIyAkIRVGAw/7sQpPXZw
+mUz/w4x53Q5JTr9BRkQEanT6KIVpeyLIDZvmcLKEhG8QegwCFhfs24Ewx0LXcflk
+xKnUO1PLT/CmMpOmpxke
+=Ce+9
+-----END PGP SIGNATURE-----
diff --git a/.gear/tags/list b/.gear/tags/list
new file mode 100644
index 00000000..3c388482
--- /dev/null
+++ b/.gear/tags/list
@@ -0,0 +1 @@
+a48d2cddb812a9bb9e9bd349c5c4734789baa814 181
diff --git a/Makefile.am b/Makefile.am
index 08431f36..cbe6ad9f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -114,9 +114,11 @@ src_libudev_private_la_SOURCES =\
 	src/libudev-device-private.c \
 	src/libudev-queue-private.c
 
+src_libudev_private_la_LIBADD = -lrt
+
 if WITH_SELINUX
 src_libudev_private_la_SOURCES += src/libudev-selinux-private.c
-src_libudev_private_la_LIBADD = $(SELINUX_LIBS)
+src_libudev_private_la_LIBADD += $(SELINUX_LIBS)
 endif
 
 pkgconfigdir = $(libdir)/pkgconfig
@@ -166,7 +168,8 @@ dist_udevrules_DATA = \
 	rules/rules.d/75-tty-description.rules \
 	rules/rules.d/78-sound-card.rules \
 	rules/rules.d/80-drivers.rules \
-	rules/rules.d/95-udev-late.rules
+	rules/rules.d/95-udev-late.rules \
+	rules/altlinux/40-ignore-remove.rules
 
 udevconfdir = $(sysconfdir)/udev
 dist_udevconf_DATA = src/udev.conf
@@ -266,6 +269,13 @@ src_udevadm_CFLAGS = $(udev_common_CFLAGS)
 src_udevadm_LDADD = $(udev_common_LDADD)
 src_udevadm_CPPFLAGS = $(udev_common_CPPFLAGS)
 
+# ------------------------------------------------------------------------------
+# Init scripts
+# ------------------------------------------------------------------------------
+udevinitdir = $(sysconfdir)/rc.d/init.d
+udevinit_SCRIPTS = scripts/udevd scripts/udevd-final
+sysconf_DATA = src/extras/scsi_id/scsi_id.config
+
 # ------------------------------------------------------------------------------
 # udev man pages
 # ------------------------------------------------------------------------------
@@ -340,13 +350,6 @@ src_extras_cdrom_id_cdrom_id_LDADD = src/libudev-private.la
 pkglibexec_PROGRAMS += src/extras/cdrom_id/cdrom_id
 dist_udevrules_DATA += src/extras/cdrom_id/60-cdrom_id.rules
 
-# ------------------------------------------------------------------------------
-# collect - trigger action when a collection of devices appeared
-# ------------------------------------------------------------------------------
-src_extras_collect_collect_SOURCES = src/extras/collect/collect.c
-src_extras_collect_collect_LDADD = src/libudev-private.la
-pkglibexec_PROGRAMS += src/extras/collect/collect
-
 # ------------------------------------------------------------------------------
 # scsi_id - SCSI inquiry to get various serial numbers
 # ------------------------------------------------------------------------------
@@ -628,7 +631,7 @@ dist_udevkeymapforcerel_DATA = \
 	src/extras/keymap/force-release-maps/samsung-other \
 	src/extras/keymap/force-release-maps/common-volume-keys
 
-src/extras/keymap/keys.txt: $(INCLUDE_PREFIX)/linux/input.h
+src/extras/keymap/keys.txt: $(INCLUDE_PREFIX)/linux-default/include/linux/input-event-codes.h
 	$(AM_V_at)mkdir -p src/extras/keymap
 	$(AM_V_GEN)$(AWK) '/^#define.*KEY_[^ ]+[ \t]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' < $< | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@
 
@@ -655,6 +658,7 @@ src_extras_mtd_probe_mtd_probe_SOURCES =  \
 	src/extras/mtd_probe/mtd_probe.h \
 	src/extras/mtd_probe/probe_smartmedia.c
 src_extras_mtd_probe_mtd_probe_CPPFLAGS = $(AM_CPPFLAGS)
+src_extras_mtd_probe_mtd_probe_CFLAGS = -I$(includedir)/linux-default/include
 dist_udevrules_DATA += src/extras/mtd_probe/75-probe_mtd.rules
 pkglibexec_PROGRAMS += src/extras/mtd_probe/mtd_probe
 endif
@@ -686,8 +690,8 @@ dist_udevrules_DATA += src/extras/udev-acl/70-udev-acl.rules
 pkglibexec_PROGRAMS += src/udev-acl
 
 udevacl-install-hook:
-	mkdir -p $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d
-	ln -sf $(libexecdir)/udev/udev-acl $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d/udev-acl.ck
+	mkdir -p $(DESTDIR)$(prefix)/libexec/ConsoleKit/run-seat.d
+	ln -sf $(libexecdir)/udev/udev-acl $(DESTDIR)$(prefix)/libexec/ConsoleKit/run-seat.d/udev-acl.ck
 
 INSTALL_EXEC_HOOKS += udevacl-install-hook
 endif
diff --git a/configure.ac b/configure.ac
index e7c10d5c..b0619d47 100644
--- a/configure.ac
+++ b/configure.ac
@@ -77,7 +77,7 @@ AS_IF([test "x$with_selinux" = "xyes"], [
               [],
               AC_MSG_ERROR([SELinux selected but libselinux not found]))
        LIBS=$LIBS_save
-       SELINUX_LIBS="-lselinux -lsepol"
+       SELINUX_LIBS="-lselinux"
        AC_DEFINE(WITH_SELINUX, [1] ,[SELinux support.])
 ])
 AC_SUBST([SELINUX_LIBS])
diff --git a/rules/altlinux/40-ignore-remove.rules b/rules/altlinux/40-ignore-remove.rules
new file mode 100644
index 00000000..79546381
--- /dev/null
+++ b/rules/altlinux/40-ignore-remove.rules
@@ -0,0 +1,7 @@
+# do not edit this file, it will be overwritten on update
+
+# keep devices after driver unload
+KERNEL=="ppp", OPTIONS+="ignore_remove"
+KERNEL=="tun", OPTIONS+="ignore_remove"
+KERNEL=="fuse", OPTIONS+="ignore_remove"
+KERNEL=="cuse", OPTIONS+="ignore_remove"
diff --git a/rules/rules.d/50-udev-default.rules b/rules/rules.d/50-udev-default.rules
index 5ad787fc..863c3a8a 100644
--- a/rules/rules.d/50-udev-default.rules
+++ b/rules/rules.d/50-udev-default.rules
@@ -8,9 +8,9 @@ KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620"
 KERNEL=="vcs|vcs[0-9]*|vcsa|vcsa[0-9]*", GROUP="tty"
 
 # serial
-KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
-KERNEL=="mwave", GROUP="dialout"
-KERNEL=="hvc*|hvsi*", GROUP="dialout"
+KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="uucp"
+KERNEL=="mwave", GROUP="uucp"
+KERNEL=="hvc*|hvsi*", GROUP="uucp"
 
 # virtio serial / console ports
 KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}"
@@ -36,7 +36,7 @@ KERNEL=="agpgart", GROUP="video"
 KERNEL=="pmu", GROUP="video"
 KERNEL=="nvidia*|nvidiactl*", GROUP="video"
 SUBSYSTEM=="graphics", GROUP="video"
-SUBSYSTEM=="drm", GROUP="video"
+SUBSYSTEM=="drm", GROUP="xgrp"
 
 # sound
 SUBSYSTEM=="sound", GROUP="audio", \
diff --git a/scripts/udevd b/scripts/udevd
new file mode 100644
index 00000000..0e6ef3fb
--- /dev/null
+++ b/scripts/udevd
@@ -0,0 +1,312 @@
+#! /bin/sh
+#
+# udevd	init script to setup /dev
+#
+# chkconfig: 2345 02 95
+# description: manage user-space device nodes in /dev
+# processname: udevd
+# pidfile: /run/udev/udevd.pid
+# config: /etc/udev/udev.conf
+
+WITHOUT_RC_COMPAT=1
+
+. /etc/init.d/functions
+
+SourceIfNotEmpty /etc/udev/udev.conf
+
+: ${udev_root:=/dev}
+: ${udev_tmpfs:=1}
+
+udev_root=${udev_root%/}
+
+prog=udevd
+sysfs_dir=/sys
+udevd=/sbin/udevd
+
+LOCKFILE=/var/lock/subsys/udevd
+RETVAL=0
+
+PIDFILE=/dev/.udev/udevd.pid
+! test -d /run/udev || PIDFILE=/run/udev/udevd.pid
+
+RESTORECON=/sbin/restorecon
+[ -x "$RESTORECON" ] && mountpoint -q /selinux ||
+	RESTORECON=
+
+restore_context()
+{
+	[ -n "$RESTORECON" ] || return 0
+	"$RESTORECON" -R "$@"
+}
+
+# If running from rc.sysinit, need to use mount -n (mtab is not yet writable)
+mount_n="${RUN_FROM_SYSINIT:+-n}"
+
+get_pts_attributes()
+{
+	# Warning: /dev/null is not present when this function is called.
+
+	local rc line opts
+	line=`grep -s "[[:space:]]$udev_root/pts[[:space:]]" /proc/mounts | head -1`
+	test -n "$line" || line=`grep -s "[[:space:]]$udev_root/pts[[:space:]]" /etc/fstab | head -1`
+	test -n "$line" || return 1
+	set -- $line ''
+	opts=$4
+	echo $opts
+	return 0
+}
+
+attach_pts_filesystem()
+{
+	# Warning: /dev/null is not present when this function is called.
+
+	test -f /proc/mounts || return 0
+	local RETVAL opts rc
+	opts="`get_pts_attributes`"
+	rc=$?
+	RETVAL=0
+	if test $rc = 0; then
+		mkdir -p "$udev_root"/pts || return $?
+		if grep -q "[[:space:]]$udev_root/pts[[:space:]]" /proc/mounts; then
+			mount -n --move pts "$udev_root"/pts
+		else
+			mount $mount_n -t devpts -o $opts \
+				devpts "$udev_root"/pts
+		fi
+		RETVAL=$?
+	fi
+	return $RETVAL
+}
+
+attach_shm_filesystem()
+{
+	# Warning: /dev/null is not present when this function is called.
+
+	test -f /proc/mounts || return 0
+	mkdir -p "$udev_root"/shm || return $?
+	if grep -q "[[:space:]]$udev_root/shm[[:space:]]" /proc/mounts; then
+		# Already mounted - move to overmounted /dev.
+		mount -n --move shm "$udev_root"/shm
+	elif egrep -q "^[^#][^[:space:]]*[[:space:]]+$udev_root/shm[[:space:]]" /etc/fstab; then
+		# Listed in fstab - use options from there.
+		# If run from rc.sysinit, defer mount to the later step in
+		# rc.sysinit to get correct mtab entry.
+		if [ -z "$RUN_FROM_SYSINIT" ]; then
+			mount $mount_n "$udev_root"/shm
+		fi
+	else
+		# Not listed in fstab - mount with default options.
+		mount $mount_n -t tmpfs shmfs "$udev_root"/shm
+	fi
+	local RETVAL=$?
+	return $RETVAL
+}
+
+startup_failure()
+{
+	msg_starting "udevd"
+	printf "%s" "$1"
+	failure "udevd startup"
+	echo
+}
+
+prepare_filesystem()
+{
+	local RETVAL mounted
+
+	# Check system before trying to start udev
+	[ -d /sys/devices ] || {
+		startup_failure "/sys is not mounted"
+		return 1
+	}
+	[ -w /sys/class/mem/null/uevent ] || {
+		startup_failure "kernel too old - no /sys/class/mem/null/uevent"
+		return 1
+	}
+	[ -r /sys/kernel/uevent_seqnum ] || {
+		startup_failure "kernel too old - no /sys/kernel/uevent_seqnum"
+		return 1
+	}
+
+	if [ ! -d $udev_root ]; then
+		mkdir -p $udev_root || return 1
+	fi
+
+	# Check if udevd is already running
+	if start-stop-daemon --stop --exec $udevd --pidfile "$PIDFILE" \
+			--user root --test >/dev/null; then
+		[ -n "$RUN_FROM_SYSINIT" ] || touch "$LOCKFILE"
+		return 0
+	fi
+
+	# Check if we should mount a tmpfs to $udev_root
+	if [ "x$udev_tmpfs" != "x1" ]; then
+		/sbin/udevadm control --property="STARTUP=1"
+		/sbin/udevadm trigger
+		/sbin/udevadm settle
+		/sbin/udevadm control --property="STARTUP="
+		RETVAL=$?
+		return $RETVAL
+	fi
+
+	cd "$udev_root"
+	RETVAL=$[$RETVAL+$?]
+	[ $RETVAL -ne 0 ] && return $RETVAL
+	if test -d /run; then
+		if ! mountpoint -q /run; then
+			mount $mount_n -t tmpfs -o mode=755,$tmpfs_options runfs /run
+			RETVAL=$[$RETVAL+$?]
+		fi
+		mkdir -p /run/udev 2>/dev/null
+	fi
+	if ! mountpoint -q $udev_root; then
+		mounted=0
+		devfs=tmpfs
+		! grep -q "^nodev[[:space:]]*devtmpfs" /proc/filesystems || devfs=devtmpfs
+		mount $mount_n -t $devfs -o mode=755,$tmpfs_options udevfs $udev_root
+		RETVAL=$[$RETVAL+$?]
+	else
+		mounted=1
+		RETVAL=0
+	fi
+
+	attach_pts_filesystem && attach_shm_filesystem
+
+	if [ $RETVAL = 0 ]; then
+		# $udev_root is partially populated already,
+		# so set SELinux context for it now.
+		restore_context "$udev_root"
+
+		# We want to start udevd ourselves if it isn't already running.
+		# This lets udevd run at a sane nice level...
+		if [ -z "$RUN_FROM_SYSINIT" ]; then
+			start_daemon --lockfile "$LOCKFILE" --expect-user root --pidfile "$PIDFILE" -- $udevd --daemon
+		else
+			start_daemon --expect-user root --pidfile "$PIDFILE" -- $udevd --daemon
+		fi
+		RETVAL=$[$RETVAL+$?]
+		[ "$RETVAL" == "0" ] && echo "" >/proc/sys/kernel/hotplug
+		/sbin/udevadm control --property="STARTUP=1"
+		/sbin/udevadm trigger
+		action "Populating /dev:" /sbin/udevadm settle
+		/sbin/udevadm control --property="STARTUP="
+		RETVAL=$[$RETVAL+$?]
+
+		if [ -z "$RUN_FROM_SYSINIT" ]; then
+			mount -o remount,$tmpfs_options $udev_root
+			RETVAL=$[$RETVAL+$?]
+			if test -d /run; then
+				mount -o remount,$tmpfs_options /run
+				RETVAL=$[$RETVAL+$?]
+			fi
+		fi
+	fi
+
+	[ $RETVAL != 0 -a $mounted = 0 ] && detach_filesystem
+	return $RETVAL
+}
+
+detach_pts_filesystem()
+{
+	local opts
+	opts="`get_pts_attributes`"
+	if test $? = 0; then
+		umount $udev_root/pts 2>/dev/null
+		umount -l $udev_root/pts 2>/dev/null
+	fi
+	return 0
+}
+
+detach_filesystem()
+{
+	# Check if we had to mount a tmpfs to $udev_root
+	[ "x$udev_tmpfs" = "x1" ] || return 0
+	umount $udev_root/shm
+	detach_pts_filesystem
+	umount -l $udev_root
+	attach_pts_filesystem
+}
+
+start()
+{
+	# don't use udev if sysfs is not mounted.
+	[ ! -d $sysfs_dir/block ] && exit 1
+
+	prepare_filesystem
+	RETVAL=$?
+	return $RETVAL
+}
+
+
+stop()
+{
+	stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" $udevd ||
+		RETVAL=$?
+	return $RETVAL
+}
+
+umount_dev()
+{
+	stop
+	echo -n $"Removing udev device nodes: "
+	detach_filesystem
+	echo_success
+	echo
+}
+
+start_udevd_only()
+{
+	start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" \
+		--expect-user root -- $udevd --daemon ||
+		RETVAL=$?
+	return $RETVAL
+}
+
+restart()
+{
+	stop
+	start_udevd_only
+	return $RETVAL
+}
+
+case "$1" in
+	start)
+		start
+		;;
+	start_udevd_only)
+		start_udevd_only
+		;;
+	stop)
+		stop
+		;;
+	status)
+		status --pidfile "$PIDFILE" -- $prog
+		exit $?
+		;;
+	condrestart)
+		if [ -e "$LOCKFILE" ]; then
+			restart
+		fi
+		;;
+	condstop)
+		msg=`status --pidfile "$PIDFILE" -- $prog`
+		RETVAL=$?
+		if [ $RETVAL -eq 0 ]; then
+			stop
+		fi
+		;;
+	restart)
+		restart
+		;;
+	reload)
+		# nothing to do here
+		;;
+	umount)
+		umount_dev
+		;;
+	*)
+		echo "Usage: $0 {start|stop|status|restart|condrestart|condstop|umount}"
+		exit 1
+esac
+
+exit $RETVAL
diff --git a/scripts/udevd-final b/scripts/udevd-final
new file mode 100644
index 00000000..50fdf685
--- /dev/null
+++ b/scripts/udevd-final
@@ -0,0 +1,87 @@
+#!/bin/sh
+#
+# udevd-final	Perform final udevd startup steps.
+#
+# chkconfig: 2345 32 69
+# description:	Retries udev events which could not be processed earlier \
+#		during startup.
+
+# Do not load RH compatibility interface.
+WITHOUT_RC_COMPAT=1
+
+# Source function library.
+. /etc/init.d/functions
+
+LOCKFILE=/var/lock/subsys/udevd-final
+RETVAL=0
+
+start()
+{
+	local f t udev_root
+	udev_root=$(udevadm info --run 2>/dev/null)
+	[ -w /etc/udev/rules.d/ -a -n "$udev_root" ] &&
+		for f in $udev_root/tmp-rules--*; do
+			[ -s "$f" ] || continue
+			t="${f##*/}"
+			t="${t#tmp-rules--}"
+			[ -n "$t" ] || continue
+			cat "$f" >>/etc/udev/rules.d/"$t"
+		done
+	action "Handling remaining udev events:" udevadm trigger --type=failed \
+		&& touch "$LOCKFILE"
+	RETVAL=$?
+	return $RETVAL
+}
+
+stop()
+{
+	rm -f "$LOCKFILE"
+}
+
+restart()
+{
+	stop
+	start
+}
+
+status()
+{
+	if [ -f "$LOCKFILE" ]; then
+		echo "This service was last time (re-)started at $(LANG=C LANGUAGE=C /bin/ls -l --time-style='+%Y-%m-%d %H:%M:%S %z' "$LOCKFILE" |tr -s ' ' |cut --fields 6-8 -d' ')."
+		echo "No other status information available."
+	else
+		echo "This service hasn't been started since stopped last time."
+	fi
+}
+
+# See how we were called.
+case "$1" in
+	start)
+		start
+		;;
+	stop)
+		stop
+		;;
+	restart)
+		restart
+		;;
+	reload)
+		;;
+	condstop)
+		if [ -e "$LOCKFILE" ]; then
+			stop
+		fi
+		;;
+	condrestart|condreload)
+		# "condrestart" is called during package upgrade.
+		# Nothing to do here - this is not a normal service.
+		;;
+	status)
+		status
+		;;
+	*)
+		msg_usage "${0##*/} {start|stop|restart|reload|status|condrestart|condreload|condstop}"
+		RETVAL=1
+esac
+
+exit $RETVAL
diff --git a/src/extras/cdrom_id/cdrom_id.c b/src/extras/cdrom_id/cdrom_id.c
index f90d52ec..64b4a0ea 100644
--- a/src/extras/cdrom_id/cdrom_id.c
+++ b/src/extras/cdrom_id/cdrom_id.c
@@ -36,6 +36,7 @@
 #include <sys/stat.h>
 #include <sys/time.h>
 #include <sys/ioctl.h>
+#include <sys/sysmacros.h>
 #include <linux/cdrom.h>
 
 #include "libudev.h"
diff --git a/src/extras/floppy/create_floppy_devices.c b/src/extras/floppy/create_floppy_devices.c
index f71ef0d8..3ac51f32 100644
--- a/src/extras/floppy/create_floppy_devices.c
+++ b/src/extras/floppy/create_floppy_devices.c
@@ -24,6 +24,7 @@
 #include <stdlib.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/sysmacros.h>
 #include <fcntl.h>
 #include <unistd.h>
 #include <string.h>
diff --git a/src/extras/keymap/keyboard-force-release.sh.in b/src/extras/keymap/keyboard-force-release.sh.in
index dd040ceb..597a3a69 100755
--- a/src/extras/keymap/keyboard-force-release.sh.in
+++ b/src/extras/keymap/keyboard-force-release.sh.in
@@ -1,4 +1,4 @@
-#!@rootprefix@/bin/sh -e
+#!/bin/sh -e
 # read list of scancodes, convert hex to decimal and
 # append to the atkbd force_release sysfs attribute
 # $1 sysfs devpath for serioX
diff --git a/src/extras/keymap/keymap.c b/src/extras/keymap/keymap.c
index 92ec67b3..a159aa61 100644
--- a/src/extras/keymap/keymap.c
+++ b/src/extras/keymap/keymap.c
@@ -36,7 +36,7 @@
 #include <linux/limits.h>
 #include <linux/input.h>
 
-const struct key* lookup_key (const char *str, unsigned int len);
+const struct key* lookup_key (const char *str, size_t len);
 
 #include "keys-from-name.h"
 #include "keys-to-name.h"
diff --git a/src/extras/mtd_probe/mtd_probe.h b/src/extras/mtd_probe/mtd_probe.h
index 2a37ede5..49c19183 100644
--- a/src/extras/mtd_probe/mtd_probe.h
+++ b/src/extras/mtd_probe/mtd_probe.h
@@ -18,6 +18,7 @@
  */
 
 #include <mtd/mtd-user.h>
+#include <stdint.h>
 
 /* Full oob structure as written on the flash */
 struct sm_oob {
diff --git a/src/extras/scsi_id/scsi_id.config b/src/extras/scsi_id/scsi_id.config
new file mode 100644
index 00000000..d2a10a5f
--- /dev/null
+++ b/src/extras/scsi_id/scsi_id.config
@@ -0,0 +1,17 @@
+#
+# scsi_id configuration
+#
+# lower or upper case has no effect on the left side. Quotes (") are
+# required for spaces in values. Model is the same as the SCSI
+# INQUIRY product identification field. Per the SCSI INQUIRY, the vendor
+# is limited to 8 bytes, model to 16 bytes.
+#
+# The first matching line found is used. Short matches match longer ones,
+# if you do not want such a match space fill the extra bytes. If no model
+# is specified, only the vendor string need match.
+#
+# options=<any scsi_id command line options>
+# vendor=string[,model=string],options=<per-device scsi_id options>
+
+# some libata drives require vpd page 0x80
+vendor="ATA",options=-p 0x80
diff --git a/src/extras/scsi_id/scsi_serial.c b/src/extras/scsi_id/scsi_serial.c
index f1d63f40..dac2d024 100644
--- a/src/extras/scsi_id/scsi_serial.c
+++ b/src/extras/scsi_id/scsi_serial.c
@@ -20,6 +20,7 @@
 #include <sys/types.h>
 #include <sys/ioctl.h>
 #include <sys/stat.h>
+#include <sys/sysmacros.h>
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
diff --git a/src/libudev-device-private.c b/src/libudev-device-private.c
index 13fdb8eb..561e29c7 100644
--- a/src/libudev-device-private.c
+++ b/src/libudev-device-private.c
@@ -18,6 +18,7 @@
 #include <fcntl.h>
 #include <string.h>
 #include <sys/stat.h>
+#include <sys/sysmacros.h>
 
 #include "libudev.h"
 #include "libudev-private.h"
diff --git a/src/libudev-device.c b/src/libudev-device.c
index 10f28b8c..948c0822 100644
--- a/src/libudev-device.c
+++ b/src/libudev-device.c
@@ -23,6 +23,7 @@
 #include <sys/stat.h>
 #include <sys/ioctl.h>
 #include <sys/socket.h>
+#include <sys/sysmacros.h>
 #include <linux/sockios.h>
 
 #include "libudev.h"
diff --git a/src/libudev-enumerate.c b/src/libudev-enumerate.c
index 034d96fe..1c83c381 100644
--- a/src/libudev-enumerate.c
+++ b/src/libudev-enumerate.c
@@ -20,6 +20,7 @@
 #include <stdbool.h>
 #include <sys/stat.h>
 #include <sys/param.h>
+#include <sys/sysmacros.h>
 
 #include "libudev.h"
 #include "libudev-private.h"
diff --git a/src/libudev-util-private.c b/src/libudev-util-private.c
index 08f0ba22..9b3c8bf0 100644
--- a/src/libudev-util-private.c
+++ b/src/libudev-util-private.c
@@ -115,6 +115,9 @@ int util_delete_path(struct udev *udev, const char *path)
 
 uid_t util_lookup_user(struct udev *udev, const char *user)
 {
+	if (getenv("RUN_INITRD") != NULL)
+		return 0;
+
         char *endptr;
         size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
         char buf[buflen];
@@ -140,6 +143,9 @@ uid_t util_lookup_user(struct udev *udev, const char *user)
 
 gid_t util_lookup_group(struct udev *udev, const char *group)
 {
+	if (getenv("RUN_INITRD") != NULL)
+		return 0;
+
         char *endptr;
         size_t buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
         char *buf;
diff --git a/src/udev-builtin-input_id.c b/src/udev-builtin-input_id.c
index a062ef7c..26398529 100644
--- a/src/udev-builtin-input_id.c
+++ b/src/udev-builtin-input_id.c
@@ -30,6 +30,10 @@
 
 #include "udev.h"
 
+#ifndef BTN_TRIGGER_HAPPY
+#define BTN_TRIGGER_HAPPY 0x2c0
+#endif
+
 /* we must use this kernel-compatible implementation */
 #define BITS_PER_LONG (sizeof(unsigned long) * 8)
 #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
diff --git a/src/udev-event.c b/src/udev-event.c
index 45dd77ba..a2b0d110 100644
--- a/src/udev-event.c
+++ b/src/udev-event.c
@@ -32,6 +32,7 @@
 #include <sys/wait.h>
 #include <sys/socket.h>
 #include <sys/signalfd.h>
+#include <sys/sysmacros.h>
 #include <linux/sockios.h>
 
 #include "udev.h"
diff --git a/src/udev-node.c b/src/udev-node.c
index 7a01a479..e90aec12 100644
--- a/src/udev-node.c
+++ b/src/udev-node.c
@@ -28,6 +28,7 @@
 #include <sys/time.h>
 #include <sys/stat.h>
 #include <sys/types.h>
+#include <sys/sysmacros.h>
 
 #include "udev.h"
 
diff --git a/src/udev-rules.c b/src/udev-rules.c
index a5b4b730..13a93975 100644
--- a/src/udev-rules.c
+++ b/src/udev-rules.c
@@ -29,6 +29,7 @@
 #include <dirent.h>
 #include <fnmatch.h>
 #include <time.h>
+#include <sys/sysmacros.h>
 
 #include "udev.h"
 
diff --git a/src/udevadm-info.c b/src/udevadm-info.c
index ee9b59fe..ddac651e 100644
--- a/src/udevadm-info.c
+++ b/src/udevadm-info.c
@@ -28,6 +28,7 @@
 #include <fcntl.h>
 #include <sys/stat.h>
 #include <sys/types.h>
+#include <sys/sysmacros.h>
 
 #include "udev.h"
 
diff --git a/src/udevd.c b/src/udevd.c
index 17022179..2ed050e3 100644
--- a/src/udevd.c
+++ b/src/udevd.c
@@ -43,10 +43,13 @@
 #include <sys/ioctl.h>
 #include <sys/inotify.h>
 #include <sys/utsname.h>
+#include <sys/sysmacros.h>
 
 #include "udev.h"
 #include "sd-daemon.h"
 
+#define UDEVD_PID_FILE "udevd.pid"
+
 static bool debug;
 
 void udev_main_log(struct udev *udev, int priority,
@@ -1184,6 +1187,32 @@ static bool check_rules_timestamp(struct udev *udev)
         return changed;
 }
 
+static void create_pidfile(struct udev *udev)
+{
+	char filename[UTIL_PATH_SIZE];
+	int fd;
+	char buf[32];
+
+	snprintf(buf, sizeof(buf), "%ld\n", (long)getpid());
+	strlcpy(filename, udev_get_run_path(udev), sizeof(filename));
+	strlcat(filename, "/"UDEVD_PID_FILE, sizeof(filename));
+	util_create_path(udev, filename);
+	fd = open(filename, O_WRONLY|O_TRUNC|O_CREAT, 0644);
+	if (fd >= 0) {
+		write(fd, buf, strlen(buf));
+		close(fd);
+	}
+}
+
+static void remove_pidfile(struct udev *udev)
+{
+	char filename[UTIL_PATH_SIZE];
+
+	strlcpy(filename, udev_get_run_path(udev), sizeof(filename));
+	strlcat(filename, "/"UDEVD_PID_FILE, sizeof(filename));
+	unlink(filename);
+}
+
 int main(int argc, char *argv[])
 {
         struct udev *udev;
@@ -1407,6 +1436,8 @@ int main(int argc, char *argv[])
                 pid = fork();
                 switch (pid) {
                 case 0:
+			dbg(udev, "daemonized fork running\n");
+			create_pidfile(udev);
                         break;
                 case -1:
                         err(udev, "fork of daemon failed: %m\n");
@@ -1723,6 +1754,9 @@ exit:
         udev_queue_export_cleanup(udev_queue_export);
         udev_ctrl_cleanup(udev_ctrl);
 exit_daemonize:
+	if (daemonize)
+		remove_pidfile(udev);
+
         if (fd_ep >= 0)
                 close(fd_ep);
         worker_list_cleanup(udev);
diff --git a/udev.spec b/udev.spec
new file mode 100644
index 00000000..6faa28b0
--- /dev/null
+++ b/udev.spec
@@ -0,0 +1,802 @@
+%define	systemdsystemunitdir	/lib/systemd/system
+%define	firmwaredir		/lib/firmware
+
+Name: libudev0
+Version: 181
+Release: alt9
+
+Summary: Shared library to access udev device information
+License: LGPLv2.1+
+Group: System/Legacy libraries
+
+Url: http://kernel.org/pub/linux/utils/kernel/hotplug/
+Source: %name-%version.tar
+Patch: %name-%version-alt.patch
+
+Provides: libudev = %version-%release
+Obsoletes: libudev < %version-%release
+
+BuildRequires: autoconf_2.60
+BuildRequires: glib2-devel gobject-introspection-devel gperf gtk-doc pciids usbids
+BuildRequires: libacl-devel libusb-compat-devel usbutils libselinux-devel
+BuildRequires: kmod-devel >= 5 libblkid-devel >= 2.20
+
+%description
+This package provides shared library to access udev device information
+
+%prep
+%setup
+%patch -p1
+
+%build
+%set_autoconf_version 2.60
+%autoreconf
+%configure \
+	--enable-floppy \
+	--enable-edd \
+	--enable-udev_acl \
+	--enable-rule_generator \
+	--enable-introspection \
+	%{subst_with selinux} \
+%if_with bootstrap
+	--disable-gtk-doc \
+%endif
+	--disable-gudev \
+	--disable-introspection \
+	--sbindir=/sbin \
+	--bindir=/sbin \
+	--libexecdir=/lib \
+	--with-rootlibdir=/%_lib \
+	--with-firmware-path=%firmwaredir/updates:%firmwaredir \
+	--with-systemdsystemunitdir=%systemdsystemunitdir \
+	--with-usb-ids-path=/usr/share/misc/usb.ids \
+	--disable-silent-rules
+%make_build
+
+%install
+%makeinstall_std
+
+%files
+/%_lib/libudev.so.*
+
+%changelog
+* Tue Sep 05 2023 Andrew A. Vasilyev <andy@altlinux.org> 181-alt9
+- FTBFS: build with autoconf 2.60
+
+* Sun Aug 16 2020 Michael Shigorin <mike@altlinux.org> 181-alt8
+- fixed ftbfs (sys/sysmacros.h)
+
+* Wed Jan 24 2018 Aleksei Nikiforov <darktemplar@altlinux.org> 181-alt7
+- Fixed build.
+
+* Wed Feb 03 2016 Michael Shigorin <mike@altlinux.org> 181-alt6.1
+- BOOTSTRAP: define BTN_TRIGGER_HAPPY, disable selinux/gtk-doc
+
+* Thu Jun 05 2014 Alexey Shabalin <shaba@altlinux.ru> 181-alt6
+- build to sisyphus
+
+* Mon Jul 02 2012 Dmitry V. Levin <ldv@altlinux.org> 181-alt5
+- Added an "Obsoletes" tag (closes: #27448).
+
+* Wed Jun 20 2012 Alexey Shabalin <shaba@altlinux.ru> 181-alt4
+- add Provides: libudev
+
+* Wed Jun 13 2012 Alexey Shabalin <shaba@altlinux.ru> 181-alt3
+- build as legacy libraries "libudev0" for compat
+
+* Mon May 28 2012 Dmitry V. Levin <ldv@altlinux.org> 181-alt2
+- Reintroduced udev-rule-generator package and udevd-final startup
+  script by reverting commit 180-alt1~4-g289489b which was erroneously
+  pushed to Sisyphus few days ago.
+
+* Fri Feb 10 2012 Valery Inozemtsev <shrek@altlinux.ru> 181-alt1
+- 181
+
+* Mon Jan 30 2012 Valery Inozemtsev <shrek@altlinux.ru> 180-alt1
+- 180
+
+* Fri Nov 11 2011 Valery Inozemtsev <shrek@altlinux.ru> 175-alt1
+- 175
+
+* Thu Oct 20 2011 Valery Inozemtsev <shrek@altlinux.ru> 174-alt1
+- 174
+
+* Wed Aug 03 2011 Valery Inozemtsev <shrek@altlinux.ru> 173-alt1
+- 173
+
+* Mon Jul 11 2011 Valery Inozemtsev <shrek@altlinux.ru> 172-alt2
+- udev-rules: added provides /lib/udev/rules.d
+
+* Mon Jul 11 2011 Valery Inozemtsev <shrek@altlinux.ru> 172-alt1
+- 172
+
+* Fri May 27 2011 Valery Inozemtsev <shrek@altlinux.ru> 171-alt1
+- 171
+
+* Fri May 20 2011 Valery Inozemtsev <shrek@altlinux.ru> 170-alt1
+- 170
+
+* Thu May 19 2011 Valery Inozemtsev <shrek@altlinux.ru> 169-alt1
+- 169
+
+* Thu May 05 2011 Valery Inozemtsev <shrek@altlinux.ru> 168-alt2
+- removed /lib/udev/devices/loop[0-3] (requires losetup >= 2.19.1)
+- added conflicts to systemd < 25 (closes: #25552)
+
+* Tue Apr 26 2011 Valery Inozemtsev <shrek@altlinux.ru> 168-alt1
+- 168
+
+* Fri Apr 01 2011 Valery Inozemtsev <shrek@altlinux.ru> 167-alt2
+- initscripts: mount /run on tmpfs if directory exists
+- added loop[0-3]
+
+* Wed Mar 30 2011 Valery Inozemtsev <shrek@altlinux.ru> 167-alt1
+- 167
+- initscripts: removed create_static_inodes
+
+* Thu Feb 10 2011 Valery Inozemtsev <shrek@altlinux.ru> 166-alt1
+- 166
+
+* Tue Feb 08 2011 Valery Inozemtsev <shrek@altlinux.ru> 165-alt2
+- add systemd service files (closes: #24990)
+
+* Thu Dec 16 2010 Valery Inozemtsev <shrek@altlinux.ru> 165-alt1
+- 165
+
+* Sun Nov 28 2010 Valery Inozemtsev <shrek@altlinux.ru> 164-alt2
+- initscript:
+  + fixed mount shm/pts filesystems
+  + removed unused /etc/udev/devices
+
+* Sat Oct 23 2010 Valery Inozemtsev <shrek@altlinux.ru> 164-alt1
+- 164
+
+* Thu Oct 07 2010 Valery Inozemtsev <shrek@altlinux.ru> 163-alt1
+- 163
+
+* Sat Sep 25 2010 Valery Inozemtsev <shrek@altlinux.ru> 162-alt4
+- udev-extras: required pciids, usbids
+
+* Sun Sep 19 2010 Valery Inozemtsev <shrek@altlinux.ru> 162-alt3
+- set SELinux context after mounting tmpfs on /dev (by Mikhail Efremov)
+
+* Fri Sep 17 2010 Dmitry V. Levin <ldv@altlinux.org> 162-alt2
+- Fixed SELinux context setting for the static nodes (by Mikhail Efremov).
+  This fixes regression introduced by faulty merge 161-alt2.
+  The original change made in 150-alt9 was correct,
+  the bug was introduced by that buggy merge.
+- Merged some minor specfile fixes from 150-alt9.
+
+* Sat Sep 04 2010 Valery Inozemtsev <shrek@altlinux.ru> 162-alt1
+- 162
+- initscripts: added devtmpfs support
+
+* Sat Aug 28 2010 Valery Inozemtsev <shrek@altlinux.ru> 161-alt2
+- added and enabled SELinux support (by Mikhail Efremov and Dmitry V. Levin)
+
+* Wed Aug 11 2010 Valery Inozemtsev <shrek@altlinux.ru> 161-alt1
+- 161
+
+* Sun Jul 25 2010 Valery Inozemtsev <shrek@altlinux.ru> 160-alt1
+- new upstream release (160)
+
+* Wed Jul 07 2010 Valery Inozemtsev <shrek@altlinux.ru> 159-alt1
+- new upstream release (159)
+
+* Thu Jun 24 2010 Valery Inozemtsev <shrek@altlinux.ru> 158-alt1
+- new upstream release (158)
+
+* Wed Jun 02 2010 Valery Inozemtsev <shrek@altlinux.ru> 157-alt1
+- new upstream release (157)
+
+* Tue May 25 2010 Valery Inozemtsev <shrek@altlinux.ru> 156-alt1
+- new upstream release (156)
+
+* Tue May 25 2010 Valery Inozemtsev <shrek@altlinux.ru> 155-alt1
+- new upstream release (155)
+
+* Wed May 12 2010 Valery Inozemtsev <shrek@altlinux.ru> 154-alt2
+- postrelease fises
+
+* Wed May 12 2010 Valery Inozemtsev <shrek@altlinux.ru> 154-alt1
+- new upstream release (154)
+- removed rule for compatibility with kernels 2.6.31 below
+
+* Wed Apr 21 2010 Valery Inozemtsev <shrek@altlinux.ru> 153-alt1
+- new upstream release (153)
+
+* Tue Apr 20 2010 Valery Inozemtsev <shrek@altlinux.ru> 152-alt1
+- new upstream release (152)
+
+* Sun Apr 04 2010 Valery Inozemtsev <shrek@altlinux.ru> 151-alt4
+- rebuild
+
+* Mon Mar 15 2010 Valery Inozemtsev <shrek@altlinux.ru> 151-alt3
+- udev-final: check for rules.d/ writeability (Michael Shigorin)
+- device-mapper want property STARTUP to be set to 1 on coldplug (Kirill A. Shutemov)
+
+* Tue Mar 09 2010 Valery Inozemtsev <shrek@altlinux.ru> 151-alt2
+- removed net-agent
+
+* Wed Jan 27 2010 Valery Inozemtsev <shrek@altlinux.ru> 151-alt1
+- new upstream release (151)
+
+* Sun Jan 10 2010 Valery Inozemtsev <shrek@altlinux.ru> 150-alt2
+- removed klibc support
+- removed udev-initramfs subpackage
+
+* Thu Jan 07 2010 Valery Inozemtsev <shrek@altlinux.ru> 150-alt1
+- new upstream release (150)
+
+* Tue Dec 15 2009 Valery Inozemtsev <shrek@altlinux.ru> 149-alt2
+- firmware.c: upstream version
+
+* Thu Dec 03 2009 Valery Inozemtsev <shrek@altlinux.ru> 149-alt1
+- new upstream release (149)
+
+* Wed Dec 02 2009 Valery Inozemtsev <shrek@altlinux.ru> 148-alt1
+- new upstream release (148)
+
+* Fri Nov 20 2009 Valery Inozemtsev <shrek@altlinux.ru> 147-alt3
+- udev-acl: migrated to ConsoleKit 0.4.1
+
+* Mon Nov 16 2009 Valery Inozemtsev <shrek@altlinux.ru> 147-alt2
+- new libgudev-gir{,-devel} subpackages
+
+* Tue Nov 10 2009 Valery Inozemtsev <shrek@altlinux.ru> 147-alt1
+- New upstream release (147)
+
+* Tue Nov 10 2009 Valery Inozemtsev <shrek@altlinux.ru> 146-alt4
+- rebuild with latest klibc
+
+* Sun Sep 27 2009 Valery Inozemtsev <shrek@altlinux.ru> 146-alt3
+- make raw USB printer devices accessible for lp
+
+* Mon Aug 31 2009 Valery Inozemtsev <shrek@altlinux.ru> 146-alt2
+- gudev: build introspection library
+
+* Fri Aug 14 2009 Valery Inozemtsev <shrek@altlinux.ru> 146-alt1
+- New upstream release (146)
+
+* Tue Jul 21 2009 Valery Inozemtsev <shrek@altlinux.ru> 145-alt1
+- New upstream release (145)
+
+* Thu Jul 16 2009 Valery Inozemtsev <shrek@altlinux.ru> 141-alt9
+- packaged libudev.a
+
+* Fri Jun 19 2009 Dmitry V. Levin <ldv@altlinux.org> 141-alt8
+- udevd-final (start): Append tmp rules instead of replacing.
+
+* Thu Jun 18 2009 Dmitry V. Levin <ldv@altlinux.org> 141-alt7
+- udevd-final (start): Move tmp rules
+  from /dev/.udev/ to /etc/udev/rules.d/.
+- 75-persistent-net-generator.rules: Allow to use
+  "locally administered" MAC address.
+
+* Thu Jun 18 2009 Valery Inozemtsev <shrek@altlinux.ru> 141-alt6
+- rule_generator.functions (choose_rules_file): Print header to empty rules file
+  as well as to just created rules file (Dmitry V. Levin)
+
+* Mon Jun 15 2009 Valery Inozemtsev <shrek@altlinux.ru> 141-alt5
+- net-agent: ignore hostapd interface mon.*
+
+* Wed Jun 03 2009 Valery Inozemtsev <shrek@altlinux.ru> 141-alt4
+- packaged rule-generator
+
+* Thu May 07 2009 Valery Inozemtsev <shrek@altlinux.ru> 141-alt3
+- net-agent: ignore pan[0-9]*
+
+* Thu Apr 16 2009 Valery Inozemtsev <shrek@altlinux.ru> 141-alt2
+- deleted 94-pam-console.rules
+
+* Thu Apr 09 2009 Valery Inozemtsev <shrek@altlinux.ru> 141-alt1
+- New upstream release (141)
+
+* Fri Mar 13 2009 Valery Inozemtsev <shrek@altlinux.ru> 140-alt1
+- New upstream release (140)
+
+* Thu Mar 12 2009 Valery Inozemtsev <shrek@altlinux.ru> 139-alt3
+- fixed device-mapper support
+
+* Tue Mar 03 2009 Valery Inozemtsev <shrek@altlinux.ru> 139-alt2
+- volume_id: ntfs - fixed uuid setting
+
+* Fri Feb 27 2009 Valery Inozemtsev <shrek@altlinux.ru> 139-alt1
+- New upstream release (139)
+
+* Tue Feb 24 2009 Valery Inozemtsev <shrek@altlinux.ru> 138-alt3
+- init: removed convert_udev_db_from_initramfs calls
+
+* Fri Feb 20 2009 Valery Inozemtsev <shrek@altlinux.ru> 138-alt2
+- rules: updated device-mapper/md-raid
+
+* Thu Feb 19 2009 Valery Inozemtsev <shrek@altlinux.ru> 138-alt1
+- New upstream release (138)
+
+* Fri Jan 23 2009 Valery Inozemtsev <shrek@altlinux.ru> 137-alt1
+- New upstream release (137)
+
+* Tue Jan 20 2009 Valery Inozemtsev <shrek@altlinux.ru> 136-alt2
+- added "tape" group
+- convert firmware.sh/net.agent to C
+
+* Wed Jan 07 2009 Valery Inozemtsev <shrek@altlinux.ru> 136-alt1
+- New upstream release (136)
+
+* Mon Jan 05 2009 Valery Inozemtsev <shrek@altlinux.ru> 135-alt2
+- rebuild with klibc-1.5.15
+
+* Tue Dec 02 2008 Valery Inozemtsev <shrek@altlinux.ru> 135-alt1
+- New upstream release (135).
+
+* Thu Nov 27 2008 Valery Inozemtsev <shrek@altlinux.ru> 134-alt1
+- New upstream release (134).
+
+* Sat Nov 15 2008 Sergey Vlasov <vsu@altlinux.ru> 130-alt6
+- udevadm: fixed option parsing breakage with klibc introduced in
+  version 128.  Fixes random reordering of modules included in
+  initramfs ("udevadm trigger" options were ignored, causing modules
+  for all detected devices to be loaded in undefined order before
+  processing the module list built by mkinitrd).
+
+* Sun Oct 19 2008 Valery Inozemtsev <shrek@altlinux.ru> 130-alt5
+- fixed /dev/dri/card* permissions
+
+* Thu Oct 09 2008 Valery Inozemtsev <shrek@altlinux.ru> 130-alt4
+- libvolume_id-devel/libudev-devel: fixed libdir in pc files
+
+* Wed Oct 08 2008 Valery Inozemtsev <shrek@altlinux.ru> 130-alt3
+- fixed unmet on x86_64
+
+* Wed Oct 08 2008 Valery Inozemtsev <shrek@altlinux.ru> 130-alt2
+- fixed build for x86_64
+
+* Wed Oct 08 2008 Valery Inozemtsev <shrek@altlinux.ru> 130-alt1
+- New upstream release (130).
+
+* Tue Sep 02 2008 Valery Inozemtsev <shrek@altlinux.ru> 127-alt4
+- udev-initramfs:
+  + drop udev{settle,trigger} link (close #16959)
+  + requires mkinitrd-initramfs >= 1:3.0.8-alt1
+
+* Mon Sep 01 2008 Valery Inozemtsev <shrek@altlinux.ru> 127-alt3
+- firmware.sh: lookup kernel provided firmware directory
+
+* Mon Sep 01 2008 Valery Inozemtsev <shrek@altlinux.ru> 127-alt2
+- fixed %%_libdir for x86_64
+
+* Mon Sep 01 2008 Valery Inozemtsev <shrek@altlinux.ru> 127-alt1
+- New upstream release (127).
+
+* Mon Aug 04 2008 Valery Inozemtsev <shrek@altlinux.ru> 126-alt3
+- fixed %%_libdir for x86_64
+
+* Mon Aug 04 2008 Valery Inozemtsev <shrek@altlinux.ru> 126-alt2
+- fixed change mode bits for CDROM
+
+* Sun Aug 03 2008 Valery Inozemtsev <shrek@altlinux.ru> 126-alt1
+- New upstream release (126).
+
+* Sun Aug 03 2008 Valery Inozemtsev <shrek@altlinux.ru> 125-alt3
+- updated rules
+
+* Sat Aug 02 2008 Valery Inozemtsev <shrek@altlinux.ru> 125-alt2
+- rules cleanup
+
+* Sat Aug 02 2008 Valery Inozemtsev <shrek@altlinux.ru> 125-alt1
+- New upstream release (125).
+
+* Tue Jul 08 2008 Valery Inozemtsev <shrek@altlinux.ru> 124-alt3
+- drop 80-bluetooth.rules
+
+* Mon Jul 07 2008 Valery Inozemtsev <shrek@altlinux.ru> 124-alt2
+- scsi_id: fix fallback to sg v3 for sg nodes
+- path_id: suppress trailing '-' like 'ID_PATH=pci-0000:05:01.0-'
+- rules: fix cciss rules for partition numbers > 9
+
+* Fri Jun 13 2008 Valery Inozemtsev <shrek@altlinux.ru> 124-alt1
+- New upstream release (124).
+
+* Fri Jun 13 2008 Valery Inozemtsev <shrek@altlinux.ru> 122-alt3
+- added provides hotplug = 2004_09_23-alt18
+- added firmware directory
+
+* Thu Jun 12 2008 Valery Inozemtsev <shrek@altlinux.ru> 122-alt2
+- fixed persistent storage rules
+- returned /sbin/udevcontrol
+
+* Wed Jun 11 2008 Valery Inozemtsev <shrek@altlinux.ru> 122-alt1
+- New upstream release (122).
+- Drop sound.agent
+
+* Tue Apr 01 2008 Sergey Vlasov <vsu@altlinux.ru> 118-alt1
+- New upstream release (118).
+- Applied post-118 upstream changes (3f91a27d16cf5440f0cb1db7c5972b4924a41d01):
+  + update mailing list address in documentation
+  + do not skip RUN execution if device node removal fails
+  + volume_id: fix UUID raw buffer usage
+  + volume_id: add prefix=, exec_prefix=
+  + volume_id: fix typo in function documentation
+  + volume_id: update ext detection
+- Updated udevd initscript:
+  + if use_initramfs_dev="1" is set, convert udev database created in initramfs
+    to the current format
+- udevconvertdb: Add support for 111 -> 112 conversion (udev database format
+  has changed again in release 112).
+- Updated udev rules:
+  + major resync with upstream
+  + add usbfs rule for kernels >= 2.6.22
+  + disable device file removal for /dev/ppp and /dev/net/tun
+  + remove obsolete devfs-style /dev/misc/rtc symlink to /dev/rtc
+  + if new-style /dev/rtc0 is present, symlink it to /dev/rtc
+  + use ata_id to create persistent links for libata devices (fixes possible
+    truncation, but only with kernels >= 2.6.21); old links from SCSI emulation
+    info still kept for compatibility
+  + do not create by-uuid/by-label links for whole disk devices (such links
+    would not be updated properly after media change)
+  + use encoded label in persistent links instead of dropping unsafe characters
+  + add ENV{REMOVE_CMD} invocation on remove events
+  + fix names for bsg and aoe devices
+  + ignore modprobe errors when using modalias
+  + add rules to autoload tifm_sd, tifm_ms, memstick modules
+  + remove broken rules for Tascam USB soundcards (should be moved to
+    alsa-firmware after fixing)
+  + remove call to nonexistent /etc/alsa.d/udev-soundfont for emu10k1
+  + remove broken "/usr/sbin/alsactl -F restore %%n" invocation (#13592)
+  + update persistent link creation for device mapper devices:
+     + fix symlink priorities for snapshots (previously the symlink would point
+       at the original device directly, which would cause snapshot corruption
+       if used for writing)
+     + add /dev/disk/by-id/dm-name-*, /dev/disk/by-id/dm-uuid-* symlinks
+
+* Wed Nov 28 2007 Sergey Vlasov <vsu@altlinux.ru> 108-alt2
+- Applied post-108 upstream changes (0809c264e9878cdd1c61d9fb0e077972bc596ef8):
+  + make ACTION!="add|change" working (now "!=" is really the inverse of "==")
+  + udevinfo: export all information stored in database
+  + udevtest: export ACTION string if given as option
+  + udevtest: import uevent variables if possible
+- Updated udevd initscript:
+  + fixed check for /dev/shm entry in fstab
+- Updated udev rules:
+  + added /dev/js* compat symlinks for /dev/input/js* (#7669)
+
+* Thu Mar 29 2007 Sergey Vlasov <vsu@altlinux.ru> 108-alt1
+- New upstream release (108).
+- Note: udev_run_devd and udev_run_hotplugd utilities were removed from udev
+  by upstream developers (their usage in rules was removed in 105-alt1).
+- Reverted create_floppy_devices change from 0.77-alt3 which was adding the
+  "-g <group>" option (in udev-106 the "-G <group>" option was added).
+- Updated udevd initscript:
+  + added "start_udev_only" action for use during package upgrade;
+  + removed setting kernel.hotplug to /sbin/hotplug on stop.
+- Updated udev rules:
+  + updated create_floppy_devices options for new implementation in udev-106;
+  + removed useless dasd support (s390 only);
+  + added persistent symlinks for SCSI tapes and medium changer devices;
+  + fixed WAIT_FOR_SYSFS for SCSI devices;
+  + fixed wrong rule for raw devices (/dev/raw/raw[0-9]*);
+  + added -b option to all modprobe invocations;
+  + disabled MODALIAS autoload for the i82365 module (Debian bug #398962);
+  + added SUBSYSTEM and ACTION checks to rules for ALSA devices;
+  + added checks to avoid normal rules for net devices (Gentoo bug #166652);
+  + added rules to create /dev/disk/{by-uuid,by-label}/* links for md devices
+    (63-md.rules); these rules are also copied to initramfs (#11190).
+- Added /usr/sbin/udevconvertdb utility to convert udev database to the new
+  format used since udev-107; updated %%pre and %%post scripts to convert the
+  database during upgrade.
+
+* Mon Feb 19 2007 Sergey Vlasov <vsu@altlinux.ru> 105-alt3
+- Added conflicts with old udev packages to the udev-rules subpackage
+  (prevents attempts to install udev-rules together with old releases of
+  udev which had rule files in the main package).
+- Updated udevd initscript:
+  + removed broken code which tried to remove old udev database on start;
+  + fixed compatibility with startup-0.9.8.9-alt1:
+     + pass -n option to mount when running from rc.sysinit;
+     + do not try to start another copy of udevd if already running;
+     + use $tmpfs_options when mounting /dev initially;
+     + do not try to remount /dev when running from rc.sysinit;
+     + do not unmount /dev on stop (this time "service udevd umount" added
+       for use during dev package upgrade).
+     + fix double /dev/shm mounting if it is listed in fstab
+- Updated net.agent:
+  + check for ignored interface name first (fixes useless failure during
+    early startup of interfaces like "lo").
+
+* Sun Feb 11 2007 Sergey Vlasov <vsu@altlinux.ru> 105-alt2
+- Fixed net.agent to avoid unwanted dependency on etcnet; now net-scripts
+  should be usable again.
+- Moved module-init-tools, dmsetup, libvolume_id from Requires to PreReq
+  (these packages should be installed before udev to keep rules working).
+- Moved rule files to a separate udev-rules package; replaced dependency of
+  udev-initramfs on udev with udev-rules (now installing new mkinitrd with
+  initramfs support does not require the main udev package).
+- Added Provides: /etc/udev/rules.d, /etc/udev/initramfs-rules.d to the
+  udev-rules subpackage to be used by other packages with udev rules.
+- Updated udevd initscript:
+  + do not invoke udevtrigger during restart (avoids bad side effects with
+    some devices, but events which happen during restart will be lost)
+  + unmount /dev on stop again (reverts the change made in 105-alt1;
+    workaround for upgrading the dev package); unmount is not performed on
+    restart and condrestart
+- Updated udev rules:
+  + removed rule for loading the pcmcia module (already in pcmciautils)
+
+* Thu Feb 08 2007 Sergey Vlasov <vsu@altlinux.ru> 105-alt1
+- New upstream release (105).
+- Dropped git-scsi_id-garbage patch (fixed upstream).
+- Replaced old package build system with a new one based on the upstream git
+  repository, rewritten spec file for the new layout:
+    + applied all old patches as commits in the package git repository
+    + placed udev rules in etc/udev/altlinux/
+    + placed udevd initscript in etc/init.d/
+    + placed dm_helper in extras/dm_helper/
+- Added udev-initramfs subpackage which contains udev built with klibc for
+  use in initramfs images created by mkinitrd.
+- Added /etc/udev/initramfs-rules.d directory containing symlinks to rule
+  files which need to be copied to initramfs.
+- Disabled recursive substititions in udev_rules_apply_format() (this feature
+  is dubious, dangerous if used improperly (e.g., there is no protection from
+  infinite loops) and does not seem to be documented properly).
+- libvolume_id: Fixed possible buffer overruns when handling romfs and
+  ntfs filesystems, and other filesystems with too long labels.
+- Updated udev rules:
+  + moved rules for ignoring of "drivers" and "module" events from
+    20-hotplugd.rules to 05-udev-early.rules
+  + fixed rule for removable IDE avoidance to use ATTR{removable} instead of
+    ATTRS{removable}
+  + added rules to create /dev/disk/{by-uuid,by-label}/* links for devices
+    managed by the device mapper driver (64-device-mapper.rules)
+  + added rule to invoke /sbin/pam_console_apply in 94-pam-console.rules
+    (fixes wrong permissions for devices managed by pam_console if these
+    devices appeared after login, or if udevtrigger was rerun)
+  + removed callouts to the hotplug package - now modprobe by modalias is
+    used to load kernel modules, and other actions are handled by scripts
+    included in the udev package (currently net.agent and sound.agent).
+- Updated udevd initscript:
+  + do not unmount /dev on stop (breaks too much to be useful)
+  + implement condrestart instead of ignoring it (now udevd will be
+    restarted during package upgrade, like all other daemons)
+- Added udevd-final service to perform final steps of udev initialization
+  when other parts of the system have been initialized.
+
+* Sun Dec 17 2006 Sergey Vlasov <vsu@altlinux.ru> 103-alt1
+- Added patches:
+  + git-scsi_id-garbage: scsi_id: remove trailing garbage from ID_SERIAL_SHORT
+- Updated udev rules:
+  + restore lost rules for firmware loading
+  + kill useless NAME="%%k" assignments
+  + resync 50-udev-default.rules with SUSE:
+     + create /dev/pilot symlink also for Handspring Treo devices
+     + create all possible partitions for ide-floppy devices
+     + load mmc_block module for MMC devices
+     + fix device names for (obsolete) raw devices (/dev/raw/rawN)
+     + check for ACTION=="add" when creating /dev/bus/usb/** devices
+  + fix permissions for floppy devices (GROUP="floppy", MODE="0660")
+  + resync 60-persistent-storage.rules with SUSE:
+     + add /dev/disk/by-id/ata-* symlinks for libata and other SAT devices
+     + add /dev/disk/by-id/mmc-* symlinks for MMC block devices
+  + replace DRIVER key with DRIVERS
+
+* Thu Oct 26 2006 Anton Farygin <rider@altlinux.ru> 103-alt0.1
+- Updated patches to new version
+- removed patches:
+    udev-097-alt-nogroup.patch (included to mainstream)
+
+* Fri Sep 01 2006 Sergey Vlasov <vsu@altlinux.ru> 097-alt2
+- Added patches:
+  + alt-init-pipe-before-fork: udevd: init signal pipe before forking to
+    background
+  + alt-udevd-pidfile: udevd: add pid file support (/dev/.udev/udevd.pid)
+- Updated udevd initscript:
+  + use pid file in /dev/.udev/udevd.pid
+  + daemonize with "udevd --daemon" instead of "start_daemon --make-pidfile"
+    (should really fix startup race with udevsettle - #9881)
+  + revert broken fix for #9881 added in 097-alt1
+
+* Mon Aug 28 2006 Sergey Vlasov <vsu@altlinux.ru> 097-alt1
+- New version (097).
+- Dropped alt-compile-warnings patch (obsolete).
+- Removed obsolete "--with klibc" build support from spec (upstream developers
+  removed klibc support from udev 097).
+- Removed obsolete "--with system_sysfs" build support from spec (udev does not
+  use libsysfs for a long time).
+- Tightened udev package dependency on libvolume_id due to unstable ABI.
+- Removed tmpfs_options example with "helper" from udev.conf (the corresponding
+  kernel patch was dropped long ago).
+- Added alt-nogroup patch: vol_id: replace "nogroup" group name with "nobody"
+  (partially fixes #9871).
+- Replaced logger-path patch with alt-firmware-initlog patch: use /sbin/initlog
+  instead of logger (which is in /usr/bin).
+- Added alt-firmware-dirs patch: add /usr/lib/hotplug/firmware to firmware
+  search path (to avoid regressions when firmware loading is switched from
+  hotplug to udev).
+- Updated udevd initscript:
+  + fixed udevsettle race (#9881); removed broken workaround added in 091-alt3
+  + add "-n" option to "mount --move" to fix duplication of /etc/mtab entries
+    (#7758)
+  + check that all required kernel features (/sys/class/mem/null/uevent,
+    /sys/kernel/uevent_seqnum) are present before trying to start udevd
+  + removed code for handling udevd started from hotplug (udev does not support
+    this for a long time)
+  + removed useless $mountcmd indirection from attach_pts_filesystem and
+    attach_shm_filesystem
+  + fixed /dev/null redirections in make_extra_nodes, removed /dev/null usage
+    from places where /dev/null is not yet available
+- Updated udev rules:
+  + moved all WAIT_FOR_SYSFS rules to 05-udev-early.rules
+  + moved firmware loading rules to 05-udev-early.rules, so that they are used
+    before hotplug (previously both hotplug and udev were trying to load
+    firmware; now all firmware loading is handled through udev)
+  + removed useless rule which "renamed" eth* network interfaces to the same
+    name
+  + added joystick support to 60-persistent-input.rules
+  + added crypto container support to 60-persistent-storage.rules
+  + removed fuse rule (#9871)
+  + removed /dev/tpm* rule with "tss" user/group (#9871)
+  + removed /dev/ucm*, /dev/uverbs* rules with "rdma" group (#9871)
+  + removed rules for SCSI scanners with "scanner" group (#9871)
+  + removed /dev/nvram rule with "nvram" group (#9871)
+  + replaced "tape" group with "disk", removed some rules which were setting
+    the "tape" group for devices which already had the "disk" group from other
+    rules (#9871)
+  + removed "video" group from agpgart, DRI and framebuffer devices (now this
+    group is used only for video capture devices)
+- Create "video" group in %%pre (#9871).
+
+* Mon Jul 10 2006 Anton Farygin <rider@altlinux.ru> 096-alt1
+- new version
+
+* Tue Jun 20 2006 Anton Farygin <rider@altlinux.ru> 094-alt1
+- new version
+
+* Thu Jun 01 2006 Anton Farygin <rider@altlinux.ru> 093-alt3
+- fixed SUBSYSTEM and SYSFS errors in rules
+
+* Tue May 30 2006 Anton Farygin <rider@altlinux.ru> 093-alt2
+- fixed logger unmet
+
+* Mon May 29 2006 Anton Farygin <rider@altlinux.ru> 093-alt1
+- new version
+- updated rules for new firmware loader
+
+* Thu May 18 2006 Anton Farygin <rider@altlinux.ru> 092-alt1
+- new version
+- added lvm support (#7369, Nick S. Grechukh)
+
+* Tue May 16 2006 Anton Farygin <rider@altlinux.ru> 091-alt3
+- added workaround (sync) for tmpfs files creation race in initscript
+
+* Sat May 06 2006 Anton Farygin <rider@altlinux.ru> 091-alt2
+- package adopted to gear
+- added patch from mainstream for creating parent directories for seqnum
+
+* Fri Apr 28 2006 Anton Farygin <rider@altlinux.ru> 091-alt1
+- new version
+
+* Fri Apr 21 2006 Anton Farygin <rider@altlinux.ru> 090-alt2
+- added sleep after udevtrigger
+
+* Sun Apr 16 2006 Anton Farygin <rider@altlinux.ru> 090-alt1
+- new version
+
+* Fri Apr 14 2006 Anton Farygin <rider@altlinux.ru> 089.git20060414-alt0.3
+- updated from git
+- added udevsettle to initscript
+
+* Wed Apr 12 2006 Anton Farygin <rider@altlinux.ru> 089-alt0.2
+- path_id added
+
+* Tue Apr 11 2006 Anton Farygin <rider@altlinux.ru> 089-alt0.1
+- new version
+- all rules changed for new udev policy
+
+* Mon Mar 13 2006 Anton Farygin <rider@altlinux.ru> 0.77-alt3
+- added rule for floppy devices creation (#9129)
+- Zaptel devices removed from rules (#8753)
+- Firmware loading fixed (thnx , lioka)
+- fixed typo in initscript
+
+* Tue Feb 21 2006 Anton Farygin <rider@altlinux.ru> 0.77-alt2
+- fixed /dev/pts start and restart
+
+* Wed Dec 14 2005 Anton Farygin <rider@altlinux.ru> 0.77-alt1
+- new version
+- use new regexp for initscript (#8061)
+- fixed /dev premissions
+
+* Tue Nov 15 2005 Anton Farygin <rider@altlinux.ru> 0.75-alt1
+- next version
+
+* Mon Sep 19 2005 Anton Farygin <rider@altlinux.ru> 0.70-alt1
+- new version
+- added rule for ttyACM
+- fixed rule for /dev/tty (#8026)
+
+* Wed Aug 31 2005 Anton Farygin <rider@altlinux.ru> 0.68-alt2
+- fixed double /dev/pts mounting (#6974)
+
+* Fri Aug 19 2005 Anton Farygin <rider@altlinux.ru> 0.68-alt1
+- new version
+
+* Mon Aug 08 2005 Anton Farygin <rider@altlinux.ru> 0.65-alt1
+- updated to new version
+- fixed typo in rules (#7394)
+
+* Sun Jul 17 2005 Anton Farygin <rider@altlinux.ru> 0.63-alt2
+- removed patch1 (included to mainstream)
+- removed patch0 (use OPTIONS="ignore_device" for ACTION=="remove")
+- requries to udev_static_addon added
+- fixed rules for vizor (#7394)
+
+* Wed Jul 13 2005 Anton Farygin <rider@altlinux.ru> 0.62-alt5
+- fixed some bugs in rules
+
+* Wed Jul 13 2005 Anton Farygin <rider@altlinux.ru> 0.62-alt4
+- rules format updated
+
+* Wed Jul 13 2005 Anton Farygin <rider@altlinux.ru> 0.62-alt3
+- added rule for running scripts from hotplug.d and dev.d
+- udev initscript remove hotplug execution from /proc/sys/kernel/hotplug
+
+* Tue Jul 12 2005 Anton Farygin <rider@altlinux.ru> 0.62-alt2
+- updated to 062
+
+* Wed Mar 30 2005 Alexey Morozov <morozov@altlinux.org> 0.50-alt5
+- Fixes for init script for empty and r/o /dev
+
+* Tue Mar 29 2005 Alexey Morozov <morozov@altlinux.org> 0.50-alt4
+- init script fixes
+- udev lsb rules fixes (#6232, #6297, #6338, and probably #6337)
+- built w/ syslog (#5850)
+- possible integration w/ udev_static-*
+
+* Sat Jan 22 2005 Alexey Morozov <morozov@altlinux.org> 0.50-alt3
+- fixed typo in udevd.init (now service should start w/o complaining
+  even if no devices in /etc/udev/devices can be found)
+- udevd is forced to stop, even if it was launched not by init startup
+  script
+- added patch to skip unknown (new) options from udev.conf throughout
+  C code (udevinfo, udev etc). Bug was reported by vk@.
+
+* Fri Jan 14 2005 Alexey Morozov <morozov@altlinux.org> 0.50-alt2
+- Use syslog by default (#5850)
+- Added udevinfo prints patch from ML
+- Preliminary support of modules_lookup
+- Actual use of tmpfs_options
+- Added directory %_sysconfdir/udev/devices as a workaround for
+  "missing devices" problem. One can create required device inodes
+  with /sbin/MAKEDEV -d /etc/udev/devices <devname>, and all these
+  inodes will be copied as is to /dev upon udev startup.
+- DO_TRADITIONAL and PREFER_TRADITIONAL removed from cd-names.sh
+  Traditional names if needed now should be specified right in udev rules
+
+* Tue Jan  4 2005 Alexey Morozov <morozov@altlinux.org> 0.50-alt1
+- New version (0.50)
+
+* Tue Dec 28 2004 Alexey Morozov <morozov@altlinux.org> 0.46-alt3
+- extended modifiers are fixed [hopefully]
+- ide-names.sh replaced by drive-names.sh which can be used for SCSI disks (only sd*)
+  as well as as for IDE drives (either IDE hard disks, CD-ROMs, or IDE floppies)
+
+* Tue Dec 14 2004 Alexey Morozov <morozov@altlinux.org> 0.46-alt2
+- Fixed CD-ROMs / CD-RWs etc permissions
+
+* Tue Dec 14 2004 Alexey Morozov <morozov@altlinux.org> 0.46-alt1
+- version 0.46 (046)
+- service init script greatly improved. Now it passes multiple start/stop etc cycles almost seamlessly
+- permissions and device naming rules also improved (mostly taked from Mdk w/ certain Debian stuff
+  and home-made ide-names.sh and cd-names.sh). Device naming rules are still subject for improvement and
+  bugfixing though...
+- Added patches for %%N and %%U rules keys (see 'man 8 udev' for description)
+- Fixes for %%e
+- TODO: write a SCSI-oriented companion for ide-names.sh. Contrubutors are welcome ;-)
+
+* Thu Nov 11 2004 Alexey Morozov <morozov@altlinux.org> 0.43-alt1
+- New version (0.43)
+- Spec and patches are re-worked a bit (now it can be correctly build w/ and w/o
+  system sysfs)
+
+* Thu Sep 16 2004 Alexey Morozov <morozov@altlinux.org> 0.32-alt1
+- Initial build for ALT Linux
+
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin