A new batch of fixes
This commit is contained in:
parent
d302ec3541
commit
ca73a27582
@ -0,0 +1,26 @@
|
||||
From a5c54f73b345b191b99cf47c8efe33afc0e4b066 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Tue, 14 Jan 2014 15:40:16 +0100
|
||||
Subject: [PATCH] coredumpctl: in case of error free pattern after print
|
||||
|
||||
---
|
||||
src/journal/coredumpctl.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/journal/coredumpctl.c b/src/journal/coredumpctl.c
|
||||
index 560a91b..a5997e2 100644
|
||||
--- a/src/journal/coredumpctl.c
|
||||
+++ b/src/journal/coredumpctl.c
|
||||
@@ -126,10 +126,11 @@ static int add_match(Set *set, const char *match) {
|
||||
goto fail;
|
||||
|
||||
log_debug("Adding pattern: %s", pattern);
|
||||
- r = set_consume(set, pattern);
|
||||
+ r = set_put(set, pattern);
|
||||
if (r < 0) {
|
||||
log_error("Failed to add pattern '%s': %s",
|
||||
pattern, strerror(-r));
|
||||
+ free(pattern);
|
||||
goto fail;
|
||||
}
|
||||
|
46
0240-shell-completion-remove-load-from-systemctl.patch
Normal file
46
0240-shell-completion-remove-load-from-systemctl.patch
Normal file
@ -0,0 +1,46 @@
|
||||
From 4028b4cf18191ca958d2ef6cced1d5087aeea976 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Nykryn <lnykryn@redhat.com>
|
||||
Date: Wed, 15 Jan 2014 15:31:07 +0100
|
||||
Subject: [PATCH] shell-completion: remove load from systemctl
|
||||
|
||||
Conflicts:
|
||||
shell-completion/bash/systemctl
|
||||
---
|
||||
shell-completion/bash/systemctl | 2 +-
|
||||
shell-completion/zsh/_systemctl | 3 +--
|
||||
2 files changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/shell-completion/bash/systemctl b/shell-completion/bash/systemctl
|
||||
index eea4b6d..84149e3 100644
|
||||
--- a/shell-completion/bash/systemctl
|
||||
+++ b/shell-completion/bash/systemctl
|
||||
@@ -141,7 +141,7 @@ _systemctl () {
|
||||
emergency exit halt hibernate hybrid-sleep kexec list-jobs
|
||||
list-sockets list-units list-unit-files poweroff reboot rescue
|
||||
show-environment suspend get-default'
|
||||
- [NAME]='snapshot load'
|
||||
+ [NAME]='snapshot'
|
||||
[FILE]='link'
|
||||
[TARGETS]='set-default'
|
||||
)
|
||||
diff --git a/shell-completion/zsh/_systemctl b/shell-completion/zsh/_systemctl
|
||||
index 3959cd5..6d98cb6 100644
|
||||
--- a/shell-completion/zsh/_systemctl
|
||||
+++ b/shell-completion/zsh/_systemctl
|
||||
@@ -24,7 +24,6 @@
|
||||
"status:Show runtime status of one or more units"
|
||||
"show:Show properties of one or more units/jobs or the manager"
|
||||
"reset-failed:Reset failed state for all, one, or more units"
|
||||
- "load:Load one or more units"
|
||||
"list-unit-files:List installed unit files"
|
||||
"enable:Enable one or more unit files"
|
||||
"disable:Disable one or more unit files"
|
||||
@@ -266,7 +265,7 @@ done
|
||||
# [STANDALONE]='daemon-reexec daemon-reload default
|
||||
# emergency exit halt kexec list-jobs list-units
|
||||
# list-unit-files poweroff reboot rescue show-environment'
|
||||
-# [NAME]='snapshot load'
|
||||
+# [NAME]='snapshot'
|
||||
|
||||
_systemctl_caching_policy()
|
||||
{
|
@ -0,0 +1,38 @@
|
||||
From 491712eabdbdb0693a8b04dfee02665094eb7576 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 17 Jan 2014 20:27:35 +0100
|
||||
Subject: [PATCH] units: drop [Install] section from multi-user.target and
|
||||
graphical.target
|
||||
|
||||
They were supposed to make it easy to make the default.target a symlink
|
||||
to these targets, but this was never advertised and we have a better
|
||||
command for this now in "systemctl set-default". Since the install
|
||||
section makes the output of "systemctl list-unit-files" confusing (since
|
||||
it makes the units appear as "disabled"), let's drop the sections.
|
||||
---
|
||||
units/graphical.target | 3 ---
|
||||
units/multi-user.target | 3 ---
|
||||
2 files changed, 6 deletions(-)
|
||||
|
||||
diff --git a/units/graphical.target b/units/graphical.target
|
||||
index 65f2521..a2c4532 100644
|
||||
--- a/units/graphical.target
|
||||
+++ b/units/graphical.target
|
||||
@@ -13,6 +13,3 @@ After=multi-user.target
|
||||
Conflicts=rescue.target
|
||||
Wants=display-manager.service
|
||||
AllowIsolate=yes
|
||||
-
|
||||
-[Install]
|
||||
-Alias=default.target
|
||||
diff --git a/units/multi-user.target b/units/multi-user.target
|
||||
index 998e046..0f0e5e9 100644
|
||||
--- a/units/multi-user.target
|
||||
+++ b/units/multi-user.target
|
||||
@@ -12,6 +12,3 @@ Requires=basic.target
|
||||
Conflicts=rescue.service rescue.target
|
||||
After=basic.target rescue.service rescue.target
|
||||
AllowIsolate=yes
|
||||
-
|
||||
-[Install]
|
||||
-Alias=default.target
|
@ -0,0 +1,27 @@
|
||||
From d953cda9e6b3e41f419b63a35632edc8f769a7d0 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Mon, 20 Jan 2014 13:43:20 +0100
|
||||
Subject: [PATCH] systemctl: skip native unit file handling if sysv file
|
||||
handling already handled everything
|
||||
|
||||
Issue pointed out by Colin Guthrie.
|
||||
---
|
||||
src/systemctl/systemctl.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
|
||||
index bc9808a..da49da7 100644
|
||||
--- a/src/systemctl/systemctl.c
|
||||
+++ b/src/systemctl/systemctl.c
|
||||
@@ -4436,6 +4436,11 @@ static int enable_unit(DBusConnection *bus, char **args) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
+ /* If the operation was fully executed by the SysV compat,
|
||||
+ * let's finish early */
|
||||
+ if (strv_isempty(mangled_names))
|
||||
+ return 0;
|
||||
+
|
||||
if (!bus || avoid_bus()) {
|
||||
if (streq(verb, "enable")) {
|
||||
r = unit_file_enable(arg_scope, arg_runtime, arg_root, mangled_names, arg_force, &changes, &n_changes);
|
@ -0,0 +1,35 @@
|
||||
From abcf860569fc85e7a6eb05606d579b6f2e6de898 Mon Sep 17 00:00:00 2001
|
||||
From: Marcel Holtmann <marcel@holtmann.org>
|
||||
Date: Mon, 20 Jan 2014 17:53:16 -0800
|
||||
Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
|
||||
|
||||
---
|
||||
hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb
|
||||
index 192b715..6a9dc50 100644
|
||||
--- a/hwdb/20-bluetooth-vendor-product.hwdb
|
||||
+++ b/hwdb/20-bluetooth-vendor-product.hwdb
|
||||
@@ -851,3 +851,21 @@ bluetooth:v0119*
|
||||
|
||||
bluetooth:v011A*
|
||||
ID_VENDOR_FROM_DATABASE=Qualcomm Labs, Inc.
|
||||
+
|
||||
+bluetooth:v011B*
|
||||
+ ID_VENDOR_FROM_DATABASE=Aruba Networks
|
||||
+
|
||||
+bluetooth:v011C*
|
||||
+ ID_VENDOR_FROM_DATABASE=Baidu
|
||||
+
|
||||
+bluetooth:v011D*
|
||||
+ ID_VENDOR_FROM_DATABASE=Arendi AG
|
||||
+
|
||||
+bluetooth:v011E*
|
||||
+ ID_VENDOR_FROM_DATABASE=Skoda Auto a.s.
|
||||
+
|
||||
+bluetooth:v011F*
|
||||
+ ID_VENDOR_FROM_DATABASE=Volkswagon AG
|
||||
+
|
||||
+bluetooth:v0120*
|
||||
+ ID_VENDOR_FROM_DATABASE=Porsche AG
|
@ -0,0 +1,75 @@
|
||||
From 87041721ccfc9472d9c4f229402e342ba6c855b0 Mon Sep 17 00:00:00 2001
|
||||
From: Kay Sievers <kay@vrfy.org>
|
||||
Date: Wed, 22 Jan 2014 10:47:48 +0100
|
||||
Subject: [PATCH] udev: static_node - do not exit rule after first static_node
|
||||
item
|
||||
|
||||
The nodes usually do not exist, so handle the next item instead of
|
||||
skipping the entire rule.
|
||||
---
|
||||
src/udev/udev-rules.c | 21 ++++++++++-----------
|
||||
1 file changed, 10 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
|
||||
index 6f8b127..c981773 100644
|
||||
--- a/src/udev/udev-rules.c
|
||||
+++ b/src/udev/udev-rules.c
|
||||
@@ -900,6 +900,7 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type,
|
||||
case TK_A_GOTO:
|
||||
case TK_M_TAG:
|
||||
case TK_A_TAG:
|
||||
+ case TK_A_STATIC_NODE:
|
||||
token->key.value_off = rules_add_string(rule_tmp->rules, value);
|
||||
break;
|
||||
case TK_M_IMPORT_BUILTIN:
|
||||
@@ -942,9 +943,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type,
|
||||
case TK_A_MODE_ID:
|
||||
token->key.mode = *(mode_t *)data;
|
||||
break;
|
||||
- case TK_A_STATIC_NODE:
|
||||
- token->key.value_off = rules_add_string(rule_tmp->rules, value);
|
||||
- break;
|
||||
case TK_M_EVENT_TIMEOUT:
|
||||
token->key.event_timeout = *(int *)data;
|
||||
break;
|
||||
@@ -992,7 +990,7 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type,
|
||||
}
|
||||
|
||||
if (attr != NULL) {
|
||||
- /* check if property/attribut name has substitution chars */
|
||||
+ /* check if property/attribute name has substitution chars */
|
||||
if (attr[0] == '[')
|
||||
token->key.attrsubst = SB_SUBSYS;
|
||||
else if (strchr(attr, '%') != NULL || strchr(attr, '$') != NULL)
|
||||
@@ -2576,15 +2574,11 @@ int udev_rules_apply_static_dev_perms(struct udev_rules *rules)
|
||||
/* we assure, that the permissions tokens are sorted before the static token */
|
||||
if (mode == 0 && uid == 0 && gid == 0 && tags == NULL)
|
||||
goto next;
|
||||
+
|
||||
strscpyl(device_node, sizeof(device_node), "/dev/", rules_str(rules, cur->key.value_off), NULL);
|
||||
- if (stat(device_node, &stats) != 0)
|
||||
- goto next;
|
||||
- if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode))
|
||||
- goto next;
|
||||
|
||||
+ /* export the tags to a directory as symlinks, allowing otherwise dead nodes to be tagged */
|
||||
if (tags) {
|
||||
- /* Export the tags to a directory as symlinks, allowing otherwise dead nodes to be tagged */
|
||||
-
|
||||
STRV_FOREACH(t, tags) {
|
||||
_cleanup_free_ char *unescaped_filename = NULL;
|
||||
|
||||
@@ -2609,7 +2603,12 @@ int udev_rules_apply_static_dev_perms(struct udev_rules *rules)
|
||||
|
||||
/* don't touch the permissions if only the tags were set */
|
||||
if (mode == 0 && uid == 0 && gid == 0)
|
||||
- goto next;
|
||||
+ break;
|
||||
+
|
||||
+ if (stat(device_node, &stats) != 0)
|
||||
+ break;
|
||||
+ if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode))
|
||||
+ break;
|
||||
|
||||
if (mode == 0) {
|
||||
if (gid > 0)
|
91
0245-cryptsetup-Support-key-slot-option.patch
Normal file
91
0245-cryptsetup-Support-key-slot-option.patch
Normal file
@ -0,0 +1,91 @@
|
||||
From 47ac3edbade8ab5f4a205f2c1bad11ec9643b8b6 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Seiler <christian@iwakd.de>
|
||||
Date: Sun, 26 Jan 2014 12:02:49 +0100
|
||||
Subject: [PATCH] cryptsetup: Support key-slot option
|
||||
|
||||
Debian recently introduced the option key-slot to /etc/crypttab to
|
||||
specify the LUKS key slot to be used for decrypting the device. On
|
||||
systems where a keyfile is used and the key is not in the first slot,
|
||||
this can speed up the boot process quite a bit, since cryptsetup does
|
||||
not need to try all of the slots sequentially. (Unsuccessfully testing
|
||||
a key slot typically takes up to about 1 second.)
|
||||
|
||||
This patch makes systemd aware of this option.
|
||||
|
||||
Debian bug that introduced the feature:
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=704470
|
||||
---
|
||||
man/crypttab.xml | 14 ++++++++++++++
|
||||
src/cryptsetup/cryptsetup.c | 13 +++++++++++--
|
||||
2 files changed, 25 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/man/crypttab.xml b/man/crypttab.xml
|
||||
index 90d8ce9..5f386e5 100644
|
||||
--- a/man/crypttab.xml
|
||||
+++ b/man/crypttab.xml
|
||||
@@ -164,6 +164,20 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
+ <term><varname>key-slot=</varname></term>
|
||||
+
|
||||
+ <listitem><para>Specifies the key slot to
|
||||
+ compare the passphrase or key against.
|
||||
+ If the key slot does not match the given
|
||||
+ passphrase or key, but another would, the
|
||||
+ setup of the device will fail regardless.
|
||||
+ This implies <varname>luks</varname>. See
|
||||
+ <citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
+ for possible values. The default is to try
|
||||
+ all key slots in sequential order.</para></listitem>
|
||||
+ </varlistentry>
|
||||
+
|
||||
+ <varlistentry>
|
||||
<term><varname>luks</varname></term>
|
||||
|
||||
<listitem><para>Force LUKS mode. When this mode
|
||||
diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c
|
||||
index 39f7db7..6a76d21 100644
|
||||
--- a/src/cryptsetup/cryptsetup.c
|
||||
+++ b/src/cryptsetup/cryptsetup.c
|
||||
@@ -39,6 +39,7 @@
|
||||
static const char *opt_type = NULL; /* CRYPT_LUKS1, CRYPT_TCRYPT or CRYPT_PLAIN */
|
||||
static char *opt_cipher = NULL;
|
||||
static unsigned opt_key_size = 0;
|
||||
+static int opt_key_slot = CRYPT_ANY_SLOT;
|
||||
static unsigned opt_keyfile_size = 0;
|
||||
static unsigned opt_keyfile_offset = 0;
|
||||
static char *opt_hash = NULL;
|
||||
@@ -87,6 +88,14 @@ static int parse_one_option(const char *option) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
+ } else if (startswith(option, "key-slot=")) {
|
||||
+
|
||||
+ opt_type = CRYPT_LUKS1;
|
||||
+ if (safe_atoi(option+9, &opt_key_slot) < 0) {
|
||||
+ log_error("key-slot= parse failure, ignoring.");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
} else if (startswith(option, "tcrypt-keyfile=")) {
|
||||
|
||||
opt_type = CRYPT_TCRYPT;
|
||||
@@ -432,7 +441,7 @@ static int attach_luks_or_plain(struct crypt_device *cd,
|
||||
crypt_get_device_name(cd));
|
||||
|
||||
if (key_file) {
|
||||
- r = crypt_activate_by_keyfile_offset(cd, name, CRYPT_ANY_SLOT,
|
||||
+ r = crypt_activate_by_keyfile_offset(cd, name, opt_key_slot,
|
||||
key_file, opt_keyfile_size,
|
||||
opt_keyfile_offset, flags);
|
||||
if (r < 0) {
|
||||
@@ -446,7 +455,7 @@ static int attach_luks_or_plain(struct crypt_device *cd,
|
||||
if (pass_volume_key)
|
||||
r = crypt_activate_by_volume_key(cd, name, *p, opt_key_size, flags);
|
||||
else
|
||||
- r = crypt_activate_by_passphrase(cd, name, CRYPT_ANY_SLOT, *p, strlen(*p), flags);
|
||||
+ r = crypt_activate_by_passphrase(cd, name, opt_key_slot, *p, strlen(*p), flags);
|
||||
|
||||
if (r >= 0)
|
||||
break;
|
28
0246-pam_systemd-Ignore-vtnr-when-seat-seat0.patch
Normal file
28
0246-pam_systemd-Ignore-vtnr-when-seat-seat0.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From 2373386db2501528c74e2f547c2c5d27d81be35b Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Monaco <matthew.monaco@0x01b.net>
|
||||
Date: Fri, 24 Jan 2014 11:23:01 -0700
|
||||
Subject: [PATCH] pam_systemd: Ignore vtnr when seat != seat0
|
||||
|
||||
logind considers it an error for a seat other than seat0 to have a
|
||||
non-zero vtnr for CreateSession
|
||||
---
|
||||
src/login/pam-module.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/login/pam-module.c b/src/login/pam-module.c
|
||||
index 973daf7..7ebb5d2 100644
|
||||
--- a/src/login/pam-module.c
|
||||
+++ b/src/login/pam-module.c
|
||||
@@ -335,6 +335,12 @@ _public_ PAM_EXTERN int pam_sm_open_session(
|
||||
get_seat_from_display(display, NULL, &vtnr);
|
||||
}
|
||||
|
||||
+ if (seat && !streq(seat, "seat0")) {
|
||||
+ pam_syslog(handle, LOG_DEBUG,
|
||||
+ "Ignoring vtnr %d for %s which is not seat0", vtnr, seat);
|
||||
+ vtnr = 0;
|
||||
+ }
|
||||
+
|
||||
if (!type)
|
||||
type = !isempty(display) ? "x11" :
|
||||
!isempty(tty) ? "tty" : "unspecified";
|
37
0247-keymap-Add-HP-Chromebook-14-Falco.patch
Normal file
37
0247-keymap-Add-HP-Chromebook-14-Falco.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 815422d1be5fab4acaa8c1c752342752a0935e3a Mon Sep 17 00:00:00 2001
|
||||
From: Martin Pitt <martinpitt@gnome.org>
|
||||
Date: Mon, 27 Jan 2014 09:04:22 +0100
|
||||
Subject: [PATCH] keymap: Add HP Chromebook 14 (Falco)
|
||||
|
||||
Thanks to Stefan Nagy <public@stefan-nagy.at>.
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index e3d1f02..c027cbe 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -417,6 +417,22 @@ keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHDX9494NR:pvr*
|
||||
KEYBOARD_KEY_d8=!f23 # touchpad off
|
||||
KEYBOARD_KEY_d9=!f22 # touchpad on
|
||||
|
||||
+# Chromebook 14
|
||||
+# Top row keys (between ESC and power button)
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnFalco:pvr*
|
||||
+ KEYBOARD_KEY_3b=back
|
||||
+ KEYBOARD_KEY_3c=forward
|
||||
+ KEYBOARD_KEY_3d=refresh
|
||||
+ KEYBOARD_KEY_3f=switchvideomode
|
||||
+ KEYBOARD_KEY_40=brightnessdown
|
||||
+ KEYBOARD_KEY_41=brightnessup
|
||||
+ KEYBOARD_KEY_42=mute
|
||||
+ KEYBOARD_KEY_43=volumedown
|
||||
+ KEYBOARD_KEY_44=volumeup
|
||||
+ KEYBOARD_KEY_db=search # Same position as caps lock key on most keyboards
|
||||
+# KEYBOARD_KEY_3e=fullscreen, no defined key sym
|
||||
+
|
||||
+
|
||||
###########################################################
|
||||
# IBM
|
||||
###########################################################
|
@ -0,0 +1,24 @@
|
||||
From ad001361e54d4e04175acd7f0eca55ffcb5e19ad Mon Sep 17 00:00:00 2001
|
||||
From: Martin Pitt <martinpitt@gnome.org>
|
||||
Date: Tue, 28 Jan 2014 18:10:12 +0100
|
||||
Subject: [PATCH] keymap: Add release quirk for Acer AOA switchvideomode key
|
||||
|
||||
https://launchpad.net/bugs/1272658
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index c027cbe..52d9a2a 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -118,6 +118,9 @@ keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*6593:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*1640:*
|
||||
KEYBOARD_KEY_ee=screenlock
|
||||
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOA*:pvr*
|
||||
+ KEYBOARD_KEY_a9=!switchvideomode # Fn+F5
|
||||
+
|
||||
###########################################################
|
||||
# Alienware
|
||||
###########################################################
|
24
0249-keymap-Add-Sony-Vaio-VGN-FW250.patch
Normal file
24
0249-keymap-Add-Sony-Vaio-VGN-FW250.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From cf981a6c17d44d00c385fe8a9ed7b8259533006d Mon Sep 17 00:00:00 2001
|
||||
From: Martin Pitt <martinpitt@gnome.org>
|
||||
Date: Tue, 28 Jan 2014 18:14:18 +0100
|
||||
Subject: [PATCH] keymap: Add Sony Vaio VGN-FW250
|
||||
|
||||
https://launchpad.net/bugs/1271163
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index 52d9a2a..ea206bb 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -981,6 +981,9 @@ keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-Z21*:pvr*
|
||||
KEYBOARD_KEY_17=prog1
|
||||
KEYBOARD_KEY_20=media
|
||||
|
||||
+keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW250*:pvr*
|
||||
+ KEYBOARD_KEY_10=suspend # Fn+F12
|
||||
+
|
||||
keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:pvr*
|
||||
KEYBOARD_KEY_05=f21 # Fn+F1 -> KEY_F21 (The actual touchpad toggle)
|
||||
KEYBOARD_KEY_0d=zoomout # Fn+F9
|
22
0250-keymap-Add-Toshiba-EQUIUM.patch
Normal file
22
0250-keymap-Add-Toshiba-EQUIUM.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From 8b690dd3c8d28ff107a9992e7405126a02ee7ae2 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Pitt <martinpitt@gnome.org>
|
||||
Date: Wed, 29 Jan 2014 16:13:22 +0100
|
||||
Subject: [PATCH] keymap: Add Toshiba EQUIUM
|
||||
|
||||
Thanks Aleksander Kowalski <aleksander.kowalski.1@gmail.com>!
|
||||
---
|
||||
hwdb/60-keyboard.hwdb | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb
|
||||
index ea206bb..f9084e4 100644
|
||||
--- a/hwdb/60-keyboard.hwdb
|
||||
+++ b/hwdb/60-keyboard.hwdb
|
||||
@@ -1089,6 +1089,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnPEGATRON*CORP.:pnSpring*Peak:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite*[uU][35]0[05]*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSATELLITE*[uU][35]0[05]*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite*Pro*[uU]300*:pvr*
|
||||
+keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnEQUIUM [uU][35]0[05]*:pvr*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnViooo*Corporation:pnPT17:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnHANNspree:pnSN10E100:*
|
||||
keyboard:dmi:bvn*:bvr*:bd*:svnGIGABYTE:pni1520M:*
|
39
0251-tmpfiles-fix-memory-leak-of-exclude_prefixes.patch
Normal file
39
0251-tmpfiles-fix-memory-leak-of-exclude_prefixes.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From 85e9236488cfad07cc0aa4d23610bc25039dda27 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Thu, 30 Jan 2014 21:40:27 -0500
|
||||
Subject: [PATCH] tmpfiles: fix memory leak of exclude_prefixes
|
||||
|
||||
Missed in 5c795114.
|
||||
---
|
||||
src/tmpfiles/tmpfiles.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
|
||||
index 5e49cc8..fb88acd 100644
|
||||
--- a/src/tmpfiles/tmpfiles.c
|
||||
+++ b/src/tmpfiles/tmpfiles.c
|
||||
@@ -1332,12 +1332,12 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
break;
|
||||
|
||||
case ARG_PREFIX:
|
||||
- if (strv_extend(&include_prefixes, optarg) < 0)
|
||||
+ if (strv_push(&include_prefixes, optarg) < 0)
|
||||
return log_oom();
|
||||
break;
|
||||
|
||||
case ARG_EXCLUDE_PREFIX:
|
||||
- if (strv_extend(&exclude_prefixes, optarg) < 0)
|
||||
+ if (strv_push(&exclude_prefixes, optarg) < 0)
|
||||
return log_oom();
|
||||
break;
|
||||
|
||||
@@ -1498,7 +1498,8 @@ finish:
|
||||
hashmap_free(items);
|
||||
hashmap_free(globs);
|
||||
|
||||
- strv_free(include_prefixes);
|
||||
+ free(include_prefixes);
|
||||
+ free(exclude_prefixes);
|
||||
|
||||
set_free_free(unix_sockets);
|
||||
|
34
0252-analyze-fix-plot-issues-when-using-gummiboot.patch
Normal file
34
0252-analyze-fix-plot-issues-when-using-gummiboot.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 982c437cfa1dc189fb650e00c6124e00f2c6de68 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Fri, 31 Jan 2014 07:07:20 +0100
|
||||
Subject: [PATCH] analyze: fix plot issues when using gummiboot
|
||||
|
||||
It would crash and the legend in the bottom followed the time 0.0.
|
||||
---
|
||||
src/analyze/systemd-analyze.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/analyze/systemd-analyze.c b/src/analyze/systemd-analyze.c
|
||||
index f4c7f68..317baf9 100644
|
||||
--- a/src/analyze/systemd-analyze.c
|
||||
+++ b/src/analyze/systemd-analyze.c
|
||||
@@ -540,7 +540,7 @@ static int analyze_plot(DBusConnection *bus) {
|
||||
name.nodename, name.release, name.version, name.machine);
|
||||
|
||||
svg("<g transform=\"translate(%.3f,100)\">\n", 20.0 + (SCALE_X * boot->firmware_time));
|
||||
- svg_graph_box(m, -boot->firmware_time, boot->finish_time);
|
||||
+ svg_graph_box(m, -(double) boot->firmware_time, boot->finish_time);
|
||||
|
||||
if (boot->firmware_time) {
|
||||
svg_bar("firmware", -(double) boot->firmware_time, -(double) boot->loader_time, y);
|
||||
@@ -589,7 +589,10 @@ static int analyze_plot(DBusConnection *bus) {
|
||||
y++;
|
||||
}
|
||||
|
||||
+ svg("</g>\n");
|
||||
+
|
||||
/* Legend */
|
||||
+ svg("<g transform=\"translate(20,100)\">\n");
|
||||
y++;
|
||||
svg_bar("activating", 0, 300000, y);
|
||||
svg_text(true, 400000, y, "Activating");
|
@ -0,0 +1,26 @@
|
||||
From 66065b8d9cd1bb7e488fd84d4f19d34487bf29a7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?J=C3=B3hann=20B=2E=20Gu=C3=B0mundsson?= <johannbg@gmail.com>
|
||||
Date: Sun, 2 Feb 2014 13:29:19 +0000
|
||||
Subject: [PATCH] udev: add zram to the list of devices inappropriate for
|
||||
symlinks
|
||||
|
||||
udev seems to have a race condition with swapon to see which can open
|
||||
/dev/zram0 first, causing swapon to fail. Seems to be most noticeable
|
||||
on arm devices one out of every 7 times or something.
|
||||
---
|
||||
rules/60-persistent-storage.rules | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
|
||||
index a4d009a..154ffd9 100644
|
||||
--- a/rules/60-persistent-storage.rules
|
||||
+++ b/rules/60-persistent-storage.rules
|
||||
@@ -14,7 +14,7 @@ ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_
|
||||
SUBSYSTEM!="block", GOTO="persistent_storage_end"
|
||||
|
||||
# skip rules for inappropriate block devices
|
||||
-KERNEL=="fd*|mtd*|nbd*|gnbd*|btibm*|dm-*|md*", GOTO="persistent_storage_end"
|
||||
+KERNEL=="fd*|mtd*|nbd*|gnbd*|btibm*|dm-*|md*|zram*", GOTO="persistent_storage_end"
|
||||
|
||||
# ignore partitions that span the entire disk
|
||||
TEST=="whole_disk", GOTO="persistent_storage_end"
|
116
0254-bash-completion-fix-completion-of-complete-verbs.patch
Normal file
116
0254-bash-completion-fix-completion-of-complete-verbs.patch
Normal file
@ -0,0 +1,116 @@
|
||||
From f00ffd4f0ab82c38125d2292f8f429aa22865dc3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Thu, 6 Feb 2014 00:31:22 -0500
|
||||
Subject: [PATCH] bash-completion: fix completion of complete verbs
|
||||
|
||||
When doing 'command verb<TAB>', the arguments for verb would be
|
||||
proposed, but it is too early. We should complete verb first.
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=74596
|
||||
|
||||
Conflicts:
|
||||
shell-completion/bash/busctl
|
||||
shell-completion/bash/loginctl
|
||||
shell-completion/bash/systemctl
|
||||
shell-completion/bash/systemd-analyze
|
||||
---
|
||||
shell-completion/bash/hostnamectl | 2 +-
|
||||
shell-completion/bash/localectl | 2 +-
|
||||
shell-completion/bash/loginctl | 2 +-
|
||||
shell-completion/bash/systemctl | 2 +-
|
||||
shell-completion/bash/systemd-analyze | 2 +-
|
||||
shell-completion/bash/timedatectl | 2 +-
|
||||
shell-completion/bash/udevadm | 2 +-
|
||||
7 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/shell-completion/bash/hostnamectl b/shell-completion/bash/hostnamectl
|
||||
index 38ab134..9c75da9 100644
|
||||
--- a/shell-completion/bash/hostnamectl
|
||||
+++ b/shell-completion/bash/hostnamectl
|
||||
@@ -41,7 +41,7 @@ _hostnamectl() {
|
||||
[NAME]='set-hostname'
|
||||
)
|
||||
|
||||
- for ((i=0; i <= COMP_CWORD; i++)); do
|
||||
+ for ((i=0; i < COMP_CWORD; i++)); do
|
||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
|
||||
verb=${COMP_WORDS[i]}
|
||||
break
|
||||
diff --git a/shell-completion/bash/localectl b/shell-completion/bash/localectl
|
||||
index bec9e78..84e2a6b 100644
|
||||
--- a/shell-completion/bash/localectl
|
||||
+++ b/shell-completion/bash/localectl
|
||||
@@ -52,7 +52,7 @@ _localectl() {
|
||||
[X11]='set-x11-keymap'
|
||||
)
|
||||
|
||||
- for ((i=0; i <= COMP_CWORD; i++)); do
|
||||
+ for ((i=0; i < COMP_CWORD; i++)); do
|
||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
|
||||
verb=${COMP_WORDS[i]}
|
||||
break
|
||||
diff --git a/shell-completion/bash/loginctl b/shell-completion/bash/loginctl
|
||||
index 3104b30..26a8696 100644
|
||||
--- a/shell-completion/bash/loginctl
|
||||
+++ b/shell-completion/bash/loginctl
|
||||
@@ -70,7 +70,7 @@ _loginctl () {
|
||||
[ATTACH]='attach'
|
||||
)
|
||||
|
||||
- for ((i=0; $i <= $COMP_CWORD; i++)); do
|
||||
+ for ((i=0; i < COMP_CWORD; i++)); do
|
||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||
verb=${COMP_WORDS[i]}
|
||||
diff --git a/shell-completion/bash/systemctl b/shell-completion/bash/systemctl
|
||||
index 84149e3..a5f10b4 100644
|
||||
--- a/shell-completion/bash/systemctl
|
||||
+++ b/shell-completion/bash/systemctl
|
||||
@@ -146,7 +146,7 @@ _systemctl () {
|
||||
[TARGETS]='set-default'
|
||||
)
|
||||
|
||||
- for ((i=0; $i <= $COMP_CWORD; i++)); do
|
||||
+ for ((i=0; i < COMP_CWORD; i++)); do
|
||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||
verb=${COMP_WORDS[i]}
|
||||
diff --git a/shell-completion/bash/systemd-analyze b/shell-completion/bash/systemd-analyze
|
||||
index b65466b..6afcd96 100644
|
||||
--- a/shell-completion/bash/systemd-analyze
|
||||
+++ b/shell-completion/bash/systemd-analyze
|
||||
@@ -39,7 +39,7 @@ _systemd_analyze() {
|
||||
|
||||
_init_completion || return
|
||||
|
||||
- for ((i=0; $i <= $COMP_CWORD; i++)); do
|
||||
+ for ((i=0; i < COMP_CWORD; i++)); do
|
||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]} &&
|
||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||
verb=${COMP_WORDS[i]}
|
||||
diff --git a/shell-completion/bash/timedatectl b/shell-completion/bash/timedatectl
|
||||
index c6a6545..1a0acc6 100644
|
||||
--- a/shell-completion/bash/timedatectl
|
||||
+++ b/shell-completion/bash/timedatectl
|
||||
@@ -52,7 +52,7 @@ _timedatectl() {
|
||||
[TIME]='set-time'
|
||||
)
|
||||
|
||||
- for ((i=0; i <= COMP_CWORD; i++)); do
|
||||
+ for ((i=0; i < COMP_CWORD; i++)); do
|
||||
if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then
|
||||
verb=${COMP_WORDS[i]}
|
||||
break
|
||||
diff --git a/shell-completion/bash/udevadm b/shell-completion/bash/udevadm
|
||||
index 8ad8550..7e89189 100644
|
||||
--- a/shell-completion/bash/udevadm
|
||||
+++ b/shell-completion/bash/udevadm
|
||||
@@ -36,7 +36,7 @@ _udevadm() {
|
||||
|
||||
local verbs=(info trigger settle control monitor hwdb test-builtin test)
|
||||
|
||||
- for ((i=0; i <= COMP_CWORD; i++)); do
|
||||
+ for ((i=0; i < COMP_CWORD; i++)); do
|
||||
if __contains_word "${COMP_WORDS[i]}" "${verbs[@]}" &&
|
||||
! __contains_word "${COMP_WORDS[i-1]}" ${OPTS[ARG]}; then
|
||||
verb=${COMP_WORDS[i]}
|
@ -0,0 +1,81 @@
|
||||
From 827591e3b789844ec103338573cf8ed82231c0ad Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Thu, 6 Feb 2014 11:59:33 -0500
|
||||
Subject: [PATCH] shell-completion: fix completion of localectl set-locale
|
||||
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=74157
|
||||
---
|
||||
shell-completion/bash/localectl | 20 ++++++++++++++++++--
|
||||
shell-completion/zsh/_localectl | 13 +++++++++----
|
||||
2 files changed, 27 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/shell-completion/bash/localectl b/shell-completion/bash/localectl
|
||||
index 84e2a6b..c9e22af 100644
|
||||
--- a/shell-completion/bash/localectl
|
||||
+++ b/shell-completion/bash/localectl
|
||||
@@ -24,8 +24,14 @@ __contains_word () {
|
||||
done
|
||||
}
|
||||
|
||||
+__locale_fields=( LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME \
|
||||
+ LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER \
|
||||
+ LC_NAME LC_ADDRESS LC_TELEPHONE \
|
||||
+ LC_MEASUREMENT LC_IDENTIFICATION )
|
||||
+# LC_ALL is omitted on purpose
|
||||
+
|
||||
_localectl() {
|
||||
- local i verb comps
|
||||
+ local i verb comps locale_vals
|
||||
local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||
local OPTS='-h --help --version --no-convert --no-pager --no-ask-password
|
||||
-H --host'
|
||||
@@ -62,7 +68,17 @@ _localectl() {
|
||||
if [[ -z $verb ]]; then
|
||||
comps=${VERBS[*]}
|
||||
elif __contains_word "$verb" ${VERBS[LOCALES]}; then
|
||||
- comps=$(command localectl list-locales)
|
||||
+ if [[ $cur = *=* ]]; then
|
||||
+ mapfile -t locale_vals < <(command localectl list-locales 2>/dev/null)
|
||||
+ COMPREPLY=( $(compgen -W '${locale_vals[*]}' -- "${cur#=}") )
|
||||
+ elif [[ $prev = "=" ]]; then
|
||||
+ mapfile -t locale_vals < <(command localectl list-locales 2>/dev/null)
|
||||
+ COMPREPLY=( $(compgen -W '${locale_vals[*]}' -- "$cur") )
|
||||
+ else
|
||||
+ compopt -o nospace
|
||||
+ COMPREPLY=( $(compgen -W '${__locale_fields[*]}' -S= -- "$cur") )
|
||||
+ fi
|
||||
+ return 0
|
||||
elif __contains_word "$verb" ${VERBS[KEYMAPS]}; then
|
||||
comps=$(command localectl list-keymaps)
|
||||
elif __contains_word "$verb" ${VERBS[STANDALONE]} ${VERBS[X11]}; then
|
||||
diff --git a/shell-completion/zsh/_localectl b/shell-completion/zsh/_localectl
|
||||
index 3d76bb0..c04f4f3 100644
|
||||
--- a/shell-completion/zsh/_localectl
|
||||
+++ b/shell-completion/zsh/_localectl
|
||||
@@ -1,17 +1,22 @@
|
||||
#compdef localectl
|
||||
|
||||
_localectl_set-locale() {
|
||||
- local -a _confs _locales
|
||||
+ local -a _locales locale_fields
|
||||
+ locale_fields=(LANG LANGUAGE LC_CTYPE LC_NUMERIC LC_TIME \
|
||||
+ LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER \
|
||||
+ LC_NAME LC_ADDRESS LC_TELEPHONE \
|
||||
+ LC_MEASUREMENT LC_IDENTIFICATION)
|
||||
+ # LC_ALL is omitted on purpose
|
||||
+
|
||||
local expl suf
|
||||
_locales=( ${(f)"$(_call_program locales "$service" list-locales)"} )
|
||||
- _confs=( ${${(f)"$(_call_program confs "locale 2>/dev/null")"}%\=*} )
|
||||
+ compset -P1 '*='
|
||||
if [[ -prefix 1 *\= ]]; then
|
||||
local conf=${PREFIX%%\=*}
|
||||
- compset -P1 '*='
|
||||
_wanted locales expl "locales configs" \
|
||||
_combination localeconfs confs=$conf locales "$@" -
|
||||
else
|
||||
- compadd -S '=' $_confs
|
||||
+ compadd -S '=' $locale_fields
|
||||
fi
|
||||
}
|
||||
|
@ -0,0 +1,24 @@
|
||||
From 7f10373aa0b75725edb66917fc31a17c65750a7c Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Thu, 6 Feb 2014 18:15:47 +0100
|
||||
Subject: [PATCH] zsh-completions: kernel-install - only show existing kernels
|
||||
for 'remove'
|
||||
|
||||
When we remove a kernel, we don't remove the modules, so don't look at the modules directory to find installed kernels.
|
||||
---
|
||||
shell-completion/zsh/_kernel-install | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/shell-completion/zsh/_kernel-install b/shell-completion/zsh/_kernel-install
|
||||
index 0655188..4fdd3a4 100644
|
||||
--- a/shell-completion/zsh/_kernel-install
|
||||
+++ b/shell-completion/zsh/_kernel-install
|
||||
@@ -12,7 +12,7 @@ _kernels(){
|
||||
read _MACHINE_ID < /etc/machine-id
|
||||
_kernel=( /lib/modules/[0-9]* )
|
||||
if [[ "$cmd" == "remove" && -n "$_MACHINE_ID" ]]; then
|
||||
- _kernel=( /lib/modules/[0-9]* "/boot/$_MACHINE_ID"/[0-9]* )
|
||||
+ _kernel=( "/boot/$_MACHINE_ID"/[0-9]* )
|
||||
fi
|
||||
_kernel=( ${_kernel##*/} )
|
||||
_describe "installed kernels" _kernel
|
138
0257-core-fix-crashes-if-locale.conf-contains-invalid-utf.patch
Normal file
138
0257-core-fix-crashes-if-locale.conf-contains-invalid-utf.patch
Normal file
@ -0,0 +1,138 @@
|
||||
From 43ccd990b8478b5aaf9b1618e0a5c3dd8924a9ee Mon Sep 17 00:00:00 2001
|
||||
From: Goffredo Baroncelli <kreijack@libero.it>
|
||||
Date: Thu, 6 Feb 2014 19:09:59 +0100
|
||||
Subject: [PATCH] core: fix crashes if locale.conf contains invalid utf-8
|
||||
string
|
||||
|
||||
In the parse_env_file_push() and load_env_file_push() functions, there
|
||||
are two assert() call to check if the key or value parameters are utf8 valid.
|
||||
|
||||
If the strings aren't utf8 valid, assert does abort.
|
||||
|
||||
These function are used early by systemd to parse some files. For
|
||||
example '/etc/locale.conf'. In my case this file contained a not utf8
|
||||
sequence, which is bad, but systemd crashed during the boot, which
|
||||
is even worse!
|
||||
|
||||
The enclosed patch removes the assert and return -EINVAL if the
|
||||
sequence is invalid. This is possible because the caller of these
|
||||
function [1] checks the errors.
|
||||
So the check of an invalid utf8 sequence is still performed, but
|
||||
systemd doesn't crash anymore and logs the error.
|
||||
|
||||
[1] parse_env_file_internal(), invoked by load_env_file() and
|
||||
parse_env_file()
|
||||
---
|
||||
src/shared/fileio.c | 77 ++++++++++++++++++++++++++++++-----------------------
|
||||
1 file changed, 43 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/src/shared/fileio.c b/src/shared/fileio.c
|
||||
index 733b320..d28e38a 100644
|
||||
--- a/src/shared/fileio.c
|
||||
+++ b/src/shared/fileio.c
|
||||
@@ -462,35 +462,39 @@ fail:
|
||||
|
||||
static int parse_env_file_push(const char *filename, unsigned line,
|
||||
const char *key, char *value, void *userdata) {
|
||||
- assert(utf8_is_valid(key));
|
||||
|
||||
- if (value && !utf8_is_valid(value))
|
||||
+ const char *k;
|
||||
+ va_list aq, *ap = userdata;
|
||||
+
|
||||
+ if (!utf8_is_valid(key)) {
|
||||
+ log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.",
|
||||
+ filename, line, key);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
+ if (value && !utf8_is_valid(value)) {
|
||||
/* FIXME: filter UTF-8 */
|
||||
- log_error("%s:%u: invalid UTF-8 for key %s: '%s', ignoring.",
|
||||
+ log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.",
|
||||
filename, line, key, value);
|
||||
- else {
|
||||
- const char *k;
|
||||
- va_list* ap = (va_list*) userdata;
|
||||
- va_list aq;
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
|
||||
- va_copy(aq, *ap);
|
||||
+ va_copy(aq, *ap);
|
||||
|
||||
- while ((k = va_arg(aq, const char *))) {
|
||||
- char **v;
|
||||
+ while ((k = va_arg(aq, const char *))) {
|
||||
+ char **v;
|
||||
|
||||
- v = va_arg(aq, char **);
|
||||
+ v = va_arg(aq, char **);
|
||||
|
||||
- if (streq(key, k)) {
|
||||
- va_end(aq);
|
||||
- free(*v);
|
||||
- *v = value;
|
||||
- return 1;
|
||||
- }
|
||||
+ if (streq(key, k)) {
|
||||
+ va_end(aq);
|
||||
+ free(*v);
|
||||
+ *v = value;
|
||||
+ return 1;
|
||||
}
|
||||
-
|
||||
- va_end(aq);
|
||||
}
|
||||
|
||||
+ va_end(aq);
|
||||
free(value);
|
||||
return 0;
|
||||
}
|
||||
@@ -514,26 +518,31 @@ int parse_env_file(
|
||||
|
||||
static int load_env_file_push(const char *filename, unsigned line,
|
||||
const char *key, char *value, void *userdata) {
|
||||
- assert(utf8_is_valid(key));
|
||||
+ char ***m = userdata;
|
||||
+ char *p;
|
||||
+ int r;
|
||||
|
||||
- if (value && !utf8_is_valid(value))
|
||||
+ if (!utf8_is_valid(key)) {
|
||||
+ log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.",
|
||||
+ filename, line, key);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
+ if (value && !utf8_is_valid(value)) {
|
||||
/* FIXME: filter UTF-8 */
|
||||
- log_error("%s:%u: invalid UTF-8 for key %s: '%s', ignoring.",
|
||||
+ log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.",
|
||||
filename, line, key, value);
|
||||
- else {
|
||||
- char ***m = userdata;
|
||||
- char *p;
|
||||
- int r;
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
|
||||
- p = strjoin(key, "=", strempty(value), NULL);
|
||||
- if (!p)
|
||||
- return -ENOMEM;
|
||||
+ p = strjoin(key, "=", strempty(value), NULL);
|
||||
+ if (!p)
|
||||
+ return -ENOMEM;
|
||||
|
||||
- r = strv_push(m, p);
|
||||
- if (r < 0) {
|
||||
- free(p);
|
||||
- return r;
|
||||
- }
|
||||
+ r = strv_push(m, p);
|
||||
+ if (r < 0) {
|
||||
+ free(p);
|
||||
+ return r;
|
||||
}
|
||||
|
||||
free(value);
|
128
0258-core-do-not-print-invalid-utf-8-in-error-messages.patch
Normal file
128
0258-core-do-not-print-invalid-utf-8-in-error-messages.patch
Normal file
@ -0,0 +1,128 @@
|
||||
From e8321526823f2b7b945aeb04e5cdb1367e3d5b94 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Fri, 17 Jan 2014 21:28:41 -0500
|
||||
Subject: [PATCH] core: do not print invalid utf-8 in error messages
|
||||
|
||||
Conflicts:
|
||||
TODO
|
||||
---
|
||||
src/shared/fileio.c | 11 +++++++----
|
||||
src/shared/utf8.c | 26 ++++++++++++++++++++++++++
|
||||
src/shared/utf8.h | 3 +++
|
||||
src/test/test-utf8.c | 17 +++++++++++++++++
|
||||
4 files changed, 53 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/shared/fileio.c b/src/shared/fileio.c
|
||||
index d28e38a..121cd57 100644
|
||||
--- a/src/shared/fileio.c
|
||||
+++ b/src/shared/fileio.c
|
||||
@@ -467,15 +467,18 @@ static int parse_env_file_push(const char *filename, unsigned line,
|
||||
va_list aq, *ap = userdata;
|
||||
|
||||
if (!utf8_is_valid(key)) {
|
||||
- log_error("%s:%u: invalid UTF-8 for key '%s', ignoring.",
|
||||
- filename, line, key);
|
||||
+ _cleanup_free_ char *p = utf8_escape_invalid(key);
|
||||
+
|
||||
+ log_error("%s:%u: invalid UTF-8 in key '%s', ignoring.",
|
||||
+ filename, line, p);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (value && !utf8_is_valid(value)) {
|
||||
- /* FIXME: filter UTF-8 */
|
||||
+ _cleanup_free_ char *p = utf8_escape_invalid(value);
|
||||
+
|
||||
log_error("%s:%u: invalid UTF-8 value for key %s: '%s', ignoring.",
|
||||
- filename, line, key, value);
|
||||
+ filename, line, key, p);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
diff --git a/src/shared/utf8.c b/src/shared/utf8.c
|
||||
index 31120af..2b70d45 100644
|
||||
--- a/src/shared/utf8.c
|
||||
+++ b/src/shared/utf8.c
|
||||
@@ -172,6 +172,32 @@ const char *utf8_is_valid(const char *str) {
|
||||
return str;
|
||||
}
|
||||
|
||||
+char *utf8_escape_invalid(const char *str) {
|
||||
+ char *p, *s;
|
||||
+
|
||||
+ assert(str);
|
||||
+
|
||||
+ p = s = malloc(strlen(str) * 4 + 1);
|
||||
+ if (!p)
|
||||
+ return NULL;
|
||||
+
|
||||
+ while (*str) {
|
||||
+ int len;
|
||||
+
|
||||
+ len = utf8_encoded_valid_unichar(str);
|
||||
+ if (len > 0) {
|
||||
+ s = mempcpy(s, str, len);
|
||||
+ str += len;
|
||||
+ } else {
|
||||
+ s = mempcpy(s, UTF8_REPLACEMENT_CHARACTER, strlen(UTF8_REPLACEMENT_CHARACTER));
|
||||
+ str += 1;
|
||||
+ }
|
||||
+ }
|
||||
+ *s = '\0';
|
||||
+
|
||||
+ return p;
|
||||
+}
|
||||
+
|
||||
char *ascii_is_valid(const char *str) {
|
||||
const char *p;
|
||||
|
||||
diff --git a/src/shared/utf8.h b/src/shared/utf8.h
|
||||
index 96a03ea..f93dfb8 100644
|
||||
--- a/src/shared/utf8.h
|
||||
+++ b/src/shared/utf8.h
|
||||
@@ -25,8 +25,11 @@
|
||||
|
||||
#include "macro.h"
|
||||
|
||||
+#define UTF8_REPLACEMENT_CHARACTER "\xef\xbf\xbd"
|
||||
+
|
||||
const char *utf8_is_valid(const char *s) _pure_;
|
||||
char *ascii_is_valid(const char *s) _pure_;
|
||||
+char *utf8_escape_invalid(const char *s);
|
||||
|
||||
bool utf8_is_printable(const char* str, size_t length) _pure_;
|
||||
|
||||
diff --git a/src/test/test-utf8.c b/src/test/test-utf8.c
|
||||
index f0182ee..53c1d47 100644
|
||||
--- a/src/test/test-utf8.c
|
||||
+++ b/src/test/test-utf8.c
|
||||
@@ -66,12 +66,29 @@ static void test_utf8_encoded_valid_unichar(void) {
|
||||
|
||||
}
|
||||
|
||||
+static void test_utf8_escaping(void) {
|
||||
+ _cleanup_free_ char *p1, *p2, *p3;
|
||||
+
|
||||
+ p1 = utf8_escape_invalid("goo goo goo");
|
||||
+ puts(p1);
|
||||
+ assert_se(utf8_is_valid(p1));
|
||||
+
|
||||
+ p2 = utf8_escape_invalid("\341\204\341\204");
|
||||
+ puts(p2);
|
||||
+ assert_se(utf8_is_valid(p2));
|
||||
+
|
||||
+ p3 = utf8_escape_invalid("\341\204");
|
||||
+ puts(p3);
|
||||
+ assert_se(utf8_is_valid(p3));
|
||||
+}
|
||||
+
|
||||
int main(int argc, char *argv[]) {
|
||||
test_utf8_is_valid();
|
||||
test_utf8_is_printable();
|
||||
test_ascii_is_valid();
|
||||
test_ascii_filter();
|
||||
test_utf8_encoded_valid_unichar();
|
||||
+ test_utf8_escaping();
|
||||
|
||||
return 0;
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
From caf058da753c7aae6fbf03feb68e689a8d8265c6 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Reisner <dreisner@archlinux.org>
|
||||
Date: Sat, 8 Feb 2014 12:54:58 -0500
|
||||
Subject: [PATCH] cryptsetup-generator: auto add deps for device as password
|
||||
|
||||
If the password is a device file, we can add Requires/After dependencies
|
||||
on the device rather than requiring the user to do so.
|
||||
---
|
||||
src/cryptsetup/cryptsetup-generator.c | 20 +++++++++++++++-----
|
||||
1 file changed, 15 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
|
||||
index e1798a3..00891f1 100644
|
||||
--- a/src/cryptsetup/cryptsetup-generator.c
|
||||
+++ b/src/cryptsetup/cryptsetup-generator.c
|
||||
@@ -131,11 +131,21 @@ static int create_disk(
|
||||
streq(password, "/dev/random") ||
|
||||
streq(password, "/dev/hw_random"))
|
||||
fputs("After=systemd-random-seed.service\n", f);
|
||||
- else if (!streq(password, "-") &&
|
||||
- !streq(password, "none"))
|
||||
- fprintf(f,
|
||||
- "RequiresMountsFor=%s\n",
|
||||
- password);
|
||||
+
|
||||
+ else if (!streq(password, "-") && !streq(password, "none")) {
|
||||
+ _cleanup_free_ char *uu = fstab_node_to_udev_node(password);
|
||||
+ if (uu == NULL)
|
||||
+ return log_oom();
|
||||
+
|
||||
+ if (is_device_path(uu)) {
|
||||
+ _cleanup_free_ char *dd = unit_name_from_path(uu, ".device");
|
||||
+ if (dd == NULL)
|
||||
+ return log_oom();
|
||||
+
|
||||
+ fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
|
||||
+ } else
|
||||
+ fprintf(f, "RequiresMountsFor=%s\n", password);
|
||||
+ }
|
||||
}
|
||||
|
||||
if (is_device_path(u))
|
23
0260-man-fix-reference-in-systemd-inhibit-1.patch
Normal file
23
0260-man-fix-reference-in-systemd-inhibit-1.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From 46b93fa99d008403699a74478feac4e9b3f6f6a0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 9 Feb 2014 01:34:20 -0500
|
||||
Subject: [PATCH] man: fix reference in systemd-inhibit(1)
|
||||
|
||||
http://bugs.debian.org/738316
|
||||
---
|
||||
man/systemd-inhibit.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/man/systemd-inhibit.xml b/man/systemd-inhibit.xml
|
||||
index de2f264..cac0ef6 100644
|
||||
--- a/man/systemd-inhibit.xml
|
||||
+++ b/man/systemd-inhibit.xml
|
||||
@@ -198,7 +198,7 @@
|
||||
<title>See Also</title>
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||
- <citerefentry><refentrytitle>systemd-logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
+ <citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
23
0261-man-fix-another-reference-in-systemd-inhibit-1.patch
Normal file
23
0261-man-fix-another-reference-in-systemd-inhibit-1.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From 9bcaa50d2eb1f99fcb7393d52b53b95cdc193d30 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Sun, 9 Feb 2014 01:34:20 -0500
|
||||
Subject: [PATCH] man: fix another reference in systemd-inhibit(1)
|
||||
|
||||
http://bugs.debian.org/738316
|
||||
---
|
||||
man/systemd-inhibit.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/man/systemd-inhibit.xml b/man/systemd-inhibit.xml
|
||||
index cac0ef6..f915fb8 100644
|
||||
--- a/man/systemd-inhibit.xml
|
||||
+++ b/man/systemd-inhibit.xml
|
||||
@@ -158,7 +158,7 @@
|
||||
time elapses, the lock is ignored and
|
||||
the operation executed. The time limit
|
||||
may be specified in
|
||||
- <citerefentry><refentrytitle>systemd-logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Note
|
||||
+ <citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Note
|
||||
that <literal>delay</literal> is only
|
||||
available for <literal>sleep</literal>
|
||||
and
|
@ -0,0 +1,25 @@
|
||||
From 9a36f797debf5f7dd240036a15c6942236c3e649 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Guthrie <colin@mageia.org>
|
||||
Date: Sun, 9 Feb 2014 12:07:11 +0000
|
||||
Subject: [PATCH] fstab-generator: Create fsck-root symlink with correct path
|
||||
|
||||
This was noticed in Brussels at the hackfest. The fstab-generator currently
|
||||
creates a broken symlink pointing to itself in
|
||||
/run/systemd/generator/local-fs.target.wants/ for systemd-fsck-root.service
|
||||
---
|
||||
src/fstab-generator/fstab-generator.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c
|
||||
index 8c4c61c..0d954a2 100644
|
||||
--- a/src/fstab-generator/fstab-generator.c
|
||||
+++ b/src/fstab-generator/fstab-generator.c
|
||||
@@ -177,7 +177,7 @@ static int add_fsck(FILE *f, const char *what, const char *where, const char *ty
|
||||
|
||||
lnk = strappenda(arg_dest, "/" SPECIAL_LOCAL_FS_TARGET ".wants/systemd-fsck-root.service");
|
||||
mkdir_parents_label(lnk, 0755);
|
||||
- if (symlink("systemd-fsck-root.service", lnk) < 0) {
|
||||
+ if (symlink(SYSTEM_DATA_UNIT_PATH "/systemd-fsck-root.service", lnk) < 0) {
|
||||
log_error("Failed to create symlink %s: %m", lnk);
|
||||
return -errno;
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
From fe56ff349838e5dfbc523db1c4d5625f5c69e2a9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= <crrodriguez@opensuse.org>
|
||||
Date: Tue, 11 Feb 2014 09:54:49 -0300
|
||||
Subject: [PATCH] efi: fix Undefined reference efi_loader_get_boot_usec when
|
||||
EFI support is disabled
|
||||
|
||||
---
|
||||
src/shared/boot-timestamps.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/shared/boot-timestamps.c b/src/shared/boot-timestamps.c
|
||||
index 9449965..d656685 100644
|
||||
--- a/src/shared/boot-timestamps.c
|
||||
+++ b/src/shared/boot-timestamps.c
|
||||
@@ -40,8 +40,10 @@ int boot_timestamps(const dual_timestamp *n, dual_timestamp *firmware, dual_time
|
||||
|
||||
r = acpi_get_boot_usec(&x, &y);
|
||||
if (r < 0) {
|
||||
+#ifdef ENABLE_EFI
|
||||
r = efi_loader_get_boot_usec(&x, &y);
|
||||
if (r < 0)
|
||||
+#endif
|
||||
return r;
|
||||
}
|
||||
|
@ -0,0 +1,41 @@
|
||||
From 5c2e6a05a8b4bcb05c88872eec27f848caf30722 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Thu, 13 Feb 2014 02:12:27 +0100
|
||||
Subject: [PATCH] core: make StopWhenUnneeded work in conjunction with units
|
||||
that fail during their start job
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=997031
|
||||
---
|
||||
src/core/unit.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/core/unit.c b/src/core/unit.c
|
||||
index 6c2c4a0..49833d1 100644
|
||||
--- a/src/core/unit.c
|
||||
+++ b/src/core/unit.c
|
||||
@@ -1453,7 +1453,9 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su
|
||||
* sucessfully, since there's no change of state in that case. Which is
|
||||
* why it is handled in service_set_state() */
|
||||
if (UNIT_IS_INACTIVE_OR_FAILED(os) != UNIT_IS_INACTIVE_OR_FAILED(ns)) {
|
||||
- ExecContext *ec = unit_get_exec_context(u);
|
||||
+ ExecContext *ec;
|
||||
+
|
||||
+ ec = unit_get_exec_context(u);
|
||||
if (ec && exec_context_may_touch_console(ec)) {
|
||||
if (UNIT_IS_INACTIVE_OR_FAILED(ns)) {
|
||||
m->n_on_console --;
|
||||
@@ -1549,12 +1551,11 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su
|
||||
}
|
||||
|
||||
/* stop unneeded units regardless if going down was expected or not */
|
||||
- if (UNIT_IS_ACTIVE_OR_ACTIVATING(os) && UNIT_IS_INACTIVE_OR_DEACTIVATING(ns))
|
||||
+ if (UNIT_IS_INACTIVE_OR_DEACTIVATING(ns))
|
||||
check_unneeded_dependencies(u);
|
||||
|
||||
if (ns != os && ns == UNIT_FAILED) {
|
||||
- log_notice_unit(u->id,
|
||||
- "Unit %s entered failed state.", u->id);
|
||||
+ log_notice_unit(u->id, "Unit %s entered failed state.", u->id);
|
||||
unit_start_on_failure(u);
|
||||
}
|
||||
}
|
345
0265-man-always-place-programlisting-and-programlisting-i.patch
Normal file
345
0265-man-always-place-programlisting-and-programlisting-i.patch
Normal file
@ -0,0 +1,345 @@
|
||||
From 8ea4ccf4ef7d3bc4c12ba008d270534257fb88b7 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Fri, 14 Feb 2014 15:56:19 +0100
|
||||
Subject: [PATCH] man: always place <programlisting> and </programlisting> in a
|
||||
line with actual sources, so that we don't get spurious newlines in the man
|
||||
page output
|
||||
|
||||
Conflicts:
|
||||
man/systemd-socket-proxyd.xml
|
||||
---
|
||||
man/daemon.xml | 3 +--
|
||||
man/kernel-install.xml | 8 ++------
|
||||
man/nss-myhostname.xml | 12 ++++--------
|
||||
man/sd_journal_get_fd.xml | 3 +--
|
||||
man/systemctl.xml | 3 +--
|
||||
man/systemd-delta.xml | 12 ++++--------
|
||||
man/systemd-journal-gatewayd.service.xml | 16 +++++-----------
|
||||
man/systemd-run.xml | 3 +--
|
||||
man/systemd-sleep.conf.xml | 6 ++----
|
||||
man/systemd.service.xml | 13 ++++---------
|
||||
man/timedatectl.xml | 18 ++++++------------
|
||||
man/tmpfiles.d.xml | 7 ++-----
|
||||
12 files changed, 33 insertions(+), 71 deletions(-)
|
||||
|
||||
diff --git a/man/daemon.xml b/man/daemon.xml
|
||||
index 105826a..17d9dd6 100644
|
||||
--- a/man/daemon.xml
|
||||
+++ b/man/daemon.xml
|
||||
@@ -777,8 +777,7 @@ AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitd
|
||||
[with_systemdsystemunitdir=$def_systemdsystemunitdir])])
|
||||
AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
|
||||
[AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
|
||||
-AM_CONDITIONAL(HAVE_SYSTEMD, [test "x$with_systemdsystemunitdir" != "xno"])
|
||||
-</programlisting>
|
||||
+AM_CONDITIONAL(HAVE_SYSTEMD, [test "x$with_systemdsystemunitdir" != "xno"])</programlisting>
|
||||
|
||||
<para>This snippet allows automatic
|
||||
installation of the unit files on systemd
|
||||
diff --git a/man/kernel-install.xml b/man/kernel-install.xml
|
||||
index 929ceef..3612b7d 100644
|
||||
--- a/man/kernel-install.xml
|
||||
+++ b/man/kernel-install.xml
|
||||
@@ -90,9 +90,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
<filename>/usr/lib/kernel/install.d/*.install</filename> and
|
||||
<filename>/etc/kernel/install.d/*.install</filename> with
|
||||
the arguments
|
||||
- <programlisting>
|
||||
-add <replaceable>KERNEL-VERSION</replaceable> <filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/</filename>
|
||||
- </programlisting>
|
||||
+ <programlisting>add <replaceable>KERNEL-VERSION</replaceable> <filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/</filename></programlisting>
|
||||
</para>
|
||||
|
||||
<para>The kernel-install plugin <filename>50-depmod.install</filename> runs depmod for the <replaceable>KERNEL-VERSION</replaceable>.</para>
|
||||
@@ -114,9 +112,7 @@ add <replaceable>KERNEL-VERSION</replaceable> <filename>/boot/<replaceable>MACHI
|
||||
<listitem>
|
||||
<para>Calls every executable <filename>/usr/lib/kernel/install.d/*.install</filename>
|
||||
and <filename>/etc/kernel/install.d/*.install</filename> with the arguments
|
||||
- <programlisting>
|
||||
-remove <replaceable>KERNEL-VERSION</replaceable> <filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/</filename>
|
||||
- </programlisting>
|
||||
+ <programlisting>remove <replaceable>KERNEL-VERSION</replaceable> <filename>/boot/<replaceable>MACHINE-ID</replaceable>/<replaceable>KERNEL-VERSION</replaceable>/</filename></programlisting>
|
||||
</para>
|
||||
|
||||
<para><command>kernel-install</command> removes the entire directory
|
||||
diff --git a/man/nss-myhostname.xml b/man/nss-myhostname.xml
|
||||
index efbadac..cca3a99 100644
|
||||
--- a/man/nss-myhostname.xml
|
||||
+++ b/man/nss-myhostname.xml
|
||||
@@ -86,8 +86,7 @@
|
||||
<refsect1>
|
||||
<title>Example</title>
|
||||
|
||||
- <programlisting>
|
||||
-# /etc/nsswitch.conf
|
||||
+<programlisting># /etc/nsswitch.conf
|
||||
|
||||
passwd: compat
|
||||
group: compat
|
||||
@@ -101,20 +100,17 @@ services: db files
|
||||
ethers: db files
|
||||
rpc: db files
|
||||
|
||||
-netgroup: nis
|
||||
- </programlisting>
|
||||
+netgroup: nis</programlisting>
|
||||
|
||||
<para>To test, use <command>glibc</command>'s <command>getent</command> tool:</para>
|
||||
|
||||
- <programlisting>
|
||||
-$ getent ahosts `hostname`
|
||||
+ <programlisting>$ getent ahosts `hostname`
|
||||
::1 STREAM omega
|
||||
::1 DGRAM
|
||||
::1 RAW
|
||||
127.0.0.2 STREAM
|
||||
127.0.0.2 DGRAM
|
||||
-127.0.0.2 RAW
|
||||
- </programlisting>
|
||||
+127.0.0.2 RAW</programlisting>
|
||||
|
||||
<para>In this case the local hostname is <varname>omega</varname>.</para>
|
||||
|
||||
diff --git a/man/sd_journal_get_fd.xml b/man/sd_journal_get_fd.xml
|
||||
index 4b36f97..df7632f 100644
|
||||
--- a/man/sd_journal_get_fd.xml
|
||||
+++ b/man/sd_journal_get_fd.xml
|
||||
@@ -330,8 +330,7 @@ int wait_for_changes(sd_journal *j) {
|
||||
pollfd.events = sd_journal_get_events(j);
|
||||
poll(&pollfd, 1, msec);
|
||||
return sd_journal_process(j);
|
||||
-}
|
||||
- </programlisting>
|
||||
+}</programlisting>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
diff --git a/man/systemctl.xml b/man/systemctl.xml
|
||||
index 25b03d8..cde1694 100644
|
||||
--- a/man/systemctl.xml
|
||||
+++ b/man/systemctl.xml
|
||||
@@ -544,8 +544,7 @@ LISTEN UNIT ACTIVATES
|
||||
[::]:22 sshd.socket sshd.service
|
||||
kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
|
||||
|
||||
-5 sockets listed.
|
||||
- </programlisting>
|
||||
+5 sockets listed.</programlisting>
|
||||
Note: because the addresses might contains spaces, this output
|
||||
is not suitable for programmatic consumption.
|
||||
</para>
|
||||
diff --git a/man/systemd-delta.xml b/man/systemd-delta.xml
|
||||
index ebaa349..f802aa5 100644
|
||||
--- a/man/systemd-delta.xml
|
||||
+++ b/man/systemd-delta.xml
|
||||
@@ -204,20 +204,16 @@
|
||||
<title>Examples</title>
|
||||
|
||||
<para>To see all local configuration:</para>
|
||||
- <programlisting>systemd-delta
|
||||
- </programlisting>
|
||||
+ <programlisting>systemd-delta</programlisting>
|
||||
|
||||
<para>To see all runtime configuration:</para>
|
||||
- <programlisting>systemd-delta /run
|
||||
- </programlisting>
|
||||
+ <programlisting>systemd-delta /run</programlisting>
|
||||
|
||||
<para>To see all system unit configuration changes:</para>
|
||||
- <programlisting>systemd-delta systemd/system
|
||||
- </programlisting>
|
||||
+ <programlisting>systemd-delta systemd/system</programlisting>
|
||||
|
||||
<para>To see all runtime "drop-in" changes for system units:</para>
|
||||
- <programlisting>systemd-delta --type=extended /run/systemd/system
|
||||
- </programlisting>
|
||||
+ <programlisting>systemd-delta --type=extended /run/systemd/system</programlisting>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
diff --git a/man/systemd-journal-gatewayd.service.xml b/man/systemd-journal-gatewayd.service.xml
|
||||
index 0b6fd70..f639811 100644
|
||||
--- a/man/systemd-journal-gatewayd.service.xml
|
||||
+++ b/man/systemd-journal-gatewayd.service.xml
|
||||
@@ -154,14 +154,12 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
<listitem><para>Return a JSON structure describing the machine.</para>
|
||||
|
||||
<para>Example:
|
||||
- <programlisting>
|
||||
-{ "machine_id" : "8cf7ed9d451ea194b77a9f118f3dc446",
|
||||
+ <programlisting>{ "machine_id" : "8cf7ed9d451ea194b77a9f118f3dc446",
|
||||
"boot_id" : "3d3c9efaf556496a9b04259ee35df7f7",
|
||||
"hostname" : "fedora",
|
||||
"os_pretty_name" : "Fedora 19 (Rawhide)",
|
||||
"virtualization" : "kvm",
|
||||
- ...}
|
||||
- </programlisting>
|
||||
+ ...}</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@@ -295,16 +293,12 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
in <ulink
|
||||
url="http://www.freedesktop.org/wiki/Software/systemd/export">Journal
|
||||
Export Format</ulink>:
|
||||
- <programlisting>
|
||||
-curl --silent -H'Accept: application/vnd.fdo.journal' \
|
||||
- 'http://localhost:19531/entries?boot'
|
||||
- </programlisting>
|
||||
+ <programlisting>curl --silent -H'Accept: application/vnd.fdo.journal' \
|
||||
+ 'http://localhost:19531/entries?boot'</programlisting>
|
||||
</para>
|
||||
|
||||
<para>Listen for core dumps:
|
||||
- <programlisting>
|
||||
-curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'
|
||||
- </programlisting></para>
|
||||
+ <programlisting>curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'</programlisting></para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
diff --git a/man/systemd-run.xml b/man/systemd-run.xml
|
||||
index 48a0715..97ddf44 100644
|
||||
--- a/man/systemd-run.xml
|
||||
+++ b/man/systemd-run.xml
|
||||
@@ -209,8 +209,7 @@ Sep 08 07:37:21 bupkis systemd[1]: Starting /usr/bin/env...
|
||||
Sep 08 07:37:21 bupkis systemd[1]: Started /usr/bin/env.
|
||||
Sep 08 07:37:21 bupkis env[19948]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
|
||||
Sep 08 07:37:21 bupkis env[19948]: LANG=en_US.UTF-8
|
||||
-Sep 08 07:37:21 bupkis env[19948]: BOOT_IMAGE=/vmlinuz-3.11.0-0.rc5.git6.2.fc20.x86_64
|
||||
- </programlisting>
|
||||
+Sep 08 07:37:21 bupkis env[19948]: BOOT_IMAGE=/vmlinuz-3.11.0-0.rc5.git6.2.fc20.x86_64</programlisting>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
diff --git a/man/systemd-sleep.conf.xml b/man/systemd-sleep.conf.xml
|
||||
index dc4b0da..4622205 100644
|
||||
--- a/man/systemd-sleep.conf.xml
|
||||
+++ b/man/systemd-sleep.conf.xml
|
||||
@@ -160,10 +160,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
||||
<para>Example: to exploit the <quote>freeze</quote> mode added
|
||||
in Linux 3.9, one can use <command>systemctl suspend</command>
|
||||
with
|
||||
- <programlisting>
|
||||
-[Sleep]
|
||||
-SuspendState=freeze
|
||||
- </programlisting></para>
|
||||
+ <programlisting>[Sleep]
|
||||
+SuspendState=freeze</programlisting></para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
|
||||
index 4fb21ba..e8bb02c 100644
|
||||
--- a/man/systemd.service.xml
|
||||
+++ b/man/systemd.service.xml
|
||||
@@ -442,12 +442,9 @@
|
||||
be used, they need to be passed
|
||||
explicitly to a shell implementation
|
||||
of some kind. Example:</para>
|
||||
- <programlisting>ExecStart=/bin/sh -c 'dmesg | tac'
|
||||
- </programlisting>
|
||||
-
|
||||
+ <programlisting>ExecStart=/bin/sh -c 'dmesg | tac'</programlisting>
|
||||
<para>Example:</para>
|
||||
- <programlisting>ExecStart=/bin/echo one ; /bin/echo "two two"
|
||||
- </programlisting>
|
||||
+ <programlisting>ExecStart=/bin/echo one ; /bin/echo "two two"</programlisting>
|
||||
<para>This will execute
|
||||
<command>/bin/echo</command> two
|
||||
times, each time with one argument,
|
||||
@@ -460,8 +457,7 @@
|
||||
|
||||
<para>Example:</para>
|
||||
<programlisting>ExecStart=/bin/echo / >/dev/null & \; \
|
||||
-/bin/ls
|
||||
- </programlisting>
|
||||
+/bin/ls</programlisting>
|
||||
<para>This will execute
|
||||
<command>/bin/echo</command> with five
|
||||
arguments: <literal>/</literal>,
|
||||
@@ -472,8 +468,7 @@
|
||||
|
||||
<para>Example:</para>
|
||||
<programlisting>Environment="ONE=one" 'TWO=two two'
|
||||
-ExecStart=/bin/echo $ONE $TWO ${TWO}
|
||||
- </programlisting>
|
||||
+ExecStart=/bin/echo $ONE $TWO ${TWO}</programlisting>
|
||||
<para>This will execute
|
||||
<command>/bin/echo</command> with four
|
||||
arguments: <literal>one</literal>,
|
||||
diff --git a/man/timedatectl.xml b/man/timedatectl.xml
|
||||
index f4975ce..5f95486 100644
|
||||
--- a/man/timedatectl.xml
|
||||
+++ b/man/timedatectl.xml
|
||||
@@ -245,8 +245,7 @@
|
||||
<refsect1>
|
||||
<title>Examples</title>
|
||||
<para>Show current settings:
|
||||
- <programlisting>
|
||||
-$ timedatectl
|
||||
+ <programlisting>$ timedatectl
|
||||
Local time: Fri, 2012-11-02 09:26:46 CET
|
||||
Universal time: Fri, 2012-11-02 08:26:46 UTC
|
||||
RTC time: Fri, 2012-11-02 08:26:45
|
||||
@@ -262,27 +261,22 @@ NTP synchronized: no
|
||||
Next DST change: CET → CEST, DST will become active
|
||||
the clock will jump one hour forward
|
||||
Sun, 2013-03-31 01:59:59 CET
|
||||
- Sun, 2013-03-31 03:00:00 CEST
|
||||
- </programlisting>
|
||||
+ Sun, 2013-03-31 03:00:00 CEST</programlisting>
|
||||
</para>
|
||||
|
||||
<para>Enable an NTP daemon (chronyd):
|
||||
- <programlisting>
|
||||
-$ timedatectl set-ntp true
|
||||
+ <programlisting>$ timedatectl set-ntp true
|
||||
==== AUTHENTICATING FOR org.freedesktop.timedate1.set-ntp ===
|
||||
Authentication is required to control whether network time synchronization shall be enabled.
|
||||
Authenticating as: user
|
||||
Password: ********
|
||||
-==== AUTHENTICATION COMPLETE ===
|
||||
- </programlisting>
|
||||
+==== AUTHENTICATION COMPLETE ===</programlisting>
|
||||
|
||||
- <programlisting>
|
||||
-$ systemctl status chronyd.service
|
||||
+ <programlisting>$ systemctl status chronyd.service
|
||||
chronyd.service - NTP client/server
|
||||
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
|
||||
Active: active (running) since Fri, 2012-11-02 09:36:25 CET; 5s ago
|
||||
-...
|
||||
- </programlisting>
|
||||
+...</programlisting>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
||||
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
|
||||
index 8267ffc..9578c93 100644
|
||||
--- a/man/tmpfiles.d.xml
|
||||
+++ b/man/tmpfiles.d.xml
|
||||
@@ -109,7 +109,6 @@
|
||||
d /run/user 0755 root root 10d -
|
||||
L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
|
||||
-
|
||||
<refsect2>
|
||||
<title>Type</title>
|
||||
|
||||
@@ -277,13 +276,11 @@ L /tmp/foobar - - - - /dev/null</programlisting>
|
||||
</para>
|
||||
|
||||
<para>For example:
|
||||
- <programlisting>
|
||||
-# Make sure these are created by default so that nobody else can
|
||||
+ <programlisting># Make sure these are created by default so that nobody else can
|
||||
d /tmp/.X11-unix 1777 root root 10d
|
||||
|
||||
# Unlink the X11 lock files
|
||||
-r! /tmp/.X[0-9]*-lock
|
||||
- </programlisting>
|
||||
+r! /tmp/.X[0-9]*-lock</programlisting>
|
||||
The second line in contrast to the first one
|
||||
would break a running system, and will only be
|
||||
executed with <option>--boot</option>.</para>
|
@ -0,0 +1,27 @@
|
||||
From 29e00416bbef0e8073373fde25347d139749d949 Mon Sep 17 00:00:00 2001
|
||||
From: Colin Guthrie <colin@mageia.org>
|
||||
Date: Mon, 27 Jan 2014 17:54:29 +0000
|
||||
Subject: [PATCH] Temporary work around for slow shutdown due to unterminated
|
||||
user sessions.
|
||||
|
||||
---
|
||||
units/user@.service.in | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/units/user@.service.in b/units/user@.service.in
|
||||
index 3f8b59d..a7e0584 100644
|
||||
--- a/units/user@.service.in
|
||||
+++ b/units/user@.service.in
|
||||
@@ -14,5 +14,12 @@ User=%I
|
||||
PAMName=systemd-user
|
||||
Type=notify
|
||||
ExecStart=-@rootlibexecdir@/systemd --user
|
||||
+# Apply same work around as apache's httpd until issues with user session
|
||||
+# killing is fixed (currently problem is that the kill issued by systemd --user
|
||||
+# is itself killed by systemd (PID1) before it can work which can lead to slow
|
||||
+# shutdowns
|
||||
+# http://thread.gmane.org/gmane.comp.sysutils.systemd.devel/16363
|
||||
+ExecStop=/bin/kill -TERM ${MAINPID}
|
||||
+KillSignal=SIGCONT
|
||||
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/dbus/user_bus_socket
|
||||
Slice=user-%i.slice
|
37
systemd.spec
37
systemd.spec
@ -36,6 +36,8 @@ Source4: listen.conf
|
||||
# Prevent accidental removal of the systemd package
|
||||
Source6: yum-protect-systemd.conf
|
||||
|
||||
# Patch series is available as http://kawka.in.waw.pl/git/systemd/shortlog/refs/heads/v208-stable
|
||||
# GIT_DIR=~/src/systemd/.git git format-patch-ab -M -N --no-signature v208..v208-stable
|
||||
# i=1; for p in 0*patch;do printf "Patch%03d: %s\n" $i $p; ((i++));done
|
||||
Patch001: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch
|
||||
Patch002: 0002-fix-lingering-references-to-var-lib-backlight-random.patch
|
||||
@ -275,6 +277,34 @@ Patch235: 0235-gpt-auto-generator-use-EBADSLT-code-when-unable-to-d.patch
|
||||
Patch236: 0236-journald-do-not-free-space-when-disk-space-runs-low.patch
|
||||
Patch237: 0237-man-add-busctl-1.patch
|
||||
Patch238: 0238-journalctl-flip-to-full-by-default.patch
|
||||
Patch239: 0239-coredumpctl-in-case-of-error-free-pattern-after-prin.patch
|
||||
Patch240: 0240-shell-completion-remove-load-from-systemctl.patch
|
||||
Patch241: 0241-units-drop-Install-section-from-multi-user.target-an.patch
|
||||
Patch242: 0242-systemctl-skip-native-unit-file-handling-if-sysv-fil.patch
|
||||
Patch243: 0243-hwdb-Update-database-of-Bluetooth-company-identifier.patch
|
||||
Patch244: 0244-udev-static_node-do-not-exit-rule-after-first-static.patch
|
||||
Patch245: 0245-cryptsetup-Support-key-slot-option.patch
|
||||
Patch246: 0246-pam_systemd-Ignore-vtnr-when-seat-seat0.patch
|
||||
Patch247: 0247-keymap-Add-HP-Chromebook-14-Falco.patch
|
||||
Patch248: 0248-keymap-Add-release-quirk-for-Acer-AOA-switchvideomod.patch
|
||||
Patch249: 0249-keymap-Add-Sony-Vaio-VGN-FW250.patch
|
||||
Patch250: 0250-keymap-Add-Toshiba-EQUIUM.patch
|
||||
Patch251: 0251-tmpfiles-fix-memory-leak-of-exclude_prefixes.patch
|
||||
Patch252: 0252-analyze-fix-plot-issues-when-using-gummiboot.patch
|
||||
Patch253: 0253-udev-add-zram-to-the-list-of-devices-inappropriate-f.patch
|
||||
Patch254: 0254-bash-completion-fix-completion-of-complete-verbs.patch
|
||||
Patch255: 0255-shell-completion-fix-completion-of-localectl-set-loc.patch
|
||||
Patch256: 0256-zsh-completions-kernel-install-only-show-existing-ke.patch
|
||||
Patch257: 0257-core-fix-crashes-if-locale.conf-contains-invalid-utf.patch
|
||||
Patch258: 0258-core-do-not-print-invalid-utf-8-in-error-messages.patch
|
||||
Patch259: 0259-cryptsetup-generator-auto-add-deps-for-device-as-pas.patch
|
||||
Patch260: 0260-man-fix-reference-in-systemd-inhibit-1.patch
|
||||
Patch261: 0261-man-fix-another-reference-in-systemd-inhibit-1.patch
|
||||
Patch262: 0262-fstab-generator-Create-fsck-root-symlink-with-correc.patch
|
||||
Patch263: 0263-efi-fix-Undefined-reference-efi_loader_get_boot_usec.patch
|
||||
Patch264: 0264-core-make-StopWhenUnneeded-work-in-conjunction-with-.patch
|
||||
Patch265: 0265-man-always-place-programlisting-and-programlisting-i.patch
|
||||
Patch266: 0266-Temporary-work-around-for-slow-shutdown-due-to-unter.patch
|
||||
|
||||
# kernel-install patch for grubby, drop if grubby is obsolete
|
||||
Patch1000: kernel-install-grubby.patch
|
||||
@ -929,6 +959,13 @@ getent passwd systemd-journal-gateway >/dev/null 2>&1 || useradd -r -l -u 191 -g
|
||||
%{_datadir}/systemd/gatewayd
|
||||
|
||||
%changelog
|
||||
* Sun Feb 16 2014 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 208-12
|
||||
- A different fix for #1023820 taken from Mageia
|
||||
- Backported fix for #997031
|
||||
- Hardward database updates, man pages improvements, a few small memory
|
||||
leaks, utf-8 correctness and completion fixes
|
||||
- Support for key-slot option in crypttab
|
||||
|
||||
* Sat Jan 25 2014 Ville Skyttä <ville.skytta@iki.fi> - 208-12
|
||||
- Own the %%{_prefix}/lib/kernel(/*) and %%{_datadir}/zsh(/*) dirs.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user