Accepting request 794369 from Base:System

OBS-URL: https://build.opensuse.org/request/show/794369
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=306
This commit is contained in:
Dominique Leuenberger 2020-04-17 22:29:56 +00:00 committed by Git OBS Bridge
commit db5ab5bbd4
8 changed files with 337 additions and 7 deletions

View File

@ -0,0 +1,155 @@
From a9906d1f4aeeaa39a2d57563d23cb7cdd9283bf8 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Wed, 18 Mar 2020 16:18:46 +0100
Subject: [PATCH 1/1] Revert "job: Don't mark as redundant if deps are
relevant"
This reverts commit 097537f07a2fab3cb73aef7bc59f2a66aa93f533, which involves a
significant behavior change which at least impacts plymouth [1] and some of the
services shipped by systemd (systemd-vconsole-setup.service).
Of course some other units shipped by other packages might rely on the old
behavior [2], which makes me wonder why this patch wasn't simply reverted until
the situation gets clarified, at least that what the author of the change
thinks too [3].
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1807771
[2] https://github.com/systemd/systemd/issues/15091#issuecomment-598238061
[3] https://github.com/systemd/systemd/pull/14086#issuecomment-598600479
---
src/core/job.c | 51 +++++++-------------------------------------------
src/core/job.h | 3 +--
src/core/transaction.c | 8 ++++----
3 files changed, 12 insertions(+), 50 deletions(-)
diff --git a/src/core/job.c b/src/core/job.c
index 9fe30359df..8610496109 100644
--- a/src/core/job.c
+++ b/src/core/job.c
@@ -383,62 +383,25 @@ JobType job_type_lookup_merge(JobType a, JobType b) {
return job_merging_table[(a - 1) * a / 2 + b];
}
-bool job_later_link_matters(Job *j, JobType type, unsigned generation) {
- JobDependency *l;
-
- assert(j);
-
- j->generation = generation;
-
- LIST_FOREACH(subject, l, j->subject_list) {
- UnitActiveState state = _UNIT_ACTIVE_STATE_INVALID;
-
- /* Have we seen this before? */
- if (l->object->generation == generation)
- continue;
-
- state = unit_active_state(l->object->unit);
- switch (type) {
-
- case JOB_START:
- return IN_SET(state, UNIT_INACTIVE, UNIT_FAILED) ||
- job_later_link_matters(l->object, type, generation);
-
- case JOB_STOP:
- return IN_SET(state, UNIT_ACTIVE, UNIT_RELOADING) ||
- job_later_link_matters(l->object, type, generation);
-
- default:
- assert_not_reached("Invalid job type");
- }
- }
-
- return false;
-}
-
-bool job_is_redundant(Job *j, unsigned generation) {
-
- assert(j);
-
- UnitActiveState state = unit_active_state(j->unit);
- switch (j->type) {
+bool job_type_is_redundant(JobType a, UnitActiveState b) {
+ switch (a) {
case JOB_START:
- return IN_SET(state, UNIT_ACTIVE, UNIT_RELOADING) && !job_later_link_matters(j, JOB_START, generation);
+ return IN_SET(b, UNIT_ACTIVE, UNIT_RELOADING);
case JOB_STOP:
- return IN_SET(state, UNIT_INACTIVE, UNIT_FAILED) && !job_later_link_matters(j, JOB_STOP, generation);
+ return IN_SET(b, UNIT_INACTIVE, UNIT_FAILED);
case JOB_VERIFY_ACTIVE:
- return IN_SET(state, UNIT_ACTIVE, UNIT_RELOADING);
+ return IN_SET(b, UNIT_ACTIVE, UNIT_RELOADING);
case JOB_RELOAD:
return
- state == UNIT_RELOADING;
+ b == UNIT_RELOADING;
case JOB_RESTART:
return
- state == UNIT_ACTIVATING;
+ b == UNIT_ACTIVATING;
case JOB_NOP:
return true;
diff --git a/src/core/job.h b/src/core/job.h
index 02b057ee06..03ad640618 100644
--- a/src/core/job.h
+++ b/src/core/job.h
@@ -196,8 +196,7 @@ _pure_ static inline bool job_type_is_superset(JobType a, JobType b) {
return a == job_type_lookup_merge(a, b);
}
-bool job_later_link_matters(Job *j, JobType type, unsigned generation);
-bool job_is_redundant(Job *j, unsigned generation);
+bool job_type_is_redundant(JobType a, UnitActiveState b) _pure_;
/* Collapses a state-dependent job type into a simpler type by observing
* the state of the unit which it is going to be applied to. */
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 49f43e0327..6dc4e95beb 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -279,7 +279,7 @@ static int transaction_merge_jobs(Transaction *tr, sd_bus_error *e) {
return 0;
}
-static void transaction_drop_redundant(Transaction *tr, unsigned generation) {
+static void transaction_drop_redundant(Transaction *tr) {
bool again;
/* Goes through the transaction and removes all jobs of the units whose jobs are all noops. If not
@@ -299,7 +299,7 @@ static void transaction_drop_redundant(Transaction *tr, unsigned generation) {
LIST_FOREACH(transaction, k, j)
if (tr->anchor_job == k ||
- !job_is_redundant(k, generation) ||
+ !job_type_is_redundant(k->type, unit_active_state(k->unit)) ||
(k->unit->job && job_type_is_conflicting(k->type, k->unit->job->type))) {
keep = true;
break;
@@ -732,7 +732,7 @@ int transaction_activate(
transaction_minimize_impact(tr);
/* Third step: Drop redundant jobs */
- transaction_drop_redundant(tr, generation++);
+ transaction_drop_redundant(tr);
for (;;) {
/* Fourth step: Let's remove unneeded jobs that might
@@ -774,7 +774,7 @@ int transaction_activate(
}
/* Eights step: Drop redundant jobs again, if the merging now allows us to drop more. */
- transaction_drop_redundant(tr, generation++);
+ transaction_drop_redundant(tr);
/* Ninth step: check whether we can actually apply this */
r = transaction_is_destructive(tr, mode, e);
--
2.16.4

View File

@ -0,0 +1,27 @@
From 525cbb666e260770ad191d06dac0ab79e341bbe2 Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Mon, 6 Apr 2020 11:50:29 +0200
Subject: [PATCH 1/1] meson: fix build of udev 'path_id_compat' builtin with
meson 0.54
Since meson 0.54, branch compats/udev-compat-symlinks needs this fix but it
should be applied while merging compats/udev-compat-symlinks branch.
---
src/udev/compat/meson.build | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/udev/compat/meson.build b/src/udev/compat/meson.build
index 3d683c7ce9..18df75222d 100644
--- a/src/udev/compat/meson.build
+++ b/src/udev/compat/meson.build
@@ -4,7 +4,6 @@ foreach prog : ['path_id_compat.c']
prog,
include_directories : includes,
c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
- link_with : [libudev_internal],
link_with : [libudev_static],
install_rpath : udev_rpath,
install : true,
--
2.16.4

View File

@ -1,3 +1,67 @@
-------------------------------------------------------------------
Wed Apr 15 19:06:27 UTC 2020 - Franck Bui <fbui@suse.com>
- Switch back to the hybrid hierarchy
Unfortunately Kubernetes and runc are not yet ready for
cgroupsv2. Let's reconsider the unified hierarchy in a couple of
months.
-------------------------------------------------------------------
Mon Apr 6 12:42:01 UTC 2020 - Franck Bui <fbui@suse.com>
- Import commit c5aa158173ced05201182d1cc18632a25cf43b94 (merge v245.4)
-------------------------------------------------------------------
Mon Apr 6 10:02:33 UTC 2020 - Franck Bui <fbui@suse.com>
- Add 0001-meson-fix-build-of-udev-path_id_compat-builtin-with-.patch
-------------------------------------------------------------------
Thu Mar 19 09:32:41 UTC 2020 - Franck Bui <fbui@suse.com>
- Import commit 31f82b39c811b4f731c80c2c2e7c56a0ca924a5b (merge v245.2)
d1d3f2aa15 docs: Add syntax for templated units to systemd.preset man page
3c69813c69 man: add a tiny bit of markup
bf595e788c home: fix segfault when parsing arguments in PAM module
e110f4dacb test: wait a bit after starting the test service
e8df08cfdb fix journalctl regression (#15099)
eb3a38cc23 NEWS: add late note about job trimming issue
405f0fcfdd systemctl: hide the 'glyph' column when --no-legend is requested
1c7de81f89 format-table: allow hiding a specific column
b7f2308bda core: transition to FINAL_SIGTERM state after ExecStopPost=
2867dfbf70 journalctl: show duplicate entries if they are from the same file (#14898)
[...]
-------------------------------------------------------------------
Wed Mar 18 14:09:57 UTC 2020 - Franck Bui <fbui@suse.com>
- Upgrade to v245 (commit 74e2e834b4282c9bbdc12014f6ccf8d86e542b8d)
See https://github.com/openSUSE/systemd/blob/SUSE/v245/NEWS for
details.
The new tools provided by systemd repart, userdb, homed, fdisk,
pwquality, p11kit feature have been disabled for now as they require
reviews first.
Default to the "unified" cgroup hierarchy. Indeed most prominent
users of cgroup (such as libvirt, kubic) should be ready for such
change. It's still possible to switch back to the old "hybrid"
hierarchy by passing "systemd.unified_cgroup_hierarchy=0" option to
the kernel command line though.
Added 0001-Revert-job-Don-t-mark-as-redundant-if-deps-are-relev.patch:
upstream commit 097537f07a2fab3cb73aef7bc59f2a66aa93f533 has been
reverted for now on as it introduced a behavior change which has
impacted plymouth at least.
-------------------------------------------------------------------
Fri Mar 13 13:15:10 UTC 2020 - Elisei Roca <eroca@suse.com>
- add systemd-network-generator.service file together with systemd-network-generator binary
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Feb 19 17:24:35 UTC 2020 - Ludwig Nussel <lnussel@suse.de> Wed Feb 19 17:24:35 UTC 2020 - Ludwig Nussel <lnussel@suse.de>

View File

@ -26,7 +26,7 @@
##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### ##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! #####
%define mini -mini %define mini -mini
%define min_kernel_version 4.5 %define min_kernel_version 4.5
%define suse_version +suse.138.gf8adabc2b1 %define suse_version +suse.83.gc5aa158173
%bcond_with gnuefi %bcond_with gnuefi
%if 0%{?bootstrap} %if 0%{?bootstrap}
@ -55,7 +55,7 @@
Name: systemd-mini Name: systemd-mini
URL: http://www.freedesktop.org/wiki/Software/systemd URL: http://www.freedesktop.org/wiki/Software/systemd
Version: 244 Version: 245
Release: 0 Release: 0
Summary: A System and Session Manager Summary: A System and Session Manager
License: LGPL-2.1-or-later License: LGPL-2.1-or-later
@ -167,6 +167,8 @@ Source102: scripts-systemd-migrate-sysconfig-i18n.sh
# merged by upstream. # merged by upstream.
Patch1: 0001-SUSE-policy-do-not-clean-tmp-by-default.patch Patch1: 0001-SUSE-policy-do-not-clean-tmp-by-default.patch
Patch2: 0001-Fix-run-lock-group-to-follow-openSUSE-policy.patch Patch2: 0001-Fix-run-lock-group-to-follow-openSUSE-policy.patch
Patch3: 0001-Revert-job-Don-t-mark-as-redundant-if-deps-are-relev.patch
Patch4: 0001-meson-fix-build-of-udev-path_id_compat-builtin-with-.patch
%description %description
Systemd is a system and service manager, compatible with SysV and LSB Systemd is a system and service manager, compatible with SysV and LSB
@ -514,6 +516,12 @@ ntp_servers=({0..3}.suse.pool.ntp.org)
-Dima=false \ -Dima=false \
-Delfutils=auto \ -Delfutils=auto \
-Dpstore=false \ -Dpstore=false \
-Drepart=false \
-Duserdb=false \
-Dhomed=false \
-Dfdisk=false \
-Dpwquality=false \
-Dp11kit=false \
%if ! 0%{?bootstrap} %if ! 0%{?bootstrap}
-Dman=true \ -Dman=true \
-Dhtml=true \ -Dhtml=true \
@ -1093,6 +1101,7 @@ fi
%exclude %{_prefix}/lib/systemd/systemd-network-generator %exclude %{_prefix}/lib/systemd/systemd-network-generator
%exclude %{_prefix}/lib/systemd/systemd-networkd %exclude %{_prefix}/lib/systemd/systemd-networkd
%exclude %{_prefix}/lib/systemd/systemd-networkd-wait-online %exclude %{_prefix}/lib/systemd/systemd-networkd-wait-online
%exclude %{_unitdir}/systemd-network-generator.service
%exclude %{_unitdir}/systemd-networkd.service %exclude %{_unitdir}/systemd-networkd.service
%exclude %{_unitdir}/systemd-networkd.socket %exclude %{_unitdir}/systemd-networkd.socket
%exclude %{_unitdir}/systemd-networkd-wait-online.service %exclude %{_unitdir}/systemd-networkd-wait-online.service
@ -1537,6 +1546,7 @@ fi
%{_prefix}/lib/systemd/systemd-network-generator %{_prefix}/lib/systemd/systemd-network-generator
%{_prefix}/lib/systemd/systemd-networkd %{_prefix}/lib/systemd/systemd-networkd
%{_prefix}/lib/systemd/systemd-networkd-wait-online %{_prefix}/lib/systemd/systemd-networkd-wait-online
%{_unitdir}/systemd-network-generator.service
%{_unitdir}/systemd-networkd.service %{_unitdir}/systemd-networkd.service
%{_unitdir}/systemd-networkd.socket %{_unitdir}/systemd-networkd.socket
%{_unitdir}/systemd-networkd-wait-online.service %{_unitdir}/systemd-networkd-wait-online.service

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c7c4ae099d4a421225778043d0ce9bb9f3d3a59186eb7da173e5f35edbc218c5
size 5784940

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3b009a26844f93454787168fceccca97ab585f628ec937bbc4be501d6c6ab3f8
size 6156740

View File

@ -1,3 +1,67 @@
-------------------------------------------------------------------
Wed Apr 15 19:06:27 UTC 2020 - Franck Bui <fbui@suse.com>
- Switch back to the hybrid hierarchy
Unfortunately Kubernetes and runc are not yet ready for
cgroupsv2. Let's reconsider the unified hierarchy in a couple of
months.
-------------------------------------------------------------------
Mon Apr 6 12:42:01 UTC 2020 - Franck Bui <fbui@suse.com>
- Import commit c5aa158173ced05201182d1cc18632a25cf43b94 (merge v245.4)
-------------------------------------------------------------------
Mon Apr 6 10:02:33 UTC 2020 - Franck Bui <fbui@suse.com>
- Add 0001-meson-fix-build-of-udev-path_id_compat-builtin-with-.patch
-------------------------------------------------------------------
Thu Mar 19 09:32:41 UTC 2020 - Franck Bui <fbui@suse.com>
- Import commit 31f82b39c811b4f731c80c2c2e7c56a0ca924a5b (merge v245.2)
d1d3f2aa15 docs: Add syntax for templated units to systemd.preset man page
3c69813c69 man: add a tiny bit of markup
bf595e788c home: fix segfault when parsing arguments in PAM module
e110f4dacb test: wait a bit after starting the test service
e8df08cfdb fix journalctl regression (#15099)
eb3a38cc23 NEWS: add late note about job trimming issue
405f0fcfdd systemctl: hide the 'glyph' column when --no-legend is requested
1c7de81f89 format-table: allow hiding a specific column
b7f2308bda core: transition to FINAL_SIGTERM state after ExecStopPost=
2867dfbf70 journalctl: show duplicate entries if they are from the same file (#14898)
[...]
-------------------------------------------------------------------
Wed Mar 18 14:09:57 UTC 2020 - Franck Bui <fbui@suse.com>
- Upgrade to v245 (commit 74e2e834b4282c9bbdc12014f6ccf8d86e542b8d)
See https://github.com/openSUSE/systemd/blob/SUSE/v245/NEWS for
details.
The new tools provided by systemd repart, userdb, homed, fdisk,
pwquality, p11kit feature have been disabled for now as they require
reviews first.
Default to the "unified" cgroup hierarchy. Indeed most prominent
users of cgroup (such as libvirt, kubic) should be ready for such
change. It's still possible to switch back to the old "hybrid"
hierarchy by passing "systemd.unified_cgroup_hierarchy=0" option to
the kernel command line though.
Added 0001-Revert-job-Don-t-mark-as-redundant-if-deps-are-relev.patch:
upstream commit 097537f07a2fab3cb73aef7bc59f2a66aa93f533 has been
reverted for now on as it introduced a behavior change which has
impacted plymouth at least.
-------------------------------------------------------------------
Fri Mar 13 13:15:10 UTC 2020 - Elisei Roca <eroca@suse.com>
- add systemd-network-generator.service file together with systemd-network-generator binary
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Feb 19 17:24:35 UTC 2020 - Ludwig Nussel <lnussel@suse.de> Wed Feb 19 17:24:35 UTC 2020 - Ludwig Nussel <lnussel@suse.de>

View File

@ -24,7 +24,7 @@
%define bootstrap 0 %define bootstrap 0
%define mini %nil %define mini %nil
%define min_kernel_version 4.5 %define min_kernel_version 4.5
%define suse_version +suse.138.gf8adabc2b1 %define suse_version +suse.83.gc5aa158173
%bcond_with gnuefi %bcond_with gnuefi
%if 0%{?bootstrap} %if 0%{?bootstrap}
@ -53,7 +53,7 @@
Name: systemd Name: systemd
URL: http://www.freedesktop.org/wiki/Software/systemd URL: http://www.freedesktop.org/wiki/Software/systemd
Version: 244 Version: 245
Release: 0 Release: 0
Summary: A System and Session Manager Summary: A System and Session Manager
License: LGPL-2.1-or-later License: LGPL-2.1-or-later
@ -165,6 +165,8 @@ Source102: scripts-systemd-migrate-sysconfig-i18n.sh
# merged by upstream. # merged by upstream.
Patch1: 0001-SUSE-policy-do-not-clean-tmp-by-default.patch Patch1: 0001-SUSE-policy-do-not-clean-tmp-by-default.patch
Patch2: 0001-Fix-run-lock-group-to-follow-openSUSE-policy.patch Patch2: 0001-Fix-run-lock-group-to-follow-openSUSE-policy.patch
Patch3: 0001-Revert-job-Don-t-mark-as-redundant-if-deps-are-relev.patch
Patch4: 0001-meson-fix-build-of-udev-path_id_compat-builtin-with-.patch
%description %description
Systemd is a system and service manager, compatible with SysV and LSB Systemd is a system and service manager, compatible with SysV and LSB
@ -512,6 +514,12 @@ ntp_servers=({0..3}.suse.pool.ntp.org)
-Dima=false \ -Dima=false \
-Delfutils=auto \ -Delfutils=auto \
-Dpstore=false \ -Dpstore=false \
-Drepart=false \
-Duserdb=false \
-Dhomed=false \
-Dfdisk=false \
-Dpwquality=false \
-Dp11kit=false \
%if ! 0%{?bootstrap} %if ! 0%{?bootstrap}
-Dman=true \ -Dman=true \
-Dhtml=true \ -Dhtml=true \
@ -1091,6 +1099,7 @@ fi
%exclude %{_prefix}/lib/systemd/systemd-network-generator %exclude %{_prefix}/lib/systemd/systemd-network-generator
%exclude %{_prefix}/lib/systemd/systemd-networkd %exclude %{_prefix}/lib/systemd/systemd-networkd
%exclude %{_prefix}/lib/systemd/systemd-networkd-wait-online %exclude %{_prefix}/lib/systemd/systemd-networkd-wait-online
%exclude %{_unitdir}/systemd-network-generator.service
%exclude %{_unitdir}/systemd-networkd.service %exclude %{_unitdir}/systemd-networkd.service
%exclude %{_unitdir}/systemd-networkd.socket %exclude %{_unitdir}/systemd-networkd.socket
%exclude %{_unitdir}/systemd-networkd-wait-online.service %exclude %{_unitdir}/systemd-networkd-wait-online.service
@ -1535,6 +1544,7 @@ fi
%{_prefix}/lib/systemd/systemd-network-generator %{_prefix}/lib/systemd/systemd-network-generator
%{_prefix}/lib/systemd/systemd-networkd %{_prefix}/lib/systemd/systemd-networkd
%{_prefix}/lib/systemd/systemd-networkd-wait-online %{_prefix}/lib/systemd/systemd-networkd-wait-online
%{_unitdir}/systemd-network-generator.service
%{_unitdir}/systemd-networkd.service %{_unitdir}/systemd-networkd.service
%{_unitdir}/systemd-networkd.socket %{_unitdir}/systemd-networkd.socket
%{_unitdir}/systemd-networkd-wait-online.service %{_unitdir}/systemd-networkd-wait-online.service