forked from pool/systemd
Accepting request 246497 from Base:System
- Add upstream patches for hwdb 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch 0003-keymap-Fix-HP-Pavillon-DV7.patch 0004-hwdb-update-format-description-and-document-reloadin.patch 0008-hwdb-update.patch - Port back and add the missed upstream patches from 2014/08/22 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch 0006-login-share-VT-signal-handler-between-sessions.patch - Add upstream patches 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch 0002-switch-root-umount-the-old-root-correctly.patch 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch - man pages from section 3 are developer docs, move them to the -devel package. - Add patch 0001-let-systemctl-completion-ignore-at-names.patch to remove error messages for tab completion for systemctl isolate (bnc#892162) OBS-URL: https://build.opensuse.org/request/show/246497 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=200
This commit is contained in:
parent
6da4c8e3f4
commit
8d0e9d5913
40
0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch
Normal file
40
0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From 77e8ff6974ffaa6c9954e3d2264d9aa75ef25233 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kieran Clancy <clancy.kieran@gmail.com>
|
||||||
|
Date: Thu, 27 Feb 2014 16:02:57 +1030
|
||||||
|
Subject: [PATCH] hwdb: keymaps for Samsung 900X3E/900X3F
|
||||||
|
|
||||||
|
Keymaps for Samsung 900X3E and 900X3F should be the same as for other
|
||||||
|
models in the series.
|
||||||
|
|
||||||
|
I have also moved the comment for '# Series 9' to the right place
|
||||||
|
---
|
||||||
|
hwdb/60-keyboard.hwdb | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb
|
||||||
|
index edfa842..bd8fd10 100644
|
||||||
|
--- hwdb/60-keyboard.hwdb
|
||||||
|
+++ hwdb/60-keyboard.hwdb
|
||||||
|
@@ -897,9 +897,10 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:pvr*
|
||||||
|
KEYBOARD_KEY_a8=! # Fn Lock - Function lock on
|
||||||
|
KEYBOARD_KEY_a9=! # Fn Lock - Function lock off
|
||||||
|
|
||||||
|
+# Series 7 / 9
|
||||||
|
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr*
|
||||||
|
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:pvr*
|
||||||
|
-keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDG]*:pvr*
|
||||||
|
+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][CDEFG]*:pvr*
|
||||||
|
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr*
|
||||||
|
KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
|
||||||
|
KEYBOARD_KEY_a0=!mute # Fn+F6 mute
|
||||||
|
@@ -909,7 +910,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:pvr*
|
||||||
|
KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up
|
||||||
|
KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer
|
||||||
|
|
||||||
|
-# Series 9
|
||||||
|
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34][AB]*:pvr*
|
||||||
|
KEYBOARD_KEY_ce=! # Fn+F8 keyboard backlight up
|
||||||
|
KEYBOARD_KEY_8d=! # Fn+F7 keyboard backlight down
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
11
0001-let-systemctl-completion-ignore-at-names.patch
Normal file
11
0001-let-systemctl-completion-ignore-at-names.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- systemd-210/shell-completion/bash/systemctl
|
||||||
|
+++ systemd-210/shell-completion/bash/systemctl 2014-08-20 15:01:04.502736981 +0000
|
||||||
|
@@ -43,7 +43,7 @@ __filter_units_by_property () {
|
||||||
|
local units=("$@")
|
||||||
|
local props
|
||||||
|
IFS=$'\n' read -rd '' -a props < \
|
||||||
|
- <(__systemctl $mode show --property "$property" -- "${units[@]}")
|
||||||
|
+ <(__systemctl $mode show --property "$property" -- "${units[@]}" 2> /dev/null)
|
||||||
|
for ((i=0; $i < ${#units[*]}; i++)); do
|
||||||
|
if [[ "${props[i]}" = "$property=$value" ]]; then
|
||||||
|
echo " ${units[i]}"
|
@ -0,0 +1,31 @@
|
|||||||
|
Based on 4212a3375e03fd12cb407b34cab59dbe4ed9f4eb Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||||
|
Date: Sun, 3 Aug 2014 01:28:21 -0400
|
||||||
|
Subject: [PATCH] nspawn: fix truncation of machine names in interface names
|
||||||
|
|
||||||
|
Based on patch by Michael Marineau <michael.marineau@coreos.com>:
|
||||||
|
|
||||||
|
When deriving the network interface name from machine name strncpy was
|
||||||
|
not properly null terminating the string and the maximum string size as
|
||||||
|
returned by strlen() is actually IFNAMSIZ-1, not IFNAMSIZ.
|
||||||
|
---
|
||||||
|
src/nspawn/nspawn.c | 8 ++------
|
||||||
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
--- src/nspawn/nspawn.c
|
||||||
|
+++ src/nspawn/nspawn.c 2014-08-22 10:18:20.390235611 +0000
|
||||||
|
@@ -1383,12 +1383,8 @@ static int setup_veth(pid_t pid, char if
|
||||||
|
|
||||||
|
/* Use two different interface name prefixes depending whether
|
||||||
|
* we are in bridge mode or not. */
|
||||||
|
- if (arg_network_bridge)
|
||||||
|
- memcpy(iface_name, "vb-", 3);
|
||||||
|
- else
|
||||||
|
- memcpy(iface_name, "ve-", 3);
|
||||||
|
-
|
||||||
|
- strncpy(iface_name+3, arg_machine, IFNAMSIZ - 3);
|
||||||
|
+ snprintf(iface_name, IFNAMSIZ, "%s-%s",
|
||||||
|
+ arg_network_bridge ? "vb" : "ve", arg_machine);
|
||||||
|
|
||||||
|
r = sd_rtnl_open(&rtnl, 0);
|
||||||
|
if (r < 0) {
|
31
0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch
Normal file
31
0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From 15f392394e75ffb7f318920008fd1bbe4e82b488 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Scott Thrasher <scott.thrasher@gmail.com>
|
||||||
|
Date: Wed, 26 Mar 2014 18:48:13 -0700
|
||||||
|
Subject: [PATCH] Add hwdb entry for Samsung Series 7 Ultra
|
||||||
|
|
||||||
|
---
|
||||||
|
hwdb/60-keyboard.hwdb | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb
|
||||||
|
index bd8fd10..832c686 100644
|
||||||
|
--- hwdb/60-keyboard.hwdb
|
||||||
|
+++ hwdb/60-keyboard.hwdb
|
||||||
|
@@ -924,6 +924,14 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:pvr*
|
||||||
|
KEYBOARD_KEY_96=!kbdillumup # Fn+F8 keyboard backlight up
|
||||||
|
KEYBOARD_KEY_d5=!wlan # Fn+F12 Wi-Fi toggle
|
||||||
|
|
||||||
|
+# Series 7 Ultra
|
||||||
|
+keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr*
|
||||||
|
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
|
||||||
|
+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down
|
||||||
|
+ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up
|
||||||
|
+ KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer
|
||||||
|
+ KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch
|
||||||
|
+
|
||||||
|
# SQ1US
|
||||||
|
keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr*
|
||||||
|
KEYBOARD_KEY_d4=menu
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
26
0002-switch-root-umount-the-old-root-correctly.patch
Normal file
26
0002-switch-root-umount-the-old-root-correctly.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
Based on 23f25b1496c31ef4c20b8f3ee8328f7b1d5f3a54 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dan Dedrick <dan.dedrick@gmail.com>
|
||||||
|
Date: Tue, 29 Jul 2014 15:31:23 -0400
|
||||||
|
Subject: [PATCH] switch-root: umount the old root correctly
|
||||||
|
|
||||||
|
The unmount occurs after the pivot_root, so the path used to unmount
|
||||||
|
should take into account the new root directory. This will allow the
|
||||||
|
umount to actually succeed.
|
||||||
|
---
|
||||||
|
src/core/switch-root.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- src/core/switch-root.c
|
||||||
|
+++ src/core/switch-root.c 2014-08-22 11:22:50.230735231 +0000
|
||||||
|
@@ -122,9 +122,9 @@ int switch_root(const char *new_root) {
|
||||||
|
|
||||||
|
/* Immediately get rid of the old root. Since we are
|
||||||
|
* running off it we need to do this lazily. */
|
||||||
|
- if (umount2(temporary_old_root, MNT_DETACH) < 0) {
|
||||||
|
+ if (umount2("/mnt", MNT_DETACH) < 0) {
|
||||||
|
r = -errno;
|
||||||
|
- log_error("Failed to umount old root dir %s: %m", temporary_old_root);
|
||||||
|
+ log_error("Failed to umount old root dir /mnt: %m");
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
|||||||
|
From 4155f7d4be5053d5f34a26e5437fd85e1fe00fa3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lennart Poettering <lennart@poettering.net>
|
||||||
|
Date: Mon, 11 Aug 2014 18:23:47 +0200
|
||||||
|
Subject: [PATCH] bootchart: it's not OK to return -1 from a main program
|
||||||
|
|
||||||
|
---
|
||||||
|
src/bootchart/bootchart.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git src/bootchart/bootchart.c src/bootchart/bootchart.c
|
||||||
|
index c0e176d..8ef5ad1 100644
|
||||||
|
--- src/bootchart/bootchart.c
|
||||||
|
+++ src/bootchart/bootchart.c
|
||||||
|
@@ -380,8 +380,8 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
|
sampledata = new0(struct list_sample_data, 1);
|
||||||
|
if (sampledata == NULL) {
|
||||||
|
- log_error("Failed to allocate memory for a node: %m");
|
||||||
|
- return -1;
|
||||||
|
+ log_oom();
|
||||||
|
+ return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
sampledata->sampletime = gettime_ns();
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
28
0003-keymap-Fix-HP-Pavillon-DV7.patch
Normal file
28
0003-keymap-Fix-HP-Pavillon-DV7.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
From efb4bf4e419e14a13eead6289ea40165579a816f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Pitt <martin.pitt@ubuntu.com>
|
||||||
|
Date: Tue, 5 Aug 2014 12:29:27 +0200
|
||||||
|
Subject: [PATCH] keymap: Fix HP Pavillon DV7
|
||||||
|
|
||||||
|
Properly disable scan code 94 instead of producing KEY_0.
|
||||||
|
|
||||||
|
https://launchpad.net/bugs/1322770
|
||||||
|
---
|
||||||
|
hwdb/60-keyboard.hwdb | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb
|
||||||
|
index cbbbf2c..5c3d4ca 100644
|
||||||
|
--- hwdb/60-keyboard.hwdb
|
||||||
|
+++ hwdb/60-keyboard.hwdb
|
||||||
|
@@ -368,7 +368,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:pvr
|
||||||
|
KEYBOARD_KEY_b7=print
|
||||||
|
KEYBOARD_KEY_c2=media # FIXME: quick play
|
||||||
|
KEYBOARD_KEY_c6=break
|
||||||
|
- KEYBOARD_KEY_94=0
|
||||||
|
+ KEYBOARD_KEY_94=reserved
|
||||||
|
|
||||||
|
# Elitebook
|
||||||
|
keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Compaq*:pvr*
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
@ -0,0 +1,60 @@
|
|||||||
|
From fa9d4be3f1f4a792b2f3624c2a08fe9cc6ce6e54 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||||
|
Date: Thu, 7 Aug 2014 21:48:57 -0400
|
||||||
|
Subject: [PATCH] hwdb: update format description and document reloading
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=82311
|
||||||
|
---
|
||||||
|
hwdb/60-keyboard.hwdb | 32 +++++++++++++++++++++++---------
|
||||||
|
1 file changed, 23 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git hwdb/60-keyboard.hwdb hwdb/60-keyboard.hwdb
|
||||||
|
index 5c3d4ca..ef0ebc5 100644
|
||||||
|
--- hwdb/60-keyboard.hwdb
|
||||||
|
+++ hwdb/60-keyboard.hwdb
|
||||||
|
@@ -28,19 +28,33 @@
|
||||||
|
# driver, <vendor> is the firmware-provided string exported
|
||||||
|
# by the kernel DMI modalias.
|
||||||
|
#
|
||||||
|
-# Scan codes are specified as:
|
||||||
|
-# KEYBOARD_KEY_<hex scan code>=<key code identifier>
|
||||||
|
-# The scan code should be expressed in hex lowercase and in
|
||||||
|
-# full bytes, a multiple of 2 digits. The key codes are retrieved
|
||||||
|
-# and normalized from the kernel input API header.
|
||||||
|
+# Scan codes are specified as:
|
||||||
|
+# KEYBOARD_KEY_<hex scan code>=<key code identifier>
|
||||||
|
+# The scan code should be expressed in hex lowercase. The key codes
|
||||||
|
+# are retrieved and normalized from the kernel input API header.
|
||||||
|
#
|
||||||
|
-# A '!' as the first charcter of the key identifier string
|
||||||
|
-# will add the scan code to the AT keyboard's list of scan codes
|
||||||
|
-# where the driver will synthesize a release event and not expect
|
||||||
|
-# it to be generated by the hardware.
|
||||||
|
+# An '!' as the first character of the key identifier string
|
||||||
|
+# will add the scan code to the AT keyboard's list of scan codes
|
||||||
|
+# where the driver will synthesize a release event and not expect
|
||||||
|
+# it to be generated by the hardware.
|
||||||
|
#
|
||||||
|
# To debug key presses and access scan code mapping data of
|
||||||
|
# an input device use the commonly available tool: evtest(1).
|
||||||
|
+#
|
||||||
|
+# To update this file, create a new file
|
||||||
|
+# /etc/udev/hwdb.d/70-keyboad.hwdb
|
||||||
|
+# and add your rules there. To load the new rules execute (as root):
|
||||||
|
+# udevadm hwdb --update
|
||||||
|
+# udevadm trigger /dev/input/eventXX
|
||||||
|
+# where /dev/input/eventXX is the keyboard in question. If in
|
||||||
|
+# doubt, simply use /dev/input/event* to reload all input rules.
|
||||||
|
+#
|
||||||
|
+# If your changes are generally applicable, open a bug report on
|
||||||
|
+# http://bugs.freedesktop.org/enter_bug.cgi?product=systemd
|
||||||
|
+# and include your new rules, a description of the device, and the
|
||||||
|
+# output of
|
||||||
|
+# udevadm info /dev/input/eventXX
|
||||||
|
+# (or /dev/input/event*).
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# Acer
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
134
0004-login-set_controller-should-fail-if-prepare_vt-fails.patch
Normal file
134
0004-login-set_controller-should-fail-if-prepare_vt-fails.patch
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
Based on baccf3e40bab6c0b69992ae29c396930de4660c9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Olivier Brunel <jjk@jjacky.com>
|
||||||
|
Date: Fri, 8 Aug 2014 20:45:43 +0200
|
||||||
|
Subject: [PATCH] login: set_controller should fail if prepare_vt fails
|
||||||
|
|
||||||
|
If controllers can expect logind to have "prepared" the VT (e.g. set it to
|
||||||
|
graphics mode, etc) then TakeControl() should fail if said preparation
|
||||||
|
failed (and session_restore_vt() was called).
|
||||||
|
|
||||||
|
(David: fixed up !CONFIG_VT case and errno-numbers)
|
||||||
|
---
|
||||||
|
src/login/logind-session.c | 47 +++++++++++++++++++++++++++++++++------------
|
||||||
|
src/login/logind-session.h | 2 -
|
||||||
|
2 files changed, 36 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
--- src/login/logind-session.c
|
||||||
|
+++ src/login/logind-session.c 2014-08-26 10:14:21.014235811 +0000
|
||||||
|
@@ -950,8 +950,8 @@ int session_kill(Session *s, KillWho who
|
||||||
|
static int session_open_vt(Session *s) {
|
||||||
|
char path[sizeof("/dev/tty") + DECIMAL_STR_MAX(s->vtnr)];
|
||||||
|
|
||||||
|
- if (!s->vtnr)
|
||||||
|
- return -1;
|
||||||
|
+ if (s->vtnr < 1)
|
||||||
|
+ return -ENODEV;
|
||||||
|
|
||||||
|
if (s->vtfd >= 0)
|
||||||
|
return s->vtfd;
|
||||||
|
@@ -975,22 +975,38 @@ static int session_vt_fn(sd_event_source
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void session_mute_vt(Session *s) {
|
||||||
|
+int session_mute_vt(Session *s) {
|
||||||
|
int vt, r;
|
||||||
|
struct vt_mode mode = { 0 };
|
||||||
|
sigset_t mask;
|
||||||
|
|
||||||
|
+ if (s->vtnr < 1)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
vt = session_open_vt(s);
|
||||||
|
if (vt < 0)
|
||||||
|
- return;
|
||||||
|
+ return vt;
|
||||||
|
+
|
||||||
|
+ r = fchown(vt, s->user->uid, -1);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ r = -errno;
|
||||||
|
+ log_error("Cannot change owner of /dev/tty%u: %m", s->vtnr);
|
||||||
|
+ goto error;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
r = ioctl(vt, KDSKBMODE, K_OFF);
|
||||||
|
- if (r < 0)
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ r = -errno;
|
||||||
|
+ log_error("Cannot set K_OFF on /dev/tty%u: %m", s->vtnr);
|
||||||
|
goto error;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
r = ioctl(vt, KDSETMODE, KD_GRAPHICS);
|
||||||
|
- if (r < 0)
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ r = -errno;
|
||||||
|
+ log_error("Cannot set KD_GRAPHICS on /dev/tty%u: %m", s->vtnr);
|
||||||
|
goto error;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
sigemptyset(&mask);
|
||||||
|
sigaddset(&mask, SIGUSR1);
|
||||||
|
@@ -1007,14 +1023,17 @@ void session_mute_vt(Session *s) {
|
||||||
|
mode.relsig = SIGUSR1;
|
||||||
|
mode.acqsig = SIGUSR1;
|
||||||
|
r = ioctl(vt, VT_SETMODE, &mode);
|
||||||
|
- if (r < 0)
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ r = -errno;
|
||||||
|
+ log_error("Cannot set VT_PROCESS on /dev/tty%u: %m", s->vtnr);
|
||||||
|
goto error;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- return;
|
||||||
|
+ return 0;
|
||||||
|
|
||||||
|
error:
|
||||||
|
- log_error("cannot mute VT %u for session %s (%d/%d)", s->vtnr, s->id, r, errno);
|
||||||
|
session_restore_vt(s);
|
||||||
|
+ return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
void session_restore_vt(Session *s) {
|
||||||
|
@@ -1037,6 +1056,8 @@ void session_restore_vt(Session *s) {
|
||||||
|
mode.mode = VT_AUTO;
|
||||||
|
ioctl(vt, VT_SETMODE, &mode);
|
||||||
|
|
||||||
|
+ fchown(vt, 0, -1);
|
||||||
|
+
|
||||||
|
close_nointr_nofail(vt);
|
||||||
|
s->vtfd = -1;
|
||||||
|
}
|
||||||
|
@@ -1091,8 +1112,6 @@ int session_set_controller(Session *s, c
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
- session_swap_controller(s, t);
|
||||||
|
-
|
||||||
|
/* When setting a session controller, we forcibly mute the VT and set
|
||||||
|
* it into graphics-mode. Applications can override that by changing
|
||||||
|
* VT state after calling TakeControl(). However, this serves as a good
|
||||||
|
@@ -1101,7 +1120,11 @@ int session_set_controller(Session *s, c
|
||||||
|
* exits.
|
||||||
|
* If logind crashes/restarts, we restore the controller during restart
|
||||||
|
* or reset the VT in case it crashed/exited, too. */
|
||||||
|
- session_mute_vt(s);
|
||||||
|
+ r = session_mute_vt(s);
|
||||||
|
+ if (r < 0)
|
||||||
|
+ return r;
|
||||||
|
+
|
||||||
|
+ session_swap_controller(s, t);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
--- src/login/logind-session.h
|
||||||
|
+++ src/login/logind-session.h 2014-08-25 17:19:29.042236429 +0000
|
||||||
|
@@ -172,7 +172,7 @@ SessionClass session_class_from_string(c
|
||||||
|
const char *kill_who_to_string(KillWho k) _const_;
|
||||||
|
KillWho kill_who_from_string(const char *s) _pure_;
|
||||||
|
|
||||||
|
-void session_mute_vt(Session *s);
|
||||||
|
+int session_mute_vt(Session *s);
|
||||||
|
void session_restore_vt(Session *s);
|
||||||
|
|
||||||
|
bool session_is_controller(Session *s, const char *sender);
|
@ -0,0 +1,45 @@
|
|||||||
|
Based on 85529c815b47c22839e0f148af67fd37e977cbfa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lennart Poettering <lennart@poettering.net>
|
||||||
|
Date: Tue, 12 Aug 2014 19:29:27 +0200
|
||||||
|
Subject: [PATCH] sd-resolve: fix allocation if query ids, never reuse them
|
||||||
|
|
||||||
|
---
|
||||||
|
src/libsystemd/sd-resolve/sd-resolve.c | 12 ++++--------
|
||||||
|
1 file changed, 4 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
--- src/libsystemd/sd-resolve/sd-resolve.c
|
||||||
|
+++ src/libsystemd/sd-resolve/sd-resolve.c 2014-08-22 14:18:24.838235343 +0000
|
||||||
|
@@ -81,7 +81,7 @@ struct sd_resolve {
|
||||||
|
pthread_t workers[WORKERS_MAX];
|
||||||
|
unsigned n_valid_workers;
|
||||||
|
|
||||||
|
- unsigned current_id, current_index;
|
||||||
|
+ unsigned current_id;
|
||||||
|
sd_resolve_query* queries[QUERIES_MAX];
|
||||||
|
unsigned n_queries;
|
||||||
|
|
||||||
|
@@ -892,21 +892,17 @@ static int alloc_query(sd_resolve *resol
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
|
- while (resolve->queries[resolve->current_index]) {
|
||||||
|
- resolve->current_index++;
|
||||||
|
+ while (resolve->queries[resolve->current_id % QUERIES_MAX])
|
||||||
|
resolve->current_id++;
|
||||||
|
|
||||||
|
- resolve->current_index %= QUERIES_MAX;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- q = resolve->queries[resolve->current_index] = new0(sd_resolve_query, 1);
|
||||||
|
+ q = resolve->queries[resolve->current_id % QUERIES_MAX] = new0(sd_resolve_query, 1);
|
||||||
|
if (!q)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
resolve->n_queries++;
|
||||||
|
|
||||||
|
q->resolve = resolve;
|
||||||
|
- q->id = resolve->current_id;
|
||||||
|
+ q->id = resolve->current_id++;
|
||||||
|
|
||||||
|
*_q = q;
|
||||||
|
return 0;
|
246
0006-login-share-VT-signal-handler-between-sessions.patch
Normal file
246
0006-login-share-VT-signal-handler-between-sessions.patch
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
Based on 92683ad2e28c79891e4123d9a421b018dc58870c Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Herrmann <dh.herrmann@gmail.com>
|
||||||
|
Date: Mon, 11 Aug 2014 18:17:54 +0200
|
||||||
|
Subject: [PATCH] login: share VT-signal handler between sessions
|
||||||
|
|
||||||
|
sd-event does not allow multiple handlers for a single signal. However,
|
||||||
|
logind sets up signal handlers for each session with VT_PROCESS set (that
|
||||||
|
is, it has an active controller). Therefore, registering multiple such
|
||||||
|
controllers will fail.
|
||||||
|
|
||||||
|
Lets make the VT-handler global, as it's mostly trivial, anyway. This way,
|
||||||
|
the sessions don't have to take care of that and we can simply acknowledge
|
||||||
|
all VT-switch requests as we always did.
|
||||||
|
---
|
||||||
|
src/libsystemd/sd-event/sd-event.c | 5 +-
|
||||||
|
src/login/logind-session.c | 26 +------------
|
||||||
|
src/login/logind-session.h | 1
|
||||||
|
src/login/logind.c | 70 +++++++++++++++++++++++++++++++++++++
|
||||||
|
src/shared/util.c | 18 +++++++++
|
||||||
|
src/shared/util.h | 1
|
||||||
|
6 files changed, 94 insertions(+), 27 deletions(-)
|
||||||
|
|
||||||
|
--- src/libsystemd/sd-event/sd-event.c
|
||||||
|
+++ src/libsystemd/sd-event/sd-event.c 2014-08-26 11:02:54.500683967 +0000
|
||||||
|
@@ -839,7 +839,6 @@ _public_ int sd_event_add_signal(
|
||||||
|
assert_return(sig > 0, -EINVAL);
|
||||||
|
assert_return(sig < _NSIG, -EINVAL);
|
||||||
|
assert_return(callback, -EINVAL);
|
||||||
|
- assert_return(ret, -EINVAL);
|
||||||
|
assert_return(e->state != SD_EVENT_FINISHED, -ESTALE);
|
||||||
|
assert_return(!event_pid_changed(e), -ECHILD);
|
||||||
|
|
||||||
|
@@ -877,7 +876,9 @@ _public_ int sd_event_add_signal(
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- *ret = s;
|
||||||
|
+ if (ret)
|
||||||
|
+ *ret = s;
|
||||||
|
+
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
--- src/login/logind-session.c
|
||||||
|
+++ src/login/logind-session.c 2014-08-25 17:22:46.000000000 +0000
|
||||||
|
@@ -153,8 +153,6 @@ void session_free(Session *s) {
|
||||||
|
|
||||||
|
hashmap_remove(s->manager->sessions, s->id);
|
||||||
|
|
||||||
|
- s->vt_source = sd_event_source_unref(s->vt_source);
|
||||||
|
-
|
||||||
|
free(s->state_file);
|
||||||
|
free(s);
|
||||||
|
}
|
||||||
|
@@ -966,19 +964,9 @@ static int session_open_vt(Session *s) {
|
||||||
|
return s->vtfd;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int session_vt_fn(sd_event_source *source, const struct signalfd_siginfo *si, void *data) {
|
||||||
|
- Session *s = data;
|
||||||
|
-
|
||||||
|
- if (s->vtfd >= 0)
|
||||||
|
- ioctl(s->vtfd, VT_RELDISP, 1);
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
int session_mute_vt(Session *s) {
|
||||||
|
int vt, r;
|
||||||
|
struct vt_mode mode = { 0 };
|
||||||
|
- sigset_t mask;
|
||||||
|
|
||||||
|
if (s->vtnr < 1)
|
||||||
|
return 0;
|
||||||
|
@@ -1008,20 +996,12 @@ int session_mute_vt(Session *s) {
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
- sigemptyset(&mask);
|
||||||
|
- sigaddset(&mask, SIGUSR1);
|
||||||
|
- sigprocmask(SIG_BLOCK, &mask, NULL);
|
||||||
|
-
|
||||||
|
- r = sd_event_add_signal(s->manager->event, &s->vt_source, SIGUSR1, session_vt_fn, s);
|
||||||
|
- if (r < 0)
|
||||||
|
- goto error;
|
||||||
|
-
|
||||||
|
/* Oh, thanks to the VT layer, VT_AUTO does not work with KD_GRAPHICS.
|
||||||
|
* So we need a dummy handler here which just acknowledges *all* VT
|
||||||
|
* switch requests. */
|
||||||
|
mode.mode = VT_PROCESS;
|
||||||
|
- mode.relsig = SIGUSR1;
|
||||||
|
- mode.acqsig = SIGUSR1;
|
||||||
|
+ mode.relsig = SIGRTMIN;
|
||||||
|
+ mode.acqsig = SIGRTMIN + 1;
|
||||||
|
r = ioctl(vt, VT_SETMODE, &mode);
|
||||||
|
if (r < 0) {
|
||||||
|
r = -errno;
|
||||||
|
@@ -1045,8 +1025,6 @@ void session_restore_vt(Session *s) {
|
||||||
|
if (vt < 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- s->vt_source = sd_event_source_unref(s->vt_source);
|
||||||
|
-
|
||||||
|
ioctl(vt, KDSETMODE, KD_TEXT);
|
||||||
|
|
||||||
|
if (read_one_line_file("/sys/module/vt/parameters/default_utf8", &utf8) >= 0 && *utf8 == '1')
|
||||||
|
--- src/login/logind-session.h
|
||||||
|
+++ src/login/logind-session.h 2014-08-25 00:00:00.000000000 +0000
|
||||||
|
@@ -98,7 +98,6 @@ struct Session {
|
||||||
|
Seat *seat;
|
||||||
|
unsigned int vtnr;
|
||||||
|
int vtfd;
|
||||||
|
- sd_event_source *vt_source;
|
||||||
|
|
||||||
|
pid_t leader;
|
||||||
|
uint32_t audit_id;
|
||||||
|
--- src/login/logind.c
|
||||||
|
+++ src/login/logind.c 2014-08-26 11:18:41.422235366 +0000
|
||||||
|
@@ -25,6 +25,7 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <linux/vt.h>
|
||||||
|
+#include <sys/ioctl.h>
|
||||||
|
#include <sys/timerfd.h>
|
||||||
|
|
||||||
|
#include "sd-daemon.h"
|
||||||
|
@@ -714,6 +715,47 @@ static int manager_connect_bus(Manager *
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int manager_vt_switch(sd_event_source *src, const struct signalfd_siginfo *si, void *data) {
|
||||||
|
+ Manager *m = data;
|
||||||
|
+ Session *active, *iter;
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * We got a VT-switch signal and we have to acknowledge it immediately.
|
||||||
|
+ * Preferably, we'd just use m->seat0->active->vtfd, but unfortunately,
|
||||||
|
+ * old user-space might run multiple sessions on a single VT, *sigh*.
|
||||||
|
+ * Therefore, we have to iterate all sessions and find one with a vtfd
|
||||||
|
+ * on the requested VT.
|
||||||
|
+ * As only VTs with active controllers have VT_PROCESS set, our current
|
||||||
|
+ * notion of the active VT might be wrong (for instance if the switch
|
||||||
|
+ * happens while we setup VT_PROCESS). Therefore, read the current VT
|
||||||
|
+ * first and then use s->active->vtnr as reference. Note that this is
|
||||||
|
+ * not racy, as no further VT-switch can happen as long as we're in
|
||||||
|
+ * synchronous VT_PROCESS mode.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+ assert(m->seat0);
|
||||||
|
+ seat_read_active_vt(m->seat0);
|
||||||
|
+
|
||||||
|
+ active = m->seat0->active;
|
||||||
|
+ if (!active || active->vtnr < 1) {
|
||||||
|
+ log_warning("Received VT_PROCESS signal without a registered session on that VT.");
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (active->vtfd >= 0) {
|
||||||
|
+ ioctl(active->vtfd, VT_RELDISP, 1);
|
||||||
|
+ } else {
|
||||||
|
+ LIST_FOREACH(sessions_by_seat, iter, m->seat0->sessions) {
|
||||||
|
+ if (iter->vtnr == active->vtnr && iter->vtfd >= 0) {
|
||||||
|
+ ioctl(iter->vtfd, VT_RELDISP, 1);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int manager_connect_console(Manager *m) {
|
||||||
|
int r;
|
||||||
|
|
||||||
|
@@ -744,6 +786,34 @@ static int manager_connect_console(Manag
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * SIGRTMIN is used as global VT-release signal, SIGRTMIN + 1 is used
|
||||||
|
+ * as VT-acquire signal. We ignore any acquire-events (yes, we still
|
||||||
|
+ * have to provide a valid signal-number for it!) and acknowledge all
|
||||||
|
+ * release events immediately.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+ if (SIGRTMIN + 1 > SIGRTMAX) {
|
||||||
|
+ log_error("Not enough real-time signals available: %u-%u", SIGRTMIN, SIGRTMAX);
|
||||||
|
+ return -EINVAL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ r = ignore_signals(SIGRTMIN + 1, -1);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ log_error("Cannot ignore SIGRTMIN + 1: %s", strerror(-r));
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ r = sigprocmask_many(SIG_BLOCK, SIGRTMIN, -1);
|
||||||
|
+ if (r < 0) {
|
||||||
|
+ log_error("Cannot block SIGRTMIN: %s", strerror(-r));
|
||||||
|
+ return r;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ r = sd_event_add_signal(m->event, NULL, SIGRTMIN, manager_vt_switch, m);
|
||||||
|
+ if (r < 0)
|
||||||
|
+ return r;
|
||||||
|
+
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
--- src/shared/util.c
|
||||||
|
+++ src/shared/util.c 2014-08-26 10:20:14.000000000 +0000
|
||||||
|
@@ -2434,6 +2434,24 @@ void sigset_add_many(sigset_t *ss, ...)
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
|
||||||
|
+int sigprocmask_many(int how, ...) {
|
||||||
|
+ va_list ap;
|
||||||
|
+ sigset_t ss;
|
||||||
|
+ int sig;
|
||||||
|
+
|
||||||
|
+ assert_se(sigemptyset(&ss) == 0);
|
||||||
|
+
|
||||||
|
+ va_start(ap, how);
|
||||||
|
+ while ((sig = va_arg(ap, int)) > 0)
|
||||||
|
+ assert_se(sigaddset(&ss, sig) == 0);
|
||||||
|
+ va_end(ap);
|
||||||
|
+
|
||||||
|
+ if (sigprocmask(how, &ss, NULL) < 0)
|
||||||
|
+ return -errno;
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
char* gethostname_malloc(void) {
|
||||||
|
struct utsname u;
|
||||||
|
|
||||||
|
--- src/shared/util.h
|
||||||
|
+++ src/shared/util.h 2014-08-26 10:21:08.000000000 +0000
|
||||||
|
@@ -390,6 +390,7 @@ char* dirname_malloc(const char *path);
|
||||||
|
void rename_process(const char name[8]);
|
||||||
|
|
||||||
|
void sigset_add_many(sigset_t *ss, ...);
|
||||||
|
+int sigprocmask_many(int how, ...);
|
||||||
|
|
||||||
|
bool hostname_is_set(void);
|
||||||
|
|
@ -0,0 +1,23 @@
|
|||||||
|
Based on 5e8b767df6e18444d5aff2987b5e5603361ed528 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lennart Poettering <lennart@poettering.net>
|
||||||
|
Date: Wed, 13 Aug 2014 18:53:05 +0200
|
||||||
|
Subject: [PATCH] journald: also increase the SendBuffer of /dev/log to 8M
|
||||||
|
|
||||||
|
http://lists.freedesktop.org/archives/systemd-devel/2014-August/021825.html
|
||||||
|
---
|
||||||
|
units/systemd-journald.socket | 6 ++++++
|
||||||
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
--- units/systemd-journald.socket
|
||||||
|
+++ units/systemd-journald.socket 2014-08-22 14:31:11.022236471 +0000
|
||||||
|
@@ -23,4 +23,10 @@ ListenDatagram=/dev/log
|
||||||
|
SocketMode=0666
|
||||||
|
PassCredentials=yes
|
||||||
|
PassSecurity=yes
|
||||||
|
+
|
||||||
|
+# Increase both the send and receive buffer, so that things don't
|
||||||
|
+# block early. Note that journald internally uses the this socket both
|
||||||
|
+# for receiving syslog messages, and for forwarding them to any other
|
||||||
|
+# syslog, hence we bump both values.
|
||||||
|
ReceiveBuffer=8M
|
||||||
|
+SendBuffer=8M
|
1425
0008-hwdb-update.patch
Normal file
1425
0008-hwdb-update.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,32 @@
|
|||||||
|
From 7c96ab1d2484ab2df3c6a84f1a1d2e076f469085 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lennart Poettering <lennart@poettering.net>
|
||||||
|
Date: Wed, 13 Aug 2014 20:01:19 +0200
|
||||||
|
Subject: [PATCH] mount-setup: fix counting of early mounts without SMACK
|
||||||
|
|
||||||
|
http://lists.freedesktop.org/archives/systemd-devel/2014-August/021772.html
|
||||||
|
---
|
||||||
|
src/core/mount-setup.c | 7 ++++++-
|
||||||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git src/core/mount-setup.c src/core/mount-setup.c
|
||||||
|
index 206f89a..cc2633e 100644
|
||||||
|
--- src/core/mount-setup.c
|
||||||
|
+++ src/core/mount-setup.c
|
||||||
|
@@ -63,8 +63,13 @@ typedef struct MountPoint {
|
||||||
|
|
||||||
|
/* The first three entries we might need before SELinux is up. The
|
||||||
|
* fourth (securityfs) is needed by IMA to load a custom policy. The
|
||||||
|
- * other ones we can delay until SELinux and IMA are loaded. */
|
||||||
|
+ * other ones we can delay until SELinux and IMA are loaded. When
|
||||||
|
+ * SMACK is enabled we need smackfs, too, so it's a fifth one. */
|
||||||
|
+#ifdef HAVE_SMACK
|
||||||
|
#define N_EARLY_MOUNT 5
|
||||||
|
+#else
|
||||||
|
+#define N_EARLY_MOUNT 4
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
static const MountPoint mount_table[] = {
|
||||||
|
{ "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
@ -0,0 +1,29 @@
|
|||||||
|
From b9c488f60050248b35640f28e4d00958702ba1c3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
||||||
|
Date: Wed, 6 Aug 2014 13:14:51 +0200
|
||||||
|
Subject: [PATCH] journald: Fix off-by-one error in "Missed X kernel messages"
|
||||||
|
warning
|
||||||
|
|
||||||
|
On receiving a message, "kernel_seqnum" is set to "serial + 1". So
|
||||||
|
subtracting 1 will cause messages like "Missed 0 kernel messages",
|
||||||
|
which should be "Missed 1 kernel messages".
|
||||||
|
---
|
||||||
|
src/journal/journald-kmsg.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git src/journal/journald-kmsg.c src/journal/journald-kmsg.c
|
||||||
|
index 9935986..fb8ea08 100644
|
||||||
|
--- src/journal/journald-kmsg.c
|
||||||
|
+++ src/journal/journald-kmsg.c
|
||||||
|
@@ -152,7 +152,7 @@ static void dev_kmsg_record(Server *s, char *p, size_t l) {
|
||||||
|
/* Did we lose any? */
|
||||||
|
if (serial > *s->kernel_seqnum)
|
||||||
|
server_driver_message(s, SD_MESSAGE_JOURNAL_MISSED, "Missed %"PRIu64" kernel messages",
|
||||||
|
- serial - *s->kernel_seqnum - 1);
|
||||||
|
+ serial - *s->kernel_seqnum);
|
||||||
|
|
||||||
|
/* Make sure we never read this one again. Note that
|
||||||
|
* we always store the next message serial we expect
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
From 9d685ca8193c0da3ad5746be3871f5350179a3b3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
|
||||||
|
Date: Thu, 14 Aug 2014 19:59:16 +0200
|
||||||
|
Subject: [PATCH] machine_kill(): Don't kill the unit when killing the leader
|
||||||
|
|
||||||
|
If "machinectl poweroff" or "machinectl reboot" is used on a
|
||||||
|
systemd-nspawn container started with --keep-unit and --register, it
|
||||||
|
should *only* send the appropriate signal to the leader PID (i.e. the
|
||||||
|
container's systemd process). It shouldn't fall through to
|
||||||
|
manager_kill_unit() to also send the signal to the unit. The latter
|
||||||
|
ends up killing systemd-nspawn, which takes down the container
|
||||||
|
prematurely.
|
||||||
|
---
|
||||||
|
src/machine/machine.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git src/machine/machine.c src/machine/machine.c
|
||||||
|
index 1c9177e..13d3448 100644
|
||||||
|
--- src/machine/machine.c
|
||||||
|
+++ src/machine/machine.c
|
||||||
|
@@ -493,6 +493,8 @@ int machine_kill(Machine *m, KillWho who, int signo) {
|
||||||
|
|
||||||
|
if (kill(m->leader, signo) < 0)
|
||||||
|
return -errno;
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Otherwise make PID 1 do it for us, for the entire cgroup */
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
@ -0,0 +1,93 @@
|
|||||||
|
From ff50244582bf69e8489bba6ce59a21663d7f8274 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lennart Poettering <lennart@poettering.net>
|
||||||
|
Date: Mon, 18 Aug 2014 22:21:42 +0200
|
||||||
|
Subject: [PATCH] units: fix BindsTo= logic when applied relative to services
|
||||||
|
with Type=oneshot
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Start jobs for Type=oneshot units are successful when the unit state
|
||||||
|
transition activating → inactive took place. In such a case all units
|
||||||
|
that BindsTo= on it previously would continue to run, even though the unit
|
||||||
|
they dependet on was actually already gone.
|
||||||
|
---
|
||||||
|
src/core/unit.c | 48 ++++++++++++++++++++++++++++++++++++++++++++----
|
||||||
|
1 file changed, 44 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git src/core/unit.c src/core/unit.c
|
||||||
|
index a5f6b2e..950b83a 100644
|
||||||
|
--- src/core/unit.c
|
||||||
|
+++ src/core/unit.c
|
||||||
|
@@ -1471,12 +1471,44 @@ static void unit_check_unneeded(Unit *u) {
|
||||||
|
if (unit_active_or_pending(other))
|
||||||
|
return;
|
||||||
|
|
||||||
|
- log_info_unit(u->id, "Service %s is not needed anymore. Stopping.", u->id);
|
||||||
|
+ log_info_unit(u->id, "Unit %s is not needed anymore. Stopping.", u->id);
|
||||||
|
|
||||||
|
/* Ok, nobody needs us anymore. Sniff. Then let's commit suicide */
|
||||||
|
manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void unit_check_binds_to(Unit *u) {
|
||||||
|
+ bool stop = false;
|
||||||
|
+ Unit *other;
|
||||||
|
+ Iterator i;
|
||||||
|
+
|
||||||
|
+ assert(u);
|
||||||
|
+
|
||||||
|
+ if (u->job)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ if (unit_active_state(u) != UNIT_ACTIVE)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ SET_FOREACH(other, u->dependencies[UNIT_BINDS_TO], i) {
|
||||||
|
+ if (other->job)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ if (!UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(other)))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ stop = true;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!stop)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ log_info_unit(u->id, "Unit %s is bound to inactive service. Stopping, too.", u->id);
|
||||||
|
+
|
||||||
|
+ /* A unit we need to run is gone. Sniff. Let's stop this. */
|
||||||
|
+ manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void retroactively_start_dependencies(Unit *u) {
|
||||||
|
Iterator i;
|
||||||
|
Unit *other;
|
||||||
|
@@ -1788,11 +1820,19 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su
|
||||||
|
manager_recheck_journal(m);
|
||||||
|
unit_trigger_notify(u);
|
||||||
|
|
||||||
|
- /* Maybe we finished startup and are now ready for being
|
||||||
|
- * stopped because unneeded? */
|
||||||
|
- if (u->manager->n_reloading <= 0)
|
||||||
|
+ if (u->manager->n_reloading <= 0) {
|
||||||
|
+ /* Maybe we finished startup and are now ready for
|
||||||
|
+ * being stopped because unneeded? */
|
||||||
|
unit_check_unneeded(u);
|
||||||
|
|
||||||
|
+ /* Maybe we finished startup, but something we needed
|
||||||
|
+ * has vanished? Let's die then. (This happens when
|
||||||
|
+ * something BindsTo= to a Type=oneshot unit, as these
|
||||||
|
+ * units go directly from starting to inactive,
|
||||||
|
+ * without ever entering started.) */
|
||||||
|
+ unit_check_binds_to(u);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
unit_add_to_dbus_queue(u);
|
||||||
|
unit_add_to_gc_queue(u);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
@ -0,0 +1,36 @@
|
|||||||
|
From 70421bdce2719d76efffd8afdc28433c75aac5a2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lennart Poettering <lennart@poettering.net>
|
||||||
|
Date: Mon, 18 Aug 2014 23:15:51 +0200
|
||||||
|
Subject: [PATCH] util: try to be a bit more NFS compatible when checking
|
||||||
|
whether an FS is writable
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=81169
|
||||||
|
---
|
||||||
|
src/shared/path-util.c | 11 ++++++++++-
|
||||||
|
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git src/shared/path-util.c src/shared/path-util.c
|
||||||
|
index 57554cd..67566bc 100644
|
||||||
|
--- src/shared/path-util.c
|
||||||
|
+++ src/shared/path-util.c
|
||||||
|
@@ -533,7 +533,16 @@ int path_is_read_only_fs(const char *path) {
|
||||||
|
if (statvfs(path, &st) < 0)
|
||||||
|
return -errno;
|
||||||
|
|
||||||
|
- return !!(st.f_flag & ST_RDONLY);
|
||||||
|
+ if (st.f_flag & ST_RDONLY)
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
+ /* On NFS, statvfs() might not reflect whether we can actually
|
||||||
|
+ * write to the remote share. Let's try again with
|
||||||
|
+ * access(W_OK) which is more reliable, at least sometimes. */
|
||||||
|
+ if (access(path, W_OK) < 0 && errno == EROFS)
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int path_is_os_tree(const char *path) {
|
||||||
|
--
|
||||||
|
1.7.9.2
|
||||||
|
|
@ -0,0 +1,96 @@
|
|||||||
|
Based on e98bbfd2074e2b1079b7059341eac25741baf319 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kay Sievers <kay@vrfy.org>
|
||||||
|
Date: Mon, 4 Aug 2014 18:15:34 +0200
|
||||||
|
Subject: [PATCH] udev: path_id - suppress ID_PATH for devices with an unknown
|
||||||
|
parent device type
|
||||||
|
|
||||||
|
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1321816
|
||||||
|
---
|
||||||
|
src/udev/udev-builtin-path_id.c | 38 +++++++++++++++++++++++++++-----------
|
||||||
|
1 file changed, 27 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
--- src/udev/udev-builtin-path_id.c
|
||||||
|
+++ src/udev/udev-builtin-path_id.c 2014-08-22 14:08:59.250235369 +0000
|
||||||
|
@@ -524,7 +524,8 @@ static int builtin_path_id(struct udev_d
|
||||||
|
{
|
||||||
|
struct udev_device *parent;
|
||||||
|
char *path = NULL;
|
||||||
|
- bool some_transport = false;
|
||||||
|
+ bool supported_transport = false;
|
||||||
|
+ bool supported_parent = false;
|
||||||
|
|
||||||
|
/* S390 ccw bus */
|
||||||
|
parent = udev_device_get_parent_with_subsystem_devtype(dev, "ccw", NULL);
|
||||||
|
@@ -545,47 +546,62 @@ static int builtin_path_id(struct udev_d
|
||||||
|
handle_scsi_tape(parent, &path);
|
||||||
|
} else if (streq(subsys, "scsi")) {
|
||||||
|
parent = handle_scsi(parent, &path);
|
||||||
|
- some_transport = true;
|
||||||
|
+ supported_transport = true;
|
||||||
|
} else if (streq(subsys, "cciss")) {
|
||||||
|
parent = handle_cciss(parent, &path);
|
||||||
|
- some_transport = true;
|
||||||
|
+ supported_transport = true;
|
||||||
|
} else if (streq(subsys, "usb")) {
|
||||||
|
parent = handle_usb(parent, &path);
|
||||||
|
- some_transport = true;
|
||||||
|
+ supported_transport = true;
|
||||||
|
} else if (streq(subsys, "bcma")) {
|
||||||
|
parent = handle_bcma(parent, &path);
|
||||||
|
- some_transport = true;
|
||||||
|
+ supported_transport = true;
|
||||||
|
} else if (streq(subsys, "serio")) {
|
||||||
|
path_prepend(&path, "serio-%s", udev_device_get_sysnum(parent));
|
||||||
|
parent = skip_subsystem(parent, "serio");
|
||||||
|
} else if (streq(subsys, "pci")) {
|
||||||
|
path_prepend(&path, "pci-%s", udev_device_get_sysname(parent));
|
||||||
|
parent = skip_subsystem(parent, "pci");
|
||||||
|
+ supported_parent = true;
|
||||||
|
} else if (streq(subsys, "platform")) {
|
||||||
|
path_prepend(&path, "platform-%s", udev_device_get_sysname(parent));
|
||||||
|
parent = skip_subsystem(parent, "platform");
|
||||||
|
- some_transport = true;
|
||||||
|
+ supported_transport = true;
|
||||||
|
+ supported_parent = true;
|
||||||
|
} else if (streq(subsys, "acpi")) {
|
||||||
|
path_prepend(&path, "acpi-%s", udev_device_get_sysname(parent));
|
||||||
|
parent = skip_subsystem(parent, "acpi");
|
||||||
|
+ supported_parent = true;
|
||||||
|
} else if (streq(subsys, "xen")) {
|
||||||
|
path_prepend(&path, "xen-%s", udev_device_get_sysname(parent));
|
||||||
|
parent = skip_subsystem(parent, "xen");
|
||||||
|
+ supported_parent = true;
|
||||||
|
} else if (streq(subsys, "scm")) {
|
||||||
|
path_prepend(&path, "scm-%s", udev_device_get_sysname(parent));
|
||||||
|
parent = skip_subsystem(parent, "scm");
|
||||||
|
- some_transport = true;
|
||||||
|
+ supported_transport = true;
|
||||||
|
+ supported_parent = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
parent = udev_device_get_parent(parent);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * Do not return a single-parent-device-only for block
|
||||||
|
- * devices, they might have entire buses behind it which
|
||||||
|
- * do not get unique IDs only by using the parent device.
|
||||||
|
+ * Do return devices with have an unknown type of parent device, they
|
||||||
|
+ * might produce conflicting IDs below multiple independent parent
|
||||||
|
+ * devices.
|
||||||
|
*/
|
||||||
|
- if (!some_transport && streq(udev_device_get_subsystem(dev), "block")) {
|
||||||
|
+ if (!supported_parent) {
|
||||||
|
+ free(path);
|
||||||
|
+ path = NULL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * Do not return a have-only a single-parent block devices, some
|
||||||
|
+ * have entire hidden buses behind it, and not create predictable
|
||||||
|
+ * IDs that way.
|
||||||
|
+ */
|
||||||
|
+ if (streq(udev_device_get_subsystem(dev), "block") && !supported_transport) {
|
||||||
|
free(path);
|
||||||
|
path = NULL;
|
||||||
|
}
|
@ -1,3 +1,53 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 26 12:13:42 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add upstream patches for hwdb
|
||||||
|
0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch
|
||||||
|
0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch
|
||||||
|
0003-keymap-Fix-HP-Pavillon-DV7.patch
|
||||||
|
0004-hwdb-update-format-description-and-document-reloadin.patch
|
||||||
|
0008-hwdb-update.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 26 11:25:57 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Port back and add the missed upstream patches from 2014/08/22
|
||||||
|
0004-login-set_controller-should-fail-if-prepare_vt-fails.patch
|
||||||
|
0006-login-share-VT-signal-handler-between-sessions.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Aug 22 15:12:23 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add upstream patches
|
||||||
|
0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch
|
||||||
|
0002-switch-root-umount-the-old-root-correctly.patch
|
||||||
|
0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch
|
||||||
|
0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch
|
||||||
|
0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch
|
||||||
|
0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch
|
||||||
|
0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch
|
||||||
|
0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch
|
||||||
|
0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch
|
||||||
|
0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch
|
||||||
|
1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Aug 22 01:29:06 UTC 2014 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- man pages from section 3 are developer docs, move them to
|
||||||
|
the -devel package.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Aug 20 15:06:25 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add patch 0001-let-systemctl-completion-ignore-at-names.patch to
|
||||||
|
remove error messages for tab completion for systemctl isolate (bnc#892162)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 18 14:40:55 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Disable the usage of the systemd groups wheel and adm (bnc#892300)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com
|
Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
%bcond_with blkrrpart
|
%bcond_with blkrrpart
|
||||||
%bcond_with udevsettle
|
%bcond_with udevsettle
|
||||||
%endif
|
%endif
|
||||||
|
%bcond_with systemgrps
|
||||||
|
|
||||||
Name: systemd-mini
|
Name: systemd-mini
|
||||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
@ -761,6 +762,42 @@ Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch
|
|||||||
Patch366: tomcat6-var-lock-subsys-legacy.patch
|
Patch366: tomcat6-var-lock-subsys-legacy.patch
|
||||||
# PATCH-FIX-UPSTREAM added at 2014/08/01
|
# PATCH-FIX-UPSTREAM added at 2014/08/01
|
||||||
Patch367: 0007-hwdb-update.patch
|
Patch367: 0007-hwdb-update.patch
|
||||||
|
# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162)
|
||||||
|
Patch368: 0001-let-systemctl-completion-ignore-at-names.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch370: 0002-switch-root-umount-the-old-root-correctly.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch385: 0008-hwdb-update.patch
|
||||||
|
|
||||||
# UDEV PATCHES
|
# UDEV PATCHES
|
||||||
# ============
|
# ============
|
||||||
@ -892,6 +929,8 @@ Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.p
|
|||||||
Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch
|
Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch
|
||||||
# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977)
|
# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977)
|
||||||
Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch
|
Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch
|
||||||
|
Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Systemd is a system and service manager, compatible with SysV and LSB
|
Systemd is a system and service manager, compatible with SysV and LSB
|
||||||
@ -1418,6 +1457,24 @@ cp %{SOURCE7} m4/
|
|||||||
%patch365 -p0
|
%patch365 -p0
|
||||||
%patch366 -p1
|
%patch366 -p1
|
||||||
%patch367 -p0
|
%patch367 -p0
|
||||||
|
%patch368 -p1
|
||||||
|
%patch369 -p0
|
||||||
|
%patch370 -p0
|
||||||
|
%patch371 -p0
|
||||||
|
%patch372 -p0
|
||||||
|
%patch373 -p0
|
||||||
|
%patch374 -p0
|
||||||
|
%patch375 -p0
|
||||||
|
%patch376 -p0
|
||||||
|
%patch377 -p0
|
||||||
|
%patch378 -p0
|
||||||
|
%patch379 -p0
|
||||||
|
%patch380 -p0
|
||||||
|
%patch381 -p0
|
||||||
|
%patch382 -p0
|
||||||
|
%patch383 -p0
|
||||||
|
%patch384 -p0
|
||||||
|
%patch385 -p0
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
@ -1503,6 +1560,10 @@ cp %{SOURCE7} m4/
|
|||||||
%patch1060 -p1
|
%patch1060 -p1
|
||||||
%patch1061 -p0
|
%patch1061 -p0
|
||||||
%patch1062 -p1
|
%patch1062 -p1
|
||||||
|
%patch1063 -p0
|
||||||
|
|
||||||
|
# remove patch backups
|
||||||
|
find -name '*.orig' -exec rm -f '{}' \+
|
||||||
|
|
||||||
# ensure generate files are removed
|
# ensure generate files are removed
|
||||||
rm -f units/emergency.service
|
rm -f units/emergency.service
|
||||||
@ -1904,8 +1965,10 @@ if read ID < /etc/machine-id > /dev/null 2>&1 ; then
|
|||||||
chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || :
|
chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || :
|
||||||
chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || :
|
chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || :
|
||||||
fi
|
fi
|
||||||
|
%if %{with systemgrps}
|
||||||
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
|
%endif
|
||||||
|
|
||||||
# Try to read default runlevel from the old inittab if it exists
|
# Try to read default runlevel from the old inittab if it exists
|
||||||
if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then
|
if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then
|
||||||
@ -2065,8 +2128,10 @@ exit 0
|
|||||||
%if %{with permission}
|
%if %{with permission}
|
||||||
%set_permissions %{_localstatedir}/log/journal/
|
%set_permissions %{_localstatedir}/log/journal/
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with systemgrps}
|
||||||
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
|
%endif
|
||||||
if [ "$1" -eq 1 ]; then
|
if [ "$1" -eq 1 ]; then
|
||||||
# tell journal to start logging on disk if directory didn't exist before
|
# tell journal to start logging on disk if directory didn't exist before
|
||||||
systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || :
|
systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || :
|
||||||
@ -2283,7 +2348,6 @@ exit 0
|
|||||||
%exclude %{_mandir}/man*/*udev*.[0-9]*
|
%exclude %{_mandir}/man*/*udev*.[0-9]*
|
||||||
%exclude %{_mandir}/man8/systemd-journal-gatewayd.*
|
%exclude %{_mandir}/man8/systemd-journal-gatewayd.*
|
||||||
%{_mandir}/man1/*.1*
|
%{_mandir}/man1/*.1*
|
||||||
%{_mandir}/man3/*.3*
|
|
||||||
%{_mandir}/man5/*.5*
|
%{_mandir}/man5/*.5*
|
||||||
%{_mandir}/man7/*.7*
|
%{_mandir}/man7/*.7*
|
||||||
%{_mandir}/man8/*.8*
|
%{_mandir}/man8/*.8*
|
||||||
@ -2345,6 +2409,9 @@ exit 0
|
|||||||
%{_libdir}/pkgconfig/libsystemd-login.pc
|
%{_libdir}/pkgconfig/libsystemd-login.pc
|
||||||
%{_libdir}/pkgconfig/libsystemd-id128.pc
|
%{_libdir}/pkgconfig/libsystemd-id128.pc
|
||||||
%{_libdir}/pkgconfig/libsystemd-journal.pc
|
%{_libdir}/pkgconfig/libsystemd-journal.pc
|
||||||
|
%if ! 0%{?bootstrap}
|
||||||
|
%{_mandir}/man3/*.3*
|
||||||
|
%endif
|
||||||
|
|
||||||
%files sysvinit
|
%files sysvinit
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
|
@ -1,3 +1,53 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 26 12:13:42 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add upstream patches for hwdb
|
||||||
|
0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch
|
||||||
|
0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch
|
||||||
|
0003-keymap-Fix-HP-Pavillon-DV7.patch
|
||||||
|
0004-hwdb-update-format-description-and-document-reloadin.patch
|
||||||
|
0008-hwdb-update.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 26 11:25:57 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Port back and add the missed upstream patches from 2014/08/22
|
||||||
|
0004-login-set_controller-should-fail-if-prepare_vt-fails.patch
|
||||||
|
0006-login-share-VT-signal-handler-between-sessions.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Aug 22 15:12:23 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add upstream patches
|
||||||
|
0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch
|
||||||
|
0002-switch-root-umount-the-old-root-correctly.patch
|
||||||
|
0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch
|
||||||
|
0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch
|
||||||
|
0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch
|
||||||
|
0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch
|
||||||
|
0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch
|
||||||
|
0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch
|
||||||
|
0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch
|
||||||
|
0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch
|
||||||
|
1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Aug 22 01:29:06 UTC 2014 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- man pages from section 3 are developer docs, move them to
|
||||||
|
the -devel package.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Aug 20 15:06:25 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Add patch 0001-let-systemctl-completion-ignore-at-names.patch to
|
||||||
|
remove error messages for tab completion for systemctl isolate (bnc#892162)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 18 14:40:55 UTC 2014 - werner@suse.de
|
||||||
|
|
||||||
|
- Disable the usage of the systemd groups wheel and adm (bnc#892300)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com
|
Fri Aug 8 12:47:48 UTC 2014 - rmilasan@suse.com
|
||||||
|
|
||||||
|
69
systemd.spec
69
systemd.spec
@ -38,6 +38,7 @@
|
|||||||
%bcond_with blkrrpart
|
%bcond_with blkrrpart
|
||||||
%bcond_with udevsettle
|
%bcond_with udevsettle
|
||||||
%endif
|
%endif
|
||||||
|
%bcond_with systemgrps
|
||||||
|
|
||||||
Name: systemd
|
Name: systemd
|
||||||
Url: http://www.freedesktop.org/wiki/Software/systemd
|
Url: http://www.freedesktop.org/wiki/Software/systemd
|
||||||
@ -756,6 +757,42 @@ Patch365: 0003-keymap-Annotate-all-micmute-workarounds.patch
|
|||||||
Patch366: tomcat6-var-lock-subsys-legacy.patch
|
Patch366: tomcat6-var-lock-subsys-legacy.patch
|
||||||
# PATCH-FIX-UPSTREAM added at 2014/08/01
|
# PATCH-FIX-UPSTREAM added at 2014/08/01
|
||||||
Patch367: 0007-hwdb-update.patch
|
Patch367: 0007-hwdb-update.patch
|
||||||
|
# PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162)
|
||||||
|
Patch368: 0001-let-systemctl-completion-ignore-at-names.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch369: 0001-nspawn-fix-truncation-of-machine-names-in-interface-.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch370: 0002-switch-root-umount-the-old-root-correctly.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch371: 0003-bootchart-it-s-not-OK-to-return-1-from-a-main-progra.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch372: 0004-login-set_controller-should-fail-if-prepare_vt-fails.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch373: 0005-sd-resolve-fix-allocation-if-query-ids-never-reuse-t.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch374: 0006-login-share-VT-signal-handler-between-sessions.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch375: 0007-journald-also-increase-the-SendBuffer-of-dev-log-to-.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch376: 0008-mount-setup-fix-counting-of-early-mounts-without-SMA.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch377: 0009-journald-Fix-off-by-one-error-in-Missed-X-kernel-mes.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch378: 0010-machine_kill-Don-t-kill-the-unit-when-killing-the-le.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch379: 0011-units-fix-BindsTo-logic-when-applied-relative-to-ser.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/22
|
||||||
|
Patch380: 0012-util-try-to-be-a-bit-more-NFS-compatible-when-checki.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch381: 0001-hwdb-keymaps-for-Samsung-900X3E-900X3F.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch382: 0002-Add-hwdb-entry-for-Samsung-Series-7-Ultra.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch383: 0003-keymap-Fix-HP-Pavillon-DV7.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch384: 0004-hwdb-update-format-description-and-document-reloadin.patch
|
||||||
|
# PATCH-FIX-UPSTREAM added at 2014/08/25
|
||||||
|
Patch385: 0008-hwdb-update.patch
|
||||||
|
|
||||||
# UDEV PATCHES
|
# UDEV PATCHES
|
||||||
# ============
|
# ============
|
||||||
@ -887,6 +924,8 @@ Patch1060: 1060-udev-use-device-mapper-target-name-for-btrfs-device-ready.p
|
|||||||
Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch
|
Patch1061: 1061-rules-allow-systemd-to-manage-loop-device-partitions.patch
|
||||||
# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977)
|
# PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977)
|
||||||
Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch
|
Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch
|
||||||
|
Patch1063: 1063-udev-path_id-suppress-ID_PATH-for-devices-with-an-un.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Systemd is a system and service manager, compatible with SysV and LSB
|
Systemd is a system and service manager, compatible with SysV and LSB
|
||||||
@ -1413,6 +1452,24 @@ cp %{SOURCE7} m4/
|
|||||||
%patch365 -p0
|
%patch365 -p0
|
||||||
%patch366 -p1
|
%patch366 -p1
|
||||||
%patch367 -p0
|
%patch367 -p0
|
||||||
|
%patch368 -p1
|
||||||
|
%patch369 -p0
|
||||||
|
%patch370 -p0
|
||||||
|
%patch371 -p0
|
||||||
|
%patch372 -p0
|
||||||
|
%patch373 -p0
|
||||||
|
%patch374 -p0
|
||||||
|
%patch375 -p0
|
||||||
|
%patch376 -p0
|
||||||
|
%patch377 -p0
|
||||||
|
%patch378 -p0
|
||||||
|
%patch379 -p0
|
||||||
|
%patch380 -p0
|
||||||
|
%patch381 -p0
|
||||||
|
%patch382 -p0
|
||||||
|
%patch383 -p0
|
||||||
|
%patch384 -p0
|
||||||
|
%patch385 -p0
|
||||||
|
|
||||||
# udev patches
|
# udev patches
|
||||||
%patch1001 -p1
|
%patch1001 -p1
|
||||||
@ -1498,6 +1555,10 @@ cp %{SOURCE7} m4/
|
|||||||
%patch1060 -p1
|
%patch1060 -p1
|
||||||
%patch1061 -p0
|
%patch1061 -p0
|
||||||
%patch1062 -p1
|
%patch1062 -p1
|
||||||
|
%patch1063 -p0
|
||||||
|
|
||||||
|
# remove patch backups
|
||||||
|
find -name '*.orig' -exec rm -f '{}' \+
|
||||||
|
|
||||||
# ensure generate files are removed
|
# ensure generate files are removed
|
||||||
rm -f units/emergency.service
|
rm -f units/emergency.service
|
||||||
@ -1899,8 +1960,10 @@ if read ID < /etc/machine-id > /dev/null 2>&1 ; then
|
|||||||
chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || :
|
chgrp systemd-journal %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || :
|
||||||
chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || :
|
chmod g+s %{_localstatedir}/log/journal/$ID > /dev/null 2>&1 || :
|
||||||
fi
|
fi
|
||||||
|
%if %{with systemgrps}
|
||||||
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
|
%endif
|
||||||
|
|
||||||
# Try to read default runlevel from the old inittab if it exists
|
# Try to read default runlevel from the old inittab if it exists
|
||||||
if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then
|
if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then
|
||||||
@ -2060,8 +2123,10 @@ exit 0
|
|||||||
%if %{with permission}
|
%if %{with permission}
|
||||||
%set_permissions %{_localstatedir}/log/journal/
|
%set_permissions %{_localstatedir}/log/journal/
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with systemgrps}
|
||||||
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || :
|
||||||
|
%endif
|
||||||
if [ "$1" -eq 1 ]; then
|
if [ "$1" -eq 1 ]; then
|
||||||
# tell journal to start logging on disk if directory didn't exist before
|
# tell journal to start logging on disk if directory didn't exist before
|
||||||
systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || :
|
systemctl --no-block restart systemd-journal-flush.service >/dev/null 2>&1 || :
|
||||||
@ -2278,7 +2343,6 @@ exit 0
|
|||||||
%exclude %{_mandir}/man*/*udev*.[0-9]*
|
%exclude %{_mandir}/man*/*udev*.[0-9]*
|
||||||
%exclude %{_mandir}/man8/systemd-journal-gatewayd.*
|
%exclude %{_mandir}/man8/systemd-journal-gatewayd.*
|
||||||
%{_mandir}/man1/*.1*
|
%{_mandir}/man1/*.1*
|
||||||
%{_mandir}/man3/*.3*
|
|
||||||
%{_mandir}/man5/*.5*
|
%{_mandir}/man5/*.5*
|
||||||
%{_mandir}/man7/*.7*
|
%{_mandir}/man7/*.7*
|
||||||
%{_mandir}/man8/*.8*
|
%{_mandir}/man8/*.8*
|
||||||
@ -2340,6 +2404,9 @@ exit 0
|
|||||||
%{_libdir}/pkgconfig/libsystemd-login.pc
|
%{_libdir}/pkgconfig/libsystemd-login.pc
|
||||||
%{_libdir}/pkgconfig/libsystemd-id128.pc
|
%{_libdir}/pkgconfig/libsystemd-id128.pc
|
||||||
%{_libdir}/pkgconfig/libsystemd-journal.pc
|
%{_libdir}/pkgconfig/libsystemd-journal.pc
|
||||||
|
%if ! 0%{?bootstrap}
|
||||||
|
%{_mandir}/man3/*.3*
|
||||||
|
%endif
|
||||||
|
|
||||||
%files sysvinit
|
%files sysvinit
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
|
Loading…
Reference in New Issue
Block a user