debian/0000755000000000000000000000000012323005376007167 5ustar debian/udev.preinst0000644000000000000000000000233112322650215011534 0ustar #!/bin/sh -e # This script can be called in the following ways: # # Before the package is installed: # install # # Before removed package is upgraded: # install # # Before the package is upgraded: # upgrade # # # If postrm fails during upgrade or fails on failed upgrade: # abort-upgrade # Disable udevadm from being run during an upgrade, to cause installation # failures of packages which call udevadm trigger without depending on udev disable_udevadm() { dpkg-divert --package fake-udev --rename --divert /bin/udevadm.upgrade \ --add /bin/udevadm cat <<'UDEVADM' > /bin/udevadm #!/bin/sh if [ "$1" = "trigger" ]; then echo "udevadm trigger is not permitted while udev is unconfigured." 1>&2 exit 1 fi if [ "$1" = "settle" ]; then echo "udevadm settle is not permitted while udev is unconfigured." 1>&2 exit 1 fi exec /bin/bash -c "exec -a \"\$0\" /bin/udevadm.upgrade \"\$@\"" "$0" "$@" UDEVADM chmod +x /bin/udevadm } case "$1" in install|upgrade) disable_udevadm ;; abort-upgrade) ;; *) echo "$0 called with unknown argument \`$1'" 1>&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/libsystemd-login0.install0000644000000000000000000000003412322650215014116 0ustar lib/*/libsystemd-login.so.* debian/systemd.postinst0000644000000000000000000000445512322650215012471 0ustar #! /bin/sh set -e _systemctl() { if [ -d /run/systemd/system ]; then systemctl "$@" fi } _update_catalog() { journalctl --update-catalog || true } # Update Message Catalogs database in response to dpkg trigger if [ "$1" = "triggered" ]; then _update_catalog exit 0 fi # Cleanup state files from the auto-enabler which we used in wheezy if dpkg --compare-versions "$2" lt "204-1"; then rm -f /var/lib/systemd/enabled-units rm -f /var/lib/systemd/run-debian-enable-units rm -f /var/lib/systemd/*.symlinks fi if [ -n "$2" ]; then _systemctl daemon-reexec || true _systemctl try-restart systemd-journald.service || true _systemctl try-restart systemd-logind.service || true fi # Do a one-time migration of the local time setting if dpkg --compare-versions "$2" lt "33-1"; then if [ -f /etc/default/rcS ]; then . /etc/default/rcS fi if [ "$UTC" = "no" ] && [ ! -e /etc/adjtime ]; then printf "0.0 0 0.0\n0\nLOCAL" > /etc/adjtime fi fi # Do a one-time migration of the TMPTIME setting if dpkg --compare-versions "$2" lt "36-2"; then if [ -f /etc/default/rcS ]; then . /etc/default/rcS fi if [ ! -e /etc/tmpfiles.d/tmp.conf ]; then case "$TMPTIME" in -*|infinite|infinity) cat > /etc/tmpfiles.d/tmp.conf < /dev/null || true ;; esac #DEBHELPER# debian/control0000644000000000000000000002574312322650215010602 0ustar Source: systemd Section: admin Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debian systemd Maintainers Uploaders: Tollef Fog Heen , Michael Biebl , Marco d'Itri Standards-Version: 3.9.4 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 XS-Testsuite: autopkgtest Build-Depends: debhelper (>= 9), pkg-config, xsltproc, docbook-xsl, docbook-xml, gtk-doc-tools, m4, dh-autoreconf, automake (>= 1.11), autoconf (>= 2.63), intltool, gperf, libcap-dev, libcgmanager-dev, libpam0g-dev, libaudit-dev, libdbus-1-dev (>= 1.3.2), libglib2.0-dev (>= 2.22.0), libcryptsetup-dev (>= 2:1.4.2), libwrap0-dev, libselinux1-dev (>= 2.1.9), libacl1-dev, libattr1-dev, liblzma-dev, libgcrypt11-dev, libkmod-dev (>= 5), 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: optional Recommends: libpam-systemd Suggests: systemd-ui Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends}, libsystemd-login0 (= ${binary:Version}), util-linux (>= 2.19.1-2), initscripts (>= 2.88dsf-17), systemd-services, 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 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. Package: systemd-sysv Architecture: linux-any Section: admin Priority: extra Conflicts: sysvinit, upstart, runit-run Replaces: sysvinit 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 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 provides the manual pages and links needed for systemd to replace sysvinit. Package: systemd-services Architecture: linux-any Section: admin Priority: optional Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>= 175-0ubuntu23), dbus, systemd | systemd-shim (>= 3), Replaces: systemd (<< 198-1), logind, ubuntu-system-service Breaks: systemd (<< 198-1) Conflicts: logind Provides: logind Suggests: cgmanager Multi-Arch: foreign Description: systemd runtime services This package contains the logind and D-BUS services (localed, hostname, timedated) from systemd. Package: libpam-systemd Architecture: linux-any Multi-Arch: same Section: admin Priority: optional Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends}, systemd-services (= ${binary:Version}), libpam-runtime (>= 1.0.1-6) Conflicts: libpam-xdg-support Replaces: libpam-xdg-support, systemd-services (<< 198-0ubuntu7) Breaks: systemd-services (<< 198-0ubuntu7) Provides: libpam-xdg-support 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 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 PAM module which registers user sessions in the systemd control group hierarchy Package: libsystemd-login0 Architecture: linux-any Multi-Arch: same Section: libs Priority: optional Pre-Depends: ${misc:Pre-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. Package: libsystemd-login-dev Architecture: linux-any Section: libdevel Priority: optional 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. . This package contains the development files Package: libsystemd-daemon0 Architecture: linux-any Multi-Arch: same Section: libs Priority: optional Pre-Depends: ${misc:Pre-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. Package: libsystemd-daemon-dev Architecture: linux-any Section: libdevel Priority: optional 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. . This package contains the development files Package: libsystemd-journal0 Architecture: linux-any Multi-Arch: same Section: libs Priority: optional Pre-Depends: ${misc:Pre-Depends} Depends: ${shlibs:Depends}, ${misc:Depends} Description: systemd journal utility library The libsystemd-journal library provides an interface for the systemd journal service. Package: libsystemd-journal-dev Architecture: linux-any Section: libdevel Priority: optional 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. . This package contains the development files Package: libsystemd-id128-0 Architecture: linux-any Multi-Arch: same Section: libs Priority: optional Pre-Depends: ${misc:Pre-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. Package: libsystemd-id128-dev Architecture: linux-any Section: libdevel Priority: optional 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: systemd-services (<< 202-0ubuntu6) 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 Priority: optional 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: libudev1-udeb Package-Type: udeb Section: debian-installer Priority: optional Architecture: linux-any Depends: ${shlibs:Depends}, ${misc:Depends} Description: libudev shared library This library provides access to udev device information. . 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} 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: optional Architecture: linux-any Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends} Description: python bindings for systemd This package contains Python bindings for the systemd libraries. debian/systemd-services.install0000644000000000000000000000355712322650215014077 0ustar bin/loginctl etc/dbus-1/system.d/org.freedesktop.login1.conf etc/dbus-1/system.d/org.freedesktop.hostname1.conf etc/dbus-1/system.d/org.freedesktop.locale1.conf etc/dbus-1/system.d/org.freedesktop.timedate1.conf etc/systemd/logind.conf lib/udev/rules.d/70-uaccess.rules lib/udev/rules.d/73-seat-late.rules lib/udev/rules.d/71-seat.rules lib/systemd/systemd-hostnamed lib/systemd/systemd-localed lib/systemd/systemd-timedated lib/systemd/systemd-logind lib/systemd/systemd-multi-seat-x usr/bin/timedatectl usr/bin/localectl usr/bin/hostnamectl usr/share/bash-completion/completions/hostnamectl usr/share/bash-completion/completions/timedatectl usr/share/bash-completion/completions/localectl usr/share/bash-completion/completions/loginctl usr/share/dbus-1/system-services/org.freedesktop.login1.service usr/share/dbus-1/system-services/org.freedesktop.hostname1.service usr/share/dbus-1/system-services/org.freedesktop.locale1.service usr/share/dbus-1/system-services/org.freedesktop.timedate1.service usr/share/dbus-1/interfaces/org.freedesktop.hostname1.xml usr/share/dbus-1/interfaces/org.freedesktop.locale1.xml usr/share/dbus-1/interfaces/org.freedesktop.timedate1.xml usr/share/man/man1/loginctl.1 usr/share/man/man1/localectl.1 usr/share/man/man1/hostnamectl.1 usr/share/man/man1/timedatectl.1 usr/share/man/man5/logind.conf.5 usr/share/man/man8/systemd-logind.service.8 usr/share/man/man8/systemd-logind.8 usr/share/man/man8/systemd-hostnamed.service.8 usr/share/man/man8/systemd-hostnamed.8 usr/share/man/man8/systemd-localed.service.8 usr/share/man/man8/systemd-localed.8 usr/share/man/man8/systemd-timedated.service.8 usr/share/man/man8/systemd-timedated.8 usr/share/polkit-1/actions/org.freedesktop.login1.policy usr/share/polkit-1/actions/org.freedesktop.hostname1.policy usr/share/polkit-1/actions/org.freedesktop.locale1.policy usr/share/polkit-1/actions/org.freedesktop.timedate1.policy debian/udev.udev-fallback-graphics.upstart0000644000000000000000000000117512322650215016054 0ustar # fallback-graphics - take actions to initiate fallback graphics # # if we have cold plugged everything and not yet seen a valid graphics # device, # shove a fallback framebuffer into the mix and hope for the best. description "load fallback graphics devices" # We only want this job to happen once per boot, hence 'startup and ...'. start on (startup and (graphics-device-added PRIMARY_DEVICE_FOR_DISPLAY=1 or drm-device-added PRIMARY_DEVICE_FOR_DISPLAY=1 or stopped udevtrigger or container)) task script if [ "$PRIMARY_DEVICE_FOR_DISPLAY" = "" ]; then modprobe -q -b vesafb fi end script debian/systemd-logind-launch0000755000000000000000000000055312322650215013327 0ustar #!/bin/sh if ! mountpoint -q /sys/fs/cgroup; then mount -t tmpfs -o uid=0,gid=0,mode=0755,size=1024 none /sys/fs/cgroup fi if ! mountpoint -q /sys/fs/cgroup/systemd; then mkdir -p /sys/fs/cgroup/systemd mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd /sys/fs/cgroup/systemd fi mkdir -p /run/systemd exec /lib/systemd/systemd-logind debian/libsystemd-id128-dev.install0000644000000000000000000000014512322650215014334 0ustar usr/lib/*/libsystemd-id128.so usr/lib/*/pkgconfig/libsystemd-id128.pc usr/include/systemd/sd-id128.h debian/libsystemd-journal0.install0000644000000000000000000000003612322650215014462 0ustar lib/*/libsystemd-journal.so.* debian/systemd.triggers0000644000000000000000000000005212322650215012421 0ustar interest-noawait /usr/lib/systemd/catalog debian/watch0000644000000000000000000000011512322650215010212 0ustar version=3 http://www.freedesktop.org/software/systemd/systemd-(\d+)\.tar\.xz debian/systemd-sysv.install0000644000000000000000000000030712322650215013246 0ustar usr/share/man/man8/telinit.8 usr/share/man/man1/init.1 usr/share/man/man8/runlevel.8 usr/share/man/man8/shutdown.8 usr/share/man/man8/poweroff.8 usr/share/man/man8/reboot.8 usr/share/man/man8/halt.8 debian/udev.README.Debian0000644000000000000000000001526112322650215012174 0ustar How does udev work? ~~~~~~~~~~~~~~~~~~~ Short summary: when a driver is loaded it makes some information available in /sys/ and a message is sent to udevd which reads them and creates the appropriate devices. This means that: - modules cannot be loaded on demand when applications open their device, because the device is not yet there! - since modules are not loaded on demand, if for some reason the drivers cannot be automatically loaded at boot time you will have to add them to /etc/modules. - some modules are not hardware drivers and cannot be loaded automatically by udev, so they will have to be listed in /etc/modules as well. - some modules for less usual bus types lack the sysfs data needed to be automatically loaded and must be loaded manually. (See #334238 and #337004 for details.) udevd also manages the hotplug events and if needed dispatches them to other programs using RUN rules, as a replacement of the old /sbin/hotplug. Debugging early boot ~~~~~~~~~~~~~~~~~~~~ If the system hangs at boot time or fails to boot properly, it may be useful to examine in real time what is happening while "udevadm settle" is running. A simple way to do this is: * boot the system passing "init=/bin/bash" on the kernel command line * start a getty on tty2 (or the serial console) with a command like "/sbin/getty 38400 tty2 &" * continue the boot process with "exec /sbin/init single" The open console can be used to check which processes are running and what they are waiting for. Setting the kernel command line options documented in udevd(8) may also help to identify system-wide troubles caused by specific kernel drivers. Required kernel support ~~~~~~~~~~~~~~~~~~~~~~~ The required kernel version and features are documented in the README file. Disabling udev ~~~~~~~~~~~~~~ You may configure in /etc/udev/udev.conf a directory other than /dev or add UDEV_DISABLED=yes to the kernel command line. Manually creating devices ~~~~~~~~~~~~~~~~~~~~~~~~~ Device nodes present in /lib/udev/devices/ will be copied to /dev/ at boot time. The /etc/udev/rules.d/ directory ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The files are read and processed in alphabetical order, and the directives of matching rules are applied in order. If a file with the same name is present in more than one of the /run/udev/rules.d/, /etc/udev/rules.d/ and /lib/udev/rules.d/ directories then the latter(s) file will be ignored. Since the order may be important, files have a specific name which must be considered when adding custom rules. So far have been defined: - 60: path_id and the other *_id programs are run. persistent links are set. - 70: network interfaces are renamed and generated rules for persistent links are processed. - 75: the rules generators are run if needed. - 80: drivers are loaded. - 91: the default permissions and owners are set. - 95: $REMOVE_CMD is run, and then processing of tty devices is stopped with last_rule. The persistent-*.rules files are generated by the *-generator.rules files using the /lib/udev/write_*_rules scripts when new devices are detected. They set stable names for network interfaces and optical devices aliases. How to know the attributes of a device ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Try something like: udevadm info --attribute-walk --path=/sys/class/sound/pcmC0D0c/ Devices timestamps ~~~~~~~~~~~~~~~~~~ Most devices will be created at the beginning of the boot process, and will have the creation time of the kernel clock at that moment. On systems whose system clock is set on local time instead of UTC, the kernel clock will be updated in a later phase of the boot process and for a few hours the devices will have a timestamp in the future. This is usually not a problem, but if it bothers you it can be fixed by running touch(1) in an init script. SCSI block and generic devices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ When you create a custom rule which matches SCSI devices by some sysfs attributes, do not forget that it will match not only the sdX device node you are probably looking for but also the SCSI generic device node sgX. To get the expected behaviour, you need to add KERNEL="sd*" to your rule. A typical example for an USB pen drive is: SUBSYSTEMS=="usb", KERNEL=="sd*", \ ATTRS{manufacturer}=="hardware vendor", ATTRS{product}=="model", \ SYMLINK+="pendrive%n" If a device does not report media changes (like e.g. many SD card readers) you will also need to add the OPTIONS+="all_partitions" attribute to the rule. This is not needed if you are using HAL. Network Interfaces ~~~~~~~~~~~~~~~~~~ After receiving events about network interfaces, net.agent will call ifupdown using the --allow=hotplug option. This makes the program act only on interfaces marked with the "allow-hotplug" statement. E.g: "allow-hotplug eth0" instead of the usual "auto eth0". The loopback interface must always be configured with "auto lo". The persistent names of network interfaces by default are automatically written to /etc/udev/rules.d/70-persistent-net.rules . Users can add their own rules there or at any other place before 70. MAC addresses matching is literal, so they must be written in lower case. To disable persistent naming of network interfaces, create an empty /etc/udev/rules.d/75-persistent-net-generator.rules file to override the one in /lib/udev/rules.d/ and delete /etc/udev/rules.d/70-persistent-net.rules. Beware: programs which rename network interfaces like ifrename and nameif will let udev relay events for the old names and should not be used. Usually network interfaces are renamed after the root file system has been mounted, so if the root file system is mounted over the network then the 70-persistent-net.rules file must be copied to the initramfs. In most cases this is done automatically, but some setups may require explicitly setting "export NEED_PERSISTENT_NET=yes" in a file in /etc/initramfs-tools/conf.d/ . If 70-persistent-net.rules is copied to the initramfs then it must be updated every time a new interface is added. Using udev with LDAP or NIS ~~~~~~~~~~~~~~~~~~~~~~~~~~~ If the rules files reference usernames or groups not present in the /etc/{passwd,group} files and the system is configured to use a network-based database like LDAP or NIS then udev may fail at boot time because users and groups are looked up well before the network has been initialized. A possible solution is to configure /etc/nsswitch.conf like this: passwd: files ldap [UNAVAIL=return] group: files ldap [UNAVAIL=return] The nsswitch.conf syntax is documented in the glibc manual. Other documentation ~~~~~~~~~~~~~~~~~~~ http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html http://www.reactivated.net/udevrules.php http://www.kroah.com/linux/talks/suse_2005_driver_model/ debian/libudev1-udeb.install0000644000000000000000000000002312322650215013177 0ustar lib/*/libudev.so.* debian/changelog0000644000000000000000000017662612323005321011051 0ustar systemd (204-5ubuntu20) trusty; urgency=medium * systemd-logind.conf: Don't use the limit stanza which fails the whole job when failing to set the ulimit. Instead call ulimit itself from the job and ignore its return code. This allow systemd-logind to start in unprivileged LXC containers. (LP: #1307595) -- Stéphane Graber Mon, 14 Apr 2014 12:20:33 -0400 systemd (204-5ubuntu19) trusty; urgency=medium * cgmanager: don't call nih_dbus_setup() since we won't use the nih_mainloop(). (LP: #1303649) -- Serge Hallyn Fri, 11 Apr 2014 10:17:04 -0500 systemd (204-5ubuntu18) trusty; urgency=medium * Revert "Do not restart logind on package upgrades" change from 204-0ubuntu1. This is obsolete now, as we only ever shipped version 204 in stable releases. This was an intra-development release upgrade fix only, and it did not even work properly. This fixes logind not getting started on package install. (LP: #1305395) * Update 60-keyboard.hwdb from upstream git. Adds Samsung Series 7 Ultra. * debian/libpam-systemd.systemd-logind.upstart: Don't try to mount /sys/fs/cgroup/systemd in a container, as that will fail. cgmanager will be used for these cases. -- Martin Pitt Thu, 10 Apr 2014 15:46:51 +0200 systemd (204-5ubuntu17) trusty; urgency=medium * Fix crash on systems without cgmanager. (LP: #1302264) -- Stéphane Graber Fri, 04 Apr 2014 00:17:14 -0400 systemd (204-5ubuntu16) trusty; urgency=medium [ Stéphane Graber ] * Never call normalize_controller when controll is NULL as this triggers an assert... (LP: #1301846) [ Serge Hallyn ] * d/p/add-cgmanager-support: make sure connections are closed (LP: #1301882) -- Stéphane Graber Thu, 03 Apr 2014 13:53:09 -0400 systemd (204-5ubuntu15) trusty; urgency=medium * Pass --disable-cgmanager in the udeb build pass, d-i doesn't need it. -- Adam Conrad Wed, 02 Apr 2014 22:01:55 -0600 systemd (204-5ubuntu14) trusty; urgency=medium [ Steve Langasek ] * Do proper refcounting of the PAM module package on prerm, so that we don't drop the module from the PAM config when uninstalling a foreign-arch package. Related to Ubuntu bug #1295521. [ Stéphane Graber ] * Add cgmanager support to logind. This will use the cgmanager socket instead of cgroupfs when cgmanager is available. Otherwise it'll simply fallback on the cgroupfs code. (LP: #1297363) -- Stéphane Graber Tue, 01 Apr 2014 20:02:35 -0400 systemd (204-5ubuntu13) trusty; urgency=medium * Fix FTBFS against recent kernels & glibc. -- Dimitri John Ledkov Fri, 28 Feb 2014 23:54:54 +0000 systemd (204-5ubuntu12) trusty; urgency=medium * Mark autopkgtest with "isolation-machine" as this test can't run in schroot or LXC. * Import latest keymaps from upstream git. -- Martin Pitt Fri, 28 Feb 2014 11:55:09 +0100 systemd (204-5ubuntu11) trusty; urgency=medium [ Ben Howard ] * debian/extra/rules/75-persistent-net-generator.rules: Add new block of Windows Azure ethernet hardware address to ignore persistent naming (LP: #1274348). [ Stefan Bader ] * Modify debian/extra/rules/78-graphics-card.rules to match for "efi-framebuffer" in addition to "efifb" (LP: #1277006) [ Martin Pitt ] * debian/extra/rules/78-graphics-card.rules: Add vesa-framebuffer as well, thanks to Andy Whitcroft for pointing out. -- Martin Pitt Thu, 06 Feb 2014 12:42:39 +0100 systemd (204-5ubuntu10) trusty; urgency=medium * Add debian/extra/rules/73-idrac.rules: On Dell PowerEdge systems, the iDRAC7 and later support a USB Virtual NIC for management. Name this interface "idrac" to avoid confusion with "real" network interfaces. * Pull latest keymaps from upstream git: - Acer Aspire One A110 Fn+F5 Key release (LP: #1272658) - Sony Vaio VGN-FW250 (LP: #1271163) -- Martin Pitt Wed, 29 Jan 2014 17:51:14 +0100 systemd (204-5ubuntu9) trusty; urgency=medium [ Chris Wayne ] * support-phablet-etc-writable.patch: Allow writing to /etc/hostname and /etc/machine-info as symlinks. -- Martin Pitt Mon, 20 Jan 2014 10:03:39 +0100 systemd (204-5ubuntu8) trusty; urgency=low * pam-check-runtime-dir-user.patch: Make "not owned by the target uid" log message only appear in debug mode, as it's a normal operation. * Respect DEB_BUILD_OPTIONS=nocheck. * Update 60-keyboard.hwdb from upstream git. -- Martin Pitt Fri, 10 Jan 2014 08:18:59 +0100 systemd (204-5ubuntu7) trusty; urgency=medium * Enable all cgroup controllers in logind.conf. This is needed so that unprivileged LXC may work. -- Stéphane Graber Thu, 09 Jan 2014 11:16:57 -0500 systemd (204-5ubuntu6) trusty; urgency=low * Add pam-check-runtime-dir-user.patch: Don't set an existing $XDG_RUNTIME_DIR in the PAM module if it isn't owned by the session user. Otherwise su sessions get a runtime dir from a different user which leads to either permission errors or scribbling over the other user's files. (LP: #1197395) * Update debian/extra/60-keyboard.hwdb from current upstream trunk: - Fix Lenovo Z370 (LP: #1245189) -- Martin Pitt Wed, 13 Nov 2013 14:00:55 +0100 systemd (204-5ubuntu5) trusty; urgency=low * Remove Debian's customized 80-drivers.rules, use (patched) upstream's as we always did. -- Martin Pitt Mon, 11 Nov 2013 07:06:47 +0100 systemd (204-5ubuntu4) trusty; urgency=low * Remove Debian's customized persistent storage rules, use upstream's as we always used to do. -- Martin Pitt Mon, 11 Nov 2013 06:59:42 +0100 systemd (204-5ubuntu3) trusty; urgency=low * Re-add login-monitor-no-machine.patch to quilt series. -- Martin Pitt Thu, 07 Nov 2013 10:05:33 +0100 systemd (204-5ubuntu2) trusty; urgency=low * debian/udev.install: Drop duplicate installation of net generator, reduces Debian delta. * Drop debian/extra/firmware.agent and its invocation in 80-drivers.rules; we do not install this anyway, firmware is loaded by the udev builtin (and the kernel). * 0020-persistent-storage-rule-mmc-partname.patch: Create symlinks for MMC partitions with a "PARTNAME" property (Android specific patch) in /dev/disks/by-partlabel/ for consistency with GUID partitions, not in /dev/disks/by-name/. * Add magically generated debian patches from the source package (v204..upstream-fixes_204-5 and debian-changes), and drop our patches which are contained in that: - 0000-upstream-CVE-2013-4327.patch - 0010-Add-back-support-for-Debian-specific-config-files.patch - 0012-Make-logind-hostnamed-localed-timedated-D-Bus-activa.patch - 0017-Clean-up-empty-sessions-when-not-running-under-syste.patch - 0024-hwdb-in-lib.patch - 0030-revert-removal-of-rename_netif-functionality.patch * Drop prefix from our remaining patches, and sort quilt series into categories. * Drop "Breaks: consolekit (<< 0.4.6-1)" (slipped in with the merge), we don't depend on consolekit providing udev-acl as we only support logind's ACLs. -- Martin Pitt Thu, 07 Nov 2013 06:13:20 +0100 systemd (204-5ubuntu1) trusty; urgency=low * Merge packaging with current Debian unstable, to greatly reduce the diff noise. Ubuntu changes: Permanently Ubuntu specific: - debian/control, debian/rules, debian/systemd.install, debian/systemd-services.install: Split out systemd-services package with logind, timedated, hostnamed, and localed. Add libpam-systemd.systemd-logind.upstart to bring up logind at boot. - debian/rules: Don't build systemd and systemd-sysv packages, not approved for universe for now. - debian/udev.templates, Drop debconfiscation of udev, not necessary for Ubuntu. - debian/extra/initramfs.top: Drop $ROOTDELAY, we do that in a more sensible way with wait-for-root. (Will get applicable to Debian once Debian gets wait-for-root in initramfs-tools.) - Add debian/extra/rules/78-graphics-card.rules: Mark graphics devices as PRIMARY_DEVICE_FOR_DISPLAY so that we can wait for those in plymouth. - Drop debian/extra/{50-udev-default.rules,75-cd-aliases-generator.rules, 80-networking.rules,91-permissions.rules}, we don't want these in Ubuntu. - Add debian/extra/udev.py: Apport hook. - debian/extra/udev.startup, debian/rules: Don't install/support /etc/udev/links.conf, that's a hack (if you want links, create udev rules). - Various debian/patches/*, see patch headers (unmergeable with Debian). - Drop debian/source/{git-patches,options}, we use proper patches. - debian/rules: We continue to use the old net iface naming schema for the time being. Install old udev rule generator in debian/udev.install. (Reconsider post-LTS) - debian/rules: Don't install init.d scripts, only the upstart jobs. - debian/rules: Add an epoch to libgudev. - Drop debian/udev.dirs, not necessary. - Drop debian/udev.NEWS, debian/udev.maintscript: Not applicable to Ubuntu. - debian/udev.{postinst,postrm,preinst,prerm}: Keep our much simpler versions (all platforms must support udev, no debconf). - debian/libgudev-1.0-0.install: Install into /lib/ (Debian has a patch for this to go into /usr/lib/). - debian/rules: Drop doc dir symlinking. It creates havoc with dpkg upgrades, and we already have the automatic per-file symlinking. Applicable to Debian: - debian/control, debian/tests/: Add autopkgtest. - debian/extra/initramfs.hook, debian/udev.*{pre,post}inst: Divert udevadm to udevadm.upgrade during upgrades while udev is unconfigured. - Add debian/extra/60-keyboard.hwdb: Latest upstream keymaps, for easy backporting. - debian/extra/initramfs.bottom: If LVM is installed, settle udev, otherwise we get missing LV symlinks. (LP #1185394) - debian/extra/rules/75-persistent-net-generator.rules: Add Ravello systems (LP #1099278) - Add debian/extra/README-{etc,lib}-rules.d documentation, install into udev. - debian/rules: Run tests during package build. - debian/udev.udev-finish.upstart: Fix path to tmp-rules, debian/extra/rule_generator.functions creates them in /run/udev/. - debian/udev.upstart: Fix path to udevd. - debian/shlibs.local: Drop libudev; this unnecessarily generates overly strict dependencies, and even wrong ones for our epoched libgudev. - debian/udev-udeb.install: Add 64-btrfs.rules and 75-probe_mtd.rules, they are potentially useful in a d-i environment. Will go away eventually: - Add debian/extra/rules/40-hyperv-hotadd.rules: Workaround for LP #1233466 - Keep debian/extra/firmware.agent and rule in debian/extra/rules/80-drivers.rules until this has been tested to not be necessary under Ubuntu kernels any more. Upgrade fixes, keep until 14.04 LTS release: - debian/control: Conflicts/Replaces libpam-xdg-support. - debian/libpam-systemd.postinst: Trigger reboot notification for upgrade from < 204, due to changed cgroup layout. - debian/systemd-services.maintscript: Clean up obsolete /etc/init/systemd-logind.conf on upgrades. * Promote "systemd | systemd-shim" to Depends. (LP: #1221809) * 0000-upstream-hwdb-keyboard.patch: udev-builtin-keyboard: Fix large scan codes on 32 bit architectures. (side issue in LP #1247676) * Drop systemd init specific Debian patches which we don't need in Ubuntu; The Debian package does not track proper patches any more, so it doesn't help us keeping the patches around for merging. -- Martin Pitt Wed, 06 Nov 2013 14:01:26 +0100 systemd (204-5) unstable; urgency=high * Cherry-pick 72fd713 from upstream which fixes insecure calling of polkit by avoiding a race condition in scraping /proc (CVE-2013-4327). Closes: #723713 -- Michael Biebl Mon, 23 Sep 2013 11:59:53 +0200 systemd (204-4) unstable; urgency=low * Add preinst check to abort udev upgrade if the currently running kernel lacks devtmpfs support. Since udev 176, devtmpfs is mandatory as udev no longer creates any device nodes itself. This only affects self-compiled kernels which now need CONFIG_DEVTMPFS=y. Closes: #722580 * Fix SysV init script to correctly mount a devtmpfs instead of tmpfs. This only affects users without an initramfs, which usually is responsible for mounting the devtmpfs. Closes: #722604 * Drop pre-squeeze upgrade code from maintainer scripts and simplify the various upgrade checks. * Suppress errors about unknown hwdb builtin. udev 196 introduced a new "hwdb" builtin which is not understood by the old udev daemon. * Add missing udeb line to shlibs.local. This ensures that udev-udeb gets a proper dependency on libudev1-udeb and not libudev1. Closes: #722939 * Remove udev-udeb dependency from libudev1-udeb to avoid a circular dependency between the two packages. This dependency was copied over from the old udev-gtk-udeb package and no longer makes any sense since libudev1-udeb only contains a library nowadays. -- Michael Biebl Wed, 18 Sep 2013 00:05:21 +0200 systemd (204-3) unstable; urgency=low [ Michael Biebl ] * Upload to unstable. * Use /bin/bash in debug-shell.service as Debian doesn't have /sbin/sushell. * Only import net.ifaces cmdline property for network devices. * Generate strict dependencies between the binary packages using a shlibs.local file and add an explicit versioned dependency on libsystemd-login0 to systemd to ensure packages are upgraded in sync. Closes: #719444 * Drop obsolete Replaces: libudev0 from udev package. * Use correct paths for various binaries, like /sbin/quotaon, which are installed in / and not /usr in Debian. Closes: #721347 * Don't install kernel-install(8) man page since we don't install the corresponding binary either. Closes: #722180 * Cherry-pick upstream fixes to make switching runlevels and starting reboot via ctrl-alt-del more robust. * Cherry-pick upstream fix to properly apply ACLs to Journal files. Closes: #717863 [ Michael Stapelberg ] * Make systemctl enable|disable call update-rc.d for SysV init scripts. Closes: #709780 * Don't mount /tmp as tmpfs by default and make it possible to enable this feature via "systemctl enable tmp.mount". Closes: #718906 [ Daniel Schaal ] * Add bug-script to systemd and udev. Closes: #711245 [ Ondrej Balaz ] * Recognize discard option in /etc/crypttab. Closes: #719167 -- Michael Biebl Thu, 12 Sep 2013 00:13:11 +0200 systemd (204-2) experimental; urgency=low [ Daniel Schaal ] * Enable verbose build logs. Closes: #717465 * Add handling of Message Catalog files to provide additional information for log entries. Closes: #717427 * Remove leftover symlink to debian-enable-units.service. Closes: #717349 [ Michael Stapelberg ] * Install 50-firmware.rules in the initramfs and udeb. Closes: #717635 [ Michael Biebl ] * Don't pass static start priorities to dh_installinit anymore. * Switch the hwdb trigger to interest-noawait. * Remove obsolete support for configurable udev root from initramfs. * Bind ifup@.service to the network device. This ensures that ifdown is run when the device is removed and the service is stopped. Closes: #660861, #703033 * Bump Standards-Version to 3.9.4. No further changes. * Add Breaks against consolekit (<< 0.4.6-1) for udev-acl. Closes: #717385 * Make all packages Priority: optional, with the exception of udev and libudev1, which remain Priority: important, and systemd-sysv, which remains Priority: extra due to the conflict with sysvinit. Closes: #717365 * Restart systemd-logind.service on upgrades due to changes in the CreateSession D-Bus API between v44 and v204. Closes: #717403 -- Michael Biebl Wed, 24 Jul 2013 23:47:59 +0200 systemd (204-1) experimental; urgency=low * New upstream release. Closes: #675175, #675177 - In v183 the udev sources have been merged into the systemd source tree. As a result, the udev binary packages will now be built from the systemd source package. To align the version numbers 139 releases were skipped. - For a complete list of changes, please refer to the NEWS file. * Add Marco to Uploaders. * Drop Suggests on the various python packages from systemd. The systemd-analyze tool has been reimplemented in C. * Add binary packages as found in the udev 175-7.2 source package. * Wrap dependencies for better readability. * Drop hard-coded Depends on libglib2.0-0 from gir1.2-gudev-1.0. * Drop old Conflicts, Replaces and Breaks, 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. * Drop our faketime hack. Upstream uses a custom xsl style sheet now to generate the man pages which no longer embeds the build date. * Add Depends on libpam-runtime (>= 1.0.1-6) to libpam-systemd as we are using pam-auth-update. * Explicitly set Section and Priority for the udev binary package. * 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. * Use gir dh addon to ensure ${gir:Depends} is properly set. * Rename libudev0 → libudev1 for the SONAME bump. * Update symbols files. libudev now uses symbols versioning as the other libsystemd libraries. The libgudev-1.0-0 symbols file has been copied from the old udev package. * Run gtkdocize on autoreconf. * Enable python bindings for the systemd libraries and ship them in a new package named python-systemd. * Tighten Depends on libsystemd-id128-dev for libsystemd-journal-dev as per libsystemd-journal.pc. * Remove obsolete bash-completion scripts on upgrades. Nowadays they are installed in /usr/share/bash-completion/completions. * Rename conffiles for logind and journald. * Rename udev-gtk-udeb → libudev1-udeb to better reflect its actual contents. * Build two flavours: a regular build and one for the udev udebs with reduced features/dependencies. * Create a few compat symlinks for the udev package, most notably /sbin/udevadm and /sbin/udevd. * Remove the dpkg-triggered debian-enable-units script. This was a temporary workaround for wheezy. Packages should use dh-systemd now to properly integrate service files with systemd. * Update debian/copyright using the machine-readable copyright format 1.0. * Integrate changes from udev 175-7 and acknowledge the 175-7.1 and 175-7.2 non-maintainer uploads. * Keep the old persistent network interface naming scheme for now and make the new one opt-in via net.ifnames=1 on the kernel command line. * Drop the obsolete udev-mtab SysV init script and properly clean up on upgrades. * Simplify the udev SysV init script and remove experimental and obsolete features. * Revert upstream commits which dropped support for distro specific features and config files. * Make logind, hostnamed, localed and timedated D-Bus activatable and usable when systemd is not running. * Store hwdb binary database in /lib/udev, not /etc/udev. Create the file on install and upgrades. * Provide a dpkg file trigger for hwdb, so the database is automatically updated when packages install files into /lib/udev/hwdb.d. -- Michael Biebl Fri, 19 Jul 2013 00:32:36 +0200 systemd (204-0ubuntu19) saucy; urgency=low * Add 0031-ignore-omap-vsync.patch: Gross, but effective hack to ignore VSYNC change uevents from omapfb, as they happen at each vsync and thus keep waking up udevd (including rules processing), upstart, and other parts of the system 60 times a second. (LP: #1234743) -- Martin Pitt Thu, 17 Oct 2013 12:01:42 +0200 systemd (204-0ubuntu18) saucy; urgency=low * Configure with --disable-silent-rules, as per request from Matthias. * Add debian/extra/rules/40-hyperv-hotadd.rules: On Hyper-V VMs, bring new CPU and memory devices online as soon as they appear. This is not quite an ideal solution, but an unintrusive compromise for Saucy. (LP: #1233466) -- Martin Pitt Sat, 12 Oct 2013 12:16:29 +0200 systemd (204-0ubuntu17) saucy; urgency=low * Mount devpts with the correct permissions to avoid needing pt_chown. -- Adam Conrad Fri, 11 Oct 2013 00:46:12 -0600 systemd (204-0ubuntu16) saucy; urgency=low [ TJ ] * Add 0030-revert-removal-of-rename_netif-functionality.patch: Return the previous ability to postpone renaming until the target interface name is free. (LP: #1235162) [ Martin Pitt ] * Refresh debian/extra/60-keyboard.hwdb to fix Samsung models. -- Martin Pitt Wed, 09 Oct 2013 16:16:50 +0200 systemd (204-0ubuntu15) saucy; urgency=low * 0029-Support-phablet-etc-writable.patch: Update patch to also work for relative symlinks to /etc/writable, as livecd-rootfs 2.191 creates them relative now. (LP: #1227520) -- Martin Pitt Tue, 01 Oct 2013 17:53:13 +0200 systemd (204-0ubuntu14) saucy; urgency=low * Add 0029-Support-phablet-etc-writable.patch: On Ubuntu Phone with readonly /etc we symlink /etc/{adjtime,localtime,timezone} to /etc/writable/, so we need to update those files instead if the original files are symlinks into /etc/writable/. (LP: #1227520) * Refresh debian/extra/60-keyboard.hwdb with latest keymaps from upstream. Among others, this fixes Samsung Ativ 9 Plus. (LP: #1229936) * Rename 0027-CVE-2013-4327.patch and 0028-fix-reboot-polkit-permissions.patch to 0000-upstream-* as they are in upstream git. * Ship {ata,cdrom,scsi}_id in udev-udeb. (LP: #1231230) * Drop 60-persistent-v4l.rules and 61-accelerometer.rules from udev-udeb, we don't need these in the installer. -- Martin Pitt Mon, 30 Sep 2013 13:34:06 +0200 systemd (204-0ubuntu13) saucy; urgency=low * debian/patches/0028-fix-reboot-polkit-permissions.patch: make reboot-multiple-sessions polkit permissions consistent with power-off-multiple-sessions in src/login/org.freedesktop.login1.policy.in. (LP: #1226509) -- Marc Deslauriers Thu, 26 Sep 2013 14:49:51 -0400 systemd (204-0ubuntu12) saucy; urgency=low * SECURITY UPDATE: possible privilege escalation via policykit UID lookup race. - debian/patches/0027-CVE-2013-4327.patch: pass system-bus-name as a subject instead of pid so policykit can get the information from the system bus in src/shared/polkit.c. - CVE-2013-4327 -- Marc Deslauriers Wed, 18 Sep 2013 13:19:40 -0400 systemd (204-0ubuntu11) saucy; urgency=low * Refresh debian/extra/60-keyboard.hwdb from upstream. Fixes keymap regressions on Dell and Samsung models. (LP: #1218433) -- Martin Pitt Fri, 06 Sep 2013 15:24:02 +0200 systemd (204-0ubuntu10) saucy; urgency=low * debian/systemd-services.install: Install systemd-multi-seat-x (LP: #1214146) * debian/local/78-graphics-card.rules: Also recognize vmwgfx driver. Thanks Reagan Sanders! (LP: #1208024) * Add 0000-upstream-hwdb-updates.patch: Update to latest upstream fixes of hwdb, to get proper keyboard support. * Move to hwdb keymap database to be able to continue to sync to upstream, and benefit from the improved speed and eased maintenance: - Drop 0000-upstream-keymaps.patch. - Add 0000-upstream-hwdb-keyboard.patch to backport the "keymap" builtin. - Add debian/extra/60-keyboard.hwdb (straight copy from upstream master), install in debian/udev.install. - debian/rules: Configure with --disable-keymap to not build/install the old keymap stuff any more. - Adds keymap for Samsung NP53U3C (LP: #1203853) -- Martin Pitt Tue, 27 Aug 2013 13:09:08 +0200 systemd (204-0ubuntu9) saucy; urgency=low * debian/udev.install: re-add installing /lib/udev/hotplug.functions, since it's still being used by the inputattach, bluez, and usb_modeswitch scripts. -- Mathieu Trudel-Lapierre Thu, 08 Aug 2013 10:42:38 -0400 systemd (204-0ubuntu8) saucy; urgency=low * rules/80-drivers.rules: trigger the cpu helper modules regardless of whether the kernel already has a driver loaded for the CPU components. (LP: #1207705) -- Andy Whitcroft Fri, 02 Aug 2013 10:34:17 +0100 systemd (204-0ubuntu7) saucy; urgency=low * debian/tests/control: Add missing pkg-config test dependency, drop unnecessary python3 dependency. -- Martin Pitt Fri, 19 Jul 2013 11:38:40 +0200 systemd (204-0ubuntu6) saucy; urgency=low * debian/rules: Drop /system/firmware and /vendor/firmware paths again, we don't currently need them. * debian/extra/initramfs.top: Drop the $ROOTDELAY sleep, we already do that in a more sensible way in wait-for-root. (LP: #1202700) * Add debian/tests/api: Add check for sd_login_monitor_*(), to reproduce LP #1201180. * Add 0025-login-monitor-no-machine.patch: Fix sd_login_monitor_new() to not fail if there is no /sys/fs/cgroup/systemd/machine; that only exists when running with systemd as PID 1. (LP: #1201180) * debian/tests/logind: Create /run/udev/rules.d if it does not exist. * Switch from pre-generated hwdb database to shipping the source files (/lib/udev/hwdb.d/) and building hwdb.bin in postinst and with a trigger. Upstream software like libgphoto, libsane, and media-player-info will ship their own hwdb files soon, so be prepared for that. -- Martin Pitt Fri, 19 Jul 2013 09:45:54 +0200 systemd (204-0ubuntu5) saucy; urgency=low * Add 0000-upstream-keymaps.patch: Backport latest keymap fixes from upstream, as we won't be able to update to newer upstream releases anytime soon. (LP: #1193147, #1157334, #1152377, #1012365, #727139) * Refresh our patches to apply cleanly. -- Martin Pitt Fri, 05 Jul 2013 08:54:06 +0200 systemd (204-0ubuntu4) saucy; urgency=low * Properly integrate hwdb, to get back vendor/product names in the udev db: - Add 0024-hwdb-in-lib.patch: udev hwdb: Store binary database in libdir, not in /etc. - debian/rules: Build and ship pre-generated hwdb; do not ship the source files, they are quite big and for now we do not have other packages which want to add files there. - LP: #1190947 -- Martin Pitt Fri, 14 Jun 2013 12:59:10 +0200 systemd (204-0ubuntu3) saucy; urgency=low * debian/extra/udev.startup: Restore devpts mounting, dropped in 202-0ubuntu10. The justification for dropping it was that it's already done by /usr/share/initramfs-tools/init, but this script is only used in d-i and d-i does not use /usr/share/initramfs-tools/init (LP: #1188864). -- Colin Watson Sat, 08 Jun 2013 00:32:53 +0100 systemd (204-0ubuntu2) saucy; urgency=low * debian/rules: Add /system/firmware and /vendor/firmware to firmware search paths. (LP: #1187616) * debian/libpam-systemd.postinst: Notify about required reboot when upgrading from < 204, as due to changed cgroup layout restarting logind after the upgrade would lose all existing sessions. (LP: #1187579) -- Martin Pitt Wed, 05 Jun 2013 11:07:38 +0200 systemd (204-0ubuntu1) saucy; urgency=low * New upstream release. * debian/rules: Do not restart logind on package upgrades, as the cgroup organization changed in this version. -- Martin Pitt Tue, 04 Jun 2013 10:46:58 +0200 systemd (202-0ubuntu12) saucy; urgency=low * Rename debian/tests/localed to locale-locale, as we are going to add more tests for localed. * Add debian/tests/localed-x11-keymap: Test "localectl set-x11-keymap". * Put back 0010-Add-back-support-for-Debian-specific-config-files.patch to re-fix timedated, and add Steve's fix for /etc/default/keymap. Re-drop 0025-Adjust-localed-to-use-the-Debian-locations-of-etc-de.patch. * debian/extra/initramfs.bottom: We cannot properly synthesize LVM LV change events with udevadm trigger during boot, so if we use LVM, we need to let udev finish all the pending events in the initramfs. The 0024-avoid-exit-deadlock-for-dm_cookie.patch approach was inherently racy, as it still left vgchange subprocesses running from watershed (which then run into a non-existing /dev), so disable that patch. (LP: #1185394) -- Martin Pitt Mon, 03 Jun 2013 14:41:20 +0200 systemd (202-0ubuntu11) saucy; urgency=low * Drop 0010-Add-back-support-for-Debian-specific-config-files.patch in favor of 0025-Adjust-localed-to-use-the-Debian-locations-of-etc-de.patch, the more complete fix for Debian/Ubuntu configuration paths that was silently dropped from the Ubuntu package when updating to 198. -- Steve Langasek Thu, 30 May 2013 13:56:41 -0700 systemd (202-0ubuntu10) saucy; urgency=low * debian/extra/initramfs.bottom: Drop reading of /etc/udev/udev.conf, the location of /dev hasn't been configurable for ages. * debian/extra/initramfs.top: Drop obsolete "scsi_wait_scan" modprobing here as well. * all_generic_ide blacklist: Depend on "all_generic_ide blacklist", as in previous udev. * debian/extra/initramfs.top: Drop unnecessary "udevadm settle". * debian/extra/initramfs.hook: Put back ata_id and scsi_id, these were overzealously removed with the bits that are built in now (like blkid and usb_id). LP: #1185060 * debian/extra/udev.startup: Drop devpts mounting again, already done by /usr/share/initramfs-tools/init. * debian/extra/initramfs.hook: Install udevadm.upgrade when updating the initramfs while udev is unconfigured. * debian/extra/initramfs.hook: Remove duplicate copying of 70-persistent-net.rules. * debian/extra/initramfs.hook: Don't install the dmsetup and md rules. This is already done by dmsetup's and mdadm's initramfs hooks. -- Martin Pitt Wed, 29 May 2013 08:12:35 +0200 systemd (202-0ubuntu9) saucy; urgency=low * debian/udev-udeb.links: Add /sbin/udevadm backwards compat symlink, too. * debian/extra/udev.startup: Mount devtmpfs, not tmpfs with the manual make_extra_nodes(). * debian/extra/udev.startup: Mount devpts. * debian/extra/udev.startup: Drop obsolete "scsi_wait_scan" modprobing. -- Martin Pitt Tue, 28 May 2013 17:29:08 +0200 systemd (202-0ubuntu8) saucy; urgency=low * debian/udev.{preinst,postinst,postrm}: Disable udevadm trigger during upgrades, to cause installation failures of packages which call udevadm trigger without depending on udev. (LP: #1182948) * debian/extra/initramfs.hook: Copy /sbin/udevadm compatibility symlink into initramfs. (LP: #1184066) -- Martin Pitt Tue, 28 May 2013 13:13:42 +0200 systemd (202-0ubuntu7) saucy; urgency=low [ Martin Pitt ] * debian/*: Replace remaining "udevadm info --run" invocations with /run/udev/. (LP: #1182788) * Add 0020-persistent-storage-rule-mmc-partname.patch: Create disk/by-name links for mmcblk partitions if they have a PARTNAME property. Patch by Ricardo Salveti de Araujo, taken from udev 175-0ubuntu29. [ Andy Whitcroft ] * debian/extra/rules/78-graphics-card.rules -- demote efifb to a secondary display adaptor as in the majority of cases this will be replaced by a DRM driver. (LP: #1100386) -- Martin Pitt Wed, 22 May 2013 12:09:59 +0200 systemd (202-0ubuntu6) saucy; urgency=low * Build udev from this source package: - Unblacklist udev and udev-udeb packages. - Drop 70-power-switch.rules from systemd-services (shipped in udev). - Port patches from old udev source package which are still relevant: + 0021-block-polling.patch + 0022-fix-race-condition-of-serio-driver-module-not-loading.patch + 0023-load-fbcon.patch + 0024-avoid-exit-deadlock-for-dm_cookie.patch + 75-persistent-net-generator.rules: Do not create persistent net rules for Ravello Systems MAC addresses. Now apply inline in debian/extra/rules, as upstream dropped these. (LP #1099278) - Add debian/extra/rules/78-graphics-card.rules (taken from old udev package) - Add debian/*.upstart from old udev package, and adjust dh_installinit calls accordingly. - Add Apport package hook. - Add READMEs for /lib/udev/rules.d/ and /etc/udev/rules.d/. - Add debian/udev.postinst for restarting udev and rebuilding initramfs. - Drop 0020-uaccess-rule-with-old-udev.patch, not necessary any more with current udev. * debian/extra/initramfs.hook: Adjust for changed paths and rules files. * debian/extra/initramfs.bottom: Replace undefined "nuke" with "rm -rf". * Install udev rules into udev-udeb. * Ship README.keymap.txt in udev, not in systemd. * Copy persistent net/cd rules generator scripts from udev 175 to debian/extra/, and adjust for dropped "udevadm info --run". We continue to use the old naming schema for the time being, Don't install 80-net-name-slot.rules for now. * debian/extra/initramfs.bottom: Ignore timeout errors from udevadm we expect (and indeed requested) in certain failure modes. If we do not we will bail out early and not transfer /dev into /root which is always fatal leading to unbootable machines. (Taken from old udev package) (LP #818177) * Configure with correct --with-firmware-path. * Show test logs if running the test suite fails. * Disable test-sched-prio and test-util, they don't work in PPA buildds. -- Martin Pitt Tue, 21 May 2013 08:11:30 +0200 systemd (202-0ubuntu5) saucy; urgency=low * Drop 0016-Add-poweroff-reboot-suspend-hibernate-fallback.patch. systemd-shim 3 has a much better implementation of pm-utils fallback. Recommend systemd or systemd-shim >= 3 for that. * Ship 70-power-switch.rules. (LP: #1160995) -- Martin Pitt Thu, 02 May 2013 11:19:42 -0700 systemd (202-0ubuntu4) saucy; urgency=low * 0010-Add-back-support-for-Debian-specific-config-files.patch: Re-apply parts that use /etc/default/locale, which accidentally got dropped in 202-0ubuntu1. (LP: #1175065) -- Martin Pitt Wed, 01 May 2013 11:35:55 -0700 systemd (202-0ubuntu3) saucy; urgency=low * Disable journal-stream test case, which fails on powerpc. -- Martin Pitt Tue, 30 Apr 2013 11:31:39 -0700 systemd (202-0ubuntu2) saucy; urgency=low * Merge 0019-disable-unit-name-test.patch and 0021-disable-catalog-test.patch to 0019-disable-failing-buildd-tests.patch, and disable the cgroup-util as well (which fails on the buildds, too). -- Martin Pitt Tue, 30 Apr 2013 08:40:07 -0700 systemd (202-0ubuntu1) saucy; urgency=low * New upstream release. * Drop patches applied/superseded upstream: - 0011-Don-t-strip-rc.-from-sysv-init-scripts.patch - 0013-build-sys-don-t-hard-code-binary-paths-in-initrd-.se.patch - 0014-Move-udevadm-to-rootbindir.patch - 0015-Strip-Date-from-man-pages.patch * Update *.symbols for new release. * Add 0021-disable-catalog-test.patch: Disable catalog test for now, fails at the moment * Disable 0004-Don-t-run-systemd-udev-rules-if-systemd-is-not-activ.patch. We'll drop udev-acl and use uaccess exclusively. -- Martin Pitt Mon, 29 Apr 2013 17:15:47 -0700 systemd (198-0ubuntu12) saucy; urgency=low [ Martin Pitt ] * debian/rules: Don't build ddebs for blacklisted binary packages. * debian/systemd-services.install: Put back logind D-BUS activation file, now that we will use logind by default. [ Iain Lane ] * Use the shutdown fallback for "poweroff.target" too; this is invoked by org.freedesktop.login1.Manager.PowerOff (LP: #1171504) -- Martin Pitt Sun, 28 Apr 2013 06:34:43 -0700 systemd (198-0ubuntu11) raring; urgency=low * debian/libpam-systemd.systemd-logind.upstart: Don't start if libpam-systemd is removed but not purged. (LP: #1171691) -- Martin Pitt Tue, 23 Apr 2013 07:38:20 +0200 systemd (198-0ubuntu10) raring; urgency=low * debian/systemd-services.install: Don't install the D-BUS activation file for logind. Without libpam-systemd's upstart job (which sets up the cgroups) it does not work anyway, and with the upstart job it is already running anyway. We'll put that back in raring+1 to respawn after crashes, but for raring we do not want to run logind by default. (LP: #1167642) -- Martin Pitt Fri, 12 Apr 2013 06:44:27 +0200 systemd (198-0ubuntu9) raring; urgency=low * debian/tests/control: Add libpam-systemd dependency for logind test, as it checks for the mounted cgroup. Mounting that moved into libpam-systemd, see 198-0ubuntu7. * Drop usr/lib/systemd/ from systemd-services, this doesn't belong there and is already installed into systemd. * 0016-Add-poweroff-reboot-suspend-hibernate-fallback.patch: Send PrepareFor{Sleep,Shutdown}() signals with "false" after the operation finished. Thanks to Iain Lane for the initial patch! (LP: #1157122) -- Martin Pitt Tue, 26 Mar 2013 11:08:39 +0100 systemd (198-0ubuntu8) raring; urgency=low * Add gir addon, to call dh_girepository to get the gir:Depends dependency. (LP: #1159997) -- Dmitrijs Ledkovs Tue, 26 Mar 2013 09:24:38 +0000 systemd (198-0ubuntu7) raring; urgency=low * Make systemd-services installable without forcing the usage of logind, so that we can install it by default for the other D-BUS services: - Move systemd-logind upstart job into libpam-systemd. - Drop systemd-services' Recommends: to libpam-systemd. - LP: #1156074 -- Martin Pitt Tue, 19 Mar 2013 13:14:33 +0100 systemd (198-0ubuntu6) raring; urgency=low * Fix logind autopkgtest when there are no seats (as in Jenkins). -- Martin Pitt Mon, 18 Mar 2013 09:49:55 +0100 systemd (198-0ubuntu5) raring; urgency=low * Mark systemd-services as Multi-Arch: foreign. * Add autopkgtest for logind. Note that in Jenkins this will only have very light coverage as there it does not have a seat. When run locally, it will also cover hotplug and coldplug ACLs. * Add 0020-uaccess-rule-with-old-udev.patch: Our old udev does not yet understand RUN{builtin}, use IMPORT. This can be dropped when moving to a recent udev. Depend on the udev version with the uaccess builtin backport, so that applying ACLs on hotplugged devices actually works. -- Martin Pitt Fri, 15 Mar 2013 19:15:32 +0100 systemd (198-0ubuntu4) raring; urgency=low * Add 0019-disable-unit-name-test.patch: Disable test-unit-name for now, as it fails on the buildds, presumably because of a missing /etc/hostname. -- Martin Pitt Fri, 15 Mar 2013 11:55:21 +0100 systemd (198-0ubuntu3) raring; urgency=low * Add 0018-Add-env-variable-for-machine-ID-path.patch: During package build, in minimal chroots, or other systems which do not already have an /etc/machine-id we get six test failures. Introduce a $SYSTEMD_MACHINE_ID_PATH environment variable which can specify a location other than /etc/machine-id, so that the unit tests are independent from the environment. * debian/rules: Re-enable unit tests. Don't run them under fakeroot as that hangs some tests, and supply a local machine id file. * Add autopkgtests for hostnamed, localed, and timedated. * 0010-Add-back-support-for-Debian-specific-config-files.patch: Update patch for localed to use /etc/default/locale instead of /etc/locale.conf. * Rename udev-gtk-udeb to libudev1-udeb, and build it for Ubuntu. -- Martin Pitt Fri, 15 Mar 2013 11:37:45 +0100 systemd (198-0ubuntu2) raring; urgency=low * libgudev-1.0-dev: Don't depend on exact binary version of gir1.2-gudev-1.0, as libgudev-* have an epoch. -- Martin Pitt Wed, 13 Mar 2013 13:45:13 +0100 systemd (198-0ubuntu1) raring; urgency=low FFE for new version and libudev1 soname bump: LP #1153224 [ Michael Biebl ] * New upstream release with merged udev+systemd code bases. [ Martin Pitt ] * Split off new systemd-services binary package with logind, timedated, hostnamed, and localed. These can be used without the systemd init parts. * Add fallback to poweroff/reboot/pm-suspend/pm-hibernate if logind is running without systemd. * Clean up empty sessions when not running under systemd. * Add upstart job for logind. * Add Conflicts/Replaces/Provides for libpam-xdg-support and logind. * Disable udev and systemd packages for Ubuntu. udev (and its udebs) will be re-enabled once we apply our customizations from the standalone package, and the packages are confirmed to work. For systemd{,-sysv}, we need to decide whether or not we want these in universe. * Add epoch to libgudev packages for Ubuntu, as we had in udev. -- Martin Pitt Wed, 13 Mar 2013 10:46:40 +0100 systemd (44-12) unstable; urgency=low * Cherry-pick e17187 from upstream to fix build failures with newer glibc where the clock_* symbols have been moved from librt to libc. Closes: #701364 * If the new init-system-helpers package is installed, make the debian-enable-units script a no-op. The auto-enabler was meant as a temporary workaround and will be removed once all packages use the new helper. * Update the checks which test if systemd is the active init. The recommended check is [ -d /run/systemd/system ] as this will also work with a standalone systemd-logind. * Set Maintainer to pkg-systemd-maintainers@lists.alioth.debian.org. Add Tollef and myself as Uploaders. * Stop building the GUI bits. They have been split into a separate source package called systemd-ui. -- Michael Biebl Thu, 20 Jun 2013 01:32:16 +0200 systemd (44-11) unstable; urgency=low * Team upload. * Run debian-enable-units.service after sysinit.target to ensure our tmp files aren't nuked by systemd-tmpfiles. * The mountoverflowtmp SysV init script no longer exists so remove that from remount-rootfs.service to avoid an unnecessary diff to upstream. * Do not fail on purge if /var/lib/systemd is empty and has been removed by dpkg. -- Michael Biebl Wed, 13 Mar 2013 08:03:06 +0100 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. -- Michael Biebl Fri, 15 Feb 2013 17:01:24 +0100 systemd (44-9) unstable; urgency=low * Team upload. * Fix typo in systemd.socket man page. Closes: #700038 * Use color specification in "systemctl dot" which is actually understood by dot. Closes: #643689 * Fix mounting of remote filesystems like NFS. Closes: #673309 * Use a file trigger to automatically enable service and socket units. A lot of packages simply install systemd units but do not enable them. As a result they will be inactive after the next boot. This is a workaround for wheezy which will be removed again in jessie. Closes: #692150 -- Michael Biebl Fri, 15 Feb 2013 13:35:39 +0100 systemd (44-8) unstable; urgency=low * Team upload. * Use comment=systemd.* syntax in systemd.mount man page. The mount/util-linux version in wheezy is not recent enough to support the new x-systemd* syntax. Closes: #697141 * Don't enable persistent storage of journal log files. The journal in v44 is not yet mature enough. -- Michael Biebl Sat, 19 Jan 2013 20:05:05 +0100 systemd (44-7) unstable; urgency=low * Fix a regression in the init-functions hook wrt reload handling that was introduced when dropping the X-Interactive hack. Closes: #696355 -- Michael Biebl Fri, 21 Dec 2012 00:00:12 +0100 systemd (44-6) unstable; urgency=low [ Michael Biebl ] * No longer ship the /sys directory in the systemd package since it is provided by base-files nowadays. * Don't run udev rules if systemd is not active. * Converting /var/run, /var/lock and /etc/mtab to symlinks is a one-time migration so don't run the debian-fixup script on every boot. [ Tollef Fog Heen ] * Prevent the systemd package from being removed if it's the active init system, since that doesn't work. [ Michael Biebl ] * Use a separate tmpfs for /run/lock (size 5M) and /run/user (size 100M). Those directories are user-writable which could lead to DoS by filling up /run. Closes: #635131 -- Michael Biebl Sun, 16 Dec 2012 21:58:37 +0100 systemd (44-5) unstable; urgency=low * Team upload. [ Tollef Fog Heen ] * disable killing on entering START_PRE, START, thanks to Michael Stapelberg for patch. This avoids killing VMs run through libvirt when restarting libvirtd. Closes: #688635. * Avoid reloading services when shutting down, since that won't work and makes no sense. Thanks to Michael Stapelberg for the patch. Closes: #635777. * Try to determine which init scripts support the reload action heuristically. Closes: #686115, #650382. [ Michael Biebl ] * Update Vcs-* fields, the Git repository is hosted on alioth now. Set the default branch to "debian". * Avoid reload and (re)start requests during early boot which can lead to deadlocks. Closes: #624599 * Make systemd-cgroup work even if not all cgroup mounts are available on startup. Closes: #690916 * Fix typos in the systemd.path and systemd.unit man page. Closes: #668344 * Add watch file to track new upstream releases. -- Michael Biebl Thu, 25 Oct 2012 21:41:23 +0200 systemd (44-4) unstable; urgency=low [ Michael Biebl ] * Override timestamp for man page building, thereby avoiding skew between architectures which caused problems for multi-arch. Closes: #680011 [ Tollef Fog Heen ] * Move diversion removal from postinst to preinst. Closes: #679728 * Prevent the journal from crashing when running out of disk space. This is 499fb21 from upstream. Closes: #668047. * Stop mounting a tmpfs on /media. Closes: #665943 -- Tollef Fog Heen Sun, 01 Jul 2012 08:17:50 +0200 systemd (44-3) unstable; urgency=low [ Michael Biebl ] * Bump to debhelper 9. * Convert to Multi-Arch: same where possible. Closes: #676615 [ Tollef Fog Heen ] * Cherry-pick d384c7 from upstream to stop journald from leaking memory. Thanks to Andreas Henriksson for testing. Closes: #677701 * Ship lsb init script override/integration in /lib/lsb/init-functions.d rather than diverting /lib/lsb/init-functions itself. Add appropriate Breaks to ensure upgrades happen. -- Tollef Fog Heen Fri, 29 Jun 2012 22:34:16 +0200 systemd (44-2) unstable; urgency=low [ Michael Biebl ] * Tighten the versions in the maintscript file * Ship the /sys directory in the package * Re-add workaround for non-interactive PAM sessions * Mask checkroot-bootclean (Closes: #670591) * Don't ignore errores in systemd-sysv postinst [ Tollef Fog Heen ] * Bring tmpfiles.d/tmp.conf in line with Debian defaults. Closes: #675422 * Make sure /run/sensigs.omit.d exists. * Add python-dbus and python-cairo to Suggests, for systemd-analyze. Closes: #672965 -- Tollef Fog Heen Tue, 08 May 2012 18:04:22 +0200 systemd (44-1) unstable; urgency=low [ Tollef Fog Heen ] * New upstream version. - Backport 3492207: journal: PAGE_SIZE is not known on ppc and other archs - Backport 5a2a2a1: journal: react with immediate rotation to a couple of more errors - Backport 693ce21: util: never follow symlinks in rm_rf_children() Fixes CVE-2012-1174, closes: #664364 * Drop output message from init-functions hook, it's pointless. * Only rmdir /lib/init/rw if it exists. * Explicitly order debian-fixup before sysinit.target to prevent a possible race condition with the creation of sockets. Thanks to Michael Biebl for debugging this. * Always restart the initctl socket on upgrades, to mask sysvinit removing it. [ Michael Biebl ] * Remove workaround for non-interactive sessions from pam config again. * Create compat /dev/initctl symlink in case we are upgrading from a system running a newer version of sysvinit (using /run/initctl) and sysvinit is replaced with systemd-sysv during the upgrade. Closes: #663219 * Install new man pages. * Build-Depend on valac (>= 0.12) instead of valac-0.12. Closes: #663323 -- Tollef Fog Heen Tue, 03 Apr 2012 19:59:17 +0200 systemd (43-1) experimental; urgency=low [ Tollef Fog Heen ] * Target upload at experimental due to libkmod dependency * New upstream release - Update bash-completion for new verbs and arguments. Closes: #650739 - Fixes local DoS (CVE-2012-1101). Closes: #662029 - No longer complains if the kernel lacks audit support. Closes: #642503 * Fix up git-to-source package conversion script which makes gitpkg happier. * Add libkmod-dev to build-depends * Add symlink from /bin/systemd to /lib/systemd/systemd. * Add --with-distro=debian to configure flags, due to no /etc/os-release yet. * Add new symbols for libsystemd-login0 to symbols file. * Install a tmpfiles.d file for the /dev/initctl → /run/initctl migration. Closes: #657979 * Disable coredump handling, it's not ready yet. * If /run is a symlink, don't try to do the /var/run → /run migration. Ditto for /var/lock → /run/lock. Closes: #647495 [ Michael Biebl ] * Add Build-Depends on liblzma-dev for journal log compression. * Add Build-Depends on libgee-dev, required to build systemadm. * Bump Standards-Version to 3.9.2. No further changes. * Add versioned Build-Depends on automake and autoconf to ensure we have recent enough versions. Closes: #657284 * Add packages for libsystemd-journal and libsystemd-id128. * Update symbols file for libsystemd-login. * Update configure flags, use rootprefix instead of rootdir. * Copy intltool files instead of symlinking them. * Re-indent init-functions script. * Remove workarounds for services using X-Interactive. The LSB X-Interactive support turned out to be broken and has been removed upstream so we no longer need any special handling for those type of services. * Install new systemd-journalctl, systemd-cat and systemd-cgtop binaries. * Install /var/lib/systemd directory. * Install /var/log/journal directory where the journal files are stored persistently. * Setup systemd-journald to not read from /proc/kmsg (ImportKernel=no). * Avoid error messages from systemctl in postinst if systemd is not running by checking for /sys/fs/cgroup/systemd before executing systemctl. Closes: #642749 * Stop installing lib-init-rw (auto)mount units and try to cleanup /lib/init/rw in postinst. Bump dependency on initscripts accordingly. Closes: #643699 * Disable pam_systemd for non-interactive sessions to work around an issue with sudo. * Use new dh_installdeb maintscript facility to handle obsolete conffiles. Bump Build-Depends on debhelper accordingly. * Rename bash completion file systemctl-bash-completion.sh → systemd-bash-completion.sh. * Update /sbin/init symlink. The systemd binary was moved to $pkglibdir. -- Tollef Fog Heen Tue, 07 Feb 2012 21:36:34 +0100 systemd (37-1.1) unstable; urgency=low * Non-maintainer upload with Tollef's consent. * Remove --parallel to workaround a bug in automake 1.11.3 which doesn't generate parallel-safe build rules. Closes: #661842 * Create a compat symlink /run/initctl → /dev/initctl to work with newer versions of sysvinit. Closes: #657979 -- Michael Biebl Sat, 03 Mar 2012 17:42:10 +0100 systemd (37-1) unstable; urgency=low [ Tollef Fog Heen ] * New upstream version * Change the type of the debian-fixup service to oneshot. Closes: #642961 * Add ConditionPathIsDirectory to lib-init-rw.automount and lib-init-rw.mount so we only activate the unit if the directory exists. Closes: #633059 * If a sysv service exists in both rcS and rcN.d runlevels, drop the rcN.d ones to avoid loops. Closes: #637037 * Blacklist fuse init script, we do the same work already internally. Closes: #643700 * Update README.Debian slightly for /run rather than /lib/init/rw [ Josh Triplett ] * Do a one-time migration of the $TMPTIME setting from /etc/default/rcS to /etc/tmpfiles.d/tmp.conf. If /etc/default/rcS has a TMPTIME setting of "infinite" or equivalent, migrate it to an /etc/tmpfiles.d/tmp.conf that overrides the default /usr/lib/tmpfiles.d/tmp.conf and avoids clearing /tmp. Closes: #643698 -- Tollef Fog Heen Wed, 28 Sep 2011 20:04:13 +0200 systemd (36-1) unstable; urgency=low [ Tollef Fog Heen ] * New upstream release. Closes: #634618 - Various man page fixes. Closes: #623521 * Add debian-fixup service that symlinks mtab to /proc/mounts and migrates /var/run and /var/lock to symlinks to /run [ Michael Biebl ] * Build for libnotify 0.7. * Bump Build-Depends on libudev to (>= 172). * Add Build-Depends on libacl1-dev. Required for building systemd-logind with ACL support. * Split libsystemd-login and libsystemd-daemon into separate binary packages. * As autoreconf doesn't like intltool, override dh_autoreconf and call intltoolize and autoreconf ourselves. * Add Build-Depends on intltool. * Do a one-time migration of the hwclock configuration. If UTC is set to "no" in /etc/default/rcS, create /etc/adjtime and add the "LOCAL" setting. * Remove /cgroup cleanup code from postinst. * Add Build-Depends on gperf. -- Tollef Fog Heen Wed, 14 Sep 2011 08:25:17 +0200 systemd (29-1) unstable; urgency=low [ Tollef Fog Heen ] * New upstream version, Closes: #630510 - Includes typo fixes in documentation. Closes: #623520 * Fall back to the init script reload function if a native .service file doesn't know how to reload. Closes: #628186 * Add hard dependency on udev. Closes: #627921 [ Michael Biebl ] * hwclock-load.service is no longer installed, so we don't need to remove it anymore in debian/rules. * Install /usr/lib directory for binfmt.d, modules-load.d, tmpfiles.d and sysctl.d. * Remove obsolete conffiles from /etc/tmpfiles.d on upgrades. Those files are installed in /usr/lib/tmpfiles.d now. * Depend on util-linux (>= 2.19.1-2) which provides whole-disk locking support in fsck and remove our revert patch. * Don't choke when systemd was compiled with a different CAP_LAST_CAP then what it is run with. Patch cherry-picked from upstream Git. Closes: #628081 * Enable dev-hugepages.automount and dev-mqueue.automount only when enabled in kernel. Patch cherry-picked from upstream Git. Closes: #624522 -- Tollef Fog Heen Wed, 08 Jun 2011 16:14:31 +0200 systemd (25-2) experimental; urgency=low * Handle downgrades more gracefully by removing diversion of /lib/lsb/init-functions on downgrades to << 25-1. * Cherry-pick a133bf10d09f788079b82f63faa7058a27ba310b from upstream, avoids assert when dumping properties. Closes: #624094 * Remove "local" in non-function context in init-functions wrapper. -- Tollef Fog Heen Wed, 27 Apr 2011 22:20:04 +0200 systemd (25-1) experimental; urgency=low * New upstream release, target experimental due to initscripts dependency. - Fixes where to look for locale config. Closes: #619166 * Depend on initscripts >= 2.88dsf-13.4 for /run transition. * Add Conflicts on klogd, since it doesn't work correctly with the kmg→/dev/log bridge. Closes: #622555 * Add suggests on Python for systemd-analyze. * Divert /lib/lsb/init-functions instead of (ab)using /etc/lsb-base-logging.sh for diverting calls to /etc/init.d/* * Remove obsolete conffile /etc/lsb-base-logging.sh. Closes: #619093 * Backport 3a90ae048233021833ae828c1fc6bf0eeab46197 from master: mkdir /run/systemd/system when starting up -- Tollef Fog Heen Sun, 24 Apr 2011 09:02:04 +0200 systemd (20-1) unstable; urgency=low * New upstream version * Install systemd-machine-id-setup * Call systemd-machine-id-setup in postinst * Cherry-pick b8a021c9e276adc9bed5ebfa39c3cab0077113c6 from upstream to prevent dbus assert error. * Enable TCP wrapper support. Closes: #618409 * Enable SELinux support. Closes: #618412 * Make getty start after Apache2 and OpenVPN (which are the only two known users of X-Interactive: yes). Closes: #618419 -- Tollef Fog Heen Fri, 11 Mar 2011 19:14:21 +0100 systemd (19-1) experimental; urgency=low * New upstream release * Add systemd-tmpfiles to systemd package. * Add ifup@.service for handling hotplugged interfaces from udev. Closes: #610871 * Mask mtab.service and udev-mtab.service as they are pointless when /etc/mtab is a symlink to /proc/mounts * Add breaks on lvm2 (<< 2.02.84-1) since older versions have udev rules that don't work well with systemd causing delays on bootup. -- Tollef Fog Heen Thu, 17 Feb 2011 07:36:22 +0100 systemd (17-1) experimental; urgency=low [ Tollef Fog Heen ] * New upstream release * Clarify ifupdown instructions in README.Debian somewhat. Closes: #613320 * Silently skip masked services in lsb-base-logging.sh instead of failing. Initial implementation by Michael Biebl. Closes: #612551 * Disable systemd-vconsole-setup.service for now. [ Michael Biebl ] * Bump build dependency on valac-0.10 to (>= 0.10.3). * Improve regex in lsb-base-logging.sh for X-Interactive scripts. Closes: #613325 -- Tollef Fog Heen Wed, 16 Feb 2011 21:06:16 +0100 systemd (16-1) experimental; urgency=low [ Tollef Fog Heen ] * New upstream release. Closes: #609611 * Get rid of now obsolete patches that are upstream. * Use the built-in cryptsetup support in systemd, build-depend on libcryptsetup-dev (>= 2:1.2.0-1) to get a libcryptsetup in /lib. * Don't use systemctl redirect for init scripts with X-Interactive: true [ Michael Biebl ] * Update package description * Use v8 debhelper syntax * Make single-user mode work * Run hwclock-save.service on shutdown * Remove dependencies on legacy sysv mount scripts, as we use native mounting. -- Tollef Fog Heen Sun, 16 Jan 2011 11:04:13 +0100 systemd (15-1) UNRELEASED; urgency=low [ Tollef Fog Heen ] * New upstream version, thanks a lot to Michael Biebl for help with preparing this version. - This version handles cycle breaking better. Closes: #609225 * Add libaudit-dev to build-depends * /usr/share/systemd/session has been renamed to /usr/share/systemd/user upstream, adjust build system accordingly. * Remove -s from getty serial console invocation. * Add dependency on new util-linux to make sure /sbin/agetty exists * Don't mount /var/lock with gid=lock (Debian has no such group). * Document problem with ifupdown's /etc/network/run being a normal directory. [ Michael Biebl ] * Revert upstream change which requires libnotify 0.7 (not yet available in Debian). * Use dh-autoreconf for updating the build system. * Revert upstream commit which uses fsck -l (needs a newer version of util-linux). * Explicitly disable cryptsetup support to not accidentally pick up a libcryptsetup dependency in a tainted build environment, as the library is currently installed in /usr/lib. * Remove autogenerated man pages and vala C sources, so they are rebuilt. * Use native systemd mount support: - Use MountAuto=yes and SwapAuto=yes (default) in system.conf - Mask SysV init mount, check and cleanup scripts. - Create an alias (symlink) for checkroot (→ remount-rootfs.service) as synchronization point for SysV init scripts. * Mask x11-common, rmnologin, hostname, bootmisc and bootlogd. * Create an alias for procps (→ systemd-sysctl.service) and urandom (→ systemd-random-seed-load.service). * Create an alias for module-init-tools (→ systemd-modules-load.service) and a symlink from /etc/modules-load.d/modules.conf → /etc/modules. * Install lsb-base hook which redirects calls to SysV init scripts to systemctl: /etc/init.d/ → systemctl * Install a (auto)mount unit to mount /lib/init/rw early during boot. -- Tollef Fog Heen Sat, 20 Nov 2010 09:28:01 +0100 systemd (11-2) UNRELEASED; urgency=low * Tighten depends from systemd-* on systemd to ensure they're upgraded in lockstep. Thanks to Michael Biebl for the patch. * Add missing #DEBHELPER# token to libpam-systemd * Stop messing with runlevel5/multi-user.target symlink, this is handled correctly upstream. * Stop shipping /cgroup in the package. * Remove tmpwatch services, Debian doesn't have or use tmpwatch. * Make sure to enable GTK bits. * Ship password agent * Clean up cgroups properly on upgrades, thanks to Michael Biebl for the patch. Closes: #599577 -- Tollef Fog Heen Tue, 02 Nov 2010 21:47:10 +0100 systemd (11-1) experimental; urgency=low * New upstream version. Closes: #597284 * Add pam-auth-update calls to libpam-systemd's postinst and prerm * Make systemd-sysv depend on systemd * Now mounts the cgroup fs in /sys/fs/cgroup. Closes: #595966 * Add libnotify-dev to build-depends (needed for systemadm) -- Tollef Fog Heen Thu, 07 Oct 2010 22:01:19 +0200 systemd (8-2) experimental; urgency=low * Hardcode udev rules dir in configure call. * Remove README.source as it's no longer accurate. -- Tollef Fog Heen Mon, 30 Aug 2010 21:10:26 +0200 systemd (8-1) experimental; urgency=low * New upstream release * Only ship the top /cgroup * Pass --with-rootdir= to configure, to make it think / is / rather than // * Add PAM module package * Fix up dependencies in local-fs.target. Closes: #594420 * Move systemadm to its own package. Closes: #588451 * Update standards-version (no changes needed) * Update README.Debian to explain how to use systemd. * Add systemd-sysv package that provides /sbin/init and friends. -- Tollef Fog Heen Sat, 07 Aug 2010 07:31:38 +0200 systemd (0~git+20100605+dfd8ee-1) experimental; urgency=low * Initial release, upload to experimental. Closes: #580814 -- Tollef Fog Heen Fri, 30 Apr 2010 21:02:25 +0200 debian/libgudev-1.0-dev.install0000644000000000000000000000020012322650215013415 0ustar 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/ debian/udev.triggers0000644000000000000000000000004212322650215011673 0ustar interest-noawait /lib/udev/hwdb.d debian/libsystemd-id128-0.symbols0000644000000000000000000000047012322650215013740 0ustar libsystemd-id128.so.0 libsystemd-id128-0 #MINVER# LIBSYSTEMD_ID128_38@LIBSYSTEMD_ID128_38 38 sd_id128_from_string@LIBSYSTEMD_ID128_38 38 sd_id128_get_boot@LIBSYSTEMD_ID128_38 38 sd_id128_get_machine@LIBSYSTEMD_ID128_38 38 sd_id128_randomize@LIBSYSTEMD_ID128_38 38 sd_id128_to_string@LIBSYSTEMD_ID128_38 38 debian/compat0000644000000000000000000000000212322650215010362 0ustar 9 debian/udev.postrm0000644000000000000000000000233212322650215011375 0ustar #!/bin/sh -e # This script can be called in the following ways: # # After the package was removed: # remove # # After the package was purged: # purge # # After the package was upgraded: # upgrade # if that fails: # failed-upgrade # # # After all of the packages files have been replaced: # disappear # # # If preinst fails during install: # abort-install # # If preinst fails during upgrade of removed package: # abort-install # # If preinst fails during upgrade: # abort-upgrade # Enable udevadm again enable_udevadm() { rm -f /bin/udevadm dpkg-divert --package fake-udev --rename --divert /bin/udevadm.upgrade \ --remove /bin/udevadm } # Remove configuration and log files purge_files() { if [ -f /var/log/udev ]; then rm -f /var/log/udev || true fi rm -f /lib/udev/hwdb.bin } case "$1" in remove) ;; purge) purge_files ;; upgrade|failed-upgrade|disappear) ;; abort-install|abort-upgrade) enable_udevadm ;; *) echo "$0 called with unknown argument \`$1'" 1>&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/libpam-systemd.postinst0000644000000000000000000000056112322650215013725 0ustar #! /bin/sh set -e pam-auth-update --package # upgrading from pre-204 needs a reboot due to changed cgroup layout, # restarting logind after the upgrade would lose all existing sessions if dpkg --compare-versions "$2" lt-nl 204 && [ -x /usr/share/update-notifier/notify-reboot-required ]; then /usr/share/update-notifier/notify-reboot-required fi #DEBHELPER# debian/libsystemd-journal-dev.install0000644000000000000000000000021512322650215015155 0ustar usr/lib/*/libsystemd-journal.so usr/lib/*/pkgconfig/libsystemd-journal.pc usr/include/systemd/sd-journal.h usr/include/systemd/sd-messages.h debian/debian-fixup.service0000644000000000000000000000057312322650215013126 0ustar [Unit] Description=Various fixups to make systemd work better on Debian Before=var-run.mount var-lock.mount sysinit.target After=systemd-remount-fs.service DefaultDependencies=no ConditionPathIsSymbolicLink=|!/etc/mtab ConditionPathIsSymbolicLink=|!/var/run ConditionPathIsSymbolicLink=|!/var/lock [Service] ExecStart=/lib/systemd/debian-fixup Type=oneshot RemainAfterExit=true debian/README.Debian0000644000000000000000000000056212322650215011230 0ustar systemd for Debian ================== systemd can be installed alongside sysvinit and will not change the behaviour of the system out of the box. This is intentional. To test systemd, add: init=/bin/systemd to the kernel command line and then rebooting, or install the systemd-sysv package. -- Tollef Fog Heen , Wed, 12 Oct 2011 08:43:50 +0200 debian/libsystemd-daemon0.install0000644000000000000000000000003512322650215014252 0ustar lib/*/libsystemd-daemon.so.* debian/systemd-sysv.postinst0000644000000000000000000000075112322650215013466 0ustar #!/bin/sh set -e # We are installing systemd-sysv but systemd is not running. # This most likely means we are upgrading from another init, possibly a newer # sysvinit version which created the initctl socket at /run/initctl. # systemd's sysv tools expect the socket at /dev/initctl, so create the compat # symlink ourselves. if [ ! -d /run/systemd/system ] ; then if [ ! -p /dev/initctl ] && [ -p /run/initctl ] ; then ln -sf /run/initctl /dev/initctl fi fi #DEBHELPER# debian/udev-udeb.install0000644000000000000000000000066712322650215012445 0ustar lib/systemd/systemd-udevd bin/udevadm lib/udev/ata_id lib/udev/scsi_id lib/udev/cdrom_id lib/udev/rules.d/50-udev-default.rules lib/udev/rules.d/50-firmware.rules lib/udev/rules.d/60-cdrom_id.rules lib/udev/rules.d/60-persistent-storage.rules lib/udev/rules.d/60-persistent-input.rules lib/udev/rules.d/64-btrfs.rules lib/udev/rules.d/75-probe_mtd.rules lib/udev/rules.d/80-drivers.rules ../../extra/rules/73-idrac.rules lib/udev/rules.d/ debian/systemd.bug-script0000644000000000000000000000112512322650215012654 0ustar #!/bin/sh _header() { echo "--------------" >&3 echo "$1:" >&3 echo "--------------" >&3 } _header "systemd-delta" # remove highlighting escape codes from systemd-delta output systemd-delta --no-pager|sed "s%\x1b[^m]*m%%g" >&3 if [ -d /run/systemd/system ]; then echo >&3 _header "systemctl dump" systemctl --no-pager dump >&3 fi if [ -d /var/lib/systemd/deb-systemd-helper-enabled ]; then echo >&3 _header "Contents of /var/lib/systemd/deb-systemd-helper-enabled" head -n100 $(find /var/lib/systemd/deb-systemd-helper-enabled -type f | tr '\n' ' ') >&3 fi debian/systemd-services.maintscript0000644000000000000000000000007012322650215014751 0ustar rm_conffile /etc/init/systemd-logind.conf 198-0ubuntu7~ debian/libsystemd-login0.symbols0000644000000000000000000000355412322650215014152 0ustar 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_202@LIBSYSTEMD_LOGIN_202 202 LIBSYSTEMD_LOGIN_203@LIBSYSTEMD_LOGIN_203 203 LIBSYSTEMD_LOGIN_31@LIBSYSTEMD_LOGIN_31 31 LIBSYSTEMD_LOGIN_38@LIBSYSTEMD_LOGIN_38 38 LIBSYSTEMD_LOGIN_43@LIBSYSTEMD_LOGIN_43 43 sd_get_machine_names@LIBSYSTEMD_LOGIN_203 203 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_machine_name@LIBSYSTEMD_LOGIN_202 202 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_pid_get_user_unit@LIBSYSTEMD_LOGIN_202 202 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 debian/python-systemd.install0000644000000000000000000000004612322650215013563 0ustar usr/lib/python*/dist-packages/systemd debian/systemd.install0000644000000000000000000000201212322650215012237 0ustar etc/ bin/systemctl bin/journalctl bin/systemd-notify bin/systemd-tty-ask-password-agent bin/systemd-ask-password bin/systemd-machine-id-setup bin/systemd-tmpfiles bin/systemd-inhibit #usr/bin/kernel-install lib/systemd/ 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/bin/systemd-detect-virt usr/bin/systemd-delta usr/share/man/man1/system*.1 usr/share/man/man1/journalctl.1 usr/share/man/man1/init.1 usr/share/man/man3/ usr/share/man/man5/ usr/share/man/man7/ usr/share/man/man8/ usr/share/bash-completion/completions/systemctl usr/share/bash-completion/completions/journalctl usr/share/dbus-1/services/ usr/share/dbus-1/system-services/org.freedesktop.systemd1.service usr/share/doc/ usr/share/pkgconfig/systemd.pc usr/share/polkit-1/actions/org.freedesktop.systemd1.policy usr/share/systemd/kbd-model-map usr/lib/binfmt.d/ usr/lib/modules-load.d/ usr/lib/sysctl.d/ usr/lib/systemd/ usr/lib/tmpfiles.d/ debian/shlibs.local0000644000000000000000000000042112322650215011461 0ustar udeb: libudev 1 libudev1-udeb libsystemd-login 0 libsystemd-login0 (= ${binary:Version}) libsystemd-journal 0 libsystemd-journal0 (= ${binary:Version}) libsystemd-id128 0 libsystemd-id128-0 (= ${binary:Version}) libsystemd-daemon 0 libsystemd-daemon0 (= ${binary:Version}) debian/libsystemd-id128-0.install0000644000000000000000000000003412322650215013712 0ustar lib/*/libsystemd-id128.so.* debian/tests/0000755000000000000000000000000012323005375010330 5ustar debian/tests/control0000644000000000000000000000044712322650215011736 0ustar Tests: timedated hostnamed localed-locale localed-x11-keymap logind Depends: systemd-services, libpam-systemd, acl Restrictions: needs-root isolation-machine Tests: api Depends: systemd-services, libpam-systemd, libsystemd-login-dev, build-essential, pkg-config Restrictions: isolation-machine debian/tests/hostnamed0000755000000000000000000000113112322650215012232 0ustar #!/bin/sh set -e ORIG_HOST=`cat /etc/hostname` # should activate daemon and work STATUS=`hostnamectl` echo "$STATUS" | grep -q "Static hostname: $ORIG_HOST" echo "$STATUS" | grep -q "Architecture: `uname -m`" # change hostname OUT=`hostnamectl set-hostname testhost 2>&1` [ -z "$OUT" ] [ "`cat /etc/hostname`" = "testhost" ] STATUS=`hostnamectl` echo "$STATUS" | grep -q "Static hostname: testhost" # reset to original OUT=`hostnamectl set-hostname $ORIG_HOST 2>&1` [ -z "$OUT" ] [ "`cat /etc/hostname`" = "$ORIG_HOST" ] STATUS=`hostnamectl` echo "$STATUS" | grep -q "Static hostname: $ORIG_HOST" debian/tests/logind0000755000000000000000000000402512322650215011531 0ustar #!/bin/sh set -e echo " * cgroup is mounted" mountpoint -q /sys/fs/cgroup/systemd echo " * daemon is started" # should happen with upstart script, not with D-BUS activation pidof systemd-logind > /dev/null # loginctl should succeed echo " * loginctl succeeds" OUT=`loginctl` if ! echo "$OUT" | grep -q "seat0"; then echo "Skipping ACL tests, as there is no seat" exit 0 fi # determine user USER=`echo "$OUT" | grep seat0 | awk '{print $3}'` echo "seat user: $USER" # scsi_debug should not be loaded yet ! test -d /sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/*:*/block # we use scsi_debug to create new devices which we can put ACLs on # tell udev about the tagging, so that logind can pick it up mkdir -p /run/udev/rules.d/ cat < /run/udev/rules.d/60-scsi_debug-user.rules SUBSYSTEM=="block", ATTRS{model}=="scsi_debug*", TAG+="uaccess" EOF trap "rm -f /run/udev/rules.d/60-scsi_debug-user.rules; pkill -HUP udevd || pkill -HUP systemd-udevd; rmmod scsi_debug 2>/dev/null || ( sleep 2; rmmod scsi_debug ) || true" 0 INT QUIT TERM PIPE sync pkill -HUP udevd || pkill -HUP systemd-udevd echo " * coldplug: logind started with existing device" killall systemd-logind modprobe scsi_debug while ! dev=/dev/`ls /sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/*:*/block`; do sleep 0.1; done test -b $dev echo "got block device $dev" udevadm settle # trigger logind loginctl > /dev/null sleep 1 if getfacl -p $dev | grep -q "user:$USER:rw-"; then echo "$dev has ACL for user $USER" else echo "$dev has no ACL for user $USER:" >&2 getfacl -p $dev >&2 exit 1 fi rmmod scsi_debug echo " * hotplug: new device appears while logind is running" modprobe scsi_debug while ! dev=/dev/`ls /sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/*:*/block`; do sleep 0.1; done test -b $dev echo "got block device $dev" udevadm settle sleep 1 if getfacl -p $dev | grep -q "user:$USER:rw-"; then echo "$dev has ACL for user $USER" else echo "$dev has no ACL for user $USER:" >&2 getfacl -p $dev >&2 exit 1 fi debian/tests/localed-locale0000755000000000000000000000101012322650215013104 0ustar #!/bin/sh set -e ORIG_LOC=`cat /etc/default/locale` # should activate daemon and work STATUS=`localectl` echo "$STATUS" | grep -q "System Locale:" # change locale OUT=`localectl set-locale LANG=C LC_CTYPE=en_US.UTF-8 2>&1` [ -z "$OUT" ] sync [ "`cat /etc/default/locale`" = "LANG=C LC_CTYPE=en_US.UTF-8" ] ! [ -f /etc/locale.conf ] STATUS=`localectl` echo "$STATUS" | grep -q "System Locale: LANG=C" echo "$STATUS" | grep -q "LC_CTYPE=en_US.UTF-8" # reset locale to original echo "$ORIG_LOC" > /etc/default/locale debian/tests/timedated0000755000000000000000000000073412322650215012220 0ustar #!/bin/sh set -e ORIG_TZ=`cat /etc/timezone` # should activate daemon and work STATUS=`timedatectl` echo "$STATUS" | grep -q "Local time:" # change timezone OUT=`timedatectl set-timezone Europe/Moscow 2>&1` [ -z "$OUT" ] [ "`cat /etc/timezone`" = "Europe/Moscow" ] STATUS=`timedatectl` echo "$STATUS" | grep -q "Timezone: Europe/Moscow (MSK, +" # reset timezone to original OUT=`timedatectl set-timezone $ORIG_TZ 2>&1` [ -z "$OUT" ] [ "`cat /etc/timezone`" = "$ORIG_TZ" ] debian/tests/localed-x11-keymap0000755000000000000000000000105512322650215013553 0ustar #!/bin/sh set -e ORIG_KBD=`cat /etc/default/keyboard` # should activate daemon and work STATUS=`localectl` echo "$STATUS" | grep -q "X11 Layout:" # change layout OUT=`localectl set-x11-keymap et pc101 2>&1` [ -z "$OUT" ] sync grep -q 'XKBMODEL="\?pc101"\?' /etc/default/keyboard grep -q 'XKBLAYOUT="\?et"\?' /etc/default/keyboard ! [ -f /etc/X11/xorg.conf.d/00-keyboard.conf ] STATUS=`localectl` echo "$STATUS" | grep -q "X11 Layout: et" echo "$STATUS" | grep -q "X11 Model: pc101" # reset locale to original echo "$ORIG_KBD" > /etc/default/keyboard debian/tests/api0000755000000000000000000000153312322650215011027 0ustar #!/bin/sh # autopkgtest check: Test various libsystemd* APIs # (C) 2013 Canonical Ltd. # Author: Martin Pitt set -e WORKDIR=$(mktemp -d) trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM cd $WORKDIR cat < loginmonitor.c #include #include #include int main(int argc, char **argv) { sd_login_monitor* mon = NULL; int res; res = sd_login_monitor_new(NULL, &mon); if (res < 0) { fprintf(stderr, "sd_login_monitor_new failed with value %i\n", res); return 1; } assert(sd_login_monitor_get_fd(mon) > 0); sd_login_monitor_unref(mon); return 0; } EOF gcc -Wall -Werror -o loginmonitor loginmonitor.c `pkg-config --cflags --libs libsystemd-login` echo "loginmonitor build: OK" [ -x loginmonitor ] ./loginmonitor echo "loginmonitor run: OK" debian/libsystemd-daemon-dev.install0000644000000000000000000000015012322650215014744 0ustar usr/lib/*/libsystemd-daemon.so usr/lib/*/pkgconfig/libsystemd-daemon.pc usr/include/systemd/sd-daemon.h debian/udev.udevtrigger.upstart0000644000000000000000000000054012322650215014100 0ustar # udevtrigger - cold plug devices # # By the time udevd starts, we've already missed all of the events for # the devices populated in /sys. This task causes the kernel to resend # them. description "cold plug devices" start on (startup and started udev and not-container) task exec udevadm trigger --action=add post-stop exec udevadm settle debian/systemd.dirs0000644000000000000000000000002012322650215011527 0ustar var/lib/systemd debian/udev.udev-finish.upstart0000644000000000000000000000140012322650215013766 0ustar # udev-finish - save udev log and update rules # # While udev runs we not only create the log file of initial device # creation but udev rules may be generated, we need to copy both of # these out of /dev and onto the root filesystem. description "save udev log and update rules" start on (startup and filesystem and started udev and stopped udevtrigger and stopped udevmonitor) task script # Save udev log in /var/log/udev if [ -e /dev/.udev.log ] then mv -f /dev/.udev.log /var/log/udev || : fi # Copy any rules generated while the root filesystem was read-only for file in /run/udev/tmp-rules--* do [ -e "$file" ] || continue cat "$file" >> "/etc/udev/rules.d/${file##*tmp-rules--}" rm -f "$file" done end script debian/libpam-systemd.prerm0000644000000000000000000000133512322650215013167 0ustar #! /bin/sh set -e # pam-auth-update --remove removes the named profile from the active config. # It arguably should be called during deconfigure as well, but deconfigure # can happen in some cases during a dist-upgrade and we don't want to # deconfigure all PAM modules in the middle of a dist-upgrade by accident. # # More importantly, with the current implementation, --remove also removes # all local preferences for the named config (such as whether it's enabled # or disabled), which we don't want to do on deconfigure. # # This may need to change later as pam-auth-update evolves. if [ "$1" = remove ] && [ "${DPKG_MAINTSCRIPT_PACKAGE_REFCOUNT:-1}" = 1 ]; then pam-auth-update --package --remove systemd fi #DEBHELPER# debian/libudev1.install0000644000000000000000000000002312322650215012262 0ustar lib/*/libudev.so.* debian/udev.bug-script0000644000000000000000000000016712322650215012134 0ustar #!/bin/sh echo "--------------" >&3 echo "udev database:" >&3 echo "--------------" >&3 udevadm info --export-db >&3 debian/systemd-gui.install0000644000000000000000000000000012322650215013014 0ustar debian/tmpfiles.d/0000755000000000000000000000000012323005375011233 5ustar debian/tmpfiles.d/debian.conf0000644000000000000000000000072312322650215013324 0ustar # This file is part of the debianisation 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. # See tmpfiles.d(5) for details # Type Path Mode UID GID Age Argument L /run/initctl - - - - /dev/initctl d /run/sendsigs.omit.d 0755 root root - debian/units/0000755000000000000000000000000012323005375010330 5ustar debian/units/run-user.mount0000644000000000000000000000024512322650215013173 0ustar [Unit] Description=User Runtime Directory Before=local-fs.target [Mount] What=tmpfs Where=/run/user Type=tmpfs Options=nodev,noexec,nosuid,size=104857600,mode=0755 debian/units/run-lock.mount0000644000000000000000000000022112322650215013137 0ustar [Unit] Description=Lock Directory Before=local-fs.target [Mount] What=tmpfs Where=/run/lock Type=tmpfs Options=nodev,noexec,nosuid,size=5242880 debian/systemd.preinst0000644000000000000000000000155412322650215012267 0ustar #! /bin/sh set -e if [ "$1" = "install" ] || [ "$1" = "upgrade" ] && [ -n "$2" ] && dpkg --compare-versions "$2" lt "44-3"; then rm -f /lib/lsb/init-functions dpkg-divert --remove --package systemd --rename \ --divert /lib/lsb/init-functions.systemd /lib/lsb/init-functions fi # This function copies a unit file to /run/systemd/system/ (unless the target # path already exists). # This is necessary at least for certain .mount units when upgrading from 44 to # 204, see http://bugs.debian.org/723936 preserve_unit() { if [ ! -e /run/systemd/system/$1 ]; then cp /lib/systemd/system/$1 /run/systemd/system/$1 fi } if [ "$1" = "install" ] || [ "$1" = "upgrade" ] && [ -n "$2" ] && dpkg --compare-versions "$2" lt "204-1" && [ -d /run/systemd/system ]; then preserve_unit "var-lock.mount" preserve_unit "var-run.mount" fi #DEBHELPER# debian/libudev-dev.install0000644000000000000000000000015212322650215012760 0ustar usr/include/libudev.h usr/lib/*/libudev.so usr/lib/*/pkgconfig/libudev.pc usr/share/gtk-doc/html/libudev/ debian/systemd.prerm0000644000000000000000000000044412322650215011725 0ustar #! /bin/sh set -e # # Prevent systemd from being removed if it's the active init. That # will not work. # if [ "$1" = "remove" ] && [ -d /run/systemd/system ]; then echo "systemd is the active init system, please switch to another before removing systemd." exit 1 fi #DEBHELPER# debian/udev-udeb.links0000644000000000000000000000003312322650215012102 0ustar /bin/udevadm /sbin/udevadm debian/po/0000755000000000000000000000000012323005375007604 5ustar debian/po/ca.po0000644000000000000000000001322712322650215010532 0ustar # Catalan translation of udev templates. # Copyright © 2007, 2008, 2010 Software in the Public Interest, Inc. # Miguel Gea Milvaques , 2007, 2008. # Jordi Mallach , 2010. # msgid "" msgstr "" "Project-Id-Version: udev 163-1\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-18 20:19+0200\n" "Last-Translator: Jordi Mallach \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "S'està actualitzant l'udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "És necessari reiniciar després d'aquesta actualització" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Esteu actualitzant l'udev utilitzant una versió del nucli incompatible. " "S'està instal·lant o està instal·lada una versió compatible al vostre " "sistema, però necessiteu reiniciar per utilitzar aquest nou nucli en el " "moment que l'actualització estiga complerta." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Si no reinicieu amb aquesta nova versió del nucli, el vostre sistema es " "podria quedar INUTILITZABLE." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "El nucli en execució té opcions incompatibles habilitades" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "El nucli actualment en execució té habilitada l'opció «CONFIG_SYSFS_DEPRECATED» , que és incompatible amb aquesta versió de l'udev. Si encara empreu els paquets de nucli estàndard de Debian i esteu en el procés d'actualitzar de «lenny» a «squeeze», se us hauria d'instaŀlar un paquet de nucli compatible com a part d'aquesta actualització. Si no esteu emprant els paquets de nucli de Debian o no esteu actualitzant el sistema, heu de fer les modificacions necessàries per a assegurar-vos que el vostre nucli s'actualitza abans del pròxim reinici." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "Si no actualitzeu a un nucli sense CONFIG_SYSFS_DEPRECATED, és improbable que el sistema deixe d'arrencar, però algunes regles de l'udev no es podran aplicar a l'iniciar-se. En concret, tots els dispositius de bloc tindran propietat root:root (en lloc de root:disk), i les interfícies de xarxa podrien canviar de nom després dels reinicis. Això últim pot ser un problema si esteu administrant el servidor remotament." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "L'actualització de l'udev continuarà una vegada hagueu acceptat aquest missatge." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" "Voleu continuar amb l'actualització malgrat la incompatibilitat del nucli?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Esteu actualitzant l'udev a una versió que no és compatible amb la versió " "del nucli que s'està executant." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "HEU d'instal·lar una versió del nucli compatible (2.6.32 o posterior) abans " "de continuar amb l'actualització, si no, el vostre sistema es quedarà " "INUTILITZABLE. Els paquets que el seu nom comença per «linux-image-2.6-» " "proporcionen una imatge del nucli utilitzable amb aquesta nova versió de " "l'udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Si trieu d'actualitzar l'udev de totes maneres, hauríeu d'instal·lar un " "nucli compatible i reiniciar tan prompte com siga possible." debian/po/it.po0000644000000000000000000001314112322650215010556 0ustar # Italian (it) translation of debconf templates for udev # Copyright (C) 2006 Software in the Public Interest # This file is distributed under the same license as the udev package. # Luca Monducci , 2006-2010. # msgid "" msgstr "" "Project-Id-Version: udev 163\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-17 11:59+0200\n" "Last-Translator: Luca Monducci \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Aggiornamento di udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Dopo questo aggiornamento è necessario riavviare il sistema" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Si sta aggiornando udev mentre è in uso una versione del kernel " "incompatibile. Sul sistema è installata o sta per essere installata una " "versione compatibile, però al termine dell'aggiornamento sarà necessario " "riavviare il sistema per usare il nuovo kernel." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Il sistema potrebbe diventare INUTILIZZABILE se non lo si riavvia con la " "nuova versione del kernel." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "Il kernel in uso ha delle opzioni incompatibili attive" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "Il kernel attualmente in uso ha l'opzione CONFIG_SYSFS_DEPRECATED attiva, " "ciò lo rende incompatibile con questo rilascio di udev. Se si usa un kernel " "standard dei pacchetti Debian e si sta per passare da lenny a squeeze, " "durante l'aggiornamento verrà installato un kernel compatibile. Se non si " "usa un kernel dei pacchetti Debian o non si sta per aggiornare il sistema, è " "necessario fare in modo che il kernel sia aggiornato prima del prossimo " "riavvio." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Non aggiornando verso un kernel senza CONFIG_SYSFS_DEPRECATED probabilmente " "sarà possibile avviare il sistema ma il kernel impedirà l'applicazione di " "alcune regole di udev all'avvio del sistema. In particolare tutti i device a " "blocchi avranno come proprietario root:root (anziché root:disk) e le " "interfacce di rete potrebbero cambiare nome a ogni riavvio. Quest'ultimo " "comportamento potrebbe diventare un problema se la macchina è amministrata " "da remoto." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" "L'aggiornamento di udev continuerà dopo aver confermato questo messaggio." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" "Procedere con l'aggiornamento di udev nonostante l'incompatibilità con il " "kernel?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Si sta aggiornando udev a una versione che non è compatibile con il kernel " "attualmente in uso." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Si DEVE installare una versione del kernel compatibile (2.6.32 o successiva) " "prima dell'aggiornamento, altrimenti il sistema potrebbe diventare " "INUTILIZZABILE. I pacchetti il cui nome inizia con \"linux-image-2.6-\" " "forniscono un'immagine del kernel adatta a questa nuova versione di udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Se si sceglie comunque di aggiornare udev, si deve installare un kernel " "compatibile e riavviare con il nuovo kernel il prima possibile." debian/po/ml.po0000644000000000000000000001540712322650215010561 0ustar # Malayalam translation of udev debconf template. # Copyright (C) 2008 udev'S COPYRIGHT HOLDER # This file is distributed under the same license as the udev package. # Praveen Arimbrathodiyil , 2008. # msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2008-05-11 18:15-0800\n" "Last-Translator: Praveen|പ്രവീണ്‍ A|എ \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "പുതുക്കലിനു് ശേഷം വീണ്ടും തുടങ്ങണം" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "പൊരുത്തമില്ലാത്തൊരു കെര്‍ണല്‍ പതിപ്പുപയോഗിച്ചാണു് നിങ്ങള്‍ ഇപ്പോള്‍ യുഡെവ് പുതുക്കിക്കൊണ്ടിരിയ്ക്കുന്നതു്. " "പൊരുത്തമുള്ളൊരു പതിപ്പു് സിസ്റ്റത്തില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തിട്ടുണ്ടു് അല്ലെങ്കില്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്തു് " "കൊണ്ടിരിയ്ക്കുകയാണു്, പക്ഷേ പുതുക്കല്‍ തീര്‍ന്നയുടനെത്തന്നെ ഈ പുതിയ കെര്‍ണലുപയോഗിച്ചു് നിങ്ങള്‍ വീണ്ടും " "തുടങ്ങണം." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "ഈ പുതിയ കെര്‍ണല്‍ പതിപ്പുപയോഗിച്ചു് വീണ്ടും തുടങ്ങിയില്ലെങ്കില്‍ നിങ്ങളുടെ സിസ്റ്റം ഉപയോഗിയ്ക്കാന്‍ " "പറ്റാത്തതായേയ്ക്കാം." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "കെര്‍ണല്‍ പൊരുത്തക്കേടുണ്ടെന്നറിഞ്ഞിട്ടും യുഡെവിന്റെ പുതുക്കലുമായി മുമ്പോട്ടു് പോകണോ?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "ഇപ്പോള്‍ പ്രവര്‍ത്തിച്ചു് കൊണ്ടിരിയ്ക്കുന്ന കെര്‍ണല്‍ പതിപ്പുമായി പൊരുത്തമില്ലാത്ത യുഡെവിന്റെ ഒരു " "പതിപ്പിലേയ്ക്കാണു് നിങ്ങളിപ്പോള്‍ പുതുക്കിക്കൊണ്ടിരിയ്ക്കുന്നതു്." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "പുതുക്കുന്നതിനു് മുമ്പു് പൊരുത്തമുള്ളൊരു കെര്‍ണല്‍ പതിപ്പു് (2.6.32 അല്ലെങ്കില്‍ പുതിയതു്) ഇന്‍സ്റ്റോള്‍ " "ചെയ്തിരിയ്ക്കണം, അല്ലായെങ്കില്‍ സിസ്റ്റം ഉപയോഗിയ്ക്കാന്‍ പറ്റാത്തതായേയ്ക്കാം. \"linux-" "image-2.6-\" എന്നു് തുടങ്ങുന്ന പേരുള്ള പൊതികള്‍ ഈ പുതിയ യുഡെവ് പതിപ്പുമായി ഉപയോഗിയ്ക്കാന്‍ പറ്റുന്ന " "കെര്‍ണല്‍ നല്‍കുന്നുണ്ടു്." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "ഇതെല്ലാം അവഗണിച്ചു് നിങ്ങള്‍ യുഡെവ് പുതുക്കാന്‍ തന്നെ തീരുമാനിച്ചെങ്കില്‍ നിങ്ങള്‍ പൊരുത്തമുള്ളൊരു കെര്‍ണല്‍ " "ഇന്‍സ്റ്റോള്‍ ചെയ്തു് എത്രയും പെട്ടെന്നു് വീണ്ടും തുടങ്ങേണ്ടതാണു്." debian/po/es.po0000644000000000000000000001551012322650215010553 0ustar # udev po-debconf translation to Spanish # Copyright (C) 2008, 2009, 2010 Software in the Public Interest # This file is distributed under the same license as the udev package. # # Changes: # - Initial translation # Felipe Caminos Echeverría , 2006-2008 # # - Updates # Maximiliano Marin Bustos, 2008 # Francisco Javier Cuadrado , 2009, 2010 # # Traductores, si no conocen el formato PO, merece la pena leer la # documentación de gettext, especialmente las secciones dedicadas a este # formato, por ejemplo ejecutando: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Equipo de traducción al español, por favor lean antes de traducir # los siguientes documentos: # # - El proyecto de traducción de Debian al español # http://www.debian.org/intl/spanish/ # especialmente las notas y normas de traducción en # http://www.debian.org/intl/spanish/notas # # - La guía de traducción de po's de debconf: # /usr/share/doc/po-debconf/README-trans # o http://www.debian.org/intl/l10n/po-debconf/README-trans # msgid "" msgstr "" "Project-Id-Version: udev 163-1\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-17 18:10+0100\n" "Last-Translator: Francisco Javier Cuadrado \n" "Language-Team: Debian l10n Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Actualizando udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Es necesario reiniciar después de esta actualización" #. Type: error #. Description #: ../udev.templates:3001 msgid "You are currently upgrading udev using an incompatible kernel version. A compatible version is installed or being installed on the system, but you need to reboot using this new kernel as soon as the upgrade is complete." msgstr "Está actualizando udev utilizando una versión incompatible del núcleo. Se está instalando o se instalará en su sistema una versión compatible, pero tiene que reiniciar utilizando este nuevo núcleo en cuanto haya terminado esta actualización." #. Type: error #. Description #: ../udev.templates:3001 msgid "Without a reboot with this new kernel version, the system may become UNUSABLE." msgstr "Su sistema puede volverse INUTILIZABLE si no reinicia con esta nueva versión del núcleo." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "El núcleo en ejecución tiene opciones incompatibles activadas" #. Type: error #. Description #: ../udev.templates:4001 msgid "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, which is incompatible with this udev release. If you are using the standard Debian kernel packages and are in the process of upgrading from lenny to squeeze, a compatible kernel package should be installed as part of this upgrade. If you are not using the Debian kernel packages or are not currently upgrading the system, you must take action to ensure your kernel is upgraded before the next reboot." msgstr "El actual núcleo en ejecución tiene la opción CONFIG_SYSFS_DEPRECATED activada que es incompatible con esta versión de udev. Si está utilizando los paquetes estándar del núcleo de Debian y está actualizando de Lenny a Squeeze, se debería instalar un paquete del núcleo compatible como parte de esa actualización. Si no está utilizando los paquetes del núcleo de Debian o no está actualizando el sistema, debe estar seguro de que el núcleo estará actualizado antes de reiniciar el sistema." #. Type: error #. Description #: ../udev.templates:4001 #| msgid "" #| "Failing to upgrade to a kernel with CONFIG_SYSFS_DEPRECATED will probably " #| "not prevent your system from booting, but will prevent certain udev rules " #| "from being applied at boot time. In particular, all block devices will " #| "be owned by root:root (instead of root:disk), and network devices may be " #| "named differently after reboots. This latter issue may be a problem if " #| "you are administering the machine remotely." msgid "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably not prevent your system from booting, but will prevent certain udev rules from being applied at boot time. In particular, all block devices will be owned by root:root (instead of root:disk), and network interfaces may be named differently after reboots. This latter issue may be a problem if you are administering the machine remotely." msgstr "Si se produjese un fallo al actualizar a un núcleo sin CONFIG_SYSFS_DEPRECATED, probablemente no provocará que su sistema no se inicie, pero evitará que algunas reglas de udev se apliquen al iniciar el sistema. En concreto, todos los dispositivos de bloques pertenecerán a «root:root» (en lugar de a «root:disk»), y los dispositivos de red se nombrarán de forma distinta después de reiniciar. Esto último puede ser un problema si está administrando remotamente el sistema." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "La actualización de udev continuará después de que acepte este mensaje." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "¿Desea continuar con la actualización de udev a pesar de la incompatibilidad del núcleo?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "You are currently upgrading udev to a version that is not compatible with the currently running kernel." msgstr "Está actualizando udev a una versión que no es compatible con el núcleo que actualmente se ejecuta." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "You MUST install a compatible kernel version (2.6.32 or newer) before upgrading, otherwise the system may become UNUSABLE. Packages with a name starting with \"linux-image-2.6-\" provide a kernel image usable with this new udev version." msgstr "DEBE instalar una versión del núcleo compatible (2.6.32 o superior) antes de continuar con la actualización, de otro modo el sistema puede volverse INUTILIZABLE. Los paquetes que comienzan con «linux-image-2.6-» proporcionan una imagen del núcleo compatible con esta nueva versión de udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "If you choose to upgrade udev nevertheless, you should install a compatible kernel and reboot with that kernel as soon as possible." msgstr "Si escoge actualizar udev, debe instalar un núcleo compatible y reiniciar con él lo antes posible." debian/po/ja.po0000644000000000000000000001442212322650215010537 0ustar # Copyright (C) 2006-2009 md@linux.it # This file is distributed under the same license as the udev package. # Hideki Yamane (Debian-JP) , 2006-2010. # msgid "" msgstr "" "Project-Id-Version: udev 0.149-2\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-11-20 09:04+0900\n" "Last-Translator: Hideki Yamane \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "udev をアップグレードしています" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "今回のアップグレード後には再起動が必要です" #. Type: error #. Description #: ../udev.templates:3001 msgid "You are currently upgrading udev using an incompatible kernel version. A compatible version is installed or being installed on the system, but you need to reboot using this new kernel as soon as the upgrade is complete." msgstr "現在 udev をアップグレードしようとしていますが、この udev とは互換性の無いバージョンのカーネルを利用しています。互換性のあるバージョンのカーネルは、システムにインストールされている、あるいはこれからインストールされるところですが、アップグレード完了後すぐにこの新しいカーネルを使って再起動する必要があります。" #. Type: error #. Description #: ../udev.templates:3001 msgid "Without a reboot with this new kernel version, the system may become UNUSABLE." msgstr "この新しいバージョンのカーネルを使って再起動しなければ、システムは「利用不可能」になるでしょう。" #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "動作中のカーネルは互換性がないオプションが有効になっています" #. Type: error #. Description #: ../udev.templates:4001 msgid "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, which is incompatible with this udev release. If you are using the standard Debian kernel packages and are in the process of upgrading from lenny to squeeze, a compatible kernel package should be installed as part of this upgrade. If you are not using the Debian kernel packages or are not currently upgrading the system, you must take action to ensure your kernel is upgraded before the next reboot." msgstr "現在動作中のカーネルは CONFIG_SYSFS_DEPRECATED オプションが有効になっていますが、これは今回の udev のリリースバージョンとは互換性がありません。もし標準の Debian のカーネルパッケージを使っていて lenny から squeeze へのアップグレード作業中の場合、互換性があるカーネルパッケージをアップグレードの一部としてインストールする必要があります。Debian のカーネルパッケージを使っていない、あるいは今システムをアップグレード中ではない場合には、次回の再起動前に確実にカーネルをアップグレードしてあることを確認しておく必要があります。" #. Type: error #. Description #: ../udev.templates:4001 msgid "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably not prevent your system from booting, but will prevent certain udev rules from being applied at boot time. In particular, all block devices will be owned by root:root (instead of root:disk), and network interfaces may be named differently after reboots. This latter issue may be a problem if you are administering the machine remotely." msgstr "CONFIG_SYSFS_DEPRECATED が無いカーネルへのアップグレードに失敗してもシステムは起動するでしょうが、特定の udev rule が起動時に適用されなくなります。特に、所有者権限が (root:disk ではなく) root:root になっているすべてブロックデバイスやネットワークインターフェイスは再起動後に違う名前になります。この後者の件は、マシンをリモートから管理している場合に問題となるでしょう。" #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "udev のアップグレードはこのメッセージの確認後に続行されます。" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "カーネルとの互換性がありませんが、それでもアップグレードを実行しますか?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "You are currently upgrading udev to a version that is not compatible with the currently running kernel." msgstr "udev を、現在動作しているカーネルとは互換性が無いバージョンのものにアップグレードしようとしています。" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "You MUST install a compatible kernel version (2.6.32 or newer) before upgrading, otherwise the system may become UNUSABLE. Packages with a name starting with \"linux-image-2.6-\" provide a kernel image usable with this new udev version." msgstr "アップグレードを実行する前に、互換性があるバージョン (2.6.32 以上) のカーネルをインストールする「必要」があります。さもなくば、システムは「利用不可能」になります。\"linux-image-2.6-\" で始まる名前のパッケージでこの新バージョンの udev で使えるカーネルイメージが提供されます。" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "If you choose to upgrade udev nevertheless, you should install a compatible kernel and reboot with that kernel as soon as possible." msgstr "それでも udev をアップグレードするという場合は、互換性のあるバージョンのカーネルをインストールして、直ちに再起動する必要があります。" debian/po/nl.po0000644000000000000000000001320512322650215010554 0ustar # Dutch udev po-debconf translation, # Copyright (C) 2010 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the udev package. # Vincent Zweije , 2006, 2007, 2010. # msgid "" msgstr "" "Project-Id-Version: udev 0.105-5\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2011-04-26 09:34+0200\n" "Last-Translator: Vincent Zweije \n" "Language-Team: Debian l10n Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Bezig met opwaarderen van udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Herstart nodig na opwaardering" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Het pakket udev wordt opgewaardeerd, maar uw systeem draait op dit moment " "met een kernel die niet compatibel is met de nieuwe versie van udev. Wel is " "of wordt een compatibele versie van de kernel op uw systeem geïnstalleerd. U " "dient uw systeem zo spoedig mogelijk nadat de opwaardering is voltooid, te " "herstarten met de nieuwe kernelversie." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Zonder een herstart met deze nieuwe kernelversie kan het systeem onbruikbaar " "worden." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "De huidige kernel heeft incompatibele opties geactiveerd" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "Optie CONFIG_SYSFS_DEPRECATED is actief in de huidige kernel, maar dit is " "niet compatibel met deze uitgave van udev. Indien u het standaard Debian " "kernel kernelpakket gebruikt en bezig bent op te waarderen van lenny naar " "squeeze, dan zou een compatibel kernelpakket als onderdeel hiervan moeten " "worden geïnstalleerd. Indien u geen Debian kernelpakketten gebruikt, of niet " "aan het opwaarderen bent, dan dient u actie te ondernemen om te zorgen dat " "uw kernel wordt opgewaardeerd voor de volgende herstart." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Bij het niet opwaarderen van uw kernel zal uw systeem waarschijnlijk nog " "steeds kunnen starten, maar sommige udev regels kunnen niet bij het starten " "worden toegepast. In het bijzonder zullen alle blokapparaten (block devices) " "eigendom zijn van root:root in plaats van root:disk, en netwerk-interfaces " "kunnen een andere naam krijgen. Het laatste kan een probleem als u de " "computer op afstand beheert." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" "De udev opwaardering zal verder gaan nadat u dit bericht heeft bevestigd." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Verder gaan met de opwaardering ondanks de kernel-incompatibiliteit?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "U bent momenteel udev aan het opwaarderen naar een versie die niet " "compatibel is met de huidige kernelversie." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "U moet een compatibele kernelversie (2.6.32 of hoger) installeren voordat u " "met de opwaardering verder gaat, anders kan uw systeem onbruikbaar worden. " "Pakketten die beginnen met \"linux-image-2.6-\" voorzien in een kernel die " "bruikbaar is met deze nieuwe udev-versie." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Indien u er toch voor kiest udev op te waarderen, dient u zo spoedig " "mogelijk een compatibele kernel te installeren en uw systeem met die kernel " "opnieuw te starten." debian/po/ko.po0000644000000000000000000001122412322650215010553 0ustar # Korean translations for udev package # udev 패키지에 대한 한국어 번역문. # Copyright (C) 2007 THE udev'S COPYRIGHT HOLDER # This file is distributed under the same license as the udev package. # Sunjae Park , 2007. # msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2007-05-15 09:59+0900\n" "Last-Translator: Sunjae Park \n" "Language-Team: Korean \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "이번 업그레이드 후 재부팅 필요" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "현재 호환되지 않는 커널 버전을 사용하면서 udev을 업그레이드하고 있습니다. 호" "환되는 버전이 설치되었든지 설치하는 중이지만, 업그레이드가 끝나자마자 새 커널" "을 사용하도록 재부팅을 하셔야 합니다." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "새로운 커널 버전로 재부팅하지 않으면 시스템을 사용할 수 없게 될 수도 있습니" "다." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "커널이 호환되지 않는데도 udev 업그레이드를 계속 진행할까요?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "현재 사용중인 커널과 호환되지 않는 udev 버전으로 업그레이드하는 중입니다." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "업그레이드하기 전에 호환되는 커널 버전(2.6.32 이상)을 반.드.시. 설치하셔야" "지, 안 그러면 시스템을 사용할 수 없게 될 수도 있습니다. 새로 설치하는 udev 버" "전과 사용할 수 있는 커널 이미지는 이름이 \"linux-image-2.6-\"로 시작하는 꾸러" "미에서 찾으실 수 있습니다." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "그래도 udev을 업그레이드하고자 하신다면 최대한 빨리 호환되는 커널을 설치하시" "고 그 커널로 재부팅하시기 바랍니다." debian/po/fr.po0000644000000000000000000001364212322650215010557 0ustar # udev French debconf templates translation. # Copyright (C) 2006 # This file is distributed under the same license as the udev package. # Jean-Luc Coulon (f5ibh) , 2006. # msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-16 08:45+0200\n" "Last-Translator: Jean-Luc Coulon (f5ibh) \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: French\n" "X-Poedit-Country: FRANCE\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Mise à niveau de udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Redémarrage nécessaire après cette mise à niveau" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Vous êtes en train de mettre à niveau udev en utilisant une version de noyau " "incompatible. Une version compatible est installée ou en cours " "d'installation sur le système, mais il faudra redémarrer en utilisant ce " "nouveau noyau dès la fin de cette mise à niveau." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Sans redémarrage avec cette nouvelle version de noyau, votre système " "peut devenir INUTILISABLE." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "Options incompatibles activées dans le noyau en cours d'exécution " #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "L'option CONFIG_SYSFS_DEPRECATED est activée sur le noyau en cours " "d'exécution. Elle est incompatible avec cette version de udev. Si vous " "utilisez les paquets des noyaux standards de Debian et que vous êtes en train " "d'effectuer une mise à niveau de lenny vers squeeze, un paquet du noyau " "compatible devrait être installé lors de cette mise à niveau. Si vous " "n'utilisez pas les paquets des noyaux de Debian ou si vous n'êtes pas en train " "de mettre à niveau le système, vous devez prendre des mesures de manière à " "ce que votre noyau soit mis à niveau avant le prochain redémarrage." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Ne pas effectuer la mise à niveau vers un noyau sans CONFIG_SYSFS_DEPRECATED " "n'empêchera probablement pas votre système de redémarrer, mais empêchera " "certaines règles de udev d'être appliquées au moment du démarrage. En " "particulier, tous les périphériques en mode bloc auront le propriétaire root:" "root (au lieu de root:disk), et les périphériques réseau pourront avoir " "un autre nom après le redémarrage. Ce dernier point peut représenter un " "problème si vous administrez la machine à distance." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" "La mise à niveau de udev se poursuivra après que vous ayez acquitté ce " "message." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" "Voulez-vous poursuivre la mise à niveau bien que le noyau soit incompatible ?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Mise à niveau de udev vers une version non compatible avec le noyau " "actuellement en cours d'utilisation" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Vous DEVEZ installer une version de noyau compatible (c'est-à-dire 2.6.32 ou " "plus récente) avant de procéder à cette mise à niveau, sinon votre système " "peut devenir INUTILISABLE. Les paquets dont le nom commence par « linux-" "image-2.6- » fournissent une image du noyau utilisable avec cette nouvelle " "version du paquet udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Si, malgré tout, vous choisissez de mettre à niveau udev, vous devriez " "installer une version de noyau compatible et redémarrer dès que possible." debian/po/pl.po0000644000000000000000000001341512322650215010561 0ustar # Translation of udev debconf templates to Polish. # Copyright (C) 2010 # This file is distributed under the same license as the udev package. # # Michał Kułach , 2012. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2012-02-14 19:04+0100\n" "Last-Translator: Michał Kułach \n" "Language-Team: Polish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Aktualizowanie udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Po aktualizacji konieczne jest ponowne uruchomienie systemu" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Udev jest aktualizowany przy pomocy niekompatybilnej wersji jądra. " "Odpowiednia wersja jest zainstalowana lub jest właśnie instalowana, ale aby " "ukończyć aktualizację należy uruchomić komputer ponownie, wybierając nowe " "jądro." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Bez ponownego uruchomienia z nową wersją jądra, system może się stać " "NIEUŻYWALNY." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "Działające jądro ma włączone niekompatybilne opcje" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "Aktualnie działające jądro ma włączoną opcję CONFIG_SYSFS_DEPRECATED, która " "jest niekompatybilna z tym wydaniem udev. Jeśli używane są standardowe " "pakiety jądra z Debiana i trwa właśnie proces aktualizacji z Lenny'ego do " "Squeeze, odpowiedni pakiet jądra powinien zostać zainstalowany w trakcie " "aktualizacji. Jeśli pakiety z jądrem nie są pakietami z Debiana lub nie trwa " "proces wspomnianej aktualizacji, należy podjąć odpowiednie działania aby się " "upewnić, że jądro zostanie zaktualizowane przed wyłączeniem systemu." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Jeśli nie uda się zaktualizować jądra do wersji bez włączonej opcji " "CONFIG_SYSFS_DEPRECATED, nie zatrzyma to prawdopodobnie uruchamiania systemu, " "ale przeszkodzi w wykonaniu pewnych reguł udev w czasie rozruchu. W " "szczególności, wszystkie urządzenia blokowe będą własnością root:root " "(zamiast root:disk), a interfejsy sieciowe mogą zmienić swoje nazwy. Ten " "ostatni problem może stać się szczególnie istotny, jeśli system jest " "zarządzany zdalnie." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" "Aktualizacja udev zostanie kontynuowana po zapoznaniu się z tą wiadomością." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Kontynuować aktualizację udev pomimo niekompatybilnego jądra?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Trwa aktualizowanie udev do wersji niekompatybilnej z aktualnie działającym " "jądrem." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Należy BEZWZGLĘDNIE zainstalować kompatybilną wersję jądra (2.6.32 lub " "nowszą) przed aktualizacją, w przeciwnym razie system stanie się NIEUŻYWALNY. " "Pakiety o nazwie zaczynającej się od \"linux-image-2.6-\" zapewniają obraz " "jądra odpowiedni do nowej wersji udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Jeśli zostanie wybrana opcja kontynuowania aktualizacji udev, konieczne " "będzie jak najszybsze zainstalowanie kompatybilnego jądra i ponowne " "uruchomienie systemu z właściwym jądrem." debian/po/de.po0000644000000000000000000001352512322650215010540 0ustar # translation of po-debconf template to German # This file is distributed under the same license as the udev package. # Copyright (C) Matthias Julius , 2006, 2007, # Chris Leick 2010. # msgid "" msgstr "" "Project-Id-Version: udev 164-2\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-11-14 10:24+0100\n" "Last-Translator: Chris Leick \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Es wird ein Upgrade von Udev durchgeführt" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Nach diesem Upgrade ist ein Neustart notwendig" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Sie führen gegenwärtig ein Upgrade von Udev unter Verwendung einer " "inkompatiblen Kernel-Version durch. Eine kompatible Version ist oder wird " "gerade auf Ihrem System installiert. Sie müssen jedoch Ihren Rechner mit dem " "neuen Kernel neu starten, sobald das Upgrade beendet ist." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Ohne Neustart mit dieser neuen Kernel-Version könnte Ihr System UNBENUTZBAR " "werden." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "Im laufenden Kernel sind inkompatible Optionen eingeschaltet" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "Im derzeit laufende Kernel ist die Option CONFIG_SYSFS_DEPRECATED " "eingeschaltet, die mit dieser Veröffentlichung von Udev inkompatibel ist. " "Falls Sie die Standard-Kernel-Pakete von Debian verwenden und gerade ein " "Upgrade Ihres Systems von Lenny auf Squeeze durchführen, sollte ein " "kompatibles Kernel-Paket als Teil dieses Upgrades installiert werden. Falls " "Sie keine Kernel-Pakete von Debian verwenden oder derzeit kein Upgrade Ihres " "Systems durchführen, müssen Sie aktiv werden, um sicherzustellen, dass ein " "Upgrade Ihres Kernels vor dem nächsten Neustart durchgeführt wird." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Das Fehlschlagen des Upgrades auf einen Kernel ohne CONFIG_SYSFS_DEPRECATED " "wird wahrscheinlich nicht verhindern, dass Ihr System startet, es wird aber " "verhindern, dass bestimmte Udev-Regeln beim Start angewandt werden. " "Insbesondere werden alle blockorientierten Geräte »root:root« (anstatt »root:" "disk«) gehören und Netzwerkgeräte könnten nach Neustarts anders benannt " "werden. Dieser letzte Punkt könnte ein Problem sein, wenn Sie die Maschine " "aus der Ferne verwalten." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" "Das Upgrade von Udev wird fortfahren, nachdem Sie diese Meldung bestätigt " "haben." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Upgrade trotz der Kernel-Inkompatibilität fortsetzen?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Sie führen gegenwärtig ein Upgrade von Udev auf eine Version durch, die mit " "dem gegenwärtig laufenden Kernel nicht kompatibel ist." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Sie MÜSSEN eine kompatible Kernel-Version (2.6.32 oder höher) installieren, " "bevor Sie das Upgrade durchführen. Anderenfalls könnte das System " "UNBENUTZBAR werden. Pakete, deren Name mit »linux-image-2.6-« beginnt, " "stellen ein Kernel-Image zu Verfügung, welches mit dieser neuen Udev-Version " "verwendbar ist." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Falls Sie sich entscheiden, das Upgrade von Udev trotzdem durchzuführen, " "sollten Sie so bald wie möglich einen kompatiblen Kernel installieren und " "das System damit neu starten." debian/po/POTFILES.in0000644000000000000000000000005212322650215011354 0ustar [type: gettext/rfc822deb] udev.templates debian/po/templates.pot0000644000000000000000000000664712322650215012341 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" debian/po/ru.po0000644000000000000000000001654612322650215010604 0ustar # translation of ru.po to Russian # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Yuri Kozlov , 2006, 2007, 2009. # Sergey Alyoshin, 2007. # Yuri Kozlov , 2010. msgid "" msgstr "" "Project-Id-Version: udev 163-1\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-17 16:13+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Обновление udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "После этого обновления требуется перезагрузка" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Вы обновляете udev используя ядро несовместимой версии. Совместимая версия " "уже установлена или будет установлена в систему, но вам нужно выполнить " "перезагрузку с новым ядром сразу после завершения обновления." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Без перезагрузки с ядром новой версии, система может стать НЕРАБОТОСПОСОБНОЙ." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "В работающем ядре имеются несовместимые параметры" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "У работающего в данный момент ядра задан параметр CONFIG_SYSFS_DEPRECATED; " "он не совместим с данной версией udev. Если вы используете стандартные " "пакеты Debian с ядрами и выполняете обновление с lenny до squeeze, то пакет " "с совместимым ядром должен установиться как часть обновления. Если вы не " "используете ядра из пакетов Debian или не обновляете систему, то до " "следующей перезагрузки вы должны установить другое совместимое ядро." #. Type: error #. Description #: ../udev.templates:4001 #| msgid "" #| "Failing to upgrade to a kernel with CONFIG_SYSFS_DEPRECATED will probably " #| "not prevent your system from booting, but will prevent certain udev rules " #| "from being applied at boot time. In particular, all block devices will " #| "be owned by root:root (instead of root:disk), and network devices may be " #| "named differently after reboots. This latter issue may be a problem if " #| "you are administering the machine remotely." msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Если не обновить ядро на версию без CONFIG_SYSFS_DEPRECATED, то это, " "вероятно, не прервёт загрузку системы, но отключит применение некоторых " "правил udev при загрузке. В частности, все блочные устройства будут " "принадлежать root:root (вместо root:disk) и может измениться порядок " "именования сетевых интерфейсов. Последнее может привести к проблемам, если " "вы " "управляете машиной удалённо." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" "Обновление udev будет продолжено после подтверждения о прочтении этого " "сообщения." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Продолжить обновление udev несмотря на несовместимость ядра?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Вы обновляете udev до версии, которая не совместима с работающим в настоящее " "время ядром." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Вы ДОЛЖНЫ установить ядро совместимой версии (2.6.32 или выше) перед " "обновлением, иначе система может стать НЕРАБОТОСПОСОБНОЙ. Пакеты с именами " "начинающимися с \"linux-image-2.6-\" содержат образы ядра совместимые с " "новой версией udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Если вы продолжите обновление udev несмотря на это, то вам следует " "установить совместимое ядро и перезагрузить машину с этим ядром как можно " "скорее." debian/po/da.po0000644000000000000000000001272612322650215010536 0ustar # Danish translation udev. # Copyright (C) 2010 udev & nedenstående oversættere. # This file is distributed under the same license as the udev package. # Claus Hindsgaul , 2006. # Joe Hansen , 2010. # msgid "" msgstr "" "Project-Id-Version: udev debconf\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-17 19:21+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Opgraderer udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Genstart efter denne opgradering" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Du er ved at opgradere udev med en inkompatibel kerneversion. En kompatibel " "kerneversion er blevet installeret eller er ved at blive installeret på dit " "system, men du skal genstarte med denne nye kerne snarest muligt efter, at " "opgraderingen er afsluttet." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Uden en genstart med denne kerneversion, kan systemet blive UBRUGELIGT." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "Den kørende kerne har inkompatible indstillinger aktiveret" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "Den aktuelt kørende kerne har indstillingen CONFIG_SYSFS_DEPRECATED " "aktiveret, denne er inkompatibel med denne udev-udgivelse. Hvis du bruger de " "normale Debiankernepakker og er ved at opgradere fra lenny til squeeze, bør " "en kompatibel kernepakke installeres som en del af denne opgradering. Hvis " "du ikke bruger Debians kernepakker eller aktuelt ikke er ved at opgradere " "systemet, skal du sikre dig at din kerne opgraderes før den næste genstart." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Manglende opgradering til en kerne med CONFIG_SYSFS_DEPRECATED vil højst " "sandsynlig ikke forhindre dit system i at starte op, men vil forhindre " "bestemte udev-regler i at blive påført under opstart. Specielt, vil alle " "blokenheder blive ejet af root:root (i steden for root:disk), og " "netværksgrænseflader kan være navngivet anderledes efter genstarter. Det sidste " "kan være et problem, hvis du administrerer maskinen eksternt." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "Opgraderingen af udev vil fortsætte, efter du bekræfter denne besked." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" "Fortsæt med opgraderingen af udev på trods af inkompatibiliteten med kernen?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Du er aktuelt i gang med at opgradere udev, til en version som ikke er " "kompatibel med den aktuelt kørende kerne." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Du SKAL installere en kompatibel kerneversion (2.6.32 eller senere), før du " "opgraderer, ellers kan dit system blive UBRUGELIGT. Pakker med navne, der " "starter med »linux-image-2.6-« tilbyder et kerneaftryk, der kan bruges med " "denne nye version af udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Hvis du vælger at opgradere udev alligevel, bør du installere en kompatibel " "kerne og genstarte snarest muligt." debian/po/fi.po0000644000000000000000000001317312322650215010545 0ustar # Esko Arajärvi , 2010. msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-14 02:33+0200\n" "PO-Revision-Date: 2010-10-17 22:14+0300\n" "Last-Translator: Esko Arajärvi \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Finnish\n" "X-Poedit-Country: FINLAND\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Pakettia udeb päivitetään" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Tämän päivityksen jälkeen tietokone on käynnistettävä uudelleen" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Ohjelmaa udev päivitetään käyttäen yhteensopimatonta ytimen versiota. " "Yhteensopiva versio on asennettuna tai asennetaan järjestelmään, mutta " "tietokone tulee käynnistää uudelleen käyttämään tätä uutta ydintä heti, kun " "päivitys on valmis." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Jos konetta ei käynnistetä uudelleen käyttäen uutta ytimen versiota, " "järjestelmä saattaa muuttua käyttökelvottomaksi." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" "Käytössä olevassa ytimessä on yhteensopimattomia ominaisuuksia käytössä" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "Tällä hetkellä käytettävässä ytimessä on valittuna valitsin " "CONFIG_SYSFS_DEPRECATED, jota tämä udevin version ei tue. Jos käytät " "Debianin standardeja ydinpaketteja ja olet parhaillaan päivittämässä " "lennystä squeezeen, yhteensopivan ydinpaketin pitäisi asentua osana tätä " "päivitystä. Jos et käytä Debianin ydinpaketteja tai et ole parhaillaan " "päivittämässä järjestelmää, varmista että ydin päivitetään ennen seuraavaa " "järjestelmän uudelleenkäynnistystä." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel with CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network devices may be named " "differently after reboots. This latter issue may be a problem if you are " "administering the machine remotely." msgstr "" "Järjestelmä voidaan luultavasti käynnistää päivittämättä ydintä, jossa " "CONFIG_SYSFS_DEPRECATED on käytössä, mutta tiettyjä udev-sääntöjä ei voida " "käyttää järjestelmän käynnistyessä. Tämän seurauksena kaikkien " "lohkolaitteiden omistaja tulee olemaan root:root (eikä root:disk) ja " "verkkolaitteiden nimet saattavat poiketa aiemmista. Jälkimmäinen saattaa " "aiheuttaa ongelmia, jos hallinnoit tietokonetta etäyhteydellä." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "Ohjelman udev päivitys jatkuu, kun kuittaat tämän viestin." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" "Jatketaanko udevin päivitystä huolimatta ytimen yhteensopimattomuudesta?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Ohjelmaa udev päivitetään versioon, joka ei ole yhteensopiva käytössä olevan " "ytimen kanssa." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Sinun TÄYTYY asentaa yhteensopiva ytimen versio (2.6.32 tai uudempi) ennen " "päivitystä. Muussa tapauksessa järjestelmä saattaa muuttua " "käyttökelvottomaksi. Paketit, joiden nimi alkaa ”linux-image-2.6-” tarjoavat " "tämän uuden udevin version kanssa käyttökelpoisia ytimiä." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Jos päätät päivittää udevin kaikesta huolimatta, sinun tulisi asentaa " "yhteensopiva ydin ja käynnistää tietokone uudelleen käyttäen tuota ydintä " "mahdollisimman pian." debian/po/eu.po0000644000000000000000000001072312322650215010556 0ustar # translation of udev-eu.po to Euskara # Piarres Beobide , 2006, 2007. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. msgid "" msgstr "" "Project-Id-Version: udev-eu\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2007-05-02 09:31+0200\n" "Last-Translator: Piarres Beobide \n" "Language-Team: Euskara \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Pootle 0.11\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Eguneraketa honen ondoren berrabiarazi egin behar da" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Bateragarri ez den kernel bertsio bat erabiliaz udev eguneratzen ari zara. " "Bertsio bateragarri bat instalaturik dago edo instalatu da zure sisteman, " "baina ahal bezain laster kernel berri hau erabiliaz berrabiarazi behar da " "eguneraketa hau burutu ahal izateko." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Kernel berri horrekin ez berrabiarazi ezkero, zure sistema ERABILTEZINA " "geratu daiteke." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" "Kernel bateragarritasun eza albo batera utzi eta eguneraketarekin jarraitu?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Une honetan instalaturik duzun kernel-arekin bateragarri ez den udev bertsio " "batetara bertsio berritzen ari zara." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Bertsio bateragarri bat instalatu BEHAR duzu (2.6.32 edo berriagoa) aurrera " "jarraitu aurretik. bestela sistema ERABILTEZINA geratu daiteke. Pakete izena " "\"linux-image-2.6-\"-rekin asten diren paketeak udev bertsio berria " "erabiltzen duen kernel irudi bat dute." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Hala ere udev eguneratzea hautatu ezkero, ahal bezain laster kernel " "bateragarri bat instalatu eta berrabiarazi egin behar duzu." debian/po/lt.po0000644000000000000000000001064612322650215010570 0ustar # Lithuanian translation of udev. # Copyright (C) 2007 THE udev'S COPYRIGHT HOLDER # This file is distributed under the same license as the udev package. # Kęstutis Biliūnas , 2007. # msgid "" msgstr "" "Project-Id-Version: udev 0.105-4\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2007-05-07 19:58+0300\n" "Last-Translator: Kęstutis Biliūnas \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Po šio atnaujinimo reikia pakartotinai įkelti sistemą" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Jūs atnaujinate udev naudodami nesuderinamą branduolio versiją. Suderinama " "versija jau įdiegta arba bus įdiegta, bet baigus atnaujinimą Jums reikia " "pakartotinai įkelti sistemą (perkrauti) su nauju branduoliu." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Neperkrovus sistemos su nauja branduolio versija, sistema gali tapti " "NEDARBINGA." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Ar tęsti udev atnaujinimą, nepaisant nesuderinamumo su branduoliu." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Jūs atnaujinate udev iki versijos, kuri yra nesuderinama su dabartiniu metu " "veikiančiu branduoliu." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Jūs PRIVALOTE įdiegti suderinamos versijos branduolį (2.6.32 arba " "aukštesnės) prieš atnaujinimą, nes sistema gali tapti NEDARBINGA. Paketai, " "kurių vardai prasideda \"linux-image-2.6-\" tiekia branduolius tinkamus šiai " "naujai udev versijai." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Jei vis dėlto pasirenkate tęsti atnaujinimą, Jūs turite įdiegti suderinamą " "branduolį ir pakartotinai įkelti (perkrauti) sistemą su nauju branduoliu kai " "tik galėsite." debian/po/hu.po0000644000000000000000000001025612322650215010562 0ustar msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2007-05-01 09:45+0100\n" "Last-Translator: SZERVÁC Attila \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Hungarian\n" "X-Poedit-Country: HUNGARY\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Újraindítás szükséges e frissítés után" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Az udev rendszert egy inkompatibilis kernel jelenlegi használatával " "frissíted. Egy kompatibilis verzió is telepítésre kerül, és ennek " "használatához újra kell majd indítani a rendszert a frissítés után." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Az új kernellel való újraindítás nélkül a rendszer HASZNÁLHATATLANNÁ válhat." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Folytatod az udev frissítést a kernel inkompatibilitás tudtával?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Az udev rendszert a jelenlegi kernellel nem kompatibilis verzióra frissíted." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Telepítened KELL egy kompatibilis kernel verziót (2.6.32 vagy újabb) a " "frissítés előtt, különben a rendszer HASZNÁLHATATLANNÁ válhat. A \"linux-" "image-2.6-\" kezdetű csomagok egy ezen új udev verzióval használható kernel " "képet adnak." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Ha frissíted az udev rendszert, telepítened kell egy kompatibilis kernelt és " "ajánlott mielőbb indítani vele." debian/po/ar.po0000644000000000000000000001470412322650215010552 0ustar # translation of templates.po to Arabic # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Ossama M. Khayat , 2007, 2010. msgid "" msgstr "" "Project-Id-Version: templates\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-18 00:54+0300\n" "Last-Translator: Ossama M. Khayat \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=6; plural=n==1 ? 0 : n==0 ? 1 : n==2 ? 2: n%100>=3 && " "n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "ترقية udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "يجب إعادة تشغيل الجهاز بعد هذه الترقية" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "تقوم حالياً بترقية udev باستخدام نسخة نواة غير متوافقة. هناك نسخة نواة " "متوافقة مثبتة أو يتم تثبيتها على النظام، ولكن يجب عليك إعادة تشغيل النظام " "واستخدام النواة الجديدة حالما تنتهي عملية الترقية." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "بدون أن تقوم بإعادة التشغيل واستخدام نسخة النواة الجديدة، فإن النظام قد يصبح " "غير مستقر." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "النواة التي تعمل حالياً بها خيارات غير متوافقة مُمكّنة" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "الخيار CONFIG_SYSFS_DEPRECATED مُمكّن في النواة التي تعمل حالياً، " "والذي هو غير متوافق مع هذا الإصدار من udev. إن كنت تستخدم حزم " "نواة دبيان القياسية وفي طور الترقية من lenny إلى " "squeeze، فيجب تثبيت حزمة نواة متوافقة كجزء من " "الترقية. أما إن كنت لا تستخدم حزم نواة دبيان أو أنك " "لا تقوم حالياً بعملية ترقية نظامك، فيجب أن تقوم بما هو مطلوب للتأكد من أن " "النواة " "التي تستخدمها سيتم ترقيتها قبل إعادة التشغيل التالية." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "فشل الترقية إلى نواة لا تستخدم الخيار CONFIG_SYSFS_DEPRECATED قد لا " "يتسبب بعدم تمكن جهازك من الإقلاع، لكن قد يمنع أن تطبق بعض " "أحكام udev أثناء الإقلاع. بالتحديد، ستكون جميع أجهزة البلوكات " "مملوكة من قبل root:root (بدلاً من root:disk)، وقد تُسمى واجهات الشبكة " "بأسماء مختلفة بعد إعادة الإقلاع، مما قد يتسبب في مشكلة إن " "كنت تدير الجهاز عن بعد." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "ستكتمل عملية ترقية udev بعد أن تطلع على هذه الرسالة" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "هل تريد الاستمرار بترقية udev على الرغم من عدم توافق النواة؟" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "تقوم حالياً بترقية udev إلى نسخة غير متوافقة مع النواة التي تعمل حالياً." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "يجب أن تقوم بتثبيت نسخة نواة متوافقة (2.6.32 أو أحدث) قبل أن تقوم بالترقية، " "وإلا فقد يصبح النظام غير مستقر. الحزم التي يبدأ اسمها بالنص \"linux-" "image-2.6-\" توفر نسخة نواة متوافقة مع نسخة udev هذه." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "إن اخترت ترقية udev على الرغم من ذلك، فيجب عليك تثبيت نواة متوافقة وإعادة " "التشغيل لاستخدام تلك النواة في أقرب وقت ممكن." debian/po/nb.po0000644000000000000000000001401412322650215010541 0ustar # translation of nb.po to Norwegian Bokmål # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Bjørn Steensrud , 2007. # Bjørn Steensrud , 2009, 2010. msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-17 10:54+0200\n" "Last-Translator: Bjørn Steensrud \n" "Language-Team: Norwegian Bokmål \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Oppgraderer udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Omstart er nødvendig etter denne oppgraderingen" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Udev blir nå oppgradert ved hjelp av en kjerneversjon som ikke er kompatibel " "med udev. En kompatibel kjerneversjon er installert eller under installasjon " "på systemet, men maskinen må startes på nytt med denne nye kjernen så snart " "oppgraderingen er fullført." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "Uten omstart med denne nye kjerneversjonen kan systemet bli UBRUKELIG." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" "Den kjernen som kjører har påslåtte valg som ikke er kompatible med udev" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "Den kjernen som kjører nå har valget CONFIG_SYSFS_DEPRECATED slått på, og " "det er ikke kompatibelt med denne utgaven av udev. Hvis du bruker standard " "Debian kjernepakker og er i ferd med å oppgradere fra lenny til squeeze, så " "blir en kompatibel kjernepakke installert som en del av denne " "oppgraderingen. Hvis du ikke bruker Debian kjernepakker eller ikke er i ferd " "med å oppgradere systemet, så må du passe på at kjernen er oppgradert før " "neste omstart." #. Type: error #. Description #: ../udev.templates:4001 #| msgid "" #| "Failing to upgrade to a kernel with CONFIG_SYSFS_DEPRECATED will probably " #| "not prevent your system from booting, but will prevent certain udev rules " #| "from being applied at boot time. In particular, all block devices will " #| "be owned by root:root (instead of root:disk), and network devices may be " #| "named differently after reboots. This latter issue may be a problem if " #| "you are administering the machine remotely." msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Om du ikke oppgraderer til en kjerne uten CONFIG_SYSFS_DEPRECATED, " "så vil nok systemet ditt kunne starte. men visse udev-regler vil ikke bli " "tatt i bruk ved oppstarten. Spesielt vil root:root og ikke root:disk eie " "alle blokkenheter, og nettverksgrensesnitt kan få andre navn etter oppstart. " "Dette siste punktet kan være et problem hvis du fjern-administrerer maskinen." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" "Oppgraderingen av udev vil fortsette når du har bekreftet denne meldingen." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Fortsette med oppgraderingen likevel, trass i ukompatibel kjerne?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Udev er i ferd med å bli oppgradert til en versjon som ikke er kompatibel " "med den kjernen som nå kjører." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "En kompatibel kjerneversjon (2.6.32 eller senere) MÅ installeres før udev " "oppgraderes, ellers kan systemet bli UBRUKELIG. Pakker med navn som begynner " "med «linux-image-2.6-» inneholder kjernebilder som kan brukes med denne nye " "udev-versjonen." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Hvis du velger å oppgradere udev likevel, bør du installere en kompatibel " "kjerne og starte maskinen med den så snart som mulig." debian/po/sk.po0000644000000000000000000001255112322650215010563 0ustar # Slovak translation of udev. # Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the udev package. # Ivan Masár , 2008, 2010. # msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-14 02:33+0200\n" "PO-Revision-Date: 2010-10-14 09:40+0100\n" "Last-Translator: Ivan Masár \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Aktualizácia udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Po tejto aktualizácii bude potrebný reštart." #. Type: error #. Description #: ../udev.templates:3001 msgid "You are currently upgrading udev using an incompatible kernel version. A compatible version is installed or being installed on the system, but you need to reboot using this new kernel as soon as the upgrade is complete." msgstr "Momentálne aktualizujete udev, pričom používate nekompatibilnú verziu jadra. Na systéme je nainštalovaná alebo sa inštaluje kompatibilná verzia, ale hneď po dokončení inštalácie budete musieť čo najskôr reštartovať systém s novým jadrom." #. Type: error #. Description #: ../udev.templates:3001 msgid "Without a reboot with this new kernel version, the system may become UNUSABLE." msgstr "Ak nevykonáte reštart s touto novou verziou jadra, systém sa môže stať NEPOUŽITEĽNÝM." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "Bežiace jadro má zapnuté navzájom nekompatibilné voľby" #. Type: error #. Description #: ../udev.templates:4001 msgid "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, which is incompatible with this udev release. If you are using the standard Debian kernel packages and are in the process of upgrading from lenny to squeeze, a compatible kernel package should be installed as part of this upgrade. If you are not using the Debian kernel packages or are not currently upgrading the system, you must take action to ensure your kernel is upgraded before the next reboot." msgstr "Momentálne bežiace jadro má zapnutú voľbu CONFIG_SYSFS_DEPRECATED, ktorá nie je kompatibilná s týmto vydaním udev. Ak používate štandardné jadro Debianu a práve aktualizujete z Lenny na Squeeze, ako súčasť tejto aktualizácie by sa malo nainštalovať kompatibilné jadro. Ak nepoužívate balíky jadra z Debianu alebo momentálne neaktualizujete systém, musíte zaistiť, že jadro bude pred najbližším reštartom aktualizované." #. Type: error #. Description #: ../udev.templates:4001 msgid "Failing to upgrade to a kernel with CONFIG_SYSFS_DEPRECATED will probably not prevent your system from booting, but will prevent certain udev rules from being applied at boot time. In particular, all block devices will be owned by root:root (instead of root:disk), and network devices may be named differently after reboots. This latter issue may be a problem if you are administering the machine remotely." msgstr "Ak by sa vám nepodarilo aktualizovať jadro s voľbou CONFIG_SYSFS_DEPRECATED, pravdepodobne to nezabráni zavedeniu vášho systému, ale zabráni aplikácii niektorých pravidiel udev pri štarte. Konkrétne je možné, že vlastníkom všetkých blokových zariadení bude root:root (namiesto root:disk) a sieťové zariadenia môžu mať po štarte odlišný názov. Tento druhý prípad môže byť problém, ak sa prihlasujete k počítaču na diaľku." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "Aktualizácia udev bude pokračovať, keď vezmete na vedomie túto správu." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Pokračovať v aktualizácii udev napriek nekompatibilite jadra?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "You are currently upgrading udev to a version that is not compatible with the currently running kernel." msgstr "Momentálne aktualizujete udev na verziu, ktorá nie je kompatibilná s verziou jadra, ktoré práve používate nekompatibilnú." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "You MUST install a compatible kernel version (2.6.32 or newer) before upgrading, otherwise the system may become UNUSABLE. Packages with a name starting with \"linux-image-2.6-\" provide a kernel image usable with this new udev version." msgstr "MUSÍTE si pred aktualizáciou nainštalovať kompatibilnú verziu jadra (2.6.32 alebo vyššiu), inak sa váš systém môže stať NEPOUŽITEĽNÝM. Balíky, ktorých názov začína „linux-image-2.6-” poskytujú jadro kompatibilné s touto novou verziou udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "If you choose to upgrade udev nevertheless, you should install a compatible kernel and reboot with that kernel as soon as possible." msgstr "Ak sa rozhodnete napriek tomu aktualizovať udev, mali by ste si nainštalovať kompatibilnú verziu jadra a čo najskôr reštartovať." debian/po/sv.po0000644000000000000000000001275512322650215010604 0ustar # Translation of udev debconf template to Swedish # Copyright (C) 2010 Martin Bagge # This file is distributed under the same license as the udev package. # # Martin Bagge , 2008, 2009, 2010 msgid "" msgstr "" "Project-Id-Version: udev 149-2\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-22 18:11+0100\n" "Last-Translator: Martin Bagge / brother \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language-Team: Swedish \n" "X-Poedit-Language: Swedish\n" "X-Poedit-Country: Sweden\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Uppgraderar udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Efter denna uppgradering krävs en omstart." #. Type: error #. Description #: ../udev.templates:3001 msgid "You are currently upgrading udev using an incompatible kernel version. A compatible version is installed or being installed on the system, but you need to reboot using this new kernel as soon as the upgrade is complete." msgstr "Du uppgraderar för närvarande udev med en inkompatibel kärnversion. En kompatibel kärnversion finns installerad eller håller på att installeras på ditt system, men du måste starta om med denna nya kärna så fort uppgraderingen är klar." #. Type: error #. Description #: ../udev.templates:3001 msgid "Without a reboot with this new kernel version, the system may become UNUSABLE." msgstr "Om du inte startar om med denna nya kärnersionen så kan ditt system bli OANVÄNDBART." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "Kärnan som körs har flaggor som inte stöds aktiverade" #. Type: error #. Description #: ../udev.templates:4001 msgid "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, which is incompatible with this udev release. If you are using the standard Debian kernel packages and are in the process of upgrading from lenny to squeeze, a compatible kernel package should be installed as part of this upgrade. If you are not using the Debian kernel packages or are not currently upgrading the system, you must take action to ensure your kernel is upgraded before the next reboot." msgstr "Kärnan som för tillfället körs har flaggan CONFIG_SYSFS_DEPRECATED aktiverad och detta fungerar inte tillsammans med den här versionen av udev. Om du använder Debians standardpaket för kärnan och håller på att uppgradera från lenny till squeeze bör ett paket med en kompatibel kärna installeras som en del av den här uppgraderingen. Om du inte använder Debians kärnpaket eller inte håller på att uppgradera systemet måste åtgärder vidtas för att säkerställa att kärnan är uppgraderad före nästa omstart av systemet." #. Type: error #. Description #: ../udev.templates:4001 msgid "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably not prevent your system from booting, but will prevent certain udev rules from being applied at boot time. In particular, all block devices will be owned by root:root (instead of root:disk), and network interfaces may be named differently after reboots. This latter issue may be a problem if you are administering the machine remotely." msgstr "Det bör inte hindra systemet från att starta om uppgraderingen till en kärna utan flaggan CONFIG_SYSFS_DEPRECATED inte genomförs före omstart men det kan innebära att vissa udev-regler inte aktiveras vid uppstarten. Exempelvis kommer alla enheter ägas av root:root (istället för root:disk) och nätverksgränssnitt kan komma att ha nya namn efter omstart. Det senare fallet kan innebära problem om du fjärradministrerar maskinen." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "Uppgraderingen av udev kommer att fortsätta när du bekräftat detta meddelande." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Vill du ändå fortsätta med uppgraderingen?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "You are currently upgrading udev to a version that is not compatible with the currently running kernel." msgstr "Du kommer att uppgradea udev till en version som inte är kompatibel med den kärna du använder för tillfället." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "You MUST install a compatible kernel version (2.6.32 or newer) before upgrading, otherwise the system may become UNUSABLE. Packages with a name starting with \"linux-image-2.6-\" provide a kernel image usable with this new udev version." msgstr "Du MÅSTE installera en kompatibel kärnversion (2.6.32 eller nyare) innan du fortsätter med uppgraderingen, annars kan ditt system bli OANVÄNDBART. Paket vars namn börjar med \"linux-image-2.6-\" innehåller en kärna som går att använda med denna version av udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "If you choose to upgrade udev nevertheless, you should install a compatible kernel and reboot with that kernel as soon as possible." msgstr "Om du ändå väljer att fortsätta att uppgradera udev, så skall du installera en kompatibel kärna och starta om med denna så fort som möjligt." debian/po/cs.po0000644000000000000000000001364312322650215010556 0ustar # Czech translation of udev debconf messages. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the udev package. # Miroslav Kure , 2007-2010. # msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-17 15:25+0200\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Aktualizace udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Po této aktualizaci je vyžadován restart" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Momentálně aktualizujete udev, přičemž používáte nekompatibilní verzi jádra. " "Do systému se již nainstalovala, případně se každou chvílí nainstaluje, " "kompatibilní verze. Po dokončení instalace musíte co nejdříve restartovat " "systém do tohoto nového jádra." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "Bez restartu do nového jádra se systém může stát NEPOUŽITELNÝM." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "Běžící jádro má povoleny nekompatibilní volby" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "Momentálně běžící jádro má zapnutou volbu CONFIG_SYSFS_DEPRECATED, která " "není kompatibilní s touto verzí udev. Pokud používáte standardní debianí " "jádro a právě přecházíte z lennyho na squeeze, mělo by se kompatibilní jádro " "nainstalovat jako součást tohoto přechodu. Nepoužíváte-li debianí balíky s " "jádry, nebo pokud neaktualizujete systém, musíte zajistit aktualizaci jádra " "ještě před příštím restartem." #. Type: error #. Description #: ../udev.templates:4001 #| msgid "" #| "Failing to upgrade to a kernel with CONFIG_SYSFS_DEPRECATED will probably " #| "not prevent your system from booting, but will prevent certain udev rules " #| "from being applied at boot time. In particular, all block devices will " #| "be owned by root:root (instead of root:disk), and network devices may be " #| "named differently after reboots. This latter issue may be a problem if " #| "you are administering the machine remotely." msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Jestliže nepřejdete na jádro bez volby CONFIG_SYSFS_DEPRECATED, nemělo by to " "teoreticky bránit systému v nastartování, ale některá udev pravidla se " "prostě neprovedou. Konkrétně budou všechna bloková zařízení vlastněna " "uživatelem a skupinou root:root (místo root:disk) a síťová rozhraní se mohou " "mezi restarty přejmenovat. Obzvláště druhý bod může být problémem v případě, " "kdy spravujete počítač vzdáleně." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "Aktualizace udevu bude pokračovat po potvrzení tohoto upozornění." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "Pokračovat v aktualizaci udevu i přes nekompatibilní jádro?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Momentálně aktualizujete udev na verzi, která není kompatibilní s běžícím " "jádrem." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Před aktualizací MUSÍTE nainstalovat kompatibilní verzi jádra (2.6.32 nebo " "vyšší). Pokud tak neučiníte, stane se systém NEPOUŽITELNÝM. Balíky, jejichž " "název začíná na „linux-image-2.6-“, poskytují jádra, která jsou vhodná pro " "tuto verzi udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Budete-li přesto pokračovat v aktualizaci balíku udev, měli byste " "nainstalovat kompatibilní verzi jádra a co nejrychleji do něj restartovat." debian/po/pt_BR.po0000644000000000000000000001365012322650215011155 0ustar # udev Brazilian Portuguese translation # Copyright (C) 2006 André Luís Lopes # This file is distributed under the same license as the udev package. # André Luís Lopes , 2006. # Eder L. Marques (frolic) , 2008. # Flamarion Jorge , 2010. # msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-17 16:21-0200\n" "Last-Translator: Flamarion Jorge \n" "Language-Team: Brazilian Portuguese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "pt_BR utf-8\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "Atualizando udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Reinicialização necessária após esta atualização" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Você está atualmente atualizando o udev utilizando uma versão de kernel " "incompatível. Uma versão compatível está instalada ou sendo instalada em seu " "sistema, mas você precisa reinicializar usando esse novo kernel assim que a " "atualização estiver completa." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Sem uma reinicialização usando esta nova versão de kernel, o sistema pode " "tornar-se INUTILIZÁVEL." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "O kernel em execução é incompatível com as opções habilitadas" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "O kernel atualmente em execução tem a opção CONFIG_SYSFS_DEPRECATED " "habilitada, a qual é incompatível com esta release do udev. Se você esta " "usando um pacote de kernel padrão Debian e está em processo de upgrade de " "lenny para squeeze, um pacote de kernel compatível pode ser instalado como " "parte deste upgrade. Se você não está usando um pacote de kernel Debian or " "não está atualizando o sistema, você deve tomar um ação para fazer com que " "seu kernel esteja atualizado antes da próxima reinicialização." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "Na falta de atualização para um kernel sem CONFIG_SYSFS_DEPRECATED " "provavelmente não irá impedir o seu sistema de inicializar, mas vai impedir " "que as regras do udev sejam aplicadas durante a inicialização. Em " "particular, todos os dispositivos de bloco serão propriedade de root:root " "(ao invés de root:disk), e interfaces de rede talvez sejam renomeadas " "diferentemente depois das reinicializações. Esta última questão pode ser um " "problema se você está administrando uma máquina remotamente." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "O upgrade do udev vai continuar depois que você aceitar esta mensagem," #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" "Proceder com a atualização do udev apesar da incompatibilidade de kernel?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Você está atualmente atualizando o udev para uma versão que não é compatível " "com o kernel atualmente em execução." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Você DEVE instalar uma versão de kernel compatível (2.6.32 ou posterior) " "antes de atualizar, caso contrário o sistema pode tornar-se INUTILIZÁVEL. " "Pacotes com um nome iniciando com \"linux-image-2.6-\" fornecem uma imagem " "de kernel usável com esta nova versão do udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Se você escolher atualizar o udev de qualquer forma, você deverá instalar um " "kernel compatível e reinicializar com este kernel o mais rápido possível." debian/po/ta.po0000644000000000000000000001367212322650215010557 0ustar # translation of fontconfig.po to TAMIL # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Dr.T.Vasudevan , 2009. msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2007-05-01 17:40+0530\n" "Last-Translator: Dr.T.Vasudevan \n" "Language-Team: TAMIL \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "யூடெவ் ஐ மேம்படுத்தல்" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "இந்த மேம்படுத்தலுக்குப்பின் மீள்துவக்கம் தேவை" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "இசைவில்லாத ஒரு உட்கூறு பதிப்புடன் நீங்கள் யூடெவ் ஐ மேம்படுத்துகிறீர்கள். ஒரு இசைவான " "பதிப்பு நிறுவப்பட்டுள்ளது அல்லது நிறுவப்படுகிறது ஆனால் மேம்படுத்தல் முடிந்ததும் இந்த " "புதிய உட்கூறை பயன்படுத்தி நீங்கள் மீள்துவக்கம் செய்ய வேண்டும். " #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "அத்தகைய மீள்துவக்கம் இல்லாது போனால் கணினி பயன்படுத்த இயலாத நிலைக்கு ஆளாக்கப்படும்." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "உட்கூறு இசைவில்லாது யூடெவ் ஐ மேம்படுத்தலை தொடரலாமா?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "நீங்கள் யூடெவ் பதிப்பை ஐ மேம்படுத்துகிறீர்கள். அது இப்போதுள்ள உட்கூறு பதிப்புடன் " "இசைவில்லாதது. " #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "நீங்கள் மேம்படுத்து முன் அவசியமாக இசைவுள்ள உட்கூறு பதிப்பு (2.6.32 அல்லது மேல்) ஒன்றை " "நிறுவியாக வேண்டும். இல்லாவிட்டால் கணினி பயன்படுத்த முடியாத நிலைக்கு போகும். இந்த புதிய " "யூடெவ் பதிப்புடன் \"linux-image-2.6-\" என பெயர் துவங்கும் பொதிகள் இசைவுள்ளவை." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "அப்படியும் யூடெவ் ஐ மேம்படுத்த நினைத்தால் இசைவுள்ள உட்கூறு பதிப்புஒன்றை நிறுவியாக " "வேண்டும். உடனேயே அந்த உட்கூறுடன் மீள்துவக்கம் செய்ய வேண்டும்." debian/po/pt.po0000644000000000000000000001327112322650215010571 0ustar # Portuguese translation for udev's debconf messages # Copyright (C) 2007 Carlos Lisboa # This file is distributed under the same license as the udev package. # Carlos Lisboa , 2007, 2008. # Miguel Figueiredo , 2010. # msgid "" msgstr "" "Project-Id-Version: udev\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-10-10 19:08+0100\n" "Last-Translator: Miguel Figueiredo \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "A actualizar o udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Será necessário reiniciar após esta actualização" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Está neste momento a actualizar o udev com uma versão incompatível de " "kernel. Está instalada ou está a ser instalada uma versão compatível no seu " "sistema, mas deverá reiniciar usando este novo kernel assim que a " "actualização termine." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Se não reiniciar com esta nova versão de kernel, o seu sistema poderá ficar " "INUTILIZÁVEL." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "O kernel em execução tem habilitadas opções incompatíveis." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" "O kernel em execução tem habilitada a opção CONFIG_SYSFS_DEPRECEATED, o " "que é incompatível com este lançamento do udev. Se está a utilizar os " "pacotes Debian standard do kernel e está no processo de actualização de " "lenny para squeeze, deve ser instalado um pacote de kernel compatível como " "parte desta actualização. Se não está a utilizar pacotes Debian de " "kernel ou se não está actualmente a actualizar o sistema, tem de tomar " "acções para se assegurar que o seu kernel é actualizado antes de reiniciar." #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" "A falha na actualização para um kernel sem CONFIG_SYSFS_DEPRECEATED " "provavelmente não irá fazer com que o seu sistema não arranque, mas irá " "prevenir certas regras udev de serem aplicadas no arranque. Em particular, " "todos os dispositivos de bloco pertencerão a root:root (em vez de " "root:disk), e os interfaces de rede poderão ter outro nome após reiniciar. " "Este último pode ser um problema se estiver a administrar a máquina remotamente." #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "A actualização do udev irá continuar depois de confirmar esta mensagem." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" "Continuar com a actualização do udev apesar da incompatibilidade com o " "kernel?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Está a actualizar o udev para uma versão que não é compatível com o kernel " "que está a correr actualmente." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "TERÁ de instalar uma versão do kernel compatível (2.6.32 ou superior) antes " "da actualização continuar, de outra forma o sistema poderá ficar " "INUTILIZÁVEL. Os pacotes que comecem com \"linux-image-2.6-\" disponibilizam " "uma imagem de kernel utilizável com esta nova versão do udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Se decidir actualizar o udev de qualquer forma, deverá instalar um kernel " "compatível e reiniciar com esse kernel o mais rápido possível." debian/po/gl.po0000644000000000000000000001076112322650215010551 0ustar # Galician translation of udev's debconf templates. # This file is distributed under the same license as the udev package. # # Jacobo Tarrio , 2006, 2007. # Jorge Barreiro , 2010. # msgid "" msgstr "" "Project-Id-Version: udev_160-1_gl\n" "Report-Msgid-Bugs-To: udev@packages.debian.org\n" "POT-Creation-Date: 2010-10-17 00:40+0200\n" "PO-Revision-Date: 2010-08-13 02:19+0200\n" "Last-Translator: Jorge Barreiro \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #. Type: title #. Description #: ../udev.templates:2001 msgid "Upgrading udev" msgstr "A actualizar udev" #. Type: error #. Description #: ../udev.templates:3001 msgid "Reboot needed after this upgrade" msgstr "Hai que reiniciar trala actualización" #. Type: error #. Description #: ../udev.templates:3001 msgid "" "You are currently upgrading udev using an incompatible kernel version. A " "compatible version is installed or being installed on the system, but you " "need to reboot using this new kernel as soon as the upgrade is complete." msgstr "" "Está a actualizar udev mentres emprega unha versión incompatible do núcleo. " "Hai unha versión compatible instalada ou a se instalar no sistema, pero ha " "ter que reiniciar para empregar ese novo núcleo o antes posible trala " "actualización." #. Type: error #. Description #: ../udev.templates:3001 msgid "" "Without a reboot with this new kernel version, the system may become " "UNUSABLE." msgstr "" "Se non reinicia para empregar esta nova versión do núcleo, o sistema pode " "quedar inutilizable." #. Type: error #. Description #: ../udev.templates:4001 msgid "The running kernel has incompatible options enabled" msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "The currently running kernel has the CONFIG_SYSFS_DEPRECATED option enabled, " "which is incompatible with this udev release. If you are using the standard " "Debian kernel packages and are in the process of upgrading from lenny to " "squeeze, a compatible kernel package should be installed as part of this " "upgrade. If you are not using the Debian kernel packages or are not " "currently upgrading the system, you must take action to ensure your kernel " "is upgraded before the next reboot." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "" "Failing to upgrade to a kernel without CONFIG_SYSFS_DEPRECATED will probably " "not prevent your system from booting, but will prevent certain udev rules " "from being applied at boot time. In particular, all block devices will be " "owned by root:root (instead of root:disk), and network interfaces may be " "named differently after reboots. This latter issue may be a problem if you " "are administering the machine remotely." msgstr "" #. Type: error #. Description #: ../udev.templates:4001 msgid "The upgrade of udev will continue after you acknowledge this message." msgstr "" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "Proceed with the udev upgrade despite the kernel incompatibility?" msgstr "" "¿Quere continuar a actualización a pesares da incompatibilidade do núcleo?" #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You are currently upgrading udev to a version that is not compatible with " "the currently running kernel." msgstr "" "Está a actualizar udev a unha versión que non é compatible co núcleo que " "está a executar." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "You MUST install a compatible kernel version (2.6.32 or newer) before " "upgrading, otherwise the system may become UNUSABLE. Packages with a name " "starting with \"linux-image-2.6-\" provide a kernel image usable with this " "new udev version." msgstr "" "Debe instalar unha versión do núcleo compatible (2.6.32 ou posterior) antes " "de actualizar; se non, o seu sistema pode quedar inutilizable. Os paquetes " "que teñen un nome que comeza por \"linux-image-2.6-\" fornecen unha versión " "do núcleo que se pode empregar con esta nova versión de udev." #. Type: boolean #. Description #: ../udev.templates:5001 msgid "" "If you choose to upgrade udev nevertheless, you should install a compatible " "kernel and reboot with that kernel as soon as possible." msgstr "" "Se decide seguir a actualizar udev, debería instalar un núcleo compatible e " "reiniciar con ese núcleo o antes posible." debian/gir1.2-gudev-1.0.install0000644000000000000000000000006712322650215013165 0ustar usr/lib/*/girepository-1.0/* usr/lib/girepository-1.0/ debian/udev.install0000644000000000000000000000113512322650215011517 0ustar 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/*udev*.8 # currently installed by bash-completion, file a bug to get it removed #usr/share/bash-completion/completions/udevadm usr/share/pkgconfig/udev.pc # Ubuntu ../../extra/rules/40-hyperv-hotadd.rules lib/udev/rules.d/ ../../extra/rules/73-idrac.rules lib/udev/rules.d/ ../../extra/rules/78-graphics-card.rules lib/udev/rules.d/ ../../extra/udev.py usr/share/apport/package-hooks ../../extra/*.hwdb lib/udev/hwdb.d debian/pam-configs/0000755000000000000000000000000012323005375011371 5ustar debian/pam-configs/systemd0000644000000000000000000000026612322650215013006 0ustar Name: Register user sessions in the systemd control group hierarchy Default: yes Priority: 0 Session-Interactive-Only: yes Session-Type: Additional Session: optional pam_systemd.so debian/rules0000755000000000000000000001765312322650215010260 0ustar #! /usr/bin/make -f #export DH_VERBOSE=1 #export DEB_BUILD_OPTIONS="nostrip" VERSION = $(shell dpkg-parsechangelog | sed -n -e '/^Version:/s/.*: //p') # Ubuntu: systemd{,-sysv} not yet approved for universe BINARY_BLACKLIST = -Nsystemd -Nsystemd-sysv DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) CONFFLAGS = \ --with-rootprefix= \ --with-rootlibdir=/lib/$(DEB_HOST_MULTIARCH) \ --with-sysvinit-path=/etc/init.d \ --with-sysvrcnd-path=/etc \ --with-firmware-path=/lib/firmware \ --with-debug-shell=/bin/bash \ --enable-libcryptsetup \ --enable-tcpwrap \ --disable-coredump \ --disable-efi \ --disable-myhostname \ --disable-keymap \ --disable-vconsole \ --disable-silent-rules CONFFLAGS_deb = \ --enable-selinux \ --enable-introspection \ --enable-gtk-doc CONFFLAGS_udeb = \ --disable-cgmanager \ --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: dh_auto_configure --builddirectory=build-deb \ -- $(CONFFLAGS) $(CONFFLAGS_deb) dh_auto_configure --builddirectory=build-udeb \ -- $(CONFFLAGS) $(CONFFLAGS_udeb) override_dh_auto_build: dh_auto_build --builddirectory=build-deb dh_auto_build --builddirectory=build-udeb override_dh_auto_install: dh_auto_install --builddirectory=build-deb \ --destdir=debian/install/deb dh_auto_install --builddirectory=build-udeb \ --destdir=debian/install/udeb override_dh_auto_clean: dh_auto_clean --builddirectory=build-deb dh_auto_clean --builddirectory=build-udeb rm -rf debian/install/ # remove pre-generated man pages so they are rebuilt rm -f man/*.[13578] # remove Python byte code files rm -f *.pyc override_dh_install: # remove unnecessary / unused files rm -f debian/install/*/usr/share/doc/systemd/LICENSE.* rm -f debian/install/*/var/log/README rm -f debian/install/*/etc/init.d/README rm -f debian/install/*/usr/share/man/man8/kernel-install.8 rm -rf debian/install/*/etc/rpm/ rm -rf debian/install/*/etc/kernel/ find debian/install/ -name '*.la' -delete dh_install -pudev-udeb -plibudev1-udeb --sourcedir=debian/install/udeb dh_install -Nudev-udeb -Nlibudev1-udeb --sourcedir=debian/install/deb --list-missing # install some files manually, --sourcedir makes that necessary # 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 mkdir -p debian/udev-udeb/lib/udev/rules.d/ mkdir -p debian/udev-udeb/lib/udev install -D --mode=644 \ debian/extra/hotplug.functions \ debian/extra/rule_generator.functions \ debian/udev-udeb/lib/udev/ install -D --mode=755 \ debian/extra/write_net_rules \ debian/udev-udeb/lib/udev/ # udev: 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 # udev: debian specific rules and helpers install -D --mode=644 debian/extra/rules/* \ debian/udev/lib/udev/rules.d/ install -D --mode=644 debian/extra/fbdev-blacklist.conf \ debian/udev/etc/modprobe.d/fbdev-blacklist.conf install -D --mode=644 \ debian/extra/hotplug.functions \ debian/extra/rule_generator.functions \ debian/udev/lib/udev/ install -D --mode=755 \ debian/extra/write_net_rules \ debian/udev/lib/udev/ # udev rules documentation install -m 644 -o root -g root debian/extra/README-etc-rules.d \ debian/udev/etc/udev/rules.d/README install -m 644 -o root -g root debian/extra/README-lib-rules.d \ debian/udev/lib/udev/rules.d/README # 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/systemd/lib/systemd/system/ install --mode=755 debian/debian-fixup \ debian/systemd/lib/systemd/ install --mode=755 debian/systemd-logind-launch \ debian/systemd/lib/systemd/ # Remove tmp.mount symlink to avoid mounting /tmp as tmpfs by default. rm debian/systemd/lib/systemd/system/local-fs.target.wants/tmp.mount # remove duplicates # 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 systemd by cryptsetup rm debian/systemd/usr/share/man/man5/crypttab.5 # files shipped by systemd-services rm debian/systemd/etc/systemd/logind.conf rm debian/systemd/lib/systemd/systemd-logind rm debian/systemd/lib/systemd/systemd-hostnamed rm debian/systemd/lib/systemd/systemd-localed rm debian/systemd/lib/systemd/systemd-timedated rm debian/systemd/usr/share/man/man5/logind* rm debian/systemd/usr/share/man/man8/systemd-logind* rm debian/systemd/usr/share/man/man8/systemd-hostnamed* rm debian/systemd/usr/share/man/man8/systemd-localed* rm debian/systemd/usr/share/man/man8/systemd-timedated* 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 # files shipped by systemd rm debian/udev/lib/udev/rules.d/99-systemd.rules # we continue to use the old net iface naming schema for the time being rm -f debian/udev/lib/udev/rules.d/80-net-name-slot.rules rm -f debian/udev-udeb/lib/udev/rules.d/80-net-name-slot.rules override_dh_installinit: dh_installinit --upstart-only --no-start dh_installinit --upstart-only --name=udev-finish --no-start dh_installinit --upstart-only --name=udevtrigger --no-start dh_installinit --upstart-only --name=udevmonitor --no-start dh_installinit --upstart-only --name=udev-fallback-graphics --no-start dh_installinit --upstart-only --name systemd-logind override_dh_makeshlibs: dh_makeshlibs -plibudev1 --add-udeb=libudev1-udeb dh_makeshlibs --remaining-packages autoreconf: gtkdocize --copy --docdir docs/ intltoolize -f -c autoreconf -f -i override_dh_autoreconf: dh_autoreconf debian/rules -- autoreconf override_dh_auto_test: ifeq (, $(findstring nocheck, $(DEB_BUILD_OPTIONS))) # some tests hang under fakeroot, so disable fakeroot echo "01234567890123456789012345678901" > build-deb/machine-id env -u LD_PRELOAD SYSTEMD_MACHINE_ID_PATH=$(CURDIR)/build-deb/machine-id \ make -C build-deb check || ( \ cd build-deb; \ for f in test-*.log; do echo "==== $$f ===="; cat $$f; done; \ exit 1; ) endif %: dh $@ --with autoreconf,gir,python2 override_dh_gencontrol: # Ubuntu has an epoch on gudev dh_gencontrol -plibgudev-1.0-0 -plibgudev-1.0-dev -pgir1.2-gudev-1.0 -- "-v1:$(VERSION)" dh_gencontrol $(BINARY_BLACKLIST) --remaining-packages override_dh_strip: dh_strip $(BINARY_BLACKLIST) override_dh_builddeb: dh_builddeb $(BINARY_BLACKLIST) debian/patches/0000755000000000000000000000000012323005375010615 5ustar debian/patches/pam-check-runtime-dir-user.patch0000644000000000000000000000450312322650215016677 0ustar From: Martin Pitt Date: Wed, 13 Nov 2013 13:02:28 +0100 Subject: [PATCH] pam: Check $XDG_RUNTIME_DIR owner http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html requires that $XDG_RUNTIME_DIR "MUST be owned by the user, and he MUST be the only one having read and write access to it.". Don't set an existing $XDG_RUNTIME_DIR in the PAM module if it isn't owned by the session user. Otherwise su sessions get a runtime dir from a different user which leads to either permission errors or scribbling over the other user's files. Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=753882 Bug-Ubuntu: https://launchpad.net/bugs/1197395 Index: systemd/src/login/pam-module.c =================================================================== --- systemd.orig/src/login/pam-module.c 2013-11-14 17:45:34.227987658 +0100 +++ systemd/src/login/pam-module.c 2013-11-14 17:48:01.203986318 +0100 @@ -329,6 +329,7 @@ dbus_bool_t remote, existing; int r; uint32_t vtnr = 0; + struct stat st; assert(handle); @@ -565,11 +566,25 @@ goto finish; } - r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0); - if (r != PAM_SUCCESS) { - pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); + /* only set $XDG_RUNTIME_DIR if it is owned by the target user, as per + * XDG basedir-spec; this avoids su sessions to scribble over a runtime + * dir of a different user */ + r = lstat(runtime_path, &st); + if (r != 0) { + pam_syslog(handle, LOG_ERR, "Failed to stat runtime dir: %s", strerror(errno)); + r = PAM_SYSTEM_ERR; goto finish; } + if (st.st_uid == uid) { + r = pam_misc_setenv(handle, "XDG_RUNTIME_DIR", runtime_path, 0); + if (r != PAM_SUCCESS) { + pam_syslog(handle, LOG_ERR, "Failed to set runtime dir."); + goto finish; + } + } else if (debug) { + pam_syslog(handle, LOG_DEBUG, "Runtime dir %s is not owned by the target uid %u, ignoring.", + runtime_path, uid); + } if (!isempty(seat)) { r = pam_misc_setenv(handle, "XDG_SEAT", seat, 0); debian/patches/support-phablet-etc-writable.patch0000644000000000000000000001435112322650215017351 0ustar Description: On Ubuntu Phone with readonly /etc we symlink /etc/{adjtime,localtime,timezone,hostname,machine-info} to /etc/writable/, so we need to update those files instead if the original files are symlinks into /etc/writable/. Author: Martin Pitt Forwarded: OMGno, this is a rather nasty hack until we get a clean solution for an /etc overlay Bug-Ubuntu: https://launchpad.net/bugs/1227520 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c @@ -105,6 +105,25 @@ tz.local_rtc = false; } +/* Hack for Ubuntu phone: check if path is an existing symlink to + * /etc/writable; if it is, update that instead */ +static const char* writable_filename(const char *path) { + ssize_t r; + static char realfile_buf[PATH_MAX]; + _cleanup_free_ char *realfile = NULL; + const char *result = path; + int orig_errno = errno; + + r = readlink_and_make_absolute(path, &realfile); + if (r >= 0 && startswith(realfile, "/etc/writable")) { + snprintf(realfile_buf, sizeof(realfile_buf), "%s", realfile); + result = realfile_buf; + } + + errno = orig_errno; + return result; +} + static bool valid_timezone(const char *name) { const char *p; char *t; @@ -159,7 +178,7 @@ free_data(); - r = readlink_malloc("/etc/localtime", &t); + r = readlink_malloc(writable_filename("/etc/localtime"), &t); if (r < 0) { if (r == -EINVAL) log_warning("/etc/localtime should be a symbolic link to a timezone data file in /usr/share/zoneinfo/."); @@ -207,25 +226,25 @@ struct stat st; if (!tz.zone) { - if (unlink("/etc/localtime") < 0 && errno != ENOENT) + if (unlink(writable_filename("/etc/localtime")) < 0 && errno != ENOENT) r = -errno; - if (unlink("/etc/timezone") < 0 && errno != ENOENT) + if (unlink(writable_filename("/etc/timezone")) < 0 && errno != ENOENT) r = -errno; return r; } - p = strappend("../usr/share/zoneinfo/", tz.zone); + p = strappend("/usr/share/zoneinfo/", tz.zone); if (!p) return log_oom(); - r = symlink_atomic(p, "/etc/localtime"); + r = symlink_atomic(p, writable_filename("/etc/localtime")); 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 (stat(writable_filename("/etc/timezone"), &st) == 0 && S_ISREG(st.st_mode)) { + r = write_string_file_atomic(writable_filename("/etc/timezone"), tz.zone); if (r < 0) return r; } @@ -276,7 +295,7 @@ *(char*) mempcpy(stpcpy(mempcpy(w, s, a), tz.local_rtc ? "LOCAL" : "UTC"), e, b) = 0; if (streq(w, NULL_ADJTIME_UTC)) { - if (unlink("/etc/adjtime") < 0) + if (unlink(writable_filename("/etc/adjtime")) < 0) if (errno != ENOENT) return -errno; @@ -284,7 +303,7 @@ } } label_init("/etc"); - return write_string_file_atomic_label("/etc/adjtime", w); + return write_string_file_atomic_label(writable_filename("/etc/adjtime"), w); } static char** get_ntp_services(void) { --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -108,6 +108,26 @@ } } +/* Hack for Ubuntu phone: check if path is an existing symlink to + * /etc/writable; if it is, update that instead */ +static const char* writable_filename(const char *path) { + ssize_t r; + static char realfile_buf[PATH_MAX]; + _cleanup_free_ char *realfile = NULL; + const char *result = path; + int orig_errno = errno; + + r = readlink_and_make_absolute(path, &realfile); + if (r >= 0 && startswith(realfile, "/etc/writable")) { + snprintf(realfile_buf, sizeof(realfile_buf), "%s", realfile); + result = realfile_buf; + } + + errno = orig_errno; + return result; +} + + static int read_data(void) { int r; @@ -117,11 +137,11 @@ if (!data[PROP_HOSTNAME]) return -ENOMEM; - r = read_one_line_file("/etc/hostname", &data[PROP_STATIC_HOSTNAME]); + r = read_one_line_file(writable_filename("/etc/hostname"), &data[PROP_STATIC_HOSTNAME]); if (r < 0 && r != -ENOENT) return r; - r = parse_env_file("/etc/machine-info", NEWLINE, + r = parse_env_file(writable_filename("/etc/machine-info"), NEWLINE, "PRETTY_HOSTNAME", &data[PROP_PRETTY_HOSTNAME], "ICON_NAME", &data[PROP_ICON_NAME], "CHASSIS", &data[PROP_CHASSIS], @@ -284,12 +304,12 @@ if (isempty(data[PROP_STATIC_HOSTNAME])) { - if (unlink("/etc/hostname") < 0) + if (unlink(writable_filename("/etc/hostname")) < 0) return errno == ENOENT ? 0 : -errno; return 0; } - return write_string_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); + return write_string_file_atomic_label(writable_filename("/etc/hostname"), data[PROP_STATIC_HOSTNAME]); } static int write_data_other(void) { @@ -303,7 +323,7 @@ char **l = NULL; int r, p; - r = load_env_file("/etc/machine-info", NULL, &l); + r = load_env_file(writable_filename("/etc/machine-info"), NULL, &l); if (r < 0 && r != -ENOENT) return r; @@ -333,13 +353,13 @@ if (strv_isempty(l)) { - if (unlink("/etc/machine-info") < 0) + if (unlink(writable_filename("/etc/machine-info")) < 0) return errno == ENOENT ? 0 : -errno; return 0; } - r = write_env_file_label("/etc/machine-info", l); + r = write_env_file_label(writable_filename("/etc/machine-info"), l); strv_free(l); return r; debian/patches/login-monitor-no-machine.patch0000644000000000000000000000163612322650215016453 0ustar Description: Fix sd_login_monitor_new() to not fail if there is no /sys/fs/cgroup/systemd/machine; that only exists when running with systemd as PID 1. Author: Martin Pitt Bug-Ubuntu: https://launchpad.net/bugs/1201180 Index: systemd/src/login/sd-login.c =================================================================== --- systemd.orig/src/login/sd-login.c 2013-05-07 21:07:22.906025572 +0200 +++ systemd/src/login/sd-login.c 2013-07-19 08:38:39.437270958 +0200 @@ -690,10 +690,13 @@ return r; k = inotify_add_watch(fd, p, IN_MOVED_TO|IN_CREATE|IN_DELETE); + /* when running logind without pid 1, this will fail */ + /* if (k < 0) { close_nointr_nofail(fd); return -errno; } + */ good = true; } debian/patches/upstream-reboot-polkit-permissions.patch0000644000000000000000000000177512322650215020647 0ustar From 299404a19f26aa4f203042d8285ee0b7afa5bf40 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 26 Sep 2013 18:31:37 +0000 Subject: logind: if a user is sitting in front of the computer and can shutdown the machine anyway he should also be able to reboot it --- diff --git a/src/login/org.freedesktop.login1.policy.in b/src/login/org.freedesktop.login1.policy.in index 0c551d4..b96d32d 100644 --- a/src/login/org.freedesktop.login1.policy.in +++ b/src/login/org.freedesktop.login1.policy.in @@ -190,7 +190,7 @@ auth_admin_keep auth_admin_keep - auth_admin_keep + yes org.freedesktop.login1.reboot -- cgit v0.9.0.2-2-gbebe debian/patches/disable-failing-buildd-tests.patch0000644000000000000000000000162112322650215017247 0ustar Description: test-unit-name fails on buildds for now, presumably due to a missing /etc/hostname? Author: Martin Pitt Index: systemd/Makefile.am =================================================================== --- systemd.orig/Makefile.am 2013-07-05 08:20:55.117243973 +0200 +++ systemd/Makefile.am 2013-07-05 08:20:55.113243972 +0200 @@ -1095,16 +1095,12 @@ test-strv \ test-path-util \ test-strxcpyx \ - test-unit-name \ test-unit-file \ - test-util \ test-date \ test-sleep \ test-replace-var \ - test-sched-prio \ test-calendarspec \ test-strip-tab-ansi \ - test-cgroup-util \ test-prioq \ test-fileio \ test-time \ @@ -2867,10 +2863,9 @@ test-journal-send \ test-journal-syslog \ test-journal-match \ - test-journal-stream \ test-journal-verify \ test-mmap-cache \ - test-catalog + $(NULL) pkginclude_HEADERS += \ src/systemd/sd-journal.h \ debian/patches/persistent-storage-rule-mmc-partname.patch0000644000000000000000000000303512322650215021023 0ustar Description: Create disk/by-partlabel links for mmcblk partitions Android based kernel exports the uevent property PARTNAME, which can be used to find out at run time the named partitions (e.g. boot) for the device. . This is specially useful for the Touch based images and flash-kernel, to automatically update the kernel by writing at the correct partition (independently of the hardware revision). Forwarded: no Author: Ricardo Salveti Index: systemd/rules/60-persistent-storage.rules =================================================================== --- systemd.orig/rules/60-persistent-storage.rules 2013-01-30 04:32:08.399835311 +0100 +++ systemd/rules/60-persistent-storage.rules 2013-05-22 11:07:07.486872081 +0200 @@ -48,6 +48,7 @@ KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}" KERNEL=="mmcblk[0-9]p[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n" +KERNEL=="mmcblk[0-9]p[0-9]", ENV{PARTNAME}=="?*", SYMLINK+="disk/by-partlabel/$env{PARTNAME}" KERNEL=="mspblk[0-9]", SUBSYSTEMS=="memstick", ATTRS{name}=="?*", ATTRS{serial}=="?*", ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/memstick-$env{ID_NAME}_$env{ID_SERIAL}" KERNEL=="mspblk[0-9]p[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/memstick-$env{ID_NAME}_$env{ID_SERIAL}-part%n" debian/patches/always-probe-cpu-support-drivers.patch0000644000000000000000000000211012322650215020206 0ustar Description: always probe cpu support drivers The kernel from v3.11 now reports (correctly) that there is a CPU driver connected to the CPUs in the kernel. This causes udev to ignore the device and prevents any CPU helper modules such as KVM or AES optimisations from being loaded. These should be loaded regardless of whether there is a CPU driver. Author: Andy Whitcroft Reported-by: Chris J Arges Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1207705 Forwarded: no Last-Update: 2013-08-02 --- systemd-204.orig/rules/80-drivers.rules +++ systemd-204/rules/80-drivers.rules @@ -3,6 +3,7 @@ ACTION=="remove", GOTO="drivers_end" DRIVER!="?*", ENV{MODALIAS}=="?*", RUN{builtin}="kmod load $env{MODALIAS}" +SUBSYSTEM=="cpu", ENV{MODALIAS}=="?*", RUN{builtin}="kmod load $env{MODALIAS}" SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN{builtin}="kmod load tifm_sd" SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN{builtin}="kmod load tifm_ms" SUBSYSTEM=="memstick", RUN{builtin}="kmod load ms_block mspro_block" debian/patches/upstream-hwdb-keyboard.patch0000644000000000000000000002756312322650215016231 0ustar From 9d7d42bc406a2ac04639674281ce3ff6beeda790 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Wed, 10 Jul 2013 16:02:24 +0200 Subject: [PATCH] udev: add builtin 'keyboard' to manage key mappings --- Makefile.am | 27 +++++++ rules/60-keyboard.rules | 22 ++++++ shell-completion/bash/udevadm | 2 +- src/udev/.gitignore | 4 + src/udev/udev-builtin-keyboard.c | 163 +++++++++++++++++++++++++++++++++++++++ src/udev/udev-builtin.c | 1 + src/udev/udev.h | 2 + 7 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 rules/60-keyboard.rules create mode 100644 src/udev/udev-builtin-keyboard.c Index: systemd/Makefile.am =================================================================== --- systemd.orig/Makefile.am 2013-08-27 08:37:36.930210689 +0200 +++ systemd/Makefile.am 2013-08-27 08:37:36.922210689 +0200 @@ -174,6 +174,7 @@ -I $(top_srcdir)/src/core \ -I $(top_srcdir)/src/libudev \ -I $(top_srcdir)/src/udev \ + -I $(top_builddir)/src/udev \ -I $(top_srcdir)/src/libsystemd-bus \ $(OUR_CPPFLAGS) @@ -1931,6 +1932,7 @@ rules/99-systemd.rules \ rules/42-usb-hid-pm.rules \ rules/50-udev-default.rules \ + rules/60-keyboard.rules \ rules/60-persistent-storage-tape.rules \ rules/60-persistent-serial.rules \ rules/60-persistent-input.rules \ @@ -1994,6 +1996,19 @@ noinst_LTLIBRARIES += \ libudev-core.la +src/udev/keyboard-keys.txt: Makefile + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/input.h - < /dev/null | $(AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@ + +src/udev/keyboard-keys-from-name.gperf: src/udev/keyboard-keys.txt Makefile + $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print tolower(substr($$1 ,5)) ", " $$1 }' < $< > $@ + +src/udev/keyboard-keys-from-name.h: src/udev/keyboard-keys-from-name.gperf Makefile + $(AM_V_GPERF)$(GPERF) -L ANSI-C -t -N keyboard_lookup_key -H hash_key_name -p -C < $< > $@ + +src/udev/keyboard-keys-to-name.h: src/udev/keyboard-keys.txt Makefile + $(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const key_names[KEY_CNT] = { "} { print "[" $$1 "] = \"" $$1 "\"," } END{print "};"}' < $< > $@ + libudev_core_la_SOURCES = \ src/udev/udev.h \ src/udev/udev-event.c \ @@ -2005,10 +2020,22 @@ src/udev/udev-builtin-btrfs.c \ src/udev/udev-builtin-hwdb.c \ src/udev/udev-builtin-input_id.c \ + src/udev/udev-builtin-keyboard.c \ src/udev/udev-builtin-net_id.c \ src/udev/udev-builtin-path_id.c \ src/udev/udev-builtin-usb_id.c +nodist_libudev_core_la_SOURCES = \ + src/udev/keyboard-keys-from-name.h \ + src/udev/keyboard-keys-to-name.h + +BUILT_SOURCES += \ + $(nodist_libudev_core_la_SOURCES) + +CLEANFILES += \ + src/udev/keyboard-keys-from-name.gperf \ + src/udev/keyboard-keys.txt + libudev_core_la_CFLAGS = \ $(AM_CFLAGS) \ $(BLKID_CFLAGS) \ Index: systemd/rules/60-keyboard.rules =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ systemd/rules/60-keyboard.rules 2013-08-27 08:37:48.706210151 +0200 @@ -0,0 +1,22 @@ +# do not edit this file, it will be overwritten on update + +ACTION!="add", GOTO="keyboard_end" +KERNEL!="event*", GOTO="keyboard_end" +ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end" + +# ignore all bluetooth devices +SUBSYSTEMS=="bluetooth", GOTO="keyboard_end" + +# import key mapping for USB device +SUBSYSTEMS=="usb", IMPORT{builtin}="hwdb --subsystem=usb --lookup-prefix=keyboard:", \ + RUN{builtin}+="keyboard", GOTO="keyboard_end" + +# import key mapping for AT keyboard from DMI data +DRIVERS=="atkbd", IMPORT{builtin}="hwdb 'keyboard:$attr{[dmi/id]modalias}'", \ + RUN{builtin}+="keyboard", GOTO="keyboard_end" + +# import key mapping for platform input device +KERNELS=="input*", IMPORT{builtin}="hwdb 'keyboard:name:$attr{name}:$attr{[dmi/id]modalias}'", \ + RUN{builtin}+="keyboard", GOTO="keyboard_end" + +LABEL="keyboard_end" Index: systemd/shell-completion/bash/udevadm =================================================================== --- systemd.orig/shell-completion/bash/udevadm 2013-08-27 08:37:36.930210689 +0200 +++ systemd/shell-completion/bash/udevadm 2013-08-27 08:37:36.922210689 +0200 @@ -93,7 +93,7 @@ fi elif __contains_word "$verb" ${VERBS[TESTBUILTIN]}; then - comps='blkid btrfs hwdb input_id kmod net_id path_id usb_id uaccess' + comps='blkid btrfs hwdb input_id keyboard kmod net_id path_id usb_id uaccess' fi COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) Index: systemd/src/udev/udev-builtin-keyboard.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ systemd/src/udev/udev-builtin-keyboard.c 2013-08-27 08:37:36.922210689 +0200 @@ -0,0 +1,163 @@ +/*** + This file is part of systemd. + + Copyright 2013 Kay Sievers + + 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. + + 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with systemd; If not, see . +***/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "udev.h" + +static const struct key *keyboard_lookup_key(const char *str, unsigned int len); +#include "keyboard-keys-from-name.h" +#include "keyboard-keys-to-name.h" + +static int install_force_release(struct udev_device *dev, const unsigned int *release, unsigned int release_count) { + struct udev_device *atkbd; + const char *cur; + char codes[4096]; + char *s; + size_t l; + unsigned int i; + int ret; + + atkbd = udev_device_get_parent_with_subsystem_devtype(dev, "serio", NULL); + if (!atkbd) + return -ENODEV; + + cur = udev_device_get_sysattr_value(atkbd, "force_release"); + if (!cur) + return -ENODEV; + + s = codes; + l = sizeof(codes); + + /* copy current content */ + l = strpcpy(&s, l, cur); + + /* append new codes */ + for (i = 0; i < release_count; i++) + l = strpcpyf(&s, l, ",%d", release[i]); + + log_debug("keyboard: updating force-release list with '%s'\n", codes); + ret = udev_device_set_sysattr_value(atkbd, "force_release", codes); + if (ret < 0) + log_error("Error writing force-release attribute: %s", strerror(-ret)); + return ret; +} + +static int builtin_keyboard(struct udev_device *dev, int argc, char *argv[], bool test) { + struct udev_list_entry *entry; + struct { + unsigned int scan; + unsigned int key; + } map[1024]; + unsigned int map_count = 0; + unsigned int release[1024]; + unsigned int release_count = 0; + + udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev)) { + const char *key; + unsigned int scancode; + char *endptr; + const char *keycode; + const struct key *k; + + key = udev_list_entry_get_name(entry); + if (!startswith(key, "KEYBOARD_KEY_")) + continue; + + /* KEYBOARD_KEY_= */ + scancode = strtoul(key + 13, &endptr, 16); + if (endptr[0] != '\0') { + log_error("Error, unable to parse scan code from '%s'\n", key); + continue; + } + + keycode = udev_list_entry_get_value(entry); + + /* a leading '!' needs a force-release entry */ + if (keycode[0] == '!') { + keycode++; + + release[release_count] = scancode; + if (release_count < ELEMENTSOF(release)-1) + release_count++; + + if (keycode[0] == '\0') + continue; + } + + /* translate identifier to key code */ + k = keyboard_lookup_key(keycode, strlen(keycode)); + if (!k) { + log_error("Error, unknown key identifier '%s'\n", keycode); + continue; + } + + map[map_count].scan = scancode; + map[map_count].key = k->id; + if (map_count < ELEMENTSOF(map)-1) + map_count++; + } + + if (map_count > 0 || release_count > 0) { + const char *node; + int fd; + unsigned int i; + + node = udev_device_get_devnode(dev); + if (!node) { + log_error("Error, no device node for '%s'\n", udev_device_get_syspath(dev)); + return EXIT_FAILURE; + } + + fd = open(udev_device_get_devnode(dev), O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); + if (fd < 0) { + log_error("Error, opening device '%s': %m\n", node); + return EXIT_FAILURE; + } + + /* install list of map codes */ + for (i = 0; i < map_count; i++) { + log_debug("keyboard: mapping scan code %d (0x%x) to key code %d (0x%x)\n", + map[i].scan, map[i].scan, map[i].key, map[i].key); + if (ioctl(fd, EVIOCSKEYCODE, &map[i]) < 0) + log_error("Error calling EVIOCSKEYCODE: %m\n"); + } + + /* install list of force-release codes */ + if (release_count > 0) + install_force_release(dev, release, release_count); + + close(fd); + } + + return EXIT_SUCCESS; +} + +const struct udev_builtin udev_builtin_keyboard = { + .name = "keyboard", + .cmd = builtin_keyboard, + .help = "keyboard scan code to key mapping", +}; Index: systemd/src/udev/udev-builtin.c =================================================================== --- systemd.orig/src/udev/udev-builtin.c 2013-08-27 08:37:36.930210689 +0200 +++ systemd/src/udev/udev-builtin.c 2013-08-27 08:37:36.922210689 +0200 @@ -39,6 +39,7 @@ #endif [UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb, [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id, + [UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard, #ifdef HAVE_KMOD [UDEV_BUILTIN_KMOD] = &udev_builtin_kmod, #endif Index: systemd/src/udev/udev.h =================================================================== --- systemd.orig/src/udev/udev.h 2013-08-27 08:37:36.930210689 +0200 +++ systemd/src/udev/udev.h 2013-08-27 08:37:36.922210689 +0200 @@ -145,6 +145,7 @@ #endif UDEV_BUILTIN_HWDB, UDEV_BUILTIN_INPUT_ID, + UDEV_BUILTIN_KEYBOARD, #ifdef HAVE_KMOD UDEV_BUILTIN_KMOD, #endif @@ -174,6 +175,7 @@ #endif extern const struct udev_builtin udev_builtin_hwdb; extern const struct udev_builtin udev_builtin_input_id; +extern const struct udev_builtin udev_builtin_keyboard; #ifdef HAVE_KMOD extern const struct udev_builtin udev_builtin_kmod; #endif debian/patches/block-polling.patch0000644000000000000000000000177412322650215014401 0ustar Description: Set default polling interval on CD drives as well. The events_dfl_poll_msecs will not trigger if "block" is not a module, but built in. This will avoid udisks etc. having to poll from userspace, and provide proper ejection when the hardware eject button is pressed. Author: Martin Pitt Bug-Ubuntu: https://launchpad.net/bugs/890592 Index: systemd/rules/60-persistent-storage.rules =================================================================== --- systemd.orig/rules/60-persistent-storage.rules 2013-01-30 04:32:08.399835311 +0100 +++ systemd/rules/60-persistent-storage.rules 2013-05-10 10:56:53.165247525 +0200 @@ -10,6 +10,7 @@ # 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" +ACTION=="add", ATTR{removable}=="1", ATTR{events_poll_msecs}=="-1", ATTR{events_poll_msecs}="2000" SUBSYSTEM!="block", GOTO="persistent_storage_end" debian/patches/load-fbcon.patch0000644000000000000000000000151312322650215013640 0ustar Description: Load the fbcon driver when a framebuffer is created. Author: Scott James Remnant Bug-Ubuntu: https://launchpad.net/bugs/392039 Bug-Ubuntu: https://launchpad.net/bugs/431812 Index: systemd/rules/80-drivers.rules =================================================================== --- systemd.orig/rules/80-drivers.rules 2013-05-10 11:16:41.933296547 +0200 +++ systemd/rules/80-drivers.rules 2013-05-10 11:17:06.949297579 +0200 @@ -9,6 +9,7 @@ SUBSYSTEM=="i2o", RUN{builtin}="kmod load i2o_block" SUBSYSTEM=="module", KERNEL=="parport_pc", RUN{builtin}="kmod load ppdev" SUBSYSTEM=="serio", ENV{MODALIAS}=="?*", RUN{builtin}="kmod load $env{MODALIAS}" +SUBSYSTEM=="graphics", RUN{builtin}="kmod load fbcon" KERNEL=="mtd*ro", ENV{MTD_FTL}=="smartmedia", RUN{builtin}="kmod load sm_ftl" LABEL="drivers_end" debian/patches/fix-race-condition-of-serio-driver-module-not-loading.patch0000644000000000000000000000145212322650215024026 0ustar Author: Eric Miao Description: Fix a race condition at boot with serio devices Bug-Ubuntu: https://bugs.launchpad.net/bugs/1014460 Index: systemd/rules/80-drivers.rules =================================================================== --- systemd.orig/rules/80-drivers.rules 2013-03-20 22:58:40.126281337 +0100 +++ systemd/rules/80-drivers.rules 2013-05-10 11:02:28.505261354 +0200 @@ -8,6 +8,7 @@ SUBSYSTEM=="memstick", RUN{builtin}="kmod load ms_block mspro_block" SUBSYSTEM=="i2o", RUN{builtin}="kmod load i2o_block" SUBSYSTEM=="module", KERNEL=="parport_pc", RUN{builtin}="kmod load ppdev" +SUBSYSTEM=="serio", ENV{MODALIAS}=="?*", RUN{builtin}="kmod load $env{MODALIAS}" KERNEL=="mtd*ro", ENV{MTD_FTL}=="smartmedia", RUN{builtin}="kmod load sm_ftl" LABEL="drivers_end" debian/patches/v204..upstream-fixes_204-50000644000000000000000000001672112322650215015020 0ustar diff --git a/src/core/dbus-socket.c b/src/core/dbus-socket.c index 77d98ea..973f905 100644 --- a/src/core/dbus-socket.c +++ b/src/core/dbus-socket.c @@ -205,7 +205,7 @@ DBusHandlerResult bus_socket_message_handler(Unit *u, DBusConnection *c, DBusMes { "org.freedesktop.systemd1.Socket", bus_socket_properties, s }, { "org.freedesktop.systemd1.Socket", bus_exec_context_properties, &s->exec_context }, { "org.freedesktop.systemd1.Socket", bus_kill_context_properties, &s->kill_context }, - { "org.freedesktop.systemd1.Socket", bus_unit_properties, u }, + { "org.freedesktop.systemd1.Socket", bus_unit_cgroup_properties, u }, { NULL, } }; diff --git a/src/core/manager.c b/src/core/manager.c index c7f8f20..0508628 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -1372,7 +1372,7 @@ static int manager_process_signal_fd(Manager *m) { case SIGINT: if (m->running_as == SYSTEMD_SYSTEM) { - manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE); + manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE_IRREVERSIBLY); break; } diff --git a/src/initctl/initctl.c b/src/initctl/initctl.c index 735f1e1..5fbce4a 100644 --- a/src/initctl/initctl.c +++ b/src/initctl/initctl.c @@ -122,7 +122,7 @@ static void change_runlevel(Server *s, int runlevel) { if (isolate) mode = "isolate"; else - mode = "replace"; + mode = "replace-irreversibly"; log_debug("Running request %s/start/%s", target, mode); diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index cc52b8a..01f23ce 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -227,9 +227,11 @@ void server_fix_perms(Server *s, JournalFile *f, uid_t uid) { } } - /* We do not recalculate the mask here, so that the fchmod() mask above stays intact. */ + /* We do not recalculate the mask unconditionally here, + * so that the fchmod() mask above stays intact. */ if (acl_get_permset(entry, &permset) < 0 || - acl_add_perm(permset, ACL_READ) < 0) { + acl_add_perm(permset, ACL_READ) < 0 || + calc_acl_mask_if_needed(&acl) < 0) { log_warning("Failed to patch ACL on %s, ignoring: %m", f->path); goto finish; } diff --git a/src/shared/acl-util.c b/src/shared/acl-util.c index 48bb12f..fb04e49 100644 --- a/src/shared/acl-util.c +++ b/src/shared/acl-util.c @@ -69,6 +69,34 @@ int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry) { return 0; } +int calc_acl_mask_if_needed(acl_t *acl_p) { + acl_entry_t i; + int found; + + assert(acl_p); + + for (found = acl_get_entry(*acl_p, ACL_FIRST_ENTRY, &i); + found > 0; + found = acl_get_entry(*acl_p, ACL_NEXT_ENTRY, &i)) { + + acl_tag_t tag; + + if (acl_get_tag_type(i, &tag) < 0) + return -errno; + + if (tag == ACL_MASK) + return 0; + } + + if (found < 0) + return -errno; + + if (acl_calc_mask(acl_p) < 0) + return -errno; + + return 0; +} + int search_acl_groups(char*** dst, const char* path, bool* belong) { acl_t acl; diff --git a/src/shared/acl-util.h b/src/shared/acl-util.h index 23090d9..36ef490 100644 --- a/src/shared/acl-util.h +++ b/src/shared/acl-util.h @@ -24,4 +24,5 @@ #include int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry); +int calc_acl_mask_if_needed(acl_t *acl_p); int search_acl_groups(char*** dst, const char* path, bool* belong); diff --git a/src/shared/polkit.c b/src/shared/polkit.c index cea7074..1c5e9e3 100644 --- a/src/shared/polkit.c +++ b/src/shared/polkit.c @@ -38,12 +38,8 @@ int verify_polkit( #ifdef ENABLE_POLKIT DBusMessage *m = NULL, *reply = NULL; - const char *unix_process = "unix-process", *pid = "pid", *starttime = "start-time", *cancel_id = ""; + const char *system_bus_name = "system-bus-name", *name = "name", *cancel_id = ""; uint32_t flags = interactive ? 1 : 0; - pid_t pid_raw; - uint32_t pid_u32; - unsigned long long starttime_raw; - uint64_t starttime_u64; DBusMessageIter iter_msg, iter_struct, iter_array, iter_dict, iter_variant; int r; dbus_bool_t authorized = FALSE, challenge = FALSE; @@ -68,14 +64,6 @@ int verify_polkit( #ifdef ENABLE_POLKIT - pid_raw = bus_get_unix_process_id(c, sender, error); - if (pid_raw == 0) - return -EINVAL; - - r = get_starttime_of_pid(pid_raw, &starttime_raw); - if (r < 0) - return r; - m = dbus_message_new_method_call( "org.freedesktop.PolicyKit1", "/org/freedesktop/PolicyKit1/Authority", @@ -86,22 +74,13 @@ int verify_polkit( dbus_message_iter_init_append(m, &iter_msg); - pid_u32 = (uint32_t) pid_raw; - starttime_u64 = (uint64_t) starttime_raw; - if (!dbus_message_iter_open_container(&iter_msg, DBUS_TYPE_STRUCT, NULL, &iter_struct) || - !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &unix_process) || + !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &system_bus_name) || !dbus_message_iter_open_container(&iter_struct, DBUS_TYPE_ARRAY, "{sv}", &iter_array) || !dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) || - !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &pid) || - !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "u", &iter_variant) || - !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT32, &pid_u32) || - !dbus_message_iter_close_container(&iter_dict, &iter_variant) || - !dbus_message_iter_close_container(&iter_array, &iter_dict) || - !dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) || - !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &starttime) || - !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "t", &iter_variant) || - !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT64, &starttime_u64) || + !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &name) || + !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "s", &iter_variant) || + !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_STRING, &sender) || !dbus_message_iter_close_container(&iter_dict, &iter_variant) || !dbus_message_iter_close_container(&iter_array, &iter_dict) || !dbus_message_iter_close_container(&iter_struct, &iter_array) || diff --git a/units/systemd-tmpfiles-setup-dev.service.in b/units/systemd-tmpfiles-setup-dev.service.in index f029285..764da01 100644 --- a/units/systemd-tmpfiles-setup-dev.service.in +++ b/units/systemd-tmpfiles-setup-dev.service.in @@ -14,4 +14,5 @@ ConditionCapability=CAP_MKNOD [Service] Type=oneshot +RemainAfterExit=yes ExecStart=@rootbindir@/systemd-tmpfiles --prefix=/dev --create debian/patches/env-variable-for-machine-ID-path.patch0000644000000000000000000000276012322650215017626 0ustar From 237e0f62065760fc0acf5f379457f6715cee6784 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Fri, 15 Mar 2013 08:27:43 +0100 Subject: [PATCH] Add env variable for machine ID path During package build, in minimal chroots, or other systems which do not already have an /etc/machine-id we get six test failures. Introduce a $SYSTEMD_MACHINE_ID_PATH environment variable which can specify a location other than /etc/machine-id, so that the unit tests are independent from the environment. https://bugs.freedesktop.org/show_bug.cgi?id=62344 --- src/libsystemd-id128/sd-id128.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) Index: systemd/src/libsystemd-id128/sd-id128.c =================================================================== --- systemd.orig/src/libsystemd-id128/sd-id128.c 2013-07-05 08:20:51.769243811 +0200 +++ systemd/src/libsystemd-id128/sd-id128.c 2013-07-05 08:20:51.765243810 +0200 @@ -115,6 +115,7 @@ ssize_t k; unsigned j; sd_id128_t t; + const char *machine_id_path; if (!ret) return -EINVAL; @@ -124,7 +125,10 @@ return 0; } - fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY); + machine_id_path = getenv("SYSTEMD_MACHINE_ID_PATH"); + if (machine_id_path == NULL) + machine_id_path = "/etc/machine-id"; + fd = open(machine_id_path, O_RDONLY|O_CLOEXEC|O_NOCTTY); if (fd < 0) return -errno; debian/patches/ignore-omap-vsync.patch0000644000000000000000000000732712322650215015222 0ustar Description: Ignore VSYNC change uevents from omapfb, as they happen at each vsync and thus keep waking up udevd (including rules processing), upstart, and other parts of the system 60 times a second. Author: Martin Pitt Forwarded: Heck, don't ever show this embarassing hack to anyone. Except if that anyone is an omapfb author, then please don't stop showing this to them until they fix the driver :-) Bug-Ubuntu: https://launchpad.net/bugs/1234743 Index: systemd/src/libudev/libudev-monitor.c =================================================================== --- systemd.orig/src/libudev/libudev-monitor.c 2013-02-20 02:32:41.900839006 +0100 +++ systemd/src/libudev/libudev-monitor.c 2013-10-17 11:38:56.216374114 +0200 @@ -198,6 +198,9 @@ (*i)++; } +/* return uint32_t for the first 4 characters in s */ +#define str2word(s) ((s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]) + /** * udev_monitor_filter_update: * @udev_monitor: monitor @@ -216,6 +219,11 @@ int err; if (udev_list_get_entry(&udev_monitor->filter_subsystem_list) == NULL && +#ifdef __arm__ + /* we always need a filter chain for kernel monitors to get rid + * of the omapfb VSYNC uevents */ + udev_monitor->snl.nl.nl_groups != UDEV_MONITOR_KERNEL && +#endif udev_list_get_entry(&udev_monitor->filter_tag_list) == NULL) return 0; @@ -224,8 +232,45 @@ /* load magic in A */ bpf_stmt(ins, &i, BPF_LD|BPF_W|BPF_ABS, offsetof(struct udev_monitor_netlink_header, magic)); +#ifndef __arm__ /* jump if magic matches */ bpf_jmp(ins, &i, BPF_JMP|BPF_JEQ|BPF_K, UDEV_MONITOR_MAGIC, 1, 0); +#else + /* jump over our whole omapfb/VSYNC check if magic matches */ + bpf_jmp(ins, &i, BPF_JMP|BPF_JEQ|BPF_K, UDEV_MONITOR_MAGIC, 10, 0); + + /* filter out omapfb change VSYNC uevents (LP #1234743); they look like +change@/devices/platform/omapfb\x00ACTION=change\x00DEVPATH=/devices/platform/omapfb\x00SUBSYSTEM=platform\x00VSYNC=1737775695800\x00DRIVER=omapfb\x00MODALIAS=platform:omapfb\x00SEQNUM=8909\x00 + + Matching on the VSYNC attribute is a bit finicky, as its exact + position in the packet might not be reliable. The real VSYNC uevents + have packets of ~ 170 bytes length (varying with the string length of + VSYNC= and SEQNUM), while a simple synthetic + "echo change | tee /sys/devices/platform/omapfb/uevent" only has 150. + So we instead just compare the length of the packet and use 160 as a divider. + As we don't generally care about that device at all, this logic does + not need to be rock solid, though -- if we would just ignore all + change events from that device nothing should break. + */ + + /* if the event is shorter than 160 bytes, it can't be omapfb/VSYNC, jump to "pass" */ + bpf_stmt(ins, &i, BPF_LD|BPF_W|BPF_LEN, 0); + bpf_jmp(ins, &i, BPF_JMP|BPF_JGE|BPF_K, 160, 0, 7); + + /* check if it is a change event; if not, jump to "pass" */ + bpf_stmt(ins, &i, BPF_LD|BPF_W|BPF_ABS, 0); + bpf_jmp(ins, &i, BPF_JMP|BPF_JEQ|BPF_K, str2word("chan"), 0, 5); + + /* check if it is from omapfb */ + bpf_stmt(ins, &i, BPF_LD|BPF_W|BPF_ABS, 24); + bpf_jmp(ins, &i, BPF_JMP|BPF_JEQ|BPF_K, str2word("/oma"), 0, 3); + bpf_stmt(ins, &i, BPF_LD|BPF_W|BPF_ABS, 28); + bpf_jmp(ins, &i, BPF_JMP|BPF_JEQ|BPF_K, str2word("pfb\0"), 0, 1); + + /* we found the omapfb change uevent, reject it */ + bpf_stmt(ins, &i, BPF_RET|BPF_K, 0); +#endif /* omapfb filter hack on __arm__ */ + /* wrong magic, pass packet */ bpf_stmt(ins, &i, BPF_RET|BPF_K, 0xffffffff); debian/patches/upstream-hwdb-updates.patch0000644000000000000000000003674212322650215016075 0ustar Index: systemd/src/libudev/libudev-hwdb.c =================================================================== --- systemd.orig/src/libudev/libudev-hwdb.c 2013-08-27 10:49:32.349556246 +0200 +++ systemd/src/libudev/libudev-hwdb.c 2013-08-27 10:49:32.337556245 +0200 @@ -140,9 +140,13 @@ } static int hwdb_add_property(struct udev_hwdb *hwdb, const char *key, const char *value) { - /* TODO: add sub-matches (+) against DMI data */ + /* + * Silently ignore all properties which do not start with a + * space; future extensions might use additional prefixes. + */ if (key[0] != ' ') return 0; + if (udev_list_entry_add(&hwdb->properties_list, key+1, value) == NULL) return -ENOMEM; return 0; @@ -300,11 +304,11 @@ } log_debug("=== trie on-disk ===\n"); - log_debug("tool version: %llu", (unsigned long long)le64toh(hwdb->head->tool_version)); - log_debug("file size: %8llu bytes\n", (unsigned long long)hwdb->st.st_size); - log_debug("header size %8llu bytes\n", (unsigned long long)le64toh(hwdb->head->header_size)); - log_debug("strings %8llu bytes\n", (unsigned long long)le64toh(hwdb->head->strings_len)); - log_debug("nodes %8llu bytes\n", (unsigned long long)le64toh(hwdb->head->nodes_len)); + log_debug("tool version: %"PRIu64, le64toh(hwdb->head->tool_version)); + log_debug("file size: %8llu bytes\n", (unsigned long long) hwdb->st.st_size); + log_debug("header size %8"PRIu64" bytes\n", le64toh(hwdb->head->header_size)); + log_debug("strings %8"PRIu64" bytes\n", le64toh(hwdb->head->strings_len)); + log_debug("nodes %8"PRIu64" bytes\n", le64toh(hwdb->head->nodes_len)); return hwdb; } Index: systemd/src/udev/udev-builtin-hwdb.c =================================================================== --- systemd.orig/src/udev/udev-builtin-hwdb.c 2013-08-27 10:49:32.349556246 +0200 +++ systemd/src/udev/udev-builtin-hwdb.c 2013-08-27 10:49:32.341556245 +0200 @@ -23,20 +23,37 @@ #include #include #include +#include #include #include "udev.h" static struct udev_hwdb *hwdb; -int udev_builtin_hwdb_lookup(struct udev_device *dev, const char *modalias, bool test) { +int udev_builtin_hwdb_lookup(struct udev_device *dev, + const char *prefix, const char *modalias, + const char *filter, bool test) { + struct udev_list_entry *list; struct udev_list_entry *entry; int n = 0; if (!hwdb) return -ENOENT; - udev_list_entry_foreach(entry, udev_hwdb_get_properties_list_entry(hwdb, modalias, 0)) { + if (prefix) { + _cleanup_free_ const char *lookup; + + lookup = strjoin(prefix, modalias, NULL); + if (!lookup) + return -ENOMEM; + list = udev_hwdb_get_properties_list_entry(hwdb, lookup, 0); + } else + list = udev_hwdb_get_properties_list_entry(hwdb, modalias, 0); + + udev_list_entry_foreach(entry, list) { + if (filter && fnmatch(filter, udev_list_entry_get_name(entry), FNM_NOESCAPE) != 0) + continue; + if (udev_builtin_add_property(dev, test, udev_list_entry_get_name(entry), udev_list_entry_get_value(entry)) < 0) @@ -66,12 +83,14 @@ return s; } -static int udev_builtin_hwdb_search(struct udev_device *dev, const char *subsystem, bool test) { +static int udev_builtin_hwdb_search(struct udev_device *dev, struct udev_device *srcdev, + const char *subsystem, const char *prefix, + const char *filter, bool test) { struct udev_device *d; char s[16]; int n = 0; - for (d = dev; d; d = udev_device_get_parent(d)) { + for (d = srcdev; d; d = udev_device_get_parent(d)) { const char *dsubsys; const char *modalias = NULL; @@ -83,16 +102,16 @@ if (subsystem && !streq(dsubsys, subsystem)) continue; - /* the usb_device does not have a modalias, compose one */ - if (streq(dsubsys, "usb")) - modalias = modalias_usb(dev, s, sizeof(s)); + modalias = udev_device_get_property_value(d, "MODALIAS"); - if (!modalias) - modalias = udev_device_get_property_value(d, "MODALIAS"); + /* the usb_device does not have a modalias, compose one */ + if (!modalias && streq(dsubsys, "usb")) + modalias = modalias_usb(d, s, sizeof(s)); if (!modalias) continue; - n = udev_builtin_hwdb_lookup(dev, modalias, test); + + n = udev_builtin_hwdb_lookup(dev, prefix, modalias, filter, test); if (n > 0) break; } @@ -102,10 +121,17 @@ static int builtin_hwdb(struct udev_device *dev, int argc, char *argv[], bool test) { static const struct option options[] = { + { "filter", required_argument, NULL, 'f' }, + { "device", required_argument, NULL, 'd' }, { "subsystem", required_argument, NULL, 's' }, + { "lookup-prefix", required_argument, NULL, 'p' }, {} }; + const char *filter = NULL; + const char *device = NULL; const char *subsystem = NULL; + const char *prefix = NULL; + struct udev_device *srcdev; if (!hwdb) return EXIT_FAILURE; @@ -113,20 +139,47 @@ for (;;) { int option; - option = getopt_long(argc, argv, "s", options, NULL); + option = getopt_long(argc, argv, "f:d:s:p:", options, NULL); if (option == -1) break; switch (option) { + case 'f': + filter = optarg; + break; + + case 'd': + device = optarg; + break; + case 's': subsystem = optarg; break; + + case 'p': + prefix = optarg; + break; } } - if (udev_builtin_hwdb_search(dev, subsystem, test) < 0) + /* query a specific key given as argument */ + if (argv[optind]) { + if (udev_builtin_hwdb_lookup(dev, prefix, argv[optind], filter, test) > 0) + return EXIT_SUCCESS; return EXIT_FAILURE; - return EXIT_SUCCESS; + } + + /* read data from another device than the device we will store the data */ + if (device) { + srcdev = udev_device_new_from_device_id(udev_device_get_udev(dev), device); + if (!srcdev) + return EXIT_FAILURE; + } else + srcdev = dev; + + if (udev_builtin_hwdb_search(dev, srcdev, subsystem, prefix, filter, test) > 0) + return EXIT_SUCCESS; + return EXIT_FAILURE; } /* called at udev startup and reload */ Index: systemd/src/udev/udevadm-hwdb.c =================================================================== --- systemd.orig/src/udev/udevadm-hwdb.c 2013-08-27 10:49:32.349556246 +0200 +++ systemd/src/udev/udevadm-hwdb.c 2013-08-27 10:49:32.341556245 +0200 @@ -21,6 +21,7 @@ #include #include #include +#include #include "util.h" #include "strbuf.h" @@ -302,8 +303,10 @@ int64_t child_off; child_off = trie_store_nodes(trie, node->children[i].child); - if (child_off < 0) + if (child_off < 0) { + free(children); return child_off; + } children[i].c = node->children[i].c; children[i].child_off = htole64(child_off); } @@ -402,66 +405,122 @@ return err; } -static int import_file(struct trie *trie, const char *filename) { +static int insert_data(struct trie *trie, struct udev_list *match_list, + char *line, const char *filename) { + char *value; + struct udev_list_entry *entry; + + value = strchr(line, '='); + if (!value) { + log_error("Error, key/value pair expected but got '%s' in '%s':\n", line, filename); + return -EINVAL; + } + + value[0] = '\0'; + value++; + + if (line[0] == '\0' || value[0] == '\0') { + log_error("Error, empty key or value '%s' in '%s':\n", line, filename); + return -EINVAL; + } + + udev_list_entry_foreach(entry, udev_list_get_entry(match_list)) + trie_insert(trie, trie->root, udev_list_entry_get_name(entry), line, value); + + return 0; +} + +static int import_file(struct udev *udev, struct trie *trie, const char *filename) { + enum { + HW_MATCH, + HW_DATA, + HW_NONE, + } state = HW_NONE; FILE *f; char line[LINE_MAX]; - char match[LINE_MAX]; - char cond[LINE_MAX]; + struct udev_list match_list; + + udev_list_init(udev, &match_list, false); f = fopen(filename, "re"); if (f == NULL) return -errno; - match[0] = '\0'; - cond[0] = '\0'; while (fgets(line, sizeof(line), f)) { size_t len; + char *pos; + /* comment line */ if (line[0] == '#') continue; - /* new line, new record */ - if (line[0] == '\n') { - match[0] = '\0'; - cond[0] = '\0'; - continue; - } + /* strip trailing comment */ + pos = strchr(line, '#'); + if (pos) + pos[0] = '\0'; - /* remove newline */ + /* strip trailing whitespace */ len = strlen(line); - if (len < 2) - continue; - line[len-1] = '\0'; + while (len > 0 && isspace(line[len-1])) + len--; + line[len] = '\0'; + + switch (state) { + case HW_NONE: + if (len == 0) + break; + + if (line[0] == ' ') { + log_error("Error, MATCH expected but got '%s' in '%s':\n", line, filename); + break; + } - /* start of new record */ - if (match[0] == '\0') { - strcpy(match, line); - cond[0] = '\0'; - continue; - } + /* start of record, first match */ + state = HW_MATCH; + udev_list_entry_add(&match_list, line, NULL); + break; - if (line[0] == '+') { - strcpy(cond, line); - continue; - } + case HW_MATCH: + if (len == 0) { + log_error("Error, DATA expected but got empty line in '%s':\n", filename); + state = HW_NONE; + udev_list_cleanup(&match_list); + break; + } - /* TODO: support +; skip the entire record until we support it */ - if (cond[0] != '\0') - continue; + /* another match */ + if (line[0] != ' ') { + udev_list_entry_add(&match_list, line, NULL); + break; + } - /* value lines */ - if (line[0] == ' ') { - char *value; + /* first data */ + state = HW_DATA; + insert_data(trie, &match_list, line, filename); + break; - value = strchr(line, '='); - if (!value) - continue; - value[0] = '\0'; - value++; - trie_insert(trie, trie->root, match, line, value); - } + case HW_DATA: + /* end of record */ + if (len == 0) { + state = HW_NONE; + udev_list_cleanup(&match_list); + break; + } + + if (line[0] != ' ') { + log_error("Error, DATA expected but got '%s' in '%s':\n", line, filename); + state = HW_NONE; + udev_list_cleanup(&match_list); + break; + } + + insert_data(trie, &match_list, line, filename); + break; + }; } + fclose(f); + udev_list_cleanup(&match_list); return 0; } @@ -549,7 +608,7 @@ } STRV_FOREACH(f, files) { log_debug("reading file '%s'", *f); - import_file(trie, *f); + import_file(udev, trie, *f); } strv_free(files); Index: systemd/src/udev/udev.h =================================================================== --- systemd.orig/src/udev/udev.h 2013-08-27 10:49:32.349556246 +0200 +++ systemd/src/udev/udev.h 2013-08-27 10:49:32.341556245 +0200 @@ -190,7 +190,8 @@ void udev_builtin_list(struct udev *udev); bool udev_builtin_validate(struct udev *udev); int udev_builtin_add_property(struct udev_device *dev, bool test, const char *key, const char *val); -int udev_builtin_hwdb_lookup(struct udev_device *dev, const char *modalias, bool test); +int udev_builtin_hwdb_lookup(struct udev_device *dev, const char *prefix, const char *modalias, + const char *filter, bool test); /* udev logging */ void udev_main_log(struct udev *udev, int priority, Index: systemd/src/udev/udev-builtin-net_id.c =================================================================== --- systemd.orig/src/udev/udev-builtin-net_id.c 2013-04-08 17:26:34.317113774 +0200 +++ systemd/src/udev/udev-builtin-net_id.c 2013-08-27 10:50:02.873557723 +0200 @@ -386,7 +386,7 @@ snprintf(str, sizeof(str), "OUI:%02X%02X%02X%02X%02X%02X", names->mac[0], names->mac[1], names->mac[2], names->mac[3], names->mac[4], names->mac[5]); - udev_builtin_hwdb_lookup(dev, str, test); + udev_builtin_hwdb_lookup(dev, NULL, str, NULL, test); return 0; } debian/patches/debian-changes0000644000000000000000000050463612322650215013404 0ustar 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 (204-5) unstable; urgency=high . * Cherry-pick 72fd713 from upstream which fixes insecure calling of polkit by avoiding a race condition in scraping /proc (CVE-2013-4327). Closes: #723713 Author: Michael Biebl Bug-Debian: http://bugs.debian.org/723713 --- 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-204/.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-204/.mailmap @@ -0,0 +1,62 @@ +Kay Sievers +Kay Sievers +Kay Sievers +Kay Sievers +Kay Sievers +Greg KH +Greg KH +Greg KH +Greg KH +Greg KH +Harald Hoyer +David Zeuthen +David Zeuthen +David Zeuthen +Hannes Reinecke +Scott James Remnant +Scott James Remnant +Alan Jenkins +Alan Jenkins +Marco d'Itri +Robert Gerus Robert "arachnist" Gerus +Fabiano Fidêncio Fabiano Fidencio +Martin Pitt +Martin Pitt +Daniel J Walsh +Dave Reisner +Diego Elio Pettenò +Daniel Elstner +Frederic Crozat +Ian Campbell +Jerone Young +Luis Felipe Strano Moraes +Mario Limonciello +Matthias Clasen +Michal Soltys +Piter PUNK +Richard Hughes +Robby Workman +Shawn Landden +Simon Peeters +Tobias Klauser +Miklos Vajna +William Jon McCann +Yin Kangkai +Zbigniew Jędrzejewski-Szmek +Lennart Poettering +Ananth N Mavinakayanahalli +Ananth N Mavinakayanahalli +Ted Ts'o +Tobias Klauser +Tobias Klauser +Tobias Klauser +Patrick Mansfield +Christophe Varoqui +Daniel Stekloff +Michael Buesch +Olaf Hering +Robert Love +Arnd Bergmann +Tom Rini +Paul Mundt +Atul Sabharwal --- /dev/null +++ systemd-204/.vimrc @@ -0,0 +1,4 @@ +" 'set exrc' in ~/.vimrc will read .vimrc from the current directory +set tabstop=8 +set shiftwidth=8 +set expandtab --- /dev/null +++ systemd-204/CODING_STYLE @@ -0,0 +1,123 @@ + +- 8ch indent, no tabs + +- Variables and functions *must* be static, unless they have a + protoype, and are supposed to be exported. + +- 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". + + Be strict with this. When you write a function that can fail due to + more than one cause, it *really* should have "int" as return value + for the error code. + +- Don't bother with error checking if writing to stdout/stderr worked. + +- Do not log errors from "library" code, only do so from "main + program" code. + +- Always check OOM. There's no excuse. In program code you can use + "log_oom()" for then printing a short message. + +- Do not issue NSS requests (that includes user name and host name + lookups) from the main daemon as this might trigger deadlocks when + those lookups involve synchronously talking to services that we + would need to start up + +- Don't synchronously talk to any other service, due to risk of + deadlocks + +- Avoid fixed sized string buffers, unless you really know the maximum + size and that maximum size is small. They are a source of errors, + since they result in strings to be truncated. Often it is nicer to + use dynamic memory, or alloca(). If you do allocate fixed size + strings on the stack, then it's probably only OK if you either use a + maximum size such as LINE_MAX, or count in detail the maximum size a + string can have. Or in other words, if you use "char buf[256]" then + you are likely doing something wrong! + +- Stay uniform. For example, always use "usec_t" for time + values. Don't usec mix msec, and usec and whatnot. + +- Make use of _cleanup_free_ and friends. It makes your code much + nicer to read! + +- Be exceptionally careful when formatting and parsing floating point + numbers. Their syntax is locale dependent (i.e. "5.000" in en_US is + generally understood as 5, while on de_DE as 5000.). + +- Try to use this: + + void foo() { + } + + instead of this: + + void foo() + { + } + + But it's OK if you don't. + +- Don't write "foo ()", write "foo()". + +- Please use streq() and strneq() instead of strcmp(), strncmp() where applicable. + +- Please do not allocate variables on the stack in the middle of code, + even if C99 allows it. Wrong: + + { + a = 5; + int b; + b = a; + } + + Right: + + { + int b; + a = 5; + b = a; + } + +- Unless you allocate an array, "double" is always the better choice + than "float". Processors speak "double" natively anyway, so this is + no speed benefit, and on calls like printf() "float"s get upgraded + to "double"s anyway, so there is no point. + +- Don't invoke functions when you allocate variables on the stack. Wrong: + + { + int a = foobar(); + uint64_t x = 7; + } + + Right: + + { + int a; + uint64_t x = 7; + + a = foobar(); + } + +- Use "goto" for cleaning up, and only use it for that. i.e. you may + only jump to the end of a function, and little else. + +- Think about the types you use. If a value cannot sensibly be + negative don't use "int", but use "unsigned". + +- Don't use types like "short". They *never* make sense. Use ints, + longs, long longs, all in unsigned+signed fashion, and the fixed + size types uint32_t and so on, but nothing else. --- systemd-204.orig/Makefile.am +++ systemd-204/Makefile.am @@ -404,6 +404,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 \ @@ -2087,7 +2088,7 @@ INSTALL_DATA_HOOKS += \ hwdb-update-hook hwdb-remove-hook: - -test -n "$(DESTDIR)" || rm -f /etc/udev/hwdb.bin + -test -n "$(DESTDIR)" || rm -f $(udevlibexecdir)/hwdb.bin # ------------------------------------------------------------------------------ TESTS += \ @@ -2353,15 +2354,6 @@ typelibs_DATA = \ CLEANFILES += $(gir_DATA) $(typelibs_DATA) endif # HAVE_INTROSPECTION -# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed -libgudev-install-hook: - libname=libgudev-1.0.so && $(move-to-rootlibdir) - -libgudev-uninstall-hook: - rm -f $(DESTDIR)$(rootlibdir)/libgudev-1.0.so* - -INSTALL_EXEC_HOOKS += libgudev-install-hook -UNINSTALL_EXEC_HOOKS += libgudev-uninstall-hook endif EXTRA_DIST += \ --- /dev/null +++ systemd-204/autogen.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +# 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. +# +# 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see . + +set -e + +if [ -f .git/hooks/pre-commit.sample ] && [ ! -f .git/hooks/pre-commit ]; then + # This part is allowed to fail + cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit && \ + chmod +x .git/hooks/pre-commit && \ + echo "Activated pre-commit hook." || : +fi + +if which gtkdocize >/dev/null 2>/dev/null; then + gtkdocize --docdir docs/ + gtkdocargs=--enable-gtk-doc +else + echo "You don't have gtk-doc installed, and thus won't be able to generate the documentation." + rm -f docs/gtk-doc.make + echo 'EXTRA_DIST =' > docs/gtk-doc.make +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) \ +$gtkdocargs" + +if [ ! -L /bin ]; then +args="$args \ +--with-rootprefix= \ +--with-rootlibdir=$(libdir /lib) \ +" +fi + +if [ "x$1" = "xc" ]; then + ./configure CFLAGS='-g -O0' $args + make clean +else + echo + echo "----------------------------------------------------------------" + echo "Initialized build system. For a common configuration please run:" + echo "----------------------------------------------------------------" + echo + echo "./configure CFLAGS='-g -O0' $args" + echo +fi --- systemd-204.orig/configure.ac +++ systemd-204/configure.ac @@ -64,12 +64,12 @@ AC_PROG_GCC_TRADITIONAL AC_PATH_PROG([M4], [m4]) AC_PATH_PROG([XSLTPROC], [xsltproc]) -AC_PATH_PROG([QUOTAON], [quotaon], [/usr/sbin/quotaon]) -AC_PATH_PROG([QUOTACHECK], [quotacheck], [/usr/sbin/quotacheck]) +AC_PATH_PROG([QUOTAON], [quotaon], [/sbin/quotaon]) +AC_PATH_PROG([QUOTACHECK], [quotacheck], [/sbin/quotacheck]) -AC_PATH_PROG([SETCAP], [setcap], [/usr/sbin/setcap]) +AC_PATH_PROG([SETCAP], [setcap], [/sbin/setcap]) -AC_PATH_PROG([KILL], [kill], [/usr/bin/kill]) +AC_PATH_PROG([KILL], [kill], [/bin/kill]) # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line m4_ifdef([GTK_DOC_CHECK], [ @@ -680,13 +680,13 @@ AC_ARG_WITH(kbd-loadkeys, AS_HELP_STRING([--with-kbd-loadkeys=PATH], [Path to loadkeys]), [KBD_LOADKEYS="$withval"], - [KBD_LOADKEYS="/usr/bin/loadkeys"]) + [KBD_LOADKEYS="/bin/loadkeys"]) AC_ARG_WITH(kbd-setfont, AS_HELP_STRING([--with-kbd-setfont=PATH], [Path to setfont]), [KBD_SETFONT="$withval"], - [KBD_SETFONT="/usr/bin/setfont"]) + [KBD_SETFONT="/bin/setfont"]) AC_DEFINE_UNQUOTED(KBD_LOADKEYS, ["$KBD_LOADKEYS"], [Path of loadkeys]) AC_DEFINE_UNQUOTED(KBD_SETFONT, ["$KBD_SETFONT"], [Path of setfont]) --- /dev/null +++ systemd-204/hwdb/ids-update.pl @@ -0,0 +1,270 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +sub usb_vendor { + my $vendor; + + open(IN, "<", "usb.ids"); + open(OUT, ">", "20-usb-vendor-model.hwdb"); + print(OUT "# This file is part of systemd.\n" . + "#\n" . + "# Data imported from: http://www.linux-usb.org/usb.ids\n"); + + while (my $line = ) { + $line =~ s/\s+$//; + $line =~ m/^([0-9a-f]{4})\s*(.+)$/; + if (defined $1) { + $vendor = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "usb:v" . $vendor . "*\n"); + print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n"); + next; + } + + $line =~ m/^\t([0-9a-f]{4})\s*(.+)$/; + if (defined $1) { + my $model = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "usb:v" . $vendor . "p" . $model . "*\n"); + print(OUT " ID_MODEL_FROM_DATABASE=" . $text . "\n"); + } + } + + close(IN); + close(OUT); +} + +sub usb_classes { + my $class; + my $subclass; + my $protocol; + + open(IN, "<", "usb.ids"); + open(OUT, ">", "20-usb-classes.hwdb"); + print(OUT "# This file is part of systemd.\n" . + "#\n" . + "# Data imported from: http://www.linux-usb.org/usb.ids\n"); + + while (my $line = ) { + $line =~ s/\s+$//; + + $line =~ m/^C\ ([0-9a-f]{2})\s*(.+)$/; + if (defined $1) { + $class = uc $1; + if ($class =~ m/^00$/) { + next; + } + my $text = $2; + print(OUT "\n"); + print(OUT "usb:v*p*d*dc" . $class . "*\n"); + print(OUT " ID_USB_CLASS_FROM_DATABASE=" . $text . "\n"); + next; + } + + if (not defined $class) { + next; + } elsif ($line =~ m/^$/) { + last; + } + + $line =~ m/^\t([0-9a-f]{2})\s*(.+)$/; + if (defined $1) { + $subclass = uc $1; + if ($subclass =~ m/^00$/) { + next; + } + my $text = $2; + if ($text =~ m/^(\?|None|Unused)$/) { + next; + } + print(OUT "\n"); + print(OUT "usb:v*p*d*dc" . $class . "dsc" . $subclass . "*\n"); + print(OUT " ID_USB_SUBCLASS_FROM_DATABASE=" . $text . "\n"); + next; + } + + $line =~ m/^\t\t([0-9a-f]{2})\s*(.+)$/; + if (defined $1) { + $protocol = uc $1; + my $text = $2; + if ($text =~ m/^(\?|None|Unused)$/) { + next; + } + print(OUT "\n"); + print(OUT "usb:v*p*d*dc" . $class . "dsc" . $subclass . "dp" . $protocol . "*\n"); + print(OUT " ID_USB_PROTOCOL_FROM_DATABASE=" . $text . "\n"); + } + } + + close(IN); + close(OUT); +} + +sub pci_vendor { + my $vendor; + my $device; + + open(IN, "<", "pci.ids"); + open(OUT, ">", "20-pci-vendor-model.hwdb"); + print(OUT "# This file is part of systemd.\n" . + "#\n" . + "# Data imported from: http://pci-ids.ucw.cz/v2.2/pci.ids\n"); + + while (my $line = ) { + $line =~ s/\s+$//; + $line =~ m/^([0-9a-f]{4})\s*(.+)$/; + + if (defined $1) { + $vendor = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v0000" . $vendor . "*\n"); + print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n"); + next; + } + + $line =~ m/^\t([0-9a-f]{4})\s*(.+)$/; + if (defined $1) { + $device = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v0000" . $vendor . "d0000" . $device . "*\n"); + print(OUT " ID_MODEL_FROM_DATABASE=" . $text . "\n"); + next; + } + + $line =~ m/^\t\t([0-9a-f]{4})\s*([0-9a-f]{4})\s*(.*)$/; + if (defined $1) { + my $sub_vendor = uc $1; + my $sub_device = uc $2; + my $text = $3; + print(OUT "\n"); + print(OUT "pci:v0000" . $vendor . "d0000" . $device . "sv0000" . $sub_vendor . "sd0000" . $sub_device . "*\n"); + print(OUT " ID_MODEL_FROM_DATABASE=" . $text . "\n"); + } + } + + close(IN); + close(OUT); +} + +sub pci_classes { + my $class; + my $subclass; + my $interface; + + open(IN, "<", "pci.ids"); + open(OUT, ">", "20-pci-classes.hwdb"); + print(OUT "# This file is part of systemd.\n" . + "#\n" . + "# Data imported from: http://pci-ids.ucw.cz/v2.2/pci.ids\n"); + + while (my $line = ) { + $line =~ s/\s+$//; + + $line =~ m/^C\ ([0-9a-f]{2})\s*(.+)$/; + if (defined $1) { + $class = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v*d*sv*sd*bc" . $class . "*\n"); + print(OUT " ID_PCI_CLASS_FROM_DATABASE=" . $text . "\n"); + next; + } + + if (not defined $class) { + next; + } elsif ($line =~ m/^$/) { + last; + } + + $line =~ m/^\t([0-9a-f]{2})\s*(.+)$/; + if (defined $1) { + $subclass = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "*\n"); + print(OUT " ID_PCI_SUBCLASS_FROM_DATABASE=" . $text . "\n"); + next; + } + + $line =~ m/^\t\t([0-9a-f]{2})\s*(.+)$/; + if (defined $1) { + $interface = uc $1; + my $text = $2; + print(OUT "\n"); + print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "i" . $interface . "*\n"); + print(OUT " ID_PCI_INTERFACE_FROM_DATABASE=" . $text . "\n"); + } + } + + close(IN); + close(OUT); +} + +sub oui { + my $iab_prefix; + my %iab_prefixes = (); + + open(OUT, ">", "20-OUI.hwdb"); + print(OUT "# This file is part of systemd.\n" . + "#\n" . + "# Data imported from:\n" . + "# http://standards.ieee.org/develop/regauth/oui/oui.txt\n" . + "# http://standards.ieee.org/develop/regauth/iab/iab.txt\n"); + + open(IN, "<", "iab.txt"); + while (my $line = ) { + $line =~ s/^ +//; + $line =~ s/\s+$//; + $line =~ m/^([0-9A-F]{2})-([0-9A-F]{2})-([0-9A-F]{2})\s*\(hex\)\s*.+$/; + if (defined $1) { + $iab_prefix = $1 . $2 . $3; + $iab_prefixes{ $iab_prefix } = 1; + next; + } + + $line =~ m/^([0-9A-F]{3})000-\g1FFF\s*\(base 16\)\s*(.+)$/; + if (defined $1) { + my $vendor = uc $1; + my $text = $2; + + print(OUT "\n"); + print(OUT "OUI:" . $iab_prefix . $vendor . "*\n"); + print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n"); + } + } + close(IN); + + open(IN, "<", "oui.txt"); + while (my $line = ) { + $line =~ s/^ +//; + $line =~ s/\s+$//; + $line =~ m/^([0-9A-F]{6})\s*\(base 16\)\s*(.+)$/; + if (defined $1) { + my $vendor = uc $1; + my $text = $2; + + # skip the IAB prefixes + if (! exists $iab_prefixes{ $vendor }) { + print(OUT "\n"); + print(OUT "OUI:" . $vendor . "*\n"); + print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n"); + } + } + } + close(IN); + close(OUT); +} + +usb_vendor(); +usb_classes(); + +pci_vendor(); +pci_classes(); + +oui(); --- /dev/null +++ systemd-204/make-man-rules.py @@ -0,0 +1,101 @@ +# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */ +# +# This file is part of systemd. +# +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# +# 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. +# +# 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see . + +from __future__ import print_function +import collections +import sys +from xml_helper import * + +SECTION = '''\ +MANPAGES += \\ + {manpages} +MANPAGES_ALIAS += \\ + {aliases} +{rules} +{htmlrules} +''' + +CONDITIONAL = '''\ +if {conditional} +''' \ ++ SECTION + \ +'''\ +endif +''' + +HEADER = '''\ +# Do not edit. Generated by make-man-rules.py. +# Regenerate with 'make all update-man-list'. + +''' + +HTML_ALIAS_RULE = '''\ +{}.html: {}.html + $(html-alias) +''' + +def man(page, number): + return 'man/{}.{}'.format(page, number) + +def add_rules(rules, name): + xml = xml_parse(name) + # print('parsing {}'.format(name), file=sys.stderr) + conditional = xml.getroot().get('conditional') or '' + rulegroup = rules[conditional] + refmeta = xml.find('./refmeta') + title = refmeta.find('./refentrytitle').text + number = refmeta.find('./manvolnum').text + refnames = xml.findall('./refnamediv/refname') + target = man(refnames[0].text, number) + if title != refnames[0].text: + raise ValueError('refmeta and refnamediv disagree: ' + name) + for refname in refnames: + assert all(refname not in group + for group in rules.values()), "duplicate page name" + alias = man(refname.text, number) + rulegroup[alias] = target + # print('{} => {} [{}]'.format(alias, target, conditional), file=sys.stderr) + +def create_rules(*xml_files): + " {conditional => {alias-name => source-name}} " + rules = collections.defaultdict(dict) + for name in xml_files: + add_rules(rules, name) + return rules + +def mjoin(files): + return ' \\\n\t'.join(sorted(files) or '#') + +def make_makefile(rules): + return HEADER + '\n'.join( + (CONDITIONAL if conditional else SECTION).format( + manpages=mjoin(set(rulegroup.values())), + aliases=mjoin(k for k,v in rulegroup.items() if k != v), + rules='\n'.join('{}: {}'.format(k,v) + for k,v in sorted(rulegroup.items()) + if k != v), + htmlrules='\n'.join(HTML_ALIAS_RULE.format(k[:-2],v[:-2]) + for k,v in sorted(rulegroup.items()) + if k != v), + conditional=conditional) + for conditional,rulegroup in sorted(rules.items())) + +if __name__ == '__main__': + rules = create_rules(*sys.argv[1:]) + print(make_makefile(rules), end='') --- systemd-204.orig/man/systemd.mount.xml +++ systemd-204/man/systemd.mount.xml @@ -141,7 +141,7 @@ 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 --- systemd-204.orig/man/systemd.special.xml +++ systemd-204/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 --- systemd-204.orig/man/udevadm.xml +++ systemd-204/man/udevadm.xml @@ -424,13 +424,13 @@ udevadm hwdb <optional>options</optional> - Maintain the hardware database index in /etc/udev/hwdb.bin. + Maintain the hardware database index in /lib/udev/hwdb.bin. - Compile the hardware database information located in /usr/lib/udev/hwdb.d/, - /etc/udev/hwdb.d/ and store it in /etc/udev/hwdb.bin. This should be done after + Compile the hardware database information located in /lib/udev/hwdb.d/, + /etc/udev/hwdb.d/ and store it in /lib/udev/hwdb.bin. This should be done after any update to the source files; it will not be called automatically. The running udev daemon will detect a new database on its own and does not need to be notified about it. --- /dev/null +++ systemd-204/po/pl.po @@ -0,0 +1,391 @@ +# translation of pl.po to Polish +# Piotr Drąg , 2011, 2013. +# Zbigniew Jędrzejewski-Szmek , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: systemd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-01-12 19:29+0100\n" +"PO-Revision-Date: 2013-01-12 19:30+0100\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/hostname/org.freedesktop.hostname1.policy.in.h:1 +msgid "Set host name" +msgstr "Ustawienie nazwy komputera" + +#: ../src/hostname/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/hostname/org.freedesktop.hostname1.policy.in.h:3 +msgid "Set static host name" +msgstr "Ustawienie statycznej nazwy komputera" + +#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:4 +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/hostname/org.freedesktop.hostname1.policy.in.h:5 +msgid "Set machine information" +msgstr "Ustawienie informacji o komputerze" + +#: ../src/hostname/org.freedesktop.hostname1.policy.in.h:6 +msgid "Authentication is required to set local machine information." +msgstr "" +"Wymagane jest uwierzytelnienie, aby ustawić informacje o lokalnym komputerze." + +#: ../src/locale/org.freedesktop.locale1.policy.in.h:1 +msgid "Set system locale" +msgstr "Ustawienie lokalizacji systemu" + +#: ../src/locale/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/locale/org.freedesktop.locale1.policy.in.h:3 +msgid "Set system keyboard settings" +msgstr "Ustawienie klawiatury systemu" + +#: ../src/locale/org.freedesktop.locale1.policy.in.h:4 +msgid "Authentication is required to set the system keyboard settings." +msgstr "Wymagane jest uwierzytelnienie, aby ustawić klawiaturę systemu." + +#: ../src/login/org.freedesktop.login1.policy.in.h:1 +msgid "Allow applications to inhibit system shutdown" +msgstr "Zezwolenie programom na wstrzymywanie wyłączenia systemu" + +#: ../src/login/org.freedesktop.login1.policy.in.h:2 +msgid "" +"Authentication is required to allow an application to inhibit system " +"shutdown." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie " +"wyłączenia systemu." + +#: ../src/login/org.freedesktop.login1.policy.in.h:3 +msgid "Allow applications to delay system shutdown" +msgstr "Zezwolenie programom na opóźnienie wyłączenia systemu" + +#: ../src/login/org.freedesktop.login1.policy.in.h:4 +msgid "" +"Authentication is required to allow an application to delay system shutdown." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić programowi na opóźnienie " +"wyłączenia systemu." + +#: ../src/login/org.freedesktop.login1.policy.in.h:5 +msgid "Allow applications to inhibit system sleep" +msgstr "Zezwolenie programom na wstrzymanie uśpienia systemu" + +#: ../src/login/org.freedesktop.login1.policy.in.h:6 +msgid "" +"Authentication is required to allow an application to inhibit system sleep." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie " +"uśpienia systemu." + +#: ../src/login/org.freedesktop.login1.policy.in.h:7 +msgid "Allow applications to delay system sleep" +msgstr "Zezwolenie programom na opóźnienie uśpienia systemu" + +#: ../src/login/org.freedesktop.login1.policy.in.h:8 +msgid "" +"Authentication is required to allow an application to delay system sleep." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić programowi na opóźnienie " +"uśpienia systemu." + +#: ../src/login/org.freedesktop.login1.policy.in.h:9 +msgid "Allow applications to inhibit automatic system suspend" +msgstr "Zezwolenie programom na wstrzymanie automatycznego uśpienia systemu" + +#: ../src/login/org.freedesktop.login1.policy.in.h:10 +msgid "" +"Authentication is required to allow an application to inhibit automatic " +"system suspend." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie " +"automatycznego uśpienia systemu." + +#: ../src/login/org.freedesktop.login1.policy.in.h:11 +msgid "Allow applications to inhibit system handling of the power key" +msgstr "" +"Zezwolenie programom na wstrzymanie obsługi klawisza zasilania przez system" + +#: ../src/login/org.freedesktop.login1.policy.in.h:12 +msgid "" +"Authentication is required to allow an application to inhibit system " +"handling of the power key." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie " +"obsługi klawisza zasilania przez system." + +#: ../src/login/org.freedesktop.login1.policy.in.h:13 +msgid "Allow applications to inhibit system handling of the suspend key" +msgstr "" +"Zezwolenie programom na wstrzymanie obsługi klawisza uśpienia przez system" + +#: ../src/login/org.freedesktop.login1.policy.in.h:14 +msgid "" +"Authentication is required to allow an application to inhibit system " +"handling of the suspend key." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie " +"obsługi klawisza uśpienia przez system." + +#: ../src/login/org.freedesktop.login1.policy.in.h:15 +msgid "Allow applications to inhibit system handling of the hibernate key" +msgstr "" +"Zezwolenie programom na wstrzymanie obsługi klawisza hibernacji przez system" + +#: ../src/login/org.freedesktop.login1.policy.in.h:16 +msgid "" +"Authentication is required to allow an application to inhibit system " +"handling of the hibernate key." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie " +"obsługi klawisza hibernacji przez system." + +#: ../src/login/org.freedesktop.login1.policy.in.h:17 +msgid "Allow applications to inhibit system handling of the lid switch" +msgstr "" +"Zezwolenie programom na wstrzymanie obsługi przełącznika pokrywy przez system" + +#: ../src/login/org.freedesktop.login1.policy.in.h:18 +msgid "" +"Authentication is required to allow an application to inhibit system " +"handling of the lid switch." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić programowi na wstrzymanie " +"obsługi przełącznika pokrywy przez system." + +#: ../src/login/org.freedesktop.login1.policy.in.h:19 +msgid "Allow non-logged-in users to run programs" +msgstr "Zezwolenie niezalogowanym użytkownikom na uruchamianie programów" + +#: ../src/login/org.freedesktop.login1.policy.in.h:20 +msgid "" +"Authentication is required to allow a non-logged-in user to run programs." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zezwolić niezalogowanemu użytkownikowi " +"na uruchamianie programów." + +#: ../src/login/org.freedesktop.login1.policy.in.h:21 +msgid "Allow attaching devices to seats" +msgstr "Zezwolenie na podłączanie urządzeń do stanowisk" + +#: ../src/login/org.freedesktop.login1.policy.in.h:22 +msgid "Authentication is required for attaching a device to a seat." +msgstr "" +"Wymagane jest uwierzytelnienie, aby podłączyć urządzenie do stanowiska." + +#: ../src/login/org.freedesktop.login1.policy.in.h:23 +msgid "Flush device to seat attachments" +msgstr "Usunięcie podłączenia urządzeń do stanowisk" + +#: ../src/login/org.freedesktop.login1.policy.in.h:24 +msgid "" +"Authentication is required for resetting how devices are attached to seats." +msgstr "" +"Wymagane jest uwierzytelnienie, aby ponownie ustawić sposób podłączenia " +"urządzeń do stanowisk." + +#: ../src/login/org.freedesktop.login1.policy.in.h:25 +msgid "Power off the system" +msgstr "Wyłączenie systemu" + +#: ../src/login/org.freedesktop.login1.policy.in.h:26 +msgid "Authentication is required for powering off the system." +msgstr "Wymagane jest uwierzytelnienie, aby wyłączyć system." + +#: ../src/login/org.freedesktop.login1.policy.in.h:27 +msgid "Power off the system while other users are logged in" +msgstr "Wyłączenie systemu, kiedy są zalogowani inni użytkownicy" + +#: ../src/login/org.freedesktop.login1.policy.in.h:28 +msgid "" +"Authentication is required for powering off the system while other users are " +"logged in." +msgstr "" +"Wymagane jest uwierzytelnienie, aby wyłączyć system, kiedy są zalogowani " +"inni użytkownicy." + +#: ../src/login/org.freedesktop.login1.policy.in.h:29 +msgid "Power off the system while an application asked to inhibit it" +msgstr "Wyłączenie systemu, kiedy program zażądał jego wstrzymania" + +#: ../src/login/org.freedesktop.login1.policy.in.h:30 +msgid "" +"Authentication is required for powering off the system while an application " +"asked to inhibit it." +msgstr "" +"Wymagane jest uwierzytelnienie, aby wyłączyć system, kiedy program zażądał " +"jego wstrzymania." + +#: ../src/login/org.freedesktop.login1.policy.in.h:31 +msgid "Reboot the system" +msgstr "Ponowne uruchomienie systemu" + +#: ../src/login/org.freedesktop.login1.policy.in.h:32 +msgid "Authentication is required for rebooting the system." +msgstr "Wymagane jest uwierzytelnienie, aby ponownie uruchomić system." + +#: ../src/login/org.freedesktop.login1.policy.in.h:33 +msgid "Reboot the system while other users are logged in" +msgstr "Ponowne uruchomienie systemu, kiedy są zalogowani inni użytkownicy" + +#: ../src/login/org.freedesktop.login1.policy.in.h:34 +msgid "" +"Authentication is required for rebooting the system while other users are " +"logged in." +msgstr "" +"Wymagane jest uwierzytelnienie, aby ponownie uruchomić system, kiedy są " +"zalogowani inni użytkownicy." + +#: ../src/login/org.freedesktop.login1.policy.in.h:35 +msgid "Reboot the system while an application asked to inhibit it" +msgstr "" +"Ponowne uruchomienie systemu, kiedy program poprosił o jego wstrzymanie" + +#: ../src/login/org.freedesktop.login1.policy.in.h:36 +msgid "" +"Authentication is required for rebooting the system while an application " +"asked to inhibit it." +msgstr "" +"Wymagane jest uwierzytelnienie, aby ponownie uruchomić system, kiedy program " +"zażądał jego wstrzymania." + +#: ../src/login/org.freedesktop.login1.policy.in.h:37 +msgid "Suspend the system" +msgstr "Uśpienie systemu" + +#: ../src/login/org.freedesktop.login1.policy.in.h:38 +msgid "Authentication is required for suspending the system." +msgstr "Wymagane jest uwierzytelnienie, aby uśpić system." + +#: ../src/login/org.freedesktop.login1.policy.in.h:39 +msgid "Suspend the system while other users are logged in" +msgstr "Uśpienie systemu, kiedy są zalogowani inni użytkownicy" + +#: ../src/login/org.freedesktop.login1.policy.in.h:40 +msgid "" +"Authentication is required for suspending the system while other users are " +"logged in." +msgstr "" +"Wymagane jest uwierzytelnienie, aby uśpić system, kiedy są zalogowani inni " +"użytkownicy." + +#: ../src/login/org.freedesktop.login1.policy.in.h:41 +msgid "Suspend the system while an application asked to inhibit it" +msgstr "Uśpienie systemu, kiedy program poprosił o jego wstrzymanie" + +#: ../src/login/org.freedesktop.login1.policy.in.h:42 +msgid "" +"Authentication is required for suspending the system while an application " +"asked to inhibit it." +msgstr "" +"Wymagane jest uwierzytelnienie, aby uśpić system, kiedy program zażądał jego " +"wstrzymania." + +#: ../src/login/org.freedesktop.login1.policy.in.h:43 +msgid "Hibernate the system" +msgstr "Hibernacja systemu" + +#: ../src/login/org.freedesktop.login1.policy.in.h:44 +msgid "Authentication is required for hibernating the system." +msgstr "Wymagane jest uwierzytelnienie, aby zahibernować system." + +#: ../src/login/org.freedesktop.login1.policy.in.h:45 +msgid "Hibernate the system while other users are logged in" +msgstr "Hibernacja systemu, kiedy są zalogowani inni użytkownicy" + +#: ../src/login/org.freedesktop.login1.policy.in.h:46 +msgid "" +"Authentication is required for hibernating the system while other users are " +"logged in." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zahibernować system, kiedy są zalogowani " +"inni użytkownicy." + +#: ../src/login/org.freedesktop.login1.policy.in.h:47 +msgid "Hibernate the system while an application asked to inhibit it" +msgstr "Hibernacja systemu, kiedy program zażądał jej wstrzymania" + +#: ../src/login/org.freedesktop.login1.policy.in.h:48 +msgid "" +"Authentication is required for hibernating the system while an application " +"asked to inhibit it." +msgstr "" +"Wymagane jest uwierzytelnienie, aby zahibernować system, kiedy program " +"zażądał jej wstrzymania." + +#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:1 +msgid "Set system time" +msgstr "Ustawienie czasu systemu" + +#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:2 +msgid "Authentication is required to set the system time." +msgstr "Wymagane jest uwierzytelnienie, aby ustawić czas systemu." + +#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:3 +msgid "Set system timezone" +msgstr "Ustawienie strefy czasowej systemu" + +#: ../src/timedate/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/timedate/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/timedate/org.freedesktop.timedate1.policy.in.h:6 +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/timedate/org.freedesktop.timedate1.policy.in.h:7 +msgid "Turn network time synchronization on or off" +msgstr "Włączenie lub wyłączenie synchronizacji czasu przez sieć" + +#: ../src/timedate/org.freedesktop.timedate1.policy.in.h:8 +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/core/org.freedesktop.systemd1.policy.in.in.h:1 +msgid "Send passphrase back to system" +msgstr "Wysłanie hasła z powrotem do systemu" + +#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:2 +msgid "" +"Authentication is required to send the entered passphrase back to the system." +msgstr "" +"Wymagane jest uwierzytelnienie, aby wysłać podane hasło z powrotem do " +"systemu." + +#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:3 +msgid "Privileged system and service manager access" +msgstr "Uprawniony dostęp do menedżera systemu i usług" + +#: ../src/core/org.freedesktop.systemd1.policy.in.in.h:4 +msgid "Authentication is required to access the system and service manager." +msgstr "" +"Wymagane jest uwierzytelnienie, aby uzyskać dostęp do menedżera systemu i " +"usług." --- systemd-204.orig/rules/80-net-name-slot.rules +++ systemd-204/rules/80-net-name-slot.rules @@ -5,7 +5,7 @@ SUBSYSTEM!="net", GOTO="net_name_slot_en NAME!="", GOTO="net_name_slot_end" IMPORT{cmdline}="net.ifnames" -ENV{net.ifnames}=="0", GOTO="net_name_slot_end" +ENV{net.ifnames}!="1", GOTO="net_name_slot_end" NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}" NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}" --- systemd-204.orig/rules/99-systemd.rules.in +++ systemd-204/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" --- /dev/null +++ systemd-204/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 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. +# +# 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser 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-204.orig/src/core/locale-setup.c +++ systemd-204/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]) { --- systemd-204.orig/src/core/manager.c +++ systemd-204/src/core/manager.c @@ -874,6 +874,8 @@ int manager_startup(Manager *m, FILE *se 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); @@ -885,6 +887,44 @@ 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; --- systemd-204.orig/src/core/service.c +++ systemd-204/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] = { @@ -324,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")) @@ -348,12 +353,16 @@ static int sysv_translate_facility(const 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_TARGET, + "portmap", SPECIAL_RPCBIND_SERVICE, "remote_fs", SPECIAL_REMOTE_FS_TARGET, - "syslog", NULL, + "syslog", SPECIAL_SYSLOG_TARGET, "time", SPECIAL_TIME_SYNC_TARGET, }; @@ -374,9 +383,8 @@ static int sysv_translate_facility(const 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; } @@ -905,6 +913,13 @@ static int service_load_sysv_path(Servic 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 @@ -3530,7 +3545,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); @@ -3547,7 +3562,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); --- systemd-204.orig/src/core/special.h +++ systemd-204/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" @@ -61,7 +61,8 @@ /* 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 */ #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ /* --- systemd-204.orig/src/cryptsetup/cryptsetup.c +++ systemd-204/src/cryptsetup/cryptsetup.c @@ -117,7 +117,7 @@ static int parse_one_option(const char * opt_readonly = true; else if (streq(option, "verify")) opt_verify = true; - else if (streq(option, "allow-discards")) + else if (streq(option, "allow-discards") || streq(option, "discard")) opt_discards = true; else if (streq(option, "luks")) opt_type = CRYPT_LUKS1; --- systemd-204.orig/src/fstab-generator/fstab-generator.c +++ systemd-204/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(); --- systemd-204.orig/src/hostname/org.freedesktop.hostname1.service +++ systemd-204/src/hostname/org.freedesktop.hostname1.service @@ -7,6 +7,6 @@ [D-BUS Service] Name=org.freedesktop.hostname1 -Exec=/bin/false +Exec=/lib/systemd/systemd-hostnamed User=root SystemdService=dbus-org.freedesktop.hostname1.service --- systemd-204.orig/src/libudev/libudev-hwdb.c +++ systemd-204/src/libudev/libudev-hwdb.c @@ -271,30 +271,30 @@ _public_ struct udev_hwdb *udev_hwdb_new hwdb->refcount = 1; udev_list_init(udev, &hwdb->properties_list, true); - hwdb->f = fopen("/etc/udev/hwdb.bin", "re"); + hwdb->f = fopen(UDEVLIBEXECDIR "/hwdb.bin", "re"); if (!hwdb->f) { - log_debug("error reading /etc/udev/hwdb.bin: %m"); + log_debug("error reading " UDEVLIBEXECDIR "/hwdb.bin: %m"); udev_hwdb_unref(hwdb); return NULL; } if (fstat(fileno(hwdb->f), &hwdb->st) < 0 || (size_t)hwdb->st.st_size < offsetof(struct trie_header_f, strings_len) + 8) { - log_debug("error reading /etc/udev/hwdb.bin: %m"); + log_debug("error reading " UDEVLIBEXECDIR "/hwdb.bin: %m"); udev_hwdb_unref(hwdb); return NULL; } hwdb->map = mmap(0, hwdb->st.st_size, PROT_READ, MAP_SHARED, fileno(hwdb->f), 0); if (hwdb->map == MAP_FAILED) { - log_debug("error mapping /etc/udev/hwdb.bin: %m"); + log_debug("error mapping " UDEVLIBEXECDIR "/hwdb.bin: %m"); udev_hwdb_unref(hwdb); return NULL; } if (memcmp(hwdb->map, sig, sizeof(hwdb->head->signature)) != 0 || (size_t)hwdb->st.st_size != le64toh(hwdb->head->file_size)) { - log_debug("error recognizing the format of /etc/udev/hwdb.bin"); + log_debug("error recognizing the format of " UDEVLIBEXECDIR "/hwdb.bin"); udev_hwdb_unref(hwdb); return NULL; } --- /dev/null +++ systemd-204/src/locale/generate-kbd-model-map @@ -0,0 +1,31 @@ +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-204.orig/src/locale/localed.c +++ systemd-204/src/locale/localed.c @@ -202,6 +202,24 @@ static int read_data_locale(void) { "LC_IDENTIFICATION", &data[PROP_LC_IDENTIFICATION], NULL); + if (r == -ENOENT) + r = parse_env_file("/etc/default/locale", NEWLINE, + "LANG", &data[PROP_LANG], + "LANGUAGE", &data[PROP_LANGUAGE], + "LC_CTYPE", &data[PROP_LC_CTYPE], + "LC_NUMERIC", &data[PROP_LC_NUMERIC], + "LC_TIME", &data[PROP_LC_TIME], + "LC_COLLATE", &data[PROP_LC_COLLATE], + "LC_MONETARY", &data[PROP_LC_MONETARY], + "LC_MESSAGES", &data[PROP_LC_MESSAGES], + "LC_PAPER", &data[PROP_LC_PAPER], + "LC_NAME", &data[PROP_LC_NAME], + "LC_ADDRESS", &data[PROP_LC_ADDRESS], + "LC_TELEPHONE", &data[PROP_LC_TELEPHONE], + "LC_MEASUREMENT", &data[PROP_LC_MEASUREMENT], + "LC_IDENTIFICATION", &data[PROP_LC_IDENTIFICATION], + NULL); + if (r == -ENOENT) { int p; @@ -254,77 +272,18 @@ static int read_data_vconsole(void) { } static int read_data_x11(void) { - FILE *f; - char line[LINE_MAX]; - bool in_section = false; + int r; free_data_x11(); - f = fopen("/etc/X11/xorg.conf.d/00-keyboard.conf", "re"); - if (!f) - return errno == ENOENT ? 0 : -errno; - - while (fgets(line, sizeof(line), f)) { - char *l; - - char_array_0(line); - l = strstrip(line); - - if (l[0] == 0 || l[0] == '#') - continue; - - if (in_section && first_word(l, "Option")) { - char **a; - - a = strv_split_quoted(l); - if (!a) { - fclose(f); - return -ENOMEM; - } - - if (strv_length(a) == 3) { - - if (streq(a[1], "XkbLayout")) { - free(state.x11_layout); - state.x11_layout = a[2]; - a[2] = NULL; - } else if (streq(a[1], "XkbModel")) { - free(state.x11_model); - state.x11_model = a[2]; - a[2] = NULL; - } else if (streq(a[1], "XkbVariant")) { - free(state.x11_variant); - state.x11_variant = a[2]; - a[2] = NULL; - } else if (streq(a[1], "XkbOptions")) { - free(state.x11_options); - state.x11_options = a[2]; - a[2] = NULL; - } - } - - strv_free(a); - - } else if (!in_section && first_word(l, "Section")) { - char **a; - - a = strv_split_quoted(l); - if (!a) { - fclose(f); - return -ENOMEM; - } - - if (strv_length(a) == 2 && streq(a[1], "InputClass")) - in_section = true; - - strv_free(a); - } else if (in_section && first_word(l, "EndSection")) - in_section = false; - } - - fclose(f); + r = parse_env_file("/etc/default/keyboard", NEWLINE, + "XKBMODEL", &state.x11_model, + "XKBLAYOUT", &state.x11_layout, + "XKBVARIANT", &state.x11_variant, + "XKBOPTIONS", &state.x11_options, + NULL); - return 0; + return r; } static int read_data(void) { @@ -340,8 +299,13 @@ static int read_data(void) { static int write_data_locale(void) { int r, p; char **l = NULL; + const char *path = "/etc/locale.conf"; - r = load_env_file("/etc/locale.conf", NULL, &l); + r = load_env_file(path, NULL, &l); + if (r < 0 && r == -ENOENT) { + path = "/etc/default/locale"; + r = load_env_file(path, NULL, &l); + } if (r < 0 && r != -ENOENT) return r; @@ -373,13 +337,13 @@ static int write_data_locale(void) { if (strv_isempty(l)) { strv_free(l); - if (unlink("/etc/locale.conf") < 0) + if (unlink(path) < 0) return errno == ENOENT ? 0 : -errno; return 0; } - r = write_env_file_label("/etc/locale.conf", l); + r = write_env_file_label(path, l); strv_free(l); return r; @@ -542,59 +506,100 @@ static int write_data_vconsole(void) { } static int write_data_x11(void) { - FILE *f; - char *temp_path; int r; - if (isempty(state.x11_layout) && - isempty(state.x11_model) && - isempty(state.x11_variant) && - isempty(state.x11_options)) { + char *t, **u, **l = NULL; - if (unlink("/etc/X11/xorg.conf.d/00-keyboard.conf") < 0) - return errno == ENOENT ? 0 : -errno; + r = load_env_file("/etc/default/keyboard", NULL, &l); + if (r < 0 && r != -ENOENT) + return r; - return 0; + /* This could perhaps be done more elegantly using an array + * like we do for the locale, instead of struct + */ + if (isempty(state.x11_layout)) { + l = strv_env_unset(l, "XKBLAYOUT"); + } else { + if (asprintf(&t, "XKBLAYOUT=%s", state.x11_layout) < 0) { + strv_free(l); + return -ENOMEM; + } + + u = strv_env_set(l, t); + free(t); + strv_free(l); + + if (!u) + return -ENOMEM; + + l = u; } - mkdir_p_label("/etc/X11/xorg.conf.d", 0755); + if (isempty(state.x11_model)) { + l = strv_env_unset(l, "XKBMODEL"); + } else { + if (asprintf(&t, "XKBMODEL=%s", state.x11_model) < 0) { + strv_free(l); + return -ENOMEM; + } - r = fopen_temporary("/etc/X11/xorg.conf.d/00-keyboard.conf", &f, &temp_path); - if (r < 0) - return r; + u = strv_env_set(l, t); + free(t); + strv_free(l); - fchmod(fileno(f), 0644); + if (!u) + return -ENOMEM; - fputs("# Read and parsed by systemd-localed. It's probably wise not to edit this file\n" - "# manually too freely.\n" - "Section \"InputClass\"\n" - " Identifier \"system-keyboard\"\n" - " MatchIsKeyboard \"on\"\n", f); - - if (!isempty(state.x11_layout)) - fprintf(f, " Option \"XkbLayout\" \"%s\"\n", state.x11_layout); - - if (!isempty(state.x11_model)) - fprintf(f, " Option \"XkbModel\" \"%s\"\n", state.x11_model); - - if (!isempty(state.x11_variant)) - fprintf(f, " Option \"XkbVariant\" \"%s\"\n", state.x11_variant); - - if (!isempty(state.x11_options)) - fprintf(f, " Option \"XkbOptions\" \"%s\"\n", state.x11_options); - - fputs("EndSection\n", f); - fflush(f); - - if (ferror(f) || rename(temp_path, "/etc/X11/xorg.conf.d/00-keyboard.conf") < 0) { - r = -errno; - unlink("/etc/X11/xorg.conf.d/00-keyboard.conf"); - unlink(temp_path); - } else - r = 0; + l = u; + } + + if (isempty(state.x11_variant)) { + l = strv_env_unset(l, "XKBVARIANT"); + } else { + if (asprintf(&t, "XKBVARIANT=%s", state.x11_variant) < 0) { + strv_free(l); + return -ENOMEM; + } + + u = strv_env_set(l, t); + free(t); + strv_free(l); + + if (!u) + return -ENOMEM; + + l = u; + } + + if (isempty(state.x11_options)) { + l = strv_env_unset(l, "XKBOPTIONS"); + } else { + if (asprintf(&t, "XKBOPTIONS=%s", state.x11_options) < 0) { + strv_free(l); + return -ENOMEM; + } + + u = strv_env_set(l, t); + free(t); + strv_free(l); + + if (!u) + return -ENOMEM; + + l = u; + } + + if (strv_isempty(l)) { + strv_free(l); - fclose(f); - free(temp_path); + if (unlink("/etc/default/keyboard") < 0) + return errno == ENOENT ? 0 : -errno; + + return 0; + } + + r = write_env_file("/etc/default/keyboard", l); + strv_free(l); return r; } --- systemd-204.orig/src/locale/org.freedesktop.locale1.service +++ systemd-204/src/locale/org.freedesktop.locale1.service @@ -7,6 +7,6 @@ [D-BUS Service] Name=org.freedesktop.locale1 -Exec=/bin/false +Exec=/lib/systemd/systemd-localed User=root SystemdService=dbus-org.freedesktop.locale1.service --- systemd-204.orig/src/login/logind-session.c +++ systemd-204/src/login/logind-session.c @@ -642,7 +642,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-204.orig/src/login/logind.c +++ systemd-204/src/login/logind.c @@ -1371,9 +1371,17 @@ void manager_gc(Manager *m, bool drop_no Seat *seat; Session *session; User *user; + Iterator i; assert(m); + /* clean up empty sessions when not running under systemd */ + if (!sd_booted()) { + HASHMAP_FOREACH(session, m->session_cgroups, i) + if (session_get_state(session) == SESSION_CLOSING) + session_add_to_gc_queue(session); + } + while ((seat = m->seat_gc_queue)) { LIST_REMOVE(Seat, gc_queue, m->seat_gc_queue, seat); seat->in_gc_queue = false; --- systemd-204.orig/src/login/org.freedesktop.login1.service +++ systemd-204/src/login/org.freedesktop.login1.service @@ -7,6 +7,6 @@ [D-BUS Service] Name=org.freedesktop.login1 -Exec=/bin/false +Exec=/lib/systemd/systemd-logind-launch User=root SystemdService=dbus-org.freedesktop.login1.service --- systemd-204.orig/src/login/pam-module.c +++ systemd-204/src/login/pam-module.c @@ -336,10 +336,6 @@ _public_ PAM_EXTERN int pam_sm_open_sess /* pam_syslog(handle, LOG_INFO, "pam-systemd initializing"); */ - /* Make this a NOP on non-logind systems */ - if (!logind_running()) - return PAM_SUCCESS; - if (parse_argv(handle, argc, argv, &controllers, &reset_controllers, @@ -400,7 +396,8 @@ _public_ PAM_EXTERN int pam_sm_open_sess bus = dbus_bus_get_private(DBUS_BUS_SYSTEM, &error); if (!bus) { - pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", bus_error_message(&error)); + if (debug) + pam_syslog(handle, LOG_ERR, "Failed to connect to system bus: %s", bus_error_message(&error)); r = PAM_SESSION_ERR; goto finish; } --- /dev/null +++ systemd-204/src/python-systemd/docs/conf.py @@ -0,0 +1,279 @@ +# -*- coding: utf-8 -*- +# +# python-systemd documentation build configuration file, created by +# sphinx-quickstart on Sat Feb 9 13:49:42 2013. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.coverage', 'sphinx.ext.viewcode'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['.'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'python-systemd' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['.'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +html_show_sourcelink = False + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'python-systemddoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'python-systemd.tex', u'python-systemd Documentation', + None, 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'python-systemd', u'python-systemd Documentation', + [], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------------ + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ('index', 'python-systemd', u'python-systemd Documentation', + u'David Strauss, Zbigniew Jędrzejewski-Szmek, Marti Raudsepp, Steven Hiscocks', 'python-systemd', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + + +# -- Options for Epub output --------------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = u'python-systemd' +epub_author = u'David Strauss, Zbigniew Jędrzejewski-Szmek, Marti Raudsepp, Steven Hiscocks' +epub_publisher = u'David Strauss, Zbigniew Jędrzejewski-Szmek, Marti Raudsepp, Steven Hiscocks' +epub_copyright = u'2013, David Strauss, Zbigniew Jędrzejewski-Szmek, Marti Raudsepp, Steven Hiscocks' + +# The language of the text. It defaults to the language option +# or en if the language is not set. +#epub_language = '' + +# The scheme of the identifier. Typical schemes are ISBN or URL. +#epub_scheme = '' + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +#epub_identifier = '' + +# A unique identification for the text. +#epub_uid = '' + +# A tuple containing the cover image and cover page html template filenames. +#epub_cover = () + +# HTML files that should be inserted before the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_pre_files = [] + +# HTML files shat should be inserted after the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_post_files = [] + +# A list of files that should not be packed into the epub file. +#epub_exclude_files = [] + +# The depth of the table of contents in toc.ncx. +#epub_tocdepth = 3 + +# Allow duplicate toc entries. +#epub_tocdup = True + + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'http://docs.python.org/': None} --- /dev/null +++ systemd-204/src/python-systemd/docs/daemon.rst @@ -0,0 +1,16 @@ +`systemd.daemon` module +======================= + +.. automodule:: systemd.daemon + :members: + :undoc-members: + :inherited-members: + + .. autoattribute:: systemd.daemon.LISTEN_FDS_START + + .. autofunction:: _listen_fds + .. autofunction:: _is_fifo + .. autofunction:: _is_socket + .. autofunction:: _is_socket_unix + .. autofunction:: _is_socket_inet + .. autofunction:: _is_mq --- /dev/null +++ systemd-204/src/python-systemd/docs/default.css @@ -0,0 +1,196 @@ +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { + background-color: #dddddd; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; +} + +div.sphinxsidebar input { + border: 1px solid #000000; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} --- /dev/null +++ systemd-204/src/python-systemd/docs/id128.rst @@ -0,0 +1,40 @@ +`systemd.id128` module +====================== + +.. automodule:: systemd.id128 + :members: + :undoc-members: + :inherited-members: + + .. autoattribute:: systemd.id128.SD_MESSAGE_COREDUMP + .. autoattribute:: systemd.id128.SD_MESSAGE_FORWARD_SYSLOG_MISSED + .. autoattribute:: systemd.id128.SD_MESSAGE_HIBERNATE_KEY + .. autoattribute:: systemd.id128.SD_MESSAGE_JOURNAL_DROPPED + .. autoattribute:: systemd.id128.SD_MESSAGE_JOURNAL_MISSED + .. autoattribute:: systemd.id128.SD_MESSAGE_JOURNAL_START + .. autoattribute:: systemd.id128.SD_MESSAGE_JOURNAL_STOP + .. autoattribute:: systemd.id128.SD_MESSAGE_LID_CLOSED + .. autoattribute:: systemd.id128.SD_MESSAGE_LID_OPENED + .. autoattribute:: systemd.id128.SD_MESSAGE_OVERMOUNTING + .. autoattribute:: systemd.id128.SD_MESSAGE_POWER_KEY + .. autoattribute:: systemd.id128.SD_MESSAGE_SEAT_START + .. autoattribute:: systemd.id128.SD_MESSAGE_SEAT_STOP + .. autoattribute:: systemd.id128.SD_MESSAGE_SESSION_START + .. autoattribute:: systemd.id128.SD_MESSAGE_SESSION_STOP + .. autoattribute:: systemd.id128.SD_MESSAGE_SHUTDOWN + .. autoattribute:: systemd.id128.SD_MESSAGE_SLEEP_START + .. autoattribute:: systemd.id128.SD_MESSAGE_SLEEP_STOP + .. autoattribute:: systemd.id128.SD_MESSAGE_SPAWN_FAILED + .. autoattribute:: systemd.id128.SD_MESSAGE_STARTUP_FINISHED + .. autoattribute:: systemd.id128.SD_MESSAGE_SUSPEND_KEY + .. autoattribute:: systemd.id128.SD_MESSAGE_TIMEZONE_CHANGE + .. autoattribute:: systemd.id128.SD_MESSAGE_TIME_CHANGE + .. autoattribute:: systemd.id128.SD_MESSAGE_UNIT_FAILED + .. autoattribute:: systemd.id128.SD_MESSAGE_UNIT_RELOADED + .. autoattribute:: systemd.id128.SD_MESSAGE_UNIT_RELOADING + .. autoattribute:: systemd.id128.SD_MESSAGE_UNIT_STARTED + .. autoattribute:: systemd.id128.SD_MESSAGE_UNIT_STARTING + .. autoattribute:: systemd.id128.SD_MESSAGE_UNIT_STOPPED + .. autoattribute:: systemd.id128.SD_MESSAGE_UNIT_STOPPING + .. autoattribute:: systemd.id128.SD_MESSAGE_CONFIG_ERROR + .. autoattribute:: systemd.id128.SD_MESSAGE_BOOTCHART --- /dev/null +++ systemd-204/src/python-systemd/docs/index.rst @@ -0,0 +1,24 @@ +.. python-systemd documentation master file, created by + sphinx-quickstart on Sat Feb 9 13:49:42 2013. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to python-systemd's documentation! +========================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + journal + id128 + daemon + login + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` --- /dev/null +++ systemd-204/src/python-systemd/docs/journal.rst @@ -0,0 +1,63 @@ +`systemd.journal` module +======================== + +.. automodule:: systemd.journal + :members: send, sendv, stream, stream_fd + :undoc-members: + +`JournalHandler` class +---------------------- + +.. autoclass:: JournalHandler + +Accessing the Journal +--------------------- + +.. autoclass:: _Reader + :undoc-members: + :inherited-members: + +.. autoclass:: Reader + :undoc-members: + :inherited-members: + + .. automethod:: __init__ + +.. autofunction:: _get_catalog +.. autofunction:: get_catalog + +.. autoclass:: Monotonic + +.. autoattribute:: systemd.journal.DEFAULT_CONVERTERS + +Example: polling for journal events +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This example shows that journal events can be waited for (using +e.g. `poll`). This makes it easy to integrate Reader in an external +event loop: + + >>> import select + >>> from systemd import journal + >>> j = journal.Reader() + >>> j.seek_tail() + >>> p = select.poll() + >>> p.register(j, select.POLLIN) + >>> p.poll() + [(3, 1)] + >>> j.get_next() + + +Journal access types +~~~~~~~~~~~~~~~~~~~~ + +.. autoattribute:: systemd.journal.LOCAL_ONLY +.. autoattribute:: systemd.journal.RUNTIME_ONLY +.. autoattribute:: systemd.journal.SYSTEM_ONLY + +Journal event types +~~~~~~~~~~~~~~~~~~~ + +.. autoattribute:: systemd.journal.NOP +.. autoattribute:: systemd.journal.APPEND +.. autoattribute:: systemd.journal.INVALIDATE --- /dev/null +++ systemd-204/src/python-systemd/docs/layout.html @@ -0,0 +1,17 @@ +{% extends "!layout.html" %} + +{% block relbar1 %} + Index · + Directives · + Python · + libudev · + gudev + systemd {{release}} +
+{% endblock %} + +{# remove the lower relbar #} +{% block relbar2 %} {% endblock %} + +{# remove the footer #} +{% block footer %} {% endblock %} --- /dev/null +++ systemd-204/src/python-systemd/docs/login.rst @@ -0,0 +1,5 @@ +`systemd.login` module +======================= + +.. automodule:: systemd.login + :members: --- systemd-204.orig/src/systemctl/systemctl.c +++ systemd-204/src/systemctl/systemctl.c @@ -4008,7 +4008,6 @@ static int set_environment(DBusConnectio static int enable_sysv_units(char **args) { int r = 0; -#if defined(HAVE_SYSV_COMPAT) && defined(HAVE_CHKCONFIG) const char *verb = args[0]; unsigned f = 1, t = 1; LookupPaths paths = {}; @@ -4017,8 +4016,9 @@ static int enable_sysv_units(char **args return 0; if (!streq(verb, "enable") && - !streq(verb, "disable") && - !streq(verb, "is-enabled")) + !streq(verb, "disable")) + // update-rc.d currently does not provide is-enabled + //!streq(verb, "is-enabled")) return 0; /* Processes all SysV units, and reshuffles the array so that @@ -4034,7 +4034,7 @@ static int enable_sysv_units(char **args _cleanup_free_ char *p = NULL, *q = NULL; bool found_native = false, found_sysv; unsigned c = 1; - const char *argv[6] = { "/sbin/chkconfig", NULL, NULL, NULL, NULL }; + const char *argv[6] = { "/usr/sbin/update-rc.d", NULL, NULL, NULL, NULL }; char **k, *l; int j; pid_t pid; @@ -4042,9 +4042,6 @@ static int enable_sysv_units(char **args name = args[f]; - if (!endswith(name, ".service")) - continue; - if (path_is_absolute(name)) continue; @@ -4067,9 +4064,6 @@ static int enable_sysv_units(char **args break; } - if (found_native) - continue; - if (!isempty(arg_root)) asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/%s", arg_root, name); else @@ -4079,24 +4073,22 @@ static int enable_sysv_units(char **args goto finish; } - p[strlen(p) - sizeof(".service") + 1] = 0; + if (endswith(name, ".service")) + p[strlen(p) - sizeof(".service") + 1] = 0; found_sysv = access(p, F_OK) >= 0; if (!found_sysv) continue; - /* Mark this entry, so that we don't try enabling it as native unit */ - args[f] = (char*) ""; - - log_info("%s is not a native service, redirecting to /sbin/chkconfig.", name); + if (!found_native) { + /* Mark this entry, so that we don't try enabling it as native unit */ + args[f] = (char*) ""; + } - if (!isempty(arg_root)) - argv[c++] = q = strappend("--root=", arg_root); + log_info("Synchronizing state for %s with sysvinit using update-rc.d...", name); argv[c++] = path_get_file_name(p); - argv[c++] = - streq(verb, "enable") ? "on" : - streq(verb, "disable") ? "off" : "--level=5"; + argv[c++] = verb; argv[c] = NULL; l = strv_join((char**)argv, " "); @@ -4162,7 +4154,6 @@ finish: args[t] = NULL; -#endif return r; } --- systemd-204.orig/src/timedate/org.freedesktop.timedate1.service +++ systemd-204/src/timedate/org.freedesktop.timedate1.service @@ -7,6 +7,6 @@ [D-BUS Service] Name=org.freedesktop.timedate1 -Exec=/bin/false +Exec=/lib/systemd/systemd-timedated User=root SystemdService=dbus-org.freedesktop.timedate1.service --- systemd-204.orig/src/timedate/timedated.c +++ systemd-204/src/timedate/timedated.c @@ -183,6 +183,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); @@ -198,10 +204,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; } @@ -213,6 +224,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; } --- /dev/null +++ systemd-204/src/udev/.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-204.orig/src/udev/udev-event.c +++ systemd-204/src/udev/udev-event.c @@ -750,6 +750,7 @@ static int rename_netif(struct udev_even struct udev_device *dev = event->dev; int sk; struct ifreq ifr; + int loop; int err; log_debug("changing net interface name from '%s' to '%s'\n", @@ -766,12 +767,49 @@ static int rename_netif(struct udev_even strscpy(ifr.ifr_name, IFNAMSIZ, udev_device_get_sysname(dev)); strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); err = ioctl(sk, SIOCSIFNAME, &ifr); - if (err >= 0) { + if (err == 0) { print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); - } else { + goto out; + } + + /* keep trying if the destination interface name already exists */ + err = -errno; + if (err != -EEXIST) + goto out; + + /* free our own name, another process may wait for us */ + snprintf(ifr.ifr_newname, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); + err = ioctl(sk, SIOCSIFNAME, &ifr); + if (err < 0) { err = -errno; - log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); + goto out; + } + + /* log temporary name */ + print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); + + /* wait a maximum of 90 seconds for our target to become available */ + strscpy(ifr.ifr_name, IFNAMSIZ, ifr.ifr_newname); + strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); + loop = 90 * 20; + while (loop--) { + const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; + + nanosleep(&duration, NULL); + + err = ioctl(sk, SIOCSIFNAME, &ifr); + if (err == 0) { + print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); + break; + } + err = -errno; + if (err != -EEXIST) + break; } + +out: + if (err < 0) + log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); close(sk); return err; } --- systemd-204.orig/src/udev/udev.conf +++ systemd-204/src/udev/udev.conf @@ -1,3 +1,6 @@ # see udev(7) for details +# +# udevd is started in the initramfs, so when this file is modified the +# initramfs should be rebuilt. #udev_log="info" --- systemd-204.orig/src/udev/udevadm-hwdb.c +++ systemd-204/src/udev/udevadm-hwdb.c @@ -569,7 +569,7 @@ static int adm_hwdb(struct udev *udev, i log_debug("strings dedup'ed: %8zu bytes (%8zu)\n", trie->strings->dedup_len, trie->strings->dedup_count); - if (asprintf(&hwdb_bin, "%s/etc/udev/hwdb.bin", root) < 0) { + if (asprintf(&hwdb_bin, "%s/" UDEVLIBEXECDIR "/hwdb.bin", root) < 0) { rc = EXIT_FAILURE; goto out; } --- /dev/null +++ systemd-204/test/Makefile @@ -0,0 +1,20 @@ +# Just a little hook script to easy building when in this directory +.PHONY: all check clean + +all: + $(MAKE) -C .. + +clean: + @for i in TEST-[0-9]*; do \ + [ -d $$i ] || continue ; \ + [ -f $$i/Makefile ] || continue ; \ + make -C $$i clean ; \ + done + +check: + $(MAKE) -C .. all + @for i in TEST-[0-9]*; do \ + [ -d $$i ] || continue ; \ + [ -f $$i/Makefile ] || continue ; \ + make -C $$i all ; \ + done --- /dev/null +++ systemd-204/test/README.testsuite @@ -0,0 +1,35 @@ +The extended testsuite only works with uid=0. It contains of several +subdirectories named "test/TEST-??-*", which are run one by one. + +To run the extended testsuite do the following: + +$ make all +$ cd test +$ sudo make clean check +... +make[1]: Entering directory `/mnt/data/harald/git/systemd/test/TEST-01-BASIC' +Making all in . +Making all in po +Making all in docs/libudev +Making all in docs/gudev +TEST: Basic systemd setup [OK] +make[1]: Leaving directory `/mnt/data/harald/git/systemd/test/TEST-01-BASIC' +... + +If one of the tests fails, then $subdir/test.log contains the log file of +the test. + +To debug a special testcase of the testsuite do: + +$ make all +$ cd test/TEST-01-BASIC +$ sudo make clean setup run + +If you want to log in the testsuite virtual machine, you can specify +additional kernel command line parameter with $DEBUGFAIL. + +$ sudo make DEBUGFAIL="systemd.unit=multi-user.target" clean setup run + +you can even skip the "clean" and "setup" if you want to run the machine again. + +$ sudo make DEBUGFAIL="systemd.unit=multi-user.target" run --- /dev/null +++ systemd-204/test/TEST-01-BASIC/Makefile @@ -0,0 +1,10 @@ +all: + @make -s --no-print-directory -C ../.. all + @basedir=../.. TEST_BASE_DIR=../ ./test.sh --all +setup: + @make --no-print-directory -C ../.. all + @basedir=../.. TEST_BASE_DIR=../ ./test.sh --setup +clean: + @basedir=../.. TEST_BASE_DIR=../ ./test.sh --clean +run: + @basedir=../.. TEST_BASE_DIR=../ ./test.sh --run --- /dev/null +++ systemd-204/test/TEST-01-BASIC/test.sh @@ -0,0 +1,244 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh +TEST_DESCRIPTION="Basic systemd setup" + +. $TEST_BASE_DIR/test-functions + +# Uncomment this to debug failures +#DEBUGFAIL="systemd.unit=multi-user.target" +DEBUGTOOLS="df free ls stty cat ps ln ip route dmesg dhclient mkdir cp ping dhclient strace less grep id tty touch du sort" + +run_qemu() { + # TODO: qemu wrapper script: http://www.spinics.net/lists/kvm/msg72389.html + qemu-kvm \ + -hda $TESTDIR/rootdisk.img \ + -m 512M -nographic \ + -net none -kernel /boot/vmlinuz-$KERNEL_VER \ + -append "root=/dev/sda1 systemd.log_level=debug raid=noautodetect loglevel=2 init=/usr/lib/systemd/systemd ro console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" || return 1 + + ret=1 + mkdir -p $TESTDIR/root + mount ${LOOPDEV}p1 $TESTDIR/root + [[ -e $TESTDIR/root/testok ]] && ret=0 + cp -a $TESTDIR/root/failed $TESTDIR + cp -a $TESTDIR/root/var/log/journal $TESTDIR + umount $TESTDIR/root + cat $TESTDIR/failed + ls -l $TESTDIR/journal/*/*.journal + test -s $TESTDIR/failed && ret=$(($ret+1)) + return $ret +} + + +run_nspawn() { + ../../systemd-nspawn -b -D $TESTDIR/nspawn-root /usr/lib/systemd/systemd + ret=1 + [[ -e $TESTDIR/nspawn-root/testok ]] && ret=0 + cp -a $TESTDIR/nspawn-root/failed $TESTDIR + cp -a $TESTDIR/nspawn-root/var/log/journal $TESTDIR + cat $TESTDIR/failed + ls -l $TESTDIR/journal/*/*.journal + test -s $TESTDIR/failed && ret=$(($ret+1)) + return $ret +} + + +test_run() { + if check_qemu ; then + run_qemu || return 1 + else + dwarn "can't run qemu-kvm, skipping" + fi + if check_nspawn; then + run_nspawn || return 1 + else + dwarn "can't run systemd-nspawn, skipping" + fi + return 0 +} + +test_setup() { + rm -f $TESTDIR/rootdisk.img + # Create the blank file to use as a root filesystem + dd if=/dev/null of=$TESTDIR/rootdisk.img bs=1M seek=200 + LOOPDEV=$(losetup --show -P -f $TESTDIR/rootdisk.img) + [ -b $LOOPDEV ] || return 1 + echo "LOOPDEV=$LOOPDEV" >> $STATEFILE + sfdisk -C 6400 -H 2 -S 32 -L $LOOPDEV <$TESTDIR/keyfile + mkdir -p $TESTDIR/root + mount ${LOOPDEV}p1 $TESTDIR/root + mkdir -p $TESTDIR/root/run + + # Create what will eventually be our root filesystem onto an overlay + ( + LOG_LEVEL=5 + initdir=$TESTDIR/root + + # create the basic filesystem layout + setup_basic_dirs + + # install compiled files + (cd ../..; make DESTDIR=$initdir install) + + # remove unneeded documentation + rm -fr $initdir/usr/share/{man,doc,gtk-doc} + + # install possible missing libraries + for i in $initdir/{sbin,bin}/* $initdir/lib/systemd/*; do + inst_libs $i + done + + # make a journal directory + mkdir -p $initdir/var/log/journal + + # install some basic config files + inst /etc/sysconfig/init + inst /etc/passwd + inst /etc/shadow + inst /etc/group + inst /etc/shells + inst /etc/nsswitch.conf + inst /etc/pam.conf + inst /etc/securetty + inst /etc/os-release + inst /etc/localtime + # we want an empty environment + > $initdir/etc/environment + > $initdir/etc/machine-id + + # set the hostname + echo systemd-testsuite > $initdir/etc/hostname + + eval $(udevadm info --export --query=env --name=${LOOPDEV}p2) + + cat >$initdir/etc/fstab <$initdir/etc/systemd/system/testsuite.service < /failed ; echo OK > /testok; while : ;do echo "testsuite service waiting for journal to move to /var/log/journal" > /dev/console ; for i in /var/log/journal/*;do [ -d "\$i" ] && echo "\$i" && break 2; done; sleep 1; done; sleep 1; exit 0;' +Type=oneshot +EOF + + mkdir -p $initdir/etc/systemd/system/testsuite.target.wants + ln -fs ../testsuite.service $initdir/etc/systemd/system/testsuite.target.wants/testsuite.service + ln -fs ../end.service $initdir/etc/systemd/system/testsuite.target.wants/end.service + + # make the testsuite the default target + ln -fs testsuite.target $initdir/etc/systemd/system/default.target + mkdir -p $initdir/etc/rc.d + cat >$initdir/etc/rc.d/rc.local </dev/null + [[ $LOOPDEV ]] && losetup -d $LOOPDEV + return 0 +} + +do_test "$@" --- /dev/null +++ systemd-204/test/TEST-02-CRYPTSETUP/test.sh @@ -0,0 +1,256 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh +TEST_DESCRIPTION="cryptsetup systemd setup" + +. $TEST_BASE_DIR/test-functions + +# Uncomment this to debug failures +#DEBUGFAIL="systemd.unit=multi-user.target" +DEBUGTOOLS="df free ls stty cat ps ln ip route dmesg dhclient mkdir cp ping dhclient strace less grep id tty touch du sort" + +run_qemu() { + # TODO: qemu wrapper script: http://www.spinics.net/lists/kvm/msg72389.html + qemu-kvm \ + -hda $TESTDIR/rootdisk.img \ + -m 512M -nographic \ + -net none -kernel /boot/vmlinuz-$KERNEL_VER \ + -append "root=/dev/sda1 systemd.log_level=debug raid=noautodetect loglevel=2 init=/usr/lib/systemd/systemd ro console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" || return 1 + + ret=1 + mkdir -p $TESTDIR/root + mount ${LOOPDEV}p1 $TESTDIR/root + [[ -e $TESTDIR/root/testok ]] && ret=0 + cp -a $TESTDIR/root/failed $TESTDIR + cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile + mount /dev/mapper/varcrypt $TESTDIR/root/var + cp -a $TESTDIR/root/var/log/journal $TESTDIR + umount $TESTDIR/root/var + umount $TESTDIR/root + cryptsetup luksClose /dev/mapper/varcrypt + cat $TESTDIR/failed + ls -l $TESTDIR/journal/*/*.journal + test -s $TESTDIR/failed && ret=$(($ret+1)) + return $ret +} + + +test_run() { + if check_qemu ; then + run_qemu || return 1 + else + dwarn "can't run qemu-kvm, skipping" + fi + return 0 +} + +test_setup() { + rm -f $TESTDIR/rootdisk.img + # Create the blank file to use as a root filesystem + dd if=/dev/null of=$TESTDIR/rootdisk.img bs=1M seek=200 + LOOPDEV=$(losetup --show -P -f $TESTDIR/rootdisk.img) + [ -b $LOOPDEV ] || return 1 + echo "LOOPDEV=$LOOPDEV" >> $STATEFILE + sfdisk -C 6400 -H 2 -S 32 -L $LOOPDEV <$TESTDIR/keyfile + cryptsetup -q luksFormat ${LOOPDEV}p2 $TESTDIR/keyfile + cryptsetup luksOpen ${LOOPDEV}p2 varcrypt <$TESTDIR/keyfile + mkfs.ext3 -L var /dev/mapper/varcrypt + mkdir -p $TESTDIR/root + mount ${LOOPDEV}p1 $TESTDIR/root + mkdir -p $TESTDIR/root/run + mkdir -p $TESTDIR/root/var + mount /dev/mapper/varcrypt $TESTDIR/root/var + + # Create what will eventually be our root filesystem onto an overlay + ( + LOG_LEVEL=5 + initdir=$TESTDIR/root + + # create the basic filesystem layout + setup_basic_dirs + + # install compiled files + (cd ../..; make DESTDIR=$initdir install) + + # remove unneeded documentation + rm -fr $initdir/usr/share/{man,doc,gtk-doc} + + # install possible missing libraries + for i in $initdir/{sbin,bin}/* $initdir/lib/systemd/*; do + inst_libs $i + done + + # make a journal directory + mkdir -p $initdir/var/log/journal + + # install some basic config files + inst /etc/sysconfig/init + inst /etc/passwd + inst /etc/shadow + inst /etc/group + inst /etc/shells + inst /etc/nsswitch.conf + inst /etc/pam.conf + inst /etc/securetty + inst /etc/os-release + inst /etc/localtime + # we want an empty environment + > $initdir/etc/environment + > $initdir/etc/machine-id + + # set the hostname + echo systemd-testsuite > $initdir/etc/hostname + + eval $(udevadm info --export --query=env --name=/dev/mapper/varcrypt) + eval $(udevadm info --export --query=env --name=${LOOPDEV}p2) + + cat >$initdir/etc/crypttab < $initdir/etc/varkey + cat $initdir/etc/crypttab | ddebug + + cat >$initdir/etc/fstab <$initdir/etc/systemd/system/testsuite.service < /failed ; echo OK > /testok; while : ;do systemd-cat echo "testsuite service waiting for /var/log/journal" ; echo "testsuite service waiting for journal to move to /var/log/journal" > /dev/console ; for i in /var/log/journal/*;do [ -d "\$i" ] && echo "\$i" && break 2; done; sleep 1; done; sleep 1; exit 0;' +Type=oneshot +EOF + + mkdir -p $initdir/etc/systemd/system/testsuite.target.wants + ln -fs ../testsuite.service $initdir/etc/systemd/system/testsuite.target.wants/testsuite.service + ln -fs ../end.service $initdir/etc/systemd/system/testsuite.target.wants/end.service + + # make the testsuite the default target + ln -fs testsuite.target $initdir/etc/systemd/system/default.target + mkdir -p $initdir/etc/rc.d + cat >$initdir/etc/rc.d/rc.local </dev/null && dracut_install dmeventd + + inst_libdir_file "libdevmapper-event.so*" + + inst_rules 10-dm.rules 13-dm-disk.rules 95-dm-notify.rules + + # install libnss_files for login + inst_libdir_file "libnss_files*" + + # install dbus and pam + find \ + /etc/dbus-1 \ + /etc/pam.d \ + /etc/security \ + /lib64/security \ + /lib/security -xtype f \ + | while read file; do + inst $file + done + + # install dbus socket and service file + inst /usr/lib/systemd/system/dbus.socket + inst /usr/lib/systemd/system/dbus.service + + # install basic keyboard maps and fonts + for i in \ + /usr/lib/kbd/consolefonts/latarcyrheb-sun16* \ + /usr/lib/kbd/keymaps/include/* \ + /usr/lib/kbd/keymaps/i386/include/* \ + /usr/lib/kbd/keymaps/i386/qwerty/us.*; do + [[ -f $i ]] || continue + inst $i + done + + # some basic terminfo files + for _terminfodir in /lib/terminfo /etc/terminfo /usr/share/terminfo; do + [ -f ${_terminfodir}/l/linux ] && break + done + dracut_install -o ${_terminfodir}/l/linux + + # softlink mtab + ln -fs /proc/self/mounts $initdir/etc/mtab + + # install any Exec's from the service files + egrep -ho '^Exec[^ ]*=[^ ]+' $initdir/lib/systemd/system/*.service \ + | while read i; do + i=${i##Exec*=}; i=${i##-} + inst $i + done + + # install plymouth, if found... else remove plymouth service files + # if [ -x /usr/libexec/plymouth/plymouth-populate-initrd ]; then + # PLYMOUTH_POPULATE_SOURCE_FUNCTIONS="$TEST_BASE_DIR/test-functions" \ + # /usr/libexec/plymouth/plymouth-populate-initrd -t $initdir + # dracut_install plymouth plymouthd + # else + rm -f $initdir/{usr/lib,etc}/systemd/system/plymouth* $initdir/{usr/lib,etc}/systemd/system/*/plymouth* + # fi + + # some helper tools for debugging + [[ $DEBUGTOOLS ]] && dracut_install $DEBUGTOOLS + + # install ld.so.conf* and run ldconfig + cp -a /etc/ld.so.conf* $initdir/etc + ldconfig -r "$initdir" + ddebug "Strip binaeries" + find "$initdir" -perm +111 -type f | xargs strip --strip-unneeded | ddebug + + # copy depmod files + inst /lib/modules/$KERNEL_VER/modules.order + inst /lib/modules/$KERNEL_VER/modules.builtin + # generate module dependencies + if [[ -d $initdir/lib/modules/$KERNEL_VER ]] && \ + ! depmod -a -b "$initdir" $KERNEL_VER; then + dfatal "\"depmod -a $KERNEL_VER\" failed." + exit 1 + fi + ) + rm -fr $TESTDIR/nspawn-root + ddebug "cp -ar $TESTDIR/root $TESTDIR/nspawn-root" + cp -ar $TESTDIR/root $TESTDIR/nspawn-root + # we don't mount in the nspawn root + rm -fr $TESTDIR/nspawn-root/etc/fstab + + ddebug "umount $TESTDIR/root/var" + umount $TESTDIR/root/var + cryptsetup luksClose /dev/mapper/varcrypt + ddebug "umount $TESTDIR/root" + umount $TESTDIR/root +} + +test_cleanup() { + umount $TESTDIR/root/var 2>/dev/null + [[ -b /dev/mapper/varcrypt ]] && cryptsetup luksClose /dev/mapper/varcrypt + umount $TESTDIR/root 2>/dev/null + [[ $LOOPDEV ]] && losetup -d $LOOPDEV + return 0 +} + +do_test "$@" --- /dev/null +++ systemd-204/test/TEST-03-JOBS/test-jobs.sh @@ -0,0 +1,41 @@ +#!/bin/bash -x + +# Test merging of a --ignore-dependencies job into a previously +# installed job. + +systemctl start --no-block hello-after-sleep.target +# sleep is now running, hello/start is waiting. Verify that: +systemctl list-jobs > /root/list-jobs.txt +grep 'sleep\.service.*running' /root/list-jobs.txt || exit 1 +grep 'hello\.service.*waiting' /root/list-jobs.txt || exit 1 + +# This is supposed to finish quickly, not wait for sleep to finish. +START_SEC=$(date -u '+%s') +systemctl start --ignore-dependencies hello +END_SEC=$(date -u '+%s') +ELAPSED=$(($END_SEC-$START_SEC)) + +[ "$ELAPSED" -lt 3 ] || exit 1 + +# sleep should still be running, hello not. +systemctl list-jobs > /root/list-jobs.txt +grep 'sleep\.service.*running' /root/list-jobs.txt || exit 1 +grep 'hello\.service' /root/list-jobs.txt && exit 1 + +# TODO: add more job queueing/merging tests here. + +# Test for irreversible jobs +systemctl start unstoppable.service || exit 1 + +# This is expected to fail with 'job cancelled' +systemctl stop unstoppable.service && exit 1 +# But this should succeed +systemctl stop --irreversible unstoppable.service || exit 1 + +# We're going to shutdown soon. Let's see if it succeeds when +# there's an active service that tries to be unstoppable. +# Shutdown of the container/VM will hang if not. +systemctl start unstoppable.service || exit 1 + +touch /testok +exit 0 --- /dev/null +++ systemd-204/test/TEST-03-JOBS/test.sh @@ -0,0 +1,249 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh +TEST_DESCRIPTION="Job-related tests" + +. $TEST_BASE_DIR/test-functions + +# Uncomment this to debug failures +#DEBUGFAIL="systemd.unit=multi-user.target" +DEBUGTOOLS="df free ls stty cat ps ln ip route dmesg dhclient mkdir cp ping dhclient strace less grep id tty touch du sort" + +run_qemu() { + # TODO: qemu wrapper script: http://www.spinics.net/lists/kvm/msg72389.html + qemu-kvm \ + -hda $TESTDIR/rootdisk.img \ + -m 512M -nographic \ + -net none -kernel /boot/vmlinuz-$KERNEL_VER \ + -append "root=/dev/sda1 systemd.log_level=debug raid=noautodetect loglevel=2 init=/usr/lib/systemd/systemd ro console=ttyS0,115200n81 selinux=0 $DEBUGFAIL" || return 1 + + ret=1 + mkdir -p $TESTDIR/root + mount ${LOOPDEV}p1 $TESTDIR/root + [[ -e $TESTDIR/root/testok ]] && ret=0 + cp -a $TESTDIR/root/failed $TESTDIR + cp -a $TESTDIR/root/var/log/journal $TESTDIR + umount $TESTDIR/root + cat $TESTDIR/failed + ls -l $TESTDIR/journal/*/*.journal + test -s $TESTDIR/failed && ret=$(($ret+1)) + return $ret +} + + +run_nspawn() { + ../../systemd-nspawn -b -D $TESTDIR/nspawn-root /usr/lib/systemd/systemd + ret=1 + [[ -e $TESTDIR/nspawn-root/testok ]] && ret=0 + cp -a $TESTDIR/nspawn-root/failed $TESTDIR + cp -a $TESTDIR/nspawn-root/var/log/journal $TESTDIR + cat $TESTDIR/failed + ls -l $TESTDIR/journal/*/*.journal + test -s $TESTDIR/failed && ret=$(($ret+1)) + return $ret +} + + +test_run() { + if check_qemu ; then + run_qemu || return 1 + else + dwarn "can't run qemu-kvm, skipping" + fi + if check_nspawn; then + run_nspawn || return 1 + else + dwarn "can't run systemd-nspawn, skipping" + fi + return 0 +} + +test_setup() { + rm -f $TESTDIR/rootdisk.img + # Create the blank file to use as a root filesystem + dd if=/dev/null of=$TESTDIR/rootdisk.img bs=1M seek=200 + LOOPDEV=$(losetup --show -P -f $TESTDIR/rootdisk.img) + [ -b $LOOPDEV ] || return 1 + echo "LOOPDEV=$LOOPDEV" >> $STATEFILE + sfdisk -C 6400 -H 2 -S 32 -L $LOOPDEV <$TESTDIR/keyfile + mkdir -p $TESTDIR/root + mount ${LOOPDEV}p1 $TESTDIR/root + mkdir -p $TESTDIR/root/run + + # Create what will eventually be our root filesystem onto an overlay + ( + LOG_LEVEL=5 + initdir=$TESTDIR/root + + # create the basic filesystem layout + setup_basic_dirs + + # install compiled files + (cd ../..; make DESTDIR=$initdir install) + + # remove unneeded documentation + rm -fr $initdir/usr/share/{man,doc,gtk-doc} + + # install possible missing libraries + for i in $initdir/{sbin,bin}/* $initdir/lib/systemd/*; do + inst_libs $i + done + + # make a journal directory + mkdir -p $initdir/var/log/journal + + # install some basic config files + inst /etc/sysconfig/init + inst /etc/passwd + inst /etc/shadow + inst /etc/group + inst /etc/shells + inst /etc/nsswitch.conf + inst /etc/pam.conf + inst /etc/securetty + inst /etc/os-release + inst /etc/localtime + # we want an empty environment + > $initdir/etc/environment + > $initdir/etc/machine-id + + # set the hostname + echo systemd-testsuite > $initdir/etc/hostname + + eval $(udevadm info --export --query=env --name=${LOOPDEV}p2) + + cat >$initdir/etc/fstab <$initdir/etc/systemd/system/testsuite.service <$initdir/etc/rc.d/rc.local </dev/null + [[ $LOOPDEV ]] && losetup -d $LOOPDEV + return 0 +} + +do_test "$@" --- /dev/null +++ systemd-204/test/a.service @@ -0,0 +1,7 @@ +[Unit] +Description=A +Requires=b.service +Before=b.service + +[Service] +ExecStart=/bin/true --- /dev/null +++ systemd-204/test/b.service @@ -0,0 +1,6 @@ +[Unit] +Description=B +Wants=f.service + +[Service] +ExecStart=/bin/true --- /dev/null +++ systemd-204/test/c.service @@ -0,0 +1,6 @@ +[Unit] +Description=C +Requires=a.service + +[Service] +ExecStart=/bin/true --- /dev/null +++ systemd-204/test/d.service @@ -0,0 +1,8 @@ +[Unit] +Description=D:Cyclic +After=b.service +Before=a.service +Requires=a.service + +[Service] +ExecStart=/bin/true --- /dev/null +++ systemd-204/test/e.service @@ -0,0 +1,8 @@ +[Unit] +Description=E:Cyclic +After=b.service +Before=a.service +Wants=a.service + +[Service] +ExecStart=/bin/true --- /dev/null +++ systemd-204/test/end.service @@ -0,0 +1,6 @@ +[Unit] +Description=End the test +After=testsuite.service + +[Service] +ExecStart=/usr/bin/systemctl poweroff --no-block --- /dev/null +++ systemd-204/test/f.service @@ -0,0 +1,5 @@ +[Unit] +Description=F + +[Service] +ExecStart=/bin/true --- /dev/null +++ systemd-204/test/g.service @@ -0,0 +1,6 @@ +[Unit] +Description=G +Conflicts=e.service + +[Service] +ExecStart=/bin/true --- /dev/null +++ systemd-204/test/h.service @@ -0,0 +1,6 @@ +[Unit] +Description=H +Wants=g.service + +[Service] +ExecStart=/bin/true --- /dev/null +++ systemd-204/test/hello-after-sleep.target @@ -0,0 +1,5 @@ +[Unit] +Description=Sleep for a minute, then say hello. +Wants=sleep.service hello.service +After=sleep.service +Before=hello.service --- /dev/null +++ systemd-204/test/hello.service @@ -0,0 +1,5 @@ +[Unit] +Description=Hello World + +[Service] +ExecStart=/bin/echo "Hello World" --- /dev/null +++ systemd-204/test/sleep.service @@ -0,0 +1,6 @@ +[Unit] +Description=Sleep for 1 minute + +[Service] +Type=oneshot +ExecStart=/bin/sleep 60 --- /dev/null +++ systemd-204/test/test-functions @@ -0,0 +1,864 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh +PATH=/sbin:/bin:/usr/sbin:/usr/bin +export PATH + +KERNEL_VER=${KERNEL_VER-$(uname -r)} +KERNEL_MODS="/lib/modules/$KERNEL_VER/" + +setup_basic_dirs() { + for d in usr/bin usr/sbin bin etc lib "$libdir" sbin tmp usr var var/log dev proc sys sysroot root run run/lock run/initramfs; do + if [ -L "/$d" ]; then + inst_symlink "/$d" + else + inst_dir "/$d" + fi + done + + ln -sfn /run "$initdir/var/run" + ln -sfn /run/lock "$initdir/var/lock" +} + +inst_libs() { + local _bin=$1 + local _so_regex='([^ ]*/lib[^/]*/[^ ]*\.so[^ ]*)' + local _file _line + + LC_ALL=C ldd "$_bin" 2>/dev/null | while read _line; do + [[ $_line = 'not a dynamic executable' ]] && break + + if [[ $_line =~ $_so_regex ]]; then + _file=${BASH_REMATCH[1]} + [[ -e ${initdir}/$_file ]] && continue + inst_library "$_file" + continue + fi + + if [[ $_line =~ not\ found ]]; then + dfatal "Missing a shared library required by $_bin." + dfatal "Run \"ldd $_bin\" to find out what it is." + dfatal "$_line" + dfatal "dracut cannot create an initrd." + exit 1 + fi + done +} + +import_testdir() { + STATEFILE=".testdir" + [[ -e $STATEFILE ]] && . $STATEFILE + if [[ -z "$TESTDIR" ]] || [[ ! -d "$TESTDIR" ]]; then + TESTDIR=$(mktemp --tmpdir=/var/tmp -d -t systemd-test.XXXXXX) + echo "TESTDIR=\"$TESTDIR\"" > $STATEFILE + export TESTDIR + fi +} + +## @brief Converts numeric logging level to the first letter of level name. +# +# @param lvl Numeric logging level in range from 1 to 6. +# @retval 1 if @a lvl is out of range. +# @retval 0 if @a lvl is correct. +# @result Echoes first letter of level name. +_lvl2char() { + case "$1" in + 1) echo F;; + 2) echo E;; + 3) echo W;; + 4) echo I;; + 5) echo D;; + 6) echo T;; + *) return 1;; + esac +} + +## @brief Internal helper function for _do_dlog() +# +# @param lvl Numeric logging level. +# @param msg Message. +# @retval 0 It's always returned, even if logging failed. +# +# @note This function is not supposed to be called manually. Please use +# dtrace(), ddebug(), or others instead which wrap this one. +# +# This function calls _do_dlog() either with parameter msg, or if +# none is given, it will read standard input and will use every line as +# a message. +# +# This enables: +# dwarn "This is a warning" +# echo "This is a warning" | dwarn +LOG_LEVEL=4 + +dlog() { + [ -z "$LOG_LEVEL" ] && return 0 + [ $1 -le $LOG_LEVEL ] || return 0 + local lvl="$1"; shift + local lvlc=$(_lvl2char "$lvl") || return 0 + + if [ $# -ge 1 ]; then + echo "$lvlc: $*" + else + while read line; do + echo "$lvlc: " "$line" + done + fi +} + +## @brief Logs message at TRACE level (6) +# +# @param msg Message. +# @retval 0 It's always returned, even if logging failed. +dtrace() { + set +x + dlog 6 "$@" + [ -n "$debug" ] && set -x || : +} + +## @brief Logs message at DEBUG level (5) +# +# @param msg Message. +# @retval 0 It's always returned, even if logging failed. +ddebug() { +# set +x + dlog 5 "$@" +# [ -n "$debug" ] && set -x || : +} + +## @brief Logs message at INFO level (4) +# +# @param msg Message. +# @retval 0 It's always returned, even if logging failed. +dinfo() { + set +x + dlog 4 "$@" + [ -n "$debug" ] && set -x || : +} + +## @brief Logs message at WARN level (3) +# +# @param msg Message. +# @retval 0 It's always returned, even if logging failed. +dwarn() { + set +x + dlog 3 "$@" + [ -n "$debug" ] && set -x || : +} + +## @brief Logs message at ERROR level (2) +# +# @param msg Message. +# @retval 0 It's always returned, even if logging failed. +derror() { +# set +x + dlog 2 "$@" +# [ -n "$debug" ] && set -x || : +} + +## @brief Logs message at FATAL level (1) +# +# @param msg Message. +# @retval 0 It's always returned, even if logging failed. +dfatal() { + set +x + dlog 1 "$@" + [ -n "$debug" ] && set -x || : +} + + +# Generic substring function. If $2 is in $1, return 0. +strstr() { [ "${1#*$2*}" != "$1" ]; } + +# normalize_path +# Prints the normalized path, where it removes any duplicated +# and trailing slashes. +# Example: +# $ normalize_path ///test/test// +# /test/test +normalize_path() { + shopt -q -s extglob + set -- "${1//+(\/)//}" + shopt -q -u extglob + echo "${1%/}" +} + +# convert_abs_rel +# Prints the relative path, when creating a symlink to from . +# Example: +# $ convert_abs_rel /usr/bin/test /bin/test-2 +# ../../bin/test-2 +# $ ln -s $(convert_abs_rel /usr/bin/test /bin/test-2) /usr/bin/test +convert_abs_rel() { + local __current __absolute __abssize __cursize __newpath + local -i __i __level + + set -- "$(normalize_path "$1")" "$(normalize_path "$2")" + + # corner case #1 - self looping link + [[ "$1" == "$2" ]] && { echo "${1##*/}"; return; } + + # corner case #2 - own dir link + [[ "${1%/*}" == "$2" ]] && { echo "."; return; } + + IFS="/" __current=($1) + IFS="/" __absolute=($2) + + __abssize=${#__absolute[@]} + __cursize=${#__current[@]} + + while [[ ${__absolute[__level]} == ${__current[__level]} ]] + do + (( __level++ )) + if (( __level > __abssize || __level > __cursize )) + then + break + fi + done + + for ((__i = __level; __i < __cursize-1; __i++)) + do + if ((__i > __level)) + then + __newpath=$__newpath"/" + fi + __newpath=$__newpath".." + done + + for ((__i = __level; __i < __abssize; __i++)) + do + if [[ -n $__newpath ]] + then + __newpath=$__newpath"/" + fi + __newpath=$__newpath${__absolute[__i]} + done + + echo "$__newpath" +} + + +# Install a directory, keeping symlinks as on the original system. +# Example: if /lib points to /lib64 on the host, "inst_dir /lib/file" +# will create ${initdir}/lib64, ${initdir}/lib64/file, +# and a symlink ${initdir}/lib -> lib64. +inst_dir() { + [[ -e ${initdir}/"$1" ]] && return 0 # already there + + local _dir="$1" _part="${1%/*}" _file + while [[ "$_part" != "${_part%/*}" ]] && ! [[ -e "${initdir}/${_part}" ]]; do + _dir="$_part $_dir" + _part=${_part%/*} + done + + # iterate over parent directories + for _file in $_dir; do + [[ -e "${initdir}/$_file" ]] && continue + if [[ -L $_file ]]; then + inst_symlink "$_file" + else + # create directory + mkdir -m 0755 -p "${initdir}/$_file" || return 1 + [[ -e "$_file" ]] && chmod --reference="$_file" "${initdir}/$_file" + chmod u+w "${initdir}/$_file" + fi + done +} + +# $1 = file to copy to ramdisk +# $2 (optional) Name for the file on the ramdisk +# Location of the image dir is assumed to be $initdir +# We never overwrite the target if it exists. +inst_simple() { + [[ -f "$1" ]] || return 1 + strstr "$1" "/" || return 1 + + local _src=$1 target="${2:-$1}" + if ! [[ -d ${initdir}/$target ]]; then + [[ -e ${initdir}/$target ]] && return 0 + [[ -L ${initdir}/$target ]] && return 0 + [[ -d "${initdir}/${target%/*}" ]] || inst_dir "${target%/*}" + fi + # install checksum files also + if [[ -e "${_src%/*}/.${_src##*/}.hmac" ]]; then + inst "${_src%/*}/.${_src##*/}.hmac" "${target%/*}/.${target##*/}.hmac" + fi + ddebug "Installing $_src" + cp --sparse=always -pfL "$_src" "${initdir}/$target" +} + +# find symlinks linked to given library file +# $1 = library file +# Function searches for symlinks by stripping version numbers appended to +# library filename, checks if it points to the same target and finally +# prints the list of symlinks to stdout. +# +# Example: +# rev_lib_symlinks libfoo.so.8.1 +# output: libfoo.so.8 libfoo.so +# (Only if libfoo.so.8 and libfoo.so exists on host system.) +rev_lib_symlinks() { + [[ ! $1 ]] && return 0 + + local fn="$1" orig="$(readlink -f "$1")" links='' + + [[ ${fn} =~ .*\.so\..* ]] || return 1 + + until [[ ${fn##*.} == so ]]; do + fn="${fn%.*}" + [[ -L ${fn} && $(readlink -f "${fn}") == ${orig} ]] && links+=" ${fn}" + done + + echo "${links}" +} + +# Same as above, but specialized to handle dynamic libraries. +# It handles making symlinks according to how the original library +# is referenced. +inst_library() { + local _src="$1" _dest=${2:-$1} _lib _reallib _symlink + strstr "$1" "/" || return 1 + [[ -e $initdir/$_dest ]] && return 0 + if [[ -L $_src ]]; then + # install checksum files also + if [[ -e "${_src%/*}/.${_src##*/}.hmac" ]]; then + inst "${_src%/*}/.${_src##*/}.hmac" "${_dest%/*}/.${_dest##*/}.hmac" + fi + _reallib=$(readlink -f "$_src") + inst_simple "$_reallib" "$_reallib" + inst_dir "${_dest%/*}" + [[ -d "${_dest%/*}" ]] && _dest=$(readlink -f "${_dest%/*}")/${_dest##*/} + ln -sfn $(convert_abs_rel "${_dest}" "${_reallib}") "${initdir}/${_dest}" + else + inst_simple "$_src" "$_dest" + fi + + # Create additional symlinks. See rev_symlinks description. + for _symlink in $(rev_lib_symlinks $_src) $(rev_lib_symlinks $_reallib); do + [[ ! -e $initdir/$_symlink ]] && { + ddebug "Creating extra symlink: $_symlink" + inst_symlink $_symlink + } + done +} + +# find a binary. If we were not passed the full path directly, +# search in the usual places to find the binary. +find_binary() { + if [[ -z ${1##/*} ]]; then + if [[ -x $1 ]] || { strstr "$1" ".so" && ldd $1 &>/dev/null; }; then + echo $1 + return 0 + fi + fi + + type -P $1 +} + +# Same as above, but specialized to install binary executables. +# Install binary executable, and all shared library dependencies, if any. +inst_binary() { + local _bin _target + _bin=$(find_binary "$1") || return 1 + _target=${2:-$_bin} + [[ -e $initdir/$_target ]] && return 0 + [[ -L $_bin ]] && inst_symlink $_bin $_target && return 0 + local _file _line + local _so_regex='([^ ]*/lib[^/]*/[^ ]*\.so[^ ]*)' + # I love bash! + LC_ALL=C ldd "$_bin" 2>/dev/null | while read _line; do + [[ $_line = 'not a dynamic executable' ]] && break + + if [[ $_line =~ $_so_regex ]]; then + _file=${BASH_REMATCH[1]} + [[ -e ${initdir}/$_file ]] && continue + inst_library "$_file" + continue + fi + + if [[ $_line =~ not\ found ]]; then + dfatal "Missing a shared library required by $_bin." + dfatal "Run \"ldd $_bin\" to find out what it is." + dfatal "$_line" + dfatal "dracut cannot create an initrd." + exit 1 + fi + done + inst_simple "$_bin" "$_target" +} + +# same as above, except for shell scripts. +# If your shell script does not start with shebang, it is not a shell script. +inst_script() { + local _bin + _bin=$(find_binary "$1") || return 1 + shift + local _line _shebang_regex + read -r -n 80 _line <"$_bin" + # If debug is set, clean unprintable chars to prevent messing up the term + [[ $debug ]] && _line=$(echo -n "$_line" | tr -c -d '[:print:][:space:]') + _shebang_regex='(#! *)(/[^ ]+).*' + [[ $_line =~ $_shebang_regex ]] || return 1 + inst "${BASH_REMATCH[2]}" && inst_simple "$_bin" "$@" +} + +# same as above, but specialized for symlinks +inst_symlink() { + local _src=$1 _target=${2:-$1} _realsrc + strstr "$1" "/" || return 1 + [[ -L $1 ]] || return 1 + [[ -L $initdir/$_target ]] && return 0 + _realsrc=$(readlink -f "$_src") + if ! [[ -e $initdir/$_realsrc ]]; then + if [[ -d $_realsrc ]]; then + inst_dir "$_realsrc" + else + inst "$_realsrc" + fi + fi + [[ ! -e $initdir/${_target%/*} ]] && inst_dir "${_target%/*}" + [[ -d ${_target%/*} ]] && _target=$(readlink -f ${_target%/*})/${_target##*/} + ln -sfn $(convert_abs_rel "${_target}" "${_realsrc}") "$initdir/$_target" +} + +# attempt to install any programs specified in a udev rule +inst_rule_programs() { + local _prog _bin + + if grep -qE 'PROGRAM==?"[^ "]+' "$1"; then + for _prog in $(grep -E 'PROGRAM==?"[^ "]+' "$1" | sed -r 's/.*PROGRAM==?"([^ "]+).*/\1/'); do + if [ -x /lib/udev/$_prog ]; then + _bin=/lib/udev/$_prog + else + _bin=$(find_binary "$_prog") || { + dinfo "Skipping program $_prog using in udev rule $(basename $1) as it cannot be found" + continue; + } + fi + + #dinfo "Installing $_bin due to it's use in the udev rule $(basename $1)" + dracut_install "$_bin" + done + fi +} + +# udev rules always get installed in the same place, so +# create a function to install them to make life simpler. +inst_rules() { + local _target=/etc/udev/rules.d _rule _found + + inst_dir "/lib/udev/rules.d" + inst_dir "$_target" + for _rule in "$@"; do + if [ "${rule#/}" = "$rule" ]; then + for r in /lib/udev/rules.d /etc/udev/rules.d; do + if [[ -f $r/$_rule ]]; then + _found="$r/$_rule" + inst_simple "$_found" + inst_rule_programs "$_found" + fi + done + fi + for r in '' ./ $dracutbasedir/rules.d/; do + if [[ -f ${r}$_rule ]]; then + _found="${r}$_rule" + inst_simple "$_found" "$_target/${_found##*/}" + inst_rule_programs "$_found" + fi + done + [[ $_found ]] || dinfo "Skipping udev rule: $_rule" + done +} + +# general purpose installation function +# Same args as above. +inst() { + local _x + + case $# in + 1) ;; + 2) [[ ! $initdir && -d $2 ]] && export initdir=$2 + [[ $initdir = $2 ]] && set $1;; + 3) [[ -z $initdir ]] && export initdir=$2 + set $1 $3;; + *) dfatal "inst only takes 1 or 2 or 3 arguments" + exit 1;; + esac + for _x in inst_symlink inst_script inst_binary inst_simple; do + $_x "$@" && return 0 + done + return 1 +} + +# install any of listed files +# +# If first argument is '-d' and second some destination path, first accessible +# source is installed into this path, otherwise it will installed in the same +# path as source. If none of listed files was installed, function return 1. +# On first successful installation it returns with 0 status. +# +# Example: +# +# inst_any -d /bin/foo /bin/bar /bin/baz +# +# Lets assume that /bin/baz exists, so it will be installed as /bin/foo in +# initramfs. +inst_any() { + local to f + + [[ $1 = '-d' ]] && to="$2" && shift 2 + + for f in "$@"; do + if [[ -e $f ]]; then + [[ $to ]] && inst "$f" "$to" && return 0 + inst "$f" && return 0 + fi + done + + return 1 +} + +# dracut_install [-o ] [ ... ] +# Install to the initramfs image +# -o optionally install the and don't fail, if it is not there +dracut_install() { + local _optional=no + if [[ $1 = '-o' ]]; then + _optional=yes + shift + fi + while (($# > 0)); do + if ! inst "$1" ; then + if [[ $_optional = yes ]]; then + dinfo "Skipping program $1 as it cannot be found and is" \ + "flagged to be optional" + else + dfatal "Failed to install $1" + exit 1 + fi + fi + shift + done +} + +# Install a single kernel module along with any firmware it may require. +# $1 = full path to kernel module to install +install_kmod_with_fw() { + # no need to go further if the module is already installed + + [[ -e "${initdir}/lib/modules/$KERNEL_VER/${1##*/lib/modules/$KERNEL_VER/}" ]] \ + && return 0 + + [[ -e "$initdir/.kernelmodseen/${1##*/}" ]] && return 0 + + if [[ $omit_drivers ]]; then + local _kmod=${1##*/} + _kmod=${_kmod%.ko} + _kmod=${_kmod/-/_} + if [[ "$_kmod" =~ $omit_drivers ]]; then + dinfo "Omitting driver $_kmod" + return 1 + fi + if [[ "${1##*/lib/modules/$KERNEL_VER/}" =~ $omit_drivers ]]; then + dinfo "Omitting driver $_kmod" + return 1 + fi + fi + + [ -d "$initdir/.kernelmodseen" ] && \ + > "$initdir/.kernelmodseen/${1##*/}" + + inst_simple "$1" "/lib/modules/$KERNEL_VER/${1##*/lib/modules/$KERNEL_VER/}" \ + || return $? + + local _modname=${1##*/} _fwdir _found _fw + _modname=${_modname%.ko*} + for _fw in $(modinfo -k $KERNEL_VER -F firmware $1 2>/dev/null); do + _found='' + for _fwdir in $fw_dir; do + if [[ -d $_fwdir && -f $_fwdir/$_fw ]]; then + inst_simple "$_fwdir/$_fw" "/lib/firmware/$_fw" + _found=yes + fi + done + if [[ $_found != yes ]]; then + if ! grep -qe "\<${_modname//-/_}\>" /proc/modules; then + dinfo "Possible missing firmware \"${_fw}\" for kernel module" \ + "\"${_modname}.ko\"" + else + dwarn "Possible missing firmware \"${_fw}\" for kernel module" \ + "\"${_modname}.ko\"" + fi + fi + done + return 0 +} + +# Do something with all the dependencies of a kernel module. +# Note that kernel modules depend on themselves using the technique we use +# $1 = function to call for each dependency we find +# It will be passed the full path to the found kernel module +# $2 = module to get dependencies for +# rest of args = arguments to modprobe +# _fderr specifies FD passed from surrounding scope +for_each_kmod_dep() { + local _func=$1 _kmod=$2 _cmd _modpath _options _found=0 + shift 2 + modprobe "$@" --ignore-install --show-depends $_kmod 2>&${_fderr} | ( + while read _cmd _modpath _options; do + [[ $_cmd = insmod ]] || continue + $_func ${_modpath} || exit $? + _found=1 + done + [[ $_found -eq 0 ]] && exit 1 + exit 0 + ) +} + +# filter kernel modules to install certain modules that meet specific +# requirements. +# $1 = search only in subdirectory of /kernel/$1 +# $2 = function to call with module name to filter. +# This function will be passed the full path to the module to test. +# The behavior of this function can vary depending on whether $hostonly is set. +# If it is, we will only look at modules that are already in memory. +# If it is not, we will look at all kernel modules +# This function returns the full filenames of modules that match $1 +filter_kernel_modules_by_path () ( + local _modname _filtercmd + if ! [[ $hostonly ]]; then + _filtercmd='find "$KERNEL_MODS/kernel/$1" "$KERNEL_MODS/extra"' + _filtercmd+=' "$KERNEL_MODS/weak-updates" -name "*.ko" -o -name "*.ko.gz"' + _filtercmd+=' -o -name "*.ko.xz"' + _filtercmd+=' 2>/dev/null' + else + _filtercmd='cut -d " " -f 1 $initdir/$$.ko + $2 $initdir/$$.ko && echo "$_modname" + rm -f $initdir/$$.ko + ;; + *.ko.xz) xz -dc "$_modname" > $initdir/$$.ko + $2 $initdir/$$.ko && echo "$_modname" + rm -f $initdir/$$.ko + ;; + esac + done +) +find_kernel_modules_by_path () ( + if ! [[ $hostonly ]]; then + find "$KERNEL_MODS/kernel/$1" "$KERNEL_MODS/extra" "$KERNEL_MODS/weak-updates" \ + -name "*.ko" -o -name "*.ko.gz" -o -name "*.ko.xz" 2>/dev/null + else + cut -d " " -f 1 /dev/null + fi +) + +filter_kernel_modules () { + filter_kernel_modules_by_path drivers "$1" +} + +find_kernel_modules () { + find_kernel_modules_by_path drivers +} + +# instmods [-c] [ ... ] +# instmods [-c] +# install kernel modules along with all their dependencies. +# can be e.g. "=block" or "=drivers/usb/storage" +instmods() { + [[ $no_kernel = yes ]] && return + # called [sub]functions inherit _fderr + local _fderr=9 + local _check=no + if [[ $1 = '-c' ]]; then + _check=yes + shift + fi + + function inst1mod() { + local _ret=0 _mod="$1" + case $_mod in + =*) + if [ -f $KERNEL_MODS/modules.${_mod#=} ]; then + ( [[ "$_mpargs" ]] && echo $_mpargs + cat "${KERNEL_MODS}/modules.${_mod#=}" ) \ + | instmods + else + ( [[ "$_mpargs" ]] && echo $_mpargs + find "$KERNEL_MODS" -path "*/${_mod#=}/*" -printf '%f\n' ) \ + | instmods + fi + ;; + --*) _mpargs+=" $_mod" ;; + i2o_scsi) return ;; # Do not load this diagnostic-only module + *) + _mod=${_mod##*/} + # if we are already installed, skip this module and go on + # to the next one. + [[ -f "$initdir/.kernelmodseen/${_mod%.ko}.ko" ]] && return + + if [[ $omit_drivers ]] && [[ "$1" =~ $omit_drivers ]]; then + dinfo "Omitting driver ${_mod##$KERNEL_MODS}" + return + fi + # If we are building a host-specific initramfs and this + # module is not already loaded, move on to the next one. + [[ $hostonly ]] && ! grep -qe "\<${_mod//-/_}\>" /proc/modules \ + && ! echo $add_drivers | grep -qe "\<${_mod}\>" \ + && return + + # We use '-d' option in modprobe only if modules prefix path + # differs from default '/'. This allows us to use Dracut with + # old version of modprobe which doesn't have '-d' option. + local _moddirname=${KERNEL_MODS%%/lib/modules/*} + [[ -n ${_moddirname} ]] && _moddirname="-d ${_moddirname}/" + + # ok, load the module, all its dependencies, and any firmware + # it may require + for_each_kmod_dep install_kmod_with_fw $_mod \ + --set-version $KERNEL_VER ${_moddirname} $_mpargs + ((_ret+=$?)) + ;; + esac + return $_ret + } + + function instmods_1() { + local _mod _mpargs + if (($# == 0)); then # filenames from stdin + while read _mod; do + inst1mod "${_mod%.ko*}" || { + if [ "$_check" = "yes" ]; then + dfatal "Failed to install $_mod" + return 1 + fi + } + done + fi + while (($# > 0)); do # filenames as arguments + inst1mod ${1%.ko*} || { + if [ "$_check" = "yes" ]; then + dfatal "Failed to install $1" + return 1 + fi + } + shift + done + return 0 + } + + local _ret _filter_not_found='FATAL: Module .* not found.' + set -o pipefail + # Capture all stderr from modprobe to _fderr. We could use {var}>... + # redirections, but that would make dracut require bash4 at least. + eval "( instmods_1 \"\$@\" ) ${_fderr}>&1" \ + | while read line; do [[ "$line" =~ $_filter_not_found ]] && echo $line || echo $line >&2 ;done | derror + _ret=$? + set +o pipefail + return $_ret +} + +# inst_libdir_file [-n ] [...] +# Install a located on a lib directory to the initramfs image +# -n install non-matching files +inst_libdir_file() { + if [[ "$1" == "-n" ]]; then + local _pattern=$1 + shift 2 + for _dir in $libdirs; do + for _i in "$@"; do + for _f in "$_dir"/$_i; do + [[ "$_i" =~ $_pattern ]] || continue + [[ -e "$_i" ]] && dracut_install "$_i" + done + done + done + else + for _dir in $libdirs; do + for _i in "$@"; do + for _f in "$_dir"/$_i; do + [[ -e "$_f" ]] && dracut_install "$_f" + done + done + done + fi +} + +check_qemu() { + command -v qemu-kvm &>/dev/null && [[ -c /dev/kvm ]] +} + +check_nspawn() { + [[ -d /sys/fs/cgroup/systemd ]] +} + + +do_test() { + if [[ $UID != "0" ]]; then + echo "TEST: $TEST_DESCRIPTION [SKIPPED]: not root" >&2 + exit 0 + fi + +# Detect lib paths + [[ $libdir ]] || for libdir in /lib64 /lib; do + [[ -d $libdir ]] && libdirs+=" $libdir" && break + done + + [[ $usrlibdir ]] || for usrlibdir in /usr/lib64 /usr/lib; do + [[ -d $usrlibdir ]] && libdirs+=" $usrlibdir" && break + done + + import_testdir + + while (($# > 0)); do + case $1 in + --run) + echo "TEST RUN: $TEST_DESCRIPTION" + test_run + ret=$? + if [ $ret -eq 0 ]; then + echo "TEST RUN: $TEST_DESCRIPTION [OK]" + else + echo "TEST RUN: $TEST_DESCRIPTION [FAILED]" + fi + exit $ret;; + --setup) + echo "TEST SETUP: $TEST_DESCRIPTION" + test_setup + exit $?;; + --clean) + echo "TEST CLEANUP: $TEST_DESCRIPTION" + test_cleanup + rm -fr "$TESTDIR" + rm -f .testdir + exit $?;; + --all) + echo -n "TEST: $TEST_DESCRIPTION "; + ( + test_setup && test_run + ret=$? + test_cleanup + rm -fr "$TESTDIR" + rm -f .testdir + exit $ret + ) test.log 2>&1 + ret=$? + if [ $ret -eq 0 ]; then + rm test.log + echo "[OK]" + else + echo "[FAILED]" + echo "see $(pwd)/test.log" + fi + exit $ret;; + *) break ;; + esac + shift + done +} --- /dev/null +++ systemd-204/test/testsuite.target @@ -0,0 +1,6 @@ +[Unit] +Description=Testsuite target +Requires=multi-user.target +After=multi-user.target +Conflicts=rescue.target +AllowIsolate=yes --- /dev/null +++ systemd-204/test/unstoppable.service @@ -0,0 +1,5 @@ +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/bin/echo 'I'm unstoppable!' +ExecStop=/bin/systemctl start --no-block unstoppable.service --- systemd-204.orig/tmpfiles.d/legacy.conf +++ systemd-204/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 0775 root root - # /forcefsck, /fastboot and /forcequotecheck are deprecated in favor of the # kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and --- systemd-204.orig/tmpfiles.d/tmp.conf +++ systemd-204/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-* --- systemd-204.orig/units/remote-fs.target +++ systemd-204/units/remote-fs.target @@ -8,7 +8,7 @@ [Unit] Description=Remote File Systems Documentation=man:systemd.special(7) -After=remote-fs-pre.target +After=remote-fs-pre.target local-fs.target [Install] WantedBy=multi-user.target --- systemd-204.orig/units/syslog.socket +++ systemd-204/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 --- /dev/null +++ systemd-204/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 --- systemd-204.orig/units/systemd-journald.socket +++ systemd-204/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, --- systemd-204.orig/units/tmp.mount +++ systemd-204/units/tmp.mount @@ -18,3 +18,6 @@ What=tmpfs Where=/tmp Type=tmpfs Options=mode=1777,strictatime + +[Install] +WantedBy=local-fs.target debian/patches/fix-ftbfs.patch0000644000000000000000000000047412322650215013531 0ustar Description: Fix FTBFS against recent kernels & glibc. Author: Dimitri John Ledkov --- systemd-204.orig/src/core/socket.c +++ systemd-204/src/core/socket.c @@ -29,6 +29,7 @@ #include #include #ifdef HAVE_XATTR +#include #include #endif debian/patches/series0000644000000000000000000000132412322650215012030 0ustar # debian/source/git-patches exported from git by export-hook v204..upstream-fixes_204-5 debian-changes # cherrypicked from upstream trunk upstream-hwdb-keyboard.patch upstream-hwdb-updates.patch upstream-reboot-polkit-permissions.patch # rejected upstream env-variable-for-machine-ID-path.patch persistent-storage-rule-mmc-partname.patch # Ubuntu specific login-monitor-no-machine.patch disable-failing-buildd-tests.patch block-polling.patch fix-race-condition-of-serio-driver-module-not-loading.patch load-fbcon.patch always-probe-cpu-support-drivers.patch support-phablet-etc-writable.patch ignore-omap-vsync.patch pam-check-runtime-dir-user.patch ubuntu-logind-controllers.patch fix-ftbfs.patch add-cgmanager-support debian/patches/ubuntu-logind-controllers.patch0000644000000000000000000000207712322650215017002 0ustar Description: Enable all cgroup controllers in logind This changes the default logind configuration to enable all cgroup controllers. Doing so will result in a /user/$UID.user/cX.session cgroup being created for each of the listed controller with the cX.session entry belonging to the user. In the event that one of the listed controllers doesn't exist under /sys/fs/cgroup, logind will simply ignore it. The list in this patch should be kept up to date as new cgroup controllers are added to the kernel and the distro (the config option unfortunately doesn't support wildcards). This configuration is required, almongst other things by LXC for unprivileged containers. Origin: vendor Forwarded: not-needed --- systemd-204.orig/src/login/logind.conf +++ systemd-204/src/login/logind.conf @@ -13,8 +13,8 @@ #KillUserProcesses=no #KillOnlyUsers= #KillExcludeUsers=root -#Controllers= -#ResetControllers=cpu +Controllers=blkio cpu cpuacct cpuset devices freezer hugetlb memory perf_event +ResetControllers= #InhibitDelayMaxSec=5 #HandlePowerKey=poweroff #HandleSuspendKey=suspend debian/patches/add-cgmanager-support0000644000000000000000000007416612322650215014740 0ustar Index: systemd-204/Makefile.am =================================================================== --- systemd-204.orig/Makefile.am 2014-04-11 10:13:38.000000000 -0500 +++ systemd-204/Makefile.am 2014-04-11 10:13:38.000000000 -0500 @@ -178,6 +178,10 @@ AM_CPPFLAGS = \ -I $(top_srcdir)/src/libsystemd-bus \ $(OUR_CPPFLAGS) +if ENABLE_CGMANAGER +AM_CPPFLAGS += -DHAVE_CGMANAGER +endif + AM_CFLAGS = $(OUR_CFLAGS) AM_LDFLAGS = $(OUR_LDFLAGS) @@ -675,6 +679,8 @@ libsystemd_shared_la_SOURCES = \ src/shared/cgroup-util.h \ src/shared/cgroup-show.c \ src/shared/cgroup-show.h \ + src/shared/cgmanager.c \ + src/shared/cgmanager.h \ src/shared/unit-name.c \ src/shared/unit-name.h \ src/shared/utmp-wtmp.c \ @@ -699,6 +705,14 @@ libsystemd_shared_la_SOURCES = \ src/shared/MurmurHash3.c \ src/shared/MurmurHash3.h +if ENABLE_CGMANAGER +libsystemd_shared_la_CFLAGS = \ + $(AM_CFLAGS) \ + $(CGMANAGER_CFLAGS) +libsystemd_shared_la_LIBADD = \ + $(CGMANAGER_LIBS) +endif + #------------------------------------------------------------------------------- noinst_LTLIBRARIES += \ libsystemd-dbus.la @@ -763,6 +777,11 @@ libsystemd_label_la_CFLAGS = \ libsystemd_label_la_LIBADD = \ $(SELINUX_LIBS) +if ENABLE_CGMANAGER +libsystemd_label_la_CFLAGS += $(CGMANAGER_CFLAGS) +libsystemd_label_la_LIBADD += $(CGMANAGER_LIBS) +endif + # ------------------------------------------------------------------------------ noinst_LTLIBRARIES += \ libsystemd-logs.la Index: systemd-204/configure.ac =================================================================== --- systemd-204.orig/configure.ac 2014-04-11 10:13:38.000000000 -0500 +++ systemd-204/configure.ac 2014-04-11 10:13:38.000000000 -0500 @@ -780,6 +780,24 @@ AM_CONDITIONAL(ENABLE_MANPAGES, [test "x # ------------------------------------------------------------------------------ +AC_ARG_ENABLE([cgmanager], + [AC_HELP_STRING([--enable-cgmanager], [enable cgmanager support [default=auto]])], + [], [enable_cgmanager=auto]) + +if test "x$enable_cgmanager" = "xauto" ; then + AC_CHECK_LIB([cgmanager],[cgmanager_create],[enable_cgmanager=yes],[enable_cgmanager=no],[-lnih -lnih-dbus -ldbus-1]) +fi +AM_CONDITIONAL([ENABLE_CGMANAGER], [test "x$enable_cgmanager" = "xyes"]) + +AM_COND_IF([ENABLE_CGMANAGER], + [PKG_CHECK_MODULES([CGMANAGER], [libcgmanager]) + PKG_CHECK_MODULES([NIH], [libnih >= 1.0.2]) + PKG_CHECK_MODULES([NIH_DBUS], [libnih-dbus >= 1.0.0]) + PKG_CHECK_MODULES([DBUS], [dbus-1 >= 1.2.16]) + ]) + +# ------------------------------------------------------------------------------ + # Location of the init scripts as mandated by LSB SYSTEM_SYSVINIT_PATH=/etc/init.d SYSTEM_SYSVRCND_PATH=/etc/rc.d @@ -946,6 +964,7 @@ AC_MSG_RESULT([ gtk-doc: ${enable_gtk_doc} Split /usr: ${enable_split_usr} SysV compatibility: ${SYSTEM_SYSV_COMPAT} + CGManager ${enable_cgmanager} prefix: ${prefix} rootprefix: ${with_rootprefix} Index: systemd-204/src/shared/cgmanager.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ systemd-204/src/shared/cgmanager.c 2014-04-11 10:17:01.079687397 -0500 @@ -0,0 +1,239 @@ +/* + * lxc: linux Container library + * + * (C) Copyright Canonical Ltd. 2013-2014 + * + * Authors: + * Serge Hallyn + * Stéphane Graber + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CGMANAGER + +#include +#include +#include +#include + +#include "cgmanager.h" +#include "log.h" + +static NihDBusProxy *cgroup_manager = NULL; + +#define CGMANAGER_DBUS_SOCK "unix:path=/sys/fs/cgroup/cgmanager/sock" +bool cgm_dbus_connect(void) +{ + DBusError dbus_error; + DBusConnection *connection; + dbus_error_init(&dbus_error); + + connection = dbus_connection_open_private(CGMANAGER_DBUS_SOCK, &dbus_error); + if (!connection) { + dbus_error_free(&dbus_error); + return false; + } + + dbus_connection_set_exit_on_disconnect(connection, FALSE); + dbus_error_free(&dbus_error); + cgroup_manager = nih_dbus_proxy_new(NULL, connection, + NULL /* p2p */, + "/org/linuxcontainers/cgmanager", NULL, NULL); + dbus_connection_unref(connection); + if (!cgroup_manager) { + NihError *nerr; + nerr = nih_error_get(); + log_error("cgmanager: Error opening proxy: %s", nerr->message); + nih_free(nerr); + return false; + } + + // force fd passing negotiation + if (cgmanager_ping_sync(NULL, cgroup_manager, 0) != 0) { + NihError *nerr; + nerr = nih_error_get(); + log_error("cgmanager: Error pinging manager: %s", nerr->message); + nih_free(nerr); + nih_free(cgroup_manager); + cgroup_manager = NULL; + } + return true; +} + +void cgm_dbus_disconnect(void) +{ + if (cgroup_manager) { + dbus_connection_flush(cgroup_manager->connection); + dbus_connection_close(cgroup_manager->connection); + nih_free(cgroup_manager); + cgroup_manager = NULL; + } +} + +bool cgm_create(const char *controller, const char *cgroup_path, int32_t *existed) +{ + if (cgroup_path[0] == '/') + cgroup_path++; + + if ( cgmanager_create_sync(NULL, cgroup_manager, controller, + cgroup_path, existed) != 0) { + NihError *nerr; + nerr = nih_error_get(); + log_error("cgmanager: cgm_create for controller=%s, cgroup_path=%s failed: %s", + controller, cgroup_path, nerr->message); + nih_free(nerr); + return false; + } + + return true; +} + +bool cgm_remove(const char *controller, const char *cgroup_path, int recursive) +{ + int existed; + + if (cgroup_path[0] == '/') + cgroup_path++; + + if ( cgmanager_remove_sync(NULL, cgroup_manager, controller, + cgroup_path, recursive, &existed) != 0) { + NihError *nerr; + nerr = nih_error_get(); + log_error("cgmanager: cgm_remove for controller=%s, cgroup_path=%s, recursive=%d failed: %s", + controller, cgroup_path, recursive, nerr->message); + nih_free(nerr); + return false; + } + + if (existed == -1) { + log_error("cgmanager: cgm_remove failed: %s:%s did not exist", controller, cgroup_path); + return false; + } + return true; +} + +char *cgm_get(const char *controller, const char *cgroup_path, const char *key) +{ + char *result = NULL; + + if (cgroup_path[0] == '/') + cgroup_path++; + + if (cgmanager_get_value_sync(NULL, cgroup_manager, controller, cgroup_path, key, &result) != 0) { + NihError *nerr; + nerr = nih_error_get(); + log_error("cgmanager: cgm_get for controller=%s, cgroup_path=%s failed: %s", + controller, cgroup_path, nerr->message); + nih_free(nerr); + free(result); + return NULL; + } + return result; +} + +bool cgm_chmod(const char *controller, const char *cgroup_path, int mode) +{ + nih_local char *path_dirname = NULL; + nih_local char *path_basename = NULL; + + if (cgroup_path[0] == '/') + cgroup_path++; + + path_dirname = NIH_MUST(nih_strdup(NULL, cgroup_path)); + path_basename = NIH_MUST(nih_strdup(NULL, cgroup_path)); + + if (cgmanager_chmod_sync(NULL, cgroup_manager, controller, + dirname(path_dirname), basename(path_basename), mode) != 0) { + NihError *nerr; + nerr = nih_error_get(); + log_error("cgmanager: cgm_chmod for controller=%s, cgroup_path=%s, mode=%d failed: %s", + controller, cgroup_path, mode, nerr->message); + nih_free(nerr); + return false; + } + + return true; +} + +bool cgm_chown(const char *controller, const char *cgroup_path, int uid, int gid) +{ + if (cgroup_path[0] == '/') + cgroup_path++; + + if (cgmanager_chown_sync(NULL, cgroup_manager, controller, + cgroup_path, uid, gid) != 0) { + NihError *nerr; + nerr = nih_error_get(); + log_error("cgmanager: cgm_chown for controller=%s, cgroup_path=%s, uid=%d, gid=%d failed: %s", + controller, cgroup_path, uid, gid, nerr->message); + nih_free(nerr); + return false; + } + + return true; +} + +bool cgm_list_children(const char *controller, const char *cgroup_path, char ***children) +{ + if (cgroup_path[0] == '/') + cgroup_path++; + + if ( cgmanager_list_children_sync(NULL, cgroup_manager, controller, + cgroup_path, children) != 0) { + NihError *nerr; + nerr = nih_error_get(); + log_error("cgmanager: cgm_list_children for controller=%s, cgroup_path=%s failed: %s", + controller, cgroup_path, nerr->message); + nih_free(nerr); + return false; + } + + return true; +} + +bool cgm_controller_exists(const char *controller) +{ + char *cgroup_name = NULL; + + if ( cgmanager_get_pid_cgroup_sync(NULL, cgroup_manager, controller, + getpid(), &cgroup_name) != 0) { + NihError *nerr; + nerr = nih_error_get(); + nih_free(nerr); + return false; + } + + nih_free(cgroup_name); + return true; +} + +bool cgm_enter(const char *controller, const char *cgroup_path, pid_t pid) +{ + if (cgroup_path[0] == '/') + cgroup_path++; + + if (cgmanager_move_pid_sync(NULL, cgroup_manager, controller, + cgroup_path, pid) != 0) { + NihError *nerr; + nerr = nih_error_get(); + log_error("cgmanager: cgm_enter for controller=%s, cgroup_path=%s, pid=%d failed: %s", + controller, cgroup_path, pid, nerr->message); + nih_free(nerr); + return false; + } + return true; +} +#endif Index: systemd-204/src/shared/cgmanager.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ systemd-204/src/shared/cgmanager.h 2014-04-11 10:13:38.000000000 -0500 @@ -0,0 +1,44 @@ +/* + * lxc: linux Container library + * + * (C) Copyright Canonical Ltd. 2013-2014 + * + * Authors: + * Serge Hallyn + * Stéphane Graber + * + * This library 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 library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef HAVE_CGMANAGER + +#include +#include +#include +#include +#include +#include + +bool cgm_dbus_connect(void); +void cgm_dbus_disconnect(void); +bool cgm_create(const char *controller, const char *cgroup_path, int32_t *existed); +bool cgm_remove(const char *controller, const char *cgroup_path, int recursive); +char *cgm_get(const char *controller, const char *path, const char *key); +bool cgm_chmod(const char *controller, const char *cgroup_path, int mode); +bool cgm_chown(const char *controller, const char *cgroup_path, int uid, int gid); +bool cgm_list_children(const char *controller, const char *cgroup_path, char ***children); +bool cgm_controller_exists(const char *controller); +bool cgm_enter(const char *controller, const char *cgroup_path, pid_t pid); +#endif Index: systemd-204/src/shared/cgroup-label.c =================================================================== --- systemd-204.orig/src/shared/cgroup-label.c 2013-04-15 21:41:21.360855712 -0500 +++ systemd-204/src/shared/cgroup-label.c 2014-04-11 10:13:38.000000000 -0500 @@ -30,6 +30,7 @@ #include #include "cgroup-util.h" +#include "cgmanager.h" #include "log.h" #include "set.h" #include "macro.h" @@ -40,6 +41,27 @@ int cg_create(const char *controller, co _cleanup_free_ char *fs = NULL; int r; + #ifdef HAVE_CGMANAGER + /* CGManager support */ + int existed; + if (cgm_dbus_connect()) { + if (!controller) { + cgm_dbus_disconnect(); + return -1; + } + + r = cgm_create(normalize_controller(controller), + path, &existed); + + cgm_dbus_disconnect(); + + if (!r) + return -1; + + return 1; + } + #endif + r = cg_get_path_and_check(controller, path, suffix, &fs); if (r < 0) return r; Index: systemd-204/src/shared/cgroup-util.c =================================================================== --- systemd-204.orig/src/shared/cgroup-util.c 2013-05-06 14:06:04.057670685 -0500 +++ systemd-204/src/shared/cgroup-util.c 2014-04-11 10:13:38.000000000 -0500 @@ -29,6 +29,7 @@ #include #include +#include "cgmanager.h" #include "cgroup-util.h" #include "log.h" #include "set.h" @@ -43,9 +44,57 @@ int cg_enumerate_processes(const char *c _cleanup_free_ char *fs = NULL; FILE *f; int r; + char *value = NULL; + char *template = NULL; + int fd; assert(_f); + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + if (!controller) { + cgm_dbus_disconnect(); + return -1; + } + + value = cgm_get(normalize_controller(controller), + path, "cgroup.procs"); + + cgm_dbus_disconnect(); + + if (!value) + return -1; + + template = strdup("/tmp/.cgmanager-logind.XXXXXX"); + if (!template) + return -1; + + fd = mkstemp(template); + + if (fd < 0) { + free(template); + return -1; + } + + f = fdopen(fd, "w+"); + if (!f) { + close(fd); + free(template); + return -1; + } + + unlink(template); + free(template); + write(fd, value, strlen(value)); + fflush(f); + rewind(f); + + *_f = f; + return 0; + } + #endif + r = cg_get_path(controller, path, "cgroup.procs", &fs); if (r < 0) return r; @@ -62,9 +111,56 @@ int cg_enumerate_tasks(const char *contr _cleanup_free_ char *fs = NULL; FILE *f; int r; + char *value = NULL; + char *template = NULL; + int fd; assert(_f); + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + if (!controller) { + cgm_dbus_disconnect(); + return -1; + } + + value = cgm_get(normalize_controller(controller), + path, "tasks"); + + cgm_dbus_disconnect(); + + if (!value) + return -1; + + template = strdup("/tmp/.cgmanager-logind.XXXXXX"); + if (!template) + return -1; + + fd = mkstemp(template); + if (fd < 0) { + free(template); + return -1; + } + + f = fdopen(fd, "w+"); + if (!f) { + close(fd); + free(template); + return -1; + } + + unlink(template); + free(template); + write(fd, value, strlen(value)); + fflush(f); + rewind(f); + + *_f = f; + return 0; + } + #endif + r = cg_get_path(controller, path, "tasks", &fs); if (r < 0) return r; @@ -154,6 +250,26 @@ int cg_rmdir(const char *controller, con _cleanup_free_ char *p = NULL; int r; + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + if (!controller) { + cgm_dbus_disconnect(); + return -1; + } + + r = cgm_remove(normalize_controller(controller), + path, 0); + + cgm_dbus_disconnect(); + + if (!r) + return -1; + + return 0; + } + #endif + r = cg_get_path(controller, path, NULL, &p); if (r < 0) return r; @@ -462,7 +578,7 @@ int cg_migrate_recursive(const char *cfr return ret; } -static const char *normalize_controller(const char *controller) { +const char *normalize_controller(const char *controller) { assert(controller); @@ -531,9 +647,24 @@ int cg_get_path(const char *controller, static int check_hierarchy(const char *p) { char *cc; + int r; assert(p); + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + r = cgm_controller_exists(p); + + cgm_dbus_disconnect(); + + if (!r) + return -1; + + return 0; + } + #endif + /* Check if this controller actually really exists */ cc = alloca(sizeof("/sys/fs/cgroup/") + strlen(p)); strcpy(stpcpy(cc, "/sys/fs/cgroup/"), p); @@ -592,9 +723,58 @@ static int trim_cb(const char *path, con int cg_trim(const char *controller, const char *path, bool delete_root) { _cleanup_free_ char *fs = NULL; int r = 0; + char **children = NULL; + int i = 0; + char *p1 = NULL; assert(path); + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + if (!controller) { + cgm_dbus_disconnect(); + return -1; + } + + if (delete_root) { + r = cgm_remove(normalize_controller(controller), + path, 1); + + if (!r) { + cgm_dbus_disconnect(); + return -1; + } + } + else { + r = cgm_list_children(normalize_controller(controller), + path, &children); + + if (!r) { + cgm_dbus_disconnect(); + return -1; + } + + if (children) { + while (children[i]) { + p1 = strjoin(path, "/", children[i], NULL); + + r = cgm_remove(normalize_controller(controller), + p1, 1); + + free(p1); + i++; + } + nih_free(children); + } + } + + cgm_dbus_disconnect(); + + return 0; + } + #endif + r = cg_get_path(controller, path, NULL, &fs); if (r < 0) return r; @@ -644,6 +824,26 @@ int cg_attach(const char *controller, co assert(path); assert(pid >= 0); + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + if (!controller) { + cgm_dbus_disconnect(); + return -1; + } + + r = cgm_enter(normalize_controller(controller), + path, pid); + + cgm_dbus_disconnect(); + + if (!r) + return -1; + + return 0; + } + #endif + r = cg_get_path_and_check(controller, path, "tasks", &fs); if (r < 0) return r; @@ -664,10 +864,33 @@ int cg_set_group_access( gid_t gid) { _cleanup_free_ char *fs = NULL; - int r; + int r, r1; assert(path); + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + if (!controller) { + cgm_dbus_disconnect(); + return -1; + } + + r = cgm_chmod(normalize_controller(controller), + path, mode); + + r1 = cgm_chown(normalize_controller(controller), + path, uid, gid); + + cgm_dbus_disconnect(); + + if (!r && !r1) + return -1; + + return 0; + } + #endif + if (mode != (mode_t) -1) mode &= 0777; @@ -697,6 +920,36 @@ int cg_set_task_access( if (mode != (mode_t) -1) mode &= 0666; + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + if (!controller) { + cgm_dbus_disconnect(); + return -1; + } + + r = cgm_chmod(normalize_controller(controller), + path, mode); + + if (!r) { + cgm_dbus_disconnect(); + return -1; + } + + r = cgm_chown(normalize_controller(controller), + path, uid, gid); + + if (!r) { + cgm_dbus_disconnect(); + return -1; + } + + cgm_dbus_disconnect(); + return 0; + } + #endif + + r = cg_get_path(controller, path, "tasks", &fs); if (r < 0) return r; @@ -906,14 +1159,59 @@ int cg_is_empty_by_spec(const char *spec int cg_is_empty_recursive(const char *controller, const char *path, bool ignore_self) { _cleanup_closedir_ DIR *d = NULL; char *fn; + char *p; int r; + char **children; + char *p1; + int i; + assert(path); r = cg_is_empty(controller, path, ignore_self); if (r <= 0) return r; + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + if (!controller) { + cgm_dbus_disconnect(); + return -1; + } + + r = cgm_list_children(normalize_controller(controller), + path, &children); + + cgm_dbus_disconnect(); + + if (!r) + return -1; + + if (children) { + r = 0; + while (children[i]) { + p1 = strjoin(path, "/", children[i], NULL); + + if (cg_is_empty_recursive(controller, p1, ignore_self) != 0) { + r = -1; + free(p1); + break; + } + + free(p1); + i++; + } + nih_free(children); + + if (r < 0) + return r; + } + + return 1; + } + #endif + r = cg_enumerate_subgroups(controller, path, &d); if (r < 0) return r == -ENOENT ? 1 : r; Index: systemd-204/src/shared/cgroup-util.h =================================================================== --- systemd-204.orig/src/shared/cgroup-util.h 2013-05-06 14:06:04.057670685 -0500 +++ systemd-204/src/shared/cgroup-util.h 2014-04-11 10:13:38.000000000 -0500 @@ -113,3 +113,5 @@ char *cg_escape(const char *p); char *cg_unescape(const char *p) _pure_; bool cg_controller_is_valid(const char *p, bool allow_named); + +const char *normalize_controller(const char *controller); Index: systemd-204/src/login/logind.c =================================================================== --- systemd-204.orig/src/login/logind.c 2014-04-11 10:13:38.000000000 -0500 +++ systemd-204/src/login/logind.c 2014-04-11 10:13:38.000000000 -0500 @@ -38,6 +38,7 @@ #include "strv.h" #include "conf-parser.h" #include "mkdir.h" +#include "cgmanager.h" Manager *manager_new(void) { Manager *m; @@ -601,6 +602,57 @@ static int manager_enumerate_users_from_ int r = 0, k; char *name; + char **children; + int i; + + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + r = cgm_list_children("systemd", m->cgroup_path, + &children); + + cgm_dbus_disconnect(); + if (!r) + return -1; + + if (children) { + i = 0; + while (children[i]) { + User *user; + char *e; + + name = children[i]; + + e = endswith(name, ".user"); + if (e) { + *e = 0; + + k = manager_add_user_by_name(m, name, &user); + if (k < 0) { + r = k; + i++; + continue; + } + + user_add_to_gc_queue(user); + + if (!user->cgroup_path) { + user->cgroup_path = strjoin(m->cgroup_path, "/", name, NULL); + if (!user->cgroup_path) { + r = log_oom(); + break; + } + } + } + i++; + } + nih_free(children); + } + + return r; + } + #endif + r = cg_enumerate_subgroups(SYSTEMD_CGROUP_CONTROLLER, m->cgroup_path, &d); if (r < 0) { if (r == -ENOENT) @@ -737,6 +789,9 @@ static int manager_enumerate_sessions_fr Iterator i; int r = 0; + char **children; + int i1; + HASHMAP_FOREACH(u, m->users, i) { _cleanup_closedir_ DIR *d = NULL; char *name; @@ -745,6 +800,55 @@ static int manager_enumerate_sessions_fr if (!u->cgroup_path) continue; + #ifdef HAVE_CGMANAGER + /* CGManager support */ + if (cgm_dbus_connect()) { + r = cgm_list_children("systemd", + u->cgroup_path, &children); + + cgm_dbus_disconnect(); + + if (!r) + return -1; + + if (children) { + i1 = 0; + while (children[i1]) { + Session *session; + char *e; + + name = children[i1]; + + e = endswith(name, ".session"); + if (e) { + *e = 0; + + k = manager_add_session(m, u, name, &session); + if (k < 0) { + r = k; + i1++; + continue; + } + + session_add_to_gc_queue(session); + + if (!session->cgroup_path) { + session->cgroup_path = strjoin(m->cgroup_path, "/", name, NULL); + if (!session->cgroup_path) { + r = log_oom(); + break; + } + } + } + i1++; + } + nih_free(children); + } + + continue; + } + #endif + k = cg_enumerate_subgroups(SYSTEMD_CGROUP_CONTROLLER, u->cgroup_path, &d); if (k < 0) { if (k == -ENOENT) debian/udev.init0000644000000000000000000001403512322650215011017 0ustar #!/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 devtmpfs 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 devtmpfs over /dev, if somebody did not already do it mount_devtmpfs() { if grep -E -q "^[^[:space:]]+ /dev devtmpfs" /proc/mounts; then mount -n -o remount,size=$tmpfs_size,mode=0755 -t devtmpfs devtmpfs /dev return fi if ! mount -n -o size=$tmpfs_size,mode=0755 -t devtmpfs devtmpfs /dev; then log_failure_msg "udev requires devtmpfs 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 "/dev/.udev/" ] || return 0 [ ! -e /run/udev/ ] || return 0 [ -e /run/ ] || return 0 mountpoint -q /run/ || return 0 mv /dev/.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" 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:]]devtmpfs$' /proc/filesystems; then log_failure_msg "udev requires devtmpfs 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 /dev/; then TMPFS_MOUNTED=1 elif [ -e "/dev/.udev/" ]; then log_warning_msg ".udev/ already exists on the static /dev" fi if [ ! -e "/dev/.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_devtmpfs [ -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 debian/debian-fixup0000755000000000000000000000104212322650215011462 0ustar #! /bin/sh set -e if [ ! -L /etc/mtab ]; then ln -sf /proc/mounts /etc/mtab fi # Migrate /var/run to be a symlink to /run, unless /run is already a # symlink, to prevent loops. if [ ! -L /var/run ]; then if [ ! -L /run ]; then rm -rf /var/run ln -s /run /var/run fi fi # Migrate /var/lock to be a symlink to /run/lock, unless /run/lock is # already a symlink, to prevent loops. if [ ! -L /var/lock ]; then if [ ! -L /run/lock ]; then rm -rf /var/lock ln -s /run/lock /var/lock fi fi exit 0 debian/extra/0000755000000000000000000000000012323005375010311 5ustar debian/extra/README-lib-rules.d0000644000000000000000000000263412322650215013312 0ustar The files in this directory are read by udev(7) and used when events are performed by the kernel. The udev daemon watches this directory with inotify so that changes to these files are automatically picked up, for this reason they must be files and not symlinks to another location as in the case in Debian. These are not conffiles. If you want to override the behaviour, you can do one of two things: 1) Write your own rules in /etc/udev/rules.d that assign the name, symlinks, permissions, etc. that you want. Pick a number higher than the rules you want to override, and yours will be used. 2) Copy the file to /etc/udev/rules.d and edit it there; you should generally only do this if you want to prevent a program from being run. Files should be named xx-descriptive-name.rules, the xx should be chosen first according to the following sequence points: < 60 rules shipped in packages; these can be overriden by later or default rules unless := is used in assignment. these cannot access persistent information such as that from blkid < 70 rules that run helpers such as blkid to populate the udev db < 90 rules that run other programs (often using information in the udev db) >=90 rules that should run last Common locations for package rules: 40-xx general rules, setting names and permissions 65-xx rules to populate the udev db 85-xx rules to run programs debian/extra/create_static_nodes0000644000000000000000000000115012322650215014231 0ustar #!/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 debian/extra/udev.base-installer0000644000000000000000000000021712322650215014101 0ustar #!/bin/sh -e RULESDIR=etc/udev/rules.d mkdir -p /target/$RULESDIR cp /$RULESDIR/70-persistent-*.rules /target/$RULESDIR 2>/dev/null || true debian/extra/make-fbdev-blacklist0000644000000000000000000000203712322650215014203 0ustar #!/bin/sh # This script should be run before building the package every time a new # kernel is released. # # You should pass the name of the modules directory for a 486 flavour # kernel, as that has the most framebuffer modules. # # Also, obsolete modules should not be removed from the list until after # at least one stable release. set -e if [ $# = 0 ]; then MODULES_DIR=/lib/modules/$(uname -r) else MODULES_DIR="$1" fi BL='fbdev-blacklist.conf' if [ -e extra/$BL ]; then cd extra; fi { printf "# This file blacklists most old-style PCI framebuffer drivers.\n\n" find "$MODULES_DIR"/kernel/drivers/video -type f | sort | \ while read file; do name="$(basename $file .ko)" case $name in lxfb) # This is needed for text consoles on OLPC XO-1, and it used to be # built-in anyway. ;; *) /sbin/modinfo $file | grep -q '^alias: *pci:' \ && echo blacklist $name || true ;; esac 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 debian/extra/rule_generator.functions0000644000000000000000000000555012322650215015263 0ustar # functions used by the udev rule generator # Copyright (C) 2006 Marco d'Itri # 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, either version 2 of the License, or # (at your option) any later version. # This program 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 this program. If not, see . PATH='/sbin:/bin' # PATH='/sbin:/bin' # Read a single line from file $1 in the $DEVPATH directory. # The function must not return an error even if the file does not exist. sysread() { local file="$1" [ -e "/sys$DEVPATH/$file" ] || return 0 local value read value < "/sys$DEVPATH/$file" || return 0 echo "$value" } sysreadlink() { local file="$1" [ -e "/sys$DEVPATH/$file" ] || return 0 readlink -f /sys$DEVPATH/$file 2> /dev/null || true } # Return true if a directory is writeable. writeable() { if ln -s test-link $1/.is-writeable 2> /dev/null; then rm -f $1/.is-writeable return 0 else return 1 fi } # Create a lock file for the current rules file. lock_rules_file() { RUNDIR=/run/udev [ -e "$RUNDIR" ] || return 0 RULES_LOCK="$RUNDIR/.lock-${RULES_FILE##*/}" retry=30 while ! mkdir $RULES_LOCK 2> /dev/null; do if [ $retry -eq 0 ]; then echo "Cannot lock $RULES_FILE!" >&2 exit 2 fi sleep 1 retry=$(($retry - 1)) done } unlock_rules_file() { [ "$RULES_LOCK" ] || return 0 rmdir $RULES_LOCK || true } # Choose the real rules file if it is writeable or a temporary file if not. # Both files should be checked later when looking for existing rules. choose_rules_file() { RUNDIR=/run/udev local tmp_rules_file="$RUNDIR/tmp-rules--${RULES_FILE##*/}" [ -e "$RULES_FILE" -o -e "$tmp_rules_file" ] || PRINT_HEADER=1 if writeable ${RULES_FILE%/*}; then RO_RULES_FILE='/dev/null' else RO_RULES_FILE=$RULES_FILE RULES_FILE=$tmp_rules_file fi } # Return the name of the first free device. raw_find_next_available() { local links="$1" local basename=${links%%[ 0-9]*} local max=-1 for name in $links; do local num=${name#$basename} [ "$num" ] || num=0 [ $num -gt $max ] && max=$num done local max=$(($max + 1)) # "name0" actually is just "name" [ $max -eq 0 ] && return echo "$max" } # Find all rules matching a key (with action) and a pattern. find_all_rules() { local key="$1" local linkre="$2" local match="$3" local search='.*[[:space:],]'"$key"'"('"$linkre"')".*' echo $(sed -n -r -e 's/^#.*//' -e "${match}s/${search}/\1/p" \ $RO_RULES_FILE \ $([ -e $RULES_FILE ] && echo $RULES_FILE) \ 2>/dev/null) } debian/extra/60-keyboard.hwdb0000644000000000000000000013511112322650215013202 0ustar # This file is part of systemd. # # Keyboard mapping of scan codes to key codes, and # scan codes to add to the AT keyboard's 'force-release' list. # # The lookup keys are composed in: # 60-keyboard.rules # # Note: The format of the "keyboard:" prefix match key is a # contract between the rules file and the hardware data, it might # change in later revisions to support more or better matches, it # is not necessarily expected to be a stable ABI. # # Supported hardware matches are: # - USB keyboards identified by the usb kernel modalias: # keyboard:usb:vXXXXpYYYY* # XXXX is the 4-digit hex uppercase vendor, and YYYY # the 4-digit hex uppercase product. # # - AT keyboard DMI data matches: # keyboard:dmi:bvn*:bvr*:bd*:svn:pn:pvr* # and are the firmware-provided strings # exported by the kernel DMI modalias. # # - Platform driver device name and DMI data match: # keyboard:name::dmi:bvn*:bvr*:bd*:svn:pn* # is the name device specified by the # driver, is the firmware-provided string exported # by the kernel DMI modalias. # # Scan codes are specified as: # KEYBOARD_KEY_= # The scan code should be expressed in hex lowercase and in # full bytes, a multiple of 2 digits. The key codes are retrieved # and normalized from the kernel input API header. # # A '!' as the first charcter of the key identifier string # will add the scan code to the AT keyboard's list of scan codes # where the driver will synthesize a release event and not expect # it to be generated by the hardware. # # To debug key presses and access scan code mapping data of # an input device use the commonly available tool: evtest(1). ########################################## # Acer ########################################## # common keys keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn* keyboard:dmi:bvn*:bvr*:bd*:svnGateway*:pnA0A1*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:pvr* KEYBOARD_KEY_a5=help # Fn+F1 KEYBOARD_KEY_a6=setup # Fn+F2 Acer eSettings KEYBOARD_KEY_a7=battery # Fn+F3 Power Management KEYBOARD_KEY_a9=switchvideomode # Fn+F5 KEYBOARD_KEY_b2=www KEYBOARD_KEY_b3=euro KEYBOARD_KEY_b4=dollar KEYBOARD_KEY_ce=brightnessup # Fn+Right KEYBOARD_KEY_d4=bluetooth # (toggle) off-to-on KEYBOARD_KEY_d5=wlan # (toggle) on-to-off KEYBOARD_KEY_d6=wlan # (toggle) off-to-on KEYBOARD_KEY_d7=bluetooth # (toggle) on-to-off KEYBOARD_KEY_d8=bluetooth # (toggle) off-to-on KEYBOARD_KEY_d9=brightnessup # Fn+Right KEYBOARD_KEY_ee=brightnessup # Fn+Right KEYBOARD_KEY_ef=brightnessdown # Fn+Left KEYBOARD_KEY_f1=f22 # Fn+F7 Touchpad toggle (off-to-on) KEYBOARD_KEY_f2=f23 # Fn+F7 Touchpad toggle (on-to-off) KEYBOARD_KEY_f3=prog2 # "P2" programmable button KEYBOARD_KEY_f4=prog1 # "P1" programmable button KEYBOARD_KEY_f5=presentation KEYBOARD_KEY_f8=fn KEYBOARD_KEY_f9=prog1 # Launch NTI shadow # Acer platform kernel driver keyboard:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnAcer*:pvr* KEYBOARD_KEY_82=f21 # Touchpad toggle # Aspire models keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*:pvr* KEYBOARD_KEY_84=bluetooth # sent when bluetooth module missing, and key pressed KEYBOARD_KEY_d9=bluetooth # Bluetooth off KEYBOARD_KEY_92=media # Acer arcade keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*5720*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnZG8*:pvr* KEYBOARD_KEY_f4=prog3 # e-key keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*5920G:* KEYBOARD_KEY_8a=media KEYBOARD_KEY_a6=setup keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*6920:* keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*8930:* KEYBOARD_KEY_ca=prog3 # key 'HOLD' on CineDash Media Console KEYBOARD_KEY_83=rewind KEYBOARD_KEY_89=fastforward KEYBOARD_KEY_9e=back # Travelmate C300 keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:pvr* KEYBOARD_KEY_67=f24 # FIXME: rotate screen KEYBOARD_KEY_68=up KEYBOARD_KEY_69=down KEYBOARD_KEY_6b=fn KEYBOARD_KEY_6c=screenlock # FIXME: lock tablet device/buttons # on some models this isn't brightnessup keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5210*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5220*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5610*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5620*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5720*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*4720*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*6593:* keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*1640:* KEYBOARD_KEY_ee=screenlock keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOA*:pvr* KEYBOARD_KEY_a9=!switchvideomode # Fn+F5 ########################################################### # Alienware ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnAlienware*:pn* KEYBOARD_KEY_8a=ejectcd ########################################################### # Asus ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnASUS:pn* KEYBOARD_KEY_ed=volumeup KEYBOARD_KEY_ee=volumedown KEYBOARD_KEY_ef=mute keyboard:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr* KEYBOARD_KEY_6b=f21 # Touchpad Toggle ########################################################### # BenQ ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svn*BenQ*:pn*Joybook*R22*:pvr* KEYBOARD_KEY_6e=wlan ########################################################### # Compal ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnCOMPAL:pnHEL80I:* KEYBOARD_KEY_84=wlan ########################################################### # COMPAQ ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*E500*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:pvr* KEYBOARD_KEY_a3=www # I key KEYBOARD_KEY_9a=search KEYBOARD_KEY_9e=email KEYBOARD_KEY_9f=homepage ########################################################### # Dell ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pn* KEYBOARD_KEY_81=playpause # Play/Pause KEYBOARD_KEY_82=stopcd # Stop KEYBOARD_KEY_83=previoussong # Previous song KEYBOARD_KEY_84=nextsong # Next song KEYBOARD_KEY_85=brightnessdown # Fn+Down Brightness Down KEYBOARD_KEY_86=brightnessup # Fn+Up Brightness Up KEYBOARD_KEY_87=battery # Fn+F3 battery icon KEYBOARD_KEY_88=unknown # Fn+F2 Turn On/Off Wireless - handled in hardware KEYBOARD_KEY_89=ejectclosecd # Fn+F10 Eject CD KEYBOARD_KEY_8a=suspend # Fn+F1 hibernate KEYBOARD_KEY_8b=switchvideomode # Fn+F8 CRT/LCD (high keycode: "displaytoggle") KEYBOARD_KEY_8c=unknown # Fn+Right Auto Brightness KEYBOARD_KEY_8F=switchvideomode # Fn+F7 aspect ratio KEYBOARD_KEY_90=previoussong # Front panel previous song KEYBOARD_KEY_91=prog1 # Wi-Fi Catcher (Dell-specific) KEYBOARD_KEY_92=media # MediaDirect button (house icon) KEYBOARD_KEY_93=unknown # FIXME Fn+Left Auto Brightness KEYBOARD_KEY_95=camera # Shutter button - Takes a picture if optional camera available KEYBOARD_KEY_97=email # Tablet email button KEYBOARD_KEY_98=f21 # FIXME: Tablet screen rotation KEYBOARD_KEY_99=nextsong # Front panel next song KEYBOARD_KEY_9a=setup # Tablet tools button KEYBOARD_KEY_9b=switchvideomode # Display toggle button KEYBOARD_KEY_9e=f21 # Touchpad toggle KEYBOARD_KEY_a2=playpause # Front panel play/pause KEYBOARD_KEY_a4=stopcd # Front panel stop KEYBOARD_KEY_ed=media # MediaDirect button KEYBOARD_KEY_d8=screenlock # FIXME: Tablet lock button KEYBOARD_KEY_d9=f21 # Touchpad toggle # keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*910:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*101[012]:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1110:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:pvr* KEYBOARD_KEY_84=wlan # Latitude XT2 keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*XT2:pvr* KEYBOARD_KEY_9b=up # tablet rocker up KEYBOARD_KEY_9e=enter # tablet rocker press KEYBOARD_KEY_9f=back # tablet back KEYBOARD_KEY_a3=down # tablet rocker down keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnStudio*155[78]:pvr* KEYBOARD_KEY_a0=! # mute KEYBOARD_KEY_ae=! # volume down KEYBOARD_KEY_b0=! # volume up # Dell Touchpad keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr* KEYBOARD_KEY_9e=!f21 # Dell XPS keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* KEYBOARD_KEY_8c=!unknown ########################################################### # Everex ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnEverex:pnXT5000*:pvr* KEYBOARD_KEY_5c=media KEYBOARD_KEY_65=f21 # Fn+F5 Touchpad toggle KEYBOARD_KEY_67=prog3 # Fan speed control button KEYBOARD_KEY_6f=brightnessup KEYBOARD_KEY_7f=brightnessdown KEYBOARD_KEY_b2=www KEYBOARD_KEY_ec=mail ########################################## # Fujitsu ########################################## keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pnAMILO*M*:pvr* KEYBOARD_KEY_97=prog2 KEYBOARD_KEY_9f=prog1 keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pnAmilo*Li*1718:* KEYBOARD_KEY_d6=wlan # Amilo Li 2732 keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pnAMILO*Li*2732:* KEYBOARD_KEY_d9=brightnessdown # Fn+F8 brightness down KEYBOARD_KEY_ef=brightnessup # Fn+F9 brightness up KEYBOARD_KEY_a9=switchvideomode # Fn+F10 Cycle between available video outputs # Amilo Pa 2548 keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pa*2548*:pvr* KEYBOARD_KEY_e0=volumedown KEYBOARD_KEY_e1=volumeup KEYBOARD_KEY_e5=prog1 # Amilo Pro Edition V3505 keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pro*Edition*V3505*:pvr* KEYBOARD_KEY_a5=help # Fn+F1 KEYBOARD_KEY_a9=switchvideomode # Fn+F3 KEYBOARD_KEY_d9=brightnessdown # Fn+F8 KEYBOARD_KEY_e0=brightnessup # Fn+F9 # Amilo Pro v3205 keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pro*V3205*:pvr* KEYBOARD_KEY_f4=f21 # FIXME: silent-mode decrease CPU/GPU clock KEYBOARD_KEY_f7=switchvideomode # Fn+F3 # Amilo Si 1520 keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*Amilo*Si*1520*:pvr* KEYBOARD_KEY_e1=wlan KEYBOARD_KEY_f3=wlan KEYBOARD_KEY_ee=brightnessdown KEYBOARD_KEY_e0=brightnessup KEYBOARD_KEY_e2=bluetooth KEYBOARD_KEY_f7=video # Esprimo Mobile V5 keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*ESPRIMO*Mobile*V5*:pvr* KEYBOARD_KEY_a9=switchvideomode KEYBOARD_KEY_d9=brightnessdown KEYBOARD_KEY_df=sleep KEYBOARD_KEY_ef=brightnessup # Esprimo Mobile V6 keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*ESPRIMO*Mobile*V6*:pvr* KEYBOARD_KEY_ce=brightnessup KEYBOARD_KEY_ef=brightnessdown ########################################################### # GIGABYTE ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnGIGABYTE:pnU2442:* KEYBOARD_KEY_a0=! # mute ########################################################### # Genius ########################################################### # Slimstar 320 keyboard:usb:v0458p0708d*dc*dsc*dp*ic*isc*ip*in01* KEYBOARD_KEY_0900f0=scrollup KEYBOARD_KEY_0900f1=scrolldown KEYBOARD_KEY_0900f3=back KEYBOARD_KEY_0900f2=forward KEYBOARD_KEY_0900f5=wordprocessor KEYBOARD_KEY_0900f6=spreadsheet KEYBOARD_KEY_0900f4=presentation KEYBOARD_KEY_0c0223=www KEYBOARD_KEY_0900f7=chat KEYBOARD_KEY_0900fb=prog1 KEYBOARD_KEY_0900f8=close KEYBOARD_KEY_0900f9=graphicseditor KEYBOARD_KEY_0900fd=scale KEYBOARD_KEY_0900fc=screenlock ########################################################### # Hewlett Packard ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*:pvr* KEYBOARD_KEY_81=fn_esc KEYBOARD_KEY_89=battery # Fn+F8 KEYBOARD_KEY_8a=screenlock # Fn+F6 KEYBOARD_KEY_8b=camera KEYBOARD_KEY_8c=media # music KEYBOARD_KEY_8e=dvd KEYBOARD_KEY_b1=help KEYBOARD_KEY_b3=unknown # FIXME: Auto brightness KEYBOARD_KEY_d7=wlan KEYBOARD_KEY_92=brightnessdown # Fn+F7 (Fn+F9 on 6730b) KEYBOARD_KEY_97=brightnessup # Fn+F8 (Fn+F10 on 6730b) KEYBOARD_KEY_ee=switchvideomode # Fn+F4 # Tablet keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][aA][bB][lL][eE][tT]*:pvr* KEYBOARD_KEY_82=prog2 # Funny Key KEYBOARD_KEY_83=prog1 # Q KEYBOARD_KEY_84=tab KEYBOARD_KEY_85=esc KEYBOARD_KEY_86=pageup KEYBOARD_KEY_87=pagedown # Pavilion keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:pvr* KEYBOARD_KEY_88=media # FIXME: quick play KEYBOARD_KEY_b7=print KEYBOARD_KEY_d8=!f23 # touchpad off KEYBOARD_KEY_d9=!f22 # touchpad on keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:pvr* KEYBOARD_KEY_b7=print KEYBOARD_KEY_c2=media # FIXME: quick play KEYBOARD_KEY_c6=break KEYBOARD_KEY_94=0 # Elitebook keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Compaq*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2230s*:pvr* KEYBOARD_KEY_88=presentation KEYBOARD_KEY_d9=help # I key (high keycode: "info") # Presario keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Presario*CQ*:pvr* KEYBOARD_KEY_d8=f21 KEYBOARD_KEY_d9=f21 # 2510p 2530p keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2510p*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2530p*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*G60*Notebook*PC:pvr* KEYBOARD_KEY_d8=!f23 # touchpad off KEYBOARD_KEY_d9=!f22 # touchpad on # 2570p keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:pvr* KEYBOARD_KEY_f8=wlan # Wireless HW switch button # TX2 keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][xX]2*:pvr* KEYBOARD_KEY_c2=media KEYBOARD_KEY_d8=!f23 # Toggle touchpad button on tx2 (OFF) KEYBOARD_KEY_d9=!f22 # Toggle touchpad button on tx2 (ON) # Presario 2100 keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnPresario*2100*:pvr* KEYBOARD_KEY_f0=help KEYBOARD_KEY_f1=screenlock KEYBOARD_KEY_f3=search # Elitebook 8440p keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*EliteBook*8440p:pvr* KEYBOARD_KEY_88=www KEYBOARD_KEY_a0=mute KEYBOARD_KEY_ae=volumedown KEYBOARD_KEY_b0=volumeup KEYBOARD_KEY_ec=mail # Elitebook 8460p keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*EliteBook*8460p:pvr* KEYBOARD_KEY_f8=wlan # Wireless HW switch button KEYBOARD_KEY_b3=prog1 # Fn+F11 - Ambient Light Sensor button KEYBOARD_KEY_b1=prog2 # Fn+ESC - System information button # HDX9494nr keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHDX9494NR:pvr* KEYBOARD_KEY_b2=www # Fn+F3 KEYBOARD_KEY_d8=!f23 # touchpad off KEYBOARD_KEY_d9=!f22 # touchpad on # Chromebook 14 # Top row keys (between ESC and power button) keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnFalco:pvr* KEYBOARD_KEY_3b=back KEYBOARD_KEY_3c=forward KEYBOARD_KEY_3d=refresh KEYBOARD_KEY_3f=switchvideomode KEYBOARD_KEY_40=brightnessdown KEYBOARD_KEY_41=brightnessup KEYBOARD_KEY_42=mute KEYBOARD_KEY_43=volumedown KEYBOARD_KEY_44=volumeup KEYBOARD_KEY_db=search # Same position as caps lock key on most keyboards # KEYBOARD_KEY_3e=fullscreen, no defined key sym ########################################################### # IBM ########################################################### # thinkpad_acpi driver keyboard:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnIBM*:pn*:pvr* KEYBOARD_KEY_01=battery # Fn+F2 KEYBOARD_KEY_02=screenlock # Fn+F3 KEYBOARD_KEY_03=sleep # Fn+F4 KEYBOARD_KEY_04=wlan # Fn+F5 KEYBOARD_KEY_06=switchvideomode # Fn+F7 KEYBOARD_KEY_07=zoom # Fn+F8 screen expand KEYBOARD_KEY_08=f24 # Fn+F9 undock KEYBOARD_KEY_0b=suspend # Fn+F12 KEYBOARD_KEY_0f=brightnessup # Fn+Home KEYBOARD_KEY_10=brightnessdown # Fn+End KEYBOARD_KEY_11=kbdillumtoggle # Fn+PgUp - ThinkLight KEYBOARD_KEY_13=zoom # Fn+Space KEYBOARD_KEY_14=volumeup KEYBOARD_KEY_15=volumedown KEYBOARD_KEY_16=mute KEYBOARD_KEY_17=prog1 # ThinkPad/ThinkVantage button (high keycode: "vendor") # IBM Thinkpad USB Keyboard Trackpoint keyboard:usb:v04B3p301[89]* KEYBOARD_KEY_900f0=screenlock KEYBOARD_KEY_900f1=wlan KEYBOARD_KEY_900f2=switchvideomode KEYBOARD_KEY_900f3=suspend KEYBOARD_KEY_900f4=brightnessup KEYBOARD_KEY_900f5=brightnessdown KEYBOARD_KEY_900f8=zoom ########################################################### # Inventec ########################################################### # Symphony keyboard:dmi:bvn*:bvr*:bd*:svnINVENTEC:pnSYMPHONY*6.0/7.0:pvr* KEYBOARD_KEY_f3=prog2 KEYBOARD_KEY_f4=prog1 ########################################################### # Lenovo ########################################################### # thinkpad_acpi driver keyboard:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* KEYBOARD_KEY_01=screenlock KEYBOARD_KEY_02=battery KEYBOARD_KEY_03=sleep KEYBOARD_KEY_04=wlan KEYBOARD_KEY_06=switchvideomode KEYBOARD_KEY_07=f21 KEYBOARD_KEY_08=f24 KEYBOARD_KEY_0b=suspend KEYBOARD_KEY_0f=brightnessup KEYBOARD_KEY_10=brightnessdown KEYBOARD_KEY_11=kbdillumtoggle KEYBOARD_KEY_13=zoom KEYBOARD_KEY_14=volumeup KEYBOARD_KEY_15=volumedown KEYBOARD_KEY_16=mute KEYBOARD_KEY_17=prog1 KEYBOARD_KEY_1a=f20 # ThinkPad Keyboard with TrackPoint keyboard:usb:v17EFp6009* KEYBOARD_KEY_090012=screenlock # Fn+F2 KEYBOARD_KEY_090013=battery # Fn+F3 KEYBOARD_KEY_090014=wlan # Fn+F5 KEYBOARD_KEY_090016=switchvideomode # Fn+F7 KEYBOARD_KEY_090017=f21 # Fn+F8 touchpad toggle KEYBOARD_KEY_090019=suspend # Fn+F12 KEYBOARD_KEY_09001a=brightnessup # Fn+Home KEYBOARD_KEY_09001b=brightnessdown # Fn+End KEYBOARD_KEY_09001d=zoom # Fn+Space KEYBOARD_KEY_090011=prog1 # ThinkVantage button KEYBOARD_KEY_090015=camera # Fn+F6 headset/camera VoIP key ?? KEYBOARD_KEY_090010=f20 # Microphone mute button; should be micmute # Lenovo 3000 keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*3000*:pvr* KEYBOARD_KEY_8b=switchvideomode # Fn+F7 video KEYBOARD_KEY_96=wlan # Fn+F5 wireless KEYBOARD_KEY_97=sleep # Fn+F4 suspend KEYBOARD_KEY_98=suspend # Fn+F12 hibernate KEYBOARD_KEY_b4=prog1 # Lenovo Care # lenovo-ideapad keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:pvr* KEYBOARD_KEY_81=rfkill # does nothing in BIOS KEYBOARD_KEY_83=display_off # BIOS toggles screen state KEYBOARD_KEY_b9=brightnessup # does nothing in BIOS KEYBOARD_KEY_ba=brightnessdown # does nothing in BIOS KEYBOARD_KEY_f1=camera # BIOS toggles camera power KEYBOARD_KEY_f2=f21 # touchpad toggle (key alternately emits F2 and F3) KEYBOARD_KEY_f3=f21 # Thinkpad X200_Tablet keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X2*Tablet*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* KEYBOARD_KEY_5d=menu KEYBOARD_KEY_63=fn KEYBOARD_KEY_66=screenlock KEYBOARD_KEY_67=cyclewindows # bezel circular arrow KEYBOARD_KEY_68=setup # bezel setup / menu KEYBOARD_KEY_6c=direction # rotate screen # ThinkPad X6 Tablet keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* KEYBOARD_KEY_6c=f21 # rotate KEYBOARD_KEY_68=screenlock # screenlock KEYBOARD_KEY_6b=esc # escape KEYBOARD_KEY_6d=right # right on d-pad KEYBOARD_KEY_6e=left # left on d-pad KEYBOARD_KEY_71=up # up on d-pad KEYBOARD_KEY_6f=down # down on d-pad KEYBOARD_KEY_69=enter # enter on d-pad # IdeaPad keyboard:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* KEYBOARD_KEY_42=f23 KEYBOARD_KEY_43=f22 keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr* KEYBOARD_KEY_95=media KEYBOARD_KEY_a3=play keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr* KEYBOARD_KEY_f1=f21 KEYBOARD_KEY_ce=f20 keyboard:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr* KEYBOARD_KEY_a0=!mute KEYBOARD_KEY_ae=!volumedown KEYBOARD_KEY_b0=!volumeup # V480 keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr* KEYBOARD_KEY_f1=f21 ########################################################### # Logitech ########################################################### # iTouch keyboard:usb:v046DpC308* KEYBOARD_KEY_90001=shop # Shopping KEYBOARD_KEY_90002=config # iTouch KEYBOARD_KEY_90003=finance # Finance KEYBOARD_KEY_90004=prog1 # My Sites KEYBOARD_KEY_90005=prog2 # Community KEYBOARD_KEY_C0183=media # Media # Cordless Desktop S510 keyboard:usb:v046DpC50C* KEYBOARD_KEY_d4=zoomin KEYBOARD_KEY_cc=zoomout # Wave cordless keyboard:usb:v046DpC317* KEYBOARD_KEY_9001c=scale # expo KEYBOARD_KEY_9001f=zoomout KEYBOARD_KEY_90020=zoomin KEYBOARD_KEY_9003d=prog1 # gadget KEYBOARD_KEY_90005=camera KEYBOARD_KEY_90018=media KEYBOARD_KEY_90041=wordprocessor KEYBOARD_KEY_90042=spreadsheet KEYBOARD_KEY_90043=calendar KEYBOARD_KEY_90044=prog2 # fn+f4 (program a) KEYBOARD_KEY_90045=prog3 # fn+f5 (program b) KEYBOARD_KEY_90046=prog4 # fn+f6 (program c) KEYBOARD_KEY_90048=messenger # fn+f8 (msn messenger) KEYBOARD_KEY_9002d=search # fn+f10 (search www) KEYBOARD_KEY_9004b=find # fn+f11 (search pc) KEYBOARD_KEY_9004c=ejectclosecd # Wave cordless keyboard:usb:v046DpC517* KEYBOARD_KEY_c101f=zoomout KEYBOARD_KEY_c1020=zoomin KEYBOARD_KEY_c1005=camera KEYBOARD_KEY_c0183=media KEYBOARD_KEY_c1041=wordprocessor KEYBOARD_KEY_c1042=spreadsheet KEYBOARD_KEY_c1043=calendar KEYBOARD_KEY_c1044=prog2 # fn+f4 (program a) KEYBOARD_KEY_c1045=prog3 # fn+f5 (program b) KEYBOARD_KEY_c1046=prog4 # fn+f6 (program c) KEYBOARD_KEY_c1048=messenger # fn+f8 (msn messenger) KEYBOARD_KEY_c104a=find # fn+f10 (search www) KEYBOARD_KEY_c104c=ejectclosecd # Cordless Wave Pro keyboard:usb:v046DpC52[9B]* KEYBOARD_KEY_0c01b6=camera KEYBOARD_KEY_0c0183=media KEYBOARD_KEY_0c0184=wordprocessor KEYBOARD_KEY_0c0186=spreadsheet KEYBOARD_KEY_0c018e=calendar KEYBOARD_KEY_0c0223=homepage KEYBOARD_KEY_0c01bc=messenger KEYBOARD_KEY_0c018a=mail KEYBOARD_KEY_0c0221=search KEYBOARD_KEY_0c00b8=ejectcd KEYBOARD_KEY_0c022d=zoomin KEYBOARD_KEY_0c022e=zoomout # Logitech Presenter R400 keyboard:usb:v046DpC52Dd*dc*dsc*dp*ic*isc*ip*in00* KEYBOARD_KEY_070029=presentation KEYBOARD_KEY_07003e=presentation KEYBOARD_KEY_070037=displaytoggle # Internet Navigator keyboard:usb:v046DpC309* KEYBOARD_KEY_90001=chat # Messenger/SMS KEYBOARD_KEY_90002=camera # webcam KEYBOARD_KEY_90003=prog1 # iTouch KEYBOARD_KEY_90004=shop # Shopping KEYBOARD_KEY_C0201=new # New (F1) KEYBOARD_KEY_C0289=reply # Reply mail (F2) KEYBOARD_KEY_C028B=forwardmail # Forward mail (F3) KEYBOARD_KEY_C028C=send # Send (F4) KEYBOARD_KEY_C021A=undo # Undo (F5). KEYBOARD_KEY_C0279=redo # Redo (F6). KEYBOARD_KEY_C0208=print # Print (F7) KEYBOARD_KEY_C0207=save # Save (F8) KEYBOARD_KEY_C0194=file # My Computer (F9) KEYBOARD_KEY_C01A7=documents # My Documents (F10) KEYBOARD_KEY_C01B6=images # My Pictures (F11) ?? KEYBOARD_KEY_C01B7=sound # My Music (F12) ?? ########################################################### # Maxdata ########################################################### # Pro 7000 keyboard:dmi:bvn*:bvr*:bd*:svnMAXDATA:pnPro*7000*:pvr* KEYBOARD_KEY_97=prog2 KEYBOARD_KEY_9f=prog1 KEYBOARD_KEY_a0=mute # Fn+F5 KEYBOARD_KEY_82=www KEYBOARD_KEY_ec=email KEYBOARD_KEY_ae=volumedown # Fn+Down KEYBOARD_KEY_b0=volumeup # Fn+Up KEYBOARD_KEY_df=suspend # Fn+F2 KEYBOARD_KEY_f5=help ########################################################### # Medion ########################################################### # FID2060 keyboard:dmi:bvn*:bvr*:bd*:svnMEDION*:pn*FID2060*:pvr* KEYBOARD_KEY_6b=channeldown # Thottle Down KEYBOARD_KEY_6d=channelup # Thottle Up # NB-A555 keyboard:dmi:bvn*:bvr*:bd*:svnMEDIONNB:pnA555*:pvr* KEYBOARD_KEY_63=www # N button KEYBOARD_KEY_66=prog1 # link 1 button KEYBOARD_KEY_67=email # envelope button KEYBOARD_KEY_69=prog2 # link 2 button ########################################################### # Microsoft ########################################################### # Microsoft Natural Ergonomic Keyboard 4000 keyboard:usb:v045Ep00DB* KEYBOARD_KEY_c022d=zoomin KEYBOARD_KEY_c022e=zoomout ########################################################### # Micro Star ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn* keyboard:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn* KEYBOARD_KEY_a0=mute # Fn+F9 KEYBOARD_KEY_ae=volumedown # Fn+F7 KEYBOARD_KEY_b0=volumeup # Fn+F8 KEYBOARD_KEY_b2=www # e button KEYBOARD_KEY_df=sleep # Fn+F12 KEYBOARD_KEY_e2=bluetooth # satellite dish2 KEYBOARD_KEY_e4=f21 # Fn+F3 Touchpad disable KEYBOARD_KEY_ec=email # envelope button KEYBOARD_KEY_ee=camera # Fn+F6 camera disable KEYBOARD_KEY_f6=wlan # satellite dish1 KEYBOARD_KEY_f7=brightnessdown # Fn+F4 KEYBOARD_KEY_f8=brightnessup # Fn+F5 KEYBOARD_KEY_f9=search # keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE60*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE70*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:pvr* KEYBOARD_KEY_c2=ejectcd # keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U-100*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U100*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*N033:* KEYBOARD_KEY_f7=reserved KEYBOARD_KEY_f8=reserved # keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:* KEYBOARD_KEY_e4=reserved ########################################################### # MSI ########################################################### keyboard:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][aA][rR]*:pvr* KEYBOARD_KEY_0213=f22 KEYBOARD_KEY_0214=f23 ########################################################### # OLPC ########################################################### # XO keyboard:dmi:bvn*:bvr*:bd*:svnOLPC:pnXO:* KEYBOARD_KEY_59=fn KEYBOARD_KEY_81=fn_esc KEYBOARD_KEY_f9=camera KEYBOARD_KEY_f8=sound # Fn+CAMERA = Mic KEYBOARD_KEY_43=brightnessdown KEYBOARD_KEY_44=brightnessup KEYBOARD_KEY_57=volumedown KEYBOARD_KEY_58=volumeup KEYBOARD_KEY_bb=f1 KEYBOARD_KEY_bc=f2 KEYBOARD_KEY_bd=f3 KEYBOARD_KEY_be=f4 KEYBOARD_KEY_bf=f5 KEYBOARD_KEY_c0=f6 KEYBOARD_KEY_c1=f7 KEYBOARD_KEY_c2=f8 KEYBOARD_KEY_c3=f9 KEYBOARD_KEY_c4=f10 KEYBOARD_KEY_c7=f11 KEYBOARD_KEY_d8=f12 KEYBOARD_KEY_f7=f13 KEYBOARD_KEY_f6=f14 KEYBOARD_KEY_f5=f15 KEYBOARD_KEY_f4=f16 KEYBOARD_KEY_f3=f17 KEYBOARD_KEY_f2=f18 KEYBOARD_KEY_f1=f19 KEYBOARD_KEY_f0=f20 KEYBOARD_KEY_ef=f21 KEYBOARD_KEY_ee=chat KEYBOARD_KEY_e4=chat KEYBOARD_KEY_dd=menu # Frame KEYBOARD_KEY_da=prog1 # Fn+Frame KEYBOARD_KEY_d3=delete KEYBOARD_KEY_d2=insert KEYBOARD_KEY_c9=pageup KEYBOARD_KEY_d1=pagedown KEYBOARD_KEY_c7=home KEYBOARD_KEY_cF=end KEYBOARD_KEY_73=hp KEYBOARD_KEY_7e=hp KEYBOARD_KEY_db=leftmeta # left grab KEYBOARD_KEY_dc=rightmeta # right grab KEYBOARD_KEY_85=rightmeta # Right grab releases on a different scancode KEYBOARD_KEY_d6=kbdillumtoggle # Fn+Space KEYBOARD_KEY_69=switchvideomode # Brightness key KEYBOARD_KEY_65=kp8 # up KEYBOARD_KEY_66=kp2 # down KEYBOARD_KEY_67=kp4 # left KEYBOARD_KEY_68=kp6 # right KEYBOARD_KEY_e5=kp9 # pgup KEYBOARD_KEY_e6=kp3 # pgdn KEYBOARD_KEY_e7=kp7 # home KEYBOARD_KEY_e8=kp1 # end ########################################################### # Onkyo ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnONKYO*CORPORATION:pnONKYOPC:* KEYBOARD_KEY_a0=mute # Fn+D KEYBOARD_KEY_ae=volumedown # Fn+F KEYBOARD_KEY_b0=volumeup # Fn+G KEYBOARD_KEY_df=sleep # Fn+W KEYBOARD_KEY_e0=bluetooth # Fn+H KEYBOARD_KEY_e2=cyclewindows # Fn+Esc KEYBOARD_KEY_ee=battery # Fn+Q KEYBOARD_KEY_f0=media # Fn+R KEYBOARD_KEY_f5=switchvideomode # Fn+E KEYBOARD_KEY_f6=camera # Fn+T KEYBOARD_KEY_f7=f21 # Fn+Y (touchpad toggle) KEYBOARD_KEY_f8=brightnessup # Fn+S KEYBOARD_KEY_f9=brightnessdown # Fn+A KEYBOARD_KEY_fb=wlan # Fn+J ########################################################### # OQO ########################################################### # Model 2 keyboard:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr* KEYBOARD_KEY_8e=wlan KEYBOARD_KEY_f0=switchvideomode KEYBOARD_KEY_f1=mute KEYBOARD_KEY_f2=volumedown KEYBOARD_KEY_f3=volumeup ########################################################### # Quanta ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*:rvnQuanta:rn30B7:rvr65.2B:* KEYBOARD_KEY_88=media # "quick play ########################################################### # Samsung ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn* KEYBOARD_KEY_74=prog1 # User key KEYBOARD_KEY_75=www KEYBOARD_KEY_78=mail KEYBOARD_KEY_82=!switchvideomode # Fn+F4 CRT/LCD (high keycode: "displaytoggle") KEYBOARD_KEY_83=!battery # Fn+F2 KEYBOARD_KEY_84=!prog1 # Fn+F5 backlight on/off KEYBOARD_KEY_86=!wlan # Fn+F9 KEYBOARD_KEY_88=!brightnessup # Fn+Up KEYBOARD_KEY_89=!brightnessdown # Fn+Down KEYBOARD_KEY_b1=!prog2 # Fn+F7 run Samsung Magic Doctor (keypressed event is generated twice) KEYBOARD_KEY_b3=!prog3 # Fn+F8 switch power mode (battery/dynamic/performance) KEYBOARD_KEY_b4=!wlan # Fn+F9 (X60P) KEYBOARD_KEY_c5=!prog3 # Fn+F8 switch power mode (battery/dynamic/performance) KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch KEYBOARD_KEY_f7=!f22 # Fn+F10 Touchpad on KEYBOARD_KEY_f9=!f23 # Fn+F10 Touchpad off # Series 3 keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*300E[457]*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*200E[45]*:pvr* KEYBOARD_KEY_ce=! # Fn+F1 launch control setting # Series 5 keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*530U*:pvr* KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings KEYBOARD_KEY_a8=! # Fn Lock - Function lock on KEYBOARD_KEY_a9=! # Fn Lock - Function lock off keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr* KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings KEYBOARD_KEY_a8=! # Fn Lock - Function lock on KEYBOARD_KEY_a9=! # Fn Lock - Function lock off # Series 7 / 9 keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr* KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings KEYBOARD_KEY_a0=!mute # Fn+F6 mute KEYBOARD_KEY_ae=!volumedown # Fn+F7 KEYBOARD_KEY_b0=!volumeup # Fn+F8 KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][AB]*:pvr* KEYBOARD_KEY_ce=! # Fn+F8 keyboard backlight up KEYBOARD_KEY_8d=! # Fn+F7 keyboard backlight down KEYBOARD_KEY_96=! # Fn+F1 performance mode (?) KEYBOARD_KEY_97=! # Fn+F12 Wi-Fi toggle KEYBOARD_KEY_d5=! # Fn+F6 battery life extender keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:pvr* KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings KEYBOARD_KEY_8d=!prog3 # Fn+F6 performance mode KEYBOARD_KEY_97=!kbdillumdown # Fn+F7 keyboard backlight down KEYBOARD_KEY_96=!kbdillumup # Fn+F8 keyboard backlight up KEYBOARD_KEY_d5=!wlan # Fn+F12 Wi-Fi toggle # Series 7 Ultra keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr* KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch # SQ1US keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr* KEYBOARD_KEY_d4=menu KEYBOARD_KEY_d8=f1 KEYBOARD_KEY_d9=f10 KEYBOARD_KEY_d6=f3 KEYBOARD_KEY_d7=f9 KEYBOARD_KEY_e4=f5 KEYBOARD_KEY_ee=f11 # SX20S keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*SX20S*:pvr* KEYBOARD_KEY_74=mute KEYBOARD_KEY_75=mute KEYBOARD_KEY_77=f22 # Touchpad on KEYBOARD_KEY_79=f23 # Touchpad off keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:pvr* KEYBOARD_KEY_ad=leftmeta ########################################################### # SONY ########################################################### # sony-laptop driver keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn* KEYBOARD_KEY_06=mute # Fn+F2 KEYBOARD_KEY_07=volumedown # Fn+F3 KEYBOARD_KEY_08=volumeup # Fn+F4 KEYBOARD_KEY_09=brightnessdown # Fn+F5 KEYBOARD_KEY_0a=brightnessup # Fn+F6 KEYBOARD_KEY_0b=switchvideomode # Fn+F7 KEYBOARD_KEY_0e=zoom # Fn+F10 KEYBOARD_KEY_10=suspend # Fn+F12 keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-C1*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-K25*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-F[1-6]*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-FX*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-FRV*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-GR*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-TR*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-NV*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-Z*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*VGN-S360*:pvr* KEYBOARD_KEY_06=battery KEYBOARD_KEY_07=mute keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-AR71*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW*:pvr* keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-Z21*:pvr* KEYBOARD_KEY_00=brightnessdown # Fn+F5 KEYBOARD_KEY_10=brightnessup # Fn+F6 KEYBOARD_KEY_11=switchvideomode # Fn+F7 KEYBOARD_KEY_12=zoomout KEYBOARD_KEY_14=zoomin KEYBOARD_KEY_15=suspend # Fn+F12 KEYBOARD_KEY_17=prog1 KEYBOARD_KEY_20=media keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW250*:pvr* KEYBOARD_KEY_10=suspend # Fn+F12 keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:pvr* KEYBOARD_KEY_05=f21 # Fn+F1 -> KEY_F21 (The actual touchpad toggle) KEYBOARD_KEY_0d=zoomout # Fn+F9 KEYBOARD_KEY_0e=zoomin # Fn+F10 ########################################################### # Toshiba ########################################################### # Satellite A100 keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITE*A100:pvr* KEYBOARD_KEY_a4=stopcd KEYBOARD_KEY_b2=www # Satellite A110 keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*A110:pvr* KEYBOARD_KEY_92=stop KEYBOARD_KEY_93=www KEYBOARD_KEY_94=media KEYBOARD_KEY_9e=f22 # Touchpad on KEYBOARD_KEY_9f=f23 # Touchpad off KEYBOARD_KEY_b9=nextsong KEYBOARD_KEY_d9=brightnessup KEYBOARD_KEY_ee=screenlock KEYBOARD_KEY_f4=previoussong KEYBOARD_KEY_f7=playpause # Satellite M30X keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*M30X:pvr* KEYBOARD_KEY_ef=brightnessdown KEYBOARD_KEY_d9=brightnessup KEYBOARD_KEY_ee=screenlock KEYBOARD_KEY_93=media KEYBOARD_KEY_9e=f22 # touchpad enable KEYBOARD_KEY_9f=f23 # touchpad disable # Satellite P75-A keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:pvr* KEYBOARD_KEY_ef=brightnessdown KEYBOARD_KEY_ee=brightnessup KEYBOARD_KEY_a9=switchvideomode # switch display outputs KEYBOARD_KEY_d4=wlan # RF Switch Off # Satellite U940 keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITEU940:pvr* KEYBOARD_KEY_13c=brightnessdown KEYBOARD_KEY_13d=brightnessup KEYBOARD_KEY_13e=switchvideomode KEYBOARD_KEY_13f=f21 # Touchpad toggle # Satellite P75-A7200 keyboard:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:pvr* KEYBOARD_KEY_13c=brightnessdown KEYBOARD_KEY_13d=brightnessup KEYBOARD_KEY_13e=switchvideomode KEYBOARD_KEY_13f=touchpad_toggle KEYBOARD_KEY_9e=wlan ########################################################### # VIA ########################################################### keyboard:dmi:bvn*:bvr*:bd*:svnVIA:pnK8N800:pvr* KEYBOARD_KEY_81=prog1 ########################################################### # Zepto ########################################################### # Znote keyboard:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote:* KEYBOARD_KEY_93=switchvideomode # Fn+F3 Toggle Video Output KEYBOARD_KEY_95=brightnessdown # Fn+F4 Brightness Down KEYBOARD_KEY_91=brightnessup # Fn+F5 Brightness Up KEYBOARD_KEY_a5=f23 # Fn+F6 Disable Touchpad KEYBOARD_KEY_a6=f22 # Fn+F6 Enable Touchpad KEYBOARD_KEY_a7=bluetooth # Fn+F10 Enable Bluetooth KEYBOARD_KEY_a9=bluetooth # Fn+F10 Disable Bluetooth KEYBOARD_KEY_f1=wlan # RF Switch Off KEYBOARD_KEY_f2=wlan # RF Switch On KEYBOARD_KEY_f4=prog1 # P1 Button KEYBOARD_KEY_f3=prog2 # P2 Button KEYBOARD_KEY_a0=! # mute KEYBOARD_KEY_ae=! # volume down KEYBOARD_KEY_b0=! # volume up # Znote 6615WD keyboard:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote*6615WD:* KEYBOARD_KEY_a0=! # mute KEYBOARD_KEY_ae=! # volume down KEYBOARD_KEY_b0=! # volume up ########################################################### # Other ########################################################### # Common Volume Keys keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*SIEMENS:pnAMILO*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnFOXCONN:pnQBOOK:* keyboard:dmi:bvn*:bvr*:bd*:svnMTC:pn*:pvrA0:* keyboard:dmi:bvn*:bvr*:bd*:svnMio*Technology:pnN890:* keyboard:dmi:bvn*:bvr*:bd*:svnPEGATRON*CORP.:pnSpring*Peak:* keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite*[uU][35]0[05]*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSATELLITE*[uU][35]0[05]*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite*Pro*[uU]300*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnEQUIUM [uU][35]0[05]*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnViooo*Corporation:pnPT17:* keyboard:dmi:bvn*:bvr*:bd*:svnHANNspree:pnSN10E100:* keyboard:dmi:bvn*:bvr*:bd*:svnGIGABYTE:pni1520M:* keyboard:dmi:bvn*:bvr*:bd*:svnBenQ:pn*nScreen*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnBenQ:pnJoybook*Lite*:pvr* keyboard:dmi:bvn*:bvr*:bd*:svnDIXONSP:pnDIXON*:pvr* KEYBOARD_KEY_a0=! # mute KEYBOARD_KEY_ae=! # volume down KEYBOARD_KEY_b0=! # volume up debian/extra/links.conf0000644000000000000000000000043112322650215012274 0ustar # 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 debian/extra/dsl-modem.agent0000644000000000000000000000435412322650215013216 0ustar #!/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 debian/extra/udev.startup0000644000000000000000000000076712322650215012710 0ustar #!/bin/sh -e echo > /sys/kernel/uevent_helper if ! grep -E -q "^[^[:space:]]+ /dev devtmpfs" /proc/mounts; then mount -n -o mode=0755 -t devtmpfs devtmpfs /dev fi /lib/systemd/systemd-udevd --daemon --resolve-names=never udevadm trigger --action=add mkdir -p /dev/pts mount -t devpts -o noexec,nosuid,gid=5,mode=0620 devpts /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 debian/extra/net.agent0000644000000000000000000000440112322650215012114 0ustar #!/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 [ -d /run/systemd/system ]; then exec systemctl start ifup@${INTERFACE}.service else exec ifup --allow=hotplug $INTERFACE fi } net_ifdown() { check_program /sbin/ifdown # systemd will automatically ifdown the interface on device # removal by binding the instanced service to the network device if [ -d /run/systemd/system ]; then exit 0 fi 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 debian/extra/write_cd_rules0000755000000000000000000000607612322650215013260 0ustar #!/bin/sh -e # This script is run if an optical drive lacks a rule for persistent naming. # # It adds symlinks for optical drives based on the device class determined # by cdrom_id and used ID_PATH to identify the device. # (C) 2006 Marco d'Itri # # 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, either version 2 of the License, or # (at your option) any later version. # This program 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 this program. If not, see . # debug, if UDEV_LOG= if [ -n "$UDEV_LOG" ]; then if [ "$UDEV_LOG" -ge 7 ]; then set -x fi fi RULES_FILE="/etc/udev/rules.d/70-persistent-cd.rules" . /lib/udev/rule_generator.functions find_next_available() { raw_find_next_available "$(find_all_rules 'SYMLINK\+=' "$1")" } write_rule() { local match="$1" local link="$2" local comment="$3" { if [ "$PRINT_HEADER" ]; then PRINT_HEADER= echo "# This file was automatically generated by the $0" echo "# program, run by the cd-aliases-generator.rules rules file." echo "#" echo "# You can modify it, as long as you keep each rule on a single" echo "# line, and set the \$GENERATED variable." echo "" fi [ "$comment" ] && echo "# $comment" echo "$match, SYMLINK+=\"$link\", ENV{GENERATED}=\"1\"" } >> $RULES_FILE SYMLINKS="$SYMLINKS $link" } if [ -z "$DEVPATH" ]; then echo "Missing \$DEVPATH." >&2 exit 1 fi if [ -z "$ID_CDROM" ]; then echo "$DEVPATH is not a CD reader." >&2 exit 1 fi if [ "$1" ]; then METHOD="$1" else METHOD='by-path' fi case "$METHOD" in by-path) if [ -z "$ID_PATH" ]; then echo "$DEVPATH not supported by path_id. by-id may work." >&2 exit 1 fi RULE="ENV{ID_PATH}==\"$ID_PATH\"" ;; by-id) if [ "$ID_SERIAL" ]; then RULE="ENV{ID_SERIAL}==\"$ID_SERIAL\"" elif [ "$ID_MODEL" -a "$ID_REVISION" ]; then RULE="ENV{ID_MODEL}==\"$ID_MODEL\", ENV{ID_REVISION}==\"$ID_REVISION\"" else echo "$DEVPATH not supported by ata_id. by-path may work." >&2 exit 1 fi ;; *) echo "Invalid argument (must be either by-path or by-id)." >&2 exit 1 ;; esac # Prevent concurrent processes from modifying the file at the same time. lock_rules_file # Check if the rules file is writeable. choose_rules_file link_num=$(find_next_available 'cdrom[0-9]*') match="SUBSYSTEM==\"block\", ENV{ID_CDROM}==\"?*\", $RULE" comment="$ID_MODEL ($ID_PATH)" write_rule "$match" "cdrom$link_num" "$comment" [ "$ID_CDROM_CD_R" -o "$ID_CDROM_CD_RW" ] && \ write_rule "$match" "cdrw$link_num" [ "$ID_CDROM_DVD" ] && \ write_rule "$match" "dvd$link_num" [ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ] && \ write_rule "$match" "dvdrw$link_num" echo >> $RULES_FILE unlock_rules_file echo $SYMLINKS exit 0 debian/extra/udev.vim0000644000000000000000000000300112322650215011761 0ustar " 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 debian/extra/fbdev-blacklist.conf0000644000000000000000000000071012322650215014210 0ustar # This file blacklists most old-style PCI framebuffer drivers. blacklist arkfb blacklist aty128fb blacklist atyfb blacklist radeonfb blacklist cirrusfb blacklist cyber2000fb blacklist gx1fb blacklist gxfb 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 debian/extra/write_net_rules0000755000000000000000000000754012322650215013455 0ustar #!/bin/sh -e # This script is run to create persistent network device naming rules # based on properties of the device. # If the interface needs to be renamed, INTERFACE_NEW= will be printed # on stdout to allow udev to IMPORT it. # variables used to communicate: # MATCHADDR MAC address used for the match # MATCHID bus_id used for the match # MATCHDEVID dev_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 # Copyright (C) 2006 Marco d'Itri # Copyright (C) 2007 Kay Sievers # # 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, either version 2 of the License, or # (at your option) any later version. # # This program 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 this program. If not, see . # debug, if UDEV_LOG= if [ -n "$UDEV_LOG" ]; then if [ "$UDEV_LOG" -ge 7 ]; then set -x fi fi RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' . /lib/udev/rule_generator.functions interface_name_taken() { local value="$(find_all_rules 'NAME=' $INTERFACE)" if [ "$value" ]; then return 0 else return 1 fi } find_next_available() { raw_find_next_available "$(find_all_rules 'NAME=' "$1")" } write_rule() { local match="$1" local name="$2" local comment="$3" { if [ "$PRINT_HEADER" ]; then PRINT_HEADER= echo "# This file was automatically generated by the $0" echo "# program, run by the persistent-net-generator.rules rules file." echo "#" echo "# You can modify it, as long as you keep each rule on a single" echo "# line, and change only the value of the NAME= key." fi echo "" [ "$comment" ] && echo "# $comment" echo "SUBSYSTEM==\"net\", ACTION==\"add\"$match, NAME=\"$name\"" } >> $RULES_FILE } if [ -z "$INTERFACE" ]; then echo "missing \$INTERFACE" >&2 exit 1 fi # Prevent concurrent processes from modifying the file at the same time. lock_rules_file # Check if the rules file is writeable. choose_rules_file # the DRIVERS key is needed to not match bridges and VLAN sub-interfaces if [ "$MATCHADDR" ]; then match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" fi if [ "$MATCHDRV" ]; then match="$match, DRIVERS==\"$MATCHDRV\"" fi if [ "$MATCHDEVID" ]; then match="$match, ATTR{dev_id}==\"$MATCHDEVID\"" fi if [ "$MATCHID" ]; then match="$match, KERNELS==\"$MATCHID\"" fi if [ "$MATCHIFTYPE" ]; then match="$match, ATTR{type}==\"$MATCHIFTYPE\"" fi if [ -z "$match" ]; then echo "missing valid match" >&2 unlock_rules_file exit 1 fi basename=${INTERFACE%%[0-9]*} match="$match, KERNEL==\"$basename*\"" if [ "$INTERFACE_NAME" ]; then # external tools may request a custom name COMMENT="$COMMENT (custom name provided by external tool)" if [ "$INTERFACE_NAME" != "$INTERFACE" ]; then INTERFACE=$INTERFACE_NAME; echo "INTERFACE_NEW=$INTERFACE" fi else # if a rule using the current name already exists, find a new name if interface_name_taken; then INTERFACE="$basename$(find_next_available "$basename[0-9]*")" # prevent INTERFACE from being "eth" instead of "eth0" [ "$INTERFACE" = "${INTERFACE%%[ \[\]0-9]*}" ] && INTERFACE=${INTERFACE}0 echo "INTERFACE_NEW=$INTERFACE" fi fi write_rule "$match" "$INTERFACE" "$COMMENT" unlock_rules_file exit 0 debian/extra/logger.agent0000644000000000000000000000114612322650215012610 0ustar #!/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 debian/extra/rules/0000755000000000000000000000000012323005375011443 5ustar debian/extra/rules/78-graphics-card.rules0000644000000000000000000000170512322650215015463 0ustar # do not edit this file, it will be overwritten on update ACTION!="add", GOTO="graphics_end" # Tag the drm device for KMS-supporting drivers as the primary device for # the display; for non-KMS drivers tag the framebuffer device instead. SUBSYSTEM!="drm", GOTO="drm_end" KERNEL!="card[0-9]*", GOTO="drm_end" ENV{DEVTYPE}!="drm_minor", GOTO="drm_end" DRIVERS=="i915", ENV{PRIMARY_DEVICE_FOR_DISPLAY}="1" DRIVERS=="radeon", ENV{PRIMARY_DEVICE_FOR_DISPLAY}="1" DRIVERS=="nouveau", ENV{PRIMARY_DEVICE_FOR_DISPLAY}="1" DRIVERS=="vmwgfx", ENV{PRIMARY_DEVICE_FOR_DISPLAY}="1" LABEL="drm_end" SUBSYSTEM!="graphics", GOTO="graphics_end" DRIVERS=="i915", GOTO="graphics_end" DRIVERS=="radeon", GOTO="graphics_end" DRIVERS=="nouveau", GOTO="graphics_end" DRIVERS=="efifb", GOTO="graphics_end" DRIVERS=="efi-framebuffer", GOTO="graphics_end" DRIVERS=="vesa-framebuffer", GOTO="graphics_end" KERNEL=="fb[0-9]*", ENV{PRIMARY_DEVICE_FOR_DISPLAY}="1" LABEL="graphics_end" debian/extra/rules/75-persistent-net-generator.rules0000644000000000000000000001277412322650215017731 0ustar # 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" # new predictable network interface naming scheme # http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ IMPORT{cmdline}="net.ifnames" ENV{net.ifnames}=="1", 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" # Ravello Systems ENV{MATCHADDR}=="2c:c2:60:*", 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}="" # ignore Windows Azure Hyper-V virtual interfaces ENV{MATCHADDR}=="00:03:ff:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="00:0d:3a:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="00:1d:d8:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="00:12:5A:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="00:17:FA:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="00:22:48:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="00:50:F2:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="28:18:78:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="50:1a:c5:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="60:45:bd:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="7c:1e:52:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="7c:Ed:8d:*", ENV{MATCHADDR}="" ENV{MATCHADDR}=="Dc:B4:c4:*", 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" debian/extra/rules/40-hyperv-hotadd.rules0000644000000000000000000000102612322650215015513 0ustar # On Hyper-V Virtual Machines we want to add memory and cpus as soon as they appear ATTR{[dmi/id]sys_vendor}!="Microsoft Corporation", GOTO="hyperv_hotadd_end" ATTR{[dmi/id]product_name}!="Virtual Machine", GOTO="hyperv_hotadd_end" # Memory hotadd request SUBSYSTEM=="memory", ACTION=="add", DEVPATH=="/devices/system/memory/memory[0-9]*", TEST=="state", ATTR{state}="online" # CPU hotadd request SUBSYSTEM=="cpu", ACTION=="add", DEVPATH=="/devices/system/cpu/cpu[0-9]*", TEST=="online", ATTR{online}="1" LABEL="hyperv_hotadd_end" debian/extra/rules/73-idrac.rules0000644000000000000000000000040412322650215014024 0ustar # On Dell PowerEdge systems, the iDRAC7 and later support a USB Virtual NIC # which terminates in the iDRAC. Help identify this with 'idrac' ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", ATTRS{idVendor}=="413c", ATTRS{idProduct}=="a102", NAME="idrac" debian/extra/README-etc-rules.d0000644000000000000000000000220512322650215013311 0ustar The files in this directory are read by udev(7) and used when events are performed by the kernel. The udev daemon watches this directory with inotify so that changes to these files are automatically picked up, for this reason they must be files and not symlinks to another location as in the case in Debian. Packages do not generally install rules here, this directory is for local rules. If you want to override behaviour of package-supplied rules, which can be found in /lib/udev/rules.d, you can do one of two things: 1) Write your own rules in this directory that assign the name, symlinks, permissions, etc. that you want. Pick a number higher than the rules you want to override, and yours will be used. 2) Copy the file from /lib/udev/rules.d and edit it here; you should generally only do this if you want to prevent a program from being run. If the ordering of files in this directory are not important to you, it's recommended that you simply name your files "descriptive-name.rules" such that they are processed AFTER all numbered rules in both this directory and /lib/udev/rules.d and thus override anything set there. debian/extra/udev.py0000644000000000000000000000070712322650215011630 0ustar '''apport package hook for udev (c) 2009 Canonical Ltd. Author: Martin Pitt ''' import os import apport.hookutils def add_info(report): apport.hookutils.attach_hardware(report) user_rules = [] for f in os.listdir('/etc/udev/rules.d'): if not f.startswith('70-persistent-') and f != 'README': user_rules.append(f) if user_rules: report['CustomUdevRuleFiles'] = ' '.join(user_rules) debian/extra/initramfs.top0000644000000000000000000000054512322650215013033 0ustar #!/bin/sh -e PREREQS="all_generic_ide blacklist" prereqs() { echo "$PREREQS"; } case "$1" in prereqs) prereqs exit 0 ;; esac echo > /sys/kernel/uevent_helper /lib/systemd/systemd-udevd --daemon --resolve-names=never udevadm trigger --action=add # Leave udev running to process events that come in out-of-band (like USB # connections) debian/extra/hotplug.functions0000644000000000000000000000222712322650215013726 0ustar # 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 } debian/extra/initramfs.hook0000644000000000000000000000410712322650215013167 0ustar #!/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 /lib/systemd if [ -x /sbin/udevadm.upgrade ]; then copy_exec /bin/udevadm.upgrade /bin/udevadm else copy_exec /bin/udevadm fi # copy compat symlink cp -a /sbin/udevadm $DESTDIR/sbin/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-firmware.rules 50-udev-default.rules 60-persistent-storage.rules \ 80-drivers.rules 91-permissions.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 ata_id scsi_id; do copy_exec /lib/udev/$program /lib/udev done copy_exec /sbin/blkid /sbin if [ -x /lib/udev/vio_type ]; then copy_exec /lib/udev/vio_type /lib/udev fi debian/extra/initramfs.bottom0000644000000000000000000000131712322650215013533 0ustar #!/bin/sh -e PREREQS="" prereqs() { echo "$PREREQS"; } case "$1" in prereqs) prereqs exit 0 ;; esac # we cannot properly synthesize LVM LV change events with udevadm trigger, so # if we use LVM, we need to let it finish; otherwise we get missing LV symlinks # (LP #1185394) if [ -x /sbin/vgchange ]; then udevadm settle --timeout=121 || true fi # Stop udevd, we'll miss a few events while we run init, but we catch up udevadm control --timeout=121 --exit || \ echo "udev exit failed -- rc=$?" # move the /dev tmpfs to the rootfs mount -n -o move /dev ${rootmnt}/dev # create a temporary symlink to the final /dev for other initramfs scripts rm -rf /dev ln -s ${rootmnt}/dev /dev debian/udev.udevmonitor.upstart0000644000000000000000000000054412322650215014130 0ustar # udevmonitor - log initial device creation # # The set of devices created in the "cold plug" pass is generally # useful for debugging, so we monitor this and create a log file # from that. description "log initial device creation" start on (startup and starting udevtrigger) stop on stopped udevtrigger exec /sbin/udevadm monitor -e >/dev/.udev.log debian/udev.postinst0000644000000000000000000000121312322650215011731 0ustar #!/bin/sh set -e # Enable udevadm again enable_udevadm() { if [ -e /bin/udevadm.upgrade ]; then rm -f /bin/udevadm dpkg-divert --package fake-udev --rename --divert /bin/udevadm.upgrade \ --remove /bin/udevadm fi } update_hwdb() { udevadm hwdb --update || true } case "$1" in configure) # update/create hwdb before we (re)start udev update_hwdb invoke-rc.d udev restart enable_udevadm update-initramfs -u ;; abort-upgrade|abort-deconfigure|abort-remove) ;; triggered) update_hwdb exit 0 ;; *) echo "$0 called with unknown argument \`$1'" 1>&2 exit 1 ;; esac #DEBHELPER# exit 0 debian/libgudev-1.0-0.symbols0000644000000000000000000000434512322650215013036 0ustar 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 debian/libsystemd-login-dev.install0000644000000000000000000000014512322650215014615 0ustar usr/lib/*/libsystemd-login.so usr/lib/*/pkgconfig/libsystemd-login.pc usr/include/systemd/sd-login.h debian/systemd-sysv.links0000644000000000000000000000031512322650215012717 0ustar /lib/systemd/systemd /sbin/init /bin/systemctl /sbin/telinit /bin/systemctl /sbin/runlevel /bin/systemctl /sbin/shutdown /bin/systemctl /sbin/poweroff /bin/systemctl /sbin/reboot /bin/systemctl /sbin/halt debian/systemd.links0000644000000000000000000000604312322650215011721 0ustar # These are all services which have native implementations # So we mask them by linking against /dev/null or create an alias /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 /dev/null /lib/systemd/system/x11-common.service /dev/null /lib/systemd/system/hostname.service /dev/null /lib/systemd/system/rmnologin.service /dev/null /lib/systemd/system/bootmisc.service # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=643700 /dev/null /lib/systemd/system/fuse.service # Although bootlogd is disabled by default (via /etc/default/bootlogd) # by masking them we avoid spawning a shell uselessly thrice during boot. # Besides, bootlogd doesn't look particularly useful in a systemd world. /dev/null /lib/systemd/system/bootlogd.service /dev/null /lib/systemd/system/stop-bootlogd-single.service /dev/null /lib/systemd/system/stop-bootlogd.service # systemd sets the hwclock internally # http://cgit.freedesktop.org/systemd/systemd/commit/?id=7948c4dfbea73ac21250b588089039aa17a90386 /dev/null /lib/systemd/system/hwclock.service /dev/null /lib/systemd/system/hwclockfirst.service # We use native mount support so mask those services # TODO: check if any sysv init script depends on those facilities /dev/null /lib/systemd/system/mountkernfs.service /dev/null /lib/systemd/system/mountdevsubfs.service /dev/null /lib/systemd/system/mountall.service /dev/null /lib/systemd/system/mountall-bootclean.service /dev/null /lib/systemd/system/mountnfs.service /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/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 # We use the built-in cryptsetup support /dev/null /lib/systemd/system/cryptdisks.service /dev/null /lib/systemd/system/cryptdisks-early.service # Single user mode is implemented natively, don't use legacy SysV init scripts # to avoid spawning sulogin twice. /dev/null /lib/systemd/system/single.service /dev/null /lib/systemd/system/killprocs.service # Run fixups early /lib/systemd/system/debian-fixup.service /lib/systemd/system/sysinit.target.wants/debian-fixup.service # Compat symlink /lib/systemd/systemd /bin/systemd # Mount separate tmpfs file systems for /run/user and /run/lock /lib/systemd/system/run-user.mount /lib/systemd/system/local-fs.target.wants/run-user.mount /lib/systemd/system/run-lock.mount /lib/systemd/system/local-fs.target.wants/run-lock.mount debian/systemd-hack-up-the-source.hook0000755000000000000000000000373012322650215015146 0ustar #! /bin/sh set -e set -x . /usr/share/gitpkg/hooks/repo-config-helper find -name Makefile -type l -print -delete #rm -r src/Makefile #. /usr/share/gitpkg/hooks/quilt-patches-deb-export-hook patch_list=debian/source/git-patches patch_dir=debian/patches if [ ! -r "$patch_list" ]; then echo "No $patch_list file, I guess you've pushed them all upstream." echo "Good Work!" exit 0 fi if [ -e "$patch_dir" ]; then echo "Uh oh. You already have a $patch_dir here." echo "You probably don't want us to scribble on that without asking." exit 1 fi if [ -z "$REPO_DIR" ]; then # support running as a free-standing script, without gitpkg DEB_VERSION="$(dpkg-parsechangelog | sed -rne 's/^Version: ([^:]+:)?//p')" UPSTREAM_VERSION="${DEB_VERSION%-*}" REPO_DIR=. fi DEB_REF=$(sanitise_git_ref $DEB_VERSION) UPSTREAM_REF="${DEB_REF%-*}" #tar xf ../systemd_$UPSTREAM_VERSION.orig.tar.* --strip-components=1 --keep-newer-files do_patches (){ while read -r line do [ -n "$line" ] || continue case $line in \#*) ;; *) git --git-dir "$REPO_DIR/.git" diff "$line" > "$patch_dir/$line" echo "$line" >> "$patch_dir/series" echo "$line" >> ".pc/applied-patches" if [ ! -s "$patch_dir/$line" ]; then echo "$line generated empty patch, please fix." exit 1 fi ;; esac done } mkdir -p "$patch_dir" || exit 1 mkdir -p ".pc" || exit 1 echo "# $patch_list exported from git by export-hook" > "$patch_dir/series" (sed -e "s/\$DEB_VERSION/$DEB_VERSION/g" \ -e "s/\${DEB_VERSION}/$DEB_VERSION/g" \ -e "s/\$UPSTREAM_VERSION/$UPSTREAM_VERSION/g" \ -e "s/\${UPSTREAM_VERSION}/$UPSTREAM_VERSION/g" \ -e "s/\$DEB_REF/$DEB_REF/g" \ -e "s/\${DEB_REF}/$DEB_REF/g" \ -e "s/\$UPSTREAM_REF/$UPSTREAM_REF/g" \ -e "s/\${UPSTREAM_REF}/$UPSTREAM_REF/g" \ < "$patch_list" ; echo ) | do_patches || exit 1 debian/init-functions.d/0000755000000000000000000000000012323005375012361 5ustar debian/init-functions.d/40-systemd0000644000000000000000000000455012322650215014217 0ustar # -*-Shell-script-*- # /lib/lsb/init-functions if [ -d /run/systemd/system ]; then # Some init scripts use "set -e" and "set -u", we don't want that # here set +e set +u if [ -n "$DPKG_MAINTSCRIPT_PACKAGE" ]; then # If we are called by a maintainer script, chances are good that a # new or updated sysv init script was installed. Reload daemon to # pick up any changes. systemctl daemon-reload fi # Redirect SysV init scripts when executed by the user if [ $PPID -ne 1 ] && [ -z "$init" ] && [ -z "$_SYSTEMCTL_SKIP_REDIRECT" ]; then case $(readlink -f "$0") in /etc/init.d/*) _use_systemctl=1 # Some services can't reload through the .service file, # but can through the init script. prog=${0##*/} service="${prog%.sh}.service" if [ "$(systemctl -p CanReload show $service 2>/dev/null)" = "CanReload=no" ] && [ "$1" = "reload" ]; then _use_systemctl=0 fi ;; esac else export _SYSTEMCTL_SKIP_REDIRECT="true" fi else _use_systemctl=0 fi systemctl_redirect () { local s local rc local prog=${1##*/} local command=$2 case "$command" in start) s="Starting $prog (via systemctl)" ;; stop) s="Stopping $prog (via systemctl)" ;; reload|force-reload) s="Reloading $prog configuration (via systemctl)" ;; restart) s="Restarting $prog (via systemctl)" ;; esac service="${prog%.sh}.service" # Don't try to run masked services. Don't check for errors, if # this errors, we'll just call systemctl and possibly explode # there. state=$(systemctl -p LoadState show $service 2>/dev/null) [ "$state" = "LoadState=masked" ] && return 0 [ "$command" = status ] || log_daemon_msg "$s" "$service" /bin/systemctl $command "$service" rc=$? [ "$command" = status ] || log_end_msg $rc return $rc } if [ "$_use_systemctl" = "1" ]; then if [ "x$1" = xstart -o \ "x$1" = xstop -o \ "x$1" = xrestart -o \ "x$1" = xreload -o \ "x$1" = xforce-reload -o \ "x$1" = xstatus ] ; then systemctl_redirect $0 $1 exit $? fi fi debian/libpam-systemd.install0000644000000000000000000000007712322650215013512 0ustar lib/*/security/pam_systemd.so usr/share/man/man8/pam_systemd.8 debian/systemd.maintscript0000644000000000000000000000103512322650215013132 0ustar rm_conffile /etc/lsb-base-logging.sh 25-1~ systemd 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 rm_conffile /etc/bash_completion.d/systemctl-bash-completion.sh 204-1~ systemd rm_conffile /etc/bash_completion.d/systemd-bash-completion.sh 204-1~ systemd mv_conffile /etc/systemd/systemd-logind.conf /etc/systemd/logind.conf 204-1~ systemd mv_conffile /etc/systemd/systemd-journald.conf /etc/systemd/journald.conf 204-1~ systemd debian/libsystemd-daemon0.symbols0000644000000000000000000000073312322650215014301 0ustar libsystemd-daemon.so.0 libsystemd-daemon0 #MINVER# LIBSYSTEMD_DAEMON_31@LIBSYSTEMD_DAEMON_31 31 sd_booted@LIBSYSTEMD_DAEMON_31 31 sd_is_fifo@LIBSYSTEMD_DAEMON_31 31 sd_is_mq@LIBSYSTEMD_DAEMON_31 31 sd_is_socket@LIBSYSTEMD_DAEMON_31 31 sd_is_socket_inet@LIBSYSTEMD_DAEMON_31 31 sd_is_socket_unix@LIBSYSTEMD_DAEMON_31 31 sd_is_special@LIBSYSTEMD_DAEMON_31 31 sd_listen_fds@LIBSYSTEMD_DAEMON_31 31 sd_notify@LIBSYSTEMD_DAEMON_31 31 sd_notifyf@LIBSYSTEMD_DAEMON_31 31 debian/ifup@.service0000644000000000000000000000030112322650215011603 0ustar [Unit] Description=ifup for %I After=local-fs.target BindTo=sys-subsystem-net-devices-%i.device [Service] ExecStart=/sbin/ifup --allow=hotplug %I ExecStop=/sbin/ifdown %I RemainAfterExit=true debian/libgudev-1.0-0.install0000644000000000000000000000003112322650215013000 0ustar usr/lib/*/libgudev*.so.* debian/libsystemd-journal0.symbols0000644000000000000000000000615112322650215014510 0ustar 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_202@LIBSYSTEMD_JOURNAL_202 202 LIBSYSTEMD_JOURNAL_38@LIBSYSTEMD_JOURNAL_38 38 sd_journal_add_conjunction@LIBSYSTEMD_JOURNAL_202 202 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 debian/udev-udeb.dirs0000644000000000000000000000002312322650215011722 0ustar /etc/udev/rules.d/ debian/copyright0000644000000000000000000001755612322650215011135 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: systemd Upstream-Contact: systemd-devel@lists.freedesktop.org Source: http://www.freedesktop.org/wiki/Software/systemd/ Files: debian/* Copyright: 2010-2013 Tollef Fog Heen 2013 Michael Biebl 2013 Michael Stapelberg License: LGPL-2.1+ Files: * Copyright: 2008-2013 Kay Sievers 2010-2013 Lennart Poettering 2012-2013 Zbigniew Jędrzejewski-Szmek 1991-2012 Free Software Foundation, Inc. 1995-2004 Miquel van Smoorenburg 1999 Tom Tromey 2000 Red Hat, Inc. 2008-2010 David Zeuthen 2009 Alan Jenkins 2009-2013 Intel Corporation 2009-2013 Auke Kok 2010 ProFUSION embedded systems 2010 Maarten Lankhorst 2010, 2012 Harald Hoyer 2011 Michal Schmidt 2012 B. Poettering 2012 Holger Hans Peter Freyther 2012 Dan Walsh 2012 Holger Hans Peter Freyther 2012 Roberto Sassu 2012 David Strauss 2012 Marti Raudsepp 2013 Greg Kroah-Hartman 2013 Linux Foundation 2013 Daniel Mack 2013 Marius Vollmer 2013 Jan Janssen 2013 Thomas H.P. Andersen 2013 Daniel Buch 2013 Simon Peeters 2013 Nathaniel Chen 2013 Steven Hiscocks License: LGPL-2.1+ Files: src/shared/MurmurHash3.h src/shared/MurmurHash3.c Copyright: 2008 Austin Appleby License: public-domain MurmurHash3 was written by Austin Appleby, and is placed in the public domain. The author hereby disclaims copyright to this source code. Files: src/core/selinux-access.h src/core/selinux-access.c Copyright: 2012 Dan Walsh License: GPL-2+ Files: src/core/securebits.h Copyright: Linus Torvalds License: GPL-2 Files: src/shared/ioprio.h Copyright: Jens Axboe License: GPL-2 Files: src/shared/linux/auto_dev-ioctl.h Copyright: 2008 Red Hat, Inc. 2008 Ian Kent License: GPL-2+ Files: src/shared/linux/seccomp-bpf.h Copyright: 2012 The Chromium OS Authors 2012 Will Drewry 2012 Kees Cook License: GPL-2 Files: src/shared/sparse-endian.h Copyright: 2012 Josh Triplett License: Expat Files: test/rule-syntax-check.py test/rules-test.sh Copyright: 2010 Canonical Ltd. 2010 Martin Pitt License: GPL-2+ Files: src/shared/linux/fanotify.h Copyright: 2009 Eric Paris License: GPL-2 Files: src/journal/lookup3.c src/journal/lookup3.h Copyright: 2006 Bob Jenkins License: public-domain You can use this free for any purpose. It's in the public domain. It has no warranty. Files: src/udev/* Copyright: 2004-2012 Kay Sievers 2003-2004 Greg Kroah-Hartman 2004 Chris Friesen 2004 David Zeuthen 2005 SUSE Linux Products GmbH, Germany 2005 Hannes Reinecke 2009 Canonical Ltd. 2009 Scott James Remnant 2009 Martin Pitt 2009 Piter Punk 2010 Lennart Poettering 2011 ProFUSION embedded systems 2011 2011 Karel Zak License: GPL-2+ Files: src/udev/udev-ctrl.c src/udev/udevadm-hwdb.c src/udev/udev-builtin.c src/udev/udev-builtin-net_id.c src/udev/udev-builtin-hwdb.c src/udev/udev-builtin-btrfs.c Copyright: 2007-2012 Kay Sievers License: LGPL-2.1+ Files: src/udev/scsi_id/scsi.h Copyright: 2003 IBM Corp. License: GPL-2 Files: src/systemd/sd-daemon.h src/systemd/sd-readahead.h src/libsystemd-daemon/sd-daemon.c src/readahead/sd-readahead.c Copyright: 2010 Lennart Poettering License: Expat License: Expat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. License: GPL-2 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. . This program 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 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. . On Debian and systems the full text of the GNU General Public License version 2 can be found in the file `/usr/share/common-licenses/GPL-2` License: GPL-2+ 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; either version 2, or (at your option) any later version. . This program 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 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. . On Debian systems, the complete text of the GNU General Public License version 2 can be found in ‘/usr/share/common-licenses/GPL-2’. License: LGPL-2.1+ This program 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, or (at your option) any later version. . This program 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 Lesser General Public License for more details. . You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. . On Debian systems, the complete text of the GNU Lesser General Public License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2.1’. debian/libudev1.symbols0000644000000000000000000000761612322650215012323 0ustar 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 debian/source/0000755000000000000000000000000012323005375010466 5ustar debian/source/format0000644000000000000000000000001412322650215011672 0ustar 3.0 (quilt) debian/libpam-systemd.systemd-logind.upstart0000644000000000000000000000222312323004771016503 0ustar description "SystemD login management service" start on started dbus stop on stopping dbus respawn env SYSTEMD_LOG_TARGET=syslog pre-start script # only start if PAM module is actually available, not if libpam-systemd is # removed but not purged [ -e /lib/*/security/pam_systemd.so ] || { stop; exit 0; } # this is being done by systemd or mountall usually, but not during # upgrades from earlier distro releases if ! mountpoint -q /sys/fs/cgroup; then mount -t tmpfs -o uid=0,gid=0,mode=0755,size=1024 none /sys/fs/cgroup fi mkdir -p /run/systemd # mounting the cgroup does not work in LXC, there it uses cgmanager if [ ! -e /run/container_type ] && ! mountpoint -q /sys/fs/cgroup/systemd; then mkdir -p /sys/fs/cgroup/systemd mount -t cgroup -o nosuid,noexec,nodev,none,name=systemd systemd /sys/fs/cgroup/systemd fi end script script # Don't use the limit stanza as failure to set the limit (unprivileged # containers for example) causes a complete failure to start the job. ulimit -S -n 16384 || true ulimit -H -n 16384 || true exec /lib/systemd/systemd-logind end script debian/udev.links0000644000000000000000000000031512322650215011170 0ustar /lib/systemd/systemd-udevd /sbin/udevd /lib/systemd/system/systemd-udevd.service /lib/systemd/system/udev.service /usr/share/man/man8/systemd-udevd.8 /usr/share/man/man8/udevd.8 /bin/udevadm /sbin/udevadm