diff options
author | Michał Górny <mgorny@gentoo.org> | 2013-09-22 08:36:15 +0000 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2013-09-22 08:36:15 +0000 |
commit | 4daeb231cff1d8f63abdcd6832f5ebad3731ecc0 (patch) | |
tree | 4b99c86abedf78683b69a568ff5c01b23682baa4 | |
parent | Stable for ia64, wrt bug #459448 (diff) | |
download | gentoo-2-4daeb231cff1d8f63abdcd6832f5ebad3731ecc0.tar.gz gentoo-2-4daeb231cff1d8f63abdcd6832f5ebad3731ecc0.tar.bz2 gentoo-2-4daeb231cff1d8f63abdcd6832f5ebad3731ecc0.zip |
Backport the patch for security bug #485546. Backport patches from -207 to to-go-stable -204-r1. Use gentoo-systemd-integration and locale migration in -204-r1. Remove old.
(Portage version: 2.2.6/cvs/Linux x86_64, signed Manifest commit with key EFB4464E!)
16 files changed, 229 insertions, 1824 deletions
diff --git a/sys-apps/systemd/ChangeLog b/sys-apps/systemd/ChangeLog index 98217289f41b..8749f95d8a48 100644 --- a/sys-apps/systemd/ChangeLog +++ b/sys-apps/systemd/ChangeLog @@ -1,6 +1,28 @@ # ChangeLog for sys-apps/systemd # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/ChangeLog,v 1.176 2013/09/18 10:51:33 mgorny Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/ChangeLog,v 1.177 2013/09/22 08:36:15 mgorny Exp $ + +*systemd-207-r2 (22 Sep 2013) +*systemd-204-r1 (22 Sep 2013) + + 22 Sep 2013; Michał Górny <mgorny@gentoo.org> + +files/204-0001-polkit-Avoid-race-condition-in-scraping-proc.patch, + +files/204-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch, + +files/204-0003-Allow-tabs-in-environment-files.patch, + +files/204-0004-Actually-allow-tabs-in-environment-files.patch, + +systemd-204-r1.ebuild, +systemd-207-r2.ebuild, + -files/206-0001-logind-update-state-file-after-generating-the-sessio.patch, + -files/206-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch, + -files/206-0003-tmpfiles-support-passing-prefix-multiple-times.patch, + -files/206-0004-tmpfiles-introduce-exclude-prefix.patch, + -files/206-0005-tmpfiles-setup-exclude-dev-prefixes-files.patch, + -files/206-0006-allow-tabs-in-configuration-files.patch, + -files/206-0007-allow-tabs-in-configuration-files2.patch, -systemd-201.ebuild, + -systemd-206-r3.ebuild, -systemd-206-r4.ebuild, -systemd-206-r5.ebuild, + -systemd-207-r1.ebuild, -systemd-207.ebuild: + Backport the patch for security bug #485546. Backport patches from -207 to to- + go-stable -204-r1. Use gentoo-systemd-integration and locale migration in + -204-r1. Remove old. *systemd-207-r1 (18 Sep 2013) diff --git a/sys-apps/systemd/files/204-0001-polkit-Avoid-race-condition-in-scraping-proc.patch b/sys-apps/systemd/files/204-0001-polkit-Avoid-race-condition-in-scraping-proc.patch new file mode 100644 index 000000000000..c7d6bb18940a --- /dev/null +++ b/sys-apps/systemd/files/204-0001-polkit-Avoid-race-condition-in-scraping-proc.patch @@ -0,0 +1,75 @@ +From a8a49c004f69220e2c8ed209152a5a570acf49f3 Mon Sep 17 00:00:00 2001 +From: Colin Walters <walters@verbum.org> +Date: Thu, 22 Aug 2013 13:55:21 -0400 +Subject: [PATCH 1/4] 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.3.2 + diff --git a/sys-apps/systemd/files/206-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch b/sys-apps/systemd/files/204-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch index 79333e6eed3f..e7c5b7a421de 100644 --- a/sys-apps/systemd/files/206-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch +++ b/sys-apps/systemd/files/204-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch @@ -1,7 +1,7 @@ -From 64fa15a7ca9c276d28413567c74a1d360fbdc975 Mon Sep 17 00:00:00 2001 +From 03b8b6c88f10cfbfc398b206989739b899e6dbd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> Date: Wed, 31 Jul 2013 23:12:17 +0200 -Subject: [PATCH 2/5] Add /usr/share/keymaps to localectl supported locations. +Subject: [PATCH 2/4] Add /usr/share/keymaps to localectl supported locations. This is the standard upstream location where kbd installs keymaps. --- @@ -9,10 +9,10 @@ This is the standard upstream location where kbd installs keymaps. 1 file changed, 1 insertion(+) diff --git a/src/locale/localectl.c b/src/locale/localectl.c -index cd7356a..8259c0a 100644 +index 50250c4..856d9a9 100644 --- a/src/locale/localectl.c +++ b/src/locale/localectl.c -@@ -538,6 +538,7 @@ static int list_vconsole_keymaps(DBusConnection *bus, char **args, unsigned n) { +@@ -537,6 +537,7 @@ static int list_vconsole_keymaps(DBusConnection *bus, char **args, unsigned n) { if (!keymaps) return log_oom(); diff --git a/sys-apps/systemd/files/206-0006-allow-tabs-in-configuration-files.patch b/sys-apps/systemd/files/204-0003-Allow-tabs-in-environment-files.patch index 2e7567ba4ec4..9f277965fc6e 100644 --- a/sys-apps/systemd/files/206-0006-allow-tabs-in-configuration-files.patch +++ b/sys-apps/systemd/files/204-0003-Allow-tabs-in-environment-files.patch @@ -1,7 +1,7 @@ -From ac4c8d6da8b5ebc35f02c9c6cb7595be7b134a05 Mon Sep 17 00:00:00 2001 -From: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> -Date: Thu, 12 Sep 2013 01:50:16 +0000 -Subject: Allow tabs in environment files +From 105804e6bdaa05309937b1a6a1167539545b1774 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> +Date: Wed, 11 Sep 2013 21:50:16 -0400 +Subject: [PATCH 3/4] Allow tabs in environment files bash allows them, and so should we. @@ -12,7 +12,14 @@ the other is changed to check. https://bugs.freedesktop.org/show_bug.cgi?id=68592 https://bugs.gentoo.org/show_bug.cgi?id=481554 + +Conflicts: + src/test/test-fileio.c --- + src/hostname/hostnamed.c | 3 ++- + src/shared/util.c | 4 ++++ + 2 files changed, 6 insertions(+), 1 deletion(-) + diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index 0437e33..6a43aeb 100644 --- a/src/hostname/hostnamed.c @@ -28,10 +35,10 @@ index 0437e33..6a43aeb 100644 if (k == PROP_CHASSIS && !valid_chassis(name)) return bus_send_error_reply(connection, message, NULL, -EINVAL); diff --git a/src/shared/util.c b/src/shared/util.c -index 1dde8af..ad463e8 100644 +index 673e0da..113133f 100644 --- a/src/shared/util.c +++ b/src/shared/util.c -@@ -5311,6 +5311,10 @@ bool string_is_safe(const char *p) { +@@ -5264,6 +5264,10 @@ bool string_is_safe(const char *p) { return true; } @@ -41,3 +48,7 @@ index 1dde8af..ad463e8 100644 + */ bool string_has_cc(const char *p) { const char *t; + +-- +1.8.3.2 + diff --git a/sys-apps/systemd/files/204-0004-Actually-allow-tabs-in-environment-files.patch b/sys-apps/systemd/files/204-0004-Actually-allow-tabs-in-environment-files.patch new file mode 100644 index 000000000000..046ea0859ede --- /dev/null +++ b/sys-apps/systemd/files/204-0004-Actually-allow-tabs-in-environment-files.patch @@ -0,0 +1,26 @@ +From 349cfe2fd3d521c474881b486eb56bb07111d1d5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> +Date: Thu, 12 Sep 2013 10:03:16 -0400 +Subject: [PATCH 4/4] Actually allow tabs in environment files + +Fixup for ac4c8d6da8b5e. +--- + src/shared/util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/shared/util.c b/src/shared/util.c +index 113133f..c9e9b87 100644 +--- a/src/shared/util.c ++++ b/src/shared/util.c +@@ -5274,7 +5274,7 @@ bool string_has_cc(const char *p) { + assert(p); + + for (t = p; *t; t++) +- if (*t > 0 && *t < ' ') ++ if (*t > 0 && *t < ' ' && *t != '\t') + return true; + + return false; +-- +1.8.3.2 + diff --git a/sys-apps/systemd/files/206-0001-logind-update-state-file-after-generating-the-sessio.patch b/sys-apps/systemd/files/206-0001-logind-update-state-file-after-generating-the-sessio.patch deleted file mode 100644 index 2d74b01293a6..000000000000 --- a/sys-apps/systemd/files/206-0001-logind-update-state-file-after-generating-the-sessio.patch +++ /dev/null @@ -1,84 +0,0 @@ -From a7ca0f06aaa0e0ae3b5eada2cdece8c9766bff1a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering <lennart@poettering.net> -Date: Fri, 26 Jul 2013 17:32:19 +0200 -Subject: [PATCH 1/5] logind: update state file after generating the session - fifo, not before - -https://bugs.freedesktop.org/show_bug.cgi?id=67273 ---- - src/login/logind-dbus.c | 7 ++++++- - src/login/logind-session-dbus.c | 4 ++++ - src/machine/machined-dbus.c | 3 ++- - 3 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index 39af637..b5e975a 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -643,6 +643,10 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message) { - - session->create_message = dbus_message_ref(message); - -+ /* Now, let's wait until the slice unit and stuff got -+ * created. We send the reply back from -+ * session_send_create_reply().*/ -+ - return 0; - - fail: -@@ -2356,7 +2360,6 @@ DBusHandlerResult bus_message_filter( - if (streq_ptr(path, s->scope_job)) { - free(s->scope_job); - s->scope_job = NULL; -- session_save(s); - - if (s->started) { - if (streq(result, "done")) -@@ -2366,6 +2369,8 @@ DBusHandlerResult bus_message_filter( - session_send_create_reply(s, &error); - } - } -+ -+ session_save(s); - } - - session_add_to_gc_queue(s); -diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c -index 62b9ffd..210f756 100644 ---- a/src/login/logind-session-dbus.c -+++ b/src/login/logind-session-dbus.c -@@ -535,6 +535,10 @@ int session_send_create_reply(Session *s, DBusError *error) { - if (!s->create_message) - return 0; - -+ /* This is called after the session scope was successfully -+ * created, and finishes where bus_manager_create_session() -+ * left off. */ -+ - if (error) { - DBusError buffer; - -diff --git a/src/machine/machined-dbus.c b/src/machine/machined-dbus.c -index 1e8bc60..6c4d50b 100644 ---- a/src/machine/machined-dbus.c -+++ b/src/machine/machined-dbus.c -@@ -543,7 +543,6 @@ DBusHandlerResult bus_message_filter( - if (streq_ptr(path, mm->scope_job)) { - free(mm->scope_job); - mm->scope_job = NULL; -- machine_save(mm); - - if (mm->started) { - if (streq(result, "done")) -@@ -553,6 +552,8 @@ DBusHandlerResult bus_message_filter( - machine_send_create_reply(mm, &error); - } - } -+ -+ machine_save(mm); - } - - machine_add_to_gc_queue(mm); --- -1.8.3.2 - diff --git a/sys-apps/systemd/files/206-0003-tmpfiles-support-passing-prefix-multiple-times.patch b/sys-apps/systemd/files/206-0003-tmpfiles-support-passing-prefix-multiple-times.patch deleted file mode 100644 index 02d2b26af74c..000000000000 --- a/sys-apps/systemd/files/206-0003-tmpfiles-support-passing-prefix-multiple-times.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 9c26db4da7a474b024fcdc97ea490280d86777e1 Mon Sep 17 00:00:00 2001 -From: Dave Reisner <dreisner@archlinux.org> -Date: Wed, 24 Jul 2013 11:10:05 -0400 -Subject: [PATCH 3/5] tmpfiles: support passing --prefix multiple times - ---- - man/systemd-tmpfiles.xml | 3 ++- - src/tmpfiles/tmpfiles.c | 24 +++++++++++++++++++++--- - 2 files changed, 23 insertions(+), 4 deletions(-) - -diff --git a/man/systemd-tmpfiles.xml b/man/systemd-tmpfiles.xml -index 405a9f1..b0f2d9c 100644 ---- a/man/systemd-tmpfiles.xml -+++ b/man/systemd-tmpfiles.xml -@@ -121,7 +121,8 @@ - <term><option>--prefix=PATH</option></term> - <listitem><para>Only apply rules that - apply to paths with the specified -- prefix.</para></listitem> -+ prefix. This option can be specified -+ multiple times.</para></listitem> - </varlistentry> - - -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index eae993e..cb15133 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -105,7 +105,7 @@ static bool arg_create = false; - static bool arg_clean = false; - static bool arg_remove = false; - --static const char *arg_prefix = NULL; -+static char **include_prefixes = NULL; - - static const char conf_file_dirs[] = - "/etc/tmpfiles.d\0" -@@ -1018,6 +1018,21 @@ static bool item_equal(Item *a, Item *b) { - return true; - } - -+static bool should_include_path(const char *path) { -+ char **prefix; -+ -+ /* no explicit paths specified for inclusion, so everything is valid */ -+ if (strv_length(include_prefixes) == 0) -+ return true; -+ -+ STRV_FOREACH(prefix, include_prefixes) { -+ if (path_startswith(path, *prefix)) -+ return true; -+ } -+ -+ return false; -+} -+ - static int parse_line(const char *fname, unsigned line, const char *buffer) { - _cleanup_item_free_ Item *i = NULL; - Item *existing; -@@ -1119,7 +1134,7 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) { - - path_kill_slashes(i->path); - -- if (arg_prefix && !path_startswith(i->path, arg_prefix)) -+ if (!should_include_path(i->path)) - return 0; - - if (user && !streq(user, "-")) { -@@ -1258,7 +1273,8 @@ static int parse_argv(int argc, char *argv[]) { - break; - - case ARG_PREFIX: -- arg_prefix = optarg; -+ if (strv_extend(&include_prefixes, optarg) < 0) -+ return log_oom(); - break; - - case '?': -@@ -1423,6 +1439,8 @@ finish: - hashmap_free(items); - hashmap_free(globs); - -+ strv_free(include_prefixes); -+ - set_free_free(unix_sockets); - - label_finish(); --- -1.8.3.2 - diff --git a/sys-apps/systemd/files/206-0004-tmpfiles-introduce-exclude-prefix.patch b/sys-apps/systemd/files/206-0004-tmpfiles-introduce-exclude-prefix.patch deleted file mode 100644 index d314d3e06c67..000000000000 --- a/sys-apps/systemd/files/206-0004-tmpfiles-introduce-exclude-prefix.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 059e02a48e58da81591ebd34e87f928269d77929 Mon Sep 17 00:00:00 2001 -From: Dave Reisner <dreisner@archlinux.org> -Date: Wed, 24 Jul 2013 11:19:24 -0400 -Subject: [PATCH 4/5] tmpfiles: introduce --exclude-prefix - -The opposite of --prefix, allows specifying path prefixes which should -be skipped when processing rules. ---- - man/systemd-tmpfiles.xml | 7 +++++ - shell-completion/systemd-zsh-completion.zsh | 1 + - src/tmpfiles/tmpfiles.c | 44 ++++++++++++++++++----------- - 3 files changed, 36 insertions(+), 16 deletions(-) - -diff --git a/man/systemd-tmpfiles.xml b/man/systemd-tmpfiles.xml -index b0f2d9c..403592d 100644 ---- a/man/systemd-tmpfiles.xml -+++ b/man/systemd-tmpfiles.xml -@@ -124,6 +124,13 @@ - prefix. This option can be specified - multiple times.</para></listitem> - </varlistentry> -+ <varlistentry> -+ <term><option>--exclude-prefix=PATH</option></term> -+ <listitem><para>Ignore rules that -+ apply to paths with the specified -+ prefix. This option can be specified -+ multiple times.</para></listitem> -+ </varlistentry> - - - <varlistentry> -diff --git a/shell-completion/systemd-zsh-completion.zsh b/shell-completion/systemd-zsh-completion.zsh -index c85e00e..7aebbcd 100644 ---- a/shell-completion/systemd-zsh-completion.zsh -+++ b/shell-completion/systemd-zsh-completion.zsh -@@ -249,6 +249,7 @@ _ctls() - '--clean[Clean up all files and directories with an age parameter configured.]' \ - '--remove[All files and directories marked with r, R in the configuration files are removed.]' \ - '--prefix=[Only apply rules that apply to paths with the specified prefix.]' \ -+ '--exclude-prefix=[Ignore rules that apply to paths with the specified prefix.]' \ - '--help[Prints a short help text and exits.]' \ - '*::files:_files' - ;; -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index cb15133..5eca82a 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -106,6 +106,7 @@ static bool arg_clean = false; - static bool arg_remove = false; - - static char **include_prefixes = NULL; -+static char **exclude_prefixes = NULL; - - static const char conf_file_dirs[] = - "/etc/tmpfiles.d\0" -@@ -1021,16 +1022,19 @@ static bool item_equal(Item *a, Item *b) { - static bool should_include_path(const char *path) { - char **prefix; - -- /* no explicit paths specified for inclusion, so everything is valid */ -- if (strv_length(include_prefixes) == 0) -- return true; -+ STRV_FOREACH(prefix, exclude_prefixes) { -+ if (path_startswith(path, *prefix)) -+ return false; -+ } - - STRV_FOREACH(prefix, include_prefixes) { - if (path_startswith(path, *prefix)) - return true; - } - -- return false; -+ /* no matches, so we should include this path only if we -+ * have no whitelist at all */ -+ return strv_length(include_prefixes) == 0; - } - - static int parse_line(const char *fname, unsigned line, const char *buffer) { -@@ -1219,11 +1223,12 @@ static int help(void) { - - printf("%s [OPTIONS...] [CONFIGURATION FILE...]\n\n" - "Creates, deletes and cleans up volatile and temporary files and directories.\n\n" -- " -h --help Show this help\n" -- " --create Create marked files/directories\n" -- " --clean Clean up marked directories\n" -- " --remove Remove marked files/directories\n" -- " --prefix=PATH Only apply rules that apply to paths with the specified prefix\n", -+ " -h --help Show this help\n" -+ " --create Create marked files/directories\n" -+ " --clean Clean up marked directories\n" -+ " --remove Remove marked files/directories\n" -+ " --prefix=PATH Only apply rules that apply to paths with the specified prefix\n" -+ " --exclude-prefix=PATH Ignore rules that apply to paths with the specified prefix\n", - program_invocation_short_name); - - return 0; -@@ -1235,16 +1240,18 @@ static int parse_argv(int argc, char *argv[]) { - ARG_CREATE, - ARG_CLEAN, - ARG_REMOVE, -- ARG_PREFIX -+ ARG_PREFIX, -+ ARG_EXCLUDE_PREFIX, - }; - - static const struct option options[] = { -- { "help", no_argument, NULL, 'h' }, -- { "create", no_argument, NULL, ARG_CREATE }, -- { "clean", no_argument, NULL, ARG_CLEAN }, -- { "remove", no_argument, NULL, ARG_REMOVE }, -- { "prefix", required_argument, NULL, ARG_PREFIX }, -- { NULL, 0, NULL, 0 } -+ { "help", no_argument, NULL, 'h' }, -+ { "create", no_argument, NULL, ARG_CREATE }, -+ { "clean", no_argument, NULL, ARG_CLEAN }, -+ { "remove", no_argument, NULL, ARG_REMOVE }, -+ { "prefix", required_argument, NULL, ARG_PREFIX }, -+ { "exclude-prefix", required_argument, NULL, ARG_EXCLUDE_PREFIX }, -+ { NULL, 0, NULL, 0 } - }; - - int c; -@@ -1277,6 +1284,11 @@ static int parse_argv(int argc, char *argv[]) { - return log_oom(); - break; - -+ case ARG_EXCLUDE_PREFIX: -+ if (strv_extend(&exclude_prefixes, optarg) < 0) -+ return log_oom(); -+ break; -+ - case '?': - return -EINVAL; - --- -1.8.3.2 - diff --git a/sys-apps/systemd/files/206-0005-tmpfiles-setup-exclude-dev-prefixes-files.patch b/sys-apps/systemd/files/206-0005-tmpfiles-setup-exclude-dev-prefixes-files.patch deleted file mode 100644 index 9d674b2d4535..000000000000 --- a/sys-apps/systemd/files/206-0005-tmpfiles-setup-exclude-dev-prefixes-files.patch +++ /dev/null @@ -1,23 +0,0 @@ -From a7b85011f13bf2a90cfcfad1f3d2ca2deebaa2f1 Mon Sep 17 00:00:00 2001 -From: Dave Reisner <dreisner@archlinux.org> -Date: Wed, 24 Jul 2013 11:58:35 -0400 -Subject: [PATCH 5/5] tmpfiles-setup: exclude /dev prefixes files - -Fixes Arch Linux bug: https://bugs.archlinux.org/task/36259 ---- - units/systemd-tmpfiles-setup.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/systemd-tmpfiles-setup.service.in b/units/systemd-tmpfiles-setup.service.in -index 67c7d4a..6f98063 100644 ---- a/units/systemd-tmpfiles-setup.service.in -+++ b/units/systemd-tmpfiles-setup.service.in -@@ -21,4 +21,4 @@ ConditionDirectoryNotEmpty=|/run/tmpfiles.d - [Service] - Type=oneshot - RemainAfterExit=yes --ExecStart=@rootbindir@/systemd-tmpfiles --create --remove -+ExecStart=@rootbindir@/systemd-tmpfiles --create --remove --exclude-prefix=/dev --- -1.8.3.2 - diff --git a/sys-apps/systemd/files/206-0007-allow-tabs-in-configuration-files2.patch b/sys-apps/systemd/files/206-0007-allow-tabs-in-configuration-files2.patch deleted file mode 100644 index b7f01144210d..000000000000 --- a/sys-apps/systemd/files/206-0007-allow-tabs-in-configuration-files2.patch +++ /dev/null @@ -1,22 +0,0 @@ -From da2620a5f878ad5c8d8d51992528cb3e637c7d1f Mon Sep 17 00:00:00 2001 -From: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> -Date: Thu, 12 Sep 2013 14:03:16 +0000 -Subject: Actually allow tabs in environment files - -Fixup for ac4c8d6da8b5e. ---- -diff --git a/src/shared/util.c b/src/shared/util.c -index ad463e8..9a075fa 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -5321,7 +5321,7 @@ bool string_has_cc(const char *p) { - assert(p); - - for (t = p; *t; t++) -- if (*t > 0 && *t < ' ') -+ if (*t > 0 && *t < ' ' && *t != '\t') - return true; - - return false; --- -cgit v0.9.0.2-2-gbebe diff --git a/sys-apps/systemd/systemd-201.ebuild b/sys-apps/systemd/systemd-201.ebuild deleted file mode 100644 index 882fce40099e..000000000000 --- a/sys-apps/systemd/systemd-201.ebuild +++ /dev/null @@ -1,287 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-201.ebuild,v 1.23 2013/07/16 07:30:08 mgorny Exp $ - -EAPI=5 - -PYTHON_COMPAT=( python2_7 ) -inherit autotools-utils bash-completion-r1 linux-info multilib pam \ - python-single-r1 systemd toolchain-funcs udev user - -DESCRIPTION="System and service manager for Linux" -HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd" -SRC_URI="http://www.freedesktop.org/software/systemd/${P}.tar.xz" - -LICENSE="GPL-2 LGPL-2.1 MIT" -SLOT="0" -KEYWORDS="amd64 arm ppc64 x86" -IUSE="acl audit cryptsetup doc +firmware-loader gcrypt gudev http introspection - keymap +kmod lzma openrc pam policykit python qrcode selinux static-libs - tcpd vanilla xattr" - -MINKV="2.6.39" - -COMMON_DEPEND=">=sys-apps/dbus-1.6.8-r1 - >=sys-apps/util-linux-2.20 - sys-libs/libcap - acl? ( sys-apps/acl ) - audit? ( >=sys-process/audit-2 ) - cryptsetup? ( >=sys-fs/cryptsetup-1.4.2 ) - gcrypt? ( >=dev-libs/libgcrypt-1.4.5 ) - gudev? ( >=dev-libs/glib-2 ) - http? ( net-libs/libmicrohttpd ) - introspection? ( >=dev-libs/gobject-introspection-1.31.1 ) - kmod? ( >=sys-apps/kmod-12 ) - lzma? ( app-arch/xz-utils ) - pam? ( virtual/pam ) - python? ( ${PYTHON_DEPS} ) - qrcode? ( media-gfx/qrencode ) - selinux? ( sys-libs/libselinux ) - tcpd? ( sys-apps/tcp-wrappers ) - xattr? ( sys-apps/attr )" - -# baselayout-2.2 has /run -RDEPEND="${COMMON_DEPEND} - >=sys-apps/baselayout-2.2 - openrc? ( >=sys-fs/udev-init-scripts-25 ) - policykit? ( sys-auth/polkit ) - || ( - >=sys-apps/util-linux-2.22 - <sys-apps/sysvinit-2.88-r4 - ) - !sys-auth/nss-myhostname - !<sys-libs/glibc-2.10 - !sys-fs/udev" - -PDEPEND=">=sys-apps/hwids-20130326.1[udev]" - -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - dev-util/gperf - >=dev-util/intltool-0.50 - >=sys-devel/gcc-4.6 - >=sys-kernel/linux-headers-${MINKV} - virtual/pkgconfig - doc? ( >=dev-util/gtk-doc-1.18 )" - -pkg_pretend() { - local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS ~DEVTMPFS - ~FANOTIFY ~HOTPLUG ~INOTIFY_USER ~IPV6 ~NET ~PROC_FS ~SIGNALFD - ~SYSFS ~!IDE ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2" -# ~!FW_LOADER_USER_HELPER" - - if [[ ${MERGE_TYPE} != binary ]]; then - if [[ $(gcc-major-version) -lt 4 - || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 6 ) ]] - then - eerror "systemd requires at least gcc 4.6 to build. Please switch the active" - eerror "gcc version using gcc-config." - die "systemd requires at least gcc 4.6" - fi - fi - - if [[ ${MERGE_TYPE} != buildonly ]]; then - if kernel_is -lt ${MINKV//./ }; then - ewarn "Kernel version at least ${MINKV} required" - fi - - if ! use firmware-loader && kernel_is -lt 3 8; then - ewarn "You seem to be using kernel older than 3.8. Those kernel versions" - ewarn "require systemd with USE=firmware-loader to support loading" - ewarn "firmware. Missing this flag may cause some hardware not to work." - fi - - check_extra_config - fi -} - -pkg_setup() { - use python && python-single-r1_pkg_setup -} - -src_configure() { - local myeconfargs=( - --localstatedir=/var - --with-pamlibdir=$(getpam_mod_dir) - # avoid bash-completion dep - --with-bashcompletiondir="$(get_bashcompdir)" - # make sure we get /bin:/sbin in $PATH - --enable-split-usr - # disable sysv compatibility - --with-sysvinit-path= - --with-sysvrcnd-path= - # no deps - --enable-efi - --enable-ima - # optional components/dependencies - $(use_enable acl) - $(use_enable audit) - $(use_enable cryptsetup libcryptsetup) - $(use_enable doc gtk-doc) - $(use_enable gcrypt) - $(use_enable gudev) - $(use_enable http microhttpd) - $(use_enable introspection) - $(use_enable keymap) - $(use_enable kmod) - $(use_enable lzma xz) - $(use_enable pam) - $(use_enable policykit polkit) - $(use_with python) - $(use python && echo PYTHON_CONFIG=/usr/bin/python-config-${EPYTHON#python}) - $(use_enable qrcode qrencode) - $(use_enable selinux) - $(use_enable tcpd tcpwrap) - $(use_enable xattr) - - # not supported (avoid automagic deps in the future) - --disable-chkconfig - - # hardcode a few paths to spare some deps - QUOTAON=/usr/sbin/quotaon - QUOTACHECK=/usr/sbin/quotacheck - ) - - # Keep using the one where the rules were installed. - MY_UDEVDIR=$(get_udevdir) - - if use firmware-loader; then - myeconfargs+=( - --with-firmware-path="/lib/firmware/updates:/lib/firmware" - ) - fi - - # Work around bug 463846. - tc-export CC - - autotools-utils_src_configure -} - -src_compile() { - autotools-utils_src_compile \ - udevlibexecdir="${MY_UDEVDIR}" -} - -src_install() { - autotools-utils_src_install -j1 \ - udevlibexecdir="${MY_UDEVDIR}" \ - dist_udevhwdb_DATA= - - # keep udev working without initramfs, for openrc compat - dodir /bin /sbin - mv "${D}"/usr/lib/systemd/systemd-udevd "${D}"/sbin/udevd || die - mv "${D}"/usr/bin/udevadm "${D}"/bin/udevadm || die - dosym ../../../sbin/udevd /usr/lib/systemd/systemd-udevd - dosym ../../bin/udevadm /usr/bin/udevadm - - # zsh completion - insinto /usr/share/zsh/site-functions - newins shell-completion/systemd-zsh-completion.zsh "_${PN}" - - # remove pam.d plugin .la-file - prune_libtool_files --modules - - # compat for init= use - dosym ../usr/lib/systemd/systemd /bin/systemd - dosym ../lib/systemd/systemd /usr/bin/systemd - # rsyslog.service depends on it... - dosym ../usr/bin/systemctl /bin/systemctl - - # we just keep sysvinit tools, so no need for the mans - rm "${D}"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8 \ - || die - rm "${D}"/usr/share/man/man1/init.1 || die - - if ! use vanilla; then - # Create /run/lock as required by new baselay/OpenRC compat. - systemd_dotmpfilesd "${FILESDIR}"/gentoo-run.conf - - # Add mount-rules for /var/lock and /var/run, bug #433607 - systemd_dounit "${FILESDIR}"/var-{lock,run}.mount - systemd_enable_service sysinit.target var-lock.mount - systemd_enable_service sysinit.target var-run.mount - fi - - # Disable storing coredumps in journald, bug #433457 - mv "${D}"/usr/lib/sysctl.d/50-coredump.conf{,.disabled} || die - - # Preserve empty dirs in /etc & /var, bug #437008 - keepdir /etc/binfmt.d /etc/modules-load.d /etc/tmpfiles.d \ - /etc/systemd/ntp-units.d /etc/systemd/user /var/lib/systemd - - # Check whether we won't break user's system. - local x - for x in /bin/systemd /usr/bin/systemd \ - /usr/bin/udevadm /usr/lib/systemd/systemd-udevd - do - [[ -x ${D}${x} ]] || die "${x} symlink broken, aborting." - done -} - -optfeature() { - local i desc=${1} text - shift - - text=" [\e[1m$(has_version ${1} && echo I || echo ' ')\e[0m] ${1}" - shift - - for i; do - elog "${text}" - text="& [\e[1m$(has_version ${1} && echo I || echo ' ')\e[0m] ${1}" - done - elog "${text} (${desc})" -} - -pkg_postinst() { - # for udev rules - enewgroup dialout - - enewgroup systemd-journal - if use http; then - enewgroup systemd-journal-gateway - enewuser systemd-journal-gateway -1 -1 -1 systemd-journal-gateway - fi - systemd_update_catalog - - # Keep this here in case the database format changes so it gets updated - # when required. Despite that this file is owned by sys-apps/hwids. - if has_version "sys-apps/hwids[udev]"; then - udevadm hwdb --update --root="${ROOT%/}" - fi - - if [[ ! -L "${ROOT}"/etc/mtab ]]; then - ewarn "Upstream suggests that the /etc/mtab file should be a symlink to /proc/mounts." - ewarn "It is known to cause users being unable to unmount user mounts. If you don't" - ewarn "require that specific feature, please call:" - ewarn " $ ln -sf '${ROOT}proc/self/mounts' '${ROOT}etc/mtab'" - ewarn - fi - - elog "To get additional features, a number of optional runtime dependencies may" - elog "be installed:" - optfeature 'for GTK+ systemadm UI and gnome-ask-password-agent' \ - 'sys-apps/systemd-ui' - - # read null-terminated argv[0] from PID 1 - # and see which path to systemd was used (if any) - local init_path - IFS= read -r -d '' init_path < /proc/1/cmdline - if [[ ${init_path} == */bin/systemd ]]; then - ewarn - ewarn "You are using a compatibility symlink to run systemd. The symlink" - ewarn "will be removed in near future. Please update your bootloader" - ewarn "to use:" - ewarn - ewarn " init=/usr/lib/systemd/systemd" - fi -} - -pkg_prerm() { - # If removing systemd completely, remove the catalog database. - if [[ ! ${REPLACED_BY_VERSION} ]]; then - rm -f -v "${EROOT}"/var/lib/systemd/catalog/database - fi -} diff --git a/sys-apps/systemd/systemd-206-r4.ebuild b/sys-apps/systemd/systemd-204-r1.ebuild index d5a74cd44793..b882a0f16c60 100644 --- a/sys-apps/systemd/systemd-206-r4.ebuild +++ b/sys-apps/systemd/systemd-204-r1.ebuild @@ -1,14 +1,12 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-206-r4.ebuild,v 1.1 2013/09/11 11:52:15 mgorny Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-204-r1.ebuild,v 1.1 2013/09/22 08:36:15 mgorny Exp $ EAPI=5 AUTOTOOLS_PRUNE_LIBTOOL_FILES=all PYTHON_COMPAT=( python2_7 ) -inherit autotools-utils bash-completion-r1 fcaps linux-info multilib \ - multilib-minimal pam python-single-r1 systemd toolchain-funcs udev \ - user +inherit autotools-utils bash-completion-r1 linux-info multilib pam python-single-r1 systemd toolchain-funcs udev user DESCRIPTION="System and service manager for Linux" HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd" @@ -18,47 +16,45 @@ LICENSE="GPL-2 LGPL-2.1 MIT" SLOT="0" KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" IUSE="acl audit cryptsetup doc +firmware-loader gcrypt gudev http introspection - +kmod lzma openrc pam policykit python qrcode selinux tcpd test - vanilla xattr" + keymap +kmod lzma openrc pam policykit python qrcode selinux static-libs + tcpd test vanilla xattr" -MINKV="3.0" +MINKV="2.6.39" COMMON_DEPEND=">=sys-apps/dbus-1.6.8-r1 >=sys-apps/util-linux-2.20 sys-libs/libcap acl? ( sys-apps/acl ) audit? ( >=sys-process/audit-2 ) - cryptsetup? ( >=sys-fs/cryptsetup-1.6 ) + cryptsetup? ( >=sys-fs/cryptsetup-1.4.2 ) gcrypt? ( >=dev-libs/libgcrypt-1.4.5 ) gudev? ( >=dev-libs/glib-2 ) http? ( net-libs/libmicrohttpd ) introspection? ( >=dev-libs/gobject-introspection-1.31.1 ) - kmod? ( >=sys-apps/kmod-14-r1 ) - lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] ) + kmod? ( >=sys-apps/kmod-12 ) + lzma? ( app-arch/xz-utils ) pam? ( virtual/pam ) python? ( ${PYTHON_DEPS} ) qrcode? ( media-gfx/qrencode ) selinux? ( sys-libs/libselinux ) tcpd? ( sys-apps/tcp-wrappers ) - xattr? ( sys-apps/attr ) - abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r8 - !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )" + xattr? ( sys-apps/attr )" # baselayout-2.2 has /run RDEPEND="${COMMON_DEPEND} >=sys-apps/baselayout-2.2 openrc? ( >=sys-fs/udev-init-scripts-25 ) + policykit? ( sys-auth/polkit ) || ( >=sys-apps/util-linux-2.22 <sys-apps/sysvinit-2.88-r4 ) - !vanilla? ( sys-apps/gentoo-systemd-integration ) + !vanilla? ( ~sys-apps/gentoo-systemd-integration-1 ) !sys-auth/nss-myhostname !<sys-libs/glibc-2.10 !sys-fs/udev" -PDEPEND=">=sys-apps/hwids-20130717-r1[udev] - policykit? ( sys-auth/polkit )" +PDEPEND=">=sys-apps/hwids-20130326.1[udev]" DEPEND="${COMMON_DEPEND} app-arch/xz-utils @@ -67,7 +63,6 @@ DEPEND="${COMMON_DEPEND} dev-libs/libxslt dev-util/gperf >=dev-util/intltool-0.50 - >=sys-devel/binutils-2.23.1 >=sys-devel/gcc-4.6 >=sys-kernel/linux-headers-${MINKV} virtual/pkgconfig @@ -80,7 +75,6 @@ pkg_pretend() { # ~!FW_LOADER_USER_HELPER" use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" - use pam && CONFIG_CHECK+=" ~AUDITSYSCALL" # read null-terminated argv[0] from PID 1 # and see which path to systemd was used (if any) @@ -129,20 +123,19 @@ pkg_setup() { src_prepare() { local PATCHES=( - #477954 - gnome-shell-3.8* session unlock broken - "${FILESDIR}"/206-0001-logind-update-state-file-after-generating-the-sessio.patch - #474946 - localectl does not find keymaps - "${FILESDIR}"/206-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch - #478198 - wrong permission for static-nodes - "${FILESDIR}"/206-0003-tmpfiles-support-passing-prefix-multiple-times.patch - "${FILESDIR}"/206-0004-tmpfiles-introduce-exclude-prefix.patch - "${FILESDIR}"/206-0005-tmpfiles-setup-exclude-dev-prefixes-files.patch + # race condition in polkit use, bug #485546 + "${FILESDIR}"/204-0001-polkit-Avoid-race-condition-in-scraping-proc.patch + # localectl does not find keymaps, bug #474946 + "${FILESDIR}"/204-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch + # tabs do not work in EnvironmentFile=, bug #481554 + "${FILESDIR}"/204-0003-Allow-tabs-in-environment-files.patch + "${FILESDIR}"/204-0004-Actually-allow-tabs-in-environment-files.patch ) autotools-utils_src_prepare } -multilib_src_configure() { +src_configure() { local myeconfargs=( --localstatedir=/var --with-pamlibdir=$(getpam_mod_dir) @@ -165,6 +158,7 @@ multilib_src_configure() { $(use_enable gudev) $(use_enable http microhttpd) $(use_enable introspection) + $(use_enable keymap) $(use_enable kmod) $(use_enable lzma xz) $(use_enable pam) @@ -194,94 +188,21 @@ multilib_src_configure() { ) fi - if ! multilib_is_native_abi; then - myeconfargs+=( - ac_cv_search_cap_init= - ac_cv_header_sys_capability_h=yes - DBUS_CFLAGS=' ' - DBUS_LIBS=' ' - - --disable-acl - --disable-audit - --disable-gcrypt - --disable-gtk-doc - --disable-gudev - --disable-introspection - --disable-kmod - --disable-libcryptsetup - --disable-microhttpd - --disable-pam - --disable-polkit - --disable-qrencode - --disable-selinux - --disable-tcpwrap - --disable-tests - --disable-xattr - --disable-xz - --without-python - ) - fi - # Work around bug 463846. tc-export CC autotools-utils_src_configure } -multilib_src_compile() { - local mymakeopts=( +src_compile() { + autotools-utils_src_compile \ udevlibexecdir="${MY_UDEVDIR}" - ) - - if multilib_is_native_abi; then - emake "${mymakeopts[@]}" - else - echo 'gentoo: $(lib_LTLIBRARIES) $(pkgconfiglib_DATA)' | \ - emake "${mymakeopts[@]}" -f Makefile -f - gentoo - fi } src_install() { - MULTILIB_WRAPPED_HEADERS=() - - if use gudev; then - MULTILIB_WRAPPED_HEADERS+=( - /usr/include/gudev-1.0/gudev/gudev.h - /usr/include/gudev-1.0/gudev/gudevclient.h - /usr/include/gudev-1.0/gudev/gudevdevice.h - /usr/include/gudev-1.0/gudev/gudevenumerator.h - /usr/include/gudev-1.0/gudev/gudevenums.h - /usr/include/gudev-1.0/gudev/gudevenumtypes.h - /usr/include/gudev-1.0/gudev/gudevtypes.h - ) - fi - - multilib-minimal_src_install -} - -multilib_src_install() { - local mymakeopts=( - udevlibexecdir="${MY_UDEVDIR}" + autotools-utils_src_install -j1 \ + udevlibexecdir="${MY_UDEVDIR}" \ dist_udevhwdb_DATA= - DESTDIR="${D}" - ) - - if multilib_is_native_abi; then - emake "${mymakeopts[@]}" -j1 install - else - mymakeopts+=( - install-libLTLIBRARIES - install-pkgconfiglibDATA - install-includeHEADERS - install-pkgincludeHEADERS - ) - - emake "${mymakeopts[@]}" - fi -} - -multilib_src_install_all() { - prune_libtool_files --modules # keep udev working without initramfs, for openrc compat dodir /bin /sbin @@ -321,6 +242,50 @@ multilib_src_install_all() { done } +migrate_locale() { + local envd_locale_def="${EROOT%/}/etc/env.d/02locale" + local envd_locale=( "${EROOT%/}"/etc/env.d/??locale ) + local locale_conf="${EROOT%/}/etc/locale.conf" + + if [[ ! -L ${locale_conf} && ! -e ${locale_conf} ]]; then + # if locale.conf does not exist... + if [[ -e ${envd_locale} ]]; then + # ...either copy env.d/??locale if there's one + ebegin "Moving ${envd_locale} to ${locale_conf}" + mv "${envd_locale}" "${locale_conf}" + eend ${?} || FAIL=1 + else + # ...or create a dummy default + ebegin "Creating ${locale_conf}" + cat > "${locale_conf}" <<-EOF + # This file has been created by the sys-apps/systemd ebuild. + # See locale.conf(5) and localectl(1). + + # LANG=${LANG} + EOF + eend ${?} || FAIL=1 + fi + fi + + if [[ ! -L ${envd_locale} ]]; then + # now, if env.d/??locale is not a symlink (to locale.conf)... + if [[ -e ${envd_locale} ]]; then + # ...warn the user that he has duplicate locale settings + ewarn + ewarn "To ensure consistent behavior, you should replace ${envd_locale}" + ewarn "with a symlink to ${locale_conf}. Please migrate your settings" + ewarn "and create the symlink with the following command:" + ewarn "ln -s -n -f ../locale.conf ${envd_locale}" + ewarn + else + # ...or just create the symlink if there's nothing here + ebegin "Creating ${envd_locale_def} -> ../locale.conf symlink" + ln -n -s ../locale.conf "${envd_locale_def}" + eend ${?} || FAIL=1 + fi + fi +} + pkg_postinst() { # for udev rules enewgroup dialout @@ -338,13 +303,22 @@ pkg_postinst() { udevadm hwdb --update --root="${ROOT%/}" fi - if [[ ${ROOT} == "" || ${ROOT} == "/" ]]; then - udevadm control --reload - fi + udev_reload || FAIL=1 # Bug 468876 fcaps cap_dac_override,cap_sys_ptrace=ep usr/bin/systemd-detect-virt + # Bug 465468, make sure locales are respect, and ensure consistency + # between OpenRC & systemd + migrate_locale + + if [[ ${FAIL} ]]; then + eerror "One of the postinst commands failed. Please check the postinst output" + eerror "for errors. You may need to clean up your system and/or try installing" + eerror "systemd again." + eerror + fi + if [[ ! -L "${ROOT}"/etc/mtab ]]; then ewarn "Upstream mandates the /etc/mtab file should be a symlink to /proc/mounts." ewarn "Not having it is not supported by upstream and will cause tools like 'df'" diff --git a/sys-apps/systemd/systemd-206-r3.ebuild b/sys-apps/systemd/systemd-206-r3.ebuild deleted file mode 100644 index 14c7d24f708f..000000000000 --- a/sys-apps/systemd/systemd-206-r3.ebuild +++ /dev/null @@ -1,378 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-206-r3.ebuild,v 1.7 2013/09/06 19:58:12 pacho Exp $ - -EAPI=5 - -AUTOTOOLS_PRUNE_LIBTOOL_FILES=all -PYTHON_COMPAT=( python2_7 ) -inherit autotools-utils bash-completion-r1 fcaps linux-info multilib \ - multilib-minimal pam python-single-r1 systemd toolchain-funcs udev \ - user - -DESCRIPTION="System and service manager for Linux" -HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd" -SRC_URI="http://www.freedesktop.org/software/systemd/${P}.tar.xz" - -LICENSE="GPL-2 LGPL-2.1 MIT" -SLOT="0" -KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" -IUSE="acl audit cryptsetup doc +firmware-loader gcrypt gudev http introspection - +kmod lzma openrc pam policykit python qrcode selinux tcpd test - vanilla xattr" - -MINKV="3.0" - -COMMON_DEPEND=">=sys-apps/dbus-1.6.8-r1 - >=sys-apps/util-linux-2.20 - sys-libs/libcap - acl? ( sys-apps/acl ) - audit? ( >=sys-process/audit-2 ) - cryptsetup? ( >=sys-fs/cryptsetup-1.6 ) - gcrypt? ( >=dev-libs/libgcrypt-1.4.5 ) - gudev? ( >=dev-libs/glib-2 ) - http? ( net-libs/libmicrohttpd ) - introspection? ( >=dev-libs/gobject-introspection-1.31.1 ) - kmod? ( >=sys-apps/kmod-14-r1 ) - lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] ) - pam? ( virtual/pam ) - python? ( ${PYTHON_DEPS} ) - qrcode? ( media-gfx/qrencode ) - selinux? ( sys-libs/libselinux ) - tcpd? ( sys-apps/tcp-wrappers ) - xattr? ( sys-apps/attr ) - abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r8 - !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )" - -# baselayout-2.2 has /run -RDEPEND="${COMMON_DEPEND} - >=sys-apps/baselayout-2.2 - openrc? ( >=sys-fs/udev-init-scripts-25 ) - || ( - >=sys-apps/util-linux-2.22 - <sys-apps/sysvinit-2.88-r4 - ) - !sys-apps/gentoo-systemd-integration - !sys-auth/nss-myhostname - !<sys-libs/glibc-2.10 - !sys-fs/udev" - -PDEPEND=">=sys-apps/hwids-20130717-r1[udev] - policykit? ( sys-auth/polkit )" - -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - dev-util/gperf - >=dev-util/intltool-0.50 - >=sys-devel/binutils-2.23.1 - >=sys-devel/gcc-4.6 - >=sys-kernel/linux-headers-${MINKV} - virtual/pkgconfig - doc? ( >=dev-util/gtk-doc-1.18 )" - -pkg_pretend() { - local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS ~DEVTMPFS - ~FANOTIFY ~HOTPLUG ~INOTIFY_USER ~IPV6 ~NET ~PROC_FS ~SIGNALFD - ~SYSFS ~!IDE ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2" -# ~!FW_LOADER_USER_HELPER" - - use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" - use pam && CONFIG_CHECK+=" ~AUDITSYSCALL" - - # read null-terminated argv[0] from PID 1 - # and see which path to systemd was used (if any) - local init_path - IFS= read -r -d '' init_path < /proc/1/cmdline - if [[ ${init_path} == */bin/systemd ]]; then - eerror "You are using a compatibility symlink to run systemd. The symlink" - eerror "has been removed. Please update your bootloader to use:" - eerror - eerror " init=/usr/lib/systemd/systemd" - eerror - eerror "and reboot your system. We are sorry for the inconvenience." - if [[ ${MERGE_TYPE} != buildonly ]]; then - die "Compatibility symlink used to boot systemd." - fi - fi - - if [[ ${MERGE_TYPE} != binary ]]; then - if [[ $(gcc-major-version) -lt 4 - || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 6 ) ]] - then - eerror "systemd requires at least gcc 4.6 to build. Please switch the active" - eerror "gcc version using gcc-config." - die "systemd requires at least gcc 4.6" - fi - fi - - if [[ ${MERGE_TYPE} != buildonly ]]; then - if kernel_is -lt ${MINKV//./ }; then - ewarn "Kernel version at least ${MINKV} required" - fi - - if ! use firmware-loader && kernel_is -lt 3 8; then - ewarn "You seem to be using kernel older than 3.8. Those kernel versions" - ewarn "require systemd with USE=firmware-loader to support loading" - ewarn "firmware. Missing this flag may cause some hardware not to work." - fi - - check_extra_config - fi -} - -pkg_setup() { - use python && python-single-r1_pkg_setup -} - -src_prepare() { - local PATCHES=( - #477954 - gnome-shell-3.8* session unlock broken - "${FILESDIR}"/206-0001-logind-update-state-file-after-generating-the-sessio.patch - #474946 - localectl does not find keymaps - "${FILESDIR}"/206-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch - #478198 - wrong permission for static-nodes - "${FILESDIR}"/206-0003-tmpfiles-support-passing-prefix-multiple-times.patch - "${FILESDIR}"/206-0004-tmpfiles-introduce-exclude-prefix.patch - "${FILESDIR}"/206-0005-tmpfiles-setup-exclude-dev-prefixes-files.patch - ) - - autotools-utils_src_prepare -} - -multilib_src_configure() { - local myeconfargs=( - --localstatedir=/var - --with-pamlibdir=$(getpam_mod_dir) - # avoid bash-completion dep - --with-bashcompletiondir="$(get_bashcompdir)" - # make sure we get /bin:/sbin in $PATH - --enable-split-usr - # disable sysv compatibility - --with-sysvinit-path= - --with-sysvrcnd-path= - # no deps - --enable-efi - --enable-ima - # optional components/dependencies - $(use_enable acl) - $(use_enable audit) - $(use_enable cryptsetup libcryptsetup) - $(use_enable doc gtk-doc) - $(use_enable gcrypt) - $(use_enable gudev) - $(use_enable http microhttpd) - $(use_enable introspection) - $(use_enable kmod) - $(use_enable lzma xz) - $(use_enable pam) - $(use_enable policykit polkit) - $(use_with python) - $(use python && echo PYTHON_CONFIG=/usr/bin/python-config-${EPYTHON#python}) - $(use_enable qrcode qrencode) - $(use_enable selinux) - $(use_enable tcpd tcpwrap) - $(use_enable test tests) - $(use_enable xattr) - - # not supported (avoid automagic deps in the future) - --disable-chkconfig - - # hardcode a few paths to spare some deps - QUOTAON=/usr/sbin/quotaon - QUOTACHECK=/usr/sbin/quotacheck - ) - - # Keep using the one where the rules were installed. - MY_UDEVDIR=$(get_udevdir) - - if use firmware-loader; then - myeconfargs+=( - --with-firmware-path="/lib/firmware/updates:/lib/firmware" - ) - fi - - if ! multilib_is_native_abi; then - myeconfargs+=( - ac_cv_search_cap_init= - ac_cv_header_sys_capability_h=yes - DBUS_CFLAGS=' ' - DBUS_LIBS=' ' - - --disable-acl - --disable-audit - --disable-gcrypt - --disable-gtk-doc - --disable-gudev - --disable-introspection - --disable-kmod - --disable-libcryptsetup - --disable-microhttpd - --disable-pam - --disable-polkit - --disable-qrencode - --disable-selinux - --disable-tcpwrap - --disable-tests - --disable-xattr - --disable-xz - --without-python - ) - fi - - # Work around bug 463846. - tc-export CC - - autotools-utils_src_configure -} - -multilib_src_compile() { - local mymakeopts=( - udevlibexecdir="${MY_UDEVDIR}" - ) - - if multilib_is_native_abi; then - emake "${mymakeopts[@]}" - else - echo 'gentoo: $(lib_LTLIBRARIES) $(pkgconfiglib_DATA)' | \ - emake "${mymakeopts[@]}" -f Makefile -f - gentoo - fi -} - -src_install() { - MULTILIB_WRAPPED_HEADERS=() - - if use gudev; then - MULTILIB_WRAPPED_HEADERS+=( - /usr/include/gudev-1.0/gudev/gudev.h - /usr/include/gudev-1.0/gudev/gudevclient.h - /usr/include/gudev-1.0/gudev/gudevdevice.h - /usr/include/gudev-1.0/gudev/gudevenumerator.h - /usr/include/gudev-1.0/gudev/gudevenums.h - /usr/include/gudev-1.0/gudev/gudevenumtypes.h - /usr/include/gudev-1.0/gudev/gudevtypes.h - ) - fi - - multilib-minimal_src_install -} - -multilib_src_install() { - local mymakeopts=( - udevlibexecdir="${MY_UDEVDIR}" - dist_udevhwdb_DATA= - DESTDIR="${D}" - ) - - if multilib_is_native_abi; then - emake "${mymakeopts[@]}" -j1 install - else - mymakeopts+=( - install-libLTLIBRARIES - install-pkgconfiglibDATA - install-includeHEADERS - install-pkgincludeHEADERS - ) - - emake "${mymakeopts[@]}" - fi -} - -multilib_src_install_all() { - prune_libtool_files --modules - - # keep udev working without initramfs, for openrc compat - dodir /bin /sbin - mv "${D}"/usr/lib/systemd/systemd-udevd "${D}"/sbin/udevd || die - mv "${D}"/usr/bin/udevadm "${D}"/bin/udevadm || die - dosym ../../../sbin/udevd /usr/lib/systemd/systemd-udevd - dosym ../../bin/udevadm /usr/bin/udevadm - - # zsh completion - insinto /usr/share/zsh/site-functions - newins shell-completion/systemd-zsh-completion.zsh "_${PN}" - - # compat for init= use - dosym ../usr/lib/systemd/systemd /bin/systemd - dosym ../lib/systemd/systemd /usr/bin/systemd - # rsyslog.service depends on it... - dosym ../usr/bin/systemctl /bin/systemctl - - # we just keep sysvinit tools, so no need for the mans - rm "${D}"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8 \ - || die - rm "${D}"/usr/share/man/man1/init.1 || die - - if ! use vanilla; then - # Create /run/lock as required by new baselay/OpenRC compat. - systemd_dotmpfilesd "${FILESDIR}"/gentoo-run.conf - - # Add mount-rules for /var/lock and /var/run, bug #433607 - systemd_dounit "${FILESDIR}"/var-{lock,run}.mount - systemd_enable_service sysinit.target var-lock.mount - systemd_enable_service sysinit.target var-run.mount - fi - - # Disable storing coredumps in journald, bug #433457 - mv "${D}"/usr/lib/sysctl.d/50-coredump.conf{,.disabled} || die - - # Preserve empty dirs in /etc & /var, bug #437008 - keepdir /etc/binfmt.d /etc/modules-load.d /etc/tmpfiles.d \ - /etc/systemd/ntp-units.d /etc/systemd/user /var/lib/systemd - - # Check whether we won't break user's system. - local x - for x in /bin/systemd /usr/bin/systemd \ - /usr/bin/udevadm /usr/lib/systemd/systemd-udevd - do - [[ -x ${D}${x} ]] || die "${x} symlink broken, aborting." - done -} - -pkg_postinst() { - # for udev rules - enewgroup dialout - - enewgroup systemd-journal - if use http; then - enewgroup systemd-journal-gateway - enewuser systemd-journal-gateway -1 -1 -1 systemd-journal-gateway - fi - systemd_update_catalog - - # Keep this here in case the database format changes so it gets updated - # when required. Despite that this file is owned by sys-apps/hwids. - if has_version "sys-apps/hwids[udev]"; then - udevadm hwdb --update --root="${ROOT%/}" - fi - - if [[ ${ROOT} == "" || ${ROOT} == "/" ]]; then - udevadm control --reload - fi - - # Bug 468876 - fcaps cap_dac_override,cap_sys_ptrace=ep usr/bin/systemd-detect-virt - - if [[ ! -L "${ROOT}"/etc/mtab ]]; then - ewarn "Upstream mandates the /etc/mtab file should be a symlink to /proc/mounts." - ewarn "Not having it is not supported by upstream and will cause tools like 'df'" - ewarn "and 'mount' to not work properly. Please run:" - ewarn " # ln -sf '${ROOT}proc/self/mounts' '${ROOT}etc/mtab'" - ewarn - fi - - if ! has_version sys-apps/systemd-ui; then - elog "To get additional features, a number of optional runtime dependencies may" - elog "be installed:" - elog "- sys-apps/systemd-ui: for GTK+ systemadm UI and gnome-ask-password-agent" - fi -} - -pkg_prerm() { - # If removing systemd completely, remove the catalog database. - if [[ ! ${REPLACED_BY_VERSION} ]]; then - rm -f -v "${EROOT}"/var/lib/systemd/catalog/database - fi -} diff --git a/sys-apps/systemd/systemd-206-r5.ebuild b/sys-apps/systemd/systemd-206-r5.ebuild deleted file mode 100644 index 85b1336c7c57..000000000000 --- a/sys-apps/systemd/systemd-206-r5.ebuild +++ /dev/null @@ -1,374 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-206-r5.ebuild,v 1.1 2013/09/14 08:47:56 pacho Exp $ - -EAPI=5 - -AUTOTOOLS_PRUNE_LIBTOOL_FILES=all -PYTHON_COMPAT=( python2_7 ) -inherit autotools-utils bash-completion-r1 fcaps linux-info multilib \ - multilib-minimal pam python-single-r1 systemd toolchain-funcs udev \ - user - -DESCRIPTION="System and service manager for Linux" -HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd" -SRC_URI="http://www.freedesktop.org/software/systemd/${P}.tar.xz" - -LICENSE="GPL-2 LGPL-2.1 MIT" -SLOT="0" -KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" -IUSE="acl audit cryptsetup doc +firmware-loader gcrypt gudev http introspection - +kmod lzma openrc pam policykit python qrcode selinux tcpd test - vanilla xattr" - -MINKV="3.0" - -COMMON_DEPEND=" - >=sys-apps/dbus-1.6.8-r1 - >=sys-apps/util-linux-2.20 - sys-libs/libcap - acl? ( sys-apps/acl ) - audit? ( >=sys-process/audit-2 ) - cryptsetup? ( >=sys-fs/cryptsetup-1.6 ) - gcrypt? ( >=dev-libs/libgcrypt-1.4.5 ) - gudev? ( >=dev-libs/glib-2 ) - http? ( net-libs/libmicrohttpd ) - introspection? ( >=dev-libs/gobject-introspection-1.31.1 ) - kmod? ( >=sys-apps/kmod-14-r1 ) - lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] ) - pam? ( virtual/pam ) - python? ( ${PYTHON_DEPS} ) - qrcode? ( media-gfx/qrencode ) - selinux? ( sys-libs/libselinux ) - tcpd? ( sys-apps/tcp-wrappers ) - xattr? ( sys-apps/attr ) - abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r8 - !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] ) -" -# baselayout-2.2 has /run -RDEPEND="${COMMON_DEPEND} - >=sys-apps/baselayout-2.2 - openrc? ( >=sys-fs/udev-init-scripts-25 ) - || ( - >=sys-apps/util-linux-2.22 - <sys-apps/sysvinit-2.88-r4 - ) - !vanilla? ( sys-apps/gentoo-systemd-integration ) - !sys-auth/nss-myhostname - !<sys-libs/glibc-2.10 - !sys-fs/udev -" -PDEPEND=" - >=sys-apps/hwids-20130717-r1[udev] - policykit? ( sys-auth/polkit ) -" -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - dev-util/gperf - >=dev-util/intltool-0.50 - >=sys-devel/binutils-2.23.1 - >=sys-devel/gcc-4.6 - >=sys-kernel/linux-headers-${MINKV} - virtual/pkgconfig - doc? ( >=dev-util/gtk-doc-1.18 ) -" - -pkg_pretend() { - local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS ~DEVTMPFS - ~FANOTIFY ~HOTPLUG ~INOTIFY_USER ~IPV6 ~NET ~PROC_FS ~SIGNALFD - ~SYSFS ~!IDE ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2" -# ~!FW_LOADER_USER_HELPER" - - use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" - use pam && CONFIG_CHECK+=" ~AUDITSYSCALL" - - # read null-terminated argv[0] from PID 1 - # and see which path to systemd was used (if any) - local init_path - IFS= read -r -d '' init_path < /proc/1/cmdline - if [[ ${init_path} == */bin/systemd ]]; then - eerror "You are using a compatibility symlink to run systemd. The symlink" - eerror "has been removed. Please update your bootloader to use:" - eerror - eerror " init=/usr/lib/systemd/systemd" - eerror - eerror "and reboot your system. We are sorry for the inconvenience." - if [[ ${MERGE_TYPE} != buildonly ]]; then - die "Compatibility symlink used to boot systemd." - fi - fi - - if [[ ${MERGE_TYPE} != binary ]]; then - if [[ $(gcc-major-version) -lt 4 - || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 6 ) ]] - then - eerror "systemd requires at least gcc 4.6 to build. Please switch the active" - eerror "gcc version using gcc-config." - die "systemd requires at least gcc 4.6" - fi - fi - - if [[ ${MERGE_TYPE} != buildonly ]]; then - if kernel_is -lt ${MINKV//./ }; then - ewarn "Kernel version at least ${MINKV} required" - fi - - if ! use firmware-loader && kernel_is -lt 3 8; then - ewarn "You seem to be using kernel older than 3.8. Those kernel versions" - ewarn "require systemd with USE=firmware-loader to support loading" - ewarn "firmware. Missing this flag may cause some hardware not to work." - fi - - check_extra_config - fi -} - -pkg_setup() { - use python && python-single-r1_pkg_setup -} - -src_prepare() { - local PATCHES=( - #477954 - gnome-shell-3.8* session unlock broken - "${FILESDIR}"/206-0001-logind-update-state-file-after-generating-the-sessio.patch - #474946 - localectl does not find keymaps - "${FILESDIR}"/206-0002-Add-usr-share-keymaps-to-localectl-supported-locatio.patch - #478198 - wrong permission for static-nodes - "${FILESDIR}"/206-0003-tmpfiles-support-passing-prefix-multiple-times.patch - "${FILESDIR}"/206-0004-tmpfiles-introduce-exclude-prefix.patch - "${FILESDIR}"/206-0005-tmpfiles-setup-exclude-dev-prefixes-files.patch - #481554 - tabs in environment files should be allowed - "${FILESDIR}"/206-0006-allow-tabs-in-configuration-files.patch - "${FILESDIR}"/206-0007-allow-tabs-in-configuration-files2.patch - ) - - autotools-utils_src_prepare -} - -multilib_src_configure() { - local myeconfargs=( - --localstatedir=/var - --with-pamlibdir=$(getpam_mod_dir) - # avoid bash-completion dep - --with-bashcompletiondir="$(get_bashcompdir)" - # make sure we get /bin:/sbin in $PATH - --enable-split-usr - # disable sysv compatibility - --with-sysvinit-path= - --with-sysvrcnd-path= - # no deps - --enable-efi - --enable-ima - # optional components/dependencies - $(use_enable acl) - $(use_enable audit) - $(use_enable cryptsetup libcryptsetup) - $(use_enable doc gtk-doc) - $(use_enable gcrypt) - $(use_enable gudev) - $(use_enable http microhttpd) - $(use_enable introspection) - $(use_enable kmod) - $(use_enable lzma xz) - $(use_enable pam) - $(use_enable policykit polkit) - $(use_with python) - $(use python && echo PYTHON_CONFIG=/usr/bin/python-config-${EPYTHON#python}) - $(use_enable qrcode qrencode) - $(use_enable selinux) - $(use_enable tcpd tcpwrap) - $(use_enable test tests) - $(use_enable xattr) - - # not supported (avoid automagic deps in the future) - --disable-chkconfig - - # hardcode a few paths to spare some deps - QUOTAON=/usr/sbin/quotaon - QUOTACHECK=/usr/sbin/quotacheck - ) - - # Keep using the one where the rules were installed. - MY_UDEVDIR=$(get_udevdir) - - if use firmware-loader; then - myeconfargs+=( - --with-firmware-path="/lib/firmware/updates:/lib/firmware" - ) - fi - - if ! multilib_is_native_abi; then - myeconfargs+=( - ac_cv_search_cap_init= - ac_cv_header_sys_capability_h=yes - DBUS_CFLAGS=' ' - DBUS_LIBS=' ' - - --disable-acl - --disable-audit - --disable-gcrypt - --disable-gtk-doc - --disable-gudev - --disable-introspection - --disable-kmod - --disable-libcryptsetup - --disable-microhttpd - --disable-pam - --disable-polkit - --disable-qrencode - --disable-selinux - --disable-tcpwrap - --disable-tests - --disable-xattr - --disable-xz - --without-python - ) - fi - - # Work around bug 463846. - tc-export CC - - autotools-utils_src_configure -} - -multilib_src_compile() { - local mymakeopts=( - udevlibexecdir="${MY_UDEVDIR}" - ) - - if multilib_is_native_abi; then - emake "${mymakeopts[@]}" - else - echo 'gentoo: $(lib_LTLIBRARIES) $(pkgconfiglib_DATA)' | \ - emake "${mymakeopts[@]}" -f Makefile -f - gentoo - fi -} - -src_install() { - MULTILIB_WRAPPED_HEADERS=() - - if use gudev; then - MULTILIB_WRAPPED_HEADERS+=( - /usr/include/gudev-1.0/gudev/gudev.h - /usr/include/gudev-1.0/gudev/gudevclient.h - /usr/include/gudev-1.0/gudev/gudevdevice.h - /usr/include/gudev-1.0/gudev/gudevenumerator.h - /usr/include/gudev-1.0/gudev/gudevenums.h - /usr/include/gudev-1.0/gudev/gudevenumtypes.h - /usr/include/gudev-1.0/gudev/gudevtypes.h - ) - fi - - multilib-minimal_src_install -} - -multilib_src_install() { - local mymakeopts=( - udevlibexecdir="${MY_UDEVDIR}" - dist_udevhwdb_DATA= - DESTDIR="${D}" - ) - - if multilib_is_native_abi; then - emake "${mymakeopts[@]}" -j1 install - else - mymakeopts+=( - install-libLTLIBRARIES - install-pkgconfiglibDATA - install-includeHEADERS - install-pkgincludeHEADERS - ) - - emake "${mymakeopts[@]}" - fi -} - -multilib_src_install_all() { - prune_libtool_files --modules - - # keep udev working without initramfs, for openrc compat - dodir /bin /sbin - mv "${D}"/usr/lib/systemd/systemd-udevd "${D}"/sbin/udevd || die - mv "${D}"/usr/bin/udevadm "${D}"/bin/udevadm || die - dosym ../../../sbin/udevd /usr/lib/systemd/systemd-udevd - dosym ../../bin/udevadm /usr/bin/udevadm - - # zsh completion - insinto /usr/share/zsh/site-functions - newins shell-completion/systemd-zsh-completion.zsh "_${PN}" - - # compat for init= use - dosym ../usr/lib/systemd/systemd /bin/systemd - dosym ../lib/systemd/systemd /usr/bin/systemd - # rsyslog.service depends on it... - dosym ../usr/bin/systemctl /bin/systemctl - - # we just keep sysvinit tools, so no need for the mans - rm "${D}"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8 \ - || die - rm "${D}"/usr/share/man/man1/init.1 || die - - # Disable storing coredumps in journald, bug #433457 - mv "${D}"/usr/lib/sysctl.d/50-coredump.conf{,.disabled} || die - - # Preserve empty dirs in /etc & /var, bug #437008 - keepdir /etc/binfmt.d /etc/modules-load.d /etc/tmpfiles.d \ - /etc/systemd/ntp-units.d /etc/systemd/user /var/lib/systemd - - # Check whether we won't break user's system. - local x - for x in /bin/systemd /usr/bin/systemd \ - /usr/bin/udevadm /usr/lib/systemd/systemd-udevd - do - [[ -x ${D}${x} ]] || die "${x} symlink broken, aborting." - done -} - -pkg_postinst() { - # for udev rules - enewgroup dialout - - enewgroup systemd-journal - if use http; then - enewgroup systemd-journal-gateway - enewuser systemd-journal-gateway -1 -1 -1 systemd-journal-gateway - fi - systemd_update_catalog - - # Keep this here in case the database format changes so it gets updated - # when required. Despite that this file is owned by sys-apps/hwids. - if has_version "sys-apps/hwids[udev]"; then - udevadm hwdb --update --root="${ROOT%/}" - fi - - if [[ ${ROOT} == "" || ${ROOT} == "/" ]]; then - udevadm control --reload - fi - - # Bug 468876 - fcaps cap_dac_override,cap_sys_ptrace=ep usr/bin/systemd-detect-virt - - if [[ ! -L "${ROOT}"/etc/mtab ]]; then - ewarn "Upstream mandates the /etc/mtab file should be a symlink to /proc/mounts." - ewarn "Not having it is not supported by upstream and will cause tools like 'df'" - ewarn "and 'mount' to not work properly. Please run:" - ewarn " # ln -sf '${ROOT}proc/self/mounts' '${ROOT}etc/mtab'" - ewarn - fi - - if ! has_version sys-apps/systemd-ui; then - elog "To get additional features, a number of optional runtime dependencies may" - elog "be installed:" - elog "- sys-apps/systemd-ui: for GTK+ systemadm UI and gnome-ask-password-agent" - fi -} - -pkg_prerm() { - # If removing systemd completely, remove the catalog database. - if [[ ! ${REPLACED_BY_VERSION} ]]; then - rm -f -v "${EROOT}"/var/lib/systemd/catalog/database - fi -} diff --git a/sys-apps/systemd/systemd-207-r1.ebuild b/sys-apps/systemd/systemd-207-r2.ebuild index ac1700cdd909..7f3068461ab2 100644 --- a/sys-apps/systemd/systemd-207-r1.ebuild +++ b/sys-apps/systemd/systemd-207-r2.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-207-r1.ebuild,v 1.1 2013/09/18 10:51:33 mgorny Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-207-r2.ebuild,v 1.1 2013/09/22 08:36:15 mgorny Exp $ EAPI=5 @@ -118,6 +118,8 @@ src_prepare() { # failure mounting swap partitions, bug #484998 "${FILESDIR}"/${PV}-0001-swap-fix-reverse-dependencies.patch "${FILESDIR}"/${PV}-0002-swap-create-.wants-symlink-to-auto-swap-devices.patch + # race condition in polkit use, bug #485546 + "${FILESDIR}"/204-0001-polkit-Avoid-race-condition-in-scraping-proc.patch ) autotools-utils_src_prepare diff --git a/sys-apps/systemd/systemd-207.ebuild b/sys-apps/systemd/systemd-207.ebuild deleted file mode 100644 index 653095261142..000000000000 --- a/sys-apps/systemd/systemd-207.ebuild +++ /dev/null @@ -1,309 +0,0 @@ -# Copyright 1999-2013 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/systemd/systemd-207.ebuild,v 1.2 2013/09/14 18:44:05 floppym Exp $ - -EAPI=5 - -AUTOTOOLS_PRUNE_LIBTOOL_FILES=all -PYTHON_COMPAT=( python2_7 ) -inherit autotools-utils bash-completion-r1 fcaps linux-info multilib \ - multilib-minimal pam python-single-r1 systemd toolchain-funcs udev \ - user - -DESCRIPTION="System and service manager for Linux" -HOMEPAGE="http://www.freedesktop.org/wiki/Software/systemd" -SRC_URI="http://www.freedesktop.org/software/systemd/${P}.tar.xz" - -LICENSE="GPL-2 LGPL-2.1 MIT public-domain" -SLOT="0" -KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86" -IUSE="acl audit cryptsetup doc +firmware-loader gcrypt gudev http introspection - +kmod lzma openrc pam policykit python qrcode selinux tcpd test - vanilla xattr" - -MINKV="3.0" - -COMMON_DEPEND=">=sys-apps/dbus-1.6.8-r1 - >=sys-apps/util-linux-2.20 - sys-libs/libcap - acl? ( sys-apps/acl ) - audit? ( >=sys-process/audit-2 ) - cryptsetup? ( >=sys-fs/cryptsetup-1.6 ) - gcrypt? ( >=dev-libs/libgcrypt-1.4.5 ) - gudev? ( >=dev-libs/glib-2[${MULTILIB_USEDEP}] ) - http? ( net-libs/libmicrohttpd ) - introspection? ( >=dev-libs/gobject-introspection-1.31.1 ) - kmod? ( >=sys-apps/kmod-14-r1 ) - lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] ) - pam? ( virtual/pam ) - python? ( ${PYTHON_DEPS} ) - qrcode? ( media-gfx/qrencode ) - selinux? ( sys-libs/libselinux ) - tcpd? ( sys-apps/tcp-wrappers ) - xattr? ( sys-apps/attr ) - abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r9 - !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )" - -# baselayout-2.2 has /run -RDEPEND="${COMMON_DEPEND} - >=sys-apps/baselayout-2.2 - openrc? ( >=sys-fs/udev-init-scripts-25 ) - || ( - >=sys-apps/util-linux-2.22 - <sys-apps/sysvinit-2.88-r4 - ) - !vanilla? ( sys-apps/gentoo-systemd-integration ) - !sys-auth/nss-myhostname - !<sys-libs/glibc-2.10 - !sys-fs/udev" - -PDEPEND=">=sys-apps/hwids-20130717-r1[udev] - policykit? ( sys-auth/polkit )" - -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - app-text/docbook-xml-dtd:4.2 - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - dev-util/gperf - >=dev-util/intltool-0.50 - >=sys-devel/binutils-2.23.1 - >=sys-devel/gcc-4.6 - >=sys-kernel/linux-headers-${MINKV} - virtual/pkgconfig - doc? ( >=dev-util/gtk-doc-1.18 )" - -pkg_pretend() { - local CONFIG_CHECK="~AUTOFS4_FS ~BLK_DEV_BSG ~CGROUPS ~DEVTMPFS - ~EPOLL ~FANOTIFY ~FHANDLE ~INOTIFY_USER ~IPV6 ~NET ~PROC_FS - ~SECCOMP ~SIGNALFD ~SYSFS ~TIMERFD - ~!IDE ~!SYSFS_DEPRECATED ~!SYSFS_DEPRECATED_V2" - - use acl && CONFIG_CHECK+=" ~TMPFS_POSIX_ACL" - use pam && CONFIG_CHECK+=" ~AUDITSYSCALL" - kernel_is -lt 3 7 && CONFIG_CHECK+=" ~HOTPLUG" - use firmware-loader || CONFIG_CHECK+=" ~!FW_LOADER_USER_HELPER" - - if [[ ${MERGE_TYPE} != binary ]]; then - if [[ $(gcc-major-version) -lt 4 - || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 6 ) ]] - then - eerror "systemd requires at least gcc 4.6 to build. Please switch the active" - eerror "gcc version using gcc-config." - die "systemd requires at least gcc 4.6" - fi - fi - - if [[ ${MERGE_TYPE} != buildonly ]]; then - if kernel_is -lt ${MINKV//./ }; then - ewarn "Kernel version at least ${MINKV} required" - fi - - if ! use firmware-loader && kernel_is -lt 3 8; then - ewarn "You seem to be using kernel older than 3.8. Those kernel versions" - ewarn "require systemd with USE=firmware-loader to support loading" - ewarn "firmware. Missing this flag may cause some hardware not to work." - fi - - check_extra_config - fi -} - -pkg_setup() { - use python && python-single-r1_pkg_setup -} - -multilib_src_configure() { - local myeconfargs=( - --localstatedir=/var - --with-pamlibdir=$(getpam_mod_dir) - # avoid bash-completion dep - --with-bashcompletiondir="$(get_bashcompdir)" - # make sure we get /bin:/sbin in $PATH - --enable-split-usr - # disable sysv compatibility - --with-sysvinit-path= - --with-sysvrcnd-path= - # no deps - --enable-efi - --enable-ima - # optional components/dependencies - $(use_enable acl) - $(use_enable audit) - $(use_enable cryptsetup libcryptsetup) - $(use_enable doc gtk-doc) - $(use_enable gcrypt) - $(use_enable gudev) - $(use_enable http microhttpd) - $(use_enable introspection) - $(use_enable kmod) - $(use_enable lzma xz) - $(use_enable pam) - $(use_enable policykit polkit) - $(use_enable python python-devel) - $(use python && echo PYTHON_CONFIG=/usr/bin/python-config-${EPYTHON#python}) - $(use_enable qrcode qrencode) - $(use_enable selinux) - $(use_enable tcpd tcpwrap) - $(use_enable test tests) - $(use_enable xattr) - - # not supported (avoid automagic deps in the future) - --disable-chkconfig - - # hardcode a few paths to spare some deps - QUOTAON=/usr/sbin/quotaon - QUOTACHECK=/usr/sbin/quotacheck - ) - - # Keep using the one where the rules were installed. - MY_UDEVDIR=$(get_udevdir) - - if use firmware-loader; then - myeconfargs+=( - --with-firmware-path="/lib/firmware/updates:/lib/firmware" - ) - fi - - if ! multilib_is_native_abi; then - myeconfargs+=( - ac_cv_search_cap_init= - ac_cv_header_sys_capability_h=yes - DBUS_CFLAGS=' ' - DBUS_LIBS=' ' - - --disable-acl - --disable-audit - --disable-gcrypt - --disable-gtk-doc - --disable-introspection - --disable-kmod - --disable-libcryptsetup - --disable-microhttpd - --disable-pam - --disable-polkit - --disable-qrencode - --disable-selinux - --disable-tcpwrap - --disable-tests - --disable-xattr - --disable-xz - --disable-python-devel - ) - fi - - # Work around bug 463846. - tc-export CC - - autotools-utils_src_configure -} - -multilib_src_compile() { - local mymakeopts=( - udevlibexecdir="${MY_UDEVDIR}" - ) - - if multilib_is_native_abi; then - emake "${mymakeopts[@]}" - else - # prerequisites for gudev - use gudev && emake src/gudev/gudev{enumtypes,marshal}.{c,h} - - echo 'gentoo: $(lib_LTLIBRARIES) $(pkgconfiglib_DATA)' | \ - emake "${mymakeopts[@]}" -f Makefile -f - gentoo - fi -} - -multilib_src_test() { - multilib_is_native_abi || continue - - default -} - -multilib_src_install() { - local mymakeopts=( - udevlibexecdir="${MY_UDEVDIR}" - dist_udevhwdb_DATA= - DESTDIR="${D}" - ) - - if multilib_is_native_abi; then - emake "${mymakeopts[@]}" install - else - mymakeopts+=( - install-libLTLIBRARIES - install-pkgconfiglibDATA - install-includeHEADERS - # safe to call unconditionally, 'installs' empty list - install-libgudev_includeHEADERS - install-pkgincludeHEADERS - ) - - emake "${mymakeopts[@]}" - fi -} - -multilib_src_install_all() { - prune_libtool_files --modules - - # we just keep sysvinit tools, so no need for the mans - rm "${D}"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8 \ - || die - rm "${D}"/usr/share/man/man1/init.1 || die - - # Disable storing coredumps in journald, bug #433457 - mv "${D}"/usr/lib/sysctl.d/50-coredump.conf{,.disabled} || die - - # Preserve empty dirs in /etc & /var, bug #437008 - keepdir /etc/binfmt.d /etc/modules-load.d /etc/tmpfiles.d \ - /etc/systemd/ntp-units.d /etc/systemd/user /var/lib/systemd - - # Symlink /etc/sysctl.conf for easy migration. - dosym ../sysctl.conf /etc/sysctl.d/99-sysctl.conf -} - -pkg_postinst() { - # for udev rules - enewgroup dialout - - enewgroup systemd-journal - if use http; then - enewgroup systemd-journal-gateway - enewuser systemd-journal-gateway -1 -1 -1 systemd-journal-gateway - fi - systemd_update_catalog - - # Keep this here in case the database format changes so it gets updated - # when required. Despite that this file is owned by sys-apps/hwids. - if has_version "sys-apps/hwids[udev]"; then - udevadm hwdb --update --root="${ROOT%/}" - fi - - if [[ ${ROOT} == "" || ${ROOT} == "/" ]]; then - udevadm control --reload - fi - - # Bug 468876 - fcaps cap_dac_override,cap_sys_ptrace=ep usr/bin/systemd-detect-virt - - if [[ ! -L "${ROOT}"/etc/mtab ]]; then - ewarn "Upstream mandates the /etc/mtab file should be a symlink to /proc/mounts." - ewarn "Not having it is not supported by upstream and will cause tools like 'df'" - ewarn "and 'mount' to not work properly. Please run:" - ewarn " # ln -sf '${ROOT}proc/self/mounts' '${ROOT}etc/mtab'" - ewarn - fi - - if ! has_version sys-apps/systemd-ui; then - elog "To get additional features, a number of optional runtime dependencies may" - elog "be installed:" - elog "- sys-apps/systemd-ui: for GTK+ systemadm UI and gnome-ask-password-agent" - fi -} - -pkg_prerm() { - # If removing systemd completely, remove the catalog database. - if [[ ! ${REPLACED_BY_VERSION} ]]; then - rm -f -v "${EROOT}"/var/lib/systemd/catalog/database - fi -} |