diffstat of debian/ for systemd_44-10 systemd_201-0tanglu6 TODO | 136 ++ changelog | 92 + clean | 3 control | 220 ++- debian-enable-units.service | 4 debian-fixup.service | 2 extra/create_static_nodes | 31 extra/dsl-modem.agent | 102 + extra/fbdev-blacklist.conf | 25 extra/firmware.agent | 37 extra/hotplug.functions | 61 extra/initramfs.bottom | 28 extra/initramfs.hook | 71 + extra/initramfs.top | 34 extra/links.conf | 15 extra/logger.agent | 32 extra/make-fbdev-blacklist | 26 extra/net.agent | 105 + extra/rules/50-udev-default.rules | 12 extra/rules/60-persistent-storage-tape.rules | 41 extra/rules/60-persistent-storage.rules | 167 ++ extra/rules/75-cd-aliases-generator.rules | 11 extra/rules/75-persistent-net-generator.rules | 119 + extra/rules/80-drivers.rules | 46 extra/rules/80-networking.rules | 4 extra/rules/91-permissions.rules | 126 ++ extra/udev.base-installer | 7 extra/udev.startup | 38 extra/udev.vim | 45 gir1.2-gudev-1.0.install | 1 libgudev-1.0-0.install | 1 libgudev-1.0-0.symbols | 54 libgudev-1.0-dev.install | 5 libpam-systemd.install | 3 libsystemd-journal0.symbols | 32 libsystemd-login0.symbols | 17 libudev-dev.install | 4 libudev1.install | 1 libudev1.symbols | 93 + patches/0001-Avoid-sending-sigterm-to-session-leader.patch | 25 patches/0002-Avoid-reloading-services-when-shutting-down.patch | 58 patches/0003-Avoid-reload-and-re-start-requests-during-early-boot.patch | 39 patches/0004-Don-t-run-systemd-udev-rules-if-systemd-is-not-activ.patch | 63 + patches/0005-Fix-mounting-of-remote-filesystems-like-NFS.patch | 78 + patches/0006-Setup-tmpfile-to-comply-with-existing-Debian-practic.patch | 53 patches/0007-Order-remote-fs.target-after-local-fs.target.patch | 26 patches/0008-Revert-service-drop-support-for-SysV-scripts-for-the.patch | 90 + patches/0009-Revert-service-ignore-dependencies-on-syslog-and-loc.patch | 221 +++ patches/0010-Add-back-support-for-Debian-specific-config-files.patch | 97 + patches/0011-libudev-Move-lrt-to-Libs.private.patch | 28 patches/0012-journal-fix-broken-tags-_SOURCE_REALTIME_TIMESTAMP-a.patch | 35 patches/debian-changes | 616 ---------- patches/series | 15 patches/v44..upstream-fixes_44-10 | 391 ------ python-systemd.install | 1 rules | 171 ++ systemd-gui.install | 3 systemd.dirs | 2 systemd.install | 80 - systemd.links | 7 systemd.maintscript | 5 systemd.postrm | 4 udev-gtk-udeb.install | 1 udev-udeb.install | 5 udev.init | 251 ++++ udev.install | 16 udev.links | 3 unit.blacklist | 46 68 files changed, 3109 insertions(+), 1172 deletions(-) --- systemd-44/debian/TODO 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/TODO 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,136 @@ +* /lib/udev/pci-db and usb-db helper were dropped from udev + + The pci_id and usb_id builtin's are + now replaced by the hwdb builtin + http://bpaste.net/show/81274/ + Check which packages are affected: + http://codesearch.debian.net/search?q=pci-db + http://codesearch.debian.net/search?q=\bpci_id\b + http://codesearch.debian.net/search?q=usb-db + http://codesearch.debian.net/search?q=\busb_id\b + This should only generate a warning when used in a rules file. + +* udev-acl moved into CK + Need to get a new CK release uploaded with that helper. + Breaks need to ensure that we upgrade in lock-step + If we make logind standalone, we can probably switch to that instead + as alternative + +* check if other helpers were dropped: + - edd_id : removed in 182, no hits according to codesearch + +--- udev-175 ++++ udev-198 +@@ -2,26 +2,12 @@ + ata_id + cdrom_id + collect +-create_static_nodes +-devices +-dsl-modem.agent +-edd_id + findkeyboards +-firmware.agent +-hotplug.functions ++hwdb.d + keyboard-force-release.sh + keymap + keymaps +-logger.agent + mtd_probe +-net.agent +-pci-db +-rule_generator.functions + rules.d + scsi_id +-udev-acl +-usb-db + v4l_id +-write_cd_rules +-write_dev_root_rule +-write_net_rules + +* lintian check: don't allow files in /etc/systemd/system, especially no real + files in .wants directories. + +* port remaining systemd patches DONE + +* import (interesting) udev patches + +* import upstart bits + +* check which udev rules/helpers we need + +* finish initramfs-tools integration + +* finish udebs + +* check which udev cruft can be dropped: udev-mtab, parts of udev.init + +* cleanup of maintainer scripts. + +* import udev maintainerscripts + +* rcS support has been dropped, evaluate fallout: console-setup, alsa-utils + DONE: reverted upstream commit for now + TODO: better alternative might be to convert it to a generator + +* compat code has been dropped, /etc/default/locale, patch back for now + DONE: added back for /etc/default/locale and /etc/timezone + +* get udevadm bash-completion removed from bash-completion, now shipped by + udev upstream + +* update debian/copyright, re-licensed to LGPL-2, use DEP-5 + +* check which systemd patches are still necessary: + debian/patches/0001-Avoid-sending-sigterm-to-session-leader.patch + +* update udev-gtk-udeb package description, fold it into udev-udeb or + rename it to libudev1-udeb + +* fix regression wrt to handling of SysV init script having a .sh ending + src/core/service.c: missing else clause + http://cgit.freedesktop.org/systemd/systemd/tree/src/core/service.c#n334 + DONE: + http://cgit.freedesktop.org/systemd/systemd/commit/?id=11dac832c75cbdd0 + debian/patches/0008-Revert-service-drop-support-for-SysV-scripts-for-the.patch + +* rc.local vs local vs rc-local.service: + drop rc. prefix stripping and symlink rc.local.service to rc-local.service + to use native service + DONE: + debian/patches/0011-Don-t-strip-rc.-from-sysv-init-scripts.patch + +* decide what to do about the new network interface naming scheme + +* /sbin/udevadm vs /bin/udevadm: + http://codesearch.debian.net/search?q=%2Fsbin%2Fudevadm + DONE: + moved udevadm to roobindir /bin, and added a symlink in /sbin + TODO: + update initramfs-tools, copy_exec + +* /sbin/udevd vs /lib/systemd/systemd-udevd + update initramfs-tools, copy_exec + +* rsyslog.service/syslog-ng.service: + ExecStartPre=/bin/systemctl stop systemd-kmsg-syslogd.service + now generates an error (exit code 5). Previously systemd just ignored + such non-existing services. + Update rsyslog and syslog-ng. If accepted for wheezy we don't need Breaks. + DONE: + Bug#702390 (rsyslog) Bug#702195 (syslog-ng) + Both unblocked + +* Create system users for the journal (and the gateway, once we enable that + feature) : systemd-journal and systemd-journal-gateway + Granting acls to /var/log/journal to give group "adm" read access could be + tricky + +* obsolete conffiles in udev + - /etc/init/* (in case we don't apply upstart NMU + - /etc/modprobe.d/fbdev-blacklist.conf + - /etc/udev/links.conf + +* logind: double suspend with acpid and gnome-power-manager --- systemd-44/debian/changelog 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/changelog 2013-06-03 09:44:20.000000000 +0000 @@ -1,3 +1,95 @@ +systemd (201-0tanglu6) aequorea; urgency=low + + * Revert last change + + -- Philip Muškovac Mon, 03 Jun 2013 11:43:27 +0200 + +systemd (201-0tanglu5) aequorea; urgency=low + + * Disable 0004-Don-t-run-systemd-udev-rules-if-systemd-is-not-activ.patch + + -- Philip Muškovac Sun, 02 Jun 2013 15:07:08 +0200 + +systemd (201-0tanglu4) aequorea; urgency=low + + * Make sure debian-fixup.service runs after systemd-remount-fs.service, + which has been renamed. + + -- Matthias Klumpp Thu, 23 May 2013 22:28:45 +0200 + +systemd (201-0tanglu3) aequorea; urgency=low + + * debian/extra/udev.startup: Mount /dev as devtmpfs instead of tmpfs + + -- Philip Muškovac Tue, 21 May 2013 01:47:17 +0200 + +systemd (201-0tanglu2) aequorea; urgency=low + + * Make systemd a required component + + -- Matthias Klumpp Sat, 27 Apr 2013 22:55:46 +0200 + +systemd (201-0tanglu1) aequorea; urgency=low + + * Build for Tanglu, adjusting dependencies + + -- Matthias Klumpp Tue, 23 Apr 2013 20:16:45 +0200 + +systemd (201-1~test1) UNRELEASED; urgency=low + + * New upstream release. Closes: #675175, #675177 + - In v183 the udev sources have been merged into the systemd source tree. + - Fixes build failures with glibc 2.17. The clock_* functions were moved + from librt into the core libc so the configure check had to be updated. + Closes: #701364 + * The graphical frontends have been moved into a separate source package + named systemd-ui. Drop the systemd-gui binary package along with the + corresponding Build-Depends and configure flags. + * Drop Suggests on the various python packages from systemd. The + systemd-analyze tool has been reimplemented in C. + * Add binary packages from the udev 175-7 source package. + * Wrap dependencies. + * Don't hard-code Pre-Depends in udev but use ${misc:Pre-Depends} instead. + * Set Maintainer to pkg-systemd-maintainers@lists.alioth.debian.org. Add + Tollef, Marco and myself as Uploaders. + * Drop old Conflicts and Breaks from udev which are no longer necessary. + * Make libgudev-1.0-dev depend on gir1.2-gudev-1.0 as per GObject + introspection mini-policy. Closes: #691313 + * The hwdb builtin has replaced pci-db and usb-db in udev. Drop the + Recommends on pciutils and usbutils accordingly. + * Update Build-Depends: + - Drop libudev-dev, no longer required. + - Add gtk-doc-tools and libglib2.0-doc for the API documentation in + libudev and libgudev. + - Add libgirepository1.0-dev and gobject-introspection for GObject + introspection support in libgudev. + - Add libgcrypt11-dev for encryption support in the journal. + - Add libblkid-dev for the blkid udev builtin. + * Drop our faketime hack. Upstream uses a custom xsl style sheet now to + generate the man pages which no longer embeds the build date. + * Rename libudev0 → libudev1 for the SONAME bump. + * Update symbols files. libudev now uses symbols versioning as the other + libsystemd libraries. + * Run gtkdocize on autoreconf. + * Enable python bindings for the journal API. Ship them in a new package + named python-systemd. + * Add Depends on libpam-runtime (>= 1.0.1-6) to libpam-systemd as we are + using pam-auth-update. + * Tighten Depends on libsystemd-id128-dev for libsystemd-journal-dev as per + libsystemd-journal.pc. + * Remove bash-completion scripts on upgrades. They were shipped as conffiles + in /etc/bash_completion.d/. Nowadays they are installed in + /usr/share/bash-completion. + * Rename conffiles for logind and journald. + * Use gir dh addon to ensure ${gir:Depends} is properly set. + * Stop shipping static libraries for libudev and libgudev. + * Fix firmware loading in initramfs. + * Drop write_dev_root_rule and the alternate /dev path support from udev + SysV init script. + * Pull a few fixes from upstream Git. + + -- Michael Biebl Sun, 24 Mar 2013 00:12:56 +0100 + systemd (44-10) unstable; urgency=low * Team upload. --- systemd-44/debian/clean 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/clean 2013-04-13 16:44:50.000000000 +0000 @@ -0,0 +1,3 @@ +man/systemd.index.xml +man/systemd.directives.xml +xml_helper.pyc --- systemd-44/debian/control 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/control 2013-04-27 20:55:40.000000000 +0000 @@ -1,49 +1,58 @@ Source: systemd Section: admin -Priority: extra -Maintainer: Tollef Fog Heen +Priority: required +Maintainer: Debian systemd Maintainers +Uploaders: Tollef Fog Heen , Marco d'Itri , Michael Biebl Standards-Version: 3.9.2 Vcs-Git: git://anonscm.debian.org/pkg-systemd/systemd.git -b debian Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-systemd/systemd.git;a=summary +X-Python-Version: >= 2.7 Homepage: http://www.freedesktop.org/wiki/Software/systemd Build-Depends: debhelper (>= 9), libcap-dev, pkg-config, - libudev-dev (>= 172), - libdbus-1-dev (>= 1.3.2~), - libdbus-glib-1-dev, - libgtk2.0-dev, - valac (>= 0.12), + libdbus-1-dev (>= 1.3.2), + libglib2.0-dev (>= 2.22.0), xsltproc, docbook-xsl, docbook-xml, + gtk-doc-tools, m4, libpam0g-dev, - libnotify-dev (>= 0.7.0), libaudit-dev, dh-autoreconf, automake (>= 1.11), autoconf (>= 2.63), intltool, - libcryptsetup-dev (>= 2:1.2.0), + libcryptsetup-dev (>= 2:1.4.2), libwrap0-dev, - libselinux1-dev, + libselinux1-dev (>= 2.1.9), libacl1-dev, + libattr1-dev, liblzma-dev, - libgee-dev, gperf, + libgcrypt11-dev, libkmod-dev (>= 5), - faketime + libblkid-dev (>= 2.20), + libgirepository1.0-dev (>= 1.31.1), + gobject-introspection (>= 1.31.1), + python-dev, + libglib2.0-doc Package: systemd Architecture: linux-any Section: admin -Priority: extra +Priority: required Recommends: libpam-systemd -Suggests: systemd-gui, python, python-dbus, python-cairo +Suggests: systemd-gui Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends}, util-linux (>= 2.19.1-2), initscripts (>= 2.88dsf-17), udev -Breaks: lvm2 (<< 2.02.84-1), lsb-base (<< 4.1+Debian4) +Depends: ${shlibs:Depends}, + ${misc:Depends}, + util-linux (>= 2.19.1-2), + initscripts (>= 2.88dsf-17), + udev +Breaks: lvm2 (<< 2.02.84-1), + lsb-base (<< 4.1+Debian4) Conflicts: klogd Description: system and service manager systemd is a replacement for sysvinit. It is dependency-based and @@ -57,10 +66,14 @@ Package: systemd-sysv Architecture: linux-any Section: admin -Priority: extra -Conflicts: sysvinit, upstart, runit-run +Priority: required +Conflicts: sysvinit, + upstart, + runit-run Replaces: sysvinit -Depends: systemd (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends}, + systemd (= ${binary:Version}) Description: system and service manager - SysV links systemd is a replacement for sysvinit. It is dependency-based and able to read the LSB init script headers in addition to parsing rcN.d @@ -77,9 +90,12 @@ Architecture: linux-any Multi-Arch: same Section: admin -Priority: extra +Priority: required Pre-Depends: ${misc:Pre-Depends} -Depends: systemd (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends}, + systemd (= ${binary:Version}), + libpam-runtime (>= 1.0.1-6) Description: system and service manager - PAM module systemd is a replacement for sysvinit. It is dependency-based and able to read the LSB init script headers in addition to parsing rcN.d @@ -92,28 +108,13 @@ This package contains the PAM module which registers user sessions in the systemd control group hierarchy -Package: systemd-gui -Architecture: linux-any -Section: admin -Priority: extra -Depends: systemd (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} -Description: system and service manager - GUI - systemd is a replacement for sysvinit. It is dependency-based and - able to read the LSB init script headers in addition to parsing rcN.d - links as hints. - . - It also provides process supervision using cgroups and the ability to - not only depend on other init script being started, but also - availability of a given mount point or dbus service. - . - This package contains the graphical frontend for systemd. - Package: libsystemd-login0 Architecture: linux-any Multi-Arch: same Section: libs Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends} Description: systemd login utility library The libsystemd-login library provides an interface for the systemd-logind service which is used to track user sessions and seats. @@ -121,7 +122,9 @@ Package: libsystemd-login-dev Architecture: linux-any Section: libdevel -Depends: libsystemd-login0 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libsystemd-login0 (= ${binary:Version}) Description: systemd login utility library - development files The libsystemd-login library provides an interface for the systemd-logind service which is used to track user sessions and seats. @@ -133,7 +136,8 @@ Multi-Arch: same Section: libs Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends} Description: systemd utility library The sd-daemon library provides a reference implementation of various APIs for new-style daemons, as implemented by the systemd init system. @@ -141,7 +145,9 @@ Package: libsystemd-daemon-dev Architecture: linux-any Section: libdevel -Depends: libsystemd-daemon0 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libsystemd-daemon0 (= ${binary:Version}) Description: systemd utility library - development files The sd-daemon library provides a reference implementation of various APIs for new-style daemons, as implemented by the systemd init system. @@ -153,7 +159,8 @@ Multi-Arch: same Section: libs Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends} Description: systemd journal utility library The libsystemd-journal library provides an interface for the systemd journal service. @@ -161,7 +168,10 @@ Package: libsystemd-journal-dev Architecture: linux-any Section: libdevel -Depends: libsystemd-journal0 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, libsystemd-id128-dev +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libsystemd-journal0 (= ${binary:Version}), + libsystemd-id128-dev (= ${binary:Version}) Description: systemd journal utility library - development files The libsystemd-journal library provides an interface for the systemd journal service. @@ -173,7 +183,8 @@ Multi-Arch: same Section: libs Pre-Depends: ${misc:Pre-Depends} -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends} Description: systemd 128 bit ID utility library The libsystemd-id128 library provides utility functions for generating 128 bit IDs. @@ -181,10 +192,129 @@ Package: libsystemd-id128-dev Architecture: linux-any Section: libdevel -Depends: libsystemd-id128-0 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libsystemd-id128-0 (= ${binary:Version}) Description: systemd 128 bit ID utility library - development files The libsystemd-id128 library provides utility functions for generating 128 bit IDs. . This package contains the development files +Package: udev +Section: admin +Priority: important +Architecture: linux-any +Multi-Arch: foreign +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libudev1 (= ${binary:Version}), + lsb-base (>= 3.0-6), + util-linux (>= 2.16), + s390-tools (>> 1.6.2) [s390], + procps +Replaces: libudev0 +Description: /dev/ and hotplug management daemon + udev is a daemon which dynamically creates and removes device nodes from + /dev/, handles hotplug events and loads drivers at boot time. + +Package: libudev1 +Section: libs +Priority: important +Architecture: linux-any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: libudev shared library + This library provides access to udev device information. + +Package: libudev-dev +Section: libdevel +Priority: optional +Architecture: linux-any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libudev1 (= ${binary:Version}) +Description: libudev development files + This package contains the files needed for developing applications that + use libudev. + +Package: udev-udeb +XC-Package-Type: udeb +Section: debian-installer +Architecture: linux-any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + util-linux-udeb +Description: /dev/ and hotplug management daemon + udev is a daemon which dynamically creates and removes device nodes from + /dev/, handles hotplug events and loads drivers at boot time. + . + This is a minimal version, only for use in the installation system. + +Package: udev-gtk-udeb +XC-Package-Type: udeb +Section: debian-installer +Priority: optional +Architecture: linux-any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + udev-udeb +Description: libudev shared library + This library provides access to udev device information. + The package additionally contains input_id and the related rules. + . + This is a minimal version, only for use in the installation system. + +Package: libgudev-1.0-0 +Section: libs +Priority: optional +Architecture: linux-any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: GObject-based wrapper library for libudev + This library makes it much simpler to use libudev from programs already using + GObject. It also makes it possible to easily use libudev from other + programming languages, such as Javascript, because of GObject introspection + support. + +Package: gir1.2-gudev-1.0 +Section: introspection +Priority: optional +Architecture: linux-any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + ${gir:Depends} +Conflicts: gir1.0-gudev-1.0 +Replaces: gir1.0-gudev-1.0 +Description: libgudev-1.0 introspection data + This package contains the GObject-introspection data of libgudev-1.0 in + binary typelib format. + +Package: libgudev-1.0-dev +Section: libdevel +Priority: optional +Architecture: linux-any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + libgudev-1.0-0 (= ${binary:Version}), + gir1.2-gudev-1.0 (= ${binary:Version}), + libglib2.0-dev, + pkg-config +Description: libgudev-1.0 development files + This package contains the files needed for developing applications that + use libgudev-1.0. + +Package: python-systemd +Section: python +Priority: required +Architecture: linux-any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + ${python:Depends} +Description: python bindings for the systemd journal + This package contains Python bindings for the journal submission API. --- systemd-44/debian/debian-enable-units.service 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/debian-enable-units.service 2013-04-08 21:53:45.000000000 +0000 @@ -2,8 +2,8 @@ Description=Automatically Enable Systemd Units ConditionPathExists=/var/lib/systemd/run-debian-enable-units DefaultDependencies=no -Wants=local-fs.target -After=local-fs.target +Wants=sysinit.target +After=sysinit.target [Service] ExecStart=/lib/systemd/debian-enable-units --- systemd-44/debian/debian-fixup.service 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/debian-fixup.service 2013-05-23 20:26:58.000000000 +0000 @@ -1,7 +1,7 @@ [Unit] Description=Various fixups to make systemd work better on Debian Before=var-run.mount var-lock.mount sysinit.target -After=remount-rootfs.service +After=systemd-remount-fs.service DefaultDependencies=no ConditionPathIsSymbolicLink=|!/etc/mtab ConditionPathIsSymbolicLink=|!/var/run --- systemd-44/debian/extra/create_static_nodes 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/create_static_nodes 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,31 @@ +#!/bin/sh -e + +make_extra_nodes() { + [ -e /etc/udev/links.conf ] || return 0 + + grep '^[^#]' /etc/udev/links.conf | \ + while read type name arg1; do + [ "$type" -a "$name" -a ! -e "/$1/$name" -a ! -L "/$1/$name" ] || continue + case "$type" in + L) ln -s $arg1 /$1/$name ;; + D) mkdir -p /$1/$name ;; + M) mknod -m 600 /$1/$name $arg1 ;; + *) echo "links.conf: unparseable line ($type $name $arg1)" >&2 ;; + esac + + if [ -x /sbin/restorecon ]; then + /sbin/restorecon /dev/$name + fi + done +} + +if [ "$1" ]; then + devdir="$1" +else + devdir='/dev' +fi + +make_extra_nodes $devdir + +exit 0 + --- systemd-44/debian/extra/dsl-modem.agent 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/dsl-modem.agent 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,102 @@ +#!/bin/sh -e +# +# Copyright 2008 Marco d'Itri +# +# This script automatically starts networking when a DSL modem is connected +# and its ATM interface is ready. +# +# +# For PPPoE you can set PROTOCOL=2684bridged and then add something like +# this to /etc/network/interfaces: +# +# allow-hotplug nas0 +# iface nas0 inet manual +# pre-up ip link set up $IFACE +# up pppd persist call dsl-provider +# +# +# Support for CLIP (Classical IP over ATM, RFC 1577) may be incomplete. +# + +# defaults +[ "$IP_INTERFACE" ] || IP_INTERFACE='nas0' +[ "$VP" ] || VP='8' +[ "$VC" ] || VC='35' + +if [ -e /etc/default/dsl-modem.agent ]; then + . /etc/default/dsl-modem.agent +fi + +# just exit unless a protocol is configured +[ "$PROTOCOL" ] || exit 0 + +############################################################################## +wait_and_run_pppd() { + # this guarantees that everything pppd needs to work is ready + wait_for_file /dev/log + + exec pppd persist call ${PPP_PEER:-dsl-provider} +} + +wait_and_run_br2684ctl() { + wait_for_file /dev/log + + exec br2684ctl $BR2684_ARGS -b -c ${IP_INTERFACE#nas} \ + -a ${ATM_INTERFACE}.${VP}.${VC} +} + +wait_and_run_atmarp() { + wait_for_file /var/run/atmarpd.table + + # create the IP interface + atmarp -c ${IP_INTERFACE:-atm0} + # setup the VC +# atmarp -s 192.0.2.254 ${ATM_INTERFACE}.${VP}.${VC} + exec ifup ${IP_INTERFACE:-atm0} # XXX +} + +############################################################################## +ATM_DRIVER=${NAME%%[0-9]*} +ATM_INTERFACE=${NAME##$ATM_DRIVER} + +# is this a DSL modem? +case "$ATM_DRIVER" in +cxacru|speedtch|ueagle-atm|xusbatm|UNICORN) ;; +*) exit 0 ;; +esac + +cd /lib/udev/ +. ./hotplug.functions + +############################################################################## +case "$ACTION" in +add) + case "$PROTOCOL" in + pppoa) wait_and_run_pppd & ;; + 2684bridged) wait_and_run_br2684ctl & ;; + clip) wait_and_run_atmarp & ;; + esac + ;; + +remove) + case "$PROTOCOL" in + pppoa) + # pppd will terminate automatically + ;; + 2684bridged) + PIDFILE="/var/run/br2684ctl-$IP_INTERFACE.pid" + if [ -e $PIDFILE ]; then + kill $(cat $PIDFILE) + rm -f $PIDFILE + fi + ;; + clip) + ifdown ${IP_INTERFACE:-atm0} # XXX +# atmarp -d 192.0.2.254 + ;; + esac + ;; +esac + +exit 0 + --- systemd-44/debian/extra/fbdev-blacklist.conf 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/fbdev-blacklist.conf 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,25 @@ +# This file blacklists the framebuffer drivers. + +blacklist arkfb +blacklist aty128fb +blacklist atyfb +blacklist radeonfb +blacklist cirrusfb +blacklist cyber2000fb +blacklist gx1fb +blacklist gxfb +blacklist lxfb +blacklist kyrofb +blacklist matroxfb_base +blacklist mb862xxfb +blacklist neofb +blacklist nvidiafb +blacklist pm2fb +blacklist pm3fb +blacklist s3fb +blacklist savagefb +blacklist sisfb +blacklist tdfxfb +blacklist tridentfb +blacklist viafb +blacklist vt8623fb --- systemd-44/debian/extra/firmware.agent 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/firmware.agent 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,37 @@ +#!/bin/sh -e +# +# firmware loader agent +# + +cd /lib/udev/ +. ./hotplug.functions + +if [ ! -e /sys/$DEVPATH/loading ]; then + mesg "/sys/$DEVPATH/ does not exist" + exit 1 +fi + +FIRMWARE_DIRS="/lib/firmware/$(uname -r) /lib/firmware /usr/local/lib/firmware /usr/lib/hotplug/firmware" + +for DIR in $FIRMWARE_DIRS; do + [ -e "$DIR/$FIRMWARE" ] || continue + echo 1 > /sys/$DEVPATH/loading + cat "$DIR/$FIRMWARE" > /sys/$DEVPATH/data + echo 0 > /sys/$DEVPATH/loading + exit 0 +done + +# the firmware was not found +echo -1 > /sys/$DEVPATH/loading + +RUNDIR=$(udevadm info --run) + +if [ -d "$RUNDIR" ]; then + mkdir -p "$RUNDIR/firmware-missing/" + file=$(echo "$FIRMWARE" | sed -e 's#/#\\x2f#g') + ln -s -f "$DEVPATH" "$RUNDIR/firmware-missing/$file" +fi + +debug_mesg "Cannot find the $FIRMWARE firmware" +exit 1 + --- systemd-44/debian/extra/hotplug.functions 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/hotplug.functions 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,61 @@ +# Setup and shell utility functions for use in hotplug agents. +# vim: syntax=sh +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation version 2 of the License. + +if [ "$UDEV_LOG" ] && [ "$UDEV_LOG" -ge 7 ]; then + DEBUG=yes +fi + +PATH='/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin' + +[ -e /etc/default/hotplug ] && . /etc/default/hotplug + + +if [ -x /usr/bin/logger ]; then + LOGGER=/usr/bin/logger +elif [ -x /bin/logger ]; then + LOGGER=/bin/logger +else + unset LOGGER +fi + +# for diagnostics +if [ -t 1 -a -z "$LOGGER" ] || [ ! -e '/dev/log' ]; then + mesg() { + echo "$@" >&2 + } +elif [ -t 1 ]; then + mesg() { + echo "$@" + $LOGGER -t "${0##*/}[$$]" "$@" + } +else + mesg() { + $LOGGER -t "${0##*/}[$$]" "$@" + } +fi + +debug_mesg() { + [ -z "$DEBUG" -o "$DEBUG" = no ] && return 0 + mesg "$@" +} + +wait_for_file() { + local file=$1 + local timeout=$2 + [ "$timeout" ] || timeout=120 + + local count=$timeout + while [ $count != 0 ]; do + [ -e "$file" ] && return 0 + sleep 1 + count=$(($count - 1)) + done + + mesg "$file did not appear before the timeout!" + exit 1 +} + --- systemd-44/debian/extra/initramfs.bottom 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/initramfs.bottom 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,28 @@ +#!/bin/sh -e + +PREREQS="" + +prereqs() { echo "$PREREQS"; } + +case "$1" in + prereqs) + prereqs + exit 0 + ;; +esac + +# Stop udevd, we'll miss a few events while we run init, but we catch up +udevadm control --exit + +udev_root="/dev" +if [ -e /etc/udev/udev.conf ]; then + . /etc/udev/udev.conf +fi + +# move the /dev tmpfs to the rootfs +mount -n -o move /dev ${rootmnt}${udev_root} + +# create a temporary symlink to the final /dev for other initramfs scripts +nuke /dev +ln -s ${rootmnt}${udev_root} /dev + --- systemd-44/debian/extra/initramfs.hook 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/initramfs.hook 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,71 @@ +#!/bin/sh -e + +PREREQS="" + +prereqs() { echo "$PREREQS"; } + +case "$1" in + prereqs) + prereqs + exit 0 + ;; +esac + +root_over_the_network() { + if egrep -qs '^/dev/(nbd|nd[a-z]|etherd/e)[^[:space:]]+[[:space:]]+/[[:space:]]' /etc/fstab; then + return 0 + elif egrep -qs '^[^[:space:]#]+[[:space:]]+/[[:space:]]+nfs[234]?[[:space:]]' /etc/fstab; then + return 0 + fi + return 1 # false +} + +. /usr/share/initramfs-tools/hook-functions + +mkdir -p $DESTDIR/lib/systemd/ +copy_exec /lib/systemd/systemd-udevd +copy_exec /bin/udevadm + +mkdir -p $DESTDIR/etc/udev +cp -p /etc/udev/udev.conf $DESTDIR/etc/udev/ + +mkdir -p $DESTDIR/lib/udev/rules.d/ +for rules in 50-udev-default.rules 50-firmware.rules 80-drivers.rules \ + 60-persistent-storage.rules \ + 64-md-raid.rules 60-persistent-storage-lvm.rules \ + 55-dm.rules 60-persistent-storage-dm.rules; do + if [ -e /etc/udev/rules.d/$rules ]; then + cp -p /etc/udev/rules.d/$rules $DESTDIR/lib/udev/rules.d/ + elif [ -e /lib/udev/rules.d/$rules ]; then + cp -p /lib/udev/rules.d/$rules $DESTDIR/lib/udev/rules.d/ + fi +done + +# try to autodetect the value of this configuration option +if [ -z "$NEED_PERSISTENT_NET" ] && root_over_the_network; then + NEED_PERSISTENT_NET='yes' +fi + +# Copy the rules for persistent network interface names for the benefit of +# systems which need to boot over the network. If this is enabled then the +# initramfs must be rebuilt every time a new network interface is added. +# See #414287 for details. +case "$NEED_PERSISTENT_NET" in +YES|yes|Yes|Y|y) + if [ -e /etc/udev/rules.d/70-persistent-net.rules ]; then + cp -p /etc/udev/rules.d/70-persistent-net.rules $DESTDIR/lib/udev/rules.d/ + fi + ;; +esac + +#cp /lib/udev/hotplug.functions $DESTDIR/lib/udev/ +#for program in firmware.agent ata_id edd_id scsi_id; do +for program in ata_id scsi_id; do + copy_exec /lib/udev/$program +done +copy_exec /sbin/blkid /sbin + +if [ -x /lib/udev/vio_type ]; then + copy_exec /lib/udev/vio_type +fi + --- systemd-44/debian/extra/initramfs.top 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/initramfs.top 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,34 @@ +#!/bin/sh -e + +PREREQS="" + +prereqs() { echo "$PREREQS"; } + +case "$1" in + prereqs) + prereqs + exit 0 + ;; +esac + +echo > /sys/kernel/uevent_helper + +UDEV_ROOT=/dev \ +/lib/systemd/systemd-udevd --daemon --resolve-names=never + +udevadm trigger --action=add +udevadm settle || true + +if [ -d /sys/bus/scsi ]; then + modprobe -q scsi_wait_scan && modprobe -r scsi_wait_scan || true + udevadm settle || true +fi + +# If the rootdelay parameter has been set, we wait a bit for devices +# like usb/firewire disks to settle. +if [ "$ROOTDELAY" ]; then + sleep $ROOTDELAY +fi + +# Leave udev running to process events that come in out-of-band (like USB +# connections) --- systemd-44/debian/extra/links.conf 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/links.conf 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,15 @@ +# This file does not exist. Please do not ask the Debian maintainer about it. +# If you need manually created devices, create them in /lib/udev/devices/ . + +D pts +D shm + +M null c 1 3 +M console c 5 1 + +# Hic sunt leones. +M ppp c 108 0 +M loop0 b 7 0 +D net +M net/tun c 10 200 + --- systemd-44/debian/extra/logger.agent 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/logger.agent 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,32 @@ +#!/bin/sh -e +# +# log the event to a file +# + +cd /lib/udev/ +. ./hotplug.functions + +# provide env-like output when the real thing is not available +if [ ! -x /usr/bin/env ]; then + env() { + # bash prepends "declare -x " at the beginning of each line + export -p | sed -e 's/^\(declare -x\|export\) //' + } +fi + +# writes a copy of the current hotplug event to stdout +log_to_stdout() +{ + { + echo "HOTPLUG_TIME='$(date)'" + env + echo '' + } | egrep -v "^'$|^(_|PATH|PWD|PPID|SHLVL|HOME|IFS|OPTIND|PS[1234])=" +} + +[ "$EVENTS_LOG" ] || EVENTS_LOG='/dev/hotplug.log' + +log_to_stdout >> $EVENTS_LOG + +exit 0 + --- systemd-44/debian/extra/make-fbdev-blacklist 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/make-fbdev-blacklist 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,26 @@ +#!/bin/sh +# This script should be run before building the package every time a new +# kernel is released. + +set -e + +BL='fbdev-blacklist.conf' + +if [ -e extra/$BL ]; then cd extra; fi + +{ +printf "# This file blacklists the framebuffer drivers.\n\n" + +find /lib/modules/$(uname -r)/kernel/drivers/video -type f | sort | \ +while read file; do + /sbin/modinfo $file | grep -q '^alias: *pci:' \ + && echo blacklist $(basename $file .ko) || true +done +} > $BL.tmp + +if diff --unified=0 $BL $BL.tmp; then + rm $BL.tmp +else + printf "\n\n\n$BL.tmp has changes!\n\n\n\n" +fi + --- systemd-44/debian/extra/net.agent 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/net.agent 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,105 @@ +#!/bin/sh -e +# +# run /sbin/{ifup,ifdown} with the --allow=hotplug option. +# + +. /lib/udev/hotplug.functions + +if [ -z "$INTERFACE" ]; then + mesg "Bad net.agent invocation: \$INTERFACE is not set" + exit 1 +fi + +check_program() { + [ -x $1 ] && return 0 + + mesg "ERROR: $1 not found. You need to install the ifupdown package." + mesg "net.agent $ACTION event for $INTERFACE not handled." + exit 1 +} + +wait_for_interface() { + local interface=$1 + + while :; do + local state="$(cat /sys/class/net/$interface/operstate 2>/dev/null || true)" + if [ "$state" != down ]; then + return 0 + fi + sleep 1 + done +} + +net_ifup() { + check_program /sbin/ifup + + if grep -q '^auto[[:space:]].*\<'"$INTERFACE"'\>' \ + /etc/network/interfaces; then + # this $INTERFACE is marked as "auto" + IFUPARG='\('$INTERFACE'\|-a\|--all\)' + else + IFUPARG=$INTERFACE + fi + + if ps -C ifup ho args | grep -q "$IFUPARG"; then + debug_mesg "Already ifup-ing interface $INTERFACE" + exit 0 + fi + + wait_for_interface lo + if [ -e /sys/fs/cgroup/systemd ]; then + exec systemctl start ifup@${INTERFACE}.service + else + exec ifup --allow=hotplug $INTERFACE + fi +} + +net_ifdown() { + check_program /sbin/ifdown + + if ps -C ifdown ho args | grep -q $INTERFACE; then + debug_mesg "Already ifdown-ing interface $INTERFACE" + exit 0 + fi + + exec ifdown --allow=hotplug $INTERFACE +} + +do_everything() { + +case "$ACTION" in + add) + # these interfaces generate hotplug events *after* they are brought up + case $INTERFACE in + ppp*|ippp*|isdn*|plip*|lo|irda*|ipsec*) + exit 0 ;; + esac + + net_ifup + ;; + + remove) + # the pppd persist option may have been used, so it should not be killed + case $INTERFACE in + ppp*) + exit 0 ;; + esac + + net_ifdown + ;; + + *) + debug_mesg "NET $ACTION event not supported" + exit 1 + ;; +esac + +} + +# When udev_log="debug" stdout and stderr are pipes connected to udevd. +# They need to be closed or udevd will wait for this process which will +# deadlock with udevsettle until the timeout. +do_everything > /dev/null 2> /dev/null & + +exit 0 + --- systemd-44/debian/extra/rules/50-udev-default.rules 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/rules/50-udev-default.rules 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,12 @@ +# virtio serial / console ports +KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}" + +SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id" + +# RTC on some architectures +SUBSYSTEM=="rtc", DRIVERS=="rtc_cmos", SYMLINK+="rtc" + +# /dev/sndstat +SUBSYSTEM=="module", KERNEL=="snd", ACTION=="add", \ + RUN+="/bin/ln -sf /proc/asound/oss/sndstat $root/sndstat" + --- systemd-44/debian/extra/rules/60-persistent-storage-tape.rules 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/rules/60-persistent-storage-tape.rules 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,41 @@ +# This file contains the rules needed to create persistent device names. + +# we are only interested in add and change actions for block devices +ACTION=="remove", GOTO="persistent_storage_tape_end" + +# "Medium Changers" +SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="8", \ + IMPORT{program}="scsi_id --export --sg-version=3 --whitelisted --device=$tempnode" + +KERNEL=="sg[0-9]*", ATTRS{type}=="8", ENV{ID_SERIAL}=="?*", \ + SYMLINK+="tape/by-id/scsi-$env{ID_SERIAL}" + +SUBSYSTEM!="scsi_tape", GOTO="persistent_storage_tape_end" + +KERNEL=="st*[0-9]|nst*[0-9]", ATTRS{ieee1394_id}=="?*", \ + ENV{ID_BUS}="ieee1394", ENV{ID_SERIAL}="$attr{ieee1394_id}" +KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", \ + SUBSYSTEMS=="usb", \ + IMPORT{builtin}="usb_id" + +KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", \ + SUBSYSTEMS=="scsi", KERNELS=="[0-9]*:*[0-9]", \ + ENV{.BSG_DEV}="$root/bsg/$id" +KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", \ + WAIT_FOR="$env{.BSG_DEV}", \ + ENV{ID_BUS}="scsi", \ + IMPORT{program}="scsi_id --export --device=$env{.BSG_DEV}" + +KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}=="?*", \ + SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}" + +KERNEL=="st*[0-9]|nst*[0-9]", \ + IMPORT{builtin}="path_id" +KERNEL=="st*[0-9]", ENV{ID_PATH}=="?*", \ + SYMLINK+="tape/by-path/$env{ID_PATH}" +KERNEL=="nst*[0-9]", ENV{ID_PATH}=="?*", \ + SYMLINK+="tape/by-path/$env{ID_PATH}-nst" + +# end of processing +LABEL="persistent_storage_tape_end" + --- systemd-44/debian/extra/rules/60-persistent-storage.rules 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/rules/60-persistent-storage.rules 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,167 @@ +# This file contains the rules needed to create persistent device names. + +# forward scsi device events to the corresponding block device +ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", \ + TEST=="block", ATTR{block/*/uevent}="change" + +ACTION=="remove", GOTO="persistent_storage_end" + +# enable in-kernel media-presence polling +ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", \ + ATTR{parameters/events_dfl_poll_msecs}=="0", \ + ATTR{parameters/events_dfl_poll_msecs}="2000" + +SUBSYSTEM!="block", GOTO="persistent_storage_end" + +# and we can safely ignore these kinds of devices +KERNEL=="fd[0-9]*|mtd[0-9]*|mtdblock[0-9]*|nbd[0-9]*|gnbd[0-9]*|dm-[0-9]*|md[0-9]*|btibm[0-9]*", \ + GOTO="persistent_storage_end" + +# skip removable ide devices, because open(2) on them causes an events loop +KERNEL=="hd*[!0-9]", ATTR{removable}=="1", \ + SUBSYSTEMS=="ide", ATTRS{media}=="disk|floppy", \ + GOTO="persistent_storage_end" +KERNEL=="hd*[0-9]", ATTRS{removable}=="1", \ + GOTO="persistent_storage_end" + +# ignore partitions that span the entire disk +TEST=="whole_disk", GOTO="persistent_storage_end" + +# partitions do not have hardware identificators +ENV{DEVTYPE}!="disk", GOTO="persistent_storage_not_a_disk" + +# look for different kinds of unique identificators +KERNEL=="hd*", \ + IMPORT{program}="ata_id --export $tempnode" + +KERNEL=="mmcblk[0-9]", ATTRS{name}=="?*", ATTRS{serial}=="?*", \ + ENV{ID_BUS}="memstick", ENV{ID_SERIAL}="$attr{name}_$attr{serial}" +KERNEL=="mspblk[0-9]", ATTRS{name}=="?*", ATTRS{serial}=="?*", \ + ENV{ID_BUS}="mmc", ENV{ID_SERIAL}="$attr{name}_$attr{serial}" + +KERNEL=="sd*|sr*", ATTRS{ieee1394_id}=="?*", \ + ENV{ID_BUS}="ieee1394", ENV{ID_SERIAL}="$attr{ieee1394_id}" + +KERNEL=="vd*", ATTRS{serial}=="?*", \ + ENV{ID_BUS}="virtio", ENV{ID_SERIAL}="$attr{serial}" + +# ATA devices with their own "ata" kernel subsystem +KERNEL=="sd*|sr*", ENV{ID_SERIAL}!="?*", \ + SUBSYSTEMS=="ata", \ + IMPORT{program}="ata_id --export $tempnode" +# ATA devices using the "scsi" subsystem +KERNEL=="sd*|sr*", ENV{ID_SERIAL}!="?*", \ + SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", \ + IMPORT{program}="ata_id --export $tempnode" +# ATA/ATAPI devices (SPC-3 or later) using the "scsi" subsystem +KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", \ + SUBSYSTEMS=="scsi", ATTRS{type}=="5", ATTRS{scsi_level}=="[6-9]*", \ + IMPORT{program}="ata_id --export $tempnode" + +# Run ata_id on non-removable USB Mass Storage (SATA/PATA disks in enclosures) +KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", \ + SUBSYSTEMS=="usb", ATTR{removable}=="0", \ + IMPORT{program}="ata_id --export $tempnode" +# Otherwise fall back to using usb_id for USB devices +KERNEL=="sd*|sr*", ENV{ID_SERIAL}!="?*", \ + SUBSYSTEMS=="usb", \ + IMPORT{builtin}="usb_id" + +# scsi devices +KERNEL=="sd*|sr*", ENV{ID_SERIAL}!="?*", \ + ENV{ID_BUS}="scsi", \ + IMPORT{program}="scsi_id --export --whitelisted --device=$tempnode" + +KERNEL=="cciss*", ENV{ID_SERIAL}!="?*", \ + ENV{ID_BUS}="cciss", \ + IMPORT{program}="scsi_id --export --whitelisted --device=$tempnode" + +KERNEL=="dasd*", \ + IMPORT{program}="dasd_id --export $tempnode" + +# BIOS Enhanced Disk Device +KERNEL=="sd*|hd*|cciss*", \ + IMPORT{program}="edd_id --export $tempnode" + +# scsi compat links for ATA devices +KERNEL=="sd*", ENV{ID_BUS}=="ata", \ + PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d$tempnode", \ + RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result" + +# find the physical path of the device +ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", \ + IMPORT{builtin}="path_id" + +LABEL="persistent_storage_not_a_disk" + +# import the variables of partitions from the parent disks +ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*" + +# by-id (hardware serial number) +KERNEL=="hd*[!0-9]", ENV{ID_SERIAL}=="?*", \ + SYMLINK+="disk/by-id/ata-$env{ID_SERIAL}" +KERNEL=="hd*[0-9]", ENV{ID_SERIAL}=="?*", \ + SYMLINK+="disk/by-id/ata-$env{ID_SERIAL}-part%n" + +KERNEL=="sd*[!0-9]", ENV{ID_SCSI_COMPAT}=="?*", \ + 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" + +ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="?*", ENV{ID_SERIAL}=="?*", \ + SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" +ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="?*", ENV{ID_SERIAL}=="?*", \ + SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" + +ENV{DEVTYPE}=="disk", ENV{ID_EDD}=="?*", \ + SYMLINK+="disk/by-id/edd-$env{ID_EDD}" +ENV{DEVTYPE}=="partition", ENV{ID_EDD}=="?*", \ + SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n" + +ENV{DEVTYPE}=="disk", ENV{ID_WWN_WITH_EXTENSION}=="?*", \ + SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION}" +ENV{DEVTYPE}=="partition", ENV{ID_WWN_WITH_EXTENSION}=="?*", \ + SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION}-part%n" + +# by-partlabel/by-partuuid links (partition metadata) +ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_UUID}=="?*", \ + SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}" +ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", \ + SYMLINK+="disk/by-partlabel/$env{ID_PART_ENTRY_NAME}" + +# by-path (parent device path) +ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", \ + SYMLINK+="disk/by-path/$env{ID_PATH}" +ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", \ + SYMLINK+="disk/by-path/$env{ID_PATH}-part%n" + +# skip unpartitioned removable media devices from drivers which do not send +# "change" events +ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", \ + GOTO="persistent_storage_end" + +# probe filesystem metadata of optical drives which have a media inserted +KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", \ + ENV{DISK_EJECT_REQUEST}!="?*", \ + ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="?*", \ + IMPORT{program}="/sbin/blkid -o udev -p -u noraid -O $env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode" +# single-session CDs do not have ID_CDROM_MEDIA_SESSION_LAST_OFFSET +KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", \ + ENV{DISK_EJECT_REQUEST}!="?*", \ + ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \ + IMPORT{program}="/sbin/blkid -o udev -p -u noraid $tempnode" + +# probe filesystem metadata of disks +KERNEL!="sr*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode" + +# watch metadata changes by tools closing the device after writing +KERNEL!="sr*", OPTIONS+="watch" + +# by-label/by-uuid links (filesystem metadata) +ENV{ID_FS_UUID_ENC}=="?*", ENV{ID_FS_USAGE}=="filesystem|other|crypto", \ + SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" +ENV{ID_FS_LABEL_ENC}=="?*", ENV{ID_FS_USAGE}=="filesystem|other", \ + SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" + +LABEL="persistent_storage_end" + --- systemd-44/debian/extra/rules/75-cd-aliases-generator.rules 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/rules/75-cd-aliases-generator.rules 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,11 @@ +# These rules generate rules for the /dev/{cdrom,dvd,...} symlinks and +# write them to /etc/udev/rules.d/70-persistent-cd.rules. + +ACTION=="add", SUBSYSTEM=="block", ENV{GENERATED}!="?*", ENV{ID_CDROM}=="?*", \ + SUBSYSTEMS!="usb|ieee1394", \ + PROGRAM="write_cd_rules", SYMLINK+="$result" + +ACTION=="add", SUBSYSTEM=="block", ENV{GENERATED}!="?*", ENV{ID_CDROM}=="?*", \ + SUBSYSTEMS=="usb|ieee1394", \ + PROGRAM="write_cd_rules by-id", SYMLINK+="$result" + --- systemd-44/debian/extra/rules/75-persistent-net-generator.rules 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/rules/75-persistent-net-generator.rules 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,119 @@ +# These rules generate rules to keep network interface names unchanged +# across reboots and write them to /etc/udev/rules.d/70-persistent-net.rules. + +# variables used to communicate: +# MATCHADDR MAC address used for the match +# MATCHID bus_id used for the match +# MATCHDRV driver name used for the match +# MATCHIFTYPE interface type match +# COMMENT comment to add to the generated rule +# INTERFACE_NAME requested name supplied by external tool +# INTERFACE_NEW new interface name returned by rule writer + +ACTION!="add", GOTO="persistent_net_generator_end" +SUBSYSTEM!="net", GOTO="persistent_net_generator_end" + +# ignore the interface if a name has already been set +NAME=="?*", GOTO="persistent_net_generator_end" + +# device name whitelist +KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", \ + GOTO="persistent_net_generator_end" + +# ignore Xen virtual interfaces +SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" + +# ignore UML virtual interfaces +DRIVERS=="uml-netdev", GOTO="persistent_net_generator_end" + +# ignore "secondary" raw interfaces of the madwifi driver +KERNEL=="ath*", ATTRS{type}=="802", GOTO="persistent_net_generator_end" + +# ignore "secondary" monitor interfaces of mac80211 drivers +KERNEL=="wlan*", ATTRS{type}=="803", GOTO="persistent_net_generator_end" + +# by default match on the MAC address and interface type +ENV{MATCHADDR}="$attr{address}" +ENV{MATCHIFTYPE}="$attr{type}" + +# match interface dev_id +ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" + +# These vendors are known to violate the local MAC address assignment scheme +# Interlan, DEC (UNIBUS or QBUS), Apollo, Cisco, Racal-Datacom +ENV{MATCHADDR}=="02:07:01:*", GOTO="globally_administered_whitelist" +# 3Com +ENV{MATCHADDR}=="02:60:60:*", GOTO="globally_administered_whitelist" +# 3Com IBM PC; Imagen; Valid; Cisco; Apple +ENV{MATCHADDR}=="02:60:8c:*", GOTO="globally_administered_whitelist" +# Intel +ENV{MATCHADDR}=="02:a0:c9:*", GOTO="globally_administered_whitelist" +# Olivetti +ENV{MATCHADDR}=="02:aa:3c:*", GOTO="globally_administered_whitelist" +# CMC Masscomp; Silicon Graphics; Prime EXL +ENV{MATCHADDR}=="02:cf:1f:*", GOTO="globally_administered_whitelist" +# Prominet Corporation Gigabit Ethernet Switch +ENV{MATCHADDR}=="02:e0:3b:*", GOTO="globally_administered_whitelist" +# BTI (Bus-Tech, Inc.) IBM Mainframes +ENV{MATCHADDR}=="02:e6:d3:*", GOTO="globally_administered_whitelist" +# Novell 2000 +ENV{MATCHADDR}=="52:54:4c:*", GOTO="globally_administered_whitelist" +# Realtec +ENV{MATCHADDR}=="52:54:ab:*", GOTO="globally_administered_whitelist" +# Kingston Technologies +ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="globally_administered_whitelist" + +# ignore interfaces with locally administered or null MAC addresses +# and VMWare, Hyper-V, KVM, Virtualbox and Xen virtual interfaces +ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" +ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}="" +ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*|00:05:69:*|00:1C:14:*", \ + ENV{MATCHADDR}="" +ENV{MATCHADDR}=="00:15:5d:*", ENV{MATCHADDR}="" +ENV{MATCHADDR}=="52:54:00:*|54:52:00:*", ENV{MATCHADDR}="" +ENV{MATCHADDR}=="08:00:27:*", ENV{MATCHADDR}="" +ENV{MATCHADDR}=="00:16:3e:*", ENV{MATCHADDR}="" + +LABEL="globally_administered_whitelist" + +# ibmveth interfaces have stable locally administered MAC addresses +SUBSYSTEMS=="ibmveth", ENV{MATCHADDR}="$attr{address}" + +# S/390 interfaces are matched only by id +SUBSYSTEMS=="ccwgroup", \ + ENV{MATCHDRV}="$driver", ENV{MATCHID}="$id", \ + ENV{MATCHADDR}="", ENV{MATCHDEVID}="" + +# terminate processing if there are not enough conditions to create a rule +ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", \ + GOTO="persistent_net_generator_end" + + +# provide nice comments for the generated rules +SUBSYSTEMS=="pci", \ + ENV{COMMENT}="PCI device $attr{vendor}:$attr{device}" +SUBSYSTEMS=="pcmcia", \ + ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id}" +SUBSYSTEMS=="usb", \ + ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct}" +SUBSYSTEMS=="ccwgroup", \ + ENV{COMMENT}="S/390 device at $id" +SUBSYSTEMS=="ibmveth", \ + ENV{COMMENT}="LPAR virtual device at $id" +SUBSYSTEMS=="ieee1394", \ + ENV{COMMENT}="Firewire device $attr{host_id}" +ENV{COMMENT}=="", \ + ENV{COMMENT}="Unknown $env{SUBSYSTEM} device ($env{DEVPATH})" +ATTRS{driver}=="?*", \ + ENV{COMMENT}="$env{COMMENT} ($attr{driver})" + + +# ignore interfaces without a driver link like bridges and VLANs, otherwise +# generate and write the rule +DRIVERS=="?*", IMPORT{program}="write_net_rules" + +# rename the interface if requested +ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" + +LABEL="persistent_net_generator_end" + --- systemd-44/debian/extra/rules/80-drivers.rules 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/rules/80-drivers.rules 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,46 @@ +ACTION=="remove", GOTO="drivers_end" + +# check if the device has already been claimed by a driver +ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_driver_loaded" + +# load the drivers +ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe -b $env{MODALIAS}" + +SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/modprobe -b pcmcia" + +# rules for subsystems which lack proper hotplug support +SUBSYSTEM=="i2o", RUN+="/sbin/modprobe -b i2o_block" +SUBSYSTEM=="memstick", RUN+="/sbin/modprobe -b --all ms_block mspro_block" +SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", \ + RUN+="/sbin/modprobe -b tifm_sd" +SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", \ + RUN+="/sbin/modprobe -b tifm_ms" + +SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", \ + RUN+="/sbin/modprobe -b sg" + +# Load VIO modules based on the device type +SUBSYSTEM!="vio", GOTO="hotplug_vio_end" +ENV{MODALIAS}=="?*", GOTO="hotplug_vio_end" +ENV{VIO_TYPE}!="?*", IMPORT{program}="vio_type --export $devpath" +ENV{VIO_TYPE}=="serial", RUN+="/sbin/modprobe -b hvc_console" +ENV{VIO_TYPE}=="serial-server", RUN+="/sbin/modprobe -b hvcs" +ENV{VIO_TYPE}=="network", RUN+="/sbin/modprobe -b ibmveth" +ENV{VIO_TYPE}=="vscsi", RUN+="/sbin/modprobe -b ibmvscsic" +ENV{VIO_TYPE}=="vlan", RUN+="/sbin/modprobe -b iseries_veth" +ENV{VIO_TYPE}=="viodasd", RUN+="/sbin/modprobe -b viodasd" +ENV{VIO_TYPE}=="viocd", RUN+="/sbin/modprobe -b viocd" +ENV{VIO_TYPE}=="vnet", RUN+="/sbin/modprobe -b sunvnet" +ENV{VIO_TYPE}=="vdisk", RUN+="/sbin/modprobe -b sunvdc" +LABEL="hotplug_vio_end" + +# From here on follows the hotplug agents which do not load modules +LABEL="hotplug_driver_loaded" + +SUBSYSTEM=="firmware", RUN+="firmware.agent" + +LABEL="drivers_end" + +# Log every event to /dev/hotplug.log (for debugging). +#SUBSYSTEM!="uids", RUN+="logger.agent" + --- systemd-44/debian/extra/rules/80-networking.rules 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/rules/80-networking.rules 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,4 @@ +SUBSYSTEM=="net", RUN+="net.agent" + +SUBSYSTEM=="atm", RUN+="dsl-modem.agent" + --- systemd-44/debian/extra/rules/91-permissions.rules 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/rules/91-permissions.rules 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,126 @@ +ACTION=="remove", GOTO="permissions_end" + +# default permissions for block devices +SUBSYSTEM=="block", GROUP="disk" +SUBSYSTEM=="block", ATTRS{removable}=="1", GROUP="floppy" +# the aacraid driver is broken and reports the disks as removable (see #404927) +SUBSYSTEM=="block", DRIVERS=="aacraid", GROUP="disk" +# all block devices on these buses are "removable" +SUBSYSTEM=="block", SUBSYSTEMS=="usb|ieee1394|mmc|pcmcia", GROUP="floppy" + +KERNEL=="cbm", GROUP="floppy" + +# IDE devices +ENV{ID_CDROM}=="?*", GROUP="cdrom" +KERNEL=="ht[0-9]*", GROUP="tape" +KERNEL=="nht[0-9]*", GROUP="tape" + +# SCSI devices +SUBSYSTEM=="scsi_generic|scsi_tape", \ +SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape" +SUBSYSTEM=="scsi_generic", \ +SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom" + +# USB devices +KERNEL=="legousbtower*", MODE="0666" +KERNEL=="lp[0-9]*", SUBSYSTEMS=="usb", GROUP="lp" +# hplip and cups 1.4+ use raw USB devices, so permissions should be similar to +# the ones from the old usblp kernel module +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \ + ENV{ID_USB_INTERFACES}=="", IMPORT{builtin}="usb_id" +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \ + ENV{ID_USB_INTERFACES}=="*:0701??:*", GROUP="lp" + +# usbfs-like devices +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \ + MODE="0664" + +# serial devices +SUBSYSTEM=="tty", GROUP="dialout" +SUBSYSTEM=="capi", GROUP="dialout" +SUBSYSTEM=="slamr", GROUP="dialout" +SUBSYSTEM=="zaptel", GROUP="dialout" +KERNEL=="mISDNtimer", GROUP="dialout" +KERNEL=="mwave", GROUP="dialout" +KERNEL=="hvc*|hvsi*", GROUP="dialout" + +# vc devices (all members of the tty subsystem) +KERNEL=="ptmx", MODE="0666", GROUP="root" +KERNEL=="console", MODE="0600", GROUP="root" +KERNEL=="tty", MODE="0666", GROUP="root" +KERNEL=="tty[0-9]*", GROUP="root" +KERNEL=="pty*", MODE="0666", GROUP="tty" + +# video devices +SUBSYSTEM=="video4linux", GROUP="video" +SUBSYSTEM=="drm", GROUP="video" +SUBSYSTEM=="dvb", GROUP="video" +SUBSYSTEM=="em8300", GROUP="video" +SUBSYSTEM=="graphics", GROUP="video" +SUBSYSTEM=="nvidia", GROUP="video" + +# misc devices +KERNEL=="random", MODE="0666" +KERNEL=="urandom", MODE="0666" +KERNEL=="mem", MODE="0640", GROUP="kmem" +KERNEL=="kmem", MODE="0640", GROUP="kmem" +KERNEL=="port", MODE="0640", GROUP="kmem" +KERNEL=="nvram", MODE="0640", GROUP="kmem" +KERNEL=="full", MODE="0666" +KERNEL=="null", MODE="0666" +KERNEL=="zero", MODE="0666" +KERNEL=="inotify", MODE="0666" +KERNEL=="sonypi", MODE="0666" +KERNEL=="cpu[0-9]*", MODE="0444" +KERNEL=="agpgart", GROUP="video" +KERNEL=="pmu", GROUP="video" +KERNEL=="kqemu", MODE="0666" +KERNEL=="tun", MODE="0666", OPTIONS+="static_node=net/tun" +KERNEL=="rfkill", MODE="0644" + +KERNEL=="cdemu[0-9]*", GROUP="cdrom" +KERNEL=="pktcdvd[0-9]*", GROUP="cdrom" +KERNEL=="pktcdvd", MODE="0644" + +# printers and parallel devices +SUBSYSTEM=="printer", GROUP="lp" +SUBSYSTEM=="ppdev", GROUP="lp" +KERNEL=="irlpt[0-9]*", GROUP="lp" +KERNEL=="pt[0-9]*", GROUP="tape" +KERNEL=="pht[0-9]*", GROUP="tape" + +# sound devices +SUBSYSTEM=="sound", GROUP="audio", + OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer" + +# ieee1394 devices +SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x00010*", GROUP="video" +SUBSYSTEM=="firewire", ATTR{units}=="*0x00b09d:0x00010*", GROUP="video" +SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x010001*", GROUP="video" +SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x014001*", GROUP="video" +KERNEL=="raw1394", GROUP="disk" +KERNEL=="dv1394-[0-9]*", GROUP="video" +KERNEL=="video1394-[0-9]*", GROUP="video" + +# input devices +KERNEL=="event[0-9]*", ATTRS{name}=="*dvb*|*DVB*|* IR *" \ + MODE="0664", GROUP="video" +KERNEL=="js[0-9]*", MODE="0664" +KERNEL=="event[0-9]*", ENV{ID_CLASS}=="joystick", \ + MODE="0664", GROUP="audio" +KERNEL=="lirc[0-9]*", GROUP="video" + +KERNEL=="mmtimer", MODE="0644" +KERNEL=="sgi_*", MODE="0666" +KERNEL=="z90crypt", MODE="0666" +KERNEL=="iseries/ibmsis*", GROUP="disk" +KERNEL=="iseries/nvt*", GROUP="disk" +KERNEL=="iseries/vt*", GROUP="disk" +KERNEL=="iseries/vtty*", GROUP="dialout" + +# AOE character devices +SUBSYSTEM=="aoe", MODE="0220", GROUP="disk" +SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440", GROUP="disk" + +LABEL="permissions_end" + --- systemd-44/debian/extra/udev.base-installer 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/udev.base-installer 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,7 @@ +#!/bin/sh -e + +RULESDIR=etc/udev/rules.d + +mkdir -p /target/$RULESDIR +cp /$RULESDIR/70-persistent-*.rules /target/$RULESDIR 2>/dev/null || true + --- systemd-44/debian/extra/udev.startup 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/udev.startup 2013-05-20 23:47:15.000000000 +0000 @@ -0,0 +1,38 @@ +#!/bin/sh -e + +make_extra_nodes() { + [ -e /etc/udev/links.conf ] || return 0 + grep '^[^#]' /etc/udev/links.conf | \ + while read type name arg1; do + [ "$type" -a "$name" -a ! -e "/dev/$name" -a ! -L "/dev/$name" ] ||continue + case "$type" in + L) ln -s $arg1 /dev/$name ;; + D) mkdir -p /dev/$name ;; + M) mknod -m 600 /dev/$name $arg1 ;; + *) echo "links.conf: unparseable line ($type $name $arg1)" ;; + esac + done +} + +echo > /sys/kernel/uevent_helper + +if ! grep -E -q "^[^[:space:]]+ /dev (dev)?tmpfs" /proc/mounts; then + mount -n -o mode=0755 -t devtmpfs tmpfs /dev +fi +make_extra_nodes + +/lib/systemd/systemd-udevd --daemon --resolve-names=never + +udevadm trigger --action=add + +mount /dev/pts + +udevadm settle || true + +if [ -d /sys/bus/scsi ]; then + modprobe -q scsi_wait_scan && modprobe -r scsi_wait_scan || true + udevadm settle || true +fi + +exit 0 + --- systemd-44/debian/extra/udev.vim 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/extra/udev.vim 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,45 @@ +" Vim syntax file +" Language: udev rules files +" Maintainer: Marco d'Itri +" Last Change: 2005 August +" +" This syntax file is unfinished. If you can, please clean it up and submit +" it for inclusion in the vim package. + +if exists("b:current_syntax") + finish +endif + +let b:current_syntax = "udev" + +syn keyword Ucondition ACTION ENV RESULT KERNEL SUBSYSTEM DRIVER ATTR +syn keyword Ucondition KERNELS SUBSYSTEMS DRIVERS ATTRS DEVPATH TEST +syn keyword Ucondition nextgroup=Uparambr,Uoperator +syn keyword Uaction PROGRAM NAME SYMLINK OWNER GROUP MODE RUN OPTIONS +syn keyword Uaction IMPORT GOTO LABEL +syn keyword Uaction nextgroup=Uparambr,Uoperator +syn region Uparambr start=/{/ end=/}/ contains=Uparam +syn match Uparam '[A-Za-z0-9_]*' contained +syn match Ufnmatch "[?*|]" contained +syn region Ufnmatch start=/\[/ skip=/\\\]/ end=/\]/ contained +syn match Uprintf '%[beknMmps%]\|%c{[0-9]}' contained +syn match Ustringvar '\$[a-z]*' nextgroup=Uparambr +syn match Ustring '"[^"]*"' contains=Uprintf,Ufnmatch,Ustringvar +syn match Uoperator "==\|!=\|=\|+=\|:=\|," +syn match Ueol '\\$' +syn region Ucomment start=/#/ end=/$/ +syn keyword Utodo contained TODO FIXME XXX + +hi def link Ucondition Identifier +hi def link Uaction Identifier +hi def link Uparambr Delimiter +hi def link Uparam PreProc +hi def link Ufnmatch Special +hi def link Uprintf Special +hi def link Ustringvar Function +hi def link Ustring String +hi def link Uoperator Operator +hi def link Ueol Delimiter +hi def link Ucomment Comment +hi def link Utodo Todo + --- systemd-44/debian/gir1.2-gudev-1.0.install 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/gir1.2-gudev-1.0.install 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/*/girepository-1.0/* usr/lib/girepository-1.0/ --- systemd-44/debian/libgudev-1.0-0.install 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/libgudev-1.0-0.install 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1 @@ +lib/*/libgudev*.so.* --- systemd-44/debian/libgudev-1.0-0.symbols 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/libgudev-1.0-0.symbols 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,54 @@ +libgudev-1.0.so.0 libgudev-1.0-0 #MINVER# + g_udev_client_get_type@Base 146 + g_udev_client_new@Base 146 + g_udev_client_query_by_device_file@Base 146 + g_udev_client_query_by_device_number@Base 146 + g_udev_client_query_by_subsystem@Base 146 + g_udev_client_query_by_subsystem_and_name@Base 146 + g_udev_client_query_by_sysfs_path@Base 146 + g_udev_device_get_action@Base 146 + g_udev_device_get_device_file@Base 146 + g_udev_device_get_device_file_symlinks@Base 146 + g_udev_device_get_device_number@Base 146 + g_udev_device_get_device_type@Base 146 + g_udev_device_get_devtype@Base 146 + g_udev_device_get_driver@Base 146 + g_udev_device_get_is_initialized@Base 165 + g_udev_device_get_name@Base 146 + g_udev_device_get_number@Base 146 + g_udev_device_get_parent@Base 146 + g_udev_device_get_parent_with_subsystem@Base 146 + g_udev_device_get_property@Base 146 + g_udev_device_get_property_as_boolean@Base 146 + g_udev_device_get_property_as_double@Base 146 + g_udev_device_get_property_as_int@Base 146 + g_udev_device_get_property_as_strv@Base 146 + g_udev_device_get_property_as_uint64@Base 146 + g_udev_device_get_property_keys@Base 146 + g_udev_device_get_seqnum@Base 146 + g_udev_device_get_subsystem@Base 146 + g_udev_device_get_sysfs_attr@Base 146 + g_udev_device_get_sysfs_attr_as_boolean@Base 146 + g_udev_device_get_sysfs_attr_as_double@Base 146 + g_udev_device_get_sysfs_attr_as_int@Base 146 + g_udev_device_get_sysfs_attr_as_strv@Base 146 + g_udev_device_get_sysfs_attr_as_uint64@Base 146 + g_udev_device_get_sysfs_path@Base 146 + g_udev_device_get_tags@Base 165 + g_udev_device_get_type@Base 146 + g_udev_device_get_usec_since_initialized@Base 165 + g_udev_device_has_property@Base 146 + g_udev_device_type_get_type@Base 146 + g_udev_enumerator_add_match_is_initialized@Base 165 + g_udev_enumerator_add_match_name@Base 165 + g_udev_enumerator_add_match_property@Base 165 + g_udev_enumerator_add_match_subsystem@Base 165 + g_udev_enumerator_add_match_sysfs_attr@Base 165 + g_udev_enumerator_add_match_tag@Base 165 + g_udev_enumerator_add_nomatch_subsystem@Base 165 + g_udev_enumerator_add_nomatch_sysfs_attr@Base 165 + g_udev_enumerator_add_sysfs_path@Base 165 + g_udev_enumerator_execute@Base 165 + g_udev_enumerator_get_type@Base 165 + g_udev_enumerator_new@Base 165 + g_udev_marshal_VOID__STRING_OBJECT@Base 146 --- systemd-44/debian/libgudev-1.0-dev.install 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/libgudev-1.0-dev.install 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,5 @@ +usr/include/gudev-1.0/ +usr/lib/*/libgudev*.so +usr/lib/*/pkgconfig/gudev-1.0.pc +usr/share/gir-1.0/ +usr/share/gtk-doc/html/gudev/ --- systemd-44/debian/libpam-systemd.install 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/libpam-systemd.install 2013-04-08 21:53:45.000000000 +0000 @@ -1,2 +1,5 @@ lib/*/security/pam_systemd.so usr/share/man/man8/pam_systemd.8 + +# installed via debian/rules +#debian/pam-configs usr/share/ --- systemd-44/debian/libsystemd-journal0.symbols 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/libsystemd-journal0.symbols 2013-04-13 16:05:47.000000000 +0000 @@ -1,28 +1,60 @@ libsystemd-journal.so.0 libsystemd-journal0 #MINVER# + LIBSYSTEMD_JOURNAL_183@LIBSYSTEMD_JOURNAL_183 183 + LIBSYSTEMD_JOURNAL_184@LIBSYSTEMD_JOURNAL_184 184 + LIBSYSTEMD_JOURNAL_187@LIBSYSTEMD_JOURNAL_187 187 + LIBSYSTEMD_JOURNAL_188@LIBSYSTEMD_JOURNAL_188 188 + LIBSYSTEMD_JOURNAL_190@LIBSYSTEMD_JOURNAL_190 190 + LIBSYSTEMD_JOURNAL_195@LIBSYSTEMD_JOURNAL_195 195 + LIBSYSTEMD_JOURNAL_196@LIBSYSTEMD_JOURNAL_196 196 + LIBSYSTEMD_JOURNAL_198@LIBSYSTEMD_JOURNAL_198 198 + LIBSYSTEMD_JOURNAL_201@LIBSYSTEMD_JOURNAL_201 201 LIBSYSTEMD_JOURNAL_38@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_add_disjunction@LIBSYSTEMD_JOURNAL_187 187 sd_journal_add_match@LIBSYSTEMD_JOURNAL_38 38 sd_journal_close@LIBSYSTEMD_JOURNAL_38 38 sd_journal_enumerate_data@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_enumerate_unique@LIBSYSTEMD_JOURNAL_195 195 sd_journal_flush_matches@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_get_catalog@LIBSYSTEMD_JOURNAL_196 196 + sd_journal_get_catalog_for_message_id@LIBSYSTEMD_JOURNAL_196 196 sd_journal_get_cursor@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_get_cutoff_monotonic_usec@LIBSYSTEMD_JOURNAL_184 184 + sd_journal_get_cutoff_realtime_usec@LIBSYSTEMD_JOURNAL_184 184 sd_journal_get_data@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_get_data_threshold@LIBSYSTEMD_JOURNAL_196 196 + sd_journal_get_events@LIBSYSTEMD_JOURNAL_201 201 sd_journal_get_fd@LIBSYSTEMD_JOURNAL_38 38 sd_journal_get_monotonic_usec@LIBSYSTEMD_JOURNAL_38 38 sd_journal_get_realtime_usec@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_get_timeout@LIBSYSTEMD_JOURNAL_201 201 + sd_journal_get_usage@LIBSYSTEMD_JOURNAL_190 190 sd_journal_next@LIBSYSTEMD_JOURNAL_38 38 sd_journal_next_skip@LIBSYSTEMD_JOURNAL_38 38 sd_journal_open@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_open_directory@LIBSYSTEMD_JOURNAL_187 187 + sd_journal_perror@LIBSYSTEMD_JOURNAL_188 188 + sd_journal_perror_with_location@LIBSYSTEMD_JOURNAL_188 188 sd_journal_previous@LIBSYSTEMD_JOURNAL_38 38 sd_journal_previous_skip@LIBSYSTEMD_JOURNAL_38 38 sd_journal_print@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_print_with_location@LIBSYSTEMD_JOURNAL_183 183 sd_journal_printv@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_printv_with_location@LIBSYSTEMD_JOURNAL_183 183 sd_journal_process@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_query_unique@LIBSYSTEMD_JOURNAL_195 195 + sd_journal_reliable_fd@LIBSYSTEMD_JOURNAL_198 198 sd_journal_restart_data@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_restart_unique@LIBSYSTEMD_JOURNAL_195 195 sd_journal_seek_cursor@LIBSYSTEMD_JOURNAL_38 38 sd_journal_seek_head@LIBSYSTEMD_JOURNAL_38 38 sd_journal_seek_monotonic_usec@LIBSYSTEMD_JOURNAL_38 38 sd_journal_seek_realtime_usec@LIBSYSTEMD_JOURNAL_38 38 sd_journal_seek_tail@LIBSYSTEMD_JOURNAL_38 38 sd_journal_send@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_send_with_location@LIBSYSTEMD_JOURNAL_183 183 sd_journal_sendv@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_sendv_with_location@LIBSYSTEMD_JOURNAL_183 183 + sd_journal_set_data_threshold@LIBSYSTEMD_JOURNAL_196 196 sd_journal_stream_fd@LIBSYSTEMD_JOURNAL_38 38 + sd_journal_test_cursor@LIBSYSTEMD_JOURNAL_195 195 + sd_journal_wait@LIBSYSTEMD_JOURNAL_187 187 --- systemd-44/debian/libsystemd-login0.symbols 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/libsystemd-login0.symbols 2013-04-13 16:05:59.000000000 +0000 @@ -1,28 +1,37 @@ libsystemd-login.so.0 libsystemd-login0 #MINVER# + LIBSYSTEMD_LOGIN_186@LIBSYSTEMD_LOGIN_186 186 + LIBSYSTEMD_LOGIN_198@LIBSYSTEMD_LOGIN_198 198 + LIBSYSTEMD_LOGIN_201@LIBSYSTEMD_LOGIN_201 201 LIBSYSTEMD_LOGIN_31@LIBSYSTEMD_LOGIN_31 31 LIBSYSTEMD_LOGIN_38@LIBSYSTEMD_LOGIN_38 38 + LIBSYSTEMD_LOGIN_43@LIBSYSTEMD_LOGIN_43 43 sd_get_seats@LIBSYSTEMD_LOGIN_31 31 sd_get_sessions@LIBSYSTEMD_LOGIN_31 31 sd_get_uids@LIBSYSTEMD_LOGIN_31 31 sd_login_monitor_flush@LIBSYSTEMD_LOGIN_31 31 + sd_login_monitor_get_events@LIBSYSTEMD_LOGIN_201 201 sd_login_monitor_get_fd@LIBSYSTEMD_LOGIN_31 31 + sd_login_monitor_get_timeout@LIBSYSTEMD_LOGIN_201 201 sd_login_monitor_new@LIBSYSTEMD_LOGIN_31 31 sd_login_monitor_unref@LIBSYSTEMD_LOGIN_31 31 sd_pid_get_owner_uid@LIBSYSTEMD_LOGIN_31 31 sd_pid_get_session@LIBSYSTEMD_LOGIN_31 31 sd_pid_get_unit@LIBSYSTEMD_LOGIN_38 38 + sd_seat_can_graphical@LIBSYSTEMD_LOGIN_186 186 sd_seat_can_multi_session@LIBSYSTEMD_LOGIN_31 31 + sd_seat_can_tty@LIBSYSTEMD_LOGIN_186 186 sd_seat_get_active@LIBSYSTEMD_LOGIN_31 31 sd_seat_get_sessions@LIBSYSTEMD_LOGIN_31 31 + sd_session_get_class@LIBSYSTEMD_LOGIN_43 43 + sd_session_get_display@LIBSYSTEMD_LOGIN_43 43 sd_session_get_seat@LIBSYSTEMD_LOGIN_31 31 sd_session_get_service@LIBSYSTEMD_LOGIN_38 38 + sd_session_get_state@LIBSYSTEMD_LOGIN_186 186 + sd_session_get_tty@LIBSYSTEMD_LOGIN_198 198 + sd_session_get_type@LIBSYSTEMD_LOGIN_43 43 sd_session_get_uid@LIBSYSTEMD_LOGIN_31 31 sd_session_is_active@LIBSYSTEMD_LOGIN_31 31 sd_uid_get_seats@LIBSYSTEMD_LOGIN_31 31 sd_uid_get_sessions@LIBSYSTEMD_LOGIN_31 31 sd_uid_get_state@LIBSYSTEMD_LOGIN_31 31 sd_uid_is_on_seat@LIBSYSTEMD_LOGIN_31 31 - LIBSYSTEMD_LOGIN_43@LIBSYSTEMD_LOGIN_43 43 - sd_session_get_class@LIBSYSTEMD_LOGIN_43 43 - sd_session_get_display@LIBSYSTEMD_LOGIN_43 43 - sd_session_get_type@LIBSYSTEMD_LOGIN_43 43 --- systemd-44/debian/libudev-dev.install 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/libudev-dev.install 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,4 @@ +usr/include/libudev.h +usr/lib/*/libudev.so +usr/lib/*/pkgconfig/libudev.pc +usr/share/gtk-doc/html/libudev/ --- systemd-44/debian/libudev1.install 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/libudev1.install 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1 @@ +lib/*/libudev.so.* --- systemd-44/debian/libudev1.symbols 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/libudev1.symbols 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,93 @@ +libudev.so.1 libudev1 #MINVER# + LIBUDEV_183@LIBUDEV_183 183 + LIBUDEV_189@LIBUDEV_189 189 + LIBUDEV_196@LIBUDEV_196 196 + LIBUDEV_199@LIBUDEV_199 199 + udev_device_get_action@LIBUDEV_183 183 + udev_device_get_devlinks_list_entry@LIBUDEV_183 183 + udev_device_get_devnode@LIBUDEV_183 183 + udev_device_get_devnum@LIBUDEV_183 183 + udev_device_get_devpath@LIBUDEV_183 183 + udev_device_get_devtype@LIBUDEV_183 183 + udev_device_get_driver@LIBUDEV_183 183 + udev_device_get_is_initialized@LIBUDEV_183 183 + udev_device_get_parent@LIBUDEV_183 183 + udev_device_get_parent_with_subsystem_devtype@LIBUDEV_183 183 + udev_device_get_properties_list_entry@LIBUDEV_183 183 + udev_device_get_property_value@LIBUDEV_183 183 + udev_device_get_seqnum@LIBUDEV_183 183 + udev_device_get_subsystem@LIBUDEV_183 183 + udev_device_get_sysattr_list_entry@LIBUDEV_183 183 + udev_device_get_sysattr_value@LIBUDEV_183 183 + udev_device_get_sysname@LIBUDEV_183 183 + udev_device_get_sysnum@LIBUDEV_183 183 + udev_device_get_syspath@LIBUDEV_183 183 + udev_device_get_tags_list_entry@LIBUDEV_183 183 + udev_device_get_udev@LIBUDEV_183 183 + udev_device_get_usec_since_initialized@LIBUDEV_183 183 + udev_device_has_tag@LIBUDEV_183 183 + udev_device_new_from_device_id@LIBUDEV_189 189 + udev_device_new_from_devnum@LIBUDEV_183 183 + udev_device_new_from_environment@LIBUDEV_183 183 + udev_device_new_from_subsystem_sysname@LIBUDEV_183 183 + udev_device_new_from_syspath@LIBUDEV_183 183 + udev_device_ref@LIBUDEV_183 183 + udev_device_set_sysattr_value@LIBUDEV_199 199 + udev_device_unref@LIBUDEV_183 183 + udev_enumerate_add_match_is_initialized@LIBUDEV_183 183 + udev_enumerate_add_match_parent@LIBUDEV_183 183 + udev_enumerate_add_match_property@LIBUDEV_183 183 + udev_enumerate_add_match_subsystem@LIBUDEV_183 183 + udev_enumerate_add_match_sysattr@LIBUDEV_183 183 + udev_enumerate_add_match_sysname@LIBUDEV_183 183 + udev_enumerate_add_match_tag@LIBUDEV_183 183 + udev_enumerate_add_nomatch_subsystem@LIBUDEV_183 183 + udev_enumerate_add_nomatch_sysattr@LIBUDEV_183 183 + udev_enumerate_add_syspath@LIBUDEV_183 183 + udev_enumerate_get_list_entry@LIBUDEV_183 183 + udev_enumerate_get_udev@LIBUDEV_183 183 + udev_enumerate_new@LIBUDEV_183 183 + udev_enumerate_ref@LIBUDEV_183 183 + udev_enumerate_scan_devices@LIBUDEV_183 183 + udev_enumerate_scan_subsystems@LIBUDEV_183 183 + udev_enumerate_unref@LIBUDEV_183 183 + udev_get_log_priority@LIBUDEV_183 183 + udev_get_userdata@LIBUDEV_183 183 + udev_hwdb_get_properties_list_entry@LIBUDEV_196 196 + udev_hwdb_new@LIBUDEV_196 196 + udev_hwdb_ref@LIBUDEV_196 196 + udev_hwdb_unref@LIBUDEV_196 196 + udev_list_entry_get_by_name@LIBUDEV_183 183 + udev_list_entry_get_name@LIBUDEV_183 183 + udev_list_entry_get_next@LIBUDEV_183 183 + udev_list_entry_get_value@LIBUDEV_183 183 + udev_monitor_enable_receiving@LIBUDEV_183 183 + udev_monitor_filter_add_match_subsystem_devtype@LIBUDEV_183 183 + udev_monitor_filter_add_match_tag@LIBUDEV_183 183 + udev_monitor_filter_remove@LIBUDEV_183 183 + udev_monitor_filter_update@LIBUDEV_183 183 + udev_monitor_get_fd@LIBUDEV_183 183 + udev_monitor_get_udev@LIBUDEV_183 183 + udev_monitor_new_from_netlink@LIBUDEV_183 183 + udev_monitor_receive_device@LIBUDEV_183 183 + udev_monitor_ref@LIBUDEV_183 183 + udev_monitor_set_receive_buffer_size@LIBUDEV_183 183 + udev_monitor_unref@LIBUDEV_183 183 + udev_new@LIBUDEV_183 183 + udev_queue_get_kernel_seqnum@LIBUDEV_183 183 + udev_queue_get_queue_is_empty@LIBUDEV_183 183 + udev_queue_get_queued_list_entry@LIBUDEV_183 183 + udev_queue_get_seqnum_is_finished@LIBUDEV_183 183 + udev_queue_get_seqnum_sequence_is_finished@LIBUDEV_183 183 + udev_queue_get_udev@LIBUDEV_183 183 + udev_queue_get_udev_is_active@LIBUDEV_183 183 + udev_queue_get_udev_seqnum@LIBUDEV_183 183 + udev_queue_new@LIBUDEV_183 183 + udev_queue_ref@LIBUDEV_183 183 + udev_queue_unref@LIBUDEV_183 183 + udev_ref@LIBUDEV_183 183 + udev_set_log_fn@LIBUDEV_183 183 + udev_set_log_priority@LIBUDEV_183 183 + udev_set_userdata@LIBUDEV_183 183 + udev_unref@LIBUDEV_183 183 + udev_util_encode_string@LIBUDEV_183 183 --- systemd-44/debian/patches/0001-Avoid-sending-sigterm-to-session-leader.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0001-Avoid-sending-sigterm-to-session-leader.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,25 @@ +From 1a90ec1ca2c41bd61643340a0b7fadb123c1c770 Mon Sep 17 00:00:00 2001 +From: Tollef Fog Heen +Date: Sat, 30 Jun 2012 08:00:35 +0200 +Subject: [PATCH 01/12] Avoid sending sigterm to session leader + +--- + src/login/logind-session.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/login/logind-session.c b/src/login/logind-session.c +index 97c24d0..d133420 100644 +--- a/src/login/logind-session.c ++++ b/src/login/logind-session.c +@@ -632,7 +632,7 @@ static int session_terminate_cgroup(Session *s) { + + r = manager_get_session_by_pid(s->manager, s->leader, &t); + if (r > 0 && t == s) { +- kill(s->leader, SIGTERM); /* for normal processes */ ++ /*kill(s->leader, SIGTERM); */ /* for normal processes */ + kill(s->leader, SIGHUP); /* for shells */ + kill(s->leader, SIGCONT); /* in case they are stopped */ + } +-- +1.7.10.4 + --- systemd-44/debian/patches/0002-Avoid-reloading-services-when-shutting-down.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0002-Avoid-reloading-services-when-shutting-down.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,58 @@ +From 3cda8c6991b160e31948343797e3c7099c0cb876 Mon Sep 17 00:00:00 2001 +From: Tollef Fog Heen +Date: Tue, 16 Oct 2012 18:39:27 +0200 +Subject: [PATCH 02/12] Avoid reloading services when shutting down + +Doing so won't work and makes no sense. Thanks to Michael Stapelberg +for the patch. Closes: #624599. +--- + src/core/manager.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/src/core/manager.c b/src/core/manager.c +index f8d097e..ab2806d 100644 +--- a/src/core/manager.c ++++ b/src/core/manager.c +@@ -883,6 +883,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { + int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool override, DBusError *e, Job **_ret) { + int r; + Transaction *tr; ++ Job *j; ++ Iterator i; + + assert(m); + assert(type < _JOB_TYPE_MAX); +@@ -894,6 +896,30 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove + return -EINVAL; + } + ++ if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START || type == JOB_RESTART || type == JOB_TRY_RESTART) { ++ /* If final.target is queued (happens on poweroff, reboot and ++ * halt), we will not accept new reload jobs. They would not be ++ * executed ever anyways (since the shutdown comes first), but ++ * they block the shutdown process: when systemd tries to stop ++ * a unit such as ifup@eth0.service, that unit might invoke a ++ * systemctl reload command, which blockingly waits (but only ++ * gets executed after all other queued units for the shutdown ++ * have been executed). ++ * ++ * See http://bugs.debian.org/624599 and ++ * http://bugs.debian.org/635777 */ ++ HASHMAP_FOREACH(j, m->jobs, i) { ++ assert(j->installed); ++ ++ if (strcmp(j->unit->id, "final.target") == 0) { ++ log_debug("final.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); ++ dbus_set_error(e, BUS_ERROR_INVALID_JOB_MODE, "final.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); ++ return -EINVAL; ++ } ++ } ++ } ++ ++ + if (mode == JOB_ISOLATE && !unit->allow_isolate) { + dbus_set_error(e, BUS_ERROR_NO_ISOLATION, "Operation refused, unit may not be isolated."); + return -EPERM; +-- +1.7.10.4 + --- systemd-44/debian/patches/0003-Avoid-reload-and-re-start-requests-during-early-boot.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0003-Avoid-reload-and-re-start-requests-during-early-boot.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,39 @@ +From 4fa7612356d3d7f78d78ac4d7b5c001b79af913d Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Thu, 18 Oct 2012 10:16:14 +0200 +Subject: [PATCH 03/12] Avoid reload and (re)start requests during early boot + which can lead to deadlocks. Closes: #624599 + +--- + src/core/manager.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/src/core/manager.c b/src/core/manager.c +index ab2806d..26d9b02 100644 +--- a/src/core/manager.c ++++ b/src/core/manager.c +@@ -916,6 +916,21 @@ int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool ove + dbus_set_error(e, BUS_ERROR_INVALID_JOB_MODE, "final.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); + return -EINVAL; + } ++ /* Trying to reload services from multi-user.target ++ * during the early boot stage can lead to deadlocks. ++ * An example is samba being reloaded by the dhcp hook ++ * when the network is activated during rcS. ++ * As a workaround we ignore reload or (re)start ++ * requests while sysinit.target is queued for ++ * services which have the DefaultDependencies option ++ * set to yes. ++ * ++ * See http://bugs.debian.org/624599 */ ++ if (strcmp(j->unit->id, "sysinit.target") == 0 && unit->default_dependencies) { ++ log_debug("sysinit.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); ++ dbus_set_error(e, BUS_ERROR_INVALID_JOB_MODE, "sysinit.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); ++ return -EINVAL; ++ } + } + } + +-- +1.7.10.4 + --- systemd-44/debian/patches/0004-Don-t-run-systemd-udev-rules-if-systemd-is-not-activ.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0004-Don-t-run-systemd-udev-rules-if-systemd-is-not-activ.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,63 @@ +From d2b1d57b2de40283ce2e56ba0ed38056ac8db62a Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Mon, 26 Nov 2012 19:44:22 +0100 +Subject: [PATCH 04/12] Don't run systemd udev rules if systemd is not active + +--- + rules/99-systemd.rules.in | 1 + + src/login/70-uaccess.rules | 1 + + src/login/71-seat.rules.in | 1 + + src/login/73-seat-late.rules.in | 1 + + 4 files changed, 4 insertions(+) + +diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in +index d17bdd9..9ae1289 100644 +--- a/rules/99-systemd.rules.in ++++ b/rules/99-systemd.rules.in +@@ -6,6 +6,7 @@ + # (at your option) any later version. + + ACTION=="remove", GOTO="systemd_end" ++TEST!="/sys/fs/cgroup/systemd", GOTO="systemd_end" + + SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*", TAG+="systemd" + +diff --git a/src/login/70-uaccess.rules b/src/login/70-uaccess.rules +index a118f8e..47ebe41 100644 +--- a/src/login/70-uaccess.rules ++++ b/src/login/70-uaccess.rules +@@ -7,6 +7,7 @@ + + ACTION=="remove", GOTO="uaccess_end" + ENV{MAJOR}=="", GOTO="uaccess_end" ++TEST!="/sys/fs/cgroup/systemd", GOTO="uaccess_end" + + # PTP/MTP protocol devices, cameras, portable media players + SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:060101:*", TAG+="uaccess" +diff --git a/src/login/71-seat.rules.in b/src/login/71-seat.rules.in +index ad26acbb..af3f5bc 100644 +--- a/src/login/71-seat.rules.in ++++ b/src/login/71-seat.rules.in +@@ -6,6 +6,7 @@ + # (at your option) any later version. + + ACTION=="remove", GOTO="seat_end" ++TEST!="/sys/fs/cgroup/systemd", GOTO="seat_end" + + TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat" + SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat" +diff --git a/src/login/73-seat-late.rules.in b/src/login/73-seat-late.rules.in +index 901df75..4a3ffd8 100644 +--- a/src/login/73-seat-late.rules.in ++++ b/src/login/73-seat-late.rules.in +@@ -6,6 +6,7 @@ + # (at your option) any later version. + + ACTION=="remove", GOTO="seat_late_end" ++TEST!="/sys/fs/cgroup/systemd", GOTO="seat_late_end" + + ENV{ID_SEAT}=="", ENV{ID_AUTOSEAT}=="1", ENV{ID_FOR_SEAT}!="", ENV{ID_SEAT}="seat-$env{ID_FOR_SEAT}" + ENV{ID_SEAT}=="", IMPORT{parent}="ID_SEAT" +-- +1.7.10.4 + --- systemd-44/debian/patches/0005-Fix-mounting-of-remote-filesystems-like-NFS.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0005-Fix-mounting-of-remote-filesystems-like-NFS.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,78 @@ +From 42c8ac36d748e92029d48bf034e4a61d3dfb2ecb Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Sat, 9 Feb 2013 15:55:43 +0100 +Subject: [PATCH 05/12] Fix mounting of remote filesystems, like NFS + +Mounting remote filesystems, like NFS, via /etc/fstab using _netdev is +currently broken for two reasons: +- The nfs-common and rpcbind init scripts aren't correctly ordered + because rpcbind uses an insserv specific configuration file which + systemd doesn't parse, to define the $portmap system facility. + As a result nfs-common is started too early, before rpcbind is + running, and so the rpc.statd daemon simply exits. +- systemd automatically mounts filesystems with the _netdev option via + remote-fs.target. This target should block until network.target is + active. The network.target is currently not properly hooked up so + systemd tries to mount those filesystems too early, when the network + is not yet up. The result is a timeout during boot and a failed mount + attempt. + +This workaround does the following: +- Since the only provider for the portmap facility is the rpcbind + init script, we map this directly to rpcbind.service instead of + rpcbind.target. This ensures correct odering for init scripts using + Required-Start: $portmap. +- Remote mounts are no longer hooked up in the remote-fs.target, ie. + they are not started by systemd anymore. Instead we rely on the + if-up.d mountnfs hook to mount those types of filesystems. + +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=673309 +--- + src/core/service.c | 2 +- + src/core/special.h | 2 +- + src/fstab-generator/fstab-generator.c | 3 ++- + 3 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/core/service.c b/src/core/service.c +index a104b30..b521d8c 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -351,7 +351,7 @@ static int sysv_translate_facility(const char *name, const char *filename, char + "local_fs", NULL, + "network", SPECIAL_NETWORK_TARGET, + "named", SPECIAL_NSS_LOOKUP_TARGET, +- "portmap", SPECIAL_RPCBIND_TARGET, ++ "portmap", SPECIAL_RPCBIND_SERVICE, + "remote_fs", SPECIAL_REMOTE_FS_TARGET, + "syslog", NULL, + "time", SPECIAL_TIME_SYNC_TARGET, +diff --git a/src/core/special.h b/src/core/special.h +index a9b50bc..99d933c 100644 +--- a/src/core/special.h ++++ b/src/core/special.h +@@ -61,7 +61,7 @@ + /* LSB compatibility */ + #define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */ + #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named */ +-#define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */ ++#define SPECIAL_RPCBIND_SERVICE "rpcbind.service" /* LSB's $portmap */ + #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ + + /* +diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c +index 2790fc6..f278cc3 100644 +--- a/src/fstab-generator/fstab-generator.c ++++ b/src/fstab-generator/fstab-generator.c +@@ -315,7 +315,8 @@ static int add_mount( + } + + if (!noauto) { +- if (post) { ++ // don't start network mounts automatically, we do that via ifupdown hooks for now ++ if (post && !streq(post, SPECIAL_REMOTE_FS_TARGET)) { + lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL); + if (!lnk) + return log_oom(); +-- +1.7.10.4 + --- systemd-44/debian/patches/0006-Setup-tmpfile-to-comply-with-existing-Debian-practic.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0006-Setup-tmpfile-to-comply-with-existing-Debian-practic.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,53 @@ +From 7829284a4ac37fcc8a3b141809d5af36acd4904d Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Tue, 5 Mar 2013 04:32:30 +0100 +Subject: [PATCH 06/12] Setup tmpfile to comply with existing Debian practice + +- Clean /tmp on boot but not for files older then 10 days +- Do *not* clean /var/tmp regularly +- Use 1777 root:root since Debian doesn't have a lock group +--- + tmpfiles.d/legacy.conf | 4 ++-- + tmpfiles.d/tmp.conf | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tmpfiles.d/legacy.conf b/tmpfiles.d/legacy.conf +index 3fff347..7f3206c 100644 +--- a/tmpfiles.d/legacy.conf ++++ b/tmpfiles.d/legacy.conf +@@ -10,7 +10,7 @@ + # These files are considered legacy and are unnecessary on legacy-free + # systems. + +-d /run/lock 0755 root root - ++d /run/lock 1777 root root - + + # /run/lock/subsys is used for serializing SysV service execution, and + # hence without use on SysV-less systems. +@@ -23,7 +23,7 @@ d /run/lock/subsys 0755 root root - + # On modern systems a BSD file lock is a better choice if + # serialization is needed on those devices. + +-d /run/lock/lockdev 0775 root lock - ++d /run/lock/lockdev 0755 root root - + + # /forcefsck, /fastboot and /forcequotecheck are deprecated in favor of the + # kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and +diff --git a/tmpfiles.d/tmp.conf b/tmpfiles.d/tmp.conf +index 3b534a1..74bc677 100644 +--- a/tmpfiles.d/tmp.conf ++++ b/tmpfiles.d/tmp.conf +@@ -8,8 +8,8 @@ + # See tmpfiles.d(5) for details + + # Clear tmp directories separately, to make them easier to override +-d /tmp 1777 root root 10d +-d /var/tmp 1777 root root 30d ++D /tmp 1777 root root - ++#d /var/tmp 1777 root root 30d + + # Exclude namespace mountpoints created with PrivateTmp=yes + x /tmp/systemd-private-* +-- +1.7.10.4 + --- systemd-44/debian/patches/0007-Order-remote-fs.target-after-local-fs.target.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0007-Order-remote-fs.target-after-local-fs.target.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,26 @@ +From 0c19ba12d7acff7e96a0b406511377058d27ae4a Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Tue, 5 Mar 2013 04:34:15 +0100 +Subject: [PATCH 07/12] Order remote-fs.target after local-fs.target + +In Debian the LSB remote_fs facility implies local_fs. +--- + units/remote-fs.target | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/units/remote-fs.target b/units/remote-fs.target +index e867b8d..a86db4e 100644 +--- a/units/remote-fs.target ++++ b/units/remote-fs.target +@@ -8,7 +8,7 @@ + [Unit] + Description=Remote File Systems + Documentation=man:systemd.special(7) +-After=remote-fs-pre.target remote-fs-setup.target ++After=remote-fs-pre.target remote-fs-setup.target local-fs.target + + [Install] + WantedBy=multi-user.target +-- +1.7.10.4 + --- systemd-44/debian/patches/0008-Revert-service-drop-support-for-SysV-scripts-for-the.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0008-Revert-service-drop-support-for-SysV-scripts-for-the.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,90 @@ +From d3a1c8d0690347fefcdce24d469d6607d8890f04 Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Tue, 5 Mar 2013 03:56:18 +0100 +Subject: [PATCH 08/12] Revert "service: drop support for SysV scripts for the + early boot" + +This reverts the Debian specific bits from commit +3cdebc217c42c8529086f2965319b6a48eaaeabe. + +We still have 100+ packages shipping SysV init scripts in rcS so it's +too early to drop support for that. We eventually might use a separate +generator for that, as this would be cleaner. But for now that will do. +--- + src/core/service.c | 22 ++++++++++++++++++---- + 1 file changed, 18 insertions(+), 4 deletions(-) + +diff --git a/src/core/service.c b/src/core/service.c +index b521d8c..4740bd5 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -51,7 +51,8 @@ + + typedef enum RunlevelType { + RUNLEVEL_UP, +- RUNLEVEL_DOWN ++ RUNLEVEL_DOWN, ++ RUNLEVEL_SYSINIT + } RunlevelType; + + static const struct { +@@ -66,6 +67,9 @@ static const struct { + { "rc4.d", SPECIAL_RUNLEVEL4_TARGET, RUNLEVEL_UP }, + { "rc5.d", SPECIAL_RUNLEVEL5_TARGET, RUNLEVEL_UP }, + ++ /* Debian style rcS.d */ ++ { "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT }, ++ + /* Standard SysV runlevels for shutdown */ + { "rc0.d", SPECIAL_POWEROFF_TARGET, RUNLEVEL_DOWN }, + { "rc6.d", SPECIAL_REBOOT_TARGET, RUNLEVEL_DOWN } +@@ -74,10 +78,12 @@ static const struct { + directories in this order, and we want to make sure that + sysv_start_priority is known when we first load the + unit. And that value we only know from S links. Hence +- UP must be read before DOWN */ ++ UP/SYSINIT must be read before DOWN */ + }; + + #define RUNLEVELS_UP "12345" ++/* #define RUNLEVELS_DOWN "06" */ ++#define RUNLEVELS_BOOT "bBsS" + #endif + + static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = { +@@ -905,6 +911,13 @@ static int service_load_sysv_path(Service *s, const char *path) { + + if ((r = sysv_exec_commands(s, supports_reload)) < 0) + goto finish; ++ if (s->sysv_runlevels && ++ chars_intersect(RUNLEVELS_BOOT, s->sysv_runlevels) && ++ chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { ++ /* Service has both boot and "up" runlevels ++ configured. Kill the "up" ones. */ ++ delete_chars(s->sysv_runlevels, RUNLEVELS_UP); ++ } + + if (s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels)) { + /* If there a runlevels configured for this service +@@ -3527,7 +3540,7 @@ static int service_enumerate(Manager *m) { + + if (de->d_name[0] == 'S') { + +- if (rcnd_table[i].type == RUNLEVEL_UP) { ++ if (rcnd_table[i].type == RUNLEVEL_UP || rcnd_table[i].type == RUNLEVEL_SYSINIT) { + SERVICE(service)->sysv_start_priority_from_rcnd = + MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); + +@@ -3544,7 +3557,8 @@ static int service_enumerate(Manager *m) { + goto finish; + + } else if (de->d_name[0] == 'K' && +- (rcnd_table[i].type == RUNLEVEL_DOWN)) { ++ (rcnd_table[i].type == RUNLEVEL_DOWN || ++ rcnd_table[i].type == RUNLEVEL_SYSINIT)) { + + r = set_ensure_allocated(&shutdown_services, + trivial_hash_func, trivial_compare_func); +-- +1.7.10.4 + --- systemd-44/debian/patches/0009-Revert-service-ignore-dependencies-on-syslog-and-loc.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0009-Revert-service-ignore-dependencies-on-syslog-and-loc.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,221 @@ +From fd0107293d6ebd44f1b556d61875bdfdf48f5174 Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Thu, 28 Mar 2013 03:17:59 +0100 +Subject: [PATCH 09/12] Revert "service: ignore dependencies on $syslog and + $local_fs in LSB scripts" + +This reverts commit 5d4caf565471ff3401bd9b53aa814c8545a18a93. + +Conflicts: + man/systemd.special.xml + src/core/special.h +--- + Makefile.am | 1 + + man/systemd.special.xml | 35 +++++++++++++++++++++++++++++++++++ + src/core/service.c | 16 +++++++++------- + src/core/special.h | 3 ++- + units/syslog.socket | 5 ++++- + units/syslog.target | 19 +++++++++++++++++++ + units/systemd-journald.socket | 2 +- + 7 files changed, 71 insertions(+), 10 deletions(-) + create mode 100644 units/syslog.target + +diff --git a/Makefile.am b/Makefile.am +index 21a0e4b..6b90f08 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -395,6 +395,7 @@ dist_systemunit_DATA = \ + units/quotaon.service \ + units/systemd-ask-password-wall.path \ + units/systemd-ask-password-console.path \ ++ units/syslog.target \ + units/systemd-udevd-control.socket \ + units/systemd-udevd-kernel.socket \ + units/system-update.target \ +diff --git a/man/systemd.special.xml b/man/systemd.special.xml +index cd0f5aa..989dc6f 100644 +--- a/man/systemd.special.xml ++++ b/man/systemd.special.xml +@@ -97,6 +97,7 @@ + swap.target, + sysinit.target, + syslog.socket, ++ syslog.target, + system-update.target, + time-sync.target, + timers.target, +@@ -363,6 +364,27 @@ + that have the + mount + option set. ++ ++ systemd automatically ++ adds dependencies of type ++ After for this target unit to ++ all SysV init script service ++ units with an LSB header ++ referring to the ++ $local_fs ++ facility. ++ ++ ++ ++ local-fs-pre.target ++ ++ This target unit is ++ automatically ordered before ++ all local mount points marked ++ with ++ (see above). It can be used to ++ execute certain units before ++ all local mounts. + + + +@@ -671,6 +693,19 @@ + + + ++ syslog.target ++ ++ systemd automatically ++ adds dependencies of type ++ After for this target unit to ++ all SysV init script service ++ units with an LSB header ++ referring to the ++ $syslog ++ facility. ++ ++ ++ + system-update.target + + A special target unit +diff --git a/src/core/service.c b/src/core/service.c +index 4740bd5..3d3bcb6 100644 +--- a/src/core/service.c ++++ b/src/core/service.c +@@ -330,8 +330,7 @@ static void service_done(Unit *u) { + static char *sysv_translate_name(const char *name) { + char *r; + +- r = new(char, strlen(name) + sizeof(".service")); +- if (!r) ++ if (!(r = new(char, strlen(name) + sizeof(".service")))) + return NULL; + + if (endswith(name, ".sh")) +@@ -354,12 +353,16 @@ static int sysv_translate_facility(const char *name, const char *filename, char + + static const char * const table[] = { + /* LSB defined facilities */ +- "local_fs", NULL, ++ "local_fs", SPECIAL_LOCAL_FS_TARGET, ++ /* Due to unfortunate name selection in Mandriva, ++ * $network is provided by network-up which is ordered ++ * after network which actually starts interfaces. ++ * To break the loop, just ignore it */ + "network", SPECIAL_NETWORK_TARGET, + "named", SPECIAL_NSS_LOOKUP_TARGET, + "portmap", SPECIAL_RPCBIND_SERVICE, + "remote_fs", SPECIAL_REMOTE_FS_TARGET, +- "syslog", NULL, ++ "syslog", SPECIAL_SYSLOG_TARGET, + "time", SPECIAL_TIME_SYNC_TARGET, + }; + +@@ -380,9 +383,8 @@ static int sysv_translate_facility(const char *name, const char *filename, char + if (!table[i+1]) + return 0; + +- r = strdup(table[i+1]); +- if (!r) +- return log_oom(); ++ if (!(r = strdup(table[i+1]))) ++ return -ENOMEM; + + goto finish; + } +diff --git a/src/core/special.h b/src/core/special.h +index 99d933c..7132a35 100644 +--- a/src/core/special.h ++++ b/src/core/special.h +@@ -48,7 +48,7 @@ + #define SPECIAL_SOCKETS_TARGET "sockets.target" + #define SPECIAL_TIMERS_TARGET "timers.target" + #define SPECIAL_PATHS_TARGET "paths.target" +-#define SPECIAL_LOCAL_FS_TARGET "local-fs.target" ++#define SPECIAL_LOCAL_FS_TARGET "local-fs.target" /* LSB's $local_fs */ + #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target" + #define SPECIAL_INITRD_FS_TARGET "initrd-fs.target" + #define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target" +@@ -62,6 +62,7 @@ + #define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */ + #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named */ + #define SPECIAL_RPCBIND_SERVICE "rpcbind.service" /* LSB's $portmap */ ++#define SPECIAL_SYSLOG_TARGET "syslog.target" /* LSB's $syslog */ + #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ + + /* +diff --git a/units/syslog.socket b/units/syslog.socket +index e6e9cf8..c784357 100644 +--- a/units/syslog.socket ++++ b/units/syslog.socket +@@ -10,11 +10,14 @@ Description=Syslog Socket + Documentation=man:systemd.special(7) + Documentation=http://www.freedesktop.org/wiki/Software/systemd/syslog + DefaultDependencies=no +-Before=sockets.target shutdown.target ++Before=sockets.target syslog.target shutdown.target + + # Don't allow logging until the very end + Conflicts=shutdown.target + ++# Pull in syslog.target to tell people that /dev/log is now accessible ++Wants=syslog.target ++ + [Socket] + ListenDatagram=/run/systemd/journal/syslog + SocketMode=0666 +diff --git a/units/syslog.target b/units/syslog.target +new file mode 100644 +index 0000000..423fef3 +--- /dev/null ++++ b/units/syslog.target +@@ -0,0 +1,19 @@ ++# This file is part of systemd. ++# ++# systemd is free software; you can redistribute it and/or modify it ++# under the terms of the GNU Lesser General Public License as published by ++# the Free Software Foundation; either version 2.1 of the License, or ++# (at your option) any later version. ++ ++# This exists mostly for compatibility with SysV/LSB units, and ++# implementations lacking socket/bus activation. ++ ++[Unit] ++Description=Syslog ++Documentation=man:systemd.special(7) ++Documentation=http://www.freedesktop.org/wiki/Software/systemd/syslog ++ ++# Avoid that we conflict with shutdown.target, so that we can stay ++# until the very end and do not cancel shutdown.target if we should ++# happen to be activated very late. ++DefaultDependencies=no +diff --git a/units/systemd-journald.socket b/units/systemd-journald.socket +index 4f0619d..dbe8882 100644 +--- a/units/systemd-journald.socket ++++ b/units/systemd-journald.socket +@@ -9,7 +9,7 @@ + Description=Journal Socket + Documentation=man:systemd-journald.service(8) man:journald.conf(5) + DefaultDependencies=no +-Before=sockets.target ++Before=sockets.target syslog.target + + # Mount and swap units need this. If this socket unit is removed by an + # isolate request the mount and and swap units would be removed too, +-- +1.7.10.4 + --- systemd-44/debian/patches/0010-Add-back-support-for-Debian-specific-config-files.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0010-Add-back-support-for-Debian-specific-config-files.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,97 @@ +From e085c4ff227868ee546b4ac58998aaef9a393482 Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Tue, 5 Mar 2013 04:10:06 +0100 +Subject: [PATCH 10/12] Add back support for Debian specific config files + +For now fallback to read the locale settings from /etc/default/locale. + +This reverts the Debian specific bits from +46a2911bf2780f616396df5671dd901cc7cb54fd +99f861310d3f05f4e86cb9582a94b891dbb3382b +--- + src/core/locale-setup.c | 21 +++++++++++++++++++++ + src/timedate/timedated.c | 18 ++++++++++++++++++ + 2 files changed, 39 insertions(+) + +diff --git a/src/core/locale-setup.c b/src/core/locale-setup.c +index d7113b9..ac922f1 100644 +--- a/src/core/locale-setup.c ++++ b/src/core/locale-setup.c +@@ -117,6 +117,27 @@ int locale_setup(void) { + log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); + } + ++ if (r <= 0 && ++ (r = parse_env_file("/etc/default/locale", NEWLINE, ++ "LANG", &variables[VARIABLE_LANG], ++ "LC_CTYPE", &variables[VARIABLE_LC_CTYPE], ++ "LC_NUMERIC", &variables[VARIABLE_LC_NUMERIC], ++ "LC_TIME", &variables[VARIABLE_LC_TIME], ++ "LC_COLLATE", &variables[VARIABLE_LC_COLLATE], ++ "LC_MONETARY", &variables[VARIABLE_LC_MONETARY], ++ "LC_MESSAGES", &variables[VARIABLE_LC_MESSAGES], ++ "LC_PAPER", &variables[VARIABLE_LC_PAPER], ++ "LC_NAME", &variables[VARIABLE_LC_NAME], ++ "LC_ADDRESS", &variables[VARIABLE_LC_ADDRESS], ++ "LC_TELEPHONE", &variables[VARIABLE_LC_TELEPHONE], ++ "LC_MEASUREMENT", &variables[VARIABLE_LC_MEASUREMENT], ++ "LC_IDENTIFICATION", &variables[VARIABLE_LC_IDENTIFICATION], ++ NULL)) < 0) { ++ ++ if (r != -ENOENT) ++ log_warning("Failed to read /etc/default/locale: %s", strerror(-r)); ++ } ++ + if (!variables[VARIABLE_LANG]) { + variables[VARIABLE_LANG] = strdup("C"); + if (!variables[VARIABLE_LANG]) { +diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c +index 4efa806..8069ed5 100644 +--- a/src/timedate/timedated.c ++++ b/src/timedate/timedated.c +@@ -181,6 +181,12 @@ static int read_data(void) { + } + } + ++ r = read_one_line_file("/etc/timezone", &tz.zone); ++ if (r < 0) { ++ if (r != -ENOENT) ++ log_warning("Failed to read /etc/timezone: %s", strerror(-r)); ++ } ++ + have_timezone: + if (isempty(tz.zone)) { + free(tz.zone); +@@ -196,10 +202,15 @@ static int write_data_timezone(void) { + int r = 0; + _cleanup_free_ char *p = NULL; + ++ struct stat st; ++ + if (!tz.zone) { + if (unlink("/etc/localtime") < 0 && errno != ENOENT) + r = -errno; + ++ if (unlink("/etc/timezone") < 0 && errno != ENOENT) ++ r = -errno; ++ + return r; + } + +@@ -211,6 +222,13 @@ static int write_data_timezone(void) { + if (r < 0) + return r; + ++ if (stat("/etc/timezone", &st) == 0 && S_ISREG(st.st_mode)) { ++ r = write_string_file_atomic("/etc/timezone", tz.zone); ++ if (r < 0) ++ return r; ++ } ++ ++ + return 0; + } + +-- +1.7.10.4 + --- systemd-44/debian/patches/0011-libudev-Move-lrt-to-Libs.private.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0011-libudev-Move-lrt-to-Libs.private.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,28 @@ +From 8c71473c3d39a7e3e5266edfdbdc5381759ceef3 Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Tue, 9 Apr 2013 15:26:39 +0200 +Subject: [PATCH 11/12] libudev: Move -lrt to Libs.private + +It's only needed for static linking. + +https://bugs.freedesktop.org/show_bug.cgi?id=63309 +--- + src/libudev/libudev.pc.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/libudev/libudev.pc.in b/src/libudev/libudev.pc.in +index dad7139..2b183e9 100644 +--- a/src/libudev/libudev.pc.in ++++ b/src/libudev/libudev.pc.in +@@ -13,6 +13,6 @@ includedir=@includedir@ + Name: libudev + Description: Library to access udev device information + Version: @VERSION@ +-Libs: -L${libdir} -ludev -lrt +-Libs.private: ++Libs: -L${libdir} -ludev ++Libs.private: -lrt + Cflags: -I${includedir} +-- +1.7.10.4 + --- systemd-44/debian/patches/0012-journal-fix-broken-tags-_SOURCE_REALTIME_TIMESTAMP-a.patch 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/patches/0012-journal-fix-broken-tags-_SOURCE_REALTIME_TIMESTAMP-a.patch 2013-04-13 15:36:57.000000000 +0000 @@ -0,0 +1,35 @@ +From 480dd0d3b82af4126f7a8a5b521e3628d1c97506 Mon Sep 17 00:00:00 2001 +From: Mirco Tischler +Date: Sat, 13 Apr 2013 01:03:49 +0200 +Subject: [PATCH 12/12] journal: fix broken tags _SOURCE_REALTIME_TIMESTAMP + and _MACHINE_ID + +--- + src/journal/journald-server.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c +index 53e3830..be84323 100644 +--- a/src/journal/journald-server.c ++++ b/src/journal/journald-server.c +@@ -538,7 +538,7 @@ static void dispatch_message_real( + char pid[sizeof("_PID=") + DECIMAL_STR_MAX(ucred->pid)], + uid[sizeof("_UID=") + DECIMAL_STR_MAX(ucred->uid)], + gid[sizeof("_GID=") + DECIMAL_STR_MAX(ucred->gid)], +- source_time[sizeof("_SOURCE_REALTIME_TIMESTAMP=" + DECIMAL_STR_MAX(usec_t))], ++ source_time[sizeof("_SOURCE_REALTIME_TIMESTAMP=") + DECIMAL_STR_MAX(usec_t)], + boot_id[sizeof("_BOOT_ID=") + 32] = "_BOOT_ID=", + machine_id[sizeof("_MACHINE_ID=") + 32] = "_MACHINE_ID="; + +@@ -699,7 +699,7 @@ static void dispatch_message_real( + + r = sd_id128_get_machine(&id); + if (r >= 0) { +- sd_id128_to_string(id, machine_id + sizeof("_MACHINE_ID") - 1); ++ sd_id128_to_string(id, machine_id + sizeof("_MACHINE_ID=") - 1); + IOVEC_SET_STRING(iovec[n++], machine_id); + } + +-- +1.7.10.4 + --- systemd-44/debian/patches/debian-changes 2013-02-15 16:12:22.000000000 +0000 +++ systemd-201/debian/patches/debian-changes 1970-01-01 00:00:00.000000000 +0000 @@ -1,616 +0,0 @@ -Description: - TODO: Put a short summary on the line above and replace this paragraph - with a longer explanation of this change. Complete the meta-information - with other relevant fields (see below for details). To make it easier, the - information below has been extracted from the changelog. Adjust it or drop - it. - . - systemd (44-10) unstable; urgency=low - . - * Team upload. - * Using the return code of "systemctl is-enabled" to determine whether we - enable a service or not is unreliable since it also returns a non-zero - exit code for masked services. As we don't want to enable masked services, - grep for the string "disabled" instead. -Author: Michael Biebl - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: , -Bug: -Bug-Debian: http://bugs.debian.org/ -Bug-Ubuntu: https://launchpad.net/bugs/ -Forwarded: -Reviewed-By: -Last-Update: - ---- /dev/null -+++ systemd-44/autogen.sh -@@ -0,0 +1,56 @@ -+#!/bin/bash -+ -+# This file is part of systemd. -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+# -+# systemd is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with systemd; If not, see . -+ -+if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then -+ cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit && \ -+ chmod +x .git/hooks/pre-commit && \ -+ echo "Activated pre-commit hook." -+fi -+ -+intltoolize --force --automake -+autoreconf --force --install --symlink -+ -+libdir() { -+ echo $(cd $1/$(gcc -print-multi-os-directory); pwd) -+} -+ -+args="\ -+--sysconfdir=/etc \ -+--localstatedir=/var \ -+--libdir=$(libdir /usr/lib) \ -+--libexecdir=/usr/lib" -+ -+if [ ! -L /bin ]; then -+args="$args \ -+--with-rootprefix= \ -+--with-rootlibdir=$(libdir /lib) \ -+" -+fi -+ -+if [ "x$1" != "xc" ]; then -+ echo -+ echo "----------------------------------------------------------------" -+ echo "Initialized build system. For a common configuration please run:" -+ echo "----------------------------------------------------------------" -+ echo -+ echo "./configure CFLAGS='-g -O0' $args" -+ echo -+else -+ echo ./configure CFLAGS='-g -O0' $args -+ ./configure CFLAGS='-g -O0' $args -+ make clean -+fi ---- /dev/null -+++ systemd-44/.dir-locals.el -@@ -0,0 +1,7 @@ -+; Sets emacs variables based on mode. -+; A list of (major-mode . ((var1 . value1) (var2 . value2))) -+; Mode can be nil, which gives default values. -+ -+((nil . ((indent-tabs-mode . nil) -+ (tab-width . 8))) -+) ---- /dev/null -+++ systemd-44/CODING_STYLE -@@ -0,0 +1,27 @@ -+ -+- 8ch indent, no tabs -+ -+- structs in MixedCase, variables, functions in lower_case -+ -+- the destructors always unregister the object from the next bigger -+ object, not the other way around -+ -+- to minimize strict aliasing violations we prefer unions over casting -+ -+- for robustness reasons destructors should be able to destruct -+ half-initialized objects, too -+ -+- error codes are returned as negative Exxx. i.e. return -EINVAL. There -+ are some exceptions: for constructors its is OK to return NULL on -+ OOM. For lookup functions NULL is fine too for "not found". -+ -+- Do not issue NSS requests (that includes user name and host name -+ lookups) from the main daemon as this might trigger deadlocks when -+ we those lookups involve synchronously talking to services that we -+ would need to start up. -+ -+- Do not access any directories outside of /etc/, /dev, /lib from the -+ init daemon to avoid deadlocks with the automounter. -+ -+- Don't synchronously talk to any other service, due to risk of -+ deadlocks. ---- /dev/null -+++ systemd-44/.vimrc -@@ -0,0 +1,4 @@ -+" 'set exrc' in ~/.vimrc will read .vimrc from the current directory -+set tabstop=8 -+set shiftwidth=8 -+set expandtab ---- systemd-44.orig/Makefile.am -+++ systemd-44/Makefile.am -@@ -2201,13 +2201,15 @@ XSLTPROC_FLAGS = \ - --nonet \ - --stringparam funcsynopsis.style ansi - -+T=$(shell dpkg-parsechangelog | awk -F": " '$$1 == "Date" { print $$2 }') -+ - XSLTPROC_PROCESS_MAN = \ - $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ -- $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< -+ TZ=UTC faketime "$(T)" $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< - - XSLTPROC_PROCESS_HTML = \ - $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ -- $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $< -+ TZ=UTC faketime "$(T)" $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $< - - man/%.1: man/%.xml - $(XSLTPROC_PROCESS_MAN) ---- /dev/null -+++ systemd-44/.mailmap -@@ -0,0 +1,4 @@ -+Kay Sievers -+Robert Gerus Robert "arachnist" Gerus -+Zbigniew Jędrzejewski-Szmek Zbyszek Szmek -+Fabiano Fidêncio Fabiano Fidencio ---- systemd-44.orig/man/systemd.mount.xml -+++ systemd-44/man/systemd.mount.xml -@@ -112,13 +112,13 @@ - points from /etc/fstab. If - is set in - system.conf (which is the -- default), or if is -+ default), or if is - specified as mount option, then systemd will create a - dependency of type from either - local-fs.target or - remote-fs.target, depending - whether the file system is local or remote. If -- is set, an -+ is set, an - automount unit will be created for the file - system. See - systemd.automount5 ---- /dev/null -+++ systemd-44/po/pl.po -@@ -0,0 +1,175 @@ -+# translation of pl.po to Polish -+# Piotr Drąg , 2011. -+# Zbigniew Jędrzejewski-Szmek , 2011. -+# -+msgid "" -+msgstr "" -+"Project-Id-Version: systemd\n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2011-10-14 16:18+0200\n" -+"PO-Revision-Date: 2011-10-14 16:20+0200\n" -+"Last-Translator: Piotr Drąg \n" -+"Language-Team: Polish \n" -+"Language: pl\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+ -+#: ../src/org.freedesktop.hostname1.policy.in.h:1 -+msgid "Authentication is required to set local machine information." -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby ustawić informacje o lokalnym komputerze." -+ -+#: ../src/org.freedesktop.hostname1.policy.in.h:2 -+msgid "Authentication is required to set the local host name." -+msgstr "Wymagane jest uwierzytelnienie, aby ustawić nazwę lokalnego komputera." -+ -+#: ../src/org.freedesktop.hostname1.policy.in.h:3 -+msgid "" -+"Authentication is required to set the statically configured local host name, " -+"as well as the pretty host name." -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby ustawić statycznie skonfigurowaną nazwę " -+"lokalnego komputera, a także jego ładną nazwę." -+ -+#: ../src/org.freedesktop.hostname1.policy.in.h:4 -+msgid "Set host name" -+msgstr "Ustawienie nazwy komputera" -+ -+#: ../src/org.freedesktop.hostname1.policy.in.h:5 -+msgid "Set machine information" -+msgstr "Ustawienie informacji o komputerze" -+ -+#: ../src/org.freedesktop.hostname1.policy.in.h:6 -+msgid "Set static host name" -+msgstr "Ustawienie statycznej nazwy komputera" -+ -+#: ../src/org.freedesktop.locale1.policy.in.h:1 -+msgid "Authentication is required to set the system keyboard settings." -+msgstr "Wymagane jest uwierzytelnienie, aby ustawić klawiaturę systemu." -+ -+#: ../src/org.freedesktop.locale1.policy.in.h:2 -+msgid "Authentication is required to set the system locale." -+msgstr "Wymagane jest uwierzytelnienie, aby ustawić lokalizację systemu." -+ -+#: ../src/org.freedesktop.locale1.policy.in.h:3 -+msgid "Set system keyboard settings" -+msgstr "Ustawienie klawiatury systemu" -+ -+#: ../src/org.freedesktop.locale1.policy.in.h:4 -+msgid "Set system locale" -+msgstr "Ustawienie lokalizacji systemu" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:1 -+msgid "Allow attaching devices to seats" -+msgstr "Zezwolenie na podłączanie urządzeń do stanowisk" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:2 -+msgid "Allow non-logged-in users to run programs" -+msgstr "Zezwolenie niezalogowanym użytkownikom na uruchamianie programów" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:3 -+msgid "" -+"Authentication is required to allow a non-logged-in user to run programs" -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby ustawić zezwolić niezalogowanym " -+"użytkownikom na uruchamianie programów" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:4 -+msgid "Authentication is required to allow attaching a device to a seat" -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby zezwolić na podłączenie urządzenia do " -+"stanowiska" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:5 -+msgid "Authentication is required to allow powering off the system" -+msgstr "Wymagane jest uwierzytelnienie, aby zezwolić na wyłączanie systemu" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:6 -+msgid "" -+"Authentication is required to allow powering off the system while other " -+"users are logged in" -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby zezwolić na wyłączanie systemu, kiedy są " -+"zalogowani inni użytkownicy" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:7 -+msgid "Authentication is required to allow rebooting the system" -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby zezwolić na ponowne uruchamianie systemu" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:8 -+msgid "" -+"Authentication is required to allow rebooting the system while other users " -+"are logged in" -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby zezwolić na ponowne uruchamianie " -+"systemu, kiedy są zalogowani inni użytkownicy" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:9 -+msgid "" -+"Authentication is required to allow resetting how devices are attached to " -+"seats" -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby zezwolić na ponowne ustawianie sposobu " -+"podłączenia urządzeń do stanowisk" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:10 -+msgid "Flush device to seat attachments" -+msgstr "Usunięcie podłączenia urządzeń do stanowisk" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:11 -+msgid "Power off the system" -+msgstr "Wyłączenie systemu" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:12 -+msgid "Power off the system when other users are logged in" -+msgstr "Wyłączenie systemu, kiedy są zalogowani inni użytkownicy" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:13 -+msgid "Reboot the system" -+msgstr "Ponowne uruchomienie systemu" -+ -+#: ../src/org.freedesktop.login1.policy.in.h:14 -+msgid "Reboot the system when other users are logged in" -+msgstr "Ponowne uruchomienie systemu, kiedy są zalogowani inni użytkownicy" -+ -+#: ../src/org.freedesktop.timedate1.policy.in.h:1 -+msgid "" -+"Authentication is required to control whether network time synchronization " -+"shall be enabled." -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby kontrolować, czy włączyć synchronizację " -+"czasu przez sieć." -+ -+#: ../src/org.freedesktop.timedate1.policy.in.h:2 -+msgid "" -+"Authentication is required to control whether the RTC stores the local or " -+"UTC time." -+msgstr "" -+"Wymagane jest uwierzytelnienie, aby kontrolować, czy RTC przechowuje czas " -+"lokalny lub czas UTC." -+ -+#: ../src/org.freedesktop.timedate1.policy.in.h:3 -+msgid "Authentication is required to set the system time." -+msgstr "Wymagane jest uwierzytelnienie, aby ustawić czas systemu." -+ -+#: ../src/org.freedesktop.timedate1.policy.in.h:4 -+msgid "Authentication is required to set the system timezone." -+msgstr "Wymagane jest uwierzytelnienie, aby ustawić strefę czasową systemu." -+ -+#: ../src/org.freedesktop.timedate1.policy.in.h:5 -+msgid "Set RTC to local timezone or UTC" -+msgstr "Ustawienie RTC na lokalną strefę czasową lub strefę UTC" -+ -+#: ../src/org.freedesktop.timedate1.policy.in.h:6 -+msgid "Set system time" -+msgstr "Ustawienie czasu systemu" -+ -+#: ../src/org.freedesktop.timedate1.policy.in.h:7 -+msgid "Set system timezone" -+msgstr "Ustawienie strefy czasowej systemu" -+ -+#: ../src/org.freedesktop.timedate1.policy.in.h:8 -+msgid "Turn network time synchronization on or off" -+msgstr "Włączenie lub wyłączenie synchronizacji czasu przez sieć" ---- systemd-44.orig/src/99-systemd.rules.in -+++ systemd-44/src/99-systemd.rules.in -@@ -6,6 +6,7 @@ - # (at your option) any later version. - - ACTION=="remove", GOTO="systemd_end" -+TEST!="/sys/fs/cgroup/systemd", GOTO="systemd_end" - - SUBSYSTEM=="tty", KERNEL=="tty[0-9]|tty1[0-2]", TAG+="systemd" - SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*", TAG+="systemd" ---- systemd-44.orig/src/special.h -+++ systemd-44/src/special.h -@@ -54,7 +54,7 @@ - /* LSB compatibility */ - #define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */ - #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named */ --#define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */ -+#define SPECIAL_RPCBIND_SERVICE "rpcbind.service" /* LSB's $portmap */ - #define SPECIAL_SYSLOG_TARGET "syslog.target" /* LSB's $syslog; Should pull in syslog.socket or syslog.service */ - #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ - #define SPECIAL_DISPLAY_MANAGER_SERVICE "display-manager.service" /* Debian's $x-display-manager */ ---- systemd-44.orig/src/service.c -+++ systemd-44/src/service.c -@@ -344,7 +344,7 @@ static int sysv_translate_facility(const - "network", SPECIAL_NETWORK_TARGET, - #endif - "named", SPECIAL_NSS_LOOKUP_TARGET, -- "portmap", SPECIAL_RPCBIND_TARGET, -+ "portmap", SPECIAL_RPCBIND_SERVICE, - "remote_fs", SPECIAL_REMOTE_FS_TARGET, - "syslog", SPECIAL_SYSLOG_TARGET, - "time", SPECIAL_TIME_SYNC_TARGET, ---- systemd-44.orig/src/mount.c -+++ systemd-44/src/mount.c -@@ -390,7 +390,7 @@ static int mount_add_fstab_links(Mount * - else /* automount + nofail */ - return unit_add_two_dependencies(tu, UNIT_AFTER, UNIT_WANTS, am, true); - -- } else if (handle && !noauto) { -+ } else if (handle && !noauto && !mount_is_network(p)) { - - /* Automatically add mount points that aren't natively - * configured to local-fs.target */ ---- systemd-44.orig/src/manager.c -+++ systemd-44/src/manager.c -@@ -1700,6 +1700,8 @@ static int transaction_add_isolate_jobs( - int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, bool override, DBusError *e, Job **_ret) { - int r; - Job *ret; -+ Job *j; -+ Iterator i; - - assert(m); - assert(type < _JOB_TYPE_MAX); -@@ -1711,6 +1713,45 @@ int manager_add_job(Manager *m, JobType - return -EINVAL; - } - -+ if (type == JOB_RELOAD || type == JOB_RELOAD_OR_START || type == JOB_RESTART || type == JOB_TRY_RESTART) { -+ /* If final.target is queued (happens on poweroff, reboot and -+ * halt), we will not accept new reload jobs. They would not be -+ * executed ever anyways (since the shutdown comes first), but -+ * they block the shutdown process: when systemd tries to stop -+ * a unit such as ifup@eth0.service, that unit might invoke a -+ * systemctl reload command, which blockingly waits (but only -+ * gets executed after all other queued units for the shutdown -+ * have been executed). -+ * -+ * See http://bugs.debian.org/624599 and -+ * http://bugs.debian.org/635777 */ -+ HASHMAP_FOREACH(j, m->jobs, i) { -+ assert(j->installed); -+ -+ if (strcmp(j->unit->id, "final.target") == 0) { -+ log_debug("final.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); -+ dbus_set_error(e, BUS_ERROR_INVALID_JOB_MODE, "final.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); -+ return -EINVAL; -+ } -+ /* Trying to reload services from multi-user.target -+ * during the early boot stage can lead to deadlocks. -+ * An example is samba being reloaded by the dhcp hook -+ * when the network is activated during rcS. -+ * As a workaround we ignore reload or (re)start -+ * requests while sysinit.target is queued for -+ * services which have the DefaultDependencies option -+ * set to yes. -+ * -+ * See http://bugs.debian.org/624599 */ -+ if (strcmp(j->unit->id, "sysinit.target") == 0 && unit->default_dependencies) { -+ log_debug("sysinit.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); -+ dbus_set_error(e, BUS_ERROR_INVALID_JOB_MODE, "sysinit.target is queued, ignoring %s request for unit %s", job_type_to_string(type), unit->id); -+ return -EINVAL; -+ } -+ } -+ } -+ -+ - if (mode == JOB_ISOLATE && !unit->allow_isolate) { - dbus_set_error(e, BUS_ERROR_NO_ISOLATION, "Operation refused, unit may not be isolated."); - return -EPERM; ---- /dev/null -+++ systemd-44/src/Makefile -@@ -0,0 +1,28 @@ -+# This file is part of systemd. -+# -+# Copyright 2010 Lennart Poettering -+# -+# systemd is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+# -+# systemd is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with systemd; If not, see . -+ -+# This file is a dirty trick to simplify compilation from within -+# emacs. This file is not intended to be distributed. So, don't touch -+# it, even better ignore it! -+ -+all: -+ $(MAKE) -C .. -+ -+clean: -+ $(MAKE) -C .. clean -+ -+.PHONY: all clean ---- systemd-44.orig/src/login/70-uaccess.rules -+++ systemd-44/src/login/70-uaccess.rules -@@ -7,6 +7,7 @@ - - ACTION=="remove", GOTO="uaccess_end" - ENV{MAJOR}=="", GOTO="uaccess_end" -+TEST!="/sys/fs/cgroup/systemd", GOTO="uaccess_end" - - # PTP/MTP protocol devices, cameras, portable media players - SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="", ENV{DEVTYPE}=="usb_device", IMPORT{program}="usb_id --export %p" ---- systemd-44.orig/src/login/logind-session.c -+++ systemd-44/src/login/logind-session.c -@@ -627,7 +627,7 @@ static int session_terminate_cgroup(Sess - - r = manager_get_session_by_pid(s->manager, s->leader, &t); - if (r > 0 && t == s) { -- kill(s->leader, SIGTERM); /* for normal processes */ -+ /*kill(s->leader, SIGTERM); */ /* for normal processes */ - kill(s->leader, SIGHUP); /* for shells */ - kill(s->leader, SIGCONT); /* in case they are stopped */ - } ---- systemd-44.orig/src/login/71-seat.rules -+++ systemd-44/src/login/71-seat.rules -@@ -6,6 +6,7 @@ - # (at your option) any later version. - - ACTION=="remove", GOTO="seat_end" -+TEST!="/sys/fs/cgroup/systemd", GOTO="seat_end" - - TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat" - SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat" ---- systemd-44.orig/src/login/73-seat-late.rules.in -+++ systemd-44/src/login/73-seat-late.rules.in -@@ -6,6 +6,7 @@ - # (at your option) any later version. - - ACTION=="remove", GOTO="seat_late_end" -+TEST!="/sys/fs/cgroup/systemd", GOTO="seat_late_end" - - ENV{ID_SEAT}=="", ENV{ID_AUTOSEAT}=="1", ENV{ID_FOR_SEAT}!="", ENV{ID_SEAT}="seat-$env{ID_FOR_SEAT}" - ENV{ID_SEAT}=="", IMPORT{parent}="ID_SEAT" ---- systemd-44.orig/src/journal/systemd-journald.conf -+++ systemd-44/src/journal/systemd-journald.conf -@@ -22,4 +22,4 @@ - #ForwardToSyslog=yes - #ForwardToKMsg=no - #ForwardToConsole=no --#ImportKernel=yes -+ImportKernel=no ---- /dev/null -+++ systemd-44/src/locale/generate-kbd-model-map -@@ -0,0 +1,33 @@ -+#!/usr/bin/python -+ -+import sys -+import system_config_keyboard.keyboard_models -+ -+def strdash(s): -+ return s.strip() or '-' -+ -+def tab_extend(s, n=1): -+ s = strdash(s) -+ k = len(s) // 8 -+ -+ if k >= n: -+ f = 1 -+ else: -+ f = n - k -+ -+ return s + '\t'*f -+ -+ -+models = system_config_keyboard.keyboard_models.KeyboardModels().get_models() -+ -+print "# Generated from system-config-keyboard's model list" -+print "# consolelayout\t\txlayout\txmodel\t\txvariant\txoptions" -+ -+for key, value in reversed(models.items()): -+ options = "terminate:ctrl_alt_bksp" -+ if value[4]: -+ options += ',' + value[4] -+ -+ print ''.join((tab_extend(key, 3), tab_extend(value[1]), -+ tab_extend(value[2], 2), tab_extend(value[3], 2), -+ options)) ---- systemd-44.orig/units/remount-rootfs.service -+++ systemd-44/units/remount-rootfs.service -@@ -10,7 +10,7 @@ Description=Remount Root FS - DefaultDependencies=no - Conflicts=shutdown.target - After=systemd-readahead-collect.service systemd-readahead-replay.service fsck-root.service --Before=local-fs-pre.target local-fs.target shutdown.target -+Before=local-fs-pre.target local-fs.target shutdown.target mountoverflowtmp.service - Wants=local-fs-pre.target - - [Service] ---- systemd-44.orig/units/remote-fs.target -+++ systemd-44/units/remote-fs.target -@@ -9,6 +9,7 @@ - - [Unit] - Description=Remote File Systems -+After=local-fs.target - - [Install] - WantedBy=multi-user.target ---- systemd-44.orig/tmpfiles.d/tmp.conf -+++ systemd-44/tmpfiles.d/tmp.conf -@@ -8,5 +8,5 @@ - # See tmpfiles.d(5) for details - - # Clear tmp directories separately, to make them easier to override --d /tmp 1777 root root 10d --d /var/tmp 1777 root root 30d -+D /tmp 1777 root root - -+#d /var/tmp 1777 root root 30d ---- systemd-44.orig/tmpfiles.d/legacy.conf -+++ systemd-44/tmpfiles.d/legacy.conf -@@ -17,6 +17,6 @@ - # On modern systems a BSD file lock is a better choice if - # serialization is needed on those devices. - --d /run/lock 0755 root root - -+d /run/lock 1777 root root - - d /run/lock/subsys 0755 root root - --d /run/lock/lockdev 0775 root lock - -+d /run/lock/lockdev 0775 root root - --- systemd-44/debian/patches/series 2013-02-15 16:06:17.000000000 +0000 +++ systemd-201/debian/patches/series 2013-06-03 09:43:18.000000000 +0000 @@ -1,3 +1,12 @@ -# debian/source/git-patches exported from git by export-hook -v44..upstream-fixes_44-10 -debian-changes +0001-Avoid-sending-sigterm-to-session-leader.patch +0002-Avoid-reloading-services-when-shutting-down.patch +0003-Avoid-reload-and-re-start-requests-during-early-boot.patch +0004-Don-t-run-systemd-udev-rules-if-systemd-is-not-activ.patch +0005-Fix-mounting-of-remote-filesystems-like-NFS.patch +0006-Setup-tmpfile-to-comply-with-existing-Debian-practic.patch +0007-Order-remote-fs.target-after-local-fs.target.patch +0008-Revert-service-drop-support-for-SysV-scripts-for-the.patch +0009-Revert-service-ignore-dependencies-on-syslog-and-loc.patch +0010-Add-back-support-for-Debian-specific-config-files.patch +0011-libudev-Move-lrt-to-Libs.private.patch +0012-journal-fix-broken-tags-_SOURCE_REALTIME_TIMESTAMP-a.patch --- systemd-44/debian/patches/v44..upstream-fixes_44-10 2013-02-15 16:06:16.000000000 +0000 +++ systemd-201/debian/patches/v44..upstream-fixes_44-10 1970-01-01 00:00:00.000000000 +0000 @@ -1,391 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index 079c118..eb58476 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -294,7 +294,6 @@ dist_systemunit_DATA = \ - units/sys-kernel-security.mount \ - units/sys-fs-fuse-connections.mount \ - units/var-run.mount \ -- units/media.mount \ - units/remount-rootfs.service \ - units/printer.target \ - units/sound.target \ -@@ -2306,13 +2305,11 @@ systemd-install-data-hook: - rm -f systemd-remount-api-vfs.service \ - fsck-root.service \ - remount-rootfs.service \ -- var-run.mount \ -- media.mount && \ -+ var-run.mount && \ - $(LN_S) ../systemd-remount-api-vfs.service systemd-remount-api-vfs.service && \ - $(LN_S) ../fsck-root.service fsck-root.service && \ - $(LN_S) ../remount-rootfs.service remount-rootfs.service && \ -- $(LN_S) ../var-run.mount var-run.mount && \ -- $(LN_S) ../media.mount media.mount ) -+ $(LN_S) ../var-run.mount var-run.mount ) - ( cd $(DESTDIR)$(userunitdir) && \ - rm -f shutdown.target sockets.target bluetooth.target printer.target sound.target && \ - $(LN_S) $(systemunitdir)/shutdown.target shutdown.target && \ -diff --git a/TODO b/TODO -index d33ae7f..4bdbb93 100644 ---- a/TODO -+++ b/TODO -@@ -18,6 +18,8 @@ Bugfixes: - - Features: - -+* dbus upstream still refers to dbus.target and shouldn't -+ - * journald: make configurable "store-on-var", "store-on-run", "dont-store", "auto" - (store-persistent, store-volatile?) - -diff --git a/man/systemd.path.xml b/man/systemd.path.xml -index 5b1ff75..306d8d2 100644 ---- a/man/systemd.path.xml -+++ b/man/systemd.path.xml -@@ -125,7 +125,7 @@ - is - activated. PathExistsGlob= - works similar, but checks for the -- existance of at least one file -+ existence of at least one file - matching the globbing pattern - specified. PathChanged= - may be used to watch a file or -diff --git a/man/systemd.socket.xml b/man/systemd.socket.xml -index d9921e4..160ab62 100644 ---- a/man/systemd.socket.xml -+++ b/man/systemd.socket.xml -@@ -75,7 +75,7 @@ - , - , - and -- commands are executed -+ commands are executed - in. - - For each socket file a matching service file -diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml -index 3cc126b..ce05f2f 100644 ---- a/man/systemd.unit.xml -+++ b/man/systemd.unit.xml -@@ -122,7 +122,7 @@ - If a line starts with - followed by a file name, the specified file will be - parsed at this point. Make sure that the file that is -- included has the appropiate section headers before -+ included has the appropriate section headers before - any directives. - - Along with a unit file -diff --git a/src/cgtop.c b/src/cgtop.c -index 8b8617d..1257fd2 100644 ---- a/src/cgtop.c -+++ b/src/cgtop.c -@@ -340,17 +340,22 @@ static int refresh(Hashmap *a, Hashmap *b, unsigned iteration) { - - r = refresh_one("name=systemd", "/", a, b, iteration, 0); - if (r < 0) -- return r; -- -+ if (r != -ENOENT) -+ return r; - r = refresh_one("cpuacct", "/", a, b, iteration, 0); - if (r < 0) -- return r; -- -+ if (r != -ENOENT) -+ return r; - r = refresh_one("memory", "/", a, b, iteration, 0); - if (r < 0) -- return r; -+ if (r != -ENOENT) -+ return r; - -- return refresh_one("blkio", "/", a, b, iteration, 0); -+ r = refresh_one("blkio", "/", a, b, iteration, 0); -+ if (r < 0) -+ if (r != -ENOENT) -+ return r; -+ return 0; - } - - static int group_compare(const void*a, const void *b) { -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 474dd5c..20a0193 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -67,9 +67,12 @@ void journal_file_close(JournalFile *f) { - - assert(f); - -- if (f->header && f->writable) -- f->header->state = STATE_OFFLINE; -+ if (f->header) { -+ if (f->writable) -+ f->header->state = STATE_OFFLINE; - -+ munmap(f->header, PAGE_ALIGN(sizeof(Header))); -+ } - - for (t = 0; t < _WINDOW_MAX; t++) - if (f->windows[t].ptr) -@@ -1887,7 +1890,10 @@ int journal_file_open_reliably( - char *p; - - r = journal_file_open(fname, flags, mode, template, ret); -- if (r != -EBADMSG) -+ if (r != -EBADMSG && /* corrupted */ -+ r != -ENODATA && /* truncated */ -+ r != -EHOSTDOWN && /* other machine */ -+ r != -EPROTONOSUPPORT) /* incompatible feature */ - return r; - - if ((flags & O_ACCMODE) == O_RDONLY) -diff --git a/src/journal/journald.c b/src/journal/journald.c -index baad3ab..7d798d9 100644 ---- a/src/journal/journald.c -+++ b/src/journal/journald.c -@@ -29,7 +29,6 @@ - #include - #include - #include --#include - - #include - #include -@@ -330,7 +329,10 @@ static void server_rotate(Server *s) { - if (s->runtime_journal) { - r = journal_file_rotate(&s->runtime_journal); - if (r < 0) -- log_error("Failed to rotate %s: %s", s->runtime_journal->path, strerror(-r)); -+ if (s->runtime_journal) -+ log_error("Failed to rotate %s: %s", s->runtime_journal->path, strerror(-r)); -+ else -+ log_error("Failed to create new runtime journal: %s", strerror(-r)); - else - server_fix_perms(s, s->runtime_journal, 0); - } -@@ -338,7 +340,11 @@ static void server_rotate(Server *s) { - if (s->system_journal) { - r = journal_file_rotate(&s->system_journal); - if (r < 0) -- log_error("Failed to rotate %s: %s", s->system_journal->path, strerror(-r)); -+ if (s->system_journal) -+ log_error("Failed to rotate %s: %s", s->system_journal->path, strerror(-r)); -+ else -+ log_error("Failed to create new system journal: %s", strerror(-r)); -+ - else - server_fix_perms(s, s->system_journal, 0); - } -@@ -346,7 +352,10 @@ static void server_rotate(Server *s) { - HASHMAP_FOREACH_KEY(f, k, s->user_journals, i) { - r = journal_file_rotate(&f); - if (r < 0) -- log_error("Failed to rotate %s: %s", f->path, strerror(-r)); -+ if (f->path) -+ log_error("Failed to rotate %s: %s", f->path, strerror(-r)); -+ else -+ log_error("Failed to create user journal: %s", strerror(-r)); - else { - hashmap_replace(s->user_journals, k, f); - server_fix_perms(s, s->system_journal, PTR_TO_UINT32(k)); -@@ -609,7 +618,15 @@ retry: - else { - r = journal_file_append_entry(f, NULL, iovec, n, &s->seqnum, NULL, NULL); - -- if ((r == -EBADMSG || r == -E2BIG) && !vacuumed) { -+ if ((r == -E2BIG || /* hit limit */ -+ r == -EFBIG || /* hit fs limit */ -+ r == -EDQUOT || /* quota hit */ -+ r == -ENOSPC || /* disk full */ -+ r == -EBADMSG || /* corrupted */ -+ r == -ENODATA || /* truncated */ -+ r == -EHOSTDOWN || /* other machine */ -+ r == -EPROTONOSUPPORT) && /* unsupported feature */ -+ !vacuumed) { - - if (r == -E2BIG) - log_info("Allocation limit reached, rotating."); -@@ -2141,10 +2158,20 @@ static int process_event(Server *s, struct epoll_event *ev) { - size_t label_len = 0; - union { - struct cmsghdr cmsghdr; -+ -+ /* We use NAME_MAX space for the -+ * SELinux label here. The kernel -+ * currently enforces no limit, but -+ * according to suggestions from the -+ * SELinux people this will change and -+ * it will probably be identical to -+ * NAME_MAX. For now we use that, but -+ * this should be updated one day when -+ * the final limit is known.*/ - uint8_t buf[CMSG_SPACE(sizeof(struct ucred)) + - CMSG_SPACE(sizeof(struct timeval)) + -- CMSG_SPACE(sizeof(int)) + -- CMSG_SPACE(PAGE_SIZE)]; /* selinux label */ -+ CMSG_SPACE(sizeof(int)) + /* fd */ -+ CMSG_SPACE(NAME_MAX)]; /* selinux label */ - } control; - ssize_t n; - int v; -diff --git a/src/service.c b/src/service.c -index 8b5c0b0..808a1b8 100644 ---- a/src/service.c -+++ b/src/service.c -@@ -494,7 +494,7 @@ static ExecCommand *exec_command_new(const char *path, const char *arg1) { - return c; - } - --static int sysv_exec_commands(Service *s) { -+static int sysv_exec_commands(Service *s, const bool supports_reload) { - ExecCommand *c; - - assert(s); -@@ -508,13 +508,24 @@ static int sysv_exec_commands(Service *s) { - return -ENOMEM; - exec_command_append_list(s->exec_command+SERVICE_EXEC_STOP, c); - -- if (!(c = exec_command_new(s->sysv_path, "reload"))) -- return -ENOMEM; -- exec_command_append_list(s->exec_command+SERVICE_EXEC_RELOAD, c); -+ if (supports_reload) { -+ if (!(c = exec_command_new(s->sysv_path, "reload"))) -+ return -ENOMEM; -+ exec_command_append_list(s->exec_command+SERVICE_EXEC_RELOAD, c); -+ } - - return 0; - } - -+static bool usage_contains_reload(const char *line) { -+ return (strcasestr(line, "{reload|") || -+ strcasestr(line, "{reload}") || -+ strcasestr(line, "{reload\"") || -+ strcasestr(line, "|reload|") || -+ strcasestr(line, "|reload}") || -+ strcasestr(line, "|reload\"")); -+} -+ - static int service_load_sysv_path(Service *s, const char *path) { - FILE *f; - Unit *u; -@@ -524,10 +535,12 @@ static int service_load_sysv_path(Service *s, const char *path) { - NORMAL, - DESCRIPTION, - LSB, -- LSB_DESCRIPTION -+ LSB_DESCRIPTION, -+ USAGE_CONTINUATION - } state = NORMAL; - char *short_description = NULL, *long_description = NULL, *chkconfig_description = NULL, *description; - struct stat st; -+ bool supports_reload = false; - - assert(s); - assert(path); -@@ -574,8 +587,23 @@ static int service_load_sysv_path(Service *s, const char *path) { - line++; - - t = strstrip(l); -- if (*t != '#') -+ if (*t != '#') { -+ /* Try to figure out whether this init script supports -+ * the reload operation. This heuristic looks for -+ * "Usage" lines which include the reload option. */ -+ if ( state == USAGE_CONTINUATION || -+ (state == NORMAL && strcasestr(t, "usage"))) { -+ if (usage_contains_reload(t)) { -+ supports_reload = true; -+ state = NORMAL; -+ } else if (t[strlen(t)-1] == '\\') -+ state = USAGE_CONTINUATION; -+ else -+ state = NORMAL; -+ } -+ - continue; -+ } - - if (state == NORMAL && streq(t, "### BEGIN INIT INFO")) { - state = LSB; -@@ -868,7 +896,7 @@ static int service_load_sysv_path(Service *s, const char *path) { - } - } - -- if ((r = sysv_exec_commands(s)) < 0) -+ if ((r = sysv_exec_commands(s, supports_reload)) < 0) - goto finish; - if (s->sysv_runlevels && - chars_intersect(RUNLEVELS_BOOT, s->sysv_runlevels) && -@@ -2094,7 +2122,8 @@ static void service_enter_start(Service *s) { - /* We want to ensure that nobody leaks processes from - * START_PRE here, so let's go on a killing spree, People - * should not spawn long running processes from START_PRE. */ -- cgroup_bonding_kill_list(UNIT(s)->cgroup_bondings, SIGKILL, true, NULL); -+ // F17, bz816842, bz805942 -+ //cgroup_bonding_kill_list(UNIT(s)->cgroup_bondings, SIGKILL, true, NULL); - - if (s->type == SERVICE_FORKING) { - s->control_command_id = SERVICE_EXEC_START; -@@ -2168,7 +2197,8 @@ static void service_enter_start_pre(Service *s) { - - /* Before we start anything, let's clear up what might - * be left from previous runs. */ -- cgroup_bonding_kill_list(UNIT(s)->cgroup_bondings, SIGKILL, true, NULL); -+ // F17, bz816842, bz805942 -+ //cgroup_bonding_kill_list(UNIT(s)->cgroup_bondings, SIGKILL, true, NULL); - - s->control_command_id = SERVICE_EXEC_START_PRE; - -diff --git a/src/systemctl.c b/src/systemctl.c -index f51085f..13a797a 100644 ---- a/src/systemctl.c -+++ b/src/systemctl.c -@@ -761,7 +761,7 @@ static int dot_one_property(const char *name, const char *prop, DBusMessageIter - "RequiresOverridable", "[color=\"black\"]", - "Requisite", "[color=\"darkblue\"]", - "RequisiteOverridable", "[color=\"darkblue\"]", -- "Wants", "[color=\"darkgrey\"]", -+ "Wants", "[color=\"grey66\"]", - "Conflicts", "[color=\"red\"]", - "ConflictedBy", "[color=\"red\"]", - "After", "[color=\"green\"]" -diff --git a/src/util.c b/src/util.c -index 20cbc2b..dfc1dc6 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -3593,7 +3593,8 @@ static int rm_rf_children(int fd, bool only_dirs, bool honour_sticky) { - if (is_dir) { - int subdir_fd; - -- if ((subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC)) < 0) { -+ subdir_fd = openat(fd, de->d_name, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_NOFOLLOW); -+ if (subdir_fd < 0) { - if (ret == 0 && errno != ENOENT) - ret = -errno; - continue; -diff --git a/units/media.mount b/units/media.mount -deleted file mode 100644 -index 66a5a5c..0000000 ---- a/units/media.mount -+++ /dev/null -@@ -1,16 +0,0 @@ --# This file is part of systemd. --# --# systemd is free software; you can redistribute it and/or modify it --# under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or --# (at your option) any later version. -- --[Unit] --Description=Media Directory --Before=local-fs.target -- --[Mount] --What=tmpfs --Where=/media --Type=tmpfs --Options=mode=755,nosuid,nodev,noexec --- systemd-44/debian/python-systemd.install 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/python-systemd.install 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1 @@ +usr/lib/python*/dist-packages/systemd --- systemd-44/debian/rules 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/rules 2013-04-08 21:53:45.000000000 +0000 @@ -3,41 +3,168 @@ #export DH_VERBOSE=1 #export DEB_BUILD_OPTIONS="nostrip" +FLAVORS = deb udeb + DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -override_dh_auto_configure: - dh_auto_configure -- \ - --with-rootprefix= \ - --with-rootlibdir=/lib/$(DEB_HOST_MULTIARCH) \ - --with-udevrulesdir=/lib/udev/rules.d \ - --enable-gtk \ - --enable-libcryptsetup \ - --enable-tcpwrap \ - --enable-selinux \ - --disable-coredump \ - --with-distro=debian +CONFFLAGS = \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ + --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \ + --with-rootprefix= \ + --with-rootlibdir=/lib/$(DEB_HOST_MULTIARCH) \ + --with-sysvinit-path=/etc/init.d \ + --with-sysvrcnd-path=/etc \ + --with-firmware-path=/lib/firmware \ + --enable-libcryptsetup \ + --enable-tcpwrap \ + --disable-coredump \ + --disable-efi \ + --disable-myhostname \ + --disable-vconsole + +CONFFLAGS_deb = \ + --enable-selinux \ + --enable-introspection \ + --enable-gtk-doc + +CONFFLAGS_udeb = \ + --disable-selinux \ + --disable-introspection \ + --disable-gtk-doc \ + --disable-binfmt \ + --disable-readahead \ + --disable-bootchart \ + --disable-quotacheck \ + --disable-randomseed \ + --disable-logind \ + --disable-hostnamed \ + --disable-timedated \ + --disable-localed \ + --disable-polkit \ + --disable-acl \ + --disable-xattr \ + --disable-gudev \ + --disable-manpages \ + --without-python + +override_dh_auto_configure: $(FLAVORS:%=debian/stamps/configure-%) +debian/stamps/configure-%: + mkdir -p debian/build/$* + mkdir -p debian/stamps/ + # workaround for gtk-doc sucking at oot builds + # Seems to work fine, double check #555111 + #tar cpf - . --exclude=debian | tar xpf - -C debian/build/$* + cd debian/build/$* && ../../../configure $(CONFFLAGS) $(CONFFLAGS_$*) + touch $@ + +override_dh_auto_build: $(FLAVORS:%=debian/stamps/build-%) +debian/stamps/build-%: + # remove pre-generated man pages so they are rebuilt + rm -f debian/build/$*/man/*.[13578] + make -C debian/build/$* + +override_dh_auto_install: $(FLAVORS:%=debian/stamps/install-%) +debian/stamps/install-%: + make -C debian/build/$* install DESTDIR=$(CURDIR)/debian/install/$* override_dh_auto_clean: dh_auto_clean - rm -f man/*.[1358] - rm -f src/systemadm.c - rm -f src/gnome-ask-password-agent.c - rm -f src/systemd-interfaces.c + rm -rf debian/build/ + rm -rf debian/install/ + rm -rf debian/stamps/ override_dh_install: - rm debian/tmp/usr/share/doc/systemd/LICENSE - rm debian/tmp/lib/systemd/system/sysinit.target.wants/systemd-vconsole-setup.service - find debian/tmp/ -name '*.la' -delete - chmod +x debian/debian-fixup - dh_install -O--parallel --fail-missing - dh_install -plibpam-systemd debian/pam-configs /usr/share + rm -f debian/install/*/usr/share/doc/systemd/LICENSE.* + rm -f debian/install/*/var/log/README + rm -f debian/install/*/etc/init.d/README + find debian/install/ -name '*.la' -delete +ifeq (udeb ,$(filter udeb, $(FLAVORS))) + dh_install -pudev-udeb -pudev-gtk-udeb --sourcedir=debian/install/udeb + # udev-udeb + install -D --mode=755 debian/extra/udev.startup \ + debian/udev-udeb/lib/debian-installer/start-udev + install -D --mode=755 debian/extra/udev.base-installer \ + debian/udev-udeb/usr/lib/base-installer.d/05udev +endif + dh_install -Nudev-udeb -Nudev-gtk-udeb --sourcedir=debian/install/deb -O--parallel -Xetc/rpm/ --list-missing + # install some files manually, --sourcedir makes that necessary + # systemd + cp -a debian/pam-configs debian/libpam-systemd/usr/share/ + install -D --mode=644 debian/init-functions.d/40-systemd \ + debian/systemd/lib/lsb/init-functions.d/40-systemd + install --mode=644 debian/tmpfiles.d/debian.conf \ + debian/systemd/usr/lib/tmpfiles.d/ + install --mode=644 debian/debian-fixup.service debian/ifup@.service \ + debian/units/run-lock.mount debian/units/run-user.mount \ + debian/debian-enable-units.service \ + debian/systemd/lib/systemd/system/ + install --mode=644 debian/unit.blacklist \ + debian/systemd/usr/share/systemd/ + install --mode=755 debian/debian-fixup debian/debian-enable-units \ + debian/systemd/lib/systemd/ + # initramfs-tools support + install -D --mode=755 debian/extra/initramfs.hook \ + debian/udev/usr/share/initramfs-tools/hooks/udev + install -D --mode=755 debian/extra/initramfs.top \ + debian/udev/usr/share/initramfs-tools/scripts/init-top/udev + install -D --mode=755 debian/extra/initramfs.bottom \ + debian/udev/usr/share/initramfs-tools/scripts/init-bottom/udev + # TODO: use a script to find duplicates and remove them automatically + # files shipped by systemd-sysv / sysvinit + rm debian/systemd/usr/share/man/man1/init.1 + rm debian/systemd/usr/share/man/man8/halt.8 + rm debian/systemd/usr/share/man/man8/poweroff.8 + rm debian/systemd/usr/share/man/man8/reboot.8 + rm debian/systemd/usr/share/man/man8/shutdown.8 + rm debian/systemd/usr/share/man/man8/telinit.8 + rm debian/systemd/usr/share/man/man8/runlevel.8 + # files shipped by libpam-systemd + rm debian/systemd/usr/share/man/man8/pam_systemd.8 + # files shipped by udev + rm -r debian/systemd/etc/udev/ + rm debian/systemd/lib/systemd/system/systemd-udev* + rm debian/systemd/lib/systemd/system/*.target.wants/systemd-udev* + rm debian/systemd/lib/systemd/systemd-udevd + rm debian/systemd/usr/share/man/man7/udev.7 + rm debian/systemd/usr/share/man/man8/*udev*.8 + # files shipped by udev / bash-completion + rm debian/systemd/usr/share/bash-completion/completions/udevadm + # files systemd by cryptsetup + rm debian/systemd/usr/share/man/man5/crypttab.5 + # files shipped by systemd + rm debian/udev/lib/udev/rules.d/70-uaccess.rules + rm debian/udev/lib/udev/rules.d/73-seat-late.rules + rm debian/udev/lib/udev/rules.d/71-seat.rules + rm debian/udev/lib/udev/rules.d/99-systemd.rules + +override_dh_makeshlibs: + dh_makeshlibs -plibudev1 --add-udeb=udev-gtk-udeb + dh_makeshlibs --remaining-packages + +override_dh_installinit: + dh_installinit --no-start -- start 03 S . +# dh_installinit --no-start --name=udev-mtab -- start 36 S . + +override_dh_installdocs: + dh_installdocs -pudev -plibudev-dev --link-doc=libudev1 + dh_installdocs -pgir1.2-gudev-1.0 -plibgudev-1.0-dev --link-doc=libgudev-1.0-0 + dh_installdocs --remaining-packages autoreconf: + gtkdocize --copy --docdir docs/ intltoolize -f -c autoreconf -f -i override_dh_autoreconf: dh_autoreconf debian/rules -- autoreconf +# some tests fail under fakeroot, so disable for now +override_dh_auto_test: + %: - dh $@ --with autoreconf + dh $@ --with autoreconf,python2,gir --- systemd-44/debian/systemd-gui.install 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/systemd-gui.install 2013-04-08 21:53:45.000000000 +0000 @@ -1,3 +0,0 @@ -usr/bin/systemadm -usr/share/man/man1/systemadm.1 -usr/bin/systemd-gnome-ask-password-agent --- systemd-44/debian/systemd.dirs 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/systemd.dirs 2013-04-08 21:53:45.000000000 +0000 @@ -1 +1 @@ -var/lib/systemd +var/lib/systemd/ --- systemd-44/debian/systemd.install 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/systemd.install 2013-04-08 21:53:45.000000000 +0000 @@ -1,53 +1,55 @@ -etc +etc/ bin/systemctl -bin/systemd-journalctl +bin/journalctl +bin/loginctl bin/systemd-notify bin/systemd-tty-ask-password-agent bin/systemd-ask-password bin/systemd-machine-id-setup bin/systemd-tmpfiles -bin/systemd-loginctl +bin/systemd-inhibit +#usr/bin/kernel-install lib/systemd/ -lib/udev/rules.d/ +lib/udev/rules.d/70-uaccess.rules +lib/udev/rules.d/73-seat-late.rules +lib/udev/rules.d/71-seat.rules +lib/udev/rules.d/99-systemd.rules usr/bin/systemd-cgls usr/bin/systemd-cgtop usr/bin/systemd-nspawn usr/bin/systemd-stdio-bridge usr/bin/systemd-analyze usr/bin/systemd-cat -usr/share/man/man1/systemd-notify.1 -usr/share/man/man1/systemd-cgls.1 -usr/share/man/man1/systemd-cgtop.1 -usr/share/man/man1/systemd.1 -usr/share/man/man1/systemctl.1 -usr/share/man/man1/systemd-nspawn.1 -usr/share/man/man1/systemd-ask-password.1 -usr/share/man/man1/systemd-loginctl.1 -usr/share/man/man1/systemd-machine-id-setup.1 -usr/share/man/man1/systemd-cat.1 -usr/share/man/man1/systemd-journalctl.1 -usr/share/man/man3 -usr/share/man/man5 -usr/share/man/man7 -usr/share/man/man8/systemd-tmpfiles.8 -usr/share/dbus-1 -usr/share/doc -usr/share/pkgconfig -usr/share/polkit-1 +usr/bin/systemd-detect-virt +usr/bin/systemd-delta +usr/bin/timedatectl +usr/bin/localectl +usr/bin/hostnamectl +usr/share/man/man1/ +usr/share/man/man3/ +usr/share/man/man5/ +usr/share/man/man7/ +usr/share/man/man8/ +usr/share/bash-completion/ +usr/share/dbus-1/ +usr/share/doc/ +usr/share/pkgconfig/systemd.pc +usr/share/polkit-1/ usr/share/systemd/kbd-model-map -usr/lib/binfmt.d -usr/lib/modules-load.d -usr/lib/sysctl.d -usr/lib/systemd -usr/lib/*/systemd -usr/lib/tmpfiles.d -debian/init-functions.d/40-systemd /lib/lsb/init-functions.d -debian/debian-fixup lib/systemd/ -debian/debian-fixup.service lib/systemd/system -debian/tmpfiles.d/debian.conf usr/lib/tmpfiles.d -debian/ifup@.service lib/systemd/system -debian/units/run-lock.mount lib/systemd/system/ -debian/units/run-user.mount lib/systemd/system/ -debian/unit.blacklist usr/share/systemd/ -debian/debian-enable-units lib/systemd/ -debian/debian-enable-units.service lib/systemd/system/ +usr/lib/binfmt.d/ +usr/lib/modules-load.d/ +usr/lib/sysctl.d/ +usr/lib/systemd/ +usr/lib/tmpfiles.d/ + +# installed via debian/rules +#debian/init-functions.d/40-systemd /lib/lsb/init-functions.d +#debian/debian-fixup lib/systemd/ +#debian/debian-fixup.service lib/systemd/system +#debian/tmpfiles.d/debian.conf usr/lib/tmpfiles.d +#debian/ifup@.service lib/systemd/system +#debian/units/run-lock.mount lib/systemd/system/ +#debian/units/run-user.mount lib/systemd/system/ +#debian/unit.blacklist usr/share/systemd/ +#debian/debian-enable-units lib/systemd/ +#debian/debian-enable-units.service lib/systemd/system/ --- systemd-44/debian/systemd.links 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/systemd.links 2013-04-08 21:53:45.000000000 +0000 @@ -3,6 +3,8 @@ /lib/systemd/system/systemd-random-seed-load.service /lib/systemd/system/urandom.service /lib/systemd/system/systemd-sysctl.service /lib/systemd/system/procps.service +/lib/systemd/system/rc-local.service /lib/systemd/system/rc.local.service + /lib/systemd/system/systemd-modules-load.service /lib/systemd/system/module-init-tools.service /lib/systemd/system/systemd-modules-load.service /lib/systemd/system/kmod.service /etc/modules /etc/modules-load.d/modules.conf @@ -41,7 +43,7 @@ /dev/null /lib/systemd/system/mountnfs-bootclean.service /dev/null /lib/systemd/system/checkfs.service # We need checkroot as synchronisation point, so symlink it to remount-rootfs -/lib/systemd/system/remount-rootfs.service /lib/systemd/system/checkroot.service +/lib/systemd/system/systemd-remount-fs.service /lib/systemd/system/checkroot.service # checkroot-bootclean cleans up directories before mounting a tmpfs # over it. As systemd handles mounts differently, mask this service. /dev/null /lib/systemd/system/checkroot-bootclean.service @@ -57,7 +59,8 @@ # Run fixups early /lib/systemd/system/debian-fixup.service /lib/systemd/system/sysinit.target.wants/debian-fixup.service -/lib/systemd/system/debian-enable-units.service /lib/systemd/system/sysinit.target.wants/debian-enable-units.service +# debian-enable-units requires a ready-to-use /tmp so run it in basic.target *after* sysinit.target +/lib/systemd/system/debian-enable-units.service /lib/systemd/system/basic.target.wants/debian-enable-units.service # Compat symlink /lib/systemd/systemd /bin/systemd --- systemd-44/debian/systemd.maintscript 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/systemd.maintscript 2013-04-12 01:36:59.000000000 +0000 @@ -2,4 +2,7 @@ rm_conffile /etc/tmpfiles.d/legacy.conf 29-1~ systemd rm_conffile /etc/tmpfiles.d/systemd.conf 29-1~ systemd rm_conffile /etc/tmpfiles.d/x11.conf 29-1~ systemd -mv_conffile /etc/bash_completion.d/systemctl-bash-completion.sh /etc/bash_completion.d/systemd-bash-completion.sh 44-2~ systemd +rm_conffile /etc/bash_completion.d/systemctl-bash-completion.sh 201-1~ systemd +rm_conffile /etc/bash_completion.d/systemd-bash-completion.sh 201-1~ systemd +mv_conffile /etc/systemd/systemd-logind.conf /etc/systemd/logind.conf 201-1~ systemd +mv_conffile /etc/systemd/systemd-journald.conf /etc/systemd/journald.conf 201-1~ systemd --- systemd-44/debian/systemd.postrm 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/systemd.postrm 2013-04-08 21:53:45.000000000 +0000 @@ -3,8 +3,8 @@ set -e # Clean up the mess we created -if [ "$1" = "purge" ]; then - statedir=/var/lib/systemd +statedir=/var/lib/systemd +if [ "$1" = "purge" ] && [ -d $statedir ]; then find $statedir -name "*.symlinks" | while read file ; do while read symlink ; do rm -f "$symlink" --- systemd-44/debian/udev-gtk-udeb.install 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/udev-gtk-udeb.install 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1 @@ +lib/*/libudev.so.* --- systemd-44/debian/udev-udeb.install 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/udev-udeb.install 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,5 @@ +lib/systemd/systemd-udevd +bin/udevadm +lib/udev/ata_id +lib/udev/scsi_id +lib/udev/cdrom_id --- systemd-44/debian/udev.init 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/udev.init 2013-04-13 17:25:24.000000000 +0000 @@ -0,0 +1,251 @@ +#!/bin/sh -e +### BEGIN INIT INFO +# Provides: udev +# Required-Start: mountkernfs +# Required-Stop: +# Default-Start: S +# Default-Stop: +# Short-Description: Start udevd, populate /dev and load drivers. +### END INIT INFO + +# we need to unmount /dev/pts/ and remount it later over the tmpfs +unmount_devpts() { + if mountpoint -q /dev/pts/; then + umount -n -l /dev/pts/ + fi + + if mountpoint -q /dev/shm/; then + umount -n -l /dev/shm/ + fi +} + +# mount a tmpfs over /dev, if somebody did not already do it +mount_tmpfs() { + if grep -E -q "^[^[:space:]]+ /dev (dev)?tmpfs" /proc/mounts; then + mount -n -o remount,${dev_mount_options} -t tmpfs tmpfs /dev + return + fi + + if ! mount -n -o $dev_mount_options -t tmpfs tmpfs /dev; then + log_failure_msg "udev requires tmpfs support, not started" + log_end_msg 1 + fi + + return 0 +} + +create_dev_makedev() { + if [ -e /sbin/MAKEDEV ]; then + ln -sf /sbin/MAKEDEV /dev/MAKEDEV + else + ln -sf /bin/true /dev/MAKEDEV + fi +} + +# If the initramfs does not have /run, the initramfs udev database must +# be migrated from /dev/.udev/ to /run/udev/. +move_udev_database() { + [ -e "$udev_root/.udev/" ] || return 0 + [ ! -e /run/udev/ ] || return 0 + [ -e /run/ ] || return 0 + mountpoint -q /run/ || return 0 + + mv $udev_root/.udev/ /run/udev/ || true +} + +supported_kernel() { + case "$(uname -r)" in + 2.[012345].*|2.6.[0-9]|2.6.[0-9][!0-9]*) return 1 ;; + 2.6.[12][0-9]|2.6.[12][0-9][!0-9]*) return 1 ;; + 2.6.3[0-1]|2.6.3[0-1][!0-9]*) return 1 ;; + esac + return 0 +} + +# shell version of /usr/bin/tty +my_tty() { + [ -x /bin/readlink ] || return 0 + [ -e /proc/self/fd/0 ] || return 0 + readlink --silent /proc/self/fd/0 || true +} + +warn_if_interactive() { + if [ "$RUNLEVEL" = "S" -a "$PREVLEVEL" = "N" ]; then + return + fi + + TTY=$(my_tty) + if [ -z "$TTY" -o "$TTY" = "/dev/console" -o "$TTY" = "/dev/null" ]; then + return + fi + + printf "\n\n\nIt has been detected that the command\n\n\t$0 $*\n\n" + printf "has been run from an interactive shell.\n" + printf "It will probably not do what you expect, so this script will wait\n" + printf "60 seconds before continuing. Press ^C to stop it.\n" + printf "RUNNING THIS COMMAND IS HIGHLY DISCOURAGED!\n\n\n\n" + sleep 60 +} + +############################################################################## + +[ -x /sbin/udevd ] || exit 0 + +PATH="/sbin:/bin" + +# defaults +tmpfs_size="10M" +udev_root="/dev" + +if [ -e /etc/udev/udev.conf ]; then + . /etc/udev/udev.conf +fi + +. /lib/lsb/init-functions + +if ! supported_kernel; then + log_failure_msg "udev requires a kernel >= 2.6.32, not started" + log_end_msg 1 +fi + +if [ ! -e /proc/filesystems ]; then + log_failure_msg "udev requires a mounted procfs, not started" + log_end_msg 1 +fi + +if ! grep -q '[[:space:]]tmpfs$' /proc/filesystems; then + log_failure_msg "udev requires tmpfs support, not started" + log_end_msg 1 +fi + +if [ ! -d /sys/class/ ]; then + log_failure_msg "udev requires a mounted sysfs, not started" + log_end_msg 1 +fi + +if [ ! -e /sys/kernel/uevent_helper ]; then + log_failure_msg "udev requires hotplug support, not started" + log_end_msg 1 +fi + +if ! ps --no-headers --format args ax | egrep -q '^\['; then + log_warning_msg "udev does not support containers, not started" + exit 0 +fi + +if [ -d /sys/class/mem/null -a ! -L /sys/class/mem/null ] || \ + [ -e /sys/block -a ! -e /sys/class/block ]; then + log_warning_msg "CONFIG_SYSFS_DEPRECATED must not be selected" + log_warning_msg "Booting will continue in 30 seconds but many things will be broken" + sleep 30 +fi + +# When modifying this script, do not forget that between the time that the +# new /dev has been mounted and udevadm trigger has been run there will be +# no /dev/null. This also means that you cannot use the "&" shell command. + +case "$1" in + start) + if init_is_upstart 2>/dev/null; then + exit 1 + fi + if mountpoint -q $udev_root/; then + TMPFS_MOUNTED=1 + elif [ -e "$udev_root/.udev/" ]; then + log_warning_msg ".udev/ already exists on the static $udev_root" + fi + + if [ ! -e "$udev_root/.udev/" -a ! -e "/run/udev/" ]; then + warn_if_interactive + fi + + echo > /sys/kernel/uevent_helper + + move_udev_database + + if [ -z "$TMPFS_MOUNTED" ]; then + unmount_devpts + mount_tmpfs + [ -d /proc/1 ] || mount -n /proc + fi + + # clean up parts of the database created by the initramfs udev + udevadm info --cleanup-db + + # set the SELinux context for devices created in the initramfs + [ -x /sbin/restorecon ] && /sbin/restorecon -R /dev + + # /dev/null must be created before udevd is started + /lib/udev/create_static_nodes || true + + log_daemon_msg "Starting the hotplug events dispatcher" "udevd" + if udevd --daemon; then + log_end_msg $? + else + log_warning_msg $? + log_warning_msg "Waiting 15 seconds and trying to continue anyway" + sleep 15 + fi + + log_action_begin_msg "Synthesizing the initial hotplug events" + if udevadm trigger --action=add; then + log_action_end_msg $? + else + log_action_end_msg $? + fi + + create_dev_makedev + + # wait for the udevd childs to finish + log_action_begin_msg "Waiting for /dev to be fully populated" + if udevadm settle; then + log_action_end_msg 0 + else + log_action_end_msg 0 'timeout' + fi + ;; + + stop) + log_daemon_msg "Stopping the hotplug events dispatcher" "udevd" + if start-stop-daemon --stop --name udevd --user root --quiet --oknodo --retry 5; then + log_end_msg $? + else + log_end_msg $? + fi + ;; + + restart) + if init_is_upstart 2>/dev/null; then + exit 1 + fi + log_daemon_msg "Stopping the hotplug events dispatcher" "udevd" + if start-stop-daemon --stop --name udevd --user root --quiet --oknodo --retry 5; then + log_end_msg $? + else + log_end_msg $? || true + fi + + log_daemon_msg "Starting the hotplug events dispatcher" "udevd" + if udevd --daemon; then + log_end_msg $? + else + log_end_msg $? + fi + ;; + + reload|force-reload) + udevadm control --reload-rules + ;; + + status) + status_of_proc /sbin/udevd udevd && exit 0 || exit $? + ;; + + *) + echo "Usage: /etc/init.d/udev {start|stop|restart|reload|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 + --- systemd-44/debian/udev.install 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/udev.install 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,16 @@ +etc/udev/ +lib/udev/* +lib/systemd/system/systemd-udev* +lib/systemd/system/*.target.wants/systemd-udev* +lib/systemd/systemd-udevd +bin/udevadm +usr/share/man/man7/udev.7 +usr/share/man/man8/udevadm.8 +usr/share/man/man8/systemd-udevd.8 +usr/share/man/man8/systemd-udevd.service.8 +# currently installed by bash-completion, file a bug to get it removed +#usr/share/bash-completion/completions/udevadm +usr/share/pkgconfig/udev.pc + +# installed via debian/rules +#debian/extra/initramfs-tools/* usr/share/initramfs-tools/ --- systemd-44/debian/udev.links 1970-01-01 00:00:00.000000000 +0000 +++ systemd-201/debian/udev.links 2013-04-08 21:53:45.000000000 +0000 @@ -0,0 +1,3 @@ +/lib/systemd/systemd-udevd /sbin/udevd +/lib/systemd/system/systemd-udevd.service /lib/systemd/system/udev.service +/bin/udevadm /sbin/udevadm --- systemd-44/debian/unit.blacklist 2013-02-15 16:01:41.000000000 +0000 +++ systemd-201/debian/unit.blacklist 2013-04-12 01:37:43.000000000 +0000 @@ -1,49 +1,15 @@ -# systemd internal services and sockets +# systemd internal services and sockets which can be enabled via [Install] +autovt@.service +console-getty.service console-shell.service -debian-fixup.service -emergency.service -fsck-root.service -fsck@.service +debug-shell.service getty@.service -halt.service -ifup@.service -kexec.service -poweroff.service -quotacheck.service -quotaon.service -reboot.service -remount-rootfs.service -rescue.service -serial-getty@.service -systemd-ask-password-console.service -systemd-ask-password-wall.service -systemd-binfmt.service -systemd-hostnamed.service -systemd-initctl.service -systemd-journald.service -systemd-localed.service -systemd-logind.service -systemd-modules-load.service -systemd-random-seed-load.service -systemd-random-seed-save.service systemd-readahead-collect.service systemd-readahead-done.service +systemd-readahead-drop.service systemd-readahead-replay.service -systemd-remount-api-vfs.service -systemd-shutdownd.service -systemd-sysctl.service -systemd-timedated.service -systemd-tmpfiles-clean.service -systemd-tmpfiles-setup.service -systemd-update-utmp-runlevel.service -systemd-update-utmp-shutdown.service -systemd-user-sessions.service -systemd-vconsole-setup.service -user@.service -systemd-journald.socket syslog.socket -systemd-shutdownd.socket -systemd-initctl.socket +user@.service # udev-settle should only be enabled when needed udev-settle.service # this delays the boot process so should only be enabled as needed