diff --git a/srcpkgs/systemd/patches/0001-tmpfiles-fix-parsing-of-proc-net-unix-on-32Bit-machi.patch b/srcpkgs/systemd/patches/0001-tmpfiles-fix-parsing-of-proc-net-unix-on-32Bit-machi.patch new file mode 100644 index 00000000000..21050008ee3 --- /dev/null +++ b/srcpkgs/systemd/patches/0001-tmpfiles-fix-parsing-of-proc-net-unix-on-32Bit-machi.patch @@ -0,0 +1,86 @@ +From fdcad0c25579a60061b1fda956686e878a80faef Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Wed, 11 Jan 2012 22:07:35 +0100 +Subject: [PATCH] tmpfiles: fix parsing of /proc/net/unix on 32Bit machines + +Tracked down by Michael Meeks +--- + src/tmpfiles.c | 30 ++++++++++++++++++++---------- + 1 files changed, 20 insertions(+), 10 deletions(-) + +diff --git a/src/tmpfiles.c b/src/tmpfiles.c +index 19a7c08..44e5c9d 100644 +--- a/src/tmpfiles.c ++++ b/src/tmpfiles.c +@@ -117,41 +117,50 @@ static void load_unix_sockets(void) { + /* We maintain a cache of the sockets we found in + * /proc/net/unix to speed things up a little. */ + +- if (!(unix_sockets = set_new(string_hash_func, string_compare_func))) ++ unix_sockets = set_new(string_hash_func, string_compare_func); ++ if (!unix_sockets) + return; + +- if (!(f = fopen("/proc/net/unix", "re"))) ++ f = fopen("/proc/net/unix", "re"); ++ if (!f) + return; + +- if (!(fgets(line, sizeof(line), f))) ++ /* Skip header */ ++ if (!fgets(line, sizeof(line), f)) + goto fail; + + for (;;) { + char *p, *s; + int k; + +- if (!(fgets(line, sizeof(line), f))) ++ if (!fgets(line, sizeof(line), f)) + break; + + truncate_nl(line); + +- if (strlen(line) < 53) ++ p = strchr(line, ':'); ++ if (!p) ++ continue; ++ ++ if (strlen(p) < 37) + continue; + +- p = line + 53; ++ p += 37; + p += strspn(p, WHITESPACE); +- p += strcspn(p, WHITESPACE); ++ p += strcspn(p, WHITESPACE); /* skip one more word */ + p += strspn(p, WHITESPACE); + + if (*p != '/') + continue; + +- if (!(s = strdup(p))) ++ s = strdup(p); ++ if (!s) + goto fail; + + path_kill_slashes(s); + +- if ((k = set_put(unix_sockets, s)) < 0) { ++ k = set_put(unix_sockets, s); ++ if (k < 0) { + free(s); + + if (k != -EEXIST) +@@ -1059,7 +1068,8 @@ int main(int argc, char *argv[]) { + Item *i; + Iterator iterator; + +- if ((r = parse_argv(argc, argv)) <= 0) ++ r = parse_argv(argc, argv); ++ if (r <= 0) + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + + log_set_target(LOG_TARGET_AUTO); +-- +1.7.8.3 diff --git a/srcpkgs/systemd/patches/0001-units-make-sure-syslog-socket-goes-away-early-during.patch b/srcpkgs/systemd/patches/0001-units-make-sure-syslog-socket-goes-away-early-during.patch new file mode 100644 index 00000000000..56d92417633 --- /dev/null +++ b/srcpkgs/systemd/patches/0001-units-make-sure-syslog-socket-goes-away-early-during.patch @@ -0,0 +1,25 @@ +From ead51eb4ed55981f290e40a871ffbca6480c4cd3 Mon Sep 17 00:00:00 2001 +From: Lennart Poettering +Date: Thu, 12 Jan 2012 04:34:50 +0100 +Subject: [PATCH] units: make sure syslog socket goes away early during + shutdown + +--- + units/syslog.socket | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/units/syslog.socket b/units/syslog.socket +index 323fa86..657e791 100644 +--- a/units/syslog.socket ++++ b/units/syslog.socket +@@ -11,6 +11,8 @@ + Description=Syslog Socket + DefaultDependencies=no + Before=sockets.target syslog.target ++Conflicts=shutdown.target ++Before=shutdown.target + + # Pull in syslog.target to tell people that /dev/log is now accessible + Wants=syslog.target +-- +1.7.8.3 diff --git a/srcpkgs/systemd/template b/srcpkgs/systemd/template index f32ff42dc13..f99298e3e31 100644 --- a/srcpkgs/systemd/template +++ b/srcpkgs/systemd/template @@ -1,6 +1,8 @@ # Template file for 'systemd' pkgname=systemd version=38 +revision=1 +patch_args="-Np1" distfiles="http://www.freedesktop.org/software/$pkgname/$pkgname-$version.tar.xz" build_style=gnu-configure configure_args="--with-distro=other --with-rootprefix=