From 13fd1e4253fe19e4c58ab085ee306fef3191e983 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mar 11 2014 20:18:21 +0000 Subject: new upstream release --- diff --git a/0001-login-fix-pos-array-allocation.patch b/0001-login-fix-pos-array-allocation.patch deleted file mode 100644 index abad77d..0000000 --- a/0001-login-fix-pos-array-allocation.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 2d426f2ad06032979fa7a54d11b74be52b8ec047 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Tue, 25 Feb 2014 12:20:25 +0100 -Subject: [PATCH] login: fix pos-array allocation - -GREEDY_REALLOC takes a pointer to the real size, not the array-width as -argument. Therefore, our array is currently way to small to keep the seat -positions. - -Introduce GREEDY_REALLOC0_T() as typed version of GREEDY_REALLOC and store -the array-width instead of array-size. - -(cherry picked from commit a1937e679f76758635d295287398abe526de2522) ---- - src/login/logind-seat.c | 2 +- - src/shared/util.h | 9 +++++++++ - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git a/src/login/logind-seat.c b/src/login/logind-seat.c -index 631be5f..36ec7ed 100644 ---- a/src/login/logind-seat.c -+++ b/src/login/logind-seat.c -@@ -475,7 +475,7 @@ void seat_claim_position(Seat *s, Session *session, unsigned int pos) { - if (seat_has_vts(s)) - pos = session->vtnr; - -- if (!GREEDY_REALLOC0(s->positions, s->position_count, pos + 1)) -+ if (!GREEDY_REALLOC0_T(s->positions, s->position_count, pos + 1)) - return; - - seat_evict_position(s, session); -diff --git a/src/shared/util.h b/src/shared/util.h -index 9913fce..78b1444 100644 ---- a/src/shared/util.h -+++ b/src/shared/util.h -@@ -723,6 +723,15 @@ void* greedy_realloc0(void **p, size_t *allocated, size_t need); - #define GREEDY_REALLOC0(array, allocated, need) \ - greedy_realloc0((void**) &(array), &(allocated), sizeof((array)[0]) * (need)) - -+#define GREEDY_REALLOC0_T(array, count, need) \ -+ ({ \ -+ size_t _size = (count) * sizeof((array)[0]); \ -+ void *_ptr = GREEDY_REALLOC0((array), _size, (need)); \ -+ if (_ptr) \ -+ (count) = _size / sizeof((array)[0]); \ -+ _ptr; \ -+ }) -+ - static inline void _reset_errno_(int *saved_errno) { - errno = *saved_errno; - } diff --git a/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch b/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch deleted file mode 100644 index 522436e..0000000 --- a/0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch +++ /dev/null @@ -1,51 +0,0 @@ -From aa6c8bcd17b37634fc7e4d5d59b6b9d93625b4a3 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Tue, 25 Feb 2014 13:08:24 +0100 -Subject: [PATCH] login: set pos-slot to fallback on pos-eviction - -If we evict a session position, we open the position slot for future -sessions. However, there might already be another session on the same -position if both were started on the same VT. This is currently done if -gdm spawns the session on its own Xserver. - -Hence, look for such a session on pos-eviction and claim the new slot -immediately. - -(cherry picked from commit 3e6b205f81e743c7354ccbc69eb45afbdbebe2dc) ---- - src/login/logind-seat.c | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/src/login/logind-seat.c b/src/login/logind-seat.c -index 36ec7ed..96cf08e 100644 ---- a/src/login/logind-seat.c -+++ b/src/login/logind-seat.c -@@ -459,6 +459,7 @@ int seat_stop_sessions(Seat *s, bool force) { - } - - void seat_evict_position(Seat *s, Session *session) { -+ Session *iter; - unsigned int pos = session->pos; - - session->pos = 0; -@@ -466,8 +467,19 @@ void seat_evict_position(Seat *s, Session *session) { - if (!pos) - return; - -- if (pos < s->position_count && s->positions[pos] == session) -+ if (pos < s->position_count && s->positions[pos] == session) { - s->positions[pos] = NULL; -+ -+ /* There might be another session claiming the same -+ * position (eg., during gdm->session transition), so lets look -+ * for it and set it on the free slot. */ -+ LIST_FOREACH(sessions_by_seat, iter, s->sessions) { -+ if (iter->pos == pos) { -+ s->positions[pos] = iter; -+ break; -+ } -+ } -+ } - } - - void seat_claim_position(Seat *s, Session *session, unsigned int pos) { diff --git a/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch b/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch deleted file mode 100644 index c7897da..0000000 --- a/0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0d0b9805baaed3e4e584916bbff710fec6cb1e8b Mon Sep 17 00:00:00 2001 -From: "Jasper St. Pierre" -Date: Fri, 21 Feb 2014 18:23:17 -0500 -Subject: [PATCH] login: Allow calling org.freedesktop.login1.Seat.SwitchTo - -(cherry picked from commit 9c413373d2112055a0142ef522bf95af9b491b4a) ---- - src/login/org.freedesktop.login1.conf | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/src/login/org.freedesktop.login1.conf b/src/login/org.freedesktop.login1.conf -index d677f61..1318328 100644 ---- a/src/login/org.freedesktop.login1.conf -+++ b/src/login/org.freedesktop.login1.conf -@@ -141,6 +141,18 @@ - send_member="ActivateSession"/> - - -+ -+ -+ -+ -+ -+ - diff --git a/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch b/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch deleted file mode 100644 index dc89037..0000000 --- a/0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch +++ /dev/null @@ -1,20 +0,0 @@ -From d0550e668858e1af94e2746062931680dc15b555 Mon Sep 17 00:00:00 2001 -From: Tomasz Torcz -Date: Tue, 25 Feb 2014 12:43:55 +0100 -Subject: [PATCH] fix typo in iDRAC network interface name: irdac->idrac - -(cherry picked from commit b3e4387351c835766f96796a20d94971afea7d3b) ---- - hwdb/20-net-ifname.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hwdb/20-net-ifname.hwdb b/hwdb/20-net-ifname.hwdb -index 29d2633..2408dc1 100644 ---- a/hwdb/20-net-ifname.hwdb -+++ b/hwdb/20-net-ifname.hwdb -@@ -2,4 +2,4 @@ - - # Dell iDRAC Virtual USB NIC - usb:v413CpA102* -- ID_NET_NAME_FROM_DATABASE=irdac -+ ID_NET_NAME_FROM_DATABASE=idrac diff --git a/0005-Replace-var-run-with-run-in-remaining-places.patch b/0005-Replace-var-run-with-run-in-remaining-places.patch deleted file mode 100644 index 9b75cef..0000000 --- a/0005-Replace-var-run-with-run-in-remaining-places.patch +++ /dev/null @@ -1,88 +0,0 @@ -From a980c3fa6bee1b4f0185d9d317c1bbf30ce6b832 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 25 Feb 2014 20:11:04 -0500 -Subject: [PATCH] Replace /var/run with /run in remaining places - -/run was already used almost everywhere, fix the remaining places -for consistency. - -(cherry picked from commit 41a55c46ab8fb4ef6727434227071321fc762cce) ---- - man/daemon.xml | 2 +- - man/runlevel.xml | 2 +- - man/tmpfiles.d.xml | 4 ++-- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - src/systemctl/systemctl.c | 4 ++-- - 5 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/man/daemon.xml b/man/daemon.xml -index 88dd082..fd29ba7 100644 ---- a/man/daemon.xml -+++ b/man/daemon.xml -@@ -149,7 +149,7 @@ - write the daemon PID (as returned by - getpid()) to a - PID file, for example -- /var/run/foobar.pid -+ /run/foobar.pid - (for a hypothetical daemon "foobar") - to ensure that the daemon cannot be - started more than once. This must be -diff --git a/man/runlevel.xml b/man/runlevel.xml -index 976753a..4db06dc 100644 ---- a/man/runlevel.xml -+++ b/man/runlevel.xml -@@ -124,7 +124,7 @@ - - - -- /var/run/utmp -+ /run/utmp - - The utmp database - runlevel reads the -diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml -index 812129f..0a006d1 100644 ---- a/man/tmpfiles.d.xml -+++ b/man/tmpfiles.d.xml -@@ -441,8 +441,8 @@ r! /tmp/.X[0-9]*-lock - /etc/tmpfiles.d/screen.conf example - screen needs two directories created at boot with specific modes and ownership. - -- d /var/run/screens 1777 root root 10d --d /var/run/uscreens 0755 root root 10d12h -+ d /run/screens 1777 root root 10d -+d /run/uscreens 0755 root root 10d12h - - - /etc/tmpfiles.d/abrt.conf example -diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c -index 20f540d..1318272 100644 ---- a/src/libsystemd/sd-bus/sd-bus.c -+++ b/src/libsystemd/sd-bus/sd-bus.c -@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) - machine = NULL; - - b->sockaddr.un.sun_family = AF_UNIX; -- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + sizeof("/var/run/dbus/system_bus_socket") - 1; -+ strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); - - return 0; - } -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 34d7079..8692716 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -3758,8 +3758,8 @@ static int show_one( - streq(verb, "status")) { - /* According to LSB: "program not running" */ - /* 0: program is running or service is OK -- * 1: program is dead and /var/run pid file exists -- * 2: program is dead and /var/lock lock file exists -+ * 1: program is dead and /run PID file exists -+ * 2: program is dead and /run/lock lock file exists - * 3: program is not running - * 4: program or service status is unknown - */ diff --git a/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch b/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch deleted file mode 100644 index b172ec0..0000000 --- a/0006-Revert-back-to-var-run-at-a-couple-of-problems.patch +++ /dev/null @@ -1,59 +0,0 @@ -From ab64c275efac13ed8fb255e4b2ccf1c287aa0bc6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 02:47:43 +0100 -Subject: [PATCH] Revert back to /var/run at a couple of problems -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This partially reverts 41a55c46ab8fb4ef6727434227071321fc762cce - -Some specifications we want to stay compatibility actually document -/var/run, not /run, and we should stay compatible with that. In order to -make sure our D-Bus implementation works on any system, regardless if -running systemd or not, we should always use /var/run which is the -only path mandated by the D-Bus spec. - -Similar, glibc hardcodes the utmp location to /var/run, and this is -exposed in _UTMP_PATH in limits.h, hence let's stay in sync with this -public API, too. - -We simply do not support systems where /var/run is not a symlink → /run. -Hence both are equivalent. Staying compatible with upstream -specifications hence weighs more than cleaning up superficial -appearance. - -(cherry picked from commit df1e02046144f41176c32ed011369fd8dba36b76) ---- - man/runlevel.xml | 2 +- - src/libsystemd/sd-bus/sd-bus.c | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/man/runlevel.xml b/man/runlevel.xml -index 4db06dc..976753a 100644 ---- a/man/runlevel.xml -+++ b/man/runlevel.xml -@@ -124,7 +124,7 @@ - - - -- /run/utmp -+ /var/run/utmp - - The utmp database - runlevel reads the -diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c -index 1318272..636715f 100644 ---- a/src/libsystemd/sd-bus/sd-bus.c -+++ b/src/libsystemd/sd-bus/sd-bus.c -@@ -794,8 +794,8 @@ static int parse_container_unix_address(sd_bus *b, const char **p, char **guid) - machine = NULL; - - b->sockaddr.un.sun_family = AF_UNIX; -- strncpy(b->sockaddr.un.sun_path, "/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -- b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/run/dbus/system_bus_socket"); -+ strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path)); -+ b->sockaddr_size = offsetof(struct sockaddr_un, sun_path) + strlen("/var/run/dbus/system_bus_socket"); - - return 0; - } diff --git a/0007-README-document-that-var-run-must-be-a-symlink-run.patch b/0007-README-document-that-var-run-must-be-a-symlink-run.patch deleted file mode 100644 index c6f2c8a..0000000 --- a/0007-README-document-that-var-run-must-be-a-symlink-run.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 10acd244847eb8689e79efbf95475aef8818bb51 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 02:54:37 +0100 -Subject: [PATCH] =?UTF-8?q?README:=20document=20that=20/var/run=20must=20b?= - =?UTF-8?q?e=20a=20symlink=20=E2=86=92=20/run?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -(cherry picked from commit 47bc23c18cbc87471dc832534c8565625e4a9d16) ---- - README | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/README b/README -index b918132..7a227e7 100644 ---- a/README -+++ b/README -@@ -190,6 +190,9 @@ WARNINGS: - about this, since this kind of file system setup is not really - supported anymore by the basic set of Linux OS components. - -+ systemd requires that the /run mount point exists. systemd also -+ requires that /var/run is a a symlink → /run. -+ - For more information on this issue consult - http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken - diff --git a/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch b/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch deleted file mode 100644 index 7ce26de..0000000 --- a/0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch +++ /dev/null @@ -1,63 +0,0 @@ -From d5194bbb174d0b9a87e81d465644624ab455bbf6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 25 Feb 2014 21:26:31 -0500 -Subject: [PATCH] Use /var/run/dbus/system_bus_socket for the D-Bus socket - -(cherry picked from commit 1ae383a8a3ae4824453e297352fda603d2d3fd5e) ---- - man/systemd-bus-proxyd@.service.xml | 2 +- - src/libsystemd/sd-bus/PORTING-DBUS1 | 2 +- - src/shared/def.h | 2 +- - units/systemd-bus-proxyd.socket | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/man/systemd-bus-proxyd@.service.xml b/man/systemd-bus-proxyd@.service.xml -index 75a3c8b..3a5930d 100644 ---- a/man/systemd-bus-proxyd@.service.xml -+++ b/man/systemd-bus-proxyd@.service.xml -@@ -59,7 +59,7 @@ along with systemd; If not, see . - systemd-bus-proxyd.socket will launch - systemd-bus-proxyd@.service for connections - to the classic D-Bus socket in -- /run/dbus/system_bus_socket. -+ /var/run/dbus/system_bus_socket. - - systemd-bus-proxyd@.service is launched - for an existing D-Bus connection and will use -diff --git a/src/libsystemd/sd-bus/PORTING-DBUS1 b/src/libsystemd/sd-bus/PORTING-DBUS1 -index 90d184b7..0253a42 100644 ---- a/src/libsystemd/sd-bus/PORTING-DBUS1 -+++ b/src/libsystemd/sd-bus/PORTING-DBUS1 -@@ -536,7 +536,7 @@ parameter. - Client libraries should use the following connection string when - connecting to the system bus: - -- kernel:path=/dev/kdbus/0-system/bus;unix:path=/run/dbus/system_bus_socket -+ kernel:path=/dev/kdbus/0-system/bus;unix:path=/var/run/dbus/system_bus_socket - - This will ensure that kdbus is preferred over the legacy AF_UNIX - socket, but compatibility is kept. For the user bus use: -diff --git a/src/shared/def.h b/src/shared/def.h -index 7777756..aa489d8 100644 ---- a/src/shared/def.h -+++ b/src/shared/def.h -@@ -61,7 +61,7 @@ - "/usr/lib/kbd/keymaps/\0" - #endif - --#define UNIX_SYSTEM_BUS_PATH "unix:path=/run/dbus/system_bus_socket" -+#define UNIX_SYSTEM_BUS_PATH "unix:path=/var/run/dbus/system_bus_socket" - #define KERNEL_SYSTEM_BUS_PATH "kernel:path=/dev/kdbus/0-system/bus" - - #ifdef ENABLE_KDBUS -diff --git a/units/systemd-bus-proxyd.socket b/units/systemd-bus-proxyd.socket -index 406e15b..6c42d38 100644 ---- a/units/systemd-bus-proxyd.socket -+++ b/units/systemd-bus-proxyd.socket -@@ -9,5 +9,5 @@ - Description=Legacy D-Bus Protocol Compatibility Socket - - [Socket] --ListenStream=/run/dbus/system_bus_socket -+ListenStream=/var/run/dbus/system_bus_socket - Accept=yes diff --git a/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch b/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch deleted file mode 100644 index 25ad758..0000000 --- a/0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch +++ /dev/null @@ -1,68 +0,0 @@ -From f230c64b5ad069b271f163da3142df52eab1202b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 04:27:50 +0100 -Subject: [PATCH] mount: don't send out PropertiesChanged message if actually - nothing got changed - -(cherry picked from commit ff5f34d08c191c326c41a083745522383ac86cae) ---- - src/core/mount.c | 15 ++++++++++++--- - 1 file changed, 12 insertions(+), 3 deletions(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index a0cea1e..75b133b 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1388,7 +1388,7 @@ static int mount_add_one( - _cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL; - bool load_extras = false; - MountParameters *p; -- bool delete; -+ bool delete, changed = false; - Unit *u; - int r; - -@@ -1456,6 +1456,7 @@ static int mount_add_one( - } - - unit_add_to_load_queue(u); -+ changed = true; - } else { - delete = false; - -@@ -1474,6 +1475,7 @@ static int mount_add_one( - /* Load in the extras later on, after we - * finished initialization of the unit */ - load_extras = true; -+ changed = true; - } - } - -@@ -1485,10 +1487,16 @@ static int mount_add_one( - } - - p = &MOUNT(u)->parameters_proc_self_mountinfo; -+ -+ changed = changed || -+ !streq_ptr(p->options, options) || -+ !streq_ptr(p->what, what) || -+ !streq_ptr(p->fstype, fstype); -+ - if (set_flags) { - MOUNT(u)->is_mounted = true; - MOUNT(u)->just_mounted = !MOUNT(u)->from_proc_self_mountinfo; -- MOUNT(u)->just_changed = !streq_ptr(p->options, o); -+ MOUNT(u)->just_changed = changed; - } - - MOUNT(u)->from_proc_self_mountinfo = true; -@@ -1511,7 +1519,8 @@ static int mount_add_one( - goto fail; - } - -- unit_add_to_dbus_queue(u); -+ if (changed) -+ unit_add_to_dbus_queue(u); - - return 0; - diff --git a/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch b/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch deleted file mode 100644 index 5d61e4b..0000000 --- a/0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 3a144cfb90e6c0c6586a976138fc8e472b90bbaf Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 26 Feb 2014 04:28:37 +0100 -Subject: [PATCH] mount: don't fire PropertiesChanged signals for mounts that - are stopped - -(cherry picked from commit aef831369cd2a7a1bd4a58dd96ff8628ed6a85f9) ---- - src/core/mount.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 75b133b..68b2e83 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1676,20 +1676,20 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - Mount *mount = MOUNT(u); - - if (!mount->is_mounted) { -- /* This has just been unmounted. */ - - mount->from_proc_self_mountinfo = false; - - switch (mount->state) { - - case MOUNT_MOUNTED: -+ /* This has just been unmounted by -+ * somebody else, follow the state -+ * change. */ - mount_enter_dead(mount, MOUNT_SUCCESS); - break; - - default: -- mount_set_state(mount, mount->state); - break; -- - } - - } else if (mount->just_mounted || mount->just_changed) { -@@ -1700,6 +1700,9 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - - case MOUNT_DEAD: - case MOUNT_FAILED: -+ /* This has just been mounted by -+ * somebody else, follow the state -+ * change. */ - mount_enter_mounted(mount, MOUNT_SUCCESS); - break; - diff --git a/0011-logs-show-fix-corrupt-output-with-empty-messages.patch b/0011-logs-show-fix-corrupt-output-with-empty-messages.patch deleted file mode 100644 index 9c47d01..0000000 --- a/0011-logs-show-fix-corrupt-output-with-empty-messages.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 494bf9d6d22406676c63822cbf941214fed3111c Mon Sep 17 00:00:00 2001 -From: Uoti Urpala -Date: Thu, 20 Feb 2014 03:00:09 +0200 -Subject: [PATCH] logs-show: fix corrupt output with empty messages - -If a message had zero length, journalctl would print no newline, and -two output lines would be concatenated. Fix. The problem was -introduced in commit 31f7bf199452 ("logs-show: print multiline -messages"). Affected short and verbose output modes. - -Before fix: - -Feb 09 21:16:17 glyph dhclient[1323]: Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit - -after: - -Feb 09 21:16:17 glyph dhclient[1323]: -Feb 09 21:16:17 glyph NetworkManager[788]: (enp4s2): DHCPv4 state changed nbi -> preinit - -(cherry picked from commit 47d80904a1f72d559962cc5ad32fffd46672a34a) ---- - src/shared/logs-show.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c -index 61c3652..12d4a1c 100644 ---- a/src/shared/logs-show.c -+++ b/src/shared/logs-show.c -@@ -124,6 +124,11 @@ static bool print_multiline(FILE *f, unsigned prefix, unsigned n_columns, Output - } - } - -+ /* A special case: make sure that we print a newline when -+ the message is empty. */ -+ if (message_len == 0) -+ fputs("\n", f); -+ - for (pos = message; - pos < message + message_len; - pos = end + 1, line++) { diff --git a/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch b/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch deleted file mode 100644 index d9481cc..0000000 --- a/0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0c4b94ed59075c38da2aa30d162fc9f963d419aa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 26 Feb 2014 23:01:43 -0500 -Subject: [PATCH] journalctl: refuse extra arguments with --verify and similar - -Positional arguments only make sense with the default action. -For other actions, complain instead of ignoring them silently. - -(cherry picked from commit 0b6b7c2004317da48e5bbd3078c5662d8f0061b6) ---- - src/journal/journalctl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index a328ba1..0619b25 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -658,6 +658,11 @@ static int parse_argv(int argc, char *argv[]) { - return -EINVAL; - } - -+ if (arg_action != ACTION_SHOW && optind < argc) { -+ log_error("Extraneous arguments starting with '%s'", argv[optind]); -+ return -EINVAL; -+ } -+ - return 1; - } - diff --git a/0013-cdrom_id-use-the-old-MMC-fallback.patch b/0013-cdrom_id-use-the-old-MMC-fallback.patch deleted file mode 100644 index 5b0489b..0000000 --- a/0013-cdrom_id-use-the-old-MMC-fallback.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 2388edd10d9aab9c0f3817e73addd3dc0bc870bf Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Thu, 27 Feb 2014 11:06:37 +0100 -Subject: [PATCH] cdrom_id: use the old MMC fallback - -https://bugzilla.redhat.com/show_bug.cgi?id=1038015 -The problem seems to be that the your virtual DVD is emulating a really -old DVD device, and doing it kind of strangely. - -> dracut:# /lib/udev/cdrom_id --debug /dev/sr0 -> probing: '/dev/sr0' -> INQUIRY: [IMM ][Virtual CD/DVD ][0316] -> GET CONFIGURATION failed with SK=5h/ASC=24h/ACQ=00h - -So your virtual drive rejects the GET CONFIGURATION command as illegal. - -Other pre-MMC2 drives that don't accept this command usually return the -error -SK=5h,ASC=20h (invalid/unsupported command code), in which case cdrom_id -tries an older method, and then ID_CDROM_MEDIA_TRACK_COUNT_DATA gets set -and all the /dev/disk/by-label (etc) links get set up. - -The virtual drive returns the error SK=5h,ASC=24h (invalid field in -Command Descriptor Block), which cdrom_id doesn't handle, so it gives up -and the links never get made. - -The ideal solution would be to make the IMM to emulate a device that's -less than 15 years old, but I'm not going to hold my breath waiting for -that. - -So probably cdrom_id should also use the old MMC fallback when the error -is SK=5h,ASC=24h, and then all of this would work as expected. - -Suggested-by:Luca Miccini -(cherry picked from commit a14f14976094650e17d39f3a7d15a1c68c93c333) ---- - src/udev/cdrom_id/cdrom_id.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/udev/cdrom_id/cdrom_id.c b/src/udev/cdrom_id/cdrom_id.c -index 93467c2..33b2bc3 100644 ---- a/src/udev/cdrom_id/cdrom_id.c -+++ b/src/udev/cdrom_id/cdrom_id.c -@@ -556,7 +556,7 @@ static int cd_profiles(struct udev *udev, int fd) - if ((err != 0)) { - info_scsi_cmd_err(udev, "GET CONFIGURATION", err); - /* handle pre-MMC2 drives which do not support GET CONFIGURATION */ -- if (SK(err) == 0x5 && ASC(err) == 0x20) { -+ if (SK(err) == 0x5 && (ASC(err) == 0x20 || ASC(err) == 0x24)) { - log_debug("drive is pre-MMC2 and does not support 46h get configuration command"); - log_debug("trying to work around the problem"); - ret = cd_profiles_old_mmc(udev, fd); diff --git a/0014-udev-rules-setup-tty-permissions-and-group-for-sclp_.patch b/0014-udev-rules-setup-tty-permissions-and-group-for-sclp_.patch deleted file mode 100644 index dcf7d0c..0000000 --- a/0014-udev-rules-setup-tty-permissions-and-group-for-sclp_.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 107e2ed29711c813a34a07e4ce626f98c3607534 Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Thu, 27 Feb 2014 11:19:09 +0100 -Subject: [PATCH] udev/rules: setup tty permissions and group for sclp_line, - ttysclp and 3270/tty - -(cherry picked from commit c594cccee264cfd98f183ae6ec289b11e70f2d6c) ---- - rules/50-udev-default.rules | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/rules/50-udev-default.rules b/rules/50-udev-default.rules -index 679dfdf..0bccf67 100644 ---- a/rules/50-udev-default.rules -+++ b/rules/50-udev-default.rules -@@ -15,6 +15,9 @@ ACTION!="add", GOTO="default_permissions_end" - SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666" - SUBSYSTEM=="tty", KERNEL=="tty", GROUP="tty", MODE="0666" - SUBSYSTEM=="tty", KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620" -+SUBSYSTEM=="tty", KERNEL=="sclp_line[0-9]*", GROUP="tty", MODE="0620" -+SUBSYSTEM=="tty", KERNEL=="ttysclp[0-9]*", GROUP="tty", MODE="0620" -+SUBSYSTEM=="tty", KERNEL=="3270/tty[0-9]*", GROUP="tty", MODE="0620" - SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty" - KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout" - diff --git a/0015-architecture-Add-tilegx.patch b/0015-architecture-Add-tilegx.patch deleted file mode 100644 index c7b8171..0000000 --- a/0015-architecture-Add-tilegx.patch +++ /dev/null @@ -1,55 +0,0 @@ -From ff02c36bfc811fc7ecbcaebdbc3bc4bebb5f19ab Mon Sep 17 00:00:00 2001 -From: Henrik Grindal Bakken -Date: Thu, 27 Feb 2014 21:19:13 +0100 -Subject: [PATCH] architecture: Add tilegx - -Add Tilera's TILE-GX processor family support. - -(cherry picked from commit 46eea341c36f0caf0bdd5b2274a1ef7cb4e83e97) ---- - src/shared/architecture.c | 3 +++ - src/shared/architecture.h | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git a/src/shared/architecture.c b/src/shared/architecture.c -index ceba492..fcdb3d5 100644 ---- a/src/shared/architecture.c -+++ b/src/shared/architecture.c -@@ -112,6 +112,8 @@ Architecture uname_architecture(void) { - { "sh", ARCHITECTURE_SH }, - #elif defined(__m68k__) - { "m68k", ARCHITECTURE_M68K }, -+#elif defined(__tilegx__) -+ { "tilegx", ARCHITECTURE_TILEGX }, - #else - #error "Please register your architecture here!" - #endif -@@ -158,6 +160,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { - [ARCHITECTURE_SH] = "sh", - [ARCHITECTURE_SH64] = "sh64", - [ARCHITECTURE_M68K] = "m68k", -+ [ARCHITECTURE_TILEGX] = "tilegx", - }; - - DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); -diff --git a/src/shared/architecture.h b/src/shared/architecture.h -index 3183645..e589a91 100644 ---- a/src/shared/architecture.h -+++ b/src/shared/architecture.h -@@ -47,6 +47,7 @@ typedef enum Architecture { - ARCHITECTURE_SH, - ARCHITECTURE_SH64, - ARCHITECTURE_M68K, -+ ARCHITECTURE_TILEGX, - _ARCHITECTURE_MAX, - _ARCHITECTURE_INVALID = -1 - } Architecture; -@@ -107,6 +108,8 @@ Architecture uname_architecture(void); - # define native_architecture() ARCHITECTURE_SH - #elif defined(__m68k__) - # define native_architecture() ARCHITECTURE_M68K -+#elif defined(__tilegx__) -+# define native_architecture() ARCHITECTURE_TILEGX - #else - #error "Please register your architecture here!" - #endif diff --git a/0016-nspawn-fix-detection-of-missing-proc-self-loginuid.patch b/0016-nspawn-fix-detection-of-missing-proc-self-loginuid.patch deleted file mode 100644 index d5aef96..0000000 --- a/0016-nspawn-fix-detection-of-missing-proc-self-loginuid.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0b37b2b7a3fe8e8f96f368848ff46db325a59e70 Mon Sep 17 00:00:00 2001 -From: Tero Roponen -Date: Tue, 25 Feb 2014 17:19:35 +0200 -Subject: [PATCH] nspawn: fix detection of missing /proc/self/loginuid - -Running 'systemd-nspawn -D /srv/Fedora/' gave me this error: - Failed to read /proc/self/loginuid: No such file or directory - - Container Fedora failed with error code 1. - -This patch fixes the problem. - -(cherry picked from commit 13e8ceb84e56907d73b6b07418deb37faaf0e66d) ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index de74a43..84b7276 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -1341,7 +1341,7 @@ static int reset_audit_loginuid(void) { - return 0; - - r = read_one_line_file("/proc/self/loginuid", &p); -- if (r == -EEXIST) -+ if (r == -ENOENT) - return 0; - if (r < 0) { - log_error("Failed to read /proc/self/loginuid: %s", strerror(-r)); diff --git a/0017-bash-add-completion-for-systemd-nspawn.patch b/0017-bash-add-completion-for-systemd-nspawn.patch deleted file mode 100644 index 4746722..0000000 --- a/0017-bash-add-completion-for-systemd-nspawn.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 3300150b370b2a58522d55d7ff17632e5dd58af8 Mon Sep 17 00:00:00 2001 -From: Thomas Andersen -Date: Sat, 1 Mar 2014 03:27:49 +0100 -Subject: [PATCH] bash: add completion for systemd-nspawn - -(cherry picked from commit 0d6883b6a870b66c8c70e43695d22de96aab68e7) ---- - Makefile.am | 1 + - shell-completion/bash/systemd-nspawn | 112 +++++++++++++++++++++++++++++++++++ - 2 files changed, 113 insertions(+) - create mode 100644 shell-completion/bash/systemd-nspawn - -diff --git a/Makefile.am b/Makefile.am -index 529b525..8e6c392 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -353,6 +353,7 @@ dist_bashcompletion_DATA = \ - shell-completion/bash/systemctl \ - shell-completion/bash/systemd-analyze \ - shell-completion/bash/systemd-delta \ -+ shell-completion/bash/systemd-nspawn \ - shell-completion/bash/systemd-run \ - shell-completion/bash/udevadm \ - shell-completion/bash/kernel-install -diff --git a/shell-completion/bash/systemd-nspawn b/shell-completion/bash/systemd-nspawn -new file mode 100644 -index 0000000..5b2ac82 ---- /dev/null -+++ b/shell-completion/bash/systemd-nspawn -@@ -0,0 +1,112 @@ -+# systemd-nspawn(1) completion -*- shell-script -*- -+# -+# This file is part of systemd. -+# -+# Copyright 2014 Thomas H.P. Andersen -+# -+# 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 -+# 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 . -+ -+__contains_word() { -+ local w word=$1; shift -+ for w in "$@"; do -+ [[ $w = "$word" ]] && return -+ done -+} -+ -+__get_users() { -+ local a b -+ loginctl list-users --no-legend --no-pager | { while read a b; do echo " $b"; done; }; -+} -+ -+__get_slices() { -+ local a b -+ systemctl list-units -t slice --no-legend --no-pager | { while read a b; do echo " $a"; done; }; -+} -+ -+_systemd_nspawn() { -+ local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} -+ local i verb comps -+ -+ local -A OPTS=( -+ [STANDALONE]='-h --help --version --private-network -b --boot --read-only -q --quiet --share-system --keep-unit --network-veth -j' -+ [ARG]='-D --directory -u --user --uuid --capability --drop-capability --link-journal --bind --bind-ro -M --machine -+ -S --slice --setenv -Z --selinux-context -L --selinux-apifs-context --register --network-interface --network-bridge -+ --personality' -+ ) -+ -+ _init_completion || return -+ -+ if __contains_word "$prev" ${OPTS[ARG]}; then -+ case $prev in -+ --directory|-D) -+ comps=$(compgen -A directory -- "$cur" ) -+ ;; -+ --user|-u) -+ comps=$( __get_users ) -+ ;; -+ --uuid) -+ comps='' -+ ;; -+ --capability) -+ comps='CAP_BLOCK_SUSPEND CAP_IPC_LOCK CAP_MAC_ADMIN CAP_MAC_OVERRIDE CAP_SYS_MODULE CAP_SYS_PACCT CAP_SYS_RAWIO -+ CAP_SYS_TIME CAP_SYSLOG CAP_WAKE_ALARM CAP_NET_ADMIN' -+ ;; -+ --drop-capability) -+ comps='CAP_AUDIT_CONTROL CAP_AUDIT_WRITE CAP_CHOWN CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_FSETID -+ CAP_IPC_OWNER CAP_KILL CAP_LEASE CAP_LINUX_IMMUTABLE CAP_MKNOD CAP_NET_ADMIN CAP_NET_BIND_SERVICE -+ CAP_NET_BROADCAST CAP_NET_RAW CAP_SETFCAP CAP_SETGID CAP_SETPCAP CAP_SETUID CAP_SYS_ADMIN CAP_SYS_BOOT -+ CAP_SYS_CHROOT CAP_SYS_NICE CAP_SYS_PTRACE CAP_SYS_RESOURCE CAP_SYS_TTY_CONFIG' -+ ;; -+ --link-journal) -+ comps='no auto guest host' -+ ;; -+ --bind|--bind-ro) -+ comps='' -+ ;; -+ --machine|-M) -+ comps='' -+ ;; -+ --slice|-S) -+ comps=$( __get_slices ) -+ ;; -+ --setenv) -+ comps='' -+ ;; -+ --selinux-context|-Z) -+ comps='' -+ ;; -+ --selinux-apifs-context|-L) -+ comps='' -+ ;; -+ --register) -+ comps='yes no' -+ ;; -+ --network-interface) -+ comps='' -+ ;; -+ --network-bridge) -+ comps='' -+ ;; -+ --personality) -+ comps='x86 x86-64' -+ ;; -+ esac -+ COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) -+ return 0 -+ fi -+ -+ COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) -+} -+ -+complete -F _systemd_nspawn systemd-nspawn diff --git a/0018-add-bash-completion-for-systemd-cgls.patch b/0018-add-bash-completion-for-systemd-cgls.patch deleted file mode 100644 index 3be4558..0000000 --- a/0018-add-bash-completion-for-systemd-cgls.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 8523c2a84f3d8a8b163a17aad5c55cb0234ebff2 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 1 Mar 2014 23:08:38 +0100 -Subject: [PATCH] add bash completion for systemd-cgls - -(cherry picked from commit abdab4f602745952030a37b1521cd0374d51d3ea) ---- - Makefile.am | 1 + - shell-completion/bash/systemd-cgls | 56 ++++++++++++++++++++++++++++++++++++++ - 2 files changed, 57 insertions(+) - create mode 100644 shell-completion/bash/systemd-cgls - -diff --git a/Makefile.am b/Makefile.am -index 8e6c392..0b83823 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -352,6 +352,7 @@ dist_bashcompletion_DATA = \ - shell-completion/bash/journalctl \ - shell-completion/bash/systemctl \ - shell-completion/bash/systemd-analyze \ -+ shell-completion/bash/systemd-cgls \ - shell-completion/bash/systemd-delta \ - shell-completion/bash/systemd-nspawn \ - shell-completion/bash/systemd-run \ -diff --git a/shell-completion/bash/systemd-cgls b/shell-completion/bash/systemd-cgls -new file mode 100644 -index 0000000..0570438 ---- /dev/null -+++ b/shell-completion/bash/systemd-cgls -@@ -0,0 +1,56 @@ -+# systemd-cgls(1) completion -*- shell-script -*- -+# -+# This file is part of systemd. -+# -+# Copyright 2014 Thomas H.P. Andersen -+# -+# 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 -+# 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 . -+ -+__contains_word() { -+ local w word=$1; shift -+ for w in "$@"; do -+ [[ $w = "$word" ]] && return -+ done -+} -+ -+__get_machines() { -+ local a b -+ machinectl list --no-legend --no-pager | { while read a b; do echo " $a"; done; }; -+} -+ -+_systemd_cgls() { -+ local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} -+ local i verb comps -+ -+ local -A OPTS=( -+ [STANDALONE]='-h --help --version --all -l --full -k --no-pager' -+ [ARG]='-M --machine' -+ ) -+ -+ _init_completion || return -+ -+ if __contains_word "$prev" ${OPTS[ARG]}; then -+ case $prev in -+ --machine|-M) -+ comps=$( __get_machines ) -+ ;; -+ esac -+ COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) -+ return 0 -+ fi -+ -+ COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) -+} -+ -+complete -F _systemd_cgls systemd-cgls diff --git a/0019-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0019-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index c63a9df..0000000 --- a/0019-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a63a8b12c107215fa8b84ca792e84bc2789e6163 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Sun, 2 Mar 2014 10:02:10 -0800 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - -(cherry picked from commit e525326bd07ebf3cabcfd730bc479166723f2d44) ---- - hwdb/20-bluetooth-vendor-product.hwdb | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb -index db3bc24..0335a71 100644 ---- a/hwdb/20-bluetooth-vendor-product.hwdb -+++ b/hwdb/20-bluetooth-vendor-product.hwdb -@@ -902,3 +902,12 @@ bluetooth:v0129* - - bluetooth:v012A* - ID_VENDOR_FROM_DATABASE=Changzhou Yongse Infotech Co., Ltd -+ -+bluetooth:v012B* -+ ID_VENDOR_FROM_DATABASE=SportIQ -+ -+bluetooth:v012C* -+ ID_VENDOR_FROM_DATABASE=TEMEC Instruments B.V. -+ -+bluetooth:v012D* -+ ID_VENDOR_FROM_DATABASE=Sony Corporation diff --git a/0020-Allow-fractional-parts-in-disk-sizes.patch b/0020-Allow-fractional-parts-in-disk-sizes.patch deleted file mode 100644 index bec6b9e..0000000 --- a/0020-Allow-fractional-parts-in-disk-sizes.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 4cae8946d581a6ecf0b26e154bf9c00e390024b2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 2 Mar 2014 00:05:16 -0500 -Subject: [PATCH] Allow fractional parts in disk sizes - -It seems natural to be able to say SystemMaxUsage=1.5G. - -https://bugzilla.redhat.com/show_bug.cgi?id=1047568 -(cherry picked from commit 9480794b277b5ce33e467578ed669996df576bb9) ---- - src/shared/util.c | 24 ++++++++++++++++++++++-- - src/test/test-util.c | 42 +++++++++++++++++++++++++++++++++++++----- - 2 files changed, 59 insertions(+), 7 deletions(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index 5cb598c..3164515 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -2198,6 +2198,8 @@ int parse_size(const char *t, off_t base, off_t *size) { - p = t; - do { - long long l; -+ unsigned long long l2; -+ double frac = 0; - char *e; - unsigned i; - -@@ -2213,14 +2215,32 @@ int parse_size(const char *t, off_t base, off_t *size) { - if (e == p) - return -EINVAL; - -+ if (*e == '.') { -+ e++; -+ if (*e >= '0' && *e <= '9') { -+ char *e2; -+ -+ /* strotoull itself would accept space/+/- */ -+ l2 = strtoull(e, &e2, 10); -+ -+ if (errno == ERANGE) -+ return -errno; -+ -+ /* Ignore failure. E.g. 10.M is valid */ -+ frac = l2; -+ for (; e < e2; e++) -+ frac /= 10; -+ } -+ } -+ - e += strspn(e, WHITESPACE); - - for (i = 0; i < n_entries; i++) - if (startswith(e, table[i].suffix)) { - unsigned long long tmp; -- if ((unsigned long long) l > ULLONG_MAX / table[i].factor) -+ if ((unsigned long long) l + (frac > 0) > ULLONG_MAX / table[i].factor) - return -ERANGE; -- tmp = l * table[i].factor; -+ tmp = l * table[i].factor + (unsigned long long) (frac * table[i].factor); - if (tmp > ULLONG_MAX - r) - return -ERANGE; - -diff --git a/src/test/test-util.c b/src/test/test-util.c -index b718206..74f83a2 100644 ---- a/src/test/test-util.c -+++ b/src/test/test-util.c -@@ -30,6 +30,7 @@ - #include "strv.h" - #include "def.h" - #include "fileio.h" -+#include "conf-parser.h" - - static void test_streq_ptr(void) { - assert_se(streq_ptr(NULL, NULL)); -@@ -441,17 +442,32 @@ static void test_parse_size(void) { - assert_se(parse_size("111", 1024, &bytes) == 0); - assert_se(bytes == 111); - -+ assert_se(parse_size("111.4", 1024, &bytes) == 0); -+ assert_se(bytes == 111); -+ - assert_se(parse_size(" 112 B", 1024, &bytes) == 0); - assert_se(bytes == 112); - -- assert_se(parse_size("3 K", 1024, &bytes) == 0); -+ assert_se(parse_size(" 112.6 B", 1024, &bytes) == 0); -+ assert_se(bytes == 112); -+ -+ assert_se(parse_size("3.5 K", 1024, &bytes) == 0); -+ assert_se(bytes == 3*1024 + 512); -+ -+ assert_se(parse_size("3. K", 1024, &bytes) == 0); -+ assert_se(bytes == 3*1024); -+ -+ assert_se(parse_size("3.0 K", 1024, &bytes) == 0); - assert_se(bytes == 3*1024); - -- assert_se(parse_size(" 4 M 11K", 1024, &bytes) == 0); -- assert_se(bytes == 4*1024*1024 + 11 * 1024); -+ assert_se(parse_size("3. 0 K", 1024, &bytes) == 0); -+ assert_se(bytes == 3); - -- assert_se(parse_size("3B3G", 1024, &bytes) == 0); -- assert_se(bytes == 3ULL*1024*1024*1024 + 3); -+ assert_se(parse_size(" 4 M 11.5K", 1024, &bytes) == 0); -+ assert_se(bytes == 4*1024*1024 + 11 * 1024 + 512); -+ -+ assert_se(parse_size("3B3.5G", 1024, &bytes) == 0); -+ assert_se(bytes == 3ULL*1024*1024*1024 + 512*1024*1024 + 3); - - assert_se(parse_size("3B3G4T", 1024, &bytes) == 0); - assert_se(bytes == (4ULL*1024 + 3)*1024*1024*1024 + 3); -@@ -464,6 +480,10 @@ static void test_parse_size(void) { - - assert_se(parse_size("12X", 1024, &bytes) == -EINVAL); - -+ assert_se(parse_size("12.5X", 1024, &bytes) == -EINVAL); -+ -+ assert_se(parse_size("12.5e3", 1024, &bytes) == -EINVAL); -+ - assert_se(parse_size("1024E", 1024, &bytes) == -ERANGE); - assert_se(parse_size("-1", 1024, &bytes) == -ERANGE); - assert_se(parse_size("-1024E", 1024, &bytes) == -ERANGE); -@@ -473,6 +493,14 @@ static void test_parse_size(void) { - assert_se(parse_size("-10B 20K", 1024, &bytes) == -ERANGE); - } - -+static void test_config_parse_iec_off(void) { -+ off_t offset = 0; -+ assert_se(config_parse_iec_off(NULL, "/this/file", 11, "Section", 22, "Size", 0, "4M", &offset, NULL) == 0); -+ assert_se(offset == 4 * 1024 * 1024); -+ -+ assert_se(config_parse_iec_off(NULL, "/this/file", 11, "Section", 22, "Size", 0, "4.5M", &offset, NULL) == 0); -+} -+ - static void test_strextend(void) { - _cleanup_free_ char *str = strdup("0123"); - strextend(&str, "456", "78", "9", NULL); -@@ -589,6 +617,9 @@ static void test_writing_tmpfile(void) { - } - - int main(int argc, char *argv[]) { -+ log_parse_environment(); -+ log_open(); -+ - test_streq_ptr(); - test_first_word(); - test_close_many(); -@@ -618,6 +649,7 @@ int main(int argc, char *argv[]) { - test_get_process_comm(); - test_protect_errno(); - test_parse_size(); -+ test_config_parse_iec_off(); - test_strextend(); - test_strrep(); - test_split_pair(); diff --git a/0021-add-bash-completion-for-systemd-cgtop.patch b/0021-add-bash-completion-for-systemd-cgtop.patch deleted file mode 100644 index 631495a..0000000 --- a/0021-add-bash-completion-for-systemd-cgtop.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 6b4293393eb0a15e4f73ba9f08554178ccc4c222 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sun, 2 Mar 2014 22:58:18 +0100 -Subject: [PATCH] add bash completion for systemd-cgtop - -(cherry picked from commit d9256bac4da4241cb5d97960c899390839f2c6e5) ---- - Makefile.am | 1 + - shell-completion/bash/systemd-cgtop | 40 +++++++++++++++++++++++++++++++++++++ - 2 files changed, 41 insertions(+) - create mode 100644 shell-completion/bash/systemd-cgtop - -diff --git a/Makefile.am b/Makefile.am -index 0b83823..9cabd1d 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -353,6 +353,7 @@ dist_bashcompletion_DATA = \ - shell-completion/bash/systemctl \ - shell-completion/bash/systemd-analyze \ - shell-completion/bash/systemd-cgls \ -+ shell-completion/bash/systemd-cgtop \ - shell-completion/bash/systemd-delta \ - shell-completion/bash/systemd-nspawn \ - shell-completion/bash/systemd-run \ -diff --git a/shell-completion/bash/systemd-cgtop b/shell-completion/bash/systemd-cgtop -new file mode 100644 -index 0000000..d7ea42d ---- /dev/null -+++ b/shell-completion/bash/systemd-cgtop -@@ -0,0 +1,40 @@ -+# systemd-cgtop(1) completion -*- shell-script -*- -+# -+# This file is part of systemd. -+# -+# Copyright 2014 Thomas H.P. Andersen -+# -+# 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 -+# 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 . -+ -+__contains_word() { -+ local w word=$1; shift -+ for w in "$@"; do -+ [[ $w = "$word" ]] && return -+ done -+} -+ -+_systemd_cgtop() { -+ local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} -+ local comps -+ -+ local -A OPTS=( -+ [STANDALONE]='-h --help --version -p -t -c -m -i -b --batch -n --iterations -d --delay' -+ ) -+ -+ _init_completion || return -+ -+ COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) -+} -+ -+complete -F _systemd_cgtop systemd-cgtop diff --git a/0022-Fix-systemd-stdio-bridge-symlink.patch b/0022-Fix-systemd-stdio-bridge-symlink.patch deleted file mode 100644 index 8a7f2c3..0000000 --- a/0022-Fix-systemd-stdio-bridge-symlink.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 877c2fccf76afdd7364040f9b859c8d84226b9cc Mon Sep 17 00:00:00 2001 -From: Mike Gilbert -Date: Sun, 2 Mar 2014 23:37:39 -0500 -Subject: [PATCH] Fix systemd-stdio-bridge symlink - -The symlink is created in bindir (/usr/bin), and points to a binary -which lives in rootlibexecdir (/lib/systemd or /usr/lib/systemd). A -relative symlink does not work here. - -(cherry picked from commit 8100c1a8f58b2fb5d97e156420a7e16562e93bc4) ---- - Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 9cabd1d..bc5e719 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1955,7 +1955,7 @@ systemd_bus_proxyd_LDADD = \ - - bus-proxyd-install-hook: - $(AM_V_at)$(MKDIR_P) $(DESTDIR)$(bindir) -- $(AM_V_LN)$(LN_S) -f ../lib/systemd/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge -+ $(AM_V_LN)$(LN_S) -f $(rootlibexecdir)/systemd-bus-proxyd $(DESTDIR)$(bindir)/systemd-stdio-bridge - - bus-proxyd-uninstall-hook: - rm -f $(DESTDIR)$(bindir)/systemd-stdio-bridge diff --git a/0023-execute-free-directory-path-if-we-fail-to-remove-it-.patch b/0023-execute-free-directory-path-if-we-fail-to-remove-it-.patch deleted file mode 100644 index a88139d..0000000 --- a/0023-execute-free-directory-path-if-we-fail-to-remove-it-.patch +++ /dev/null @@ -1,52 +0,0 @@ -From f0eb7735d8cdf44ebf7064613add363ddda329b0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 3 Mar 2014 17:11:39 +0100 -Subject: [PATCH] execute: free directory path if we fail to remove it because - we cannot allocate a thread - -(cherry picked from commit 98b47d54ce946ad3524f84eb38d2413498a333dc) ---- - src/core/execute.c | 18 ++++++++++++++++-- - 1 file changed, 16 insertions(+), 2 deletions(-) - -diff --git a/src/core/execute.c b/src/core/execute.c -index a328fc2..bb06507 100644 ---- a/src/core/execute.c -+++ b/src/core/execute.c -@@ -2579,6 +2579,8 @@ static void *remove_tmpdir_thread(void *p) { - } - - void exec_runtime_destroy(ExecRuntime *rt) { -+ int r; -+ - if (!rt) - return; - -@@ -2588,13 +2590,25 @@ void exec_runtime_destroy(ExecRuntime *rt) { - - if (rt->tmp_dir) { - log_debug("Spawning thread to nuke %s", rt->tmp_dir); -- asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); -+ -+ r = asynchronous_job(remove_tmpdir_thread, rt->tmp_dir); -+ if (r < 0) { -+ log_warning("Failed to nuke %s: %s", rt->tmp_dir, strerror(-r)); -+ free(rt->tmp_dir); -+ } -+ - rt->tmp_dir = NULL; - } - - if (rt->var_tmp_dir) { - log_debug("Spawning thread to nuke %s", rt->var_tmp_dir); -- asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); -+ -+ r = asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir); -+ if (r < 0) { -+ log_warning("Failed to nuke %s: %s", rt->var_tmp_dir, strerror(-r)); -+ free(rt->var_tmp_dir); -+ } -+ - rt->var_tmp_dir = NULL; - } - diff --git a/0024-update-bash-completion-for-systemd-analyze.patch b/0024-update-bash-completion-for-systemd-analyze.patch deleted file mode 100644 index 695a50b..0000000 --- a/0024-update-bash-completion-for-systemd-analyze.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 1ec5be9a85b46c697fc87405038427eaf9bebe1b Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Mon, 3 Mar 2014 22:01:42 +0100 -Subject: [PATCH] update bash completion for systemd-analyze - -(cherry picked from commit 64ae7f1864d54f38d62e258322a7ea9756c7284b) ---- - shell-completion/bash/systemd-analyze | 24 +++++++++++++++++++++++- - 1 file changed, 23 insertions(+), 1 deletion(-) - -diff --git a/shell-completion/bash/systemd-analyze b/shell-completion/bash/systemd-analyze -index 6afcd96..5575beb 100644 ---- a/shell-completion/bash/systemd-analyze -+++ b/shell-completion/bash/systemd-analyze -@@ -25,10 +25,19 @@ __contains_word () { - done - } - -+__get_machines() { -+ local a b -+ machinectl list --no-legend --no-pager | { while read a b; do echo " $a"; done; }; -+} -+ - _systemd_analyze() { - local i verb comps - local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} -- local OPTS='--help --version --system --user --from-pattern --to-pattern --order --require' -+ -+ local -A OPTS=( -+ [STANDALONE]='--help --version --system --user --from-pattern --to-pattern --order --require --no-pager' -+ [ARG]='-H --host -M --machine' -+ ) - - local -A VERBS=( - [STANDALONE]='time blame plot dump' -@@ -47,6 +56,19 @@ _systemd_analyze() { - fi - done - -+ if __contains_word "$prev" ${OPTS[ARG]}; then -+ case $prev in -+ --host|-H) -+ comps=$(compgen -A hostname) -+ ;; -+ --machine|-M) -+ comps=$( __get_machines ) -+ ;; -+ esac -+ COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) -+ return 0 -+ fi -+ - if [[ -z $verb && $cur = -* ]]; then - COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) - return 0 diff --git a/0025-add-bash-completion-for-systemd-detect-virt.patch b/0025-add-bash-completion-for-systemd-detect-virt.patch deleted file mode 100644 index 6c8a489..0000000 --- a/0025-add-bash-completion-for-systemd-detect-virt.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 191479e0e4fb43f667ce743e82aac8bcccfbd6e1 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Mon, 3 Mar 2014 22:16:04 +0100 -Subject: [PATCH] add bash completion for systemd-detect-virt - -(cherry picked from commit 3bfe58cbd4a9b1d2520f425f95de718f3a583d39) ---- - Makefile.am | 1 + - shell-completion/bash/systemd-detect-virt | 40 +++++++++++++++++++++++++++++++ - 2 files changed, 41 insertions(+) - create mode 100644 shell-completion/bash/systemd-detect-virt - -diff --git a/Makefile.am b/Makefile.am -index bc5e719..834ed6f 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -355,6 +355,7 @@ dist_bashcompletion_DATA = \ - shell-completion/bash/systemd-cgls \ - shell-completion/bash/systemd-cgtop \ - shell-completion/bash/systemd-delta \ -+ shell-completion/bash/systemd-detect-virt \ - shell-completion/bash/systemd-nspawn \ - shell-completion/bash/systemd-run \ - shell-completion/bash/udevadm \ -diff --git a/shell-completion/bash/systemd-detect-virt b/shell-completion/bash/systemd-detect-virt -new file mode 100644 -index 0000000..df06c29 ---- /dev/null -+++ b/shell-completion/bash/systemd-detect-virt -@@ -0,0 +1,40 @@ -+# systemd-detect-virt(1) completion -*- shell-script -*- -+# -+# This file is part of systemd. -+# -+# Copyright 2014 Thomas H.P. Andersen -+# -+# 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 -+# 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 . -+ -+__contains_word() { -+ local w word=$1; shift -+ for w in "$@"; do -+ [[ $w = "$word" ]] && return -+ done -+} -+ -+_systemd_detect_virt() { -+ local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} -+ local i verb comps -+ -+ local -A OPTS=( -+ [STANDALONE]='-h --help --version -c --container -v --vm -q --quiet' -+ ) -+ -+ _init_completion || return -+ -+ COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) -+} -+ -+complete -F _systemd_detect_virt systemd-detect-virt diff --git a/0026-Do-not-print-invalid-UTF-8-in-error-messages.patch b/0026-Do-not-print-invalid-UTF-8-in-error-messages.patch deleted file mode 100644 index 1c9f603..0000000 --- a/0026-Do-not-print-invalid-UTF-8-in-error-messages.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 799f37dd06946958dfed2aec54788c5e81bf340a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 4 Mar 2014 09:50:26 -0500 -Subject: [PATCH] Do not print invalid UTF-8 in error messages - -Inexplicably, 550a40ec ('core: do not print invalid utf-8 in error -messages') only fixed two paths. Convert all of them now. - -(cherry picked from commit b5d742138f71e87312541a89aac5657015f50f48) - -Conflicts: - src/core/load-fragment.c - src/shared/conf-parser.c ---- - src/core/load-fragment.c | 11 +++-------- - src/shared/conf-parser.c | 6 ++---- - src/shared/conf-parser.h | 6 ++++++ - src/shared/fileio.c | 9 ++++++--- - 4 files changed, 17 insertions(+), 15 deletions(-) - -diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c -index 82aed1e..027ec5f 100644 ---- a/src/core/load-fragment.c -+++ b/src/core/load-fragment.c -@@ -535,9 +535,7 @@ int config_parse_exec(const char *unit, - } - - if (!utf8_is_valid(path)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", -- rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - r = 0; - goto fail; - } -@@ -552,9 +550,7 @@ int config_parse_exec(const char *unit, - } - - if (!utf8_is_valid(c)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", -- rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - r = 0; - goto fail; - } -@@ -1959,8 +1955,7 @@ int config_parse_unit_requires_mounts_for( - return log_oom(); - - if (!utf8_is_valid(n)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - continue; - } - -diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c -index cfa669b..b6aa856 100644 ---- a/src/shared/conf-parser.c -+++ b/src/shared/conf-parser.c -@@ -656,8 +656,7 @@ int config_parse_path(const char *unit, - assert(data); - - if (!utf8_is_valid(rvalue)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Path is not UTF-8 clean, ignoring assignment: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - return 0; - } - -@@ -725,8 +724,7 @@ int config_parse_strv(const char *unit, - return log_oom(); - - if (!utf8_is_valid(n)) { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "String is not UTF-8 clean, ignoring: %s", rvalue); -+ log_invalid_utf8(unit, LOG_ERR, filename, line, EINVAL, rvalue); - continue; - } - -diff --git a/src/shared/conf-parser.h b/src/shared/conf-parser.h -index 4ccdadd..7e1c493 100644 ---- a/src/shared/conf-parser.h -+++ b/src/shared/conf-parser.h -@@ -124,6 +124,12 @@ int log_syntax_internal(const char *unit, int level, - config_file, config_line, \ - error, __VA_ARGS__) - -+#define log_invalid_utf8(unit, level, config_file, config_line, error, rvalue) { \ -+ _cleanup_free_ char *__p = utf8_escape_invalid(rvalue); \ -+ log_syntax(unit, level, config_file, config_line, error, \ -+ "String is not UTF-8 clean, ignoring assignment: %s", __p); \ -+ } -+ - #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ - int function(const char *unit, \ - const char *filename, \ -diff --git a/src/shared/fileio.c b/src/shared/fileio.c -index 0d3f2e9..fcd1b8a 100644 ---- a/src/shared/fileio.c -+++ b/src/shared/fileio.c -@@ -598,15 +598,18 @@ static int load_env_file_push(const char *filename, unsigned line, - int r; - - if (!utf8_is_valid(key)) { -+ _cleanup_free_ char *t = utf8_escape_invalid(key); -+ - log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.", -- filename, line, key); -+ filename, line, t); - return -EINVAL; - } - - if (value && !utf8_is_valid(value)) { -- /* FIXME: filter UTF-8 */ -+ _cleanup_free_ char *t = utf8_escape_invalid(value); -+ - log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.", -- filename, line, key, value); -+ filename, line, key, t); - return -EINVAL; - } - diff --git a/0027-architecture-Add-cris.patch b/0027-architecture-Add-cris.patch deleted file mode 100644 index e825d2e..0000000 --- a/0027-architecture-Add-cris.patch +++ /dev/null @@ -1,53 +0,0 @@ -From b4fb5c323dc77954867e0d896dce03edd094617a Mon Sep 17 00:00:00 2001 -From: Umut Tezduyar Lindskog -Date: Tue, 4 Mar 2014 13:58:35 +0100 -Subject: [PATCH] architecture: Add cris - -(cherry picked from commit 86bafac9540ba9e111ccba2fdf4161fe3a67cd3b) ---- - src/shared/architecture.c | 3 +++ - src/shared/architecture.h | 3 +++ - 2 files changed, 6 insertions(+) - -diff --git a/src/shared/architecture.c b/src/shared/architecture.c -index fcdb3d5..9e0c3ef 100644 ---- a/src/shared/architecture.c -+++ b/src/shared/architecture.c -@@ -114,6 +114,8 @@ Architecture uname_architecture(void) { - { "m68k", ARCHITECTURE_M68K }, - #elif defined(__tilegx__) - { "tilegx", ARCHITECTURE_TILEGX }, -+#elif defined(__cris__) -+ { "cris", ARCHITECTURE_CRIS }, - #else - #error "Please register your architecture here!" - #endif -@@ -161,6 +163,7 @@ static const char *const architecture_table[_ARCHITECTURE_MAX] = { - [ARCHITECTURE_SH64] = "sh64", - [ARCHITECTURE_M68K] = "m68k", - [ARCHITECTURE_TILEGX] = "tilegx", -+ [ARCHITECTURE_CRIS] = "cris", - }; - - DEFINE_STRING_TABLE_LOOKUP(architecture, Architecture); -diff --git a/src/shared/architecture.h b/src/shared/architecture.h -index e589a91..20e848b 100644 ---- a/src/shared/architecture.h -+++ b/src/shared/architecture.h -@@ -48,6 +48,7 @@ typedef enum Architecture { - ARCHITECTURE_SH64, - ARCHITECTURE_M68K, - ARCHITECTURE_TILEGX, -+ ARCHITECTURE_CRIS, - _ARCHITECTURE_MAX, - _ARCHITECTURE_INVALID = -1 - } Architecture; -@@ -110,6 +111,8 @@ Architecture uname_architecture(void); - # define native_architecture() ARCHITECTURE_M68K - #elif defined(__tilegx__) - # define native_architecture() ARCHITECTURE_TILEGX -+#elif defined(__cris__) -+# define native_architecture() ARCHITECTURE_CRIS - #else - #error "Please register your architecture here!" - #endif diff --git a/0028-add-bash-completion-for-systemd-cat.patch b/0028-add-bash-completion-for-systemd-cat.patch deleted file mode 100644 index bcee26b..0000000 --- a/0028-add-bash-completion-for-systemd-cat.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 7f197e46c944bdb43fa1cedbd97708ac2ea72558 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Tue, 4 Mar 2014 23:16:30 +0100 -Subject: [PATCH] add bash completion for systemd-cat - -(cherry picked from commit 207017017db91232189226bfcf29e61926310a9b) ---- - Makefile.am | 1 + - shell-completion/bash/systemd-cat | 57 +++++++++++++++++++++++++++++++++++++++ - 2 files changed, 58 insertions(+) - create mode 100644 shell-completion/bash/systemd-cat - -diff --git a/Makefile.am b/Makefile.am -index 834ed6f..7187b8d 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -352,6 +352,7 @@ dist_bashcompletion_DATA = \ - shell-completion/bash/journalctl \ - shell-completion/bash/systemctl \ - shell-completion/bash/systemd-analyze \ -+ shell-completion/bash/systemd-cat \ - shell-completion/bash/systemd-cgls \ - shell-completion/bash/systemd-cgtop \ - shell-completion/bash/systemd-delta \ -diff --git a/shell-completion/bash/systemd-cat b/shell-completion/bash/systemd-cat -new file mode 100644 -index 0000000..8d84042 ---- /dev/null -+++ b/shell-completion/bash/systemd-cat -@@ -0,0 +1,57 @@ -+# systemd-cat(1) completion -*- shell-script -*- -+# -+# This file is part of systemd. -+# -+# Copyright 2014 Thomas H.P. Andersen -+# -+# 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 -+# 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 . -+ -+__contains_word() { -+ local w word=$1; shift -+ for w in "$@"; do -+ [[ $w = "$word" ]] && return -+ done -+} -+ -+_systemd_cat() { -+ local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} -+ local i verb comps -+ -+ local -A OPTS=( -+ [STANDALONE]='-h --help --version' -+ [ARG]='-t --identifier -p --priority --level-prefix' -+ ) -+ -+ _init_completion || return -+ -+ if __contains_word "$prev" ${OPTS[ARG]}; then -+ case $prev in -+ --identifier|-t) -+ comps='' -+ ;; -+ --priority|-p) -+ comps='emerg alert crit err warning notice info debug' -+ ;; -+ --level-prefix) -+ comps='yes no' -+ ;; -+ esac -+ COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) -+ return 0 -+ fi -+ -+ COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) -+} -+ -+complete -F _systemd_cat systemd-cat diff --git a/0029-man-document-missing-options-of-systemd-run.patch b/0029-man-document-missing-options-of-systemd-run.patch deleted file mode 100644 index dffdfe9..0000000 --- a/0029-man-document-missing-options-of-systemd-run.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 4c626a758f12c2e5862b185de8ae954e0bd795d7 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 5 Mar 2014 03:37:48 +0100 -Subject: [PATCH] man: document missing options of systemd-run - -(cherry picked from commit 981ee551945f4e00de52fcbb7780fd7476bcd47e) ---- - man/systemd-run.xml | 71 ++++++++++++++++++++++++++++++++++++++++++++--------- - 1 file changed, 60 insertions(+), 11 deletions(-) - -diff --git a/man/systemd-run.xml b/man/systemd-run.xml -index 064195a..dc44186 100644 ---- a/man/systemd-run.xml -+++ b/man/systemd-run.xml -@@ -109,9 +109,9 @@ along with systemd; If not, see . - - - -- Provide description for the unit. If not -- specified, the command itself will be used as a description. -- See Description= in -+ Provide description for the service or scope -+ unit. If not specified, the command itself will be used as a -+ description. See Description= in - systemd.unit5. - - -@@ -128,10 +128,10 @@ along with systemd; If not, see . - - - -- After the service's process has terminated, keep -- the service around until it is explicitly stopped. This is -- useful to collect runtime information about the service after -- it finished running. Also see -+ After the service or scope process has -+ terminated, keep the service around until it is explicitly -+ stopped. This is useful to collect runtime information about -+ the service after it finished running. Also see - RemainAfterExit= in - systemd.service5. - -@@ -141,15 +141,64 @@ along with systemd; If not, see . - - - -- When terminating the scope unit, send a SIGHUP -- immediately after SIGTERM. This is useful to indicate to -- shells and shell-like processes that the connection has been -- severed. Also see SendSIGHUP= in -+ When terminating the scope or service unit, -+ send a SIGHUP immediately after SIGTERM. This is useful to -+ indicate to shells and shell-like processes that the -+ connection has been severed. Also see -+ SendSIGHUP= in - systemd.kill5. - - - - -+ -+ -+ -+ Sets the service type. Also see -+ Type= in -+ systemd.service5. This -+ option has no effect in conjunction with -+ . Defaults to -+ simple. -+ -+ -+ -+ -+ -+ -+ -+ Runs the service process under the UNIX user -+ and group. Also see User= and -+ Group= in -+ systemd.exec5. This -+ option has no effect in conjunction with -+ . -+ -+ -+ -+ -+ -+ -+ Runs the service process with the specified -+ nice level. Also see Nice= in -+ systemd.exec5. This -+ option has no effect in conjunction with -+ . -+ -+ -+ -+ -+ -+ -+ Runs the service process with the specified -+ environment variables set. Also see -+ Environment= in -+ systemd.exec5. This -+ option has no effect in conjunction with -+ . -+ -+ -+ - - - diff --git a/0030-systemd-run-add-some-extra-safety-checks.patch b/0030-systemd-run-add-some-extra-safety-checks.patch deleted file mode 100644 index 22f85f6..0000000 --- a/0030-systemd-run-add-some-extra-safety-checks.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 37c3628037acb728660222ad836047c8bb81363f Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 5 Mar 2014 03:38:36 +0100 -Subject: [PATCH] systemd-run: add some extra safety checks - -(cherry picked from commit 1ac67edb7c4d31a287fa98c0b554ae98bd34e71b) ---- - src/run/run.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/run/run.c b/src/run/run.c -index 885d881..7f08c41 100644 ---- a/src/run/run.c -+++ b/src/run/run.c -@@ -37,7 +37,7 @@ static const char *arg_description = NULL; - static const char *arg_slice = NULL; - static bool arg_send_sighup = false; - static BusTransport arg_transport = BUS_TRANSPORT_LOCAL; --static char *arg_host = NULL; -+static const char *arg_host = NULL; - static bool arg_user = false; - static const char *arg_service_type = NULL; - static const char *arg_exec_user = NULL; -@@ -183,7 +183,7 @@ static int parse_argv(int argc, char *argv[]) { - - case ARG_NICE: - r = safe_atoi(optarg, &arg_nice); -- if (r < 0) { -+ if (r < 0 || arg_nice < PRIO_MIN || arg_nice >= PRIO_MAX) { - log_error("Failed to parse nice value"); - return -EINVAL; - } diff --git a/0031-journal-assume-that-next-entry-is-after-previous-ent.patch b/0031-journal-assume-that-next-entry-is-after-previous-ent.patch deleted file mode 100644 index 27042f3..0000000 --- a/0031-journal-assume-that-next-entry-is-after-previous-ent.patch +++ /dev/null @@ -1,68 +0,0 @@ -From c77f203a510d27ab08729454bc865547c6111d02 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 27 Feb 2014 00:07:29 -0500 -Subject: [PATCH] journal: assume that next entry is after previous entry - -With a corrupted file, we can get in a situation where two entries -in the entry array point to the same object. Then journal_file_next_entry -will find the first one using generic_arrray_bisect, and try to move to -the second one, but since the address is the same, generic_array_get will -return the first one. journal_file_next_entry ends up in an infinite loop. - -https://bugzilla.redhat.com/show_bug.cgi?id=1047039 -(cherry picked from commit fb099c8d2af6620db2709e826a258089d10cdfe8) ---- - src/journal/journal-file.c | 26 ++++++++++++++++++++------ - 1 file changed, 20 insertions(+), 6 deletions(-) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 23c4d28..c27289c 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -1359,7 +1359,7 @@ int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, const st - } - - typedef struct ChainCacheItem { -- uint64_t first; /* the array at the begin of the chain */ -+ uint64_t first; /* the array at the beginning of the chain */ - uint64_t array; /* the cached array */ - uint64_t begin; /* the first item in the cached array */ - uint64_t total; /* the total number of items in all arrays before this one in the chain */ -@@ -1945,7 +1945,7 @@ int journal_file_next_entry( - direction_t direction, - Object **ret, uint64_t *offset) { - -- uint64_t i, n; -+ uint64_t i, n, ofs; - int r; - - assert(f); -@@ -1986,10 +1986,24 @@ int journal_file_next_entry( - } - - /* And jump to it */ -- return generic_array_get(f, -- le64toh(f->header->entry_array_offset), -- i, -- ret, offset); -+ r = generic_array_get(f, -+ le64toh(f->header->entry_array_offset), -+ i, -+ ret, &ofs); -+ if (r <= 0) -+ return r; -+ -+ if (p > 0 && -+ (direction == DIRECTION_DOWN ? ofs <= p : ofs >= p)) { -+ log_debug("%s: entry array corrupted at entry %"PRIu64, -+ f->path, i); -+ return -EBADMSG; -+ } -+ -+ if (offset) -+ *offset = ofs; -+ -+ return 1; - } - - int journal_file_skip_entry( diff --git a/0032-journal-forget-file-after-encountering-an-error.patch b/0032-journal-forget-file-after-encountering-an-error.patch deleted file mode 100644 index e9e9562..0000000 --- a/0032-journal-forget-file-after-encountering-an-error.patch +++ /dev/null @@ -1,73 +0,0 @@ -From c360d2f3141cdc8ec67cddef3df99e4045b6c6d8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 27 Feb 2014 00:11:54 -0500 -Subject: [PATCH] journal: forget file after encountering an error - -If we encounter an inconsistency in a file, let's just -ignore it. Otherwise, after previous patch, we would try, -and fail, to use this file in every invocation of sd_journal_next -or sd_journal_previous that happens afterwards. - -(cherry picked from commit a9a245c128af6c0418085062c60251bc51fa4a94) ---- - src/journal/sd-journal.c | 16 ++++++++++++---- - 1 file changed, 12 insertions(+), 4 deletions(-) - -diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c -index 3740a9a..2dbfda0 100644 ---- a/src/journal/sd-journal.c -+++ b/src/journal/sd-journal.c -@@ -51,6 +51,8 @@ - - #define DEFAULT_DATA_THRESHOLD (64*1024) - -+static void remove_file_real(sd_journal *j, JournalFile *f); -+ - static bool journal_pid_changed(sd_journal *j) { - assert(j); - -@@ -885,6 +887,7 @@ static int real_journal_next(sd_journal *j, direction_t direction) { - r = next_beyond_location(j, f, direction, &o, &p); - if (r < 0) { - log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r)); -+ remove_file_real(j, f); - continue; - } else if (r == 0) - continue; -@@ -1339,7 +1342,7 @@ static int add_file(sd_journal *j, const char *prefix, const char *filename) { - } - - static int remove_file(sd_journal *j, const char *prefix, const char *filename) { -- char *path; -+ _cleanup_free_ char *path; - JournalFile *f; - - assert(j); -@@ -1351,10 +1354,17 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) - return -ENOMEM; - - f = hashmap_get(j->files, path); -- free(path); - if (!f) - return 0; - -+ remove_file_real(j, f); -+ return 0; -+} -+ -+static void remove_file_real(sd_journal *j, JournalFile *f) { -+ assert(j); -+ assert(f); -+ - hashmap_remove(j->files, f->path); - - log_debug("File %s removed.", f->path); -@@ -1372,8 +1382,6 @@ static int remove_file(sd_journal *j, const char *prefix, const char *filename) - journal_file_close(f); - - j->current_invalidate_counter ++; -- -- return 0; - } - - static int add_directory(sd_journal *j, const char *prefix, const char *dirname) { diff --git a/0033-core-correctly-unregister-PIDs-from-PID-hashtables.patch b/0033-core-correctly-unregister-PIDs-from-PID-hashtables.patch deleted file mode 100644 index 1b71d3a..0000000 --- a/0033-core-correctly-unregister-PIDs-from-PID-hashtables.patch +++ /dev/null @@ -1,100 +0,0 @@ -From dd935122a989eeb31a0ab4d42ad5381f1f48446e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 6 Mar 2014 02:19:42 +0100 -Subject: [PATCH] core: correctly unregister PIDs from PID hashtables - -(cherry picked from commit bd44e61b0480712ec5585ff7b0295362a5f9dd36) ---- - src/core/unit.c | 42 ++++++++++++++++++------------------------ - 1 file changed, 18 insertions(+), 24 deletions(-) - -diff --git a/src/core/unit.c b/src/core/unit.c -index 1bbcb39..5a5592c 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -1703,11 +1703,11 @@ int unit_watch_pid(Unit *u, pid_t pid) { - /* Watch a specific PID. We only support one or two units - * watching each PID for now, not more. */ - -- r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); -+ r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); - if (r < 0) - return r; - -- r = set_ensure_allocated(&u->pids, trivial_hash_func, trivial_compare_func); -+ r = hashmap_ensure_allocated(&u->manager->watch_pids1, trivial_hash_func, trivial_compare_func); - if (r < 0) - return r; - -@@ -1736,7 +1736,17 @@ void unit_unwatch_pid(Unit *u, pid_t pid) { - set_remove(u->pids, LONG_TO_PTR(pid)); - } - --static int watch_pids_in_path(Unit *u, const char *path) { -+void unit_unwatch_all_pids(Unit *u) { -+ assert(u); -+ -+ while (!set_isempty(u->pids)) -+ unit_unwatch_pid(u, PTR_TO_LONG(set_first(u->pids))); -+ -+ set_free(u->pids); -+ u->pids = NULL; -+} -+ -+static int unit_watch_pids_in_path(Unit *u, const char *path) { - _cleanup_closedir_ DIR *d = NULL; - _cleanup_fclose_ FILE *f = NULL; - int ret = 0, r; -@@ -1774,7 +1784,7 @@ static int watch_pids_in_path(Unit *u, const char *path) { - if (!p) - return -ENOMEM; - -- r = watch_pids_in_path(u, p); -+ r = unit_watch_pids_in_path(u, p); - if (r < 0 && ret >= 0) - ret = r; - } -@@ -1787,31 +1797,15 @@ static int watch_pids_in_path(Unit *u, const char *path) { - return ret; - } - -- - int unit_watch_all_pids(Unit *u) { - assert(u); - -- if (!u->cgroup_path) -- return -ENOENT; -- - /* Adds all PIDs from our cgroup to the set of PIDs we watch */ - -- return watch_pids_in_path(u, u->cgroup_path); --} -- --void unit_unwatch_all_pids(Unit *u) { -- Iterator i; -- void *e; -- -- assert(u); -- -- SET_FOREACH(e, u->pids, i) { -- hashmap_remove_value(u->manager->watch_pids1, e, u); -- hashmap_remove_value(u->manager->watch_pids2, e, u); -- } -+ if (!u->cgroup_path) -+ return -ENOENT; - -- set_free(u->pids); -- u->pids = NULL; -+ return unit_watch_pids_in_path(u, u->cgroup_path); - } - - void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { -@@ -1829,7 +1823,7 @@ void unit_tidy_watch_pids(Unit *u, pid_t except1, pid_t except2) { - continue; - - if (!pid_is_unwaited(pid)) -- set_remove(u->pids, e); -+ unit_unwatch_pid(u, pid); - } - } - diff --git a/0034-logind-fix-reference-to-systemd-user-sessions.servic.patch b/0034-logind-fix-reference-to-systemd-user-sessions.servic.patch deleted file mode 100644 index f731000..0000000 --- a/0034-logind-fix-reference-to-systemd-user-sessions.servic.patch +++ /dev/null @@ -1,23 +0,0 @@ -From b7bc83734b75499d3bf9d5446adcb43818796da5 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 6 Mar 2014 04:52:31 +0100 -Subject: [PATCH] logind: fix reference to systemd-user-sessions.service - -(cherry picked from commit 646e392e10924454576f10b072f78d7676422816) ---- - src/login/logind-session.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/login/logind-session.c b/src/login/logind-session.c -index 548f049..3700522 100644 ---- a/src/login/logind-session.c -+++ b/src/login/logind-session.c -@@ -490,7 +490,7 @@ static int session_start_scope(Session *s) { - if (!scope) - return log_oom(); - -- r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-session.service", &error, &job); -+ r = manager_start_scope(s->manager, scope, s->leader, s->user->slice, description, "systemd-logind.service", "systemd-user-sessions.service", &error, &job); - if (r < 0) { - log_error("Failed to start session scope %s: %s %s", - scope, bus_error_message(&error, r), error.name); diff --git a/0035-man-update-link-to-LSB.patch b/0035-man-update-link-to-LSB.patch deleted file mode 100644 index cdef40b..0000000 --- a/0035-man-update-link-to-LSB.patch +++ /dev/null @@ -1,33 +0,0 @@ -From bc447bbd474ed77da1a9cce0dcf85fb4f0e7cb35 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 6 Mar 2014 08:10:19 -0500 -Subject: [PATCH] man: update link to LSB - -https://bugzilla.redhat.com/show_bug.cgi?id=1073402 -(cherry picked from commit 27d14fb331ba8144f99f4da2d13f15cf5c8b8a9f) ---- - man/daemon.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/man/daemon.xml b/man/daemon.xml -index fd29ba7..ab58d08 100644 ---- a/man/daemon.xml -+++ b/man/daemon.xml -@@ -252,7 +252,7 @@ - detect service errors and problems. It - is recommended to follow the exit code - scheme as defined in the LSB -+ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB - recommendations for SysV init - scripts. - -@@ -395,7 +395,7 @@ - exclusively on boot (and manually by the - administrator) via SysV init scripts, as - detailed in the LSB -+ url="http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.html">LSB - Linux Standard Base Core - Specification. This method of - activation is supported ubiquitously on Linux diff --git a/0036-man-systemd-bootchart-fix-spacing-in-command.patch b/0036-man-systemd-bootchart-fix-spacing-in-command.patch deleted file mode 100644 index 5feeb3f..0000000 --- a/0036-man-systemd-bootchart-fix-spacing-in-command.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 7117b40be2484d2f318c14d42b8c1f47d44a4465 Mon Sep 17 00:00:00 2001 -From: Zachary Cook -Date: Thu, 6 Mar 2014 03:49:49 -0500 -Subject: [PATCH] man: systemd-bootchart - fix spacing in command - -Use the same formatting as the systemd-analyze man page, so that man shows a space. - -(cherry picked from commit 82ed60080d327d7301fcd55f5a1f8511f894b9d5) ---- - man/systemd-bootchart.xml | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/man/systemd-bootchart.xml b/man/systemd-bootchart.xml -index d0adaad..1715d5d 100644 ---- a/man/systemd-bootchart.xml -+++ b/man/systemd-bootchart.xml -@@ -78,8 +78,8 @@ - in which order, and where possible problems - exist in the startup sequence of the system. - It is essentially a more detailed version of -- the systemd-analyze -- plot function. -+ the systemd-analyze plot -+ function. - - - Of course, bootchart can also be used at any diff --git a/0037-man-add-missing-comma.patch b/0037-man-add-missing-comma.patch deleted file mode 100644 index 1760670..0000000 --- a/0037-man-add-missing-comma.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a478182ddc3abcacd006ecef8de8829c3ec51b13 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 6 Mar 2014 23:54:13 -0500 -Subject: [PATCH] man: add missing comma - -marcosf0> missing comma in udevadm "see also" section - -(cherry picked from commit 7d06ef0a5cd2f0a4e021d3d12f3841cce529e0f2) ---- - man/udevadm.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/man/udevadm.xml b/man/udevadm.xml -index a3f8d54..21d1443 100644 ---- a/man/udevadm.xml -+++ b/man/udevadm.xml -@@ -594,7 +594,7 @@ - See Also - - udev7 -- -+ , - - systemd-udevd.service8 - diff --git a/0038-build-sys-Don-t-distribute-generated-udev-rule.patch b/0038-build-sys-Don-t-distribute-generated-udev-rule.patch deleted file mode 100644 index 8c8c1f0..0000000 --- a/0038-build-sys-Don-t-distribute-generated-udev-rule.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 66f231f4c71dfb11dc4552cb337571d3e3019c81 Mon Sep 17 00:00:00 2001 -From: Armin K -Date: Tue, 4 Mar 2014 16:23:41 +0100 -Subject: [PATCH] build-sys: Don't distribute generated udev rule - -It contains hardcoded path to systemd-sysctl executable which -is /usr/lib/systemd/systemd-sysctl on latest stable release and -as such it will complain at runtime if rootprefix != prefix - -[zj: readd the file to nodist_udevrules_DATA] - -(cherry picked from commit e2eb18d56b14eeb405706970f0460d8539cdcf23) ---- - Makefile.am | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 7187b8d..8093526 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -2518,7 +2518,6 @@ dist_network_DATA = \ - network/80-container-host0.network - - dist_udevrules_DATA += \ -- rules/99-systemd.rules \ - rules/42-usb-hid-pm.rules \ - rules/50-udev-default.rules \ - rules/60-drm.rules \ -@@ -2535,6 +2534,9 @@ dist_udevrules_DATA += \ - rules/80-net-setup-link.rules \ - rules/95-udev-late.rules - -+nodist_udevrules_DATA += \ -+ rules/99-systemd.rules -+ - dist_udevhwdb_DATA = \ - hwdb/20-pci-vendor-model.hwdb \ - hwdb/20-pci-classes.hwdb \ diff --git a/0039-units-Do-not-unescape-instance-name-in-systemd-backl.patch b/0039-units-Do-not-unescape-instance-name-in-systemd-backl.patch deleted file mode 100644 index bc28a7b..0000000 --- a/0039-units-Do-not-unescape-instance-name-in-systemd-backl.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 50ab7a793277bd976ea68c1d74b999ce483af50b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20B=C3=A4chler?= -Date: Fri, 7 Mar 2014 01:50:34 +0100 -Subject: [PATCH] units: Do not unescape instance name in - systemd-backlight@.service - -The instance name is never escaped in the udev rule, but unescaped in the unit. -This results in the following error message on Asus boards: - - Failed to get backlight or LED device 'backlight:eeepc/wmi': No such file or directory - -(cherry picked from commit 6c49212741253dae05b89d22374186f092ef1e5a) ---- - units/systemd-backlight@.service.in | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/units/systemd-backlight@.service.in b/units/systemd-backlight@.service.in -index 5caa5d5..e945d87 100644 ---- a/units/systemd-backlight@.service.in -+++ b/units/systemd-backlight@.service.in -@@ -6,7 +6,7 @@ - # (at your option) any later version. - - [Unit] --Description=Load/Save Screen Backlight Brightness of %I -+Description=Load/Save Screen Backlight Brightness of %i - Documentation=man:systemd-backlight@.service(8) - DefaultDependencies=no - RequiresMountsFor=/var/lib/systemd/backlight -@@ -17,5 +17,5 @@ Before=sysinit.target shutdown.target - [Service] - Type=oneshot - RemainAfterExit=yes --ExecStart=@rootlibexecdir@/systemd-backlight load %I --ExecStop=@rootlibexecdir@/systemd-backlight save %I -+ExecStart=@rootlibexecdir@/systemd-backlight load %i -+ExecStop=@rootlibexecdir@/systemd-backlight save %i diff --git a/0040-util-add-timeout-to-generator-execution.patch b/0040-util-add-timeout-to-generator-execution.patch deleted file mode 100644 index d925b0d..0000000 --- a/0040-util-add-timeout-to-generator-execution.patch +++ /dev/null @@ -1,310 +0,0 @@ -From d66226bce64620543d21675ae610ecfeb9395e2a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 6 Mar 2014 02:19:06 +0100 -Subject: [PATCH] util: add timeout to generator execution - -(cherry picked from commit aa62a8936f5983770e90b791083d55107659f7a1) ---- - src/core/manager.c | 2 +- - src/core/shutdown.c | 2 +- - src/shared/util.c | 162 ++++++++++++++++++++++++++++------------------------ - src/shared/util.h | 2 +- - src/sleep/sleep.c | 14 +++-- - 5 files changed, 99 insertions(+), 83 deletions(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index f5801b4..7c7f088 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -2654,7 +2654,7 @@ void manager_run_generators(Manager *m) { - argv[4] = NULL; - - RUN_WITH_UMASK(0022) -- execute_directory(generator_path, d, (char**) argv); -+ execute_directory(generator_path, d, DEFAULT_TIMEOUT_USEC, (char**) argv); - - finish: - trim_generator_dir(m, &m->generator_unit_path); -diff --git a/src/core/shutdown.c b/src/core/shutdown.c -index c751030..7ef671a 100644 ---- a/src/core/shutdown.c -+++ b/src/core/shutdown.c -@@ -368,7 +368,7 @@ int main(int argc, char *argv[]) { - arguments[0] = NULL; - arguments[1] = arg_verb; - arguments[2] = NULL; -- execute_directory(SYSTEM_SHUTDOWN_PATH, NULL, arguments); -+ execute_directory(SYSTEM_SHUTDOWN_PATH, NULL, DEFAULT_TIMEOUT_USEC, arguments); - - if (!in_container && !in_initrd() && - access("/run/initramfs/shutdown", X_OK) == 0) { -diff --git a/src/shared/util.c b/src/shared/util.c -index 3164515..0d64ede 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -3681,111 +3681,123 @@ bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix) { - return endswith(de->d_name, suffix); - } - --void execute_directory(const char *directory, DIR *d, char *argv[]) { -- DIR *_d = NULL; -- struct dirent *de; -- Hashmap *pids = NULL; -+void execute_directory(const char *directory, DIR *d, usec_t timeout, char *argv[]) { -+ pid_t executor_pid; -+ int r; - - assert(directory); - -- /* Executes all binaries in a directory in parallel and -- * waits for them to finish. */ -+ /* Executes all binaries in a directory in parallel and waits -+ * for them to finish. Optionally a timeout is applied. */ - -- if (!d) { -- if (!(_d = opendir(directory))) { -+ executor_pid = fork(); -+ if (executor_pid < 0) { -+ log_error("Failed to fork: %m"); -+ return; - -- if (errno == ENOENT) -- return; -+ } else if (executor_pid == 0) { -+ _cleanup_hashmap_free_free_ Hashmap *pids = NULL; -+ _cleanup_closedir_ DIR *_d = NULL; -+ struct dirent *de; -+ sigset_t ss; - -- log_error("Failed to enumerate directory %s: %m", directory); -- return; -- } -+ /* We fork this all off from a child process so that -+ * we can somewhat cleanly make use of SIGALRM to set -+ * a time limit */ - -- d = _d; -- } -+ reset_all_signal_handlers(); - -- if (!(pids = hashmap_new(trivial_hash_func, trivial_compare_func))) { -- log_error("Failed to allocate set."); -- goto finish; -- } -+ assert_se(sigemptyset(&ss) == 0); -+ assert_se(sigprocmask(SIG_SETMASK, &ss, NULL) == 0); - -- while ((de = readdir(d))) { -- char *path; -- pid_t pid; -- int k; -+ assert_se(prctl(PR_SET_PDEATHSIG, SIGTERM) == 0); - -- if (!dirent_is_file(de)) -- continue; -+ if (!d) { -+ d = _d = opendir(directory); -+ if (!d) { -+ if (errno == ENOENT) -+ _exit(EXIT_SUCCESS); - -- if (asprintf(&path, "%s/%s", directory, de->d_name) < 0) { -- log_oom(); -- continue; -+ log_error("Failed to enumerate directory %s: %m", directory); -+ _exit(EXIT_FAILURE); -+ } - } - -- if ((pid = fork()) < 0) { -- log_error("Failed to fork: %m"); -- free(path); -- continue; -+ pids = hashmap_new(NULL, NULL); -+ if (!pids) { -+ log_oom(); -+ _exit(EXIT_FAILURE); - } - -- if (pid == 0) { -- char *_argv[2]; -- /* Child */ -+ FOREACH_DIRENT(de, d, break) { -+ _cleanup_free_ char *path = NULL; -+ pid_t pid; - -- if (!argv) { -- _argv[0] = path; -- _argv[1] = NULL; -- argv = _argv; -- } else -- argv[0] = path; -+ if (!dirent_is_file(de)) -+ continue; - -- execv(path, argv); -+ if (asprintf(&path, "%s/%s", directory, de->d_name) < 0) { -+ log_oom(); -+ _exit(EXIT_FAILURE); -+ } - -- log_error("Failed to execute %s: %m", path); -- _exit(EXIT_FAILURE); -- } -+ pid = fork(); -+ if (pid < 0) { -+ log_error("Failed to fork: %m"); -+ continue; -+ } else if (pid == 0) { -+ char *_argv[2]; - -- log_debug("Spawned %s as %lu", path, (unsigned long) pid); -+ assert_se(prctl(PR_SET_PDEATHSIG, SIGTERM) == 0); - -- if ((k = hashmap_put(pids, UINT_TO_PTR(pid), path)) < 0) { -- log_error("Failed to add PID to set: %s", strerror(-k)); -- free(path); -- } -- } -+ if (!argv) { -+ _argv[0] = path; -+ _argv[1] = NULL; -+ argv = _argv; -+ } else -+ argv[0] = path; - -- while (!hashmap_isempty(pids)) { -- pid_t pid = PTR_TO_UINT(hashmap_first_key(pids)); -- siginfo_t si = {}; -- char *path; -+ execv(path, argv); -+ log_error("Failed to execute %s: %m", path); -+ _exit(EXIT_FAILURE); -+ } - -- if (waitid(P_PID, pid, &si, WEXITED) < 0) { - -- if (errno == EINTR) -- continue; -+ log_debug("Spawned %s as " PID_FMT ".", path, pid); - -- log_error("waitid() failed: %m"); -- goto finish; -+ r = hashmap_put(pids, UINT_TO_PTR(pid), path); -+ if (r < 0) { -+ log_oom(); -+ _exit(EXIT_FAILURE); -+ } -+ -+ path = NULL; - } - -- if ((path = hashmap_remove(pids, UINT_TO_PTR(si.si_pid)))) { -- if (!is_clean_exit(si.si_code, si.si_status, NULL)) { -- if (si.si_code == CLD_EXITED) -- log_error("%s exited with exit status %i.", path, si.si_status); -- else -- log_error("%s terminated by signal %s.", path, signal_to_string(si.si_status)); -- } else -- log_debug("%s exited successfully.", path); -+ /* Abort execution of this process after the -+ * timout. We simply rely on SIGALRM as default action -+ * terminating the process, and turn on alarm(). */ -+ -+ if (timeout != (usec_t) -1) -+ alarm((timeout + USEC_PER_SEC - 1) / USEC_PER_SEC); -+ -+ while (!hashmap_isempty(pids)) { -+ _cleanup_free_ char *path = NULL; -+ pid_t pid; -+ -+ pid = PTR_TO_UINT(hashmap_first_key(pids)); -+ assert(pid > 0); - -- free(path); -+ path = hashmap_remove(pids, UINT_TO_PTR(pid)); -+ assert(path); -+ -+ wait_for_terminate_and_warn(path, pid); - } -- } - --finish: -- if (_d) -- closedir(_d); -+ _exit(EXIT_SUCCESS); -+ } - -- if (pids) -- hashmap_free_free(pids); -+ wait_for_terminate_and_warn(directory, executor_pid); - } - - int kill_and_sigcont(pid_t pid, int sig) { -diff --git a/src/shared/util.h b/src/shared/util.h -index 78b1444..aeb359b 100644 ---- a/src/shared/util.h -+++ b/src/shared/util.h -@@ -473,7 +473,7 @@ bool tty_is_console(const char *tty) _pure_; - int vtnr_from_tty(const char *tty); - const char *default_term_for_tty(const char *tty); - --void execute_directory(const char *directory, DIR *_d, char *argv[]); -+void execute_directory(const char *directory, DIR *_d, usec_t timeout, char *argv[]); - - int kill_and_sigcont(pid_t pid, int sig); - -diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c -index 8da050c..94bcb29 100644 ---- a/src/sleep/sleep.c -+++ b/src/sleep/sleep.c -@@ -25,14 +25,15 @@ - #include - #include - --#include "systemd/sd-id128.h" --#include "systemd/sd-messages.h" -+#include "sd-id128.h" -+#include "sd-messages.h" - #include "log.h" - #include "util.h" - #include "strv.h" - #include "fileio.h" - #include "build.h" - #include "sleep-config.h" -+#include "def.h" - - static char* arg_verb = NULL; - -@@ -41,9 +42,12 @@ static int write_mode(char **modes) { - char **mode; - - STRV_FOREACH(mode, modes) { -- int k = write_string_file("/sys/power/disk", *mode); -+ int k; -+ -+ k = write_string_file("/sys/power/disk", *mode); - if (k == 0) - return 0; -+ - log_debug("Failed to write '%s' to /sys/power/disk: %s", - *mode, strerror(-k)); - if (r == 0) -@@ -106,7 +110,7 @@ static int execute(char **modes, char **states) { - arguments[1] = (char*) "pre"; - arguments[2] = arg_verb; - arguments[3] = NULL; -- execute_directory(SYSTEM_SLEEP_PATH, NULL, arguments); -+ execute_directory(SYSTEM_SLEEP_PATH, NULL, DEFAULT_TIMEOUT_USEC, arguments); - - log_struct(LOG_INFO, - MESSAGE_ID(SD_MESSAGE_SLEEP_START), -@@ -125,7 +129,7 @@ static int execute(char **modes, char **states) { - NULL); - - arguments[1] = (char*) "post"; -- execute_directory(SYSTEM_SLEEP_PATH, NULL, arguments); -+ execute_directory(SYSTEM_SLEEP_PATH, NULL, DEFAULT_TIMEOUT_USEC, arguments); - - return r; - } diff --git a/0041-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch b/0041-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch deleted file mode 100644 index 475b0af..0000000 --- a/0041-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch +++ /dev/null @@ -1,28 +0,0 @@ -From acf94f3de1060fad3fc8434ccf12b66835cfba83 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Fri, 7 Mar 2014 11:41:18 +0100 -Subject: [PATCH] core/busname: add lookup string for - BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT - -When a busname unit enters BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT, the -serialization will not be able to look up the result as string via -busname_result_to_string(). This leads to an assertion trap during -daemon-reexec. - -(cherry picked from commit 36d239dbdaf94ba2d96bb60ac45ecfc58624b1eb) ---- - src/core/busname.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/core/busname.c b/src/core/busname.c -index 4c34538..237011a 100644 ---- a/src/core/busname.c -+++ b/src/core/busname.c -@@ -548,6 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); - static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { - [BUSNAME_SUCCESS] = "success", - [BUSNAME_FAILURE_RESOURCES] = "resources", -+ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", - }; - - DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); diff --git a/0042-busname-don-t-drop-service-from-the-result-string.patch b/0042-busname-don-t-drop-service-from-the-result-string.patch deleted file mode 100644 index e245341..0000000 --- a/0042-busname-don-t-drop-service-from-the-result-string.patch +++ /dev/null @@ -1,23 +0,0 @@ -From bca84126f2b46068aa0d98c3e35245d6ace9b9dc Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 7 Mar 2014 17:29:16 +0100 -Subject: [PATCH] busname: don't drop 'service' from the result string - -(cherry picked from commit 700ff4d97311902a440109a2c081731ab6ae8a20) ---- - src/core/busname.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/busname.c b/src/core/busname.c -index 237011a..bca2145 100644 ---- a/src/core/busname.c -+++ b/src/core/busname.c -@@ -548,7 +548,7 @@ DEFINE_STRING_TABLE_LOOKUP(busname_state, BusNameState); - static const char* const busname_result_table[_BUSNAME_RESULT_MAX] = { - [BUSNAME_SUCCESS] = "success", - [BUSNAME_FAILURE_RESOURCES] = "resources", -- [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "failed-permanent", -+ [BUSNAME_FAILURE_SERVICE_FAILED_PERMANENT] = "service-failed-permanent", - }; - - DEFINE_STRING_TABLE_LOOKUP(busname_result, BusNameResult); diff --git a/0043-manager-flush-memory-stream-before-using-the-buffer.patch b/0043-manager-flush-memory-stream-before-using-the-buffer.patch deleted file mode 100644 index ae0fed0..0000000 --- a/0043-manager-flush-memory-stream-before-using-the-buffer.patch +++ /dev/null @@ -1,44 +0,0 @@ -From b1fc5bc6e56e6b2abd5e1f0782654d22f1220dc5 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Fri, 7 Mar 2014 14:43:59 +0100 -Subject: [PATCH] manager: flush memory stream before using the buffer - -When the manager receives a SIGUSR2 signal, it opens a memory stream -with open_memstream(), uses the returned file handle for logging, and -dumps the logged content with log_dump(). - -However, the char* buffer is only safe to use after the file handle has -been flushed with fflush, as the man pages states: - - When the stream is closed (fclose(3)) or flushed (fflush(3)), the - locations pointed to by ptr and sizeloc are updated to contain, - respectively, a pointer to the buffer and the current size of the - buffer. - These values remain valid only as long as the caller performs no - further output on the stream. If further output is performed, then the - stream must again be flushed before trying to access these variables. - -Without that call, dump remains NULL and the daemon crashes in -log_dump(). - -(cherry picked from commit b2cdc6664ef6b56e47d38649d69b9943d9f9f5d0) ---- - src/core/manager.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/core/manager.c b/src/core/manager.c -index 7c7f088..ee92f1b 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -1618,6 +1618,11 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t - break; - } - -+ if (fflush(f)) { -+ log_warning("Failed to flush status stream"); -+ break; -+ } -+ - log_dump(LOG_INFO, dump); - break; - } diff --git a/0044-networkd-link-degrade-failed-UP-to-warning.patch b/0044-networkd-link-degrade-failed-UP-to-warning.patch deleted file mode 100644 index 5806a25..0000000 --- a/0044-networkd-link-degrade-failed-UP-to-warning.patch +++ /dev/null @@ -1,34 +0,0 @@ -From d1df055e24f9daaeda39ee8a57429849c78f71d4 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Sat, 8 Mar 2014 01:08:30 +0100 -Subject: [PATCH] networkd: link - degrade failed UP to warning - -Something else may still bring the link up, so don't enter failed state prematurely. - -(cherry picked from commit 76800848f281c3705c9364fd3e888153d94aaf34) ---- - src/network/networkd-link.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c -index 1f495b3..5831d83 100644 ---- a/src/network/networkd-link.c -+++ b/src/network/networkd-link.c -@@ -790,15 +790,13 @@ static int link_up_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) { - return 1; - - r = sd_rtnl_message_get_errno(m); -- if (r < 0) { -- log_struct_link(LOG_ERR, link, -+ if (r < 0) -+ log_struct_link(LOG_WARNING, link, - "MESSAGE=%s: could not bring up interface: %s", - link->ifname, strerror(-r), - "ERRNO=%d", -r, - NULL); -- link_enter_failed(link); - return 1; -- } - - link_update_flags(link, link->flags | IFF_UP); - diff --git a/0045-networkd-fix-confusion-from-missing-braces.patch b/0045-networkd-fix-confusion-from-missing-braces.patch deleted file mode 100644 index d467772..0000000 --- a/0045-networkd-fix-confusion-from-missing-braces.patch +++ /dev/null @@ -1,36 +0,0 @@ -From c0229d82761b6c4874acf7a37023b363cd85ec35 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 8 Mar 2014 11:57:28 -0500 -Subject: [PATCH] networkd: fix confusion from missing braces - -Fixup for 76800848f281c3 'networkd: link - degrade failed UP to warning'. - -(cherry picked from commit 58b129170ca6acacffd853b6c8fbec9fce2c2163) ---- - src/network/networkd-link.c | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c -index 5831d83..305ce23 100644 ---- a/src/network/networkd-link.c -+++ b/src/network/networkd-link.c -@@ -790,16 +790,14 @@ static int link_up_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) { - return 1; - - r = sd_rtnl_message_get_errno(m); -- if (r < 0) -+ if (r >= 0) -+ link_update_flags(link, link->flags | IFF_UP); -+ else - log_struct_link(LOG_WARNING, link, - "MESSAGE=%s: could not bring up interface: %s", - link->ifname, strerror(-r), - "ERRNO=%d", -r, - NULL); -- return 1; -- -- link_update_flags(link, link->flags | IFF_UP); -- - return 1; - } - diff --git a/0046-fix-off-by-one-error-in-array-index-assertion.patch b/0046-fix-off-by-one-error-in-array-index-assertion.patch deleted file mode 100644 index 25dcbe7..0000000 --- a/0046-fix-off-by-one-error-in-array-index-assertion.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 30711a3651f5b31cb67422bf8197e05d557dbe23 Mon Sep 17 00:00:00 2001 -From: Dave Reisner -Date: Sat, 8 Mar 2014 17:32:53 -0500 -Subject: [PATCH] fix off by one error in array index assertion - -Since the index is already post-incremented when the array is appended -to, this assertion can be wrongly reached when the array is at capacity -(with the NULL terminator). The bug is reproducible on shutdown with -the following settings in /etc/systemd/system.conf: - - LogTarget=journal-or-kmsg - LogColor=yes - LogLocation=yes - -Reported by Thermi on IRC. - -(cherry picked from commit 26abdc73a212b90f7c4b71808a1028d2e87ab09f) ---- - src/core/main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/main.c b/src/core/main.c -index 4e24f85..15bf684 100644 ---- a/src/core/main.c -+++ b/src/core/main.c -@@ -1940,7 +1940,7 @@ finish: - if (log_get_show_location()) - command_line[pos++] = "--log-location"; - -- assert(pos + 1 < ELEMENTSOF(command_line)); -+ assert(pos < ELEMENTSOF(command_line)); - - if (arm_reboot_watchdog && arg_shutdown_watchdog > 0) { - char *e; diff --git a/0047-input_id-Recognize-buttonless-joystick-types.patch b/0047-input_id-Recognize-buttonless-joystick-types.patch deleted file mode 100644 index 5b4b70c..0000000 --- a/0047-input_id-Recognize-buttonless-joystick-types.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 33fc27712a13b7502804a2a3016ce490a89e000d Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Mon, 10 Mar 2014 08:54:22 +0100 -Subject: [PATCH] input_id: Recognize buttonless joystick types - -Input devices like rudders or pedals are joystick-like; they don't have -buttons, but axes like RX, THROTTLE, or RUDDER. These don't interfere with -other device types with absolute axes (touch screens, touchpads, and -accelerometers), so it's fairly safe to mark them as ID_INPUT_JOYSTICK and thus -hand out dynamic ACLs to the user. - -https://bugs.freedesktop.org/show_bug.cgi?id=70734 -(cherry picked from commit 2658624399b22a9c4a345a22c69886dc9417f801) ---- - src/udev/udev-builtin-input_id.c | 19 +++++++++++++++---- - 1 file changed, 15 insertions(+), 4 deletions(-) - -diff --git a/src/udev/udev-builtin-input_id.c b/src/udev/udev-builtin-input_id.c -index 828b349..3b2e897 100644 ---- a/src/udev/udev-builtin-input_id.c -+++ b/src/udev/udev-builtin-input_id.c -@@ -116,16 +116,27 @@ static void test_pointers (struct udev_device *dev, - udev_builtin_add_property(dev, test, "ID_INPUT_TABLET", "1"); - else if (test_bit (BTN_TOOL_FINGER, bitmask_key) && !test_bit (BTN_TOOL_PEN, bitmask_key)) - is_touchpad = 1; -- else if (test_bit (BTN_TRIGGER, bitmask_key) || -- test_bit (BTN_A, bitmask_key) || -- test_bit (BTN_1, bitmask_key)) -- udev_builtin_add_property(dev, test, "ID_INPUT_JOYSTICK", "1"); - else if (test_bit (BTN_MOUSE, bitmask_key)) - /* This path is taken by VMware's USB mouse, which has - * absolute axes, but no touch/pressure button. */ - is_mouse = 1; - else if (test_bit (BTN_TOUCH, bitmask_key)) - udev_builtin_add_property(dev, test, "ID_INPUT_TOUCHSCREEN", "1"); -+ /* joysticks don't necessarily have to have buttons; e. g. -+ * rudders/pedals are joystick-like, but buttonless; they have -+ * other fancy axes */ -+ else if (test_bit (BTN_TRIGGER, bitmask_key) || -+ test_bit (BTN_A, bitmask_key) || -+ test_bit (BTN_1, bitmask_key) || -+ test_bit (ABS_RX, bitmask_abs) || -+ test_bit (ABS_RY, bitmask_abs) || -+ test_bit (ABS_RZ, bitmask_abs) || -+ test_bit (ABS_THROTTLE, bitmask_abs) || -+ test_bit (ABS_RUDDER, bitmask_abs) || -+ test_bit (ABS_WHEEL, bitmask_abs) || -+ test_bit (ABS_GAS, bitmask_abs) || -+ test_bit (ABS_BRAKE, bitmask_abs)) -+ udev_builtin_add_property(dev, test, "ID_INPUT_JOYSTICK", "1"); - } - - if (test_bit (EV_REL, bitmask_ev) && diff --git a/0048-logind-fix-policykit-checks.patch b/0048-logind-fix-policykit-checks.patch deleted file mode 100644 index 18222b4..0000000 --- a/0048-logind-fix-policykit-checks.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 10ff861167dc4b03ad9e515141f535845fcfd38a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 10 Mar 2014 08:25:15 -0400 -Subject: [PATCH] logind: fix policykit checks - -(cherry picked from commit 055d406624cb9e01963558767420b71e5f75d2d3) ---- - src/login/logind-dbus.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index fc89531..18d4a56 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -1477,6 +1477,8 @@ static int method_do_shutdown_or_sleep( - action_multiple_sessions, interactive, error, method, m); - if (r < 0) - return r; -+ if (r == 0) -+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - - if (blocked) { -@@ -1484,6 +1486,8 @@ static int method_do_shutdown_or_sleep( - action_ignore_inhibit, interactive, error, method, m); - if (r < 0) - return r; -+ if (r == 0) -+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - - if (!multiple_sessions && !blocked) { -@@ -1491,6 +1495,8 @@ static int method_do_shutdown_or_sleep( - action, interactive, error, method, m); - if (r < 0) - return r; -+ if (r == 0) -+ return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - } - - r = bus_manager_shutdown_or_sleep_now_or_later(m, unit_name, w, error); diff --git a/0049-nspawn-don-t-try-mknod-of-dev-console-with-the-corre.patch b/0049-nspawn-don-t-try-mknod-of-dev-console-with-the-corre.patch deleted file mode 100644 index 21a9e4d..0000000 --- a/0049-nspawn-don-t-try-mknod-of-dev-console-with-the-corre.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 91dd24f207a5cb93227d4a7d364f033bfd572a31 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 10 Mar 2014 21:36:01 +0100 -Subject: [PATCH] nspawn: don't try mknod() of /dev/console with the correct - major/minor - -We overmount /dev/console with an external pty anyway, hence there's no -point in using the real major/minor when we create the node to -overmount. Instead, use the one of /dev/null now. - -This fixes a race against the cgroup device controller setup we are -using. In case /dev/console was create before the cgroup policy was -applied all was good, but if created in the opposite order the mknod() -would fail, since creating /dev/console is not allowed by it. Creating -/dev/null instances is however permitted, and hence use it. - -(cherry picked from commit eb0f0863f5af48865fb4569e2076d5f9e2313995) ---- - src/nspawn/nspawn.c | 25 ++++++++++--------------- - 1 file changed, 10 insertions(+), 15 deletions(-) - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 84b7276..091307b 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -852,23 +852,19 @@ static int setup_ptmx(const char *dest) { - } - - static int setup_dev_console(const char *dest, const char *console) { -+ _cleanup_umask_ mode_t u; -+ const char *to; - struct stat st; -- _cleanup_free_ char *to = NULL; - int r; -- _cleanup_umask_ mode_t u; - - assert(dest); - assert(console); - - u = umask(0000); - -- if (stat(console, &st) < 0) { -- log_error("Failed to stat %s: %m", console); -+ if (stat("/dev/null", &st) < 0) { -+ log_error("Failed to stat /dev/null: %m"); - return -errno; -- -- } else if (!S_ISCHR(st.st_mode)) { -- log_error("/dev/console is not a char device"); -- return -EIO; - } - - r = chmod_and_chown(console, 0600, 0, 0); -@@ -877,16 +873,15 @@ static int setup_dev_console(const char *dest, const char *console) { - return r; - } - -- if (asprintf(&to, "%s/dev/console", dest) < 0) -- return log_oom(); -- - /* We need to bind mount the right tty to /dev/console since - * ptys can only exist on pts file systems. To have something -- * to bind mount things on we create a device node first, that -- * has the right major/minor (note that the major minor -- * doesn't actually matter here, since we mount it over -- * anyway). */ -+ * to bind mount things on we create a device node first, and -+ * use /dev/null for that since we the cgroups device policy -+ * allows us to create that freely, while we cannot create -+ * /dev/console. (Note that the major minor doesn't actually -+ * matter here, since we mount it over anyway). */ - -+ to = strappenda(dest, "/dev/console"); - if (mknod(to, (st.st_mode & ~07777) | 0600, st.st_rdev) < 0) { - log_error("mknod() for /dev/console failed: %m"); - return -errno; diff --git a/0050-build-sys-Find-the-tools-for-users-with-no-sbin-usr-.patch b/0050-build-sys-Find-the-tools-for-users-with-no-sbin-usr-.patch deleted file mode 100644 index 9a6e691..0000000 --- a/0050-build-sys-Find-the-tools-for-users-with-no-sbin-usr-.patch +++ /dev/null @@ -1,38 +0,0 @@ -From fb197dbb1cfdd13c1ec7cc7efc27e10627f74ec1 Mon Sep 17 00:00:00 2001 -From: Samuli Suominen -Date: Sat, 8 Mar 2014 09:49:29 +0200 -Subject: [PATCH] build-sys: Find the tools for users with no /sbin:/usr/sbin - in PATH since some systems still make the distiction between bin and sbin. - -(cherry picked from commit 2d0efdf1af5ff77441228854343c61d42a89840c) ---- - configure.ac | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 7920d6c..b275ccb 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -65,16 +65,16 @@ AC_PROG_CC_C99 - 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], [/usr/sbin/quotaon], [$PATH:/usr/sbin:/sbin]) -+AC_PATH_PROG([QUOTACHECK], [quotacheck], [/usr/sbin/quotacheck], [$PATH:/usr/sbin:/sbin]) - --AC_PATH_PROG([SETCAP], [setcap], [/usr/sbin/setcap]) -+AC_PATH_PROG([SETCAP], [setcap], [/usr/sbin/setcap], [$PATH:/usr/sbin:/sbin]) - --AC_PATH_PROG([KILL], [kill], [/usr/bin/kill]) -+AC_PATH_PROG([KILL], [kill], [/usr/bin/kill], [$PATH:/usr/sbin:/sbin]) - --AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod]) -+AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod], [$PATH:/usr/sbin:/sbin]) - --AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec]) -+AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec], [$PATH:/usr/sbin:/sbin]) - - M4_DEFINES= - diff --git a/0051-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch b/0051-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch deleted file mode 100644 index e3d6ab6..0000000 --- a/0051-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 28be65e12016d365783ac9646bf588ec68352b75 Mon Sep 17 00:00:00 2001 -From: Peter Rajnoha -Date: Mon, 10 Mar 2014 22:58:14 +0100 -Subject: [PATCH] rules: mark loop device as SYSTEMD_READY=0 if no file is - attached - -Check existence of loop/backing_file in sysfs and mark loop devices with -SYSTEMD_READY if missing. Such loop files is uninitialized and it's not -ready for use yet (there's no file attached). - -(cherry picked from commit ebc54302d7fc70927d5dc119e178ff03f6a911ed) ---- - rules/99-systemd.rules.in | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in -index 021359a..04a59c4 100644 ---- a/rules/99-systemd.rules.in -+++ b/rules/99-systemd.rules.in -@@ -22,6 +22,9 @@ SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_T - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" - -+# Ignore loop devices that don't have any file attached -+SUBSYSTEM=="block", KERNEL=="loop[0-9]*", TEST!="loop/backing_file", ENV{SYSTEMD_READY}="0" -+ - # Ignore nbd devices in the "add" event, with "change" the nbd is ready - ACTION=="add", SUBSYSTEM=="block", KERNEL=="nbd*", ENV{SYSTEMD_READY}="0" - diff --git a/sources b/sources index 1d3e60c..f3152b2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -03efddf8c9eca36d4d590f9967e7e818 systemd-210.tar.xz +a6d7c06ad1d87b1aaae9442c192f5b88 systemd-211.tar.xz diff --git a/systemd.spec b/systemd.spec index 586f057..e9a719b 100644 --- a/systemd.spec +++ b/systemd.spec @@ -15,8 +15,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 210 -Release: 8%{?gitcommit:.git%{gitcommit}}%{?dist} +Version: 211 +Release: 1%{?gitcommit:.git%{gitcommit}}%{?dist} # For a breakdown of the licensing, see README License: LGPLv2+ and MIT and GPLv2+ Summary: A System and Service Manager @@ -36,60 +36,9 @@ Source4: listen.conf # Prevent accidental removal of the systemd package Source6: yum-protect-systemd.conf -# Patch series is available from http://cgit.freedesktop.org/systemd/systemd-stable/log/?h=v210-stable -# GIT_DIR=~/src/systemd/.git git format-patch-ab -M -N --no-signature v210..v210-stable +# Patch series is available from http://cgit.freedesktop.org/systemd/systemd-stable/log/?h=v211-stable +# GIT_DIR=~/src/systemd/.git git format-patch-ab -M -N --no-signature v211..v211-stable # i=1; for p in 0*patch;do printf "Patch%03d: %s\n" $i $p; ((i++));done -Patch001: 0001-login-fix-pos-array-allocation.patch -Patch002: 0002-login-set-pos-slot-to-fallback-on-pos-eviction.patch -Patch003: 0003-login-Allow-calling-org.freedesktop.login1.Seat.Swit.patch -Patch004: 0004-fix-typo-in-iDRAC-network-interface-name-irdac-idrac.patch -Patch005: 0005-Replace-var-run-with-run-in-remaining-places.patch -Patch006: 0006-Revert-back-to-var-run-at-a-couple-of-problems.patch -Patch007: 0007-README-document-that-var-run-must-be-a-symlink-run.patch -Patch008: 0008-Use-var-run-dbus-system_bus_socket-for-the-D-Bus-soc.patch -Patch009: 0009-mount-don-t-send-out-PropertiesChanged-message-if-ac.patch -Patch010: 0010-mount-don-t-fire-PropertiesChanged-signals-for-mount.patch -Patch011: 0011-logs-show-fix-corrupt-output-with-empty-messages.patch -Patch012: 0012-journalctl-refuse-extra-arguments-with-verify-and-si.patch -Patch013: 0013-cdrom_id-use-the-old-MMC-fallback.patch -Patch014: 0014-udev-rules-setup-tty-permissions-and-group-for-sclp_.patch -Patch015: 0015-architecture-Add-tilegx.patch -Patch016: 0016-nspawn-fix-detection-of-missing-proc-self-loginuid.patch -Patch017: 0017-bash-add-completion-for-systemd-nspawn.patch -Patch018: 0018-add-bash-completion-for-systemd-cgls.patch -Patch019: 0019-hwdb-Update-database-of-Bluetooth-company-identifier.patch -Patch020: 0020-Allow-fractional-parts-in-disk-sizes.patch -Patch021: 0021-add-bash-completion-for-systemd-cgtop.patch -Patch022: 0022-Fix-systemd-stdio-bridge-symlink.patch -Patch023: 0023-execute-free-directory-path-if-we-fail-to-remove-it-.patch -Patch024: 0024-update-bash-completion-for-systemd-analyze.patch -Patch025: 0025-add-bash-completion-for-systemd-detect-virt.patch -Patch026: 0026-Do-not-print-invalid-UTF-8-in-error-messages.patch -Patch027: 0027-architecture-Add-cris.patch -Patch028: 0028-add-bash-completion-for-systemd-cat.patch -Patch029: 0029-man-document-missing-options-of-systemd-run.patch -Patch030: 0030-systemd-run-add-some-extra-safety-checks.patch -Patch031: 0031-journal-assume-that-next-entry-is-after-previous-ent.patch -Patch032: 0032-journal-forget-file-after-encountering-an-error.patch -Patch033: 0033-core-correctly-unregister-PIDs-from-PID-hashtables.patch -Patch034: 0034-logind-fix-reference-to-systemd-user-sessions.servic.patch -Patch035: 0035-man-update-link-to-LSB.patch -Patch036: 0036-man-systemd-bootchart-fix-spacing-in-command.patch -Patch037: 0037-man-add-missing-comma.patch -Patch038: 0038-build-sys-Don-t-distribute-generated-udev-rule.patch -Patch039: 0039-units-Do-not-unescape-instance-name-in-systemd-backl.patch -Patch040: 0040-util-add-timeout-to-generator-execution.patch -Patch041: 0041-core-busname-add-lookup-string-for-BUSNAME_FAILURE_S.patch -Patch042: 0042-busname-don-t-drop-service-from-the-result-string.patch -Patch043: 0043-manager-flush-memory-stream-before-using-the-buffer.patch -Patch044: 0044-networkd-link-degrade-failed-UP-to-warning.patch -Patch045: 0045-networkd-fix-confusion-from-missing-braces.patch -Patch046: 0046-fix-off-by-one-error-in-array-index-assertion.patch -Patch047: 0047-input_id-Recognize-buttonless-joystick-types.patch -Patch048: 0048-logind-fix-policykit-checks.patch -Patch049: 0049-nspawn-don-t-try-mknod-of-dev-console-with-the-corre.patch -Patch050: 0050-build-sys-Find-the-tools-for-users-with-no-sbin-usr-.patch -Patch051: 0051-rules-mark-loop-device-as-SYSTEMD_READY-0-if-no-file.patch # kernel-install patch for grubby, drop if grubby is obsolete Patch1000: kernel-install-grubby.patch @@ -767,6 +716,9 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g %{_datadir}/systemd/gatewayd %changelog +* Tue Mar 11 2014 Lennart Poettering - 211-1 +- New upstream release + * Mon Mar 10 2014 Zbigniew Jędrzejewski-Szmek - 210-8 - Fix logind unpriviledged reboot issue and a few other minor fixes - Limit generator execution time