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

Reply via email to