forked from pool/systemd
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:
parent
38fe6dfa6d
commit
6a0f5a9e55
@ -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,
|
||||
§ion,
|
||||
§ion_line,
|
||||
+ §ion_ignored,
|
||||
p,
|
||||
userdata);
|
||||
free(c);
|
||||
--
|
||||
1.7.9.2
|
||||
|
@ -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
6590
0001-hwdb-update.patch
Normal file
File diff suppressed because it is too large
Load Diff
104
0001-journal-cleanup-up-error-handling-in-update_catalog.patch
Normal file
104
0001-journal-cleanup-up-error-handling-in-update_catalog.patch
Normal 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
|
||||
|
168
0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch
Normal file
168
0001-logind-ignore-lid-switch-if-more-than-1-display-is-c.patch
Normal 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
|
||||
|
@ -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
2058
0002-hwdb-update.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
25
0002-logind-fix-printf-format.patch
Normal file
25
0002-logind-fix-printf-format.patch
Normal 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
|
||||
|
35
0002-man-note-that-entire-sections-can-now-be-ignored.patch
Normal file
35
0002-man-note-that-entire-sections-can-now-be-ignored.patch
Normal 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
|
||||
|
51583
0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch
Normal file
51583
0003-hwdb-PCI-include-primary-model-string-in-subsystem-m.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
174
0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch
Normal file
174
0003-logind-ignore-lid-switch-events-for-30s-after-each-s.patch
Normal 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
|
||||
|
40
0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch
Normal file
40
0003-man-mention-XDG_CONFIG_HOME-in-systemd.unit.patch
Normal 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
|
||||
|
@ -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
3964
0004-hwdb-update.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
@ -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
|
||||
|
137
0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch
Normal file
137
0005-core-Filter-by-state-behind-the-D-Bus-API-not-in-the.patch
Normal 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
|
||||
|
@ -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
1560
0005-hwdb-update.patch
Normal file
File diff suppressed because it is too large
Load Diff
119
0005-logind-move-lid-switch-handling-from-logind-main-to-.patch
Normal file
119
0005-logind-move-lid-switch-handling-from-logind-main-to-.patch
Normal 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
|
||||
|
90
0006-login-add-mir-to-the-list-of-session-types.patch
Normal file
90
0006-login-add-mir-to-the-list-of-session-types.patch
Normal 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
|
||||
|
@ -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
|
||||
|
147
0007-logind-fix-Display-property-of-user-objects.patch
Normal file
147
0007-logind-fix-Display-property-of-user-objects.patch
Normal 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
|
||||
|
@ -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
|
||||
|
28
0008-man-update-journald-rate-limit-defaults.patch
Normal file
28
0008-man-update-journald-rate-limit-defaults.patch
Normal 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
|
||||
|
@ -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
|
||||
|
42
0010-logind-allow-suspending-if-there-are-no-displays.patch
Normal file
42
0010-logind-allow-suspending-if-there-are-no-displays.patch
Normal 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
|
||||
|
@ -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
|
||||
|
140
1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch
Normal file
140
1018-udev-do-not-skip-the-execution-of-RUN-when-renaming-.patch
Normal 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
|
||||
|
37
1019-udev-avoid-use-of-uninitialized-err.patch
Normal file
37
1019-udev-avoid-use-of-uninitialized-err.patch
Normal 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
|
||||
|
@ -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.*")
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.*")
|
||||
|
@ -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
|
||||
|
136
systemd.spec
136
systemd.spec
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user