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@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@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@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@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@suse.com + +- Don't run mkinitrd while installing/upgrading from Yast + (bnc#782539). + +------------------------------------------------------------------- +Wed Sep 19 11:07:32 UTC 2012 - rmilasan@suse.com + +- create /dev/root symlink with dynamic rule for systemd (bnc#776882). + +------------------------------------------------------------------- +Thu Aug 9 09:52:28 UTC 2012 - rmilasan@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@suse.com + +- Re-work patch: 0024-libudev-queue.c-simplified-open_queue_file.patch + +------------------------------------------------------------------- +Wed Aug 8 17:36:11 UTC 2012 - rmilasan@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@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@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@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@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@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@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@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@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@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@suse.com + +- Re-enable creation of by-id scsi links for ATA devices. (bnc#769002) + +------------------------------------------------------------------- +Mon Jun 25 06:58:33 UTC 2012 - rmilasan@suse.com + +- Re-enable creation of by-path links in /dev/disk (bnc#764924). + +------------------------------------------------------------------- +Thu Jun 21 12:22:38 UTC 2012 - rmilasan@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@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@suse.com + +- Don't forget to run mkinitrd_setup first, then mkinitrd. + +------------------------------------------------------------------- +Fri Apr 20 07:46:05 UTC 2012 - rmilasan@suse.com + +- Added PreReq /sbin/mkinitrd. + We need it before we run %post or %postun. + +------------------------------------------------------------------- +Wed Apr 4 08:47:23 UTC 2012 - rmilasan@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@suse.com + +- there is no 40-ppc.rules anymore + +------------------------------------------------------------------- +Mon Mar 26 08:51:46 UTC 2012 - rmilasan@suse.com + +- Added post-install and post-uninstall update of initrd. + +------------------------------------------------------------------- +Mon Mar 26 07:58:53 UTC 2012 - rmilasan@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.bz2 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@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@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@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@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@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@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@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@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@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@gmail.com> Date: Wed, 21 Mar 2012 14:51:39 +0100 Subject: [PATCH] keymap: Add Samsung 90X3A
Signed-off-by: Martin Pitt <martin.pitt@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@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@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@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@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@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@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@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@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@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@gnome.org> Date: Fri, 3 Aug 2012 13:50:46 +0200 Subject: [PATCH] keyboard-force-release: Apply to all Fujitso AMILO models
From 7781e063e8e9d3e92e4e158e1588b885808cda24 Mon Sep 17 00:00:00 2001 From: Kay Sievers <kay@vrfy.org> Date: Wed, 8 Aug 2012 16:27:11 +0200 Subject: [PATCH] udev: re-initialize builtins in the daemon process, not in
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 ++++++ 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@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@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@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@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@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org