Date: Wednesday, October 2, 2013 @ 13:23:29 Author: heftig Revision: 195850
208 Modified: systemd/trunk/PKGBUILD systemd/trunk/systemd.install Deleted: systemd/trunk/0001-core-whenever-a-new-PID-is-passed-to-us-make-sure-we.patch systemd/trunk/0001-cryptsetup-generator-allow-specifying-options-in-pro.patch systemd/trunk/0001-man-document-luks.options-kernel-commandline.patch systemd/trunk/0001-polkit-Avoid-race-condition-in-scraping-proc.patch systemd/trunk/0001-swap-fix-reverse-dependencies.patch systemd/trunk/0001-udev-rules-avoid-erroring-on-trailing-whitespace.patch systemd/trunk/0002-swap-create-.wants-symlink-to-auto-swap-devices.patch -----------------------------------------------------------------+ 0001-core-whenever-a-new-PID-is-passed-to-us-make-sure-we.patch | 74 --- 0001-cryptsetup-generator-allow-specifying-options-in-pro.patch | 190 ---------- 0001-man-document-luks.options-kernel-commandline.patch | 28 - 0001-polkit-Avoid-race-condition-in-scraping-proc.patch | 75 --- 0001-swap-fix-reverse-dependencies.patch | 30 - 0001-udev-rules-avoid-erroring-on-trailing-whitespace.patch | 32 - 0002-swap-create-.wants-symlink-to-auto-swap-devices.patch | 90 ---- PKGBUILD | 38 -- systemd.install | 17 9 files changed, 27 insertions(+), 547 deletions(-) Deleted: 0001-core-whenever-a-new-PID-is-passed-to-us-make-sure-we.patch =================================================================== --- 0001-core-whenever-a-new-PID-is-passed-to-us-make-sure-we.patch 2013-10-02 00:26:48 UTC (rev 195849) +++ 0001-core-whenever-a-new-PID-is-passed-to-us-make-sure-we.patch 2013-10-02 11:23:29 UTC (rev 195850) @@ -1,74 +0,0 @@ -From 7400b9d2e99938d17b281d7df43680eade18666e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering <[email protected]> -Date: Tue, 1 Oct 2013 05:06:56 +0200 -Subject: [PATCH] core: whenever a new PID is passed to us, make sure we watch - it - ---- - src/core/service.c | 21 +++++++++++++++------ - 1 file changed, 15 insertions(+), 6 deletions(-) - -diff --git a/src/core/service.c b/src/core/service.c -index 24b7bef..6792024 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -191,7 +191,13 @@ static int service_set_main_pid(Service *s, pid_t pid) { - if (pid == getpid()) - return -EINVAL; - -- service_unwatch_main_pid(s); -+ if (s->main_pid == pid && s->main_pid_known) -+ return 0; -+ -+ if (s->main_pid != pid) { -+ service_unwatch_main_pid(s); -+ exec_status_start(&s->main_exec_status, pid); -+ } - - s->main_pid = pid; - s->main_pid_known = true; -@@ -205,8 +211,6 @@ static int service_set_main_pid(Service *s, pid_t pid) { - } else - s->main_pid_alien = false; - -- exec_status_start(&s->main_exec_status, pid); -- - return 0; - } - -@@ -2696,8 +2700,10 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value, - - if (parse_pid(value, &pid) < 0) - log_debug_unit(u->id, "Failed to parse main-pid value %s", value); -- else -- service_set_main_pid(s, (pid_t) pid); -+ else { -+ service_set_main_pid(s, pid); -+ unit_watch_pid(UNIT(s), pid); -+ } - } else if (streq(key, "main-pid-known")) { - int b; - -@@ -3389,6 +3395,7 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { - log_debug_unit(u->id, - "%s: got %s", u->id, e); - service_set_main_pid(s, pid); -+ unit_watch_pid(UNIT(s), pid); - } - } - -@@ -3685,8 +3692,10 @@ static void service_bus_query_pid_done( - (s->state == SERVICE_START || - s->state == SERVICE_START_POST || - s->state == SERVICE_RUNNING || -- s->state == SERVICE_RELOAD)) -+ s->state == SERVICE_RELOAD)){ - service_set_main_pid(s, pid); -+ unit_watch_pid(UNIT(s), pid); -+ } - } - - int service_set_socket_fd(Service *s, int fd, Socket *sock) { --- -1.8.4 - Deleted: 0001-cryptsetup-generator-allow-specifying-options-in-pro.patch =================================================================== --- 0001-cryptsetup-generator-allow-specifying-options-in-pro.patch 2013-10-02 00:26:48 UTC (rev 195849) +++ 0001-cryptsetup-generator-allow-specifying-options-in-pro.patch 2013-10-02 11:23:29 UTC (rev 195850) @@ -1,190 +0,0 @@ -From 7ab064a6d60cf805765077b67d56c123f9cf3c58 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen <[email protected]> -Date: Sun, 18 Aug 2013 14:59:00 +0800 -Subject: [PATCH] cryptsetup-generator: allow specifying options in - /proc/cmdline -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The main usecase for this is to make it possible to use cryptsetup in -the initrd without it having to include a host-specific /etc/crypttab. - -Tested-by: Thomas Bächler <[email protected]> ---- - man/systemd-cryptsetup-generator.xml | 23 ++++++++++ - src/cryptsetup/cryptsetup-generator.c | 79 +++++++++++++++++++++++++++++++++-- - 2 files changed, 98 insertions(+), 4 deletions(-) - -diff --git a/man/systemd-cryptsetup-generator.xml b/man/systemd-cryptsetup-generator.xml -index 215ac2d..d6b7e49 100644 ---- a/man/systemd-cryptsetup-generator.xml -+++ b/man/systemd-cryptsetup-generator.xml -@@ -137,6 +137,29 @@ - will be activated in the initrd or the real root.</para> - </listitem> - </varlistentry> -+ -+ <varlistentry> -+ <term><varname>luks.options=</varname></term> -+ <term><varname>rd.luks.options=</varname></term> -+ -+ <listitem><para>Takes a LUKS super -+ block UUID followed by an '=' and a string -+ of options separated by commas as argument. -+ This will override the options for the given -+ UUID.</para> -+ <para>If only a list of options, without an -+ UUID, is specified, they apply to any UUIDs not -+ specified elsewhere, and without an entry in -+ /etc/crypttab.</para><para> -+ <varname>rd.luks.options=</varname> -+ is honored only by initial RAM disk -+ (initrd) while -+ <varname>luks.options=</varname> is -+ honored by both the main system and -+ the initrd.</para> -+ </listitem> -+ </varlistentry> -+ - <varlistentry> - <term><varname>luks.key=</varname></term> - <term><varname>rd.luks.key=</varname></term> -diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c -index 967c5e6..ba6efa6 100644 ---- a/src/cryptsetup/cryptsetup-generator.c -+++ b/src/cryptsetup/cryptsetup-generator.c -@@ -240,7 +240,7 @@ static int create_disk( - return 0; - } - --static int parse_proc_cmdline(char ***arg_proc_cmdline_disks, char **arg_proc_cmdline_keyfile) { -+static int parse_proc_cmdline(char ***arg_proc_cmdline_disks, char ***arg_proc_cmdline_options, char **arg_proc_cmdline_keyfile) { - _cleanup_free_ char *line = NULL; - char *w = NULL, *state = NULL; - int r; -@@ -307,7 +307,20 @@ static int parse_proc_cmdline(char ***arg_proc_cmdline_disks, char **arg_proc_cm - return log_oom(); - } - -+ } else if (startswith(word, "luks.options=")) { -+ if (strv_extend(arg_proc_cmdline_options, word + 13) < 0) -+ return log_oom(); -+ -+ } else if (startswith(word, "rd.luks.options=")) { -+ -+ if (in_initrd()) { -+ if (strv_extend(arg_proc_cmdline_options, word + 16) < 0) -+ return log_oom(); -+ } -+ - } else if (startswith(word, "luks.key=")) { -+ if (*arg_proc_cmdline_keyfile) -+ free(*arg_proc_cmdline_keyfile); - *arg_proc_cmdline_keyfile = strdup(word + 9); - if (!*arg_proc_cmdline_keyfile) - return log_oom(); -@@ -337,6 +350,7 @@ static int parse_proc_cmdline(char ***arg_proc_cmdline_disks, char **arg_proc_cm - int main(int argc, char *argv[]) { - _cleanup_strv_free_ char **arg_proc_cmdline_disks_done = NULL; - _cleanup_strv_free_ char **arg_proc_cmdline_disks = NULL; -+ _cleanup_strv_free_ char **arg_proc_cmdline_options = NULL; - _cleanup_free_ char *arg_proc_cmdline_keyfile = NULL; - _cleanup_fclose_ FILE *f = NULL; - unsigned n = 0; -@@ -357,7 +371,7 @@ int main(int argc, char *argv[]) { - - umask(0022); - -- if (parse_proc_cmdline(&arg_proc_cmdline_disks, &arg_proc_cmdline_keyfile) < 0) -+ if (parse_proc_cmdline(&arg_proc_cmdline_disks, &arg_proc_cmdline_options, &arg_proc_cmdline_keyfile) < 0) - return EXIT_FAILURE; - - if (!arg_enabled) -@@ -412,6 +426,26 @@ int main(int argc, char *argv[]) { - continue; - } - -+ if (arg_proc_cmdline_options) { -+ /* -+ If options are specified on the kernel commandline, let them override -+ the ones from crypttab. -+ */ -+ STRV_FOREACH(i, arg_proc_cmdline_options) { -+ _cleanup_free_ char *proc_uuid = NULL, *proc_options = NULL; -+ const char *p = *i; -+ -+ k = sscanf(p, "%m[0-9a-fA-F-]=%ms", &proc_uuid, &proc_options); -+ if (k == 2 && streq(proc_uuid, device + 5)) { -+ if (options) -+ free(options); -+ options = strdup(p); -+ if (!proc_options) -+ return log_oom(); -+ } -+ } -+ } -+ - if (arg_proc_cmdline_disks) { - /* - If luks UUIDs are specified on the kernel command line, use them as a filter -@@ -452,7 +486,7 @@ next: - on the kernel command line and not yet written. - */ - -- _cleanup_free_ char *name = NULL, *device = NULL; -+ _cleanup_free_ char *name = NULL, *device = NULL, *options = NULL; - const char *p = *i; - - if (startswith(p, "luks-")) -@@ -467,7 +501,44 @@ next: - if (!name || !device) - return log_oom(); - -- if (create_disk(name, device, arg_proc_cmdline_keyfile, "timeout=0") < 0) -+ if (arg_proc_cmdline_options) { -+ /* -+ If options are specified on the kernel commandline, use them. -+ */ -+ char **j; -+ -+ STRV_FOREACH(j, arg_proc_cmdline_options) { -+ _cleanup_free_ char *proc_uuid = NULL, *proc_options = NULL; -+ const char *s = *j; -+ int k; -+ -+ k = sscanf(s, "%m[0-9a-fA-F-]=%ms", &proc_uuid, &proc_options); -+ if (k == 2) { -+ if (streq(proc_uuid, device + 5)) { -+ if (options) -+ free(options); -+ options = strdup(proc_options); -+ if (!options) -+ return log_oom(); -+ } -+ } else if (!options) { -+ /* -+ Fall back to options without a specified UUID -+ */ -+ options = strdup(s); -+ if (!options) -+ return log_oom(); -+ } -+ } -+ } -+ -+ if (!options) { -+ options = strdup("timeout=0"); -+ if (!options) -+ return log_oom(); -+ } -+ -+ if (create_disk(name, device, arg_proc_cmdline_keyfile, options) < 0) - r = EXIT_FAILURE; - } - --- -1.8.4 - Deleted: 0001-man-document-luks.options-kernel-commandline.patch =================================================================== --- 0001-man-document-luks.options-kernel-commandline.patch 2013-10-02 00:26:48 UTC (rev 195849) +++ 0001-man-document-luks.options-kernel-commandline.patch 2013-10-02 11:23:29 UTC (rev 195850) @@ -1,28 +0,0 @@ -From ecd1e54ca6bf18a6da5f171b1ae24deac0fa7c87 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen <[email protected]> -Date: Fri, 13 Sep 2013 21:03:55 +0200 -Subject: [PATCH] man: document luks.options kernel commandline -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This should have been part of commit 7ab064a6d ---- - man/kernel-command-line.xml | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml -index a4b7d13..cc267a3 100644 ---- a/man/kernel-command-line.xml -+++ b/man/kernel-command-line.xml -@@ -250,6 +250,8 @@ - <term><varname>rd.luks.crypttab=</varname></term> - <term><varname>luks.uuid=</varname></term> - <term><varname>rd.luks.uuid=</varname></term> -+ <term><varname>luks.options=</varname></term> -+ <term><varname>rd.luks.options=</varname></term> - <term><varname>luks.key=</varname></term> - <term><varname>rd.luks.key=</varname></term> - --- -1.8.4 - Deleted: 0001-polkit-Avoid-race-condition-in-scraping-proc.patch =================================================================== --- 0001-polkit-Avoid-race-condition-in-scraping-proc.patch 2013-10-02 00:26:48 UTC (rev 195849) +++ 0001-polkit-Avoid-race-condition-in-scraping-proc.patch 2013-10-02 11:23:29 UTC (rev 195850) @@ -1,75 +0,0 @@ -From 72fd713962ca2c2450e23b01d9e22017a7e28fd4 Mon Sep 17 00:00:00 2001 -From: Colin Walters <[email protected]> -Date: Thu, 22 Aug 2013 13:55:21 -0400 -Subject: [PATCH] polkit: Avoid race condition in scraping /proc - -If a calling process execve()s a setuid program, it can appear to be -uid 0. Since we're receiving requests over DBus, avoid this by simply -passing system-bus-name as a subject. ---- - src/shared/polkit.c | 31 +++++-------------------------- - 1 file changed, 5 insertions(+), 26 deletions(-) - -diff --git a/src/shared/polkit.c b/src/shared/polkit.c -index cea7074..1c5e9e3 100644 ---- a/src/shared/polkit.c -+++ b/src/shared/polkit.c -@@ -38,12 +38,8 @@ int verify_polkit( - - #ifdef ENABLE_POLKIT - DBusMessage *m = NULL, *reply = NULL; -- const char *unix_process = "unix-process", *pid = "pid", *starttime = "start-time", *cancel_id = ""; -+ const char *system_bus_name = "system-bus-name", *name = "name", *cancel_id = ""; - uint32_t flags = interactive ? 1 : 0; -- pid_t pid_raw; -- uint32_t pid_u32; -- unsigned long long starttime_raw; -- uint64_t starttime_u64; - DBusMessageIter iter_msg, iter_struct, iter_array, iter_dict, iter_variant; - int r; - dbus_bool_t authorized = FALSE, challenge = FALSE; -@@ -68,14 +64,6 @@ int verify_polkit( - - #ifdef ENABLE_POLKIT - -- pid_raw = bus_get_unix_process_id(c, sender, error); -- if (pid_raw == 0) -- return -EINVAL; -- -- r = get_starttime_of_pid(pid_raw, &starttime_raw); -- if (r < 0) -- return r; -- - m = dbus_message_new_method_call( - "org.freedesktop.PolicyKit1", - "/org/freedesktop/PolicyKit1/Authority", -@@ -86,22 +74,13 @@ int verify_polkit( - - dbus_message_iter_init_append(m, &iter_msg); - -- pid_u32 = (uint32_t) pid_raw; -- starttime_u64 = (uint64_t) starttime_raw; -- - if (!dbus_message_iter_open_container(&iter_msg, DBUS_TYPE_STRUCT, NULL, &iter_struct) || -- !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &unix_process) || -+ !dbus_message_iter_append_basic(&iter_struct, DBUS_TYPE_STRING, &system_bus_name) || - !dbus_message_iter_open_container(&iter_struct, DBUS_TYPE_ARRAY, "{sv}", &iter_array) || - !dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) || -- !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &pid) || -- !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "u", &iter_variant) || -- !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT32, &pid_u32) || -- !dbus_message_iter_close_container(&iter_dict, &iter_variant) || -- !dbus_message_iter_close_container(&iter_array, &iter_dict) || -- !dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict) || -- !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &starttime) || -- !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "t", &iter_variant) || -- !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT64, &starttime_u64) || -+ !dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &name) || -+ !dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "s", &iter_variant) || -+ !dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_STRING, &sender) || - !dbus_message_iter_close_container(&iter_dict, &iter_variant) || - !dbus_message_iter_close_container(&iter_array, &iter_dict) || - !dbus_message_iter_close_container(&iter_struct, &iter_array) || --- -1.8.4 - Deleted: 0001-swap-fix-reverse-dependencies.patch =================================================================== --- 0001-swap-fix-reverse-dependencies.patch 2013-10-02 00:26:48 UTC (rev 195849) +++ 0001-swap-fix-reverse-dependencies.patch 2013-10-02 11:23:29 UTC (rev 195850) @@ -1,30 +0,0 @@ -From 90060fa6605446bef7078867423b691e4effa575 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen <[email protected]> -Date: Fri, 13 Sep 2013 14:46:18 +0200 -Subject: [PATCH] swap: fix reverse dependencies - -Make sure swap.target correctly requires/wants the swap units. - -This fixes https://bugs.freedesktop.org/show_bug.cgi?id=69291. - -Reported-by: Hussam Al-Tayeb ---- - src/core/swap.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/swap.c b/src/core/swap.c -index 57d15eb..3950860 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -220,7 +220,7 @@ static int swap_add_default_dependencies(Swap *s) { - } - - if (!noauto) { -- r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, (nofail ? UNIT_WANTED_BY : UNIT_REQUIRED_BY), -+ r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, (nofail ? UNIT_WANTS : UNIT_REQUIRES), - SPECIAL_SWAP_TARGET, NULL, true); - if (r < 0) - return r; --- -1.8.4 - Deleted: 0001-udev-rules-avoid-erroring-on-trailing-whitespace.patch =================================================================== --- 0001-udev-rules-avoid-erroring-on-trailing-whitespace.patch 2013-10-02 00:26:48 UTC (rev 195849) +++ 0001-udev-rules-avoid-erroring-on-trailing-whitespace.patch 2013-10-02 11:23:29 UTC (rev 195850) @@ -1,32 +0,0 @@ -From 3cf0f8f7e0b950b5f6d678f3e8b7f0fc0f52d4bf Mon Sep 17 00:00:00 2001 -From: Dave Reisner <[email protected]> -Date: Mon, 16 Sep 2013 11:22:35 -0400 -Subject: [PATCH] udev-rules: avoid erroring on trailing whitespace -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -https://bugs.archlinux.org/task/36950 ---- - src/udev/udev-rules.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c -index f14158b..6f8b127 100644 ---- a/src/udev/udev-rules.c -+++ b/src/udev/udev-rules.c -@@ -1068,6 +1068,12 @@ static int add_rule(struct udev_rules *rules, char *line, - enum operation_type op; - - if (get_key(rules->udev, &linepos, &key, &op, &value) != 0) { -+ /* Avoid erroring on trailing whitespace. This is probably rare -+ * so save the work for the error case instead of always trying -+ * to strip the trailing whitespace with strstrip(). */ -+ while (isblank(*linepos)) -+ linepos++; -+ - /* If we aren't at the end of the line, this is a parsing error. - * Make a best effort to describe where the problem is. */ - if (*linepos != '\n') { --- -1.8.4 - Deleted: 0002-swap-create-.wants-symlink-to-auto-swap-devices.patch =================================================================== --- 0002-swap-create-.wants-symlink-to-auto-swap-devices.patch 2013-10-02 00:26:48 UTC (rev 195849) +++ 0002-swap-create-.wants-symlink-to-auto-swap-devices.patch 2013-10-02 11:23:29 UTC (rev 195850) @@ -1,90 +0,0 @@ -From 4e82fe5213bedcb70e25c0270e516d5f2706d8c8 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen <[email protected]> -Date: Mon, 16 Sep 2013 01:08:32 +0200 -Subject: [PATCH] swap: create .wants symlink to 'auto' swap devices - -As we load unit files lazily, we need to make sure something pulls in swap -units that should be started automatically, otherwise the default dependencies -will never be applied. - -This partially reinstates code removed in -commit 64347fc2b983f33e7efb0fd2bb44e133fb9f30f4. - -Also don't order swap devices after swap.target when they are 'nofail'. ---- - src/core/swap.c | 8 ++++++-- - src/fstab-generator/fstab-generator.c | 18 ++++++++++++++++-- - 2 files changed, 22 insertions(+), 4 deletions(-) - -diff --git a/src/core/swap.c b/src/core/swap.c -index 3950860..76c7d45 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -220,8 +220,12 @@ static int swap_add_default_dependencies(Swap *s) { - } - - if (!noauto) { -- r = unit_add_two_dependencies_by_name_inverse(UNIT(s), UNIT_AFTER, (nofail ? UNIT_WANTS : UNIT_REQUIRES), -- SPECIAL_SWAP_TARGET, NULL, true); -+ if (nofail) -+ r = unit_add_dependency_by_name_inverse(UNIT(s), -+ UNIT_WANTS, SPECIAL_SWAP_TARGET, NULL, true); -+ else -+ r = unit_add_two_dependencies_by_name_inverse(UNIT(s), -+ UNIT_AFTER, UNIT_REQUIRES, SPECIAL_SWAP_TARGET, NULL, true); - if (r < 0) - return r; - } -diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c -index 6ebe8aa..b73dfa4 100644 ---- a/src/fstab-generator/fstab-generator.c -+++ b/src/fstab-generator/fstab-generator.c -@@ -66,6 +66,7 @@ static int mount_find_pri(struct mntent *me, int *ret) { - static int add_swap(const char *what, struct mntent *me) { - _cleanup_free_ char *name = NULL, *unit = NULL, *lnk = NULL, *device = NULL; - _cleanup_fclose_ FILE *f = NULL; -+ bool noauto; - int r, pri = -1; - - assert(what); -@@ -77,6 +78,8 @@ static int add_swap(const char *what, struct mntent *me) { - return pri; - } - -+ noauto = !!hasmntopt(me, "noauto"); -+ - name = unit_name_from_path(what, ".swap"); - if (!name) - return log_oom(); -@@ -97,8 +100,7 @@ static int add_swap(const char *what, struct mntent *me) { - fprintf(f, - "# Automatically generated by systemd-fstab-generator\n\n" - "[Unit]\n" -- "SourcePath=/etc/fstab\n" -- "\n" -+ "SourcePath=/etc/fstab\n\n" - "[Swap]\n" - "What=%s\n", - what); -@@ -114,6 +116,18 @@ static int add_swap(const char *what, struct mntent *me) { - return -errno; - } - -+ if (!noauto) { -+ lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET ".wants/", name, NULL); -+ if (!lnk) -+ return log_oom(); -+ -+ mkdir_parents_label(lnk, 0755); -+ if (symlink(unit, lnk) < 0) { -+ log_error("Failed to create symlink %s: %m", lnk); -+ return -errno; -+ } -+ } -+ - return 0; - } - --- -1.8.4 - Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-10-02 00:26:48 UTC (rev 195849) +++ PKGBUILD 2013-10-02 11:23:29 UTC (rev 195850) @@ -3,8 +3,8 @@ pkgbase=systemd pkgname=('systemd' 'systemd-sysvcompat') -pkgver=207 -pkgrel=7 +pkgver=208 +pkgrel=1 arch=('i686' 'x86_64') url="http://www.freedesktop.org/wiki/Software/systemd" makedepends=('acl' 'cryptsetup' 'dbus-core' 'docbook-xsl' 'gobject-introspection' 'gperf' @@ -14,36 +14,14 @@ source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz" 'initcpio-hook-udev' 'initcpio-install-systemd' - 'initcpio-install-udev' - 0001-polkit-Avoid-race-condition-in-scraping-proc.patch - 0001-swap-fix-reverse-dependencies.patch - 0002-swap-create-.wants-symlink-to-auto-swap-devices.patch - 0001-core-whenever-a-new-PID-is-passed-to-us-make-sure-we.patch - 0001-cryptsetup-generator-allow-specifying-options-in-pro.patch - 0001-man-document-luks.options-kernel-commandline.patch - 0001-udev-rules-avoid-erroring-on-trailing-whitespace.patch) -md5sums=('7799f3cc9d289b8db1c1fa56ae7ecd88' + 'initcpio-install-udev') +md5sums=('6b30239cbea4cb2c832625f1012dbe03' '29245f7a240bfba66e2b1783b63b6b40' '8b68b0218a3897d4d37a6ccf47914774' - 'bde43090d4ac0ef048e3eaee8202a407' - '9eb0a46aa2a3a6d74117f9a174dbe168' - '182be4c729aaecde249b7b05b48a481f' - 'b54fbe35e2689ac36cda9ac4a5a86f24' - '6067cc4f0565c02484918c3e1b05cbfa' - '20e65eefdffe384edc4acebe9e01c873' - '9fb76e01f41beb60e331908f7f1e04bc' - '1f0bfc22e09b9dfe53f4485fab7af2ee') + 'bde43090d4ac0ef048e3eaee8202a407') prepare() { cd "$pkgname-$pkgver" - - patch -Np1 <"$srcdir"/0001-swap-fix-reverse-dependencies.patch - patch -Np1 <"$srcdir"/0002-swap-create-.wants-symlink-to-auto-swap-devices.patch - patch -Np1 <"$srcdir"/0001-polkit-Avoid-race-condition-in-scraping-proc.patch - patch -Np1 <"$srcdir"/0001-core-whenever-a-new-PID-is-passed-to-us-make-sure-we.patch - patch -Np1 <"$srcdir"/0001-cryptsetup-generator-allow-specifying-options-in-pro.patch - patch -Np1 <"$srcdir"/0001-man-document-luks.options-kernel-commandline.patch - patch -Np1 <"$srcdir"/0001-udev-rules-avoid-erroring-on-trailing-whitespace.patch } build() { @@ -114,7 +92,7 @@ rmdir "$pkgdir/etc/systemd/system/getty.target.wants" # get rid of RPM macros - rm -r "$pkgdir/usr/lib/rpm/macros.d" + rm -r "$pkgdir/usr/lib/rpm" # add back tmpfiles.d/legacy.conf install -m644 "systemd-$pkgver/tmpfiles.d/legacy.conf" "$pkgdir/usr/lib/tmpfiles.d" @@ -129,6 +107,10 @@ install -Dm644 "$srcdir/initcpio-install-udev" "$pkgdir/usr/lib/initcpio/install/udev" install -Dm644 "$srcdir/initcpio-hook-udev" "$pkgdir/usr/lib/initcpio/hooks/udev" + # ensure proper permissions for /var/log/journal + chown root:systemd-journal "$pkgdir/var/log/journal" + chmod 2755 "$pkgdir/var/log/journal" + ### split out manpages for sysvcompat rm -rf "$srcdir/_sysvcompat" install -dm755 "$srcdir"/_sysvcompat/usr/share/man/man8/ Modified: systemd.install =================================================================== --- systemd.install 2013-10-02 00:26:48 UTC (rev 195849) +++ systemd.install 2013-10-02 11:23:29 UTC (rev 195850) @@ -38,6 +38,19 @@ fi } +_208_changes() { + chown root:systemd-journal var/log/journal + chmod 2755 var/log/journal + + if [ -e var/lib/backlight ] && [ ! -e var/lib/systemd/backlight ]; then + mv -T var/lib/backlight var/lib/systemd/backlight + fi + + if [ -e var/lib/random-seed ] && [ ! -e var/lib/systemd/random-seed ]; then + mv -T var/lib/random-seed var/lib/systemd/random-seed + fi +} + post_install() { post_common @@ -98,6 +111,10 @@ printf ' this hook, you must remove it from /etc/mkinitcpio.conf. A "systemd"\n' printf ' hook has been added which provides this functionality, and more.\n' fi + + if [ "$(vercmp 208-1 "$2")" -eq 1 ]; then + _208_changes + fi } # vim:set ts=2 sw=2 et:
