openSUSE Commits
Threads by month
- ----- 2024 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
September 2015
- 1 participants
- 1128 discussions
Hello community,
here is the log from the commit of package xvkbd for openSUSE:Factory checked in at 2015-09-27 14:32:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xvkbd (Old)
and /work/SRC/openSUSE:Factory/.xvkbd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xvkbd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/xvkbd/xvkbd.changes 2013-07-29 17:51:39.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xvkbd.new/xvkbd.changes 2015-09-27 14:31:56.000000000 +0200
@@ -1,0 +2,15 @@
+Sat Sep 26 20:34:14 UTC 2015 - asterios.dramis(a)gmail.com
+
+- Update to version 3.7:
+ * Right click capability was broken in the recent releases. This
+ bug is now fixed.
+ From version 3.6:
+ * New -utf16 option - when used with -file option, make xvkbd to
+ accept UTF16 characters in the file.
+ * Keyboard layout selected with "Change Keyboard Layout..." will
+ be kept when xvkbd is used next time.
+ * Caps Lock now works better for some of the keyboard layouts
+ containing non-ASCII keys.
+ * Improved Hebrew keyboard layout (Thanks Genghis Khan).
+
+-------------------------------------------------------------------
Old:
----
xvkbd-3.5.tar.gz
New:
----
xvkbd-3.7.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xvkbd.spec ++++++
--- /var/tmp/diff_new_pack.bykfXx/_old 2015-09-27 14:31:57.000000000 +0200
+++ /var/tmp/diff_new_pack.bykfXx/_new 2015-09-27 14:31:57.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package xvkbd
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: xvkbd
-Version: 3.5
+Version: 3.7
Release: 0
Summary: Virtual Keyboard for the X Window System
License: GPL-2.0+
++++++ xvkbd-3.5.tar.gz -> xvkbd-3.7.tar.gz ++++++
++++ 4588 lines of diff (skipped)
1
0
Hello community,
here is the log from the commit of package systemd for openSUSE:Factory checked in at 2015-09-27 14:32:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
and /work/SRC/openSUSE:Factory/.systemd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2015-09-25 08:51:52.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes 2015-09-27 14:31:51.000000000 +0200
@@ -2 +2 @@
-Thu Sep 24 12:47:29 UTC 2015 - dimstar(a)opensuse.org
+Fri Sep 25 14:20:41 UTC 2015 - werner(a)suse.de
@@ -4 +4,264 @@
-- Add systemd-bfo88401.patch: do not restart services on coldplug.
+- Fix patch tty-ask-password-agent-on-console.patch not to crash
+ away but enable it to ask on all devices of /dev/console
+
+-------------------------------------------------------------------
+Wed Sep 23 14:19:32 UTC 2015 - jengelh(a)inai.de
+
+- Avoid "file not found /etc/udev/rules.d/70-persistent-net.rules"
+ waring occurring in %post
+
+-------------------------------------------------------------------
+Wed Sep 23 12:41:19 UTC 2015 - werner(a)suse.de
+
+- Add patch let-vconsole-setup-get-properties-only-once-to-copy-them.patch
+ to avoid broken virtual console mapping due stressed ioctl API
+ for the virtual consoles (boo#904214)
+
+-------------------------------------------------------------------
+Mon Sep 7 12:21:06 UTC 2015 - werner(a)suse.de
+
+- Fix last change that is use the new name for udev packages in %pretrans.
+
+-------------------------------------------------------------------
+Mon Sep 7 11:50:21 UTC 2015 - fbui(a)suse.com
+
+- restore usage of LUA in %pretrans.
+
+-------------------------------------------------------------------
+Mon Sep 7 08:09:05 UTC 2015 - werner(a)suse.de
+
+- Try to generate the systemd users and groups always in same order
+ to avoid republish other packages (boo#944660)
+
+-------------------------------------------------------------------
+Fri Aug 21 07:49:33 UTC 2015 - fbui(a)suse.com
+
+- cleanup specfile by removing commands that were dealing with systemd
+ pre-generated files: we're now using systemd tarball generated directly
+ from the git repo which doesn't contain any of these files.
+- there's no point in using LUA in %pretrans
+
+-------------------------------------------------------------------
+Wed Aug 19 09:34:41 UTC 2015 - fbui(a)suse.com
+
+- Drop 0009-make-xsltproc-use-correct-ROFF-links.patch
+
+This patch was initialy added to workaround bsc#842844. But it
+appears that man(1) was fixed (included since 13.2 at least) to
+handle manual pages that consist only of a .so directive such as
+'.so <page>'.
+
+-------------------------------------------------------------------
+Thu Aug 13 11:46:12 UTC 2015 - werner(a)suse.de
+
+- Change use-rndaddentropy-ioctl-to-load-random-seed.patch to
+ make it work on big endian
+
+-------------------------------------------------------------------
+Tue Aug 11 09:48:26 UTC 2015 - jengelh(a)inai.de
+
+- Use Obsolete/Provides strategy from
+ windows:mingw:mingw64/mingw64-cross-gcc to do the bootstrap
+ cycle and kick out -mini afterwards.
+
+-------------------------------------------------------------------
+Tue Aug 11 05:15:09 UTC 2015 - jengelh(a)inai.de
+
+- Update to new upstream release 224
+* systemd-networkd gained a number of new configuration options
+ for DHCP, tunnels and bridges
+* systemd-efi-boot-generator functionality was merged into
+ systemd-gpt-auto-generator.
+
+-------------------------------------------------------------------
+Mon Aug 10 13:16:54 UTC 2015 - sndirsch(a)suse.com
+
+- /usr/share/systemd/kbd-model-map: added entries for
+ xkeyboard-config converted keymaps; mappings, which already
+ exist in original systemd mapping table are being ignored
+ though, i.e. not overwritten; needs kbd in buildrequires
+ (FATE#318426)
+
+-------------------------------------------------------------------
+Wed Jul 29 18:10:53 UTC 2015 - meissner(a)suse.com
+
+- hostname-NULL.patch: Work around a crash on XEN hosts
+ in OBS. /etc/hostname is not present and systemd then does
+ strchr(hostname,soemthing) with hostname NULL.
+
+-------------------------------------------------------------------
+Wed Jul 29 09:02:21 UTC 2015 - werner(a)suse.de
+
+- Add Correct_assert_on_unexpected_error_code.patch to work around
+ a problem of an assert on ENODEV for closing fd on an input
+ event device (boo#939571)
+
+-------------------------------------------------------------------
+Mon Jul 13 15:31:46 UTC 2015 - jengelh(a)inai.de
+
+- Remove udev-generate-rules.sh, apparently not used by anything in
+ the systemd nor udev-persistent-ifnames package.
+
+-------------------------------------------------------------------
+Wed Jul 8 20:44:57 UTC 2015 - crrodriguez(a)opensuse.org
+
+- Systemd v222, bugfix release.
+- Drop upstream patches
+0006-pam_systemd-Properly-check-kdbus-availability.patch
+0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch
+0031-install-fix-bad-memory-access.patch
+1032-ata_id-unbotch-format-specifier.patch
+- Drop SUSE patch 1013-no-runtime-PM-for-IBM-consoles.patch
+ udev does no longer enable USB HID power management at all.
+- The udev accelerometer helper was removed, obsoleted by
+ iio-sensor-proxy package.
+- networkd gained a new configuration option IPv6PrivacyExtensions.
+- udev does not longer support the WAIT_FOR_SYSFS= key in udev
+ rules. There are no known issues with current sysfs,
+ and udev does not need or should be used to work around such bugs.
+
+-------------------------------------------------------------------
+Tue Jul 7 08:54:38 UTC 2015 - jengelh(a)inai.de
+
+- Avoid restarting logind [bnc#934901]
+- Do not suppress errors in any case, even if they are ignored
+
+-------------------------------------------------------------------
+Sun Jul 5 15:52:33 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Fix devel package requires (both mini and real required real libsystemd0)
+
+-------------------------------------------------------------------
+Fri Jul 3 11:17:01 UTC 2015 - werner(a)suse.de
+
+- Rework patch tty-ask-password-agent-on-console.patch to fit the
+ requisition of https://bugs.freedesktop.org/show_bug.cgi?id=82004
+
+-------------------------------------------------------------------
+Wed Jul 1 09:42:44 UTC 2015 - jengelh(a)inai.de
+
+- Rework "-mini" package logic to not conflict with itself and
+ then add libsystemd0 to mini.
+
+-------------------------------------------------------------------
+Wed Jul 1 03:43:51 UTC 2015 - crrodriguez(a)opensuse.org
+
+- remove SysVStartPriority= from after-local.service,
+ unsupported since v218.
+ Note that this option was only parsed and that's it. the logic
+ to give "start priority" was never implemented.
+
+-------------------------------------------------------------------
+Wed Jul 1 03:20:20 UTC 2015 - crrodriguez(a)opensuse.org
+
+- change the default fallback ntp servers to the opensuse
+ pool.ntp.org vendor zone.
+- We still need to run systemd-sysctl.service after local-fs.target
+ otherwise it works only when /boot is in the root filesystem but
+ not when it is a separate partition.
+
+-------------------------------------------------------------------
+Fri Jun 26 17:14:46 CEST 2015 - sbrabec(a)suse.com
+
+- Obsolete pm-utils and suspend (boo#925873).
+- Remove pm-utils support
+ (remove Forward-suspend-hibernate-calls-to-pm-utils.patch).
+
+-------------------------------------------------------------------
+Thu Jun 25 17:27:06 UTC 2015 - crrodriguez(a)opensuse.org
+
+- remove patch sysctl-handle-boot-sysctl.conf-kernel_release.patch
+ from the filelist.
+
+-------------------------------------------------------------------
+Thu Jun 25 05:56:55 UTC 2015 - crrodriguez(a)opensuse.org
+
+- libpcre, glib2 and libusb are not used by systemd, remove
+ from buildrequires.
+
+-------------------------------------------------------------------
+Thu Jun 25 05:19:54 UTC 2015 - crrodriguez(a)opensuse.org
+
+- 1032-ata_id-unbotch-format-specifier.patch: fix udev ata_id
+ output.
+- 0023-core-fix-reversed-dependency-check-in-unit_check_unn.patch
+ fix StopWhenUnneeded=true in combination with a Requisite=
+ dependency.
+- 0031-install-fix-bad-memory-access.patch: Fix Bad memory access
+- 0006-pam_systemd-Properly-check-kdbus-availability.patch: if
+ kdbus is enabled (i.e boot with kdbus=1) DBUS_SESSION_BUS_ADDRESS
+ must not be exported.
+- spec: add a min_kernel_version macro to ensure the package
+ conflicts with kernel versions in which systemd cannot run.
+
++++ 71 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes
++++ and /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes
systemd.changes: same change
Old:
----
0001-Let-some-boolean-survive-a-daemon-reload.patch
0001-core-rework-device-state-logic.patch
0009-make-xsltproc-use-correct-ROFF-links.patch
1013-no-runtime-PM-for-IBM-consoles.patch
Forward-suspend-hibernate-calls-to-pm-utils.patch
sysctl-handle-boot-sysctl.conf-kernel_release.patch
systemd-219.tar.xz
systemd-bfo88401.patch
systemd-powerd-initctl-support.patch
udev-generate-persistent-rule.sh
New:
----
Correct_assert_on_unexpected_error_code.patch
hostname-NULL.patch
let-vconsole-setup-get-properties-only-once-to-copy-them.patch
v224.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ systemd-mini.spec ++++++
++++ 1015 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/systemd/systemd-mini.spec
++++ and /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.spec
systemd.spec: same change
++++++ 0001-On_s390_con3270_disable_ANSI_colour_esc.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,99 +1,29 @@
---
rules/99-systemd.rules.in | 2
+ src/basic/terminal-util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++--
+ src/basic/terminal-util.h | 1
src/core/manager.c | 24 ++++++++---
- src/shared/util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++--
- src/shared/util.h | 1
4 files changed, 116 insertions(+), 10 deletions(-)
-Index: systemd/rules/99-systemd.rules.in
+Index: systemd-221/rules/99-systemd.rules.in
===================================================================
---- systemd.orig/rules/99-systemd.rules.in
-+++ systemd/rules/99-systemd.rules.in
+--- systemd-221.orig/rules/99-systemd.rules.in
++++ systemd-221/rules/99-systemd.rules.in
@@ -7,7 +7,7 @@
ACTION=="remove", GOTO="systemd_end"
-SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty[0-9]*", TAG+="systemd"
+SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd"
-
KERNEL=="vport*", TAG+="systemd"
-Index: systemd/src/core/manager.c
+ SUBSYSTEM=="block", TAG+="systemd"
+Index: systemd-221/src/basic/terminal-util.c
===================================================================
---- systemd.orig/src/core/manager.c
-+++ systemd/src/core/manager.c
-@@ -113,7 +113,7 @@ static int manager_watch_jobs_in_progres
-
- #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1))
-
--static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) {
-+static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos, bool ansi_console) {
- char *p = buffer;
-
- assert(buflen >= CYLON_BUFFER_EXTRA + width + 1);
-@@ -122,12 +122,14 @@ static void draw_cylon(char buffer[], si
- if (pos > 1) {
- if (pos > 2)
- p = mempset(p, ' ', pos-2);
-- p = stpcpy(p, ANSI_RED_ON);
-+ if (ansi_console)
-+ p = stpcpy(p, ANSI_RED_ON);
- *p++ = '*';
- }
-
- if (pos > 0 && pos <= width) {
-- p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON);
-+ if (ansi_console)
-+ p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON);
- *p++ = '*';
- }
-
-@@ -138,7 +140,8 @@ static void draw_cylon(char buffer[], si
- *p++ = '*';
- if (pos < width-1)
- p = mempset(p, ' ', width-1-pos);
-- strcpy(p, ANSI_HIGHLIGHT_OFF);
-+ if (ansi_console)
-+ strcpy(p, ANSI_HIGHLIGHT_OFF);
- }
- }
-
-@@ -155,6 +158,7 @@ void manager_flip_auto_status(Manager *m
- }
-
- static void manager_print_jobs_in_progress(Manager *m) {
-+ static int is_ansi_console = -1;
- _cleanup_free_ char *job_of_n = NULL;
- Iterator i;
- Job *j;
-@@ -180,10 +184,20 @@ static void manager_print_jobs_in_progre
- assert(counter == print_nr + 1);
- assert(j);
-
-+ if (_unlikely_(is_ansi_console < 0)) {
-+ int fd = open_terminal("/dev/console", O_RDONLY|O_NOCTTY|O_CLOEXEC);
-+ if (fd < 0)
-+ is_ansi_console = 0;
-+ else {
-+ is_ansi_console = (int)ansi_console(fd);
-+ close(fd);
-+ }
-+ }
-+
- cylon_pos = m->jobs_in_progress_iteration % 14;
- if (cylon_pos >= 8)
- cylon_pos = 14 - cylon_pos;
-- draw_cylon(cylon, sizeof(cylon), 6, cylon_pos);
-+ draw_cylon(cylon, sizeof(cylon), 6, cylon_pos, (bool)is_ansi_console);
-
- m->jobs_in_progress_iteration++;
-
-Index: systemd/src/shared/util.c
-===================================================================
---- systemd.orig/src/shared/util.c
-+++ systemd/src/shared/util.c
-@@ -3212,6 +3212,7 @@ int status_vprintf(const char *status, b
+--- systemd-221.orig/src/basic/terminal-util.c
++++ systemd-221/src/basic/terminal-util.c
+@@ -647,6 +647,7 @@ int status_vprintf(const char *status, b
struct iovec iovec[6] = {};
int n = 0;
static bool prev_ephemeral;
@@ -101,7 +31,7 @@
assert(format);
-@@ -3225,6 +3226,41 @@ int status_vprintf(const char *status, b
+@@ -660,6 +661,41 @@ int status_vprintf(const char *status, b
if (fd < 0)
return fd;
@@ -143,7 +73,7 @@
if (ellipse) {
char *e;
size_t emax, sl;
-@@ -3247,8 +3283,12 @@ int status_vprintf(const char *status, b
+@@ -682,8 +718,12 @@ int status_vprintf(const char *status, b
}
}
@@ -158,88 +88,84 @@
prev_ephemeral = ephemeral;
if (status) {
-@@ -3504,8 +3544,22 @@ void columns_lines_cache_reset(int signu
- bool on_tty(void) {
- static int cached_on_tty = -1;
-
-- if (_unlikely_(cached_on_tty < 0))
-+ if (_unlikely_(cached_on_tty < 0)) {
- cached_on_tty = isatty(STDOUT_FILENO) > 0;
-+#if defined (__s390__) || defined (__s390x__)
-+ if (cached_on_tty) {
-+ const char *e = getenv("TERM");
-+ if (!e)
-+ return cached_on_tty;
-+ if (streq(e, "dumb") || strneq(e, "ibm3", 4)) {
-+ char *mode = NULL;
-+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL);
-+ if (r < 0 || !mode || !streq(mode, "3270"))
-+ cached_on_tty = 0;
-+ }
-+ }
-+#endif
-+ }
-
- return cached_on_tty;
- }
-@@ -3523,6 +3577,27 @@ int files_same(const char *filea, const
- a.st_ino == b.st_ino;
+@@ -807,10 +847,47 @@ bool tty_is_vc_resolve(const char *tty)
+ return tty_is_vc(tty);
}
+bool ansi_console(int fd) {
+ static int cached_ansi_console = -1;
+
-+ if (_unlikely_(cached_ansi_console < 0)) {
-+ cached_ansi_console = isatty(fd) > 0;
-+#if defined (__s390__) || defined (__s390x__)
-+ if (cached_ansi_console) {
-+ const char *e = getenv("TERM");
-+ if (e && (streq(e, "dumb") || strneq(e, "ibm3", 4))) {
-+ char *mode = NULL;
-+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL);
-+ if (r < 0 || !mode || !streq(mode, "3270"))
-+ cached_ansi_console = 0;
-+ }
-+ }
-+#endif
-+ }
++ if (_likely_(cached_ansi_console >= 0))
++ return cached_ansi_console;
+
++ cached_ansi_console = isatty(fd) > 0;
++#if defined(__s390__) || defined(__s390x__)
++ if (cached_ansi_console) {
++ const char *e = getenv("TERM");
++ if (e != NULL && (streq(e, "dumb") || strneq(e, "ibm3", 4))) {
++ _cleanup_free_ char *mode = NULL;
++ int r = parse_env_file("/proc/cmdline", WHITESPACE,
++ "conmode", &mode, NULL);
++ if (r < 0 || mode == NULL || !streq(mode, "3270"))
++ cached_ansi_console = 0;
++ }
++ }
++#endif
+ return cached_ansi_console;
+}
+
- int running_in_chroot(void) {
- int ret;
-
-@@ -4006,7 +4081,23 @@ bool tty_is_vc_resolve(const char *tty)
const char *default_term_for_tty(const char *tty) {
assert(tty);
- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt220";
+ if (tty_is_vc_resolve(tty))
+ return "TERM=linux";
-+
+ if (startswith(tty, "/dev/"))
+ tty += 5;
-+
+#if defined (__s390__) || defined (__s390x__)
-+ if (streq(tty, "ttyS0")) {
-+ char *mode = NULL;
-+ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL);
-+ if (r < 0 || !mode || !streq(mode, "3270"))
++ if (streq(tty, "ttyS0")) {
++ _cleanup_free_ char *mode = NULL;
++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode",
++ &mode, NULL);
++ if (r < 0 || mode == NULL || !streq(mode, "3270"))
+ return "TERM=dumb";
+ if (streq(mode, "3270"))
+ return "TERM=ibm327x";
-+ }
++ }
+#endif
+ return "TERM=vt220";
}
- bool dirent_is_file(const struct dirent *de) {
-Index: systemd/src/shared/util.h
+ int fd_columns(int fd) {
+@@ -890,8 +967,22 @@ void columns_lines_cache_reset(int signu
+ bool on_tty(void) {
+ static int cached_on_tty = -1;
+
+- if (_unlikely_(cached_on_tty < 0))
++ if (_unlikely_(cached_on_tty < 0)) {
+ cached_on_tty = isatty(STDOUT_FILENO) > 0;
++#if defined (__s390__) || defined (__s390x__)
++ if (cached_on_tty) {
++ const char *e = getenv("TERM");
++ if (!e)
++ return cached_on_tty;
++ if (streq(e, "dumb") || strneq(e, "ibm3", 4)) {
++ char *mode = NULL;
++ int r = parse_env_file("/proc/cmdline", WHITESPACE, "conmode", &mode, NULL);
++ if (r < 0 || !mode || !streq(mode, "3270"))
++ cached_on_tty = 0;
++ }
++ }
++#endif
++ }
+
+ return cached_on_tty;
+ }
+Index: systemd-221/src/basic/terminal-util.h
===================================================================
---- systemd.orig/src/shared/util.h
-+++ systemd/src/shared/util.h
-@@ -475,6 +475,7 @@ unsigned lines(void);
+--- systemd-221.orig/src/basic/terminal-util.h
++++ systemd-221/src/basic/terminal-util.h
+@@ -77,6 +77,7 @@ unsigned lines(void);
void columns_lines_cache_reset(int _unused_ signum);
bool on_tty(void);
@@ -247,3 +173,73 @@
static inline const char *ansi_highlight(void) {
return on_tty() ? ANSI_HIGHLIGHT_ON : "";
+Index: systemd-221/src/core/manager.c
+===================================================================
+--- systemd-221.orig/src/core/manager.c
++++ systemd-221/src/core/manager.c
+@@ -113,7 +113,7 @@ static void manager_watch_jobs_in_progre
+
+ #define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1))
+
+-static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos) {
++static void draw_cylon(char buffer[], size_t buflen, unsigned width, unsigned pos, bool ansi_console) {
+ char *p = buffer;
+
+ assert(buflen >= CYLON_BUFFER_EXTRA + width + 1);
+@@ -122,12 +122,14 @@ static void draw_cylon(char buffer[], si
+ if (pos > 1) {
+ if (pos > 2)
+ p = mempset(p, ' ', pos-2);
+- p = stpcpy(p, ANSI_RED_ON);
++ if (ansi_console)
++ p = stpcpy(p, ANSI_RED_ON);
+ *p++ = '*';
+ }
+
+ if (pos > 0 && pos <= width) {
+- p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON);
++ if (ansi_console)
++ p = stpcpy(p, ANSI_HIGHLIGHT_RED_ON);
+ *p++ = '*';
+ }
+
+@@ -138,7 +140,8 @@ static void draw_cylon(char buffer[], si
+ *p++ = '*';
+ if (pos < width-1)
+ p = mempset(p, ' ', width-1-pos);
+- strcpy(p, ANSI_HIGHLIGHT_OFF);
++ if (ansi_console)
++ strcpy(p, ANSI_HIGHLIGHT_OFF);
+ }
+ }
+
+@@ -155,6 +158,7 @@ void manager_flip_auto_status(Manager *m
+ }
+
+ static void manager_print_jobs_in_progress(Manager *m) {
++ static int is_ansi_console = -1;
+ _cleanup_free_ char *job_of_n = NULL;
+ Iterator i;
+ Job *j;
+@@ -180,10 +184,20 @@ static void manager_print_jobs_in_progre
+ assert(counter == print_nr + 1);
+ assert(j);
+
++ if (_unlikely_(is_ansi_console < 0)) {
++ int fd = open_terminal("/dev/console", O_RDONLY|O_NOCTTY|O_CLOEXEC);
++ if (fd < 0)
++ is_ansi_console = 0;
++ else {
++ is_ansi_console = (int)ansi_console(fd);
++ close(fd);
++ }
++ }
++
+ cylon_pos = m->jobs_in_progress_iteration % 14;
+ if (cylon_pos >= 8)
+ cylon_pos = 14 - cylon_pos;
+- draw_cylon(cylon, sizeof(cylon), 6, cylon_pos);
++ draw_cylon(cylon, sizeof(cylon), 6, cylon_pos, (bool)is_ansi_console);
+
+ m->jobs_in_progress_iteration++;
+
++++++ 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -3,11 +3,11 @@
src/systemctl/systemctl.c | 18 ++++++++++++------
2 files changed, 16 insertions(+), 6 deletions(-)
-Index: systemd-218/src/core/shutdown.c
+Index: systemd-221/src/core/shutdown.c
===================================================================
---- systemd-218.orig/src/core/shutdown.c
-+++ systemd-218/src/core/shutdown.c
-@@ -400,6 +400,10 @@ int main(int argc, char *argv[]) {
+--- systemd-221.orig/src/core/shutdown.c
++++ systemd-221/src/core/shutdown.c
+@@ -396,6 +396,10 @@ int main(int argc, char *argv[]) {
}
reboot(cmd);
@@ -18,11 +18,11 @@
if (errno == EPERM && in_container) {
/* If we are in a container, and we lacked
* CAP_SYS_BOOT just exit, this will kill our
-Index: systemd-218/src/systemctl/systemctl.c
+Index: systemd-221/src/systemctl/systemctl.c
===================================================================
---- systemd-218.orig/src/systemctl/systemctl.c
-+++ systemd-218/src/systemctl/systemctl.c
-@@ -94,6 +94,7 @@ static bool arg_no_pager = false;
+--- systemd-221.orig/src/systemctl/systemctl.c
++++ systemd-221/src/systemctl/systemctl.c
+@@ -93,6 +93,7 @@ static bool arg_no_pager = false;
static bool arg_no_wtmp = false;
static bool arg_no_wall = false;
static bool arg_no_reload = false;
@@ -30,7 +30,7 @@
static bool arg_show_types = false;
static bool arg_ignore_inhibitors = false;
static bool arg_dry = false;
-@@ -6813,6 +6814,7 @@ static int halt_parse_argv(int argc, cha
+@@ -6636,6 +6637,7 @@ static int halt_parse_argv(int argc, cha
{ "reboot", no_argument, NULL, ARG_REBOOT },
{ "force", no_argument, NULL, 'f' },
{ "wtmp-only", no_argument, NULL, 'w' },
@@ -38,7 +38,7 @@
{ "no-wtmp", no_argument, NULL, 'd' },
{ "no-wall", no_argument, NULL, ARG_NO_WALL },
{}
-@@ -6865,10 +6867,13 @@ static int halt_parse_argv(int argc, cha
+@@ -6688,10 +6690,13 @@ static int halt_parse_argv(int argc, cha
case 'i':
case 'h':
@@ -53,7 +53,7 @@
case '?':
return -EINVAL;
-@@ -7511,7 +7516,8 @@ static int halt_now(enum action a) {
+@@ -7291,7 +7296,8 @@ static int halt_now(enum action a) {
/* The kernel will automaticall flush ATA disks and suchlike
* on reboot(), but the file systems need to be synce'd
* explicitly in advance. */
@@ -63,7 +63,7 @@
/* Make sure C-A-D is handled by the kernel from this point
* on... */
-@@ -7519,14 +7525,14 @@ static int halt_now(enum action a) {
+@@ -7299,14 +7305,14 @@ static int halt_now(enum action a) {
switch (a) {
++++++ 0001-add-network-device-after-NFS-mount-units.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -5,17 +5,17 @@
---
Makefile.am | 2
+ src/basic/util.c | 1
src/core/mount-iface.c | 173 +++++++++++++++++++++++++++++++++++++++++++++++++
src/core/mount-iface.h | 25 +++++++
src/core/mount.c | 35 +++++++++
- src/shared/util.c | 1
5 files changed, 234 insertions(+), 2 deletions(-)
-Index: systemd-218/Makefile.am
+Index: systemd-221/Makefile.am
===================================================================
---- systemd-218.orig/Makefile.am
-+++ systemd-218/Makefile.am
-@@ -1134,6 +1134,8 @@ libsystemd_core_la_SOURCES = \
+--- systemd-221.orig/Makefile.am
++++ systemd-221/Makefile.am
+@@ -1164,6 +1164,8 @@ libcore_la_SOURCES = \
src/core/machine-id-setup.h \
src/core/mount-setup.c \
src/core/mount-setup.h \
@@ -24,10 +24,22 @@
src/core/kmod-setup.c \
src/core/kmod-setup.h \
src/core/loopback-setup.h \
-Index: systemd-218/src/core/mount-iface.c
+Index: systemd-221/src/basic/util.c
+===================================================================
+--- systemd-221.orig/src/basic/util.c
++++ systemd-221/src/basic/util.c
+@@ -1478,6 +1478,7 @@ bool fstype_is_network(const char *fstyp
+ "ncp\0"
+ "nfs\0"
+ "nfs4\0"
++ "afs\0"
+ "gfs\0"
+ "gfs2\0"
+ "glusterfs\0";
+Index: systemd-221/src/core/mount-iface.c
===================================================================
--- /dev/null
-+++ systemd-218/src/core/mount-iface.c
++++ systemd-221/src/core/mount-iface.c
@@ -0,0 +1,173 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
@@ -202,10 +214,10 @@
+ freeifaddrs(ifa_list);
+ ifa_list = NULL;
+}
-Index: systemd-218/src/core/mount-iface.h
+Index: systemd-221/src/core/mount-iface.h
===================================================================
--- /dev/null
-+++ systemd-218/src/core/mount-iface.h
++++ systemd-221/src/core/mount-iface.h
@@ -0,0 +1,25 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
@@ -232,11 +244,11 @@
+
+char *host2iface(const char *ip);
+void freeroutes(void);
-Index: systemd-218/src/core/mount.c
+Index: systemd-221/src/core/mount.c
===================================================================
---- systemd-218.orig/src/core/mount.c
-+++ systemd-218/src/core/mount.c
-@@ -38,6 +38,7 @@
+--- systemd-221.orig/src/core/mount.c
++++ systemd-221/src/core/mount.c
+@@ -35,6 +35,7 @@
#include "mkdir.h"
#include "path-util.h"
#include "mount-setup.h"
@@ -244,7 +256,7 @@
#include "unit-name.h"
#include "dbus-mount.h"
#include "special.h"
-@@ -1365,8 +1366,9 @@ static int mount_add_one(
+@@ -1332,8 +1333,9 @@ static int mount_setup_unit(
_cleanup_free_ char *e = NULL, *w = NULL, *o = NULL, *f = NULL;
bool load_extras = false;
MountParameters *p;
@@ -255,17 +267,17 @@
int r;
assert(m);
-@@ -1391,6 +1393,8 @@ static int mount_add_one(
- if (!e)
- return -ENOMEM;
+@@ -1358,6 +1360,8 @@ static int mount_setup_unit(
+ if (r < 0)
+ return r;
+ isnetwork = fstype_is_network(fstype);
+
u = manager_get_unit(m, e);
if (!u) {
delete = true;
-@@ -1419,7 +1423,7 @@ static int mount_add_one(
- if (m->running_as == SYSTEMD_SYSTEM) {
+@@ -1385,7 +1389,7 @@ static int mount_setup_unit(
+ if (m->running_as == MANAGER_SYSTEM) {
const char* target;
- target = mount_needs_network(options, fstype) ? SPECIAL_REMOTE_FS_TARGET : SPECIAL_LOCAL_FS_TARGET;
@@ -273,7 +285,7 @@
r = unit_add_dependency_by_name(u, UNIT_BEFORE, target, NULL, true);
if (r < 0)
goto fail;
-@@ -1505,6 +1509,32 @@ static int mount_add_one(
+@@ -1471,6 +1475,32 @@ static int mount_setup_unit(
goto fail;
}
@@ -296,7 +308,7 @@
+ else {
+ r = unit_add_dependency_by_name(u, UNIT_AFTER, target, NULL, true);
+ if (r < 0)
-+ log_unit_error(u->id, "Failed to add dependency on %s, ignoring: %s",
++ log_unit_error(u, "Failed to add dependency on %s, ignoring: %s",
+ target, strerror(-r));
+ }
+ }
@@ -306,7 +318,7 @@
if (changed)
unit_add_to_dbus_queue(u);
-@@ -1560,6 +1590,7 @@ static int mount_load_proc_self_mountinf
+@@ -1537,6 +1567,7 @@ static int mount_load_proc_self_mountinf
if (r == 0 && k < 0)
r = k;
}
@@ -314,15 +326,3 @@
return r;
}
-Index: systemd-218/src/shared/util.c
-===================================================================
---- systemd-218.orig/src/shared/util.c
-+++ systemd-218/src/shared/util.c
-@@ -1667,6 +1667,7 @@ bool fstype_is_network(const char *fstyp
- "ncp\0"
- "nfs\0"
- "nfs4\0"
-+ "afs\0"
- "gfs\0"
- "gfs2\0"
- "glusterfs\0";
++++++ 0001-avoid-abort-due-timeout-at-user-service.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,6 +1,12 @@
---- systemd-209/src/login/logind-session.c
-+++ systemd-209/src/login/logind-session.c 2014-02-28 12:12:14.762736079 +0000
-@@ -525,6 +525,12 @@ int session_start(Session *s) {
+---
+ src/login/logind-session.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: systemd-221/src/login/logind-session.c
+===================================================================
+--- systemd-221.orig/src/login/logind-session.c
++++ systemd-221/src/login/logind-session.c
+@@ -548,6 +548,12 @@ int session_start(Session *s) {
if (r < 0)
return r;
++++++ 0001-bnc888612-logind-polkit-acpi.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,13 +1,13 @@
---
src/login/logind-action.c | 5 +++++
- src/login/logind-dbus.c | 20 ++++++++++++++++----
- 2 files changed, 21 insertions(+), 4 deletions(-)
+ src/login/logind-dbus.c | 31 +++++++++++++++++++++++--------
+ 2 files changed, 28 insertions(+), 8 deletions(-)
-Index: systemd-218/src/login/logind-action.c
+Index: systemd-221/src/login/logind-action.c
===================================================================
---- systemd-218.orig/src/login/logind-action.c
-+++ systemd-218/src/login/logind-action.c
-@@ -83,6 +83,11 @@ int manager_handle_action(
+--- systemd-221.orig/src/login/logind-action.c
++++ systemd-221/src/login/logind-action.c
+@@ -85,6 +85,11 @@ int manager_handle_action(
/* If the key handling is inhibited, don't do anything */
if (inhibit_key > 0) {
@@ -19,57 +19,83 @@
if (manager_is_inhibited(m, inhibit_key, INHIBIT_BLOCK, NULL, true, false, 0, NULL)) {
log_debug("Refusing operation, %s is inhibited.", inhibit_what_to_string(inhibit_key));
return 0;
-Index: systemd-218/src/login/logind-dbus.c
+Index: systemd-221/src/login/logind-dbus.c
===================================================================
---- systemd-218.orig/src/login/logind-dbus.c
-+++ systemd-218/src/login/logind-dbus.c
-@@ -1487,9 +1487,11 @@ static int method_do_shutdown_or_sleep(
- sd_bus_error *error) {
+--- systemd-221.orig/src/login/logind-dbus.c
++++ systemd-221/src/login/logind-dbus.c
+@@ -1625,12 +1625,13 @@ static int verify_shutdown_creds(
+ const char *action,
+ const char *action_multiple_sessions,
+ const char *action_ignore_inhibit,
+- sd_bus_error *error) {
++ sd_bus_error *error, const char *sleep_verb) {
_cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL;
- bool multiple_sessions, blocked;
+ bool multiple_sessions, blocked, shutdown_through_acpi;
- int interactive, r;
uid_t uid;
-+ int fd;
+- int r;
++ int r, fd;
+ struct stat buf;
assert(m);
assert(message);
-@@ -1533,7 +1535,17 @@ static int method_do_shutdown_or_sleep(
+@@ -1652,7 +1653,19 @@ static int verify_shutdown_creds(
multiple_sessions = r > 0;
blocked = manager_is_inhibited(m, w, INHIBIT_BLOCK, NULL, false, true, uid, NULL);
-- if (multiple_sessions) {
+- if (multiple_sessions && action_multiple_sessions) {
+ fd = open ("/run/systemd/acpi-shutdown", O_NOFOLLOW|O_PATH|O_CLOEXEC);
+ if (fd >= 0) {
-+ shutdown_through_acpi = ((fstat(fd,&buf) == 0) && (time(NULL) - buf.st_mtime <= 65) && !sleep_verb);
++ shutdown_through_acpi = fstat(fd, &buf) == 0 &&
++ time(NULL) - buf.st_mtime <= 65 &&
++ sleep_verb == NULL;
+ close(fd);
+ unlink ("/run/systemd/acpi-shutdown");
+ }
+ else
+ shutdown_through_acpi = false;
+
-+
-+ if (multiple_sessions && !shutdown_through_acpi) {
- r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, &m->polkit_registry, error);
++ if (multiple_sessions && action_multiple_sessions &&
++ !shutdown_through_acpi) {
+ r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_multiple_sessions, interactive, UID_INVALID, &m->polkit_registry, error);
if (r < 0)
return r;
-@@ -1541,7 +1553,7 @@ static int method_do_shutdown_or_sleep(
+@@ -1660,7 +1673,7 @@ static int verify_shutdown_creds(
return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
}
-- if (blocked) {
-+ if (blocked && !shutdown_through_acpi) {
- r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, &m->polkit_registry, error);
+- if (blocked && action_ignore_inhibit) {
++ if (blocked && action_ignore_inhibit && !shutdown_through_acpi) {
+ r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action_ignore_inhibit, interactive, UID_INVALID, &m->polkit_registry, error);
if (r < 0)
return r;
-@@ -1549,7 +1561,7 @@ static int method_do_shutdown_or_sleep(
+@@ -1668,7 +1681,8 @@ static int verify_shutdown_creds(
return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
}
-- if (!multiple_sessions && !blocked) {
-+ if (!multiple_sessions && !blocked && !shutdown_through_acpi) {
- r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, &m->polkit_registry, error);
+- if (!multiple_sessions && !blocked && action) {
++ if (!multiple_sessions && !blocked && action &&
++ !shutdown_through_acpi) {
+ r = bus_verify_polkit_async(message, CAP_SYS_BOOT, action, interactive, UID_INVALID, &m->polkit_registry, error);
if (r < 0)
return r;
+@@ -1716,7 +1730,7 @@ static int method_do_shutdown_or_sleep(
+ }
+
+ r = verify_shutdown_creds(m, message, w, interactive, action, action_multiple_sessions,
+- action_ignore_inhibit, error);
++ action_ignore_inhibit, error, sleep_verb);
+ if (r != 0)
+ return r;
+
+@@ -1896,7 +1910,8 @@ static int method_schedule_shutdown(sd_b
+ return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unsupported shutdown type");
+
+ r = verify_shutdown_creds(m, message, INHIBIT_SHUTDOWN, false,
+- action, action_multiple_sessions, action_ignore_inhibit, error);
++ action, action_multiple_sessions,
++ action_ignore_inhibit, error, "UNUSED");
+ if (r != 0)
+ return r;
+
++++++ 0001-let-systemctl-completion-ignore-at-names.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,5 +1,11 @@
---- systemd-210/shell-completion/bash/systemctl.in
-+++ systemd-210/shell-completion/bash/systemctl.in 2014-08-20 15:01:04.502736981 +0000
+---
+ shell-completion/bash/systemctl.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: systemd-221/shell-completion/bash/systemctl.in
+===================================================================
+--- systemd-221.orig/shell-completion/bash/systemctl.in
++++ systemd-221/shell-completion/bash/systemctl.in
@@ -43,7 +43,7 @@ __filter_units_by_property () {
local units=("$@")
local props
++++++ 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -8,12 +8,14 @@
This belongs to BNC#852015 and also to BNC#855160
---
- pam_systemd.c | 19 +++++++++++++++++++
+ src/login/pam_systemd.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
---- systemd-209/src/login/pam_systemd.c
-+++ systemd-209/src/login/pam_systemd.c 2014-02-26 14:31:30.158235525 +0000
-@@ -447,6 +447,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess
+Index: systemd-221/src/login/pam_systemd.c
+===================================================================
+--- systemd-221.orig/src/login/pam_systemd.c
++++ systemd-221/src/login/pam_systemd.c
+@@ -445,6 +445,25 @@ _public_ PAM_EXTERN int pam_sm_open_sess
r = export_legacy_dbus_address(handle, pw->pw_uid, runtime_path);
if (r != PAM_SUCCESS)
return r;
++++++ 0010-do-not-install-sulogin-unit-with-poweroff.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -2,9 +2,15 @@
| Belongs to bnc#849071 that is do not install console-shell.service
| in any system target as this will cause automatic poweroff at boot.
|
---- systemd-208/units/console-shell.service.m4.in
-+++ systemd-208/units/console-shell.service.m4.in 2013-11-06 09:35:37.958693570 +0000
-@@ -26,6 +26,3 @@ StandardError=inherit
+---
+ units/console-shell.service.m4.in | 3 ---
+ 1 file changed, 3 deletions(-)
+
+Index: systemd-221/units/console-shell.service.m4.in
+===================================================================
+--- systemd-221.orig/units/console-shell.service.m4.in
++++ systemd-221/units/console-shell.service.m4.in
+@@ -28,6 +28,3 @@ StandardError=inherit
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes
++++++ 0014-journald-with-journaling-FS.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -13,10 +13,10 @@
src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
-Index: systemd/src/journal/journald-server.c
+Index: systemd-221/src/journal/journald-server.c
===================================================================
---- systemd.orig/src/journal/journald-server.c
-+++ systemd/src/journal/journald-server.c
+--- systemd-221.orig/src/journal/journald-server.c
++++ systemd-221/src/journal/journald-server.c
@@ -21,6 +21,7 @@
#include <sys/signalfd.h>
@@ -25,7 +25,7 @@
#include <linux/sockios.h>
#include <sys/statvfs.h>
#include <sys/mman.h>
-@@ -917,6 +918,38 @@ finish:
+@@ -918,6 +919,38 @@ finish:
dispatch_message_real(s, iovec, n, m, ucred, tv, label, label_len, unit_id, priority, object_pid);
}
@@ -64,7 +64,7 @@
static int system_journal_open(Server *s, bool flush_requested) {
int r;
-@@ -946,6 +979,7 @@ static int system_journal_open(Server *s
+@@ -947,6 +980,7 @@ static int system_journal_open(Server *s
fn = strjoina("/var/log/journal/", ids);
(void) mkdir(fn, 0755);
++++++ 0019-make-completion-smart-to-be-able-to-redirect.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -12,10 +12,10 @@
shell-completion/bash/udevadm | 6 +++++-
11 files changed, 70 insertions(+), 11 deletions(-)
-Index: systemd/shell-completion/bash/coredumpctl
+Index: systemd-221/shell-completion/bash/coredumpctl
===================================================================
---- systemd.orig/shell-completion/bash/coredumpctl
-+++ systemd/shell-completion/bash/coredumpctl
+--- systemd-221.orig/shell-completion/bash/coredumpctl
++++ systemd-221/shell-completion/bash/coredumpctl
@@ -44,6 +44,10 @@ _coredumpctl() {
[DUMP]='dump gdb'
)
@@ -33,10 +33,10 @@
-complete -F _coredumpctl coredumpctl
+complete -o default -o bashdefault -F _coredumpctl coredumpctl
-Index: systemd/shell-completion/bash/hostnamectl
+Index: systemd-221/shell-completion/bash/hostnamectl
===================================================================
---- systemd.orig/shell-completion/bash/hostnamectl
-+++ systemd/shell-completion/bash/hostnamectl
+--- systemd-221.orig/shell-completion/bash/hostnamectl
++++ systemd-221/shell-completion/bash/hostnamectl
@@ -30,6 +30,10 @@ _hostnamectl() {
local OPTS='-h --help --version --transient --static --pretty
--no-ask-password -H --host --machine'
@@ -54,10 +54,10 @@
-complete -F _hostnamectl hostnamectl
+complete -o default -o bashdefault -F _hostnamectl hostnamectl
-Index: systemd/shell-completion/bash/journalctl
+Index: systemd-221/shell-completion/bash/journalctl
===================================================================
---- systemd.orig/shell-completion/bash/journalctl
-+++ systemd/shell-completion/bash/journalctl
+--- systemd-221.orig/shell-completion/bash/journalctl
++++ systemd-221/shell-completion/bash/journalctl
@@ -55,6 +55,10 @@ _journalctl() {
--root --machine'
)
@@ -75,10 +75,10 @@
-complete -F _journalctl journalctl
+complete -o default -o bashdefault -F _journalctl journalctl
-Index: systemd/shell-completion/bash/kernel-install
+Index: systemd-221/shell-completion/bash/kernel-install
===================================================================
---- systemd.orig/shell-completion/bash/kernel-install
-+++ systemd/shell-completion/bash/kernel-install
+--- systemd-221.orig/shell-completion/bash/kernel-install
++++ systemd-221/shell-completion/bash/kernel-install
@@ -18,11 +18,22 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
@@ -108,10 +108,10 @@
-complete -F _kernel_install kernel-install
+complete -o default -o bashdefault -F _kernel_install kernel-install
-Index: systemd/shell-completion/bash/localectl
+Index: systemd-221/shell-completion/bash/localectl
===================================================================
---- systemd.orig/shell-completion/bash/localectl
-+++ systemd/shell-completion/bash/localectl
+--- systemd-221.orig/shell-completion/bash/localectl
++++ systemd-221/shell-completion/bash/localectl
@@ -36,6 +36,10 @@ _localectl() {
local OPTS='-h --help --version --no-convert --no-pager --no-ask-password
-H --host --machine'
@@ -129,10 +129,10 @@
-complete -F _localectl localectl
+complete -o default -o bashdefault -F _localectl localectl
-Index: systemd/shell-completion/bash/loginctl
+Index: systemd-221/shell-completion/bash/loginctl
===================================================================
---- systemd.orig/shell-completion/bash/loginctl
-+++ systemd/shell-completion/bash/loginctl
+--- systemd-221.orig/shell-completion/bash/loginctl
++++ systemd-221/shell-completion/bash/loginctl
@@ -38,6 +38,10 @@ _loginctl () {
[ARG]='--host -H --kill-who --property -p --signal -s --machine'
)
@@ -150,12 +150,12 @@
-complete -F _loginctl loginctl
+complete -o default -o bashdefault -F _loginctl loginctl
-Index: systemd/shell-completion/bash/systemctl.in
+Index: systemd-221/shell-completion/bash/systemctl.in
===================================================================
---- systemd.orig/shell-completion/bash/systemctl.in
-+++ systemd/shell-completion/bash/systemctl.in
+--- systemd-221.orig/shell-completion/bash/systemctl.in
++++ systemd-221/shell-completion/bash/systemctl.in
@@ -96,6 +96,10 @@ _systemctl () {
- [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --root'
+ [ARG]='--host -H --kill-who --property -p --signal -s --type -t --state --job-mode --root'
)
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
@@ -165,16 +165,16 @@
if __contains_word "--user" ${COMP_WORDS[*]}; then
mode=--user
else
-@@ -264,4 +268,4 @@ _systemctl () {
+@@ -268,4 +272,4 @@ _systemctl () {
return 0
}
-complete -F _systemctl systemctl
+complete -o default -o bashdefault -F _systemctl systemctl
-Index: systemd/shell-completion/bash/systemd-analyze
+Index: systemd-221/shell-completion/bash/systemd-analyze
===================================================================
---- systemd.orig/shell-completion/bash/systemd-analyze
-+++ systemd/shell-completion/bash/systemd-analyze
+--- systemd-221.orig/shell-completion/bash/systemd-analyze
++++ systemd-221/shell-completion/bash/systemd-analyze
@@ -47,6 +47,10 @@ _systemd_analyze() {
[VERIFY]='verify'
)
@@ -192,10 +192,10 @@
-complete -F _systemd_analyze systemd-analyze
+complete -o default -o bashdefault -F _systemd_analyze systemd-analyze
-Index: systemd/shell-completion/bash/systemd-run
+Index: systemd-221/shell-completion/bash/systemd-run
===================================================================
---- systemd.orig/shell-completion/bash/systemd-run
-+++ systemd/shell-completion/bash/systemd-run
+--- systemd-221.orig/shell-completion/bash/systemd-run
++++ systemd-221/shell-completion/bash/systemd-run
@@ -17,6 +17,13 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
@@ -228,10 +228,10 @@
-complete -F _systemd_run systemd-run
+complete -o default -o bashdefault -F _systemd_run systemd-run
-Index: systemd/shell-completion/bash/timedatectl
+Index: systemd-221/shell-completion/bash/timedatectl
===================================================================
---- systemd.orig/shell-completion/bash/timedatectl
-+++ systemd/shell-completion/bash/timedatectl
+--- systemd-221.orig/shell-completion/bash/timedatectl
++++ systemd-221/shell-completion/bash/timedatectl
@@ -30,6 +30,10 @@ _timedatectl() {
local OPTS='-h --help --version --adjust-system-clock --no-pager
--no-ask-password -H --host --machine'
@@ -249,10 +249,10 @@
-complete -F _timedatectl timedatectl
+complete -o default -o bashdefault -F _timedatectl timedatectl
-Index: systemd/shell-completion/bash/udevadm
+Index: systemd-221/shell-completion/bash/udevadm
===================================================================
---- systemd.orig/shell-completion/bash/udevadm
-+++ systemd/shell-completion/bash/udevadm
+--- systemd-221.orig/shell-completion/bash/udevadm
++++ systemd-221/shell-completion/bash/udevadm
@@ -36,6 +36,10 @@ _udevadm() {
local verbs=(info trigger settle control monitor hwdb test-builtin test)
++++++ 1001-re-enable-by_path-links-for-ata-devices.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -25,11 +25,11 @@
src/udev/udev-builtin-path_id.c | 53 ++++++++++++++++++++++++++++++----------
1 file changed, 41 insertions(+), 12 deletions(-)
-Index: systemd-218/src/udev/udev-builtin-path_id.c
+Index: systemd-221/src/udev/udev-builtin-path_id.c
===================================================================
---- systemd-218.orig/src/udev/udev-builtin-path_id.c
-+++ systemd-218/src/udev/udev-builtin-path_id.c
-@@ -426,6 +426,46 @@ static struct udev_device *handle_scsi_h
+--- systemd-221.orig/src/udev/udev-builtin-path_id.c
++++ systemd-221/src/udev/udev-builtin-path_id.c
+@@ -447,6 +447,46 @@ static struct udev_device *handle_scsi_h
return parent;
}
@@ -76,7 +76,7 @@
static struct udev_device *handle_scsi(struct udev_device *parent, char **path, bool *supported_parent) {
const char *devtype;
const char *name;
-@@ -465,19 +505,8 @@ static struct udev_device *handle_scsi(s
+@@ -486,19 +526,8 @@ static struct udev_device *handle_scsi(s
goto out;
}
++++++ 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -4,12 +4,14 @@
Re-enable creation of by-id scsi links for ATA devices. (bnc#769002)
---
- rules/60-persistent-storage.rules | 4 ++++
+ rules/60-persistent-storage.rules | 4 ++++
1 file changed, 4 insertions(+)
---- systemd-206.orig/rules/60-persistent-storage.rules
-+++ systemd-206/rules/60-persistent-storage.rules
-@@ -42,6 +42,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk",
+Index: systemd-221/rules/60-persistent-storage.rules
+===================================================================
+--- systemd-221.orig/rules/60-persistent-storage.rules
++++ systemd-221/rules/60-persistent-storage.rules
+@@ -36,6 +36,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk",
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"
@@ -17,6 +19,6 @@
+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
+ # 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"
++++++ 1003-udev-netlink-null-rules.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -7,16 +7,16 @@
src/udev/udevd.c | 2 ++
1 file changed, 2 insertions(+)
-Index: systemd-218/src/udev/udevd.c
+Index: systemd-221/src/udev/udevd.c
===================================================================
---- systemd-218.orig/src/udev/udevd.c
-+++ systemd-218/src/udev/udevd.c
-@@ -1468,6 +1468,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, arg_resolve_names);
- if (event_queue_insert(dev) < 0)
- udev_device_unref(dev);
- }
+--- systemd-221.orig/src/udev/udevd.c
++++ systemd-221/src/udev/udevd.c
+@@ -917,6 +917,8 @@ static int on_uevent(sd_event_source *s,
+ dev = udev_monitor_receive_device(manager->monitor);
+ if (dev) {
+ udev_device_ensure_usec_initialized(dev, NULL);
++ if (manager->rules == NULL)
++ manager->rules = udev_rules_new(manager->udev, arg_resolve_names);
+ r = event_queue_insert(manager, dev);
+ if (r < 0)
+ udev_device_unref(dev);
++++++ 1005-create-default-links-for-primary-cd_dvd-drive.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -7,10 +7,10 @@
rules/60-cdrom_id.rules | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
-Index: systemd/rules/60-cdrom_id.rules
+Index: systemd-221/rules/60-cdrom_id.rules
===================================================================
---- systemd.orig/rules/60-cdrom_id.rules
-+++ systemd/rules/60-cdrom_id.rules
+--- systemd-221.orig/rules/60-cdrom_id.rules
++++ systemd-221/rules/60-cdrom_id.rules
@@ -20,6 +20,9 @@ IMPORT{program}="cdrom_id --lock-media $
# stale mounts after ejecting
ENV{DISK_MEDIA_CHANGE}=="?*", ENV{ID_CDROM_MEDIA}!="?*", ENV{SYSTEMD_READY}="0"
++++++ 1006-udev-always-rename-network.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -13,11 +13,11 @@
1 file changed, 37 insertions(+), 4 deletions(-)
-Index: systemd-218/src/udev/udev-event.c
+Index: systemd-221/src/udev/udev-event.c
===================================================================
---- systemd-218.orig/src/udev/udev-event.c
-+++ systemd-218/src/udev/udev-event.c
-@@ -767,20 +767,53 @@ out:
+--- systemd-221.orig/src/udev/udev-event.c
++++ systemd-221/src/udev/udev-event.c
+@@ -796,20 +796,53 @@ out:
static int rename_netif(struct udev_event *event) {
struct udev_device *dev = event->dev;
char name[IFNAMSIZ];
@@ -50,7 +50,7 @@
+ oldname, interim, strerror(-r));
+ return r;
+ }
-+
++
+ /* log temporary name */
+ log_info("renamed network interface %s to %s\n", oldname, interim);
+
++++++ 1007-physical-hotplug-cpu-and-memory.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,5 +1,27 @@
---- systemd-210/rules/80-hotplug-cpu-mem.rules
-+++ systemd-210/rules/80-hotplug-cpu-mem.rules 2014-05-21 15:47:01.885605543 +0000
+---
+ Makefile.am | 4 ++++
+ rules/80-hotplug-cpu-mem.rules | 12 ++++++++++++
+ 2 files changed, 16 insertions(+)
+
+Index: systemd-221/Makefile.am
+===================================================================
+--- systemd-221.orig/Makefile.am
++++ systemd-221/Makefile.am
+@@ -3841,6 +3841,10 @@ dist_udevrules_DATA += \
+ rules/73-seat-numlock.rules
+
+ # ------------------------------------------------------------------------------
++dist_udevrules_DATA += \
++ rules/80-hotplug-cpu-mem.rules
++
++# ------------------------------------------------------------------------------
+ mtd_probe_SOURCES = \
+ src/udev/mtd_probe/mtd_probe.c \
+ src/udev/mtd_probe/mtd_probe.h \
+Index: systemd-221/rules/80-hotplug-cpu-mem.rules
+===================================================================
+--- /dev/null
++++ systemd-221/rules/80-hotplug-cpu-mem.rules
@@ -0,0 +1,12 @@
+# do not edit this file, it will be overwritten on update
+
@@ -13,16 +35,3 @@
+
+#
+TAG=="tmpfs", RUN+="/usr/lib/udev/remount-tmpfs"
---- systemd-210/Makefile.am
-+++ systemd-210/Makefile.am
-@@ -2480,6 +2480,10 @@ dist_udevrules_DATA += \
- rules/73-seat-numlock.rules
-
- # ------------------------------------------------------------------------------
-+dist_udevrules_DATA += \
-+ rules/80-hotplug-cpu-mem.rules
-+
-+# ------------------------------------------------------------------------------
- if ENABLE_GUDEV
- if ENABLE_GTK_DOC
- SUBDIRS += \
++++++ 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -7,13 +7,13 @@
we shouldn't run any btrfs check on them.
---
- rules/64-btrfs.rules | 1 +
+ rules/64-btrfs.rules | 1 +
1 file changed, 1 insertion(+)
-diff --git a/rules/64-btrfs.rules b/rules/64-btrfs.rules
-index fe01001..57631bc 100644
---- a/rules/64-btrfs.rules
-+++ b/rules/64-btrfs.rules
+Index: systemd-221/rules/64-btrfs.rules
+===================================================================
+--- systemd-221.orig/rules/64-btrfs.rules
++++ systemd-221/rules/64-btrfs.rules
@@ -3,6 +3,7 @@
SUBSYSTEM!="block", GOTO="btrfs_end"
ACTION=="remove", GOTO="btrfs_end"
@@ -22,6 +22,3 @@
# let the kernel know about this btrfs filesystem, and check if it is complete
IMPORT{builtin}="btrfs ready $devnode"
---
-1.8.1.4
-
++++++ 1012-Skip-persistent-device-link-creation-on-multipath-de.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -10,15 +10,15 @@
Otherwise systemd will get confused about which device to use.
---
- rules/60-persistent-storage.rules | 7 +++++--
+ rules/60-persistent-storage.rules | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
-diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
-index 1208bd3..fd5bedd 100644
---- a/rules/60-persistent-storage.rules
-+++ b/rules/60-persistent-storage.rules
-@@ -39,8 +39,8 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{builtin
- # scsi devices
+Index: systemd-221/rules/60-persistent-storage.rules
+===================================================================
+--- systemd-221.orig/rules/60-persistent-storage.rules
++++ systemd-221/rules/60-persistent-storage.rules
+@@ -33,8 +33,8 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!
+ # SCSI devices
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="scsi"
KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="cciss"
-KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
@@ -28,7 +28,7 @@
# 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}"
-@@ -70,6 +70,9 @@ KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DAT
+@@ -66,6 +66,9 @@ KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!=
KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \
IMPORT{builtin}="blkid --noraid"
@@ -38,6 +38,3 @@
# probe filesystem metadata of disks
KERNEL!="sr*", IMPORT{builtin}="blkid"
---
-1.8.1.4
-
++++++ 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -12,21 +12,18 @@
Signed-off-by: Hannes Reinecke <hare(a)suse.de>
---
- rules/99-systemd.rules.in | 1 +
+ rules/99-systemd.rules.in | 1 +
1 file changed, 1 insertion(+)
-diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in
-index db72373..11ee262 100644
---- a/rules/99-systemd.rules.in
-+++ b/rules/99-systemd.rules.in
-@@ -11,6 +11,7 @@ SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270
-
+Index: systemd-221/rules/99-systemd.rules.in
+===================================================================
+--- systemd-221.orig/rules/99-systemd.rules.in
++++ systemd-221/rules/99-systemd.rules.in
+@@ -10,6 +10,7 @@ ACTION=="remove", GOTO="systemd_end"
+ SUBSYSTEM=="tty", KERNEL=="tty[a-zA-Z]*|hvc*|xvc*|hvsi*|ttysclp*|sclp_line*|3270/tty*", TAG+="systemd"
KERNEL=="vport*", TAG+="systemd"
-+SUBSYSTEM=="block", KERNEL!="ram*", ENV{SYSTEMD_READY}=="0", GOTO="systemd_end"
- SUBSYSTEM=="block", KERNEL!="ram*", TAG+="systemd"
- SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0"
++SUBSYSTEM=="block", ENV{SYSTEMD_READY}=="0", GOTO="systemd_end"
+ SUBSYSTEM=="block", TAG+="systemd"
+ SUBSYSTEM=="block", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0"
---
-1.8.4.5
-
++++++ 1037-udev-exclude-cd-dvd-from-block-device.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,8 +1,14 @@
Exclude cd/dvd as well (bnc#882714)
---- systemd-210/src/udev/udevd.c
-+++ systemd-210/src/udev/udevd.c 2014-06-18 12:53:34.454235577 +0000
-@@ -744,7 +744,8 @@ static int synthesize_change(struct udev
+---
+ src/udev/udevd.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: systemd-221/src/udev/udevd.c
+===================================================================
+--- systemd-221.orig/src/udev/udevd.c
++++ systemd-221/src/udev/udevd.c
+@@ -1022,7 +1022,8 @@ static int synthesize_change(struct udev
if (streq_ptr("block", udev_device_get_subsystem(dev)) &&
streq_ptr("disk", udev_device_get_devtype(dev)) &&
++++++ 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -29,8 +29,10 @@
rules/64-btrfs.rules | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
---- a/rules/64-btrfs.rules
-+++ b/rules/64-btrfs.rules
+Index: systemd-221/rules/64-btrfs.rules
+===================================================================
+--- systemd-221.orig/rules/64-btrfs.rules
++++ systemd-221/rules/64-btrfs.rules
@@ -6,7 +6,8 @@ ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_en
ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end"
++++++ 1062-rules-set-default-permissions-for-GenWQE-devices.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,11 +1,15 @@
-Index: systemd-210/rules/50-udev-default.rules
+---
+ rules/50-udev-default.rules | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: systemd-221/rules/50-udev-default.rules
===================================================================
---- systemd-210.orig/rules/50-udev-default.rules
-+++ systemd-210/rules/50-udev-default.rules
-@@ -66,4 +66,6 @@ KERNEL=="tun", MODE="0666", OPTIONS+="st
+--- systemd-221.orig/rules/50-udev-default.rules
++++ systemd-221/rules/50-udev-default.rules
+@@ -74,4 +74,6 @@ KERNEL=="tun", MODE="0666", OPTIONS+="st
KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse"
+KERNEL=="genwqe*", MODE="0666"
+
- LABEL="default_permissions_end"
+ LABEL="default_end"
++++++ 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -18,11 +18,11 @@
src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------
4 files changed, 32 insertions(+), 7 deletions(-)
-Index: systemd/rules/60-persistent-storage.rules
+Index: systemd-221/rules/60-persistent-storage.rules
===================================================================
---- systemd.orig/rules/60-persistent-storage.rules
-+++ systemd/rules/60-persistent-storage.rules
-@@ -46,6 +46,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par
+--- systemd-221.orig/rules/60-persistent-storage.rules
++++ systemd-221/rules/60-persistent-storage.rules
+@@ -40,6 +40,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par
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"
@@ -30,13 +30,13 @@
+KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="ata", PROGRAM="scsi_id --truncated-serial --whitelisted --replace-whitespace -p0x80 -d$tempnode", RESULT=="?*", ENV{ID_SCSI_COMPAT_TRUNCATED}="$result", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}"
+KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT_TRUNCATED}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT_TRUNCATED}-part%n"
+
- # firewire
+ # 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"
-Index: systemd/src/udev/scsi_id/scsi_id.c
+Index: systemd-221/src/udev/scsi_id/scsi_id.c
===================================================================
---- systemd.orig/src/udev/scsi_id/scsi_id.c
-+++ systemd/src/udev/scsi_id/scsi_id.c
+--- systemd-221.orig/src/udev/scsi_id/scsi_id.c
++++ systemd-221/src/udev/scsi_id/scsi_id.c
@@ -43,6 +43,7 @@ static const struct option options[] = {
{ "replace-whitespace", no_argument, NULL, 'u' },
{ "sg-version", required_argument, NULL, 's' },
@@ -94,11 +94,11 @@
util_replace_chars(serial_str, NULL);
printf("%s\n", serial_str);
goto out;
-Index: systemd/src/udev/scsi_id/scsi_id.h
+Index: systemd-221/src/udev/scsi_id/scsi_id.h
===================================================================
---- systemd.orig/src/udev/scsi_id/scsi_id.h
-+++ systemd/src/udev/scsi_id/scsi_id.h
-@@ -43,6 +43,7 @@ struct scsi_id_device {
+--- systemd-221.orig/src/udev/scsi_id/scsi_id.h
++++ systemd-221/src/udev/scsi_id/scsi_id.h
+@@ -45,6 +45,7 @@ struct scsi_id_device {
char kernel[64];
char serial[MAX_SERIAL_LEN];
char serial_short[MAX_SERIAL_LEN];
@@ -106,11 +106,11 @@
int use_sg;
/* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */
-Index: systemd/src/udev/scsi_id/scsi_serial.c
+Index: systemd-221/src/udev/scsi_id/scsi_serial.c
===================================================================
---- systemd.orig/src/udev/scsi_id/scsi_serial.c
-+++ systemd/src/udev/scsi_id/scsi_serial.c
-@@ -96,7 +96,8 @@ static const char hex_str[]="0123456789a
+--- systemd-221.orig/src/udev/scsi_id/scsi_serial.c
++++ systemd-221/src/udev/scsi_id/scsi_serial.c
+@@ -97,7 +97,8 @@ static const char hex_str[]="0123456789a
static int do_scsi_page80_inquiry(struct udev *udev,
struct scsi_id_device *dev_scsi, int fd,
@@ -120,7 +120,7 @@
static int sg_err_category_new(struct udev *udev,
int scsi_status, int msg_status, int
-@@ -619,7 +620,7 @@ static int do_scsi_page83_inquiry(struct
+@@ -620,7 +621,7 @@ static int do_scsi_page83_inquiry(struct
unsigned char page_83[SCSI_INQ_BUFF_LEN];
/* also pick up the page 80 serial number */
@@ -129,7 +129,7 @@
memzero(page_83, SCSI_INQ_BUFF_LEN);
retval = scsi_inquiry(udev, dev_scsi, fd, 1, PAGE_83, page_83,
-@@ -764,7 +765,8 @@ static int do_scsi_page83_prespc3_inquir
+@@ -765,7 +766,8 @@ static int do_scsi_page83_prespc3_inquir
/* Get unit serial number VPD page */
static int do_scsi_page80_inquiry(struct udev *udev,
struct scsi_id_device *dev_scsi, int fd,
@@ -139,7 +139,7 @@
{
int retval;
int ser_ind;
-@@ -798,9 +800,14 @@ static int do_scsi_page80_inquiry(struct
+@@ -799,9 +801,14 @@ static int do_scsi_page80_inquiry(struct
ser_ind = prepend_vendor_model(udev, dev_scsi, &serial[1]);
if (ser_ind < 0)
return 1;
@@ -155,7 +155,7 @@
}
if (serial_short != NULL) {
memcpy(serial_short, &buf[4], len);
-@@ -876,7 +883,7 @@ int scsi_get_serial(struct udev *udev,
+@@ -877,7 +884,7 @@ int scsi_get_serial(struct udev *udev,
return 1;
if (page_code == PAGE_80) {
@@ -164,7 +164,7 @@
retval = 1;
goto completed;
} else {
-@@ -950,7 +957,7 @@ int scsi_get_serial(struct udev *udev,
+@@ -951,7 +958,7 @@ int scsi_get_serial(struct udev *udev,
for (ind = 4; ind <= page0[3] + 3; ind++)
if (page0[ind] == PAGE_80)
if (!do_scsi_page80_inquiry(udev, dev_scsi, fd,
++++++ 1095-set-ssd-disk-to-use-deadline-scheduler.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -3,22 +3,22 @@
rules/60-ssd-scheduler.rules | 11 +++++++++++
2 files changed, 12 insertions(+)
-Index: systemd/Makefile.am
+Index: systemd-221/Makefile.am
===================================================================
---- systemd.orig/Makefile.am
-+++ systemd/Makefile.am
-@@ -3576,6 +3576,7 @@ dist_udevrules_DATA += \
+--- systemd-221.orig/Makefile.am
++++ systemd-221/Makefile.am
+@@ -3501,6 +3501,7 @@ dist_udevrules_DATA += \
rules/60-persistent-input.rules \
rules/60-persistent-alsa.rules \
rules/60-persistent-storage.rules \
+ rules/60-ssd-scheduler.rules \
+ rules/60-serial.rules \
rules/64-btrfs.rules \
rules/70-mouse.rules \
- rules/70-touchpad.rules \
-Index: systemd/rules/60-ssd-scheduler.rules
+Index: systemd-221/rules/60-ssd-scheduler.rules
===================================================================
--- /dev/null
-+++ systemd/rules/60-ssd-scheduler.rules
++++ systemd-221/rules/60-ssd-scheduler.rules
@@ -0,0 +1,11 @@
+# do not edit this file, it will be overwritten on update
+
++++++ 1096-new-udev-root-symlink-generator.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -5,12 +5,10 @@
units/systemd-udev-root-symlink.service.in | 10 ++
4 files changed, 96 insertions(+)
-Index: systemd/Makefile.am
-===================================================================
---- systemd.orig/Makefile.am
-+++ systemd/Makefile.am
-@@ -3862,6 +3862,25 @@ EXTRA_DIST += \
-
+--- systemd-222.orig/Makefile.am
++++ systemd-222/Makefile.am
+@@ -3759,6 +3759,25 @@ EXTRA_DIST += \
+ test/mocks/fsck
# ------------------------------------------------------------------------------
+rootsymlink_generator_SOURCES = \
@@ -35,10 +33,8 @@
ata_id_SOURCES = \
src/udev/ata_id/ata_id.c
-Index: systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c
-===================================================================
--- /dev/null
-+++ systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c
++++ systemd-222/src/udev/rootsymlink_generator/rootsymlink_generator.c
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2014-2015 Robert Milasan <rmilasan(a)suse.com>
@@ -97,10 +93,8 @@
+ return errno;
+ return 0;
+}
-Index: systemd/units/systemd-udev-root-symlink.service
-===================================================================
--- /dev/null
-+++ systemd/units/systemd-udev-root-symlink.service
++++ systemd-222/units/systemd-udev-root-symlink.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Rule generator for /dev/root symlink
@@ -112,10 +106,8 @@
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/lib/udev/rootsymlink-generator
-Index: systemd/units/systemd-udev-root-symlink.service.in
-===================================================================
--- /dev/null
-+++ systemd/units/systemd-udev-root-symlink.service.in
++++ systemd-222/units/systemd-udev-root-symlink.service.in
@@ -0,0 +1,10 @@
+[Unit]
+Description=Rule generator for /dev/root symlink
++++++ 1097-udevd-increase-maximum-number-of-children.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -2,25 +2,25 @@
src/udev/udevd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-Index: systemd-218/src/udev/udevd.c
+Index: systemd-221/src/udev/udevd.c
===================================================================
---- systemd-218.orig/src/udev/udevd.c
-+++ systemd-218/src/udev/udevd.c
-@@ -446,7 +446,7 @@ static void event_run(struct event *even
+--- systemd-221.orig/src/udev/udevd.c
++++ systemd-221/src/udev/udevd.c
+@@ -569,7 +569,7 @@ static void event_run(Manager *manager,
- if (children >= arg_children_max) {
+ if (hashmap_size(manager->workers) >= arg_children_max) {
if (arg_children_max > 1)
-- log_debug("maximum number (%i) of children reached", children);
-+ log_error("maximum number (%i) of children reached", children);
+- log_debug("maximum number (%i) of children reached", hashmap_size(manager->workers));
++ log_error("maximum number (%i) of children reached", hashmap_size(manager->workers));
return;
}
-@@ -1265,7 +1265,7 @@ int main(int argc, char *argv[]) {
+@@ -1641,7 +1641,7 @@ int main(int argc, char *argv[]) {
arg_children_max = 8;
if (sched_getaffinity(0, sizeof (cpu_set), &cpu_set) == 0) {
-- arg_children_max += CPU_COUNT(&cpu_set) * 2;
+- arg_children_max += CPU_COUNT(&cpu_set) * 2;
+ arg_children_max += CPU_COUNT(&cpu_set) * 64;
}
- }
- log_debug("set children_max to %u", arg_children_max);
+
+ log_debug("set children_max to %u", arg_children_max);
++++++ 1098-systemd-networkd-alias-network-service.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,8 +1,12 @@
-Index: systemd-219/units/systemd-networkd.service.in
+---
+ units/systemd-networkd.service.m4.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: systemd-221/units/systemd-networkd.service.m4.in
===================================================================
---- systemd-219.orig/units/systemd-networkd.service.in
-+++ systemd-219/units/systemd-networkd.service.in
-@@ -29,4 +29,5 @@ WatchdogSec=1min
+--- systemd-221.orig/units/systemd-networkd.service.m4.in
++++ systemd-221/units/systemd-networkd.service.m4.in
+@@ -34,4 +34,5 @@ WatchdogSec=1min
[Install]
WantedBy=multi-user.target
++++++ Correct_assert_on_unexpected_error_code.patch ++++++
---
src/login/pam_systemd.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- src/login/pam_systemd.c
+++ src/login/pam_systemd.c 2015-07-29 08:52:20.762018565 +0000
@@ -507,7 +507,11 @@ _public_ PAM_EXTERN int pam_sm_open_sess
r = pam_set_data(handle, "systemd.session-fd", INT_TO_PTR(session_fd+1), NULL);
if (r != PAM_SUCCESS) {
pam_syslog(handle, LOG_ERR, "Failed to install session fd.");
- safe_close(session_fd);
+ if (session_fd >= 0) {
+ PROTECT_ERRNO;
+ if (_unlikely_(!(close_nointr(session_fd) != -EBADF)))
+ pam_syslog(handle, LOG_ERR, "Unexpected error code on closing session fd: %m");
+ }
return r;
}
}
++++++ Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -8,10 +8,10 @@
tmpfiles.d/legacy.conf | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
-Index: systemd-218/tmpfiles.d/legacy.conf
+Index: systemd-221/tmpfiles.d/legacy.conf
===================================================================
---- systemd-218.orig/tmpfiles.d/legacy.conf
-+++ systemd-218/tmpfiles.d/legacy.conf
+--- systemd-221.orig/tmpfiles.d/legacy.conf
++++ systemd-221/tmpfiles.d/legacy.conf
@@ -10,13 +10,14 @@
# These files are considered legacy and are unnecessary on legacy-free
# systems.
@@ -36,5 +36,5 @@
-d /run/lock/lockdev 0775 root lock -
+#d /run/lock/lockdev 0775 root lock -
- # /forcefsck, /fastboot and /forcequotecheck are deprecated in favor of the
+ # /forcefsck, /fastboot and /forcequotacheck are deprecated in favor of the
# kernel command line options 'fsck.mode=force', 'fsck.mode=skip' and
++++++ after-local.service ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -15,4 +15,3 @@
ExecStart=/etc/init.d/after.local
TimeoutSec=0
RemainAfterExit=yes
-SysVStartPriority=99
++++++ allow-multiple-sulogin-to-be-started.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -4,13 +4,15 @@
allows multiple sulogin instance (bnc#793182).
---
- units/getty@.service.m4 | 1 +
- units/rescue.target | 1 +
- units/serial-getty@.service.m4 | 1 +
+ units/getty@.service.m4 | 1 +
+ units/rescue.target | 1 +
+ units/serial-getty@.service.m4 | 1 +
3 files changed, 3 insertions(+)
---- systemd-206.orig/units/getty@.service.m4
-+++ systemd-206/units/getty@.service.m4
+Index: systemd-221/units/getty@.service.m4
+===================================================================
+--- systemd-221.orig/units/getty@.service.m4
++++ systemd-221/units/getty@.service.m4
@@ -9,6 +9,7 @@
Description=Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
@@ -19,8 +21,10 @@
After=systemd-user-sessions.service plymouth-quit-wait.service
m4_ifdef(`HAVE_SYSV_COMPAT',
After=rc-local.service
---- systemd-206.orig/units/rescue.target
-+++ systemd-206/units/rescue.target
+Index: systemd-221/units/rescue.target
+===================================================================
+--- systemd-221.orig/units/rescue.target
++++ systemd-221/units/rescue.target
@@ -10,6 +10,7 @@ Description=Rescue Mode
Documentation=man:systemd.special(7)
Requires=sysinit.target rescue.service
@@ -29,8 +33,10 @@
AllowIsolate=yes
[Install]
---- systemd-206.orig/units/serial-getty@.service.m4
-+++ systemd-206/units/serial-getty@.service.m4
+Index: systemd-221/units/serial-getty@.service.m4
+===================================================================
+--- systemd-221.orig/units/serial-getty@.service.m4
++++ systemd-221/units/serial-getty@.service.m4
@@ -10,6 +10,7 @@ Description=Serial Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
++++++ apply-ACL-for-nvidia-device-nodes.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -4,14 +4,14 @@
set ACL on nvidia devices (bnc#808319).
---
- logind-acl.c | 12 ++++++++++++
+ src/login/logind-acl.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
-Index: systemd-210/src/login/logind-acl.c
+Index: systemd-221/src/login/logind-acl.c
===================================================================
---- systemd-210.orig/src/login/logind-acl.c
-+++ systemd-210/src/login/logind-acl.c
-@@ -283,5 +283,17 @@ int devnode_acl_all(struct udev *udev,
+--- systemd-221.orig/src/login/logind-acl.c
++++ systemd-221/src/login/logind-acl.c
+@@ -285,5 +285,17 @@ int devnode_acl_all(struct udev *udev,
r = k;
}
++++++ apply-ACL-for-nvidia-uvm-device-node.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -5,13 +5,13 @@
set ACL on nvidia-uvm device (bnc#879767).
---
- src/login/logind-acl.c | 2 ++
+ src/login/logind-acl.c | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/src/login/logind-acl.c b/src/login/logind-acl.c
-index 54bc16b..a40af21 100644
---- a/src/login/logind-acl.c
-+++ b/src/login/logind-acl.c
+Index: systemd-221/src/login/logind-acl.c
+===================================================================
+--- systemd-221.orig/src/login/logind-acl.c
++++ systemd-221/src/login/logind-acl.c
@@ -295,6 +295,8 @@ int devnode_acl_all(struct udev *udev,
if (devnode_acl(devname, flush, del, old_uid, add, new_uid) < 0)
break;
@@ -21,6 +21,3 @@
}
return r;
---
-1.8.4.5
-
++++++ avoid-divide-by-zero-sigtrap.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,8 +1,28 @@
Nasty bug reported on bnc#867663
---- systemd-210/src/core/manager.c
-+++ systemd-210/src/core/manager.c 2014-04-17 13:29:07.366236714 +0000
-@@ -1780,7 +1780,8 @@ static int manager_dispatch_jobs_in_prog
+---
+ src/basic/def.h | 2 +-
+ src/core/manager.c | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+Index: systemd-221/src/basic/def.h
+===================================================================
+--- systemd-221.orig/src/basic/def.h
++++ systemd-221/src/basic/def.h
+@@ -37,7 +37,7 @@
+
+ #define SYSTEMD_CGROUP_CONTROLLER "systemd"
+
+-#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT
++#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS
+ #define SIGNALS_IGNORE SIGPIPE
+
+ #define DIGITS "0123456789"
+Index: systemd-221/src/core/manager.c
+===================================================================
+--- systemd-221.orig/src/core/manager.c
++++ systemd-221/src/core/manager.c
+@@ -1991,7 +1991,8 @@ static int manager_dispatch_jobs_in_prog
assert(m);
assert(source);
@@ -12,14 +32,3 @@
next = now(CLOCK_MONOTONIC) + JOBS_IN_PROGRESS_PERIOD_USEC;
r = sd_event_source_set_time(source, next);
---- systemd-210/src/shared/def.h
-+++ systemd-210/src/shared/def.h 2014-04-17 13:47:10.946234983 +0000
-@@ -37,7 +37,7 @@
-
- #define SYSTEMD_CGROUP_CONTROLLER "name=systemd"
-
--#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT
-+#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT,SIGTRAP,SIGSYS
- #define SIGNALS_IGNORE SIGPIPE
-
- #define DIGITS "0123456789"
++++++ avoid-random-hangs-on-timeouts-due-lost-cwd.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -7,8 +7,14 @@
which then caused the subsequent fault that umounting the users
home directories done by automount are busy.
---- systemd-210/units/user/systemd-exit.service.in
-+++ systemd-210/units/user/systemd-exit.service.in 2014-03-25 16:59:20.406235916 +0000
+---
+ units/user/systemd-exit.service.in | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+Index: systemd-221/units/user/systemd-exit.service.in
+===================================================================
+--- systemd-221.orig/units/user/systemd-exit.service.in
++++ systemd-221/units/user/systemd-exit.service.in
@@ -10,8 +10,9 @@ Description=Exit the Session
Documentation=man:systemd.special(7)
DefaultDependencies=no
++++++ baselibs.conf ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -2,9 +2,7 @@
supplements "packageand(systemd:pam-<targettype>)"
-/lib/systemd/system/
post "<prefix>%{_sbindir}/pam-config -a --systemd || :"
-# postun "if [ "$1" == "0" ]; then"
-# postun "<prefix>%{_sbindir}/pam-config -d --systemd || :"
-# postun "fi"
-libgudev-1_0-0
+libsystemd0
libudev1
nss-myhostname
+nss-mymachines
++++++ boot-local-start.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,6 +1,11 @@
-diff -Naur systemd-210/units/rc-local.service.in systemd-210-mod/units/rc-local.service.in
---- systemd-210/units/rc-local.service.in 2013-08-13 22:02:52.788756123 +0200
-+++ systemd-210-mod/units/rc-local.service.in 2014-03-25 08:34:40.317587764 +0100
+---
+ units/rc-local.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: systemd-221/units/rc-local.service.in
+===================================================================
+--- systemd-221.orig/units/rc-local.service.in
++++ systemd-221/units/rc-local.service.in
@@ -10,7 +10,7 @@
[Unit]
Description=@RC_LOCAL_SCRIPT_PATH_START@ Compatibility
++++++ ensure-ask-password-wall-starts-after-getty-tty1.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -9,8 +9,10 @@
units/systemd-ask-password-wall.service.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
---- systemd-206_git201308300826.orig/units/systemd-ask-password-wall.service.in
-+++ systemd-206_git201308300826/units/systemd-ask-password-wall.service.in
+Index: systemd-221/units/systemd-ask-password-wall.service.in
+===================================================================
+--- systemd-221.orig/units/systemd-ask-password-wall.service.in
++++ systemd-221/units/systemd-ask-password-wall.service.in
@@ -8,7 +8,8 @@
[Unit]
Description=Forward Password Requests to Wall
++++++ ensure-shortname-is-set-as-hostname-bnc-820213.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -4,30 +4,28 @@
strip hostname so the domain part isn't set as part of the hostname
---
- src/core/hostname-setup.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
+ src/core/hostname-setup.c | 4 ++++
+ 1 file changed, 4 insertions(+)
-Index: systemd-218/src/core/hostname-setup.c
+Index: systemd-221/src/core/hostname-setup.c
===================================================================
---- systemd-218.orig/src/core/hostname-setup.c
-+++ systemd-218/src/core/hostname-setup.c
-@@ -32,7 +32,7 @@
- #include "fileio.h"
-
- static int read_and_strip_hostname(const char *path, char **hn) {
-- char *s;
-+ char *s, *domain;
+--- systemd-221.orig/src/core/hostname-setup.c
++++ systemd-221/src/core/hostname-setup.c
+@@ -34,6 +34,7 @@ int hostname_setup(void) {
int r;
+ _cleanup_free_ char *b = NULL;
+ const char *hn;
++ char *domain;
+ bool enoent = false;
- assert(path);
-@@ -49,6 +49,10 @@ static int read_and_strip_hostname(const
- return -ENOENT;
- }
-
+ r = read_hostname_config("/etc/hostname", &b);
+@@ -46,6 +47,9 @@ int hostname_setup(void) {
+ hn = NULL;
+ } else
+ hn = b;
+ /* strip any leftover of a domain name */
-+ if ((domain = strchr(s, '.')) != NULL)
++ if ((domain = strchr(hn, '.')) != NULL)
+ *domain = '\0';
-+
- *hn = s;
- return 0;
- }
+
+ if (isempty(hn)) {
+ /* Don't override the hostname if it is already set
++++++ fix-support-for-boot-prefixed-initscript-bnc-746506.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -3,14 +3,14 @@
Subject: fix support for boot prefixed initscript (bnc#746506)
---
- src/systemctl/systemctl.c | 20 +++++++++++++++++++-
- 1 file changed, 19 insertions(+), 1 deletion(-)
+ src/systemctl/systemctl.c | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
-Index: systemd-218/src/systemctl/systemctl.c
+Index: systemd-221/src/systemctl/systemctl.c
===================================================================
---- systemd-218.orig/src/systemctl/systemctl.c
-+++ systemd-218/src/systemctl/systemctl.c
-@@ -5202,8 +5202,26 @@ static int enable_sysv_units(const char
+--- systemd-221.orig/src/systemctl/systemctl.c
++++ systemd-221/src/systemctl/systemctl.c
+@@ -5165,8 +5165,24 @@ static int enable_sysv_units(const char
p[strlen(p) - strlen(".service")] = 0;
found_sysv = access(p, F_OK) >= 0;
@@ -27,14 +27,12 @@
+ return -ENOMEM;
+ p[strlen(p) - sizeof(".service") + 1] = 0;
+ found_sysv = access(p, F_OK) >= 0;
-+
-+ if (!found_sysv) {
++ if (!found_sysv)
+ continue;
-+ }
+#else
continue;
+#endif
+ }
- log_info("%s is not a native service, redirecting to /sbin/chkconfig.", name);
-
+ if (found_native)
+ log_info("Synchronizing state of %s with SysV init with %s...", name, argv[0]);
++++++ handle-disable_caplock-and-compose_table-and-kbd_rate.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:54.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:54.000000000 +0200
@@ -1,36 +1,41 @@
-From: Frederic Crozat <fcrozat(a)suse.com>
-Date: Fri, 19 Aug 2011 15:29:49 +0000
+Original-From: Frederic Crozat <fcrozat(a)suse.com>
+Original-Date: Fri, 19 Aug 2011 15:29:49 +0000
Subject: handle disable_caplock and compose_table and kbd_rate
+References: https://bugzilla.opensuse.org/746595
+Last-Editor: Jan Engelhardt <jengelh(a)inai.de>
+Date: Fri Jun 19 21:36:27 CEST 2015
-(bnc#746595)
---
- src/vconsole/vconsole-setup.c | 151 +++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 148 insertions(+), 3 deletions(-)
+ src/vconsole/vconsole-setup.c | 151 ++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 147 insertions(+), 4 deletions(-)
-Index: systemd-218/src/vconsole/vconsole-setup.c
+Index: systemd-221/src/vconsole/vconsole-setup.c
===================================================================
---- systemd-218.orig/src/vconsole/vconsole-setup.c
-+++ systemd-218/src/vconsole/vconsole-setup.c
-@@ -40,6 +40,7 @@
- #include "macro.h"
+--- systemd-221.orig/src/vconsole/vconsole-setup.c
++++ systemd-221/src/vconsole/vconsole-setup.c
+@@ -35,6 +35,8 @@
+ #include "log.h"
#include "virt.h"
#include "fileio.h"
++#include "macro.h"
+#include "strv.h"
-
- static bool is_vconsole(int fd) {
- unsigned char data[1];
-@@ -101,8 +102,8 @@ static int enable_utf8(int fd) {
+ #include "process-util.h"
+ #include "terminal-util.h"
+ #include "signal-util.h"
+@@ -99,8 +101,10 @@ static int enable_utf8(int fd) {
return r;
}
--static int keymap_load(const char *vc, const char *map, const char *map_toggle, bool utf8, pid_t *_pid) {
+-static int keyboard_load_and_wait(const char *vc, const char *map, const char *map_toggle, bool utf8) {
- const char *args[8];
-+static int keymap_load(const char *vc, const char *map, const char *map_toggle, bool utf8, bool disable_capslock, pid_t *_pid) {
++static int keyboard_load_and_wait(const char *vc, const char *map,
++ const char *map_toggle, bool utf8, bool disable_capslock)
++{
+ const char *args[9];
- int i = 0;
+ int i = 0, r;
pid_t pid;
-@@ -121,6 +122,8 @@ static int keymap_load(const char *vc, c
+@@ -117,6 +121,8 @@ static int keyboard_load_and_wait(const
args[i++] = map;
if (map_toggle)
args[i++] = map_toggle;
@@ -39,23 +44,23 @@
args[i++] = NULL;
pid = fork();
-@@ -236,11 +239,113 @@ static void font_copy_to_all_vcs(int fd)
+@@ -246,11 +252,117 @@ static void font_copy_to_all_vcs(int fd)
}
}
+#ifdef HAVE_SYSV_COMPAT
-+static int load_compose_table(const char *vc, const char *compose_table, pid_t *_pid) {
++static int compose_load_and_wait(const char *vc, const char *compose_table)
++{
+ const char *args[1024];
-+ int i = 0, j = 0;
++ unsigned int i = 0, j = 0;
++ int ret;
+ pid_t pid;
+ char **strv_compose_table = NULL;
+ char *to_free[1024];
+
-+ if (isempty(compose_table)) {
-+ /* An empty map means no compose table*/
-+ *_pid = 0;
-+ return 0;
-+ }
++ if (isempty(compose_table))
++ /* An empty map means no compose table */
++ return 1;
+
+ args[i++] = KBD_LOADKEYS;
+ args[i++] = "-q";
@@ -69,50 +74,51 @@
+ char **name;
+ char *arg;
+
-+ STRV_FOREACH (name, strv_compose_table) {
-+ if (streq(*name,"-c") || streq(*name,"clear")) {
++ STRV_FOREACH(name, strv_compose_table) {
++ if (streq(*name, "-c") || streq(*name, "clear")) {
+ compose_clear = true;
+ continue;
+ }
-+ if (!compose_loaded) {
-+ if (compose_clear)
-+ args[i++] = "-c";
-+ }
-+ asprintf(&arg, "compose.%s",*name);
++ if (!compose_loaded && compose_clear)
++ args[i++] = "-c";
++ asprintf(&arg, "compose.%s", *name);
+ compose_loaded = true;
+ args[i++] = to_free[j++] = arg;
-+
++ if (i >= ELEMENTSOF(args) - 1)
++ break;
+ }
+ strv_free(strv_compose_table);
+ }
+ args[i++] = NULL;
+
-+ if ((pid = fork()) < 0) {
-+ log_error("Failed to fork: %m");
-+ return -errno;
-+ } else if (pid == 0) {
++ pid = fork();
++ if (pid < 0)
++ return log_error_errno(errno, "Failed to fork: %m");
++ if (pid == 0) {
++ reset_all_signal_handlers();
++ reset_signal_mask();
+ execv(args[0], (char **) args);
+ _exit(EXIT_FAILURE);
+ }
+
-+ *_pid = pid;
-+
-+ for (i=0 ; i < j ; i++)
-+ free (to_free[i]);
-+
-+ return 0;
++ ret = wait_for_terminate_and_warn(args[0], pid, true);
++ for (i = 0; i < j; ++i)
++ free(to_free[i]);
++ if (ret < 0)
++ return ret;
++ return ret == 0;
+}
+#endif
+
-+static int set_kbd_rate(const char *vc, const char *kbd_rate, const char *kbd_delay, pid_t *_pid) {
++static int kbdrate_set_and_wait(const char *vc, const char *kbd_rate,
++ const char *kbd_delay)
++{
+ const char *args[7];
-+ int i = 0;
++ int i = 0, ret;
+ pid_t pid;
+
-+ if (isempty(kbd_rate) && isempty(kbd_delay)) {
-+ *_pid = 0;
-+ return 0;
-+ }
++ if (isempty(kbd_rate) && isempty(kbd_delay))
++ return 1;
+
+ args[i++] = "/bin/kbdrate";
+ if (!isempty(kbd_rate)) {
@@ -126,16 +132,19 @@
+ args[i++] = "-s";
+ args[i++] = NULL;
+
-+ if ((pid = fork()) < 0) {
-+ log_error("Failed to fork: %m");
-+ return -errno;
-+ } else if (pid == 0) {
++ pid = fork();
++ if (pid < 0)
++ return log_error_errno(errno, "Failed to fork: %m");
++ if (pid == 0) {
++ reset_all_signal_handlers();
++ reset_signal_mask();
+ execv(args[0], (char **) args);
+ _exit(EXIT_FAILURE);
+ }
-+
-+ *_pid = pid;
-+ return 0;
++ ret = wait_for_terminate_and_warn(args[0], pid, true);
++ if (ret < 0)
++ return ret;
++ return ret == 0;
+}
+
int main(int argc, char **argv) {
@@ -147,13 +156,13 @@
+ _cleanup_free_ char
+ *vc_kbd_delay = NULL, *vc_kbd_rate = NULL,
+ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL;
-+ pid_t kbd_rate_pid = 0, compose_table_pid = 0;
+#endif
+ bool disable_capslock = false;
++ bool comp_ok, rate_ok;
_cleanup_close_ int fd = -1;
- bool utf8;
- pid_t font_pid = 0, keymap_pid = 0;
-@@ -273,6 +378,28 @@ int main(int argc, char **argv) {
+ bool utf8, font_copy = false, font_ok, keyboard_ok;
+ int r = EXIT_FAILURE;
+@@ -281,6 +393,31 @@ int main(int argc, char **argv) {
utf8 = is_locale_utf8();
@@ -166,7 +175,8 @@
+ "COMPOSETABLE", &vc_compose_table,
+ NULL);
+ if (r < 0 && r != -ENOENT)
-+ log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r));
++ log_warning("Failed to read /etc/sysconfig/keyboard: %s",
++ strerror(-r));
+
+ r = parse_env_file("/etc/sysconfig/console", NEWLINE,
+ "CONSOLE_FONT", &vc_font,
@@ -174,45 +184,33 @@
+ "CONSOLE_UNICODEMAP", &vc_font_unimap,
+ NULL);
+ if (r < 0 && r != -ENOENT)
-+ log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r));
++ 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;
-+#endif
++ disable_capslock = vc_kbd_disable_caps_lock &&
++ strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0;
++#endif /* HAVE_SYSV_COMPAT */
+
r = parse_env_file("/etc/vconsole.conf", NEWLINE,
"KEYMAP", &vc_keymap,
"KEYMAP_TOGGLE", &vc_keymap_toggle,
-@@ -312,14 +439,32 @@ int main(int argc, char **argv) {
- if (font_pid > 0)
- wait_for_terminate_and_warn(KBD_SETFONT, font_pid, true);
-
-- r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid);
-+ r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, disable_capslock, &keymap_pid);
- if (r < 0) {
- log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m");
- return EXIT_FAILURE;
- }
-+#ifdef HAVE_SYSV_COMPAT
-+ r = load_compose_table(vc, vc_compose_table, &compose_table_pid);
-+ if (r < 0) {
-+ log_error_errno(r, "Failed to start " KBD_LOADKEYS " loading the compose table: %m");
-+ return EXIT_FAILURE;
-+ }
-+ r = set_kbd_rate(vc, vc_kbd_rate, vc_kbd_delay, &kbd_rate_pid);
-+ if (r < 0) {
-+ log_error_errno(r, "Failed to start kbdrate: %m");
-+ return EXIT_FAILURE;
-+ }
-+#endif
+@@ -312,11 +449,17 @@ int main(int argc, char **argv) {
+ (void) disable_utf8(fd);
- if (keymap_pid > 0)
- wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid, true);
+ font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0;
+- keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, utf8) > 0;
++ keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle,
++ utf8, disable_capslock) > 0;
+#ifdef HAVE_SYSV_COMPAT
-+ if (compose_table_pid > 0)
-+ wait_for_terminate_and_warn(KBD_LOADKEYS, compose_table_pid, true);
-+ if (kbd_rate_pid > 0)
-+ wait_for_terminate_and_warn("/usr/bin/kbdrate", kbd_rate_pid, true);
++ comp_ok = compose_load_and_wait(vc, vc_compose_table);
++ rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay);
+#endif
- /* Only copy the font when we started setfont successfully */
- if (font_copy && font_pid > 0)
+ /* Only copy the font when we executed setfont successfully */
+ if (font_copy && font_ok)
+ (void) font_copy_to_all_vcs(fd);
+
+- return font_ok && keyboard_ok ? EXIT_SUCCESS : EXIT_FAILURE;
++ return font_ok && keyboard_ok && comp_ok && rate_ok ?
++ EXIT_SUCCESS : EXIT_FAILURE;
+ }
++++++ handle-numlock-value-in-etc-sysconfig-keyboard.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -14,12 +14,10 @@
units/systemd-vconsole-setup.service.in | 2 -
5 files changed, 94 insertions(+), 3 deletions(-)
-Index: systemd-218/Makefile.am
-===================================================================
---- systemd-218.orig/Makefile.am
-+++ systemd-218/Makefile.am
-@@ -3715,6 +3715,19 @@ dist_udevrules_DATA += \
- rules/61-accelerometer.rules
+--- systemd-222.orig/Makefile.am
++++ systemd-222/Makefile.am
+@@ -3805,6 +3805,19 @@ dist_udevrules_DATA += \
+ rules/60-persistent-v4l.rules
# ------------------------------------------------------------------------------
+numlock_on_SOURCES = \
@@ -35,13 +33,11 @@
+ rules/73-seat-numlock.rules
+
+# ------------------------------------------------------------------------------
- if ENABLE_GUDEV
- if ENABLE_GTK_DOC
- SUBDIRS += \
-Index: systemd-218/rules/73-seat-numlock.rules
-===================================================================
+ mtd_probe_SOURCES = \
+ src/udev/mtd_probe/mtd_probe.c \
+ src/udev/mtd_probe/mtd_probe.h \
--- /dev/null
-+++ systemd-218/rules/73-seat-numlock.rules
++++ systemd-222/rules/73-seat-numlock.rules
@@ -0,0 +1,8 @@
+# This file is part of SUSE customization of systemd.
+#
@@ -51,10 +47,8 @@
+# (at your option) any later version.
+
+SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}"
-Index: systemd-218/src/login/numlock-on.c
-===================================================================
--- /dev/null
-+++ systemd-218/src/login/numlock-on.c
++++ systemd-222/src/login/numlock-on.c
@@ -0,0 +1,34 @@
+/*
+ * numlock-on.c: Turn numlock-on
@@ -90,13 +84,11 @@
+
+ exit(0);
+}
-Index: systemd-218/src/vconsole/vconsole-setup.c
-===================================================================
---- systemd-218.orig/src/vconsole/vconsole-setup.c
-+++ systemd-218/src/vconsole/vconsole-setup.c
-@@ -42,6 +42,10 @@
- #include "fileio.h"
- #include "strv.h"
+--- systemd-222.orig/src/vconsole/vconsole-setup.c
++++ systemd-222/src/vconsole/vconsole-setup.c
+@@ -41,6 +41,10 @@
+ #include "terminal-util.h"
+ #include "signal-util.h"
+#define BIOS_DATA_AREA 0x400
+#define BDA_KEYBOARD_STATUS_FLAGS_4 0x97
@@ -105,21 +97,20 @@
static bool is_vconsole(int fd) {
unsigned char data[1];
-@@ -342,10 +346,11 @@ int main(int argc, char **argv) {
+@@ -359,9 +363,10 @@ int main(int argc, char **argv) {
#ifdef HAVE_SYSV_COMPAT
_cleanup_free_ char
*vc_kbd_delay = NULL, *vc_kbd_rate = NULL,
- *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL;
+ *vc_kbd_disable_caps_lock = NULL, *vc_compose_table = NULL,
+ *vc_kbd_numlock = NULL;
- pid_t kbd_rate_pid = 0, compose_table_pid = 0;
#endif
- bool disable_capslock = false;
+ bool disable_capslock = false, numlock = false;
+ bool comp_ok, rate_ok;
_cleanup_close_ int fd = -1;
- bool utf8;
- pid_t font_pid = 0, keymap_pid = 0;
-@@ -384,6 +389,7 @@ int main(int argc, char **argv) {
+ bool utf8, font_copy = false, font_ok, keyboard_ok;
+@@ -399,6 +404,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,
@@ -127,54 +118,52 @@
"COMPOSETABLE", &vc_compose_table,
NULL);
if (r < 0 && r != -ENOENT)
-@@ -398,6 +404,32 @@ int main(int argc, char **argv) {
- log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r));
+@@ -416,6 +422,32 @@ int main(int argc, char **argv) {
- disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0;
+ disable_capslock = vc_kbd_disable_caps_lock &&
+ strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0;
++ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes");
+#if defined(__i386__) || defined(__x86_64__)
-+ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) {
-+ int _cleanup_close_ fdmem;
-+ char c;
-+
-+ fdmem = open ("/dev/mem", O_RDONLY);
-+ if (fdmem < 0) {
-+ log_error("Failed to open /dev/mem: %m");
-+ return EXIT_FAILURE;
-+ }
-+
-+ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) {
-+ log_error("Failed to seek /dev/mem: %m");
-+ return EXIT_FAILURE;
-+ }
-+
-+ if (read (fdmem, &c, sizeof(char)) == -1) {
-+ log_error("Failed to read /dev/mem: %m");
-+ return EXIT_FAILURE;
-+ }
-+
-+ if (c & BDA_KSF4_NUMLOCK_MASK)
-+ numlock = true;
-+ } else
-+#endif
-+ numlock = vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "yes");
- #endif
++ if (vc_kbd_numlock && strcaseeq(vc_kbd_numlock, "bios")) {
++ int _cleanup_close_ fdmem;
++ char c;
++
++ fdmem = open ("/dev/mem", O_RDONLY);
++ if (fdmem < 0) {
++ log_error("Failed to open /dev/mem: %m");
++ return EXIT_FAILURE;
++ }
++
++ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) {
++ log_error("Failed to seek /dev/mem: %m");
++ return EXIT_FAILURE;
++ }
++
++ if (read(fdmem, &c, sizeof(char)) == -1) {
++ log_error("Failed to read /dev/mem: %m");
++ return EXIT_FAILURE;
++ }
++
++ if (c & BDA_KSF4_NUMLOCK_MASK)
++ numlock = true;
++ }
++#endif /* x86 */
+ #endif /* HAVE_SYSV_COMPAT */
r = parse_env_file("/etc/vconsole.conf", NEWLINE,
-@@ -444,6 +476,10 @@ int main(int argc, char **argv) {
- log_error_errno(r, "Failed to start " KBD_LOADKEYS ": %m");
- return EXIT_FAILURE;
- }
+@@ -451,6 +483,10 @@ int main(int argc, char **argv) {
+ font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0;
+ keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle,
+ utf8, disable_capslock) > 0;
+ if (numlock)
+ touch("/run/numlock-on");
+ else
+ unlink("/run/numlock-on");
#ifdef HAVE_SYSV_COMPAT
- r = load_compose_table(vc, vc_compose_table, &compose_table_pid);
- if (r < 0) {
-Index: systemd-218/units/systemd-vconsole-setup.service.in
-===================================================================
---- systemd-218.orig/units/systemd-vconsole-setup.service.in
-+++ systemd-218/units/systemd-vconsole-setup.service.in
+ comp_ok = compose_load_and_wait(vc, vc_compose_table);
+ rate_ok = kbdrate_set_and_wait(vc, vc_kbd_rate, vc_kbd_delay);
+--- systemd-222.orig/units/systemd-vconsole-setup.service.in
++++ systemd-222/units/systemd-vconsole-setup.service.in
@@ -10,7 +10,7 @@ Description=Setup Virtual Console
Documentation=man:systemd-vconsole-setup.service(8) man:vconsole.conf(5)
DefaultDependencies=no
++++++ handle-root_uses_lang-value-in-etc-sysconfig-language.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -7,11 +7,11 @@
src/core/locale-setup.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
-Index: systemd-218/src/core/locale-setup.c
+Index: systemd-221/src/core/locale-setup.c
===================================================================
---- systemd-218.orig/src/core/locale-setup.c
-+++ systemd-218/src/core/locale-setup.c
-@@ -36,6 +36,11 @@ int locale_setup(char ***environment) {
+--- systemd-221.orig/src/core/locale-setup.c
++++ systemd-221/src/core/locale-setup.c
+@@ -34,6 +34,11 @@ int locale_setup(char ***environment) {
char **add;
char *variables[_VARIABLE_LC_MAX] = {};
int r = 0, i;
@@ -23,7 +23,7 @@
if (detect_container(NULL) <= 0) {
r = parse_env_file("/proc/cmdline", WHITESPACE,
-@@ -82,6 +87,27 @@ int locale_setup(char ***environment) {
+@@ -80,6 +85,27 @@ int locale_setup(char ***environment) {
if (r < 0 && r != -ENOENT)
log_warning_errno(r, "Failed to read /etc/locale.conf: %m");
}
++++++ hostname-NULL.patch ++++++
Index: systemd-222/src/core/hostname-setup.c
===================================================================
--- systemd-222.orig/src/core/hostname-setup.c
+++ systemd-222/src/core/hostname-setup.c
@@ -44,7 +44,7 @@ int hostname_setup(void) {
else
log_warning_errno(r, "Failed to read configured hostname: %m");
- hn = NULL;
+ hn = strdup("nohostname.set.site");
} else
hn = b;
/* strip any leftover of a domain name */
++++++ insserv-generator.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -8,14 +8,16 @@
---
Makefile.am | 9
src/insserv-generator/Makefile | 28 ++
- src/insserv-generator/insserv-generator.c | 312 ++++++++++++++++++++++++++++++
- 3 files changed, 349 insertions(+)
+ src/insserv-generator/insserv-generator.c | 316 ++++++++++++++++++++++++++++++
+ 3 files changed, 352 insertions(+), 1 deletion(-)
create mode 100644 src/insserv-generator/Makefile
create mode 100644 src/insserv-generator/insserv-generator.c
---- systemd-219.orig/Makefile.am
-+++ systemd-219/Makefile.am
-@@ -621,7 +621,8 @@ nodist_systemunit_DATA += \
+Index: systemd-224/Makefile.am
+===================================================================
+--- systemd-224.orig/Makefile.am
++++ systemd-224/Makefile.am
+@@ -617,7 +617,8 @@ nodist_systemunit_DATA += \
systemgenerator_PROGRAMS += \
systemd-sysv-generator \
@@ -25,23 +27,23 @@
endif
EXTRA_DIST += \
-@@ -2565,6 +2566,14 @@ systemd_rc_local_generator_LDADD = \
- libsystemd-label.la \
- libsystemd-shared.la
+@@ -2556,6 +2557,12 @@ $(systemd_boot): $(systemd_boot_solib)
+ endif
+ endif
+#-------------------------------------------------------------------------------
+systemd_insserv_generator_SOURCES = \
+ src/insserv-generator/insserv-generator.c
+
-+systemd_insserv_generator_LDADD = \
-+ libsystemd-label.la \
-+ libsystemd-shared.la
++systemd_insserv_generator_LDADD = libbasic.la
+
# ------------------------------------------------------------------------------
- systemd_remount_fs_SOURCES = \
- src/remount-fs/remount-fs.c \
+ stub_headers = \
+ src/boot/efi/util.h \
+Index: systemd-224/src/insserv-generator/Makefile
+===================================================================
--- /dev/null
-+++ systemd-219/src/insserv-generator/Makefile
++++ systemd-224/src/insserv-generator/Makefile
@@ -0,0 +1,28 @@
+# This file is part of systemd.
+#
@@ -71,9 +73,11 @@
+ $(MAKE) -C .. clean
+
+.PHONY: all clean
+Index: systemd-224/src/insserv-generator/insserv-generator.c
+===================================================================
--- /dev/null
-+++ systemd-219/src/insserv-generator/insserv-generator.c
-@@ -0,0 +1,312 @@
++++ systemd-224/src/insserv-generator/insserv-generator.c
+@@ -0,0 +1,316 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
@@ -153,6 +157,7 @@
+ unsigned i;
+ char *r;
+ const char *n;
++ int ret;
+
+ assert(name);
+ assert(_r);
@@ -182,7 +187,9 @@
+ return -EINVAL;
+
+ /* Facilities starting with $ are most likely targets */
-+ r = unit_name_build(n, NULL, ".target");
++ ret = unit_name_build(n, NULL, ".target", &r);
++ if (ret < 0)
++ return ret;
+ } else if (filename && streq(name, filename))
+ /* Names equaling the file name of the services are redundant */
+ return 0;
@@ -246,7 +253,8 @@
+ r = write_string_file(unit,
+ "# Automatically generated by systemd-insserv-generator\n\n"
+ "[Unit]\n"
-+ "Wants=remote-fs-pre.target\n");
++ "Wants=remote-fs-pre.target\n",
++ WRITE_STRING_FILE_CREATE);
+ if (r)
+ return r;
+ free (facility);
++++++ journald-advice-about-use-of-memory.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -16,11 +16,11 @@
src/journal/mmap-cache.c | 16 +++++++++++++++-
4 files changed, 33 insertions(+), 5 deletions(-)
-Index: systemd/src/journal/catalog.c
+Index: systemd-221/src/journal/catalog.c
===================================================================
---- systemd.orig/src/journal/catalog.c
-+++ systemd/src/journal/catalog.c
-@@ -470,6 +470,10 @@ finish:
+--- systemd-221.orig/src/journal/catalog.c
++++ systemd-221/src/journal/catalog.c
+@@ -469,6 +469,10 @@ finish:
static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) {
const CatalogHeader *h;
@@ -31,7 +31,7 @@
int fd;
void *p;
struct stat st;
-@@ -492,12 +496,18 @@ static int open_mmap(const char *databas
+@@ -491,12 +495,18 @@ static int open_mmap(const char *databas
return -EINVAL;
}
@@ -51,10 +51,10 @@
h = p;
if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 ||
le64toh(h->header_size) < sizeof(CatalogHeader) ||
-Index: systemd/src/journal/journal-authenticate.c
+Index: systemd-221/src/journal/journal-authenticate.c
===================================================================
---- systemd.orig/src/journal/journal-authenticate.c
-+++ systemd/src/journal/journal-authenticate.c
+--- systemd-221.orig/src/journal/journal-authenticate.c
++++ systemd-221/src/journal/journal-authenticate.c
@@ -355,7 +355,8 @@ int journal_file_fss_load(JournalFile *f
goto finish;
}
@@ -76,10 +76,10 @@
if (f->fss_file == MAP_FAILED) {
f->fss_file = NULL;
r = -errno;
-Index: systemd/src/journal/journald-kmsg.c
+Index: systemd-221/src/journal/journald-kmsg.c
===================================================================
---- systemd.orig/src/journal/journald-kmsg.c
-+++ systemd/src/journal/journald-kmsg.c
+--- systemd-221.orig/src/journal/journald-kmsg.c
++++ systemd-221/src/journal/journald-kmsg.c
@@ -454,7 +454,8 @@ int server_open_kernel_seqnum(Server *s)
return 0;
}
@@ -90,11 +90,11 @@
if (p == MAP_FAILED) {
log_error_errno(errno, "Failed to map sequential number file, ignoring: %m");
return 0;
-Index: systemd/src/journal/mmap-cache.c
+Index: systemd-221/src/journal/mmap-cache.c
===================================================================
---- systemd.orig/src/journal/mmap-cache.c
-+++ systemd/src/journal/mmap-cache.c
-@@ -467,11 +467,14 @@ static int add_mmap(
+--- systemd-221.orig/src/journal/mmap-cache.c
++++ systemd-221/src/journal/mmap-cache.c
+@@ -466,11 +466,14 @@ static int add_mmap(
struct stat *st,
void **ret) {
@@ -109,7 +109,7 @@
int r;
assert(m);
-@@ -510,7 +513,8 @@ static int add_mmap(
+@@ -509,7 +512,8 @@ static int add_mmap(
}
for (;;) {
@@ -119,7 +119,7 @@
if (d != MAP_FAILED)
break;
if (errno != ENOMEM)
-@@ -523,6 +527,16 @@ static int add_mmap(
+@@ -522,6 +526,16 @@ static int add_mmap(
return -ENOMEM;
}
++++++ kbd-model-map.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -5,10 +5,10 @@
src/locale/kbd-model-map | 13 +++++++++++++
1 file changed, 13 insertions(+)
-Index: systemd/src/locale/kbd-model-map
+Index: systemd-221/src/locale/kbd-model-map
===================================================================
---- systemd.orig/src/locale/kbd-model-map
-+++ systemd/src/locale/kbd-model-map
+--- systemd-221.orig/src/locale/kbd-model-map
++++ systemd-221/src/locale/kbd-model-map
@@ -66,3 +66,16 @@ lt.baltic lt pc105 - terminate:ctrl_a
lt.l4 lt pc105 - terminate:ctrl_alt_bksp
lt lt pc105 - terminate:ctrl_alt_bksp
++++++ let-linker-find-libudev-for-libdevmapper.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -1,35 +1,19 @@
---
- Makefile.am | 4 ++++
configure.ac | 4 ----
- 2 files changed, 4 insertions(+), 4 deletions(-)
+ 1 file changed, 4 deletions(-)
-Index: systemd/Makefile.am
+Index: systemd-224/configure.ac
===================================================================
---- systemd.orig/Makefile.am
-+++ systemd/Makefile.am
-@@ -4789,6 +4789,10 @@ systemd_cryptsetup_CFLAGS = \
- $(AM_CFLAGS) \
- $(LIBCRYPTSETUP_CFLAGS)
-
-+systemd_cryptsetup_LDFLAGS = \
-+ $(AM_LDFLAGS) \
-+ -Wl,-rpath-link=$(top_srcdir)/.libs
-+
- systemd_cryptsetup_LDADD = \
- libsystemd-label.la \
- libudev-internal.la \
-Index: systemd/configure.ac
-===================================================================
---- systemd.orig/configure.ac
-+++ systemd/configure.ac
-@@ -206,10 +206,6 @@ AS_CASE([$CC], [*clang*],
+--- systemd-224.orig/configure.ac
++++ systemd-224/configure.ac
+@@ -199,10 +199,6 @@ AS_CASE([$CC], [*clang*],
-Wno-gnu-variable-sized-type-not-at-end \
])])
--AS_CASE([$CFLAGS], [*-O[[12345\ ]]*],
+-AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
- [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
-- -flto -ffat-lto-objects])],
+- -flto])],
- [AC_MSG_RESULT([skipping -flto, optimization not enabled])])
AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags")
- AS_CASE([$CFLAGS], [*-O[[12345\ ]]*],
+ AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
++++++ let-vconsole-setup-get-properties-only-once-to-copy-them.patch ++++++
From: Werner Fink <werner(a)suse.de>
Date: Wed Sep 23 12:37:23 UTC 2015
Subject: Do not bother vistual console to much with GIO/PIO
This avoids broken virtual console mapping due stressed ioctl API
for the virtual consoles (boo#904214)
---
src/vconsole/vconsole-setup.c | 39 +++++++++++++++++++++++++--------------
1 file changed, 25 insertions(+), 14 deletions(-)
--- src/vconsole/vconsole-setup.c
+++ src/vconsole/vconsole-setup.c 2015-09-23 12:34:33.854018750 +0000
@@ -202,8 +202,13 @@ static void font_copy_to_all_vcs(int fd)
unsigned short map16[E_TABSZ];
struct unimapdesc unimapd;
struct unipair unipairs[USHRT_MAX];
+ struct console_font_op cfo = {};
int i, r;
+ bool hasmap8;
+ bool hasmap16;
+ bool hasunimap;
+
/* get active, and 16 bit mask of used VT numbers */
r = ioctl(fd, VT_GETSTATE, &vcs);
if (r < 0) {
@@ -211,10 +216,22 @@ static void font_copy_to_all_vcs(int fd)
return;
}
+ /* copy font from active VT, where the font was uploaded to */
+ cfo.op = KD_FONT_OP_COPY;
+ cfo.height = vcs.v_active-1; /* tty1 == index 0 */
+
+ hasmap8 = (ioctl(fd, GIO_SCRNMAP, map8) >= 0);
+ hasmap16 = (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0);
+
+ /* unimapd is a ushort count and a pointer to an
+ * array of struct unipair { ushort, ushort } */
+ unimapd.entries = unipairs;
+ unimapd.entry_ct = USHRT_MAX;
+ hasunimap = (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0);
+
for (i = 1; i <= 15; i++) {
char vcname[strlen("/dev/vcs") + DECIMAL_STR_MAX(int)];
_cleanup_close_ int vcfd = -1;
- struct console_font_op cfo = {};
if (i == vcs.v_active)
continue;
@@ -229,25 +246,19 @@ static void font_copy_to_all_vcs(int fd)
if (vcfd < 0)
continue;
- /* copy font from active VT, where the font was uploaded to */
- cfo.op = KD_FONT_OP_COPY;
- cfo.height = vcs.v_active-1; /* tty1 == index 0 */
+ /* copy font from active VT to vcs */
(void) ioctl(vcfd, KDFONTOP, &cfo);
- /* copy map of 8bit chars */
- if (ioctl(fd, GIO_SCRNMAP, map8) >= 0)
+ /* copy map of 8bit chars to vcs */
+ if (hasmap8)
(void) ioctl(vcfd, PIO_SCRNMAP, map8);
- /* copy map of 8bit chars -> 16bit Unicode values */
- if (ioctl(fd, GIO_UNISCRNMAP, map16) >= 0)
+ /* copy map of 8bit chars -> 16bit Unicode values to vcs */
+ if (hasmap16)
(void) ioctl(vcfd, PIO_UNISCRNMAP, map16);
- /* copy unicode translation table */
- /* unimapd is a ushort count and a pointer to an
- array of struct unipair { ushort, ushort } */
- unimapd.entries = unipairs;
- unimapd.entry_ct = USHRT_MAX;
- if (ioctl(fd, GIO_UNIMAP, &unimapd) >= 0) {
+ /* copy unicode translation table to vcs */
+ if (hasunimap) {
struct unimapinit adv = { 0, 0, 0 };
(void) ioctl(vcfd, PIO_UNIMAPCLR, &adv);
++++++ make-emergency.service-conflict-with-syslog.socket.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -11,10 +11,10 @@
units/emergency.service.in | 1 +
1 file changed, 1 insertion(+)
-Index: systemd-218/units/emergency.service.in
+Index: systemd-221/units/emergency.service.in
===================================================================
---- systemd-218.orig/units/emergency.service.in
-+++ systemd-218/units/emergency.service.in
+--- systemd-221.orig/units/emergency.service.in
++++ systemd-221/units/emergency.service.in
@@ -11,6 +11,7 @@ Documentation=man:sulogin(8)
DefaultDependencies=no
Conflicts=shutdown.target
++++++ parse-crypttab-for-noauto-option.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -2,11 +2,11 @@
src/fstab-generator/fstab-generator.c | 45 +++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
-Index: systemd/src/fstab-generator/fstab-generator.c
+Index: systemd-221/src/fstab-generator/fstab-generator.c
===================================================================
---- systemd.orig/src/fstab-generator/fstab-generator.c
-+++ systemd/src/fstab-generator/fstab-generator.c
-@@ -48,6 +48,49 @@ static char *arg_usr_what = NULL;
+--- systemd-221.orig/src/fstab-generator/fstab-generator.c
++++ systemd-221/src/fstab-generator/fstab-generator.c
+@@ -47,6 +47,49 @@ static char *arg_usr_what = NULL;
static char *arg_usr_fstype = NULL;
static char *arg_usr_options = NULL;
@@ -56,7 +56,7 @@
static int add_swap(
const char *what,
struct mntent *me,
-@@ -118,7 +161,7 @@ static int add_swap(
+@@ -108,7 +151,7 @@ static int add_swap(
if (r < 0)
return r;
++++++ plymouth-quit-and-wait-for-emergency-service.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -1,13 +1,13 @@
---
units/console-shell.service.m4.in | 2 ++
- units/emergency.service.in | 3 ++-
+ units/emergency.service.in | 2 +-
units/rescue.service.in | 3 ++-
- 3 files changed, 6 insertions(+), 2 deletions(-)
+ 3 files changed, 5 insertions(+), 2 deletions(-)
-Index: systemd/units/console-shell.service.m4.in
+Index: systemd-224/units/console-shell.service.m4.in
===================================================================
---- systemd.orig/units/console-shell.service.m4.in
-+++ systemd/units/console-shell.service.m4.in
+--- systemd-224.orig/units/console-shell.service.m4.in
++++ systemd-224/units/console-shell.service.m4.in
@@ -17,6 +17,8 @@ Before=getty.target
[Service]
Environment=HOME=/root
@@ -17,24 +17,23 @@
ExecStart=-@SULOGIN@
ExecStopPost=-@SYSTEMCTL@ poweroff
Type=idle
-Index: systemd/units/emergency.service.in
+Index: systemd-224/units/emergency.service.in
===================================================================
---- systemd.orig/units/emergency.service.in
-+++ systemd/units/emergency.service.in
-@@ -17,7 +17,8 @@ Before=shutdown.target
+--- systemd-224.orig/units/emergency.service.in
++++ systemd-224/units/emergency.service.in
+@@ -17,7 +17,7 @@ Before=shutdown.target
[Service]
Environment=HOME=/root
WorkingDirectory=/root
--ExecStartPre=-/bin/plymouth quit
-+ExecStartPre=-/usr/bin/plymouth quit
-+ExecStartPre=-/usr/bin/plymouth --wait
+-ExecStartPre=-/bin/plymouth --wait quit
++ExecStartPre=-/usr/bin/plymouth --wait quit
ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.'
- ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default"
+ ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default"
Type=idle
-Index: systemd/units/rescue.service.in
+Index: systemd-224/units/rescue.service.in
===================================================================
---- systemd.orig/units/rescue.service.in
-+++ systemd/units/rescue.service.in
+--- systemd-224.orig/units/rescue.service.in
++++ systemd-224/units/rescue.service.in
@@ -16,7 +16,8 @@ Before=shutdown.target
[Service]
Environment=HOME=/root
@@ -43,5 +42,5 @@
+ExecStartPre=-/usr/bin/plymouth quit
+ExecStartPre=-/usr/bin/plymouth --wait
ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.'
- ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default"
+ ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default"
Type=idle
++++++ portmap-wants-rpcbind-socket.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -1,5 +1,11 @@
---- systemd-210/units/rpcbind.target
-+++ systemd-210/units/rpcbind.target 2014-04-08 07:21:55.438235838 +0000
+---
+ units/rpcbind.target | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: systemd-221/units/rpcbind.target
+===================================================================
+--- systemd-221.orig/units/rpcbind.target
++++ systemd-221/units/rpcbind.target
@@ -12,3 +12,4 @@
Description=RPC Port Mapper
Documentation=man:systemd.special(7)
++++++ pre_checkin.sh ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -5,8 +5,8 @@
ORIG_SPEC=systemd
EDIT_WARNING="##### WARNING: please do not edit this auto generated spec file. Use the ${ORIG_SPEC}.spec! #####\n"
-sed "s/^%define bootstrap.*$/${EDIT_WARNING}%define bootstrap 1/;
- s/^%define udevpkgname.*$/${EDIT_WARNING}%define udevpkgname udev-mini/;
+sed "s/^%define bootstrap .*$/${EDIT_WARNING}%define bootstrap 1/;
+ s/^%define mini .*$/${EDIT_WARNING}%define mini -mini/;
s/^\(Name:.*\)$/\1-mini/;
s/^BuildRoot.*/&\n\nProvides: %{real} = %{version}-%{release}\n/
" < ${ORIG_SPEC}.spec > ${ORIG_SPEC}-mini.spec
++++++ rescue-emergency-target-conflicts.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -1,13 +1,22 @@
---- systemd-210/units/emergency.target
-+++ systemd-210/units/emergency.target 2014-04-15 11:11:18.618235831 +0000
+---
+ units/emergency.target | 1 +
+ units/rescue.target | 3 ++-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+Index: systemd-221/units/emergency.target
+===================================================================
+--- systemd-221.orig/units/emergency.target
++++ systemd-221/units/emergency.target
@@ -10,4 +10,5 @@ Description=Emergency Mode
Documentation=man:systemd.special(7)
Requires=emergency.service
After=emergency.service
+Conflicts=getty.target rescue.target
AllowIsolate=yes
---- systemd-210/units/rescue.target
-+++ systemd-210/units/rescue.target 2014-04-15 11:14:40.606808928 +0000
+Index: systemd-221/units/rescue.target
+===================================================================
+--- systemd-221.orig/units/rescue.target
++++ systemd-221/units/rescue.target
@@ -10,7 +10,8 @@ Description=Rescue Mode
Documentation=man:systemd.special(7)
Requires=sysinit.target rescue.service
++++++ respect-nfs-bg-option.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -2,11 +2,11 @@
src/fstab-generator/fstab-generator.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
-Index: systemd-218/src/fstab-generator/fstab-generator.c
+Index: systemd-221/src/fstab-generator/fstab-generator.c
===================================================================
---- systemd-218.orig/src/fstab-generator/fstab-generator.c
-+++ systemd-218/src/fstab-generator/fstab-generator.c
-@@ -238,8 +238,11 @@ static int add_mount(
+--- systemd-221.orig/src/fstab-generator/fstab-generator.c
++++ systemd-221/src/fstab-generator/fstab-generator.c
+@@ -289,8 +289,11 @@ static int add_mount(
"Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n",
source);
@@ -18,5 +18,5 @@
+ fprintf(f, "Before=%s\n", post);
+ }
- if (passno != 0) {
- r = generator_write_fsck_deps(f, arg_dest, what, where, fstype);
+ if (!automount && opts) {
+ r = write_requires_after(f, opts);
++++++ restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -10,11 +10,11 @@
create mode 100644 units/var-lock.mount
create mode 100644 units/var-run.mount
-Index: systemd-218/Makefile.am
+Index: systemd-221/Makefile.am
===================================================================
---- systemd-218.orig/Makefile.am
-+++ systemd-218/Makefile.am
-@@ -516,6 +516,12 @@ endif
+--- systemd-221.orig/Makefile.am
++++ systemd-221/Makefile.am
+@@ -526,6 +526,12 @@ dist_systemunit_DATA += \
dist_systemunit_DATA_busnames += \
units/busnames.target
@@ -27,9 +27,9 @@
nodist_systemunit_DATA = \
units/getty@.service \
units/serial-getty@.service \
-@@ -6086,6 +6092,9 @@ RUNLEVEL4_TARGET_WANTS += \
+@@ -6123,6 +6129,9 @@ GRAPHICAL_TARGET_WANTS += \
systemd-update-utmp-runlevel.service
- RUNLEVEL5_TARGET_WANTS += \
+ RESCUE_TARGET_WANTS += \
systemd-update-utmp-runlevel.service
+LOCAL_FS_TARGET_WANTS += \
+ var-run.mount \
@@ -37,10 +37,10 @@
endif
SYSINIT_TARGET_WANTS += \
-Index: systemd-218/units/var-lock.mount
+Index: systemd-221/units/var-lock.mount
===================================================================
--- /dev/null
-+++ systemd-218/units/var-lock.mount
++++ systemd-221/units/var-lock.mount
@@ -0,0 +1,19 @@
+# This file is part of systemd.
+#
@@ -61,10 +61,10 @@
+Where=/var/lock
+Type=bind
+Options=bind
-Index: systemd-218/units/var-run.mount
+Index: systemd-221/units/var-run.mount
===================================================================
--- /dev/null
-+++ systemd-218/units/var-run.mount
++++ systemd-221/units/var-run.mount
@@ -0,0 +1,19 @@
+# This file is part of systemd.
+#
++++++ set-and-use-default-logconsole.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -1,16 +1,18 @@
Use and set default logging console for both journald and kernel messages
---
- src/journal/journald-console.c | 96 +++++++++++++++++++++++++++++++++++++++++
- src/journal/journald-console.h | 4 +
- src/journal/journald-server.c | 5 ++
- 3 files changed, 105 insertions(+)
+ src/journal/journald-console.c | 100 +++++++++++++++++++++++++++++++++++++++++
+ src/journal/journald-console.h | 3 +
+ src/journal/journald-server.c | 6 ++
+ 3 files changed, 109 insertions(+)
---- systemd-219.orig/src/journal/journald-console.c
-+++ systemd-219/src/journal/journald-console.c
-@@ -23,6 +23,14 @@
+Index: systemd-221/src/journal/journald-console.c
+===================================================================
+--- systemd-221.orig/src/journal/journald-console.c
++++ systemd-221/src/journal/journald-console.c
+@@ -22,6 +22,14 @@
+ #include <time.h>
#include <fcntl.h>
- #include <unistd.h>
#include <sys/socket.h>
+#ifdef HAVE_SYSV_COMPAT
+# include <linux/tiocl.h>
@@ -23,11 +25,11 @@
#include "fileio.h"
#include "journald-server.h"
-@@ -43,6 +51,76 @@ static bool prefix_timestamp(void) {
+@@ -45,6 +53,76 @@ static bool prefix_timestamp(void) {
return cached_printk_time;
}
-+void defaul_tty_path(Server *s)
++void default_tty_path(Server *s)
+{
+#ifdef HAVE_SYSV_COMPAT
+ static const char list[] = "/dev/tty10\0" "/dev/console\0";
@@ -100,7 +102,7 @@
void server_forward_console(
Server *s,
int priority,
-@@ -64,6 +142,12 @@ void server_forward_console(
+@@ -66,6 +144,12 @@ void server_forward_console(
if (LOG_PRI(priority) > s->max_level_console)
return;
@@ -113,7 +115,7 @@
/* First: timestamp */
if (prefix_timestamp()) {
assert_se(clock_gettime(CLOCK_MONOTONIC, &ts) == 0);
-@@ -100,7 +184,23 @@ void server_forward_console(
+@@ -102,7 +186,23 @@ void server_forward_console(
fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
if (fd < 0) {
log_debug_errno(errno, "Failed to open %s for logging: %m", tty);
@@ -137,22 +139,34 @@
}
if (writev(fd, iovec, n) < 0)
---- systemd-219.orig/src/journal/journald-console.h
-+++ systemd-219/src/journal/journald-console.h
+Index: systemd-221/src/journal/journald-console.h
+===================================================================
+--- systemd-221.orig/src/journal/journald-console.h
++++ systemd-221/src/journal/journald-console.h
@@ -24,3 +24,6 @@
#include "journald-server.h"
void server_forward_console(Server *s, int priority, const char *identifier, const char *message, const struct ucred *ucred);
+
+void klogconsole(Server *s);
-+void defaul_tty_path(Server *s);
---- systemd-219.orig/src/journal/journald-server.c
-+++ systemd-219/src/journal/journald-server.c
-@@ -1520,6 +1520,11 @@ int server_init(Server *s) {
++void default_tty_path(Server *s);
+Index: systemd-221/src/journal/journald-server.c
+===================================================================
+--- systemd-221.orig/src/journal/journald-server.c
++++ systemd-221/src/journal/journald-server.c
+@@ -52,6 +52,7 @@
+ #include "journal-internal.h"
+ #include "journal-vacuum.h"
+ #include "journal-authenticate.h"
++#include "journald-console.h"
+ #include "journald-rate-limit.h"
+ #include "journald-kmsg.h"
+ #include "journald-syslog.h"
+@@ -1514,6 +1515,11 @@ int server_init(Server *s) {
server_parse_config_file(s);
server_parse_proc_cmdline(s);
-+ defaul_tty_path(s);
++ default_tty_path(s);
+
+ if (s->tty_path)
+ klogconsole(s);
++++++ shut-up-rpmlint-on-var-log-journal.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -2,12 +2,12 @@
Makefile.am | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
-Index: systemd-218/Makefile.am
+Index: systemd-221/Makefile.am
===================================================================
---- systemd-218.orig/Makefile.am
-+++ systemd-218/Makefile.am
-@@ -4209,11 +4209,11 @@ noinst_LTLIBRARIES += \
- libsystemd-journal-core.la
+--- systemd-221.orig/Makefile.am
++++ systemd-221/Makefile.am
+@@ -4129,11 +4129,11 @@ noinst_LTLIBRARIES += \
+ libjournal-core.la
journal-install-hook:
- -$(MKDIR_P) $(DESTDIR)/var/log/journal
++++++ suse-sysv-bootd-support.diff ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -7,12 +7,12 @@
[Implementation note: currently, the unit is generated, but not
activated even if symlinks exist in boot.d. Hmmm... -jengelh(a)inai.de]
---
- src/sysv-generator/sysv-generator.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
+ src/sysv-generator/sysv-generator.c | 21 +++++++++++++++------
+ 1 file changed, 15 insertions(+), 6 deletions(-)
---- systemd-219.orig/src/sysv-generator/sysv-generator.c
-+++ systemd-219/src/sysv-generator/sysv-generator.c
-@@ -42,7 +42,8 @@
+--- systemd-222.orig/src/sysv-generator/sysv-generator.c
++++ systemd-222/src/sysv-generator/sysv-generator.c
+@@ -39,7 +39,8 @@
typedef enum RunlevelType {
RUNLEVEL_UP,
@@ -22,7 +22,7 @@
} RunlevelType;
static const struct {
-@@ -50,6 +51,9 @@ static const struct {
+@@ -47,6 +48,9 @@ static const struct {
const char *target;
const RunlevelType type;
} rcnd_table[] = {
@@ -30,9 +30,9 @@
+ { "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT },
+
/* Standard SysV runlevels for start-up */
- { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP },
- { "rc2.d", SPECIAL_RUNLEVEL2_TARGET, RUNLEVEL_UP },
-@@ -65,7 +69,7 @@ static const struct {
+ { "rc1.d", SPECIAL_RESCUE_TARGET, RUNLEVEL_UP },
+ { "rc2.d", SPECIAL_MULTI_USER_TARGET, RUNLEVEL_UP },
+@@ -62,10 +66,10 @@ static const struct {
directories in this order, and we want to make sure that
sysv_start_priority is known when we first load the
unit. And that value we only know from S links. Hence
@@ -40,28 +40,23 @@
+ UP/SYSINIT must be read before DOWN */
};
- typedef struct SysvStub {
-@@ -83,7 +87,7 @@ typedef struct SysvStub {
- bool reload;
- } SysvStub;
-
-const char *arg_dest = "/tmp";
+static const char *arg_dest = "/tmp";
- static int add_symlink(const char *service, const char *where) {
- _cleanup_free_ char *from = NULL, *to = NULL;
-@@ -235,6 +239,10 @@ static bool usage_contains_reload(const
- static char *sysv_translate_name(const char *name) {
- char *r;
+ typedef struct SysvStub {
+ char *name;
+@@ -243,6 +247,10 @@ static char *sysv_translate_name(const c
+ _cleanup_free_ char *c = NULL;
+ char *res;
+ if (startswith(name, "boot."))
+ /* Drop SuSE-style boot. prefix */
+ name += 5;
+
- r = new(char, strlen(name) + strlen(".service") + 1);
- if (!r)
+ c = strdup(name);
+ if (!c)
return NULL;
-@@ -864,10 +872,10 @@ static int set_dependencies_from_rcnd(Lo
+@@ -859,10 +867,10 @@ static int set_dependencies_from_rcnd(co
if (de->d_name[0] == 'S') {
@@ -74,7 +69,7 @@
r = set_ensure_allocated(&runlevel_services[i], NULL);
if (r < 0)
-@@ -878,7 +886,8 @@ static int set_dependencies_from_rcnd(Lo
+@@ -873,7 +881,8 @@ static int set_dependencies_from_rcnd(co
goto finish;
} else if (de->d_name[0] == 'K' &&
++++++ systemctl-set-default-target.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -6,11 +6,11 @@
man/systemctl.xml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
-Index: systemd/man/systemctl.xml
+Index: systemd-221/man/systemctl.xml
===================================================================
---- systemd.orig/man/systemctl.xml
-+++ systemd/man/systemctl.xml
-@@ -445,7 +445,7 @@ along with systemd; If not, see <http://
+--- systemd-221.orig/man/systemctl.xml
++++ systemd-221/man/systemctl.xml
+@@ -439,7 +439,7 @@
<term><option>--force</option></term>
<listitem>
@@ -19,7 +19,7 @@
any existing conflicting symlinks.</para>
<para>When used with <command>halt</command>,
-@@ -1215,6 +1215,8 @@ kobject-uevent 1 systemd-udevd-kernel.so
+@@ -1237,6 +1237,8 @@ kobject-uevent 1 systemd-udevd-kernel.so
<para>Return the default target to boot into. This returns
the target unit name <filename>default.target</filename>
is aliased (symlinked) to.</para>
++++++ systemd-add-user-keep.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -1,13 +1,13 @@
---
man/tmpfiles.d.xml | 3 +++
- src/tmpfiles/tmpfiles.c | 48 ++++++++++++++++++++++++++++++++++++++++--------
- 2 files changed, 43 insertions(+), 8 deletions(-)
+ src/tmpfiles/tmpfiles.c | 47 ++++++++++++++++++++++++++++++++++++++++-------
+ 2 files changed, 43 insertions(+), 7 deletions(-)
-Index: systemd/man/tmpfiles.d.xml
+Index: systemd-221/man/tmpfiles.d.xml
===================================================================
---- systemd.orig/man/tmpfiles.d.xml
-+++ systemd/man/tmpfiles.d.xml
-@@ -489,6 +489,9 @@
+--- systemd-221.orig/man/tmpfiles.d.xml
++++ systemd-221/man/tmpfiles.d.xml
+@@ -528,6 +528,9 @@
<varname>f</varname>, <varname>F</varname>, and
<varname>w</varname> may be used to specify a short string that
is written to the file, suffixed by a newline. For
@@ -15,13 +15,21 @@
+ usernames. If given, only paths belonging to these users will be excluded
+ during directory cleanup. Ignored for all other lines. For
<varname>C</varname>, specifies the source file or
- directory. For <varname>t</varname> determines extended
- attributes to be set. For <varname>a</varname> determines
-Index: systemd/src/tmpfiles/tmpfiles.c
+ directory. For <varname>t</varname>, <varname>T</varname>
+ determines extended attributes to be set. For
+Index: systemd-221/src/tmpfiles/tmpfiles.c
===================================================================
---- systemd.orig/src/tmpfiles/tmpfiles.c
-+++ systemd/src/tmpfiles/tmpfiles.c
-@@ -345,6 +345,7 @@ static int dir_cleanup(
+--- systemd-221.orig/src/tmpfiles/tmpfiles.c
++++ systemd-221/src/tmpfiles/tmpfiles.c
+@@ -37,6 +37,7 @@
+ #include <sys/stat.h>
+ #include <sys/xattr.h>
+ #include <linux/fs.h>
++#include <pwd.h>
+
+ #include "log.h"
+ #include "util.h"
+@@ -358,6 +359,7 @@ static int dir_cleanup(
struct timespec times[2];
bool deleted = false;
int r = 0;
@@ -29,24 +37,23 @@
while ((dent = readdir(d))) {
struct stat s;
-@@ -395,14 +396,45 @@ static int dir_cleanup(
+@@ -408,14 +410,45 @@ static int dir_cleanup(
}
/* Is there an item configured for this path? */
-- if (hashmap_get(items, sub_path)) {
+- if (ordered_hashmap_get(items, sub_path)) {
- log_debug("Ignoring \"%s\": a separate entry exists.", sub_path);
- continue;
-- }
--
-- if (find_glob(globs, sub_path)) {
-- log_debug("Ignoring \"%s\": a separate glob exists.", sub_path);
-- continue;
+ bool found_glob = false;
-+ found = hashmap_get(items, sub_path);
++ found = ordered_hashmap_get(items, sub_path);
+ if (!found) {
+ found_glob = true;
+ found = find_glob(globs, sub_path);
-+ }
+ }
+-
+- if (find_glob(globs, sub_path)) {
+- log_debug("Ignoring \"%s\": a separate glob exists.", sub_path);
+- continue;
+ if (found) {
+ struct passwd *pw;
+ char *userfound = NULL, *args;
++++++ systemd-dbus-system-bus-address.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -1,13 +1,26 @@
---
+ src/basic/def.h | 2 +-
src/libsystemd/sd-bus/sd-bus.c | 4 ++--
- src/shared/def.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
-Index: systemd/src/libsystemd/sd-bus/sd-bus.c
+Index: systemd-221/src/basic/def.h
===================================================================
---- systemd.orig/src/libsystemd/sd-bus/sd-bus.c
-+++ systemd/src/libsystemd/sd-bus/sd-bus.c
-@@ -809,8 +809,8 @@ static int parse_container_unix_address(
+--- systemd-221.orig/src/basic/def.h
++++ systemd-221/src/basic/def.h
+@@ -61,7 +61,7 @@
+ "/usr/lib/kbd/keymaps/\0"
+ #endif
+
+-#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket"
++#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/run/dbus/system_bus_socket"
+ #define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus"
+ #define DEFAULT_SYSTEM_BUS_ADDRESS KERNEL_SYSTEM_BUS_ADDRESS ";" UNIX_SYSTEM_BUS_ADDRESS
+ #define UNIX_USER_BUS_ADDRESS_FMT "unix:path=%s/bus"
+Index: systemd-221/src/libsystemd/sd-bus/sd-bus.c
+===================================================================
+--- systemd-221.orig/src/libsystemd/sd-bus/sd-bus.c
++++ systemd-221/src/libsystemd/sd-bus/sd-bus.c
+@@ -837,8 +837,8 @@ static int parse_container_unix_address(
b->nspid = 0;
b->sockaddr.un.sun_family = AF_UNIX;
@@ -18,16 +31,3 @@
return 0;
}
-Index: systemd/src/shared/def.h
-===================================================================
---- systemd.orig/src/shared/def.h
-+++ systemd/src/shared/def.h
-@@ -61,7 +61,7 @@
- "/usr/lib/kbd/keymaps/\0"
- #endif
-
--#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/var/run/dbus/system_bus_socket"
-+#define UNIX_SYSTEM_BUS_ADDRESS "unix:path=/run/dbus/system_bus_socket"
- #define KERNEL_SYSTEM_BUS_ADDRESS "kernel:path=/sys/fs/kdbus/0-system/bus"
-
- #ifdef ENABLE_KDBUS
++++++ systemd-install-compat_pkgconfig-always.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -1,6 +1,12 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -4560,12 +4560,6 @@ lib_LTLIBRARIES += \
+---
+ Makefile.am | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+Index: systemd-221/Makefile.am
+===================================================================
+--- systemd-221.orig/Makefile.am
++++ systemd-221/Makefile.am
+@@ -5876,12 +5876,6 @@ lib_LTLIBRARIES += \
libsystemd-id128.la \
libsystemd-daemon.la
@@ -13,7 +19,7 @@
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
compat-lib-install-hook:
libname=libsystemd-login.so && $(move-to-rootlibdir)
-@@ -4583,6 +4577,12 @@ INSTALL_EXEC_HOOKS += compat-lib-install
+@@ -5899,6 +5893,12 @@ INSTALL_EXEC_HOOKS += compat-lib-install
UNINSTALL_EXEC_HOOKS += compat-lib-uninstall-hook
endif
@@ -24,5 +30,5 @@
+ src/compat-libs/libsystemd-daemon.pc
+
EXTRA_DIST += \
+ src/compat-libs/linkwarning.h \
src/compat-libs/libsystemd-journal.pc.in \
- src/compat-libs/libsystemd-login.pc.in \
++++++ systemd-pam_config.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -2,10 +2,10 @@
src/login/systemd-user | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-Index: systemd-218/src/login/systemd-user
+Index: systemd-221/src/login/systemd-user
===================================================================
---- systemd-218.orig/src/login/systemd-user
-+++ systemd-218/src/login/systemd-user
+--- systemd-221.orig/src/login/systemd-user
++++ systemd-221/src/login/systemd-user
@@ -2,5 +2,5 @@
#
# Used by systemd --user instances.
++++++ systemd-tmp-safe-defaults.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -8,10 +8,10 @@
tmpfiles.d/tmp.conf | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
-Index: systemd/tmpfiles.d/tmp.conf
+Index: systemd-221/tmpfiles.d/tmp.conf
===================================================================
---- systemd.orig/tmpfiles.d/tmp.conf
-+++ systemd/tmpfiles.d/tmp.conf
+--- systemd-221.orig/tmpfiles.d/tmp.conf
++++ systemd-221/tmpfiles.d/tmp.conf
@@ -8,8 +8,9 @@
# See tmpfiles.d(5) for details
++++++ tomcat6-var-lock-subsys-legacy.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -5,9 +5,11 @@
tmpfiles.d/legacy.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- systemd-210/tmpfiles.d/legacy.conf
-+++ systemd-210/tmpfiles.d/legacy.conf 2014-07-30 12:36:36.862735670 +0000
-@@ -16,7 +16,7 @@ d /run/lock 0775 root lock -
+Index: systemd-221/tmpfiles.d/legacy.conf
+===================================================================
+--- systemd-221.orig/tmpfiles.d/legacy.conf
++++ systemd-221/tmpfiles.d/legacy.conf
+@@ -17,7 +17,7 @@ L /var/lock - - - - ../run/lock
# /run/lock/subsys is used for serializing SysV service execution, and
# hence without use on SysV-less systems.
++++++ tty-ask-password-agent-on-console.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -1,11 +1,22 @@
+From 633a5904c1c4e363a7147f47e2d9fdb1925f7b9f Mon Sep 17 00:00:00 2001
+From: Werner Fink <werner(a)suse.de>
+Date: Fri, 25 Sep 2015 14:28:58 +0200
+Subject: [PATCH] Ask for passphrases not only on the first console of
+ /dev/console
+
+but also on all other consoles. This does help on e.g. mainframes
+where often a serial console together with other consoles are
+used. Even rack based servers attachted to both a serial console
+as well as having a virtual console do sometimes miss a connected
+monitor.
---
- src/tty-ask-password-agent/tty-ask-password-agent.c | 171 +++++++++++++++++++-
- 1 file changed, 166 insertions(+), 5 deletions(-)
+ src/tty-ask-password-agent/tty-ask-password-agent.c | 191 ++++++++++++++++++++-
+ 1 file changed, 186 insertions(+), 5 deletions(-)
-Index: systemd/src/tty-ask-password-agent/tty-ask-password-agent.c
-===================================================================
---- systemd.orig/src/tty-ask-password-agent/tty-ask-password-agent.c
-+++ systemd/src/tty-ask-password-agent/tty-ask-password-agent.c
+diff --git src/tty-ask-password-agent/tty-ask-password-agent.c src/tty-ask-password-agent/tty-ask-password-agent.c
+index 82cbf95..928a5e8 100644
+--- a/src/tty-ask-password-agent/tty-ask-password-agent.c
++++ b/src/tty-ask-password-agent/tty-ask-password-agent.c
@@ -31,6 +31,10 @@
#include <getopt.h>
#include <sys/signalfd.h>
@@ -17,26 +28,22 @@
#include "util.h"
#include "mkdir.h"
-@@ -42,6 +46,9 @@
- #include "strv.h"
- #include "build.h"
- #include "def.h"
+@@ -45,6 +49,8 @@
+ #include "process-util.h"
+ #include "terminal-util.h"
+ #include "signal-util.h"
+#include "fileio.h"
+#include "macro.h"
-+#include "list.h"
static enum {
ACTION_LIST,
-@@ -50,6 +57,22 @@ static enum {
+@@ -53,6 +59,19 @@ static enum {
ACTION_WALL
} arg_action = ACTION_QUERY;
+struct console {
-+ LIST_FIELDS(struct console, handle);
-+ const char *tty;
+ pid_t pid;
-+ int id;
-+ char dev[];
++ char *tty;
+};
+
+static volatile unsigned long *usemask;
@@ -50,22 +57,33 @@
static bool arg_plymouth = false;
static bool arg_console = false;
-@@ -208,6 +231,58 @@ static int ask_password_plymouth(
+@@ -210,6 +229,69 @@ static int ask_password_plymouth(
return 0;
}
++static void free_consoles(struct console *con, const unsigned int num) {
++ unsigned int n;
++ if (!con || !num)
++ return;
++ for (n = 0; n < num; n++)
++ free(con[n].tty);
++ free(con);
++}
++
+static const char *current_dev = "/dev/console";
-+static LIST_HEAD(struct console, consoles);
-+static int collect_consoles(void) {
++static struct console* collect_consoles(unsigned int * num) {
+ _cleanup_free_ char *active = NULL;
+ const char *word, *state;
-+ struct console *con;
-+ size_t len;
-+ int ret, id = 0;
++ struct console *con = NULL;
++ size_t con_len = 0, len;
++ int ret;
++
++ assert(num);
++ assert(*num == 0);
+
+ ret = read_one_line_file("/sys/class/tty/console/active", &active);
+ if (ret < 0)
-+ return ret;
++ return con;
+ FOREACH_WORD(word, len, active, state) {
+ _cleanup_free_ char *tty = NULL;
+
@@ -74,42 +92,42 @@
+ word = tty;
+ len = strlen(tty);
+ }
-+ con = malloc0(sizeof(*con) + strlen("/dev/") + len + 1);
++ con = greedy_realloc((void**)&con, &con_len, 1+(*num), sizeof(struct console));
+ if (con == NULL) {
+ log_oom();
-+ continue;
++ return NULL;
++ }
++ if (asprintf(&con[*num].tty, "/dev/%.*s", (int)len, word) < 0) {
++ free_consoles(con, *num);
++ log_oom();
++ *num = 0;
++ return NULL;
+ }
-+ sprintf(con->dev, "/dev/%.*s", (int)len, word);
-+ con->tty = con->dev;
-+ con->id = id++;
-+ LIST_PREPEND(handle, consoles, con);
++ con[*num].pid = 0;
++ (*num)++;
+ }
-+ if (consoles == NULL) {
-+ con = malloc0(sizeof(*con));
++ if (con == NULL) {
++ con = greedy_realloc((void**)&con, &con_len, 1, sizeof(struct console));
+ if (con == NULL) {
+ log_oom();
-+ return -ENOMEM;
++ return NULL;
+ }
-+ con->tty = current_dev;
-+ con->id = id++;
-+ LIST_PREPEND(handle, consoles, con);
-+ }
-+ return 0;
-+}
-+
-+static void free_consoles(void) {
-+ struct console *c;
-+ LIST_FOREACH(handle, c, consoles) {
-+ LIST_REMOVE(handle, consoles, c);
-+ free(c);
++ con[0].tty = strdup(current_dev);
++ if (con[0].tty == NULL) {
++ free_consoles(con, 1);
++ log_oom();
++ return NULL;
++ }
++ con[0].pid = 0;
++ (*num)++;
+ }
-+ LIST_HEAD_INIT(consoles);
++ return con;
+}
+
static int parse_password(const char *filename, char **wall) {
_cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL;
uint64_t not_after = 0;
-@@ -308,7 +383,7 @@ static int parse_password(const char *fi
+@@ -310,7 +392,7 @@ static int parse_password(const char *filename, char **wall) {
_cleanup_free_ char *password = NULL;
if (arg_console) {
@@ -118,28 +136,39 @@
if (tty_fd < 0)
return tty_fd;
}
-@@ -612,9 +687,85 @@ static int parse_argv(int argc, char *ar
+@@ -614,8 +696,90 @@ static int parse_argv(int argc, char *argv[]) {
return 1;
}
-+static int zzz(void)
++static unsigned int wfa_child(const struct console * con, const unsigned int id)
+{
-+ struct console *con;
++ setsid();
++ release_terminal();
++ *usemask |= 1 << id; /* shared memory area */
++ current_dev = con[id].tty;
++ return id;
++}
++
++static unsigned int wait_for_answer(void)
++{
++ struct console *consoles;
+ struct sigaction sig = {
+ .sa_handler = chld_handler,
+ .sa_flags = SA_NOCLDSTOP | SA_RESTART,
+ };
+ struct sigaction oldsig;
+ sigset_t set, oldset;
++ unsigned int num = 0, id;
+ int status = 0, ret;
+ pid_t job;
+
-+ collect_consoles();
-+ if (!consoles->handle_next) {
-+ consoles->pid = 0;
-+ con = consoles;
-+ goto nofork;
++ consoles = collect_consoles(&num);
++ if (!consoles) {
++ log_error("Failed to query password: %m");
++ exit(EXIT_FAILURE);
+ }
++ if (num < 2)
++ return wfa_child(consoles, 0);
+
+ assert_se(sigemptyset(&set) == 0);
+ assert_se(sigaddset(&set, SIGHUP) == 0);
@@ -150,25 +179,21 @@
+ sig.sa_handler = SIG_DFL;
+ assert_se(sigaction(SIGHUP, &sig, NULL) == 0);
+
-+ LIST_FOREACH(handle, con, consoles) {
-+ switch ((con->pid = fork())) {
-+ case 0:
++ for (id = 0; id < num; id++) {
++ consoles[id].pid = fork();
++
++ if (consoles[id].pid < 0) {
++ log_error("Failed to query password: %m");
++ exit(EXIT_FAILURE);
++ }
++
++ if (consoles[id].pid == 0) {
+ if (prctl(PR_SET_PDEATHSIG, SIGHUP) < 0)
+ _exit(EXIT_FAILURE);
+ zero(sig);
+ assert_se(sigprocmask(SIG_UNBLOCK, &oldset, NULL) == 0);
+ assert_se(sigaction(SIGCHLD, &oldsig, NULL) == 0);
-+ nofork:
-+ setsid();
-+ release_terminal();
-+ *usemask |= 1 << con->id;
-+ current_dev = con->tty;
-+ return con->id; /* child */
-+ case -1:
-+ log_error("Failed to query password: %s", strerror(errno));
-+ exit(EXIT_FAILURE);
-+ default:
-+ break;
++ return wfa_child(consoles, id);
+ }
+ }
+
@@ -179,21 +204,21 @@
+ break;
+ continue;
+ }
-+ LIST_FOREACH(handle, con, consoles) {
-+ if (con->pid == job || kill(con->pid, 0) < 0) {
-+ *usemask &= ~(1 << con->id);
++ for (id = 0; id < num; id++) {
++ if (consoles[id].pid == job || kill(consoles[id].pid, 0) < 0) {
++ *usemask &= ~(1 << id); /* shared memory area */
+ continue;
+ }
-+ if (*usemask & (1 << con->id))
++ if (*usemask & (1 << id)) /* shared memory area */
+ continue;
-+ kill(con->pid, SIGHUP);
++ kill(consoles[id].pid, SIGHUP);
+ usleep(50000);
-+ kill(con->pid, SIGKILL);
++ kill(consoles[id].pid, SIGKILL);
+ }
+ if (WIFEXITED(status) && ret == 0)
+ ret = WEXITSTATUS(status);
+ }
-+ free_consoles();
++ free_consoles(consoles, num);
+ exit(ret != 0 ? EXIT_FAILURE : EXIT_SUCCESS); /* parent */
+}
+
@@ -201,14 +226,20 @@
- int r;
+ int r, id = 0;
-+ LIST_HEAD_INIT(consoles);
log_set_target(LOG_TARGET_AUTO);
log_parse_environment();
- log_open();
-@@ -625,11 +776,19 @@ int main(int argc, char *argv[]) {
+@@ -627,11 +791,27 @@ int main(int argc, char *argv[]) {
if (r <= 0)
goto finish;
++ /*
++ * Use this shared memory area to be able to synchronize the
++ * workers asking for password with the main process.
++ * This allows to continue if one of the consoles had been
++ * used as afterwards the remaining asking processes will
++ * be terminated. The wait_for_terminate() does not help
++ * for this use case.
++ */
+ usemask = mmap(NULL, sizeof(*usemask), PROT_READ | PROT_WRITE,
+ MAP_ANONYMOUS | MAP_SHARED, -1, 0);
+ assert_se(usemask != NULL);
@@ -216,9 +247,9 @@
if (arg_console) {
- setsid();
- release_terminal();
-+ if (!arg_plymouth && arg_action != ACTION_WALL &&
-+ arg_action != ACTION_LIST) {
-+ id = zzz();
++ if (!arg_plymouth &&
++ !IN_SET(arg_action, ACTION_WALL, ACTION_LIST)) {
++ id = wait_for_answer();
+ } else {
+ setsid();
+ release_terminal();
@@ -228,12 +259,14 @@
if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL))
r = watch_passwords();
else
-@@ -638,6 +797,8 @@ int main(int argc, char *argv[]) {
+@@ -640,6 +820,7 @@ int main(int argc, char *argv[]) {
if (r < 0)
log_error_errno(r, "Error: %m");
-+ free_consoles();
-+ *usemask &= ~(1 << id);
++ *usemask &= ~(1 << id); /* shared memory area */
finish:
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}
+--
+2.2.0
+
++++++ use-rndaddentropy-ioctl-to-load-random-seed.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -5,11 +5,13 @@
Related to bnc#892096
---
- systemd-219/src/random-seed/random-seed.c | 71 +++++++++++++++++++++++++-----
+ src/random-seed/random-seed.c | 71 ++++++++++++++++++++++++++++++++++++------
1 file changed, 61 insertions(+), 10 deletions(-)
---- systemd-219/src/random-seed/random-seed.c
-+++ systemd-219/src/random-seed/random-seed.c 2015-04-21 09:39:03.057518051 +0000
+Index: systemd-221/src/random-seed/random-seed.c
+===================================================================
+--- systemd-221.orig/src/random-seed/random-seed.c
++++ systemd-221/src/random-seed/random-seed.c
@@ -22,7 +22,9 @@
#include <unistd.h>
#include <fcntl.h>
@@ -42,7 +44,7 @@
r = log_oom();
goto finish;
}
-+ entropy->buf_size = buf_size;
++ entropy->buf_size = (typeof(entropy->buf_size)) buf_size;
r = mkdir_parents_label(RANDOM_SEED, 0755);
if (r < 0) {
@@ -52,7 +54,7 @@
+ entropy_fd = open(RANDOM_SEED_DIR "entropy_count", O_RDONLY|O_CLOEXEC|O_NOCTTY, 0600);
+ if (entropy_fd < 0) {
-+ entropy->entropy_count = 0;
++ entropy->entropy_count = 0;
+ if (errno != ENOENT) {
+ log_error("Failed to open " RANDOM_SEED "/entropy_count: %m");
+ r = -errno;
@@ -70,23 +72,23 @@
seed_fd = open(RANDOM_SEED, O_RDWR|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600);
if (seed_fd < 0) {
seed_fd = open(RANDOM_SEED, O_RDONLY|O_CLOEXEC|O_NOCTTY);
-@@ -104,7 +124,7 @@ int main(int argc, char *argv[]) {
+@@ -103,7 +123,7 @@ int main(int argc, char *argv[]) {
}
}
- k = loop_read(seed_fd, buf, buf_size, false);
-+ k = loop_read(seed_fd, entropy->buf, entropy->buf_size, false);
- if (k <= 0) {
-
- if (r != 0)
-@@ -115,13 +135,29 @@ int main(int argc, char *argv[]) {
- } else {
- lseek(seed_fd, 0, SEEK_SET);
++ k = loop_read(seed_fd, entropy->buf, (size_t) entropy->buf_size, false);
+ if (k < 0)
+ r = log_error_errno(k, "Failed to read seed from " RANDOM_SEED ": %m");
+ else if (k == 0)
+@@ -111,13 +131,29 @@ int main(int argc, char *argv[]) {
+ else {
+ (void) lseek(seed_fd, 0, SEEK_SET);
- r = loop_write(random_fd, buf, (size_t) k, false);
- if (r < 0)
- log_error_errno(r, "Failed to write seed to /dev/urandom: %m");
-+ if (entropy->entropy_count && ((size_t)k) == entropy->buf_size) {
++ if (entropy->entropy_count && (size_t)k == (size_t)entropy->buf_size) {
+ r = ioctl(random_fd, RNDADDENTROPY, entropy);
+ if (r < 0) {
+ log_error_errno(errno, "Failed to write seed to /dev/urandom: %m");
@@ -111,8 +113,8 @@
+
seed_fd = open(RANDOM_SEED, O_WRONLY|O_CLOEXEC|O_NOCTTY|O_CREAT, 0600);
if (seed_fd < 0) {
- log_error_errno(errno, "Failed to open " RANDOM_SEED ": %m");
-@@ -136,6 +172,21 @@ int main(int argc, char *argv[]) {
+ r = log_error_errno(errno, "Failed to open " RANDOM_SEED ": %m");
+@@ -130,6 +166,21 @@ int main(int argc, char *argv[]) {
goto finish;
}
@@ -132,20 +134,23 @@
+ }
+
} else {
- log_error("Unknown verb %s.", argv[1]);
+ log_error("Unknown verb '%s'.", argv[1]);
r = -EINVAL;
-@@ -149,12 +200,12 @@ int main(int argc, char *argv[]) {
- fchmod(seed_fd, 0600);
- fchown(seed_fd, 0, 0);
+@@ -144,7 +195,7 @@ int main(int argc, char *argv[]) {
+ (void) fchmod(seed_fd, 0600);
+ (void) fchown(seed_fd, 0, 0);
- k = loop_read(random_fd, buf, buf_size, false);
-+ k = loop_read(random_fd, entropy->buf, entropy->buf_size, false);
- if (k <= 0) {
- log_error("Failed to read new seed from /dev/urandom: %s", r < 0 ? strerror(-r) : "EOF");
- r = k == 0 ? -EIO : (int) k;
- } else {
-- r = loop_write(seed_fd, buf, (size_t) k, false);
-+ r = loop_write(seed_fd, entropy->buf, (size_t) k, false);
- if (r < 0)
- log_error_errno(r, "Failed to write new random seed file: %m");
++ k = loop_read(random_fd, entropy->buf, (size_t) entropy->buf_size, false);
+ if (k < 0) {
+ r = log_error_errno(k, "Failed to read new seed from /dev/urandom: %m");
+ goto finish;
+@@ -155,7 +206,7 @@ int main(int argc, char *argv[]) {
+ goto finish;
}
+
+- r = loop_write(seed_fd, buf, (size_t) k, false);
++ r = loop_write(seed_fd, entropy->buf, (size_t) k, false);
+ if (r < 0)
+ log_error_errno(r, "Failed to write new random seed file: %m");
+ }
++++++ vhangup-on-all-consoles.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -14,10 +14,10 @@
units/getty@.service.m4 | 1 +
units/serial-getty@.service.m4 | 1 +
2 files changed, 2 insertions(+)
-Index: systemd-218/units/getty@.service.m4
+Index: systemd-221/units/getty@.service.m4
===================================================================
---- systemd-218.orig/units/getty@.service.m4
-+++ systemd-218/units/getty@.service.m4
+--- systemd-221.orig/units/getty@.service.m4
++++ systemd-221/units/getty@.service.m4
@@ -29,6 +29,7 @@ ConditionPathExists=/dev/tty0
[Service]
# the VT is cleared by TTYVTDisallocate
@@ -26,10 +26,10 @@
Type=idle
Restart=always
RestartSec=0
-Index: systemd-218/units/serial-getty@.service.m4
+Index: systemd-221/units/serial-getty@.service.m4
===================================================================
---- systemd-218.orig/units/serial-getty@.service.m4
-+++ systemd-218/units/serial-getty@.service.m4
+--- systemd-221.orig/units/serial-getty@.service.m4
++++ systemd-221/units/serial-getty@.service.m4
@@ -24,6 +24,7 @@ IgnoreOnIsolate=yes
[Service]
++++++ watch_resolv.conf_for_become_changed.patch ++++++
--- /var/tmp/diff_new_pack.5Uoy99/_old 2015-09-27 14:31:55.000000000 +0200
+++ /var/tmp/diff_new_pack.5Uoy99/_new 2015-09-27 14:31:55.000000000 +0200
@@ -3,19 +3,19 @@
src/core/manager.h | 5 ++
2 files changed, 98 insertions(+)
-Index: systemd-218/src/core/manager.c
+Index: systemd-221/src/core/manager.c
===================================================================
---- systemd-218.orig/src/core/manager.c
-+++ systemd-218/src/core/manager.c
-@@ -37,6 +37,7 @@
- #include <sys/stat.h>
+--- systemd-221.orig/src/core/manager.c
++++ systemd-221/src/core/manager.c
+@@ -32,6 +32,7 @@
+ #include <fcntl.h>
#include <dirent.h>
#include <sys/timerfd.h>
+#include <resolv.h>
#ifdef HAVE_AUDIT
#include <libaudit.h>
-@@ -302,6 +303,91 @@ static int manager_check_ask_password(Ma
+@@ -308,6 +309,91 @@ static int manager_check_ask_password(Ma
return m->have_ask_password;
}
@@ -107,7 +107,7 @@
static int manager_watch_idle_pipe(Manager *m) {
int r;
-@@ -557,6 +643,7 @@ int manager_new(SystemdRunningAs running
+@@ -585,6 +671,7 @@ int manager_new(ManagerRunningAs running
m->pin_cgroupfs_fd = m->notify_fd = m->signal_fd = m->time_change_fd = m->dev_autofs_fd = m->private_listen_fd = m->kdbus_fd = m->utab_inotify_fd = -1;
m->current_job_id = 1; /* start as id #1, so that we can leave #0 around as "null-like" value */
@@ -115,7 +115,7 @@
m->ask_password_inotify_fd = -1;
m->have_ask_password = -EINVAL; /* we don't know */
-@@ -618,6 +705,10 @@ int manager_new(SystemdRunningAs running
+@@ -651,6 +738,10 @@ int manager_new(ManagerRunningAs running
if (r < 0)
goto fail;
@@ -126,7 +126,7 @@
m->udev = udev_new();
if (!m->udev) {
r = -ENOMEM;
-@@ -896,6 +987,8 @@ Manager* manager_free(Manager *m) {
+@@ -929,6 +1020,8 @@ Manager* manager_free(Manager *m) {
if (!m)
return NULL;
@@ -135,11 +135,11 @@
manager_clear_jobs_and_units(m);
for (c = 0; c < _UNIT_TYPE_MAX; c++)
-Index: systemd-218/src/core/manager.h
+Index: systemd-221/src/core/manager.h
===================================================================
---- systemd-218.orig/src/core/manager.h
-+++ systemd-218/src/core/manager.h
-@@ -185,6 +185,11 @@ struct Manager {
+--- systemd-221.orig/src/core/manager.h
++++ systemd-221/src/core/manager.h
+@@ -181,6 +181,11 @@ struct Manager {
int utab_inotify_fd;
sd_event_source *mount_utab_event_source;
1
0
Hello community,
here is the log from the commit of package libseccomp for openSUSE:Factory checked in at 2015-09-27 14:32:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libseccomp (Old)
and /work/SRC/openSUSE:Factory/.libseccomp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libseccomp"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libseccomp/libseccomp.changes 2015-09-19 06:52:55.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libseccomp.new/libseccomp.changes 2015-09-27 14:31:43.000000000 +0200
@@ -1,0 +2,6 @@
+Fri Sep 25 12:14:37 UTC 2015 - dimstar(a)opensuse.org
+
+- Add baselibs.conf: systemd-32bit-224+ links against
+ libseccomp.so.2.
+
+-------------------------------------------------------------------
New:
----
baselibs.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libseccomp.spec ++++++
--- /var/tmp/diff_new_pack.kEuAmc/_old 2015-09-27 14:31:44.000000000 +0200
+++ /var/tmp/diff_new_pack.kEuAmc/_new 2015-09-27 14:31:44.000000000 +0200
@@ -28,6 +28,7 @@
#Git-Clone: git://github.com/seccomp/libseccomp
Source: https://github.com/seccomp/libseccomp/releases/download/v%version/%name-%ve…
Source2: https://github.com/seccomp/libseccomp/releases/download/v%version/%name-%ve…
+Source99: baselibs.conf
Patch1: no-static.diff
Patch3: libseccomp-s390x-support.patch
Patch5: libseccomp-ppc64le.patch
++++++ baselibs.conf ++++++
libseccomp2
1
0
Hello community,
here is the log from the commit of package libgudev for openSUSE:Factory checked in at 2015-09-27 14:32:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgudev (Old)
and /work/SRC/openSUSE:Factory/.libgudev.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgudev"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libgudev/libgudev.changes 2015-08-21 07:40:33.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libgudev.new/libgudev.changes 2015-09-27 14:31:37.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Sep 25 08:38:43 UTC 2015 - dimstar(a)suse.com
+
+- Enable build (dummy change for repo_checker, as libgudev was
+ wrongly already checked in to openSUSE:Factory, but has since
+ been disabled). With this, we can activate the Staging properly.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libgudev.spec ++++++
--- /var/tmp/diff_new_pack.u8TIYI/_old 2015-09-27 14:31:37.000000000 +0200
+++ /var/tmp/diff_new_pack.u8TIYI/_new 2015-09-27 14:31:37.000000000 +0200
@@ -15,22 +15,23 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: libgudev
Version: 230
Release: 0
+Summary: Library that provides GObject bindings for libudev
License: LGPL-2.0+
Group: Development/Libraries/GNOME
-Summary: Library that provides GObject bindings for libudev
Url: https://wiki.gnome.org/Projects/libgudev
Source0: https://download.gnome.org/sources/libgudev/%{version}/%{name}-%{version}.t…
Source99: baselibs.conf
BuildRequires: pkgconfig
-BuildRequires: pkgconfig(libudev)
+BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(glib-2.0) >= 2.22.0
BuildRequires: pkgconfig(gobject-2.0) >= 2.22.0
-BuildRequires: pkgconfig(gio-2.0)
-BuildRequires: pkgconfig(gtk-doc) >= 1.18
BuildRequires: pkgconfig(gobject-introspection-1.0)
+BuildRequires: pkgconfig(gtk-doc) >= 1.18
+BuildRequires: pkgconfig(libudev)
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
1
0
Hello community,
here is the log from the commit of package patterns-openSUSE for openSUSE:Factory checked in at 2015-09-27 14:32:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/patterns-openSUSE (Old)
and /work/SRC/openSUSE:Factory/.patterns-openSUSE.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "patterns-openSUSE"
Changes:
--------
--- /work/SRC/openSUSE:Factory/patterns-openSUSE/patterns-openSUSE.changes 2015-09-11 09:04:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.patterns-openSUSE.new/patterns-openSUSE.changes 2015-09-27 14:31:32.000000000 +0200
@@ -1,0 +2,31 @@
+Thu Sep 24 13:15:54 UTC 2015 - dimstar(a)opensuse.org
+
+- Recommend systemd-32bit in the rest_dvd_core pattern.
+
+-------------------------------------------------------------------
+Wed Sep 23 13:42:58 UTC 2015 - dimstar(a)opensuse.org
+
+- Also fix the KDE CD: sssd-32bit is recommended there too, so also
+ recommend systemd-32bit.
+
+-------------------------------------------------------------------
+Wed Sep 23 13:20:17 UTC 2015 - dimstar(a)opensuse.org
+
+- When recommending sssd-32bit, also recommend systemd-32bit: the
+ systemd-pam modules are needed in this case too (not strictly a
+ requirement, but pam-config -a --systemd fails on a 64bit system
+ when pam-32bit is installed but the 32bit pam modules are not).
+
+-------------------------------------------------------------------
+Tue Sep 22 11:43:40 UTC 2015 - mvetter(a)suse.com
+
+- Add basic lxqt pattern
+
+-------------------------------------------------------------------
+Fri Sep 18 10:31:45 UTC 2015 - p.drouand(a)gmail.com
+
+- create mate_internet and mate_office_opt patterns
+- Recommend newly created patterns instead of GNOME's ones; recommending
+ GNOME's intall plenty of packages unwanted by regular users
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ patterns-openSUSE.spec ++++++
--- /var/tmp/diff_new_pack.I8YgPR/_old 2015-09-27 14:31:33.000000000 +0200
+++ /var/tmp/diff_new_pack.I8YgPR/_new 2015-09-27 14:31:33.000000000 +0200
@@ -17,7 +17,7 @@
Name: patterns-openSUSE
-Version: 20150828
+Version: 20150918
Release: 0
Summary: Patterns for Installation (full ftp tree)
License: MIT
@@ -3854,6 +3854,72 @@
%dir /usr/share/doc/packages/patterns-openSUSE
/usr/share/doc/packages/patterns-openSUSE/lxde_office.txt
+%package lxqt
+%pattern_graphicalenvironments
+Summary: LXQt Desktop Environment
+Group: Metapackages
+Provides: pattern() = lxqt
+Provides: pattern-order() = 1460
+Provides: pattern-visible()
+Requires: pattern() = x11
+Recommends: pattern() = multimedia
+
+Recommends: pattern() = remote_desktop
+Recommends: lxqt-about
+Recommends: lxqt-common
+Recommends: lxqt-config
+Recommends: lxqt-globalkeys
+Recommends: lxqt-notificationd
+Recommends: lxqt-openssh-askpass
+Recommends: lxqt-panel
+Recommends: lxqt-policykit
+Recommends: lxqt-powermanagement
+Recommends: lxqt-runner
+Recommends: lxqt-session
+Recommends: lxqt-qtplugin
+
+Recommends: pcmanfm-qt
+Recommends: qupzilla
+#TODO qterminal needs to get moved from X11:QtDesktop
+#TODO juffed needs to get moved from X11:QtDesktop
+
+Recommends: openbox
+Recommends: obconf
+Recommends: obconf-qt
+Recommends: xdg-utils
+Recommends: xscreensaver
+Recommends: xorg-x11-essentials
+Recommends: xdm
+
+Recommends: gwenview
+Recommends: ark
+Recommends: claws-mail
+Recommends: xfce4-power-manager
+Recommends: xfce4-screenshooter
+
+Recommends: pk-update-icon
+Recommends: apper
+
+Recommends: avahi
+Recommends: kdesu
+Recommends: system-config-printer
+Recommends: simple-scan
+Recommends: libyui-qt-pkg
+Recommends: yast2-control-center-qt
+Recommends: NetworkManager
+Recommends: NetworkManager-gnome
+Recommends: droid-fonts
+Recommends: desktop-data-openSUSE
+Recommends: samba
+Suggests: hplip
+
+%description lxqt
+LXQt is a lightweight desktop environment based on Qt.
+
+%files lxqt
+%dir /usr/share/doc/packages/patterns-openSUSE
+/usr/share/doc/packages/patterns-openSUSE/lxqt.txt
+
%package mail_server
%pattern_serverfunctions
Summary: Mail and News Server
@@ -3902,7 +3968,7 @@
Recommends: pattern() = imaging
Recommends: pattern() = non_oss
Recommends: pattern() = mate_admin
-Recommends: pattern() = gnome_internet
+Recommends: pattern() = mate_internet
Recommends: pattern() = multimedia
Recommends: pattern() = office
Recommends: pattern() = mate_utilities
@@ -4079,6 +4145,44 @@
%dir /usr/share/doc/packages/patterns-openSUSE
/usr/share/doc/packages/patterns-openSUSE/mate_basis.txt
+%package mate_internet
+%pattern_matedesktop
+Summary: MATE Internet
+Group: Metapackages
+Provides: pattern() = mate_internet
+Provides: pattern-extends() = mate
+Provides: pattern-icon() = package_network
+Provides: pattern-order() = 2421
+Recommends: pidgin
+Recommends: MozillaThunderbird
+Recommends: mate-netspeed
+#
+# Packages that really make sense
+#
+Recommends: liferea
+# As NetworkManager works well on MATE, we should recommend the same packages
+Recommends: NetworkManager-openvpn-gnome
+Recommends: NetworkManager-pptp-gnome
+Recommends: NetworkManager-vpnc-gnome
+Recommends: NetworkManager-openconnect-gnome
+# bnc#530416
+Recommends: transmission-gtk
+Recommends: xchat
+Suggests: ekiga
+#
+# Packages that can make sense
+#
+Suggests: gftp
+Suggests: pan
+Suggests: smuxi
+
+%description mate_internet
+MATE Internet Applications
+
+%files mate_internet
+%dir /usr/share/doc/packages/patterns-openSUSE
+/usr/share/doc/packages/patterns-openSUSE/mate_internet.txt
+
%package mate_laptop
%pattern_matedesktop
Summary: MATE Laptop
@@ -4111,7 +4215,7 @@
Supplements: packageand(patterns-openSUSE-mate:patterns-openSUSE-office)
Requires: pattern() = mate_basis
# We provide the same base environment; recommend gnome' one
-Recommends: pattern() = gnome_office_opt
+Recommends: pattern() = mate_office_opt
Recommends: libreoffice-gnome
Recommends: libreoffice-icon-theme-tango
Suggests: abiword
@@ -4126,6 +4230,25 @@
%dir /usr/share/doc/packages/patterns-openSUSE
/usr/share/doc/packages/patterns-openSUSE/mate_office.txt
+%package mate_office_opt
+%pattern_matedesktop
+Summary: MATE Office
+Group: Metapackages
+Provides: pattern() = mate_office_opt
+Provides: pattern-extends() = office
+Provides: pattern-icon() = pattern-mate
+Provides: pattern-order() = 2261
+Supplements: packageand(patterns-openSUSE-mate:patterns-openSUSE-office)
+Requires: pattern() = mate_basis
+Suggests: grisbi
+
+%description mate_office_opt
+MATE Office
+
+%files mate_office_opt
+%dir /usr/share/doc/packages/patterns-openSUSE
+/usr/share/doc/packages/patterns-openSUSE/mate_office_opt.txt
+
%package mate_utilities
%pattern_matedesktop
Summary: MATE Utilities
@@ -4139,7 +4262,6 @@
# Official upstream
#
Recommends: mate-disk-usage-analyzer
-Recommends: mate-netspeed
Recommends: cheese
Recommends: engrampa
Recommends: pluma
@@ -4782,6 +4904,9 @@
Recommends: sssd
%ifarch x86_64
Recommends: sssd-32bit
+# sssd-32bit pulls in some pam-32bit, which results in the need to also have
+# systemd-32bit available (or pam-config -a --systemd will fail later on)
+Recommends: systemd-32bit
%endif
Recommends: gtk2-branding-openSUSE
@@ -5015,6 +5140,9 @@
Recommends: sssd
%ifarch x86_64
Recommends: sssd-32bit
+# sssd-32bit pulls in some pam-32bit, which results in the need to also have
+# systemd-32bit available (or pam-config -a --systemd will fail later on)
+Recommends: systemd-32bit
%endif
Recommends: gtk2-branding-openSUSE
@@ -5346,6 +5474,8 @@
Recommends: xf86-video-v4l
Recommends: xf86-video-vesa
Recommends: xf86-video-vmware
+# We need to ensure that systemd-32bit ends up on the DVD
+Recommends: systemd-32bit
%description rest_core_dvd
Packages that are on CD but not in other patterns.
@@ -7388,6 +7518,7 @@
echo 'This file marks the pattern leechcraft_office to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/leechcraft_office.txt
echo 'This file marks the pattern leechcraft_utilities to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/leechcraft_utilities.txt
echo 'This file marks the pattern lxde to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/lxde.txt
+echo 'This file marks the pattern lxqt to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/lxqt.txt
echo 'This file marks the pattern lxde_laptop to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/lxde_laptop.txt
echo 'This file marks the pattern lxde_office to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/lxde_office.txt
echo 'This file marks the pattern mail_server to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/mail_server.txt
@@ -7395,7 +7526,9 @@
echo 'This file marks the pattern mate_admin to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/mate_admin.txt
echo 'This file marks the pattern mate_basis to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/mate_basis.txt
echo 'This file marks the pattern mate_laptop to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/mate_laptop.txt
+echo 'This file marks the pattern mate_internet to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/mate_internet.txt
echo 'This file marks the pattern mate_office to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/mate_office.txt
+echo 'This file marks the pattern mate_office_opt to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/mate_office_opt.txt
echo 'This file marks the pattern mate_utilities to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/mate_utilities.txt
echo 'This file marks the pattern minimal_base to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/minimal_base.txt
echo 'This file marks the pattern minimal_base-conflicts to be installed.' > $RPM_BUILD_ROOT/usr/share/doc/packages/patterns-openSUSE/minimal_base-conflicts.txt
1
0
Hello community,
here is the log from the commit of package sddm for openSUSE:Factory checked in at 2015-09-27 14:32:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sddm (Old)
and /work/SRC/openSUSE:Factory/.sddm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sddm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/sddm/sddm.changes 2015-09-11 09:01:45.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.sddm.new/sddm.changes 2015-09-27 14:31:26.000000000 +0200
@@ -1,0 +2,24 @@
+Thu Sep 24 17:41:08 UTC 2015 - hrvoje.senjan(a)gmail.com
+
+- Added shadow BuildRequires, it's needed to check UID_MIN & UID_MAX
+ from /etc/login.defs
+
+-------------------------------------------------------------------
+Sat Sep 12 17:28:12 UTC 2015 - wbauer(a)tmo.at
+
+- Change the theme to "maui" in the shipped sddm.conf,
+ sddm-branding-openSUSE sets it to "breeze" on installation.
+- Remove the superfluous requirement for "breeze". This is not
+ needed even with the "breeze" theme, as it is actually part of
+ plasma5-workspace which is required by sddm-branding-openSUSE
+ anyway.
+- sddm-branding-openSUSE should PreReq sddm, otherwise the config
+ might not exist.
+- Make the regexps for sed stricter to really only modify the theme
+ setting when installing/uninstalling sddm-branding-openSUSE.
+ Otherwise it would e.g. also replace CursorTheme=breeze_cursors
+ with CursorTheme=maui_cursors...
+ Also only modify the config on new installation, not during
+ updates.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sddm.spec ++++++
--- /var/tmp/diff_new_pack.DwSXNJ/_old 2015-09-27 14:31:27.000000000 +0200
+++ /var/tmp/diff_new_pack.DwSXNJ/_new 2015-09-27 14:31:27.000000000 +0200
@@ -49,6 +49,8 @@
BuildRequires: pam-devel
BuildRequires: pkg-config
BuildRequires: python-docutils
+# Autodetect UID_MIN and UID_MAX from /etc/login.defs
+BuildRequires: shadow
BuildRequires: systemd-devel
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5DBus)
@@ -56,7 +58,6 @@
BuildRequires: pkgconfig(Qt5Quick)
BuildRequires: pkgconfig(Qt5Test)
BuildRequires: pkgconfig(xcb-xkb)
-Requires: breeze
Requires: sddm-branding = %{version}
# Merged the -lang package back into the main package
Obsoletes: %{name}-lang <= %{version}
@@ -70,6 +71,7 @@
%package branding-openSUSE
Summary: Lightweight QML-based display manager. openSUSE branding
Group: System/GUI/KDE
+PreReq: sddm
Requires: plasma5-workspace
Supplements: packageand(plasma5-workspace:branding-openSUSE)
Provides: sddm-branding = %{version}
@@ -135,13 +137,13 @@
-d /var/lib/sddm sddm 2> /dev/null || :
%post branding-openSUSE
-if [ -f /etc/sddm.conf ]; then
- sed -i -e 's/maui/breeze/g' /etc/sddm.conf
+if [ $1 -eq 1 -a -f /etc/sddm.conf ]; then
+ sed -i -e 's/^Current=maui$/Current=breeze/g' /etc/sddm.conf
fi
%postun branding-openSUSE
if [ $1 -eq 0 -a -f /etc/sddm.conf ]; then
- sed -i -e 's/breeze/maui/g' /etc/sddm.conf
+ sed -i -e 's/^Current=breeze$/Current=maui/g' /etc/sddm.conf
fi
%files
++++++ sddm.conf ++++++
--- /var/tmp/diff_new_pack.DwSXNJ/_old 2015-09-27 14:31:27.000000000 +0200
+++ /var/tmp/diff_new_pack.DwSXNJ/_new 2015-09-27 14:31:27.000000000 +0200
@@ -1,5 +1,5 @@
[Theme]
-Current=breeze
+Current=maui
CursorTheme=breeze_cursors
[XDisplay]
1
0
Hello community,
here is the log from the commit of package dracut for openSUSE:Factory checked in at 2015-09-27 14:32:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
and /work/SRC/openSUSE:Factory/.dracut.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dracut"
Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes 2015-09-03 18:06:51.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new/dracut.changes 2015-09-27 14:31:21.000000000 +0200
@@ -1,0 +2,54 @@
+Wed Sep 23 11:26:05 UTC 2015 - fvogt(a)suse.com
+
+- Fix 0182-fix-include-parsing.patch
+- Didn't parse arguments with spaces correctly
+
+-------------------------------------------------------------------
+Wed Sep 23 10:16:47 UTC 2015 - fvogt(a)suse.com
+
+- Add patch 0183-fix_add_drivers_hang.patch:
+ - Fix possible hang in dracut
+ caused by add_drivers+=" " in dracut.conf (bsc#923116)
+
+-------------------------------------------------------------------
+Mon Sep 21 13:18:43 UTC 2015 - fvogt(a)suse.com
+
+- Add patch 0182-fix-include-parsing.patch:
+ - Fix parsing of "-i" and "--include"
+- Fixes boo#908452
+
+-------------------------------------------------------------------
+Mon Sep 21 10:45:14 UTC 2015 - fvogt(a)suse.com
+
+- Add patch 0181-no_systemd_cryptsetup.patch:
+ - rd.luks.key is not implemented (properly) if systemd is enabled,
+ so ignore systemd in 90crypt
+- Fixes boo#915849
+
+-------------------------------------------------------------------
+Wed Sep 16 12:12:12 UTC 2015 - fvogt(a)suse.com
+
+- Fix systemd-vconsole-error properly (bsc#943312 and bsc#932981)
+ Rewrite 0180-dracut-add-trivial-vconsole-fontmap.patch
+ as 0180-i18n_add_correct_fontmaps.patch
+
+-------------------------------------------------------------------
+Mon Sep 14 11:33:51 UTC 2015 - thomas.blume(a)suse.com
+
+- fix systemd-vconsole-error in initrd (bsc#943312)
+ Add 0180-dracut-add-trivial-vconsole-fontmap.patch
+
+-------------------------------------------------------------------
+Fri Sep 11 11:06:46 UTC 2015 - fvogt(a)suse.com
+
+- Add 0401-mount_option_mountpoint.patch:
+ Make it possible to use a mountpoint as --mount parameter
+
+-------------------------------------------------------------------
+Fri Sep 11 10:56:42 UTC 2015 - fvogt(a)suse.com
+
+- Add experimental 0400-use_fstab_systemd.patch:
+ Add entry for /sysroot in /etc/fstab instead of relying
+ on root= and rootflags=
+
+-------------------------------------------------------------------
New:
----
0180-i18n_add_correct_fontmaps.patch
0181-no_systemd_cryptsetup.patch
0182-fix-include-parsing.patch
0183-fix_add_drivers_hang.patch
0400-use_fstab_systemd.patch
0401-mount_option_mountpoint.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.7erPKq/_old 2015-09-27 14:31:23.000000000 +0200
+++ /var/tmp/diff_new_pack.7erPKq/_new 2015-09-27 14:31:23.000000000 +0200
@@ -101,6 +101,10 @@
Patch164: 0164-Fix-initramfs-ver.img-vs-initrd-ver-in-dracut-initra.patch
Patch165: 0165-Order-root-fsck-after-pre-mount.patch
Patch168: 0168-remove_plymouth_logo_file.patch
+Patch180: 0180-i18n_add_correct_fontmaps.patch
+Patch181: 0181-no_systemd_cryptsetup.patch
+Patch182: 0182-fix-include-parsing.patch
+Patch183: 0183-fix_add_drivers_hang.patch
# Still needed
Patch133: 0133-Allow-multiple-configurations-per-network-interface-.patch
@@ -116,6 +120,9 @@
## fix for SUSE systems which have dpkg installed anyway
Patch300: dracut_dont_use_dpkg_defaults_on_SUSE.patch
+Patch400: 0400-use_fstab_systemd.patch
+Patch401: 0401-mount_option_mountpoint.patch
+
BuildRequires: asciidoc
BuildRequires: bash
BuildRequires: docbook-xsl-stylesheets
@@ -238,6 +245,10 @@
%patch164 -p1
%patch165 -p1
%patch168 -p1
+%patch180 -p1
+%patch181 -p1
+%patch182 -p1
+%patch183 -p1
%patch200 -p1
%patch201 -p1
@@ -245,6 +256,9 @@
%patch300 -p1
+%patch400 -p1
+%patch401 -p1
+
%build
%configure\
--systemdsystemunitdir=%{_unitdir}\
++++++ 0180-i18n_add_correct_fontmaps.patch ++++++
Index: dracut-043/modules.d/10i18n/module-setup.sh
===================================================================
--- dracut-043.orig/modules.d/10i18n/module-setup.sh
+++ dracut-043/modules.d/10i18n/module-setup.sh
@@ -196,7 +196,11 @@ install() {
if [[ ${FONT_MAP} ]]
then
FONT_MAP=${FONT_MAP%.trans}
- inst_simple ${kbddir}/consoletrans/${FONT_MAP}.trans
+ # There are three different formats that setfont supports
+ inst_simple ${kbddir}/consoletrans/${FONT_MAP} \
+ || inst_simple ${kbddir}/consoletrans/${FONT_MAP}.trans \
+ || inst_simple ${kbddir}/consoletrans/${FONT_MAP}_to_uni.trans \
+ || dwarn "Could not find FONT_MAP ${FONT_MAP}!"
fi
if [[ ${FONT_UNIMAP} ]]
++++++ 0181-no_systemd_cryptsetup.patch ++++++
>From 56f390967ff87515f7269f4793b9a651f0e3b87c Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt(a)suse.com>
Date: Mon, 21 Sep 2015 12:37:14 +0200
Subject: [PATCH] 90crypt: Don't use systemd for crypt
- rd.luks.key is not implemented (properly) if systemd is enabled,
so ignore systemd in 90crypt
- Source of this patch:
https://github.com/jsynacek/dracut/commit/058aa18e3ec2bd6b34e6afff0f2653d74…
- Fixes boo#915849
Signed-off-by: Fabian Vogt <fvogt(a)suse.com>
---
modules.d/90crypt/crypt-run-generator.sh | 31 -------------------------------
modules.d/90crypt/module-setup.sh | 9 ---------
modules.d/90crypt/parse-crypt.sh | 20 --------------------
3 files changed, 60 deletions(-)
delete mode 100755 modules.d/90crypt/crypt-run-generator.sh
diff --git a/modules.d/90crypt/crypt-run-generator.sh b/modules.d/90crypt/crypt-run-generator.sh
deleted file mode 100755
index 3c5d7b1..0000000
--- a/modules.d/90crypt/crypt-run-generator.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-. /lib/dracut-lib.sh
-type crypttab_contains >/dev/null 2>&1 || . /lib/dracut-crypt-lib.sh
-
-dev=$1
-luks=$2
-
-crypttab_contains "$luks" && exit 0
-
-allowdiscards="-"
-
-# parse for allow-discards
-if strstr "$(cryptsetup --help)" "allow-discards"; then
- if discarduuids=$(getargs "rd.luks.allow-discards"); then
- discarduuids=$(str_replace "$discarduuids" 'luks-' '')
- if strstr " $discarduuids " " ${luks##luks-}"; then
- allowdiscards="allow-discards"
- fi
- elif getargbool 0 rd.luks.allow-discards; then
- allowdiscards="allow-discards"
- fi
-fi
-
-echo "$luks $dev - timeout=0,$allowdiscards" >> /etc/crypttab
-
-if command -v systemctl >/dev/null; then
- systemctl daemon-reload
- systemctl start cryptsetup.target
-fi
-exit 0
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
index 721b447..a73e4ee 100755
--- a/modules.d/90crypt/module-setup.sh
+++ b/modules.d/90crypt/module-setup.sh
@@ -89,14 +89,5 @@ install() {
inst_simple "$moddir/crypt-lib.sh" "/lib/dracut-crypt-lib.sh"
inst_simple "/tmp/dracut_block_uuid.map" "/usr/lib/dracut/modules.d/90crypt/block_uuid.map"
- inst_multiple -o \
- $systemdutildir/system-generators/systemd-cryptsetup-generator \
- $systemdutildir/systemd-cryptsetup \
- $systemdsystemunitdir/systemd-ask-password-console.path \
- $systemdsystemunitdir/systemd-ask-password-console.service \
- $systemdsystemunitdir/cryptsetup.target \
- $systemdsystemunitdir/sysinit.target.wants/cryptsetup.target \
- systemd-ask-password systemd-tty-ask-password-agent
- inst_script "$moddir"/crypt-run-generator.sh /sbin/crypt-run-generator
dracut_need_initqueue
}
diff --git a/modules.d/90crypt/parse-crypt.sh b/modules.d/90crypt/parse-crypt.sh
index 5bda006..d84ff62 100755
--- a/modules.d/90crypt/parse-crypt.sh
+++ b/modules.d/90crypt/parse-crypt.sh
@@ -25,7 +25,6 @@ else
luksid=${luksid##luks-}
- if [ -z "$DRACUT_SYSTEMD" ]; then
{
printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", '
printf -- 'ENV{ID_FS_UUID}=="*%s*", ' $luksid
@@ -33,17 +32,6 @@ else
printf -- '--name cryptroot-ask-%%k %s ' $(command -v cryptroot-ask)
printf -- '$env{DEVNAME} luks-$env{ID_FS_UUID} %s"\n' $tout
} >> /etc/udev/rules.d/70-luks.rules.new
- else
- if ! crypttab_contains "$luksid"; then
- {
- printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", '
- printf -- 'ENV{ID_FS_UUID}=="*%s*", ' $luksid
- printf -- 'RUN+="%s --settled --unique --onetime ' $(command -v initqueue)
- printf -- '--name systemd-cryptsetup-%%k %s start ' $(command -v systemctl)
- printf -- 'systemd-cryptsetup@luks$$(dev_unit_name -$env{ID_FS_UUID}).service"\n'
- } >> /etc/udev/rules.d/70-luks.rules.new
- fi
- fi
uuid=$luksid
while [ "$uuid" != "${uuid#*-}" ]; do uuid=${uuid%%-*}${uuid#*-}; done
@@ -56,19 +44,11 @@ else
} >> $hookdir/emergency/90-crypt.sh
done
elif getargbool 0 rd.auto; then
- if [ -z "$DRACUT_SYSTEMD" ]; then
{
printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="%s ' $(command -v initqueue)
printf -- '--unique --settled --onetime --name cryptroot-ask-%%k '
printf -- '%s $env{DEVNAME} luks-$env{ID_FS_UUID} %s"\n' $(command -v cryptroot-ask) $tout
} >> /etc/udev/rules.d/70-luks.rules.new
- else
- {
- printf -- 'ENV{ID_FS_TYPE}=="crypto_LUKS", RUN+="%s ' $(command -v initqueue)
- printf -- '--unique --settled --onetime --name crypt-run-generator-%%k '
- printf -- '%s $env{DEVNAME} luks-$env{ID_FS_UUID}"\n' $(command -v crypt-run-generator)
- } >> /etc/udev/rules.d/70-luks.rules.new
- fi
fi
echo 'LABEL="luks_end"' >> /etc/udev/rules.d/70-luks.rules.new
--
2.5.1
++++++ 0182-fix-include-parsing.patch ++++++
>From 11d6560d7bbd8a4c4610a39c0985e50d728920fb Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt(a)suse.com>
Date: Mon, 21 Sep 2015 15:15:07 +0200
Subject: [PATCH] Fix parsing of "-i" and "--include"
- dracut replaced every instance of "-i" in the cmdline,
even if it was part of a kernel image name, e.g. "vmlinuz-i"
- Fixes boo#908452
Signed-off-by: Fabian Vogt <fvogt(a)suse.com>
---
dracut.sh | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
Index: dracut-043/dracut.sh
===================================================================
--- dracut-043.orig/dracut.sh
+++ dracut-043/dracut.sh
@@ -310,11 +310,17 @@ dropindirs_sort()
rearrange_params()
{
# Workaround -i, --include taking 2 arguments
- set -- "${@/--include/++include}"
-
- # This prevents any long argument ending with "-i"
- # -i, like --opt-i but I think we can just prevent that
- set -- "${@/%-i/++include}"
+ newat=()
+ for i in "$@"; do
+ if [[ $i =~ ^-i(.*) ]]; then
+ newat+=("++include" "${BASH_REMATCH[1]}") # Replace -i by ++include
+ elif [[ $i == "--include" ]]; then
+ newat+=("++include") # Replace --include by ++include
+ else
+ newat+=("$i")
+ fi
+ done
+ set -- "${newat[@]}" # Set new $@
TEMP=$(unset POSIXLY_CORRECT; getopt \
-o "a:m:o:d:I:k:c:L:fvqlHhMN" \
++++++ 0183-fix_add_drivers_hang.patch ++++++
>From d774a6f49771b9f55de2956c3c0038a7655b6e94 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt(a)suse.com>
Date: Wed, 23 Sep 2015 12:12:08 +0200
Subject: [PATCH] Fix possible hang in dracut
- Caused by add_drivers+=" " in dracut.conf (bsc#923116)
Signed-off-by: Fabian Vogt <fvogt(a)suse.com>
---
dracut.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dracut.sh b/dracut.sh
index 44b8a3d..11a4a2e 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1501,7 +1501,7 @@ if [[ $no_kernel != yes ]]; then
hostonly='' instmods $drivers
fi
- if [[ $add_drivers ]]; then
+ if [[ -n "${add_drivers// }" ]]; then
hostonly='' instmods -c $add_drivers
fi
if [[ $force_drivers ]]; then
--
2.5.1
++++++ 0400-use_fstab_systemd.patch ++++++
From: Fabian Vogt <fvogt(a)suse.com>
Subject: Use /etc/fstab for /sysroot instead of custom sysroot.mount
systemd-fstab-generator is capable of mounting /sysroot itself,
looking at /proc/cmdline if root= is set.
Index: dracut-043/modules.d/00systemd/module-setup.sh
===================================================================
--- dracut-043.orig/modules.d/00systemd/module-setup.sh
+++ dracut-043/modules.d/00systemd/module-setup.sh
@@ -14,7 +14,7 @@ check() {
# called by dracut
depends() {
- return 0
+ echo fs-lib
}
installkernel() {
@@ -22,6 +22,23 @@ installkernel() {
instmods -s efivarfs
}
+fstab_sysroot() {
+ local _dev=/dev/block/$(find_root_block_device)
+ local _fstype _flags _subvol
+ if [ -e $_dev ]; then
+ _dev=$(shorten_persistent_dev "$(get_persistent_dev "$_dev")")
+ _fstype="$(find_mp_fstype /)"
+ _flags="$(find_mp_fsopts /)"
+
+ if [[ $use_fstab != yes ]] && [[ $_fstype = btrfs ]]; then
+ _subvol=$(findmnt -e -v -n -o FSROOT --target /) \
+ && _subvol=${_subvol#/}
+ _flags="$_flags,${_subvol:+subvol=$_subvol}"
+ fi
+ printf "%s /sysroot %s %s 1 1\n" "$_dev" "$_fstype" "${_flags#,}"
+ fi
+}
+
# called by dracut
install() {
local _mods
@@ -216,5 +233,8 @@ install() {
} >> "$initdir/etc/systemd/journald.conf"
ln_r "${systemdsystemunitdir}/multi-user.target" "${systemdsystemunitdir}/default.target"
+
+ # Add entry for /sysroot to /etc/fstab
+ fstab_sysroot >> "$initdir/etc/fstab"
}
Index: dracut-043/modules.d/95rootfs-block/module-setup.sh
===================================================================
--- dracut-043.orig/modules.d/95rootfs-block/module-setup.sh
+++ dracut-043/modules.d/95rootfs-block/module-setup.sh
@@ -48,22 +48,25 @@ cmdline_rootfs() {
# called by dracut
cmdline() {
- cmdline_rootfs
- cmdline_journal
+ # When using systemd, we're storing the root device in /etc/fstab instead.
+ if ! dracut_module_included "systemd"; then
+ cmdline_rootfs
+ cmdline_journal
+ fi
}
# called by dracut
install() {
- if [[ $hostonly_cmdline == "yes" ]]; then
- local _journaldev=$(cmdline_journal)
- [[ $_journaldev ]] && printf "%s\n" "$_journaldev" >> "${initdir}/etc/cmdline.d/95root-journaldev.conf"
- local _rootdev=$(cmdline_rootfs)
- [[ $_rootdev ]] && printf "%s\n" "$_rootdev" >> "${initdir}/etc/cmdline.d/95root-dev.conf"
- fi
-
inst_multiple umount
inst_multiple tr
if ! dracut_module_included "systemd"; then
+ if [[ $hostonly_cmdline == "yes" ]]; then
+ local _journaldev=$(cmdline_journal)
+ [[ $_journaldev ]] && printf "%s\n" "$_journaldev" >> "${initdir}/etc/cmdline.d/95root-journaldev.conf"
+ local _rootdev=$(cmdline_rootfs)
+ [[ $_rootdev ]] && printf "%s\n" "$_rootdev" >> "${initdir}/etc/cmdline.d/95root-dev.conf"
+ fi
+
inst_hook cmdline 95 "$moddir/parse-block.sh"
inst_hook pre-udev 30 "$moddir/block-genrules.sh"
inst_hook mount 99 "$moddir/mount-root.sh"
Index: dracut-043/modules.d/98dracut-systemd/dracut-cmdline.sh
===================================================================
--- dracut-043.orig/modules.d/98dracut-systemd/dracut-cmdline.sh
+++ dracut-043/modules.d/98dracut-systemd/dracut-cmdline.sh
@@ -68,8 +68,12 @@ case "$root" in
rootok=1 ;;
esac
-[ -z "$root" ] && die "No or empty root= argument"
-[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
+if [ -z "$root" ]; then
+ root=$(findmnt --fstab -n --output source --target /sysroot)
+ [ -z "$root" ] && die "No or empty root= argument and not in fstab"
+elif [ -z "$rootok" ]; then
+ die "Don't know how to handle 'root=$root'"
+fi
export root rflags fstype netroot NEWROOT
Index: dracut-043/modules.d/98dracut-systemd/rootfs-generator.sh
===================================================================
--- dracut-043.orig/modules.d/98dracut-systemd/rootfs-generator.sh
+++ dracut-043/modules.d/98dracut-systemd/rootfs-generator.sh
@@ -36,35 +36,6 @@ generator_wait_for_dev()
fi
}
-generator_mount_rootfs()
-{
- local _type=$2
- local _flags=$3
- local _name
-
- [ -z "$1" ] && return 0
-
- _name=$(dev_unit_name "$1")
- [ -d "$GENERATOR_DIR" ] || mkdir -p "$GENERATOR_DIR"
- if ! [ -f "$GENERATOR_DIR"/sysroot.mount ]; then
- {
- echo "[Unit]"
- echo "Before=initrd-root-fs.target"
- echo "RequiresOverridable=systemd-fsck(a)${_name}.service"
- echo "After=systemd-fsck(a)${_name}.service"
- echo "[Mount]"
- echo "Where=/sysroot"
- echo "What=$1"
- echo "Options=${_flags}"
- echo "Type=${_type}"
- } > "$GENERATOR_DIR"/sysroot.mount
- fi
- if ! [ -L "$GENERATOR_DIR"/initrd-root-fs.target.requires/sysroot.mount ]; then
- [ -d "$GENERATOR_DIR"/initrd-root-fs.target.requires ] || mkdir -p "$GENERATOR_DIR"/initrd-root-fs.target.requires
- ln -s ../sysroot.mount "$GENERATOR_DIR"/initrd-root-fs.target.requires/sysroot.mount
- fi
-}
-
generator_fsck_after_pre_mount()
{
local _name
@@ -111,9 +82,12 @@ esac
GENERATOR_DIR="$1"
if [ "${root%%:*}" = "block" ]; then
- generator_wait_for_dev "${root#block:}" "$RDRETRY"
- generator_fsck_after_pre_mount "${root#block:}"
- strstr "$(cat /proc/cmdline)" 'root=' || generator_mount_rootfs "${root#block:}" "$(getarg rootfstype=)" "$(getarg rootflags=)"
+ generator_wait_for_dev "${root#block:}" "$RDRETRY"
+ generator_fsck_after_pre_mount "${root#block:}"
+ if ! [ -L "$GENERATOR_DIR"/initrd-root-fs.target.requires/sysroot.mount ]; then
+ [ -d "$GENERATOR_DIR"/initrd-root-fs.target.requires ] || mkdir -p "$GENERATOR_DIR"/initrd-root-fs.target.requires
+ ln -s ../sysroot.mount "$GENERATOR_DIR"/initrd-root-fs.target.requires/sysroot.mount
+ fi
fi
exit 0
Index: dracut-043/modules.d/99base/init.sh
===================================================================
--- dracut-043.orig/modules.d/99base/init.sh
+++ dracut-043/modules.d/99base/init.sh
@@ -128,8 +128,12 @@ make_trace_mem "hook cmdline" '1+:mem' '
getarg 'rd.break=cmdline' -d 'rdbreak=cmdline' && emergency_shell -n cmdline "Break before cmdline"
source_hook cmdline
-[ -z "$root" ] && die "No or empty root= argument"
-[ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
+if [ -z "$root" ]; then
+ root=$(findmnt --fstab -n --output source --target /sysroot)
+ [ -z "$root" ] && die "No or empty root= argument and not in fstab"
+elif [ -z "$rootok" ]; then
+ die "Don't know how to handle 'root=$root'"
+fi
export root rflags fstype netroot NEWROOT
++++++ 0401-mount_option_mountpoint.patch ++++++
From: Fabian Vogt <fvogt(a)suse.com>
Subject: dracut.sh: Support --mount with just mountpoint as parameter
Right now the --mount parameter of dracut expects a rather long fstab-like
line. This makes it possible to invoke dracut with e.g. --mount /boot.
Index: dracut-043/dracut.8.asc
===================================================================
--- dracut-043.orig/dracut.8.asc
+++ dracut-043/dracut.8.asc
@@ -338,6 +338,10 @@ provide a valid _/etc/fstab_.
The default _<dump frequency>_ is "0".
the default _<fsck order>_ is "2".
+**--mount** "_<mountpoint>_"::
+ Like above, but _<device>_, _<filesystem type>_ and _<filesystem options>_
+ are determined by looking at the current mounts.
+
**--add-device** _<device>_ ::
Bring up _<device>_ in initramfs, _<device>_ should be the device name.
This can be useful in hostonly mode for resume support when your swap is on
Index: dracut-043/dracut.sh
===================================================================
--- dracut-043.orig/dracut.sh
+++ dracut-043/dracut.sh
@@ -152,6 +152,8 @@ Creates initial ramdisk images for prelo
--mount "[DEV] [MP] [FSTYPE] [FSOPTS]"
Mount device [DEV] on mountpoint [MP] with filesystem
[FSTYPE] and options [FSOPTS] in the initramfs
+ --mount "[MP]" Same as above, but [DEV], [FSTYPE] and [FSOPTS] are
+ determined by looking at the current mounts.
--add-device "[DEV]" Bring up [DEV] in initramfs
-i, --include [SOURCE] [TARGET]
Include the files in the SOURCE directory into the
@@ -1536,9 +1538,21 @@ if [[ $kernel_only != yes ]]; then
while pop fstab_lines line; do
line=($line)
- [ -z "${line[3]}" ] && line[3]="defaults"
+
+ if [ -z "${line[1]}" ]; then
+ # Determine device and mount options from current system
+ mountpoint -q "${line[0]}" || derror "${line[0]} is not a mount point!"
+ line=($(findmnt --raw -n --target "${line[0]}" --output=source,target,fstype,options))
+ dinfo "Line for ${line[1]}: ${line[@]}"
+ else
+ # Use default options
+ [ -z "${line[3]}" ] && line[3]="defaults"
+ fi
+
+ # Default options for freq and passno
[ -z "${line[4]}" ] && line[4]="0"
[ -z "${line[5]}" ] && line[5]="2"
+
strstr "${line[2]}" "nfs" && line[5]="0"
echo "${line[@]}" >> "${initdir}/etc/fstab"
done
1
0
Hello community,
here is the log from the commit of package plymouth for openSUSE:Factory checked in at 2015-09-27 14:31:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/plymouth (Old)
and /work/SRC/openSUSE:Factory/.plymouth.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plymouth"
Changes:
--------
--- /work/SRC/openSUSE:Factory/plymouth/plymouth.changes 2014-11-13 09:16:38.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.plymouth.new/plymouth.changes 2015-09-27 14:31:15.000000000 +0200
@@ -1,0 +2,11 @@
+Mon Sep 21 12:15:11 UTC 2015 - idonmez(a)suse.com
+
+- Use is_opensuse to simplify if/else block
+
+-------------------------------------------------------------------
+Fri Sep 4 09:41:01 UTC 2015 - idonmez(a)suse.com
+
+- Add a direct dependency on systemd, since we need to know the
+ path to systemd-tty-ask-password-agent, fixes part of bsc#943312
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ plymouth.spec ++++++
--- /var/tmp/diff_new_pack.ZA0iJo/_old 2015-09-27 14:31:16.000000000 +0200
+++ /var/tmp/diff_new_pack.ZA0iJo/_new 2015-09-27 14:31:16.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package plymouth
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -70,6 +70,7 @@
BuildRequires: libudev-devel
BuildRequires: libxslt
BuildRequires: module-init-tools
+BuildRequires: systemd >= 186
BuildRequires: update-desktop-files
BuildRequires: xz
BuildRequires: pkgconfig(libdrm)
@@ -366,10 +367,10 @@
# Change the default theme
-%if %{suse_version} == 1315
-sed -i -e 's/spinner/SLE/g' src/plymouthd.defaults
-%else
+%if 0%{?is_opensuse}
sed -i -e 's/spinner/openSUSE/g' src/plymouthd.defaults
+%else
+sed -i -e 's/spinner/SLE/g' src/plymouthd.defaults
%endif
%build
1
0
Hello community,
here is the log from the commit of package mdadm for openSUSE:Factory checked in at 2015-09-27 14:31:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mdadm (Old)
and /work/SRC/openSUSE:Factory/.mdadm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mdadm"
Changes:
--------
--- /work/SRC/openSUSE:Factory/mdadm/mdadm.changes 2015-09-16 10:36:23.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mdadm.new/mdadm.changes 2015-09-27 14:31:10.000000000 +0200
@@ -1,0 +2,7 @@
+Mon Sep 14 13:21:33 UTC 2015 - dimstar(a)opensuse.org
+
+- Own %{_systemdshutdowndir} in case nothing else does. This
+ ensures build success even if systemd-mini does not own it
+ (happens in some versions of our package).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mdadm.spec ++++++
--- /var/tmp/diff_new_pack.jI4z1P/_old 2015-09-27 14:31:11.000000000 +0200
+++ /var/tmp/diff_new_pack.jI4z1P/_new 2015-09-27 14:31:11.000000000 +0200
@@ -108,6 +108,10 @@
/etc/cron.daily/mdadm
%dir /etc/cron.d
%config /etc/cron.d/mdadm
+# %%{_systemdshutdowndir}/ is not owned by all versions of systemd-mini.
+# But we really do not want to pull in a full systemd, so we rather just own
+# that directory by ourselves too. After all, this is allowed.
+%dir %{_systemdshutdowndir}
%{_systemdshutdowndir}/mdadm.shutdown
%{_unitdir}/mdmon@.service
%{_unitdir}/mdmonitor.service
1
0
Hello community,
here is the log from the commit of package kbd for openSUSE:Factory checked in at 2015-09-27 14:31:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kbd (Old)
and /work/SRC/openSUSE:Factory/.kbd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kbd"
Changes:
--------
--- /work/SRC/openSUSE:Factory/kbd/kbd.changes 2015-04-10 09:49:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kbd.new/kbd.changes 2015-09-27 14:31:04.000000000 +0200
@@ -1,0 +2,40 @@
+Fri Aug 21 10:50:21 UTC 2015 - opensuse.lietuviu.kalba(a)gmail.com
+
+- Rename conflicting legacy keymaps:
+ * dvorak/no.map -> dvorak/no-dvorak.map
+ * fgGIod/trf.map -> fgGIod/trf-fgGIod.map
+ * olpc/pt.map -> olpc/pt-olpc.map
+ * qwerty/cz.map -> qwerty/cz-qwerty.map
+- i386/qwerty/sr-latin links to sr-cy
+- add compose rules to cz layout (rh#1181581)
+
+-------------------------------------------------------------------
+Mon Aug 10 11:53:48 UTC 2015 - sndirsch(a)suse.com
+
+- genmap4systemd.sh: use 'abnt2' model for 'br' layouts, 'jp106'
+ model for 'jp' layouts and 'microsoftpro' for anything else
+ (instead of 'pc105' before) (FATE#318426)
+
+-------------------------------------------------------------------
+Tue Jul 21 10:05:35 UTC 2015 - sndirsch(a)suse.com
+
+- added genmap4systemd.sh tool, which generates entries for
+ systemd's /usr/share/systemd/kbd-model-map table from
+ xkeyboard-config converted keymaps; entries are written to
+ /usr/share/systemd/kbd-model-map.xkb-generated, so these can
+ easily be added to /usr/share/systemd/kbd-model-map by systemd
+ package (FATE#318426)
+
+-------------------------------------------------------------------
+Fri Jul 17 12:54:27 UTC 2015 - sndirsch(a)suse.com
+
+- Include xkb layouts from xkeyboard-config converted to console
+ keymaps, (FATE#318426)
+ * Rename Finnish xkb converted layout
+ * Add xkb and legacy keymaps subdirs to loadkyes search path
+ (kbd-1.15.5-loadkeys-search-path.patch), remove symlinks,
+ Don't convert layouts that can't input ASCII,
+ * Original keymaps moved to legacy dir, created symlinks to xkb
+ keymaps
+
+-------------------------------------------------------------------
New:
----
cz-map.patch
genmap4systemd.sh
kbd-1.15.5-loadkeys-search-path.patch
xml2lst.pl
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kbd.spec ++++++
--- /var/tmp/diff_new_pack.zG0YNA/_old 2015-09-27 14:31:06.000000000 +0200
+++ /var/tmp/diff_new_pack.zG0YNA/_new 2015-09-27 14:31:06.000000000 +0200
@@ -40,8 +40,11 @@
Source12: fbtest.8
Source13: guess_encoding.pl
Source14: kbd.pl
+Source15: cz-map.patch
Source42: convert-kbd-mac.sed
Source43: repack_kbd.sh
+Source44: xml2lst.pl
+Source45: genmap4systemd.sh
Patch0: kbd-1.15.2-prtscr_no_sigquit.patch
Patch2: kbd-1.15.2-unicode_scripts.patch
Patch3: kbd-1.15.2-docu-X11R6-xorg.patch
@@ -53,6 +56,9 @@
Patch10: kbd-2.0.2-doshell-reference.patch
Patch11: kbd-2.0.2-euro-unicode.patch
Patch12: kbd-2.0.2-fix-bashisms.patch
+# Patch13: adds xkb and legacy keymaps subdirs to loadkyes search path
+# (openSUSE FATE#318355, sle FATE#318426)
+Patch13: kbd-1.15.5-loadkeys-search-path.patch
BuildRequires: automake
BuildRequires: bison
@@ -63,7 +69,13 @@
BuildRequires: pkg-config
BuildRequires: suse-module-tools
BuildRequires: xz
+
+BuildRequires: console-setup
+BuildRequires: xkeyboard-config
+
Requires(pre): %fillup_prereq
+# Temporarily require -legacy
+Requires: %{name}-legacy = %{version}-%{release}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -82,10 +94,23 @@
Andries Brouwer <aeb(a)cwi.nl>
Alexey Gladkov <gladkov.alexey(a)gmail.com>
+%package legacy
+Summary: Legacy data for kbd package
+Group: System/Console
+BuildArch: noarch
+
+%description legacy
+The %{name}-legacy package contains original keymaps for kbd package.
+Please note that %{name}-legacy is not helpful without kbd.
+
+
+
%define kbd /usr/share/kbd
%prep
%setup -q -a 1 -a 2 -n kbd-%{version}
+cp -fp %{SOURCE44} .
+cp -fp %{SOURCE45} .
%patch0 -p1
%patch2
%patch3
@@ -97,6 +122,7 @@
%patch10
%patch11
%patch12 -p1
+%patch13 -p1
%build
for i in `find data/keymaps/mac -type f` ; do
@@ -108,6 +134,11 @@
test -f qwerty/se-latin1.map || cp qwerty/sv-latin1.map qwerty/se-latin1.map
# bnc#435121
test -f olpc/es-olpc.map || mv olpc/es.map olpc/es-olpc.map
+ # Rename conflicting keymaps, as Fedora do
+ test -f dvorak/no.map || mv dvorak/no.map dvorak/no-dvorak.map
+ test -f fgGIod/trf.map || mv fgGIod/trf.map fgGIod/trf-fgGIod.map
+ test -f olpc/pt.map || mv olpc/pt.map olpc/pt-olpc.map
+ test -f qwerty/cz.map || mv qwerty/cz.map qwerty/cz-qwerty.map
popd
%configure \
--datadir=%{kbd} \
@@ -163,6 +194,7 @@
ln -sf us.map.gz $K/keymaps/i386/qwerty/arabic.map.gz
ln -sf us.map.gz $K/keymaps/i386/qwerty/chinese.map.gz
ln -sf us.map.gz $K/keymaps/i386/qwerty/taiwanese.map.gz
+ln -sf sr-cy.map.gz $K/keymaps/i386/qwerty/sr-latin.map.gz
# Compatability links; don't know what the first three are good for.
# The others are for yast/langselection and should be removed as soon as
# yast knows about it.
@@ -286,6 +318,45 @@
ln -s %{_bindir}/resizecons %{buildroot}/bin
%endif
#EndUsrMerge
+
+# Move original keymaps to legacy directory
+mkdir -p $RPM_BUILD_ROOT/%{kbd}/keymaps/legacy
+mv $RPM_BUILD_ROOT/%{kbd}/keymaps/{amiga,atari,i386,include,mac,ppc,sun} $RPM_BUILD_ROOT/%{kbd}/keymaps/legacy
+
+# Convert X keyboard layouts to console keymaps
+mkdir -p $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb
+perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst
+while read line; do
+ XKBLAYOUT=`echo "$line" | cut -d " " -f 1`
+ echo "$XKBLAYOUT" >> layouts-list.lst
+ XKBVARIANT=`echo "$line" | cut -d " " -f 2`
+ ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz
+done < layouts-variants.lst
+
+# Convert X keyboard layouts (plain, no variant)
+cat layouts-list.lst | sort -u >> layouts-list-uniq.lst
+while read line; do
+ ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/"$line".map.gz
+done < layouts-list-uniq.lst
+
+# wipe converted layouts which cannot input ASCII (rh#1031848)
+zgrep -L "U+0041" $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/* | xargs rm -f
+
+# Rename the converted default fi (kotoistus) layout (rh#1117891)
+gunzip $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/fi.map.gz
+mv $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/fi.map $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/fi-kotoistus.map
+gzip $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/fi-kotoistus.map
+
+# Fix converted cz layout - add compose rules (rh#1181581)
+gunzip $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/cz.map.gz
+patch $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/cz.map < %{SOURCE15}
+gzip $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb/cz.map
+
+# Generate entries for systemd's /usr/share/systemd/kbd-model-map
+mkdir -p $RPM_BUILD_ROOT/usr/share/systemd
+sh ./genmap4systemd.sh $RPM_BUILD_ROOT/%{kbd}/keymaps/xkb \
+ > $RPM_BUILD_ROOT/usr/share/systemd/kbd-model-map.xkb-generated
+
%find_lang %{name}
%post
@@ -307,6 +378,7 @@
%{_localstatedir}/adm/fillup-templates/sysconfig.console
%{_localstatedir}/adm/fillup-templates/sysconfig.keyboard
%{kbd}
+%exclude %{kbd}/keymaps/legacy
#UsrMerge
/sbin/fbtest
/bin/chvt
@@ -423,5 +495,10 @@
%doc %{_mandir}/man8/setvesablank.8.gz
%doc %{_mandir}/man8/setvtrgb.8.gz
%doc %{_mandir}/man8/vcstime.8.gz
+%dir /usr/share/systemd
+/usr/share/systemd/kbd-model-map.xkb-generated
+
+%files legacy
+%{kbd}/keymaps/legacy
%changelog
++++++ cz-map.patch ++++++
--- cz.map.orig 2015-08-06 13:54:28.823257906 +0200
+++ cz.map 2015-08-06 13:54:49.338038186 +0200
@@ -39,7 +39,7 @@
keycode 38 = +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0141 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0142 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l
keycode 39 = +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016f U+0022 U+0024 dead_doubleacute +U+016f U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar +U+016e U+0022 U+0024 dead_doubleacute +U+016e U+0022 U+0024 dead_doubleacute Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar Meta_quotedbl Meta_quotedbl Meta_dollar Meta_dollar
keycode 40 = U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe U+00a7 U+0021 U+0027 +U+00df U+00a7 U+0021 U+0027 +U+00df Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe Meta_exclam Meta_exclam Meta_apostrophe Meta_apostrophe
-keycode 41 = U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum
+keycode 41 = U+003b dead_grave U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum U+003b U+00b0 U+0060 U+007e nul Control_asciicircum nul Control_asciicircum Meta_semicolon Meta_semicolon Meta_grave Meta_asciitilde Meta_nul Meta_Control_asciicircum Meta_nul Meta_Control_asciicircum
keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift
keycode 43 = dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash dead_diaeresis U+0027 U+005c U+007c Control_backslash Control_backslash Control_backslash Control_backslash Meta_apostrophe Meta_apostrophe Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash
keycode 44 = +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00b0 U+003c Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_less Meta_less Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y
@@ -108,3 +108,49 @@
keycode 127 = VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period
strings as usual
+# dead_grave
+compose '`' 'u' to U+016F
+compose '`' 'U' to U+016E
+compose '`' 'z' to U+00B0
+compose '`' 'Z' to U+00B0
+# dead_acute
+compose '\'' 'a' to U+00E1
+compose '\'' 'A' to U+00C1
+compose '\'' 'e' to U+00E9
+compose '\'' 'E' to U+00C9
+compose '\'' 'i' to U+00ED
+compose '\'' 'I' to U+00CD
+compose '\'' 'o' to U+00F3
+compose '\'' 'O' to U+00D3
+compose '\'' 'u' to U+00FA
+compose '\'' 'U' to U+00DA
+compose '\'' 'y' to U+00FD
+compose '\'' 'Y' to U+00DD
+# dead_caron
+compose '^' 'u' to U+016F
+compose '^' 'U' to U+016E
+compose '^' 'c' to U+010D
+compose '^' 'C' to U+010C
+compose '^' 'd' to U+010F
+compose '^' 'D' to U+010E
+compose '^' 'e' to U+011B
+compose '^' 'E' to U+011A
+compose '^' 'n' to U+0148
+compose '^' 'N' to U+0147
+compose '^' 'r' to U+0159
+compose '^' 'R' to U+0158
+compose '^' 's' to U+0161
+compose '^' 'S' to U+0160
+compose '^' 't' to U+0165
+compose '^' 'T' to U+0164
+compose '^' 'z' to U+017E
+compose '^' 'Z' to U+017D
+# dead_diaeresis
+compose '"' 'a' to U+00E4
+compose '"' 'A' to U+00C4
+compose '"' 'e' to U+00EB
+compose '"' 'E' to U+00CB
+compose '"' 'o' to U+00F6
+compose '"' 'O' to U+00D6
+compose '"' 'u' to U+00FC
+compose '"' 'U' to U+00DC
++++++ genmap4systemd.sh ++++++
#!/bin/bash
# Generate entries for systemd's /usr/share/systemd/kbd-model-map
if [ $# -eq 0 ]; then
pushd /usr/share/kbd/keymaps/xkb > /dev/null || exit 1
else
pushd > /dev/null $1 || exit 1
fi
echo "# generated from xkb generated keymaps (basic layouts *without* variant)"
for i in $(ls *.map.gz|grep -v "-"); do
consolelayout=$(echo $i|sed 's/.map.gz//g')
layout=$consolelayout
variant="-"
printf '%s' "$consolelayout"
printf "\t\t\t"
printf '%s' "$layout"
printf '\t'
printf 'microsoftpro\t\t'
printf '%s' "$variant"
printf '\t\t'
printf 'terminate:ctrl_alt_bksp\n'
done | sort -u
echo "# generated from xkb generated keymaps (layouts *with* variant)"
for i in $(ls *-*.map.gz); do
consolelayout=$(echo $i|sed 's/.map.gz//g')
conlen=$(echo "$consolelayout" |wc -m)
conlen=$((conlen - 1))
layout=$(echo $i|cut -d "-" -f 1)
variant=$(echo $i|cut -d "-" -f 2,3,4,5,6,7,8,9,10|cut -d "." -f1)
varlen=$(echo $variant|wc -m)
varlen=$((varlen -1))
printf '%s' "$consolelayout"
if [ $conlen -lt 8 ]; then
printf "\t\t\t"
elif [ $conlen -lt 16 ]; then
printf "\t\t"
elif [ $conlen -lt 24 ]; then
printf "\t"
else
printf ' '
fi
printf '%s' "$layout"
printf '\t'
if [ "$layout" == "br" ]; then
printf 'abnt2\t\t'
elif [ "$layout" == "jp" ]; then
printf 'jp106\t\t'
else
printf 'microsoftpro\t\t'
fi
printf '%s' "$variant"
if [ $varlen -lt 8 ]; then
printf "\t\t"
elif [ $varlen -lt 16 ]; then
printf "\t"
else
printf ' '
fi
printf 'terminate:ctrl_alt_bksp\n'
done | sort -u
popd > /dev/null
++++++ kbd-1.15.5-loadkeys-search-path.patch ++++++
diff -up kbd-2.0.1/src/loadkeys.c.orig kbd-2.0.1/src/loadkeys.c
--- kbd-2.0.1/src/loadkeys.c.orig 2013-11-27 12:56:57.846069007 +0100
+++ kbd-2.0.1/src/loadkeys.c 2013-11-27 12:58:03.877302345 +0100
@@ -26,7 +26,7 @@
#include "keymap.h"
static const char *progname = NULL;
-static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", KERNDIR "/", 0 };
+static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", DATADIR "/" XKBKEYMAPDIR "/", DATADIR "/" LEGACYKEYMAPDIR "/**", KERNDIR "/", 0 };
static const char *const suffixes[] = { "", ".kmap", ".map", 0 };
static void __attribute__ ((noreturn))
diff -up kbd-2.0.1/src/paths.h.orig kbd-2.0.1/src/paths.h
--- kbd-2.0.1/src/paths.h.orig 2013-11-27 12:58:10.662326108 +0100
+++ kbd-2.0.1/src/paths.h 2013-11-27 12:58:32.566403015 +0100
@@ -5,6 +5,8 @@
* The following five subdirectories are defined:
*/
#define KEYMAPDIR "keymaps"
+#define XKBKEYMAPDIR "keymaps/xkb"
+#define LEGACYKEYMAPDIR "keymaps/legacy"
#define UNIMAPDIR "unimaps"
#define TRANSDIR "consoletrans"
#define VIDEOMODEDIR "videomodes"
++++++ xml2lst.pl ++++++
#!/usr/bin/perl
# converts the <rules>.xml file to the old format <rules>.lst file
#
# Usage:
#
# perl xml2lst.pl < filename.xml > filename.lst
#
# author Ivan Pascal
# modified by Vitezslav Crhonek
$doc = new_document( 0, '');
parse('', $doc);
($reg) = node_by_name($doc, '/xkbConfigRegistry');
@models = node_by_name($reg, 'modelList/model/configItem');
@layouts = node_by_name($reg, 'layoutList/layout/configItem');
@options = node_by_name($reg, 'optionList/group/configItem');
for $i (@layouts) {
($name) = node_by_name($i, 'name');
@variants = node_by_name($i, '../variantList/variant/configItem');
for $v (@variants) {
($variant) = node_by_name($v, 'name');
printf("%s %s\n", text_child($name), text_child($variant));
}
}
sub with_attribute {
local ($nodelist, $attrexpr) = @_;
local ($attr, $value) = split (/=/, $attrexpr);
local ($node, $attrvalue);
if (defined $value && $value ne '') {
$value =~ s/"//g;
foreach $node (@{$nodelist}) {
$attrvalue = node_attribute($node, $attr);
if (defined $attrvalue && $attrvalue eq $value) {
return $node;
}
}
} else {
foreach $node (@{$nodelist}) {
if (! defined node_attribute($node, $attr)) {
return $node;
}
}
}
undef;
}
# Subroutines
sub parse {
local $intag = 0;
my (@node_stack, $parent);
$parent = @_[1];
local ($tag, $text);
while (<>) {
chomp;
@str = split /([<>])/;
shift @str if ($str[0] eq '' || $str[0] =~ /^[ \t]*$/);
while (scalar @str) {
$token = shift @str;
if ($token eq '<') {
$intag = 1;
if (defined $text) {
add_text_node($parent, $text);
undef $text;
}
} elsif ($token eq '>') {
$intag = 0;
if ($tag =~ /^\/(.*)/) { # close tag
$parent = pop @node_stack;
} elsif ($tag =~ /^([^\/]*)\/$/) {
empty_tag($parent, $1);
} else {
if (defined ($node = open_tag($parent, $tag))) {
push @node_stack, $parent;
$parent = $node;
}
}
undef $tag;
} else {
if ($intag == 1) {
if (defined $tag) {
$tag .= ' '. $token;
} else {
$tag = $token;
}
} else {
if (defined $text) {
$text .= "\n" . $token;
} else {
$text = $token;
}
}
}
}
}
}
sub new_document {
$doc = new_node( 0, '', 'DOCUMENT');
$doc->{CHILDREN} = [];
return $doc;
}
sub new_node {
local ($parent_node, $tag, $type) = @_;
my %node;
$node{PARENT} = $parent_node;
$node{TYPE} = $type;
if ($type eq 'COMMENT' || $type eq 'TEXT') {
$node{TEXT} = $tag;
$node{NAME} = $type;
return \%node;
}
local ($tname, $attr) = split(' ', $tag, 2);
$node{NAME} = $tname;
if (defined $attr && $attr ne '') {
my %attr_table;
local @attr_list = split ( /"/, $attr);
local ($name, $value);
while (scalar @attr_list) {
$name = shift @attr_list;
$name =~ s/[ =]//g;
next if ($name eq '');
$value = shift @attr_list;
$attr_table{$name} =$value;
}
$node{ATTRIBUTES} = \%attr_table;
}
return \%node;
}
sub add_node {
local ($parent_node, $node) = @_;
push @{$parent_node->{CHILDREN}}, $node;
local $tname = $node->{NAME};
if (defined $parent_node->{$tname}) {
push @{$parent_node->{$tname}}, $node
} else {
$parent_node->{$tname} = [ $node ];
}
}
sub empty_tag {
local ($parent_node, $tag) = @_;
local $node = new_node($parent_node, $tag, 'EMPTY');
add_node($parent_node, $node);
}
sub open_tag {
local ($parent_node, $tag) = @_;
local $node;
if ($tag =~ /^\?.*/ || $tag =~ /^\!.*/) {
$node = new_node($parent_node, $tag, 'COMMENT');
add_node($parent_node, $node);
undef; return;
} else {
$node = new_node($parent_node, $tag, 'NODE');
$node->{CHILDREN} = [];
add_node($parent_node, $node);
return $node;
}
}
sub add_text_node {
local ($parent_node, $text) = @_;
local $node = new_node($parent_node, $text, 'TEXT');
add_node($parent_node, $node);
}
sub node_by_name {
local ($node, $name) = @_;
local ($tagname, $path) = split(/\//, $name, 2);
my @nodelist;
if ($tagname eq '') {
while ($node->{PARENT} != 0) {
$node = $node->{PARENT};
}
sublist_by_name($node, $path, \@nodelist);
} else {
sublist_by_name($node, $name, \@nodelist);
}
return @nodelist;
}
sub sublist_by_name {
local ($node, $name, $res) = @_;
local ($tagname, $path) = split(/\//, $name, 2);
if (! defined $path) {
push @{$res}, (@{$node->{$tagname}});
return;
}
if ($tagname eq '..' && $node->{PARENT} != 0) {
$node = $node->{PARENT};
sublist_by_name($node, $path, $res);
} else {
local $n;
for $n (@{$node->{$tagname}}) {
sublist_by_name($n, $path, $res);
}
}
}
sub node_attribute {
local $node = @_[0];
if (defined $node->{ATTRIBUTES}) {
return $node->{ATTRIBUTES}{@_[1]};
}
undef;
}
sub text_child {
local ($node) = @_;
local ($child) = node_by_name($node, 'TEXT');
return $child->{TEXT};
}
1
0