openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2013
- 1 participants
- 2223 discussions
Hello community,
here is the log from the commit of package systemd-mini for openSUSE:12.3:Update checked in at 2013-09-02 13:30:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/systemd-mini (Old)
and /work/SRC/openSUSE:12.3:Update/.systemd-mini.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd-mini"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.Av7igz/_old 2013-09-02 13:30:07.000000000 +0200
+++ /var/tmp/diff_new_pack.Av7igz/_new 2013-09-02 13:30:07.000000000 +0200
@@ -1 +1 @@
-<link package='systemd-mini.1776' cicount='copy' />
+<link package='systemd-mini.1957' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package udev for openSUSE:12.2:Update checked in at 2013-09-02 13:30:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/udev (Old)
and /work/SRC/openSUSE:12.2:Update/.udev.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "udev"
Changes:
--------
New Changes file:
NO CHANGES FILE!!!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ _link ++++++
--- /var/tmp/diff_new_pack.FaTZYC/_old 2013-09-02 13:30:04.000000000 +0200
+++ /var/tmp/diff_new_pack.FaTZYC/_new 2013-09-02 13:30:04.000000000 +0200
@@ -1 +1 @@
-<link package='udev.1361' cicount='copy' />
+<link package='udev.1958' cicount='copy' />
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package udev.1958 for openSUSE:12.2:Update checked in at 2013-09-02 13:30:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/udev.1958 (Old)
and /work/SRC/openSUSE:12.2:Update/.udev.1958.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "udev.1958"
Changes:
--------
New Changes file:
--- /dev/null 2013-07-23 23:44:04.804033756 +0200
+++ /work/SRC/openSUSE:12.2:Update/.udev.1958.new/udev.changes 2013-09-02 13:30:03.000000000 +0200
@@ -0,0 +1,2748 @@
+-------------------------------------------------------------------
+Mon Aug 26 10:03:47 UTC 2013 - rmilasan(a)suse.com
+
+- rules: drivers - always call kmod, even when a driver is bound to
+ the device (bnc#836569).
+ add: 0033-rules-drivers-always-call-kmod-even-when-a-driver-is.patch
+
+-------------------------------------------------------------------
+Mon Feb 11 09:24:07 UTC 2013 - rmilasan(a)suse.com
+
+- cdrom_id: created links for the default cd/dvd drive (bnc#783054).
+ add: 0031-create-default-links-for-primary-cd_dvd-drive.patch
+- usb_id: ensure we have a valid serial number as a string (bnc#779493).
+ add: 0032-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch
+
+-------------------------------------------------------------------
+Tue Jan 8 13:41:28 UTC 2013 - rmilasan(a)suse.com
+
+- make 'reload' and 'force-reload' LSB compliant (bnc#793936).
+- udevd: add missing ':' to getopt_long 'e'
+ add: 0030-udevd-add-missing-to-getopt_long-e.patch
+
+-------------------------------------------------------------------
+Fri Dec 7 09:58:43 UTC 2012 - rmilasan(a)suse.com
+
+- Drop usb hid rule for AMI 046b:ff10 (bnc#792576).
+ add: 0029-drop-usb-hid-rule-for-046b_ff10.patch
+
+-------------------------------------------------------------------
+Fri Oct 5 13:40:37 UTC 2012 - rmilasan(a)suse.com
+
+- Don't run mkinitrd while installing/upgrading from Yast
+ (bnc#782539).
+
+-------------------------------------------------------------------
+Wed Sep 19 11:07:32 UTC 2012 - rmilasan(a)suse.com
+
+- create /dev/root symlink with dynamic rule for systemd (bnc#776882).
+
+-------------------------------------------------------------------
+Thu Aug 9 09:52:28 UTC 2012 - rmilasan(a)suse.com
+
+- Fully drop 0024-libudev-queue.c-simplified-open_queue_file.patch
+ needs way too much work to worth keeping it.
+
+-------------------------------------------------------------------
+Thu Aug 9 08:26:35 UTC 2012 - rmilasan(a)suse.com
+
+- Re-work patch: 0024-libudev-queue.c-simplified-open_queue_file.patch
+
+-------------------------------------------------------------------
+Wed Aug 8 17:36:11 UTC 2012 - rmilasan(a)suse.com
+
+- Upstream: re-initialize builtins in the daemon process,
+ not in the worker.
+ add: 0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch
+
+-------------------------------------------------------------------
+Tue Aug 7 08:34:49 UTC 2012 - rmilasan(a)suse.com
+
+- Patch to fix regression in udev where sg driver is no longer loaded
+ for disc events. Will need a non-udev solution for 12.3 (bnc#761109)
+ add: 0027-udev-fix-sg-autoload-regression.patch
+
+-------------------------------------------------------------------
+Mon Aug 6 13:35:34 UTC 2012 - rmilasan(a)suse.com
+
+- udevd race for netlink events (bnc#774646)
+ add: 0026-udev-netlink-null-rules.patch
+
+-------------------------------------------------------------------
+Sat Aug 4 21:28:58 UTC 2012 - rmilasan(a)suse.com
+
+- keyboard-force-release: Apply to all Fujitso AMILO models
+ add: 0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch
+
+-------------------------------------------------------------------
+Fri Aug 3 10:19:12 UTC 2012 - rmilasan(a)suse.com
+
+- Simplify function open_queue_file.
+ add: 0024-libudev-queue.c-simplified-open_queue_file.patch
+
+-------------------------------------------------------------------
+Thu Aug 2 11:44:09 UTC 2012 - rmilasan(a)suse.com
+
+- Rework 0013-re-enable-by_path-links-for-ata-devices.patch to handle
+ by-path links similar to the scsi devices.
+ Fix rules timestamp race (bnc#772075)
+ add: 0023-udev-fix-rules-timestamp-race.patch
+
+-------------------------------------------------------------------
+Wed Jul 25 08:28:54 UTC 2012 - rmilasan(a)suse.com
+
+- Added several patches from upstream:
+ add: 0019-udev-path_id-export-path-for-platform-block-devices.patch
+ add: 0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch
+ add: 0021-keymap-Add-Dell-Latitude-force-release-quirk.patch
+ add: 0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch
+
+-------------------------------------------------------------------
+Thu Jul 12 15:56:34 UTC 2012 - rmilasan(a)suse.com
+
+- Fix by-path links for ATA transport (bnc#770910)
+ updated: 0013-re-enable-by_path-links-for-ata-devices.patch
+
+-------------------------------------------------------------------
+Wed Jul 11 13:24:21 UTC 2012 - rmilasan(a)suse.com
+
+- Security: libudev using getenv() in suids (bnc#697103)
+ add: 0015-udev-secure-getenv.patch
+ Added several patches from upstream:
+ add: 0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch
+ add: 0017-udev-add-some-O_CLOEXEC.patch
+ add: 0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch
+
+-------------------------------------------------------------------
+Fri Jul 6 14:37:31 UTC 2012 - dmueller(a)suse.com
+
+- move udev.pc to the libudev-devel subpackage, as it causes
+ a pkg-config dependency
+
+-------------------------------------------------------------------
+Wed Jun 27 08:55:59 UTC 2012 - rmilasan(a)suse.com
+
+- Re-enable creation of by-id scsi links for ATA devices. (bnc#769002)
+
+-------------------------------------------------------------------
+Mon Jun 25 06:58:33 UTC 2012 - rmilasan(a)suse.com
+
+- Re-enable creation of by-path links in /dev/disk (bnc#764924).
+
+-------------------------------------------------------------------
+Thu Jun 21 12:22:38 UTC 2012 - rmilasan(a)suse.com
+
+- Added option --enable-rule_generator to configure,
+ without it seems that we don't have the rule generator and
+ 75-persistent-net-generator.rules.
+
+-------------------------------------------------------------------
+Wed Jun 6 09:52:26 UTC 2012 - rmilasan(a)suse.com
+
+- Reinstate TIMEOUT= handling. (bnc#753734)
+ add: 0001-Reinstate-TIMEOUT-handling.patch
+- Added several patches from upstream:
+ add: 0002-udev-limit-minimum-worker-count-to-16.patch
+ add: 0003-keymaps-keyboard-force-release-fix-shebang.patch
+ add: 0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch
+ add: 0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch
+ add: 0006-keymap-Add-Mio-N890.patch
+ add: 0007-udev-path_id-add-cciss-support.patch
+ add: 0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch
+ add: 0009-keymap-Add-HP-Compaq-Presario-CQ.patch
+ add: 0010-keymap-Add-Dell-XPS-force-release-quirk.patch
+ add: 0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch
+ add: 0012-keymap-Add-Samsung-90X3A.patch
+
+-------------------------------------------------------------------
+Fri Apr 20 07:55:26 UTC 2012 - rmilasan(a)suse.com
+
+- Don't forget to run mkinitrd_setup first, then mkinitrd.
+
+-------------------------------------------------------------------
+Fri Apr 20 07:46:05 UTC 2012 - rmilasan(a)suse.com
+
+- Added PreReq /sbin/mkinitrd.
+ We need it before we run %post or %postun.
+
+-------------------------------------------------------------------
+Wed Apr 4 08:47:23 UTC 2012 - rmilasan(a)suse.com
+
+- version 182:
+ - extras: ata_id - do not log error if HDIO_GET_IDENTITY fails
+ - extras: path_id - add comment about readdir() rebase logic
+ - rules: Enable USB autosuspend on more USB HID devices
+ - extras: path_id - skip ATA transport class devices
+ - rules: move all rules to top level rules/ dir
+ - rules: delete s390 rules, they will move to s390utils
+ - remove edd_id extra
+ - rules: move 42-qemu-usb.rules to rules/ dir
+ - rules: delete outdated 30-kernel-compat.rules
+ - udev.conf - do not set any value by default
+ - remove udev-acl
+ - rules: do not create by-id/scsi-* links for ATA devices
+ - builtin: path_id - remove dead cciss code
+
+-------------------------------------------------------------------
+Mon Apr 2 15:51:40 UTC 2012 - dvaleev(a)suse.com
+
+- there is no 40-ppc.rules anymore
+
+-------------------------------------------------------------------
+Mon Mar 26 08:51:46 UTC 2012 - rmilasan(a)suse.com
+
+- Added post-install and post-uninstall update of initrd.
+
+-------------------------------------------------------------------
+Mon Mar 26 07:58:53 UTC 2012 - rmilasan(a)suse.com
++++ 2551 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.2:Update/.udev.1958.new/udev.changes
New:
----
0001-Reinstate-TIMEOUT-handling.patch
0002-udev-limit-minimum-worker-count-to-16.patch
0003-keymaps-keyboard-force-release-fix-shebang.patch
0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch
0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch
0006-keymap-Add-Mio-N890.patch
0007-udev-path_id-add-cciss-support.patch
0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch
0009-keymap-Add-HP-Compaq-Presario-CQ.patch
0010-keymap-Add-Dell-XPS-force-release-quirk.patch
0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch
0012-keymap-Add-Samsung-90X3A.patch
0013-re-enable-by_path-links-for-ata-devices.patch
0014-rules-create-by-id-scsi-links-for-ATA-devices.patch
0015-udev-secure-getenv.patch
0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch
0017-udev-add-some-O_CLOEXEC.patch
0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch
0019-udev-path_id-export-path-for-platform-block-devices.patch
0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch
0021-keymap-Add-Dell-Latitude-force-release-quirk.patch
0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch
0023-udev-fix-rules-timestamp-race.patch
0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch
0026-udev-netlink-null-rules.patch
0027-udev-fix-sg-autoload-regression.patch
0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch
0029-drop-usb-hid-rule-for-046b_ff10.patch
0030-udevd-add-missing-to-getopt_long-e.patch
0031-create-default-links-for-primary-cd_dvd-drive.patch
0032-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch
0033-rules-drivers-always-call-kmod-even-when-a-driver-is.patch
baselibs.conf
boot.udev
move-udevd-and-udevadm-back-to-sbin.patch
udev-182.tar.bz2
udev-root-symlink.systemd
udev-rpmlintrc
udev.changes
udev.spec
write_dev_root_rule
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ udev.spec ++++++
#
# spec file for package udev
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: udev
Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
Version: 182
Release: 0
Summary: A rule-based device node and kernel event manager
License: GPL-2.0+
Group: System/Kernel
PreReq: /bin/pidof /bin/rm /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd
Conflicts: systemd < 39
Conflicts: aaa_base < 11.5
Conflicts: filesystem < 11.5
Conflicts: mkinitrd < 2.7.0
Conflicts: util-linux < 2.16
Conflicts: ConsoleKit < 0.4.1
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: glib2-devel
BuildRequires: gobject-introspection-devel
BuildRequires: gperf
BuildRequires: libacl-devel
BuildRequires: libblkid-devel >= 2.20
BuildRequires: libkmod-devel > 5
BuildRequires: libselinux-devel
BuildRequires: libsepol-devel
BuildRequires: libtool
BuildRequires: libusb-devel
BuildRequires: pciutils-ids
BuildRequires: pkg-config
BuildRequires: usbutils
Source0: ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/%{name}-%{version}.tar.…
Source1: udev-rpmlintrc
Source2: baselibs.conf
Source60: boot.udev
Source61: write_dev_root_rule
Source62: udev-root-symlink.systemd
# PATCH-FIX-OPENSUSE move-udevd-and-udevadm-back-to-sbin.patch
Patch0: move-udevd-and-udevadm-back-to-sbin.patch
# PATCH-FIX-OPENSUSE 0001-Reinstate-TIMEOUT-handling.patch
Patch1: 0001-Reinstate-TIMEOUT-handling.patch
# PATCH-FIX-UPSTREAM 0002-udev-limit-minimum-worker-count-to-16.patch
Patch2: 0002-udev-limit-minimum-worker-count-to-16.patch
# PATCH-FIX-UPSTREAM 0003-keymaps-keyboard-force-release-fix-shebang.patch
Patch3: 0003-keymaps-keyboard-force-release-fix-shebang.patch
# PATCH-FIX-UPSTREAM 0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch
Patch4: 0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch
# PATCH-FIX-UPSTREAM 0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch
Patch5: 0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch
# PATCH-FIX-UPSTREAM 0006-keymap-Add-Mio-N890.patch
Patch6: 0006-keymap-Add-Mio-N890.patch
# PATCH-FIX-UPSTREAM 0007-udev-path_id-add-cciss-support.patch
Patch7: 0007-udev-path_id-add-cciss-support.patch
# PATCH-FIX-UPSTREAM 0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch
Patch8: 0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch
# PATCH-FIX-UPSTREAM 0009-keymap-Add-HP-Compaq-Presario-CQ.patch
Patch9: 0009-keymap-Add-HP-Compaq-Presario-CQ.patch
# PATCH-FIX-UPSTREAM 0010-keymap-Add-Dell-XPS-force-release-quirk.patch
Patch10: 0010-keymap-Add-Dell-XPS-force-release-quirk.patch
# PATCH-FIX-UPSTREAM 0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch
Patch11: 0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch
# PATCH-FIX-UPSTREAM 0012-keymap-Add-Samsung-90X3A.patch
Patch12: 0012-keymap-Add-Samsung-90X3A.patch
# PATCH-FIX-OPENSUSE 0013-re-enable-by_path-links-for-ata-devices.patch
Patch13: 0013-re-enable-by_path-links-for-ata-devices.patch
# PATCH-FIX-OPENSUSE 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch
Patch14: 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch
# PATCH-FIX-OPENSUSE 0015-udev-secure-getenv.patch
Patch15: 0015-udev-secure-getenv.patch
# PATCH-FIX-UPSTREAM 0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch
Patch16: 0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch
# PATCH-FIX-UPSTREAM 0017-udev-add-some-O_CLOEXEC.patch
Patch17: 0017-udev-add-some-O_CLOEXEC.patch
# PATCH-FIX-UPSTREAM 0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch
Patch18: 0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch
# PATCH-FIX-UPSTREAM 0019-udev-path_id-export-path-for-platform-block-devices.patch
Patch19: 0019-udev-path_id-export-path-for-platform-block-devices.patch
# PATCH-FIX-UPSTREAM 0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch
Patch20: 0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch
# PATCH-FIX-UPSTREAM 0021-keymap-Add-Dell-Latitude-force-release-quirk.patch
Patch21: 0021-keymap-Add-Dell-Latitude-force-release-quirk.patch
# PATCH-FIX-UPSTREAM 0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch
Patch22: 0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch
# PATCH-FIX-OPENSUSE 0023-udev-fix-rules-timestamp-race.patch
Patch23: 0023-udev-fix-rules-timestamp-race.patch
# PATCH-FIX-UPSTREAM 0024-libudev-queue.c-simplified-open_queue_file.patch (drop this, needs way more work)
# Patch24: 0024-libudev-queue.c-simplified-open_queue_file.patch
# PATCH-FIX-UPSTREAM 0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch
Patch25: 0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch
# PATCH-FIX-OPENSUSE 0026-udev-netlink-null-rules.patch
Patch26: 0026-udev-netlink-null-rules.patch
# PATCH-FIX-OPENSUSE 0027-udev-fix-sg-autoload-regression.patch
Patch27: 0027-udev-fix-sg-autoload-regression.patch
# PATCH-FIX-UPSTREAM 0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch
Patch28: 0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch
# PATCH-FIX-UPSTREAM 0029-drop-usb-hid-rule-for-046b_ff10.patch
Patch29: 0029-drop-usb-hid-rule-for-046b_ff10.patch
# PATCH-FIX-UPSTREAM 0030-udevd-add-missing-to-getopt_long-e.patch
Patch30: 0030-udevd-add-missing-to-getopt_long-e.patch
# PATCH-FIX-OPENSUSE 0031-create-default-links-for-primary-cd_dvd-drive.patch
Patch31: 0031-create-default-links-for-primary-cd_dvd-drive.patch
# PATCH-FIX-OPENSUSE 0032-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch
Patch32: 0032-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch
# PATCH-FIX-UPSTREAM 0033-rules-drivers-always-call-kmod-even-when-a-driver-is.patch
Patch33: 0033-rules-drivers-always-call-kmod-even-when-a-driver-is.patch
# Upstream First - Policy:
# Never add any patches to this package without the upstream commit id
# in the patch. Any patches added here without a very good reason to make
# an exception will be silently removed with the next version update.
%description
Udev creates and removes device nodes in /dev for devices discovered or
removed from the system. It receives events via kernel netlink messages
and dispatches them according to rules in /lib/udev/rules.d/. Matching
rules may name a device node, create additional symlinks to the node,
call tools to initialize a device, or load needed kernel modules.
%package -n libudev0
Summary: Dynamic library to access udev device information
License: LGPL-2.1+
Group: System/Libraries
Requires: udev = %{version}-%{release}
%description -n libudev0
This package contains the dynamic library libudev, which provides
access to udev device information
%package -n libudev-devel
Summary: Development files for libudev
License: LGPL-2.1+
Group: Development/Libraries/Other
Requires: libudev0 = %{version}-%{release}
%description -n libudev-devel
This package contains the development files for the library libudev, a
dynamic library, which provides access to udev device information.
%package -n libgudev-1_0-0
Summary: GObject library, to access udev device information
License: LGPL-2.1+
Group: System/Libraries
Requires: libudev0 = %{version}-%{release}
%description -n libgudev-1_0-0
This package contains the GObject library libgudev, which provides
access to udev device information.
%package -n typelib-1_0-GUdev-1_0
Summary: GObject library, to access udev device information -- Introspection bindings
License: LGPL-2.1+
Group: System/Libraries
%description -n typelib-1_0-GUdev-1_0
This package provides the GObject Introspection bindings for libgudev, which
provides access to udev device information.
%package -n libgudev-1_0-devel
Summary: Devel package for libgudev
License: LGPL-2.1+
Group: Development/Libraries/Other
Requires: glib2-devel
Requires: libgudev-1_0-0 = %{version}-%{release}
Requires: libudev-devel = %{version}-%{release}
Requires: typelib-1_0-GUdev-1_0 = %{version}-%{release}
%description -n libgudev-1_0-devel
This is the devel package for the GObject library libgudev, which
provides GObject access to udev device information.
%prep
%setup -q
# patching
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
# %patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1
%patch33 -p1
%build
autoreconf -vfi
# prevent man pages from re-building (xmlto)
find . -name "*.[1-8]" -exec touch '{}' \;
export V=1
%configure \
--sysconfdir=%{_sysconfdir} \
--sbindir=/sbin \
--with-rootlibdir=/%{_lib} \
--libexecdir=/lib \
--docdir=%{_docdir}/udev \
--with-selinux \
--with-systemdsystemunitdir=/lib/systemd/system \
--enable-floppy \
--enable-rule_generator \
CFLAGS="$RPM_OPT_FLAGS"
make %{?_smp_mflags}
%install
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT/%{_libdir}/libudev.la
rm -f $RPM_BUILD_ROOT/%{_libdir}/libgudev-1.0.la
mkdir -p $RPM_BUILD_ROOT%{_bindir}
ln -sf ../../sbin/udevadm $RPM_BUILD_ROOT%{_bindir}/udevadm
ln -sf ../../sbin/udevd $RPM_BUILD_ROOT/lib/udev/udevd
mkdir -p $RPM_BUILD_ROOT/lib/firmware
mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib
ln -sf ../../lib/firmware $RPM_BUILD_ROOT/%{_prefix}/lib/firmware
cp -ax README NEWS $RPM_BUILD_ROOT%{_docdir}/udev
install -m755 -D %{S:60} $RPM_BUILD_ROOT/etc/init.d/boot.udev
install -m755 -D %{S:61} $RPM_BUILD_ROOT/lib/udev/write_dev_root_rule
install -m644 -D %{S:62} $RPM_BUILD_ROOT/lib/systemd/system/udev-root-symlink.service
mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants
ln -sf ../udev-root-symlink.service $RPM_BUILD_ROOT/lib/systemd/system/basic.target.wants
%pre
/usr/bin/getent group tape > /dev/null 2>&1 || /usr/sbin/groupadd -r tape 2> /dev/null
# stop daemon if we are not in a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then
/bin/systemctl stop udev-control.socket udev-kernel.service >/dev/null 2>&1 || :
/sbin/udevadm control --exit >/dev/null 2>&1 || :
fi
fi
%post
%{fillup_and_insserv -Y boot.udev}
# add KERNEL name match to existing persistent net rules
sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \
/etc/udev/rules.d/70-persistent-net.rules >/dev/null 2>&1 || :
# cleanup old stuff
rm -f /etc/sysconfig/udev
rm -f /etc/udev/rules.d/20-cdrom.rules
rm -f /etc/udev/rules.d/55-cdrom.rules
rm -f /etc/udev/rules.d/65-cdrom.rules
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
# start daemon if we are not in a chroot
if test -f /proc/1/exe -a -d /proc/1/root; then
if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then
/bin/systemctl start udev.service >/dev/null 2>&1 || :
/sbin/udevd --daemon >/dev/null 2>&1 || :
fi
fi
if [ "${YAST_IS_RUNNING}" != "instsys" ]; then
if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then
echo "Skipping recreation of existing initial ramdisks, due"
echo "to presence of /var/lib/no_initrd_recreation_by_suspend"
elif [ -x /sbin/mkinitrd ]; then
[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup
/sbin/mkinitrd || :
fi
fi
%postun
%insserv_cleanup
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ "${YAST_IS_RUNNING}" != "instsys" ]; then
if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then
echo "Skipping recreation of existing initial ramdisks, due"
echo "to presence of /var/lib/no_initrd_recreation_by_suspend"
elif [ -x /sbin/mkinitrd ]; then
[ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup
/sbin/mkinitrd || :
fi
fi
%post -n libudev0 -p /sbin/ldconfig
%postun -n libudev0 -p /sbin/ldconfig
%post -n libgudev-1_0-0 -p /sbin/ldconfig
%postun -n libgudev-1_0-0 -p /sbin/ldconfig
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
/sbin/udevd
/sbin/udevadm
%dir %{_bindir}
%{_bindir}/udevadm
%dir /usr/lib/firmware/
%dir /lib/udev/
/lib/udev/*
%dir /lib/udev/keymaps
/lib/udev/keymaps/*
/lib/udev/keyboard-force-release.sh
%dir /lib/udev/rules.d/
/lib/udev/rules.d/*.rules
%{_sysconfdir}/init.d/boot.udev
%dir %{_sysconfdir}/udev/
%dir %{_sysconfdir}/udev/rules.d/
%config(noreplace) %{_sysconfdir}/udev/udev.conf
%{_mandir}/man?/*.[0-9]*
%doc %{_docdir}/udev
%dir /lib/udev/devices/
%dir /lib/systemd/system
/lib/systemd/system/udev*.service
/lib/systemd/system/udev*.socket
%dir /lib/systemd/system/basic.target.wants
/lib/systemd/system/basic.target.wants/udev*.service
%dir /lib/systemd/system/sockets.target.wants
/lib/systemd/system/sockets.target.wants/udev*.socket
%files -n libudev0
%defattr(-,root,root)
/%{_lib}/libudev.so.*
%files -n libudev-devel
%defattr(-,root,root)
%{_includedir}/libudev.h
%{_libdir}/libudev.so
%{_datadir}/pkgconfig/udev.pc
%{_libdir}/pkgconfig/libudev.pc
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%dir %{_datadir}/gtk-doc/html/libudev
%{_datadir}/gtk-doc/html/libudev/*
%files -n libgudev-1_0-0
%defattr(-,root,root)
/%{_lib}/libgudev-1.0.so.*
%files -n typelib-1_0-GUdev-1_0
%defattr(-,root,root)
%{_libdir}/girepository-1.0/GUdev-1.0.typelib
%files -n libgudev-1_0-devel
%defattr(-,root,root)
%dir %{_includedir}/gudev-1.0
%dir %{_includedir}/gudev-1.0/gudev
%{_includedir}/gudev-1.0/gudev/*.h
%{_libdir}/libgudev-1.0.so
%{_libdir}/pkgconfig/gudev-1.0.pc
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%dir %{_datadir}/gtk-doc/html/gudev
%{_datadir}/gtk-doc/html/gudev/*
%{_datadir}/gir-1.0/GUdev-1.0.gir
%changelog
++++++ 0001-Reinstate-TIMEOUT-handling.patch ++++++
Without treating events with timeouts specially some drivers would
cause a 30 seconds stall on boot: .
I also received reports of some drivers not working at all, even
after the timeout.
We will remove this patch when more drivers have been fixed in
the kernel (3.4?).
This reverts 43d5c5f03645c4b842659f9b5bd0ae465e885e92 and
57c6f8ae5f52a6e8ffc66a54966346f733dded39.
---
Note: this is mostly a FYI, and whether or not it makes sense
to apply this upstream depends on how big problems other report
regarding this issue.
src/libudev-device.c | 19 +++++++++++++++++++
src/libudev-private.h | 1 +
src/udevd.c | 13 ++++++++++---
4 files changed, 32 insertions(+), 3 deletions(-)
Index: udev-182/src/libudev-device.c
===================================================================
--- udev-182.orig/src/libudev-device.c
+++ udev-182/src/libudev-device.c
@@ -68,6 +68,7 @@ struct udev_device {
struct udev_list tags_list;
unsigned long long int seqnum;
unsigned long long int usec_initialized;
+ int timeout;
int devlink_priority;
int refcount;
dev_t devnum;
@@ -160,6 +161,21 @@ static int udev_device_set_devnum(struct
return 0;
}
+int udev_device_get_timeout(struct udev_device *udev_device)
+{
+ return udev_device->timeout;
+}
+
+static int udev_device_set_timeout(struct udev_device *udev_device, int timeout)
+{
+ char num[32];
+
+ udev_device->timeout = timeout;
+ snprintf(num, sizeof(num), "%u", timeout);
+ udev_device_add_property(udev_device, "TIMEOUT", num);
+ return 0;
+}
+
const char *udev_device_get_devpath_old(struct udev_device *udev_device)
{
return udev_device->devpath_old;
@@ -414,6 +430,8 @@ void udev_device_add_property_from_strin
udev_device_set_devpath_old(udev_device, &property[12]);
} else if (strncmp(property, "SEQNUM=", 7) == 0) {
udev_device_set_seqnum(udev_device, strtoull(&property[7], NULL, 10));
+ } else if (strncmp(property, "TIMEOUT=", 8) == 0) {
+ udev_device_set_timeout(udev_device, strtoull(&property[8], NULL, 10));
} else if (strncmp(property, "IFINDEX=", 8) == 0) {
udev_device_set_ifindex(udev_device, strtoull(&property[8], NULL, 10));
} else if (strncmp(property, "DEVMODE=", 8) == 0) {
@@ -599,6 +617,7 @@ struct udev_device *udev_device_new(stru
udev_list_init(udev, &udev_device->sysattr_value_list, true);
udev_list_init(udev, &udev_device->sysattr_list, false);
udev_list_init(udev, &udev_device->tags_list, true);
+ udev_device->timeout = -1;
udev_device->watch_handle = -1;
/* copy global properties */
udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev))
Index: udev-182/src/libudev-private.h
===================================================================
--- udev-182.orig/src/libudev-private.h
+++ udev-182/src/libudev-private.h
@@ -87,6 +87,7 @@ const char *udev_device_get_id_filename(
void udev_device_set_is_initialized(struct udev_device *udev_device);
int udev_device_add_tag(struct udev_device *udev_device, const char *tag);
void udev_device_cleanup_tags_list(struct udev_device *udev_device);
+int udev_device_get_timeout(struct udev_device *udev_device);
unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device);
void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized);
int udev_device_get_devlink_priority(struct udev_device *udev_device);
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -401,7 +401,7 @@ out:
}
}
-static void event_run(struct event *event)
+static void event_run(struct event *event, bool force)
{
struct udev_list_node *loop;
@@ -427,7 +427,7 @@ static void event_run(struct event *even
return;
}
- if (children >= children_max) {
+ if (!force && children >= children_max) {
if (children_max > 1)
info(event->udev, "maximum number (%i) of children reached\n", children);
return;
@@ -461,6 +461,13 @@ static int event_queue_insert(struct ude
event->state = EVENT_QUEUED;
udev_list_node_append(&event->node, &event_list);
+
+ /* run all events with a timeout set immediately */
+ if (udev_device_get_timeout(dev) > 0) {
+ event_run(event, true);
+ return 0;
+ }
+
return 0;
}
@@ -577,7 +584,7 @@ static void event_queue_start(struct ude
continue;
}
- event_run(event);
+ event_run(event, false);
}
}
Index: udev-182/TODO
===================================================================
--- udev-182.orig/TODO
+++ udev-182/TODO
@@ -5,6 +5,8 @@
- make gtk-doc optional like kmod
+ - remove TIMEOUT= handling
+
- move /usr/lib/udev/devices/ to tmpfiles
- trigger --subsystem-match=usb/usb_device
++++++ 0002-udev-limit-minimum-worker-count-to-16.patch ++++++
>From d315bba6f6c9d929acdbf3c37cbcf6c9a72365ac Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Mon, 4 Jun 2012 16:40:31 +0200
Subject: [PATCH] udev: limit minimum worker count to 16
---
src/udevd.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -1542,9 +1542,9 @@ int main(int argc, char *argv[])
/* set value depending on the amount of RAM */
if (memsize > 0)
- children_max = 128 + (memsize / 8);
+ children_max = 16 + (memsize / 8);
else
- children_max = 128;
+ children_max = 16;
}
info(udev, "set children_max to %u\n", children_max);
++++++ 0003-keymaps-keyboard-force-release-fix-shebang.patch ++++++
Index: udev-182/src/keymap/keyboard-force-release.sh.in
===================================================================
--- udev-182.orig/src/keymap/keyboard-force-release.sh.in
+++ udev-182/src/keymap/keyboard-force-release.sh.in
@@ -1,4 +1,4 @@
-#!@rootprefix@/bin/sh -e
+#!/bin/sh -e
# read list of scancodes, convert hex to decimal and
# append to the atkbd force_release sysfs attribute
# $1 sysfs devpath for serioX
++++++ 0004-rules-Limit-USB-autosuspend-on-USB-HID-devices.patch ++++++
>From e0386cf2809219bbdd30895f46f1f567b56902b6 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg(a)redhat.com>
Date: Fri, 25 May 2012 10:27:25 -0400
Subject: [PATCH] rules: Limit USB autosuspend on USB HID devices
Some USB ports on external hubs may be reported as "fixed". We only want
to auto-enable this on ports that are internal to the machine, so check
the parent state as well.
---
rules/42-usb-hid-pm.rules | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
Index: udev-182/rules/42-usb-hid-pm.rules
===================================================================
--- udev-182.orig/rules/42-usb-hid-pm.rules
+++ udev-182/rules/42-usb-hid-pm.rules
@@ -46,4 +46,10 @@ ACTION=="add", SUBSYSTEM=="usb", ATTRS{i
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}="0002", TEST=="power/control", ATTR{power/control}="auto"
# USB HID devices that are internal to the machine should also be safe to autosuspend
+
+ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="removable", GOTO="usb_hid_pm_end"
+ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="unknown", GOTO="usb_hid_pm_end"
+
ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTRS{removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto"
+
+LABEL="usb_hid_pm_end"
++++++ 0005-keymap-support-for-Lenovo-IdeaPad-Z570-keyboard.patch ++++++
>From 0b270320da4f49bb5cc3c6fb74345eb39817694b Mon Sep 17 00:00:00 2001
From: "Maxim A. Mikityanskiy" <maxtram95(a)gmail.com>
Date: Tue, 22 May 2012 02:11:21 +0200
Subject: [PATCH] keymap: support for Lenovo IdeaPad Z570 keyboard
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -45,6 +45,7 @@ ENV{DMI_VENDOR}=="", GOTO="keyboard_end"
ENV{DMI_VENDOR}=="LENOVO*", KERNELS=="input*", ATTRS{name}=="ThinkPad Extra Buttons", RUN+="keymap $name module-lenovo"
ENV{DMI_VENDOR}=="LENOVO*", KERNELS=="input*", ATTRS{name}=="Lenovo ThinkPad SL Series extra buttons", RUN+="keymap $name 0x0E bluetooth"
+ENV{DMI_VENDOR}=="LENOVO*", KERNELS=="input*", ATTRS{name}=="Ideapad extra buttons", RUN+="keymap $name 0x42 f23 0x43 f22"
ENV{DMI_VENDOR}=="ASUS*", KERNELS=="input*", ATTRS{name}=="Asus Extra Buttons", ATTR{[dmi/id]product_name}=="W3J", RUN+="keymap $name module-asus-w3j"
ENV{DMI_VENDOR}=="ASUS*", KERNELS=="input*", ATTRS{name}=="Eee PC WMI hotkeys|Asus Laptop Support|Asus*WMI*", RUN+="keymap $name 0x6B f21"
++++++ 0006-keymap-Add-Mio-N890.patch ++++++
>From 0e5ba4e7824566f3cbc33e94776680fab1acc67f Mon Sep 17 00:00:00 2001
From: Martin Pitt <martinpitt(a)gnome.org>
Date: Mon, 14 May 2012 13:06:48 +0200
Subject: [PATCH] keymap: Add Mio N890
https://launchpad.net/bugs/998621
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -29,6 +29,8 @@ ENV{DMI_VENDOR}=="FOXCONN", ATTR{[dmi/id
ENV{DMI_VENDOR}=="MTC", ATTR{[dmi/id]product_version}=="A0", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
+ENV{DMI_VENDOR}=="Mio Technology", ATTR{[dmi/id]product_name}=="N890", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
+
ENV{DMI_VENDOR}=="PEGATRON CORP.", ATTR{[dmi/id]product_name}=="Spring Peak", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite [uU]300*|Satellite Pro [uU]300*|Satellite [uU]305*|SATELLITE [uU]500*", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
++++++ 0007-udev-path_id-add-cciss-support.patch ++++++
>From 68acb21d796adf294f2175b525d400bd4ceaef63 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare(a)suse.de>
Date: Thu, 10 May 2012 13:18:07 +0200
Subject: [PATCH] udev: path_id - add cciss support
Index: udev-182/src/udev-builtin-path_id.c
===================================================================
--- udev-182.orig/src/udev-builtin-path_id.c
+++ udev-182/src/udev-builtin-path_id.c
@@ -340,6 +340,20 @@ out:
return parent;
}
+static struct udev_device *handle_cciss(struct udev_device *parent, char **path)
+{
+ const char *str;
+ unsigned int controller, disk;
+
+ str = udev_device_get_sysname(parent);
+ if (sscanf(str, "c%ud%u%*s", &controller, &disk) != 2)
+ return NULL;
+
+ path_prepend(path, "cciss-disk%u", disk);
+ parent = skip_subsystem(parent, "cciss");
+ return parent;
+}
+
static void handle_scsi_tape(struct udev_device *dev, char **path)
{
const char *name;
@@ -427,6 +441,8 @@ static int builtin_path_id(struct udev_d
handle_scsi_tape(parent, &path);
} else if (strcmp(subsys, "scsi") == 0) {
parent = handle_scsi(parent, &path);
+ } else if (strcmp(subsys, "cciss") == 0) {
+ parent = handle_cciss(parent, &path);
} else if (strcmp(subsys, "usb") == 0) {
parent = handle_usb(parent, &path);
} else if (strcmp(subsys, "serio") == 0) {
++++++ 0008-udev-path_id-skip-PCI-only-parents-for-block-devices.patch ++++++
>From 7fdd367e6d675d4546074c5dd35bf168d7c17339 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Mon, 7 May 2012 18:47:58 +0200
Subject: [PATCH] udev: path_id - skip PCI-only-parents for block devices
Index: udev-182/src/udev-builtin-path_id.c
===================================================================
--- udev-182.orig/src/udev-builtin-path_id.c
+++ udev-182/src/udev-builtin-path_id.c
@@ -421,6 +421,7 @@ static int builtin_path_id(struct udev_d
{
struct udev_device *parent;
char *path = NULL;
+ bool some_transport = false;
/* S390 ccw bus */
parent = udev_device_get_parent_with_subsystem_devtype(dev, "ccw", NULL);
@@ -441,10 +442,13 @@ static int builtin_path_id(struct udev_d
handle_scsi_tape(parent, &path);
} else if (strcmp(subsys, "scsi") == 0) {
parent = handle_scsi(parent, &path);
+ some_transport = true;
} else if (strcmp(subsys, "cciss") == 0) {
parent = handle_cciss(parent, &path);
+ some_transport = true;
} else if (strcmp(subsys, "usb") == 0) {
parent = handle_usb(parent, &path);
+ some_transport = true;
} else if (strcmp(subsys, "serio") == 0) {
path_prepend(&path, "serio-%s", udev_device_get_sysnum(parent));
parent = skip_subsystem(parent, "serio");
@@ -467,6 +471,18 @@ static int builtin_path_id(struct udev_d
parent = udev_device_get_parent(parent);
}
+
+ /*
+ * Do not return a single-parent-device-only for block
+ * devices, they might have entire buses behind it which
+ * do not get unique IDs only by using the parent device.
+ */
+ if (!some_transport && (strcmp(udev_device_get_subsystem(dev), "block") == 0)) {
+ free(path);
+ path = NULL;
+ }
+
+
out:
if (path != NULL) {
char tag[UTIL_NAME_SIZE];
++++++ 0009-keymap-Add-HP-Compaq-Presario-CQ.patch ++++++
>From a417efcd33776879befa851bafec9185ef15f53e Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt(a)ubuntu.com>
Date: Wed, 28 Mar 2012 11:54:00 +0200
Subject: [PATCH] keymap: Add HP Compaq Presario CQ*
https://launchpad.net/bugs/935804
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -89,6 +89,7 @@ ENV{DMI_VENDOR}=="Hewlett-Packard*", RUN
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}=="*Presario*CQ*", RUN+="keymap $name 0xD8 f21 0xD9 f21"
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"
++++++ 0010-keymap-Add-Dell-XPS-force-release-quirk.patch ++++++
>From 84f4fc4215bb6ddaa0b640e731242dd8517a3a79 Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt(a)ubuntu.com>
Date: Wed, 28 Mar 2012 11:44:19 +0200
Subject: [PATCH] keymap: Add Dell XPS force-release quirk
https://launchpad.net/bugs/910911
Index: udev-182/Makefile.am
===================================================================
--- udev-182.orig/Makefile.am
+++ udev-182/Makefile.am
@@ -585,6 +585,7 @@ dist_udevkeymap_DATA = \
udevkeymapforcereldir = $(libexecdir)/udev/keymaps/force-release
dist_udevkeymapforcerel_DATA = \
src/keymap/force-release-maps/dell-touchpad \
+ src/keymap/force-release-maps/dell-xps \
src/keymap/force-release-maps/hp-other \
src/keymap/force-release-maps/samsung-other \
src/keymap/force-release-maps/common-volume-keys
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -22,6 +22,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
+ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="XPS*", RUN+="keyboard-force-release.sh $devpath dell-xps"
ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO Si 1848+u|AMILO Xi 2428", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
Index: udev-182/src/keymap/force-release-maps/dell-xps
===================================================================
--- /dev/null
+++ udev-182/src/keymap/force-release-maps/dell-xps
@@ -0,0 +1 @@
+0x8C
++++++ 0011-keymap-Add-support-for-Lenovo-v480-touchpad-toggle-h.patch ++++++
>From a985a8f5477330f79313436a6582154b08192612 Mon Sep 17 00:00:00 2001
From: Ayan George <ayan.george(a)canonical.com>
Date: Wed, 4 Apr 2012 08:38:38 +0200
Subject: [PATCH] keymap: Add support for Lenovo v480 touchpad toggle hotkey.
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -84,6 +84,7 @@ ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id
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}=="LENOVO", ATTR{[dmi/id]product_version}=="*IdeaPad Y550*", RUN+="keymap $name 0x95 media 0xA3 play"
+ENV{DMI_VENDOR}=="LENOVO", ATTR{[dmi/id]product_version}=="*Lenovo V480*", RUN+="keymap $name 0xf1 f21"
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"
++++++ 0012-keymap-Add-Samsung-90X3A.patch ++++++
>From abac5c7976c019be41f187bf97d6acffbe6caa8d Mon Sep 17 00:00:00 2001
From: Vaidas Jablonskis <jablonskis(a)gmail.com>
Date: Wed, 21 Mar 2012 14:51:39 +0100
Subject: [PATCH] keymap: Add Samsung 90X3A
Signed-off-by: Martin Pitt <martin.pitt(a)ubuntu.com>
Index: udev-182/Makefile.am
===================================================================
--- udev-182.orig/Makefile.am
+++ udev-182/Makefile.am
@@ -575,6 +575,7 @@ dist_udevkeymap_DATA = \
src/keymap/keymaps/onkyo \
src/keymap/keymaps/oqo-model2 \
src/keymap/keymaps/samsung-other \
+ src/keymap/keymaps/samsung-90x3a \
src/keymap/keymaps/samsung-sq1us \
src/keymap/keymaps/samsung-sx20s \
src/keymap/keymaps/toshiba-satellite_a100 \
@@ -588,6 +589,7 @@ dist_udevkeymapforcerel_DATA = \
src/keymap/force-release-maps/dell-xps \
src/keymap/force-release-maps/hp-other \
src/keymap/force-release-maps/samsung-other \
+ src/keymap/force-release-maps/samsung-90x3a \
src/keymap/force-release-maps/common-volume-keys
src/keymap/keys.txt: $(INCLUDE_PREFIX)/linux/input.h
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -19,6 +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]*", RUN+="keyboard-force-release.sh $devpath samsung-other"
+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keyboard-force-release.sh $devpath samsung-90x3a"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -146,6 +146,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n
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"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700Z*", RUN+="keymap $name 0xBA ejectcd 0x96 keyboardbrightnessup 0x97 keyboardbrightnessdown"
+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keymap $name samsung-90x3a"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100", RUN+="keymap $name toshiba-satellite_a100"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite A110", RUN+="keymap $name toshiba-satellite_a110"
Index: udev-182/src/keymap/force-release-maps/samsung-90x3a
===================================================================
--- /dev/null
+++ udev-182/src/keymap/force-release-maps/samsung-90x3a
@@ -0,0 +1,6 @@
+# list of scancodes (hex or decimal), optional comment
+0xCE # Fn+F8 keyboard backlit up
+0x8D # Fn+F7 keyboard backlit down
+0x97 # Fn+F12 wifi on/off
+0x96 # Fn+F1 performance mode (?)
+0xD5 # Fn+F6 battery life extender
Index: udev-182/src/keymap/keymaps/samsung-90x3a
===================================================================
--- /dev/null
+++ udev-182/src/keymap/keymaps/samsung-90x3a
@@ -0,0 +1,5 @@
+0x96 kbdillumup # Fn+F8 keyboard backlit up
+0x97 kbdillumdown # Fn+F7 keyboard backlit down
+0xD5 wlan # Fn+F12 wifi on/off
+0xCE prog1 # Fn+F1 performance mode
+0x8D prog2 # Fn+F6 battery life extender
++++++ 0013-re-enable-by_path-links-for-ata-devices.patch ++++++
Index: udev-182/src/udev-builtin-path_id.c
===================================================================
--- udev-182.orig/src/udev-builtin-path_id.c
+++ udev-182/src/udev-builtin-path_id.c
@@ -286,6 +286,85 @@ out:
return hostdev;
}
+static struct udev_device *handle_ata(struct udev_device *parent, char **path)
+{
+ struct udev_device *hostdev;
+ int host, bus, target, lun;
+ const char *name;
+ char *base;
+ char *pos;
+ DIR *dir;
+ struct dirent *dent;
+ int basenum, len;
+
+ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host");
+ if (hostdev == NULL)
+ return NULL;
+
+ name = udev_device_get_sysname(parent);
+ if (sscanf(name, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4)
+ return NULL;
+
+ /* rebase ata offset to get the local relative number */
+ basenum = -1;
+ base = strdup(udev_device_get_syspath(hostdev));
+ if (base == NULL)
+ return NULL;
+ pos = strrchr(base, '/');
+ if (pos == NULL) {
+ parent = NULL;
+ goto out;
+ }
+ pos[0] = '\0';
+ len = strlen(base) - 5;
+ if (len <= 0) {
+ parent = NULL;
+ goto out;
+ }
+ base[len] = '\0';
+ dir = opendir(base);
+ if (dir == NULL) {
+ parent = NULL;
+ goto out;
+ }
+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
+ char *rest;
+ int i;
+
+ if (dent->d_name[0] == '.')
+ continue;
+ if (dent->d_type != DT_DIR && dent->d_type != DT_LNK)
+ continue;
+ if (strncmp(dent->d_name, "ata", 3) != 0)
+ continue;
+ i = strtoul(&dent->d_name[3], &rest, 10);
+
+ /* ata devices start with 1, so decrease by 1 if i is bigger then 0 */
+ if (i > 0)
+ i--;
+ if (rest[0] != '\0')
+ continue;
+ /*
+ * find the smallest number; the host really needs to export its
+ * own instance number per parent device; relying on the global host
+ * enumeration and plainly rebasing the numbers sounds unreliable
+ */
+ if (basenum == -1 || i < basenum)
+ basenum = i;
+ }
+ closedir(dir);
+ if (basenum == -1) {
+ parent = NULL;
+ goto out;
+ }
+ host -= basenum;
+
+ path_prepend(path, "scsi-%u:%u:%u:%u", host, bus, target, lun);
+out:
+ free(base);
+ return hostdev;
+}
+
static struct udev_device *handle_scsi(struct udev_device *parent, char **path)
{
const char *devtype;
@@ -322,16 +401,8 @@ static struct udev_device *handle_scsi(s
goto out;
}
- /*
- * We do not support the ATA transport class, it creates duplicated link
- * names as the fake SCSI host adapters are all separated, they are all
- * re-based as host == 0. ATA should just stop faking two duplicated
- * hierarchies for a single topology and leave the SCSI stuff alone;
- * until that happens, there are no by-path/ links for ATA devices behind
- * an ATA transport class.
- */
if (strstr(name, "/ata") != NULL) {
- parent = NULL;
+ parent = handle_ata(parent, path);
goto out;
}
++++++ 0014-rules-create-by-id-scsi-links-for-ATA-devices.patch ++++++
Index: udev-182/rules/60-persistent-storage.rules
===================================================================
--- udev-182.orig/rules/60-persistent-storage.rules
+++ udev-182/rules/60-persistent-storage.rules
@@ -44,6 +44,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk",
KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
+# scsi compat links for ATA devices
+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}"
+KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n"
+
# firewire
KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}"
KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n"
++++++ 0015-udev-secure-getenv.patch ++++++
Index: udev-182/src/libudev.c
===================================================================
--- udev-182.orig/src/libudev.c
+++ udev-182/src/libudev.c
@@ -135,7 +135,7 @@ UDEV_EXPORT struct udev *udev_new(void)
udev_list_init(udev, &udev->properties_list, true);
/* custom config file */
- env = getenv("UDEV_CONFIG_FILE");
+ env = __secure_getenv("UDEV_CONFIG_FILE");
if (env != NULL) {
if (set_value(&config_file, env) == NULL)
goto err;
@@ -237,7 +237,7 @@ UDEV_EXPORT struct udev *udev_new(void)
}
/* environment overrides config */
- env = getenv("UDEV_LOG");
+ env = __secure_getenv("UDEV_LOG");
if (env != NULL)
udev_set_log_priority(udev, util_log_priority(env));
++++++ 0016-udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_revision.patch ++++++
>From daa9cf546ce7265645ced9592dd54c6b2fc04302 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Thu, 5 Jul 2012 16:53:08 +0200
Subject: [PATCH] udev: ata_id - fixup all 8 not only 6 bytes of the fw_rev
string
The last two digits are in the wrong order:
$ hdparm -I /dev/sda | grep Revision
4PC10362
$ /lib/udev/ata_id -x /dev/sda | grep REVISION
4PC10326
Index: udev-182/src/ata_id/ata_id.c
===================================================================
--- udev-182.orig/src/ata_id/ata_id.c
+++ udev-182/src/ata_id/ata_id.c
@@ -511,7 +511,7 @@ int main(int argc, char *argv[])
* use and copy it into the hd_driveid struct for convenience
*/
disk_identify_fixup_string (identify, 10, 20); /* serial */
- disk_identify_fixup_string (identify, 23, 6); /* fwrev */
+ disk_identify_fixup_string (identify, 23, 8); /* fwrev */
disk_identify_fixup_string (identify, 27, 40); /* model */
disk_identify_fixup_uint16 (identify, 0); /* configuration */
disk_identify_fixup_uint16 (identify, 75); /* queue depth */
++++++ 0017-udev-add-some-O_CLOEXEC.patch ++++++
>From 47ef94ac5f39db6c5c18be10afe32397a0a8d5cc Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Thu, 5 Jul 2012 17:33:24 +0200
Subject: [PATCH] udev: add some O_CLOEXEC
Index: udev-182/src/cdrom_id/cdrom_id.c
===================================================================
--- udev-182.orig/src/cdrom_id/cdrom_id.c
+++ udev-182/src/cdrom_id/cdrom_id.c
@@ -125,7 +125,7 @@ static bool is_mounted(const char *devic
if (stat(device, &statbuf) < 0)
return -ENODEV;
- fp = fopen("/proc/self/mountinfo", "r");
+ fp = fopen("/proc/self/mountinfo", "re");
if (fp == NULL)
return -ENOSYS;
while (fscanf(fp, "%*s %*s %i:%i %*[^\n]", &maj, &min) == 2) {
Index: udev-182/src/keymap/keymap.c
===================================================================
--- udev-182.orig/src/keymap/keymap.c
+++ udev-182/src/keymap/keymap.c
@@ -409,7 +409,7 @@ int main(int argc, char **argv)
const char *filearg = argv[optind+1];
if (strchr(filearg, '/')) {
/* Keymap file argument is a path */
- FILE *f = fopen(filearg, "r");
+ FILE *f = fopen(filearg, "re");
if (f)
merge_table(fd, f);
else
@@ -419,12 +419,12 @@ int main(int argc, char **argv)
/* Open override file if present, otherwise default file */
char keymap_path[PATH_MAX];
snprintf(keymap_path, sizeof(keymap_path), "%s%s", SYSCONFDIR "/udev/keymaps/", filearg);
- FILE *f = fopen(keymap_path, "r");
+ FILE *f = fopen(keymap_path, "re");
if (f) {
merge_table(fd, f);
} else {
snprintf(keymap_path, sizeof(keymap_path), "%s%s", PKGLIBEXECDIR "/keymaps/", filearg);
- f = fopen(keymap_path, "r");
+ f = fopen(keymap_path, "re");
if (f)
merge_table(fd, f);
else
Index: udev-182/src/libudev-queue-private.c
===================================================================
--- udev-182.orig/src/libudev-queue-private.c
+++ udev-182/src/libudev-queue-private.c
@@ -223,7 +223,7 @@ static int rebuild_queue_file(struct ude
/* create new queue file */
util_strscpyl(filename_tmp, sizeof(filename_tmp), udev_get_run_path(udev_queue_export->udev), "/queue.tmp", NULL);
- new_queue_file = fopen(filename_tmp, "w+");
+ new_queue_file = fopen(filename_tmp, "w+e");
if (new_queue_file == NULL)
goto error;
seqnum = udev_queue_export->seqnum_max;
Index: udev-182/src/udev-event.c
===================================================================
--- udev-182.orig/src/udev-event.c
+++ udev-182/src/udev-event.c
@@ -789,7 +789,7 @@ static void rename_netif_kernel_log(stru
int klog;
FILE *f;
- klog = open("/dev/kmsg", O_WRONLY);
+ klog = open("/dev/kmsg", O_WRONLY|O_CLOEXEC);
if (klog < 0)
return;
Index: udev-182/src/udev-rules.c
===================================================================
--- udev-182.orig/src/udev-rules.c
+++ udev-182/src/udev-rules.c
@@ -749,7 +749,7 @@ static int import_file_into_properties(s
FILE *f;
char line[UTIL_LINE_SIZE];
- f = fopen(filename, "r");
+ f = fopen(filename, "re");
if (f == NULL)
return -1;
while (fgets(line, sizeof(line), f) != NULL)
@@ -1641,7 +1641,7 @@ static int parse_file(struct udev_rules
info(rules->udev, "reading '%s' as rules file\n", filename);
- f = fopen(filename, "r");
+ f = fopen(filename, "re");
if (f == NULL)
return -1;
@@ -2350,7 +2350,7 @@ int udev_rules_apply_to_event(struct ude
FILE *f;
bool imported = false;
- f = fopen("/proc/cmdline", "r");
+ f = fopen("/proc/cmdline", "re");
if (f != NULL) {
char cmdline[4096];
@@ -2639,7 +2639,7 @@ int udev_rules_apply_to_event(struct ude
info(event->udev, "ATTR '%s' writing '%s' %s:%u\n", attr, value,
&rules->buf[rule->rule.filename_off],
rule->rule.filename_line);
- f = fopen(attr, "w");
+ f = fopen(attr, "we");
if (f != NULL) {
if (fprintf(f, "%s", value) <= 0)
err(event->udev, "error writing ATTR{%s}: %m\n", attr);
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -838,7 +838,7 @@ static void static_dev_create_from_modul
uname(&kernel);
util_strscpyl(modules, sizeof(modules), "/lib/modules/", kernel.release, "/modules.devname", NULL);
- f = fopen(modules, "r");
+ f = fopen(modules, "re");
if (f == NULL)
return;
@@ -1016,7 +1016,7 @@ static int mem_size_mb(void)
char buf[4096];
long int memsize = -1;
- f = fopen("/proc/meminfo", "r");
+ f = fopen("/proc/meminfo", "re");
if (f == NULL)
return -1;
@@ -1054,7 +1054,7 @@ static int convert_db(struct udev *udev)
if (access(filename, F_OK) < 0)
return 0;
- f = fopen("/dev/kmsg", "w");
+ f = fopen("/dev/kmsg", "we");
if (f != NULL) {
fprintf(f, "<30>udevd[%u]: converting old udev database\n", getpid());
fclose(f);
@@ -1285,7 +1285,7 @@ int main(int argc, char *argv[])
* udev.children-max=<number of workers> events are fully serialized if set to 1
*
*/
- f = fopen("/proc/cmdline", "r");
+ f = fopen("/proc/cmdline", "re");
if (f != NULL) {
char cmdline[4096];
@@ -1445,7 +1445,7 @@ int main(int argc, char *argv[])
sd_notify(1, "READY=1");
}
- f = fopen("/dev/kmsg", "w");
+ f = fopen("/dev/kmsg", "we");
if (f != NULL) {
fprintf(f, "<30>udevd[%u]: starting version " VERSION "\n", getpid());
fclose(f);
++++++ 0018-udev-static-nodes-fix-default-permissions-if-no-rule.patch ++++++
>From ef8a2bf6484bb0f82248ceb10a55509a93d82c6b Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Mon, 2 Jul 2012 20:44:05 +0200
Subject: [PATCH] udev: static nodes - fix default permissions if no rules is
given
<falconindy> kay: just curious -- it looks like nodes created by udev from
modules.devname all have 000 perms, and there's nothing in udev that attempts
to change this. is it intended?
<falconindy> c--------- 1 root root 10, 223 Jul 1 23:10 uinput
<kay> falconindy: we might miss the default of 0600
<falconindy> seems like it
<kay> falconindy: stuff that has a rule works i guess
<kay> falconindy: i'll add the 0600 now
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -876,10 +876,11 @@ static void static_dev_create_from_modul
if (sscanf(devno, "%c%u:%u", &type, &maj, &min) != 3)
continue;
+ mode = 0600;
if (type == 'c')
- mode = S_IFCHR;
+ mode |= S_IFCHR;
else if (type == 'b')
- mode = S_IFBLK;
+ mode |= S_IFBLK;
else
continue;
++++++ 0019-udev-path_id-export-path-for-platform-block-devices.patch ++++++
>From 2a3fe9a75951cb085b81569939f6af3ce2eb2b02 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Fri, 20 Jul 2012 16:01:13 +0200
Subject: [PATCH] udev: path_id - export path for platform block devices
Enrico Scholz <enrico.scholz(a)sigma-chemnitz.de>
>
> E.g. I have a platform with two sdhci controllers with different purposes.
> First slot is an external slot while second one is internal with a
> non-removable card.
>
> When there is a card in the external slot at boot, the non-removable card is
> named 'mmcblk1'; without the external card it is 'mmcblk0'. Vice versa for the
> external card.
https://bugs.freedesktop.org/show_bug.cgi?id=52309
Index: udev-182/src/udev-builtin-path_id.c
===================================================================
--- udev-182.orig/src/udev-builtin-path_id.c
+++ udev-182/src/udev-builtin-path_id.c
@@ -529,6 +529,7 @@ static int builtin_path_id(struct udev_d
} else if (strcmp(subsys, "platform") == 0) {
path_prepend(&path, "platform-%s", udev_device_get_sysname(parent));
parent = skip_subsystem(parent, "platform");
+ some_transport = true;
} else if (strcmp(subsys, "acpi") == 0) {
path_prepend(&path, "acpi-%s", udev_device_get_sysname(parent));
parent = skip_subsystem(parent, "acpi");
++++++ 0020-rules-fix-typo-in-42-usb-hid-pm.rules.patch ++++++
>From 8432ecabacf15d8b0faf455a99980a42a00b4c08 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Sat, 14 Jul 2012 00:50:49 +0200
Subject: [PATCH] rules: fix typo in 42-usb-hid-pm.rules
<arjan> can you open the 42-usb-hid-pm.rules file
<arjan> and go to line 46
<arjan> and tell me why ATTR{idProduct}="0002" only has one = and not two (e.g. == ) ?
<kay> arjan: yep
<kay> arjan: bug
Index: udev-182/rules/42-usb-hid-pm.rules
===================================================================
--- udev-182.orig/rules/42-usb-hid-pm.rules
+++ udev-182/rules/42-usb-hid-pm.rules
@@ -43,7 +43,7 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{id
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="04b3", ATTR{idProduct}=="4012", TEST=="power/control", ATTR{power/control}="auto"
# Raritan Computer, Inc KVM.
-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}="0002", TEST=="power/control", ATTR{power/control}="auto"
+ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}=="0002", TEST=="power/control", ATTR{power/control}="auto"
# USB HID devices that are internal to the machine should also be safe to autosuspend
++++++ 0021-keymap-Add-Dell-Latitude-force-release-quirk.patch ++++++
>From 94469041d938809048d6e7a8655c23ed84e0b72a Mon Sep 17 00:00:00 2001
From: Rex Tsai <rex.tsai(a)canonical.com>
Date: Wed, 18 Jul 2012 11:47:13 +0200
Subject: [PATCH] keymap: Add Dell Latitude force-release quirk
Signed-off-by: Martin Pitt <martinpitt(a)gnome.org>
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -22,7 +22,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keyboard-force-release.sh $devpath samsung-90x3a"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
-ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
+ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Latitude *U|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="XPS*", RUN+="keyboard-force-release.sh $devpath dell-xps"
ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO Si 1848+u|AMILO Xi 2428", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
++++++ 0022-keymap-Broaden-ThinkPad-X2.-tablet-match-to-also-app.patch ++++++
>From f84b1a8c3aff81c9d80f47943e116e205c884565 Mon Sep 17 00:00:00 2001
From: Terence Honles <terence(a)honles.com>
Date: Mon, 23 Jul 2012 06:32:46 +0200
Subject: [PATCH] keymap: Broaden ThinkPad X2.. tablet match to also apply to
X230
https://bugs.freedesktop.org/show_bug.cgi?id=52371
Index: udev-182/src/keymap/95-keymap.rules
===================================================================
--- udev-182.orig/src/keymap/95-keymap.rules
+++ udev-182/src/keymap/95-keymap.rules
@@ -80,7 +80,7 @@ ENV{DMI_VENDOR}=="Compaq*", ATTR{[dmi/id
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 X2[02]* Tablet*", ATTR{[dmi/id]product_version}=="* Tablet", RUN+="keymap $name lenovo-thinkpad_x200_tablet"
+ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X2* 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}=="LENOVO", ATTR{[dmi/id]product_version}=="*IdeaPad Y550*", RUN+="keymap $name 0x95 media 0xA3 play"
++++++ 0023-udev-fix-rules-timestamp-race.patch ++++++
--- udev-182.orig/src/udev-rules.c.orig 2012-08-01 14:23:16.000000000 +0000
+++ udev-182/src/udev-rules.c 2012-08-01 14:26:48.000000000 +0000
@@ -1754,6 +1754,7 @@ struct udev_rules *udev_rules_new(struct
struct udev_list_entry *file_loop;
struct token end_token;
char **s;
+ unsigned long long *stamp_usec;
rules = calloc(1, sizeof(struct udev_rules));
if (rules == NULL)
@@ -1795,8 +1796,12 @@ struct udev_rules *udev_rules_new(struct
memset(rules->trie_nodes, 0x00, sizeof(struct trie_node));
rules->trie_nodes_cur = 1;
- for (udev_get_rules_path(udev, &s, NULL); *s != NULL; s++)
+ for (udev_get_rules_path(udev, &s, &stamp_usec); *s != NULL; s++, stamp_usec++) {
+ struct stat stats;
+ if (stat(*s, &stats) == 0)
+ *stamp_usec = ts_usec(&stats.st_mtim);
add_matching_files(udev, &file_list, *s, ".rules");
+ }
/* add all filenames to the string buffer */
udev_list_entry_foreach(file_loop, udev_list_get_entry(&file_list)) {
++++++ 0025-keyboard-force-release-Apply-to-all-Fujitso-AMILO-mo.patch ++++++
>From d4c44191b7cd1d7241aed0cc588f79a9276f2fbc Mon Sep 17 00:00:00 2001
From: Martin Pitt <martinpitt(a)gnome.org>
Date: Fri, 3 Aug 2012 13:50:46 +0200
Subject: [PATCH] keyboard-force-release: Apply to all Fujitso AMILO models
https://launchpad.net/bugs/1011323 reports more AMILO models which need this
quirk; enough to assume that all of them need it, and applying it on working
models does not really hurt.
Index: udev-182/src/keymap/95-keyboard-force-release.rules
===================================================================
--- udev-182.orig/src/keymap/95-keyboard-force-release.rules
+++ udev-182/src/keymap/95-keyboard-force-release.rules
@@ -25,7 +25,7 @@ ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Latitude *U|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="XPS*", RUN+="keyboard-force-release.sh $devpath dell-xps"
-ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO Si 1848+u|AMILO Xi 2428", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
+ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO*", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
ENV{DMI_VENDOR}=="FOXCONN", ATTR{[dmi/id]product_name}=="QBOOK", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
++++++ 0026-udev-netlink-null-rules.patch ++++++
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -1683,6 +1683,8 @@ int main(int argc, char *argv[])
dev = udev_monitor_receive_device(monitor);
if (dev != NULL) {
udev_device_set_usec_initialized(dev, now_usec());
+ if (rules == NULL)
+ rules = udev_rules_new(udev, resolve_names);
if (event_queue_insert(dev) < 0)
udev_device_unref(dev);
}
++++++ 0027-udev-fix-sg-autoload-regression.patch ++++++
Index: udev-182/rules/80-drivers.rules
===================================================================
--- udev-182.orig/rules/80-drivers.rules
+++ udev-182/rules/80-drivers.rules
@@ -7,6 +7,7 @@ SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}==
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", IMPORT{builtin}="kmod load tifm_ms"
SUBSYSTEM=="memstick", IMPORT{builtin}="kmod load ms_block mspro_block"
SUBSYSTEM=="i2o", IMPORT{builtin}="kmod load i2o_block"
+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", IMPORT{builtin}="kmod load sg"
SUBSYSTEM=="module", KERNEL=="parport_pc", IMPORT{builtin}="kmod load ppdev"
LABEL="drivers_end"
++++++ 0028-udev-re-initialize-builtins-in-the-daemon-process-no.patch ++++++
>From 7781e063e8e9d3e92e4e158e1588b885808cda24 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Wed, 8 Aug 2012 16:27:11 +0200
Subject: [PATCH] udev: re-initialize builtins in the daemon process, not in
the worker
Index: udev-182/src/udev-builtin-kmod.c
===================================================================
--- udev-182.orig/src/udev-builtin-kmod.c
+++ udev-182/src/udev-builtin-kmod.c
@@ -23,6 +23,7 @@
#include <stdarg.h>
#include <unistd.h>
#include <string.h>
+#include <assert.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/stat.h>
@@ -39,6 +40,8 @@ static int load_module(struct udev *udev
struct kmod_list *l;
int err;
+ assert(ctx);
+
err = kmod_module_new_from_lookup(ctx, alias, &list);
if (err < 0)
return err;
@@ -76,16 +79,6 @@ static int builtin_kmod(struct udev_devi
struct udev *udev = udev_device_get_udev(dev);
int i;
- if (!ctx) {
- ctx = kmod_new(NULL, NULL);
- if (!ctx)
- return -ENOMEM;
-
- info(udev, "load module index\n");
- kmod_set_log_fn(ctx, udev_kmod_log, udev);
- kmod_load_resources(ctx);
- }
-
if (argc < 3 || strcmp(argv[1], "load")) {
err(udev, "expect: %s load <module>\n", argv[0]);
return EXIT_FAILURE;
@@ -99,7 +92,7 @@ static int builtin_kmod(struct udev_devi
return EXIT_SUCCESS;
}
-/* called at udev startup */
+/* called at udev startup and reload */
static int builtin_kmod_init(struct udev *udev)
{
if (ctx)
@@ -126,9 +119,9 @@ static void builtin_kmod_exit(struct ude
static bool builtin_kmod_validate(struct udev *udev)
{
info(udev, "validate module index\n");
- if (kmod_validate_resources(ctx) != KMOD_RESOURCES_OK)
- return true;
- return false;
+ if (!ctx)
+ return false;
+ return (kmod_validate_resources(ctx) != KMOD_RESOURCES_OK);
}
const struct udev_builtin udev_builtin_kmod = {
Index: udev-182/src/udev-builtin.c
===================================================================
--- udev-182.orig/src/udev-builtin.c
+++ udev-182/src/udev-builtin.c
@@ -25,6 +25,8 @@
#include "udev.h"
+static bool initialized;
+
static const struct udev_builtin *builtins[] = {
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
[UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware,
@@ -39,7 +41,10 @@ static const struct udev_builtin *builti
int udev_builtin_init(struct udev *udev)
{
unsigned int i;
- int err;
+ int err = 0;
+
+ if (initialized)
+ return 0;
for (i = 0; i < ARRAY_SIZE(builtins); i++) {
if (builtins[i]->init) {
@@ -48,6 +53,8 @@ int udev_builtin_init(struct udev *udev)
break;
}
}
+
+ initialized = true;
return err;
}
@@ -55,9 +62,14 @@ void udev_builtin_exit(struct udev *udev
{
unsigned int i;
+ if (!initialized)
+ return;
+
for (i = 0; i < ARRAY_SIZE(builtins); i++)
if (builtins[i]->exit)
builtins[i]->exit(udev);
+
+ initialized = false;
}
bool udev_builtin_validate(struct udev *udev)
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -1670,7 +1670,7 @@ int main(int argc, char *argv[])
worker_kill(udev, 0);
rules = udev_rules_unref(rules);
udev_builtin_exit(udev);
- reload = 0;
+ reload = false;
}
/* event has finished */
@@ -1692,6 +1692,7 @@ int main(int argc, char *argv[])
/* start new events */
if (!udev_list_node_is_empty(&event_list) && !udev_exit && !stop_exec_queue) {
+ udev_builtin_init(udev);
if (rules == NULL)
rules = udev_rules_new(udev, resolve_names);
if (rules != NULL)
++++++ 0029-drop-usb-hid-rule-for-046b_ff10.patch ++++++
Index: udev-182/rules/42-usb-hid-pm.rules
===================================================================
--- udev-182.orig/rules/42-usb-hid-pm.rules
+++ udev-182/rules/42-usb-hid-pm.rules
@@ -13,15 +13,6 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{pr
ACTION=="add", SUBSYSTEM=="usb", ATTR{product}=="QEMU USB Keyboard", ATTR{serial}=="42", TEST=="power/control", ATTR{power/control}="auto"
#
-# Enable autosuspend for KVM and iLO usb hid devices. These are
-# effectively self-powered (despite what some claim in their USB
-# profiles) and so it's safe to do so.
-#
-
-# AMI 046b:ff10
-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="046b", ATTR{idProduct}=="ff10", TEST=="power/control", ATTR{power/control}="auto"
-
-#
# Catch-all for Avocent HID devices. Keyed off interface in order to only
# trigger on HID class devices.
#
++++++ 0030-udevd-add-missing-to-getopt_long-e.patch ++++++
>From 5bbbe461fd4d133eac49f41210e2fd4846f577d8 Mon Sep 17 00:00:00 2001
From: Lukas Nykryn <lnykryn(a)redhat.com>
Date: Wed, 19 Dec 2012 13:12:26 +0100
Subject: [PATCH] udevd: add missing ':' to getopt_long 'e'
Parameter -e is set without additional argument in getopt
and this leads to segfault when calling 'systemd-udevd -e'.
Index: udev-182/src/udevd.c
===================================================================
--- udev-182.orig/src/udevd.c
+++ udev-182/src/udevd.c
@@ -1229,7 +1229,7 @@ int main(int argc, char *argv[])
for (;;) {
int option;
- option = getopt_long(argc, argv, "c:deDtN:hV", options, NULL);
+ option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL);
if (option == -1)
break;
++++++ 0031-create-default-links-for-primary-cd_dvd-drive.patch ++++++
Index: udev-182/src/cdrom_id/60-cdrom_id.rules
===================================================================
--- udev-182.orig/src/cdrom_id/60-cdrom_id.rules
+++ udev-182/src/cdrom_id/60-cdrom_id.rules
@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdr
# enable the receiving of media eject button events
IMPORT{program}="cdrom_id --lock-media $devnode"
-KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100"
+KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100"
+KERNEL=="sr0", ENV{ID_CDROM_CD_RW}=="1", SYMLINK+="cdrw", OPTIONS+="link_priority=-100"
+KERNEL=="sr0", ENV{ID_CDROM_DVD}=="1", SYMLINK+="dvd", OPTIONS+="link_priority=-100"
+KERNEL=="sr0", ENV{ID_CDROM_DVD_RW}=="1", SYMLINK+="dvdrw", OPTIONS+="link_priority=-100"
LABEL="cdrom_end"
++++++ 0032-usb_id-some-strange-devices-have-a-very-bogus-or-strage-serial.patch ++++++
Index: udev-182/src/udev-builtin-usb_id.c
===================================================================
--- udev-182.orig/src/udev-builtin-usb_id.c
+++ udev-182/src/udev-builtin-usb_id.c
@@ -23,6 +23,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
+#include <stdbool.h>
#include <unistd.h>
#include <string.h>
#include <ctype.h>
@@ -31,6 +32,26 @@
#include "udev.h"
+static bool valid_string(const char *str)
+{
+ const char *s;
+
+ if (!str)
+ return false;
+
+ for (s = str; *s != '\0'; s++) {
+ if ((*s >= 'a' && *s <= 'z') ||
+ (*s >= 'A' && *s <= 'Z') ||
+ (*s >= '0' && *s <= '9') ||
+ *s == '-' || *s == '_')
+ continue;
+ else
+ return false;
+ }
+
+ return true;
+}
+
static void set_usb_iftype(char *to, int if_class_num, size_t len)
{
char *type = "generic";
@@ -433,10 +454,10 @@ fallback:
}
if (serial_str[0] == '\0') {
- const char *usb_serial;
+ const char *usb_serial = NULL;
usb_serial = udev_device_get_sysattr_value(dev_usb, "serial");
- if (usb_serial) {
+ if (valid_string(usb_serial)) {
util_replace_whitespace(usb_serial, serial_str, sizeof(serial_str)-1);
util_replace_chars(serial_str, NULL);
}
++++++ 0033-rules-drivers-always-call-kmod-even-when-a-driver-is.patch ++++++
>From bf7f800f2b3e93ccd1229d4717166f3a4d3af72f Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay(a)vrfy.org>
Date: Sat, 20 Jul 2013 14:29:12 +0200
Subject: [PATCH] rules: drivers - always call kmod, even when a driver is
bound to the device
On Sat, Jul 20, 2013 at 12:56 PM, Rafael J. Wysocki <rjw(a)sisk.pl> wrote:
> After a recent change present in 3.11-rc1 there is a driver, called processor,
> that can be bound to the CPU devices whose sysfs directories are located under
> /sys/devices/system/cpu/. A side effect of this is that, after the driver has
> been bound to those devices, the kernel adds DRIVER=processor to ENV for CPU
> uevents and they don't match the default rule for autoloading modules matching
> MODALIAS:
>
> DRIVER!="?*", ENV{MODALIAS}=="?*", IMPORT{builtin}="kmod load $env{MODALIAS}"
>
> any more. However, there are some modules whose module aliases match specific
> CPU features through the modalias string and those modules should be loaded
> automatically if a compatible CPU is present. Yet, with the processor driver
> bound to the CPU devices the above rule is not sufficient for that, so we need
> a new default udev rule allowing those modules to be autoloaded even if the
> CPU devices have drivers.
Signed-off-by: Robert Milasan <rmilasan(a)suse.com>
---
rules/80-drivers.rules | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: udev-182/rules/80-drivers.rules
===================================================================
--- udev-182.orig/rules/80-drivers.rules
+++ udev-182/rules/80-drivers.rules
@@ -2,7 +2,7 @@
ACTION=="remove", GOTO="drivers_end"
-DRIVER!="?*", ENV{MODALIAS}=="?*", IMPORT{builtin}="kmod load $env{MODALIAS}"
+ENV{MODALIAS}=="?*", IMPORT{builtin}="kmod load $env{MODALIAS}"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", IMPORT{builtin}="kmod load tifm_sd"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", IMPORT{builtin}="kmod load tifm_ms"
SUBSYSTEM=="memstick", IMPORT{builtin}="kmod load ms_block mspro_block"
++++++ baselibs.conf ++++++
libudev0
libgudev-1_0-0
++++++ boot.udev ++++++
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: boot.udev
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: B
# Default-Stop:
# Short-Description: manage /dev and kernel device-events
# Description: udevd daemon to manage /dev and kernel device events
### END INIT INFO
. /etc/rc.status
PATH="/sbin:/bin"
DAEMON="/sbin/udevd"
udev_timeout=180
case "$1" in
start)
# create /dev/root symlink with dynamic rule
if [ -x /lib/udev/write_dev_root_rule ]; then
/lib/udev/write_dev_root_rule >/dev/null 2>&1 || true
fi
# start udevd
echo -n "Starting udevd: "
${DAEMON} --daemon
if [ $? -ne 0 ]; then
rc_status -v
rc_exit
fi
rc_status -v
# trigger events for all devices
echo -n "Loading drivers, configuring devices: "
/sbin/udevadm trigger --type=subsystems --action=add
/sbin/udevadm trigger --type=devices --action=add
# wait for events to finish
/sbin/udevadm settle --timeout=$udev_timeout
rc_status -v
;;
stop)
echo -n "Stopping udevd: "
killproc ${DAEMON}
rc_status -v
;;
restart)
echo -n "Restarting udevd: "
killproc ${DAEMON}
${DAEMON} --daemon
rc_status -v
;;
status)
echo -n "Checking for udevd: "
checkproc ${DAEMON}
rc_status -v
;;
reload|force-reload)
echo -n "Reloading udevd: "
killproc -G -HUP ${DAEMON}
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|restart|status|reload|force-reload}"
exit 1
;;
esac
rc_exit
++++++ move-udevd-and-udevadm-back-to-sbin.patch ++++++
diff -ur udev-182.orig/Makefile.am udev-182/Makefile.am
--- udev-182.orig/Makefile.am 2012-04-04 10:41:31.288555169 +0200
+++ udev-182/Makefile.am 2012-04-04 10:43:15.001036099 +0200
@@ -198,11 +198,9 @@
INSTALL_DATA_HOOKS += systemd-install-hook
endif
-bin_PROGRAMS = \
- udevadm
-
-pkglibexec_PROGRAMS = \
- udevd
+sbin_PROGRAMS = \
+ udevd \
+ udevadm
udev_common_sources = \
src/udev.h \
@@ -316,7 +314,7 @@
# ------------------------------------------------------------------------------
ata_id_SOURCES = src/ata_id/ata_id.c
ata_id_LDADD = libudev-private.la
-pkglibexec_PROGRAMS += ata_id
+pkglibexec_PROGRAMS = ata_id
# ------------------------------------------------------------------------------
cdrom_id_SOURCES = src/cdrom_id/cdrom_id.c
diff -ur udev-182.orig/Makefile.in udev-182/Makefile.in
--- udev-182.orig/Makefile.in 2012-04-04 10:41:31.288555169 +0200
+++ udev-182/Makefile.in 2012-04-04 10:45:42.945720696 +0200
@@ -53,8 +53,11 @@
@WITH_SYSTEMD_TRUE@ src/udev-settle.service
@WITH_SYSTEMD_TRUE@am__append_4 = systemd-install-hook
-bin_PROGRAMS = udevadm$(EXEEXT)
-pkglibexec_PROGRAMS = udevd$(EXEEXT) ata_id$(EXEEXT) cdrom_id$(EXEEXT) \
+
+sbin_PROGRAMS = udevadm$(EXEEXT) \
+ udevd$(EXEEXT)
+
+pkglibexec_PROGRAMS = ata_id$(EXEEXT) cdrom_id$(EXEEXT) \
collect$(EXEEXT) scsi_id$(EXEEXT) v4l_id$(EXEEXT) \
accelerometer$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
$(am__EXEEXT_3)
@@ -241,7 +244,7 @@
@ENABLE_KEYMAP_TRUE@am__EXEEXT_1 = keymap$(EXEEXT)
@ENABLE_MTD_PROBE_TRUE@am__EXEEXT_2 = mtd_probe$(EXEEXT)
@ENABLE_FLOPPY_TRUE@am__EXEEXT_3 = create_floppy_devices$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS) $(pkglibexec_PROGRAMS)
+PROGRAMS = $(sbin_PROGRAMS) $(pkglibexec_PROGRAMS)
am_accelerometer_OBJECTS = src/accelerometer/accelerometer.$(OBJEXT)
accelerometer_OBJECTS = $(am_accelerometer_OBJECTS)
accelerometer_DEPENDENCIES = libudev-private.la
@@ -1195,10 +1198,10 @@
$(AM_V_CCLD)$(LINK) $(libudev_private_la_OBJECTS) $(libudev_private_la_LIBADD) $(LIBS)
libudev.la: $(libudev_la_OBJECTS) $(libudev_la_DEPENDENCIES) $(EXTRA_libudev_la_DEPENDENCIES)
$(AM_V_CCLD)$(libudev_la_LINK) -rpath $(libdir) $(libudev_la_OBJECTS) $(libudev_la_LIBADD) $(LIBS)
-install-binPROGRAMS: $(bin_PROGRAMS)
+install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ @list='$(sbin_PROGRAMS)'; test -n "$(bindir)" || list=; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p || test -f $$p1; \
@@ -1220,9 +1223,9 @@
} \
; done
-uninstall-binPROGRAMS:
+uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
- @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ @list='$(sbin_PROGRAMS)'; test -n "$(bindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \
@@ -1230,8 +1233,8 @@
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(bindir)" && rm -f $$files
-clean-binPROGRAMS:
- @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+clean-sbinPROGRAMS:
+ @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \
echo " rm -f" $$list; \
rm -f $$list || exit $$?; \
test -n "$(EXEEXT)" || exit 0; \
++++++ udev-root-symlink.systemd ++++++
[Unit]
Description=create /dev/root symlink with dynamic rule
Before=udev.service
DefaultDependencies=no
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/udev/write_dev_root_rule
++++++ udev-rpmlintrc ++++++
addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*")
addFilter(".*dangling-symlink /lib/udev/devices/core.*")
addFilter(".*dangling-symlink /lib/udev/devices/fd.*")
addFilter(".init-script-without-%stop_on_removal-preun*.*")
addFilter(".*devel-file-in-non-devel-package.*udev.pc.*")
addFilter(".*libgudev-.*shlib-fixed-dependency.*")
++++++ write_dev_root_rule ++++++
#!/bin/sh
eval $(/sbin/udevadm info --export --export-prefix=ROOT_ --device-id-of-file=/)
[ "$ROOT_MAJOR" -gt 0 ] || return
mkdir -m 0755 -p /run/udev/rules.d >/dev/null 2>&1
ln -sf /run/udev /dev/.udev 2>/dev/null || :
echo "ACTION==\"add|change\", SUBSYSTEM==\"block\", \
ENV{MAJOR}==\"$ROOT_MAJOR\", ENV{MINOR}==\"$ROOT_MINOR\", \
SYMLINK+=\"root\"" > /run/udev/rules.d/10-root-symlink.rules
exit 0
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0