forked from pool/systemd
Accepting request 286310 from home:jengelh:systemd
- Reinstate and improve (remove huge indents from) tty-ask-password-agent-on-console.patch, 0014-journald-with-journaling-FS.patch, rootsymlink_generator. OBS-URL: https://build.opensuse.org/request/show/286310 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=847
This commit is contained in:
parent
119ddb3b0b
commit
c21a4ca2f0
@ -1,15 +1,15 @@
|
|||||||
---
|
---
|
||||||
rules/99-systemd.rules.in | 2
|
rules/99-systemd.rules.in | 2
|
||||||
src/core/manager.c | 24 ++++++++--
|
src/core/manager.c | 24 ++++++++---
|
||||||
src/shared/util.c | 101 ++++++++++++++++++++++++++++++++++++++++++++--
|
src/shared/util.c | 99 ++++++++++++++++++++++++++++++++++++++++++++--
|
||||||
src/shared/util.h | 1
|
src/shared/util.h | 1
|
||||||
4 files changed, 118 insertions(+), 10 deletions(-)
|
4 files changed, 116 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
|
||||||
Index: systemd-218/rules/99-systemd.rules.in
|
Index: systemd/rules/99-systemd.rules.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/rules/99-systemd.rules.in
|
--- systemd.orig/rules/99-systemd.rules.in
|
||||||
+++ systemd-218/rules/99-systemd.rules.in
|
+++ systemd/rules/99-systemd.rules.in
|
||||||
@@ -7,7 +7,7 @@
|
@@ -7,7 +7,7 @@
|
||||||
|
|
||||||
ACTION=="remove", GOTO="systemd_end"
|
ACTION=="remove", GOTO="systemd_end"
|
||||||
@ -19,11 +19,11 @@ Index: systemd-218/rules/99-systemd.rules.in
|
|||||||
|
|
||||||
KERNEL=="vport*", TAG+="systemd"
|
KERNEL=="vport*", TAG+="systemd"
|
||||||
|
|
||||||
Index: systemd-218/src/core/manager.c
|
Index: systemd/src/core/manager.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/core/manager.c
|
--- systemd.orig/src/core/manager.c
|
||||||
+++ systemd-218/src/core/manager.c
|
+++ systemd/src/core/manager.c
|
||||||
@@ -110,7 +110,7 @@ static int manager_watch_jobs_in_progres
|
@@ -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))
|
#define CYLON_BUFFER_EXTRA (2*(sizeof(ANSI_RED_ON)-1) + sizeof(ANSI_HIGHLIGHT_RED_ON)-1 + 2*(sizeof(ANSI_HIGHLIGHT_OFF)-1))
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ Index: systemd-218/src/core/manager.c
|
|||||||
char *p = buffer;
|
char *p = buffer;
|
||||||
|
|
||||||
assert(buflen >= CYLON_BUFFER_EXTRA + width + 1);
|
assert(buflen >= CYLON_BUFFER_EXTRA + width + 1);
|
||||||
@@ -119,12 +119,14 @@ static void draw_cylon(char buffer[], si
|
@@ -122,12 +122,14 @@ static void draw_cylon(char buffer[], si
|
||||||
if (pos > 1) {
|
if (pos > 1) {
|
||||||
if (pos > 2)
|
if (pos > 2)
|
||||||
p = mempset(p, ' ', pos-2);
|
p = mempset(p, ' ', pos-2);
|
||||||
@ -49,7 +49,7 @@ Index: systemd-218/src/core/manager.c
|
|||||||
*p++ = '*';
|
*p++ = '*';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +137,8 @@ static void draw_cylon(char buffer[], si
|
@@ -138,7 +140,8 @@ static void draw_cylon(char buffer[], si
|
||||||
*p++ = '*';
|
*p++ = '*';
|
||||||
if (pos < width-1)
|
if (pos < width-1)
|
||||||
p = mempset(p, ' ', width-1-pos);
|
p = mempset(p, ' ', width-1-pos);
|
||||||
@ -59,7 +59,7 @@ Index: systemd-218/src/core/manager.c
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,6 +155,7 @@ void manager_flip_auto_status(Manager *m
|
@@ -155,6 +158,7 @@ void manager_flip_auto_status(Manager *m
|
||||||
}
|
}
|
||||||
|
|
||||||
static void manager_print_jobs_in_progress(Manager *m) {
|
static void manager_print_jobs_in_progress(Manager *m) {
|
||||||
@ -67,7 +67,7 @@ Index: systemd-218/src/core/manager.c
|
|||||||
_cleanup_free_ char *job_of_n = NULL;
|
_cleanup_free_ char *job_of_n = NULL;
|
||||||
Iterator i;
|
Iterator i;
|
||||||
Job *j;
|
Job *j;
|
||||||
@@ -176,10 +180,20 @@ static void manager_print_jobs_in_progre
|
@@ -180,10 +184,20 @@ static void manager_print_jobs_in_progre
|
||||||
assert(counter == print_nr + 1);
|
assert(counter == print_nr + 1);
|
||||||
assert(j);
|
assert(j);
|
||||||
|
|
||||||
@ -89,11 +89,11 @@ Index: systemd-218/src/core/manager.c
|
|||||||
|
|
||||||
m->jobs_in_progress_iteration++;
|
m->jobs_in_progress_iteration++;
|
||||||
|
|
||||||
Index: systemd-218/src/shared/util.c
|
Index: systemd/src/shared/util.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/shared/util.c
|
--- systemd.orig/src/shared/util.c
|
||||||
+++ systemd-218/src/shared/util.c
|
+++ systemd/src/shared/util.c
|
||||||
@@ -3182,6 +3182,7 @@ int status_vprintf(const char *status, b
|
@@ -3212,6 +3212,7 @@ int status_vprintf(const char *status, b
|
||||||
struct iovec iovec[6] = {};
|
struct iovec iovec[6] = {};
|
||||||
int n = 0;
|
int n = 0;
|
||||||
static bool prev_ephemeral;
|
static bool prev_ephemeral;
|
||||||
@ -101,7 +101,7 @@ Index: systemd-218/src/shared/util.c
|
|||||||
|
|
||||||
assert(format);
|
assert(format);
|
||||||
|
|
||||||
@@ -3195,6 +3196,41 @@ int status_vprintf(const char *status, b
|
@@ -3225,6 +3226,41 @@ int status_vprintf(const char *status, b
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
return fd;
|
return fd;
|
||||||
|
|
||||||
@ -143,7 +143,7 @@ Index: systemd-218/src/shared/util.c
|
|||||||
if (ellipse) {
|
if (ellipse) {
|
||||||
char *e;
|
char *e;
|
||||||
size_t emax, sl;
|
size_t emax, sl;
|
||||||
@@ -3217,8 +3253,12 @@ int status_vprintf(const char *status, b
|
@@ -3247,8 +3283,12 @@ int status_vprintf(const char *status, b
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ Index: systemd-218/src/shared/util.c
|
|||||||
prev_ephemeral = ephemeral;
|
prev_ephemeral = ephemeral;
|
||||||
|
|
||||||
if (status) {
|
if (status) {
|
||||||
@@ -3474,8 +3514,22 @@ void columns_lines_cache_reset(int signu
|
@@ -3504,8 +3544,22 @@ void columns_lines_cache_reset(int signu
|
||||||
bool on_tty(void) {
|
bool on_tty(void) {
|
||||||
static int cached_on_tty = -1;
|
static int cached_on_tty = -1;
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ Index: systemd-218/src/shared/util.c
|
|||||||
|
|
||||||
return cached_on_tty;
|
return cached_on_tty;
|
||||||
}
|
}
|
||||||
@@ -3493,6 +3547,27 @@ int files_same(const char *filea, const
|
@@ -3523,6 +3577,27 @@ int files_same(const char *filea, const
|
||||||
a.st_ino == b.st_ino;
|
a.st_ino == b.st_ino;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,11 +210,11 @@ Index: systemd-218/src/shared/util.c
|
|||||||
int running_in_chroot(void) {
|
int running_in_chroot(void) {
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@@ -3976,7 +4051,25 @@ bool tty_is_vc_resolve(const char *tty)
|
@@ -4006,7 +4081,23 @@ bool tty_is_vc_resolve(const char *tty)
|
||||||
const char *default_term_for_tty(const char *tty) {
|
const char *default_term_for_tty(const char *tty) {
|
||||||
assert(tty);
|
assert(tty);
|
||||||
|
|
||||||
- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt102";
|
- return tty_is_vc_resolve(tty) ? "TERM=linux" : "TERM=vt220";
|
||||||
+ if (tty_is_vc_resolve(tty))
|
+ if (tty_is_vc_resolve(tty))
|
||||||
+ return "TERM=linux";
|
+ return "TERM=linux";
|
||||||
+
|
+
|
||||||
@ -230,18 +230,16 @@ Index: systemd-218/src/shared/util.c
|
|||||||
+ if (streq(mode, "3270"))
|
+ if (streq(mode, "3270"))
|
||||||
+ return "TERM=ibm327x";
|
+ return "TERM=ibm327x";
|
||||||
+ }
|
+ }
|
||||||
+ if (streq(tty, "ttyS1"))
|
|
||||||
+ return "TERM=vt220";
|
|
||||||
+#endif
|
+#endif
|
||||||
+ return "TERM=vt102";
|
+ return "TERM=vt220";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool dirent_is_file(const struct dirent *de) {
|
bool dirent_is_file(const struct dirent *de) {
|
||||||
Index: systemd-218/src/shared/util.h
|
Index: systemd/src/shared/util.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/shared/util.h
|
--- systemd.orig/src/shared/util.h
|
||||||
+++ systemd-218/src/shared/util.h
|
+++ systemd/src/shared/util.h
|
||||||
@@ -474,6 +474,7 @@ unsigned lines(void);
|
@@ -475,6 +475,7 @@ unsigned lines(void);
|
||||||
void columns_lines_cache_reset(int _unused_ signum);
|
void columns_lines_cache_reset(int _unused_ signum);
|
||||||
|
|
||||||
bool on_tty(void);
|
bool on_tty(void);
|
||||||
|
@ -1,11 +1,22 @@
|
|||||||
---
|
From: werner@suse.de
|
||||||
src/journal/journald-server.c | 29 +++++++++++++++++++++++++++--
|
Upstream: marked as openSUSE-specific fix originally, but may well
|
||||||
1 file changed, 27 insertions(+), 2 deletions(-)
|
worth be to be sent upstream.
|
||||||
|
|
||||||
Index: systemd-218/src/journal/journald-server.c
|
Original description:
|
||||||
|
(none)
|
||||||
|
|
||||||
|
Augmented description [jengelh@inai.de]:
|
||||||
|
Disable COW on journal files, as that is naturally leading to a lot
|
||||||
|
of unwanted fragmentation on btrfs.
|
||||||
|
No word on compression…
|
||||||
|
---
|
||||||
|
src/journal/journald-server.c | 34 ++++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 34 insertions(+)
|
||||||
|
|
||||||
|
Index: systemd/src/journal/journald-server.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/journal/journald-server.c
|
--- systemd.orig/src/journal/journald-server.c
|
||||||
+++ systemd-218/src/journal/journald-server.c
|
+++ systemd/src/journal/journald-server.c
|
||||||
@@ -21,6 +21,7 @@
|
@@ -21,6 +21,7 @@
|
||||||
|
|
||||||
#include <sys/signalfd.h>
|
#include <sys/signalfd.h>
|
||||||
@ -14,45 +25,50 @@ Index: systemd-218/src/journal/journald-server.c
|
|||||||
#include <linux/sockios.h>
|
#include <linux/sockios.h>
|
||||||
#include <sys/statvfs.h>
|
#include <sys/statvfs.h>
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
@@ -921,7 +922,7 @@ finish:
|
@@ -917,6 +918,38 @@ finish:
|
||||||
|
dispatch_message_real(s, iovec, n, m, ucred, tv, label, label_len, unit_id, priority, object_pid);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/*
|
||||||
|
+ * On journaling and/or compressing file systems, avoid doubling the efforts
|
||||||
|
+ * for the system, that is, set NOCOW and NOCOMP inode flags. Check for every
|
||||||
|
+ * single flag, as otherwise, some of the file systems may return EOPNOTSUPP on
|
||||||
|
+ * a single unkown flag (like BtrFS does).
|
||||||
|
+ *
|
||||||
|
+ * …but src/journal/journal-file.c already sets NOCOW too…⸘
|
||||||
|
+ */
|
||||||
|
+static void disable_cow(const char *dir, const Server *serv)
|
||||||
|
+{
|
||||||
|
+ unsigned long flags;
|
||||||
|
+ int fd = open(dir, O_DIRECTORY);
|
||||||
|
+
|
||||||
|
+ if (fd < 0)
|
||||||
|
+ return;
|
||||||
|
+ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) {
|
||||||
|
+ unsigned long old = flags;
|
||||||
|
+ if (!(flags & FS_NOATIME_FL) &&
|
||||||
|
+ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOATIME_FL) == 0)
|
||||||
|
+ flags |= FS_NOATIME_FL;
|
||||||
|
+ if (!(flags & FS_NOCOW_FL) &&
|
||||||
|
+ ioctl(fd, FS_IOC_SETFLAGS, flags | FS_NOCOW_FL) == 0)
|
||||||
|
+ flags |= FS_NOCOW_FL;
|
||||||
|
+ if (!(flags & FS_NOCOMP_FL) && serv->compress) {
|
||||||
|
+ flags &= ~FS_COMPR_FL;
|
||||||
|
+ flags |= FS_NOCOMP_FL;
|
||||||
|
+ }
|
||||||
|
+ if (old != flags)
|
||||||
|
+ ioctl(fd, FS_IOC_SETFLAGS, flags);
|
||||||
|
+ }
|
||||||
|
+ close(fd);
|
||||||
|
+}
|
||||||
|
|
||||||
static int system_journal_open(Server *s, bool flush_requested) {
|
static int system_journal_open(Server *s, bool flush_requested) {
|
||||||
- int r;
|
int r;
|
||||||
+ int r, fd;
|
@@ -946,6 +979,7 @@ static int system_journal_open(Server *s
|
||||||
char *fn;
|
|
||||||
sd_id128_t machine;
|
|
||||||
char ids[33];
|
|
||||||
@@ -947,7 +948,31 @@ static int system_journal_open(Server *s
|
|
||||||
(void) mkdir("/var/log/journal/", 0755);
|
|
||||||
|
|
||||||
fn = strappenda("/var/log/journal/", ids);
|
fn = strjoina("/var/log/journal/", ids);
|
||||||
- (void) mkdir(fn, 0755);
|
(void) mkdir(fn, 0755);
|
||||||
+ (void)mkdir(fn, 0755);
|
+ disable_cow(fn, s);
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * On journaling and/or compressing file systems avoid doubling the
|
|
||||||
+ * efforts for the system, that is set NOCOW and NOCOMP inode flags.
|
|
||||||
+ * Check for every single flag as otherwise some of the file systems
|
|
||||||
+ * may return EOPNOTSUPP on one unkown flag (like BtrFS does).
|
|
||||||
+ */
|
|
||||||
+ if ((fd = open(fn, O_DIRECTORY)) >= 0) {
|
|
||||||
+ long flags;
|
|
||||||
+ if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == 0) {
|
|
||||||
+ int old = flags;
|
|
||||||
+ if (!(flags&FS_NOATIME_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOATIME_FL) == 0)
|
|
||||||
+ flags |= FS_NOATIME_FL;
|
|
||||||
+ if (!(flags&FS_NOCOW_FL) && ioctl(fd, FS_IOC_SETFLAGS, flags|FS_NOCOW_FL) == 0)
|
|
||||||
+ flags |= FS_NOCOW_FL;
|
|
||||||
+ if (!(flags&FS_NOCOMP_FL) && s->compress) {
|
|
||||||
+ flags &= ~FS_COMPR_FL;
|
|
||||||
+ flags |= FS_NOCOMP_FL;
|
|
||||||
+ }
|
|
||||||
+ if (old != flags)
|
|
||||||
+ ioctl(fd, FS_IOC_SETFLAGS, flags);
|
|
||||||
+ }
|
|
||||||
+ close(fd);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
fn = strappenda(fn, "/system.journal");
|
fn = strjoina(fn, "/system.journal");
|
||||||
r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal);
|
r = journal_file_open_reliably(fn, O_RDWR|O_CREAT, 0640, s->compress, s->seal, &s->system_metrics, s->mmap, NULL, &s->system_journal);
|
||||||
|
@ -12,10 +12,10 @@
|
|||||||
shell-completion/bash/udevadm | 6 +++++-
|
shell-completion/bash/udevadm | 6 +++++-
|
||||||
11 files changed, 70 insertions(+), 11 deletions(-)
|
11 files changed, 70 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
Index: systemd-218/shell-completion/bash/coredumpctl
|
Index: systemd/shell-completion/bash/coredumpctl
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/coredumpctl
|
--- systemd.orig/shell-completion/bash/coredumpctl
|
||||||
+++ systemd-218/shell-completion/bash/coredumpctl
|
+++ systemd/shell-completion/bash/coredumpctl
|
||||||
@@ -44,6 +44,10 @@ _coredumpctl() {
|
@@ -44,6 +44,10 @@ _coredumpctl() {
|
||||||
[DUMP]='dump gdb'
|
[DUMP]='dump gdb'
|
||||||
)
|
)
|
||||||
@ -33,13 +33,13 @@ Index: systemd-218/shell-completion/bash/coredumpctl
|
|||||||
|
|
||||||
-complete -F _coredumpctl coredumpctl
|
-complete -F _coredumpctl coredumpctl
|
||||||
+complete -o default -o bashdefault -F _coredumpctl coredumpctl
|
+complete -o default -o bashdefault -F _coredumpctl coredumpctl
|
||||||
Index: systemd-218/shell-completion/bash/hostnamectl
|
Index: systemd/shell-completion/bash/hostnamectl
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/hostnamectl
|
--- systemd.orig/shell-completion/bash/hostnamectl
|
||||||
+++ systemd-218/shell-completion/bash/hostnamectl
|
+++ systemd/shell-completion/bash/hostnamectl
|
||||||
@@ -30,6 +30,10 @@ _hostnamectl() {
|
@@ -30,6 +30,10 @@ _hostnamectl() {
|
||||||
local OPTS='-h --help --version --transient --static --pretty
|
local OPTS='-h --help --version --transient --static --pretty
|
||||||
--no-ask-password -H --host'
|
--no-ask-password -H --host --machine'
|
||||||
|
|
||||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||||
+ return 0
|
+ return 0
|
||||||
@ -54,12 +54,12 @@ Index: systemd-218/shell-completion/bash/hostnamectl
|
|||||||
|
|
||||||
-complete -F _hostnamectl hostnamectl
|
-complete -F _hostnamectl hostnamectl
|
||||||
+complete -o default -o bashdefault -F _hostnamectl hostnamectl
|
+complete -o default -o bashdefault -F _hostnamectl hostnamectl
|
||||||
Index: systemd-218/shell-completion/bash/journalctl
|
Index: systemd/shell-completion/bash/journalctl
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/journalctl
|
--- systemd.orig/shell-completion/bash/journalctl
|
||||||
+++ systemd-218/shell-completion/bash/journalctl
|
+++ systemd/shell-completion/bash/journalctl
|
||||||
@@ -51,6 +51,10 @@ _journalctl() {
|
@@ -55,6 +55,10 @@ _journalctl() {
|
||||||
--verify-key'
|
--root --machine'
|
||||||
)
|
)
|
||||||
|
|
||||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||||
@ -69,16 +69,16 @@ Index: systemd-218/shell-completion/bash/journalctl
|
|||||||
if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then
|
if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then
|
||||||
case $prev in
|
case $prev in
|
||||||
--boot|--this-boot|-b)
|
--boot|--this-boot|-b)
|
||||||
@@ -116,4 +120,4 @@ _journalctl() {
|
@@ -120,4 +124,4 @@ _journalctl() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
-complete -F _journalctl journalctl
|
-complete -F _journalctl journalctl
|
||||||
+complete -o default -o bashdefault -F _journalctl journalctl
|
+complete -o default -o bashdefault -F _journalctl journalctl
|
||||||
Index: systemd-218/shell-completion/bash/kernel-install
|
Index: systemd/shell-completion/bash/kernel-install
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/kernel-install
|
--- systemd.orig/shell-completion/bash/kernel-install
|
||||||
+++ systemd-218/shell-completion/bash/kernel-install
|
+++ systemd/shell-completion/bash/kernel-install
|
||||||
@@ -18,11 +18,22 @@
|
@@ -18,11 +18,22 @@
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -108,13 +108,13 @@ Index: systemd-218/shell-completion/bash/kernel-install
|
|||||||
|
|
||||||
-complete -F _kernel_install kernel-install
|
-complete -F _kernel_install kernel-install
|
||||||
+complete -o default -o bashdefault -F _kernel_install kernel-install
|
+complete -o default -o bashdefault -F _kernel_install kernel-install
|
||||||
Index: systemd-218/shell-completion/bash/localectl
|
Index: systemd/shell-completion/bash/localectl
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/localectl
|
--- systemd.orig/shell-completion/bash/localectl
|
||||||
+++ systemd-218/shell-completion/bash/localectl
|
+++ systemd/shell-completion/bash/localectl
|
||||||
@@ -36,6 +36,10 @@ _localectl() {
|
@@ -36,6 +36,10 @@ _localectl() {
|
||||||
local OPTS='-h --help --version --no-convert --no-pager --no-ask-password
|
local OPTS='-h --help --version --no-convert --no-pager --no-ask-password
|
||||||
-H --host'
|
-H --host --machine'
|
||||||
|
|
||||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||||
+ return 0
|
+ return 0
|
||||||
@ -129,13 +129,13 @@ Index: systemd-218/shell-completion/bash/localectl
|
|||||||
|
|
||||||
-complete -F _localectl localectl
|
-complete -F _localectl localectl
|
||||||
+complete -o default -o bashdefault -F _localectl localectl
|
+complete -o default -o bashdefault -F _localectl localectl
|
||||||
Index: systemd-218/shell-completion/bash/loginctl
|
Index: systemd/shell-completion/bash/loginctl
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/loginctl
|
--- systemd.orig/shell-completion/bash/loginctl
|
||||||
+++ systemd-218/shell-completion/bash/loginctl
|
+++ systemd/shell-completion/bash/loginctl
|
||||||
@@ -37,6 +37,10 @@ _loginctl () {
|
@@ -38,6 +38,10 @@ _loginctl () {
|
||||||
[ARG]='--host -H --kill-who --property -p --signal -s'
|
[ARG]='--host -H --kill-who --property -p --signal -s --machine'
|
||||||
)
|
)
|
||||||
|
|
||||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||||
+ return 0
|
+ return 0
|
||||||
@ -144,16 +144,16 @@ Index: systemd-218/shell-completion/bash/loginctl
|
|||||||
if __contains_word "$prev" ${OPTS[ARG]}; then
|
if __contains_word "$prev" ${OPTS[ARG]}; then
|
||||||
case $prev in
|
case $prev in
|
||||||
--signal|-s)
|
--signal|-s)
|
||||||
@@ -106,4 +110,4 @@ _loginctl () {
|
@@ -107,4 +111,4 @@ _loginctl () {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
-complete -F _loginctl loginctl
|
-complete -F _loginctl loginctl
|
||||||
+complete -o default -o bashdefault -F _loginctl loginctl
|
+complete -o default -o bashdefault -F _loginctl loginctl
|
||||||
Index: systemd-218/shell-completion/bash/systemctl.in
|
Index: systemd/shell-completion/bash/systemctl.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/systemctl.in
|
--- systemd.orig/shell-completion/bash/systemctl.in
|
||||||
+++ systemd-218/shell-completion/bash/systemctl.in
|
+++ systemd/shell-completion/bash/systemctl.in
|
||||||
@@ -96,6 +96,10 @@ _systemctl () {
|
@@ -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 --root'
|
||||||
)
|
)
|
||||||
@ -171,10 +171,10 @@ Index: systemd-218/shell-completion/bash/systemctl.in
|
|||||||
|
|
||||||
-complete -F _systemctl systemctl
|
-complete -F _systemctl systemctl
|
||||||
+complete -o default -o bashdefault -F _systemctl systemctl
|
+complete -o default -o bashdefault -F _systemctl systemctl
|
||||||
Index: systemd-218/shell-completion/bash/systemd-analyze
|
Index: systemd/shell-completion/bash/systemd-analyze
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/systemd-analyze
|
--- systemd.orig/shell-completion/bash/systemd-analyze
|
||||||
+++ systemd-218/shell-completion/bash/systemd-analyze
|
+++ systemd/shell-completion/bash/systemd-analyze
|
||||||
@@ -47,6 +47,10 @@ _systemd_analyze() {
|
@@ -47,6 +47,10 @@ _systemd_analyze() {
|
||||||
[VERIFY]='verify'
|
[VERIFY]='verify'
|
||||||
)
|
)
|
||||||
@ -192,10 +192,10 @@ Index: systemd-218/shell-completion/bash/systemd-analyze
|
|||||||
|
|
||||||
-complete -F _systemd_analyze systemd-analyze
|
-complete -F _systemd_analyze systemd-analyze
|
||||||
+complete -o default -o bashdefault -F _systemd_analyze systemd-analyze
|
+complete -o default -o bashdefault -F _systemd_analyze systemd-analyze
|
||||||
Index: systemd-218/shell-completion/bash/systemd-run
|
Index: systemd/shell-completion/bash/systemd-run
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/systemd-run
|
--- systemd.orig/shell-completion/bash/systemd-run
|
||||||
+++ systemd-218/shell-completion/bash/systemd-run
|
+++ systemd/shell-completion/bash/systemd-run
|
||||||
@@ -17,6 +17,13 @@
|
@@ -17,6 +17,13 @@
|
||||||
# You should have received a copy of the GNU Lesser General Public License
|
# You should have received a copy of the GNU Lesser General Public License
|
||||||
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||||
@ -228,13 +228,13 @@ Index: systemd-218/shell-completion/bash/systemd-run
|
|||||||
|
|
||||||
-complete -F _systemd_run systemd-run
|
-complete -F _systemd_run systemd-run
|
||||||
+complete -o default -o bashdefault -F _systemd_run systemd-run
|
+complete -o default -o bashdefault -F _systemd_run systemd-run
|
||||||
Index: systemd-218/shell-completion/bash/timedatectl
|
Index: systemd/shell-completion/bash/timedatectl
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/timedatectl
|
--- systemd.orig/shell-completion/bash/timedatectl
|
||||||
+++ systemd-218/shell-completion/bash/timedatectl
|
+++ systemd/shell-completion/bash/timedatectl
|
||||||
@@ -30,6 +30,10 @@ _timedatectl() {
|
@@ -30,6 +30,10 @@ _timedatectl() {
|
||||||
local OPTS='-h --help --version --adjust-system-clock --no-pager
|
local OPTS='-h --help --version --adjust-system-clock --no-pager
|
||||||
--no-ask-password -H --host'
|
--no-ask-password -H --host --machine'
|
||||||
|
|
||||||
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
+ if __contains_word ">" ${COMP_WORDS[*]:0:COMP_CWORD}; then
|
||||||
+ return 0
|
+ return 0
|
||||||
@ -249,10 +249,10 @@ Index: systemd-218/shell-completion/bash/timedatectl
|
|||||||
|
|
||||||
-complete -F _timedatectl timedatectl
|
-complete -F _timedatectl timedatectl
|
||||||
+complete -o default -o bashdefault -F _timedatectl timedatectl
|
+complete -o default -o bashdefault -F _timedatectl timedatectl
|
||||||
Index: systemd-218/shell-completion/bash/udevadm
|
Index: systemd/shell-completion/bash/udevadm
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/shell-completion/bash/udevadm
|
--- systemd.orig/shell-completion/bash/udevadm
|
||||||
+++ systemd-218/shell-completion/bash/udevadm
|
+++ systemd/shell-completion/bash/udevadm
|
||||||
@@ -36,6 +36,10 @@ _udevadm() {
|
@@ -36,6 +36,10 @@ _udevadm() {
|
||||||
|
|
||||||
local verbs=(info trigger settle control monitor hwdb test-builtin test)
|
local verbs=(info trigger settle control monitor hwdb test-builtin test)
|
||||||
|
@ -4,14 +4,16 @@ Subject: create default links for primary cd_dvd drive
|
|||||||
|
|
||||||
cdrom_id: created links for the default cd/dvd drive (bnc#783054).
|
cdrom_id: created links for the default cd/dvd drive (bnc#783054).
|
||||||
---
|
---
|
||||||
rules/60-cdrom_id.rules | 5 ++++-
|
rules/60-cdrom_id.rules | 5 ++++-
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
--- systemd-206.orig/rules/60-cdrom_id.rules
|
Index: systemd/rules/60-cdrom_id.rules
|
||||||
+++ systemd-206/rules/60-cdrom_id.rules
|
===================================================================
|
||||||
@@ -15,6 +15,9 @@ ENV{DISK_EJECT_REQUEST}=="?*", RUN+="cdr
|
--- systemd.orig/rules/60-cdrom_id.rules
|
||||||
# enable the receiving of media eject button events
|
+++ systemd/rules/60-cdrom_id.rules
|
||||||
IMPORT{program}="cdrom_id --lock-media $devnode"
|
@@ -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"
|
||||||
|
|
||||||
-KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100"
|
-KERNEL=="sr0", SYMLINK+="cdrom", OPTIONS+="link_priority=-100"
|
||||||
+KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100"
|
+KERNEL=="sr0", ENV{ID_CDROM}=="1", SYMLINK+="cdrom", OPTIONS+="link_priority=-100"
|
||||||
|
@ -18,10 +18,10 @@ Signed-off-by: Jeff Mahoney <jeffm@suse.com>
|
|||||||
src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------
|
src/udev/scsi_id/scsi_serial.c | 19 +++++++++++++------
|
||||||
4 files changed, 32 insertions(+), 7 deletions(-)
|
4 files changed, 32 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
Index: systemd-218/rules/60-persistent-storage.rules
|
Index: systemd/rules/60-persistent-storage.rules
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/rules/60-persistent-storage.rules
|
--- systemd.orig/rules/60-persistent-storage.rules
|
||||||
+++ systemd-218/rules/60-persistent-storage.rules
|
+++ systemd/rules/60-persistent-storage.rules
|
||||||
@@ -46,6 +46,10 @@ KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="par
|
@@ -46,6 +46,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_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"
|
KERNEL=="sd*[0-9]", ENV{ID_SCSI_COMPAT}=="?*", SYMLINK+="disk/by-id/scsi-$env{ID_SCSI_COMPAT}-part%n"
|
||||||
@ -33,10 +33,10 @@ Index: systemd-218/rules/60-persistent-storage.rules
|
|||||||
# firewire
|
# firewire
|
||||||
KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}"
|
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"
|
KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n"
|
||||||
Index: systemd-218/src/udev/scsi_id/scsi_id.c
|
Index: systemd/src/udev/scsi_id/scsi_id.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/udev/scsi_id/scsi_id.c
|
--- systemd.orig/src/udev/scsi_id/scsi_id.c
|
||||||
+++ systemd-218/src/udev/scsi_id/scsi_id.c
|
+++ systemd/src/udev/scsi_id/scsi_id.c
|
||||||
@@ -43,6 +43,7 @@ static const struct option options[] = {
|
@@ -43,6 +43,7 @@ static const struct option options[] = {
|
||||||
{ "replace-whitespace", no_argument, NULL, 'u' },
|
{ "replace-whitespace", no_argument, NULL, 'u' },
|
||||||
{ "sg-version", required_argument, NULL, 's' },
|
{ "sg-version", required_argument, NULL, 's' },
|
||||||
@ -53,15 +53,15 @@ Index: systemd-218/src/udev/scsi_id/scsi_id.c
|
|||||||
static bool reformat_serial = false;
|
static bool reformat_serial = false;
|
||||||
static bool export = false;
|
static bool export = false;
|
||||||
static char vendor_str[64];
|
static char vendor_str[64];
|
||||||
@@ -313,6 +315,7 @@ static void help(void) {
|
@@ -316,6 +318,7 @@ static void help(void) {
|
||||||
" -g,--whitelisted treat device as whitelisted\n"
|
" -g --whitelisted Treat device as whitelisted\n"
|
||||||
" -u,--replace-whitespace replace all whitespace by underscores\n"
|
" -u --replace-whitespace Replace all whitespace by underscores\n"
|
||||||
" -v,--verbose verbose logging\n"
|
" -v --verbose Verbose logging\n"
|
||||||
+ " --truncated-serial truncated serial for compatibility with systems configured with by-id links created by udev < 184\n"
|
+ " --truncated-serial truncated serial for compatibility with systems configured with by-id links created by udev < 184\n"
|
||||||
" --version print version\n"
|
" -x --export Print values as environment keys\n"
|
||||||
" -x,--export print values as environment keys\n"
|
, program_invocation_short_name);
|
||||||
" -h,--help print this help text\n\n");
|
|
||||||
@@ -385,6 +388,10 @@ static int set_options(struct udev *udev
|
@@ -387,6 +390,10 @@ static int set_options(struct udev *udev
|
||||||
log_open();
|
log_open();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ Index: systemd-218/src/udev/scsi_id/scsi_id.c
|
|||||||
case 'V':
|
case 'V':
|
||||||
printf("%s\n", VERSION);
|
printf("%s\n", VERSION);
|
||||||
exit(0);
|
exit(0);
|
||||||
@@ -526,6 +533,9 @@ static int scsi_id(struct udev *udev, ch
|
@@ -528,6 +535,9 @@ static int scsi_id(struct udev *udev, ch
|
||||||
util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str));
|
util_replace_whitespace(dev_scsi.serial, serial_str, sizeof(serial_str));
|
||||||
util_replace_chars(serial_str, NULL);
|
util_replace_chars(serial_str, NULL);
|
||||||
printf("ID_SERIAL=%s\n", serial_str);
|
printf("ID_SERIAL=%s\n", serial_str);
|
||||||
@ -82,7 +82,7 @@ Index: systemd-218/src/udev/scsi_id/scsi_id.c
|
|||||||
util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str));
|
util_replace_whitespace(dev_scsi.serial_short, serial_str, sizeof(serial_str));
|
||||||
util_replace_chars(serial_str, NULL);
|
util_replace_chars(serial_str, NULL);
|
||||||
printf("ID_SERIAL_SHORT=%s\n", serial_str);
|
printf("ID_SERIAL_SHORT=%s\n", serial_str);
|
||||||
@@ -556,7 +566,10 @@ static int scsi_id(struct udev *udev, ch
|
@@ -558,7 +568,10 @@ static int scsi_id(struct udev *udev, ch
|
||||||
if (reformat_serial) {
|
if (reformat_serial) {
|
||||||
char serial_str[MAX_SERIAL_LEN];
|
char serial_str[MAX_SERIAL_LEN];
|
||||||
|
|
||||||
@ -94,10 +94,10 @@ Index: systemd-218/src/udev/scsi_id/scsi_id.c
|
|||||||
util_replace_chars(serial_str, NULL);
|
util_replace_chars(serial_str, NULL);
|
||||||
printf("%s\n", serial_str);
|
printf("%s\n", serial_str);
|
||||||
goto out;
|
goto out;
|
||||||
Index: systemd-218/src/udev/scsi_id/scsi_id.h
|
Index: systemd/src/udev/scsi_id/scsi_id.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/udev/scsi_id/scsi_id.h
|
--- systemd.orig/src/udev/scsi_id/scsi_id.h
|
||||||
+++ systemd-218/src/udev/scsi_id/scsi_id.h
|
+++ systemd/src/udev/scsi_id/scsi_id.h
|
||||||
@@ -43,6 +43,7 @@ struct scsi_id_device {
|
@@ -43,6 +43,7 @@ struct scsi_id_device {
|
||||||
char kernel[64];
|
char kernel[64];
|
||||||
char serial[MAX_SERIAL_LEN];
|
char serial[MAX_SERIAL_LEN];
|
||||||
@ -106,10 +106,10 @@ Index: systemd-218/src/udev/scsi_id/scsi_id.h
|
|||||||
int use_sg;
|
int use_sg;
|
||||||
|
|
||||||
/* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */
|
/* Always from page 0x80 e.g. 'B3G1P8500RWT' - may not be unique */
|
||||||
Index: systemd-218/src/udev/scsi_id/scsi_serial.c
|
Index: systemd/src/udev/scsi_id/scsi_serial.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/udev/scsi_id/scsi_serial.c
|
--- systemd.orig/src/udev/scsi_id/scsi_serial.c
|
||||||
+++ systemd-218/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
|
@@ -96,7 +96,8 @@ static const char hex_str[]="0123456789a
|
||||||
|
|
||||||
static int do_scsi_page80_inquiry(struct udev *udev,
|
static int do_scsi_page80_inquiry(struct udev *udev,
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
Index: systemd-210/Makefile.am
|
---
|
||||||
|
Makefile.am | 1 +
|
||||||
|
rules/60-ssd-scheduler.rules | 11 +++++++++++
|
||||||
|
2 files changed, 12 insertions(+)
|
||||||
|
|
||||||
|
Index: systemd/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-210.orig/Makefile.am
|
--- systemd.orig/Makefile.am
|
||||||
+++ systemd-210/Makefile.am
|
+++ systemd/Makefile.am
|
||||||
@@ -2546,6 +2546,7 @@ dist_udevrules_DATA += \
|
@@ -3576,6 +3576,7 @@ dist_udevrules_DATA += \
|
||||||
rules/60-persistent-input.rules \
|
rules/60-persistent-input.rules \
|
||||||
rules/60-persistent-alsa.rules \
|
rules/60-persistent-alsa.rules \
|
||||||
rules/60-persistent-storage.rules \
|
rules/60-persistent-storage.rules \
|
||||||
+ rules/60-ssd-scheduler.rules \
|
+ rules/60-ssd-scheduler.rules \
|
||||||
rules/64-btrfs.rules \
|
rules/64-btrfs.rules \
|
||||||
rules/75-net-description.rules \
|
rules/70-mouse.rules \
|
||||||
rules/75-tty-description.rules \
|
rules/70-touchpad.rules \
|
||||||
Index: systemd-210/rules/60-ssd-scheduler.rules
|
Index: systemd/rules/60-ssd-scheduler.rules
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ systemd-210/rules/60-ssd-scheduler.rules
|
+++ systemd/rules/60-ssd-scheduler.rules
|
||||||
@@ -0,0 +1,11 @@
|
@@ -0,0 +1,11 @@
|
||||||
+# do not edit this file, it will be overwritten on update
|
+# do not edit this file, it will be overwritten on update
|
||||||
+
|
+
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
---
|
---
|
||||||
Makefile.am | 19 ++++
|
Makefile.am | 19 +++++
|
||||||
src/udev/rootsymlink_generator/rootsymlink_generator.c | 65 +++++++++++++++++
|
src/udev/rootsymlink_generator/rootsymlink_generator.c | 57 +++++++++++++++++
|
||||||
units/systemd-udev-root-symlink.service | 10 ++
|
units/systemd-udev-root-symlink.service | 10 ++
|
||||||
units/systemd-udev-root-symlink.service.in | 10 ++
|
units/systemd-udev-root-symlink.service.in | 10 ++
|
||||||
4 files changed, 104 insertions(+)
|
4 files changed, 96 insertions(+)
|
||||||
|
|
||||||
Index: systemd-218/Makefile.am
|
Index: systemd/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/Makefile.am
|
--- systemd.orig/Makefile.am
|
||||||
+++ systemd-218/Makefile.am
|
+++ systemd/Makefile.am
|
||||||
@@ -3660,6 +3660,25 @@ EXTRA_DIST += \
|
@@ -3862,6 +3862,25 @@ EXTRA_DIST += \
|
||||||
test/rule-syntax-check.py
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
+rootsymlink_generator_SOURCES = \
|
+rootsymlink_generator_SOURCES = \
|
||||||
@ -35,11 +35,11 @@ Index: systemd-218/Makefile.am
|
|||||||
ata_id_SOURCES = \
|
ata_id_SOURCES = \
|
||||||
src/udev/ata_id/ata_id.c
|
src/udev/ata_id/ata_id.c
|
||||||
|
|
||||||
Index: systemd-218/src/udev/rootsymlink_generator/rootsymlink_generator.c
|
Index: systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ systemd-218/src/udev/rootsymlink_generator/rootsymlink_generator.c
|
+++ systemd/src/udev/rootsymlink_generator/rootsymlink_generator.c
|
||||||
@@ -0,0 +1,65 @@
|
@@ -0,0 +1,57 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2014-2015 Robert Milasan <rmilasan@suse.com>
|
+ * Copyright (C) 2014-2015 Robert Milasan <rmilasan@suse.com>
|
||||||
+ *
|
+ *
|
||||||
@ -73,42 +73,34 @@ Index: systemd-218/src/udev/rootsymlink_generator/rootsymlink_generator.c
|
|||||||
+
|
+
|
||||||
+int main(void)
|
+int main(void)
|
||||||
+{
|
+{
|
||||||
|
+ char filename[BUFFER_SIZE], buf[BUFFER_SIZE];
|
||||||
+ struct stat statbuf;
|
+ struct stat statbuf;
|
||||||
|
+ int fd;
|
||||||
+
|
+
|
||||||
+ if (stat(_ROOTDEV_, &statbuf) != 0)
|
+ if (stat(_ROOTDEV_, &statbuf) < 0)
|
||||||
+ return 1;
|
+ return 1;
|
||||||
+
|
+ if (major(statbuf.st_dev) <= 0)
|
||||||
+ if (major(statbuf.st_dev) > 0) {
|
+ return 0;
|
||||||
+ int fd = -1;
|
+ if (mkdir(_PATH_, 0755) < 0 && errno != EEXIST)
|
||||||
+ char filename[BUFFER_SIZE];
|
+ return errno;
|
||||||
+
|
+ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_);
|
||||||
+ if (mkdir(_PATH_, 0755) != 0 && errno != EEXIST)
|
+ fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0644);
|
||||||
+ return errno;
|
+ if (fd < 0)
|
||||||
+
|
+ return errno;
|
||||||
+ snprintf(filename, BUFFER_SIZE, "%s/%s", _PATH_, _FILE_);
|
+ snprintf(buf, BUFFER_SIZE,
|
||||||
+
|
+ "ACTION==\"add|change\", SUBSYSTEM==\"block\", "
|
||||||
+ if ((fd = open(filename, O_CREAT|O_WRONLY|O_TRUNC, 0644)) == -1)
|
+ "ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n",
|
||||||
+ return errno;
|
+ major(statbuf.st_dev), minor(statbuf.st_dev));
|
||||||
+ else {
|
+ if (write(fd, buf, strlen(buf)) < 0)
|
||||||
+ char buf[BUFFER_SIZE];
|
+ return errno;
|
||||||
+
|
+ if (close(fd) < 0)
|
||||||
+ snprintf(buf, BUFFER_SIZE, "ACTION==\"add|change\", SUBSYSTEM==\"block\", ENV{MAJOR}==\"%d\", ENV{MINOR}==\"%d\", SYMLINK+=\"root\"\n",
|
+ return errno;
|
||||||
+ major(statbuf.st_dev), minor(statbuf.st_dev));
|
|
||||||
+
|
|
||||||
+ if (write(fd, buf, strlen(buf)) == -1)
|
|
||||||
+ return errno;
|
|
||||||
+
|
|
||||||
+ if (close(fd) == -1)
|
|
||||||
+ return errno;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
Index: systemd-218/units/systemd-udev-root-symlink.service
|
Index: systemd/units/systemd-udev-root-symlink.service
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ systemd-218/units/systemd-udev-root-symlink.service
|
+++ systemd/units/systemd-udev-root-symlink.service
|
||||||
@@ -0,0 +1,10 @@
|
@@ -0,0 +1,10 @@
|
||||||
+[Unit]
|
+[Unit]
|
||||||
+Description=Rule generator for /dev/root symlink
|
+Description=Rule generator for /dev/root symlink
|
||||||
@ -120,10 +112,10 @@ Index: systemd-218/units/systemd-udev-root-symlink.service
|
|||||||
+Type=oneshot
|
+Type=oneshot
|
||||||
+RemainAfterExit=yes
|
+RemainAfterExit=yes
|
||||||
+ExecStart=/usr/lib/udev/rootsymlink-generator
|
+ExecStart=/usr/lib/udev/rootsymlink-generator
|
||||||
Index: systemd-218/units/systemd-udev-root-symlink.service.in
|
Index: systemd/units/systemd-udev-root-symlink.service.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ systemd-218/units/systemd-udev-root-symlink.service.in
|
+++ systemd/units/systemd-udev-root-symlink.service.in
|
||||||
@@ -0,0 +1,10 @@
|
@@ -0,0 +1,10 @@
|
||||||
+[Unit]
|
+[Unit]
|
||||||
+Description=Rule generator for /dev/root symlink
|
+Description=Rule generator for /dev/root symlink
|
||||||
|
@ -7,10 +7,10 @@ forward suspend/hibernation calls to pm-utils, if installed (bnc#790157)
|
|||||||
src/sleep/sleep.c | 27 ++++++++++++++++++++++-----
|
src/sleep/sleep.c | 27 ++++++++++++++++++++++-----
|
||||||
1 file changed, 22 insertions(+), 5 deletions(-)
|
1 file changed, 22 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
Index: systemd-218/src/sleep/sleep.c
|
Index: systemd/src/sleep/sleep.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/sleep/sleep.c
|
--- systemd.orig/src/sleep/sleep.c
|
||||||
+++ systemd-218/src/sleep/sleep.c
|
+++ systemd/src/sleep/sleep.c
|
||||||
@@ -24,6 +24,7 @@
|
@@ -24,6 +24,7 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -39,7 +39,7 @@ Index: systemd-218/src/sleep/sleep.c
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,6 +95,8 @@ static int execute(char **modes, char **
|
@@ -97,6 +96,8 @@ static int execute(char **modes, char **
|
||||||
int r;
|
int r;
|
||||||
_cleanup_fclose_ FILE *f = NULL;
|
_cleanup_fclose_ FILE *f = NULL;
|
||||||
|
|
||||||
@ -48,15 +48,15 @@ Index: systemd-218/src/sleep/sleep.c
|
|||||||
/* This file is opened first, so that if we hit an error,
|
/* This file is opened first, so that if we hit an error,
|
||||||
* we can abort before modifying any state. */
|
* we can abort before modifying any state. */
|
||||||
f = fopen("/sys/power/state", "we");
|
f = fopen("/sys/power/state", "we");
|
||||||
@@ -106,6 +107,7 @@ static int execute(char **modes, char **
|
@@ -107,6 +108,7 @@ static int execute(char **modes, char **
|
||||||
r = write_mode(modes);
|
r = write_mode(modes);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
+ }
|
+ }
|
||||||
|
|
||||||
execute_directory(SYSTEM_SLEEP_PATH, NULL, DEFAULT_TIMEOUT_USEC, arguments);
|
execute_directories(dirs, DEFAULT_TIMEOUT_USEC, arguments);
|
||||||
|
|
||||||
@@ -114,8 +116,10 @@ static int execute(char **modes, char **
|
@@ -115,8 +117,10 @@ static int execute(char **modes, char **
|
||||||
LOG_MESSAGE("Suspending system..."),
|
LOG_MESSAGE("Suspending system..."),
|
||||||
"SLEEP=%s", arg_verb,
|
"SLEEP=%s", arg_verb,
|
||||||
NULL);
|
NULL);
|
||||||
@ -68,7 +68,7 @@ Index: systemd-218/src/sleep/sleep.c
|
|||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
@@ -155,6 +159,7 @@ static int parse_argv(int argc, char *ar
|
@@ -156,6 +160,7 @@ static int parse_argv(int argc, char *ar
|
||||||
};
|
};
|
||||||
|
|
||||||
int c;
|
int c;
|
||||||
@ -76,7 +76,7 @@ Index: systemd-218/src/sleep/sleep.c
|
|||||||
|
|
||||||
assert(argc >= 0);
|
assert(argc >= 0);
|
||||||
assert(argv);
|
assert(argv);
|
||||||
@@ -192,6 +197,18 @@ static int parse_argv(int argc, char *ar
|
@@ -193,6 +198,18 @@ static int parse_argv(int argc, char *ar
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,10 +13,10 @@ systemd unit drop-in files to add dependencies
|
|||||||
create mode 100644 src/insserv-generator/Makefile
|
create mode 100644 src/insserv-generator/Makefile
|
||||||
create mode 100644 src/insserv-generator/insserv-generator.c
|
create mode 100644 src/insserv-generator/insserv-generator.c
|
||||||
|
|
||||||
Index: systemd-218/Makefile.am
|
Index: systemd/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/Makefile.am
|
--- systemd.orig/Makefile.am
|
||||||
+++ systemd-218/Makefile.am
|
+++ systemd/Makefile.am
|
||||||
@@ -399,6 +399,7 @@ rootlibexec_PROGRAMS += \
|
@@ -399,6 +399,7 @@ rootlibexec_PROGRAMS += \
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ Index: systemd-218/Makefile.am
|
|||||||
systemd-getty-generator \
|
systemd-getty-generator \
|
||||||
systemd-fstab-generator \
|
systemd-fstab-generator \
|
||||||
systemd-system-update-generator \
|
systemd-system-update-generator \
|
||||||
@@ -2286,6 +2287,14 @@ systemd_delta_LDADD = \
|
@@ -2328,6 +2329,14 @@ systemd_delta_LDADD = \
|
||||||
libsystemd-shared.la
|
libsystemd-shared.la
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
@ -40,10 +40,10 @@ Index: systemd-218/Makefile.am
|
|||||||
systemd_getty_generator_SOURCES = \
|
systemd_getty_generator_SOURCES = \
|
||||||
src/getty-generator/getty-generator.c
|
src/getty-generator/getty-generator.c
|
||||||
|
|
||||||
Index: systemd-218/src/insserv-generator/Makefile
|
Index: systemd/src/insserv-generator/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ systemd-218/src/insserv-generator/Makefile
|
+++ systemd/src/insserv-generator/Makefile
|
||||||
@@ -0,0 +1,28 @@
|
@@ -0,0 +1,28 @@
|
||||||
+# This file is part of systemd.
|
+# This file is part of systemd.
|
||||||
+#
|
+#
|
||||||
@ -73,10 +73,10 @@ Index: systemd-218/src/insserv-generator/Makefile
|
|||||||
+ $(MAKE) -C .. clean
|
+ $(MAKE) -C .. clean
|
||||||
+
|
+
|
||||||
+.PHONY: all clean
|
+.PHONY: all clean
|
||||||
Index: systemd-218/src/insserv-generator/insserv-generator.c
|
Index: systemd/src/insserv-generator/insserv-generator.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ systemd-218/src/insserv-generator/insserv-generator.c
|
+++ systemd/src/insserv-generator/insserv-generator.c
|
||||||
@@ -0,0 +1,312 @@
|
@@ -0,0 +1,312 @@
|
||||||
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||||
+
|
+
|
||||||
@ -354,7 +354,7 @@ Index: systemd-218/src/insserv-generator/insserv-generator.c
|
|||||||
+
|
+
|
||||||
+ while ((de = readdir(d))) {
|
+ while ((de = readdir(d))) {
|
||||||
+ char *path = NULL;
|
+ char *path = NULL;
|
||||||
+ if (ignore_file(de->d_name))
|
+ if (hidden_file(de->d_name))
|
||||||
+ continue;
|
+ continue;
|
||||||
+
|
+
|
||||||
+ path = strjoin("/etc/insserv.conf.d/", de->d_name, NULL);
|
+ path = strjoin("/etc/insserv.conf.d/", de->d_name, NULL);
|
||||||
|
@ -1,143 +1,135 @@
|
|||||||
---
|
From: werner@suse.de
|
||||||
src/journal/catalog.c | 18 +++++++++++++++++-
|
Upstream: marked as openSUSE-specific fix originally, but may well
|
||||||
src/journal/journal-authenticate.c | 4 ++--
|
worth be to be sent upstream.
|
||||||
src/journal/journal-file.c | 2 +-
|
|
||||||
src/journal/journald-kmsg.c | 2 +-
|
|
||||||
src/journal/mmap-cache.c | 22 +++++++++++++++++++++-
|
|
||||||
5 files changed, 42 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
Index: systemd-218/src/journal/catalog.c
|
Original description:
|
||||||
|
(none)
|
||||||
|
|
||||||
|
Notes [jengelh@inai.de]:
|
||||||
|
MAP_NONBLOCK is documented (mmap(2) in man-pages-3.69+) to render
|
||||||
|
MAP_POPULATE ineffective. Why do we have it?
|
||||||
|
What is the rationale for MAP_STACK?
|
||||||
|
---
|
||||||
|
src/journal/catalog.c | 12 +++++++++++-
|
||||||
|
src/journal/journal-authenticate.c | 7 +++++--
|
||||||
|
src/journal/journald-kmsg.c | 3 ++-
|
||||||
|
src/journal/mmap-cache.c | 16 +++++++++++++++-
|
||||||
|
4 files changed, 33 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
Index: systemd/src/journal/catalog.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/journal/catalog.c
|
--- systemd.orig/src/journal/catalog.c
|
||||||
+++ systemd-218/src/journal/catalog.c
|
+++ systemd/src/journal/catalog.c
|
||||||
@@ -471,9 +471,19 @@ finish:
|
@@ -470,6 +470,10 @@ finish:
|
||||||
|
|
||||||
static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) {
|
static int open_mmap(const char *database, int *_fd, struct stat *_st, void **_p) {
|
||||||
const CatalogHeader *h;
|
const CatalogHeader *h;
|
||||||
+ static const struct {
|
+ static const unsigned int advice[] =
|
||||||
+ const int index;
|
+ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK};
|
||||||
+ int advise;
|
+ unsigned int n;
|
||||||
+ } advises[] = {
|
+ size_t psize;
|
||||||
+ {0,MADV_WILLNEED},
|
|
||||||
+ {1,MADV_SEQUENTIAL},
|
|
||||||
+ {2,MADV_DONTDUMP},
|
|
||||||
+ {3,MADV_DONTFORK}
|
|
||||||
+ };
|
|
||||||
int fd;
|
int fd;
|
||||||
void *p;
|
void *p;
|
||||||
struct stat st;
|
struct stat st;
|
||||||
+ size_t psize;
|
@@ -492,12 +496,18 @@ static int open_mmap(const char *databas
|
||||||
|
|
||||||
assert(_fd);
|
|
||||||
assert(_st);
|
|
||||||
@@ -493,11 +503,17 @@ static int open_mmap(const char *databas
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
- p = mmap(NULL, PAGE_ALIGN(st.st_size), PROT_READ, MAP_SHARED, fd, 0);
|
- p = mmap(NULL, PAGE_ALIGN(st.st_size), PROT_READ, MAP_SHARED, fd, 0);
|
||||||
+ psize = PAGE_ALIGN(st.st_size);
|
+ psize = PAGE_ALIGN(st.st_size);
|
||||||
+ p = mmap(NULL, psize, PROT_READ, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, 0);
|
+ p = mmap(NULL, psize, PROT_READ, MAP_SHARED | MAP_POPULATE |
|
||||||
|
+ MAP_NONBLOCK, fd, 0);
|
||||||
if (p == MAP_FAILED) {
|
if (p == MAP_FAILED) {
|
||||||
safe_close(fd);
|
safe_close(fd);
|
||||||
return -errno;
|
return -errno;
|
||||||
}
|
}
|
||||||
+ for (size_t n = 0; n < sizeof(advises) / sizeof(*advises); ++n) {
|
|
||||||
+ int r = madvise(p, psize, advises[n].advise);
|
|
||||||
+ if (r < 0)
|
|
||||||
+ log_warning("Failed to give advice about use of memory: %m");
|
|
||||||
+ }
|
|
||||||
|
|
||||||
|
+ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n)
|
||||||
|
+ if (madvise(p, psize, advice[n]) < 0)
|
||||||
|
+ log_warning("Failed to give advice about use of memory: %m");
|
||||||
|
+
|
||||||
h = p;
|
h = p;
|
||||||
if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 ||
|
if (memcmp(h->signature, CATALOG_SIGNATURE, sizeof(h->signature)) != 0 ||
|
||||||
Index: systemd-218/src/journal/journal-authenticate.c
|
le64toh(h->header_size) < sizeof(CatalogHeader) ||
|
||||||
|
Index: systemd/src/journal/journal-authenticate.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/journal/journal-authenticate.c
|
--- systemd.orig/src/journal/journal-authenticate.c
|
||||||
+++ systemd-218/src/journal/journal-authenticate.c
|
+++ systemd/src/journal/journal-authenticate.c
|
||||||
@@ -355,7 +355,7 @@ int journal_file_fss_load(JournalFile *f
|
@@ -355,7 +355,8 @@ int journal_file_fss_load(JournalFile *f
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
- m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED, fd, 0);
|
- m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED, fd, 0);
|
||||||
+ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ, MAP_SHARED|MAP_STACK, fd, 0);
|
+ m = mmap(NULL, PAGE_ALIGN(sizeof(FSSHeader)), PROT_READ,
|
||||||
|
+ MAP_SHARED | MAP_STACK, fd, 0);
|
||||||
if (m == MAP_FAILED) {
|
if (m == MAP_FAILED) {
|
||||||
m = NULL;
|
m = NULL;
|
||||||
r = -errno;
|
r = -errno;
|
||||||
@@ -399,7 +399,7 @@ int journal_file_fss_load(JournalFile *f
|
@@ -399,7 +400,9 @@ int journal_file_fss_load(JournalFile *f
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
- f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
|
- f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
|
||||||
+ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0);
|
+ f->fss_file = mmap(NULL, PAGE_ALIGN(f->fss_file_size),
|
||||||
|
+ PROT_READ | PROT_WRITE, MAP_SHARED | MAP_STACK,
|
||||||
|
+ fd, 0);
|
||||||
if (f->fss_file == MAP_FAILED) {
|
if (f->fss_file == MAP_FAILED) {
|
||||||
f->fss_file = NULL;
|
f->fss_file = NULL;
|
||||||
r = -errno;
|
r = -errno;
|
||||||
Index: systemd-218/src/journal/journal-file.c
|
Index: systemd/src/journal/journald-kmsg.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/journal/journal-file.c
|
--- systemd.orig/src/journal/journald-kmsg.c
|
||||||
+++ systemd-218/src/journal/journal-file.c
|
+++ systemd/src/journal/journald-kmsg.c
|
||||||
@@ -2559,7 +2559,7 @@ int journal_file_open(
|
@@ -454,7 +454,8 @@ int server_open_kernel_seqnum(Server *s)
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
- f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED, f->fd, 0);
|
|
||||||
+ f->header = mmap(NULL, PAGE_ALIGN(sizeof(Header)), prot_from_flags(flags), MAP_SHARED|MAP_STACK, f->fd, 0);
|
|
||||||
if (f->header == MAP_FAILED) {
|
|
||||||
f->header = NULL;
|
|
||||||
r = -errno;
|
|
||||||
Index: systemd-218/src/journal/journald-kmsg.c
|
|
||||||
===================================================================
|
|
||||||
--- systemd-218.orig/src/journal/journald-kmsg.c
|
|
||||||
+++ systemd-218/src/journal/journald-kmsg.c
|
|
||||||
@@ -455,7 +455,7 @@ int server_open_kernel_seqnum(Server *s)
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
- p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
|
- p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
|
||||||
+ p = mmap(NULL, sizeof(uint64_t), PROT_READ|PROT_WRITE, MAP_SHARED|MAP_STACK, fd, 0);
|
+ p = mmap(NULL, sizeof(uint64_t), PROT_READ | PROT_WRITE,
|
||||||
|
+ MAP_SHARED | MAP_STACK, fd, 0);
|
||||||
if (p == MAP_FAILED) {
|
if (p == MAP_FAILED) {
|
||||||
log_error_errno(errno, "Failed to map sequential number file, ignoring: %m");
|
log_error_errno(errno, "Failed to map sequential number file, ignoring: %m");
|
||||||
return 0;
|
return 0;
|
||||||
Index: systemd-218/src/journal/mmap-cache.c
|
Index: systemd/src/journal/mmap-cache.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/journal/mmap-cache.c
|
--- systemd.orig/src/journal/mmap-cache.c
|
||||||
+++ systemd-218/src/journal/mmap-cache.c
|
+++ systemd/src/journal/mmap-cache.c
|
||||||
@@ -446,6 +446,15 @@ static int add_mmap(
|
@@ -467,11 +467,14 @@ static int add_mmap(
|
||||||
void **ret,
|
struct stat *st,
|
||||||
void **release_cookie) {
|
void **ret) {
|
||||||
|
|
||||||
+ static const struct {
|
+ static const unsigned int advice[] =
|
||||||
+ const int index;
|
+ {MADV_WILLNEED, MADV_SEQUENTIAL, MADV_DONTDUMP, MADV_DONTFORK};
|
||||||
+ int vise;
|
|
||||||
+ } ad[] = {
|
|
||||||
+ {0, MADV_WILLNEED},
|
|
||||||
+ {1, MADV_SEQUENTIAL},
|
|
||||||
+ {2, MADV_DONTDUMP},
|
|
||||||
+ {3, MADV_DONTFORK}
|
|
||||||
+ };
|
|
||||||
uint64_t woffset, wsize;
|
uint64_t woffset, wsize;
|
||||||
Context *c;
|
Context *c;
|
||||||
FileDescriptor *f;
|
FileDescriptor *f;
|
||||||
@@ -488,7 +497,7 @@ static int add_mmap(
|
Window *w;
|
||||||
|
void *d;
|
||||||
|
+ unsigned int n;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
assert(m);
|
||||||
|
@@ -510,7 +513,8 @@ static int add_mmap(
|
||||||
}
|
}
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
- d = mmap(NULL, wsize, prot, MAP_SHARED, fd, woffset);
|
- d = mmap(NULL, wsize, prot, MAP_SHARED, fd, woffset);
|
||||||
+ d = mmap(NULL, wsize, prot, MAP_SHARED|MAP_POPULATE|MAP_NONBLOCK, fd, woffset);
|
+ d = mmap(NULL, wsize, prot, MAP_SHARED | MAP_POPULATE |
|
||||||
|
+ MAP_NONBLOCK, fd, woffset);
|
||||||
if (d != MAP_FAILED)
|
if (d != MAP_FAILED)
|
||||||
break;
|
break;
|
||||||
if (errno != ENOMEM)
|
if (errno != ENOMEM)
|
||||||
@@ -501,6 +510,17 @@ static int add_mmap(
|
@@ -523,6 +527,16 @@ static int add_mmap(
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ for (size_t n = 0; n < sizeof(ad) / sizeof(*ad); ++n) {
|
+ for (n = 0; n < sizeof(advice) / sizeof(*advice); ++n) {
|
||||||
+ if (ad[n].vise == MADV_DONTFORK) {
|
+ if (advice[n] == MADV_DONTFORK) {
|
||||||
+ int flags = fcntl(fd, F_GETFD);
|
+ int flags = fcntl(fd, F_GETFD);
|
||||||
+ if (flags < 0 || !(flags & FD_CLOEXEC))
|
+ if (flags < 0 || !(flags & FD_CLOEXEC))
|
||||||
+ continue;
|
+ continue;
|
||||||
+ }
|
+ }
|
||||||
+ r = madvise(d, wsize, ad[n].vise);
|
+ if (madvise(d, wsize, advice[n]) < 0)
|
||||||
+ if (r < 0)
|
|
||||||
+ log_warning("Failed to give advice about use of memory: %m");
|
+ log_warning("Failed to give advice about use of memory: %m");
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
@ -1,13 +1,18 @@
|
|||||||
|
From: werner@suse.de
|
||||||
|
Date: Tue Jan 20 11:33:59 UTC 2015
|
||||||
|
|
||||||
---
|
---
|
||||||
src/locale/kbd-model-map | 13 +++++++++++++
|
src/locale/kbd-model-map | 13 +++++++++++++
|
||||||
1 file changed, 13 insertions(+)
|
1 file changed, 13 insertions(+)
|
||||||
|
|
||||||
--- src/locale/kbd-model-map
|
Index: systemd/src/locale/kbd-model-map
|
||||||
+++ src/locale/kbd-model-map 2015-01-20 11:31:38.357518811 +0000
|
===================================================================
|
||||||
@@ -63,3 +63,16 @@ by by,us pc105 - terminate:ctrl_alt_
|
--- systemd.orig/src/locale/kbd-model-map
|
||||||
il il pc105 - terminate:ctrl_alt_bksp
|
+++ systemd/src/locale/kbd-model-map
|
||||||
kazakh kz,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
@@ -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
|
lt lt pc105 - terminate:ctrl_alt_bksp
|
||||||
|
khmer kh,us pc105 - terminate:ctrl_alt_bksp
|
||||||
+# Additional layouts offered by YaST
|
+# Additional layouts offered by YaST
|
||||||
+Pl02 pl pc105 - terminate:ctrl_alt_bksp
|
+Pl02 pl pc105 - terminate:ctrl_alt_bksp
|
||||||
+arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
|
+arabic ara,us pc105 - terminate:ctrl_alt_bksp,grp:shift_toggle
|
||||||
|
@ -1,14 +1,13 @@
|
|||||||
---
|
---
|
||||||
Makefile.am | 4 ++++
|
Makefile.am | 4 ++++
|
||||||
Makefile.in | 2 +-
|
|
||||||
configure.ac | 4 ----
|
configure.ac | 4 ----
|
||||||
3 files changed, 5 insertions(+), 5 deletions(-)
|
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
Index: systemd-218/Makefile.am
|
Index: systemd/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/Makefile.am
|
--- systemd.orig/Makefile.am
|
||||||
+++ systemd-218/Makefile.am
|
+++ systemd/Makefile.am
|
||||||
@@ -4695,6 +4695,10 @@ systemd_cryptsetup_CFLAGS = \
|
@@ -4789,6 +4789,10 @@ systemd_cryptsetup_CFLAGS = \
|
||||||
$(AM_CFLAGS) \
|
$(AM_CFLAGS) \
|
||||||
$(LIBCRYPTSETUP_CFLAGS)
|
$(LIBCRYPTSETUP_CFLAGS)
|
||||||
|
|
||||||
@ -19,23 +18,10 @@ Index: systemd-218/Makefile.am
|
|||||||
systemd_cryptsetup_LDADD = \
|
systemd_cryptsetup_LDADD = \
|
||||||
libsystemd-label.la \
|
libsystemd-label.la \
|
||||||
libudev-internal.la \
|
libudev-internal.la \
|
||||||
Index: systemd-218/Makefile.in
|
Index: systemd/configure.ac
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/Makefile.in
|
--- systemd.orig/configure.ac
|
||||||
+++ systemd-218/Makefile.in
|
+++ systemd/configure.ac
|
||||||
@@ -11109,7 +11109,7 @@ src/cryptsetup/systemd_cryptsetup-crypts
|
|
||||||
|
|
||||||
systemd-cryptsetup$(EXEEXT): $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_DEPENDENCIES) $(EXTRA_systemd_cryptsetup_DEPENDENCIES)
|
|
||||||
@rm -f systemd-cryptsetup$(EXEEXT)
|
|
||||||
- $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDADD) $(LIBS)
|
|
||||||
+ $(AM_V_CCLD)$(systemd_cryptsetup_LINK) $(systemd_cryptsetup_OBJECTS) $(systemd_cryptsetup_LDFLAGS) $(systemd_cryptsetup_LDADD) $(LIBS)
|
|
||||||
src/cryptsetup/cryptsetup-generator.$(OBJEXT): \
|
|
||||||
src/cryptsetup/$(am__dirstamp) \
|
|
||||||
src/cryptsetup/$(DEPDIR)/$(am__dirstamp)
|
|
||||||
Index: systemd-218/configure.ac
|
|
||||||
===================================================================
|
|
||||||
--- systemd-218.orig/configure.ac
|
|
||||||
+++ systemd-218/configure.ac
|
|
||||||
@@ -206,10 +206,6 @@ AS_CASE([$CC], [*clang*],
|
@@ -206,10 +206,6 @@ AS_CASE([$CC], [*clang*],
|
||||||
-Wno-gnu-variable-sized-type-not-at-end \
|
-Wno-gnu-variable-sized-type-not-at-end \
|
||||||
])])
|
])])
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
---
|
---
|
||||||
src/fstab-generator/fstab-generator.c | 46 +++++++++++++++++++++++++++++++++-
|
src/fstab-generator/fstab-generator.c | 45 +++++++++++++++++++++++++++++++++-
|
||||||
1 file changed, 45 insertions(+), 1 deletion(-)
|
1 file changed, 44 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
Index: systemd-218/src/fstab-generator/fstab-generator.c
|
Index: systemd/src/fstab-generator/fstab-generator.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/fstab-generator/fstab-generator.c
|
--- systemd.orig/src/fstab-generator/fstab-generator.c
|
||||||
+++ systemd-218/src/fstab-generator/fstab-generator.c
|
+++ systemd/src/fstab-generator/fstab-generator.c
|
||||||
@@ -47,6 +47,50 @@ static char *arg_usr_what = NULL;
|
@@ -48,6 +48,49 @@ static char *arg_usr_what = NULL;
|
||||||
static char *arg_usr_fstype = NULL;
|
static char *arg_usr_fstype = NULL;
|
||||||
static char *arg_usr_options = NULL;
|
static char *arg_usr_options = NULL;
|
||||||
|
|
||||||
@ -53,11 +53,10 @@ Index: systemd-218/src/fstab-generator/fstab-generator.c
|
|||||||
+ return 1;
|
+ return 1;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+
|
static int add_swap(
|
||||||
static int mount_find_pri(struct mntent *me, int *ret) {
|
const char *what,
|
||||||
char *end, *opt;
|
struct mntent *me,
|
||||||
unsigned long r;
|
@@ -118,7 +161,7 @@ static int add_swap(
|
||||||
@@ -141,7 +185,7 @@ static int add_swap(
|
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -4,23 +4,23 @@
|
|||||||
units/rescue.service.in | 3 ++-
|
units/rescue.service.in | 3 ++-
|
||||||
3 files changed, 6 insertions(+), 2 deletions(-)
|
3 files changed, 6 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
Index: systemd-218/units/console-shell.service.m4.in
|
Index: systemd/units/console-shell.service.m4.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/units/console-shell.service.m4.in
|
--- systemd.orig/units/console-shell.service.m4.in
|
||||||
+++ systemd-218/units/console-shell.service.m4.in
|
+++ systemd/units/console-shell.service.m4.in
|
||||||
@@ -17,6 +17,8 @@ Before=getty.target
|
@@ -17,6 +17,8 @@ Before=getty.target
|
||||||
[Service]
|
[Service]
|
||||||
Environment=HOME=/root
|
Environment=HOME=/root
|
||||||
WorkingDirectory=/root
|
WorkingDirectory=/root
|
||||||
+ExecStartPre=-/usr/bin/plymouth quit
|
+ExecStartPre=-/usr/bin/plymouth quit
|
||||||
+ExecStartPre=-/usr/bin/plymouth --wait
|
+ExecStartPre=-/usr/bin/plymouth --wait
|
||||||
ExecStart=-/usr/sbin/sulogin
|
ExecStart=-@SULOGIN@
|
||||||
ExecStopPost=-@SYSTEMCTL@ poweroff
|
ExecStopPost=-@SYSTEMCTL@ poweroff
|
||||||
Type=idle
|
Type=idle
|
||||||
Index: systemd-218/units/emergency.service.in
|
Index: systemd/units/emergency.service.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/units/emergency.service.in
|
--- systemd.orig/units/emergency.service.in
|
||||||
+++ systemd-218/units/emergency.service.in
|
+++ systemd/units/emergency.service.in
|
||||||
@@ -17,7 +17,8 @@ Before=shutdown.target
|
@@ -17,7 +17,8 @@ Before=shutdown.target
|
||||||
[Service]
|
[Service]
|
||||||
Environment=HOME=/root
|
Environment=HOME=/root
|
||||||
@ -29,12 +29,12 @@ Index: systemd-218/units/emergency.service.in
|
|||||||
+ExecStartPre=-/usr/bin/plymouth quit
|
+ExecStartPre=-/usr/bin/plymouth quit
|
||||||
+ExecStartPre=-/usr/bin/plymouth --wait
|
+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\\ntry again to boot into default mode.'
|
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 "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default"
|
ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default"
|
||||||
Type=idle
|
Type=idle
|
||||||
Index: systemd-218/units/rescue.service.in
|
Index: systemd/units/rescue.service.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/units/rescue.service.in
|
--- systemd.orig/units/rescue.service.in
|
||||||
+++ systemd-218/units/rescue.service.in
|
+++ systemd/units/rescue.service.in
|
||||||
@@ -16,7 +16,8 @@ Before=shutdown.target
|
@@ -16,7 +16,8 @@ Before=shutdown.target
|
||||||
[Service]
|
[Service]
|
||||||
Environment=HOME=/root
|
Environment=HOME=/root
|
||||||
@ -43,5 +43,5 @@ Index: systemd-218/units/rescue.service.in
|
|||||||
+ExecStartPre=-/usr/bin/plymouth quit
|
+ExecStartPre=-/usr/bin/plymouth quit
|
||||||
+ExecStartPre=-/usr/bin/plymouth --wait
|
+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.'
|
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 "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default"
|
ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default"
|
||||||
Type=idle
|
Type=idle
|
||||||
|
@ -6,11 +6,11 @@ This solves the bug bnc#868439
|
|||||||
man/systemctl.xml | 4 +++-
|
man/systemctl.xml | 4 +++-
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
Index: systemd-218/man/systemctl.xml
|
Index: systemd/man/systemctl.xml
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/man/systemctl.xml
|
--- systemd.orig/man/systemctl.xml
|
||||||
+++ systemd-218/man/systemctl.xml
|
+++ systemd/man/systemctl.xml
|
||||||
@@ -446,7 +446,7 @@ along with systemd; If not, see <http://
|
@@ -445,7 +445,7 @@ along with systemd; If not, see <http://
|
||||||
<term><option>--force</option></term>
|
<term><option>--force</option></term>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -19,10 +19,10 @@ Index: systemd-218/man/systemctl.xml
|
|||||||
any existing conflicting symlinks.</para>
|
any existing conflicting symlinks.</para>
|
||||||
|
|
||||||
<para>When used with <command>halt</command>,
|
<para>When used with <command>halt</command>,
|
||||||
@@ -1187,6 +1187,8 @@ kobject-uevent 1 systemd-udevd-kernel.so
|
@@ -1215,6 +1215,8 @@ kobject-uevent 1 systemd-udevd-kernel.so
|
||||||
<listitem>
|
<para>Return the default target to boot into. This returns
|
||||||
<para>Set the default target to boot into. Command links
|
the target unit name <filename>default.target</filename>
|
||||||
<filename>default.target</filename> to the given unit.</para>
|
is aliased (symlinked) to.</para>
|
||||||
+ <para>If combined with <option>--force</option>, override
|
+ <para>If combined with <option>--force</option>, override
|
||||||
+ an already existing symlink for the default target.</para>
|
+ an already existing symlink for the default target.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
3
systemd-218.g1050.tar.xz
Normal file
3
systemd-218.g1050.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b1bccbdd9b6832dafaed409ad0c8c076a7aaaf706615ecbb905d9def291b1cb0
|
||||||
|
size 3358908
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:1b0768b53b6c6d813a93a4b8fe1f80cf53561b09075010a97c7aa08eee3fd59b
|
|
||||||
size 3782276
|
|
@ -1,29 +1,27 @@
|
|||||||
---
|
---
|
||||||
man/tmpfiles.d.xml | 5 +++++
|
man/tmpfiles.d.xml | 3 +++
|
||||||
src/tmpfiles/tmpfiles.c | 42 ++++++++++++++++++++++++++++++++++++++----
|
src/tmpfiles/tmpfiles.c | 48 ++++++++++++++++++++++++++++++++++++++++--------
|
||||||
2 files changed, 43 insertions(+), 4 deletions(-)
|
2 files changed, 43 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
Index: systemd-218/man/tmpfiles.d.xml
|
Index: systemd/man/tmpfiles.d.xml
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/man/tmpfiles.d.xml
|
--- systemd.orig/man/tmpfiles.d.xml
|
||||||
+++ systemd-218/man/tmpfiles.d.xml
|
+++ systemd/man/tmpfiles.d.xml
|
||||||
@@ -545,6 +545,11 @@ r! /tmp/.X[0-9]*-lock</programlisting>
|
@@ -489,6 +489,9 @@
|
||||||
and <varname>w</varname> may be used to
|
<varname>f</varname>, <varname>F</varname>, and
|
||||||
specify a short string that is written to the
|
<varname>w</varname> may be used to specify a short string that
|
||||||
file, suffixed by a newline. For
|
is written to the file, suffixed by a newline. For
|
||||||
+ <varname>x</varname>, <varname>X</varname>,
|
+ <varname>x</varname>, <varname>X</varname>, a comma separated list of
|
||||||
+ a comma separated list of usernames. If given,
|
+ usernames. If given, only paths belonging to these users will be excluded
|
||||||
+ only paths belonging to these users will be
|
+ during directory cleanup. Ignored for all other lines. For
|
||||||
+ excluded during directory cleanup.
|
<varname>C</varname>, specifies the source file or
|
||||||
+ Ignored for all other lines. For
|
directory. For <varname>t</varname> determines extended
|
||||||
<varname>C</varname>, specifies the source file
|
attributes to be set. For <varname>a</varname> determines
|
||||||
or directory. For <varname>t</varname> determines
|
Index: systemd/src/tmpfiles/tmpfiles.c
|
||||||
extended attributes to be set. Ignored for all other lines.</para>
|
|
||||||
Index: systemd-218/src/tmpfiles/tmpfiles.c
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/tmpfiles/tmpfiles.c
|
--- systemd.orig/src/tmpfiles/tmpfiles.c
|
||||||
+++ systemd-218/src/tmpfiles/tmpfiles.c
|
+++ systemd/src/tmpfiles/tmpfiles.c
|
||||||
@@ -278,6 +278,7 @@ static int dir_cleanup(
|
@@ -345,6 +345,7 @@ static int dir_cleanup(
|
||||||
struct timespec times[2];
|
struct timespec times[2];
|
||||||
bool deleted = false;
|
bool deleted = false;
|
||||||
int r = 0;
|
int r = 0;
|
||||||
@ -31,52 +29,57 @@ Index: systemd-218/src/tmpfiles/tmpfiles.c
|
|||||||
|
|
||||||
while ((dent = readdir(d))) {
|
while ((dent = readdir(d))) {
|
||||||
struct stat s;
|
struct stat s;
|
||||||
@@ -322,11 +323,44 @@ static int dir_cleanup(
|
@@ -395,14 +396,45 @@ static int dir_cleanup(
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Is there an item configured for this path? */
|
/* Is there an item configured for this path? */
|
||||||
- if (hashmap_get(items, sub_path))
|
- if (hashmap_get(items, sub_path)) {
|
||||||
|
- log_debug("Ignoring \"%s\": a separate entry exists.", sub_path);
|
||||||
- continue;
|
- 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 = hashmap_get(items, sub_path);
|
||||||
|
+ if (!found) {
|
||||||
- if (find_glob(globs, sub_path))
|
+ found_glob = true;
|
||||||
- continue;
|
+ found = find_glob(globs, sub_path);
|
||||||
+ if (!found)
|
|
||||||
+ found = find_glob(globs, sub_path);
|
|
||||||
+
|
|
||||||
+ if (found) {
|
|
||||||
+ /* evaluate username arguments in ignore statements */
|
|
||||||
+ if (found->type == IGNORE_PATH || found->type == IGNORE_DIRECTORY_PATH) {
|
|
||||||
+ if (!found->argument) {
|
|
||||||
+ continue;
|
|
||||||
+ } else {
|
|
||||||
+ struct passwd *pw;
|
|
||||||
+ char *userfound = NULL, *args = strdup(found->argument);
|
|
||||||
+ bool match = false;
|
|
||||||
+ uid_t uid = -1;
|
|
||||||
+
|
|
||||||
+ while ((userfound = strsep(&args, ","))) {
|
|
||||||
+ pw = getpwnam(userfound);
|
|
||||||
+
|
|
||||||
+ if (!pw)
|
|
||||||
+ log_error("Unknown user '%s' in ignore statement.", userfound);
|
|
||||||
+ else {
|
|
||||||
+ uid = pw->pw_uid;
|
|
||||||
+ if (s.st_uid == uid) {
|
|
||||||
+ match = true;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ if (match) {
|
|
||||||
+ found = NULL;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
|
+ if (found) {
|
||||||
|
+ struct passwd *pw;
|
||||||
|
+ char *userfound = NULL, *args;
|
||||||
|
+ bool match = false;
|
||||||
|
+ uid_t uid = -1;
|
||||||
|
+
|
||||||
|
+ /* evaluate username arguments in ignore statements */
|
||||||
|
+ if ((found->type != IGNORE_PATH && found->type != IGNORE_DIRECTORY_PATH) ||
|
||||||
|
+ !found->argument) {
|
||||||
|
+ if (found_glob)
|
||||||
|
+ log_debug("Ignoring \"%s\": a separate glob exists.", sub_path);
|
||||||
|
+ else
|
||||||
|
+ log_debug("Ignoring \"%s\": a separate entry exists.", sub_path);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ args = strdup(found->argument);
|
||||||
|
+ assert_se(args != NULL);
|
||||||
|
+ while ((userfound = strsep(&args, ",")) != NULL) {
|
||||||
|
+ pw = getpwnam(userfound);
|
||||||
|
+ if (pw == NULL) {
|
||||||
|
+ log_error("Unknown user '%s' in ignore statement.", userfound);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ uid = pw->pw_uid;
|
||||||
|
+ if (s.st_uid == uid) {
|
||||||
|
+ match = true;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ if (match) {
|
||||||
|
+ found = NULL;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
if (S_ISDIR(s.st_mode)) {
|
if (S_ISDIR(s.st_mode)) {
|
||||||
|
|
||||||
|
@ -3,12 +3,12 @@
|
|||||||
src/shared/def.h | 2 +-
|
src/shared/def.h | 2 +-
|
||||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
Index: systemd-218/src/libsystemd/sd-bus/sd-bus.c
|
Index: systemd/src/libsystemd/sd-bus/sd-bus.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/libsystemd/sd-bus/sd-bus.c
|
--- systemd.orig/src/libsystemd/sd-bus/sd-bus.c
|
||||||
+++ systemd-218/src/libsystemd/sd-bus/sd-bus.c
|
+++ systemd/src/libsystemd/sd-bus/sd-bus.c
|
||||||
@@ -791,8 +791,8 @@ static int parse_container_unix_address(
|
@@ -809,8 +809,8 @@ static int parse_container_unix_address(
|
||||||
machine = NULL;
|
b->nspid = 0;
|
||||||
|
|
||||||
b->sockaddr.un.sun_family = AF_UNIX;
|
b->sockaddr.un.sun_family = AF_UNIX;
|
||||||
- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path));
|
- strncpy(b->sockaddr.un.sun_path, "/var/run/dbus/system_bus_socket", sizeof(b->sockaddr.un.sun_path));
|
||||||
@ -18,10 +18,10 @@ Index: systemd-218/src/libsystemd/sd-bus/sd-bus.c
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Index: systemd-218/src/shared/def.h
|
Index: systemd/src/shared/def.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-218.orig/src/shared/def.h
|
--- systemd.orig/src/shared/def.h
|
||||||
+++ systemd-218/src/shared/def.h
|
+++ systemd/src/shared/def.h
|
||||||
@@ -61,7 +61,7 @@
|
@@ -61,7 +61,7 @@
|
||||||
"/usr/lib/kbd/keymaps/\0"
|
"/usr/lib/kbd/keymaps/\0"
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de
|
||||||
|
|
||||||
|
- Update to systemd v218-1050-g38ab096
|
||||||
|
- Remove patches
|
||||||
|
use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it)
|
||||||
|
- Reinstate and improve (remove huge indents from)
|
||||||
|
tty-ask-password-agent-on-console.patch,
|
||||||
|
0014-journald-with-journaling-FS.patch, rootsymlink_generator.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com
|
Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com
|
||||||
|
|
||||||
@ -27,8 +37,6 @@ Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de
|
|||||||
N=no longer applies to source nor is it deemed needed;
|
N=no longer applies to source nor is it deemed needed;
|
||||||
K=killed: no longer applicable and too complex to resolve:
|
K=killed: no longer applicable and too complex to resolve:
|
||||||
----
|
----
|
||||||
G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch
|
|
||||||
G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch
|
|
||||||
K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch
|
K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch
|
||||||
K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch
|
K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch
|
||||||
K handle-SYSTEMCTL_OPTIONS-environment-variable.patch
|
K handle-SYSTEMCTL_OPTIONS-environment-variable.patch
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package systemd-mini
|
# spec file for package systemd-mini
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
Name: systemd-mini
|
Name: systemd-mini
|
||||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
Version: 218
|
Version: 218.g1050
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A System and Session Manager
|
Summary: A System and Session Manager
|
||||||
License: LGPL-2.1+
|
License: LGPL-2.1+
|
||||||
@ -55,14 +55,18 @@ Provides: %{real} = %{version}-%{release}
|
|||||||
|
|
||||||
BuildRequires: acl
|
BuildRequires: acl
|
||||||
BuildRequires: audit-devel
|
BuildRequires: audit-devel
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: automake
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gperf
|
BuildRequires: gperf
|
||||||
|
BuildRequires: gtk-doc
|
||||||
BuildRequires: intltool
|
BuildRequires: intltool
|
||||||
BuildRequires: libacl-devel
|
BuildRequires: libacl-devel
|
||||||
BuildRequires: libcap-devel
|
BuildRequires: libcap-devel
|
||||||
BuildRequires: libkmod-devel
|
BuildRequires: libkmod-devel
|
||||||
BuildRequires: libsepol-devel
|
BuildRequires: libsepol-devel
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
|
BuildRequires: libtool
|
||||||
BuildRequires: pam-devel
|
BuildRequires: pam-devel
|
||||||
BuildRequires: config(suse-module-tools)
|
BuildRequires: config(suse-module-tools)
|
||||||
%if 0%{?suse_version} > 1310
|
%if 0%{?suse_version} > 1310
|
||||||
@ -139,7 +143,10 @@ Conflicts: filesystem < 11.5
|
|||||||
Conflicts: mkinitrd < 2.7.0
|
Conflicts: mkinitrd < 2.7.0
|
||||||
Obsoletes: systemd-analyze < 201
|
Obsoletes: systemd-analyze < 201
|
||||||
Provides: systemd-analyze = %{version}
|
Provides: systemd-analyze = %{version}
|
||||||
Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz
|
|
||||||
|
#Git-Clone: git://anongit.freedesktop.org/systemd/systemd
|
||||||
|
#Snapshot: v218-1050-g38ab096
|
||||||
|
Source0: systemd-%{version}.tar.xz
|
||||||
%if ! 0%{?bootstrap}
|
%if ! 0%{?bootstrap}
|
||||||
Source1: systemd-rpmlintrc
|
Source1: systemd-rpmlintrc
|
||||||
%else
|
%else
|
||||||
@ -196,8 +203,6 @@ Patch24: handle-etc-HOSTNAME.patch
|
|||||||
Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch
|
Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch
|
||||||
# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind
|
# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind
|
||||||
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
||||||
# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin
|
|
||||||
Patch46: use-usr-sbin-sulogin-for-emergency-service.patch
|
|
||||||
# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
|
# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
|
||||||
Patch84: make-emergency.service-conflict-with-syslog.socket.patch
|
Patch84: make-emergency.service-conflict-with-syslog.socket.patch
|
||||||
# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||||
@ -252,6 +257,7 @@ Patch338: vhangup-on-all-consoles.patch
|
|||||||
Patch345: shut-up-rpmlint-on-var-log-journal.patch
|
Patch345: shut-up-rpmlint-on-var-log-journal.patch
|
||||||
# PATCH-FIX-SUSE
|
# PATCH-FIX-SUSE
|
||||||
Patch352: set-and-use-default-logconsole.patch
|
Patch352: set-and-use-default-logconsole.patch
|
||||||
|
Patch362: tty-ask-password-agent-on-console.patch
|
||||||
# PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357)
|
# PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357)
|
||||||
Patch366: tomcat6-var-lock-subsys-legacy.patch
|
Patch366: tomcat6-var-lock-subsys-legacy.patch
|
||||||
# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162)
|
# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162)
|
||||||
@ -260,7 +266,6 @@ Patch368: 0001-let-systemctl-completion-ignore-at-names.patch
|
|||||||
Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch
|
Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch
|
||||||
# PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612)
|
# PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612)
|
||||||
Patch430: 0001-bnc888612-logind-polkit-acpi.patch
|
Patch430: 0001-bnc888612-logind-polkit-acpi.patch
|
||||||
# PATCH-FIX-SUSE added at 2014/10/24
|
|
||||||
Patch475: journald-advice-about-use-of-memory.patch
|
Patch475: journald-advice-about-use-of-memory.patch
|
||||||
# PATCH-FIX-SUSE added at 2014/11/05
|
# PATCH-FIX-SUSE added at 2014/11/05
|
||||||
Patch490: watch_resolv.conf_for_become_changed.patch
|
Patch490: watch_resolv.conf_for_become_changed.patch
|
||||||
@ -569,7 +574,7 @@ Requires(postun): systemd
|
|||||||
systemd-journal-gatewayd serves journal events over the network using HTTP.
|
systemd-journal-gatewayd serves journal events over the network using HTTP.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n systemd-%{version}
|
%setup -q -n systemd
|
||||||
echo "Checking whether upstream rpm macros changed..."
|
echo "Checking whether upstream rpm macros changed..."
|
||||||
diff -au "%{S:10}" src/core/macros.systemd.in
|
diff -au "%{S:10}" src/core/macros.systemd.in
|
||||||
|
|
||||||
@ -599,7 +604,6 @@ cp %{SOURCE7} m4/
|
|||||||
%patch40 -p1
|
%patch40 -p1
|
||||||
%patch41 -p1
|
%patch41 -p1
|
||||||
%patch42 -p1
|
%patch42 -p1
|
||||||
%patch46 -p1
|
|
||||||
%patch84 -p1
|
%patch84 -p1
|
||||||
%patch86 -p1
|
%patch86 -p1
|
||||||
%patch90 -p1
|
%patch90 -p1
|
||||||
@ -627,17 +631,18 @@ cp %{SOURCE7} m4/
|
|||||||
%patch338 -p1
|
%patch338 -p1
|
||||||
%patch345 -p1
|
%patch345 -p1
|
||||||
%patch352 -p1
|
%patch352 -p1
|
||||||
|
%patch362 -p1
|
||||||
%patch366 -p1
|
%patch366 -p1
|
||||||
%patch368 -p1
|
%patch368 -p1
|
||||||
%patch386 -p1
|
%patch386 -p1
|
||||||
%patch430 -p1
|
%patch430 -p1
|
||||||
|
%patch475 -p1
|
||||||
%ifarch %arm
|
%ifarch %arm
|
||||||
%patch38 -p1
|
%patch38 -p1
|
||||||
%endif
|
%endif
|
||||||
%patch475 -p1
|
|
||||||
%patch490 -p1
|
%patch490 -p1
|
||||||
%patch520 -p1
|
%patch520 -p1
|
||||||
%patch521 -p0
|
%patch521 -p1
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
@ -744,7 +749,7 @@ cflags ()
|
|||||||
esac
|
esac
|
||||||
set +o noclobber
|
set +o noclobber
|
||||||
}
|
}
|
||||||
autoreconf -fiv
|
./autogen.sh
|
||||||
# prevent pre-generated and distributed files from re-building
|
# prevent pre-generated and distributed files from re-building
|
||||||
find . -name "*.[1-8]" -exec touch '{}' '+';
|
find . -name "*.[1-8]" -exec touch '{}' '+';
|
||||||
export V=e
|
export V=e
|
||||||
@ -810,19 +815,9 @@ make %{?_smp_mflags} update-man-list man
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
# Use refreshed manual pages
|
%if !0%{?bootstrap}
|
||||||
for man in man/*.[0-9]
|
cp man/man[0-9]/*.[0-9] man/
|
||||||
do
|
%endif
|
||||||
section=${man##*.}
|
|
||||||
test -d man/man${section} || continue
|
|
||||||
new=man/man${section}/${man##*/}
|
|
||||||
if test -s $new -a $new -nt $man
|
|
||||||
then
|
|
||||||
cp -p $new $man
|
|
||||||
else
|
|
||||||
sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
make install DESTDIR="%buildroot"
|
make install DESTDIR="%buildroot"
|
||||||
|
|
||||||
# move to %{_lib}
|
# move to %{_lib}
|
||||||
@ -963,15 +958,6 @@ EOF
|
|||||||
install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/
|
install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/
|
||||||
ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/
|
ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/
|
||||||
|
|
||||||
%if ! 0%{?bootstrap}
|
|
||||||
%if %{without python}
|
|
||||||
for man in systemd.directives.7 systemd.index.7
|
|
||||||
do
|
|
||||||
install -m 0644 man/$man %{buildroot}%{_mandir}/man7/
|
|
||||||
done
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed
|
||||||
|
|
||||||
@ -1295,6 +1281,7 @@ exit 0
|
|||||||
%{_bindir}/systemd-path
|
%{_bindir}/systemd-path
|
||||||
%{_bindir}/systemd-sysusers
|
%{_bindir}/systemd-sysusers
|
||||||
%{_bindir}/systemd-notify
|
%{_bindir}/systemd-notify
|
||||||
|
%{_bindir}/systemd-hwdb
|
||||||
%{_bindir}/systemd-run
|
%{_bindir}/systemd-run
|
||||||
%{_bindir}/systemd-journalctl
|
%{_bindir}/systemd-journalctl
|
||||||
%{_bindir}/journalctl
|
%{_bindir}/journalctl
|
||||||
@ -1388,7 +1375,6 @@ exit 0
|
|||||||
%{_prefix}/lib/sysusers.d/
|
%{_prefix}/lib/sysusers.d/
|
||||||
/%{_lib}/security/pam_systemd.so
|
/%{_lib}/security/pam_systemd.so
|
||||||
%config /etc/pam.d/systemd-user
|
%config /etc/pam.d/systemd-user
|
||||||
%_libdir/libnss_resolve.so.2
|
|
||||||
|
|
||||||
%dir %{_libexecdir}/modules-load.d
|
%dir %{_libexecdir}/modules-load.d
|
||||||
%dir %{_sysconfdir}/modules-load.d
|
%dir %{_sysconfdir}/modules-load.d
|
||||||
@ -1419,7 +1405,6 @@ exit 0
|
|||||||
%if !0%{?bootstrap}
|
%if !0%{?bootstrap}
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf
|
%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf
|
||||||
%endif
|
%endif
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/resolved.conf
|
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf
|
%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/system.conf
|
%config(noreplace) %{_sysconfdir}/systemd/system.conf
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/logind.conf
|
%config(noreplace) %{_sysconfdir}/systemd/logind.conf
|
||||||
@ -1428,7 +1413,7 @@ exit 0
|
|||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf
|
||||||
@ -1447,7 +1432,7 @@ exit 0
|
|||||||
|
|
||||||
%{_datadir}/factory/
|
%{_datadir}/factory/
|
||||||
%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
|
%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
|
||||||
@ -1456,6 +1441,7 @@ exit 0
|
|||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
|
||||||
%dir %{_datadir}/polkit-1
|
%dir %{_datadir}/polkit-1
|
||||||
%dir %{_datadir}/polkit-1/actions
|
%dir %{_datadir}/polkit-1/actions
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy
|
||||||
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
|
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
|
||||||
%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
|
%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
|
||||||
%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
|
%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
|
||||||
@ -1505,9 +1491,6 @@ exit 0
|
|||||||
%{_datadir}/zsh/site-functions/*
|
%{_datadir}/zsh/site-functions/*
|
||||||
%ghost %{_localstatedir}/lib/systemd/backlight
|
%ghost %{_localstatedir}/lib/systemd/backlight
|
||||||
%ghost %{_localstatedir}/lib/systemd/random-seed
|
%ghost %{_localstatedir}/lib/systemd/random-seed
|
||||||
%if 0%{?suse_version} > 1310
|
|
||||||
%{_datadir}/pkgconfig/systemd.pc
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if ! 0%{?bootstrap}
|
%if ! 0%{?bootstrap}
|
||||||
%files bash-completion -f files.completion
|
%files bash-completion -f files.completion
|
||||||
@ -1531,9 +1514,7 @@ exit 0
|
|||||||
%{_includedir}/systemd/sd-journal.h
|
%{_includedir}/systemd/sd-journal.h
|
||||||
%{_includedir}/systemd/sd-messages.h
|
%{_includedir}/systemd/sd-messages.h
|
||||||
%{_includedir}/systemd/_sd-common.h
|
%{_includedir}/systemd/_sd-common.h
|
||||||
%if 0%{?suse_version} <= 1310
|
%{_libdir}/pkgconfig/systemd.pc
|
||||||
%{_datadir}/pkgconfig/systemd.pc
|
|
||||||
%endif
|
|
||||||
%{_libdir}/pkgconfig/libsystemd.pc
|
%{_libdir}/pkgconfig/libsystemd.pc
|
||||||
%{_libdir}/pkgconfig/libsystemd-daemon.pc
|
%{_libdir}/pkgconfig/libsystemd-daemon.pc
|
||||||
%{_libdir}/pkgconfig/libsystemd-login.pc
|
%{_libdir}/pkgconfig/libsystemd-login.pc
|
||||||
|
@ -5,20 +5,22 @@ Subject: systemd tmp safe defaults
|
|||||||
Fix regression in the default for tmp auto-deletion (FATE#314974).
|
Fix regression in the default for tmp auto-deletion (FATE#314974).
|
||||||
SUSE policy is to not clean /tmp by default.
|
SUSE policy is to not clean /tmp by default.
|
||||||
---
|
---
|
||||||
tmpfiles.d/tmp.conf | 5 +++--
|
tmpfiles.d/tmp.conf | 5 +++--
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
--- systemd-206.orig/tmpfiles.d/tmp.conf
|
Index: systemd/tmpfiles.d/tmp.conf
|
||||||
+++ systemd-206/tmpfiles.d/tmp.conf
|
===================================================================
|
||||||
|
--- systemd.orig/tmpfiles.d/tmp.conf
|
||||||
|
+++ systemd/tmpfiles.d/tmp.conf
|
||||||
@@ -8,8 +8,9 @@
|
@@ -8,8 +8,9 @@
|
||||||
# See tmpfiles.d(5) for details
|
# See tmpfiles.d(5) for details
|
||||||
|
|
||||||
# Clear tmp directories separately, to make them easier to override
|
# Clear tmp directories separately, to make them easier to override
|
||||||
-d /tmp 1777 root root 10d
|
-v /tmp 1777 root root 10d
|
||||||
-d /var/tmp 1777 root root 30d
|
-v /var/tmp 1777 root root 30d
|
||||||
+# SUSE policy: we don't clean those directories
|
+# SUSE policy: we don't clean those directories
|
||||||
+d /tmp 1777 root root -
|
+v /tmp 1777 root root -
|
||||||
+d /var/tmp 1777 root root -
|
+v /var/tmp 1777 root root -
|
||||||
|
|
||||||
# Exclude namespace mountpoints created with PrivateTmp=yes
|
# Exclude namespace mountpoints created with PrivateTmp=yes
|
||||||
x /tmp/systemd-private-%b-*
|
x /tmp/systemd-private-%b-*
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 16 10:18:18 UTC 2015 - jengelh@inai.de
|
||||||
|
|
||||||
|
- Update to systemd v218-1050-g38ab096
|
||||||
|
- Remove patches
|
||||||
|
use-usr-sbin-sulogin-for-emergency-service.patch (upstream fixed it)
|
||||||
|
- Reinstate and improve (remove huge indents from)
|
||||||
|
tty-ask-password-agent-on-console.patch,
|
||||||
|
0014-journald-with-journaling-FS.patch, rootsymlink_generator.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com
|
Mon Feb 16 09:42:48 UTC 2015 - meissner@suse.com
|
||||||
|
|
||||||
@ -27,8 +37,6 @@ Fri Jan 9 18:48:28 UTC 2015 - jengelh@inai.de
|
|||||||
N=no longer applies to source nor is it deemed needed;
|
N=no longer applies to source nor is it deemed needed;
|
||||||
K=killed: no longer applicable and too complex to resolve:
|
K=killed: no longer applicable and too complex to resolve:
|
||||||
----
|
----
|
||||||
G 0002-rfkill-rework-how-we-generate-file-names-from-rfkill.patch
|
|
||||||
G avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch
|
|
||||||
K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch
|
K service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch
|
||||||
K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch
|
K remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch
|
||||||
K handle-SYSTEMCTL_OPTIONS-environment-variable.patch
|
K handle-SYSTEMCTL_OPTIONS-environment-variable.patch
|
||||||
|
67
systemd.spec
67
systemd.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package systemd
|
# spec file for package systemd
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
Name: systemd
|
Name: systemd
|
||||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
Version: 218
|
Version: 218.g1050
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A System and Session Manager
|
Summary: A System and Session Manager
|
||||||
License: LGPL-2.1+
|
License: LGPL-2.1+
|
||||||
@ -50,14 +50,18 @@ Group: System/Base
|
|||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: acl
|
BuildRequires: acl
|
||||||
BuildRequires: audit-devel
|
BuildRequires: audit-devel
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: automake
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gperf
|
BuildRequires: gperf
|
||||||
|
BuildRequires: gtk-doc
|
||||||
BuildRequires: intltool
|
BuildRequires: intltool
|
||||||
BuildRequires: libacl-devel
|
BuildRequires: libacl-devel
|
||||||
BuildRequires: libcap-devel
|
BuildRequires: libcap-devel
|
||||||
BuildRequires: libkmod-devel
|
BuildRequires: libkmod-devel
|
||||||
BuildRequires: libsepol-devel
|
BuildRequires: libsepol-devel
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
|
BuildRequires: libtool
|
||||||
BuildRequires: pam-devel
|
BuildRequires: pam-devel
|
||||||
BuildRequires: config(suse-module-tools)
|
BuildRequires: config(suse-module-tools)
|
||||||
%if 0%{?suse_version} > 1310
|
%if 0%{?suse_version} > 1310
|
||||||
@ -134,7 +138,10 @@ Conflicts: filesystem < 11.5
|
|||||||
Conflicts: mkinitrd < 2.7.0
|
Conflicts: mkinitrd < 2.7.0
|
||||||
Obsoletes: systemd-analyze < 201
|
Obsoletes: systemd-analyze < 201
|
||||||
Provides: systemd-analyze = %{version}
|
Provides: systemd-analyze = %{version}
|
||||||
Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz
|
|
||||||
|
#Git-Clone: git://anongit.freedesktop.org/systemd/systemd
|
||||||
|
#Snapshot: v218-1050-g38ab096
|
||||||
|
Source0: systemd-%{version}.tar.xz
|
||||||
%if ! 0%{?bootstrap}
|
%if ! 0%{?bootstrap}
|
||||||
Source1: systemd-rpmlintrc
|
Source1: systemd-rpmlintrc
|
||||||
%else
|
%else
|
||||||
@ -191,8 +198,6 @@ Patch24: handle-etc-HOSTNAME.patch
|
|||||||
Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch
|
Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch
|
||||||
# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind
|
# PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind
|
||||||
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch
|
||||||
# PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin
|
|
||||||
Patch46: use-usr-sbin-sulogin-for-emergency-service.patch
|
|
||||||
# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
|
# PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232)
|
||||||
Patch84: make-emergency.service-conflict-with-syslog.socket.patch
|
Patch84: make-emergency.service-conflict-with-syslog.socket.patch
|
||||||
# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
# PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch
|
||||||
@ -247,6 +252,7 @@ Patch338: vhangup-on-all-consoles.patch
|
|||||||
Patch345: shut-up-rpmlint-on-var-log-journal.patch
|
Patch345: shut-up-rpmlint-on-var-log-journal.patch
|
||||||
# PATCH-FIX-SUSE
|
# PATCH-FIX-SUSE
|
||||||
Patch352: set-and-use-default-logconsole.patch
|
Patch352: set-and-use-default-logconsole.patch
|
||||||
|
Patch362: tty-ask-password-agent-on-console.patch
|
||||||
# PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357)
|
# PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357)
|
||||||
Patch366: tomcat6-var-lock-subsys-legacy.patch
|
Patch366: tomcat6-var-lock-subsys-legacy.patch
|
||||||
# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162)
|
# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162)
|
||||||
@ -255,7 +261,6 @@ Patch368: 0001-let-systemctl-completion-ignore-at-names.patch
|
|||||||
Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch
|
Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch
|
||||||
# PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612)
|
# PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612)
|
||||||
Patch430: 0001-bnc888612-logind-polkit-acpi.patch
|
Patch430: 0001-bnc888612-logind-polkit-acpi.patch
|
||||||
# PATCH-FIX-SUSE added at 2014/10/24
|
|
||||||
Patch475: journald-advice-about-use-of-memory.patch
|
Patch475: journald-advice-about-use-of-memory.patch
|
||||||
# PATCH-FIX-SUSE added at 2014/11/05
|
# PATCH-FIX-SUSE added at 2014/11/05
|
||||||
Patch490: watch_resolv.conf_for_become_changed.patch
|
Patch490: watch_resolv.conf_for_become_changed.patch
|
||||||
@ -564,7 +569,7 @@ Requires(postun): systemd
|
|||||||
systemd-journal-gatewayd serves journal events over the network using HTTP.
|
systemd-journal-gatewayd serves journal events over the network using HTTP.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n systemd-%{version}
|
%setup -q -n systemd
|
||||||
echo "Checking whether upstream rpm macros changed..."
|
echo "Checking whether upstream rpm macros changed..."
|
||||||
diff -au "%{S:10}" src/core/macros.systemd.in
|
diff -au "%{S:10}" src/core/macros.systemd.in
|
||||||
|
|
||||||
@ -594,7 +599,6 @@ cp %{SOURCE7} m4/
|
|||||||
%patch40 -p1
|
%patch40 -p1
|
||||||
%patch41 -p1
|
%patch41 -p1
|
||||||
%patch42 -p1
|
%patch42 -p1
|
||||||
%patch46 -p1
|
|
||||||
%patch84 -p1
|
%patch84 -p1
|
||||||
%patch86 -p1
|
%patch86 -p1
|
||||||
%patch90 -p1
|
%patch90 -p1
|
||||||
@ -622,17 +626,18 @@ cp %{SOURCE7} m4/
|
|||||||
%patch338 -p1
|
%patch338 -p1
|
||||||
%patch345 -p1
|
%patch345 -p1
|
||||||
%patch352 -p1
|
%patch352 -p1
|
||||||
|
%patch362 -p1
|
||||||
%patch366 -p1
|
%patch366 -p1
|
||||||
%patch368 -p1
|
%patch368 -p1
|
||||||
%patch386 -p1
|
%patch386 -p1
|
||||||
%patch430 -p1
|
%patch430 -p1
|
||||||
|
%patch475 -p1
|
||||||
%ifarch %arm
|
%ifarch %arm
|
||||||
%patch38 -p1
|
%patch38 -p1
|
||||||
%endif
|
%endif
|
||||||
%patch475 -p1
|
|
||||||
%patch490 -p1
|
%patch490 -p1
|
||||||
%patch520 -p1
|
%patch520 -p1
|
||||||
%patch521 -p0
|
%patch521 -p1
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
@ -739,7 +744,7 @@ cflags ()
|
|||||||
esac
|
esac
|
||||||
set +o noclobber
|
set +o noclobber
|
||||||
}
|
}
|
||||||
autoreconf -fiv
|
./autogen.sh
|
||||||
# prevent pre-generated and distributed files from re-building
|
# prevent pre-generated and distributed files from re-building
|
||||||
find . -name "*.[1-8]" -exec touch '{}' '+';
|
find . -name "*.[1-8]" -exec touch '{}' '+';
|
||||||
export V=e
|
export V=e
|
||||||
@ -805,19 +810,9 @@ make %{?_smp_mflags} update-man-list man
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
# Use refreshed manual pages
|
%if !0%{?bootstrap}
|
||||||
for man in man/*.[0-9]
|
cp man/man[0-9]/*.[0-9] man/
|
||||||
do
|
%endif
|
||||||
section=${man##*.}
|
|
||||||
test -d man/man${section} || continue
|
|
||||||
new=man/man${section}/${man##*/}
|
|
||||||
if test -s $new -a $new -nt $man
|
|
||||||
then
|
|
||||||
cp -p $new $man
|
|
||||||
else
|
|
||||||
sed -ri 's@"(systemd) 209"@"\1 %{version}"@' $man
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
make install DESTDIR="%buildroot"
|
make install DESTDIR="%buildroot"
|
||||||
|
|
||||||
# move to %{_lib}
|
# move to %{_lib}
|
||||||
@ -958,15 +953,6 @@ EOF
|
|||||||
install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/
|
install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/
|
||||||
ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/
|
ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/
|
||||||
|
|
||||||
%if ! 0%{?bootstrap}
|
|
||||||
%if %{without python}
|
|
||||||
for man in systemd.directives.7 systemd.index.7
|
|
||||||
do
|
|
||||||
install -m 0644 man/$man %{buildroot}%{_mandir}/man7/
|
|
||||||
done
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight
|
||||||
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed
|
mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/random-seed
|
||||||
|
|
||||||
@ -1290,6 +1276,7 @@ exit 0
|
|||||||
%{_bindir}/systemd-path
|
%{_bindir}/systemd-path
|
||||||
%{_bindir}/systemd-sysusers
|
%{_bindir}/systemd-sysusers
|
||||||
%{_bindir}/systemd-notify
|
%{_bindir}/systemd-notify
|
||||||
|
%{_bindir}/systemd-hwdb
|
||||||
%{_bindir}/systemd-run
|
%{_bindir}/systemd-run
|
||||||
%{_bindir}/systemd-journalctl
|
%{_bindir}/systemd-journalctl
|
||||||
%{_bindir}/journalctl
|
%{_bindir}/journalctl
|
||||||
@ -1383,7 +1370,6 @@ exit 0
|
|||||||
%{_prefix}/lib/sysusers.d/
|
%{_prefix}/lib/sysusers.d/
|
||||||
/%{_lib}/security/pam_systemd.so
|
/%{_lib}/security/pam_systemd.so
|
||||||
%config /etc/pam.d/systemd-user
|
%config /etc/pam.d/systemd-user
|
||||||
%_libdir/libnss_resolve.so.2
|
|
||||||
|
|
||||||
%dir %{_libexecdir}/modules-load.d
|
%dir %{_libexecdir}/modules-load.d
|
||||||
%dir %{_sysconfdir}/modules-load.d
|
%dir %{_sysconfdir}/modules-load.d
|
||||||
@ -1414,7 +1400,6 @@ exit 0
|
|||||||
%if !0%{?bootstrap}
|
%if !0%{?bootstrap}
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf
|
%config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf
|
||||||
%endif
|
%endif
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/resolved.conf
|
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf
|
%config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/system.conf
|
%config(noreplace) %{_sysconfdir}/systemd/system.conf
|
||||||
%config(noreplace) %{_sysconfdir}/systemd/logind.conf
|
%config(noreplace) %{_sysconfdir}/systemd/logind.conf
|
||||||
@ -1423,7 +1408,7 @@ exit 0
|
|||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf
|
||||||
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf
|
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf
|
||||||
@ -1442,7 +1427,7 @@ exit 0
|
|||||||
|
|
||||||
%{_datadir}/factory/
|
%{_datadir}/factory/
|
||||||
%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
|
%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.network1.service
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
|
||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
|
||||||
@ -1451,6 +1436,7 @@ exit 0
|
|||||||
%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
|
%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
|
||||||
%dir %{_datadir}/polkit-1
|
%dir %{_datadir}/polkit-1
|
||||||
%dir %{_datadir}/polkit-1/actions
|
%dir %{_datadir}/polkit-1/actions
|
||||||
|
%{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy
|
||||||
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
|
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
|
||||||
%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
|
%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
|
||||||
%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
|
%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
|
||||||
@ -1500,9 +1486,6 @@ exit 0
|
|||||||
%{_datadir}/zsh/site-functions/*
|
%{_datadir}/zsh/site-functions/*
|
||||||
%ghost %{_localstatedir}/lib/systemd/backlight
|
%ghost %{_localstatedir}/lib/systemd/backlight
|
||||||
%ghost %{_localstatedir}/lib/systemd/random-seed
|
%ghost %{_localstatedir}/lib/systemd/random-seed
|
||||||
%if 0%{?suse_version} > 1310
|
|
||||||
%{_datadir}/pkgconfig/systemd.pc
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if ! 0%{?bootstrap}
|
%if ! 0%{?bootstrap}
|
||||||
%files bash-completion -f files.completion
|
%files bash-completion -f files.completion
|
||||||
@ -1526,9 +1509,7 @@ exit 0
|
|||||||
%{_includedir}/systemd/sd-journal.h
|
%{_includedir}/systemd/sd-journal.h
|
||||||
%{_includedir}/systemd/sd-messages.h
|
%{_includedir}/systemd/sd-messages.h
|
||||||
%{_includedir}/systemd/_sd-common.h
|
%{_includedir}/systemd/_sd-common.h
|
||||||
%if 0%{?suse_version} <= 1310
|
%{_libdir}/pkgconfig/systemd.pc
|
||||||
%{_datadir}/pkgconfig/systemd.pc
|
|
||||||
%endif
|
|
||||||
%{_libdir}/pkgconfig/libsystemd.pc
|
%{_libdir}/pkgconfig/libsystemd.pc
|
||||||
%{_libdir}/pkgconfig/libsystemd-daemon.pc
|
%{_libdir}/pkgconfig/libsystemd-daemon.pc
|
||||||
%{_libdir}/pkgconfig/libsystemd-login.pc
|
%{_libdir}/pkgconfig/libsystemd-login.pc
|
||||||
|
239
tty-ask-password-agent-on-console.patch
Normal file
239
tty-ask-password-agent-on-console.patch
Normal file
@ -0,0 +1,239 @@
|
|||||||
|
---
|
||||||
|
src/tty-ask-password-agent/tty-ask-password-agent.c | 171 +++++++++++++++++++-
|
||||||
|
1 file changed, 166 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
|
||||||
|
@@ -31,6 +31,10 @@
|
||||||
|
#include <getopt.h>
|
||||||
|
#include <sys/signalfd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
+#include <sys/prctl.h>
|
||||||
|
+#include <signal.h>
|
||||||
|
+#include <sys/wait.h>
|
||||||
|
+#include <sys/mman.h>
|
||||||
|
|
||||||
|
#include "util.h"
|
||||||
|
#include "mkdir.h"
|
||||||
|
@@ -42,6 +46,9 @@
|
||||||
|
#include "strv.h"
|
||||||
|
#include "build.h"
|
||||||
|
#include "def.h"
|
||||||
|
+#include "fileio.h"
|
||||||
|
+#include "macro.h"
|
||||||
|
+#include "list.h"
|
||||||
|
|
||||||
|
static enum {
|
||||||
|
ACTION_LIST,
|
||||||
|
@@ -50,6 +57,22 @@ 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[];
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static volatile unsigned long *usemask;
|
||||||
|
+static volatile sig_atomic_t sigchild;
|
||||||
|
+static void chld_handler(int sig)
|
||||||
|
+{
|
||||||
|
+ (void)sig;
|
||||||
|
+ ++sigchild;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static bool arg_plymouth = false;
|
||||||
|
static bool arg_console = false;
|
||||||
|
|
||||||
|
@@ -208,6 +231,58 @@ static int ask_password_plymouth(
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static const char *current_dev = "/dev/console";
|
||||||
|
+static LIST_HEAD(struct console, consoles);
|
||||||
|
+static int collect_consoles(void) {
|
||||||
|
+ _cleanup_free_ char *active = NULL;
|
||||||
|
+ const char *word, *state;
|
||||||
|
+ struct console *con;
|
||||||
|
+ size_t len;
|
||||||
|
+ int ret, id = 0;
|
||||||
|
+
|
||||||
|
+ ret = read_one_line_file("/sys/class/tty/console/active", &active);
|
||||||
|
+ if (ret < 0)
|
||||||
|
+ return ret;
|
||||||
|
+ FOREACH_WORD(word, len, active, state) {
|
||||||
|
+ _cleanup_free_ char *tty = NULL;
|
||||||
|
+
|
||||||
|
+ if (strneq(word, "tty0", len) &&
|
||||||
|
+ read_one_line_file("/sys/class/tty/tty0/active", &tty) >= 0) {
|
||||||
|
+ word = tty;
|
||||||
|
+ len = strlen(tty);
|
||||||
|
+ }
|
||||||
|
+ con = malloc0(sizeof(*con) + strlen("/dev/") + len + 1);
|
||||||
|
+ if (con == NULL) {
|
||||||
|
+ log_oom();
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ sprintf(con->dev, "/dev/%.*s", (int)len, word);
|
||||||
|
+ con->tty = con->dev;
|
||||||
|
+ con->id = id++;
|
||||||
|
+ LIST_PREPEND(handle, consoles, con);
|
||||||
|
+ }
|
||||||
|
+ if (consoles == NULL) {
|
||||||
|
+ con = malloc0(sizeof(*con));
|
||||||
|
+ if (con == NULL) {
|
||||||
|
+ log_oom();
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+ }
|
||||||
|
+ 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);
|
||||||
|
+ }
|
||||||
|
+ LIST_HEAD_INIT(consoles);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
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
|
||||||
|
_cleanup_free_ char *password = NULL;
|
||||||
|
|
||||||
|
if (arg_console) {
|
||||||
|
- tty_fd = acquire_terminal("/dev/console", false, false, false, USEC_INFINITY);
|
||||||
|
+ tty_fd = acquire_terminal(current_dev, false, false, false, USEC_INFINITY);
|
||||||
|
if (tty_fd < 0)
|
||||||
|
return tty_fd;
|
||||||
|
}
|
||||||
|
@@ -612,9 +687,85 @@ static int parse_argv(int argc, char *ar
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int zzz(void)
|
||||||
|
+{
|
||||||
|
+ struct console *con;
|
||||||
|
+ struct sigaction sig = {
|
||||||
|
+ .sa_handler = chld_handler,
|
||||||
|
+ .sa_flags = SA_NOCLDSTOP | SA_RESTART,
|
||||||
|
+ };
|
||||||
|
+ struct sigaction oldsig;
|
||||||
|
+ sigset_t set, oldset;
|
||||||
|
+ int status = 0, ret;
|
||||||
|
+ pid_t job;
|
||||||
|
+
|
||||||
|
+ collect_consoles();
|
||||||
|
+ if (!consoles->handle_next) {
|
||||||
|
+ consoles->pid = 0;
|
||||||
|
+ con = consoles;
|
||||||
|
+ goto nofork;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ assert_se(sigemptyset(&set) == 0);
|
||||||
|
+ assert_se(sigaddset(&set, SIGHUP) == 0);
|
||||||
|
+ assert_se(sigaddset(&set, SIGCHLD) == 0);
|
||||||
|
+ assert_se(sigemptyset(&sig.sa_mask) == 0);
|
||||||
|
+ assert_se(sigprocmask(SIG_UNBLOCK, &set, &oldset) == 0);
|
||||||
|
+ assert_se(sigaction(SIGCHLD, &sig, &oldsig) == 0);
|
||||||
|
+ sig.sa_handler = SIG_DFL;
|
||||||
|
+ assert_se(sigaction(SIGHUP, &sig, NULL) == 0);
|
||||||
|
+
|
||||||
|
+ LIST_FOREACH(handle, con, consoles) {
|
||||||
|
+ switch ((con->pid = fork())) {
|
||||||
|
+ case 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;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ ret = 0;
|
||||||
|
+ while ((job = wait(&status)) != 0) {
|
||||||
|
+ if (job < 0) {
|
||||||
|
+ if (errno != EINTR)
|
||||||
|
+ break;
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ LIST_FOREACH(handle, con, consoles) {
|
||||||
|
+ if (con->pid == job || kill(con->pid, 0) < 0) {
|
||||||
|
+ *usemask &= ~(1 << con->id);
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+ if (*usemask & (1 << con->id))
|
||||||
|
+ continue;
|
||||||
|
+ kill(con->pid, SIGHUP);
|
||||||
|
+ usleep(50000);
|
||||||
|
+ kill(con->pid, SIGKILL);
|
||||||
|
+ }
|
||||||
|
+ if (WIFEXITED(status) && ret == 0)
|
||||||
|
+ ret = WEXITSTATUS(status);
|
||||||
|
+ }
|
||||||
|
+ free_consoles();
|
||||||
|
+ exit(ret != 0 ? EXIT_FAILURE : EXIT_SUCCESS); /* parent */
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
- 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[]) {
|
||||||
|
if (r <= 0)
|
||||||
|
goto finish;
|
||||||
|
|
||||||
|
+ usemask = mmap(NULL, sizeof(*usemask), PROT_READ | PROT_WRITE,
|
||||||
|
+ MAP_ANONYMOUS | MAP_SHARED, -1, 0);
|
||||||
|
+ assert_se(usemask != NULL);
|
||||||
|
+
|
||||||
|
if (arg_console) {
|
||||||
|
- setsid();
|
||||||
|
- release_terminal();
|
||||||
|
+ if (!arg_plymouth && arg_action != ACTION_WALL &&
|
||||||
|
+ arg_action != ACTION_LIST) {
|
||||||
|
+ id = zzz();
|
||||||
|
+ } else {
|
||||||
|
+ setsid();
|
||||||
|
+ release_terminal();
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
-
|
||||||
|
if (IN_SET(arg_action, ACTION_WATCH, ACTION_WALL))
|
||||||
|
r = watch_passwords();
|
||||||
|
else
|
||||||
|
@@ -638,6 +797,8 @@ int main(int argc, char *argv[]) {
|
||||||
|
if (r < 0)
|
||||||
|
log_error_errno(r, "Error: %m");
|
||||||
|
|
||||||
|
+ free_consoles();
|
||||||
|
+ *usemask &= ~(1 << id);
|
||||||
|
finish:
|
||||||
|
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||||
|
}
|
@ -1,50 +0,0 @@
|
|||||||
From: Andrey Borzenkov <arvidjaar@gmail.com>
|
|
||||||
Subject: use /usr/sbin/sulogin in emergency service
|
|
||||||
|
|
||||||
In current Factory sulogin is in /usr/sbin which makes it impossible
|
|
||||||
to enter emergency service.
|
|
||||||
---
|
|
||||||
units/console-shell.service.m4.in | 2 +-
|
|
||||||
units/emergency.service.in | 2 +-
|
|
||||||
units/rescue.service.in | 2 +-
|
|
||||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
Index: systemd-218/units/console-shell.service.m4.in
|
|
||||||
===================================================================
|
|
||||||
--- systemd-218.orig/units/console-shell.service.m4.in
|
|
||||||
+++ systemd-218/units/console-shell.service.m4.in
|
|
||||||
@@ -17,7 +17,7 @@ Before=getty.target
|
|
||||||
[Service]
|
|
||||||
Environment=HOME=/root
|
|
||||||
WorkingDirectory=/root
|
|
||||||
-ExecStart=-/sbin/sulogin
|
|
||||||
+ExecStart=-/usr/sbin/sulogin
|
|
||||||
ExecStopPost=-@SYSTEMCTL@ poweroff
|
|
||||||
Type=idle
|
|
||||||
StandardInput=tty-force
|
|
||||||
Index: systemd-218/units/emergency.service.in
|
|
||||||
===================================================================
|
|
||||||
--- systemd-218.orig/units/emergency.service.in
|
|
||||||
+++ systemd-218/units/emergency.service.in
|
|
||||||
@@ -18,7 +18,7 @@ Environment=HOME=/root
|
|
||||||
WorkingDirectory=/root
|
|
||||||
ExecStartPre=-/bin/plymouth 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 "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default"
|
|
||||||
+ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default"
|
|
||||||
Type=idle
|
|
||||||
StandardInput=tty-force
|
|
||||||
StandardOutput=inherit
|
|
||||||
Index: systemd-218/units/rescue.service.in
|
|
||||||
===================================================================
|
|
||||||
--- systemd-218.orig/units/rescue.service.in
|
|
||||||
+++ systemd-218/units/rescue.service.in
|
|
||||||
@@ -18,7 +18,7 @@ Environment=HOME=/root
|
|
||||||
WorkingDirectory=/root
|
|
||||||
ExecStartPre=-/bin/plymouth 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\\nboot into default mode.'
|
|
||||||
-ExecStart=-/bin/sh -c "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default"
|
|
||||||
+ExecStart=-/bin/sh -c "/usr/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default"
|
|
||||||
Type=idle
|
|
||||||
StandardInput=tty-force
|
|
||||||
StandardOutput=inherit
|
|
Loading…
Reference in New Issue
Block a user