Compare commits

...
Sign in to create a new pull request.

6 commits

Author SHA1 Message Date
Harald Hoyer
6ff6618fa8 removed old deprecated ghost dirs 2011-08-29 17:03:58 +02:00
Daniel Drake
9dc3a4b857 Update OLPC XO keymap 2011-08-29 14:58:48 +01:00
Harald Hoyer
95a4f66901 udev.spec: untabify 2011-04-11 15:14:42 +02:00
Harald Hoyer
8bbeb28211 - more selinux fixes 2011-04-11 15:14:35 +02:00
Harald Hoyer
36eba4b06e udev.spec: removed gtk-doc 2011-04-11 15:12:36 +02:00
Harald Hoyer
a540bc715b removed libxslt buildreq and touch man pages, to prevent rebuild 2011-04-11 15:12:36 +02:00
10 changed files with 574 additions and 22 deletions

View file

@ -0,0 +1,56 @@
From 42b9482ab2da64b4c2f254c227c0efaf83988a84 Mon Sep 17 00:00:00 2001
From: David Zeuthen <davidz@redhat.com>
Date: Wed, 30 Mar 2011 08:11:03 -0400
Subject: [PATCH] Run ata_id on non-removable USB devices
If a USB device is marked as removable, it is often a SATA/PATA disk
in an enclosure (note that flash card readers and usb storage sticks
are always marked as removable). In this case, try running ata_id
(which sends ATA commands wrapped in SCSI ATA PASS THROUGH commands)
to get information about the disk. If this fails, just fall back to
running usb_id since it could be the device isn't an ATA device at
all or the device doesn't have a SAT layer.
This extra information is nice to have as it indicates if it is
suitable to send e.g. SMART commands to the disk, whether the disk
supports power management and so on. Additionally, the VPD and serial
number returned by ata_id is usually more accurate as it stems from
the disk itself instead of the enclosure.
Note that udisks has been doing this for a while
KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="disk", IMPORT{program}="udisks-probe-ata-smart $tempnode"
so this change shouldn't be too disruptive (udisks-probe-ata-smart
also sends ATA commands via the ATA PASS THROUGH command).
Signed-off-by: David Zeuthen <davidz@redhat.com>
---
rules/rules.d/60-persistent-storage.rules | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/rules/rules.d/60-persistent-storage.rules b/rules/rules.d/60-persistent-storage.rules
index 6a9abdd..12fabef 100644
--- a/rules/rules.d/60-persistent-storage.rules
+++ b/rules/rules.d/60-persistent-storage.rules
@@ -22,14 +22,18 @@ ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*"
KERNEL=="vd*[!0-9]", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/virtio-$env{ID_SERIAL}"
KERNEL=="vd*[0-9]", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/virtio-$env{ID_SERIAL}-part%n"
-# USB devices use their own serial number
-KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p"
# ATA devices with their own "ata" kernel subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="ata", IMPORT{program}="ata_id --export $tempnode"
# ATA devices using the "scsi" subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $tempnode"
# ATA/ATAPI devices (SPC-3 or later) using the "scsi" subsystem
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{type}=="5", ATTRS{scsi_level}=="[6-9]*", IMPORT{program}="ata_id --export $tempnode"
+
+# Run ata_id on non-removable USB Mass Storage (SATA/PATA disks in enclosures)
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", ATTR{removable}=="0", SUBSYSTEMS=="usb", IMPORT{program}="ata_id --export $tempnode"
+# Otherwise fall back to using usb_id for USB devices
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program}="usb_id --export %p"
+
# scsi devices
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="scsi"
KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="cciss"

View file

@ -0,0 +1,29 @@
From ff4a035a8aaba6a7b5b85c4b348886d72c42e84c Mon Sep 17 00:00:00 2001
From: Lee, Chun-Yi <joeyli.kernel@gmail.com>
Date: Thu, 31 Mar 2011 18:01:05 +0800
Subject: [PATCH] Add rule for Acer Aspire One ZG8 to use acer-aspire_5720 keymap
Acer Aspire One ZG8's bluetooth HW key emit 0xD9 scancode, it must map
to KEY_BLUETOOTH like Acer Aspire 5720. So, add rule for Acer Aspire One
ZG8 use acer-aspire_5720 keymap.
Tested on Acer Aspire One ZG8 netbook.
Signed-off-by: Lee, Chun-Yi <jlee@novell.com>
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
---
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 0c3ae38..44d5064 100644
--- a/extras/keymap/95-keymap.rules
+++ b/extras/keymap/95-keymap.rules
@@ -100,6 +100,7 @@ ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 6920", RUN+="keyma
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 5920G", RUN+="keymap $name acer-aspire_5920g"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 5720*", RUN+="keymap $name acer-aspire_5720"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 8930", RUN+="keymap $name acer-aspire_8930"
+ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_serial}=="ZG8*", RUN+="keymap $name acer-aspire_5720"
ENV{DMI_VENDOR}=="*BenQ*", ATTR{[dmi/id]product_name}=="*Joybook R22*", RUN+="keymap $name 0x6E wlan"

View file

@ -0,0 +1,22 @@
From 6ee9b2cb8cf023253853f1c80e707598685b11f3 Mon Sep 17 00:00:00 2001
From: Thomas Egerer <thomas.egerer@secunet.com>
Date: Thu, 31 Mar 2011 17:25:31 +0200
Subject: [PATCH] udevd: add 'N:' to optstring in getopt_long
---
udev/udevd.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/udev/udevd.c b/udev/udevd.c
index 1871474..a8b339f 100644
--- a/udev/udevd.c
+++ b/udev/udevd.c
@@ -1118,7 +1118,7 @@ int main(int argc, char *argv[])
for (;;) {
int option;
- option = getopt_long(argc, argv, "c:deDthV", options, NULL);
+ option = getopt_long(argc, argv, "c:deDtN:hV", options, NULL);
if (option == -1)
break;

View file

@ -0,0 +1,34 @@
From 9bb54267a1483e8f3b2de352c7be433f625e5606 Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt@ubuntu.com>
Date: Thu, 31 Mar 2011 19:23:19 +0200
Subject: [PATCH] Revert "Do not build extras with --disable-extras"
This reverts commit 905818f5961446ac32d1b2d165185fffddc4915a.
We do want to build some extras, just not the ones with extra dependencies.
Thanks to Juergen Daubert for pointing this out.
---
Makefile.am | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index df70bf7..2c20f46 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -225,7 +225,6 @@ dist_udevrules_DATA += \
extras/rule_generator/75-cd-aliases-generator.rules \
extras/rule_generator/75-persistent-net-generator.rules
-if ENABLE_EXTRAS
# ------------------------------------------------------------------------------
# firmware - firmware loading
# ------------------------------------------------------------------------------
@@ -314,8 +313,6 @@ extras_v4l_id_v4l_id_LDADD = libudev/libudev-private.la
libexec_PROGRAMS += extras/v4l_id/v4l_id
dist_udevrules_DATA += extras/v4l_id/60-persistent-v4l.rules
-endif # ENABLE_EXTRAS
-
# ------------------------------------------------------------------------------
# qemu -- qemu/kvm guest tweaks
# ------------------------------------------------------------------------------

View file

@ -0,0 +1,45 @@
From 55eb500cc5465babf1fd773dbcceeb90eeefd997 Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt@ubuntu.com>
Date: Mon, 4 Apr 2011 11:47:54 +0200
Subject: [PATCH] Avoid spinning up CD on pressing eject button
When the CD tray door is locked and the hardware eject button is pressed, newer
kernels (2.6.38+) will send out a change event with a DISK_EJECT_REQUEST==1
property. Do not run cdrom_id and blkid in this case, as the media state and
contents does not change, and this only needlessly spins up the drive again
right before ejection.
---
extras/cdrom_id/60-cdrom_id.rules | 3 +++
rules/rules.d/60-persistent-storage.rules | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/extras/cdrom_id/60-cdrom_id.rules b/extras/cdrom_id/60-cdrom_id.rules
index b3109f1..aedf6f0 100644
--- a/extras/cdrom_id/60-cdrom_id.rules
+++ b/extras/cdrom_id/60-cdrom_id.rules
@@ -5,6 +5,9 @@ SUBSYSTEM!="block", GOTO="cdrom_end"
KERNEL!="sr[0-9]*|xvd*", GOTO="cdrom_end"
ENV{DEVTYPE}!="disk", GOTO="cdrom_end"
+# this is only a button press event
+ENV{DISK_EJECT_REQUEST}=="?*", GOTO="cdrom_end"
+
KERNEL=="sr[0-9]*", ENV{ID_CDROM}="1"
IMPORT{program}="cdrom_id --export $tempnode"
diff --git a/rules/rules.d/60-persistent-storage.rules b/rules/rules.d/60-persistent-storage.rules
index 12fabef..05a405f 100644
--- a/rules/rules.d/60-persistent-storage.rules
+++ b/rules/rules.d/60-persistent-storage.rules
@@ -62,9 +62,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_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"
+KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", 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_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", IMPORT{program}="/sbin/blkid -o udev -p -u noraid $tempnode"
+KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", 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"

View file

@ -0,0 +1,56 @@
From 5e0ec43fc40e3e6dd0e44a7d617846879e1dac9e Mon Sep 17 00:00:00 2001
From: Seth Forshee <seth.forshee@canonical.com>
Date: Tue, 5 Apr 2011 11:43:00 -0500
Subject: [PATCH] keymap: Support Dell Latitude XT2 tablet-mode navigation keys
The XT2 has a rocker (up/down/enter) and back button on the side
in tablet mode, none of which work currently. Add entries for
these keys.
There is some overlap here with scan codes used in other Dell
models, so these buttons are put in a new file specific to this
model.
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
---
Makefile.am | 1 +
extras/keymap/95-keymap.rules | 1 +
extras/keymap/keymaps/dell-latitude-xt2 | 4 ++++
3 files changed, 6 insertions(+), 0 deletions(-)
create mode 100644 extras/keymap/keymaps/dell-latitude-xt2
diff --git a/Makefile.am b/Makefile.am
index 2c20f46..4244089 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -568,6 +568,7 @@ dist_udevkeymap_DATA = \
extras/keymap/keymaps/asus \
extras/keymap/keymaps/compaq-e_evo \
extras/keymap/keymaps/dell \
+ extras/keymap/keymaps/dell-latitude-xt2 \
extras/keymap/keymaps/everex-xt5000 \
extras/keymap/keymaps/fujitsu-amilo_pa_2548 \
extras/keymap/keymaps/fujitsu-amilo_pro_edition_v3505 \
diff --git a/extras/keymap/95-keymap.rules b/extras/keymap/95-keymap.rules
index 44d5064..350f111 100644
--- a/extras/keymap/95-keymap.rules
+++ b/extras/keymap/95-keymap.rules
@@ -67,6 +67,7 @@ LABEL="keyboard_vendorcheck"
ENV{DMI_VENDOR}=="Dell*", RUN+="keymap $name dell"
ENV{DMI_VENDOR}=="Dell*", ATTR{[dmi/id]product_name}=="Inspiron 910|Inspiron 1010|Inspiron 1011|Inspiron 1012|Inspiron 1110|Inspiron 1210", RUN+="keymap $name 0x84 wlan"
+ENV{DMI_VENDOR}=="Dell*", ATTR{[dmi/id]product_name}=="Latitude XT2", RUN+="keymap $name dell-latitude-xt2"
ENV{DMI_VENDOR}=="Compaq*", ATTR{[dmi/id]product_name}=="*E500*|*Evo N*", RUN+="keymap $name compaq-e_evo"
diff --git a/extras/keymap/keymaps/dell-latitude-xt2 b/extras/keymap/keymaps/dell-latitude-xt2
new file mode 100644
index 0000000..39872f5
--- /dev/null
+++ b/extras/keymap/keymaps/dell-latitude-xt2
@@ -0,0 +1,4 @@
+0x9B up # tablet rocker up
+0x9E enter # tablet rocker press
+0x9F back # tablet back
+0xA3 down # tablet rocker down

View file

@ -0,0 +1,204 @@
From 51f43b53293c4cc64c2a55598491c6cbf27b6bd5 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers@vrfy.org>
Date: Fri, 8 Apr 2011 01:03:49 +0200
Subject: [PATCH] selinux: do not label files in runtime dir
Do not label any files in the udev runtime directory, but only nodes,
links and directories below /dev.
In case the runtime directory falls back to /dev/.udev, label this
directory once at udevd startup, but never anything below it.
---
libudev/libudev-private.h | 1 +
libudev/libudev-queue-private.c | 2 --
libudev/libudev-util-private.c | 18 +++++++++++++++---
udev/udev-node.c | 6 +++---
udev/udevd.c | 18 ++++++++----------
5 files changed, 27 insertions(+), 18 deletions(-)
diff --git a/libudev/libudev-private.h b/libudev/libudev-private.h
index 7078b0f..8495f9a 100644
--- a/libudev/libudev-private.h
+++ b/libudev/libudev-private.h
@@ -220,6 +220,7 @@ uint64_t util_string_bloom64(const char *str);
/* libudev-util-private.c */
int util_create_path(struct udev *udev, const char *path);
+int util_create_path_selinux(struct udev *udev, const char *path);
int util_delete_path(struct udev *udev, const char *path);
int util_unlink_secure(struct udev *udev, const char *filename);
uid_t util_lookup_user(struct udev *udev, const char *user);
diff --git a/libudev/libudev-queue-private.c b/libudev/libudev-queue-private.c
index a714572..2f1afec 100644
--- a/libudev/libudev-queue-private.c
+++ b/libudev/libudev-queue-private.c
@@ -409,9 +409,7 @@ static void update_failed(struct udev_queue_export *udev_queue_export,
/* record event in the failed directory */
udev_queue_export->failed_count++;
util_create_path(udev, filename);
- udev_selinux_setfscreatecon(udev, filename, S_IFLNK);
symlink(udev_device_get_devpath(udev_device), filename);
- udev_selinux_resetfscreatecon(udev);
break;
case DEVICE_QUEUED:
diff --git a/libudev/libudev-util-private.c b/libudev/libudev-util-private.c
index 6b68b6a..19f979e 100644
--- a/libudev/libudev-util-private.c
+++ b/libudev/libudev-util-private.c
@@ -25,7 +25,7 @@
#include "libudev.h"
#include "libudev-private.h"
-int util_create_path(struct udev *udev, const char *path)
+static int create_path(struct udev *udev, const char *path, bool selinux)
{
char p[UTIL_PATH_SIZE];
char *pos;
@@ -55,7 +55,8 @@ int util_create_path(struct udev *udev, const char *path)
return err;
dbg(udev, "mkdir '%s'\n", p);
- udev_selinux_setfscreatecon(udev, p, S_IFDIR|0755);
+ if (selinux)
+ udev_selinux_setfscreatecon(udev, p, S_IFDIR|0755);
err = mkdir(p, 0755);
if (err != 0) {
err = -errno;
@@ -66,10 +67,21 @@ int util_create_path(struct udev *udev, const char *path)
err = -ENOTDIR;
}
}
- udev_selinux_resetfscreatecon(udev);
+ if (selinux)
+ udev_selinux_resetfscreatecon(udev);
return err;
}
+int util_create_path(struct udev *udev, const char *path)
+{
+ return create_path(udev, path, false);
+}
+
+int util_create_path_selinux(struct udev *udev, const char *path)
+{
+ return create_path(udev, path, true);
+}
+
int util_delete_path(struct udev *udev, const char *path)
{
char p[UTIL_PATH_SIZE];
diff --git a/udev/udev-node.c b/udev/udev-node.c
index ab4e932..5e791ff 100644
--- a/udev/udev-node.c
+++ b/udev/udev-node.c
@@ -96,7 +96,7 @@ int udev_node_mknod(struct udev_device *dev, const char *file, mode_t mode, uid_
} else {
info(udev, "mknod '%s' %u:%u %#o\n", file, major(devnum), minor(devnum), mode);
do {
- err = util_create_path(udev, file);
+ err = util_create_path_selinux(udev, file);
if (err != 0 && err != -ENOENT)
break;
udev_selinux_setfscreatecon(udev, file, mode);
@@ -184,7 +184,7 @@ static int node_symlink(struct udev *udev, const char *node, const char *slink)
} else {
info(udev, "creating symlink '%s' to '%s'\n", slink, target);
do {
- err = util_create_path(udev, slink);
+ err = util_create_path_selinux(udev, slink);
if (err != 0 && err != -ENOENT)
break;
udev_selinux_setfscreatecon(udev, slink, S_IFLNK);
@@ -201,7 +201,7 @@ static int node_symlink(struct udev *udev, const char *node, const char *slink)
util_strscpyl(slink_tmp, sizeof(slink_tmp), slink, TMP_FILE_EXT, NULL);
unlink(slink_tmp);
do {
- err = util_create_path(udev, slink_tmp);
+ err = util_create_path_selinux(udev, slink_tmp);
if (err != 0 && err != -ENOENT)
break;
udev_selinux_setfscreatecon(udev, slink_tmp, S_IFLNK);
diff --git a/udev/udevd.c b/udev/udevd.c
index a8b339f..df5c199 100644
--- a/udev/udevd.c
+++ b/udev/udevd.c
@@ -822,7 +822,7 @@ static void static_dev_create_from_modules(struct udev *udev)
continue;
util_strscpyl(filename, sizeof(filename), udev_get_dev_path(udev), "/", devname, NULL);
- util_create_path(udev, filename);
+ util_create_path_selinux(udev, filename);
udev_selinux_setfscreatecon(udev, filename, mode);
info(udev, "mknod '%s' %c%u:%u\n", filename, type, maj, min);
if (mknod(filename, mode, makedev(maj, min)) < 0 && errno == EEXIST)
@@ -833,7 +833,7 @@ static void static_dev_create_from_modules(struct udev *udev)
fclose(f);
}
-static int copy_dir(struct udev *udev, DIR *dir_from, DIR *dir_to, int maxdepth)
+static int copy_dev_dir(struct udev *udev, DIR *dir_from, DIR *dir_to, int maxdepth)
{
struct dirent *dent;
@@ -886,7 +886,7 @@ static int copy_dir(struct udev *udev, DIR *dir_from, DIR *dir_to, int maxdepth)
continue;
}
- copy_dir(udev, dir2_from, dir2_to, maxdepth-1);
+ copy_dev_dir(udev, dir2_from, dir2_to, maxdepth-1);
closedir(dir2_to);
closedir(dir2_from);
@@ -930,7 +930,7 @@ static void static_dev_create_from_devices(struct udev *udev, DIR *dir)
dir_from = opendir(LIBEXECDIR "/devices");
if (dir_from == NULL)
return;
- copy_dir(udev, dir_from, dir, 8);
+ copy_dev_dir(udev, dir_from, dir, 8);
closedir(dir_from);
}
@@ -985,9 +985,7 @@ static int convert_db(struct udev *udev)
/* make sure we do not get here again */
util_create_path(udev, filename);
- udev_selinux_setfscreatecon(udev, udev_get_run_path(udev), S_IFDIR|0755);
mkdir(filename, 0755);
- udev_selinux_resetfscreatecon(udev);
/* old database */
util_strscpyl(filename, sizeof(filename), udev_get_dev_path(udev), "/.udev/db", NULL);
@@ -1097,9 +1095,7 @@ int main(int argc, char *argv[])
/* make sure, that our runtime dir exists and is writable */
if (utimensat(AT_FDCWD, udev_get_run_config_path(udev), NULL, 0) < 0) {
/* try to create our own subdirectory, do not create parent directories */
- udev_selinux_setfscreatecon(udev, udev_get_run_config_path(udev), S_IFDIR|0755);
mkdir(udev_get_run_config_path(udev), 0755);
- udev_selinux_resetfscreatecon(udev);
if (utimensat(AT_FDCWD, udev_get_run_config_path(udev), NULL, 0) >= 0) {
/* directory seems writable now */
@@ -1111,8 +1107,12 @@ int main(int argc, char *argv[])
util_strscpyl(filename, sizeof(filename), udev_get_dev_path(udev), "/.udev", NULL);
if (udev_set_run_path(udev, filename) == NULL)
goto exit;
+ mkdir(udev_get_run_path(udev), 0755);
}
}
+ /* relabel runtime dir only if it resides below /dev */
+ if (strncmp(udev_get_run_path(udev), udev_get_dev_path(udev), strlen(udev_get_dev_path(udev))) == 0)
+ udev_selinux_lsetfilecon(udev, udev_get_run_path(udev), 0755);
info(udev, "runtime dir '%s'\n", udev_get_run_path(udev));
for (;;) {
@@ -1281,9 +1281,7 @@ int main(int argc, char *argv[])
util_strscpyl(filename, sizeof(filename), udev_get_run_path(udev), "/rules.d", NULL);
if (stat(filename, &statbuf) != 0) {
util_create_path(udev, filename);
- udev_selinux_setfscreatecon(udev, filename, S_IFDIR|0755);
mkdir(filename, 0755);
- udev_selinux_resetfscreatecon(udev);
}
inotify_add_watch(pfd[FD_INOTIFY].fd, filename,
IN_DELETE | IN_MOVE | IN_CLOSE_WRITE);

View file

@ -0,0 +1,25 @@
From 960250952193db522b8ced336bf998bd7e8e4a31 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers@vrfy.org>
Date: Fri, 8 Apr 2011 03:08:16 +0200
Subject: [PATCH] selinux: firmware - do not label files in runtime dir
---
extras/firmware/firmware.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/extras/firmware/firmware.c b/extras/firmware/firmware.c
index 8199820..f2df76c 100644
--- a/extras/firmware/firmware.c
+++ b/extras/firmware/firmware.c
@@ -159,11 +159,9 @@ int main(int argc, char **argv)
err = util_create_path(udev, misspath);
if (err != 0 && err != -ENOENT)
break;
- udev_selinux_setfscreatecon(udev, misspath, S_IFLNK);
err = symlink(devpath, misspath);
if (err != 0)
err = -errno;
- udev_selinux_resetfscreatecon(udev);
} while (err == -ENOENT);
rc = 2;
set_loading(udev, loadpath, "-1");

View file

@ -0,0 +1,65 @@
From 00fc377e7a6b1997db346c8de51cbf05cad48376 Mon Sep 17 00:00:00 2001
From: Paul Fox <pgf@laptop.org>
Date: Mon, 22 Aug 2011 06:39:06 +0200
Subject: [PATCH] keymap: update the OLPC keymap for correct function key
behavior
New mappings were needed when the mechanical keyboard was
introduced, and GNOME was made a peer to the sugar desktop.
see http://lists.laptop.org/pipermail/devel/2010-July/029384.html
---
extras/keymap/keymaps/olpc-xo | 38 ++++++++++++++++++++++++++------------
1 files changed, 26 insertions(+), 12 deletions(-)
diff --git a/extras/keymap/keymaps/olpc-xo b/extras/keymap/keymaps/olpc-xo
index 7fe0662..34434a1 100644
--- a/extras/keymap/keymaps/olpc-xo
+++ b/extras/keymap/keymaps/olpc-xo
@@ -2,18 +2,32 @@
0x81 fn_esc
0xF9 camera
0xF8 sound # Fn-CAMERA = Mic
-0xBB fn_f1
-0xBC fn_f2
-0xBD fn_f3
-0xBE fn_f4
-0xBF fn_f5
-0xC0 fn_f6
-0xC1 fn_f7
-0xC2 fn_f8
-0xC3 fn_f9
-0xC4 fn_f10
-0xD7 fn_f11
-0xD8 fn_f12
+
+
+# Function key mappings, as per
+# http://dev.laptop.org/ticket/10213#comment:20
+#
+# Unmodified F1-F8 produce F1-F8, so no remap necessary.
+# Unmodified F9-F12 control brightness and volume.
+0x43 brightnessdown
+0x44 brightnessup
+0x57 volumedown
+0x58 volumeup
+
+# fn-modified fkeys all produce the unmodified version of the key.
+0xBB f1
+0xBC f2
+0xBD f3
+0xBE f4
+0xBF f5
+0xC0 f6
+0xC1 f7
+0xC2 f8
+0xC3 f9
+0xC4 f10
+0xD7 f11
+0xD8 f12
+
# Using F13-F21 for the .5 F keys right now.
0xF7 f13
--
1.7.4.4

View file

@ -7,7 +7,7 @@
Summary: A rule-based device node and kernel event manager
Name: udev
Version: 167
Release: 3%{?dist}
Release: 6%{?dist}
License: GPLv2+
Group: System Environment/Base
Provides: udev-persistent = %{version}-%{release}
@ -16,10 +16,18 @@ Source: ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/%{name}-%{version}.t
Source1: start_udev
Patch2: 0002-Run-ata_id-on-non-removable-USB-devices.patch
Patch3: 0003-systemd-let-settle-depend-on-trigger-do-not-block-ba.patch
# Upstream 51f43b53293c4cc64c2a55598491c6cbf27b6bd5: don't SELinux label
# files outside of /dev. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=693247
Patch4: udev-167-selinux_label.patch
Patch4: 0004-Add-rule-for-Acer-Aspire-One-ZG8-to-use-acer-aspire_.patch
Patch5: 0005-udevd-add-N-to-optstring-in-getopt_long.patch
Patch6: 0006-Revert-Do-not-build-extras-with-disable-extras.patch
Patch7: 0007-Avoid-spinning-up-CD-on-pressing-eject-button.patch
Patch8: 0008-keymap-Support-Dell-Latitude-XT2-tablet-mode-navigat.patch
Patch9: 0009-selinux-do-not-label-files-in-runtime-dir.patch
Patch10: 0010-selinux-firmware-do-not-label-files-in-runtime-dir.patch
Patch1004: udev-olpc-keymap-update.patch
ExclusiveOS: Linux
URL: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
@ -41,10 +49,8 @@ BuildRequires: sed libselinux-devel >= 0:1.17.9-2 flex libsepol-devel
BuildRequires: glib2-devel bison findutils
BuildRequires: gperf libtool
BuildRequires: libusb-devel libacl-devel
BuildRequires: libxslt
BuildRequires: hwdata
BuildRequires: gobject-introspection-devel >= 0.6.2
BuildRequires: gtk-doc
BuildRequires: usbutils >= 0.82
BuildRequires: libtool >= 2.2.6
BuildRequires: pkgconfig
@ -117,10 +123,21 @@ glib-based applications using libudev functionality.
%prep
%setup -q
%patch2 -p1 -b .git2
%patch3 -p1 -b .git3
%patch4 -p1 -b .label
%patch4 -p1 -b .git4
%patch5 -p1 -b .git5
%patch6 -p1 -b .git6
%patch7 -p1 -b .git7
%patch8 -p1 -b .git8
%patch9 -p1 -b .git9
%patch10 -p1 -b .git10
%patch1004 -p1
%build
# prevent man pages from re-building (xmlto)
find . -name "*.[1-8]" -exec touch '{}' \;
export CFLAGS="$CFLAGS $RPM_OPT_FLAGS -fPIE -DPIE -pie -Wl,-z,relro -Wl,-z,now"
# prevent man pages from re-building (xmlto)
@ -147,9 +164,6 @@ make install DESTDIR=$RPM_BUILD_ROOT
rm -fr $RPM_BUILD_ROOT%{_docdir}/udev
rm -f $RPM_BUILD_ROOT/%{_libdir}/*.la
# Deprecated, but keep the ownership
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/udev/{rules.d,scripts,devices}
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/dev.d
mkdir -p $RPM_BUILD_ROOT%{_bindir}
touch $RPM_BUILD_ROOT%{_sysconfdir}/scsi_id.config
@ -182,7 +196,7 @@ mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
%preun
if [ "$1" -eq 0 -a -f %{_initrddir}/udev ]; then
if test -x /usr/bin/stat -a \
"$(/usr/bin/stat -Lc '%%D-%%i' /)" = "$(/usr/bin/stat -Lc '%%D-%%i' /proc/1/root)"; then
"$(/usr/bin/stat -Lc '%%D-%%i' /)" = "$(/usr/bin/stat -Lc '%%D-%%i' /proc/1/root)"; then
if [ -x /sbin/pidof ]; then
pid=$(/sbin/pidof -c udevd)
while [ -n "$pid" ]; do
@ -192,7 +206,7 @@ if [ "$1" -eq 0 -a -f %{_initrddir}/udev ]; then
sleep 0.2
pid=$(/sbin/pidof -c udevd)
hard="-9"
done
done
fi
fi
/sbin/chkconfig --del udev
@ -212,8 +226,8 @@ getent group floppy >/dev/null || /usr/sbin/groupadd -g 19 floppy || :
# kill daemon if we are not in a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test -x /usr/bin/stat -a \
"$(/usr/bin/stat -Lc '%%D-%%i' /)" = "$(/usr/bin/stat -Lc '%%D-%%i' /proc/1/root)"; then
/bin/systemctl stop udev.service >/dev/null 2>&1 || :
"$(/usr/bin/stat -Lc '%%D-%%i' /)" = "$(/usr/bin/stat -Lc '%%D-%%i' /proc/1/root)"; then
/bin/systemctl stop udev.service >/dev/null 2>&1 || :
if test -x /sbin/udevd -a -x /sbin/pidof ; then
/sbin/udevadm control --stop-exec-queue
pid=$(/sbin/pidof -c udevd)
@ -236,7 +250,7 @@ exit 0
# start daemon if we are not in a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test "$(/usr/bin/stat -Lc '%%D-%%i' /)" = "$(/usr/bin/stat -Lc '%%D-%%i' /proc/1/root)"; then
/bin/systemctl start udev.service >/dev/null 2>&1 || :
/bin/systemctl start udev.service >/dev/null 2>&1 || :
/sbin/udevd -d >/dev/null 2>&1 || :
/sbin/udevadm control --start-exec-queue || :
fi
@ -324,13 +338,6 @@ rm -rf $RPM_BUILD_ROOT
%{systemdsystemunitdir}/basic.target.wants/udev-trigger.service
%{systemdsystemunitdir}/sockets.target.wants/udev.socket
# Deprecated, but keep the ownership
%ghost %dir /var/lib/udev
%ghost %dir %{_sysconfdir}/udev/scripts/
%ghost %dir %{_sysconfdir}/udev/devices/
%ghost %dir %{_sysconfdir}/dev.d/
%ghost %dir %{_sysconfdir}/udev/makedev.d/
%files -n libudev
%defattr(0644, root, root, 0755)
%doc libudev/COPYING
@ -363,6 +370,15 @@ rm -rf $RPM_BUILD_ROOT
%attr(0644,root,root) %{_libdir}/pkgconfig/gudev-1.0*
%changelog
* Mon Aug 29 2011 Harald Hoyer <harald@redhat.com> 167-6
- removed old deprecated ghost dirs
* Mon Aug 29 2011 Daniel Drake <dsd@laptop.org> 167-5
- Update OLPC XO keymap
* Mon Apr 11 2011 Harald Hoyer <harald@redhat.com> 167-4
- more selinux fixes
* Thu Apr 7 2011 Adam Williamson <awilliam@redhat.com> - 167-3
- selinux_label.patch: from upstream, don't label files outside of /dev