diff --git a/1001-Reinstate-TIMEOUT-handling.patch b/1001-Reinstate-TIMEOUT-handling.patch index 68c0d70c..775c0a07 100644 --- a/1001-Reinstate-TIMEOUT-handling.patch +++ b/1001-Reinstate-TIMEOUT-handling.patch @@ -83,7 +83,7 @@ index 54c51ac..d2124ea 100644 void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized); int udev_device_get_devlink_priority(struct udev_device *udev_device); diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 2ad7388..5a90b60 100644 +index 7d13b4f..9be1931 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -391,7 +391,7 @@ out: diff --git a/1004-udev-netlink-null-rules.patch b/1004-udev-netlink-null-rules.patch index 5a4b457c..8634d39d 100644 --- a/1004-udev-netlink-null-rules.patch +++ b/1004-udev-netlink-null-rules.patch @@ -8,10 +8,10 @@ udevd race for netlink events (bnc#774646) 1 file changed, 2 insertions(+) diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 5a90b60..2a0bf60 100644 +index 9be1931..d0c4c72 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c -@@ -1410,6 +1410,8 @@ int main(int argc, char *argv[]) +@@ -1414,6 +1414,8 @@ int main(int argc, char *argv[]) dev = udev_monitor_receive_device(monitor); if (dev != NULL) { udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); diff --git a/1007-fix-devname-prefix.patch b/1007-fix-devname-prefix.patch index 8ca10b93..55fb3d90 100644 --- a/1007-fix-devname-prefix.patch +++ b/1007-fix-devname-prefix.patch @@ -8,13 +8,13 @@ fix modules.devname path, it isn't in /usr. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 2a0bf60..6c2c2c9 100644 +index d0c4c72..599cd3b 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c -@@ -827,7 +827,7 @@ static void static_dev_create_from_modules(struct udev *udev) - FILE *f; +@@ -831,7 +831,7 @@ static void static_dev_create_from_modules(struct udev *udev) + return; + } - uname(&kernel); - strscpyl(modules, sizeof(modules), ROOTPREFIX "/lib/modules/", kernel.release, "/modules.devname", NULL); + strscpyl(modules, sizeof(modules), "/lib/modules/", kernel.release, "/modules.devname", NULL); f = fopen(modules, "re"); diff --git a/Add-bootsplash-handling-for-password-dialogs.patch b/Add-bootsplash-handling-for-password-dialogs.patch index 63fa0a38..bf97901b 100644 --- a/Add-bootsplash-handling-for-password-dialogs.patch +++ b/Add-bootsplash-handling-for-password-dialogs.patch @@ -9,7 +9,7 @@ splash screen to verbose when a password is asked... 1 file changed, 22 insertions(+) diff --git a/src/shared/ask-password-api.c b/src/shared/ask-password-api.c -index 8a0fb89..4bece69 100644 +index 4557155..3750f64 100644 --- a/src/shared/ask-password-api.c +++ b/src/shared/ask-password-api.c @@ -63,6 +63,9 @@ int ask_password_tty( @@ -42,7 +42,7 @@ index 8a0fb89..4bece69 100644 } zero(pollfd); -@@ -240,6 +256,12 @@ finish: +@@ -239,6 +255,12 @@ finish: close_nointr_nofail(ttyfd); } diff --git a/Forward-suspend-hibernate-calls-to-pm-utils.patch b/Forward-suspend-hibernate-calls-to-pm-utils.patch index d7fd5b91..8abce1db 100644 --- a/Forward-suspend-hibernate-calls-to-pm-utils.patch +++ b/Forward-suspend-hibernate-calls-to-pm-utils.patch @@ -8,7 +8,7 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157) 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c -index 0707625..91cbdf9 100644 +index f5e78c1..8d91117 100644 --- a/src/sleep/sleep.c +++ b/src/sleep/sleep.c @@ -22,6 +22,7 @@ @@ -57,10 +57,10 @@ index 0707625..91cbdf9 100644 /* Configure the hibernation mode */ + if (!delegate_to_pmutils) { if (streq(argv[1], "hibernate")) { - if (write_one_line_file("/sys/power/disk", "platform") < 0) - write_one_line_file("/sys/power/disk", "shutdown"); + if (write_string_file("/sys/power/disk", "platform") < 0) + write_string_file("/sys/power/disk", "shutdown"); @@ -65,13 +79,14 @@ int main(int argc, char *argv[]) { - write_one_line_file("/sys/power/disk", "shutdown"); + write_string_file("/sys/power/disk", "shutdown"); } + diff --git a/Reinstate-TIMEOUT-handling.patch b/Reinstate-TIMEOUT-handling.patch deleted file mode 100644 index 68c0d70c..00000000 --- a/Reinstate-TIMEOUT-handling.patch +++ /dev/null @@ -1,129 +0,0 @@ -From: Robert Milasan -Date: Thu, 11 Apr 2013 15:39:39 +0200 -Subject: Reinstate TIMEOUT handling - -Without treating events with timeouts specially some drivers would -cause a 30 seconds stall on boot: . - -I also received reports of some drivers not working at all, even -after the timeout. - -We will remove this patch when more drivers have been fixed in -the kernel (3.4?). - -This reverts 43d5c5f03645c4b842659f9b5bd0ae465e885e92 and -57c6f8ae5f52a6e8ffc66a54966346f733dded39. ---- - src/libudev/libudev-device.c | 19 +++++++++++++++++++ - src/libudev/libudev-private.h | 1 + - src/udev/udevd.c | 13 ++++++++++--- - 3 files changed, 30 insertions(+), 3 deletions(-) - -diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c -index 6bb2e41..4fdd242 100644 ---- a/src/libudev/libudev-device.c -+++ b/src/libudev/libudev-device.c -@@ -78,6 +78,7 @@ struct udev_device { - struct udev_list tags_list; - unsigned long long int seqnum; - usec_t usec_initialized; -+ int timeout; - int devlink_priority; - int refcount; - dev_t devnum; -@@ -172,6 +173,21 @@ static int udev_device_set_devnum(struct udev_device *udev_device, dev_t devnum) - return 0; - } - -+int udev_device_get_timeout(struct udev_device *udev_device) -+{ -+ return udev_device->timeout; -+} -+ -+static int udev_device_set_timeout(struct udev_device *udev_device, int timeout) -+{ -+ char num[32]; -+ -+ udev_device->timeout = timeout; -+ snprintf(num, sizeof(num), "%u", timeout); -+ udev_device_add_property(udev_device, "TIMEOUT", num); -+ return 0; -+} -+ - const char *udev_device_get_devpath_old(struct udev_device *udev_device) - { - return udev_device->devpath_old; -@@ -462,6 +478,8 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device, - udev_device_set_devpath_old(udev_device, &property[12]); - } else if (startswith(property, "SEQNUM=")) { - udev_device_set_seqnum(udev_device, strtoull(&property[7], NULL, 10)); -+ } else if (startswith(property, "TIMEOUT=")) { -+ udev_device_set_timeout(udev_device, strtoull(&property[8], NULL, 10)); - } else if (startswith(property, "IFINDEX=")) { - udev_device_set_ifindex(udev_device, strtoull(&property[8], NULL, 10)); - } else if (startswith(property, "DEVMODE=")) { -@@ -653,6 +671,7 @@ struct udev_device *udev_device_new(struct udev *udev) - udev_list_init(udev, &udev_device->sysattr_value_list, true); - udev_list_init(udev, &udev_device->sysattr_list, false); - udev_list_init(udev, &udev_device->tags_list, true); -+ udev_device->timeout = -1; - udev_device->watch_handle = -1; - /* copy global properties */ - udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev)) -diff --git a/src/libudev/libudev-private.h b/src/libudev/libudev-private.h -index 54c51ac..d2124ea 100644 ---- a/src/libudev/libudev-private.h -+++ b/src/libudev/libudev-private.h -@@ -77,6 +77,7 @@ const char *udev_device_get_id_filename(struct udev_device *udev_device); - void udev_device_set_is_initialized(struct udev_device *udev_device); - int udev_device_add_tag(struct udev_device *udev_device, const char *tag); - void udev_device_cleanup_tags_list(struct udev_device *udev_device); -+int udev_device_get_timeout(struct udev_device *udev_device); - usec_t udev_device_get_usec_initialized(struct udev_device *udev_device); - void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized); - int udev_device_get_devlink_priority(struct udev_device *udev_device); -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 2ad7388..5a90b60 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -391,7 +391,7 @@ out: - } - } - --static void event_run(struct event *event) -+static void event_run(struct event *event, bool force) - { - struct udev_list_node *loop; - -@@ -417,7 +417,7 @@ static void event_run(struct event *event) - return; - } - -- if (children >= children_max) { -+ if (!force && children >= children_max) { - if (children_max > 1) - log_debug("maximum number (%i) of children reached\n", children); - return; -@@ -455,6 +455,13 @@ static int event_queue_insert(struct udev_device *dev) - - event->state = EVENT_QUEUED; - udev_list_node_append(&event->node, &event_list); -+ -+ /* run all events with a timeout set immediately */ -+ if (udev_device_get_timeout(dev) > 0) { -+ event_run(event, true); -+ return 0; -+ } -+ - return 0; - } - -@@ -566,7 +573,7 @@ static void event_queue_start(struct udev *udev) - if (is_devpath_busy(event)) - continue; - -- event_run(event); -+ event_run(event, false); - } - } - diff --git a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch index 5d4a06de..2432288a 100644 --- a/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +++ b/Revert-service-drop-support-for-SysV-scripts-for-the-early.patch @@ -11,7 +11,7 @@ Conflicts: 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/src/core/service.c b/src/core/service.c -index a1b2d93..da22e55 100644 +index c13ff35..0b39ec6 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -51,7 +51,8 @@ @@ -108,7 +108,7 @@ index a1b2d93..da22e55 100644 if (r < 0) return r; -@@ -3663,7 +3701,7 @@ static int service_enumerate(Manager *m) { +@@ -3661,7 +3699,7 @@ static int service_enumerate(Manager *m) { if (de->d_name[0] == 'S') { @@ -117,7 +117,7 @@ index a1b2d93..da22e55 100644 SERVICE(service)->sysv_start_priority_from_rcnd = MAX(a*10 + b, SERVICE(service)->sysv_start_priority_from_rcnd); -@@ -3680,7 +3718,8 @@ static int service_enumerate(Manager *m) { +@@ -3678,7 +3716,8 @@ static int service_enumerate(Manager *m) { goto finish; } else if (de->d_name[0] == 'K' && @@ -127,7 +127,7 @@ index a1b2d93..da22e55 100644 r = set_ensure_allocated(&shutdown_services, trivial_hash_func, trivial_compare_func); -@@ -3720,7 +3759,9 @@ static int service_enumerate(Manager *m) { +@@ -3718,7 +3757,9 @@ static int service_enumerate(Manager *m) { * runlevels we assume the stop jobs will be implicitly added * by the core logic. Also, we don't really distinguish here * between the runlevels 0 and 6 and just add them to the diff --git a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch index 5a7b6f3a..b184dde6 100644 --- a/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch +++ b/avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch @@ -8,11 +8,11 @@ Subject: avoid assertion if invalid address familily is passed to 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c -index b0fb832..b3aaca8 100644 +index 16ccb3e..884eb99 100644 --- a/src/nss-myhostname/nss-myhostname.c +++ b/src/nss-myhostname/nss-myhostname.c -@@ -384,6 +384,12 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( - struct address *addresses = NULL, *a; +@@ -383,6 +383,12 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( + struct address *a; unsigned n_addresses = 0, n; + if (af != AF_INET && af != AF_INET6) { @@ -24,7 +24,7 @@ index b0fb832..b3aaca8 100644 if (len != PROTO_ADDRESS_SIZE(af)) { *errnop = EINVAL; *h_errnop = NO_RECOVERY; -@@ -399,11 +405,6 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( +@@ -398,11 +404,6 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( if (memcmp(addr, LOCALADDRESS_IPV6, 16) == 0) goto found; diff --git a/create-default-links-for-primary-cd_dvd-drive.patch b/create-default-links-for-primary-cd_dvd-drive.patch deleted file mode 100644 index c66a9da0..00000000 --- a/create-default-links-for-primary-cd_dvd-drive.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Robert Milasan -Date: Tue, 12 Feb 2013 09:16:23 +0000 -Subject: create default links for primary cd_dvd drive - -cdrom_id: created links for the default cd/dvd drive (bnc#783054). ---- - rules/60-cdrom_id.rules | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/rules/60-cdrom_id.rules b/rules/60-cdrom_id.rules -index 6eaf76a..ec0b19a 100644 ---- a/rules/60-cdrom_id.rules -+++ b/rules/60-cdrom_id.rules -@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdrom_id --eject-media $devnode", GOTO="cdr - # enable the receiving of media eject button events - IMPORT{program}="cdrom_id --lock-media $devnode" - --KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" -+KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100" -+KERNEL=="sr0", ENV{ID_CDROM_CD_RW}=="1", SYMLINK+="cdrw", OPTIONS+="link_priority=-100" -+KERNEL=="sr0", ENV{ID_CDROM_DVD}=="1", SYMLINK+="dvd", OPTIONS+="link_priority=-100" -+KERNEL=="sr0", ENV{ID_CDROM_DVD_RW}=="1", SYMLINK+="dvdrw", OPTIONS+="link_priority=-100" - - LABEL="cdrom_end" diff --git a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch index a49b0589..4cf66998 100644 --- a/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch +++ b/delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch @@ -8,16 +8,16 @@ Subject: delay fsck / cryptsetup after md / dmraid / lvm are started 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c -index bee8a36..6edc760 100644 +index 9b8e229..0949287 100644 --- a/src/cryptsetup/cryptsetup-generator.c +++ b/src/cryptsetup/cryptsetup-generator.c -@@ -162,6 +162,7 @@ static int create_disk( +@@ -160,6 +160,7 @@ static int create_disk( + "Conflicts=umount.target\n" "DefaultDependencies=no\n" - "BindsTo=%s dev-mapper-%%i.device\n" - "After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n" + "BindsTo=dev-mapper-%i.device\n" + "After=md.service dmraid.service lvm.service\n" - "Before=umount.target\n", - d, d); + "After=systemd-readahead-collect.service systemd-readahead-replay.service\n", + f); diff --git a/units/systemd-fsck@.service.in b/units/systemd-fsck@.service.in index b3c71eb..c66a411 100644 diff --git a/disable-nss-myhostname-warning-bnc-783841.patch b/disable-nss-myhostname-warning-bnc-783841.patch index 69e136f8..c0365d7c 100644 --- a/disable-nss-myhostname-warning-bnc-783841.patch +++ b/disable-nss-myhostname-warning-bnc-783841.patch @@ -7,7 +7,7 @@ Subject: disable nss-myhostname warning (bnc#783841) 1 file changed, 1 insertion(+) diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c -index 859b5a0..4aad17b 100644 +index 0437e33..c7f454c 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -134,6 +134,7 @@ static int read_data(void) { diff --git a/fix-devname-prefix.patch b/fix-devname-prefix.patch deleted file mode 100644 index 8ca10b93..00000000 --- a/fix-devname-prefix.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Frederic Crozat -Date: Wed, 5 Dec 2012 15:13:27 +0000 -Subject: fix devname prefix - -fix modules.devname path, it isn't in /usr. ---- - src/udev/udevd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 2a0bf60..6c2c2c9 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -827,7 +827,7 @@ static void static_dev_create_from_modules(struct udev *udev) - FILE *f; - - uname(&kernel); -- strscpyl(modules, sizeof(modules), ROOTPREFIX "/lib/modules/", kernel.release, "/modules.devname", NULL); -+ strscpyl(modules, sizeof(modules), "/lib/modules/", kernel.release, "/modules.devname", NULL); - f = fopen(modules, "re"); - if (f == NULL) - return; diff --git a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch index f1538c40..189576cc 100644 --- a/fix-support-for-boot-prefixed-initscript-bnc-746506.patch +++ b/fix-support-for-boot-prefixed-initscript-bnc-746506.patch @@ -3,38 +3,40 @@ Date: Thu, 23 Aug 2012 11:08:25 +0200 Subject: fix support for boot prefixed initscript (bnc#746506) --- - src/systemctl/systemctl.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) + src/systemctl/systemctl.c | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index edd136a..36918f2 100644 +index c2b1749..84ce87c 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c -@@ -3642,7 +3642,27 @@ static int enable_sysv_units(char **args) { +@@ -4060,8 +4060,28 @@ static int enable_sysv_units(char **args) { + p[strlen(p) - sizeof(".service") + 1] = 0; + found_sysv = access(p, F_OK) >= 0; - if (!found_sysv) { - free(p); +- if (!found_sysv) ++ if (!found_sysv) { +#ifdef HAVE_SYSV_COMPAT ++ free(p); + p = NULL; + if (!isempty(arg_root)) + asprintf(&p, "%s/" SYSTEM_SYSVINIT_PATH "/boot.%s", arg_root, name); + else + asprintf(&p, SYSTEM_SYSVINIT_PATH "/boot.%s", name); + if (!p) { -+ log_error("No memory"); -+ r = -ENOMEM; ++ r = log_oom(); + goto finish; + } + p[strlen(p) - sizeof(".service") + 1] = 0; + found_sysv = access(p, F_OK) >= 0; + + if (!found_sysv) { -+ free(p); + continue; + } +#else continue; +#endif - } ++ } /* Mark this entry, so that we don't try enabling it as native unit */ + args[f] = (char*) ""; diff --git a/force-lvm-restart-after-cryptsetup-target-is-reached.patch b/force-lvm-restart-after-cryptsetup-target-is-reached.patch index 1d1bc65b..ccfaf3f0 100644 --- a/force-lvm-restart-after-cryptsetup-target-is-reached.patch +++ b/force-lvm-restart-after-cryptsetup-target-is-reached.patch @@ -3,11 +3,11 @@ Date: Mon, 7 Nov 2011 18:04:20 +0100 Subject: force lvm restart after cryptsetup target is reached --- - src/cryptsetup/cryptsetup-generator.c | 58 ++++++++++++++++++++++++++++++++++- - 1 file changed, 57 insertions(+), 1 deletion(-) + src/cryptsetup/cryptsetup-generator.c | 57 ++++++++++++++++++++++++++++++++++- + 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c -index 8959bf5..d386b60 100644 +index ac0ed58..9b8e229 100644 --- a/src/cryptsetup/cryptsetup-generator.c +++ b/src/cryptsetup/cryptsetup-generator.c @@ -22,6 +22,7 @@ @@ -18,14 +18,13 @@ index 8959bf5..d386b60 100644 #include "log.h" #include "util.h" -@@ -64,6 +65,55 @@ static bool has_option(const char *haystack, const char *needle) { +@@ -64,6 +65,54 @@ static bool has_option(const char *haystack, const char *needle) { return false; } +static int create_storage_after_cryptsetup (void) { -+ int r; -+ char _cleanup_free_ *to = NULL, *p = NULL; -+ FILE _cleanup_fclose_ *f = NULL; ++ _cleanup_free_ char *to = NULL, *p = NULL; ++ _cleanup_fclose_ FILE *f = NULL; + + if (asprintf(&p, "%s/storage-after-cryptsetup.service", arg_dest) < 0) + return log_oom(); @@ -74,15 +73,15 @@ index 8959bf5..d386b60 100644 static int create_disk( const char *name, const char *device, -@@ -284,6 +334,7 @@ int main(int argc, char *argv[]) { - FILE _cleanup_fclose_ *f = NULL; +@@ -331,6 +380,7 @@ int main(int argc, char *argv[]) { + _cleanup_fclose_ FILE *f = NULL; unsigned n = 0; int r = EXIT_SUCCESS; + bool no_crypttab = false; char **i; - char _cleanup_strv_free_ **arg_proc_cmdline_disks_done = NULL; - char _cleanup_strv_free_ **arg_proc_cmdline_disks = NULL; -@@ -312,8 +363,10 @@ 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; +@@ -360,8 +410,10 @@ int main(int argc, char *argv[]) { f = fopen("/etc/crypttab", "re"); if (!f) { @@ -94,7 +93,7 @@ index 8959bf5..d386b60 100644 else { r = EXIT_FAILURE; log_error("Failed to open /etc/crypttab: %m"); -@@ -397,5 +450,8 @@ int main(int argc, char *argv[]) { +@@ -445,5 +497,8 @@ int main(int argc, char *argv[]) { r = EXIT_FAILURE; } diff --git a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch index 9fba097e..1ed955b9 100644 --- a/handle-SYSTEMCTL_OPTIONS-environment-variable.patch +++ b/handle-SYSTEMCTL_OPTIONS-environment-variable.patch @@ -4,23 +4,25 @@ Subject: handle SYSTEMCTL_OPTIONS environment variable (bnc#798620) --- - src/systemctl/systemctl.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) + src/systemctl/systemctl.c | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 36918f2..28d6586 100644 +index 84ce87c..cceafc9 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c -@@ -4340,6 +4340,26 @@ static int systemctl_parse_argv(int argc, char *argv[]) { - assert(argc >= 0); - assert(argv); +@@ -5926,6 +5926,28 @@ int main(int argc, char*argv[]) { + log_parse_environment(); + log_open(); -+ if (secure_getenv("SYSTEMCTL_OPTIONS")) { ++ if (secure_getenv("SYSTEMCTL_OPTIONS") && ++ (!program_invocation_short_name || ++ (program_invocation_short_name && strstr(program_invocation_short_name, "systemctl")))) { + char **parsed_systemctl_options = strv_split_quoted(getenv("SYSTEMCTL_OPTIONS")); + + if (*parsed_systemctl_options && **parsed_systemctl_options) { + char **k,**a; -+ char _cleanup_strv_free_ **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); ++ _cleanup_strv_free_ char **new_argv = new(char*, strv_length(argv) + strv_length(parsed_systemctl_options) + 1); + new_argv[0] = strdup(argv[0]); + for (k = new_argv+1, a = parsed_systemctl_options; *a; k++, a++) { + *k = strdup(*a); @@ -35,6 +37,6 @@ index 36918f2..28d6586 100644 + } + } + - while ((c = getopt_long(argc, argv, "ht:p:aqfs:H:Pn:o:i", options, NULL)) >= 0) { - - switch (c) { + r = parse_argv(argc, argv); + if (r < 0) + goto finish; diff --git a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch index b67a80e8..050f9216 100644 --- a/handle-disable_caplock-and-compose_table-and-kbd_rate.patch +++ b/handle-disable_caplock-and-compose_table-and-kbd_rate.patch @@ -8,7 +8,7 @@ Subject: handle disable_caplock and compose_table and kbd_rate 1 file changed, 153 insertions(+), 3 deletions(-) diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c -index c1f662b..5f3354e 100644 +index 1bbf737..384f936 100644 --- a/src/vconsole/vconsole-setup.c +++ b/src/vconsole/vconsole-setup.c @@ -40,6 +40,7 @@ @@ -39,7 +39,7 @@ index c1f662b..5f3354e 100644 args[i++] = NULL; pid = fork(); -@@ -217,6 +220,101 @@ static void font_copy_to_all_vcs(int fd) { +@@ -212,6 +215,101 @@ static void font_copy_to_all_vcs(int fd) { } } @@ -141,7 +141,7 @@ index c1f662b..5f3354e 100644 int main(int argc, char **argv) { const char *vc; char *vc_keymap = NULL; -@@ -224,8 +322,16 @@ int main(int argc, char **argv) { +@@ -219,8 +317,16 @@ int main(int argc, char **argv) { char *vc_font = NULL; char *vc_font_map = NULL; char *vc_font_unimap = NULL; @@ -158,8 +158,8 @@ index c1f662b..5f3354e 100644 pid_t font_pid = 0, keymap_pid = 0; bool font_copy = false; int r = EXIT_FAILURE; -@@ -286,13 +392,43 @@ int main(int argc, char **argv) { - log_warning("Failed to read /etc/vconsole.conf: %s", strerror(-r)); +@@ -276,13 +382,43 @@ int main(int argc, char **argv) { + log_warning("Failed to read /proc/cmdline: %s", strerror(-r)); } + if (r <= 0) { @@ -203,7 +203,7 @@ index c1f662b..5f3354e 100644 font_load(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0) r = EXIT_SUCCESS; -@@ -300,6 +436,14 @@ finish: +@@ -290,6 +426,14 @@ finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); @@ -218,7 +218,7 @@ index c1f662b..5f3354e 100644 if (font_pid > 0) { wait_for_terminate_and_warn(KBD_SETFONT, font_pid); if (font_copy) -@@ -310,6 +454,12 @@ finish: +@@ -300,6 +444,12 @@ finish: free(vc_font); free(vc_font_map); free(vc_font_unimap); diff --git a/handle-etc-HOSTNAME.patch b/handle-etc-HOSTNAME.patch index b9fc6037..2688e851 100644 --- a/handle-etc-HOSTNAME.patch +++ b/handle-etc-HOSTNAME.patch @@ -8,7 +8,7 @@ Subject: handle /etc/HOSTNAME 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c -index 4aad17b..e7532f6 100644 +index c7f454c..cfbd706 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -129,6 +129,10 @@ static int read_data(void) { @@ -34,9 +34,9 @@ index 4aad17b..e7532f6 100644 return 0; } -- return write_one_line_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); +- return write_string_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); + -+ r = write_one_line_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); ++ r = write_string_file_atomic_label("/etc/hostname", data[PROP_STATIC_HOSTNAME]); + if (!r) { + r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME"); + } diff --git a/handle-numlock-value-in-etc-sysconfig-keyboard.patch b/handle-numlock-value-in-etc-sysconfig-keyboard.patch index d348aee2..00c10673 100644 --- a/handle-numlock-value-in-etc-sysconfig-keyboard.patch +++ b/handle-numlock-value-in-etc-sysconfig-keyboard.patch @@ -15,10 +15,10 @@ Subject: handle numlock value in /etc/sysconfig/keyboard create mode 100644 src/login/numlock-on.c diff --git a/Makefile.am b/Makefile.am -index e44b075..00905d0 100644 +index d594a3d..e82d092 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -2113,6 +2113,19 @@ dist_udevrules_DATA += \ +@@ -2205,6 +2205,19 @@ dist_udevrules_DATA += \ rules/61-accelerometer.rules # ------------------------------------------------------------------------------ @@ -39,10 +39,10 @@ index e44b075..00905d0 100644 if ENABLE_GTK_DOC SUBDIRS += \ diff --git a/configure.ac b/configure.ac -index 5421461..a2d8755 100644 +index e58d694..222ed22 100644 --- a/configure.ac +++ b/configure.ac -@@ -787,6 +787,11 @@ AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"]) +@@ -789,6 +789,11 @@ AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"]) # ------------------------------------------------------------------------------ @@ -112,10 +112,10 @@ index 0000000..77a8368 + return execv(args[0], (char * const*) args); +} diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c -index 5f3354e..f5cafc1 100644 +index 384f936..e1f8868 100644 --- a/src/vconsole/vconsole-setup.c +++ b/src/vconsole/vconsole-setup.c -@@ -326,12 +326,14 @@ int main(int argc, char **argv) { +@@ -321,12 +321,14 @@ int main(int argc, char **argv) { char *vc_kbd_delay = NULL; char *vc_kbd_rate = NULL; char *vc_kbd_disable_caps_lock = NULL; @@ -130,7 +130,7 @@ index 5f3354e..f5cafc1 100644 pid_t font_pid = 0, keymap_pid = 0; bool font_copy = false; int r = EXIT_FAILURE; -@@ -399,6 +401,7 @@ int main(int argc, char **argv) { +@@ -389,6 +391,7 @@ int main(int argc, char **argv) { "KBD_DELAY", &vc_kbd_delay, "KBD_RATE", &vc_kbd_rate, "KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock, @@ -138,7 +138,7 @@ index 5f3354e..f5cafc1 100644 "COMPOSETABLE", &vc_compose_table, NULL); if (r < 0 && r != -ENOENT) -@@ -413,6 +416,37 @@ int main(int argc, char **argv) { +@@ -403,6 +406,37 @@ int main(int argc, char **argv) { log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r)); disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; @@ -176,7 +176,7 @@ index 5f3354e..f5cafc1 100644 #endif } -@@ -435,6 +469,10 @@ int main(int argc, char **argv) { +@@ -425,6 +459,10 @@ int main(int argc, char **argv) { finish: if (keymap_pid > 0) wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid); diff --git a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch index c47995b6..e2ac6c77 100644 --- a/handle-root_uses_lang-value-in-etc-sysconfig-language.patch +++ b/handle-root_uses_lang-value-in-etc-sysconfig-language.patch @@ -8,12 +8,12 @@ handle ROOT_USES_LANG=ctype (bnc#792182). 1 file changed, 27 insertions(+) diff --git a/src/core/locale-setup.c b/src/core/locale-setup.c -index eefb256..d6cbea9 100644 +index d7113b9..b3fb603 100644 --- a/src/core/locale-setup.c +++ b/src/core/locale-setup.c @@ -70,6 +70,11 @@ static const char * const variable_names[_VARIABLE_MAX] = { int locale_setup(void) { - char *variables[_VARIABLE_MAX]; + char *variables[_VARIABLE_MAX] = {}; int r = 0, i; +#ifdef HAVE_SYSV_COMPAT + char _cleanup_free_ *root_uses_lang; @@ -21,9 +21,9 @@ index eefb256..d6cbea9 100644 + zero(root_uses_lang); +#endif - zero(variables); - -@@ -119,6 +124,28 @@ int locale_setup(void) { + if (detect_container(NULL) <= 0) { + r = parse_env_file("/proc/cmdline", WHITESPACE, +@@ -117,6 +122,28 @@ int locale_setup(void) { log_warning("Failed to read /etc/locale.conf: %s", strerror(-r)); } diff --git a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch index 5bf2ad62..238d23be 100644 --- a/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch +++ b/module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch @@ -8,7 +8,7 @@ Subject: module-load: handle SUSE /etc/sysconfig/kernel module list 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c -index 9ee2603..2b5b571 100644 +index 7b19ee0..36b1a68 100644 --- a/src/modules-load/modules-load.c +++ b/src/modules-load/modules-load.c @@ -262,6 +262,9 @@ static int parse_argv(int argc, char *argv[]) { diff --git a/optionally-warn-if-nss-myhostname-is-called.patch b/optionally-warn-if-nss-myhostname-is-called.patch index 08038648..7a75fad5 100644 --- a/optionally-warn-if-nss-myhostname-is-called.patch +++ b/optionally-warn-if-nss-myhostname-is-called.patch @@ -8,10 +8,10 @@ Subject: optionally warn if nss-myhostname is called 2 files changed, 46 insertions(+) diff --git a/configure.ac b/configure.ac -index 5e35613..5421461 100644 +index 5173783..e58d694 100644 --- a/configure.ac +++ b/configure.ac -@@ -712,6 +712,17 @@ if test "x$enable_myhostname" != "xno"; then +@@ -714,6 +714,17 @@ if test "x$enable_myhostname" != "xno"; then fi AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) @@ -30,7 +30,7 @@ index 5e35613..5421461 100644 AC_ARG_WITH(firmware-path, AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c -index b3aaca8..043f279 100644 +index 884eb99..dbd9a2d 100644 --- a/src/nss-myhostname/nss-myhostname.c +++ b/src/nss-myhostname/nss-myhostname.c @@ -30,6 +30,9 @@ @@ -42,10 +42,10 @@ index b3aaca8..043f279 100644 +#endif #include "ifconf.h" - + #include "macro.h" @@ -44,6 +47,10 @@ - - #define ALIGN(a) (((a+sizeof(void*)-1)/sizeof(void*))*sizeof(void*)) + #define LOCALADDRESS_IPV6 &in6addr_loopback + #define LOOPBACK_INTERFACE "lo" +#ifdef LOG_NSS_MY_HOSTNAME_WARNING +static void warn(const char* hn); @@ -54,7 +54,7 @@ index b3aaca8..043f279 100644 enum nss_status _nss_myhostname_gethostbyname4_r( const char *name, struct gaih_addrtuple **pat, -@@ -116,6 +123,10 @@ enum nss_status _nss_myhostname_gethostbyname4_r( +@@ -115,6 +122,10 @@ enum nss_status _nss_myhostname_gethostbyname4_r( return NSS_STATUS_NOTFOUND; } @@ -65,7 +65,7 @@ index b3aaca8..043f279 100644 /* If this fails, n_addresses is 0. Which is fine */ ifconf_acquire_addresses(&addresses, &n_addresses); -@@ -336,6 +347,10 @@ enum nss_status _nss_myhostname_gethostbyname3_r( +@@ -334,6 +345,10 @@ enum nss_status _nss_myhostname_gethostbyname3_r( return NSS_STATUS_NOTFOUND; } @@ -76,7 +76,7 @@ index b3aaca8..043f279 100644 return fill_in_hostent(hn, af, host, buffer, buflen, errnop, h_errnop, ttlp, canonp); } -@@ -434,6 +449,10 @@ found: +@@ -429,6 +444,10 @@ found: return NSS_STATUS_UNAVAIL; } @@ -87,7 +87,7 @@ index b3aaca8..043f279 100644 return fill_in_hostent(hn, af, host, buffer, buflen, errnop, h_errnop, ttlp, NULL); } -@@ -453,3 +472,19 @@ enum nss_status _nss_myhostname_gethostbyaddr_r( +@@ -448,3 +467,19 @@ enum nss_status _nss_myhostname_gethostbyaddr_r( errnop, h_errnop, NULL); } diff --git a/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch b/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch index 2db04d0f..f3e12f27 100644 --- a/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch +++ b/parse-etc-insserv.conf-and-adds-dependencies-accordingly.patch @@ -8,7 +8,7 @@ Subject: parse /etc/insserv.conf and adds dependencies accordingly 1 file changed, 101 insertions(+) diff --git a/src/core/service.c b/src/core/service.c -index 98266a5..8707cb5 100644 +index cf0bbe0..08fc97c 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -3440,6 +3440,105 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { @@ -117,7 +117,7 @@ index 98266a5..8707cb5 100644 static int service_enumerate(Manager *m) { char **p; -@@ -3602,6 +3701,8 @@ static int service_enumerate(Manager *m) { +@@ -3600,6 +3699,8 @@ static int service_enumerate(Manager *m) { r = 0; diff --git a/re-add-persistent-net.patch b/re-add-persistent-net.patch deleted file mode 100644 index dd82550b..00000000 --- a/re-add-persistent-net.patch +++ /dev/null @@ -1,421 +0,0 @@ -From: Robert Milasan -Date: Wed, 20 Mar 2013 10:14:59 +0000 -Subject: re-add persistent net - -udev: re-add persistent network rules (bnc#809843). ---- - Makefile.am | 10 +- - .../75-persistent-net-generator.rules | 102 +++++++++++++++ - src/udev/rule_generator/rule_generator.functions | 113 ++++++++++++++++ - src/udev/rule_generator/write_net_rules | 145 +++++++++++++++++++++ - 4 files changed, 369 insertions(+), 1 deletion(-) - create mode 100644 src/udev/rule_generator/75-persistent-net-generator.rules - create mode 100644 src/udev/rule_generator/rule_generator.functions - create mode 100644 src/udev/rule_generator/write_net_rules - -diff --git a/Makefile.am b/Makefile.am -index 10609f3..f5e4159 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -2287,6 +2287,14 @@ EXTRA_DIST += \ - src/gudev/seed-example.js - - # ------------------------------------------------------------------------------ -+dist_udevhome_SCRIPTS = \ -+ src/udev/rule_generator/rule_generator.functions \ -+ src/udev/rule_generator/write_net_rules -+ -+dist_udevrules_DATA += \ -+ src/udev/rule_generator/75-persistent-net-generator.rules -+ -+# ------------------------------------------------------------------------------ - if ENABLE_KEYMAP - keymap_SOURCES = \ - src/udev/keymap/keymap.c -@@ -2314,7 +2322,7 @@ dist_udevrules_DATA += \ - src/udev/keymap/95-keymap.rules \ - src/udev/keymap/95-keyboard-force-release.rules - --dist_udevhome_SCRIPTS = \ -+dist_udevhome_SCRIPTS += \ - src/udev/keymap/findkeyboards \ - src/udev/keymap/keyboard-force-release.sh - -diff --git a/src/udev/rule_generator/75-persistent-net-generator.rules b/src/udev/rule_generator/75-persistent-net-generator.rules -new file mode 100644 -index 0000000..4f80573 ---- /dev/null -+++ b/src/udev/rule_generator/75-persistent-net-generator.rules -@@ -0,0 +1,102 @@ -+# do not edit this file, it will be overwritten on update -+ -+# these rules generate rules for persistent network device naming -+# -+# variables used to communicate: -+# MATCHADDR MAC address used for the match -+# MATCHID bus_id used for the match -+# MATCHDRV driver name used for the match -+# MATCHIFTYPE interface type match -+# COMMENT comment to add to the generated rule -+# INTERFACE_NAME requested name supplied by external tool -+# INTERFACE_NEW new interface name returned by rule writer -+ -+ACTION!="add", GOTO="persistent_net_generator_end" -+SUBSYSTEM!="net", GOTO="persistent_net_generator_end" -+ -+# ignore the interface if a name has already been set -+NAME=="?*", GOTO="persistent_net_generator_end" -+ -+# device name whitelist -+KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end" -+ -+# ignore Xen virtual interfaces -+SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end" -+ -+# read MAC address -+ENV{MATCHADDR}="$attr{address}" -+ -+# match interface type -+ENV{MATCHIFTYPE}="$attr{type}" -+ -+# ignore KVM virtual interfaces -+ENV{MATCHADDR}=="52:54:00:*", GOTO="persistent_net_generator_end" -+# ignore VMWare virtual interfaces -+ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", GOTO="persistent_net_generator_end" -+# ignore Hyper-V virtual interfaces -+ENV{MATCHADDR}=="00:15:5d:*", GOTO="persistent_net_generator_end" -+ -+# These vendors are known to violate the local MAC address assignment scheme -+# Interlan, DEC (UNIBUS or QBUS), Apollo, Cisco, Racal-Datacom -+ENV{MATCHADDR}=="02:07:01:*", GOTO="globally_administered_whitelist" -+# 3Com -+ENV{MATCHADDR}=="02:60:60:*", GOTO="globally_administered_whitelist" -+# 3Com IBM PC; Imagen; Valid; Cisco; Apple -+ENV{MATCHADDR}=="02:60:8c:*", GOTO="globally_administered_whitelist" -+# Intel -+ENV{MATCHADDR}=="02:a0:c9:*", GOTO="globally_administered_whitelist" -+# Olivetti -+ENV{MATCHADDR}=="02:aa:3c:*", GOTO="globally_administered_whitelist" -+# CMC Masscomp; Silicon Graphics; Prime EXL -+ENV{MATCHADDR}=="02:cf:1f:*", GOTO="globally_administered_whitelist" -+# Prominet Corporation Gigabit Ethernet Switch -+ENV{MATCHADDR}=="02:e0:3b:*", GOTO="globally_administered_whitelist" -+# BTI (Bus-Tech, Inc.) IBM Mainframes -+ENV{MATCHADDR}=="02:e6:d3:*", GOTO="globally_administered_whitelist" -+# Realtek -+ENV{MATCHADDR}=="52:54:00:*", GOTO="globally_administered_whitelist" -+# Novell 2000 -+ENV{MATCHADDR}=="52:54:4c:*", GOTO="globally_administered_whitelist" -+# Realtec -+ENV{MATCHADDR}=="52:54:ab:*", GOTO="globally_administered_whitelist" -+# Kingston Technologies -+ENV{MATCHADDR}=="e2:0c:0f:*", GOTO="globally_administered_whitelist" -+# Xensource -+ENV{MATCHADDR}=="00:16:3e:*", GOTO="globally_administered_whitelist" -+ -+# match interface dev_id -+ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}" -+ -+# do not use "locally administered" MAC address -+ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}="" -+ -+# do not use empty address -+ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}="" -+ -+LABEL="globally_administered_whitelist" -+ -+# build comment line for generated rule: -+SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($driver)" -+SUBSYSTEMS=="usb", ATTRS{idVendor}=="?*", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($driver)" -+SUBSYSTEMS=="pcmcia", ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id} ($driver)" -+SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})" -+ -+# ibmveth likes to use "locally administered" MAC addresses -+DRIVERS=="ibmveth", ENV{MATCHADDR}="$attr{address}", ENV{COMMENT}="ibmveth ($id)" -+ -+# S/390 uses id matches only, do not use MAC address match -+SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver", ENV{MATCHADDR}="" -+ -+# see if we got enough data to create a rule -+ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", GOTO="persistent_net_generator_end" -+ -+# default comment -+ENV{COMMENT}=="", ENV{COMMENT}="net device ($attr{driver})" -+ -+# write rule -+DRIVERS=="?*", IMPORT{program}="write_net_rules" -+ -+# rename interface if needed -+ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}" -+ -+LABEL="persistent_net_generator_end" -diff --git a/src/udev/rule_generator/rule_generator.functions b/src/udev/rule_generator/rule_generator.functions -new file mode 100644 -index 0000000..087bc34 ---- /dev/null -+++ b/src/udev/rule_generator/rule_generator.functions -@@ -0,0 +1,113 @@ -+# functions used by the udev rule generator -+ -+# Copyright (C) 2006 Marco d'Itri -+ -+# This program is free software: you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation, either version 2 of the License, or -+# (at your option) any later version. -+ -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see . -+ -+PATH='/usr/bin:/bin:/usr/sbin:/sbin' -+ -+# Read a single line from file $1 in the $DEVPATH directory. -+# The function must not return an error even if the file does not exist. -+sysread() { -+ local file="$1" -+ [ -e "/sys$DEVPATH/$file" ] || return 0 -+ local value -+ read value < "/sys$DEVPATH/$file" || return 0 -+ echo "$value" -+} -+ -+sysreadlink() { -+ local file="$1" -+ [ -e "/sys$DEVPATH/$file" ] || return 0 -+ readlink -f /sys$DEVPATH/$file 2> /dev/null || true -+} -+ -+# Return true if a directory is writeable. -+writeable() { -+ if ln -s test-link $1/.is-writeable 2> /dev/null; then -+ rm -f $1/.is-writeable -+ return 0 -+ else -+ return 1 -+ fi -+} -+ -+# Create a lock file for the current rules file. -+lock_rules_file() { -+ RUNDIR="/run/udev" -+ [ -e "$RUNDIR" ] || return 0 -+ -+ RULES_LOCK="$RUNDIR/.lock-${RULES_FILE##*/}" -+ -+ retry=30 -+ while ! mkdir $RULES_LOCK 2> /dev/null; do -+ if [ $retry -eq 0 ]; then -+ echo "Cannot lock $RULES_FILE!" >&2 -+ exit 2 -+ fi -+ sleep 1 -+ retry=$(($retry - 1)) -+ done -+} -+ -+unlock_rules_file() { -+ [ "$RULES_LOCK" ] || return 0 -+ rmdir $RULES_LOCK || true -+} -+ -+# Choose the real rules file if it is writeable or a temporary file if not. -+# Both files should be checked later when looking for existing rules. -+choose_rules_file() { -+ RUNDIR="/run/udev" -+ local tmp_rules_file="$RUNDIR/tmp-rules--${RULES_FILE##*/}" -+ [ -e "$RULES_FILE" -o -e "$tmp_rules_file" ] || PRINT_HEADER=1 -+ -+ if writeable ${RULES_FILE%/*}; then -+ RO_RULES_FILE='/dev/null' -+ else -+ RO_RULES_FILE=$RULES_FILE -+ RULES_FILE=$tmp_rules_file -+ fi -+} -+ -+# Return the name of the first free device. -+raw_find_next_available() { -+ local links="$1" -+ -+ local basename=${links%%[ 0-9]*} -+ local max=-1 -+ for name in $links; do -+ local num=${name#$basename} -+ [ "$num" ] || num=0 -+ [ $num -gt $max ] && max=$num -+ done -+ -+ local max=$(($max + 1)) -+ # "name0" actually is just "name" -+ [ $max -eq 0 ] && return -+ echo "$max" -+} -+ -+# Find all rules matching a key (with action) and a pattern. -+find_all_rules() { -+ local key="$1" -+ local linkre="$2" -+ local match="$3" -+ -+ local search='.*[[:space:],]'"$key"'"('"$linkre"')".*' -+ echo $(sed -n -r -e 's/^#.*//' -e "${match}s/${search}/\1/p" \ -+ $RO_RULES_FILE \ -+ $([ -e $RULES_FILE ] && echo $RULES_FILE) \ -+ 2>/dev/null) -+} -diff --git a/src/udev/rule_generator/write_net_rules b/src/udev/rule_generator/write_net_rules -new file mode 100644 -index 0000000..fad1cc5 ---- /dev/null -+++ b/src/udev/rule_generator/write_net_rules -@@ -0,0 +1,145 @@ -+#!/bin/sh -e -+ -+# This script is run to create persistent network device naming rules -+# based on properties of the device. -+# If the interface needs to be renamed, INTERFACE_NEW= will be printed -+# on stdout to allow udev to IMPORT it. -+ -+# variables used to communicate: -+# MATCHADDR MAC address used for the match -+# MATCHID bus_id used for the match -+# MATCHDEVID dev_id used for the match -+# MATCHDRV driver name used for the match -+# MATCHIFTYPE interface type match -+# COMMENT comment to add to the generated rule -+# INTERFACE_NAME requested name supplied by external tool -+# INTERFACE_NEW new interface name returned by rule writer -+ -+# Copyright (C) 2006 Marco d'Itri -+# Copyright (C) 2007 Kay Sievers -+# -+# This program is free software: you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation, either version 2 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see . -+ -+# debug, if UDEV_LOG= -+if [ -n "$UDEV_LOG" ]; then -+ if [ "$UDEV_LOG" -ge 7 ]; then -+ set -x -+ fi -+fi -+ -+RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules' -+ -+if [ -e /usr/lib/udev/rule_generator.functions ]; then -+ . /usr/lib/udev/rule_generator.functions -+else -+ . /lib/udev/rule_generator.functions -+fi -+ -+interface_name_taken() { -+ local value="$(find_all_rules 'NAME=' $INTERFACE)" -+ if [ "$value" ]; then -+ return 0 -+ else -+ return 1 -+ fi -+} -+ -+find_next_available() { -+ raw_find_next_available "$(find_all_rules 'NAME=' "$1")" -+} -+ -+write_rule() { -+ local match="$1" -+ local name="$2" -+ local comment="$3" -+ -+ { -+ if [ "$PRINT_HEADER" ]; then -+ PRINT_HEADER= -+ echo "# This file was automatically generated by the $0" -+ echo "# program, run by the persistent-net-generator.rules rules file." -+ echo "#" -+ echo "# You can modify it, as long as you keep each rule on a single" -+ echo "# line, and change only the value of the NAME= key." -+ fi -+ -+ echo "" -+ [ "$comment" ] && echo "# $comment" -+ echo "SUBSYSTEM==\"net\", ACTION==\"add\"$match, NAME=\"$name\"" -+ } >> $RULES_FILE -+} -+ -+if [ -z "$INTERFACE" ]; then -+ echo "missing \$INTERFACE" >&2 -+ exit 1 -+fi -+ -+# Prevent concurrent processes from modifying the file at the same time. -+lock_rules_file -+ -+# Check if the rules file is writeable. -+choose_rules_file -+ -+# the DRIVERS key is needed to not match bridges and VLAN sub-interfaces -+if [ "$MATCHADDR" ]; then -+ match="$match, DRIVERS==\"?*\", ATTR{address}==\"$MATCHADDR\"" -+fi -+ -+if [ "$MATCHDRV" ]; then -+ match="$match, DRIVERS==\"$MATCHDRV\"" -+fi -+ -+if [ "$MATCHDEVID" ]; then -+ match="$match, ATTR{dev_id}==\"$MATCHDEVID\"" -+fi -+ -+if [ "$MATCHID" ]; then -+ match="$match, KERNELS==\"$MATCHID\"" -+fi -+ -+if [ "$MATCHIFTYPE" ]; then -+ match="$match, ATTR{type}==\"$MATCHIFTYPE\"" -+fi -+ -+if [ -z "$match" ]; then -+ echo "missing valid match" >&2 -+ unlock_rules_file -+ exit 1 -+fi -+ -+basename=${INTERFACE%%[0-9]*} -+match="$match, KERNEL==\"$basename*\"" -+ -+if [ "$INTERFACE_NAME" ]; then -+ # external tools may request a custom name -+ COMMENT="$COMMENT (custom name provided by external tool)" -+ if [ "$INTERFACE_NAME" != "$INTERFACE" ]; then -+ INTERFACE=$INTERFACE_NAME; -+ echo "INTERFACE_NEW=$INTERFACE" -+ fi -+else -+ # if a rule using the current name already exists, find a new name -+ if interface_name_taken; then -+ INTERFACE="$basename$(find_next_available "$basename[0-9]*")" -+ # prevent INTERFACE from being "eth" instead of "eth0" -+ [ "$INTERFACE" = "${INTERFACE%%[ \[\]0-9]*}" ] && INTERFACE=${INTERFACE}0 -+ echo "INTERFACE_NEW=$INTERFACE" -+ fi -+fi -+ -+write_rule "$match" "$INTERFACE" "$COMMENT" -+ -+unlock_rules_file -+ -+exit 0 diff --git a/re-enable-by_path-links-for-ata-devices.patch b/re-enable-by_path-links-for-ata-devices.patch deleted file mode 100644 index 64f01c1f..00000000 --- a/re-enable-by_path-links-for-ata-devices.patch +++ /dev/null @@ -1,120 +0,0 @@ -From: Robert Milasan -Date: Thu, 12 Jul 2012 15:56:34 +0000 -Subject: re-enable by_path links for ata devices - -Fix by-path links for ATA transport (bnc#770910) ---- - src/udev/udev-builtin-path_id.c | 92 +++++++++++++++++++++++++++++++++++------ - 1 file changed, 80 insertions(+), 12 deletions(-) - -diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c -index da02731..a77d4e8 100644 ---- a/src/udev/udev-builtin-path_id.c -+++ b/src/udev/udev-builtin-path_id.c -@@ -338,6 +338,85 @@ static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char * - return parent; - } - -+static struct udev_device *handle_ata(struct udev_device *parent, char **path) -+{ -+ struct udev_device *hostdev; -+ int host, bus, target, lun; -+ const char *name; -+ char *base; -+ char *pos; -+ DIR *dir; -+ struct dirent *dent; -+ int basenum, len; -+ -+ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host"); -+ if (hostdev == NULL) -+ return NULL; -+ -+ name = udev_device_get_sysname(parent); -+ if (sscanf(name, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4) -+ return NULL; -+ -+ /* rebase ata offset to get the local relative number */ -+ basenum = -1; -+ base = strdup(udev_device_get_syspath(hostdev)); -+ if (base == NULL) -+ return NULL; -+ pos = strrchr(base, '/'); -+ if (pos == NULL) { -+ parent = NULL; -+ goto out; -+ } -+ pos[0] = '\0'; -+ len = strlen(base) - 5; -+ if (len <= 0) { -+ parent = NULL; -+ goto out; -+ } -+ base[len] = '\0'; -+ dir = opendir(base); -+ if (dir == NULL) { -+ parent = NULL; -+ goto out; -+ } -+ for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) { -+ char *rest; -+ int i; -+ -+ if (dent->d_name[0] == '.') -+ continue; -+ if (dent->d_type != DT_DIR && dent->d_type != DT_LNK) -+ continue; -+ if (strncmp(dent->d_name, "ata", 3) != 0) -+ continue; -+ i = strtoul(&dent->d_name[3], &rest, 10); -+ -+ /* ata devices start with 1, so decrease by 1 if i is bigger then 0 */ -+ if (i > 0) -+ i--; -+ if (rest[0] != '\0') -+ continue; -+ /* -+ * find the smallest number; the host really needs to export its -+ * own instance number per parent device; relying on the global host -+ * enumeration and plainly rebasing the numbers sounds unreliable -+ */ -+ if (basenum == -1 || i < basenum) -+ basenum = i; -+ } -+ closedir(dir); -+ if (basenum == -1) { -+ parent = NULL; -+ goto out; -+ } -+ host -= basenum; -+ -+ path_prepend(path, "scsi-%u:%u:%u:%u", host, bus, target, lun); -+out: -+ free(base); -+ return hostdev; -+} -+ - static struct udev_device *handle_scsi(struct udev_device *parent, char **path) - { - const char *devtype; -@@ -374,19 +453,8 @@ static struct udev_device *handle_scsi(struct udev_device *parent, char **path) - goto out; - } - -- /* -- * We do not support the ATA transport class, it uses global counters -- * to name the ata devices which numbers spread across multiple -- * controllers. -- * -- * The real link numbers are not exported. Also, possible chains of ports -- * behind port multipliers cannot be composed that way. -- * -- * Until all that is solved at the kernel level, there are no by-path/ -- * links for ATA devices. -- */ - if (strstr(name, "/ata") != NULL) { -- parent = NULL; -+ parent = handle_ata(parent, path); - goto out; - } - diff --git a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch index 9345fe41..3efed705 100644 --- a/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch +++ b/remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch @@ -12,7 +12,7 @@ PIDFile: and X-Systemd-RemainAfterExit to control it. 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/core/service.c b/src/core/service.c -index e34bcf1..a1b2d93 100644 +index 5118b06..c13ff35 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -135,6 +135,7 @@ static void service_init(Unit *u) { diff --git a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch index 2a2165bf..f57a2748 100644 --- a/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch +++ b/restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch @@ -11,10 +11,10 @@ Subject: restore /var/run and /var/lock bind mount if they aren't symlink create mode 100644 units/var-run.mount diff --git a/Makefile.am b/Makefile.am -index 00905d0..10609f3 100644 +index e82d092..38309a9 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -398,6 +398,12 @@ dist_systemunit_DATA = \ +@@ -406,6 +406,12 @@ dist_systemunit_DATA = \ units/system-update.target \ units/initrd-switch-root.target @@ -27,7 +27,7 @@ index 00905d0..10609f3 100644 nodist_systemunit_DATA = \ units/getty@.service \ units/serial-getty@.service \ -@@ -3913,6 +3919,9 @@ RUNLEVEL4_TARGET_WANTS += \ +@@ -4018,6 +4024,9 @@ RUNLEVEL4_TARGET_WANTS += \ systemd-update-utmp-runlevel.service RUNLEVEL5_TARGET_WANTS += \ systemd-update-utmp-runlevel.service diff --git a/lid-switch-chromebook.patch b/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch similarity index 79% rename from lid-switch-chromebook.patch rename to rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch index b635e1ce..52fe82ea 100644 --- a/lid-switch-chromebook.patch +++ b/rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch @@ -1,8 +1,7 @@ -From fced3673ee1001dc905206f9a92ea2062f951d3c Mon Sep 17 00:00:00 2001 From: Robert Schweikert Date: Fri, 12 Apr 2013 12:08:16 -0400 -Subject: [PATCH] rules: add lid switch of ARM based Chromebook as a power - switch to logind +Subject: rules: add lid switch of ARM based Chromebook as a power switch to + logind --- src/login/70-power-switch.rules | 1 + @@ -19,6 +18,3 @@ index 36fb827..d925ab7 100644 +SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="gpio-keys.8", TAG+="power-switch" LABEL="power_switch_end" --- -1.8.1.4 - diff --git a/rules-create-by-id-scsi-links-for-ATA-devices.patch b/rules-create-by-id-scsi-links-for-ATA-devices.patch deleted file mode 100644 index c2f3186c..00000000 --- a/rules-create-by-id-scsi-links-for-ATA-devices.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Robert Milasan -Date: Wed, 27 Jun 2012 08:55:59 +0000 -Subject: rules create by id scsi links for ATA devices - -Re-enable creation of by-id scsi links for ATA devices. (bnc#769002) ---- - rules/60-persistent-storage.rules | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules -index a4d009a..f720c7e 100644 ---- a/rules/60-persistent-storage.rules -+++ b/rules/60-persistent-storage.rules -@@ -42,6 +42,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="s - KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" - KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" - -+# scsi compat links for ATA devices -+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --whitelisted --replace-whitespace -p0x80 -d $devnode", RESULT=="?*", ENV{ID_SCSI_COMPAT}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}" -+KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n" -+ - # firewire - KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}" - KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n" diff --git a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch index 0c8dd048..91cd2eab 100644 --- a/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch +++ b/service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch @@ -13,7 +13,7 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/core/service.c b/src/core/service.c -index 8707cb5..e34bcf1 100644 +index 08fc97c..5118b06 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -2072,8 +2072,13 @@ static void service_enter_running(Service *s, ServiceResult f) { diff --git a/systemd-200.tar.xz b/systemd-200.tar.xz deleted file mode 100644 index e0049a36..00000000 --- a/systemd-200.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9a08baa8fa5c48f0aab683b2f771e4be75c3c852afc45e5cb4df06428ac8c217 -size 2109864 diff --git a/systemd-202.tar.xz b/systemd-202.tar.xz new file mode 100644 index 00000000..a2ff6a2e --- /dev/null +++ b/systemd-202.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c43073252a52eb9f9ab9bd698be0192bcb2175ba5daba6057250083dd64e059 +size 2149860 diff --git a/systemd-mini.changes b/systemd-mini.changes index 984f5e88..1216a5e5 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,31 @@ +------------------------------------------------------------------- +Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com + +- Update to release 202: + + 'systemctl list-jobs' got some polishing. '--type=' argument + may now be passed more than once. 'systemctl list-sockets' has + been added. + + systemd gained a new unit 'systemd-static-nodes.service' +    that generates static device nodes earlier during boot, and +    can run in conjunction with udev. + + systemd-nspawn now places all containers in the new /machine +    top-level cgroup directory in the name=systemd hierarchy. + + bootchart can now store its data in the journal. + + journactl can now take multiple --unit= and --user-unit= +    switches. + + The cryptsetup logic now understands the "luks.key=" kernel +    command line switch. If a configured key file is missing, it + will fallback to prompting the user. +- Rebase some patches +- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to + properly handle SYSTEMCTL_OPTIONS + +------------------------------------------------------------------- +Fri Apr 19 12:47:13 UTC 2013 - max@suse.com + +- Fix regression in the default for tmp auto-deletion + (systemd-tmp-safe-defaults.patch, FATE#314974). + ------------------------------------------------------------------- Fri Apr 12 16:58:31 UTC 2013 - fcrozat@suse.com @@ -131,6 +159,12 @@ reset by assigning empty string to them, using drop-in. to systemd unit files. - Merge patches for nss-myhostname package to this package. +------------------------------------------------------------------- +Fri Apr 12 16:17:04 UTC 2013 - rschweikert@suse.com + +- Add chromebook lid switch as a power switch to logind rule to + enable suspend on lid close + ------------------------------------------------------------------- Mon Apr 8 14:51:47 CEST 2013 - fcrozat@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index d0d49789..4779c7b1 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -25,7 +25,7 @@ Name: systemd-mini Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 200 +Version: 202 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -151,6 +151,8 @@ Patch26: ensure-systemd-udevd-is-started-before-local-fs-pre-for-lo.patch Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch +# PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch -- FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. +Patch39: systemd-tmp-safe-defaults.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id @@ -162,6 +164,8 @@ Patch23: disable-nss-myhostname-warning-bnc-783841.patch Patch24: handle-etc-HOSTNAME.patch # PATCH-FIX-OPENSUSE Forward-suspend-hibernate-calls-to-pm-utils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch +# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind +Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch @@ -396,6 +400,8 @@ cp %{SOURCE7} m4/ %patch26 -p1 %patch27 -p1 %patch37 -p1 +%patch38 -p1 +%patch39 -p1 %build autoreconf -fiv diff --git a/systemd-tmp-safe-defaults.patch b/systemd-tmp-safe-defaults.patch index 7fca32cd..4c957df7 100644 --- a/systemd-tmp-safe-defaults.patch +++ b/systemd-tmp-safe-defaults.patch @@ -1,17 +1,26 @@ -max@suse.de FATE#314974 +From: Reinhard Max +Date: Fri, 19 Apr 2013 16:12:28 +0200 +Subject: systemd tmp safe defaults -Index: systemd-200/tmpfiles.d/tmp.conf -=================================================================== ---- systemd-200.orig/tmpfiles.d/tmp.conf 2013-03-20 22:58:40.159281473 +0100 -+++ systemd-200/tmpfiles.d/tmp.conf 2013-04-19 14:37:47.500403658 +0200 -@@ -8,8 +8,8 @@ +Fix regression in the default for tmp auto-deletion (FATE#314974). +SUSE policy is to not clean /tmp by default. +--- + tmpfiles.d/tmp.conf | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/tmpfiles.d/tmp.conf b/tmpfiles.d/tmp.conf +index 3b534a1..99eb6f2 100644 +--- a/tmpfiles.d/tmp.conf ++++ b/tmpfiles.d/tmp.conf +@@ -8,8 +8,9 @@ # See tmpfiles.d(5) for details # Clear tmp directories separately, to make them easier to override -d /tmp 1777 root root 10d -d /var/tmp 1777 root root 30d -+d /tmp 1777 root root -+d /var/tmp 1777 root root ++# SUSE policy: we don't clean those directories ++d /tmp 1777 root root - ++d /var/tmp 1777 root root - # Exclude namespace mountpoints created with PrivateTmp=yes x /tmp/systemd-private-* diff --git a/systemd.changes b/systemd.changes index 6ba66c80..1216a5e5 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Fri Apr 19 16:40:17 UTC 2013 - fcrozat@suse.com + +- Update to release 202: + + 'systemctl list-jobs' got some polishing. '--type=' argument + may now be passed more than once. 'systemctl list-sockets' has + been added. + + systemd gained a new unit 'systemd-static-nodes.service' +    that generates static device nodes earlier during boot, and +    can run in conjunction with udev. + + systemd-nspawn now places all containers in the new /machine +    top-level cgroup directory in the name=systemd hierarchy. + + bootchart can now store its data in the journal. + + journactl can now take multiple --unit= and --user-unit= +    switches. + + The cryptsetup logic now understands the "luks.key=" kernel +    command line switch. If a configured key file is missing, it + will fallback to prompting the user. +- Rebase some patches +- Update handle-SYSTEMCTL_OPTIONS-environment-variable.patch to + properly handle SYSTEMCTL_OPTIONS + ------------------------------------------------------------------- Fri Apr 19 12:47:13 UTC 2013 - max@suse.com diff --git a/systemd.spec b/systemd.spec index 76b5c95a..dfb95a86 100644 --- a/systemd.spec +++ b/systemd.spec @@ -23,7 +23,7 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 200 +Version: 202 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ @@ -159,8 +159,8 @@ Patch23: disable-nss-myhostname-warning-bnc-783841.patch Patch24: handle-etc-HOSTNAME.patch # PATCH-FIX-OPENSUSE Forward-suspend-hibernate-calls-to-pm-utils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch -# PATCH-FIX-UPSTREAM lid-switch-chromebook.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind -Patch38: lid-switch-chromebook.patch +# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind +Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # udev patches # PATCH-FIX-OPENSUSE 1001-Reinstate-TIMEOUT-handling.patch diff --git a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch index 710bc9a1..8a67df99 100644 --- a/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch +++ b/timedate-add-support-for-openSUSE-version-of-etc-sysconfig.patch @@ -7,10 +7,10 @@ Subject: timedate: add support for openSUSE version of /etc/sysconfig/clock 1 file changed, 7 insertions(+) diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index 16fffd0..b1b1859 100644 +index cdb6e5b..7246452 100644 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c -@@ -180,6 +180,13 @@ static int read_data(void) { +@@ -182,6 +182,13 @@ static int read_data(void) { goto have_timezone; } } diff --git a/udev-always-rename-network.patch b/udev-always-rename-network.patch deleted file mode 100644 index d6d56edd..00000000 --- a/udev-always-rename-network.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Robert Milasan -Date: Thu, 28 Mar 2013 09:24:43 +0000 -Subject: udev always rename network - -udev: ensure that the network interfaces are renamed even if they exist -(bnc#809843). ---- - src/udev/udev-event.c | 46 +++++++++++++++++++++++++++++++++++++++++++--- - 1 file changed, 43 insertions(+), 3 deletions(-) - -diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c -index 3db2cb7..3ee9039 100644 ---- a/src/udev/udev-event.c -+++ b/src/udev/udev-event.c -@@ -750,6 +750,7 @@ static int rename_netif(struct udev_event *event) - struct udev_device *dev = event->dev; - int sk; - struct ifreq ifr; -+ int loop; - int err; - - log_debug("changing net interface name from '%s' to '%s'\n", -@@ -766,12 +767,51 @@ static int rename_netif(struct udev_event *event) - strscpy(ifr.ifr_name, IFNAMSIZ, udev_device_get_sysname(dev)); - strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); - err = ioctl(sk, SIOCSIFNAME, &ifr); -- if (err >= 0) { -+ if (err == 0) { - print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); -- } else { -+ goto out; -+ } -+ -+ /* keep trying if the destination interface name already exists */ -+ err = -errno; -+ if (err != -EEXIST) { -+ goto out; -+ } -+ -+ /* free our own name, another process may wait for us */ -+ snprintf(ifr.ifr_newname, IFNAMSIZ, "rename%u", udev_device_get_ifindex(dev)); -+ err = ioctl(sk, SIOCSIFNAME, &ifr); -+ if (err < 0) { - err = -errno; -- log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); -+ goto out; - } -+ -+ /* log temporary name */ -+ print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); -+ -+ /* wait a maximum of 90 seconds for our target to become available */ -+ strscpy(ifr.ifr_name, IFNAMSIZ, ifr.ifr_newname); -+ strscpy(ifr.ifr_newname, IFNAMSIZ, event->name); -+ loop = 90 * 20; -+ while (loop--) { -+ const struct timespec duration = { 0, 1000 * 1000 * 1000 / 20 }; -+ -+ log_debug("wait for netif '%s' to become free, loop=%i\n", event->name, (90 * 20) - loop); -+ nanosleep(&duration, NULL); -+ -+ err = ioctl(sk, SIOCSIFNAME, &ifr); -+ if (err == 0) { -+ print_kmsg("renamed network interface %s to %s\n", ifr.ifr_name, ifr.ifr_newname); -+ break; -+ } -+ err = -errno; -+ if (err != -EEXIST) -+ break; -+ } -+ -+out: -+ if (err < 0) -+ log_error("error changing net interface name %s to %s: %m\n", ifr.ifr_name, ifr.ifr_newname); - close(sk); - return err; - } diff --git a/udev-fix-sg-autoload-regression.patch b/udev-fix-sg-autoload-regression.patch deleted file mode 100644 index 1e79d84e..00000000 --- a/udev-fix-sg-autoload-regression.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Robert Milasan -Date: Tue, 7 Aug 2012 08:34:49 +0000 -Subject: udev fix sg autoload regression - -Fix regression in udev where sg driver is no longer loaded for disc -events. Will need a non-udev solution for 12.3 (bnc#761109). ---- - rules/80-drivers.rules | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/rules/80-drivers.rules b/rules/80-drivers.rules -index 50523e4..b863532 100644 ---- a/rules/80-drivers.rules -+++ b/rules/80-drivers.rules -@@ -7,6 +7,7 @@ SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN{builtin}="kmod load tifm_sd" - SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN{builtin}="kmod load tifm_ms" - SUBSYSTEM=="memstick", RUN{builtin}="kmod load ms_block mspro_block" - SUBSYSTEM=="i2o", RUN{builtin}="kmod load i2o_block" -+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", IMPORT{builtin}="kmod load sg" - SUBSYSTEM=="module", KERNEL=="parport_pc", RUN{builtin}="kmod load ppdev" - KERNEL=="mtd*ro", ENV{MTD_FTL}=="smartmedia", RUN{builtin}="kmod load sm_ftl" - diff --git a/udev-netlink-null-rules.patch b/udev-netlink-null-rules.patch deleted file mode 100644 index 5a4b457c..00000000 --- a/udev-netlink-null-rules.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Robert Milasan -Date: Mon, 6 Aug 2012 13:35:34 +0000 -Subject: udev netlink null rules - -udevd race for netlink events (bnc#774646) ---- - src/udev/udevd.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 5a90b60..2a0bf60 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -1410,6 +1410,8 @@ int main(int argc, char *argv[]) - dev = udev_monitor_receive_device(monitor); - if (dev != NULL) { - udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC)); -+ if (rules == NULL) -+ rules = udev_rules_new(udev, resolve_names); - if (event_queue_insert(dev) < 0) - udev_device_unref(dev); - }