From e0b301714ef17548ab954ccc519aeb9961a6399ad2ae586a5bc536bd5e1b6048 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Sat, 10 May 2014 06:32:24 +0000 Subject: [PATCH] Accepting request 233091 from Base:System - Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume to handle the option 'noauto' in /etc/crypttab (bnc#742774) - Modify and extend patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to have the correct terminal type used with agetty - Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch to allow users to access systemd user journal (bnc#876694) - Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume to handle the option 'noauto' in /etc/crypttab (bnc#742774) - Modify and extend patch 0001-On_s390_con3270_disable_ANSI_colour_esc.patch to have the correct terminal type used with agetty - Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch to allow users to access systemd user journal (bnc#876694) OBS-URL: https://build.opensuse.org/request/show/233091 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=185 --- ...s390_con3270_disable_ANSI_colour_esc.patch | 42 ++++++++-- ...fix-permissions-on-new-journal-files.patch | 27 +++++++ parse-crypttab-for-noauto-option.patch | 79 +++++++++++++++++++ systemd-mini.changes | 15 ++++ systemd-mini.spec | 6 ++ systemd.changes | 15 ++++ systemd.spec | 6 ++ 7 files changed, 185 insertions(+), 5 deletions(-) create mode 100644 0001-tmpfiles-fix-permissions-on-new-journal-files.patch create mode 100644 parse-crypttab-for-noauto-option.patch diff --git a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch index 87a67090..f09e8270 100644 --- a/0001-On_s390_con3270_disable_ANSI_colour_esc.patch +++ b/0001-On_s390_con3270_disable_ANSI_colour_esc.patch @@ -1,9 +1,10 @@ --- - rules/99-systemd.rules.in | 2 - - src/core/manager.c | 24 +++++++++++--- - src/shared/util.c | 77 ++++++++++++++++++++++++++++++++++++++++++++-- + rules/99-systemd.rules.in | 2 + src/core/manager.c | 24 ++++++++-- + src/shared/util.c | 101 ++++++++++++++++++++++++++++++++++++++++++++-- src/shared/util.h | 1 - 4 files changed, 95 insertions(+), 9 deletions(-) + 4 files changed, 118 insertions(+), 10 deletions(-) + --- systemd-208/rules/99-systemd.rules.in +++ systemd-208/rules/99-systemd.rules.in 2014-02-05 10:34:17.346235540 +0000 @@ -151,13 +152,14 @@ prev_ephemeral = ephemeral; if (status) { -@@ -3169,12 +3209,43 @@ void columns_lines_cache_reset(int signu +@@ -3169,12 +3209,47 @@ 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) @@ -169,6 +171,7 @@ + cached_on_tty = 0; + } + } ++#endif + } return cached_on_tty; @@ -179,6 +182,7 @@ + + 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))) { @@ -188,6 +192,7 @@ + cached_ansi_console = 0; + } + } ++#endif + } + + return cached_ansi_console; @@ -196,6 +201,33 @@ int running_in_chroot(void) { struct stat a = {}, b = {}; +@@ -3630,7 +3705,25 @@ 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=vt102"; ++ 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")) ++ return "TERM=dumb"; ++ if (streq(mode, "3270")) ++ return "TERM=ibm327x"; ++ } ++ if (streq(tty, "ttyS1")) ++ return "TERM=vt220"; ++#endif ++ return "TERM=vt102"; + } + + bool dirent_is_file(const struct dirent *de) { --- systemd-210/src/shared/util.h +++ systemd-210/src/shared/util.h 2014-04-30 10:24:51.134235665 +0000 @@ -418,6 +418,7 @@ unsigned lines(void); diff --git a/0001-tmpfiles-fix-permissions-on-new-journal-files.patch b/0001-tmpfiles-fix-permissions-on-new-journal-files.patch new file mode 100644 index 00000000..de54a2e5 --- /dev/null +++ b/0001-tmpfiles-fix-permissions-on-new-journal-files.patch @@ -0,0 +1,27 @@ +From a606871da508995f5ede113a8fc6538afd98966c Mon Sep 17 00:00:00 2001 +From: Greg KH +Date: Tue, 15 Apr 2014 14:12:01 -0700 +Subject: [PATCH] tmpfiles: fix permissions on new journal files + +When starting up journald on a new system, set the proper permissions on +the system.journal files, not only on the journal directory. +--- + tmpfiles.d/systemd.conf | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git tmpfiles.d/systemd.conf tmpfiles.d/systemd.conf +index 7c6d6b9..c470045 100644 +--- tmpfiles.d/systemd.conf ++++ tmpfiles.d/systemd.conf +@@ -23,6 +23,6 @@ d /run/systemd/machines 0755 root root - + d /run/systemd/shutdown 0755 root root - + + m /var/log/journal 2755 root systemd-journal - - +-m /var/log/journal/%m 2755 root systemd-journal - - ++Z /var/log/journal/%m 2755 root systemd-journal - - + m /run/log/journal 2755 root systemd-journal - - +-m /run/log/journal/%m 2755 root systemd-journal - - ++Z /run/log/journal/%m 2755 root systemd-journal - - +-- +1.7.9.2 + diff --git a/parse-crypttab-for-noauto-option.patch b/parse-crypttab-for-noauto-option.patch new file mode 100644 index 00000000..cb390f87 --- /dev/null +++ b/parse-crypttab-for-noauto-option.patch @@ -0,0 +1,79 @@ +--- + src/fstab-generator/fstab-generator.c | 52 ++++++++++++++++++++++++++++++++-- + 1 file changed, 50 insertions(+), 2 deletions(-) + +--- systemd-210/src/fstab-generator/fstab-generator.c ++++ systemd-210/src/fstab-generator/fstab-generator.c 2014-05-07 09:15:01.003911151 +0000 +@@ -37,6 +37,53 @@ + static const char *arg_dest = "/tmp"; + static bool arg_enabled = true; + ++static int check_crypttab(const char *what) { ++ _cleanup_fclose_ FILE *f = NULL; ++ unsigned n = 0; ++ int r; ++ ++ f = fopen("/etc/crypttab", "re"); ++ if (!f) { ++ if (errno == ENOENT) ++ r = EXIT_SUCCESS; ++ else ++ log_error("Failed to open /etc/crypttab: %m"); ++ ++ return 1; ++ } ++ ++ ++ for (;;) { ++ char line[LINE_MAX], *l; ++ _cleanup_free_ char *name = NULL, *device = NULL, *password = NULL, *options = NULL; ++ int k; ++ ++ if (!fgets(line, sizeof(line), f)) ++ break; ++ ++ n++; ++ ++ l = strstrip(line); ++ if (*l == '#' || *l == 0) ++ continue; ++ ++ k = sscanf(l, "%ms %ms %ms %ms", &name, &device, &password, &options); ++ if (k < 2 || k > 4) { ++ log_error("Failed to parse /etc/crypttab:%u, ignoring.", n); ++ continue; ++ } ++ ++ if (strcmp((what + 12), name) == 0) { ++ if (strstr(options, "noauto")) ++ return 0; ++ ++ return 1; ++ } ++ } ++ return 1; ++} ++ ++ + static int mount_find_pri(struct mntent *me, int *ret) { + char *end, *pri; + unsigned long r; +@@ -212,7 +259,7 @@ + *name = NULL, *unit = NULL, *lnk = NULL, + *automount_name = NULL, *automount_unit = NULL; + _cleanup_fclose_ FILE *f = NULL; +- int r; ++ int r, c; + + assert(what); + assert(where); +@@ -286,7 +333,8 @@ + return -errno; + } + +- if (!noauto) { ++ c = check_crypttab(what); ++ if (!noauto && (c != 0)) { + if (post) { + lnk = strjoin(arg_dest, "/", post, nofail || automount ? ".wants/" : ".requires/", name, NULL); + if (!lnk) diff --git a/systemd-mini.changes b/systemd-mini.changes index 8bd691bd..99f35b9d 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Wed May 7 10:42:27 UTC 2014 - werner@suse.de + +- Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume + to handle the option 'noauto' in /etc/crypttab (bnc#742774) + +------------------------------------------------------------------- +Wed May 7 09:23:01 UTC 2014 - werner@suse.de + +- Modify and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to have the correct terminal type used with agetty +- Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch + to allow users to access systemd user journal (bnc#876694) + ------------------------------------------------------------------- Mon May 5 14:02:16 UTC 2014 - werner@suse.de diff --git a/systemd-mini.spec b/systemd-mini.spec index b06165fd..cfb4be04 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -403,6 +403,10 @@ Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch Patch205: keep-crypt-password-prompt.patch # PATCH-FIX-UPSTREAM Fix uninitialized memory Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch +# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) +Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch +# PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) +Patch208: parse-crypttab-for-noauto-option.patch # UDEV PATCHES # ============ @@ -792,6 +796,8 @@ cp %{SOURCE7} m4/ %patch204 -p1 %patch205 -p1 %patch206 -p0 +%patch207 -p0 +%patch208 -p1 # udev patches %patch1001 -p1 diff --git a/systemd.changes b/systemd.changes index 8bd691bd..99f35b9d 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Wed May 7 10:42:27 UTC 2014 - werner@suse.de + +- Add patch parse-crypttab-for-noauto-option.patch from Thomas Blume + to handle the option 'noauto' in /etc/crypttab (bnc#742774) + +------------------------------------------------------------------- +Wed May 7 09:23:01 UTC 2014 - werner@suse.de + +- Modify and extend patch + 0001-On_s390_con3270_disable_ANSI_colour_esc.patch + to have the correct terminal type used with agetty +- Add patch 0001-tmpfiles-fix-permissions-on-new-journal-files.patch + to allow users to access systemd user journal (bnc#876694) + ------------------------------------------------------------------- Mon May 5 14:02:16 UTC 2014 - werner@suse.de diff --git a/systemd.spec b/systemd.spec index 038af1d1..d08fdb12 100644 --- a/systemd.spec +++ b/systemd.spec @@ -398,6 +398,10 @@ Patch204: shut-up-annoying-assertion-monotonic-clock-message.patch Patch205: keep-crypt-password-prompt.patch # PATCH-FIX-UPSTREAM Fix uninitialized memory Patch206: 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch +# PATCH-FIX-UPSTREAM Make systemd user journal accessible by users (bnc#876694) +Patch207: 0001-tmpfiles-fix-permissions-on-new-journal-files.patch +# PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) +Patch208: parse-crypttab-for-noauto-option.patch # UDEV PATCHES # ============ @@ -787,6 +791,8 @@ cp %{SOURCE7} m4/ %patch204 -p1 %patch205 -p1 %patch206 -p0 +%patch207 -p0 +%patch208 -p1 # udev patches %patch1001 -p1