Hello community, here is the log from the commit of package systemd for openSUSE:12.1 checked in at 2011-10-27 19:34:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.1/systemd (Old) and /work/SRC/openSUSE:12.1/.systemd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:12.1/systemd/systemd-gtk.changes 2011-10-24 13:27:47.000000000 +0200 +++ /work/SRC/openSUSE:12.1/.systemd.new/systemd-gtk.changes 2011-10-28 19:09:25.000000000 +0200 @@ -1,0 +2,17 @@ +Thu Oct 27 13:39:03 UTC 2011 - fcro...@suse.com + +- Add no-tmpfs-fsck.patch: don't try to fsck tmpfs mountpoint + (bnc#726791). + +------------------------------------------------------------------- +Wed Oct 19 13:18:54 UTC 2011 - fcro...@suse.com + +- Add avoid-random-seed-cycle.patch: fix dependency cycle between + cryptsetup and random-seed-load (bnc#721666). +- Add crash-isolating.patch: fix crash when isolating a service. +- Fix bootsplash being killed too early. +- Fix some manpages not being redirected properly. +- Add storage-after-cryptsetup.service to restart lvm after + cryptsetup. Fixes lvm on top of LUKS (bnc#724238). + +------------------------------------------------------------------- systemd.changes: same change New: ---- avoid-random-seed-cycle.patch crash-isolating.patch no-tmpfs-fsck.patch storage-after-cryptsetup.service ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ systemd.spec ++++++ --- /var/tmp/diff_new_pack.XOfXUC/_old 2011-10-28 19:09:25.000000000 +0200 +++ /var/tmp/diff_new_pack.XOfXUC/_new 2011-10-28 19:09:25.000000000 +0200 @@ -61,6 +61,7 @@ Source8: bootsplash-startup.service Source9: bootsplash-quit.service Source10: bootsplash-shutdown.service +Source11: storage-after-cryptsetup.service Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.patch # handle SUSE specific kbd settings Patch6: 0001-handle-disable_caplock-and-compose_table-and-kbd_rat.patch @@ -72,11 +73,14 @@ Patch16: modules_on_boot.patch Patch17: private_tmp_crash.patch Patch18: systemctl-completion-fix.patch +Patch19: avoid-random-seed-cycle.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. +Patch20: crash-isolating.patch +Patch21: no-tmpfs-fsck.patch %description Systemd is a system and service manager, compatible with SysV and LSB @@ -129,6 +133,9 @@ %patch16 -p1 %patch17 -p1 %patch18 -p1 +%patch19 -p1 +%patch20 -p1 +%patch21 -p1 %build autoreconf -fiv @@ -147,6 +154,9 @@ %install %makeinstall +#fix manpages +sed -i -e 's,^\(\.so \)\(.*\.\)\([0-9]\),\1man\3/\2\3,g' %{buildroot}/%{_mandir}/*/* + #workaround for 716939 chmod 644 %{buildroot}%{_bindir}/systemd-analyze mkdir -p %{buildroot}%{_sysconfdir}/rpm @@ -157,11 +167,12 @@ # do not install, code has been fixed, might be useful in the future #install -m755 %{S:5} %{buildroot}/lib/systemd/system-generators install -m755 %{S:7} %{buildroot}/lib/systemd/ -install -m644 %{S:8} %{S:9} %{S:10} %{buildroot}/lib/systemd/system/ +install -m644 %{S:8} %{S:9} %{S:10} %{S:11} %{buildroot}/lib/systemd/system/ ln -s ../bootsplash-startup.service %{buildroot}/lib/systemd/system/basic.target.wants/ ln -s ../bootsplash-quit.service %{buildroot}/lib/systemd/system/multi-user.target.wants/ ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/shutdown.target.wants/ ln -s ../bootsplash-shutdown.service %{buildroot}/lib/systemd/system/reboot.target.wants/ +ln -s ../storage-after-cryptsetup.service %{buildroot}/lib/systemd/system/local-fs.target.wants/ ln -s ../bin/systemd %{buildroot}/sbin/init ln -s ../bin/systemctl %{buildroot}/sbin/reboot ln -s ../bin/systemctl %{buildroot}/sbin/halt ++++++ avoid-random-seed-cycle.patch ++++++ Devices with random keys (swap), should not be ordered before local-fs.target, as this creates a cycle with systemd-load-random-seed.service (and also it does not make sense, a swap device is not a local-fs). --- src/cryptsetup-generator.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cryptsetup-generator.c b/src/cryptsetup-generator.c index 6f3aa78..a48b7a4 100644 --- a/src/cryptsetup-generator.c +++ b/src/cryptsetup-generator.c @@ -112,8 +112,7 @@ static int create_disk( "DefaultDependencies=no\n" "BindTo=%s dev-mapper-%%i.device\n" "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" - "Before=umount.target\n" - "Before=local-fs.target\n", + "Before=umount.target\n", d, d); if (!nofail) @@ -125,6 +124,9 @@ static int create_disk( streq(password, "/dev/hw_random"))) fprintf(f, "After=systemd-random-seed-load.service\n"); + else + fprintf(f, + "Before=local-fs.target\n"); fprintf(f, "\n[Service]\n" -- 1.7.7 _______________________________________________ systemd-devel mailing list systemd-de...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel ++++++ bootsplash-quit.service ++++++ --- /var/tmp/diff_new_pack.XOfXUC/_old 2011-10-28 19:09:25.000000000 +0200 +++ /var/tmp/diff_new_pack.XOfXUC/_new 2011-10-28 19:09:25.000000000 +0200 @@ -1,6 +1,7 @@ [Unit] Description=Terminate bootsplash After=xdm.service rc-local.service bootsplash-startup.service +Before=getty@tty1.service DefaultDependencies=no Names=plymout-quit-wait.service ++++++ crash-isolating.patch ++++++ >From 563ba9ea6e60774086555998b957edf923e24b46 Mon Sep 17 00:00:00 2001 From: Michal Schmidt <mschm...@redhat.com> Date: Mon, 17 Oct 2011 11:12:12 +0200 Subject: [PATCH] manager: fix a crash in isolating HASHMAP_FOREACH is safe against the removal of the current entry, but not against the removal of other entries. job_finish_and_invalidate() can recursively remove other entries. It triggered an assertion failure: Assertion 'j->installed' failed at src/manager.c:1218, function transaction_apply(). Aborting. Fix the crash by iterating from the beginning when there is a possibility that the iterator could be invalid. It is O(n^2) in the worst case, but that's better than a crash. https://bugzilla.redhat.com/show_bug.cgi?id=717325 --- src/job.c | 19 ++++++++++++++----- src/manager.c | 7 ++++++- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/job.c b/src/job.c index 5c0913b..20971da 100644 --- a/src/job.c +++ b/src/job.c @@ -527,6 +527,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { Unit *other; JobType t; Iterator i; + bool recursed = false; assert(j); assert(j->installed); @@ -573,23 +574,29 @@ int job_finish_and_invalidate(Job *j, JobResult result) { if (other->meta.job && (other->meta.job->type == JOB_START || other->meta.job->type == JOB_VERIFY_ACTIVE || - other->meta.job->type == JOB_RELOAD_OR_START)) + other->meta.job->type == JOB_RELOAD_OR_START)) { job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); + recursed = true; + } SET_FOREACH(other, u->meta.dependencies[UNIT_BOUND_BY], i) if (other->meta.job && (other->meta.job->type == JOB_START || other->meta.job->type == JOB_VERIFY_ACTIVE || - other->meta.job->type == JOB_RELOAD_OR_START)) + other->meta.job->type == JOB_RELOAD_OR_START)) { job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); + recursed = true; + } SET_FOREACH(other, u->meta.dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i) if (other->meta.job && !other->meta.job->override && (other->meta.job->type == JOB_START || other->meta.job->type == JOB_VERIFY_ACTIVE || - other->meta.job->type == JOB_RELOAD_OR_START)) + other->meta.job->type == JOB_RELOAD_OR_START)) { job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); + recursed = true; + } } else if (t == JOB_STOP) { @@ -597,8 +604,10 @@ int job_finish_and_invalidate(Job *j, JobResult result) { if (other->meta.job && (other->meta.job->type == JOB_START || other->meta.job->type == JOB_VERIFY_ACTIVE || - other->meta.job->type == JOB_RELOAD_OR_START)) + other->meta.job->type == JOB_RELOAD_OR_START)) { job_finish_and_invalidate(other->meta.job, JOB_DEPENDENCY); + recursed = true; + } } } @@ -626,7 +635,7 @@ finish: manager_check_finished(u->meta.manager); - return 0; + return recursed; } int job_start_timer(Job *j) { diff --git a/src/manager.c b/src/manager.c index e626347..6d20258 100644 --- a/src/manager.c +++ b/src/manager.c @@ -1214,13 +1214,18 @@ static int transaction_apply(Manager *m, JobMode mode) { /* When isolating first kill all installed jobs which * aren't part of the new transaction */ + rescan: HASHMAP_FOREACH(j, m->jobs, i) { assert(j->installed); if (hashmap_get(m->transaction_jobs, j->unit)) continue; - job_finish_and_invalidate(j, JOB_CANCELED); + /* 'j' itself is safe to remove, but if other jobs + are invalidated recursively, our iterator may become + invalid and we need to start over. */ + if (job_finish_and_invalidate(j, JOB_CANCELED) > 0) + goto rescan; } } -- 1.7.3.4 ++++++ no-tmpfs-fsck.patch ++++++ >From cca125c2758b48ba8f1afdc4b5751b104f0bd809 Mon Sep 17 00:00:00 2001 From: Frederic Crozat <fcro...@suse.com> Date: Thu, 27 Oct 2011 15:36:57 +0200 Subject: [PATCH] mount: do not try to fsck tmpfs mountpoint with non-null passno. --- src/mount.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/mount.c b/src/mount.c index ef953f0..5da4047 100644 --- a/src/mount.c +++ b/src/mount.c @@ -434,6 +434,7 @@ static int mount_add_device_links(Mount *m) { if (p->passno > 0 && !mount_is_bind(p) && + !streq(p->fstype,"tmpfs") && UNIT(m)->meta.manager->running_as == MANAGER_SYSTEM && !path_equal(m->where, "/")) { char *name; -- 1.7.7 ++++++ storage-after-cryptsetup.service ++++++ [Unit] Description=Restart storage after crypsetup DefaultDependencies=no Before=local-fs.target shutdown.target After=cryptsetup.target Wants=cryptsetup.target [Service] RemainAfterExit=true Type=oneshot TimeoutSec=0 ExecStart=/bin/systemctl restart lvm.service ++++++ systemd-bootsplash ++++++ --- /var/tmp/diff_new_pack.XOfXUC/_old 2011-10-28 19:09:25.000000000 +0200 +++ /var/tmp/diff_new_pack.XOfXUC/_new 2011-10-28 19:09:25.000000000 +0200 @@ -3,6 +3,17 @@ export RUNLEVEL=$1 export PREVLEVEL=N if [ "$1" == "5" ]; then + /bin/systemctl status --no-pager default.target | grep -q graphical.target + if [ $? -eq 0 ]; then + declare -i timeout + timeout=0 + console=`fgconsole` + while [ $console -eq 1 -a $timeout -lt 30 ] ; do + sleep 1 + timeout+=1 + console=`fgconsole` + done + fi splashtrigger "rlreached $1" else splashtrigger "rlchange $1" -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org