Compare commits
6 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ff6618fa8 | ||
|
|
9dc3a4b857 | ||
|
|
95a4f66901 | ||
|
|
8bbeb28211 | ||
|
|
36eba4b06e | ||
|
|
a540bc715b |
10 changed files with 574 additions and 22 deletions
56
0002-Run-ata_id-on-non-removable-USB-devices.patch
Normal file
56
0002-Run-ata_id-on-non-removable-USB-devices.patch
Normal 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"
|
||||
|
|
@ -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"
|
||||
|
||||
22
0005-udevd-add-N-to-optstring-in-getopt_long.patch
Normal file
22
0005-udevd-add-N-to-optstring-in-getopt_long.patch
Normal 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;
|
||||
|
||||
34
0006-Revert-Do-not-build-extras-with-disable-extras.patch
Normal file
34
0006-Revert-Do-not-build-extras-with-disable-extras.patch
Normal 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
|
||||
# ------------------------------------------------------------------------------
|
||||
45
0007-Avoid-spinning-up-CD-on-pressing-eject-button.patch
Normal file
45
0007-Avoid-spinning-up-CD-on-pressing-eject-button.patch
Normal 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"
|
||||
|
|
@ -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
|
||||
204
0009-selinux-do-not-label-files-in-runtime-dir.patch
Normal file
204
0009-selinux-do-not-label-files-in-runtime-dir.patch
Normal 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);
|
||||
|
|
@ -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");
|
||||
65
udev-olpc-keymap-update.patch
Normal file
65
udev-olpc-keymap-update.patch
Normal 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
|
||||
|
||||
60
udev.spec
60
udev.spec
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue