[udev/f13/master] * Wed Aug 04 2010 Harald Hoyer <harald at redhat.com> 153-1.0.test.1 - trigger with action==add - add r

Harald Hoyer harald at fedoraproject.org
Wed Aug 4 13:43:05 UTC 2010


commit 24924749eab13ec72ca99f49fe04f589ee800a9b
Author: Harald Hoyer <harald at redhat.com>
Date:   Wed Aug 4 15:42:31 2010 +0200

    * Wed Aug 04 2010 Harald Hoyer <harald at redhat.com> 153-1.0.test.1
    - trigger with action==add
    - add rd_NO_MDIMSM on noiswmd kernel cmdline option
    Resolves: rhbz#589774
    - fix console switching and ACLs
    Resolves: rhbz#608712
    - fix key mapping for Samsung N210
    Resolves: rhbz#606302
    - fix for blank or audio CDs
    Resolves: rhbz#606285
    - fix for scsi changer
    Resolves: rhbz#600983

 ...operly-handle-CK-change-events-for-root-u.patch |   52 ++++++++
 ...cl-really-fix-ACL-assignment-in-CK-events.patch |  125 ++++++++++++++++++++
 udev-153-changer.patch                             |   25 ++++
 ...t484e1b2d11b9b89418589d885a625e647881933b.patch |   27 ++++
 ...teb2de7acdb741c8a67511c4c458efa93835e18a7.patch |   36 ++++++
 udev.spec                                          |   15 ++-
 6 files changed, 279 insertions(+), 1 deletions(-)
---
diff --git a/0017-udev-acl-properly-handle-CK-change-events-for-root-u.patch b/0017-udev-acl-properly-handle-CK-change-events-for-root-u.patch
new file mode 100644
index 0000000..fc32c06
--- /dev/null
+++ b/0017-udev-acl-properly-handle-CK-change-events-for-root-u.patch
@@ -0,0 +1,52 @@
+From 939cc18afc49ee8479572c14c7fa777646fd4add Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers at vrfy.org>
+Date: Tue, 3 Aug 2010 15:09:46 +0200
+Subject: [PATCH 17/18] udev-acl: properly handle CK change events for root user
+
+mschmidt at redhat.com writes:
+> since root is treated specially, it does not do anything!
+> udev-acl may want to prevent removing ACLs from root, but
+> it must not stop the ACLs being granted to the user of the
+> new session.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=608712
+---
+ extras/udev-acl/udev-acl.c |    7 +------
+ 1 files changed, 1 insertions(+), 6 deletions(-)
+
+diff --git a/extras/udev-acl/udev-acl.c b/extras/udev-acl/udev-acl.c
+index ff04ec6..f2b5005 100644
+--- a/extras/udev-acl/udev-acl.c
++++ b/extras/udev-acl/udev-acl.c
+@@ -224,14 +224,10 @@ static int consolekit_called(const char *ck_action, uid_t *uid, uid_t *uid2, con
+ 		if (s == NULL)
+ 			return -1;
+ 		u = strtoul(s, NULL, 10);
+-		if (u == 0)
+-			return 0;
+ 		s = getenv("CK_SEAT_SESSION_USER_UID");
+ 		if (s == NULL)
+ 			return -1;
+ 		u2 = strtoul(s, NULL, 10);
+-		if (u2 == 0)
+-			return 0;
+ 
+ 		s = getenv("CK_SEAT_OLD_SESSION_IS_LOCAL");
+ 		s2 = getenv("CK_SEAT_SESSION_IS_LOCAL");
+@@ -263,12 +259,11 @@ static int consolekit_called(const char *ck_action, uid_t *uid, uid_t *uid2, con
+ 			a = ACTION_ADD;
+ 			u = u2;
+ 		}
+-
+ 		break;
+ 	case ACTION_NONE:
+ 		break;
+ 	default:
+-		g_assert_not_reached ();
++		g_assert_not_reached();
+ 		break;
+ 	}
+ 
+-- 
+1.7.2
+
diff --git a/0018-udev-acl-really-fix-ACL-assignment-in-CK-events.patch b/0018-udev-acl-really-fix-ACL-assignment-in-CK-events.patch
new file mode 100644
index 0000000..9187554
--- /dev/null
+++ b/0018-udev-acl-really-fix-ACL-assignment-in-CK-events.patch
@@ -0,0 +1,125 @@
+From 9ac90ae153accdfcb56c24c5748690933ad219b2 Mon Sep 17 00:00:00 2001
+From: Michal Schmidt <mschmidt at redhat.com>
+Date: Wed, 4 Aug 2010 11:53:25 +0200
+Subject: [PATCH 18/18] udev-acl: really fix ACL assignment in CK events
+
+The previous fix for udev-acl was incomplete. The ACL were not properly
+assigned to the new user when switching from root's session because of
+the test for 'uid != 0'.
+
+Centralize the special handling of root to a single place (in set_facl).
+
+https://bugzilla.redhat.com/show_bug.cgi?id=608712
+---
+ extras/udev-acl/udev-acl.c |   37 +++++++++++++++++++------------------
+ 1 files changed, 19 insertions(+), 18 deletions(-)
+
+diff --git a/extras/udev-acl/udev-acl.c b/extras/udev-acl/udev-acl.c
+index f2b5005..31e9991 100644
+--- a/extras/udev-acl/udev-acl.c
++++ b/extras/udev-acl/udev-acl.c
+@@ -12,20 +12,18 @@
+  * General Public License for more details:
+  */
+ 
+-#include <stdio.h>
+-#include <errno.h>
+-#include <string.h>
+-#include <inttypes.h>
+-#include <unistd.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-#include <string.h>
++#include <acl/libacl.h>
++#include <sys/stat.h>
+ #include <errno.h>
+ #include <getopt.h>
+-#include <sys/stat.h>
+ #include <glib.h>
+-#include <acl/libacl.h>
++#include <inttypes.h>
+ #include <libudev.h>
++#include <stdbool.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <unistd.h>
+ 
+ static int debug;
+ 
+@@ -45,6 +43,10 @@ static int set_facl(const char* filename, uid_t uid, int add)
+ 	acl_permset_t permset;
+ 	int ret;
+ 
++	/* don't touch ACLs for root */
++	if (uid == 0)
++		return 0;
++
+ 	/* read current record */
+ 	acl = acl_get_file(filename, ACL_TYPE_ACCESS);
+ 	if (!acl)
+@@ -190,8 +192,6 @@ static int consolekit_called(const char *ck_action, uid_t *uid, uid_t *uid2, con
+ 		if (s == NULL)
+ 			return -1;
+ 		u = strtoul(s, NULL, 10);
+-		if (u == 0)
+-			return 0;
+ 
+ 		s = getenv("CK_SEAT_SESSION_IS_LOCAL");
+ 		if (s == NULL)
+@@ -205,8 +205,6 @@ static int consolekit_called(const char *ck_action, uid_t *uid, uid_t *uid2, con
+ 		if (s == NULL)
+ 			return -1;
+ 		u = strtoul(s, NULL, 10);
+-		if (u == 0)
+-			return 0;
+ 
+ 		s = getenv("CK_SEAT_OLD_SESSION_IS_LOCAL");
+ 		if (s == NULL)
+@@ -331,6 +329,7 @@ int main (int argc, char* argv[])
+ 	};
+ 	int action = -1;
+ 	const char *device = NULL;
++	bool uid_given = false;
+ 	uid_t uid = 0;
+ 	uid_t uid2 = 0;
+ 	const char* remove_session_id = NULL;
+@@ -357,6 +356,7 @@ int main (int argc, char* argv[])
+ 			device = optarg;
+ 			break;
+ 		case 'u':
++			uid_given = true;
+ 			uid = strtoul(optarg, NULL, 10);
+ 			break;
+ 		case 'd':
+@@ -369,8 +369,9 @@ int main (int argc, char* argv[])
+ 		}
+ 	}
+ 
+-	if (action < 0 && device == NULL && uid == 0)
+-		consolekit_called(argv[optind], &uid, &uid2, &remove_session_id, &action);
++	if (action < 0 && device == NULL && !uid_given)
++		if (!consolekit_called(argv[optind], &uid, &uid2, &remove_session_id, &action))
++			uid_given = true;
+ 
+ 	if (action < 0) {
+ 		fprintf(stderr, "missing action\n\n");
+@@ -378,13 +379,13 @@ int main (int argc, char* argv[])
+ 		goto out;
+ 	}
+ 
+-	if (device != NULL && uid != 0) {
++	if (device != NULL && uid_given) {
+ 		fprintf(stderr, "only one option, --device=DEVICEFILE or --user=UID expected\n\n");
+ 		rc = 3;
+ 		goto out;
+ 	}
+ 
+-	if (uid != 0) {
++	if (uid_given) {
+ 		switch (action) {
+ 		case ACTION_ADD:
+ 			/* Add ACL for given uid to all matching devices. */
+-- 
+1.7.2
+
diff --git a/udev-153-changer.patch b/udev-153-changer.patch
new file mode 100644
index 0000000..a80888c
--- /dev/null
+++ b/udev-153-changer.patch
@@ -0,0 +1,25 @@
+diff -up udev-153/rules/redhat/40-redhat.rules.changer udev-153/rules/redhat/40-redhat.rules
+--- udev-153/rules/redhat/40-redhat.rules.changer	2010-08-04 15:32:00.000000000 +0200
++++ udev-153/rules/redhat/40-redhat.rules	2010-08-04 15:35:27.000000000 +0200
+@@ -5,17 +5,17 @@ KERNEL=="hd*[0-9]", ATTRS{media}=="flopp
+ 
+ KERNEL=="fw*", PROGRAM="fw_unit_symlinks.sh %k %n", SYMLINK+="$result"
+ 
+-ACTION=="add", KERNEL=="sg[0-9]*", SUBSYSTEM=="scsi_device", ATTRS{type}=="3|6", SYMLINK+="scanner scanner-%k", MODE="0660"
++ACTION=="add", KERNEL=="sg[0-9]*", SUBSYSTEM=="scsi_generic", ATTRS{type}=="3|6", SYMLINK+="scanner scanner-%k", MODE="0660"
+ 
+-ACTION=="add", KERNEL=="sg[0-9]*", SUBSYSTEM=="scsi_device", ATTRS{type}=="8", SYMLINK+="changer changer-%k", MODE="0660", GROUP="disk"
++ACTION=="add", KERNEL=="sg[0-9]*", SUBSYSTEM=="scsi_generic", ATTRS{type}=="8", SYMLINK+="changer changer-%k", MODE="0660", GROUP="disk"
+ 
+ SUBSYSTEM=="usb", KERNEL=="sd*", ATTRS{bInterfaceClass}=="08", ATTRS{bInterfaceSubClass}=="04", GROUP="floppy", MODE="0660", 	SYMLINK+="floppy floppy-%k"
+ 
+ KERNEL=="fd[0-9]*",		SYMLINK+="floppy floppy-%k"
+ 
+-ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="0|7|14", \
++ACTION=="add", SUBSYSTEM=="scsi_generic", ATTRS{type}=="0|7|14", \
+         RUN+="/sbin/modprobe sd_mod"
+-ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="[45]", \
++ACTION=="add", SUBSYSTEM=="scsi_generic", ATTRS{type}=="[45]", \
+         RUN+="/sbin/modprobe sr_mod"
+ 
+ KERNEL=="vcs",                 OWNER="vcsa", GROUP="tty"
diff --git a/udev-git484e1b2d11b9b89418589d885a625e647881933b.patch b/udev-git484e1b2d11b9b89418589d885a625e647881933b.patch
new file mode 100644
index 0000000..38dfb40
--- /dev/null
+++ b/udev-git484e1b2d11b9b89418589d885a625e647881933b.patch
@@ -0,0 +1,27 @@
+commit 484e1b2d11b9b89418589d885a625e647881933b
+Author: Kay Sievers <kay.sievers at vrfy.org>
+Date:   Tue May 25 09:54:14 2010 +0200
+
+    rules: optical drives - use ID_CDROM_MEDIA_TRACK_COUNT_DATA
+    
+    We should not access non-data optical media, ans skip things
+    like blkid. It will cause errors for some drives.
+    
+      https://bugzilla.kernel.org/show_bug.cgi?id=15757
+
+diff --git a/rules/rules.d/60-persistent-storage.rules b/rules/rules.d/60-persistent-storage.rules
+index d9f8003..1f46041 100644
+--- a/rules/rules.d/60-persistent-storage.rules
++++ b/rules/rules.d/60-persistent-storage.rules
+@@ -52,9 +52,9 @@ ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PA
+ ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end"
+ 
+ # probe filesystem metadata of optical drives which have a media inserted
+-KERNEL=="sr*", ENV{ID_CDROM_MEDIA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="?*", IMPORT{program}="/sbin/blkid -o udev -p -u noraid -O $env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode"
++KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="?*", IMPORT{program}="/sbin/blkid -o udev -p -u noraid -O $env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode"
+ # single-session CDs do not have ID_CDROM_MEDIA_SESSION_LAST_OFFSET
+-KERNEL=="sr*", ENV{ID_CDROM_MEDIA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", IMPORT{program}="/sbin/blkid -o udev -p -u noraid $tempnode"
++KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", IMPORT{program}="/sbin/blkid -o udev -p -u noraid $tempnode"
+ 
+ # probe filesystem metadata of disks
+ KERNEL!="sr*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode"
diff --git a/udev-giteb2de7acdb741c8a67511c4c458efa93835e18a7.patch b/udev-giteb2de7acdb741c8a67511c4c458efa93835e18a7.patch
new file mode 100644
index 0000000..0c3cbb3
--- /dev/null
+++ b/udev-giteb2de7acdb741c8a67511c4c458efa93835e18a7.patch
@@ -0,0 +1,36 @@
+commit eb2de7acdb741c8a67511c4c458efa93835e18a7
+Author: Harald Hoyer <harald at redhat.com>
+Date:   Mon Jun 21 14:04:43 2010 +0200
+
+    extras/keymap: add Samsung N210 to keymap rules
+    
+    https://bugzilla.redhat.com/show_bug.cgi?id=606302
+    
+    Thanks to John Floyd!
+
+diff --git a/extras/keymap/95-keyboard-force-release.rules b/extras/keymap/95-keyboard-force-release.rules
+index 7c334ce..36d569a 100644
+--- a/extras/keymap/95-keyboard-force-release.rules
++++ b/extras/keymap/95-keyboard-force-release.rules
+@@ -19,7 +19,7 @@ DRIVER!="atkbd", GOTO="force_release_end"
+ ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}"
+ 
+ 
+-ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*N128*|*N130*|*N140*|*SR70S/SR71S*|*Q210/P210*", RUN+="keyboard-force-release.sh $devpath samsung-other"
++ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*N128*|*N130*|*N140*|*N210*|*SR70S/SR71S*|*Q210/P210*", RUN+="keyboard-force-release.sh $devpath samsung-other"
+ 
+ ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
+ 
+diff --git a/extras/keymap/95-keymap.rules b/extras/keymap/95-keymap.rules
+index 8ed2b59..26666a9 100644
+--- a/extras/keymap/95-keymap.rules
++++ b/extras/keymap/95-keymap.rules
+@@ -110,7 +110,7 @@ ENV{DMI_VENDOR}=="INVENTEC", ATTR{[dmi/id]product_name}=="SYMPHONY 6.0/7.0", RUN
+ 
+ ENV{DMI_VENDOR}=="MAXDATA", ATTR{[dmi/id]product_name}=="Pro 7000*", RUN+="keymap $name maxdata-pro_7000"
+ 
+-ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*NC10*|*NC20*|*N128*|*N130*|*SP55S*|*SQ45S70S*|*SX60P*|*SX22S*|*SX30S*|*R59P/R60P/R61P*|*SR70S/SR71S*|*Q210*|*Q310*|*X05*|*P560*|*R560*", RUN+="keymap $name samsung-other"
++ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*NC10*|*NC20*|*N128*|*N130*|*N210*|*SP55S*|*SQ45S70S*|*SX60P*|*SX22S*|*SX30S*|*R59P/R60P/R61P*|*SR70S/SR71S*|*Q210*|*Q310*|*X05*|*P560*|*R560*", RUN+="keymap $name samsung-other"
+ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s"
+ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us"
+ 
diff --git a/udev.spec b/udev.spec
index b58da0d..073386c 100644
--- a/udev.spec
+++ b/udev.spec
@@ -5,7 +5,7 @@
 Summary: A userspace implementation of devfs
 Name: udev
 Version: 153
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2
 Group: System Environment/Base
 Provides: udev-persistent = %{version}-%{release}
@@ -20,7 +20,10 @@ Patch34: 0034-add-LGPL-COPYING-to-libudev-and-GUdev.patch
 Patch110: 0110-cdrom_id-only-mark-sr-0-9-as-ID_CDROM.patch
 
 Patch101: udev-151-rules.patch
+Patch102: udev-giteb2de7acdb741c8a67511c4c458efa93835e18a7.patch
 Patch103: udev-151-gperf.patch
+Patch104: udev-git484e1b2d11b9b89418589d885a625e647881933b.patch
+Patch105: udev-153-changer.patch
 
 Source1: start_udev
 Source3: udev-post.init
@@ -131,7 +134,10 @@ glib-based applications using libudev functionality.
 %patch110 -p1 -b .git110
 
 %patch101 -p1
+%patch102 -p1
 %patch103 -p1
+%patch104 -p1
+%patch105 -p1
 
 %build
 autoreconf -i
@@ -368,11 +374,18 @@ rm -rf $RPM_BUILD_ROOT
 %attr(0644,root,root) %{_libdir}/pkgconfig/gudev-1.0*
 
 %changelog
+* Wed Aug 04 2010 Harald Hoyer <harald at redhat.com> 153-1.0.test.1
 - trigger with action==add
 - add rd_NO_MDIMSM on noiswmd kernel cmdline option
 Resolves: rhbz#589774
 - fix console switching and ACLs
 Resolves: rhbz#608712
+- fix key mapping for Samsung N210
+Resolves: rhbz#606302
+- fix for blank or audio CDs
+Resolves: rhbz#606285
+- fix for scsi changer
+Resolves: rhbz#600983
 
 * Mon Aug 02 2010 Harald Hoyer <harald at redhat.com> 153-1
 - version 153, because device-mapper needs IMPORT{db}


More information about the scm-commits mailing list