[udev] - bugfixes for systemd service files - bugfix for selinux labeling - bugfixes for cdrom_id

Harald Hoyer harald at fedoraproject.org
Wed Sep 1 09:25:53 UTC 2010


commit b11538a6c787f92b59f88c73b52069d4bf4f1fe8
Author: Harald Hoyer <harald at redhat.com>
Date:   Wed Sep 1 11:26:01 2010 +0200

    - bugfixes for systemd service files
    - bugfix for selinux labeling
    - bugfixes for cdrom_id

 0001-cdrom_id-Add-media-status-debugging.patch     |   26 ++++++++
 0002-Add-keymap-for-Lenovo-IdeaPad-S10-3.patch     |   56 +++++++++++++++++
 ..._id-Drop-MEDIA_SESSION_NEXT-for-DVD-RW-RO.patch |   34 +++++++++++
 0004-init-update-systemd-service-files.patch       |   42 +++++++++++++
 0005-init-update-systemd-service-files.patch       |   38 ++++++++++++
 ...-not-mistake-all-SCSI-processor-devices-f.patch |   33 ++++++++++
 ...ev-to-description-in-systemd-service-file.patch |   47 +++++++++++++++
 0008-udevd-add-pid-to-kmsg-logs.patch              |   41 +++++++++++++
 0009-init-edit-systemd-service-descriptions.patch  |   47 +++++++++++++++
 ...t-out-required-extension-and-remove-some-.patch |   42 +++++++++++++
 0012-keymap-Add-Onkyo-PC.patch                     |   63 ++++++++++++++++++++
 0013-keymap-Add-HP-G60.patch                       |   26 ++++++++
 ...e-unneeded-credential-passing-from-init_n.patch |   58 ++++++++++++++++++
 0015-Add-support-for-oom_score_adj.patch           |   48 +++++++++++++++
 0016-keymap-Fix-Sony-VAIO-VGN-SZ2HP-B.patch        |   28 +++++++++
 0017-udev-7-manpage-Fix-description-of-attr.patch  |   32 ++++++++++
 ...dev-fix-crash-if-netlink-is-not-available.patch |   57 ++++++++++++++++++
 0019-keymap-Fix-Acer-TravelMate-4720.patch         |   28 +++++++++
 0020-cdrom_id-Fix-DVD-RW-media-detection.patch     |   53 ++++++++++++++++
 ...x-DVD-blank-detection-for-sloppy-firmware.patch |   42 +++++++++++++
 ...x-context-on-add-but-not-on-change-events.patch |   35 +++++++++++
 ...te-persistent-name-rules-for-KVM-network-.patch |   28 +++++++++
 udev.spec                                          |   52 ++++++++++++++++-
 23 files changed, 955 insertions(+), 1 deletions(-)
---
diff --git a/0001-cdrom_id-Add-media-status-debugging.patch b/0001-cdrom_id-Add-media-status-debugging.patch
new file mode 100644
index 0000000..f282114
--- /dev/null
+++ b/0001-cdrom_id-Add-media-status-debugging.patch
@@ -0,0 +1,26 @@
+From 24af530a543c70ac59fdd244377d648ef77a0e21 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Thu, 12 Aug 2010 07:10:12 +0200
+Subject: [PATCH 01/23] cdrom_id: Add media status debugging
+
+Show which media status the hardware originally reports, since we mangle it in
+some cases.
+---
+ extras/cdrom_id/cdrom_id.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/extras/cdrom_id/cdrom_id.c b/extras/cdrom_id/cdrom_id.c
+index 83e95d5..d59991c 100644
+--- a/extras/cdrom_id/cdrom_id.c
++++ b/extras/cdrom_id/cdrom_id.c
+@@ -573,6 +573,7 @@ static int cd_media_info(struct udev *udev, int fd)
+ 
+ 	cd_media = 1;
+ 	info(udev, "disk type %02x\n", header[8]);
++	info(udev, "hardware reported media status: %s\n", media_status[header[2] & 3]);
+ 
+ 	/* exclude plain CDROM, some fake cdroms return 0 for "blank" media here */
+ 	if (!cd_media_cd_rom)
+-- 
+1.7.2.2
+
diff --git a/0002-Add-keymap-for-Lenovo-IdeaPad-S10-3.patch b/0002-Add-keymap-for-Lenovo-IdeaPad-S10-3.patch
new file mode 100644
index 0000000..486c148
--- /dev/null
+++ b/0002-Add-keymap-for-Lenovo-IdeaPad-S10-3.patch
@@ -0,0 +1,56 @@
+From 9cd075e35b8f660c75b0d72d4bea496fd6459f29 Mon Sep 17 00:00:00 2001
+From: David Woodhouse <dwmw2 at infradead.org>
+Date: Thu, 12 Aug 2010 17:04:55 +0100
+Subject: [PATCH 02/23] Add keymap for Lenovo IdeaPad S10-3
+
+Tested on S10-3, but presumably applicable to all IdeaPads.
+
+Signed-off-by: Martin Pitt <martin.pitt at ubuntu.com>
+---
+ Makefile.am                          |    1 +
+ extras/keymap/95-keymap.rules        |    2 ++
+ extras/keymap/keymaps/lenovo-ideapad |    7 +++++++
+ 3 files changed, 10 insertions(+), 0 deletions(-)
+ create mode 100644 extras/keymap/keymaps/lenovo-ideapad
+
+diff --git a/Makefile.am b/Makefile.am
+index c16b259..77df6ab 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -537,6 +537,7 @@ dist_udevkeymap_DATA = \
+ 	extras/keymap/keymaps/ibm-thinkpad-usb-keyboard-trackpoint \
+ 	extras/keymap/keymaps/inventec-symphony_6.0_7.0 \
+ 	extras/keymap/keymaps/lenovo-3000 \
++	extras/keymap/keymaps/lenovo-ideapad \
+ 	extras/keymap/keymaps/lenovo-thinkpad-usb-keyboard-trackpoint \
+ 	extras/keymap/keymaps/lenovo-thinkpad_x6_tablet \
+ 	extras/keymap/keymaps/lenovo-thinkpad_x200_tablet \
+diff --git a/extras/keymap/95-keymap.rules b/extras/keymap/95-keymap.rules
+index 13b5571..2241422 100644
+--- a/extras/keymap/95-keymap.rules
++++ b/extras/keymap/95-keymap.rules
+@@ -65,6 +65,8 @@ ENV{DMI_VENDOR}=="Compaq*", ATTR{[dmi/id]product_name}=="*E500*|*Evo N*", RUN+="
+ ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="*3000*", RUN+="keymap $name lenovo-3000"
+ ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X6*", ATTR{[dmi/id]product_version}=="* Tablet" RUN+="keymap $name lenovo-thinkpad_x6_tablet"
+ ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X200 Tablet*", ATTR{[dmi/id]product_version}=="* Tablet" RUN+="keymap $name lenovo-thinkpad_x200_tablet"
++ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="*IdeaPad*", RUN+="keymap $name lenovo-ideapad"
++ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_name}=="S10-*", RUN+="keymap $name lenovo-ideapad"
+ 
+ ENV{DMI_VENDOR}=="Hewlett-Packard*", RUN+="keymap $name hewlett-packard"
+ ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][aA][bB][lL][eE][tT]*", RUN+="keymap $name hewlett-packard-tablet"
+diff --git a/extras/keymap/keymaps/lenovo-ideapad b/extras/keymap/keymaps/lenovo-ideapad
+new file mode 100644
+index 0000000..d5f2567
+--- /dev/null
++++ b/extras/keymap/keymaps/lenovo-ideapad
+@@ -0,0 +1,7 @@
++# Key codes observed on S10-3, assumed valid on other IdeaPad models
++0x81 rfkill			# does nothing in BIOS
++0x83 display_off		# BIOS toggles screen state
++0xB9 brightnessup		# does nothing in BIOS
++0xBA brightnessdown		# does nothing in BIOS
++0xF1 camera			# BIOS toggles camera power
++0xf2 unknown			# trackpad enable/disable (does nothing in BIOS)
+-- 
+1.7.2.2
+
diff --git a/0003-cdrom_id-Drop-MEDIA_SESSION_NEXT-for-DVD-RW-RO.patch b/0003-cdrom_id-Drop-MEDIA_SESSION_NEXT-for-DVD-RW-RO.patch
new file mode 100644
index 0000000..d476ee5
--- /dev/null
+++ b/0003-cdrom_id-Drop-MEDIA_SESSION_NEXT-for-DVD-RW-RO.patch
@@ -0,0 +1,34 @@
+From b367a1c9d8a0f565effcdb45f86a365be1c8b622 Mon Sep 17 00:00:00 2001
+From: Jan Drzewiecki <jonie at icpnet.pl>
+Date: Fri, 13 Aug 2010 07:24:29 +0200
+Subject: [PATCH 03/23] cdrom_id: Drop MEDIA_SESSION_NEXT for DVD-RW-RO
+
+Commit cf2205a fixed the media status for fresh DVD-RW in restricted overwrite
+mode, but missed a detail: We should not report the ID_CDROM_MEDIA_SESSION_NEXT
+property either, since in that mode you can never append tracks/sessions; this
+just works in sequential mode.
+
+Signed-off-by: Martin Pitt <martin.pitt at ubuntu.com>
+---
+ extras/cdrom_id/cdrom_id.c |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/extras/cdrom_id/cdrom_id.c b/extras/cdrom_id/cdrom_id.c
+index d59991c..f9d6e0b 100644
+--- a/extras/cdrom_id/cdrom_id.c
++++ b/extras/cdrom_id/cdrom_id.c
+@@ -690,8 +690,9 @@ static int cd_media_info(struct udev *udev, int fd)
+ 	}
+ 
+ determined:
+-	/* "other" is e. g. DVD-RAM, can't append sessions there either */
+-	if ((header[2] & 3) < 2)
++	/* "other" is e. g. DVD-RAM, can't append sessions there; DVDs in
++	 * restricted overwrite mode can never append, only in sequential mode */
++	if ((header[2] & 3) < 2 && !cd_media_dvd_rw_ro)
+ 		cd_media_session_next = header[10] << 8 | header[5];
+ 	cd_media_session_count = header[9] << 8 | header[4];
+ 	cd_media_track_count = header[11] << 8 | header[6];
+-- 
+1.7.2.2
+
diff --git a/0004-init-update-systemd-service-files.patch b/0004-init-update-systemd-service-files.patch
new file mode 100644
index 0000000..a68e467
--- /dev/null
+++ b/0004-init-update-systemd-service-files.patch
@@ -0,0 +1,42 @@
+From 68bc0d7963a22967cc00244c4fad96fb45870712 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at vrfy.org>
+Date: Tue, 17 Aug 2010 09:37:57 +0200
+Subject: [PATCH 04/23] init: update systemd service files
+
+---
+ init/udev-retry.service.in  |    4 ++--
+ init/udev-settle.service.in |    2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/init/udev-retry.service.in b/init/udev-retry.service.in
+index 7667899..d8ed8a8 100644
+--- a/init/udev-retry.service.in
++++ b/init/udev-retry.service.in
+@@ -4,9 +4,9 @@ DefaultDependencies=no
+ After=local-fs.target udev.service
+ 
+ [Service]
+-Type=finish
++Type=oneshot
+ ValidNoProcess=yes
+-ExecStart=@sbindir@/udevadm trigger --type=failed
++ExecStart=@sbindir@/udevadm trigger --type=failed --action=add
+ 
+ [Install]
+ WantedBy=sysinit.target
+diff --git a/init/udev-settle.service.in b/init/udev-settle.service.in
+index 0594d72..4db61f2 100644
+--- a/init/udev-settle.service.in
++++ b/init/udev-settle.service.in
+@@ -4,7 +4,7 @@ DefaultDependencies=no
+ After=udev.service
+ 
+ [Service]
+-Type=finish
++Type=oneshot
+ ValidNoProcess=yes
+ ExecStart=@sbindir@/udevadm settle
+ 
+-- 
+1.7.2.2
+
diff --git a/0005-init-update-systemd-service-files.patch b/0005-init-update-systemd-service-files.patch
new file mode 100644
index 0000000..e7865d7
--- /dev/null
+++ b/0005-init-update-systemd-service-files.patch
@@ -0,0 +1,38 @@
+From bd078c90b97c73ba5fe7475947e6ecd20e2eb048 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at vrfy.org>
+Date: Tue, 17 Aug 2010 18:53:57 +0200
+Subject: [PATCH 05/23] init: update systemd service files
+
+---
+ init/udev-retry.service.in  |    1 -
+ init/udev-settle.service.in |    2 +-
+ 2 files changed, 1 insertions(+), 2 deletions(-)
+
+diff --git a/init/udev-retry.service.in b/init/udev-retry.service.in
+index d8ed8a8..7a0819c 100644
+--- a/init/udev-retry.service.in
++++ b/init/udev-retry.service.in
+@@ -5,7 +5,6 @@ After=local-fs.target udev.service
+ 
+ [Service]
+ Type=oneshot
+-ValidNoProcess=yes
+ ExecStart=@sbindir@/udevadm trigger --type=failed --action=add
+ 
+ [Install]
+diff --git a/init/udev-settle.service.in b/init/udev-settle.service.in
+index 4db61f2..4cb33aa 100644
+--- a/init/udev-settle.service.in
++++ b/init/udev-settle.service.in
+@@ -5,7 +5,7 @@ After=udev.service
+ 
+ [Service]
+ Type=oneshot
+-ValidNoProcess=yes
++RemainAfterExit=yes
+ ExecStart=@sbindir@/udevadm settle
+ 
+ [Install]
+-- 
+1.7.2.2
+
diff --git a/0006-udev-acl-do-not-mistake-all-SCSI-processor-devices-f.patch b/0006-udev-acl-do-not-mistake-all-SCSI-processor-devices-f.patch
new file mode 100644
index 0000000..0864ad4
--- /dev/null
+++ b/0006-udev-acl-do-not-mistake-all-SCSI-processor-devices-f.patch
@@ -0,0 +1,33 @@
+From 3bd7b89dc40c4a0440ee5fce2ea907971bfcfb10 Mon Sep 17 00:00:00 2001
+From: Marco d'Itri <md at linux.it>
+Date: Wed, 18 Aug 2010 13:35:25 +0200
+Subject: [PATCH 06/23] udev-acl: do not mistake all SCSI "processor" devices for scanner
+
+Both rules can be removed since now libsane sets libsane_matched also
+for SCSI scanners.
+
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589751
+---
+ extras/udev-acl/70-acl.rules |    6 +-----
+ 1 files changed, 1 insertions(+), 5 deletions(-)
+
+diff --git a/extras/udev-acl/70-acl.rules b/extras/udev-acl/70-acl.rules
+index 6ec04ee..c7134bc 100644
+--- a/extras/udev-acl/70-acl.rules
++++ b/extras/udev-acl/70-acl.rules
+@@ -13,11 +13,7 @@ SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:060101:*", TAG+="udev-acl"
+ # digicams with proprietary protocol
+ ENV{ID_GPHOTO2}=="*?", TAG+="udev-acl"
+ 
+-# SCSI scanners
+-KERNEL=="sg[0-9]*", ATTRS{type}=="6", TAG+="udev-acl"
+-KERNEL=="sg[0-9]*", ATTRS{type}=="3", ATTRS{vendor}=="HP|EPSON|Epson", TAG+="udev-acl"
+-
+-# USB scanners
++# SCSI and USB scanners
+ ENV{libsane_matched}=="yes", TAG+="udev-acl"
+ 
+ # HPLIP devices (necessary for ink level check and HP tool maintenance)
+-- 
+1.7.2.2
+
diff --git a/0007-init-add-udev-to-description-in-systemd-service-file.patch b/0007-init-add-udev-to-description-in-systemd-service-file.patch
new file mode 100644
index 0000000..bb13a7b
--- /dev/null
+++ b/0007-init-add-udev-to-description-in-systemd-service-file.patch
@@ -0,0 +1,47 @@
+From d15b727ef1375c665057c0fa278b2ea3778b8d3d Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at vrfy.org>
+Date: Thu, 19 Aug 2010 08:48:44 +0200
+Subject: [PATCH 07/23] init: add 'udev -' to description in systemd service files
+
+---
+ init/udev-retry.service.in  |    2 +-
+ init/udev-settle.service.in |    2 +-
+ init/udev.service.in        |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/init/udev-retry.service.in b/init/udev-retry.service.in
+index 7a0819c..a6612da 100644
+--- a/init/udev-retry.service.in
++++ b/init/udev-retry.service.in
+@@ -1,5 +1,5 @@
+ [Unit]
+-Description=re-trigger failed events after filesystems are available
++Description=udev - re-trigger failed events after filesystems are available
+ DefaultDependencies=no
+ After=local-fs.target udev.service
+ 
+diff --git a/init/udev-settle.service.in b/init/udev-settle.service.in
+index 4cb33aa..578a24f 100644
+--- a/init/udev-settle.service.in
++++ b/init/udev-settle.service.in
+@@ -1,5 +1,5 @@
+ [Unit]
+-Description=wait until full initialization
++Description=udev - wait until full initialization
+ DefaultDependencies=no
+ After=udev.service
+ 
+diff --git a/init/udev.service.in b/init/udev.service.in
+index e95cb47..5a63b77 100644
+--- a/init/udev.service.in
++++ b/init/udev.service.in
+@@ -1,5 +1,5 @@
+ [Unit]
+-Description=/dev and kernel device manager
++Description=udev - /dev and kernel device manager
+ DefaultDependencies=no
+ Before=sysinit.target
+ 
+-- 
+1.7.2.2
+
diff --git a/0008-udevd-add-pid-to-kmsg-logs.patch b/0008-udevd-add-pid-to-kmsg-logs.patch
new file mode 100644
index 0000000..5b7a8df
--- /dev/null
+++ b/0008-udevd-add-pid-to-kmsg-logs.patch
@@ -0,0 +1,41 @@
+From c25bfbfb1b20781698ff3c8cbc884a9e190052ee Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at vrfy.org>
+Date: Thu, 19 Aug 2010 08:49:43 +0200
+Subject: [PATCH 08/23] udevd: add pid to kmsg logs
+
+---
+ udev/udev-event.c |    4 ++--
+ udev/udevd.c      |    2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/udev/udev-event.c b/udev/udev-event.c
+index 9b5326b..ae523f8 100644
+--- a/udev/udev-event.c
++++ b/udev/udev-event.c
+@@ -454,8 +454,8 @@ static void rename_netif_kernel_log(struct ifreq ifr)
+ 		return;
+ 	}
+ 
+-	fprintf(f, "<6>udev: renamed network interface %s to %s\n",
+-		ifr.ifr_name, ifr.ifr_newname);
++	fprintf(f, "<6>udev[%u]: renamed network interface %s to %s\n",
++		getpid(), ifr.ifr_name, ifr.ifr_newname);
+ 	fclose(f);
+ }
+ 
+diff --git a/udev/udevd.c b/udev/udevd.c
+index 61b76f5..ad2ca3b 100644
+--- a/udev/udevd.c
++++ b/udev/udevd.c
+@@ -1298,7 +1298,7 @@ int main(int argc, char *argv[])
+ 
+ 	f = fopen("/dev/kmsg", "w");
+ 	if (f != NULL) {
+-		fprintf(f, "<6>udev: starting version " VERSION "\n");
++		fprintf(f, "<6>udev[%u]: starting version " VERSION "\n", getpid());
+ 		fclose(f);
+ 	}
+ 
+-- 
+1.7.2.2
+
diff --git a/0009-init-edit-systemd-service-descriptions.patch b/0009-init-edit-systemd-service-descriptions.patch
new file mode 100644
index 0000000..45b8119
--- /dev/null
+++ b/0009-init-edit-systemd-service-descriptions.patch
@@ -0,0 +1,47 @@
+From 4c9b12a7aa57e43e568b78da9cbed4138b1292df Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at vrfy.org>
+Date: Thu, 19 Aug 2010 18:02:20 +0200
+Subject: [PATCH 09/23] init: edit systemd service descriptions
+
+---
+ init/udev-retry.service.in  |    2 +-
+ init/udev-settle.service.in |    2 +-
+ init/udev.service.in        |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/init/udev-retry.service.in b/init/udev-retry.service.in
+index a6612da..ab8241b 100644
+--- a/init/udev-retry.service.in
++++ b/init/udev-retry.service.in
+@@ -1,5 +1,5 @@
+ [Unit]
+-Description=udev - re-trigger failed events after filesystems are available
++Description=udev Retry Failed Events
+ DefaultDependencies=no
+ After=local-fs.target udev.service
+ 
+diff --git a/init/udev-settle.service.in b/init/udev-settle.service.in
+index 578a24f..d58ea9c 100644
+--- a/init/udev-settle.service.in
++++ b/init/udev-settle.service.in
+@@ -1,5 +1,5 @@
+ [Unit]
+-Description=udev - wait until full initialization
++Description=udev Wait for Complete Device Initialization
+ DefaultDependencies=no
+ After=udev.service
+ 
+diff --git a/init/udev.service.in b/init/udev.service.in
+index 5a63b77..b07f4db 100644
+--- a/init/udev.service.in
++++ b/init/udev.service.in
+@@ -1,5 +1,5 @@
+ [Unit]
+-Description=udev - /dev and kernel device manager
++Description=udev Kernel Device Manager
+ DefaultDependencies=no
+ Before=sysinit.target
+ 
+-- 
+1.7.2.2
+
diff --git a/0011-udev-7-Point-out-required-extension-and-remove-some-.patch b/0011-udev-7-Point-out-required-extension-and-remove-some-.patch
new file mode 100644
index 0000000..bd75f26
--- /dev/null
+++ b/0011-udev-7-Point-out-required-extension-and-remove-some-.patch
@@ -0,0 +1,42 @@
+From 6593e8961afbe0b74d5a67c545a991c7733e88df Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Fri, 20 Aug 2010 12:19:23 +0200
+Subject: [PATCH 11/23] udev(7): Point out required extension, and remove some confusion
+
+Rules files must end in .rules.
+
+Also drop the redundant and confusing sentence about "file names must be
+unique". What is really meant is explained in a better way in the paragraph
+above.
+
+https://launchpad.net/bugs/616108
+---
+ udev/udev.xml |   11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/udev/udev.xml b/udev/udev.xml
+index 20c394c..336b203 100644
+--- a/udev/udev.xml
++++ b/udev/udev.xml
+@@ -75,12 +75,13 @@
+       the custom rules directory <filename>/etc/udev/rules.d/</filename>
+       and the temporary rules directory <filename>/dev/.udev/rules.d/</filename>.
+       All rule files are sorted and processed in lexical order, regardless
+-      in which of these directories they live.</para>
++      in which of these directories they live. Files in
++      <filename>/etc/udev/rules.d/</filename> have precedence over files with
++      the same name in <filename>/lib/udev/rules.d/</filename>. This can be
++      used to ignore a default rules file if needed.</para>
+ 
+-      <para>Rule files are required to have a unique name, duplicate file names
+-      are ignored. Files in <filename>/etc/udev/rules.d/</filename> have precedence
+-      over files with the same name in <filename>/lib/udev/rules.d/</filename>. This
+-      can be used to ignore a default rules file if needed.</para>
++      <para>Rule files must end in <filename>.rules</filename>, other extensions
++      are ignored.</para>
+ 
+       <para>Every line in the rules file contains at least one key value pair.
+       There are two kind of keys, match and assignment keys.
+-- 
+1.7.2.2
+
diff --git a/0012-keymap-Add-Onkyo-PC.patch b/0012-keymap-Add-Onkyo-PC.patch
new file mode 100644
index 0000000..e7b283b
--- /dev/null
+++ b/0012-keymap-Add-Onkyo-PC.patch
@@ -0,0 +1,63 @@
+From acf865b68e1a5c78677537b373b6e082c287fc27 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Sun, 22 Aug 2010 11:00:34 +0200
+Subject: [PATCH 12/23] keymap: Add Onkyo PC
+
+Thanks to Pau Oliva!
+
+https://launchpad.net/bugs/612529
+---
+ Makefile.am                   |    1 +
+ extras/keymap/95-keymap.rules |    2 ++
+ extras/keymap/keymaps/onkyo   |   14 ++++++++++++++
+ 3 files changed, 17 insertions(+), 0 deletions(-)
+ create mode 100644 extras/keymap/keymaps/onkyo
+
+diff --git a/Makefile.am b/Makefile.am
+index 77df6ab..512de34 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -555,6 +555,7 @@ dist_udevkeymap_DATA = \
+ 	extras/keymap/keymaps/module-sony \
+ 	extras/keymap/keymaps/module-sony-old \
+ 	extras/keymap/keymaps/olpc-xo \
++	extras/keymap/keymaps/onkyo \
+ 	extras/keymap/keymaps/oqo-model2 \
+ 	extras/keymap/keymaps/samsung-other \
+ 	extras/keymap/keymaps/samsung-sq1us \
+diff --git a/extras/keymap/95-keymap.rules b/extras/keymap/95-keymap.rules
+index 2241422..e9d5721 100644
+--- a/extras/keymap/95-keymap.rules
++++ b/extras/keymap/95-keymap.rules
+@@ -127,6 +127,8 @@ ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite M30X", RUN+="
+ 
+ ENV{DMI_VENDOR}=="OQO Inc.*", ATTR{[dmi/id]product_name}=="OQO Model 2*", RUN+="keymap $name oqo-model2"
+ 
++ENV{DMI_VENDOR}=="ONKYO CORPORATION", ATTR{[dmi/id]product_name}=="ONKYOPC", RUN+="keymap $name onkyo"
++
+ ENV{DMI_VENDOR}=="ASUS", RUN+="keymap $name asus"
+ 
+ ENV{DMI_VENDOR}=="VIA", ATTR{[dmi/id]product_name}=="K8N800", ATTR{[dmi/id]product_version}=="VT8204B", RUN+="keymap $name 0x81 prog1"
+diff --git a/extras/keymap/keymaps/onkyo b/extras/keymap/keymaps/onkyo
+new file mode 100644
+index 0000000..7dd80a1
+--- /dev/null
++++ b/extras/keymap/keymaps/onkyo
+@@ -0,0 +1,14 @@
++0xA0 mute # Fn+D
++0xAE volumedown # Fn+F
++0xB0 volumeup # Fn+G
++0xDF sleep # Fn+W
++0xE0 bluetooth # Fn+H
++0xE2 cyclewindows # Fn+Esc
++0xEE battery # Fn+Q
++0xF0 media # Fn+R
++0xF5 switchvideomode # Fn+E
++0xF6 camera # Fn+T
++0xF7 f22 # Fn+Y (touchpad toggle)
++0xF8 brightnessup # Fn+S
++0xF9 brightnessdown # Fn+A
++0xFB wlan # Fn+J
+-- 
+1.7.2.2
+
diff --git a/0013-keymap-Add-HP-G60.patch b/0013-keymap-Add-HP-G60.patch
new file mode 100644
index 0000000..cbeb33c
--- /dev/null
+++ b/0013-keymap-Add-HP-G60.patch
@@ -0,0 +1,26 @@
+From 92cffb0bd18bd8fd245666a519ad0e54dc537031 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Mon, 23 Aug 2010 10:47:28 +0200
+Subject: [PATCH 13/23] keymap: Add HP G60
+
+https://launchpad.net/bugs/554944
+---
+ extras/keymap/95-keymap.rules |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/extras/keymap/95-keymap.rules b/extras/keymap/95-keymap.rules
+index e9d5721..5656de9 100644
+--- a/extras/keymap/95-keymap.rules
++++ b/extras/keymap/95-keymap.rules
+@@ -72,7 +72,7 @@ ENV{DMI_VENDOR}=="Hewlett-Packard*", RUN+="keymap $name hewlett-packard"
+ ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][aA][bB][lL][eE][tT]*", RUN+="keymap $name hewlett-packard-tablet"
+ ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[pP][aA][vV][iI][lL][iI][oO][nN]*", RUN+="keymap $name hewlett-packard-pavilion"
+ ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*Compaq*|*EliteBook*|*2230s*", RUN+="keymap $name hewlett-packard-compaq_elitebook"
+-ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*2510p*|*2530p*", RUN+="keymap $name hewlett-packard-2510p_2530p"
++ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*2510p*|*2530p*|HP G60 Notebook PC", RUN+="keymap $name hewlett-packard-2510p_2530p"
+ ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][xX]2*", RUN+="keymap $name hewlett-packard-tx2"
+ ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="Presario 2100*", RUN+="keymap $name hewlett-packard-presario-2100"
+ # HP Pavillion dv6315ea has empty DMI_VENDOR
+-- 
+1.7.2.2
+
diff --git a/0014-udevd-remove-unneeded-credential-passing-from-init_n.patch b/0014-udevd-remove-unneeded-credential-passing-from-init_n.patch
new file mode 100644
index 0000000..858371b
--- /dev/null
+++ b/0014-udevd-remove-unneeded-credential-passing-from-init_n.patch
@@ -0,0 +1,58 @@
+From 13f90be7a33353fdbcd4a389630a05c608bdf2a4 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at vrfy.org>
+Date: Wed, 25 Aug 2010 16:26:54 +0200
+Subject: [PATCH 14/23] udevd: remove unneeded credential passing from init_notify()
+
+---
+ udev/udevd.c |   17 -----------------
+ 1 files changed, 0 insertions(+), 17 deletions(-)
+
+diff --git a/udev/udevd.c b/udev/udevd.c
+index ad2ca3b..374a4e0 100644
+--- a/udev/udevd.c
++++ b/udev/udevd.c
+@@ -964,15 +964,10 @@ static int init_notify(const char *state)
+ 	int fd = -1, r;
+ 	struct msghdr msghdr;
+ 	struct iovec iovec;
+-	struct ucred *ucred;
+ 	union {
+ 		struct sockaddr sa;
+ 		struct sockaddr_un un;
+ 	} sockaddr;
+-	union {
+-		struct cmsghdr cmsghdr;
+-		uint8_t buf[CMSG_SPACE(sizeof(struct ucred))];
+-	} control;
+ 	const char *e;
+ 
+ 	if (!(e = getenv("NOTIFY_SOCKET"))) {
+@@ -1002,16 +997,6 @@ static int init_notify(const char *state)
+ 	iovec.iov_base = (char*) state;
+ 	iovec.iov_len = strlen(state);
+ 
+-	memset(&control, 0, sizeof(control));
+-	control.cmsghdr.cmsg_level = SOL_SOCKET;
+-	control.cmsghdr.cmsg_type = SCM_CREDENTIALS;
+-	control.cmsghdr.cmsg_len = CMSG_LEN(sizeof(struct ucred));
+-
+-	ucred = (struct ucred*) CMSG_DATA(&control.cmsghdr);
+-	ucred->pid = getpid();
+-	ucred->uid = getuid();
+-	ucred->gid = getgid();
+-
+ 	memset(&msghdr, 0, sizeof(msghdr));
+ 	msghdr.msg_name = &sockaddr;
+ 	msghdr.msg_namelen = sizeof(sa_family_t) + strlen(e);
+@@ -1019,8 +1004,6 @@ static int init_notify(const char *state)
+ 		msghdr.msg_namelen = sizeof(struct sockaddr_un);
+ 	msghdr.msg_iov = &iovec;
+ 	msghdr.msg_iovlen = 1;
+-	msghdr.msg_control = &control;
+-	msghdr.msg_controllen = control.cmsghdr.cmsg_len;
+ 
+ 	if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) {
+ 		r = -errno;
+-- 
+1.7.2.2
+
diff --git a/0015-Add-support-for-oom_score_adj.patch b/0015-Add-support-for-oom_score_adj.patch
new file mode 100644
index 0000000..e00e50d
--- /dev/null
+++ b/0015-Add-support-for-oom_score_adj.patch
@@ -0,0 +1,48 @@
+From c61eea9459045c2c9032a0c98234985a371fac58 Mon Sep 17 00:00:00 2001
+From: Luca Tettamanti <kronos.it at gmail.com>
+Date: Mon, 23 Aug 2010 14:35:37 +0200
+Subject: [PATCH 15/23] Add support for oom_score_adj
+
+/proc/<pid>/oom_adj has been deprecated (kernel v2.6.36) due to the
+rework of the badness heuristic; oom_score_adj is the replacement.
+Keep a fallback to the old interface for compatibility with older
+kernels.
+
+See http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a63d83f427fbce97a6cea0db2e64b0eb8435cd10
+
+Signed-off-by: Martin Pitt <martin.pitt at ubuntu.com>
+---
+ udev/udevd.c |   15 +++++++++++----
+ 1 files changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/udev/udevd.c b/udev/udevd.c
+index 374a4e0..0ec3c3d 100644
+--- a/udev/udevd.c
++++ b/udev/udevd.c
+@@ -1285,12 +1285,19 @@ int main(int argc, char *argv[])
+ 		fclose(f);
+ 	}
+ 
+-	/* OOM_DISABLE == -17 */
+-	fd = open("/proc/self/oom_adj", O_RDWR);
++	fd = open("/proc/self/oom_score_adj", O_RDWR);
+ 	if (fd < 0) {
+-		err(udev, "error disabling OOM: %m\n");
++		/* Fallback to old interface */
++		fd = open("/proc/self/oom_adj", O_RDWR);
++		if (fd < 0) {
++			err(udev, "error disabling OOM: %m\n");
++		} else {
++			/* OOM_DISABLE == -17 */
++			write(fd, "-17", 3);
++			close(fd);
++		}
+ 	} else {
+-		write(fd, "-17", 3);
++		write(fd, "-1000", 5);
+ 		close(fd);
+ 	}
+ 
+-- 
+1.7.2.2
+
diff --git a/0016-keymap-Fix-Sony-VAIO-VGN-SZ2HP-B.patch b/0016-keymap-Fix-Sony-VAIO-VGN-SZ2HP-B.patch
new file mode 100644
index 0000000..d5c7fff
--- /dev/null
+++ b/0016-keymap-Fix-Sony-VAIO-VGN-SZ2HP-B.patch
@@ -0,0 +1,28 @@
+From 38b5ccbcf7f3643ea8180a8186cfe3e5fa9cb983 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Wed, 25 Aug 2010 17:02:51 +0200
+Subject: [PATCH 16/23] keymap: Fix Sony VAIO VGN-SZ2HP/B
+
+Reportedly this needs the module-sony keymap, not the -old one.
+
+https://launchpad.net/bugs/613578
+---
+ extras/keymap/95-keymap.rules |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/extras/keymap/95-keymap.rules b/extras/keymap/95-keymap.rules
+index 5656de9..cb066bd 100644
+--- a/extras/keymap/95-keymap.rules
++++ b/extras/keymap/95-keymap.rules
+@@ -46,7 +46,7 @@ ENV{DMI_VENDOR}=="ASUS*", KERNELS=="input*", ATTRS{name}=="Asus Extra Buttons",
+ ENV{DMI_VENDOR}=="Sony*", KERNELS=="input*", ATTRS{name}=="Sony Vaio Keys", RUN+="keymap $name module-sony"
+ 
+ # Older Vaios have some different keys
+-ENV{DMI_VENDOR}=="Sony*", ATTR{[dmi/id]product_name}=="*PCG-C1*|*PCG-K25*|*PCG-F1*|*PCG-F2*|*PCG-F3*|*PCG-F4*|*PCG-F5*|*PCG-F6*|*PCG-FX*|*PCG-FRV*|*PCG-GR*|*PCG-TR*|*PCG-NV*|*PCG-Z*|*VGN-S360*|*VGN-SZ2HP_B*", ATTRS{name}=="Sony Vaio Keys", RUN+="keymap $name module-sony-old"
++ENV{DMI_VENDOR}=="Sony*", ATTR{[dmi/id]product_name}=="*PCG-C1*|*PCG-K25*|*PCG-F1*|*PCG-F2*|*PCG-F3*|*PCG-F4*|*PCG-F5*|*PCG-F6*|*PCG-FX*|*PCG-FRV*|*PCG-GR*|*PCG-TR*|*PCG-NV*|*PCG-Z*|*VGN-S360*", ATTRS{name}=="Sony Vaio Keys", RUN+="keymap $name module-sony-old"
+ 
+ #
+ # The following rules belong to standard i8042 AT keyboard with high key codes.
+-- 
+1.7.2.2
+
diff --git a/0017-udev-7-manpage-Fix-description-of-attr.patch b/0017-udev-7-manpage-Fix-description-of-attr.patch
new file mode 100644
index 0000000..6b41ecf
--- /dev/null
+++ b/0017-udev-7-manpage-Fix-description-of-attr.patch
@@ -0,0 +1,32 @@
+From 83184d008ba23724fd30996440534c0633a0d0aa Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Fri, 27 Aug 2010 16:54:52 +0200
+Subject: [PATCH 17/23] udev(7) manpage: Fix description of $attr
+
+Fix the manpage to describe the real behaviour of $attr: It doesn't search all
+parent devices any more, just the one selected by KERNELS etc.
+
+https://launchpad.net/bugs/348513
+---
+ udev/udev.xml |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/udev/udev.xml b/udev/udev.xml
+index 336b203..6085dff 100644
+--- a/udev/udev.xml
++++ b/udev/udev.xml
+@@ -578,8 +578,9 @@
+           <listitem>
+             <para>The value of a sysfs attribute found at the device, where
+             all keys of the rule have matched. If the matching device does not have
+-            such an attribute, follow the chain of parent devices and use the value
+-            of the first attribute that matches.
++            such an attribute, and a previous KERNELS, SUBSYSTEMS, DRIVERS, or
++            ATTRS test selected a parent device, use the attribute from that
++            parent device.
+             If the attribute is a symlink, the last element of the symlink target is
+             returned as the value.</para>
+           </listitem>
+-- 
+1.7.2.2
+
diff --git a/0018-gudev-fix-crash-if-netlink-is-not-available.patch b/0018-gudev-fix-crash-if-netlink-is-not-available.patch
new file mode 100644
index 0000000..2a5872e
--- /dev/null
+++ b/0018-gudev-fix-crash-if-netlink-is-not-available.patch
@@ -0,0 +1,57 @@
+From e4dcdc4ab232bcbbe61a2026c16e647d9302cdd2 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Fri, 27 Aug 2010 18:12:59 +0200
+Subject: [PATCH 18/23] gudev: fix crash if netlink is not available
+
+gudev_client_new() assumes that priv->monitor is never NULL, but this happens
+on older kernels. Let's not crash client programs because of that.
+
+https://launchpad.net/bugs/581527
+---
+ extras/gudev/gudevclient.c |   18 ++++++++++++------
+ 1 files changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/extras/gudev/gudevclient.c b/extras/gudev/gudevclient.c
+index fa31f70..f5f7a19 100644
+--- a/extras/gudev/gudevclient.c
++++ b/extras/gudev/gudevclient.c
+@@ -93,6 +93,8 @@ monitor_event (GIOChannel *source,
+   GUdevDevice *device;
+   struct udev_device *udevice;
+ 
++  if (client->priv->monitor == NULL)
++    goto out;
+   udevice = udev_monitor_receive_device (client->priv->monitor);
+   if (udevice == NULL)
+     goto out;
+@@ -216,17 +218,21 @@ g_udev_client_constructed (GObject *object)
+               *s = '\0';
+             }
+ 
+-          udev_monitor_filter_add_match_subsystem_devtype (client->priv->monitor, subsystem, devtype);
++          if (client->priv->monitor != NULL)
++              udev_monitor_filter_add_match_subsystem_devtype (client->priv->monitor, subsystem, devtype);
+ 
+           g_free (subsystem);
+         }
+ 
+       /* listen to events, and buffer them */
+-      udev_monitor_enable_receiving (client->priv->monitor);
+-
+-      channel = g_io_channel_unix_new (udev_monitor_get_fd (client->priv->monitor));
+-      client->priv->watch_id = g_io_add_watch (channel, G_IO_IN, monitor_event, client);
+-      g_io_channel_unref (channel);
++      if (client->priv->monitor != NULL)
++        {
++          udev_monitor_enable_receiving (client->priv->monitor);
++          channel = g_io_channel_unix_new (udev_monitor_get_fd (client->priv->monitor));
++          client->priv->watch_id = g_io_add_watch (channel, G_IO_IN, monitor_event, client);
++          g_io_channel_unref (channel);
++        } else
++          client->priv->watch_id = NULL;
+     }
+ 
+   if (G_OBJECT_CLASS (g_udev_client_parent_class)->constructed != NULL)
+-- 
+1.7.2.2
+
diff --git a/0019-keymap-Fix-Acer-TravelMate-4720.patch b/0019-keymap-Fix-Acer-TravelMate-4720.patch
new file mode 100644
index 0000000..35a9922
--- /dev/null
+++ b/0019-keymap-Fix-Acer-TravelMate-4720.patch
@@ -0,0 +1,28 @@
+From d17c065e28fa4baac90b02b4913c7ef32d54f3c7 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Fri, 27 Aug 2010 18:48:53 +0200
+Subject: [PATCH 19/23] keymap: Fix Acer TravelMate 4720
+
+The previous change just fixed the Bluetooth key, but Screen Lock and Browser
+also need to be changed.
+
+https://launchpad.net/bugs/569815
+---
+ extras/keymap/95-keymap.rules |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/extras/keymap/95-keymap.rules b/extras/keymap/95-keymap.rules
+index cb066bd..913b380 100644
+--- a/extras/keymap/95-keymap.rules
++++ b/extras/keymap/95-keymap.rules
+@@ -85,6 +85,7 @@ ENV{DMI_VENDOR}=="Acer*", RUN+="keymap $name acer"
+ ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Extensa*", ATTR{[dmi/id]product_name}=="*5210*|*5220*|*5610*|*5620*|*5720*", RUN+="keymap $name 0xEE screenlock"
+ ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="TravelMate*C300*", RUN+="keymap $name acer-travelmate_c300"
+ ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="TravelMate*6292*|TravelMate*8471*|TravelMate*4720*|Aspire 1810T*|AO751h|AO531h", RUN+="keymap $name 0xD9 bluetooth"
++ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="TravelMate*4720*", RUN+="keymap $name 0xB2 www 0xEE screenlock"
+ ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="TravelMate 6593|Aspire 1640", RUN+="keymap $name 0xB2 www 0xEE screenlock"
+ ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 6920", RUN+="keymap $name acer-aspire_6920"
+ ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 5920G", RUN+="keymap $name acer-aspire_5920g"
+-- 
+1.7.2.2
+
diff --git a/0020-cdrom_id-Fix-DVD-RW-media-detection.patch b/0020-cdrom_id-Fix-DVD-RW-media-detection.patch
new file mode 100644
index 0000000..4a91a4e
--- /dev/null
+++ b/0020-cdrom_id-Fix-DVD-RW-media-detection.patch
@@ -0,0 +1,53 @@
+From 2458db3edd8d66827b34978ff471dff8f879e9ab Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt at ubuntu.com>
+Date: Mon, 30 Aug 2010 15:33:26 +0200
+Subject: [PATCH 20/23] cdrom_id: Fix DVD-RW media detection
+
+Commit cf2205a19 applied the "restricted overwrite" vs. "sequential" DVD-RW
+test to feature_profiles() (which reads the drive capabilities), which caused
+every DVD medium to be detected as ID_CDROM_MEDIA_DVD_RW. Now apply it to
+cd_profiles() instead, to just check the current profile.
+---
+ extras/cdrom_id/cdrom_id.c |   13 +++++++------
+ 1 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/extras/cdrom_id/cdrom_id.c b/extras/cdrom_id/cdrom_id.c
+index f9d6e0b..8480d7b 100644
+--- a/extras/cdrom_id/cdrom_id.c
++++ b/extras/cdrom_id/cdrom_id.c
+@@ -297,14 +297,9 @@ static int feature_profiles(struct udev *udev, const unsigned char *profiles, si
+ 			cd_dvd_ram = 1;
+ 			break;
+ 		case 0x13:
+-			info(udev, "profile 0x%02x media_dvd_rw\n", profile);
+-			cd_media_dvd_rw = 1;
+-			cd_media_dvd_rw_ro = 1;
+-			break;
+ 		case 0x14:
+ 			info(udev, "profile 0x%02x dvd_rw\n", profile);
+ 			cd_dvd_rw = 1;
+-			cd_media_dvd_rw_seq = 1;
+ 			break;
+ 		case 0x1B:
+ 			info(udev, "profile 0x%02x dvd_plus_r\n", profile);
+@@ -486,10 +481,16 @@ static int cd_profiles(struct udev *udev, int fd)
+ 		cd_media_dvd_ram = 1;
+ 		break;
+ 	case 0x13:
++		info(udev, "profile 0x%02x media_dvd_rw_ro\n", cur_profile);
++		cd_media = 1;
++		cd_media_dvd_rw = 1;
++		cd_media_dvd_rw_ro = 1;
++		break;
+ 	case 0x14:
+-		info(udev, "profile 0x%02x media_dvd_rw\n", cur_profile);
++		info(udev, "profile 0x%02x media_dvd_rw_seq\n", cur_profile);
+ 		cd_media = 1;
+ 		cd_media_dvd_rw = 1;
++		cd_media_dvd_rw_seq = 1;
+ 		break;
+ 	case 0x1B:
+ 		info(udev, "profile 0x%02x media_dvd_plus_r\n", cur_profile);
+-- 
+1.7.2.2
+
diff --git a/0021-cdrom_id-Fix-DVD-blank-detection-for-sloppy-firmware.patch b/0021-cdrom_id-Fix-DVD-blank-detection-for-sloppy-firmware.patch
new file mode 100644
index 0000000..d033307
--- /dev/null
+++ b/0021-cdrom_id-Fix-DVD-blank-detection-for-sloppy-firmware.patch
@@ -0,0 +1,42 @@
+From 5e267ea5a36de0b2a9a8965ca93dd45bbd6b1a8b Mon Sep 17 00:00:00 2001
+From: Jan Drzewiecki <jonie at icpnet.pl>
+Date: Tue, 31 Aug 2010 00:37:28 +0200
+Subject: [PATCH 21/23] cdrom_id: Fix DVD blank detection for sloppy firmware
+
+Reportedly, many CD drive firmwares will only consider the MSB in a READ
+command, thus if we request 17 blocks to be read, we'll actually only get 16 in
+many cases, and thus miss out the interesting sector #17. This would lead to
+falsely considering nonempty DVDs as blank.
+
+Fetch 32 blocks now, which should work everywhere.
+
+Signed-off-by: Martin Pitt <martin.pitt at ubuntu.com>
+---
+ extras/cdrom_id/cdrom_id.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/extras/cdrom_id/cdrom_id.c b/extras/cdrom_id/cdrom_id.c
+index 8480d7b..0153af6 100644
+--- a/extras/cdrom_id/cdrom_id.c
++++ b/extras/cdrom_id/cdrom_id.c
+@@ -590,7 +590,7 @@ static int cd_media_info(struct udev *udev, int fd)
+ 	 * always "complete", DVD-RAM are "other" or "complete" if the disc is
+ 	 * write protected; we need to check the contents if it is blank */
+ 	if ((cd_media_dvd_rw_ro || cd_media_dvd_plus_rw || cd_media_dvd_plus_rw_dl || cd_media_dvd_ram) && (header[2] & 3) > 1) {
+-		unsigned char buffer[17 * 2048];
++		unsigned char buffer[32 * 2048];
+ 		unsigned char result, len;
+ 		int block, offset;
+ 
+@@ -661,7 +661,7 @@ static int cd_media_info(struct udev *udev, int fd)
+ 		scsi_cmd_init(udev, &sc, buffer, sizeof(buffer));
+ 		scsi_cmd_set(udev, &sc, 0, 0x28);
+ 		scsi_cmd_set(udev, &sc, 5, 0);
+-		scsi_cmd_set(udev, &sc, 8, 17);
++		scsi_cmd_set(udev, &sc, 8, 32);
+ 		scsi_cmd_set(udev, &sc, 9, 0);
+ 		err = scsi_cmd_run(udev, &sc, fd, buffer, sizeof(buffer));
+ 		if ((err != 0)) {
+-- 
+1.7.2.2
+
diff --git a/0022-set-SELinux-context-on-add-but-not-on-change-events.patch b/0022-set-SELinux-context-on-add-but-not-on-change-events.patch
new file mode 100644
index 0000000..aa99300
--- /dev/null
+++ b/0022-set-SELinux-context-on-add-but-not-on-change-events.patch
@@ -0,0 +1,35 @@
+From 326c5fc3ea684825629eccaf33a548759162a539 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at vrfy.org>
+Date: Tue, 31 Aug 2010 21:29:21 +0200
+Subject: [PATCH 22/23] set SELinux context on 'add' but not on 'change' events
+
+---
+ udev/udev-node.c |    9 ++++++++-
+ 1 files changed, 8 insertions(+), 1 deletions(-)
+
+diff --git a/udev/udev-node.c b/udev/udev-node.c
+index 228b3eb..c8113f1 100644
+--- a/udev/udev-node.c
++++ b/udev/udev-node.c
+@@ -56,10 +56,17 @@ int udev_node_mknod(struct udev_device *dev, const char *file, mode_t mode, uid_
+ 				info(udev, "set permissions %s, %#o, uid=%u, gid=%u\n", file, mode, uid, gid);
+ 				chmod(file, mode);
+ 				chown(file, uid, gid);
+-				udev_selinux_lsetfilecon(udev, file, mode);
+ 			} else {
+ 				info(udev, "preserve permissions %s, %#o, uid=%u, gid=%u\n", file, mode, uid, gid);
+ 			}
++			/*
++			 * Set initial selinux file context only on add events.
++			 * We set the proper context on bootup (triger) or for newly
++			 * added devices, but we don't change it later, in case
++			 * something else has set a custom context in the meantime.
++			 */
++			if (strcmp(udev_device_get_action(dev), "add") == 0)
++				udev_selinux_lsetfilecon(udev, file, mode);
+ 			/* always update timestamp when we re-use the node, like on media change events */
+ 			utimensat(AT_FDCWD, file, NULL, 0);
+ 		} else {
+-- 
+1.7.2.2
+
diff --git a/0023-do-not-create-persistent-name-rules-for-KVM-network-.patch b/0023-do-not-create-persistent-name-rules-for-KVM-network-.patch
new file mode 100644
index 0000000..16b7dab
--- /dev/null
+++ b/0023-do-not-create-persistent-name-rules-for-KVM-network-.patch
@@ -0,0 +1,28 @@
+From af29bf0966994bc233282148f519e12ea29e1c5a Mon Sep 17 00:00:00 2001
+From: Marco d'Itri <md at linux.it>
+Date: Tue, 31 Aug 2010 21:44:34 +0200
+Subject: [PATCH 23/23] do not create persistent name rules for KVM network interfaces
+
+The virtual interfaces created by KVM are stable, 54:52:00 is the MAC-48
+range of KVM.
+---
+ .../75-persistent-net-generator.rules              |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/extras/rule_generator/75-persistent-net-generator.rules b/extras/rule_generator/75-persistent-net-generator.rules
+index a9dfdce..8119d0e 100644
+--- a/extras/rule_generator/75-persistent-net-generator.rules
++++ b/extras/rule_generator/75-persistent-net-generator.rules
+@@ -29,6 +29,9 @@ ENV{MATCHADDR}="$attr{address}"
+ # match interface type
+ ENV{MATCHIFTYPE}="$attr{type}"
+ 
++# ignore KVM virtual interfaces
++ENV{MATCHADDR}=="54:52:00:*", GOTO="persistent_net_generator_end"
++
+ # These vendors are known to violate the local MAC address assignment scheme
+ # Interlan, DEC (UNIBUS or QBUS), Apollo, Cisco, Racal-Datacom
+ ENV{MATCHADDR}=="02:07:01:*", GOTO="globally_administered_whitelist"
+-- 
+1.7.2.2
+
diff --git a/udev.spec b/udev.spec
index 8b8febb..6fc041f 100644
--- a/udev.spec
+++ b/udev.spec
@@ -7,7 +7,7 @@
 Summary: A rule-based device node and kernel event manager
 Name: udev
 Version: 161
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2+
 Group: System Environment/Base
 Provides: udev-persistent = %{version}-%{release}
@@ -17,6 +17,29 @@ Source: ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/%{name}-%{version}.t
 Source1: start_udev
 Source2: udev-post.init
 
+Patch1: 0001-cdrom_id-Add-media-status-debugging.patch
+Patch2: 0002-Add-keymap-for-Lenovo-IdeaPad-S10-3.patch
+Patch3: 0003-cdrom_id-Drop-MEDIA_SESSION_NEXT-for-DVD-RW-RO.patch
+Patch4: 0004-init-update-systemd-service-files.patch
+Patch5: 0005-init-update-systemd-service-files.patch
+Patch6: 0006-udev-acl-do-not-mistake-all-SCSI-processor-devices-f.patch
+Patch7: 0007-init-add-udev-to-description-in-systemd-service-file.patch
+Patch8: 0008-udevd-add-pid-to-kmsg-logs.patch
+Patch9: 0009-init-edit-systemd-service-descriptions.patch
+Patch11: 0011-udev-7-Point-out-required-extension-and-remove-some-.patch
+Patch12: 0012-keymap-Add-Onkyo-PC.patch
+Patch13: 0013-keymap-Add-HP-G60.patch
+Patch14: 0014-udevd-remove-unneeded-credential-passing-from-init_n.patch
+Patch15: 0015-Add-support-for-oom_score_adj.patch
+Patch16: 0016-keymap-Fix-Sony-VAIO-VGN-SZ2HP-B.patch
+Patch17: 0017-udev-7-manpage-Fix-description-of-attr.patch
+Patch18: 0018-gudev-fix-crash-if-netlink-is-not-available.patch
+Patch19: 0019-keymap-Fix-Acer-TravelMate-4720.patch
+Patch20: 0020-cdrom_id-Fix-DVD-RW-media-detection.patch
+Patch21: 0021-cdrom_id-Fix-DVD-blank-detection-for-sloppy-firmware.patch
+Patch22: 0022-set-SELinux-context-on-add-but-not-on-change-events.patch
+Patch23: 0023-do-not-create-persistent-name-rules-for-KVM-network-.patch
+
 ExclusiveOS: Linux
 URL: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -113,6 +136,28 @@ glib-based applications using libudev functionality.
 
 %prep 
 %setup -q 
+%patch1 -p1 -b .git1
+%patch2 -p1 -b .git2
+%patch3 -p1 -b .git3
+%patch4 -p1 -b .git4
+%patch5 -p1 -b .git5
+%patch6 -p1 -b .git6
+%patch7 -p1 -b .git7
+%patch8 -p1 -b .git8
+%patch9 -p1 -b .git9
+%patch11 -p1 -b .git11
+%patch12 -p1 -b .git12
+%patch13 -p1 -b .git13
+%patch14 -p1 -b .git14
+%patch15 -p1 -b .git15
+%patch16 -p1 -b .git16
+%patch17 -p1 -b .git17
+%patch18 -p1 -b .git18
+%patch19 -p1 -b .git19
+%patch20 -p1 -b .git20
+%patch21 -p1 -b .git21
+%patch22 -p1 -b .git22
+%patch23 -p1 -b .git23
 
 %build
 libtoolize -f -c
@@ -349,6 +394,11 @@ rm -rf $RPM_BUILD_ROOT
 %attr(0644,root,root) %{_libdir}/pkgconfig/gudev-1.0*
 
 %changelog
+* Wed Sep 01 2010 Harald Hoyer <harald at redhat.com> 161-2
+- bugfixes for systemd service files
+- bugfix for selinux labeling
+- bugfixes for cdrom_id
+
 * Tue Aug 17 2010 Harald Hoyer <harald at redhat.com> 161-1
 - udev-161 with an upstream quirk for the qemu cdrom and
   more cdrom handling bugfixes


More information about the scm-commits mailing list