Hello community,

here is the log from the commit of package systemd for openSUSE:Factory checked 
in at 2015-04-30 11:50:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
 and      /work/SRC/openSUSE:Factory/.systemd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "systemd"

Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes     2015-04-15 
16:21:26.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes        
2015-04-30 11:50:13.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Mar 16 15:35:31 UTC 2015 - [email protected]
+
+- Add upstream patch
+  0001-core-don-t-change-removed-devices-to-state-tentative.patch
+  to fix the fix of the last backport (bsc#921898) 
+
+-------------------------------------------------------------------
systemd.changes: same change

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ systemd-mini.spec ++++++
--- /var/tmp/diff_new_pack.QJXb8d/_old  2015-04-30 11:50:15.000000000 +0200
+++ /var/tmp/diff_new_pack.QJXb8d/_new  2015-04-30 11:50:15.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package systemd-mini
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed

systemd.spec: same change
++++++ use-rndaddentropy-ioctl-to-load-random-seed.patch ++++++
--- /var/tmp/diff_new_pack.QJXb8d/_old  2015-04-30 11:50:16.000000000 +0200
+++ /var/tmp/diff_new_pack.QJXb8d/_new  2015-04-30 11:50:16.000000000 +0200
@@ -5,13 +5,11 @@
 Related to bnc#892096
 
 ---
- src/random-seed/random-seed.c |   65 
+++++++++++++++++++++++++++++++++++++++---
- 1 file changed, 61 insertions(+), 4 deletions(-)
+ systemd-219/src/random-seed/random-seed.c |   71 
+++++++++++++++++++++++++-----
+ 1 file changed, 61 insertions(+), 10 deletions(-)
 
-Index: systemd-218/src/random-seed/random-seed.c
-===================================================================
---- systemd-218.orig/src/random-seed/random-seed.c
-+++ systemd-218/src/random-seed/random-seed.c
+--- systemd-219/src/random-seed/random-seed.c
++++ systemd-219/src/random-seed/random-seed.c  2015-04-21 09:39:03.057518051 
+0000
 @@ -22,7 +22,9 @@
  #include <unistd.h>
  #include <fcntl.h>
@@ -22,31 +20,46 @@
  #include <sys/stat.h>
  
  #include "log.h"
-@@ -32,8 +34,9 @@
+@@ -32,8 +34,8 @@
  #define POOL_SIZE_MIN 512
  
  int main(int argc, char *argv[]) {
 -        _cleanup_close_ int seed_fd = -1, random_fd = -1;
+-        _cleanup_free_ void* buf = NULL;
 +        _cleanup_close_ int seed_fd = -1, random_fd = -1, entropy_fd = -1;
-         _cleanup_free_ void* buf = NULL;
-+        size_t entropy_count = 0;
++        _cleanup_free_ struct rand_pool_info *entropy = NULL;
          size_t buf_size = 0;
          ssize_t k;
          int r;
-@@ -82,6 +85,23 @@ int main(int argc, char *argv[]) {
+@@ -65,11 +67,12 @@ int main(int argc, char *argv[]) {
+         if (buf_size <= POOL_SIZE_MIN)
+                 buf_size = POOL_SIZE_MIN;
+ 
+-        buf = malloc(buf_size);
+-        if (!buf) {
++        entropy = (struct rand_pool_info*) malloc(sizeof(struct 
rand_pool_info) + buf_size);
++        if (!entropy) {
+                 r = log_oom();
+                 goto finish;
+         }
++        entropy->buf_size = buf_size;
+ 
+         r = mkdir_parents_label(RANDOM_SEED, 0755);
+         if (r < 0) {
+@@ -83,6 +86,23 @@ int main(int argc, char *argv[]) {
  
          if (streq(argv[1], "load")) {
  
 +                entropy_fd = open(RANDOM_SEED_DIR "entropy_count", 
O_RDONLY|O_CLOEXEC|O_NOCTTY, 0600);
 +                if (entropy_fd < 0) {
-+                         entropy_count = 0;
++                         entropy->entropy_count = 0;                    
 +                         if (errno != ENOENT) {
 +                                log_error("Failed to open " RANDOM_SEED 
"/entropy_count: %m");
 +                                r = -errno;
 +                                goto finish;
 +                         }
 +                } else {
-+                        r = read(entropy_fd, &entropy_count, 
sizeof(entropy_count));
++                        r = read(entropy_fd, &entropy->entropy_count, 
sizeof(entropy->entropy_count));
 +                        if (r < 0) {
 +                                log_error("Failed to read entropy count file: 
%m");
 +                                r = -errno;
@@ -57,56 +70,60 @@
                  seed_fd = open(RANDOM_SEED, 
O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600);
                  if (seed_fd < 0) {
                          seed_fd = open(RANDOM_SEED, 
O_RDONLY|O_CLOEXEC|O_NOCTTY);
-@@ -113,12 +133,34 @@ int main(int argc, char *argv[]) {
+@@ -104,7 +124,7 @@ int main(int argc, char *argv[]) {
+                         }
+                 }
+ 
+-                k = loop_read(seed_fd, buf, buf_size, false);
++                k = loop_read(seed_fd, entropy->buf, entropy->buf_size, 
false);
+                 if (k <= 0) {
+ 
+                         if (r != 0)
+@@ -115,13 +135,29 @@ int main(int argc, char *argv[]) {
                  } else {
                          lseek(seed_fd, 0, SEEK_SET);
  
 -                        r = loop_write(random_fd, buf, (size_t) k, false);
 -                        if (r < 0)
 -                                log_error_errno(r, "Failed to write seed to 
/dev/urandom: %m");
-+                        if (entropy_count && (size_t) k == buf_size) {
-+                                struct rand_pool_info entropy = {
-+                                        .entropy_count = entropy_count,
-+                                        .buf_size = buf_size,
-+                                };
-+                                entropy.buf[0] = ((__u32*)buf)[0];
-+                                r = ioctl(random_fd, RNDADDENTROPY, &entropy);
++                        if (entropy->entropy_count && ((size_t)k) == 
entropy->buf_size) {
++                                r = ioctl(random_fd, RNDADDENTROPY, entropy);
 +                                if (r < 0) {
-+                                        log_error("Failed to write seed to 
/dev/urandom: %m");
++                                        log_error_errno(errno, "Failed to 
write seed to /dev/urandom: %m");
 +                                        r = -errno;
 +                                }
 +                        } else {
-+                                k = loop_write(random_fd, buf, (size_t) k, 
false);
-+                                if (k <= 0) {
-+                                        log_error("Failed to write seed to 
/dev/urandom: %s", r < 0 ? strerror(-r) : "short write");
-+                                        r = k == 0 ? -EIO : (int) k;
-+                                }
-+                      }
++                                r = loop_write(random_fd, entropy->buf, 
(size_t) k, false);
++                                if (r < 0)
++                                        log_error_errno(r, "Failed to write 
seed to /dev/urandom: %m");
++                        }
                  }
  
          } else if (streq(argv[1], "save")) {
+ 
 +                /* Read available entropy count, if possible */
 +                f = fopen("/proc/sys/kernel/random/entropy_avail", "re");
 +                if (f) {
-+                        if (fscanf(f, "%zu", &entropy_count) < 0)
-+                                entropy_count = 0;
++                        if (fscanf(f, "%d", &entropy->entropy_count) < 0)
++                                entropy->entropy_count = 0;
 +                        fclose(f);
 +                }
- 
++
                  seed_fd = open(RANDOM_SEED, 
O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600);
                  if (seed_fd < 0) {
-@@ -134,6 +176,21 @@ int main(int argc, char *argv[]) {
+                         log_error_errno(errno, "Failed to open " RANDOM_SEED 
": %m");
+@@ -136,6 +172,21 @@ int main(int argc, char *argv[]) {
                          goto finish;
                  }
  
-+                if (entropy_count) {
++                if (entropy->entropy_count) {
 +                        entropy_fd = open(RANDOM_SEED_DIR "entropy_count", 
O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600);
 +                        if (seed_fd < 0) {
 +                                log_error("Failed to open " RANDOM_SEED_DIR 
"entropy_count: %m");
 +                                r = -errno;
 +                                goto finish;
 +                        }
-+                        r = write(entropy_fd, &entropy_count, 
sizeof(entropy_count));
++                        r = write(entropy_fd, &entropy->entropy_count, 
sizeof(entropy->entropy_count));
 +                        if (r < 0) {
 +                                log_error("Failed to write entropy count 
file: %m");
 +                                r = -errno;
@@ -117,3 +134,18 @@
          } else {
                  log_error("Unknown verb %s.", argv[1]);
                  r = -EINVAL;
+@@ -149,12 +200,12 @@ int main(int argc, char *argv[]) {
+                 fchmod(seed_fd, 0600);
+                 fchown(seed_fd, 0, 0);
+ 
+-                k = loop_read(random_fd, buf, buf_size, false);
++                k = loop_read(random_fd, entropy->buf, entropy->buf_size, 
false);
+                 if (k <= 0) {
+                         log_error("Failed to read new seed from /dev/urandom: 
%s", r < 0 ? strerror(-r) : "EOF");
+                         r = k == 0 ? -EIO : (int) k;
+                 } else {
+-                        r = loop_write(seed_fd, buf, (size_t) k, false);
++                        r = loop_write(seed_fd, entropy->buf, (size_t) k, 
false);
+                         if (r < 0)
+                                 log_error_errno(r, "Failed to write new 
random seed file: %m");
+                 }


Reply via email to