[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