diff --git a/0001-tests-turn-check-if-manager-cannot-be-intialized-int.patch b/0001-tests-turn-check-if-manager-cannot-be-intialized-int.patch deleted file mode 100644 index 3e119a1..0000000 --- a/0001-tests-turn-check-if-manager-cannot-be-intialized-int.patch +++ /dev/null @@ -1,166 +0,0 @@ -From 32a4ce451c3aa579d768005decd5342ba319a0e7 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 1 Dec 2015 22:35:16 -0500 -Subject: [PATCH 1/4] tests: turn check if manager cannot be intialized into - macro - -We need to check the same thing in multiple tests. Use a shared -macro to make it easier to update the list of errnos. - -Change the errno code for "unitialized cgroup fs" for ENOMEDIUM. -Exec format error looks like something more serious. - -This fixes test-execute invocation in mock. - -(cherry picked from commit 8b3aa503c171acdb9ec63484a8c50e2680d31e79) - -Resolves: #1286249 ---- - src/basic/cgroup-util.c | 2 +- - src/libsystemd/sd-bus/test-bus-creds.c | 2 +- - src/test/test-engine.c | 3 ++- - src/test/test-execute.c | 3 ++- - src/test/test-helper.h | 12 ++++++++++++ - src/test/test-path.c | 3 ++- - src/test/test-sched-prio.c | 3 ++- - 7 files changed, 22 insertions(+), 6 deletions(-) - -diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c -index f7fc2c2..263c726 100644 ---- a/src/basic/cgroup-util.c -+++ b/src/basic/cgroup-util.c -@@ -2130,7 +2130,7 @@ int cg_unified(void) { - else if (F_TYPE_EQUAL(fs.f_type, TMPFS_MAGIC)) - unified_cache = false; - else -- return -ENOEXEC; -+ return -ENOMEDIUM; - - return unified_cache; - } -diff --git a/src/libsystemd/sd-bus/test-bus-creds.c b/src/libsystemd/sd-bus/test-bus-creds.c -index bd0101a..de337bb 100644 ---- a/src/libsystemd/sd-bus/test-bus-creds.c -+++ b/src/libsystemd/sd-bus/test-bus-creds.c -@@ -29,7 +29,7 @@ int main(int argc, char *argv[]) { - _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; - int r; - -- if (cg_unified() == -ENOEXEC) { -+ if (cg_unified() == -ENOMEDIUM) { - puts("Skipping test: /sys/fs/cgroup/ not available"); - return EXIT_TEST_SKIP; - } -diff --git a/src/test/test-engine.c b/src/test/test-engine.c -index 4f14c58..f09df43 100644 ---- a/src/test/test-engine.c -+++ b/src/test/test-engine.c -@@ -25,6 +25,7 @@ - - #include "bus-util.h" - #include "manager.h" -+#include "test-helper.h" - - int main(int argc, char *argv[]) { - _cleanup_bus_error_free_ sd_bus_error err = SD_BUS_ERROR_NULL; -@@ -38,7 +39,7 @@ int main(int argc, char *argv[]) { - /* prepare the test */ - assert_se(set_unit_path(TEST_DIR) >= 0); - r = manager_new(MANAGER_USER, true, &m); -- if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT, -ENOEXEC)) { -+ if (MANAGER_SKIP_TEST(r)) { - printf("Skipping test: manager_new: %s", strerror(-r)); - return EXIT_TEST_SKIP; - } -diff --git a/src/test/test-execute.c b/src/test/test-execute.c -index 03ec0fc..1ab10fb 100644 ---- a/src/test/test-execute.c -+++ b/src/test/test-execute.c -@@ -29,6 +29,7 @@ - #include "mkdir.h" - #include "path-util.h" - #include "rm-rf.h" -+#include "test-helper.h" - #include "unit.h" - #include "util.h" - -@@ -296,7 +297,7 @@ int main(int argc, char *argv[]) { - assert_se(unsetenv("VAR3") == 0); - - r = manager_new(MANAGER_USER, true, &m); -- if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT)) { -+ if (MANAGER_SKIP_TEST(r)) { - printf("Skipping test: manager_new: %s", strerror(-r)); - return EXIT_TEST_SKIP; - } -diff --git a/src/test/test-helper.h b/src/test/test-helper.h -index f75dd33..c0f6a91 100644 ---- a/src/test/test-helper.h -+++ b/src/test/test-helper.h -@@ -23,9 +23,21 @@ - - #include "sd-daemon.h" - -+#include "macro.h" -+ - #define TEST_REQ_RUNNING_SYSTEMD(x) \ - if (sd_booted() > 0) { \ - x; \ - } else { \ - printf("systemd not booted skipping '%s'\n", #x); \ - } -+ -+#define MANAGER_SKIP_TEST(r) \ -+ IN_SET(r, \ -+ -EPERM, \ -+ -EACCES, \ -+ -EADDRINUSE, \ -+ -EHOSTDOWN, \ -+ -ENOENT, \ -+ -ENOMEDIUM /* cannot determine cgroup */ \ -+ ) -diff --git a/src/test/test-path.c b/src/test/test-path.c -index 8302bdd..6e6a72d 100644 ---- a/src/test/test-path.c -+++ b/src/test/test-path.c -@@ -29,6 +29,7 @@ - #include "rm-rf.h" - #include "string-util.h" - #include "strv.h" -+#include "test-helper.h" - #include "unit.h" - #include "util.h" - -@@ -44,7 +45,7 @@ static int setup_test(Manager **m) { - assert_se(m); - - r = manager_new(MANAGER_USER, true, &tmp); -- if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT, -ENOEXEC)) { -+ if (MANAGER_SKIP_TEST(r)) { - printf("Skipping test: manager_new: %s", strerror(-r)); - return -EXIT_TEST_SKIP; - } -diff --git a/src/test/test-sched-prio.c b/src/test/test-sched-prio.c -index 8396ae6..7958a6c 100644 ---- a/src/test/test-sched-prio.c -+++ b/src/test/test-sched-prio.c -@@ -23,6 +23,7 @@ - - #include "macro.h" - #include "manager.h" -+#include "test-helper.h" - - int main(int argc, char *argv[]) { - Manager *m = NULL; -@@ -35,7 +36,7 @@ int main(int argc, char *argv[]) { - /* prepare the test */ - assert_se(set_unit_path(TEST_DIR) >= 0); - r = manager_new(MANAGER_USER, true, &m); -- if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT, -ENOEXEC)) { -+ if (MANAGER_SKIP_TEST(r)) { - printf("Skipping test: manager_new: %s", strerror(-r)); - return EXIT_TEST_SKIP; - } --- -2.5.0 - diff --git a/0002-lz4-fix-size-check-which-had-no-chance-of-working-on.patch b/0002-lz4-fix-size-check-which-had-no-chance-of-working-on.patch deleted file mode 100644 index 4003caa..0000000 --- a/0002-lz4-fix-size-check-which-had-no-chance-of-working-on.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 274e72394432cc35af5c9e7b91e49f3dc5180243 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 1 Dec 2015 22:53:23 -0500 -Subject: [PATCH 2/4] lz4: fix size check which had no chance of working on - big-endian - -(cherry picked from commit b3aa622929f81b44974d182636b1fde8b2a506e5) - -Resolves: #1286249 ---- - src/journal/compress.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/journal/compress.c b/src/journal/compress.c -index e1ca0a8..1a3d2cd 100644 ---- a/src/journal/compress.c -+++ b/src/journal/compress.c -@@ -201,7 +201,7 @@ int decompress_blob_lz4(const void *src, uint64_t src_size, - return -EBADMSG; - - size = le64toh( *(le64_t*)src ); -- if (size < 0 || (le64_t) size != *(le64_t*)src) -+ if (size < 0 || (unsigned) size != le64toh(*(le64_t*)src)) - return -EFBIG; - if ((size_t) size > *dst_alloc_size) { - out = realloc(*dst, size); --- -2.5.0 - diff --git a/0003-tests-fix-newlines-in-skip-message.patch b/0003-tests-fix-newlines-in-skip-message.patch deleted file mode 100644 index ccad3dd..0000000 --- a/0003-tests-fix-newlines-in-skip-message.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 98628af16f2ec4f7fbaa9bc23ae8606fc9adcc1c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 1 Dec 2015 23:44:27 -0500 -Subject: [PATCH 3/4] tests: fix newlines in skip message - -(cherry picked from commit 1d31abf7920460f3c9bb9744a255e0e518dce00d) - -Resolves: #1286249 ---- - src/test/test-engine.c | 2 +- - src/test/test-execute.c | 2 +- - src/test/test-path.c | 2 +- - src/test/test-sched-prio.c | 2 +- - 4 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/test/test-engine.c b/src/test/test-engine.c -index f09df43..e3ded1b 100644 ---- a/src/test/test-engine.c -+++ b/src/test/test-engine.c -@@ -40,7 +40,7 @@ int main(int argc, char *argv[]) { - assert_se(set_unit_path(TEST_DIR) >= 0); - r = manager_new(MANAGER_USER, true, &m); - if (MANAGER_SKIP_TEST(r)) { -- printf("Skipping test: manager_new: %s", strerror(-r)); -+ printf("Skipping test: manager_new: %s\n", strerror(-r)); - return EXIT_TEST_SKIP; - } - assert_se(r >= 0); -diff --git a/src/test/test-execute.c b/src/test/test-execute.c -index 1ab10fb..753afad 100644 ---- a/src/test/test-execute.c -+++ b/src/test/test-execute.c -@@ -298,7 +298,7 @@ int main(int argc, char *argv[]) { - - r = manager_new(MANAGER_USER, true, &m); - if (MANAGER_SKIP_TEST(r)) { -- printf("Skipping test: manager_new: %s", strerror(-r)); -+ printf("Skipping test: manager_new: %s\n", strerror(-r)); - return EXIT_TEST_SKIP; - } - assert_se(r >= 0); -diff --git a/src/test/test-path.c b/src/test/test-path.c -index 6e6a72d..7a3b145 100644 ---- a/src/test/test-path.c -+++ b/src/test/test-path.c -@@ -46,7 +46,7 @@ static int setup_test(Manager **m) { - - r = manager_new(MANAGER_USER, true, &tmp); - if (MANAGER_SKIP_TEST(r)) { -- printf("Skipping test: manager_new: %s", strerror(-r)); -+ printf("Skipping test: manager_new: %s\n", strerror(-r)); - return -EXIT_TEST_SKIP; - } - assert_se(r >= 0); -diff --git a/src/test/test-sched-prio.c b/src/test/test-sched-prio.c -index 7958a6c..60b5160 100644 ---- a/src/test/test-sched-prio.c -+++ b/src/test/test-sched-prio.c -@@ -37,7 +37,7 @@ int main(int argc, char *argv[]) { - assert_se(set_unit_path(TEST_DIR) >= 0); - r = manager_new(MANAGER_USER, true, &m); - if (MANAGER_SKIP_TEST(r)) { -- printf("Skipping test: manager_new: %s", strerror(-r)); -+ printf("Skipping test: manager_new: %s\n", strerror(-r)); - return EXIT_TEST_SKIP; - } - assert_se(r >= 0); --- -2.5.0 - diff --git a/0004-core-Do-not-bind-a-mount-unit-to-a-device-if-it-was-.patch b/0004-core-Do-not-bind-a-mount-unit-to-a-device-if-it-was-.patch deleted file mode 100644 index d83135c..0000000 --- a/0004-core-Do-not-bind-a-mount-unit-to-a-device-if-it-was-.patch +++ /dev/null @@ -1,135 +0,0 @@ -From a5866298597e2fd460c47d9fda7cceacbe9f3fcb Mon Sep 17 00:00:00 2001 -From: Harald Hoyer -Date: Tue, 24 Nov 2015 09:41:26 +0100 -Subject: [PATCH 4/4] core: Do not bind a mount unit to a device, if it was - from mountinfo - -If a mount unit is bound to a device, systemd tries to umount the -mount point, if it thinks the device has gone away. - -Due to the uevent queue and inotify of /proc/self/mountinfo being two -different sources, systemd can never get the ordering reliably correct. - -It can happen, that in the uevent queue ADD,REMOVE,ADD is queued -and an inotify of mountinfo (or libmount event) happend with the -device in question. - -systemd cannot know, at which point of time the mount happend in the -ADD,REMOVE,ADD sequence. - -The real ordering might have been ADD,REMOVE,ADD,mount -and systemd might think ADD,mount,REMOVE,ADD and would umount the -mountpoint. - -A test script which triggered this behaviour is: -rm -f test-efi-disk.img -dd if=/dev/null of=test-efi-disk.img bs=1M seek=512 count=1 -parted --script test-efi-disk.img \ - "mklabel gpt" \ - "mkpart ESP fat32 1MiB 511MiB" \ - "set 1 boot on" -LOOP=$(losetup --show -f -P test-efi-disk.img) -udevadm settle -mkfs.vfat -F32 ${LOOP}p1 -mkdir -p mnt -mount ${LOOP}p1 mnt -... - -Without the "udevadm settle" systemd unmounted mnt while the script was -operating on mnt. - -Of course the question is, why there was a REMOVE in the first place, -but this is not part of this patch. - -(cherry picked from commit 9d06297e262966de71095debd1537fc223f940a3) - -Note: I'm adding a Related note, but I'm not entirely sure if it really is... - -Related: #1195761 ---- - src/core/mount.c | 2 +- - src/core/socket.c | 2 +- - src/core/swap.c | 2 +- - src/core/unit.c | 6 ++++-- - src/core/unit.h | 2 +- - 5 files changed, 8 insertions(+), 6 deletions(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 9b44357..2ad4ad4 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -335,7 +335,7 @@ static int mount_add_device_links(Mount *m) { - if (mount_is_auto(p) && UNIT(m)->manager->running_as == MANAGER_SYSTEM) - device_wants_mount = true; - -- r = unit_add_node_link(UNIT(m), p->what, device_wants_mount); -+ r = unit_add_node_link(UNIT(m), p->what, device_wants_mount, m->from_fragment ? UNIT_BINDS_TO : UNIT_REQUIRES); - if (r < 0) - return r; - -diff --git a/src/core/socket.c b/src/core/socket.c -index 687675b..860a1e3 100644 ---- a/src/core/socket.c -+++ b/src/core/socket.c -@@ -289,7 +289,7 @@ static int socket_add_device_link(Socket *s) { - return 0; - - t = strjoina("/sys/subsystem/net/devices/", s->bind_to_device); -- return unit_add_node_link(UNIT(s), t, false); -+ return unit_add_node_link(UNIT(s), t, false, UNIT_BINDS_TO); - } - - static int socket_add_default_dependencies(Socket *s) { -diff --git a/src/core/swap.c b/src/core/swap.c -index b6e4372..5568898 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -202,7 +202,7 @@ static int swap_add_device_links(Swap *s) { - return 0; - - if (is_device_path(s->what)) -- return unit_add_node_link(UNIT(s), s->what, UNIT(s)->manager->running_as == MANAGER_SYSTEM); -+ return unit_add_node_link(UNIT(s), s->what, UNIT(s)->manager->running_as == MANAGER_SYSTEM, UNIT_BINDS_TO); - else - /* File based swap devices need to be ordered after - * systemd-remount-fs.service, since they might need a -diff --git a/src/core/unit.c b/src/core/unit.c -index 0a02e38..e6e67d2 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2840,7 +2840,7 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { - } - } - --int unit_add_node_link(Unit *u, const char *what, bool wants) { -+int unit_add_node_link(Unit *u, const char *what, bool wants, UnitDependency dep) { - Unit *device; - _cleanup_free_ char *e = NULL; - int r; -@@ -2867,7 +2867,9 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { - if (r < 0) - return r; - -- r = unit_add_two_dependencies(u, UNIT_AFTER, u->manager->running_as == MANAGER_SYSTEM ? UNIT_BINDS_TO : UNIT_WANTS, device, true); -+ r = unit_add_two_dependencies(u, UNIT_AFTER, -+ u->manager->running_as == MANAGER_SYSTEM ? dep : UNIT_WANTS, -+ device, true); - if (r < 0) - return r; - -diff --git a/src/core/unit.h b/src/core/unit.h -index 1681bbf..3eb3484 100644 ---- a/src/core/unit.h -+++ b/src/core/unit.h -@@ -528,7 +528,7 @@ int unit_serialize_item_escaped(Unit *u, FILE *f, const char *key, const char *v - int unit_serialize_item_fd(Unit *u, FILE *f, FDSet *fds, const char *key, int fd); - void unit_serialize_item_format(Unit *u, FILE *f, const char *key, const char *value, ...) _printf_(4,5); - --int unit_add_node_link(Unit *u, const char *what, bool wants); -+int unit_add_node_link(Unit *u, const char *what, bool wants, UnitDependency d); - - int unit_coldplug(Unit *u); - --- -2.5.0 - diff --git a/0999-Add-a-workaround-for-linux-net-if.h-conflict.patch b/0999-Add-a-workaround-for-linux-net-if.h-conflict.patch index 043e020..af68975 100644 --- a/0999-Add-a-workaround-for-linux-net-if.h-conflict.patch +++ b/0999-Add-a-workaround-for-linux-net-if.h-conflict.patch @@ -1,4 +1,4 @@ -From ee3b68041ed9cf19b3dd18c4d1bb342abec7d2ac Mon Sep 17 00:00:00 2001 +From d9e075d88e7d9d82464147d8283771d709c14ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Feb 2016 15:13:33 -0500 Subject: [PATCH] Add a workaround for {linux/net}/if.h conflict @@ -7,26 +7,31 @@ Include linux/if.h and make sure we don't include the other file. https://bugzilla.redhat.com/show_bug.cgi?id=1300256 --- - src/shared/firewall-util.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) + src/shared/firewall-util.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/shared/firewall-util.c b/src/shared/firewall-util.c -index 5acfb0191b..95335498ef 100644 +index 0d3da2e..c38f9cc 100644 --- a/src/shared/firewall-util.c +++ b/src/shared/firewall-util.c -@@ -19,9 +19,11 @@ +@@ -16,15 +16,16 @@ + You should have received a copy of the GNU Lesser General Public License along with systemd; If not, see . ***/ - +#define _NET_IF_H 1 -+ + + #include #include + #include + #include -#include - #include + #include + #include + #include +#include #include #include #include -- -1.9.2.649.g5ae4ba5 +2.5.0 diff --git a/sources b/sources index 2e7451d..6588311 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -74cfefd62818a57b5265f660682ff4d2 systemd-e35a787.tar.gz +5d696f65381b2608da70544df07c2b3c systemd-229.tar.gz diff --git a/systemd.spec b/systemd.spec index 4809cab..5fbec8f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,4 +1,4 @@ -%global gitcommit e35a7876b4ab1d53a7539a905613e31dc6ae50fd +#global gitcommit e35a7876b4ab1d53a7539a905613e31dc6ae50fd %global gitcommitshort %(c=%{gitcommit}; echo ${c:0:7}) %global _hardened_build 1 @@ -12,8 +12,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 228 -Release: 10%{?gitcommit:.git%{gitcommitshort}}%{?dist} +Version: 229 +Release: 1%{?gitcommit:.git%{gitcommitshort}}%{?dist} # For a breakdown of the licensing, see README License: LGPLv2+ and MIT and GPLv2+ Summary: A System and Service Manager @@ -34,11 +34,6 @@ Source7: systemd-journal-remote.xml Source8: systemd-journal-gatewayd.xml Source9: 20-yama-ptrace.conf -Patch0001: 0001-tests-turn-check-if-manager-cannot-be-intialized-int.patch -Patch0002: 0002-lz4-fix-size-check-which-had-no-chance-of-working-on.patch -Patch0003: 0003-tests-fix-newlines-in-skip-message.patch -Patch0004: 0004-core-Do-not-bind-a-mount-unit-to-a-device-if-it-was-.patch - Patch0999: 0999-Add-a-workaround-for-linux-net-if.h-conflict.patch # kernel-install patch for grubby, drop if grubby is obsolete @@ -655,6 +650,7 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd %{_bindir}/systemd-detect-virt %{_bindir}/systemd-inhibit %{_bindir}/systemd-path +%{_bindir}/systemd-resolve %{_bindir}/systemd-sysusers %{_bindir}/systemd-firstboot %{_bindir}/systemd-hwdb @@ -810,6 +806,9 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd /usr/lib/firewalld/services/* %changelog +* Thu Feb 11 2016 Michal Sekletar - 229-1 +- New upstream release + * Thu Feb 11 2016 Harald Hoyer - 228-10.gite35a787 - fixed kernel-install for copying files for grubby Resolves: rhbz#1299019