$ git diff --patch-with-stat --summary e2809af24d86cd7994ecfcc9aa944507e4065936..adcf1166a864447b3c50c0eb1d73625814b54ae1
.abf.yml | 2 +-
0001-journal-raise-compression-threshold.patch | 25 +
0002-journal-clearout-drop-kmsg.patch | 34 +
0003-core-use-mmap-to-load-files.patch | 25 +
0005-journal-flush-var-kmsg-after-starting.patch | 31 +
...turn-malloc-memory-reserves-when-main-loo.patch | 45 ++
...es-Make-var-cache-ldconfig-world-readable.patch | 26 +
0024-more-udev-children-workers.patch | 25 +
0029-Enable-BBR-Bottleneck-Bandwidth-and-RTT.patch | 26 +
...ine-complete-once-one-link-is-online-not-.patch | 31 +
0031-DHCP-retry-faster.patch | 25 +
0033-Remove-libm-memory-overhead.patch | 27 +
0035-skip-not-present-ACPI-devices.patch | 59 ++
0038-Compile-udev-with-O3.patch | 32 +
0039-Don-t-wait-for-utmp-at-shutdown.patch | 25 +
...-wait-online-don-t-pass-NULL-to-strv_find.patch | 23 +
...probe-pci-devices-on-coldplug-for-storage.patch | 30 +-
systemd-230-add-userpreset-rpm-macro.patch | 11 -
systemd-236-fix-build-with-LLVM.patch | 16 +
systemd.rpmlintrc | 9 +
systemd.spec | 758 ++++++++++++++-------
21 files changed, 1006 insertions(+), 279 deletions(-)
create mode 100644 0001-journal-raise-compression-threshold.patch
create mode 100644 0002-journal-clearout-drop-kmsg.patch
create mode 100644 0003-core-use-mmap-to-load-files.patch
create mode 100644 0005-journal-flush-var-kmsg-after-starting.patch
create mode 100644 0010-sd-event-return-malloc-memory-reserves-when-main-loo.patch
create mode 100644 0020-tmpfiles-Make-var-cache-ldconfig-world-readable.patch
create mode 100644 0024-more-udev-children-workers.patch
create mode 100644 0029-Enable-BBR-Bottleneck-Bandwidth-and-RTT.patch
create mode 100644 0030-network-online-complete-once-one-link-is-online-not-.patch
create mode 100644 0031-DHCP-retry-faster.patch
create mode 100644 0033-Remove-libm-memory-overhead.patch
create mode 100644 0035-skip-not-present-ACPI-devices.patch
create mode 100644 0038-Compile-udev-with-O3.patch
create mode 100644 0039-Don-t-wait-for-utmp-at-shutdown.patch
create mode 100644 0040-network-wait-online-don-t-pass-NULL-to-strv_find.patch
delete mode 100644 systemd-230-add-userpreset-rpm-macro.patch
create mode 100644 systemd-236-fix-build-with-LLVM.patch
diff --git a/.abf.yml b/.abf.yml
index 0bce55b..d64cc42 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
sources:
- systemd-234.tar.gz: a0ff860f21fc71d3628ad187150c16369db1ff4f
+ systemd-236.tar.gz: eab372a3441997dfba1dfa41183918764c31a7df
diff --git a/0001-journal-raise-compression-threshold.patch b/0001-journal-raise-compression-threshold.patch
new file mode 100644
index 0000000..ce3efd6
--- /dev/null
+++ b/0001-journal-raise-compression-threshold.patch
@@ -0,0 +1,25 @@
+From 499add1098733d5b45d46a56177e01792904bc80 Mon Sep 17 00:00:00 2001
+From: Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
+Date: Tue, 23 Jun 2015 11:23:57 +0100
+Subject: [PATCH 01/39] journal: raise compression threshold.
+
+---
+ src/journal/journal-file.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
+index 4ff38de2e..3769ebe0d 100644
+--- a/src/journal/journal-file.c
++++ b/src/journal/journal-file.c
+@@ -48,7 +48,7 @@
+ #define DEFAULT_DATA_HASH_TABLE_SIZE (2047ULL*sizeof(HashItem))
+ #define DEFAULT_FIELD_HASH_TABLE_SIZE (333ULL*sizeof(HashItem))
+
+-#define COMPRESSION_SIZE_THRESHOLD (512ULL)
++#define COMPRESSION_SIZE_THRESHOLD (8192ULL)
+
+ /* This is the minimum journal file size */
+ #define JOURNAL_FILE_SIZE_MIN (512ULL*1024ULL) /* 512 KiB */
+--
+2.13.3
+
diff --git a/0002-journal-clearout-drop-kmsg.patch b/0002-journal-clearout-drop-kmsg.patch
new file mode 100644
index 0000000..c918bc8
--- /dev/null
+++ b/0002-journal-clearout-drop-kmsg.patch
@@ -0,0 +1,34 @@
+From 54ad68e9add1762c7e80f0759150350eaa066005 Mon Sep 17 00:00:00 2001
+From: Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
+Date: Tue, 23 Jun 2015 11:25:41 +0100
+Subject: [PATCH 02/39] journal: clearout & drop kmsg.
+
+---
+ src/journal/journald-kmsg.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+diff -Naur systemd-235/src/journal/journald-kmsg.c systemd-235.tpg/src/journal/journald-kmsg.c
+--- systemd-235/src/journal/journald-kmsg.c 2017-10-06 08:18:04.000000000 +0000
++++ systemd-235.tpg/src/journal/journald-kmsg.c 2017-10-23 16:06:34.231634116 +0000
+@@ -389,6 +389,7 @@
+ int server_open_dev_kmsg(Server *s) {
+ mode_t mode;
+ int r;
++ char buffer[40960];
+
+ assert(s);
+
+@@ -407,6 +408,14 @@
+ if (!s->read_kmsg)
+ return 0;
+
++ /* clear out /dev/kmsg, we don't want all its messages */
++ while (1) {
++ int ret;
++ ret = read(s->dev_kmsg_fd, buffer, 40960);
++ if (ret <= 0)
++ break;
++ }
++
+ r = sd_event_add_io(s->event, &s->dev_kmsg_event_source, s->dev_kmsg_fd, EPOLLIN, dispatch_dev_kmsg, s);
+ if (r < 0) {
+
diff --git a/0003-core-use-mmap-to-load-files.patch b/0003-core-use-mmap-to-load-files.patch
new file mode 100644
index 0000000..718d673
--- /dev/null
+++ b/0003-core-use-mmap-to-load-files.patch
@@ -0,0 +1,25 @@
+From 4058eb4f688d02b5ed3ff3d4297042c7f0b1c786 Mon Sep 17 00:00:00 2001
+From: Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
+Date: Tue, 23 Jun 2015 11:26:11 +0100
+Subject: [PATCH 03/39] core: use mmap to load files.
+
+---
+ src/core/load-fragment.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
+index 9d5c39b3d..a770fdb3f 100644
+--- a/src/core/load-fragment.c
++++ b/src/core/load-fragment.c
+@@ -4237,7 +4237,7 @@ static int open_follow(char **filename, FILE **_f, Set *names, char **_final) {
+ *filename = target;
+ }
+
+- f = fdopen(fd, "re");
++ f = fdopen(fd, "rem");
+ if (!f) {
+ safe_close(fd);
+ return -errno;
+--
+2.13.3
+
diff --git a/0005-journal-flush-var-kmsg-after-starting.patch b/0005-journal-flush-var-kmsg-after-starting.patch
new file mode 100644
index 0000000..39e4393
--- /dev/null
+++ b/0005-journal-flush-var-kmsg-after-starting.patch
@@ -0,0 +1,31 @@
+From ad97082cec9b5aee3f1224c172a6131d1a528389 Mon Sep 17 00:00:00 2001
+From: Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
+Date: Tue, 23 Jun 2015 11:38:31 +0100
+Subject: [PATCH 05/39] journal: flush var/kmsg after starting.
+
+---
+ src/journal/journald.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff -Naur systemd-236/src/journal/journald.c systemd-236.tpg/src/journal/journald.c
+--- systemd-236/src/journal/journald.c 2017-12-14 22:09:57.000000000 +0000
++++ systemd-236.tpg/src/journal/journald.c 2017-12-20 21:58:06.517597120 +0000
+@@ -53,8 +53,6 @@
+ goto finish;
+
+ server_vacuum(&server, false);
+- server_flush_to_var(&server, true);
+- server_flush_dev_kmsg(&server);
+
+ log_debug("systemd-journald running as pid "PID_FMT, getpid_cached());
+ server_driver_message(&server, 0,
+@@ -62,6 +60,9 @@
+ LOG_MESSAGE("Journal started"),
+ NULL);
+
++ server_flush_to_var(&server, true);
++ server_flush_dev_kmsg(&server);
++
+ /* Make sure to send the usage message *after* flushing the
+ * journal so entries from the runtime journals are ordered
+ * before this message. See #4190 for some details. */
diff --git a/0010-sd-event-return-malloc-memory-reserves-when-main-loo.patch b/0010-sd-event-return-malloc-memory-reserves-when-main-loo.patch
new file mode 100644
index 0000000..7c7b159
--- /dev/null
+++ b/0010-sd-event-return-malloc-memory-reserves-when-main-loo.patch
@@ -0,0 +1,45 @@
+From 44afc6c08994532386d6eb203632185e386abddc Mon Sep 17 00:00:00 2001
+From: Dimitri John Ledkov <dimitri.j.ledkov@intel.com>
+Date: Tue, 23 Jun 2015 11:47:18 +0100
+Subject: [PATCH 10/39] sd-event: return malloc() memory reserves when main
+ loop is idle.
+
+---
+ src/libsystemd/sd-event/sd-event.c | 13 +++++++++++--
+ 1 file changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
+index b4686d006..9b2bb677d 100644
+--- a/src/libsystemd/sd-event/sd-event.c
++++ b/src/libsystemd/sd-event/sd-event.c
+@@ -20,6 +20,7 @@
+ #include <sys/epoll.h>
+ #include <sys/timerfd.h>
+ #include <sys/wait.h>
++#include <malloc.h>
+
+ #include "sd-daemon.h"
+ #include "sd-event.h"
+@@ -2678,9 +2679,17 @@ _public_ int sd_event_run(sd_event *e, uint64_t timeout) {
+ }
+
+ r = sd_event_prepare(e);
+- if (r == 0)
+- /* There was nothing? Then wait... */
++ if (r == 0) {
++ /* There was nothing? Then wait...
++ *
++ * ... but since there is no event pending, likely
++ * we'll be idle for a long time. This is a good time
++ * to return any malloc() memory reserves to the
++ * operating system.
++ */
++ malloc_trim(0);
+ r = sd_event_wait(e, timeout);
++ }
+
+ if (e->profile_delays)
+ e->last_run = now(CLOCK_MONOTONIC);
+--
+2.13.3
+
diff --git a/0020-tmpfiles-Make-var-cache-ldconfig-world-readable.patch b/0020-tmpfiles-Make-var-cache-ldconfig-world-readable.patch
new file mode 100644
index 0000000..5088477
--- /dev/null
+++ b/0020-tmpfiles-Make-var-cache-ldconfig-world-readable.patch
@@ -0,0 +1,26 @@
+From 43136c2becf0a4f490b056281e0b8578cc91f1dc Mon Sep 17 00:00:00 2001
+From: Ikey Doherty <michael.i.doherty@intel.com>
+Date: Fri, 27 Nov 2015 16:30:12 +0000
+Subject: [PATCH 20/39] tmpfiles: Make /var/cache/ldconfig world readable
+
+Signed-off-by: Ikey Doherty <michael.i.doherty@intel.com>
+---
+ tmpfiles.d/var.conf.m4 | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tmpfiles.d/var.conf.m4 b/tmpfiles.d/var.conf.m4
+index e640fcd8c..264c56cb5 100644
+--- a/tmpfiles.d/var.conf.m4
++++ b/tmpfiles.d/var.conf.m4
+@@ -19,6 +19,8 @@ f /var/log/lastlog 0664 root utmp -
+ )m4_dnl
+
+ d /var/cache 0755 - - -
++d /var/cache/locale 0755 - - -
++d /var/cache/ldconfig 0755 - - -
+
+ d /var/lib 0755 - - -
+
+--
+2.13.3
+
diff --git a/0024-more-udev-children-workers.patch b/0024-more-udev-children-workers.patch
new file mode 100644
index 0000000..2287061
--- /dev/null
+++ b/0024-more-udev-children-workers.patch
@@ -0,0 +1,25 @@
+From ee960a27d8629d34c8e730dc28e95d0144d9a37c Mon Sep 17 00:00:00 2001
+From: Arjan van de Ven <arjan@linux.intel.com>
+Date: Sat, 18 Jun 2016 17:33:33 +0000
+Subject: [PATCH 24/39] more udev children workers
+
+---
+ units/systemd-udevd.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/units/systemd-udevd.service.in b/units/systemd-udevd.service.in
+index fc037b5a5..6806d5b41 100644
+--- a/units/systemd-udevd.service.in
++++ b/units/systemd-udevd.service.in
+@@ -20,7 +20,7 @@ OOMScoreAdjust=-1000
+ Sockets=systemd-udevd-control.socket systemd-udevd-kernel.socket
+ Restart=always
+ RestartSec=0
+-ExecStart=@rootlibexecdir@/systemd-udevd
++ExecStart=@rootlibexecdir@/systemd-udevd --children-max=16
+ KillMode=mixed
+ WatchdogSec=3min
+ TasksMax=infinity
+--
+2.13.3
+
diff --git a/0029-Enable-BBR-Bottleneck-Bandwidth-and-RTT.patch b/0029-Enable-BBR-Bottleneck-Bandwidth-and-RTT.patch
new file mode 100644
index 0000000..919e5f0
--- /dev/null
+++ b/0029-Enable-BBR-Bottleneck-Bandwidth-and-RTT.patch
@@ -0,0 +1,26 @@
+From 34cc512efc5043cd8f6f3ebe788ae78bf597ca78 Mon Sep 17 00:00:00 2001
+From: Auke Kok <auke-jan.h.kok@intel.com>
+Date: Fri, 31 Mar 2017 10:14:16 -0700
+Subject: [PATCH 29/39] Enable BBR - Bottleneck Bandwidth and RTT
+
+Enable the `fq` qdisc.
+---
+ sysctl.d/50-default.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sysctl.d/50-default.conf b/sysctl.d/50-default.conf
+index aff99300d..4b625c461 100644
+--- a/sysctl.d/50-default.conf
++++ b/sysctl.d/50-default.conf
+@@ -34,7 +34,7 @@ net.ipv4.conf.default.promote_secondaries = 1
+ net.ipv4.conf.all.promote_secondaries = 1
+
+ # Fair Queue CoDel packet scheduler to fight bufferbloat
+-net.core.default_qdisc = fq_codel
++net.core.default_qdisc = fq
+
+ # Enable hard and soft link protection
+ fs.protected_hardlinks = 1
+--
+2.13.3
+
diff --git a/0030-network-online-complete-once-one-link-is-online-not-.patch b/0030-network-online-complete-once-one-link-is-online-not-.patch
new file mode 100644
index 0000000..d3e5482
--- /dev/null
+++ b/0030-network-online-complete-once-one-link-is-online-not-.patch
@@ -0,0 +1,31 @@
+From 59528e7de409edb9ad9425b3748c9cd9a7c6f479 Mon Sep 17 00:00:00 2001
+From: Auke Kok <auke-jan.h.kok@intel.com>
+Date: Fri, 31 Mar 2017 10:15:52 -0700
+Subject: [PATCH 30/39] network-online: complete once one link is online, not
+ all.
+
+---
+ src/network/wait-online/manager.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/network/wait-online/manager.c b/src/network/wait-online/manager.c
+index d51b0a59d..a5781e6e6 100644
+--- a/src/network/wait-online/manager.c
++++ b/src/network/wait-online/manager.c
+@@ -71,13 +71,11 @@ bool manager_all_configured(Manager *m) {
+ if (!l->state) {
+ log_debug("link %s has not yet been processed by udev",
+ l->ifname);
+- return false;
+ }
+
+ if (STR_IN_SET(l->state, "configuring", "pending")) {
+ log_debug("link %s is being processed by networkd",
+ l->ifname);
+- return false;
+ }
+
+ if (l->operational_state &&
+--
+2.13.3
+
diff --git a/0031-DHCP-retry-faster.patch b/0031-DHCP-retry-faster.patch
new file mode 100644
index 0000000..416cc7f
--- /dev/null
+++ b/0031-DHCP-retry-faster.patch
@@ -0,0 +1,25 @@
+From acca75969dc553bea6f97bd02b2dc8b0248cc800 Mon Sep 17 00:00:00 2001
+From: Auke Kok <auke-jan.h.kok@intel.com>
+Date: Fri, 31 Mar 2017 10:16:21 -0700
+Subject: [PATCH 31/39] DHCP: retry faster.
+
+---
+ src/libsystemd-network/sd-dhcp-client.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c
+index e20d339bd..e65c90e77 100644
+--- a/src/libsystemd-network/sd-dhcp-client.c
++++ b/src/libsystemd-network/sd-dhcp-client.c
+@@ -943,7 +943,7 @@ static int client_timeout_resend(
+ if (client->attempt < 64)
+ client->attempt *= 2;
+
+- next_timeout = time_now + (client->attempt - 1) * USEC_PER_SEC;
++ next_timeout = time_now + (client->attempt - 1) * USEC_PER_SEC / 4;
+
+ break;
+
+--
+2.13.3
+
diff --git a/0033-Remove-libm-memory-overhead.patch b/0033-Remove-libm-memory-overhead.patch
new file mode 100644
index 0000000..9bcad0f
--- /dev/null
+++ b/0033-Remove-libm-memory-overhead.patch
@@ -0,0 +1,27 @@
+From 386d0c63f7d71867f94d9a5673ebea0cf163985d Mon Sep 17 00:00:00 2001
+From: Auke Kok <auke-jan.h.kok@intel.com>
+Date: Fri, 14 Jul 2017 11:31:38 -0700
+Subject: [PATCH 33/39] Remove libm memory overhead.
+
+timesyncd pulls in libm, only for one single exp2() in a debug log
+statement save the memory by not logging this little bit of info.
+---
+ src/timesync/timesyncd-manager.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/timesync/timesyncd-manager.c b/src/timesync/timesyncd-manager.c
+index a24c821bd..35e579154 100644
+--- a/src/timesync/timesyncd-manager.c
++++ b/src/timesync/timesyncd-manager.c
+@@ -652,7 +652,7 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
+ NTP_FIELD_VERSION(ntpmsg.field),
+ NTP_FIELD_MODE(ntpmsg.field),
+ ntpmsg.stratum,
+- exp2(ntpmsg.precision), ntpmsg.precision,
++ 0.0, ntpmsg.precision,
+ root_distance,
+ ntpmsg.stratum == 1 ? ntpmsg.refid : "n/a",
+ origin - OFFSET_1900_1970,
+--
+2.13.3
+
diff --git a/0035-skip-not-present-ACPI-devices.patch b/0035-skip-not-present-ACPI-devices.patch
new file mode 100644
index 0000000..deecb28
--- /dev/null
+++ b/0035-skip-not-present-ACPI-devices.patch
@@ -0,0 +1,59 @@
+From 532820eb28fefdacec980df0b869e0ac6defbb26 Mon Sep 17 00:00:00 2001
+From: Auke Kok <auke-jan.h.kok@intel.com>
+Date: Fri, 14 Jul 2017 11:33:26 -0700
+Subject: [PATCH 35/39] skip not-present ACPI devices
+
+Xen and older Qemu expose a boatload (253) ACPI devices to the guest
+that are not present; these show up in sysfs but there's nothing
+meaningful one can do with them.
+
+This patch will have udev skip these devices to save the 100ms+
+boot time
+---
+ src/libsystemd/sd-device/device-enumerator.c | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c
+index ebb8b2d16..39172c457 100644
+--- a/src/libsystemd/sd-device/device-enumerator.c
++++ b/src/libsystemd/sd-device/device-enumerator.c
+@@ -465,6 +465,26 @@ static bool match_sysname(sd_device_enumerator *enumerator, const char *sysname)
+ return false;
+ }
+
++static int acpi_status_disabled(char *sysfspath)
++{
++ FILE *file;
++ unsigned int i;
++ char newpath[4096];
++ char line[128];
++ sprintf(newpath, "%s/status", sysfspath);
++ file = fopen(newpath, "r");
++ if (!file)
++ return 0;
++// line[0] = 0;
++// fgets(line, 128, file);
++ fclose(file);
++// i = strtoull(line, NULL, 10);
++
++ if (strstr(sysfspath, "acpi") && strstr(sysfspath, "device:"))
++ return 1;
++ return 0;
++}
++
+ static int enumerator_scan_dir_and_add_devices(sd_device_enumerator *enumerator, const char *basedir, const char *subdir1, const char *subdir2) {
+ _cleanup_closedir_ DIR *dir = NULL;
+ char *path;
+@@ -500,6 +520,9 @@ static int enumerator_scan_dir_and_add_devices(sd_device_enumerator *enumerator,
+
+ (void)sprintf(syspath, "%s%s", path, dent->d_name);
+
++ if (acpi_status_disabled(syspath))
++ continue;
++
+ k = sd_device_new_from_syspath(&device, syspath);
+ if (k < 0) {
+ if (k != -ENODEV)
+--
+2.13.3
+
diff --git a/0038-Compile-udev-with-O3.patch b/0038-Compile-udev-with-O3.patch
new file mode 100644
index 0000000..9e1c62f
--- /dev/null
+++ b/0038-Compile-udev-with-O3.patch
@@ -0,0 +1,32 @@
+diff -Naur systemd-235/meson.build systemd-235.tpg/meson.build
+--- systemd-235/meson.build 2017-10-06 08:18:04.028244528 +0000
++++ systemd-235.tpg/meson.build 2017-10-23 16:28:06.159547684 +0000
+@@ -2137,7 +2137,7 @@
+ exe = executable('systemd-udevd',
+ systemd_udevd_sources,
+ include_directories : includes,
+- c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
++ c_args : ['-DLOG_REALM=LOG_REALM_UDEV', '-O3'],
+ link_with : [libudev_core,
+ libsystemd_network,
+ libudev_internal],
+@@ -2154,6 +2154,7 @@
+ exe = executable('udevadm',
+ udevadm_sources,
+ include_directories : includes,
++ c_args : ['-O3'],
+ link_with : [libudev_core,
+ libsystemd_network,
+ libudev_internal],
+diff -Naur systemd-235/src/udev/meson.build systemd-235.tpg/src/udev/meson.build
+--- systemd-235/src/udev/meson.build 2017-10-06 08:18:04.028244528 +0000
++++ systemd-235.tpg/src/udev/meson.build 2017-10-23 16:29:03.765552545 +0000
+@@ -131,7 +131,7 @@
+ executable(prog[0].split('/')[0],
+ prog,
+ include_directories : includes,
+- c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
++ c_args : ['-DLOG_REALM=LOG_REALM_UDEV', '-O3'],
+ link_with : [libudev_internal],
+ install_rpath : udev_rpath,
+ install : true,
diff --git a/0039-Don-t-wait-for-utmp-at-shutdown.patch b/0039-Don-t-wait-for-utmp-at-shutdown.patch
new file mode 100644
index 0000000..29d9b51
--- /dev/null
+++ b/0039-Don-t-wait-for-utmp-at-shutdown.patch
@@ -0,0 +1,25 @@
+From 30da036bae1c7798dd4883b9bfc35be0b6b5a6aa Mon Sep 17 00:00:00 2001
+From: Auke Kok <auke-jan.h.kok@intel.com>
+Date: Fri, 14 Jul 2017 11:37:58 -0700
+Subject: [PATCH 39/39] Don't wait for utmp at shutdown.
+
+---
+ units/systemd-update-utmp.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/units/systemd-update-utmp.service.in b/units/systemd-update-utmp.service.in
+index 163eccd91..8ee6c9c79 100644
+--- a/units/systemd-update-utmp.service.in
++++ b/units/systemd-update-utmp.service.in
+@@ -12,7 +12,7 @@ DefaultDependencies=no
+ RequiresMountsFor=/var/log/wtmp
+ Conflicts=shutdown.target
+ After=systemd-remount-fs.service systemd-tmpfiles-setup.service auditd.service
+-Before=sysinit.target shutdown.target
++Before=shutdown.target
+
+ [Service]
+ Type=oneshot
+--
+2.13.3
+
diff --git a/0040-network-wait-online-don-t-pass-NULL-to-strv_find.patch b/0040-network-wait-online-don-t-pass-NULL-to-strv_find.patch
new file mode 100644
index 0000000..98977e3
--- /dev/null
+++ b/0040-network-wait-online-don-t-pass-NULL-to-strv_find.patch
@@ -0,0 +1,23 @@
+From 4e20603e5351f986505a7e3a488406a5f2bc1f66 Mon Sep 17 00:00:00 2001
+From: Auke Kok <auke-jan.h.kok@intel.com>
+Date: Thu, 19 Oct 2017 16:07:51 -0700
+Subject: [PATCH] network-wait-online: don't pass NULL to strv_find().
+
+---
+ src/network/wait-online/manager.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff -Naur systemd-236/src/network/wait-online/manager.c systemd-236.tpg/src/network/wait-online/manager.c
+--- systemd-236/src/network/wait-online/manager.c 2017-12-20 22:10:47.700629000 +0000
++++ systemd-236.tpg/src/network/wait-online/manager.c 2017-12-20 22:12:15.831957785 +0000
+@@ -75,6 +75,7 @@
+ if (!l->state) {
+ log_debug("link %s has not yet been processed by udev",
+ l->ifname);
++ continue;
+ }
+
+ if (STR_IN_SET(l->state, "configuring", "pending")) {
+
+--
+2.14.2
diff --git a/0503-Disable-modprobe-pci-devices-on-coldplug-for-storage.patch b/0503-Disable-modprobe-pci-devices-on-coldplug-for-storage.patch
index aded989..1856d27 100644
--- a/0503-Disable-modprobe-pci-devices-on-coldplug-for-storage.patch
+++ b/0503-Disable-modprobe-pci-devices-on-coldplug-for-storage.patch
@@ -1,22 +1,10 @@
-From b5efb08c5bd0e8d33ecb1bd989f558a8d704a150 Mon Sep 17 00:00:00 2001
-From: Frederic Crozat <fcrozat@mandriva.com>
-Date: Sun, 1 Jul 2012 17:44:41 +0100
-Subject: [PATCH 503/511] Disable modprobe pci devices on coldplug for storage
- and display
-
-Signed-off-by: Frederic Crozat <fcrozat@mandriva.com>
----
- rules/80-drivers.rules | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/rules/80-drivers.rules b/rules/80-drivers.rules
-index 8551f47..60c976a 100644
---- a/rules/80-drivers.rules
-+++ b/rules/80-drivers.rules
-@@ -2,6 +2,16 @@
-
- ACTION=="remove", GOTO="drivers_end"
+diff -Naur systemd-235/rules/80-drivers.rules systemd-235.tpg/rules/80-drivers.rules
+--- systemd-235/rules/80-drivers.rules 2017-10-06 08:18:04.033532976 +0000
++++ systemd-235.tpg/rules/80-drivers.rules 2017-10-15 00:10:20.183381729 +0000
+@@ -1,6 +1,15 @@
+ # do not edit this file, it will be overwritten on update
+ ACTION!="add", GOTO="drivers_end"
+# modprobe pci devices on cold plug except for:
+# PCI_BASE_CLASS_STORAGE 0x01
+SUBSYSTEM=="pci", ENV{STARTUP}=="1", ATTR{class}=="0x01*", GOTO="drivers_end"
@@ -26,10 +14,6 @@ index 8551f47..60c976a 100644
+SUBSYSTEM=="pci", ATTR{class}=="0x03*", DRIVER!="?*", TEST=="/initrd", RUN+="/sbin/display_driver_helper --load $env{MODALIAS}", GOTO="drivers_end"
+# - skip loading if in initrd (i.e. no /initrd) and nokmsboot or failsafe is specified
+SUBSYSTEM=="pci", ATTR{class}=="0x03*", DRIVER!="?*", PROGRAM=="/bin/grep -qFw -e nokmsboot -e failsafe /proc/cmdline", GOTO="drivers_end"
-+
+
ENV{MODALIAS}=="?*", RUN{builtin}+="kmod load $env{MODALIAS}"
SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN{builtin}+="kmod load tifm_sd"
- SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN{builtin}+="kmod load tifm_ms"
---
-1.9.2
-
diff --git a/systemd-230-add-userpreset-rpm-macro.patch b/systemd-230-add-userpreset-rpm-macro.patch
deleted file mode 100644
index 8c523fa..0000000
--- a/systemd-230-add-userpreset-rpm-macro.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Naur systemd-230/src/core/macros.systemd.in systemd-230.tpg/src/core/macros.systemd.in
---- systemd-230/src/core/macros.systemd.in 2016-05-21 22:31:29.000000000 +0000
-+++ systemd-230.tpg/src/core/macros.systemd.in 2016-06-07 16:59:51.803511156 +0000
-@@ -21,6 +21,7 @@
-
- %_unitdir @systemunitdir@
- %_userunitdir @userunitdir@
-+%_userpresetdir %{_prefix}/lib/systemd/user-preset
- %_presetdir @systempresetdir@
- %_udevhwdbdir @udevhwdbdir@
- %_udevrulesdir @udevrulesdir@
diff --git a/systemd-236-fix-build-with-LLVM.patch b/systemd-236-fix-build-with-LLVM.patch
new file mode 100644
index 0000000..2e51e3d
--- /dev/null
+++ b/systemd-236-fix-build-with-LLVM.patch
@@ -0,0 +1,16 @@
+diff -Naur systemd-236/src/basic/macro.h systemd-236.tpg/src/basic/macro.h
+--- systemd-236/src/basic/macro.h 2017-12-14 22:09:57.037151344 +0000
++++ systemd-236.tpg/src/basic/macro.h 2017-12-20 23:37:29.334970955 +0000
+@@ -48,10 +48,10 @@
+ #define _weakref_(x) __attribute__((weakref(#x)))
+ #define _alignas_(x) __attribute__((aligned(__alignof(x))))
+ #define _cleanup_(x) __attribute__((cleanup(x)))
+-#if __GNUC__ >= 7
++#if __GNUC__ >= 7 && __has_attribute(__fallthrough__)
+ #define _fallthrough_ __attribute__((fallthrough))
+ #else
+-#define _fallthrough_
++#define _fallthrough_ ((void) 0)
+ #endif
+
+ /* Temporarily disable some warnings */
diff --git a/systemd.rpmlintrc b/systemd.rpmlintrc
index 96583a1..85e2580 100644
--- a/systemd.rpmlintrc
+++ b/systemd.rpmlintrc
@@ -2,3 +2,12 @@ addFilter("E: hardcoded-library-path")
addFilter("E: init-script-non-executable")
addFilter("E: no-chkconfig-line")
addFilter("E: init-script-without-chkconfig-preun")
+addFilter("E: useless-provides")
+addFilter("E: subsys-not-used")
+addFilter("E: postin-without-ldconfig")
+addFilter("E: postun-without-ldconfig")
+addFilter("E: postin-without-chkconfig")
+addFilter("E: non-standard-dir-perm")
+addFilter("E: non-ghost-file")
+addFilter("E: non-executable-script")
+addFilter("E: no-dependency-on")
diff --git a/systemd.spec b/systemd.spec
index f0980e3..41428d0 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -1,3 +1,7 @@
+%ifarch %{ix86}
+%define _disable_lto 1
+%endif
+
%bcond_with bootstrap
# macros for sysvinit transition - should be equal to
@@ -12,6 +16,9 @@
%define libsystemd_devel %mklibname %{name} -d
%define libnss_myhostname %mklibname nss_myhostname %{libnss_major}
+%define libnss_mymachines %mklibname nss_mymachines %{libnss_major}
+%define libnss_resolve %mklibname nss_resolve %{libnss_major}
+%define libnss_systemd %mklibname nss_systemd %{libnss_major}
%define udev_major 1
%define libudev %mklibname udev %{udev_major}
@@ -24,8 +31,8 @@
Summary: A System and Session Manager
Name: systemd
-Version: 234
-Release: 2
+Version: 236
+Release: 1
License: GPLv2+
Group: System/Configuration/Boot and Init
Url: http://www.freedesktop.org/wiki/Software/systemd
@@ -57,8 +64,6 @@ Source22: efi-omv.conf
Source23: systemd-udev-trigger-no-reload.conf
### OMV patches###
-# (tpg) add rpm macro to easy installation of user presets
-Patch0: systemd-230-add-userpreset-rpm-macro.patch
# Without this, build fails on aarch64
# (tpg) let's disable it for now
#Patch1: systemd-233-format-nonliteral-warnings.patch
@@ -73,11 +78,27 @@ Patch14: systemd-217-do-not-run-systemd-firstboot-in-containers.patch
Patch15: 1005-create-default-links-for-primary-cd_dvd-drive.patch
Patch17: 0515-Add-path-to-locale-search.patch
Patch18: 0516-udev-silence-version-print.patch
-
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: m4
-BuildRequires: libtool
+Patch20: systemd-236-fix-build-with-LLVM.patch
+
+# (tpg) ClearLinux patches
+Patch100: 0001-journal-raise-compression-threshold.patch
+Patch101: 0002-journal-clearout-drop-kmsg.patch
+Patch102: 0003-core-use-mmap-to-load-files.patch
+Patch103: 0005-journal-flush-var-kmsg-after-starting.patch
+Patch104: 0010-sd-event-return-malloc-memory-reserves-when-main-loo.patch
+Patch105: 0020-tmpfiles-Make-var-cache-ldconfig-world-readable.patch
+Patch106: 0024-more-udev-children-workers.patch
+Patch107: 0029-Enable-BBR-Bottleneck-Bandwidth-and-RTT.patch
+Patch108: 0030-network-online-complete-once-one-link-is-online-not-.patch
+Patch109: 0031-DHCP-retry-faster.patch
+Patch110: 0033-Remove-libm-memory-overhead.patch
+Patch111: 0035-skip-not-present-ACPI-devices.patch
+Patch112: 0038-Compile-udev-with-O3.patch
+Patch113: 0039-Don-t-wait-for-utmp-at-shutdown.patch
+Patch114: 0040-network-wait-online-don-t-pass-NULL-to-strv_find.patch
+
+BuildRequires: meson
+BuildRequires: quota
BuildRequires: acl-devel
BuildRequires: audit-devel
BuildRequires: docbook-style-xsl
@@ -90,12 +111,13 @@ BuildRequires: pam-devel
BuildRequires: perl(XML::Parser)
BuildRequires: tcp_wrappers-devel
BuildRequires: elfutils-devel
-BuildRequires: pkgconfig(dbus-1) >= 1.10.0
+BuildRequires: pkgconfig(dbus-1) >= 1.12.2
BuildRequires: pkgconfig(gee-0.8)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: gtk-doc
%if !%{with bootstrap}
BuildRequires: pkgconfig(libcryptsetup)
+BuildRequires: pkgconfig(python)
%endif
BuildRequires: pkgconfig(libkmod) >= 5
BuildRequires: pkgconfig(liblzma)
@@ -105,7 +127,7 @@ BuildRequires: pkgconfig(libmicrohttpd)
BuildRequires: pkgconfig(libqrencode)
BuildRequires: pkgconfig(libiptc)
BuildRequires: xsltproc
-BuildRequires: pkgconfig(blkid) >= 2.27
+BuildRequires: pkgconfig(blkid) >= 2.30
BuildRequires: usbutils >= 005-3
BuildRequires: pciutils-devel
BuildRequires: bzip2-devel
@@ -113,8 +135,10 @@ BuildRequires: pkgconfig(liblz4)
%ifnarch %armx
BuildRequires: valgrind-devel
BuildRequires: gnu-efi
+%if !%{with bootstrap}
BuildRequires: qemu
%endif
+%endif
BuildRequires: chkconfig
BuildRequires: pkgconfig(libseccomp)
BuildRequires: pkgconfig(libcurl)
@@ -131,17 +155,17 @@ BuildRequires: distro-release-common >= 2012.0-0.4
BuildRequires: pkgconfig(gobject-introspection-1.0)
%endif
Requires: acl
-Requires: dbus >= 1.10.0
-Requires(pre,post): coreutils >= 8.23
+Requires: dbus >= 1.12.2
+Requires(post): coreutils >= 8.28
Requires(post): gawk
Requires(post): awk
Requires(post): grep
Requires(post): awk
-Requires(pre): basesystem-minimal >= 1:3-0.1
-Requires(pre): util-linux >= 2.27
-Requires(pre): shadow >= 4.2.1-11
-Requires(pre,post,postun): setup >= 2.8.9
-Requires: kmod >= 20
+Requires: basesystem-minimal >= 1:3-1
+Requires: util-linux >= 2.27
+Requires: shadow >= 4.5.1
+Requires(post,postun): setup >= 2.8.9
+Requires: kmod >= 24
Conflicts: initscripts < 9.24
Conflicts: udev < 221-1
%if "%{distepoch}" >= "2013.0"
@@ -164,7 +188,15 @@ Provides: should-restart = system
# (tpg) just to be sure we install this libraries
Requires: %{libsystemd} = %{EVRD}
Requires: %{libnss_myhostname} = %{EVRD}
-
+Requires: %{libnss_resolve} = %{EVRD}
+Requires: %{libnss_systemd} = %{EVRD}
+Suggests: %{name}-boot
+Suggests: %{name}-console
+Suggests: %{name}-coredump
+Suggests: %{name}-doc
+Suggests: %{name}-hwdb
+Suggests: %{name}-locale
+Suggests: %{name}-polkit
Suggests: %{name}-bash-completion = %{EVRD}
Suggests: %{name}-zsh-completion = %{EVRD}
@@ -210,8 +242,100 @@ state, maintains mount and automount points and implements an
elaborate transactional dependency-based service control logic. It can
work as a drop-in replacement for sysvinit.
+%package boot
+Summary: EFI boot component for %{name}
+Group: System/Base
+Requires: %{name} = %{EVRD}
+Conflicts: %{name} < 235-9
+Suggests: %{name}-doc = %{EVRD}
+Suggests: %{name}-locale = %{EVRD}
+
+%description boot
+Systemd boot tools to manage EFI boot.
+
+%package console
+Summary: Console support for %{name}
+Group: System/Base
+Requires: %{name} = %{EVRD}
+Conflicts: %{name} < 235-9
+Suggests: %{name}-doc = %{EVRD}
+Suggests: %{name}-locale = %{EVRD}
+
+%description console
+Some systemd units and udev rules are useful only when
+you have an actual console, this subpackage contains
+these units.
+
+%package coredump
+Summary: Coredump component for %{name}
+Group: System/Base
+Requires: %{name} = %{EVRD}
+Conflicts: %{name} < 235-9
+Suggests: %{name}-doc = %{EVRD}
+Suggests: %{name}-locale = %{EVRD}
+Suggests: gdb
+
+%description coredump
+Systemd coredump tools to manage coredumps and backtraces.
+
+%package doc
+Summary: Man pages and documentation for %{name}
+Group: System/Base
+Requires: %{name} = %{EVRD}
+Conflicts: %{name} < 235-9
+Suggests: %{name}-locale = %{EVRD}
+
+%description doc
+Man pages and documentation for %{name}.
+
+%package hwdb
+Summary: hwdb component for %{name}
+Group: System/Base
+Requires: %{name} = %{EVRD}
+Conflicts: %{name} < 235-9
+Suggests: %{name}-polkit = %{EVRD}
+Suggests: %{name}-doc = %{EVRD}
+Suggests: %{name}-locale = %{EVRD}
+
+%description hwdb
+Hardware database management tool for %{name}.
+
+%package locale
+Summary: Translations component for %{name}
+Group: System/Base
+Requires: %{name} = %{EVRD}
+Conflicts: %{name} < 235-9
+
+%description locale
+Translations for %{name}.
+
+%package polkit
+Summary: PolKit component for %{name}
+Group: System/Base
+Requires: %{name} = %{EVRD}
+Conflicts: %{name} < 235-9
+
+%description polkit
+PolKit support for %{name}.
+
+%package container
+Summary: Tools for containers and VMs
+Group: System/Base
+Requires: %{name} = %{EVRD}
+Requires: %{libnss_mymachines} = %{EVRD}
+Conflicts: %{name} < 235-1
+Suggests: %{name}-polkit = %{EVRD}
+Suggests: %{name}-bash-completion = %{EVRD}
+Suggests: %{name}-zsh-completion = %{EVRD}
+
+%description container
+Systemd tools to spawn and manage containers and virtual machines.
+This package contains systemd-nspawn, machinectl, systemd-machined,
+and systemd-importd.
+
%package journal-gateway
Summary: Gateway for serving journal events over the network using HTTP
+Group: System/Configuration/Boot and Init
Requires: %{name} = %{EVRD}
Requires(pre): rpm-helper
Requires(post): rpm-helper
@@ -280,6 +404,59 @@ functionality of the GNU C Library (glibc) providing host name
resolution for the locally configured system hostname as returned by
gethostname(2).
+%package -n %{libnss_mymachines}
+Summary: Provide hostname resolution for local container instances
+Group: System/Libraries
+Provides: libnss_mymachines = %{EVRD}
+Provides: nss_mymachines = %{EVRD}
+Conflicts: %{libnss_myhostname} < 235
+Requires: systemd-container = %{EVRD}
+Requires(post,preun): /bin/sh
+Requires(post,preun): sed
+Requires(post,preun): glibc
+
+%description -n %{libnss_mymachines}
+nss-mymachines is a plug-in module for the GNU Name Service Switch (NSS)
+functionality of the GNU C Library (glibc), providing hostname resolution
+for the names of containers running locally that are registered with
+systemd-machined.service(8). The container names are resolved to the IP
+addresses of the specific container, ordered by their scope.
+This functionality only applies to containers using network namespacing.
+
+%package -n %{libnss_resolve}
+Summary: Provide hostname resolution via systemd-resolved.service
+Group: System/Libraries
+Provides: libnss_resolve = %{EVRD}
+Provides: nss_resolve= %{EVRD}
+Conflicts: %{libnss_myhostname} < 235
+Requires(post,preun): /bin/sh
+Requires(post,preun): sed
+Requires(post,preun): glibc
+
+%description -n %{libnss_resolve}
+nss-resolve is a plug-in module for the GNU Name Service Switch (NSS)
+functionality of the GNU C Library (glibc) enabling it to resolve host
+names via the systemd-resolved(8) local network name resolution service.
+It replaces the nss-dns plug-in module that traditionally resolves
+hostnames via DNS.
+
+%package -n %{libnss_systemd}
+Summary: Provide UNIX user and group name resolution for dynamic users and groups
+Group: System/Libraries
+Provides: libnss_systemd = %{EVRD}
+Provides: nss_systemd = %{EVRD}
+Conflicts: %{libnss_myhostname} < 235
+Requires(post,preun): /bin/sh
+Requires(post,preun): sed
+Requires(post,preun): glibc
+
+%description -n %{libnss_resolve}
+nss-systemd is a plug-in module for the GNU Name Service Switch (NSS)
+functionality of the GNU C Library (glibc), providing UNIX user and
+group name resolution for dynamic users and groups allocated through
+the DynamicUser= option in systemd unit files. See systemd.exec(5)
+for details on this option.
+
%package -n %{libudev}
Summary: Library for udev
Group: System/Libraries
@@ -309,31 +486,26 @@ This package contains documentation of udev.
%package zsh-completion
Summary: zsh completions
+Group: Shells
Requires: zsh
%description zsh-completion
-This package contains zsh completion
+This package contains zsh completion.
%package bash-completion
Summary: bash completions
+Group: Shells
Requires: bash
%description bash-completion
-This package contains bash completion
+This package contains bash completion.
%prep
%setup -q
%apply_patches
-%ifarch %{ix86}
-# (tpg) remove -flto as on i586 it hangs boot
-sed -i -e "s/-flto\]/-fno-lto\]/g" configure*
-%endif
-
-./autogen.sh
-
%build
-%ifarch %{ix86} x86_64
+%ifarch %{ix86}
# (tpg) since LLVM/clang-3.8.0 systemd hangs system on i586
# (bero) since 3.9.0, also hangs system on x86_64
export CC=gcc
@@ -341,45 +513,77 @@ export CXX=g++
%endif
%serverbuild_hardened
-%configure \
- --with-rootprefix="" \
- --with-rootlibdir=/%{_lib} \
- --libexecdir=%{_prefix}/lib \
- --enable-bzip2 \
- --enable-lz4 \
- --without-kill-user-processes \
- --disable-static \
- --with-sysvinit-path=%{_initrddir} \
- --with-sysvrcnd-path=%{_sysconfdir}/rc.d \
- --with-rc-local-script-path-start=/etc/rc.d/rc.local \
- --disable-selinux \
+%meson \
+ -Drootprefix="" \
+ -Drootlibdir=/%{_lib} \
+ -Dlibexecdir=%{_prefix}/lib \
+ -Dsysvinit-path=%{_initrddir} \
+ -Dsysvrcnd-path=%{_sysconfdir}/rc.d \
+ -Drc-local=/etc/rc.d/rc.local \
%ifnarch %armx
- --enable-gnuefi \
+ -Dgnu-efi=true \
%endif
%if %{with bootstrap}
- --disable-libcryptsetup \
- --without-python \
+ -Dlibcryptsetup=false \
%endif
- --enable-split-usr \
- --enable-xkbcommon \
- --enable-tpm \
- --with-kbd-loadkeys=/bin/loadkeys \
- --with-kbd-setfont=/bin/setfont \
- --with-certificate-root="%{_sysconfdir}/pki" \
- --with-fallback-hostname=openmandriva \
- --with-support-url="%{disturl}" \
+ -Dsplit-usr=true \
+ -Dxkbcommon=true \
+ -Dtpm=true \
+ -Ddev-kvm-mode=0666 \
+ -Dkmod=true \
+ -Dxkbcommon=true \
+ -Dblkid=true \
+ -Dseccomp=true \
+ -Dima=true \
+ -Dselinux=false \
+ -Dapparmor=false \
+ -Dpolkit=true \
+ -Dxz=true \
+ -Dzlib=true \
+ -Dbzip2=true \
+ -Dlz4=true \
+ -Dpam=true \
+ -Dacl=true \
+ -Dsmack=true \
+ -Dgcrypt=true \
+ -Daudit=true \
+ -Delfutils=true \
+ -Dqrencode=true \
+ -Dgnutls=true \
+ -Dmicrohttpd=true \
+ -Dlibidn=true \
+ -Dlibiptc=true \
+ -Dlibcurl=true \
+ -Dtpm=true \
+ -Dhwdb=true \
+ -Dsysusers=true \
+ -Ddefault-kill-user-processes=false \
+ -Dtests=unsafe \
+ -Dinstall-tests=false \
+%ifnarch %{ix86}
+ -Db_lto=true \
+%else
+ -Db_lto=false \
+%endif
+ -Dloadkeys-path=/bin/loadkeys \
+ -Dsetfont-path=/bin/setfont \
+ -Dcertificate-root="%{_sysconfdir}/pki" \
+ -Dfallback-hostname=openmandriva \
+ -Dsupport-url="%{disturl}" \
%if %mdvver <= 3000000
- --with-default-hierarchy=hybrid \
+ -Ddefault-hierarchy=hybrid \
%else
- --with-default-hierarchy=unified \
+ -Ddefault-hierarchy=unified \
%endif
- --with-ntp-servers="0.openmandriva.pool.ntp.org 1.openmandriva.pool.ntp.org 2.openmandriva.pool.ntp.org 3.openmandriva.pool.ntp.org" \
- --with-dns-servers="208.67.222.222 208.67.220.220"
+ -Dsystem-uid-max='999' \
+ -Dsystem-gid-max='999' \
+ -Dntp-servers='0.openmandriva.pool.ntp.org 1.openmandriva.pool.ntp.org 2.openmandriva.pool.ntp.org 3.openmandriva.pool.ntp.org' \
+ -Ddns-servers='208.67.222.222 208.67.220.220'
-%make
+%meson_build
%install
-%makeinstall_std
+%meson_install
mkdir -p %{buildroot}{/bin,%{_sbindir}}
@@ -573,6 +777,12 @@ rm -rf %{buildroot}%{_mandir}/man5/crypttab*
# https://bugzilla.redhat.com/show_bug.cgi?id=1378974
install -Dm0644 -t %{buildroot}%{systemd_libdir}/system/systemd-udev-trigger.service.d/ %{SOURCE23}
+# Pre-generate and pre-ship hwdb, to speed up first boot
+./build/systemd-hwdb --root %{buildroot} --usr update || ./build/udevadm hwdb --root %{buildroot} --update --usr
+
+# Compute catalog
+./build/journalctl --root %{buildroot} --update-catalog
+
%find_lang %{name}
%triggerin -- glibc
@@ -589,8 +799,8 @@ if [ $1 -ge 2 ]; then
fi
%post
-/bin/systemd-firstboot --setup-machine-id
-/bin/systemd-sysusers
+/bin/systemd-firstboot --setup-machine-id >/dev/null 2>&1 ||:
+/bin/systemd-sysusers >/dev/null 2>&1 ||:
/bin/systemd-machine-id-setup >/dev/null 2>&1 ||:
%{systemd_libdir}/systemd-random-seed save >/dev/null 2>&1 || :
/bin/systemctl daemon-reexec >/dev/null 2>&1 || :
@@ -598,97 +808,6 @@ fi
/bin/systemd-hwdb update >/dev/null 2>&1 || :
/bin/journalctl --update-catalog >/dev/null 2>&1 || :
-%if %mdvver < 201500
-if [ $1 -ge 2 ]; then
-#(tpg) BIG migration
-# Migrate /etc/sysconfig/clock
- if [ ! -L /etc/localtime -a -e /etc/sysconfig/clock ] ; then
- . /etc/sysconfig/clock 2>&1 || :
- if [ -n "$ZONE" -a -e "/usr/share/zoneinfo/$ZONE" ] ; then
- /usr/bin/ln -sf "../usr/share/zoneinfo/$ZONE" /etc/localtime >/dev/null 2>&1 || :
- fi
- fi
-
-# Migrate /etc/sysconfig/i18n
- if [ -e /etc/sysconfig/i18n -a ! -e /etc/locale.conf ]; then
- unset LANGUAGE
- unset LANG
- unset LC_CTYPE
- unset LC_NUMERIC
- unset LC_TIME
- unset LC_COLLATE
- unset LC_MONETARY
- unset LC_MESSAGES
- unset LC_PAPER
- unset LC_NAME
- unset LC_ADDRESS
- unset LC_TELEPHONE
- unset LC_MEASUREMENT
- unset LC_IDENTIFICATION
- . /etc/sysconfig/i18n >/dev/null 2>&1 || :
- [ -n "$LANGUAGE" ] && echo LANG=$LANGUAGE > /etc/locale.conf 2>&1 || :
- [ -n "$LANG" ] && echo LANG=$LANG >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_CTYPE" ] && echo LC_CTYPE=$LC_CTYPE >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_NUMERIC" ] && echo LC_NUMERIC=$LC_NUMERIC >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_TIME" ] && echo LC_TIME=$LC_TIME >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_COLLATE" ] && echo LC_COLLATE=$LC_COLLATE >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_MONETARY" ] && echo LC_MONETARY=$LC_MONETARY >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_MESSAGES" ] && echo LC_MESSAGES=$LC_MESSAGES >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_PAPER" ] && echo LC_PAPER=$LC_PAPER >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_NAME" ] && echo LC_NAME=$LC_NAME >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_ADDRESS" ] && echo LC_ADDRESS=$LC_ADDRESS >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_TELEPHONE" ] && echo LC_TELEPHONE=$LC_TELEPHONE >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_MEASUREMENT" ] && echo LC_MEASUREMENT=$LC_MEASUREMENT >> /etc/locale.conf 2>&1 || :
- [ -n "$LC_IDENTIFICATION" ] && echo LC_IDENTIFICATION=$LC_IDENTIFICATION >> /etc/locale.conf 2>&1 || :
- fi
-
-# Migrate /etc/sysconfig/keyboard to the vconsole configuration
- if [ -e /etc/sysconfig/keyboard -a ! -e /etc/vconsole.conf ]; then
- unset SYSFONT
- unset SYSFONTACM
- unset UNIMAP
- unset KEYMAP
- [ -e /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n >/dev/null 2>&1 || :
- . /etc/sysconfig/keyboard >/dev/null 2>&1 || :
- [ -n "$SYSFONT" ] && echo FONT=$SYSFONT > /etc/vconsole.conf 2>&1 || :
- [ -n "$SYSFONTACM" ] && echo FONT_MAP=$SYSFONTACM >> /etc/vconsole.conf 2>&1 || :
- [ -n "$UNIMAP" ] && echo FONT_UNIMAP=$UNIMAP >> /etc/vconsole.conf 2>&1 || :
- [ -n "$KEYTABLE" ] && echo KEYMAP=$KEYTABLE >> /etc/vconsole.conf 2>&1 || :
- fi
-
-# Migrate /etc/sysconfig/keyboard to the X11 keyboard configuration
- if [ -e /etc/sysconfig/keyboard -a ! -e %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf ]; then
- unset XkbLayout
- unset XkbModel
- unset XkbVariant
- unset XkbOptions
- . /etc/sysconfig/keyboard >/dev/null 2>&1 || :
-
- echo "Section \"InputClass\"" > %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf 2>/dev/null || :
- echo " Identifier \"system-keyboard\"" >> %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf 2>/dev/null || :
- echo " MatchIsKeyboard \"on\"" >> %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf 2>/dev/null || :
- [ -n "$XkbLayout" ] && echo " Option \"XkbLayout\" \"$XkbLayout\"" >> %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf 2>/dev/null || :
- [ -n "$XkbModel" ] && echo " Option \"XkbModel\" \"$XkbModel\"" >> %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf 2>/dev/null || :
- [ -n "$XkbVariant" ] && echo " Option \"XkbVariant\" \"$XkbVariant\"" >> %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf 2>/dev/null || :
- [ -n "$XkbOptions" ] && echo " Option \"XkbOptions\" \"$XkbOptions\"" >> %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf 2>/dev/null || :
- echo "EndSection" >> %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf 2>/dev/null || :
- fi
-
- rm -f /etc/sysconfig/i18n >/dev/null 2>&1 || :
- rm -f /etc/sysconfig/keyboard >/dev/null 2>&1 || :
-
-# Migrate HOSTNAME= from /etc/sysconfig/network
- if [ -e /etc/sysconfig/network -a ! -e /etc/hostname ]; then
- unset HOSTNAME
- . /etc/sysconfig/network >/dev/null 2>&1 || :
- [ -n "$HOSTNAME" ] && echo $HOSTNAME > /etc/hostname 2>&1 || :
- fi
-
- /usr/bin/sed -i '/^HOSTNAME=/d' /etc/sysconfig/network >/dev/null 2>&1 || :
-fi
-%endif
-# End BIG migration
-
# (tpg) move sysctl.conf to /etc/sysctl.d as since 207 /etc/sysctl.conf is skipped
if [ $1 -ge 2 ]; then
if [ -e %{_sysconfdir}/sysctl.conf ] && [ ! -L %{_sysconfdir}/sysctl.conf ]; then
@@ -706,11 +825,8 @@ if [ $1 -eq 2 ] ; then
else
target="/lib/systemd/system/runlevel$runlevel.target"
fi
-
# And symlink what we found to the new-style default.target
/bin/ln -sf "$target" %{_sysconfdir}/systemd/system/default.target 2>&1 || :
-# (tpg) need to restart it to catch new auth
- /bin/systemctl try-restart systemd-logind.service 2>&1 || :
fi
# Enable the services we install by default.
@@ -778,12 +894,9 @@ fi
%postun
if [ $1 -ge 1 ] ; then
- systemctl daemon-reload > /dev/null 2>&1 || :
+ /bin/systemctl daemon-reload > /dev/null 2>&1 || :
fi
-%triggerun -- %{name} < 196
-%{_bindir}/systemctl restart systemd-logind.service
-
%triggerun -- %{name} < 208-2
chgrp -R systemd-journal /var/log/journal || :
chmod 02755 /var/log/journal || :
@@ -862,8 +975,8 @@ shift
units=${*#%{_unitdir}/}
if [ $ARG1 -eq 1 -a $ARG2 -eq 1 ]; then
- /bin/systemctl preset ${units} >/dev/null 2>&1 || :
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+ /bin/systemctl preset ${units} >/dev/null 2>&1 || :
fi
%triggerun -- ^%{_unitdir}/.*\.(service|socket|path|timer)$
@@ -884,54 +997,88 @@ fi
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
%triggerposttransin -- %{_binfmtdir}/*.conf
-systemctl reload-or-try-restart systemd-binfmt
+/bin/systemctl reload-or-try-restart systemd-binfmt >/dev/null 2>&1 ||:
%triggerposttransun -- %{_binfmtdir}/*.conf
-systemctl reload-or-try-restart systemd-binfmt
+/bin/systemctl reload-or-try-restart systemd-binfmt >/dev/null 2>&1 ||:
%triggerposttransin -- /lib/udev/hwdb.d/*.hwdb
-/bin/systemd-hwdb update
+/bin/systemd-hwdb update >/dev/null 2>&1 ||:
%triggerposttransun -- /lib/udev/hwdb.d/*.hwdb
-/bin/systemd-hwdb update
+/bin/systemd-hwdb update >/dev/null 2>&1 ||:
+
+%triggerposttransin -- %{udev_rules_dir}/*.rules
+/sbin/udevadm control --reload >/dev/null 2>&1 ||:
+
+%triggerposttransun -- %{udev_rules_dir}/*.rules
+/sbin/udevadm control --reload >/dev/null 2>&1 ||:
+
+%triggerposttransin -- %{udev_user_rules_dir}/*.rules
+/sbin/udevadm control --reload >/dev/null 2>&1 ||:
+
+%triggerposttransun -- %{udev_user_rules_dir}/*.rules
+/sbin/udevadm control --reload >/dev/null 2>&1 ||:
%triggerposttransin -- %{_prefix}/lib/sysusers.d/*.conf
-/bin/systemd-sysusers
+/bin/systemd-sysusers >/dev/null 2>&1 ||:
%triggerposttransun -- %{_prefix}/lib/sysusers.d/*.conf
-/bin/systemd-sysusers
+/bin/systemd-sysusers >/dev/null 2>&1 ||:
%triggerposttransin -- %{_prefix}/lib/systemd/catalog/*.catalog
-/bin/journalctl --update-catalog
+/bin/journalctl --update-catalog >/dev/null 2>&1 ||:
%triggerposttransun -- %{_prefix}/lib/systemd/catalog/*.catalog
-/bin/journalctl --update-catalog
+/bin/journalctl --update-catalog >/dev/null 2>&1 ||:
%post -n %{libnss_myhostname}
+if [ -f /etc/nsswitch.conf ]; then
+# sed-fu to add myhostanme to hosts line
+ grep -v -E -q '^hosts:.* myhostname' /etc/nsswitch.conf &&
+ sed -i.bak -e '
+ /^hosts:/ !b
+ /\<myhostname\>/ b
+ s/[[:blank:]]*$/ myhostname/
+ ' /etc/nsswitch.conf &>/dev/null || :
+fi
+
+%post -n %{libnss_mymachines}
+if [ -f /etc/nsswitch.conf ]; then
+ grep -E -q '^(passwd|group):.* mymachines' /etc/nsswitch.conf ||
+ sed -i.bak -r -e '
+ s/^(passwd|group):(.*)/\1: \2 mymachines/
+ ' /etc/nsswitch.conf &>/dev/null || :
+fi
+
+%postun -n %{libnss_mymachines}
# sed-fu to remove mymachines from passwd and group lines of /etc/nsswitch.conf
# https://bugzilla.redhat.com/show_bug.cgi?id=1284325
# To avoid the removal, e.g. add a space at the end of the line.
-if [ -f /etc/nsswitch.conf ] ; then
- grep -E -q '^(passwd|group):.* mymachines$' /etc/nsswitch.conf &&
- sed -i.bak -r -e '
- s/^(passwd:.*) mymachines$/\1/;
- s/^(group:.*) mymachines$/\1/;
- ' /etc/nsswitch.conf >/dev/null 2>&1 || :
+if [ -f /etc/nsswitch.conf ]; then
+ grep -E -q '^(passwd|group):.* mymachines$' /etc/nsswitch.conf &&
+ sed -i.bak -r -e '
+ s/^(passwd:.*) mymachines$/\1/;
+ s/^(group:.*) mymachines$/\1/;
+ ' /etc/nsswitch.conf &>/dev/null || :
fi
-%preun -n %{libnss_myhostname}
-if [ -f /etc/nsswitch.conf ] ; then
- sed -i.bak -e '
- /^hosts:/ !b
- s/[[:blank:]]\+myhostname\>//
- ' /etc/nsswitch.conf >/dev/null 2>&1 || :
-
- sed -i.bak -e '
- /^hosts:/ !b
- s/[[:blank:]]\+mymachines\>//
- ' /etc/nsswitch.conf >/dev/null 2>&1 || :
+%post -n %{libnss_resolve}
+if [ -f /etc/nsswitch.conf ]; then
+ grep -E -q '^hosts:.*resolve[[:space:]]*($|[[:alpha:]])' /etc/nsswitch.conf &&
+ sed -i.bak -e '
+ /^hosts:/ { s/resolve/& [!UNAVAIL=return]/}
+ ' /etc/nsswitch.conf &>/dev/null || :
fi
+%post -n %{libnss_systemd}
+if [ -f /etc/nsswitch.conf ]; then
+ grep -E -q '^(passwd|group):.* systemd' /etc/nsswitch.conf ||
+ sed -i.bak -r -e '
+ s/^(passwd|group):(.*)/\1: \2 systemd/
+ ' /etc/nsswitch.conf &>/dev/null || :
+fi
+
%pre journal-gateway
%_pre_groupadd systemd-journal-gateway systemd-journal-gateway
%_pre_useradd systemd-journal-gateway %{_var}/log/journal /sbin/nologin
@@ -940,10 +1087,10 @@ fi
%_pre_groupadd systemd-journal-upload systemd-journal-upload
%_pre_useradd systemd-journal-upload %{_var}/log/journal/upload /sbin/nologin
-%files -f %{name}.lang
-%doc %{_docdir}/%{name}
+%files
%dir /lib/firmware
%dir /lib/firmware/updates
+%dir /lib/modprobe.d
%dir %{_datadir}/factory
%dir %{_datadir}/factory/etc
%dir %{_datadir}/factory/etc/pam.d
@@ -952,11 +1099,6 @@ fi
%dir %{_prefix}/lib/modules-load.d
%dir %{_prefix}/lib/sysctl.d
%dir %{_prefix}/lib/%{name}
-%ifnarch %armx
-%dir %{_prefix}/lib/%{name}/boot
-%dir %{_prefix}/lib/%{name}/boot/efi
-%dir %{_datadir}/%{name}/bootctl
-%endif
%dir %{_prefix}/lib/%{name}/catalog
%dir %{_prefix}/lib/%{name}/system-generators
%dir %{_prefix}/lib/%{name}/user
@@ -990,7 +1132,6 @@ fi
%dir %{systemd_libdir}/system/systemd-udev-trigger.service.d
%dir %{systemd_libdir}/system/basic.target.wants
%dir %{systemd_libdir}/system/bluetooth.target.wants
-%dir %{systemd_libdir}/system/busnames.target.wants
%dir %{systemd_libdir}/system/dbus.target.wants
%dir %{systemd_libdir}/system/default.target.wants
%dir %{systemd_libdir}/system/graphical.target.wants
@@ -1011,16 +1152,33 @@ fi
%dir %{udev_libdir}
%dir %{udev_libdir}/hwdb.d
%dir %{udev_rules_dir}
-%exclude %{_mandir}/man8/libnss_myhostname.so.2.8.*
-%exclude %{_mandir}/man8/libnss_mymachines.so.2.8.*
-%exclude %{_mandir}/man8/nss-myhostname.8.*
-%exclude %{_mandir}/man8/nss-mymachines.8.*
-%exclude %{_mandir}/man8/%{name}-journal-gatewayd.8.*
-%exclude %{_mandir}/man8/%{name}-journal-gatewayd.service.8.*
-%exclude %{_mandir}/man8/%{name}-journal-gatewayd.socket.8.*
-%exclude %{_mandir}/man8/%{name}-journal-remote.8.*
-%exclude %{_mandir}/man8/%{name}-journal-upload.8.*
-%exclude %{_prefix}/lib/tmpfiles.d/%{name}-remote.conf
+%dir %{_localstatedir}/lib/systemd
+%dir %{_localstatedir}/lib/systemd/catalog
+### container excludes
+%exclude %{systemd_libdir}/system/dbus-org.freedesktop.import1.service
+%exclude %{systemd_libdir}/system/dbus-org.freedesktop.machine1.service
+%exclude %{systemd_libdir}/system/machine.slice
+%exclude %{systemd_libdir}/system/machines.target
+%exclude %{systemd_libdir}/system/machines.target.wants/var-lib-machines.mount
+%exclude %{systemd_libdir}/system/remote-fs.target.wants/var-lib-machines.mount
+%exclude %{systemd_libdir}/system/systemd-importd.service
+%exclude %{systemd_libdir}/system/systemd-machined.service
+%exclude %{systemd_libdir}/system/systemd-nspawn@.service
+%exclude %{systemd_libdir}/system/var-lib-machines.mount
+%exclude %{systemd_libdir}/systemd-import
+%exclude %{systemd_libdir}/systemd-importd
+%exclude %{systemd_libdir}/systemd-machined
+%exclude %{systemd_libdir}/systemd-pull
+%exclude %{systemd_libdir}/import-pubring.gpg
+%exclude %{systemd_libdir}/systemd-import
+%exclude %{systemd_libdir}/systemd-importd
+%exclude %{systemd_libdir}/systemd-machined
+%exclude %{systemd_libdir}/systemd-pull
+%exclude %{systemd_libdir}/import-pubring.gpg
+%exclude /bin/machinectl
+%exclude %{_bindir}/systemd-nspawn
+%exclude %{_prefix}/lib/tmpfiles.d/systemd-nspawn.conf
+### gateway excludes
%exclude %{systemd_libdir}/system/%{name}-journal-gatewayd.service
%exclude %{systemd_libdir}/system/%{name}-journal-gatewayd.socket
%exclude %{systemd_libdir}/system/%{name}-journal-remote.service
@@ -1032,7 +1190,34 @@ fi
%exclude %config(noreplace) %{_prefix}/lib/sysusers.d/%{name}-remote.conf
%exclude %config(noreplace) %{_sysconfdir}/%{name}/journal-remote.conf
%exclude %config(noreplace) %{_sysconfdir}/%{name}/journal-upload.conf
-%ghost %{_sysconfdir}/udev/hwdb.bin
+### console excludes
+%exclude %{systemd_libdir}/systemd-vconsole-setup
+%exclude %{systemd_libdir}/system/serial-getty@.service
+%exclude %{udev_rules_dir}/90-vconsole.rules
+%exclude %{udev_rules_dir}/70-mouse.rules
+%exclude %{udev_rules_dir}/60-drm.rules
+%exclude %{udev_rules_dir}/60-persistent-input.rules
+%exclude %{udev_rules_dir}/70-touchpad.rules
+%exclude %{udev_rules_dir}/60-evdev.rules
+%exclude %{udev_rules_dir}/60-input-id.rules
+### coredump excludes
+%exclude %config(noreplace) %{_sysconfdir}/%{name}/coredump.conf
+%exclude %{_prefix}/lib/sysctl.d/50-coredump.conf
+%exclude %{systemd_libdir}/systemd-coredump
+%exclude %{systemd_libdir}/system/systemd-coredump.socket
+%exclude %{systemd_libdir}/system/systemd-coredump@.service
+%exclude %{systemd_libdir}/system/sockets.target.wants/systemd-coredump.socket
+### hwdb excludes
+%exclude %{systemd_libdir}/system/sysinit.target.wants/systemd-hwdb-update.service
+%exclude %{systemd_libdir}/system/systemd-hwdb-update.service
+%exclude %{udev_rules_dir}/60-cdrom_id.rules
+%exclude %{udev_rules_dir}/60-persistent-alsa.rules
+%exclude %{udev_rules_dir}/60-persistent-storage-tape.rules
+%exclude %{udev_rules_dir}/60-persistent-v4l.rules
+%exclude %{udev_rules_dir}/70-joystick.rules
+%exclude %{udev_rules_dir}/75-probe_mtd.rules
+%exclude %{udev_rules_dir}/78-sound-card.rules
+###
%ghost %config(noreplace,missingok) %attr(0644,root,root) %{_sysconfdir}/scsi_id.config
%ghost %config(noreplace) %{_sysconfdir}/hostname
%ghost %config(noreplace) %{_sysconfdir}/locale.conf
@@ -1041,12 +1226,17 @@ fi
%ghost %config(noreplace) %{_sysconfdir}/timezone
%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf
%ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf
-%config(noreplace) %{_datadir}/dbus-1/system.d/*.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.hostname1.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.locale1.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.login1.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.network1.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.resolve1.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.systemd1.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf
/%{_lib}/security/pam_systemd.so
/bin/halt
/bin/journalctl
/bin/loginctl
-/bin/machinectl
/bin/networkctl
/bin/poweroff
/bin/reboot
@@ -1055,7 +1245,6 @@ fi
/bin/%{name}-ask-password
/bin/%{name}-escape
/bin/%{name}-firstboot
-/bin/%{name}-hwdb
/bin/%{name}-inhibit
/bin/%{name}-machine-id-setup
/bin/%{name}-notify
@@ -1067,42 +1256,37 @@ fi
/sbin/runlevel
/sbin/shutdown
/sbin/telinit
-%{_bindir}/bootctl
%{_bindir}/busctl
-%{_bindir}/coredumpctl
%{_bindir}/hostnamectl
%{_bindir}/kernel-install
%{_bindir}/localectl
%{_bindir}/systemctl
%{_bindir}/%{name}-*
%{_bindir}/timedatectl
-%{_sysconfdir}/systemd/system/dbus-org.freedesktop.*.service
-%{_datadir}/dbus-1/*services/*.service
+%{_sysconfdir}/systemd/system/dbus-org.freedesktop.network1.service
+%{_sysconfdir}/systemd/system/dbus-org.freedesktop.resolve1.service
+%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
%{_datadir}/factory/etc/nsswitch.conf
%{_datadir}/factory/etc/pam.d/other
%{_datadir}/factory/etc/pam.d/system-auth
-%{_datadir}/polkit-1/actions/*.policy
-%{_datadir}/polkit-1/rules.d/systemd-networkd.rules
%{_datadir}/%{name}/kbd-model-map
%{_datadir}/%{name}/language-fallback-map
%{_initrddir}/README
%{_logdir}/README
-%{_mandir}/man1/*.*
-%{_mandir}/man3/*.*
-%{_mandir}/man5/*.*
-%{_mandir}/man7/*.*
-%{_mandir}/man8/*.*
+/lib/modprobe.d/systemd.conf
%{_prefix}/lib/kernel/install.d/*.install
-%ifnarch %armx
-%{_prefix}/lib/%{name}/boot/efi/*.efi
-%{_prefix}/lib/%{name}/boot/efi/*.stub
-%{_datadir}/%{name}/bootctl/*.conf
-%endif
-%config(noreplace) %{_prefix}/lib/environment.d/99-environment.conf
-%{_prefix}/lib/%{name}/catalog/*.catalog
+%{_prefix}/lib/environment.d/99-environment.conf
%{_prefix}/lib/%{name}/user-preset/*.preset
%{_prefix}/lib/%{name}/user/*.service
%{_prefix}/lib/%{name}/user/*.target
+%{_prefix}/lib/%{name}/user/*.timer
%{_prefix}/lib/systemd/user-environment-generators/*
%{_prefix}/lib/tmpfiles.d/*.conf
%{_sysconfdir}/profile.d/40systemd.sh
@@ -1111,7 +1295,6 @@ fi
%{_sysconfdir}/xdg/%{name}
%{systemd_libdir}/resolv.conf
%{systemd_libdir}/*-generators/*
-%{systemd_libdir}/import-pubring.gpg
%{systemd_libdir}/network/80-container-host0.network
%{systemd_libdir}/network/80-container-ve.network
%{systemd_libdir}/network/80-container-vz.network
@@ -1120,7 +1303,6 @@ fi
%{systemd_libdir}/network/99-default.link
%{systemd_libdir}/system-preset/*.preset
%{systemd_libdir}/system/*.automount
-%{systemd_libdir}/system/*.busname
%{systemd_libdir}/system/*.mount
%{systemd_libdir}/system/*.path
%{systemd_libdir}/system/*.service
@@ -1129,7 +1311,6 @@ fi
%{systemd_libdir}/system/*.target
%{systemd_libdir}/system/*.timer
%{systemd_libdir}/system/systemd-udev-trigger.service.d/*.conf
-%{systemd_libdir}/system/busnames.target.wants/*.busname
%{systemd_libdir}/system/graphical.target.wants/*.service
%{systemd_libdir}/system/local-fs.target.wants/*.mount
%{systemd_libdir}/system/local-fs.target.wants/*.service
@@ -1141,16 +1322,17 @@ fi
%{systemd_libdir}/system/sysinit.target.wants/*.*mount
%{systemd_libdir}/system/sysinit.target.wants/*.path
%{systemd_libdir}/system/sysinit.target.wants/*.service
+%if !%{with bootstrap}
%{systemd_libdir}/system/sysinit.target.wants/*.target
+%endif
%{systemd_libdir}/system/timers.target.wants/*.timer
%{systemd_libdir}/system/machines.target.wants/*.mount
%{systemd_libdir}/system/remote-fs.target.wants/*.mount
%{systemd_libdir}/systemd*
# (tpg) internal library - only systemd uses it
%{systemd_libdir}/libsystemd-shared-%{version}.so
-%{systemd_libdir}/libsystemd-shared.so
#
-%{udev_libdir}/hwdb.d/*.hwdb
+%{udev_libdir}/*.bin
%{udev_rules_dir}/*.rules
%attr(02755,root,systemd-journal) %dir %{_logdir}/journal
%attr(0755,root,root) /sbin/udevadm
@@ -1158,14 +1340,10 @@ fi
%attr(0755,root,root) %{_bindir}/udevadm
%attr(0755,root,root) %{_sbindir}/udevadm
%attr(0755,root,root) %{udev_libdir}/ata_id
-%attr(0755,root,root) %{udev_libdir}/cdrom_id
-%attr(0755,root,root) %{udev_libdir}/collect
-%attr(0755,root,root) %{udev_libdir}/mtd_probe
%attr(0755,root,root) %{udev_libdir}/net_action
%attr(0755,root,root) %{udev_libdir}/net_create_ifcfg
%attr(0755,root,root) %{udev_libdir}/scsi_id
%attr(0755,root,root) %{udev_libdir}/udevd
-%attr(0755,root,root) %{udev_libdir}/v4l_id
%config(noreplace) %{_prefix}/lib/sysctl.d/*.conf
%config(noreplace) %{_prefix}/lib/sysusers.d/*.conf
%config(noreplace) %{_sysconfdir}/pam.d/%{name}-user
@@ -1174,6 +1352,7 @@ fi
%config(noreplace) %{_sysconfdir}/sysconfig/udev_net
%config(noreplace) %{_sysconfdir}/%{name}/*.conf
%config(noreplace) %{_sysconfdir}/udev/*.conf
+%{_localstatedir}/lib/systemd/catalog/database
%files journal-gateway
%config(noreplace) %{_sysconfdir}/%{name}/journal-remote.conf
@@ -1188,23 +1367,45 @@ fi
%{systemd_libdir}/system/%{name}-journal-remote.service
%{systemd_libdir}/system/%{name}-journal-remote.socket
%{systemd_libdir}/system/%{name}-journal-upload.service
-%{_prefix}/lib/tmpfiles.d/%{name}-remote.conf
-%{_mandir}/man8/%{name}-journal-gatewayd.8.*
-%{_mandir}/man8/%{name}-journal-upload.8.*
-%{_mandir}/man8/%{name}-journal-remote.8.*
-%{_mandir}/man8/%{name}-journal-gatewayd.service.8.*
-%{_mandir}/man8/%{name}-journal-gatewayd.socket.8.*
%{_datadir}/%{name}/gatewayd/browse.html
+%files container
+%{systemd_libdir}/system/dbus-org.freedesktop.import1.service
+%{systemd_libdir}/system/dbus-org.freedesktop.machine1.service
+%{systemd_libdir}/system/machine.slice
+%{systemd_libdir}/system/machines.target
+%{systemd_libdir}/system/machines.target.wants/var-lib-machines.mount
+%{systemd_libdir}/system/remote-fs.target.wants/var-lib-machines.mount
+%{systemd_libdir}/system/systemd-importd.service
+%{systemd_libdir}/system/systemd-machined.service
+%{systemd_libdir}/system/systemd-nspawn@.service
+%{systemd_libdir}/system/var-lib-machines.mount
+%{systemd_libdir}/systemd-import
+%{systemd_libdir}/systemd-importd
+%{systemd_libdir}/systemd-machined
+%{systemd_libdir}/systemd-pull
+%{systemd_libdir}/import-pubring.gpg
+/bin/machinectl
+%{_bindir}/systemd-nspawn
+%{_prefix}/lib/tmpfiles.d/systemd-nspawn.conf
+%{_datadir}/dbus-1/system-services/org.freedesktop.import1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service
+%{_datadir}/dbus-1/system.d/org.freedesktop.import1.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.machine1.conf
+%{_datadir}/polkit-1/actions/org.freedesktop.import1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy
+
+%files -n %{libnss_mymachines}
+/%{_lib}/libnss_mymachines.so.%{libnss_major}
+
%files -n %{libnss_myhostname}
/%{_lib}/libnss_myhostname.so.%{libnss_major}*
-/%{_lib}/libnss_mymachines.so.%{libnss_major}
+
+%files -n %{libnss_resolve}
/%{_lib}/libnss_resolve.so.%{libnss_major}
+
+%files -n %{libnss_systemd}
/%{_lib}/libnss_systemd.so.%{libnss_major}
-%{_mandir}/man8/libnss_myhostname.so*.8*
-%{_mandir}/man8/libnss_mymachines.so*.8*
-%{_mandir}/man8/nss-myhostname.8*
-%{_mandir}/man8/nss-mymachines.8*
%files -n %{libsystemd}
/%{_lib}/libsystemd.so.%{libsystemd_major}*
@@ -1234,6 +1435,75 @@ fi
%{_datadir}/pkgconfig/udev.pc
%{_includedir}/libudev.h
+%files boot
+%{_bindir}/bootctl
+%ifnarch %armx
+%dir %{_prefix}/lib/%{name}/boot
+%dir %{_prefix}/lib/%{name}/boot/efi
+%dir %{_datadir}/%{name}/bootctl
+%{_prefix}/lib/%{name}/boot/efi/*.efi
+%{_prefix}/lib/%{name}/boot/efi/*.stub
+%{_datadir}/%{name}/bootctl/*.conf
+%endif
+
+%files console
+%{systemd_libdir}/systemd-vconsole-setup
+%{systemd_libdir}/system/serial-getty@.service
+%{udev_rules_dir}/90-vconsole.rules
+%{udev_rules_dir}/70-mouse.rules
+%{udev_rules_dir}/60-drm.rules
+%{udev_rules_dir}/60-persistent-input.rules
+%{udev_rules_dir}/70-touchpad.rules
+%{udev_rules_dir}/60-evdev.rules
+%{udev_rules_dir}/60-input-id.rules
+
+%files coredump
+%config(noreplace) %{_sysconfdir}/%{name}/coredump.conf
+%{_bindir}/coredumpctl
+%{_prefix}/lib/sysctl.d/50-coredump.conf
+%{systemd_libdir}/systemd-coredump
+%{systemd_libdir}/system/systemd-coredump.socket
+%{systemd_libdir}/system/systemd-coredump@.service
+%{systemd_libdir}/system/sockets.target.wants/systemd-coredump.socket
+
+%files doc
+%doc %{_docdir}/%{name}
+%{_mandir}/man1/*.1*
+%{_mandir}/man3/*.3*
+%{_mandir}/man5/*.5*
+%{_mandir}/man7/*.7*
+%{_mandir}/man8/*.8.*
+
+%files hwdb
+%ghost %{_sysconfdir}/udev/hwdb.bin
+%{systemd_libdir}/system/sysinit.target.wants/systemd-hwdb-update.service
+%{systemd_libdir}/system/systemd-hwdb-update.service
+/bin/systemd-hwdb
+%{udev_libdir}/hwdb.d/*.hwdb
+%{udev_rules_dir}/60-cdrom_id.rules
+%{udev_rules_dir}/60-persistent-alsa.rules
+%{udev_rules_dir}/60-persistent-storage-tape.rules
+%{udev_rules_dir}/60-persistent-v4l.rules
+%{udev_rules_dir}/70-joystick.rules
+%{udev_rules_dir}/75-probe_mtd.rules
+%{udev_rules_dir}/78-sound-card.rules
+%{udev_libdir}/cdrom_id
+%{udev_libdir}/collect
+%{udev_libdir}/mtd_probe
+%{udev_libdir}/v4l_id
+
+%files locale -f %{name}.lang
+%{_prefix}/lib/%{name}/catalog/*.catalog
+
+%files polkit
+%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.resolve1.policy
+%{_datadir}/polkit-1/rules.d/systemd-networkd.rules
+
%files zsh-completion
%{_datadir}/zsh/site-functions/*