Accepting request 235044 from Base:System

- fix file list of systemd.pc

OBS-URL: https://build.opensuse.org/request/show/235044
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=188
This commit is contained in:
Stephan Kulow 2014-05-27 05:09:03 +00:00 committed by Git OBS Bridge
commit 516c9ec708
39 changed files with 68199 additions and 36 deletions

View File

@ -0,0 +1,73 @@
From 342aea195051633c69ba7b8c02c82a0e5f8cbde4 Mon Sep 17 00:00:00 2001
From: Michael Marineau <michael.marineau@coreos.com>
Date: Fri, 16 May 2014 16:58:31 -0700
Subject: [PATCH] conf-parser: silently ignore sections starting with "X-"
This allows external tools to keep additional unit information in a
separate section without scaring users with a big warning.
---
src/shared/conf-parser.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git src/shared/conf-parser.c src/shared/conf-parser.c
index d27b1b7..062b15b 100644
--- src/shared/conf-parser.c
+++ src/shared/conf-parser.c
@@ -204,6 +204,7 @@ static int parse_line(const char* unit,
bool allow_include,
char **section,
unsigned *section_line,
+ bool *section_ignored,
char *l,
void *userdata) {
@@ -266,7 +267,7 @@ static int parse_line(const char* unit,
if (sections && !nulstr_contains(sections, n)) {
- if (!relaxed)
+ if (!relaxed && !startswith(n, "X-"))
log_syntax(unit, LOG_WARNING, filename, line, EINVAL,
"Unknown section '%s'. Ignoring.", n);
@@ -274,10 +275,12 @@ static int parse_line(const char* unit,
free(*section);
*section = NULL;
*section_line = 0;
+ *section_ignored = true;
} else {
free(*section);
*section = n;
*section_line = line;
+ *section_ignored = false;
}
return 0;
@@ -285,7 +288,7 @@ static int parse_line(const char* unit,
if (sections && !*section) {
- if (!relaxed)
+ if (!relaxed && !*section_ignored)
log_syntax(unit, LOG_WARNING, filename, line, EINVAL,
"Assignment outside of section. Ignoring.");
@@ -328,6 +331,7 @@ int config_parse(const char *unit,
_cleanup_free_ char *section = NULL, *continuation = NULL;
_cleanup_fclose_ FILE *ours = NULL;
unsigned line = 0, section_line = 0;
+ bool section_ignored = false;
int r;
assert(filename);
@@ -399,6 +403,7 @@ int config_parse(const char *unit,
allow_include,
&section,
&section_line,
+ &section_ignored,
p,
userdata);
free(c);
--
1.7.9.2

View File

@ -0,0 +1,29 @@
From e525326bd07ebf3cabcfd730bc479166723f2d44 Mon Sep 17 00:00:00 2001
From: Marcel Holtmann <marcel@holtmann.org>
Date: Sun, 2 Mar 2014 10:02:10 -0800
Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
---
hwdb/20-bluetooth-vendor-product.hwdb | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb
index db3bc24..0335a71 100644
--- hwdb/20-bluetooth-vendor-product.hwdb
+++ hwdb/20-bluetooth-vendor-product.hwdb
@@ -902,3 +902,12 @@ bluetooth:v0129*
bluetooth:v012A*
ID_VENDOR_FROM_DATABASE=Changzhou Yongse Infotech Co., Ltd
+
+bluetooth:v012B*
+ ID_VENDOR_FROM_DATABASE=SportIQ
+
+bluetooth:v012C*
+ ID_VENDOR_FROM_DATABASE=TEMEC Instruments B.V.
+
+bluetooth:v012D*
+ ID_VENDOR_FROM_DATABASE=Sony Corporation
--
1.7.9.2

6590
0001-hwdb-update.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,104 @@
From e3b9d9c8027a7c4c55cf1614e0fe9423fad69e8f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Fri, 11 Apr 2014 08:44:55 -0400
Subject: [PATCH] journal: cleanup up error handling in update_catalog()
- Negative/positive errno mixup caused duplicates not to be detected properly.
Now we get a warning about some duplicate entries in our own catalogs...
- Errors in update_catalog would be ignored, but they should not be.
---
src/journal/catalog.c | 25 +++++++++++++------------
src/journal/test-catalog.c | 3 ++-
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git src/journal/catalog.c src/journal/catalog.c
index 3ed0b7e..02dedc4 100644
--- src/journal/catalog.c
+++ src/journal/catalog.c
@@ -103,7 +103,7 @@ static int finish_item(
const char *payload) {
ssize_t offset;
- CatalogItem *i;
+ _cleanup_free_ CatalogItem *i = NULL;
int r;
assert(h);
@@ -126,13 +126,14 @@ static int finish_item(
i->offset = htole64((uint64_t) offset);
r = hashmap_put(h, i, i);
- if (r == EEXIST) {
+ if (r == -EEXIST) {
log_warning("Duplicate entry for " SD_ID128_FORMAT_STR ".%s, ignoring.",
SD_ID128_FORMAT_VAL(id), language ? language : "C");
- free(i);
return 0;
- }
+ } else if (r < 0)
+ return r;
+ i = NULL;
return 0;
}
@@ -383,8 +384,8 @@ error:
int catalog_update(const char* database, const char* root, const char* const* dirs) {
_cleanup_strv_free_ char **files = NULL;
char **f;
- Hashmap *h;
struct strbuf *sb = NULL;
+ _cleanup_hashmap_free_free_ Hashmap *h = NULL;
_cleanup_free_ CatalogItem *items = NULL;
CatalogItem *i;
Iterator j;
@@ -406,13 +407,17 @@ int catalog_update(const char* database, const char* root, const char* const* di
}
STRV_FOREACH(f, files) {
- log_debug("reading file '%s'", *f);
- catalog_import_file(h, sb, *f);
+ log_debug("Reading file '%s'", *f);
+ r = catalog_import_file(h, sb, *f);
+ if (r < 0) {
+ log_error("Failed to import file '%s': %s.",
+ *f, strerror(-r));
+ goto finish;
+ }
}
if (hashmap_size(h) <= 0) {
log_info("No items in catalog.");
- r = 0;
goto finish;
} else
log_debug("Found %u items in catalog.", hashmap_size(h));
@@ -443,11 +448,7 @@ int catalog_update(const char* database, const char* root, const char* const* di
log_debug("%s: wrote %u items, with %zu bytes of strings, %ld total size.",
database, n, sb->len, r);
- r = 0;
-
finish:
- if (h)
- hashmap_free_free(h);
if (sb)
strbuf_cleanup(sb);
diff --git src/journal/test-catalog.c src/journal/test-catalog.c
index b087a8b..967ab67 100644
--- src/journal/test-catalog.c
+++ src/journal/test-catalog.c
@@ -157,7 +157,8 @@ int main(int argc, char *argv[]) {
setlocale(LC_ALL, "de_DE.UTF-8");
- log_set_max_level(LOG_DEBUG);
+ log_parse_environment();
+ log_open();
test_catalog_file_lang();
--
1.7.9.2

View File

@ -0,0 +1,168 @@
From 6a79c58603ea816a1b4fa1520397b4e138bc1ca0 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 3 Mar 2014 19:30:16 +0100
Subject: [PATCH] logind: ignore lid switch if more than 1 display is
connected
Previously we expected the desktop environment to take an inhibitor
lock, but this opened a race on boot-up where logind might already be
running but no DE is active.
Hence, let's move checking for additional displays into logind. This
also opens up this logic for other DEs, given that only GNOME
implemented the inhibitor logic so far.
---
man/logind.conf.xml | 14 +++++++-----
src/login/logind-action.c | 8 +++++++
src/login/logind-core.c | 55 +++++++++++++++++++++++++++++++++++++++++++--
src/login/logind.h | 1 +
4 files changed, 71 insertions(+), 7 deletions(-)
diff --git man/logind.conf.xml man/logind.conf.xml
index 54cc379..7673201 100644
--- man/logind.conf.xml
+++ man/logind.conf.xml
@@ -242,10 +242,10 @@
<literal>ignore</literal>, logind will
never handle these keys. If
<literal>lock</literal>, all running
- sessions will be screen-locked; otherwise,
- the specified action
- will be taken in the respective
- event. Only input devices with the
+ sessions will be screen-locked;
+ otherwise, the specified action will
+ be taken in the respective event. Only
+ input devices with the
<literal>power-switch</literal> udev
tag will be watched for key/lid switch
events. <varname>HandlePowerKey=</varname>
@@ -257,7 +257,11 @@
default to <literal>suspend</literal>.
<varname>HandleHibernateKey=</varname>
defaults to
- <literal>hibernate</literal>.</para></listitem>
+ <literal>hibernate</literal>. Note
+ that the lid switch is ignored if the
+ system is inserted in a docking
+ station, or if more than one display
+ is connected.</para></listitem>
</varlistentry>
<varlistentry>
diff --git src/login/logind-action.c src/login/logind-action.c
index c04f210..da5a830 100644
--- src/login/logind-action.c
+++ src/login/logind-action.c
@@ -72,10 +72,18 @@ int manager_handle_action(
/* If we are docked don't react to lid closing */
if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) {
+ int n;
+
if (manager_is_docked(m)) {
log_debug("Ignoring lid switch request, system is docked.");
return 0;
}
+
+ n = manager_count_displays(m);
+ if (n != 1) {
+ log_debug("Ignoring lid switch request, %s displays connected.");
+ return 0;
+ }
}
/* If the key handling is inhibited, don't do anything */
diff --git src/login/logind-core.c src/login/logind-core.c
index e4e593f..b8d03c3 100644
--- src/login/logind-core.c
+++ src/login/logind-core.c
@@ -32,6 +32,7 @@
#include "audit.h"
#include "bus-util.h"
#include "bus-error.h"
+#include "udev-util.h"
#include "logind.h"
int manager_add_device(Manager *m, const char *sysfs, bool master, Device **_device) {
@@ -276,9 +277,11 @@ int manager_process_seat_device(Manager *m, struct udev_device *d) {
return 0;
}
- /* ignore non-master devices for unknown seats */
+ seat = hashmap_get(m->seats, sn);
master = udev_device_has_tag(d, "master-of-seat");
- if (!master && !(seat = hashmap_get(m->seats, sn)))
+
+ /* Ignore non-master devices for unknown seats */
+ if (!master && !seat)
return 0;
r = manager_add_device(m, udev_device_get_syspath(d), master, &device);
@@ -514,3 +517,51 @@ bool manager_is_docked(Manager *m) {
return false;
}
+
+int manager_count_displays(Manager *m) {
+ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL;
+ struct udev_list_entry *item = NULL, *first = NULL;
+ int r;
+ int n = 0;
+
+ e = udev_enumerate_new(m->udev);
+ if (!e)
+ return -ENOMEM;
+
+ r = udev_enumerate_add_match_subsystem(e, "drm");
+ if (r < 0)
+ return r;
+
+ r = udev_enumerate_scan_devices(e);
+ if (r < 0)
+ return r;
+
+ first = udev_enumerate_get_list_entry(e);
+ udev_list_entry_foreach(item, first) {
+ _cleanup_udev_device_unref_ struct udev_device *d = NULL;
+ struct udev_device *p;
+ const char *status;
+
+ d = udev_device_new_from_syspath(m->udev, udev_list_entry_get_name(item));
+ if (!d)
+ return -ENOMEM;
+
+ p = udev_device_get_parent(d);
+ if (!p)
+ return -ENOMEM;
+
+ /* If the parent shares the same subsystem as the
+ * device we are looking at then it is a connector,
+ * which is what we are interested in. */
+ if (!streq_ptr(udev_device_get_subsystem(p), "drm"))
+ continue;
+
+ /* We count any connector which is not explicitly
+ * "disconnected" as connected. */
+ status = udev_device_get_sysattr_value(d, "status");
+ if (!streq_ptr(status, "disconnected"))
+ n++;
+ }
+
+ return n;
+}
diff --git src/login/logind.h src/login/logind.h
index 0344acc..74d6641 100644
--- src/login/logind.h
+++ src/login/logind.h
@@ -149,6 +149,7 @@ int manager_get_user_by_pid(Manager *m, pid_t pid, User **user);
int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session);
bool manager_is_docked(Manager *m);
+int manager_count_displays(Manager *m);
extern const sd_bus_vtable manager_vtable[];
--
1.7.9.2

View File

@ -0,0 +1,32 @@
From f401e2b24ba17452f9655993a6dedefdffe06d23 Mon Sep 17 00:00:00 2001
From: Marcel Holtmann <marcel@holtmann.org>
Date: Tue, 11 Mar 2014 09:33:31 -0700
Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
---
hwdb/20-bluetooth-vendor-product.hwdb | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb
index 0335a71..7d86f10 100644
--- hwdb/20-bluetooth-vendor-product.hwdb
+++ hwdb/20-bluetooth-vendor-product.hwdb
@@ -911,3 +911,15 @@ bluetooth:v012C*
bluetooth:v012D*
ID_VENDOR_FROM_DATABASE=Sony Corporation
+
+bluetooth:v012E*
+ ID_VENDOR_FROM_DATABASE=ASSA ABLOY
+
+bluetooth:v012F*
+ ID_VENDOR_FROM_DATABASE=Clarion Co., Ltd.
+
+bluetooth:v0130*
+ ID_VENDOR_FROM_DATABASE=Warehouse Innovations
+
+bluetooth:v0131*
+ ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation
--
1.7.9.2

2058
0002-hwdb-update.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,99 @@
From baf167ee0a2953f98e4e7d4c35752ef737832674 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Fri, 11 Apr 2014 20:57:27 -0400
Subject: [PATCH] journal: properly detect language specified in line
... it turns out that the duplicates in our own catalog were not real
duplicates, but translations.
---
TODO | 2 ++
src/journal/catalog.c | 53 +++++++++++++++++++++++++++++++------------------
2 files changed, 36 insertions(+), 19 deletions(-)
diff --git TODO TODO
index 0343b94..a7307f7 100644
--- TODO
+++ TODO
@@ -709,6 +709,8 @@ External:
* fedora: update policy to declare access mode and ownership of unit files to root:root 0644, and add an rpmlint check for it
+* register catalog database signature as file magic
+
Regularly:
* look for close() vs. close_nointr() vs. close_nointr_nofail()
diff --git src/journal/catalog.c src/journal/catalog.c
index 02dedc4..f03357d 100644
--- src/journal/catalog.c
+++ src/journal/catalog.c
@@ -159,6 +159,37 @@ int catalog_file_lang(const char* filename, char **lang) {
return 1;
}
+static int catalog_entry_lang(const char* filename, int line,
+ const char* t, const char* deflang, char **lang) {
+ size_t c;
+
+ c = strlen(t);
+ if (c == 0) {
+ log_error("[%s:%u] Language too short.", filename, line);
+ return -EINVAL;
+ }
+ if (c > 31) {
+ log_error("[%s:%u] language too long.", filename, line);
+ return -EINVAL;
+ }
+
+ if (deflang) {
+ if (streq(t, deflang)) {
+ log_warning("[%s:%u] language specified unnecessarily",
+ filename, line);
+ return 0;
+ } else
+ log_warning("[%s:%u] language differs from default for file",
+ filename, line);
+ }
+
+ *lang = strdup(t);
+ if (!*lang)
+ return -ENOMEM;
+
+ return 0;
+}
+
int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) {
_cleanup_fclose_ FILE *f = NULL;
_cleanup_free_ char *payload = NULL;
@@ -238,25 +269,9 @@ int catalog_import_file(Hashmap *h, struct strbuf *sb, const char *path) {
if (with_language) {
t = strstrip(line + 2 + 1 + 32 + 1);
- c = strlen(t);
- if (c <= 0) {
- log_error("[%s:%u] Language too short.", path, n);
- return -EINVAL;
- }
- if (c > 31) {
- log_error("[%s:%u] language too long.", path, n);
- return -EINVAL;
- }
-
- if (deflang) {
- log_warning("[%s:%u] language %s", path, n,
- streq(t, deflang) ?
- "specified unnecessarily" :
- "differs from default for file");
- lang = strdup(t);
- if (!lang)
- return -ENOMEM;
- }
+ r = catalog_entry_lang(path, n, t, deflang, &lang);
+ if (r < 0)
+ return r;
}
got_id = true;
--
1.7.9.2

View File

@ -0,0 +1,25 @@
From 7e9110a29d90041b0364cb93a84aec9dd72363b6 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 3 Mar 2014 19:39:51 +0100
Subject: [PATCH] logind: fix printf format
---
src/login/logind-action.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git src/login/logind-action.c src/login/logind-action.c
index da5a830..c9d8bc5 100644
--- src/login/logind-action.c
+++ src/login/logind-action.c
@@ -81,7 +81,7 @@ int manager_handle_action(
n = manager_count_displays(m);
if (n != 1) {
- log_debug("Ignoring lid switch request, %s displays connected.");
+ log_debug("Ignoring lid switch request, %i displays connected.", n);
return 0;
}
}
--
1.7.9.2

View File

@ -0,0 +1,35 @@
From 2bcc2523711e69e6daa744641e56ed8b78646676 Mon Sep 17 00:00:00 2001
From: Michael Marineau <michael.marineau@coreos.com>
Date: Sat, 17 May 2014 16:09:08 -0700
Subject: [PATCH] man: note that entire sections can now be ignored
Prefixing a section name with "X-" will cause it and all of its contents
to be silently ignored as of commit 342aea19.
---
man/systemd.unit.xml | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git man/systemd.unit.xml man/systemd.unit.xml
index 157530b..e903156 100644
--- man/systemd.unit.xml
+++ man/systemd.unit.xml
@@ -139,10 +139,12 @@
<para>Unit files may contain additional options on top
of those listed here. If systemd encounters an unknown
option, it will write a warning log message but
- continue loading the unit. If an option is prefixed
- with <option>X-</option>, it is ignored completely by
- systemd. Applications may use this to include
- additional information in the unit files.</para>
+ continue loading the unit. If an option or section name
+ is prefixed with <option>X-</option>, it is ignored
+ completely by systemd. Options within an ignored
+ section do not need the prefix. Applications may use
+ this to include additional information in the unit
+ files.</para>
<para>Boolean arguments used in unit files can be
written in various formats. For positive settings the
--
1.7.9.2

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,38 @@
From f89b42ec0fd51feab5566d6bdbacee101023c037 Mon Sep 17 00:00:00 2001
From: Marcel Holtmann <marcel@holtmann.org>
Date: Tue, 25 Mar 2014 20:21:23 -0700
Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
---
hwdb/20-bluetooth-vendor-product.hwdb | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb
index 7d86f10..b928f5a 100644
--- hwdb/20-bluetooth-vendor-product.hwdb
+++ hwdb/20-bluetooth-vendor-product.hwdb
@@ -923,3 +923,21 @@ bluetooth:v0130*
bluetooth:v0131*
ID_VENDOR_FROM_DATABASE=Cypress Semiconductor Corporation
+
+bluetooth:v0132*
+ ID_VENDOR_FROM_DATABASE=MADS Inc
+
+bluetooth:v0133*
+ ID_VENDOR_FROM_DATABASE=Blue Maestro Limited
+
+bluetooth:v0134*
+ ID_VENDOR_FROM_DATABASE=Resolution Products, Inc.
+
+bluetooth:v0135*
+ ID_VENDOR_FROM_DATABASE=Airewear LLC
+
+bluetooth:v0136*
+ ID_VENDOR_FROM_DATABASE=ETC sp. z.o.o.
+
+bluetooth:v0137*
+ ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd.
--
1.7.9.2

View File

@ -0,0 +1,174 @@
From f9cd6be10ece07e10488c05e270a0b5860779864 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 3 Mar 2014 20:49:33 +0100
Subject: [PATCH] logind: ignore lid switch events for 30s after each suspend
and 3min after startup
This is needed to give USB docking stations and suchlike time to settle,
so that a display connected to an USB docking station can actually act
as a lid swith inhibitor correctly.
With this change we should have somewhat reliable docking station
support in place.
---
src/login/logind-action.c | 15 ++++++++++++++-
src/login/logind-dbus.c | 3 +++
src/login/logind.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
src/login/logind.h | 7 +++++++
4 files changed, 69 insertions(+), 1 deletion(-)
diff --git src/login/logind-action.c src/login/logind-action.c
index c9d8bc5..ae7b350 100644
--- src/login/logind-action.c
+++ src/login/logind-action.c
@@ -70,20 +70,33 @@ int manager_handle_action(
return 0;
}
- /* If we are docked don't react to lid closing */
if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) {
int n;
+ /* If we are docked don't react to lid closing */
if (manager_is_docked(m)) {
log_debug("Ignoring lid switch request, system is docked.");
return 0;
}
+ /* If we have more than one or no displays connected,
+ * don't react to lid closing. The no display case we
+ * treat like this under the assumption that there is
+ * no modern drm driver available. */
n = manager_count_displays(m);
if (n != 1) {
log_debug("Ignoring lid switch request, %i displays connected.", n);
return 0;
}
+
+ /* If the last system suspend or startup is too close,
+ * let's not suspend for now, to give USB docking
+ * stations some time to settle so that we can
+ * properly watch its displays. */
+ if (m->lid_switch_ignore_event_source) {
+ log_debug("Ignoring lid switch request, system startup or resume too close.");
+ return 0;
+ }
}
/* If the key handling is inhibited, don't do anything */
diff --git src/login/logind-dbus.c src/login/logind-dbus.c
index fc89531..c9c58f3 100644
--- src/login/logind-dbus.c
+++ src/login/logind-dbus.c
@@ -1337,6 +1337,9 @@ static int execute_shutdown_or_sleep(
m->action_job = c;
m->action_what = w;
+ /* Make sure the lid switch is ignored for a while */
+ manager_set_lid_switch_ignore(m, now(CLOCK_MONOTONIC) + IGNORE_LID_SWITCH_SUSPEND_USEC);
+
return 0;
}
diff --git src/login/logind.c src/login/logind.c
index 10f61ab..fd113b3 100644
--- src/login/logind.c
+++ src/login/logind.c
@@ -144,6 +144,7 @@ void manager_free(Manager *m) {
sd_event_source_unref(m->udev_device_event_source);
sd_event_source_unref(m->udev_vcsa_event_source);
sd_event_source_unref(m->udev_button_event_source);
+ sd_event_source_unref(m->lid_switch_ignore_event_source);
if (m->console_active_fd >= 0)
close_nointr_nofail(m->console_active_fd);
@@ -959,6 +960,46 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us
return 0;
}
+static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) {
+ Manager *m = userdata;
+
+ assert(e);
+ assert(m);
+
+ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source);
+ return 0;
+}
+
+int manager_set_lid_switch_ignore(Manager *m, usec_t until) {
+ int r;
+
+ assert(m);
+
+ if (until <= now(CLOCK_MONOTONIC))
+ return 0;
+
+ /* We want to ignore the lid switch for a while after each
+ * suspend, and after boot-up. Hence let's install a timer for
+ * this. As long as the event source exists we ignore the lid
+ * switch. */
+
+ if (m->lid_switch_ignore_event_source) {
+ usec_t u;
+
+ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u);
+ if (r < 0)
+ return r;
+
+ if (until <= u)
+ return 0;
+
+ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until);
+ } else
+ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m);
+
+ return r;
+}
+
int manager_startup(Manager *m) {
int r;
Seat *seat;
@@ -994,6 +1035,10 @@ int manager_startup(Manager *m) {
return r;
}
+ r = manager_set_lid_switch_ignore(m, 0 + IGNORE_LID_SWITCH_STARTUP_USEC);
+ if (r < 0)
+ log_warning("Failed to set up lid switch ignore event source: %s", strerror(-r));
+
/* Deserialize state */
r = manager_enumerate_devices(m);
if (r < 0)
diff --git src/login/logind.h src/login/logind.h
index 74d6641..4bb8e7b 100644
--- src/login/logind.h
+++ src/login/logind.h
@@ -42,6 +42,9 @@ typedef struct Manager Manager;
#include "logind-button.h"
#include "logind-action.h"
+#define IGNORE_LID_SWITCH_STARTUP_USEC (3 * USEC_PER_MINUTE)
+#define IGNORE_LID_SWITCH_SUSPEND_USEC (30 * USEC_PER_SEC)
+
struct Manager {
sd_event *event;
sd_bus *bus;
@@ -118,6 +121,8 @@ struct Manager {
bool lid_switch_ignore_inhibited;
Hashmap *polkit_registry;
+
+ sd_event_source *lid_switch_ignore_event_source;
};
Manager *manager_new(void);
@@ -178,3 +183,5 @@ const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned lengt
int manager_watch_busname(Manager *manager, const char *name);
void manager_drop_busname(Manager *manager, const char *name);
+
+int manager_set_lid_switch_ignore(Manager *m, usec_t until);
--
1.7.9.2

View File

@ -0,0 +1,40 @@
From 05a2f6fefedd7254fd799502191d025d2908cf74 Mon Sep 17 00:00:00 2001
From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
Date: Sat, 12 Apr 2014 08:37:38 +0300
Subject: [PATCH] man: mention XDG_CONFIG_HOME in systemd.unit
---
man/systemd.unit.xml | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git man/systemd.unit.xml man/systemd.unit.xml
index 07a73fd..bcd4ba8 100644
--- man/systemd.unit.xml
+++ man/systemd.unit.xml
@@ -70,7 +70,8 @@
<filename>...</filename>
</literallayout></para>
- <para><literallayout><filename>$HOME/.config/systemd/user/*</filename>
+ <para><literallayout><filename>$XDG_CONFIG_HOME/systemd/user/*</filename>
+<filename>$HOME/.config/systemd/user/*</filename>
<filename>/etc/systemd/user/*</filename>
<filename>/run/systemd/user/*</filename>
<filename>/usr/lib/systemd/user/*</filename>
@@ -320,8 +321,12 @@
</thead>
<tbody>
<row>
+ <entry><filename>$XDG_CONFIG_HOME/systemd/user</filename></entry>
+ <entry>User configuration (only used when $XDG_CONFIG_HOME is set)</entry>
+ </row>
+ <row>
<entry><filename>$HOME/.config/systemd/user</filename></entry>
- <entry>User configuration</entry>
+ <entry>User configuration (only used when $XDG_CONFIG_HOME is not set)</entry>
</row>
<row>
<entry><filename>/etc/systemd/user</filename></entry>
--
1.7.9.2

View File

@ -0,0 +1,50 @@
From b189101727e80a09864c5e5880663ef565467f19 Mon Sep 17 00:00:00 2001
From: Marcel Holtmann <marcel@holtmann.org>
Date: Sat, 12 Apr 2014 10:38:16 -0700
Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
---
hwdb/20-bluetooth-vendor-product.hwdb | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb
index b928f5a..28aa2a7 100644
--- hwdb/20-bluetooth-vendor-product.hwdb
+++ hwdb/20-bluetooth-vendor-product.hwdb
@@ -733,7 +733,7 @@ bluetooth:v00F1*
ID_VENDOR_FROM_DATABASE=Witron Technology Limited
bluetooth:v00F2*
- ID_VENDOR_FROM_DATABASE=Morse Project Inc.
+ ID_VENDOR_FROM_DATABASE=Aether Things Inc. (formerly Morse Project Inc.)
bluetooth:v00F3*
ID_VENDOR_FROM_DATABASE=Kent Displays Inc.
@@ -941,3 +941,24 @@ bluetooth:v0136*
bluetooth:v0137*
ID_VENDOR_FROM_DATABASE=Prestigio Plaza Ltd.
+
+bluetooth:v0138*
+ ID_VENDOR_FROM_DATABASE=NTEO Inc.
+
+bluetooth:v0139*
+ ID_VENDOR_FROM_DATABASE=Focus Systems Corporation
+
+bluetooth:v013A*
+ ID_VENDOR_FROM_DATABASE=Tencent Holdings Limited
+
+bluetooth:v013B*
+ ID_VENDOR_FROM_DATABASE=Allegion
+
+bluetooth:v013C*
+ ID_VENDOR_FROM_DATABASE=Murata Manufacuring Co., Ltd.
+
+bluetooth:v013D*
+ ID_VENDOR_FROM_DATABASE=WirelessWERX
+
+bluetooth:v013E*
+ ID_VENDOR_FROM_DATABASE=nimai
--
1.7.9.2

3964
0004-hwdb-update.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,45 @@
From 94036de887ad5b0dc805abe38b5c1c58b57d9465 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity@gmail.com>
Date: Tue, 11 Mar 2014 17:49:00 +0200
Subject: [PATCH] logind: Do not fail display count if a device has no parent
udev_device_get_parent() may return NULL when the device doesn't have a
parent, as is the case with (for example) /sys/devices/virtual/drm/ttm.
Also, log an actual error message instead of "-12 displays connected".
---
src/login/logind-action.c | 4 +++-
src/login/logind-core.c | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git src/login/logind-action.c src/login/logind-action.c
index ae7b350..1928f43 100644
--- src/login/logind-action.c
+++ src/login/logind-action.c
@@ -84,7 +84,9 @@ int manager_handle_action(
* treat like this under the assumption that there is
* no modern drm driver available. */
n = manager_count_displays(m);
- if (n != 1) {
+ if (n < 0)
+ log_warning("Display counting failed: %s", strerror(-n));
+ else if (n != 1) {
log_debug("Ignoring lid switch request, %i displays connected.", n);
return 0;
}
diff --git src/login/logind-core.c src/login/logind-core.c
index ca34d37..053d2ed 100644
--- src/login/logind-core.c
+++ src/login/logind-core.c
@@ -520,7 +520,7 @@ int manager_count_displays(Manager *m) {
p = udev_device_get_parent(d);
if (!p)
- return -ENOMEM;
+ continue;
/* If the parent shares the same subsystem as the
* device we are looking at then it is a connector,
--
1.7.9.2

View File

@ -0,0 +1,38 @@
From d3152a09ac5804ec8603daee12f98cf03523cce0 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 19 May 2014 00:47:26 +0900
Subject: [PATCH] machined: make sure GetMachineAddresses() is available for
unprivileged processes
---
src/machine/org.freedesktop.machine1.conf | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git src/machine/org.freedesktop.machine1.conf src/machine/org.freedesktop.machine1.conf
index 970ccd8..ab349a5 100644
--- src/machine/org.freedesktop.machine1.conf
+++ src/machine/org.freedesktop.machine1.conf
@@ -42,12 +42,20 @@
<allow send_destination="org.freedesktop.machine1"
send_interface="org.freedesktop.machine1.Manager"
+ send_member="GetMachineAddresses"/>
+
+ <allow send_destination="org.freedesktop.machine1"
+ send_interface="org.freedesktop.machine1.Manager"
send_member="GetMachine"/>
<allow send_destination="org.freedesktop.machine1"
send_interface="org.freedesktop.machine1.Manager"
send_member="GetMachineByPID"/>
+ <allow send_destination="org.freedesktop.machine1"
+ send_interface="org.freedesktop.machine1.Machine"
+ send_member="GetAddresses"/>
+
<allow receive_sender="org.freedesktop.machine1"/>
</policy>
--
1.7.9.2

View File

@ -0,0 +1,137 @@
From cdc06ed7b6120c1049305fa7033f228ee9d86043 Mon Sep 17 00:00:00 2001
From: David Strauss <david@davidstrauss.net>
Date: Mon, 28 Apr 2014 12:08:32 -0700
Subject: [PATCH] core: Filter by state behind the D-Bus API, not in the
systemctl client.
---
src/core/dbus-manager.c | 24 +++++++++++++++++++++++-
src/core/org.freedesktop.systemd1.conf | 4 ++++
src/systemctl/systemctl.c | 24 +++++++++++++-----------
3 files changed, 40 insertions(+), 12 deletions(-)
diff --git src/core/dbus-manager.c src/core/dbus-manager.c
index 58e484d..d5fab0a 100644
--- src/core/dbus-manager.c
+++ src/core/dbus-manager.c
@@ -728,7 +728,7 @@ static int method_reset_failed(sd_bus *bus, sd_bus_message *message, void *userd
return sd_bus_reply_method_return(message, NULL);
}
-static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
+static int list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error, char **states) {
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
Manager *m = userdata;
const char *k;
@@ -761,6 +761,12 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat
following = unit_following(u);
+ if (!strv_isempty(states) &&
+ !strv_contains(states, unit_load_state_to_string(u->load_state)) &&
+ !strv_contains(states, unit_active_state_to_string(unit_active_state(u))) &&
+ !strv_contains(states, unit_sub_state_to_string(u)))
+ continue;
+
unit_path = unit_dbus_path(u);
if (!unit_path)
return -ENOMEM;
@@ -794,6 +800,21 @@ static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdat
return sd_bus_send(bus, reply, NULL);
}
+static int method_list_units(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
+ return list_units_filtered(bus, message, userdata, error, NULL);
+}
+
+static int method_list_units_filtered(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
+ _cleanup_strv_free_ char **states = NULL;
+ int r;
+
+ r = sd_bus_message_read_strv(message, &states);
+ if (r < 0)
+ return r;
+
+ return list_units_filtered(bus, message, userdata, error, states);
+}
+
static int method_list_jobs(sd_bus *bus, sd_bus_message *message, void *userdata, sd_bus_error *error) {
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
Manager *m = userdata;
@@ -1670,6 +1691,7 @@ const sd_bus_vtable bus_manager_vtable[] = {
SD_BUS_METHOD("ClearJobs", NULL, NULL, method_clear_jobs, 0),
SD_BUS_METHOD("ResetFailed", NULL, NULL, method_reset_failed, 0),
SD_BUS_METHOD("ListUnits", NULL, "a(ssssssouso)", method_list_units, SD_BUS_VTABLE_UNPRIVILEGED),
+ SD_BUS_METHOD("ListUnitsFiltered", "as", "a(ssssssouso)", method_list_units_filtered, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("ListJobs", NULL, "a(usssoo)", method_list_jobs, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("Subscribe", NULL, NULL, method_subscribe, SD_BUS_VTABLE_UNPRIVILEGED),
SD_BUS_METHOD("Unsubscribe", NULL, NULL, method_unsubscribe, SD_BUS_VTABLE_UNPRIVILEGED),
diff --git src/core/org.freedesktop.systemd1.conf src/core/org.freedesktop.systemd1.conf
index a375dce..9dfca81 100644
--- src/core/org.freedesktop.systemd1.conf
+++ src/core/org.freedesktop.systemd1.conf
@@ -64,6 +64,10 @@
<allow send_destination="org.freedesktop.systemd1"
send_interface="org.freedesktop.systemd1.Manager"
+ send_member="ListUnitsFiltered"/>
+
+ <allow send_destination="org.freedesktop.systemd1"
+ send_interface="org.freedesktop.systemd1.Manager"
send_member="ListUnitFiles"/>
<allow send_destination="org.freedesktop.systemd1"
--- src/systemctl/systemctl.c
+++ src/systemctl/systemctl.c 2014-05-20 12:39:27.058236843 +0000
@@ -308,12 +308,6 @@ static int compare_unit_info(const void
static bool output_show_unit(const UnitInfo *u, char **patterns) {
const char *dot;
- if (!strv_isempty(arg_states))
- return
- strv_contains(arg_states, u->load_state) ||
- strv_contains(arg_states, u->sub_state) ||
- strv_contains(arg_states, u->active_state);
-
if (!strv_isempty(patterns)) {
char **pattern;
@@ -467,6 +461,7 @@ static int get_unit_list(
UnitInfo **_unit_infos,
char **patterns) {
+ _cleanup_bus_message_unref_ sd_bus_message *m = NULL;
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
_cleanup_free_ UnitInfo *unit_infos = NULL;
@@ -478,15 +473,22 @@ static int get_unit_list(
assert(_reply);
assert(_unit_infos);
- r = sd_bus_call_method(
+ r = sd_bus_message_new_method_call(
bus,
+ &m,
"org.freedesktop.systemd1",
"/org/freedesktop/systemd1",
"org.freedesktop.systemd1.Manager",
- "ListUnits",
- &error,
- &reply,
- NULL);
+ "ListUnitsFiltered");
+
+ if (r < 0)
+ return bus_log_create_error(r);
+
+ r = sd_bus_message_append_strv(m, arg_states);
+ if (r < 0)
+ return bus_log_create_error(r);
+
+ r = sd_bus_call(bus, m, 0, &error, &reply);
if (r < 0) {
log_error("Failed to list units: %s", bus_error_message(&error, r));
return r;
--
1.7.9.2

View File

@ -0,0 +1,73 @@
From 24e29480bd800d3acdb3087e5863440bd0dd1d80 Mon Sep 17 00:00:00 2001
From: Marcel Holtmann <marcel@holtmann.org>
Date: Fri, 16 May 2014 15:57:35 -0700
Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers
---
hwdb/20-bluetooth-vendor-product.hwdb | 53 ++++++++++++++++++++++++++++++++-
1 file changed, 52 insertions(+), 1 deletion(-)
diff --git hwdb/20-bluetooth-vendor-product.hwdb hwdb/20-bluetooth-vendor-product.hwdb
index 28aa2a7..a65c7db 100644
--- hwdb/20-bluetooth-vendor-product.hwdb
+++ hwdb/20-bluetooth-vendor-product.hwdb
@@ -961,4 +961,55 @@ bluetooth:v013D*
ID_VENDOR_FROM_DATABASE=WirelessWERX
bluetooth:v013E*
- ID_VENDOR_FROM_DATABASE=nimai
+ ID_VENDOR_FROM_DATABASE=Nod, Inc.
+
+bluetooth:v013F*
+ ID_VENDOR_FROM_DATABASE=B&B Manufacturing Company
+
+bluetooth:v0140*
+ ID_VENDOR_FROM_DATABASE=Alpine Electronics (China) Co., Ltd
+
+bluetooth:v0141*
+ ID_VENDOR_FROM_DATABASE=FedEx Services
+
+bluetooth:v0142*
+ ID_VENDOR_FROM_DATABASE=Grape Systems Inc.
+
+bluetooth:v0143*
+ ID_VENDOR_FROM_DATABASE=Bkon Connect
+
+bluetooth:v0144*
+ ID_VENDOR_FROM_DATABASE=Lintech GmbH
+
+bluetooth:v0145*
+ ID_VENDOR_FROM_DATABASE=Novatel Wireless
+
+bluetooth:v0146*
+ ID_VENDOR_FROM_DATABASE=Ciright
+
+bluetooth:v0147*
+ ID_VENDOR_FROM_DATABASE=Mighty Cast, Inc.
+
+bluetooth:v0148*
+ ID_VENDOR_FROM_DATABASE=Ambimat Electronics
+
+bluetooth:v0149*
+ ID_VENDOR_FROM_DATABASE=Perytons Ltd.
+
+bluetooth:v014A*
+ ID_VENDOR_FROM_DATABASE=Tivoli Audio, LLC
+
+bluetooth:v014B*
+ ID_VENDOR_FROM_DATABASE=Master Lock
+
+bluetooth:v014C*
+ ID_VENDOR_FROM_DATABASE=Mesh-Net Ltd
+
+bluetooth:v014D*
+ ID_VENDOR_FROM_DATABASE=HUIZHOU DESAY SV AUTOMOTIVE CO., LTD.
+
+bluetooth:v014E*
+ ID_VENDOR_FROM_DATABASE=Tangerine, Inc.
+
+bluetooth:v014F*
+ ID_VENDOR_FROM_DATABASE=B&W Group Ltd.
--
1.7.9.2

1560
0005-hwdb-update.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,119 @@
From b5d3e1688133077ca20542a20dcd8919147e72e1 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Tue, 11 Mar 2014 22:38:54 +0100
Subject: [PATCH] logind: move lid switch handling from logind-main to
logind-core
../src/login/logind-dbus.c:1352: error: undefined reference to 'manager_set_lid_switch_ignore'
collect2: error: ld returned 1 exit status
make[2]: *** [test-login-tables]
---
src/login/logind-dbus.c | 40 ++++++++++++++++++++++++++++++++++++++++
src/login/logind.c | 40 ----------------------------------------
2 files changed, 40 insertions(+), 40 deletions(-)
diff --git src/login/logind-dbus.c src/login/logind-dbus.c
index c5f9cb3..2ef87f7 100644
--- src/login/logind-dbus.c
+++ src/login/logind-dbus.c
@@ -1305,6 +1305,46 @@ static int bus_manager_log_shutdown(
q, NULL);
}
+static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) {
+ Manager *m = userdata;
+
+ assert(e);
+ assert(m);
+
+ m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source);
+ return 0;
+}
+
+int manager_set_lid_switch_ignore(Manager *m, usec_t until) {
+ int r;
+
+ assert(m);
+
+ if (until <= now(CLOCK_MONOTONIC))
+ return 0;
+
+ /* We want to ignore the lid switch for a while after each
+ * suspend, and after boot-up. Hence let's install a timer for
+ * this. As long as the event source exists we ignore the lid
+ * switch. */
+
+ if (m->lid_switch_ignore_event_source) {
+ usec_t u;
+
+ r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u);
+ if (r < 0)
+ return r;
+
+ if (until <= u)
+ return 0;
+
+ r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until);
+ } else
+ r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m);
+
+ return r;
+}
+
static int execute_shutdown_or_sleep(
Manager *m,
InhibitWhat w,
diff --git src/login/logind.c src/login/logind.c
index 03b7753..2d734ff 100644
--- src/login/logind.c
+++ src/login/logind.c
@@ -962,46 +962,6 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us
return 0;
}
-static int lid_switch_ignore_handler(sd_event_source *e, uint64_t usec, void *userdata) {
- Manager *m = userdata;
-
- assert(e);
- assert(m);
-
- m->lid_switch_ignore_event_source = sd_event_source_unref(m->lid_switch_ignore_event_source);
- return 0;
-}
-
-int manager_set_lid_switch_ignore(Manager *m, usec_t until) {
- int r;
-
- assert(m);
-
- if (until <= now(CLOCK_MONOTONIC))
- return 0;
-
- /* We want to ignore the lid switch for a while after each
- * suspend, and after boot-up. Hence let's install a timer for
- * this. As long as the event source exists we ignore the lid
- * switch. */
-
- if (m->lid_switch_ignore_event_source) {
- usec_t u;
-
- r = sd_event_source_get_time(m->lid_switch_ignore_event_source, &u);
- if (r < 0)
- return r;
-
- if (until <= u)
- return 0;
-
- r = sd_event_source_set_time(m->lid_switch_ignore_event_source, until);
- } else
- r = sd_event_add_monotonic(m->event, &m->lid_switch_ignore_event_source, until, 0, lid_switch_ignore_handler, m);
-
- return r;
-}
-
int manager_startup(Manager *m) {
int r;
Seat *seat;
--
1.7.9.2

View File

@ -0,0 +1,90 @@
From 9541666b8d97f107335dd7e3cb93b4d2cfbf19c9 Mon Sep 17 00:00:00 2001
From: David Herrmann <dh.herrmann@gmail.com>
Date: Wed, 9 Apr 2014 21:22:48 +0200
Subject: [PATCH] login: add 'mir' to the list of session types
Add Mir to the list of session types. This is implemented for LightDM
in lp:~robert-ancell/lightdm/xdg-session-desktop [1].
[1] https://code.launchpad.net/~robert-ancell/lightdm/xdg-session-desktop/+merge/214108
(david: adjusted commit-header and fixed whitespace issues)
---
man/pam_systemd.xml | 5 +++--
man/sd_session_is_active.xml | 6 +++---
src/login/logind-session.c | 1 +
src/login/logind-session.h | 1 +
src/systemd/sd-login.h | 2 +-
5 files changed, 9 insertions(+), 6 deletions(-)
diff --git man/pam_systemd.xml man/pam_systemd.xml
index 3022cdb..f973899 100644
--- man/pam_systemd.xml
+++ man/pam_systemd.xml
@@ -145,8 +145,9 @@
variable takes precedence. One of
<literal>unspecified</literal>,
<literal>tty</literal>,
- <literal>x11</literal> or
- <literal>wayland</literal>. See
+ <literal>x11</literal>,
+ <literal>wayland</literal> or
+ <literal>mir</literal>. See
<citerefentry><refentrytitle>sd_session_get_type</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details about the session type.</para></listitem>
</varlistentry>
diff --git man/sd_session_is_active.xml man/sd_session_is_active.xml
index ddb2bee..31a6119 100644
--- man/sd_session_is_active.xml
+++ man/sd_session_is_active.xml
@@ -201,9 +201,9 @@
be used to determine the type of the session
identified by the specified session identifier. The
returned string is one of <literal>x11</literal>,
- <literal>wayland</literal>, <literal>tty</literal> or
- <literal>unspecified</literal> and needs to be freed
- with the libc
+ <literal>wayland</literal>, <literal>tty</literal>,
+ <literal>mir</literal> or <literal>unspecified</literal> and
+ needs to be freed with the libc
<citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
--- src/login/logind-session.c
+++ src/login/logind-session.c 2014-05-20 12:49:07.150236121 +0000
@@ -1124,6 +1124,7 @@ static const char* const session_type_ta
[SESSION_TTY] = "tty",
[SESSION_X11] = "x11",
[SESSION_WAYLAND] = "wayland",
+ [SESSION_MIR] = "mir",
[SESSION_UNSPECIFIED] = "unspecified",
};
diff --git src/login/logind-session.h src/login/logind-session.h
index c9af5eb..7ecc9f0 100644
--- src/login/logind-session.h
+++ src/login/logind-session.h
@@ -55,6 +55,7 @@ typedef enum SessionType {
SESSION_TTY,
SESSION_X11,
SESSION_WAYLAND,
+ SESSION_MIR,
_SESSION_TYPE_MAX,
_SESSION_TYPE_INVALID = -1
} SessionType;
diff --git src/systemd/sd-login.h src/systemd/sd-login.h
index a4ca231..776733a 100644
--- src/systemd/sd-login.h
+++ src/systemd/sd-login.h
@@ -138,7 +138,7 @@ int sd_session_get_seat(const char *session, char **seat);
/* Determine the (PAM) service name this session was registered by. */
int sd_session_get_service(const char *session, char **service);
-/* Determine the type of this session, i.e. one of "tty", "x11" or "unspecified". */
+/* Determine the type of this session, i.e. one of "tty", "x11", "wayland", "mir" or "unspecified". */
int sd_session_get_type(const char *session, char **type);
/* Determine the class of this session, i.e. one of "user", "greeter" or "lock-screen". */
--
1.7.9.2

View File

@ -0,0 +1,39 @@
From 33169701b0640d3629d4c36cf8c71dc26d2cb7e1 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Fri, 16 May 2014 01:33:22 +0200
Subject: [PATCH] man: clarify that the ExecReload= command should be
synchronous
http://lists.freedesktop.org/archives/systemd-devel/2014-May/019054.html
---
man/systemd.service.xml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git man/systemd.service.xml man/systemd.service.xml
index af32ccb..364ad7d 100644
--- man/systemd.service.xml
+++ man/systemd.service.xml
@@ -519,6 +519,20 @@ ExecStart=/bin/echo $ONE $TWO ${TWO}</programlisting>
following:</para>
<programlisting>/bin/kill -HUP $MAINPID</programlisting>
+
+ <para>Note however that reloading a
+ daemon by sending a signal (as with
+ the example line above) is usually not
+ a good choice, because this is an
+ asynchronous operation and hence not
+ suitable to order reloads of multiple
+ services against each other. It is
+ strongly recommended to set
+ <varname>ExecReload=</varname> to a
+ command that no only triggers a
+ configuration reload of the daemon,
+ but also synchronously waits for it
+ complete.</para>
</listitem>
</varlistentry>
--
1.7.9.2

View File

@ -0,0 +1,147 @@
From 952d32609f9bceee444fa2690afb4d28539b4b92 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 19 May 2014 09:03:20 +0900
Subject: [PATCH] logind: fix Display property of user objects
When we dropped support for creating a per-user to the "main" X11
display we stopped returning useful data in the "Display" user property.
With this change this is fixed and we again expose an appropriate
(graphical session) in the property that is useful as the "main" one, if
one is needed.
---
src/login/logind-session.c | 8 ++++++--
src/login/logind-session.h | 2 ++
src/login/logind-user-dbus.c | 2 +-
src/login/logind-user.c | 37 +++++++++++++++++++++++++++++++++++++
src/login/logind-user.h | 1 +
5 files changed, 47 insertions(+), 3 deletions(-)
diff --git src/login/logind-session.c src/login/logind-session.c
index 4fb229e..9a54101 100644
--- src/login/logind-session.c
+++ src/login/logind-session.c
@@ -545,6 +545,8 @@ int session_start(Session *s) {
s->started = true;
+ user_elect_display(s->user);
+
/* Save data */
session_save(s);
user_save(s->user);
@@ -553,7 +555,7 @@ int session_start(Session *s) {
/* Send signals */
session_send_signal(s, true);
- user_send_changed(s->user, "Sessions", NULL);
+ user_send_changed(s->user, "Sessions", "Display", NULL);
if (s->seat) {
if (s->seat->active == s)
seat_send_changed(s->seat, "Sessions", "ActiveSession", NULL);
@@ -612,6 +614,8 @@ int session_stop(Session *s, bool force) {
s->stopping = true;
+ user_elect_display(s->user);
+
session_save(s);
user_save(s->user);
@@ -660,7 +664,7 @@ int session_finalize(Session *s) {
}
user_save(s->user);
- user_send_changed(s->user, "Sessions", NULL);
+ user_send_changed(s->user, "Sessions", "Display", NULL);
return r;
}
diff --git src/login/logind-session.h src/login/logind-session.h
index f78f309..81957df 100644
--- src/login/logind-session.h
+++ src/login/logind-session.h
@@ -60,6 +60,8 @@ typedef enum SessionType {
_SESSION_TYPE_INVALID = -1
} SessionType;
+#define SESSION_TYPE_IS_GRAPHICAL(type) IN_SET(type, SESSION_X11, SESSION_WAYLAND, SESSION_MIR)
+
enum KillWho {
KILL_LEADER,
KILL_ALL,
diff --git src/login/logind-user-dbus.c src/login/logind-user-dbus.c
index 6266ccb..51793f6 100644
--- src/login/logind-user-dbus.c
+++ src/login/logind-user-dbus.c
@@ -220,7 +220,7 @@ const sd_bus_vtable user_vtable[] = {
SD_BUS_PROPERTY("RuntimePath", "s", NULL, offsetof(User, runtime_path), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Service", "s", NULL, offsetof(User, service), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Slice", "s", NULL, offsetof(User, slice), SD_BUS_VTABLE_PROPERTY_CONST),
- SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_CONST),
+ SD_BUS_PROPERTY("Display", "(so)", property_get_display, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("State", "s", property_get_state, 0, 0),
SD_BUS_PROPERTY("Sessions", "a(so)", property_get_sessions, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("IdleHint", "b", property_get_idle_hint, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
diff --git src/login/logind-user.c src/login/logind-user.c
index 5fffa65..fdbccb3 100644
--- src/login/logind-user.c
+++ src/login/logind-user.c
@@ -713,6 +713,43 @@ int user_kill(User *u, int signo) {
return manager_kill_unit(u->manager, u->slice, KILL_ALL, signo, NULL);
}
+void user_elect_display(User *u) {
+ Session *graphical = NULL, *text = NULL, *s;
+
+ assert(u);
+
+ /* This elects a primary session for each user, which we call
+ * the "display". We try to keep the assignment stable, but we
+ * "upgrade" to better choices. */
+
+ LIST_FOREACH(sessions_by_user, s, u->sessions) {
+
+ if (s->class != SESSION_USER)
+ continue;
+
+ if (s->stopping)
+ continue;
+
+ if (SESSION_TYPE_IS_GRAPHICAL(s->type))
+ graphical = s;
+ else
+ text = s;
+ }
+
+ if (graphical &&
+ (!u->display ||
+ u->display->class != SESSION_USER ||
+ u->display->stopping ||
+ !SESSION_TYPE_IS_GRAPHICAL(u->display->type)))
+ u->display = graphical;
+
+ if (text &&
+ (!u->display ||
+ u->display->class != SESSION_USER ||
+ u->display->stopping))
+ u->display = text;
+}
+
static const char* const user_state_table[_USER_STATE_MAX] = {
[USER_OFFLINE] = "offline",
[USER_OPENING] = "opening",
diff --git src/login/logind-user.h src/login/logind-user.h
index f237d2a..4e0568f 100644
--- src/login/logind-user.h
+++ src/login/logind-user.h
@@ -80,6 +80,7 @@ int user_save(User *u);
int user_load(User *u);
int user_kill(User *u, int signo);
int user_check_linger_file(User *u);
+void user_elect_display(User *u);
extern const sd_bus_vtable user_vtable[];
int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error);
--
1.7.9.2

View File

@ -0,0 +1,41 @@
From 332bc31992acffc6f32e194c0122e01607bd0e27 Mon Sep 17 00:00:00 2001
From: Alison Chaiken <alison_chaiken@mentor.com>
Date: Fri, 16 May 2014 09:25:53 +0200
Subject: [PATCH] man: readahead: fix cmdline switch inconsistency between
readahead.c and docs
Source code has "files-max" and XML has --max-files.
---
man/systemd-readahead-replay.service.xml | 2 +-
src/readahead/readahead.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git man/systemd-readahead-replay.service.xml man/systemd-readahead-replay.service.xml
index 67b41f5..669fe78 100644
--- man/systemd-readahead-replay.service.xml
+++ man/systemd-readahead-replay.service.xml
@@ -117,7 +117,7 @@
<variablelist>
<varlistentry>
- <term><option>--max-files=</option></term>
+ <term><option>--files-max=</option></term>
<listitem><para>Maximum number of
files to read ahead. Only valid
diff --git src/readahead/readahead.c src/readahead/readahead.c
index d6729ec..73cf538 100644
--- src/readahead/readahead.c
+++ src/readahead/readahead.c
@@ -42,7 +42,7 @@ static int help(void) {
"Collect read-ahead data on early boot.\n\n"
" -h --help Show this help\n"
" --version Show package version\n"
- " --max-files=INT Maximum number of files to read ahead\n"
+ " --files-max=INT Maximum number of files to read ahead\n"
" --file-size-max=BYTES Maximum size of files to read ahead\n"
" --timeout=USEC Maximum time to spend collecting data\n\n\n",
program_invocation_short_name);
--
1.7.9.2

View File

@ -0,0 +1,28 @@
From 8f18f550e7023948f199616fdfbb0f09711fd615 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity@gmail.com>
Date: Wed, 30 Apr 2014 19:53:13 +0300
Subject: [PATCH] man: update journald rate limit defaults
This brings the man page back into sync with the actual code.
---
man/journald.conf.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git man/journald.conf.xml man/journald.conf.xml
index 239a2ec..5cd09a2 100644
--- man/journald.conf.xml
+++ man/journald.conf.xml
@@ -190,8 +190,8 @@
limiting is applied per-service, so
that two services which log do not
interfere with each other's
- limits. Defaults to 200 messages in
- 10s. The time specification for
+ limits. Defaults to 1000 messages in
+ 30s. The time specification for
<varname>RateLimitInterval=</varname>
may be specified in the following
units: <literal>s</literal>,
--
1.7.9.2

View File

@ -0,0 +1,56 @@
From 9f24adc288de142d6606fde3c5a5971613f3b6b9 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Fri, 16 May 2014 19:37:19 +0200
Subject: [PATCH] nspawn: properly format container_uuid in UUID format
http://lists.freedesktop.org/archives/systemd-devel/2014-April/018971.html
---
src/nspawn/nspawn.c | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git src/nspawn/nspawn.c src/nspawn/nspawn.c
index 0bd52da..6be4dca 100644
--- src/nspawn/nspawn.c
+++ src/nspawn/nspawn.c
@@ -769,6 +769,15 @@ static int setup_resolv_conf(const char *dest) {
return 0;
}
+static char* id128_format_as_uuid(sd_id128_t id, char s[37]) {
+
+ snprintf(s, 37,
+ "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+ SD_ID128_FORMAT_VAL(id));
+
+ return s;
+}
+
static int setup_boot_id(const char *dest) {
_cleanup_free_ char *from = NULL, *to = NULL;
sd_id128_t rnd = {};
@@ -794,10 +803,7 @@ static int setup_boot_id(const char *dest) {
return r;
}
- snprintf(as_uuid, sizeof(as_uuid),
- "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
- SD_ID128_FORMAT_VAL(rnd));
- char_array_0(as_uuid);
+ id128_format_as_uuid(rnd, as_uuid);
r = write_string_file(from, as_uuid);
if (r < 0) {
@@ -2954,7 +2960,9 @@ int main(int argc, char *argv[]) {
}
if (!sd_id128_equal(arg_uuid, SD_ID128_NULL)) {
- if (asprintf((char**)(envp + n_env++), "container_uuid=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(arg_uuid)) < 0) {
+ char as_uuid[37];
+
+ if (asprintf((char**)(envp + n_env++), "container_uuid=%s", id128_format_as_uuid(arg_uuid, as_uuid)) < 0) {
log_oom();
goto child_fail;
}
--
1.7.9.2

View File

@ -0,0 +1,42 @@
From d36d90933a832bd1e1eb8e3d16b3de73f91636b4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= <grawity@gmail.com>
Date: Mon, 28 Apr 2014 00:58:56 +0300
Subject: [PATCH] logind: allow suspending if there are no displays
With proprietary graphics drivers, there won't be any 'drm' devices in
sysfs, so logind will never suspend the system upon closing the lid,
even if only one (internal) display is connected. This has been reported
by multiple users so far.
IMHO, it's better to suspend the system in this case for safety reasons,
to avoid having nvidia blob users' laptops overheat, for the same reason
that sleep inhibitors are overridden (LidSwitchIgnoreInhibited=yes).
---
src/login/logind-action.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git src/login/logind-action.c src/login/logind-action.c
index ae9cd48..36ee441 100644
--- src/login/logind-action.c
+++ src/login/logind-action.c
@@ -79,14 +79,12 @@ int manager_handle_action(
return 0;
}
- /* If we have more than one or no displays connected,
- * don't react to lid closing. The no display case we
- * treat like this under the assumption that there is
- * no modern drm driver available. */
+ /* If we have more than one display connected,
+ * don't react to lid closing. */
n = manager_count_displays(m);
if (n < 0)
log_warning("Display counting failed: %s", strerror(-n));
- else if (n != 1) {
+ else if (n > 1) {
log_debug("Ignoring lid switch request, %i displays connected.", n);
return 0;
}
--
1.7.9.2

View File

@ -0,0 +1,83 @@
From 3ebdb81ef088afd3b4c72b516beb5610f8c93a0d Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Sun, 13 Apr 2014 19:54:27 -0700
Subject: [PATCH] udev: serialize/synchronize block device event handling with
file locks
---
src/udev/udevd.c | 33 +++++++++++++++++++++++++++++++--
1 file changed, 31 insertions(+), 2 deletions(-)
diff --git src/udev/udevd.c src/udev/udevd.c
index f9ee368..aecd208 100644
--- src/udev/udevd.c
+++ src/udev/udevd.c
@@ -31,6 +31,7 @@
#include <time.h>
#include <getopt.h>
#include <dirent.h>
+#include <sys/file.h>
#include <sys/time.h>
#include <sys/prctl.h>
#include <sys/socket.h>
@@ -265,6 +266,7 @@ static void worker_new(struct event *event)
for (;;) {
struct udev_event *udev_event;
struct worker_message msg;
+ int fd_lock = -1;
int err;
log_debug("seq %llu running", udev_device_get_seqnum(dev));
@@ -280,6 +282,30 @@ static void worker_new(struct event *event)
if (exec_delay > 0)
udev_event->exec_delay = exec_delay;
+ /*
+ * Take a "read lock" on the device node; this establishes
+ * a concept of device "ownership" to serialize device
+ * access. External processes holding a "write lock" will
+ * cause udev to skip the event handling; in the case udev
+ * acquired the lock, the external process will block until
+ * udev has finished its event handling.
+ */
+ if (streq_ptr("block", udev_device_get_subsystem(dev))) {
+ struct udev_device *d = dev;
+
+ if (streq_ptr("partition", udev_device_get_devtype(d)))
+ d = udev_device_get_parent(d);
+
+ if (d) {
+ fd_lock = open(udev_device_get_devnode(d), O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK);
+ if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) {
+ log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d));
+ err = -EWOULDBLOCK;
+ goto skip;
+ }
+ }
+ }
+
/* apply rules, create node, symlinks */
err = udev_event_execute_rules(udev_event, rules, &sigmask_orig);
@@ -292,13 +318,16 @@ static void worker_new(struct event *event)
udev_device_update_db(dev);
}
+ if (fd_lock >= 0)
+ close(fd_lock);
+
/* send processed event back to libudev listeners */
udev_monitor_send_device(worker_monitor, NULL, dev);
+skip:
/* send udevd the result of the event execution */
memzero(&msg, sizeof(struct worker_message));
- if (err != 0)
- msg.exitcode = err;
+ msg.exitcode = err;
msg.pid = getpid();
send(worker_watch[WRITE_END], &msg, sizeof(struct worker_message), 0);
--
1.7.9.2

View File

@ -0,0 +1,140 @@
From 1ea972174baba40dbc80c51cbfc4edc49764b59b Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Wed, 14 May 2014 00:34:49 +0200
Subject: [PATCH] udev: do not skip the execution of RUN when renaming a
network device fails
---
src/test/test-udev.c | 5 ++---
src/udev/udev-event.c | 11 +++++------
src/udev/udev.h | 2 +-
src/udev/udevadm-test.c | 13 +++++--------
src/udev/udevd.c | 5 ++---
5 files changed, 15 insertions(+), 21 deletions(-)
diff --git src/test/test-udev.c src/test/test-udev.c
index b064744..b057cc8 100644
--- src/test/test-udev.c
+++ src/test/test-udev.c
@@ -155,9 +155,8 @@ int main(int argc, char *argv[]) {
}
}
- err = udev_event_execute_rules(event, rules, &sigmask_orig);
- if (err == 0)
- udev_event_execute_run(event, NULL);
+ udev_event_execute_rules(event, rules, &sigmask_orig);
+ udev_event_execute_run(event, NULL);
out:
if (event != NULL && event->fd_signal >= 0)
close(event->fd_signal);
diff --git src/udev/udev-event.c src/udev/udev-event.c
index 2cab42b..5213a4a 100644
--- src/udev/udev-event.c
+++ src/udev/udev-event.c
@@ -776,13 +776,12 @@ static int rename_netif(struct udev_event *event)
return r;
}
-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask)
+void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask)
{
struct udev_device *dev = event->dev;
- int err = 0;
if (udev_device_get_subsystem(dev) == NULL)
- return -1;
+ return;
if (streq(udev_device_get_action(dev), "remove")) {
udev_device_read_db(dev, NULL);
@@ -816,9 +815,10 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) {
char syspath[UTIL_PATH_SIZE];
char *pos;
+ int r;
- err = rename_netif(event);
- if (err == 0) {
+ r = rename_netif(event);
+ if (r >= 0) {
log_debug("renamed netif to '%s'", event->name);
/* remember old name */
@@ -881,7 +881,6 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
udev_device_unref(event->dev_db);
event->dev_db = NULL;
}
- return err;
}
void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask)
diff --git src/udev/udev.h src/udev/udev.h
index 936adfb..62538bc 100644
--- src/udev/udev.h
+++ src/udev/udev.h
@@ -84,7 +84,7 @@ int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string,
int udev_event_spawn(struct udev_event *event,
const char *cmd, char **envp, const sigset_t *sigmask,
char *result, size_t ressize);
-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset);
+void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset);
void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset);
int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]);
diff --git src/udev/udevadm-test.c src/udev/udevadm-test.c
index 6cd311b..6a2f548 100644
--- src/udev/udevadm-test.c
+++ src/udev/udevadm-test.c
@@ -43,7 +43,6 @@ static int adm_test(struct udev *udev, int argc, char *argv[])
_cleanup_udev_device_unref_ struct udev_device *dev = NULL;
_cleanup_udev_event_unref_ struct udev_event *event = NULL;
sigset_t mask, sigmask_orig;
- int err;
int rc = 0, c;
static const struct option options[] = {
@@ -139,18 +138,16 @@ static int adm_test(struct udev *udev, int argc, char *argv[])
goto out;
}
- err = udev_event_execute_rules(event, rules, &sigmask_orig);
+ udev_event_execute_rules(event, rules, &sigmask_orig);
udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev))
printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry));
- if (err == 0) {
- udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) {
- char program[UTIL_PATH_SIZE];
+ udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) {
+ char program[UTIL_PATH_SIZE];
- udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program));
- printf("run: '%s'\n", program);
- }
+ udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program));
+ printf("run: '%s'\n", program);
}
out:
if (event != NULL && event->fd_signal >= 0)
diff --git src/udev/udevd.c src/udev/udevd.c
index aecd208..bc0696c 100644
--- src/udev/udevd.c
+++ src/udev/udevd.c
@@ -307,10 +307,9 @@ static void worker_new(struct event *event)
}
/* apply rules, create node, symlinks */
- err = udev_event_execute_rules(udev_event, rules, &sigmask_orig);
+ udev_event_execute_rules(udev_event, rules, &sigmask_orig);
- if (err == 0)
- udev_event_execute_run(udev_event, &sigmask_orig);
+ udev_event_execute_run(udev_event, &sigmask_orig);
/* apply/restore inotify watch */
if (err == 0 && udev_event->inotify_watch) {
--
1.7.9.2

View File

@ -0,0 +1,37 @@
From bf9bead187802a52a1f376a03caee762d663e945 Mon Sep 17 00:00:00 2001
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date: Fri, 16 May 2014 23:46:48 +0200
Subject: [PATCH] udev: avoid use of uninitialized err
After 1ea972174baba40dbc80c51cbfc4edc49764b59b err is no longer
set unless we hit a special case. Initialize it to 0 and remove
a check that will never fail.
---
src/udev/udevd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git src/udev/udevd.c src/udev/udevd.c
index bc0696c..1c9488e 100644
--- src/udev/udevd.c
+++ src/udev/udevd.c
@@ -267,7 +267,7 @@ static void worker_new(struct event *event)
struct udev_event *udev_event;
struct worker_message msg;
int fd_lock = -1;
- int err;
+ int err = 0;
log_debug("seq %llu running", udev_device_get_seqnum(dev));
udev_event = udev_event_new(dev);
@@ -312,7 +312,7 @@ static void worker_new(struct event *event)
udev_event_execute_run(udev_event, &sigmask_orig);
/* apply/restore inotify watch */
- if (err == 0 && udev_event->inotify_watch) {
+ if (udev_event->inotify_watch) {
udev_watch_begin(udev, dev);
udev_device_update_db(dev);
}
--
1.7.9.2

View File

@ -1,20 +1,20 @@
addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*")
addFilter(".*dangling-symlink .* /dev/null.*")
addFilter(".*files-duplicate .*/reboot.8.*")
addFilter(".*files-duplicate .*/sd_is_socket.3.*")
addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion.sh")
addFilter("non-conffile-in-etc /etc/rpm/macros.systemd")
addFilter(".*files-duplicate .*/reboot\.8.*")
addFilter(".*files-duplicate .*/sd_is_socket\.3.*")
addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion\.sh")
addFilter("non-conffile-in-etc /etc/rpm/macros\.systemd")
addFilter(".*dbus-policy-allow-receive")
addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*")
addFilter(".*dangling-symlink /lib/udev/devices/core.*")
addFilter(".*dangling-symlink /lib/udev/devices/fd.*")
addFilter(".*incoherent-init-script-name boot.udev.*")
addFilter(".init-script-without-%stop_on_removal-preun /etc/init.d/boot.udev")
addFilter(".init-script-without-%restart_on_update-postun /etc/init.d/boot.udev")
addFilter(".*incoherent-init-script-name boot\.udev.*")
addFilter(".init-script-without-%stop_on_removal-preun /etc/init\.d/boot\.udev")
addFilter(".init-script-without-%restart_on_update-postun /etc/init\.d/boot\.udev")
addFilter(".*devel-file-in-non-devel-package.*udev.pc.*")
addFilter(".*libgudev-.*shlib-fixed-dependency.*")
addFilter(".*suse-filelist-forbidden-systemd-userdirs.*")
addFilter("libudev-mini.*shlib-policy-name-error.*")
addFilter("nss-myhostname.*shlib-policy-name-error.*")
addFilter("systemd-logger.*useless-provides sysvinit(syslog).*")
addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*")

View File

@ -1,3 +1,86 @@
-------------------------------------------------------------------
Wed May 21 19:23:32 UTC 2014 - coolo@suse.com
- fix file list of systemd.pc
-------------------------------------------------------------------
Wed May 21 13:24:13 UTC 2014 - werner@suse.de
- Add a workaround for old distributions like 13.1 to avoid
deadlocks due NFS shares stopped after network
-------------------------------------------------------------------
Wed May 21 10:23:14 UTC 2014 - werner@suse.de
- Add upstream patches
0001-journal-cleanup-up-error-handling-in-update_catalog.patch
0002-journal-properly-detect-language-specified-in-line.patch
0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch
-------------------------------------------------------------------
Wed May 21 10:14:32 UTC 2014 - werner@suse.de
- Add upstream patches to update usb and pci company identifiers
0001-hwdb-update.patch
0002-hwdb-update.patch
0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch
0004-hwdb-update.patch
0005-hwdb-update.patch
-------------------------------------------------------------------
Wed May 21 08:33:34 UTC 2014 - werner@suse.de
- Move systemd.pc and udev.pc to their main packages (bnc#876587)
-------------------------------------------------------------------
Tue May 20 12:13:05 UTC 2014 - werner@suse.de
- Add upstream patches
0001-conf-parser-silently-ignore-sections-starting-with-X.patch
0002-man-note-that-entire-sections-can-now-be-ignored.patch
0004-machined-make-sure-GetMachineAddresses-is-available-.patch
0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch
0006-login-add-mir-to-the-list-of-session-types.patch
0007-logind-fix-Display-property-of-user-objects.patch
-------------------------------------------------------------------
Tue May 20 11:31:46 UTC 2014 - werner@suse.de
- Add upstream patches to update BluTooth company identifiers
0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch
0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch
0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch
0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch
0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch
-------------------------------------------------------------------
Tue May 20 11:03:54 UTC 2014 - werner@suse.de
- Add upstream patches to allow processes to serialize block device
events, also do execute the RUN tag if rename of a network device
fails:
1016-udev-serialize-synchronize-block-device-event-handli.patch
1017-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch
1018-udev-avoid-use-of-uninitialized-err.patch
- Rename 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch
to 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch
-------------------------------------------------------------------
Mon May 19 13:21:18 UTC 2014 - werner@suse.de
- Add upstream patches mainly for better lid handling (bnc#878525
and bnc#868019)
0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch
0002-logind-fix-printf-format.patch
0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch
0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch
0005-logind-move-lid-switch-handling-from-logind-main-to-.patch
0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch
0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch
0008-man-update-journald-rate-limit-defaults.patch
0009-nspawn-properly-format-container_uuid-in-UUID-format.patch
0010-logind-allow-suspending-if-there-are-no-displays.patch
-------------------------------------------------------------------
Fri May 16 12:00:12 UTC 2014 - werner@suse.de
@ -7,7 +90,7 @@ Fri May 16 12:00:12 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Fri May 16 11:47:06 UTC 2014 - werner@suse.de
- Add upstram patches
- Add upstream patches
0001-core-close-socket-fds-asynchronously.patch
0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch
0003-core-make-sure-to-serialize-jobs-for-all-units.patch
@ -15,7 +98,7 @@ Fri May 16 11:47:06 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Wed May 14 07:37:08 UTC 2014 - werner@suse.de
- Add upstram patches
- Add upstream patches
0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch
0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch
to avoid that in pam session unwanted file descriptors are inherited
@ -30,7 +113,7 @@ Tue May 13 08:28:05 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Mon May 12 13:35:25 UTC 2014 - werner@suse.de
- Add upstram patches for backlight
- Add upstream patches for backlight
0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch
0002-backlight-do-nothing-if-max_brightness-is-0.patch
0003-backlight-unify-error-messages.patch
@ -103,7 +186,7 @@ Wed Apr 30 10:55:54 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Mon Apr 28 09:51:35 UTC 2014 - werner@suse.de
- Add or port upstram bugfix patches:
- Add or port upstream bugfix patches:
0001-bash-completion-fix-__get_startable_units.patch
0002-sysctl-replaces-some-slashes-with-dots.patch
0003-delta-do-not-use-unicode-chars-in-C-locale.patch
@ -188,7 +271,7 @@ Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de
- Add patch portmap-wants-rpcbind-socket.patch to make sure that
rpcbind socket as well as service is up with the target
- Add or port upstram bugfix patches:
- Add or port upstream bugfix patches:
0001-journal-fix-export-of-messages-containing-newlines.patch
0002-systemctl-update-NAME-to-PATTERN-in-help.patch
0003-tty-ask-password-agent-return-negative-errno.patch
@ -198,7 +281,7 @@ Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de
- Add or port upstram bugfix patches:
- Add or port upstream bugfix patches:
0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch
0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch
0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch
@ -261,7 +344,7 @@ Tue Mar 18 13:23:43 UTC 2014 - werner@suse.de
- Add Robert's udev-generate-peristent-rule shell script to
udev's tool library
- Add or port upstram bugfix patches:
- Add or port upstream bugfix patches:
0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch
0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch
0006-Do-not-return-1-EINVAL-on-allocation-error.patch

View File

@ -410,8 +410,6 @@ Patch208: parse-crypttab-for-noauto-option.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch210: 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch
@ -439,6 +437,64 @@ Patch222: 0001-core-close-socket-fds-asynchronously.patch
Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch
# PATCH-FIX-UPSTREAM added at 2014/05/16
Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch226: 0002-logind-fix-printf-format.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch232: 0008-man-update-journald-rate-limit-defaults.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch
# PATCHFIX-UPSTREAM added at 2014/05/20
Patch245: 0007-logind-fix-Display-property-of-user-objects.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch246: 0001-hwdb-update.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch247: 0002-hwdb-update.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch249: 0004-hwdb-update.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch250: 0005-hwdb-update.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch252: 0002-journal-properly-detect-language-specified-in-line.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch
# UDEV PATCHES
# ============
@ -476,6 +532,14 @@ Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch
Patch1014: 1014-udev-update-net_id-comments.patch
# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch
%description
Systemd is a system and service manager, compatible with SysV and LSB
@ -833,7 +897,6 @@ cp %{SOURCE7} m4/
%patch207 -p0
%patch208 -p1
%patch209 -p0
%patch210 -p0
%patch211 -p0
%patch212 -p0
%patch213 -p0
@ -848,6 +911,35 @@ cp %{SOURCE7} m4/
%patch222 -p0
%patch223 -p0
%patch224 -p0
%patch225 -p0
%patch226 -p0
%patch227 -p0
%patch228 -p0
%patch229 -p0
%patch230 -p0
%patch231 -p0
%patch232 -p0
%patch233 -p0
%patch234 -p0
%patch235 -p0
%patch236 -p0
%patch237 -p0
%patch238 -p0
%patch239 -p0
%patch240 -p0
%patch241 -p0
%patch242 -p0
%patch243 -p0
%patch244 -p0
%patch245 -p0
%patch246 -p0
%patch247 -p0
%patch248 -p0
%patch249 -p0
%patch250 -p0
%patch251 -p0
%patch252 -p0
%patch253 -p0
# udev patches
%patch1001 -p1
@ -866,6 +958,10 @@ cp %{SOURCE7} m4/
%patch1013 -p1
%patch1014 -p1
%patch1015 -p1
%patch1016 -p0
%patch1017 -p0
%patch1018 -p0
%patch1019 -p0
# ensure generate files are removed
rm -f units/emergency.service
@ -1117,6 +1213,30 @@ do
done
%endif
%if 0%{suse_version} < 1310
cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF'
[Unit]
Description=Fix against deadlock at shutdown
Wants=remote-fs.target remote-fs-pre.target
Before=remote-fs.target systemd-logind.service
After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target
ConditionPathExists=|/etc/init.d/autofs
ConditionPathExists=|/etc/init.d/nfs
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=-/etc/init.d/autofs stop
ExecStop=-/etc/init.d/nfs stop
[Install]
WantedBy=remote-fs.target
EOF
mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants
ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants
%endif
%pre
getent group systemd-journal >/dev/null || groupadd -r systemd-journal || :
exit 0
@ -1512,6 +1632,9 @@ exit 0
%{_datadir}/zsh/site-functions/*
%ghost %{_localstatedir}/lib/systemd/backlight
%ghost %{_localstatedir}/lib/systemd/random-seed
%if 0%{?suse_version} > 1310
%{_datadir}/pkgconfig/systemd.pc
%endif
%if ! 0%{?bootstrap}
%files bash-completion -f files.completion
@ -1535,7 +1658,9 @@ exit 0
%{_includedir}/systemd/sd-journal.h
%{_includedir}/systemd/sd-messages.h
%{_includedir}/systemd/_sd-common.h
%if 0%{?suse_version} <= 1310
%{_datadir}/pkgconfig/systemd.pc
%endif
%{_libdir}/pkgconfig/libsystemd.pc
%{_libdir}/pkgconfig/libsystemd-daemon.pc
%{_libdir}/pkgconfig/libsystemd-login.pc
@ -1609,6 +1734,9 @@ exit 0
%dir %{_prefix}/lib/systemd/network
%{_prefix}/lib/systemd/network/*.link
%{_prefix}/lib/systemd/network/*.network
%if 0%{?suse_version} > 1310
%{_datadir}/pkgconfig/udev.pc
%endif
%files -n lib%{udevpkgname}%{udev_major}
%defattr(-,root,root)
@ -1618,7 +1746,9 @@ exit 0
%defattr(-,root,root)
%{_includedir}/libudev.h
%{_libdir}/libudev.so
%if 0%{?suse_version} <= 1310
%{_datadir}/pkgconfig/udev.pc
%endif
%{_libdir}/pkgconfig/libudev.pc
%if ! 0%{?bootstrap}
%dir %{_datadir}/gtk-doc

View File

@ -1,20 +1,20 @@
addFilter(".*dangling-symlink /sbin/(halt|init|poweroff|telinit|shutdown|runlevel|reboot).*")
addFilter(".*dangling-symlink .* /dev/null.*")
addFilter(".*files-duplicate .*/reboot.8.*")
addFilter(".*files-duplicate .*/sd_is_socket.3.*")
addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion.sh")
addFilter("non-conffile-in-etc /etc/rpm/macros.systemd")
addFilter(".*files-duplicate .*/reboot\.8.*")
addFilter(".*files-duplicate .*/sd_is_socket\.3.*")
addFilter("non-conffile-in-etc /etc/bash_completion.d/systemd-bash-completion\.sh")
addFilter("non-conffile-in-etc /etc/rpm/macros\.systemd")
addFilter(".*dbus-policy-allow-receive")
addFilter(".*dangling-symlink /lib/udev/devices/std(in|out|err).*")
addFilter(".*dangling-symlink /lib/udev/devices/core.*")
addFilter(".*dangling-symlink /lib/udev/devices/fd.*")
addFilter(".*incoherent-init-script-name boot.udev.*")
addFilter(".init-script-without-%stop_on_removal-preun /etc/init.d/boot.udev")
addFilter(".init-script-without-%restart_on_update-postun /etc/init.d/boot.udev")
addFilter(".*incoherent-init-script-name boot\.udev.*")
addFilter(".init-script-without-%stop_on_removal-preun /etc/init\.d/boot\.udev")
addFilter(".init-script-without-%restart_on_update-postun /etc/init\.d/boot\.udev")
addFilter(".*devel-file-in-non-devel-package.*udev.pc.*")
addFilter(".*libgudev-.*shlib-fixed-dependency.*")
addFilter(".*suse-filelist-forbidden-systemd-userdirs.*")
addFilter("libudev-mini.*shlib-policy-name-error.*")
addFilter("nss-myhostname.*shlib-policy-name-error.*")
addFilter("systemd-logger.*useless-provides sysvinit(syslog).*")
addFilter("devel-file-in-non-devel-package.*/usr/share/pkgconfig/(udev|systemd)\.pc.*")

View File

@ -1,3 +1,86 @@
-------------------------------------------------------------------
Wed May 21 19:23:32 UTC 2014 - coolo@suse.com
- fix file list of systemd.pc
-------------------------------------------------------------------
Wed May 21 13:24:13 UTC 2014 - werner@suse.de
- Add a workaround for old distributions like 13.1 to avoid
deadlocks due NFS shares stopped after network
-------------------------------------------------------------------
Wed May 21 10:23:14 UTC 2014 - werner@suse.de
- Add upstream patches
0001-journal-cleanup-up-error-handling-in-update_catalog.patch
0002-journal-properly-detect-language-specified-in-line.patch
0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch
-------------------------------------------------------------------
Wed May 21 10:14:32 UTC 2014 - werner@suse.de
- Add upstream patches to update usb and pci company identifiers
0001-hwdb-update.patch
0002-hwdb-update.patch
0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch
0004-hwdb-update.patch
0005-hwdb-update.patch
-------------------------------------------------------------------
Wed May 21 08:33:34 UTC 2014 - werner@suse.de
- Move systemd.pc and udev.pc to their main packages (bnc#876587)
-------------------------------------------------------------------
Tue May 20 12:13:05 UTC 2014 - werner@suse.de
- Add upstream patches
0001-conf-parser-silently-ignore-sections-starting-with-X.patch
0002-man-note-that-entire-sections-can-now-be-ignored.patch
0004-machined-make-sure-GetMachineAddresses-is-available-.patch
0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch
0006-login-add-mir-to-the-list-of-session-types.patch
0007-logind-fix-Display-property-of-user-objects.patch
-------------------------------------------------------------------
Tue May 20 11:31:46 UTC 2014 - werner@suse.de
- Add upstream patches to update BluTooth company identifiers
0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch
0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch
0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch
0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch
0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch
-------------------------------------------------------------------
Tue May 20 11:03:54 UTC 2014 - werner@suse.de
- Add upstream patches to allow processes to serialize block device
events, also do execute the RUN tag if rename of a network device
fails:
1016-udev-serialize-synchronize-block-device-event-handli.patch
1017-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch
1018-udev-avoid-use-of-uninitialized-err.patch
- Rename 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch
to 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch
-------------------------------------------------------------------
Mon May 19 13:21:18 UTC 2014 - werner@suse.de
- Add upstream patches mainly for better lid handling (bnc#878525
and bnc#868019)
0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch
0002-logind-fix-printf-format.patch
0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch
0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch
0005-logind-move-lid-switch-handling-from-logind-main-to-.patch
0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch
0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch
0008-man-update-journald-rate-limit-defaults.patch
0009-nspawn-properly-format-container_uuid-in-UUID-format.patch
0010-logind-allow-suspending-if-there-are-no-displays.patch
-------------------------------------------------------------------
Fri May 16 12:00:12 UTC 2014 - werner@suse.de
@ -7,7 +90,7 @@ Fri May 16 12:00:12 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Fri May 16 11:47:06 UTC 2014 - werner@suse.de
- Add upstram patches
- Add upstream patches
0001-core-close-socket-fds-asynchronously.patch
0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch
0003-core-make-sure-to-serialize-jobs-for-all-units.patch
@ -15,7 +98,7 @@ Fri May 16 11:47:06 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Wed May 14 07:37:08 UTC 2014 - werner@suse.de
- Add upstram patches
- Add upstream patches
0001-replace-more-dup-by-F_DUPFD_CLOEXEC.patch
0002-pam_systemd-use-F_DUPFD_CLOEXEC-when-dupping-session.patch
to avoid that in pam session unwanted file descriptors are inherited
@ -30,7 +113,7 @@ Tue May 13 08:28:05 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Mon May 12 13:35:25 UTC 2014 - werner@suse.de
- Add upstram patches for backlight
- Add upstream patches for backlight
0001-backlight-Avoid-restoring-brightness-to-an-unreadabl.patch
0002-backlight-do-nothing-if-max_brightness-is-0.patch
0003-backlight-unify-error-messages.patch
@ -103,7 +186,7 @@ Wed Apr 30 10:55:54 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Mon Apr 28 09:51:35 UTC 2014 - werner@suse.de
- Add or port upstram bugfix patches:
- Add or port upstream bugfix patches:
0001-bash-completion-fix-__get_startable_units.patch
0002-sysctl-replaces-some-slashes-with-dots.patch
0003-delta-do-not-use-unicode-chars-in-C-locale.patch
@ -188,7 +271,7 @@ Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de
- Add patch portmap-wants-rpcbind-socket.patch to make sure that
rpcbind socket as well as service is up with the target
- Add or port upstram bugfix patches:
- Add or port upstream bugfix patches:
0001-journal-fix-export-of-messages-containing-newlines.patch
0002-systemctl-update-NAME-to-PATTERN-in-help.patch
0003-tty-ask-password-agent-return-negative-errno.patch
@ -198,7 +281,7 @@ Tue Apr 8 07:27:49 UTC 2014 - werner@suse.de
-------------------------------------------------------------------
Fri Mar 28 12:53:21 UTC 2014 - werner@suse.de
- Add or port upstram bugfix patches:
- Add or port upstream bugfix patches:
0001-cgroup-it-s-not-OK-to-invoke-alloca-in-loops.patch
0002-machined-fix-Kill-bus-call-on-machine-objects-when-w.patch
0003-sd-bus-don-t-use-assert_return-to-check-for-disconne.patch
@ -261,7 +344,7 @@ Tue Mar 18 13:23:43 UTC 2014 - werner@suse.de
- Add Robert's udev-generate-peristent-rule shell script to
udev's tool library
- Add or port upstram bugfix patches:
- Add or port upstream bugfix patches:
0001-gpt-auto-generator-don-t-return-OOM-on-parentless-de.patch
0002-bus-fix-memory-leak-when-kdbus-is-not-enabled.patch
0006-Do-not-return-1-EINVAL-on-allocation-error.patch

View File

@ -405,8 +405,6 @@ Patch208: parse-crypttab-for-noauto-option.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch209: 0001-errno-make-sure-to-handle-the-3-errnos-that-are-alia.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch210: 0002-udev-warn-when-name_to_handle_at-is-not-implemented.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch211: 0003-analyze-fix-plot-with-bad-y-size.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch212: 0004-job-add-waiting-jobs-to-run-queue-in-unit_coldplug.patch
@ -434,6 +432,64 @@ Patch222: 0001-core-close-socket-fds-asynchronously.patch
Patch223: 0002-logind-bring-polkit-policy-for-hibernate-in-line-wit.patch
# PATCH-FIX-UPSTREAM added at 2014/05/16
Patch224: 0003-core-make-sure-to-serialize-jobs-for-all-units.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch225: 0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch226: 0002-logind-fix-printf-format.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch227: 0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch228: 0004-logind-Do-not-fail-display-count-if-a-device-has-no-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch229: 0005-logind-move-lid-switch-handling-from-logind-main-to-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch230: 0006-man-clarify-that-the-ExecReload-command-should-be-sy.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch231: 0007-man-readahead-fix-cmdline-switch-inconsistency-betwe.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch232: 0008-man-update-journald-rate-limit-defaults.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch233: 0009-nspawn-properly-format-container_uuid-in-UUID-format.patch
# PATCH-FIX-UPSTREAM added at 2014/05/19
Patch234: 0010-logind-allow-suspending-if-there-are-no-displays.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch235: 0001-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch236: 0002-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch237: 0003-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch238: 0004-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch239: 0005-hwdb-Update-database-of-Bluetooth-company-identifier.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch240: 0001-conf-parser-silently-ignore-sections-starting-with-X.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch241: 0002-man-note-that-entire-sections-can-now-be-ignored.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch242: 0004-machined-make-sure-GetMachineAddresses-is-available-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch243: 0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch244: 0006-login-add-mir-to-the-list-of-session-types.patch
# PATCHFIX-UPSTREAM added at 2014/05/20
Patch245: 0007-logind-fix-Display-property-of-user-objects.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch246: 0001-hwdb-update.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch247: 0002-hwdb-update.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch248: 0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch249: 0004-hwdb-update.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch250: 0005-hwdb-update.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch251: 0001-journal-cleanup-up-error-handling-in-update_catalog.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch252: 0002-journal-properly-detect-language-specified-in-line.patch
# PATCHFIX-UPSTREAM added at 2014/05/21
Patch253: 0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch
# UDEV PATCHES
# ============
@ -471,6 +527,14 @@ Patch1013: 1013-no-runtime-PM-for-IBM-consoles.patch
Patch1014: 1014-udev-update-net_id-comments.patch
# PATCH-FIX-USTREAM 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
Patch1015: 1015-udev-persistent-naming-we-cannot-use-virtio-numbers-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/12
Patch1016: 1016-udev-warn-when-name_to_handle_at-is-not-implemented.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch1017: 1017-udev-serialize-synchronize-block-device-event-handli.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch1018: 1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch
# PATCH-FIX-UPSTREAM added at 2014/05/20
Patch1019: 1019-udev-avoid-use-of-uninitialized-err.patch
%description
Systemd is a system and service manager, compatible with SysV and LSB
@ -828,7 +892,6 @@ cp %{SOURCE7} m4/
%patch207 -p0
%patch208 -p1
%patch209 -p0
%patch210 -p0
%patch211 -p0
%patch212 -p0
%patch213 -p0
@ -843,6 +906,35 @@ cp %{SOURCE7} m4/
%patch222 -p0
%patch223 -p0
%patch224 -p0
%patch225 -p0
%patch226 -p0
%patch227 -p0
%patch228 -p0
%patch229 -p0
%patch230 -p0
%patch231 -p0
%patch232 -p0
%patch233 -p0
%patch234 -p0
%patch235 -p0
%patch236 -p0
%patch237 -p0
%patch238 -p0
%patch239 -p0
%patch240 -p0
%patch241 -p0
%patch242 -p0
%patch243 -p0
%patch244 -p0
%patch245 -p0
%patch246 -p0
%patch247 -p0
%patch248 -p0
%patch249 -p0
%patch250 -p0
%patch251 -p0
%patch252 -p0
%patch253 -p0
# udev patches
%patch1001 -p1
@ -861,6 +953,10 @@ cp %{SOURCE7} m4/
%patch1013 -p1
%patch1014 -p1
%patch1015 -p1
%patch1016 -p0
%patch1017 -p0
%patch1018 -p0
%patch1019 -p0
# ensure generate files are removed
rm -f units/emergency.service
@ -1112,6 +1208,30 @@ do
done
%endif
%if 0%{suse_version} < 1310
cat > %{buildroot}/%{_prefix}/lib/systemd/system/fix.service <<-'EOF'
[Unit]
Description=Fix against deadlock at shutdown
Wants=remote-fs.target remote-fs-pre.target
Before=remote-fs.target systemd-logind.service
After=remote-fs-pre.target network.target rpcbind.target nss-lookup.target nss-user-lookup.target
ConditionPathExists=|/etc/init.d/autofs
ConditionPathExists=|/etc/init.d/nfs
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/true
ExecStop=-/etc/init.d/autofs stop
ExecStop=-/etc/init.d/nfs stop
[Install]
WantedBy=remote-fs.target
EOF
mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants
ln -sf ../fix.service %{buildroot}/%{_prefix}/lib/systemd/system/remote-fs.target.wants
%endif
%pre
getent group systemd-journal >/dev/null || groupadd -r systemd-journal || :
exit 0
@ -1507,6 +1627,9 @@ exit 0
%{_datadir}/zsh/site-functions/*
%ghost %{_localstatedir}/lib/systemd/backlight
%ghost %{_localstatedir}/lib/systemd/random-seed
%if 0%{?suse_version} > 1310
%{_datadir}/pkgconfig/systemd.pc
%endif
%if ! 0%{?bootstrap}
%files bash-completion -f files.completion
@ -1530,7 +1653,9 @@ exit 0
%{_includedir}/systemd/sd-journal.h
%{_includedir}/systemd/sd-messages.h
%{_includedir}/systemd/_sd-common.h
%if 0%{?suse_version} <= 1310
%{_datadir}/pkgconfig/systemd.pc
%endif
%{_libdir}/pkgconfig/libsystemd.pc
%{_libdir}/pkgconfig/libsystemd-daemon.pc
%{_libdir}/pkgconfig/libsystemd-login.pc
@ -1604,6 +1729,9 @@ exit 0
%dir %{_prefix}/lib/systemd/network
%{_prefix}/lib/systemd/network/*.link
%{_prefix}/lib/systemd/network/*.network
%if 0%{?suse_version} > 1310
%{_datadir}/pkgconfig/udev.pc
%endif
%files -n lib%{udevpkgname}%{udev_major}
%defattr(-,root,root)
@ -1613,7 +1741,9 @@ exit 0
%defattr(-,root,root)
%{_includedir}/libudev.h
%{_libdir}/libudev.so
%if 0%{?suse_version} <= 1310
%{_datadir}/pkgconfig/udev.pc
%endif
%{_libdir}/pkgconfig/libudev.pc
%if ! 0%{?bootstrap}
%dir %{_datadir}/gtk-doc