From 836567c7a3364e1b57fab51988afa44050502be6 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: May 21 2015 20:39:30 +0000 Subject: New upstream release - Drop /etc/mtab hack, as that's apparently fixed in mock now (#1116158) - Remove ghosting for %{_sysconfdir}/systemd/system/runlevel*.target, these targets are not configurable anymore in systemd upstream - Drop work-around for #1002806, since this is solved upstream now --- diff --git a/0001-journal-remote-fix-certificate-status-memory-leak.patch b/0001-journal-remote-fix-certificate-status-memory-leak.patch deleted file mode 100644 index bd56a5d..0000000 --- a/0001-journal-remote-fix-certificate-status-memory-leak.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 7057db8b36594bb03c611cab711cd992ad4de31e Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 17 Feb 2015 10:33:01 +0100 -Subject: [PATCH] journal-remote: fix certificate status memory leak - -The output of gnutls_certificate_verification_status_print() needs to be -freed. - -Noticed this while staring at verify_cert_authorized() to see what could -possibly confuse gcc5 on armv7hl to segfault during compilation. - -(cherry picked from commit 9c3cf9693ac5c0a332ba376f99e6adea28b1bb0d) ---- - src/journal-remote/microhttpd-util.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/journal-remote/microhttpd-util.c b/src/journal-remote/microhttpd-util.c -index 34d93379da..de9c6ab32d 100644 ---- a/src/journal-remote/microhttpd-util.c -+++ b/src/journal-remote/microhttpd-util.c -@@ -179,6 +179,7 @@ static int verify_cert_authorized(gnutls_session_t session) { - return log_error_errno(r, "gnutls_certificate_verification_status_print failed: %m"); - - log_info("Certificate status: %s", out.data); -+ gnutls_free(out.data); - - return status == 0 ? 0 : -EPERM; - } diff --git a/0002-journal-remote-fix-client_cert-memory-leak.patch b/0002-journal-remote-fix-client_cert-memory-leak.patch deleted file mode 100644 index 1e9f617..0000000 --- a/0002-journal-remote-fix-client_cert-memory-leak.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 5852d2efbfb888dfb0adddb25afac0814d3ebcbb Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 17 Feb 2015 10:36:57 +0100 -Subject: [PATCH] journal-remote: fix client_cert memory leak - -Found by Valgrind while testing the previous memory leak fix. - -(cherry picked from commit 32c3d7144cf9a5c8c03761d7f198142ca0f5f7b8) ---- - src/journal-remote/microhttpd-util.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/journal-remote/microhttpd-util.c b/src/journal-remote/microhttpd-util.c -index de9c6ab32d..a95fff18f3 100644 ---- a/src/journal-remote/microhttpd-util.c -+++ b/src/journal-remote/microhttpd-util.c -@@ -239,10 +239,14 @@ static int get_auth_dn(gnutls_x509_crt_t client_cert, char **buf) { - return 0; - } - -+static inline void gnutls_x509_crt_deinitp(gnutls_x509_crt_t *p) { -+ gnutls_x509_crt_deinit(*p); -+} -+ - int check_permissions(struct MHD_Connection *connection, int *code, char **hostname) { - const union MHD_ConnectionInfo *ci; - gnutls_session_t session; -- gnutls_x509_crt_t client_cert; -+ _cleanup_(gnutls_x509_crt_deinitp) gnutls_x509_crt_t client_cert = NULL; - _cleanup_free_ char *buf = NULL; - int r; - diff --git a/0003-tmpfiles-Fix-parse_acl-error-message.patch b/0003-tmpfiles-Fix-parse_acl-error-message.patch deleted file mode 100644 index 4fc5f89..0000000 --- a/0003-tmpfiles-Fix-parse_acl-error-message.patch +++ /dev/null @@ -1,25 +0,0 @@ -From ea960d3fc09c1e3745791d3433094678fd7ccd50 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Tue, 17 Feb 2015 12:47:51 +0100 -Subject: [PATCH] tmpfiles: Fix parse_acl error message - -parse_acl() returns the error instead of setting errno. - -(cherry picked from commit 484adfd914504cd7e95867cea20ca7af71b888f2) ---- - src/tmpfiles/tmpfiles.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index c948d4d218..88ba7e46a2 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -689,7 +689,7 @@ static int get_acls_from_arg(Item *item) { - * afterwards, so the mask can be added now if necessary. */ - r = parse_acl(item->argument, &item->acl_access, &item->acl_default, !item->force); - if (r < 0) -- log_warning_errno(errno, "Failed to parse ACL \"%s\": %m. Ignoring", -+ log_warning_errno(r, "Failed to parse ACL \"%s\": %m. Ignoring", - item->argument); - #else - log_warning_errno(ENOSYS, "ACLs are not supported. Ignoring"); diff --git a/0004-test-utf8-fix-utf16-tests-on-BE-machines.patch b/0004-test-utf8-fix-utf16-tests-on-BE-machines.patch deleted file mode 100644 index 1a405cf..0000000 --- a/0004-test-utf8-fix-utf16-tests-on-BE-machines.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 8df2bb91718bf2ccc89c41f0dd19cd0bc8da1357 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 18 Feb 2015 14:33:50 +0100 -Subject: [PATCH] test: utf8 - fix utf16 tests on BE machines - -(cherry picked from commit 502184de0f95d3a124d4d4c77ae7a88747a0fac2) ---- - src/test/test-utf8.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/test/test-utf8.c b/src/test/test-utf8.c -index befa385754..346f8524c6 100644 ---- a/src/test/test-utf8.c -+++ b/src/test/test-utf8.c -@@ -95,7 +95,7 @@ static void test_utf8_escaping_printable(void) { - - static void test_utf16_to_utf8(void) { - char *a = NULL; -- const uint16_t utf16[] = { 'a', 0xd800, 'b', 0xdc00, 'c', 0xd801, 0xdc37 }; -+ const uint16_t utf16[] = { htole16('a'), htole16(0xd800), htole16('b'), htole16(0xdc00), htole16('c'), htole16(0xd801), htole16(0xdc37) }; - const char utf8[] = { 'a', 'b', 'c', 0xf0, 0x90, 0x90, 0xb7, 0 }; - - a = utf16_to_utf8(utf16, 14); diff --git a/0005-tmpfiles-avoid-creating-duplicate-acl-entries.patch b/0005-tmpfiles-avoid-creating-duplicate-acl-entries.patch deleted file mode 100644 index 273c67b..0000000 --- a/0005-tmpfiles-avoid-creating-duplicate-acl-entries.patch +++ /dev/null @@ -1,128 +0,0 @@ -From c429758054ee77383ca6d7323ecdd4163d3a3718 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 23 Feb 2015 23:19:54 -0500 -Subject: [PATCH] tmpfiles: avoid creating duplicate acl entries - -https://bugs.freedesktop.org/show_bug.cgi?id=89202 -https://bugs.debian.org/778656 - -Status quo ante can be restored with: - getfacl -p /var/log/journal/`cat /etc/machine-id`|grep -v '^#'|sort -u|sudo setfacl --set-file=- /var/log/journal/`cat /etc/machine-id` - -(cherry picked from commit 1c73f3bc29111a00738569c9d40a989b161a0624) ---- - src/shared/acl-util.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++-- - src/shared/acl-util.h | 4 +++ - 2 files changed, 81 insertions(+), 2 deletions(-) - -diff --git a/src/shared/acl-util.c b/src/shared/acl-util.c -index a4ff1ab878..cbe09d7aba 100644 ---- a/src/shared/acl-util.c -+++ b/src/shared/acl-util.c -@@ -282,6 +282,77 @@ int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask) - return 0; - } - -+static int acl_entry_equal(acl_entry_t a, acl_entry_t b) { -+ acl_tag_t tag_a, tag_b; -+ -+ if (acl_get_tag_type(a, &tag_a) < 0) -+ return -errno; -+ -+ if (acl_get_tag_type(b, &tag_b) < 0) -+ return -errno; -+ -+ if (tag_a != tag_b) -+ return false; -+ -+ switch (tag_a) { -+ case ACL_USER_OBJ: -+ case ACL_GROUP_OBJ: -+ case ACL_MASK: -+ case ACL_OTHER: -+ /* can have only one of those */ -+ return true; -+ case ACL_USER: { -+ _cleanup_(acl_free_uid_tpp) uid_t *uid_a, *uid_b; -+ -+ uid_a = acl_get_qualifier(a); -+ if (!uid_a) -+ return -errno; -+ -+ uid_b = acl_get_qualifier(b); -+ if (!uid_b) -+ return -errno; -+ -+ return *uid_a == *uid_b; -+ } -+ case ACL_GROUP: { -+ _cleanup_(acl_free_gid_tpp) gid_t *gid_a, *gid_b; -+ -+ gid_a = acl_get_qualifier(a); -+ if (!gid_a) -+ return -errno; -+ -+ gid_b = acl_get_qualifier(b); -+ if (!gid_b) -+ return -errno; -+ -+ return *gid_a == *gid_b; -+ } -+ default: -+ assert_not_reached("Unknown acl tag type"); -+ } -+} -+ -+static int find_acl_entry(acl_t acl, acl_entry_t entry, acl_entry_t *out) { -+ acl_entry_t i; -+ int r; -+ -+ for (r = acl_get_entry(acl, ACL_FIRST_ENTRY, &i); -+ r > 0; -+ r = acl_get_entry(acl, ACL_NEXT_ENTRY, &i)) { -+ -+ r = acl_entry_equal(i, entry); -+ if (r < 0) -+ return r; -+ if (r > 0) { -+ *out = i; -+ return 1; -+ } -+ } -+ if (r < 0) -+ return -errno; -+ return 0; -+} -+ - int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl) { - _cleanup_(acl_freep) acl_t old; - acl_entry_t i; -@@ -297,8 +368,12 @@ int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl) { - - acl_entry_t j; - -- if (acl_create_entry(&old, &j) < 0) -- return -errno; -+ r = find_acl_entry(old, i, &j); -+ if (r < 0) -+ return r; -+ if (r == 0) -+ if (acl_create_entry(&old, &j) < 0) -+ return -errno; - - if (acl_copy_entry(j, i) < 0) - return -errno; -diff --git a/src/shared/acl-util.h b/src/shared/acl-util.h -index 90e88ffa26..fdb90063fa 100644 ---- a/src/shared/acl-util.h -+++ b/src/shared/acl-util.h -@@ -41,5 +41,9 @@ int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl); - DEFINE_TRIVIAL_CLEANUP_FUNC(acl_t, acl_free); - #define acl_free_charp acl_free - DEFINE_TRIVIAL_CLEANUP_FUNC(char*, acl_free_charp); -+#define acl_free_uid_tp acl_free -+DEFINE_TRIVIAL_CLEANUP_FUNC(uid_t*, acl_free_uid_tp); -+#define acl_free_gid_tp acl_free -+DEFINE_TRIVIAL_CLEANUP_FUNC(gid_t*, acl_free_gid_tp); - - #endif diff --git a/0006-shared-time-util-fix-gcc5-warning.patch b/0006-shared-time-util-fix-gcc5-warning.patch deleted file mode 100644 index 73aa29c..0000000 --- a/0006-shared-time-util-fix-gcc5-warning.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 57da343cebcd77d168d5648825698e4edbb56d2c Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Tue, 24 Feb 2015 13:26:09 +0100 -Subject: [PATCH] shared/time-util: fix gcc5 warning - - CC src/shared/libsystemd_shared_la-time-util.lo -src/shared/time-util.c: In function 'parse_nsec': -src/shared/time-util.c:789:25: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] - if (!*s != 0) - ^ - -(cherry picked from commit 8e8933ca0f06bae19cb6db601e83b33f8ac80f2a) ---- - src/shared/time-util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/time-util.c b/src/shared/time-util.c -index 947ac1fcfb..1c36c577c4 100644 ---- a/src/shared/time-util.c -+++ b/src/shared/time-util.c -@@ -786,7 +786,7 @@ int parse_nsec(const char *t, nsec_t *nsec) { - s = startswith(p, "infinity"); - if (s) { - s += strspn(s, WHITESPACE); -- if (!*s != 0) -+ if (*s != 0) - return -EINVAL; - - *nsec = NSEC_INFINITY; diff --git a/0007-test-time-test-infinity-parsing-in-nanoseconds.patch b/0007-test-time-test-infinity-parsing-in-nanoseconds.patch deleted file mode 100644 index e10bf9c..0000000 --- a/0007-test-time-test-infinity-parsing-in-nanoseconds.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 5248b6bbaf09c74cd152257132cba9358549446a Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Tue, 24 Feb 2015 13:27:10 +0100 -Subject: [PATCH] test-time: test "infinity" parsing in nanoseconds - -(cherry picked from commit fdd30a1530810b659345c565e97beef06b7af2fd) ---- - src/test/test-time.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/test/test-time.c b/src/test/test-time.c -index 8cfc4cc4fe..3840fff061 100644 ---- a/src/test/test-time.c -+++ b/src/test/test-time.c -@@ -78,12 +78,18 @@ static void test_parse_nsec(void) { - assert_se(u == 2); - assert_se(parse_nsec(".7", &u) >= 0); - assert_se(u == 0); -+ assert_se(parse_nsec("infinity", &u) >= 0); -+ assert_se(u == NSEC_INFINITY); -+ assert_se(parse_nsec(" infinity ", &u) >= 0); -+ assert_se(u == NSEC_INFINITY); - - assert_se(parse_nsec(" xyz ", &u) < 0); - assert_se(parse_nsec("", &u) < 0); - assert_se(parse_nsec(" . ", &u) < 0); - assert_se(parse_nsec(" 5. ", &u) < 0); - assert_se(parse_nsec(".s ", &u) < 0); -+ assert_se(parse_nsec(" infinity .7", &u) < 0); -+ assert_se(parse_nsec(".3 infinity", &u) < 0); - } - - static void test_format_timespan_one(usec_t x, usec_t accuracy) { diff --git a/0008-bootchart-fix-default-init-path.patch b/0008-bootchart-fix-default-init-path.patch deleted file mode 100644 index a53129a..0000000 --- a/0008-bootchart-fix-default-init-path.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 588e3fe64330854d44f09b376a132c6384ac2499 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Tue, 24 Feb 2015 14:30:10 +0100 -Subject: [PATCH] bootchart: fix default init path - -Commit 6e1bf7ab99 used the wrong directory; we need rootlibexecdir, not -rootlibdir, as the latter is something like /lib/x86_64-linux-gnu/ on -multi-arch systems. - -https://launchpad.net/bugs/1423867 -(cherry picked from commit a804d849b3c2199bc25d1d4e65fc119fa4d7d0e2) ---- - Makefile.am | 1 + - src/bootchart/bootchart.c | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index bf04d31840..cc577ced48 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -198,6 +198,7 @@ AM_CPPFLAGS = \ - -DKEXEC=\"$(KEXEC)\" \ - -DLIBDIR=\"$(libdir)\" \ - -DROOTLIBDIR=\"$(rootlibdir)\" \ -+ -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" \ - -DTEST_DIR=\"$(abs_top_srcdir)/test\" \ - -I $(top_srcdir)/src \ - -I $(top_builddir)/src/shared \ -diff --git a/src/bootchart/bootchart.c b/src/bootchart/bootchart.c -index 64a384bacf..175be68688 100644 ---- a/src/bootchart/bootchart.c -+++ b/src/bootchart/bootchart.c -@@ -76,7 +76,7 @@ int sysfd=-1; - #define DEFAULT_HZ 25.0 - #define DEFAULT_SCALE_X 100.0 /* 100px = 1sec */ - #define DEFAULT_SCALE_Y 20.0 /* 16px = 1 process bar */ --#define DEFAULT_INIT ROOTLIBDIR "/systemd/systemd" -+#define DEFAULT_INIT ROOTLIBEXECDIR "/systemd" - #define DEFAULT_OUTPUT "/run/log" - - /* graph defaults */ diff --git a/0009-systemctl-bump-NOFILE-only-for-systemctl_main.patch b/0009-systemctl-bump-NOFILE-only-for-systemctl_main.patch deleted file mode 100644 index 68b255c..0000000 --- a/0009-systemctl-bump-NOFILE-only-for-systemctl_main.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 1df0ddca3ae405537ceb87eccdb76324f276706f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 24 Feb 2015 10:10:04 -0500 -Subject: [PATCH] systemctl: bump NOFILE only for systemctl_main - -It is not necessary when running as telinit, etc. - -https://bugzilla.redhat.com/show_bug.cgi?id=1184712 -(cherry picked from commit 95d383ee47db488f182048cfd6846f2e6b859f2b) ---- - src/systemctl/systemctl.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 21cb898b9a..6b93ec8446 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -7204,6 +7204,11 @@ found: - } - } - -+ /* Increase max number of open files to 16K if we can, we -+ * might needs this when browsing journal files, which might -+ * be split up into many files. */ -+ setrlimit_closest(RLIMIT_NOFILE, &RLIMIT_MAKE_CONST(16384)); -+ - return verb->dispatch(bus, argv + optind); - } - -@@ -7453,11 +7458,6 @@ int main(int argc, char*argv[]) { - goto finish; - } - -- /* Increase max number of open files to 16K if we can, we -- * might needs this when browsing journal files, which might -- * be split up into many files. */ -- setrlimit_closest(RLIMIT_NOFILE, &RLIMIT_MAKE_CONST(16384)); -- - if (!avoid_bus()) - r = bus_open_transport_systemd(arg_transport, arg_host, arg_scope != UNIT_FILE_SYSTEM, &bus); - diff --git a/0010-acl-util-avoid-freeing-uninitialized-pointer.patch b/0010-acl-util-avoid-freeing-uninitialized-pointer.patch deleted file mode 100644 index 6ea776e..0000000 --- a/0010-acl-util-avoid-freeing-uninitialized-pointer.patch +++ /dev/null @@ -1,34 +0,0 @@ -From f17b6474aaca077482a68aedc1de9d654ab21bad Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Tue, 24 Feb 2015 20:40:07 +0100 -Subject: [PATCH] acl-util: avoid freeing uninitialized pointer - -CID#1271344/1271345 - -(cherry picked from commit 76dcbc4992e895a377aad26f8c4a0dcd71002396) ---- - src/shared/acl-util.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/shared/acl-util.c b/src/shared/acl-util.c -index cbe09d7aba..e67e9acb6a 100644 ---- a/src/shared/acl-util.c -+++ b/src/shared/acl-util.c -@@ -302,7 +302,7 @@ static int acl_entry_equal(acl_entry_t a, acl_entry_t b) { - /* can have only one of those */ - return true; - case ACL_USER: { -- _cleanup_(acl_free_uid_tpp) uid_t *uid_a, *uid_b; -+ _cleanup_(acl_free_uid_tpp) uid_t *uid_a = NULL, *uid_b = NULL; - - uid_a = acl_get_qualifier(a); - if (!uid_a) -@@ -315,7 +315,7 @@ static int acl_entry_equal(acl_entry_t a, acl_entry_t b) { - return *uid_a == *uid_b; - } - case ACL_GROUP: { -- _cleanup_(acl_free_gid_tpp) gid_t *gid_a, *gid_b; -+ _cleanup_(acl_free_gid_tpp) gid_t *gid_a = NULL, *gid_b = NULL; - - gid_a = acl_get_qualifier(a); - if (!gid_a) diff --git a/0011-bootchart-svg-fix-checking-of-list-end.patch b/0011-bootchart-svg-fix-checking-of-list-end.patch deleted file mode 100644 index 15145d1..0000000 --- a/0011-bootchart-svg-fix-checking-of-list-end.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 668529dde3ecf35e24f39eaf3a3044099e4d5273 Mon Sep 17 00:00:00 2001 -From: Aaro Koskinen -Date: Tue, 24 Feb 2015 18:32:31 +0200 -Subject: [PATCH] bootchart: svg: fix checking of list end - -If we have less samples than expected, systemd-bootchart will crash. - -(cherry picked from commit c1682f17a0c966988e865c649e565dae41abf32d) ---- - src/bootchart/svg.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/bootchart/svg.c b/src/bootchart/svg.c -index e111fa9cce..144177cd47 100644 ---- a/src/bootchart/svg.c -+++ b/src/bootchart/svg.c -@@ -1170,7 +1170,7 @@ static void svg_ps_bars(void) { - - ps->sample = ps->sample->next; - sample_hz = ps->sample; -- for (ii=0;((ii<(int)arg_hz/2)&&(ps->sample->next));ii++) -+ for (ii=0;((ii<(int)arg_hz/2)&&(sample_hz->next));ii++) - sample_hz = sample_hz->next; - - /* subtract bootchart cpu utilization from total */ diff --git a/0012-systemd-add-getrandom-syscall-numbers-for-MIPS.patch b/0012-systemd-add-getrandom-syscall-numbers-for-MIPS.patch deleted file mode 100644 index 22c63eb..0000000 --- a/0012-systemd-add-getrandom-syscall-numbers-for-MIPS.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 5b49f6072e901336680708267c3d48a54c5410ae Mon Sep 17 00:00:00 2001 -From: Aaro Koskinen -Date: Mon, 23 Feb 2015 16:01:31 +0200 -Subject: [PATCH] systemd: add getrandom syscall numbers for MIPS - -Add getrandom syscall numbers for MIPS. Based on Linux 3.17 kernel -(commit 42944521af97a3b25516f15f3149aec3779656dc, "MIPS: Wire up new -syscalls getrandom and memfd_create"). - -(cherry picked from commit 3bec6d4690d2a7f08dc27b8221299c1db94978c4) ---- - src/shared/missing.h | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/src/shared/missing.h b/src/shared/missing.h -index b33a70cb2c..e72631e130 100644 ---- a/src/shared/missing.h -+++ b/src/shared/missing.h -@@ -179,6 +179,16 @@ static inline int memfd_create(const char *name, unsigned int flags) { - # define __NR_getrandom 349 - # elif defined(__powerpc__) - # define __NR_getrandom 359 -+# elif defined _MIPS_SIM -+# if _MIPS_SIM == _MIPS_SIM_ABI32 -+# define __NR_getrandom 4353 -+# endif -+# if _MIPS_SIM == _MIPS_SIM_NABI32 -+# define __NR_getrandom 6317 -+# endif -+# if _MIPS_SIM == _MIPS_SIM_ABI64 -+# define __NR_getrandom 5313 -+# endif - # else - # warning "__NR_getrandom unknown for your architecture" - # define __NR_getrandom 0xffffffff diff --git a/0013-unit-use-weaker-dependencies-between-mount-and-devic.patch b/0013-unit-use-weaker-dependencies-between-mount-and-devic.patch deleted file mode 100644 index 9b00c5b..0000000 --- a/0013-unit-use-weaker-dependencies-between-mount-and-devic.patch +++ /dev/null @@ -1,30 +0,0 @@ -From fc9805756d5c0088a3a67705bbf6bea30d0d35e5 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 25 Feb 2015 22:05:14 +0100 -Subject: [PATCH] unit: use weaker dependencies between mount and device units - in --user mode - -When running in user mode unmounting of mount units when a device -vanishes is unlikely to work, and even if it would work is already done -by PID 1 anyway. HEnce, when creating implicit dependencies between -mount units and their backing devices, created a Wants= type dependency -in --user mode, but leave a BindsTo= dependency in --system mode. - -(cherry picked from commit 5bd4b173605142c7be493aa4d958ebaef21f421d) ---- - src/core/unit.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/unit.c b/src/core/unit.c -index ee8e607c27..9f1e55e2f1 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2845,7 +2845,7 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { - if (r < 0) - return r; - -- r = unit_add_two_dependencies(u, UNIT_AFTER, UNIT_BINDS_TO, device, true); -+ r = unit_add_two_dependencies(u, UNIT_AFTER, u->manager->running_as == SYSTEMD_SYSTEM ? UNIT_BINDS_TO : UNIT_WANTS, device, true); - if (r < 0) - return r; - diff --git a/0014-unit-When-stopping-due-to-BindsTo-log-which-unit-cau.patch b/0014-unit-When-stopping-due-to-BindsTo-log-which-unit-cau.patch deleted file mode 100644 index c4cc373..0000000 --- a/0014-unit-When-stopping-due-to-BindsTo-log-which-unit-cau.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ca0cf2741ef9db81141f4444ab58dd3552c8fb1f Mon Sep 17 00:00:00 2001 -From: Colin Walters -Date: Tue, 17 Feb 2015 13:47:34 -0500 -Subject: [PATCH] unit: When stopping due to BindsTo=, log which unit caused it - -I'm trying to track down a relatively recent change in systemd -which broke OSTree; see https://bugzilla.gnome.org/show_bug.cgi?id=743891 - -Systemd started to stop sysroot.mount, and this patch should help -me debug why at least. - -While we're here, "break" on the first unit we find that will -deactivate, as there's no point in further iteration. - -(cherry picked from commit 98f738b62047229af4a929d7996e2ab04253b02c) ---- - src/core/unit.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/core/unit.c b/src/core/unit.c -index 9f1e55e2f1..563f6fe850 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -1648,12 +1648,14 @@ static void unit_check_binds_to(Unit *u) { - continue; - - stop = true; -+ break; - } - - if (!stop) - return; - -- log_unit_info(u->id, "Unit %s is bound to inactive unit. Stopping, too.", u->id); -+ assert(other); -+ log_unit_info(u->id, "Unit %s is bound to inactive unit %s. Stopping, too.", u->id, other->id); - - /* A unit we need to run is gone. Sniff. Let's stop this. */ - manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); diff --git a/0015-sysctl-downgrade-message-about-sysctl-overrides-to-d.patch b/0015-sysctl-downgrade-message-about-sysctl-overrides-to-d.patch deleted file mode 100644 index 1a1988f..0000000 --- a/0015-sysctl-downgrade-message-about-sysctl-overrides-to-d.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 2439dc6083d27271ee942559f0f73c99fa9e2b4e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 26 Feb 2015 19:00:11 -0500 -Subject: [PATCH] sysctl: downgrade message about sysctl overrides to debug - -Printing it at info level was tedious. We don't do that for any other -overrides. - -(cherry picked from commit 7933e4266f8124e3fca71f67757abd44155fa1cb) ---- - src/sysctl/sysctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c -index 275a5b74ae..2415d84526 100644 ---- a/src/sysctl/sysctl.c -+++ b/src/sysctl/sysctl.c -@@ -176,7 +176,7 @@ found: - if (streq(value, existing)) - continue; - -- log_info("Overwriting earlier assignment of %s in file '%s'.", p, path); -+ log_debug("Overwriting earlier assignment of %s in file '%s'.", p, path); - free(hashmap_remove(sysctl_options, p)); - free(v); - } diff --git a/0016-sysctl-add-some-hints-how-to-override-settings.patch b/0016-sysctl-add-some-hints-how-to-override-settings.patch deleted file mode 100644 index 104b0bf..0000000 --- a/0016-sysctl-add-some-hints-how-to-override-settings.patch +++ /dev/null @@ -1,36 +0,0 @@ -From af6a96a36415400482ad504392ea93c6a0e2ed43 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 26 Feb 2015 19:05:51 -0500 -Subject: [PATCH] sysctl: add some hints how to override settings - -Also a link to decent documentation for sysrq keys. It is surprising -hard to find. - -https://lists.fedoraproject.org/pipermail/devel/2015-February/208412.html -(cherry picked from commit 16b65d7f463e91f6299dfa7b83d4b5fbeb109d1c) ---- - sysctl.d/50-default.conf | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/sysctl.d/50-default.conf b/sysctl.d/50-default.conf -index f18923399b..def151bb84 100644 ---- a/sysctl.d/50-default.conf -+++ b/sysctl.d/50-default.conf -@@ -5,9 +5,16 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - --# See sysctl.d(5) and core(5) for for details. -+# See sysctl.d(5) and core(5) for for documentation. -+ -+# To override settings in this file, create a local file in /etc -+# (e.g. /etc/sysctl.d/90-override.conf), and put any assignments -+# there. - - # System Request functionality of the kernel (SYNC) -+# -+# Use kernel.sysrq = 1 to allow all keys. -+# See http://fedoraproject.org/wiki/QA/Sysrq for a list of values and keys. - kernel.sysrq = 16 - - # Append the PID to the core filename diff --git a/0017-core-rework-device-state-logic.patch b/0017-core-rework-device-state-logic.patch deleted file mode 100644 index 9847676..0000000 --- a/0017-core-rework-device-state-logic.patch +++ /dev/null @@ -1,909 +0,0 @@ -From 5b788e932fe918fb022bc20c3a15eb59e0fad53a Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 27 Feb 2015 21:55:08 +0100 -Subject: [PATCH] core: rework device state logic - -This change introduces a new state "tentative" for device units. Device -units are considered "plugged" when udev announced them, "dead" when -they are not available in the kernel, and "tentative" when they are -referenced in /proc/self/mountinfo or /proc/swaps but not (yet) -announced via udev. - -This should fix a race when device nodes (like loop devices) are created -and immediately mounted. Previously, systemd might end up seeing the -mount unit before the device, and would thus pull down the mount because -its BindTo dependency on the device would not be fulfilled. - -(cherry picked from commit 628c89cc68ab96fce2de7ebba5933725d147aecc) ---- - src/core/device.c | 368 +++++++++++++++++++++++++++++++++--------------------- - src/core/device.h | 14 ++- - src/core/mount.c | 46 ++++--- - src/core/swap.c | 32 +++-- - src/core/swap.h | 4 +- - src/core/unit.c | 1 - - 6 files changed, 285 insertions(+), 180 deletions(-) - -diff --git a/src/core/device.c b/src/core/device.c -index d3deac3936..75b9a46287 100644 ---- a/src/core/device.c -+++ b/src/core/device.c -@@ -36,7 +36,8 @@ - - static const UnitActiveState state_translation_table[_DEVICE_STATE_MAX] = { - [DEVICE_DEAD] = UNIT_INACTIVE, -- [DEVICE_PLUGGED] = UNIT_ACTIVE -+ [DEVICE_TENTATIVE] = UNIT_ACTIVATING, -+ [DEVICE_PLUGGED] = UNIT_ACTIVE, - }; - - static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata); -@@ -65,6 +66,41 @@ static void device_unset_sysfs(Device *d) { - d->sysfs = NULL; - } - -+static int device_set_sysfs(Device *d, const char *sysfs) { -+ Device *first; -+ char *copy; -+ int r; -+ -+ assert(d); -+ -+ if (streq_ptr(d->sysfs, sysfs)) -+ return 0; -+ -+ r = hashmap_ensure_allocated(&UNIT(d)->manager->devices_by_sysfs, &string_hash_ops); -+ if (r < 0) -+ return r; -+ -+ copy = strdup(sysfs); -+ if (!copy) -+ return -ENOMEM; -+ -+ device_unset_sysfs(d); -+ -+ first = hashmap_get(UNIT(d)->manager->devices_by_sysfs, sysfs); -+ LIST_PREPEND(same_sysfs, first, d); -+ -+ r = hashmap_replace(UNIT(d)->manager->devices_by_sysfs, copy, first); -+ if (r < 0) { -+ LIST_REMOVE(same_sysfs, first, d); -+ free(copy); -+ return r; -+ } -+ -+ d->sysfs = copy; -+ -+ return 0; -+} -+ - static void device_init(Unit *u) { - Device *d = DEVICE(u); - -@@ -112,8 +148,13 @@ static int device_coldplug(Unit *u) { - assert(d); - assert(d->state == DEVICE_DEAD); - -- if (d->sysfs) -+ if (d->found & DEVICE_FOUND_UDEV) -+ /* If udev says the device is around, it's around */ - device_set_state(d, DEVICE_PLUGGED); -+ else if (d->found != DEVICE_NOT_FOUND) -+ /* If a device is found in /proc/self/mountinfo or -+ * /proc/swaps, it's "tentatively" around. */ -+ device_set_state(d, DEVICE_TENTATIVE); - - return 0; - } -@@ -142,49 +183,9 @@ _pure_ static const char *device_sub_state_to_string(Unit *u) { - return device_state_to_string(DEVICE(u)->state); - } - --static int device_add_escaped_name(Unit *u, const char *dn) { -- _cleanup_free_ char *e = NULL; -- int r; -- -- assert(u); -- assert(dn); -- assert(dn[0] == '/'); -- -- e = unit_name_from_path(dn, ".device"); -- if (!e) -- return -ENOMEM; -- -- r = unit_add_name(u, e); -- if (r < 0 && r != -EEXIST) -- return r; -- -- return 0; --} -- --static int device_find_escape_name(Manager *m, const char *dn, Unit **_u) { -- _cleanup_free_ char *e = NULL; -- Unit *u; -- -- assert(m); -- assert(dn); -- assert(dn[0] == '/'); -- assert(_u); -- -- e = unit_name_from_path(dn, ".device"); -- if (!e) -- return -ENOMEM; -- -- u = manager_get_unit(m, e); -- if (u) { -- *_u = u; -- return 1; -- } -- -- return 0; --} -- --static int device_make_description(Unit *u, struct udev_device *dev, const char *path) { -+static int device_update_description(Unit *u, struct udev_device *dev, const char *path) { - const char *model; -+ int r; - - assert(u); - assert(dev); -@@ -209,13 +210,16 @@ static int device_make_description(Unit *u, struct udev_device *dev, const char - - j = strjoin(model, " ", label, NULL); - if (j) -- return unit_set_description(u, j); -- } -+ r = unit_set_description(u, j); -+ } else -+ r = unit_set_description(u, model); -+ } else -+ r = unit_set_description(u, path); - -- return unit_set_description(u, model); -- } -+ if (r < 0) -+ log_unit_error_errno(u->id, r, "Failed to set device description: %m"); - -- return unit_set_description(u, path); -+ return r; - } - - static int device_add_udev_wants(Unit *u, struct udev_device *dev) { -@@ -242,20 +246,20 @@ static int device_add_udev_wants(Unit *u, struct udev_device *dev) { - - n = unit_name_mangle(e, MANGLE_NOGLOB); - if (!n) -- return -ENOMEM; -+ return log_oom(); - - r = unit_add_dependency_by_name(u, UNIT_WANTS, n, NULL, true); - if (r < 0) -- return r; -+ return log_unit_error_errno(u->id, r, "Failed to add wants dependency: %m"); - } - if (!isempty(state)) -- log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", -- property, strna(udev_device_get_syspath(dev))); -+ log_unit_warning(u->id, "Property %s on %s has trailing garbage, ignoring.", property, strna(udev_device_get_syspath(dev))); - - return 0; - } - --static int device_update_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { -+static int device_setup_unit(Manager *m, struct udev_device *dev, const char *path, bool main) { -+ _cleanup_free_ char *e = NULL; - const char *sysfs; - Unit *u = NULL; - bool delete; -@@ -269,12 +273,18 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - if (!sysfs) - return 0; - -- r = device_find_escape_name(m, path, &u); -- if (r < 0) -- return r; -+ e = unit_name_from_path(path, ".device"); -+ if (!e) -+ return log_oom(); -+ -+ u = manager_get_unit(m, e); - -- if (u && DEVICE(u)->sysfs && !path_equal(DEVICE(u)->sysfs, sysfs)) -+ if (u && -+ DEVICE(u)->sysfs && -+ !path_equal(DEVICE(u)->sysfs, sysfs)) { -+ log_unit_error(u->id, "Device %s appeared twice with different sysfs paths %s and %s", e, DEVICE(u)->sysfs, sysfs); - return -EEXIST; -+ } - - if (!u) { - delete = true; -@@ -283,7 +293,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - if (!u) - return log_oom(); - -- r = device_add_escaped_name(u, path); -+ r = unit_add_name(u, e); - if (r < 0) - goto fail; - -@@ -295,37 +305,16 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - * actually been seen yet ->sysfs will not be - * initialized. Hence initialize it if necessary. */ - -- if (!DEVICE(u)->sysfs) { -- Device *first; -- -- DEVICE(u)->sysfs = strdup(sysfs); -- if (!DEVICE(u)->sysfs) { -- r = -ENOMEM; -- goto fail; -- } -- -- r = hashmap_ensure_allocated(&m->devices_by_sysfs, &string_hash_ops); -- if (r < 0) -- goto fail; -- -- first = hashmap_get(m->devices_by_sysfs, sysfs); -- LIST_PREPEND(same_sysfs, first, DEVICE(u)); -- -- r = hashmap_replace(m->devices_by_sysfs, DEVICE(u)->sysfs, first); -- if (r < 0) -- goto fail; -- } -- -- device_make_description(u, dev, path); -+ r = device_set_sysfs(DEVICE(u), sysfs); -+ if (r < 0) -+ goto fail; - -- if (main) { -- /* The additional systemd udev properties we only -- * interpret for the main object */ -+ (void) device_update_description(u, dev, path); - -- r = device_add_udev_wants(u, dev); -- if (r < 0) -- goto fail; -- } -+ /* The additional systemd udev properties we only interpret -+ * for the main object */ -+ if (main) -+ (void) device_add_udev_wants(u, dev); - - /* Note that this won't dispatch the load queue, the caller - * has to do that if needed and appropriate */ -@@ -334,7 +323,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p - return 0; - - fail: -- log_warning_errno(r, "Failed to load device unit: %m"); -+ log_unit_warning_errno(u->id, r, "Failed to set up device unit: %m"); - - if (delete && u) - unit_free(u); -@@ -342,7 +331,7 @@ fail: - return r; - } - --static int device_process_new_device(Manager *m, struct udev_device *dev) { -+static int device_process_new(Manager *m, struct udev_device *dev) { - const char *sysfs, *dn, *alias; - struct udev_list_entry *item = NULL, *first = NULL; - int r; -@@ -354,14 +343,14 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - return 0; - - /* Add the main unit named after the sysfs path */ -- r = device_update_unit(m, dev, sysfs, true); -+ r = device_setup_unit(m, dev, sysfs, true); - if (r < 0) - return r; - - /* Add an additional unit for the device node */ - dn = udev_device_get_devnode(dev); - if (dn) -- device_update_unit(m, dev, dn, false); -+ (void) device_setup_unit(m, dev, dn, false); - - /* Add additional units for all symlinks */ - first = udev_device_get_devlinks_list_entry(dev); -@@ -388,7 +377,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - st.st_rdev != udev_device_get_devnum(dev)) - continue; - -- device_update_unit(m, dev, p, false); -+ (void) device_setup_unit(m, dev, p, false); - } - - /* Add additional units for all explicitly configured -@@ -405,7 +394,7 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - e[l] = 0; - - if (path_is_absolute(e)) -- device_update_unit(m, dev, e, false); -+ (void) device_setup_unit(m, dev, e, false); - else - log_warning("SYSTEMD_ALIAS for %s is not an absolute path, ignoring: %s", sysfs, e); - } -@@ -416,39 +405,62 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) { - return 0; - } - --static void device_set_path_plugged(Manager *m, struct udev_device *dev) { -- const char *sysfs; -+static void device_update_found_one(Device *d, bool add, DeviceFound found, bool now) { -+ DeviceFound n; -+ -+ assert(d); -+ -+ n = add ? (d->found | found) : (d->found & ~found); -+ if (n == d->found) -+ return; -+ -+ d->found = n; -+ -+ if (now) { -+ if (d->found & DEVICE_FOUND_UDEV) -+ device_set_state(d, DEVICE_PLUGGED); -+ else if (d->found != DEVICE_NOT_FOUND) -+ device_set_state(d, DEVICE_TENTATIVE); -+ else -+ device_set_state(d, DEVICE_DEAD); -+ } -+} -+ -+static int device_update_found_by_sysfs(Manager *m, const char *sysfs, bool add, DeviceFound found, bool now) { - Device *d, *l; - - assert(m); -- assert(dev); -+ assert(sysfs); - -- sysfs = udev_device_get_syspath(dev); -- if (!sysfs) -- return; -+ if (found == DEVICE_NOT_FOUND) -+ return 0; - - l = hashmap_get(m->devices_by_sysfs, sysfs); - LIST_FOREACH(same_sysfs, d, l) -- device_set_state(d, DEVICE_PLUGGED); -+ device_update_found_one(d, add, found, now); -+ -+ return 0; - } - --static int device_process_removed_device(Manager *m, struct udev_device *dev) { -- const char *sysfs; -- Device *d; -+static int device_update_found_by_name(Manager *m, const char *path, bool add, DeviceFound found, bool now) { -+ _cleanup_free_ char *e = NULL; -+ Unit *u; - - assert(m); -- assert(dev); -+ assert(path); - -- sysfs = udev_device_get_syspath(dev); -- if (!sysfs) -- return -ENOMEM; -+ if (found == DEVICE_NOT_FOUND) -+ return 0; - -- /* Remove all units of this sysfs path */ -- while ((d = hashmap_get(m->devices_by_sysfs, sysfs))) { -- device_unset_sysfs(d); -- device_set_state(d, DEVICE_DEAD); -- } -+ e = unit_name_from_path(path, ".device"); -+ if (!e) -+ return log_oom(); - -+ u = manager_get_unit(m, e); -+ if (!u) -+ return 0; -+ -+ device_update_found_one(DEVICE(u), add, found, now); - return 0; - } - -@@ -464,22 +476,6 @@ static bool device_is_ready(struct udev_device *dev) { - return parse_boolean(ready) != 0; - } - --static int device_process_new_path(Manager *m, const char *path) { -- _cleanup_udev_device_unref_ struct udev_device *dev = NULL; -- -- assert(m); -- assert(path); -- -- dev = udev_device_new_from_syspath(m->udev, path); -- if (!dev) -- return log_oom(); -- -- if (!device_is_ready(dev)) -- return 0; -- -- return device_process_new_device(m, dev); --} -- - static Unit *device_following(Unit *u) { - Device *d = DEVICE(u); - Device *other, *first = NULL; -@@ -606,12 +602,31 @@ static int device_enumerate(Manager *m) { - goto fail; - - first = udev_enumerate_get_list_entry(e); -- udev_list_entry_foreach(item, first) -- device_process_new_path(m, udev_list_entry_get_name(item)); -+ udev_list_entry_foreach(item, first) { -+ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; -+ const char *sysfs; -+ -+ sysfs = udev_list_entry_get_name(item); -+ -+ dev = udev_device_new_from_syspath(m->udev, sysfs); -+ if (!dev) { -+ log_oom(); -+ continue; -+ } -+ -+ if (!device_is_ready(dev)) -+ continue; -+ -+ (void) device_process_new(m, dev); -+ -+ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, false); -+ } - - return 0; - - fail: -+ log_error_errno(r, "Failed to enumerate devices: %m"); -+ - device_shutdown(m); - return r; - } -@@ -619,7 +634,7 @@ fail: - static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, void *userdata) { - _cleanup_udev_device_unref_ struct udev_device *dev = NULL; - Manager *m = userdata; -- const char *action; -+ const char *action, *sysfs; - int r; - - assert(m); -@@ -641,33 +656,47 @@ static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - if (!dev) - return 0; - -+ sysfs = udev_device_get_syspath(dev); -+ if (!sysfs) { -+ log_error("Failed to get udev sys path."); -+ return 0; -+ } -+ - action = udev_device_get_action(dev); - if (!action) { - log_error("Failed to get udev action string."); - return 0; - } - -- if (streq(action, "remove") || !device_is_ready(dev)) { -- r = device_process_removed_device(m, dev); -- if (r < 0) -- log_error_errno(r, "Failed to process device remove event: %m"); -- -- r = swap_process_removed_device(m, dev); -+ if (streq(action, "remove")) { -+ r = swap_process_device_remove(m, dev); - if (r < 0) - log_error_errno(r, "Failed to process swap device remove event: %m"); - -- } else { -- r = device_process_new_device(m, dev); -- if (r < 0) -- log_error_errno(r, "Failed to process device new event: %m"); -+ /* If we get notified that a device was removed by -+ * udev, then it's completely gone, hence unset all -+ * found bits */ -+ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV|DEVICE_FOUND_MOUNT|DEVICE_FOUND_SWAP, true); - -- r = swap_process_new_device(m, dev); -+ } else if (device_is_ready(dev)) { -+ -+ (void) device_process_new(m, dev); -+ -+ r = swap_process_device_new(m, dev); - if (r < 0) - log_error_errno(r, "Failed to process swap device new event: %m"); - - manager_dispatch_load_queue(m); - -- device_set_path_plugged(m, dev); -+ /* The device is found now, set the udev found bit */ -+ device_update_found_by_sysfs(m, sysfs, true, DEVICE_FOUND_UDEV, true); -+ -+ } else { -+ /* The device is nominally around, but not ready for -+ * us. Hence unset the udev bit, but leave the rest -+ * around. */ -+ -+ device_update_found_by_sysfs(m, sysfs, false, DEVICE_FOUND_UDEV, true); - } - - return 0; -@@ -686,9 +715,58 @@ static bool device_supported(Manager *m) { - return read_only <= 0; - } - -+int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now) { -+ _cleanup_udev_device_unref_ struct udev_device *dev = NULL; -+ struct stat st; -+ -+ assert(m); -+ assert(node); -+ -+ /* This is called whenever we find a device referenced in -+ * /proc/swaps or /proc/self/mounts. Such a device might be -+ * mounted/enabled at a time where udev has not finished -+ * probing it yet, and we thus haven't learned about it -+ * yet. In this case we will set the device unit to -+ * "tentative" state. */ -+ -+ if (add) { -+ if (!path_startswith(node, "/dev")) -+ return 0; -+ -+ if (stat(node, &st) < 0) { -+ if (errno == ENOENT) -+ return 0; -+ -+ return log_error_errno(errno, "Failed to stat device node file %s: %m", node); -+ } -+ -+ if (!S_ISBLK(st.st_mode) && !S_ISCHR(st.st_mode)) -+ return 0; -+ -+ dev = udev_device_new_from_devnum(m->udev, S_ISBLK(st.st_mode) ? 'b' : 'c', st.st_rdev); -+ if (!dev) { -+ if (errno == ENOENT) -+ return 0; -+ -+ return log_oom(); -+ } -+ -+ /* If the device is known in the kernel and newly -+ * appeared, then we'll create a device unit for it, -+ * under the name referenced in /proc/swaps or -+ * /proc/self/mountinfo. */ -+ -+ (void) device_setup_unit(m, dev, node, false); -+ } -+ -+ /* Update the device unit's state, should it exist */ -+ return device_update_found_by_name(m, node, add, found, now); -+} -+ - static const char* const device_state_table[_DEVICE_STATE_MAX] = { - [DEVICE_DEAD] = "dead", -- [DEVICE_PLUGGED] = "plugged" -+ [DEVICE_TENTATIVE] = "tentative", -+ [DEVICE_PLUGGED] = "plugged", - }; - - DEFINE_STRING_TABLE_LOOKUP(device_state, DeviceState); -diff --git a/src/core/device.h b/src/core/device.h -index bb7ae07834..0609b20fdb 100644 ---- a/src/core/device.h -+++ b/src/core/device.h -@@ -29,20 +29,28 @@ typedef struct Device Device; - * simplifies the state engine greatly */ - typedef enum DeviceState { - DEVICE_DEAD, -- DEVICE_PLUGGED, -+ DEVICE_TENTATIVE, /* mounted or swapped, but not (yet) announced by udev */ -+ DEVICE_PLUGGED, /* announced by udev */ - _DEVICE_STATE_MAX, - _DEVICE_STATE_INVALID = -1 - } DeviceState; - -+typedef enum DeviceFound { -+ DEVICE_NOT_FOUND = 0, -+ DEVICE_FOUND_UDEV = 1, -+ DEVICE_FOUND_MOUNT = 2, -+ DEVICE_FOUND_SWAP = 4, -+} DeviceFound; -+ - struct Device { - Unit meta; - - char *sysfs; -+ DeviceFound found; - - /* In order to be able to distinguish dependencies on - different device nodes we might end up creating multiple - devices for the same sysfs path. We chain them up here. */ -- - LIST_FIELDS(struct Device, same_sysfs); - - DeviceState state; -@@ -52,3 +60,5 @@ extern const UnitVTable device_vtable; - - const char* device_state_to_string(DeviceState i) _const_; - DeviceState device_state_from_string(const char *s) _pure_; -+ -+int device_found_node(Manager *m, const char *node, bool add, DeviceFound found, bool now); -diff --git a/src/core/mount.c b/src/core/mount.c -index f3977e62de..c971330af2 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -1391,7 +1391,7 @@ static int mount_dispatch_timer(sd_event_source *source, usec_t usec, void *user - return 0; - } - --static int mount_add_one( -+static int mount_setup_unit( - Manager *m, - const char *what, - const char *where, -@@ -1434,7 +1434,7 @@ static int mount_add_one( - - u = unit_new(m, sizeof(Mount)); - if (!u) -- return -ENOMEM; -+ return log_oom(); - - r = unit_add_name(u, e); - if (r < 0) -@@ -1547,6 +1547,8 @@ static int mount_add_one( - return 0; - - fail: -+ log_warning_errno(r, "Failed to set up mount unit: %m"); -+ - if (delete && u) - unit_free(u); - -@@ -1554,33 +1556,36 @@ fail: - } - - static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { -- _cleanup_(mnt_free_tablep) struct libmnt_table *tb = NULL; -- _cleanup_(mnt_free_iterp) struct libmnt_iter *itr = NULL; -- struct libmnt_fs *fs; -+ _cleanup_(mnt_free_tablep) struct libmnt_table *t = NULL; -+ _cleanup_(mnt_free_iterp) struct libmnt_iter *i = NULL; - int r = 0; - - assert(m); - -- tb = mnt_new_table(); -- itr = mnt_new_iter(MNT_ITER_FORWARD); -- if (!tb || !itr) -+ t = mnt_new_table(); -+ if (!t) - return log_oom(); - -- r = mnt_table_parse_mtab(tb, NULL); -+ i = mnt_new_iter(MNT_ITER_FORWARD); -+ if (!i) -+ return log_oom(); -+ -+ r = mnt_table_parse_mtab(t, NULL); - if (r < 0) -- return r; -+ return log_error_errno(r, "Failed to parse /proc/self/mountinfo: %m"); - - r = 0; - for (;;) { - const char *device, *path, *options, *fstype; - _cleanup_free_ const char *d = NULL, *p = NULL; -+ struct libmnt_fs *fs; - int k; - -- k = mnt_table_next_fs(tb, itr, &fs); -+ k = mnt_table_next_fs(t, i, &fs); - if (k == 1) - break; -- else if (k < 0) -- return log_error_errno(k, "Failed to get next entry from /etc/fstab: %m"); -+ if (k < 0) -+ return log_error_errno(k, "Failed to get next entry from /proc/self/mountinfo: %m"); - - device = mnt_fs_get_source(fs); - path = mnt_fs_get_target(fs); -@@ -1588,11 +1593,16 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { - fstype = mnt_fs_get_fstype(fs); - - d = cunescape(device); -+ if (!d) -+ return log_oom(); -+ - p = cunescape(path); -- if (!d || !p) -+ if (!p) - return log_oom(); - -- k = mount_add_one(m, d, p, options, fstype, set_flags); -+ (void) device_found_node(m, d, true, DEVICE_FOUND_MOUNT, set_flags); -+ -+ k = mount_setup_unit(m, d, p, options, fstype, set_flags); - if (r == 0 && k < 0) - r = k; - } -@@ -1736,8 +1746,6 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - - r = mount_load_proc_self_mountinfo(m, true); - if (r < 0) { -- log_error_errno(r, "Failed to reread /proc/self/mountinfo: %m"); -- - /* Reset flags, just in case, for later calls */ - LIST_FOREACH(units_by_type, u, m->units_by_type[UNIT_MOUNT]) { - Mount *mount = MOUNT(u); -@@ -1770,6 +1778,10 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, - break; - } - -+ if (mount->parameters_proc_self_mountinfo.what) -+ (void) device_found_node(m, mount->parameters_proc_self_mountinfo.what, false, DEVICE_FOUND_MOUNT, true); -+ -+ - } else if (mount->just_mounted || mount->just_changed) { - - /* New or changed mount entry */ -diff --git a/src/core/swap.c b/src/core/swap.c -index 6997921fde..5c19af5d91 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -338,7 +338,7 @@ static int swap_load(Unit *u) { - return swap_verify(s); - } - --static int swap_add_one( -+static int swap_setup_unit( - Manager *m, - const char *what, - const char *what_proc_swaps, -@@ -363,8 +363,10 @@ static int swap_add_one( - - if (u && - SWAP(u)->from_proc_swaps && -- !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) -+ !path_equal(SWAP(u)->parameters_proc_swaps.what, what_proc_swaps)) { -+ log_error("Swap %s appeared twice with different device paths %s and %s", e, SWAP(u)->parameters_proc_swaps.what, what_proc_swaps); - return -EEXIST; -+ } - - if (!u) { - delete = true; -@@ -379,7 +381,7 @@ static int swap_add_one( - - SWAP(u)->what = strdup(what); - if (!SWAP(u)->what) { -- r = log_oom(); -+ r = -ENOMEM; - goto fail; - } - -@@ -407,7 +409,6 @@ static int swap_add_one( - p->priority = priority; - - unit_add_to_dbus_queue(u); -- - return 0; - - fail: -@@ -419,7 +420,7 @@ fail: - return r; - } - --static int swap_process_new_swap(Manager *m, const char *device, int prio, bool set_flags) { -+static int swap_process_new(Manager *m, const char *device, int prio, bool set_flags) { - _cleanup_udev_device_unref_ struct udev_device *d = NULL; - struct udev_list_entry *item = NULL, *first = NULL; - const char *dn; -@@ -428,7 +429,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool - - assert(m); - -- r = swap_add_one(m, device, device, prio, set_flags); -+ r = swap_setup_unit(m, device, device, prio, set_flags); - if (r < 0) - return r; - -@@ -444,7 +445,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool - /* Add the main device node */ - dn = udev_device_get_devnode(d); - if (dn && !streq(dn, device)) -- swap_add_one(m, dn, device, prio, set_flags); -+ swap_setup_unit(m, dn, device, prio, set_flags); - - /* Add additional units for all symlinks */ - first = udev_device_get_devlinks_list_entry(d); -@@ -465,7 +466,7 @@ static int swap_process_new_swap(Manager *m, const char *device, int prio, bool - st.st_rdev != udev_device_get_devnum(d)) - continue; - -- swap_add_one(m, p, device, prio, set_flags); -+ swap_setup_unit(m, p, device, prio, set_flags); - } - - return r; -@@ -1091,15 +1092,17 @@ static int swap_load_proc_swaps(Manager *m, bool set_flags) { - if (k == EOF) - break; - -- log_warning("Failed to parse /proc/swaps:%u", i); -+ log_warning("Failed to parse /proc/swaps:%u.", i); - continue; - } - - d = cunescape(dev); - if (!d) -- return -ENOMEM; -+ return log_oom(); -+ -+ device_found_node(m, d, true, DEVICE_FOUND_SWAP, set_flags); - -- k = swap_process_new_swap(m, d, prio, set_flags); -+ k = swap_process_new(m, d, prio, set_flags); - if (k < 0) - r = k; - } -@@ -1151,6 +1154,9 @@ static int swap_dispatch_io(sd_event_source *source, int fd, uint32_t revents, v - break; - } - -+ if (swap->what) -+ device_found_node(m, swap->what, false, DEVICE_FOUND_SWAP, true); -+ - } else if (swap->just_activated) { - - /* New swap entry */ -@@ -1298,7 +1304,7 @@ fail: - return r; - } - --int swap_process_new_device(Manager *m, struct udev_device *dev) { -+int swap_process_device_new(Manager *m, struct udev_device *dev) { - struct udev_list_entry *item = NULL, *first = NULL; - _cleanup_free_ char *e = NULL; - const char *dn; -@@ -1341,7 +1347,7 @@ int swap_process_new_device(Manager *m, struct udev_device *dev) { - return r; - } - --int swap_process_removed_device(Manager *m, struct udev_device *dev) { -+int swap_process_device_remove(Manager *m, struct udev_device *dev) { - const char *dn; - int r = 0; - Swap *s; -diff --git a/src/core/swap.h b/src/core/swap.h -index 73e64d87a4..914a2dbccd 100644 ---- a/src/core/swap.h -+++ b/src/core/swap.h -@@ -116,8 +116,8 @@ struct Swap { - - extern const UnitVTable swap_vtable; - --int swap_process_new_device(Manager *m, struct udev_device *dev); --int swap_process_removed_device(Manager *m, struct udev_device *dev); -+int swap_process_device_new(Manager *m, struct udev_device *dev); -+int swap_process_device_remove(Manager *m, struct udev_device *dev); - - const char* swap_state_to_string(SwapState i) _const_; - SwapState swap_state_from_string(const char *s) _pure_; -diff --git a/src/core/unit.c b/src/core/unit.c -index 563f6fe850..a6558ee23b 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2843,7 +2843,6 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { - return -ENOMEM; - - r = manager_load_unit(u->manager, e, NULL, NULL, &device); -- - if (r < 0) - return r; - diff --git a/0018-core-fix-return-value-on-OOM.patch b/0018-core-fix-return-value-on-OOM.patch deleted file mode 100644 index a9d0ff6..0000000 --- a/0018-core-fix-return-value-on-OOM.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 3d3a67138c63b47f2a5723577f886bc3c7995748 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Sat, 28 Feb 2015 23:39:55 +0100 -Subject: [PATCH] core: fix return value on OOM - -(cherry picked from commit c43b2132f37264600cc26e07c8d85dfdd6c969f0) ---- - src/core/device.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/core/device.c b/src/core/device.c -index 75b9a46287..1cc103c290 100644 ---- a/src/core/device.c -+++ b/src/core/device.c -@@ -211,6 +211,8 @@ static int device_update_description(Unit *u, struct udev_device *dev, const cha - j = strjoin(model, " ", label, NULL); - if (j) - r = unit_set_description(u, j); -+ else -+ r = -ENOMEM; - } else - r = unit_set_description(u, model); - } else diff --git a/0019-machined-use-x-machine-unix-prefix-for-the-container.patch b/0019-machined-use-x-machine-unix-prefix-for-the-container.patch deleted file mode 100644 index 4abde6c..0000000 --- a/0019-machined-use-x-machine-unix-prefix-for-the-container.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 9a46fe3127eea552cd76d4b549f8d8ba70ea01b3 Mon Sep 17 00:00:00 2001 -From: Benjamin Franzke -Date: Thu, 19 Feb 2015 20:47:28 +0100 -Subject: [PATCH] machined: use x-machine-unix prefix for the container bus on - dbus1 - -This fixes "machinectl login" on systems configured with --disable-kdbus. - -The error was: -machinectl login foo -Failed to get machine PTY: Input/output error - -(cherry picked from commit f2273101c21bc59a390379e182e53cd4f07a7e71) ---- - src/machine/machine-dbus.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c -index b46f0a8dac..b0f0f66e09 100644 ---- a/src/machine/machine-dbus.c -+++ b/src/machine/machine-dbus.c -@@ -477,7 +477,7 @@ int bus_machine_method_open_login(sd_bus *bus, sd_bus_message *message, void *us - #ifdef ENABLE_KDBUS - asprintf(&container_bus->address, "x-machine-kernel:pid=" PID_FMT ";x-machine-unix:pid=" PID_FMT, m->leader, m->leader); - #else -- asprintf(&container_bus->address, "x-machine-kernel:pid=" PID_FMT, m->leader); -+ asprintf(&container_bus->address, "x-machine-unix:pid=" PID_FMT, m->leader); - #endif - if (!container_bus->address) - return -ENOMEM; diff --git a/0020-shared-AFS-is-also-a-network-filesystem.patch b/0020-shared-AFS-is-also-a-network-filesystem.patch deleted file mode 100644 index f2f42ed..0000000 --- a/0020-shared-AFS-is-also-a-network-filesystem.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 3c350019fe9e4be16bf110988c324cfa3a21c61b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Fri, 20 Feb 2015 15:35:11 -0300 -Subject: [PATCH] shared: AFS is also a network filesystem - -(cherry picked from commit ba89821c104d959082aad6f3f0e05a8afd575023) ---- - src/shared/util.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/shared/util.c b/src/shared/util.c -index ba035caed0..f24b5b4ec5 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -1689,6 +1689,7 @@ bool chars_intersect(const char *a, const char *b) { - - bool fstype_is_network(const char *fstype) { - static const char table[] = -+ "afs\0" - "cifs\0" - "smbfs\0" - "sshfs\0" diff --git a/0021-core-downgrade-unit-type-not-supported-message.patch b/0021-core-downgrade-unit-type-not-supported-message.patch deleted file mode 100644 index 2794ae1..0000000 --- a/0021-core-downgrade-unit-type-not-supported-message.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4e2d4dd757c6faa4d5a471c10cf6f45978524845 Mon Sep 17 00:00:00 2001 -From: Umut Tezduyar Lindskog -Date: Fri, 20 Feb 2015 10:53:28 +0100 -Subject: [PATCH] core: downgrade unit type not supported message - -Otherwise every daemon reload prints out warnings like: - -systemd[1]: Unit type .busname is not supported on this system. -systemd[1]: Unit type .swap is not supported on this system. - -(cherry picked from commit 03afec3c9aa849ba13161c253b129b834298fd40) ---- - src/core/manager.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index 4775219e4a..bc9b7ec620 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -961,7 +961,7 @@ int manager_enumerate(Manager *m) { - int q; - - if (unit_vtable[c]->supported && !unit_vtable[c]->supported(m)) { -- log_info("Unit type .%s is not supported on this system.", unit_type_to_string(c)); -+ log_debug("Unit type .%s is not supported on this system.", unit_type_to_string(c)); - continue; - } - diff --git a/0022-journal-remote-fix-saving-of-binary-fields.patch b/0022-journal-remote-fix-saving-of-binary-fields.patch deleted file mode 100644 index 6fd8cf0..0000000 --- a/0022-journal-remote-fix-saving-of-binary-fields.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 91a3ba906422127bb12095d1c7d0c7f0cb385588 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 2 Mar 2015 10:34:51 -0500 -Subject: [PATCH] journal-remote: fix saving of binary fields - -Binary fields were not processed properly, and resulting journal files -were non-conforming, resulting in an error ("Invalid field.") when reading. - -https://bugs.freedesktop.org/show_bug.cgi?id=89391 -(cherry picked from commit 09d801a82a46df518dd752e40bf13ac404daa2ce) ---- - src/journal-remote/journal-remote-parse.c | 31 ++++++++++++++++++------------- - src/journal-remote/journal-remote-parse.h | 4 +++- - 2 files changed, 21 insertions(+), 14 deletions(-) - -diff --git a/src/journal-remote/journal-remote-parse.c b/src/journal-remote/journal-remote-parse.c -index d9dea8deb0..afded7e380 100644 ---- a/src/journal-remote/journal-remote-parse.c -+++ b/src/journal-remote/journal-remote-parse.c -@@ -344,22 +344,25 @@ int process_data(RemoteSource *source) { - LLLLLLLL0011223344...\n - */ - sep = memchr(line, '=', n); -- if (sep) -+ if (sep) { - /* chomp newline */ - n--; -- else -+ -+ r = iovw_put(&source->iovw, line, n); -+ if (r < 0) -+ return r; -+ } else { - /* replace \n with = */ - line[n-1] = '='; -- log_trace("Received: %.*s", (int) n, line); - -- r = iovw_put(&source->iovw, line, n); -- if (r < 0) { -- log_error("Failed to put line in iovect"); -- return r; -+ source->field_len = n; -+ source->state = STATE_DATA_START; -+ -+ /* we cannot put the field in iovec until we have all data */ - } - -- if (!sep) -- source->state = STATE_DATA_START; -+ log_trace("Received: %.*s (%s)", (int) n, line, sep ? "text" : "binary"); -+ - return 0; /* continue */ - } - -@@ -382,6 +385,7 @@ int process_data(RemoteSource *source) { - - case STATE_DATA: { - void *data; -+ char *field; - - assert(source->data_size > 0); - -@@ -396,11 +400,12 @@ int process_data(RemoteSource *source) { - - assert(data); - -- r = iovw_put(&source->iovw, data, source->data_size); -- if (r < 0) { -- log_error("failed to put binary buffer in iovect"); -+ field = (char*) data - sizeof(uint64_t) - source->field_len; -+ memmove(field + sizeof(uint64_t), field, source->field_len); -+ -+ r = iovw_put(&source->iovw, field + sizeof(uint64_t), source->field_len + source->data_size); -+ if (r < 0) - return r; -- } - - source->state = STATE_DATA_FINISH; - -diff --git a/src/journal-remote/journal-remote-parse.h b/src/journal-remote/journal-remote-parse.h -index 8499f4eb82..22db550913 100644 ---- a/src/journal-remote/journal-remote-parse.h -+++ b/src/journal-remote/journal-remote-parse.h -@@ -42,7 +42,9 @@ typedef struct RemoteSource { - size_t offset; /* offset to the beginning of live data in the buffer */ - size_t scanned; /* number of bytes since the beginning of data without a newline */ - size_t filled; /* total number of bytes in the buffer */ -- size_t data_size; /* size of the binary data chunk being processed */ -+ -+ size_t field_len; /* used for binary fields: the field name length */ -+ size_t data_size; /* and the size of the binary data chunk being processed */ - - struct iovec_wrapper iovw; - diff --git a/0023-journal-fix-Inappropriate-ioctl-for-device-on-ext4.patch b/0023-journal-fix-Inappropriate-ioctl-for-device-on-ext4.patch deleted file mode 100644 index 5d07ced..0000000 --- a/0023-journal-fix-Inappropriate-ioctl-for-device-on-ext4.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 983c520982b548c9bb8f2689a93f2fb35c54c392 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Sun, 1 Mar 2015 21:13:10 -0300 -Subject: [PATCH] journal: fix Inappropriate ioctl for device on ext4 - -Logs constantly show - -systemd-journald[395]: Failed to set file attributes: Inappropriate ioctl for device - -This is because ext4 does not support FS_NOCOW_FL. - -[zj: fold into one conditional as suggested on the ML and - fix (preexisting) r/errno confusion in error message.] - -(cherry picked from commit 65eae3b76243d2dfd869f8c43b787575f7b4b994) ---- - src/journal/journal-file.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 2845e05ce0..0f28718b0e 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -2611,8 +2611,8 @@ int journal_file_open( - * shouldn't be too bad, given that we do our own - * checksumming). */ - r = chattr_fd(f->fd, true, FS_NOCOW_FL); -- if (r < 0) -- log_warning_errno(errno, "Failed to set file attributes: %m"); -+ if (r < 0 && r != -ENOTTY) -+ log_warning_errno(r, "Failed to set file attributes: %m"); - - /* Let's attach the creation time to the journal file, - * so that the vacuuming code knows the age of this diff --git a/0024-sd-daemon-replace-VLA-with-alloca-to-make-llvm-happy.patch b/0024-sd-daemon-replace-VLA-with-alloca-to-make-llvm-happy.patch deleted file mode 100644 index 2f3a49a..0000000 --- a/0024-sd-daemon-replace-VLA-with-alloca-to-make-llvm-happy.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 3f0c8096f3d5e3b37d6e0e26f0562c1a8669f0d8 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 2 Mar 2015 20:55:38 +0100 -Subject: [PATCH] sd-daemon: replace VLA with alloca(), to make llvm happy - -https://bugs.freedesktop.org/show_bug.cgi?id=89379 -(cherry picked from commit d4a144fadf89bca681724c6c9a65b4a165fa0f90) ---- - src/libsystemd/sd-daemon/sd-daemon.c | 12 +++++------- - 1 file changed, 5 insertions(+), 7 deletions(-) - -diff --git a/src/libsystemd/sd-daemon/sd-daemon.c b/src/libsystemd/sd-daemon/sd-daemon.c -index 028c2a7a5b..22a3a5347a 100644 ---- a/src/libsystemd/sd-daemon/sd-daemon.c -+++ b/src/libsystemd/sd-daemon/sd-daemon.c -@@ -352,11 +352,7 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char - .msg_iovlen = 1, - .msg_name = &sockaddr, - }; -- union { -- struct cmsghdr cmsghdr; -- uint8_t buf[CMSG_SPACE(sizeof(struct ucred)) + -- CMSG_SPACE(sizeof(int) * n_fds)]; -- } control; -+ struct cmsghdr *control; - _cleanup_close_ int fd = -1; - struct cmsghdr *cmsg = NULL; - const char *e; -@@ -400,8 +396,10 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char - if (msghdr.msg_namelen > sizeof(struct sockaddr_un)) - msghdr.msg_namelen = sizeof(struct sockaddr_un); - -+ control = alloca(CMSG_SPACE(sizeof(struct ucred)) + CMSG_SPACE(sizeof(int) * n_fds)); -+ - if (n_fds > 0) { -- msghdr.msg_control = &control; -+ msghdr.msg_control = control; - msghdr.msg_controllen = CMSG_LEN(sizeof(int) * n_fds); - - cmsg = CMSG_FIRSTHDR(&msghdr); -@@ -418,7 +416,7 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char - try_without_ucred = true; - controllen_without_ucred = msghdr.msg_controllen; - -- msghdr.msg_control = &control; -+ msghdr.msg_control = control; - msghdr.msg_controllen += CMSG_LEN(sizeof(struct ucred)); - - if (cmsg) diff --git a/0025-tmpfiles-quietly-ignore-ACLs-on-unsupported-filesyst.patch b/0025-tmpfiles-quietly-ignore-ACLs-on-unsupported-filesyst.patch deleted file mode 100644 index ae3a187..0000000 --- a/0025-tmpfiles-quietly-ignore-ACLs-on-unsupported-filesyst.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 5fb87c4b6582ddb0a0ab1f31300eae69ab963afb Mon Sep 17 00:00:00 2001 -From: Hans-Peter Deifel -Date: Tue, 3 Mar 2015 00:35:08 +0100 -Subject: [PATCH] tmpfiles: quietly ignore ACLs on unsupported filesystems - -A warning is printed if ACLs cannot be retrieved for any reason other -than -ENOSYS. For -ENOSYS, debug log is printed. - -(cherry picked from commit d873e8778c92014c02a9122852758b436fa95c0e) ---- - src/tmpfiles/tmpfiles.c | 36 ++++++++++++++++++++---------------- - 1 file changed, 20 insertions(+), 16 deletions(-) - -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index 88ba7e46a2..187997e1f4 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -704,6 +704,9 @@ static int path_set_acl(const char *path, acl_type_t type, acl_t acl, bool modif - int r; - _cleanup_(acl_free_charpp) char *t = NULL; - -+ /* Returns 0 for success, positive error if already warned, -+ * negative error otherwise. */ -+ - if (modify) { - r = acls_for_file(path, type, acl, &dup); - if (r < 0) -@@ -731,35 +734,36 @@ static int path_set_acl(const char *path, acl_type_t type, acl_t acl, bool modif - - r = acl_set_file(path, type, dup); - if (r < 0) -- return log_error_errno(-errno, -- "Setting %s ACL \"%s\" on %s failed: %m", -- type == ACL_TYPE_ACCESS ? "access" : "default", -- strna(t), path); -+ return -log_error_errno(errno, -+ "Setting %s ACL \"%s\" on %s failed: %m", -+ type == ACL_TYPE_ACCESS ? "access" : "default", -+ strna(t), path); -+ - return 0; - } - #endif - - static int path_set_acls(Item *item, const char *path) { -+ int r = 0; - #ifdef HAVE_ACL -- int r; -- - assert(item); - assert(path); - -- if (item->acl_access) { -+ if (item->acl_access) - r = path_set_acl(path, ACL_TYPE_ACCESS, item->acl_access, item->force); -- if (r < 0) -- return r; -- } - -- if (item->acl_default) { -+ if (r == 0 && item->acl_default) - r = path_set_acl(path, ACL_TYPE_DEFAULT, item->acl_default, item->force); -- if (r < 0) -- return r; -- } --#endif - -- return 0; -+ if (r > 0) -+ return -r; /* already warned */ -+ else if (r == -ENOTSUP) { -+ log_debug_errno(r, "ACLs not supported by file system at %s", path); -+ return 0; -+ } else if (r < 0) -+ log_error_errno(r, "ACL operation on \"%s\" failed: %m", path); -+#endif -+ return r; - } - - static int write_one_file(Item *i, const char *path) { diff --git a/0026-shared-util-assume-ac-when-sys-class-power_supply-is.patch b/0026-shared-util-assume-ac-when-sys-class-power_supply-is.patch deleted file mode 100644 index 92aa87c..0000000 --- a/0026-shared-util-assume-ac-when-sys-class-power_supply-is.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0436d5c5f4b39ba8177437fa92f082f8ef1830fb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 3 Mar 2015 19:07:28 -0500 -Subject: [PATCH] shared/util: assume ac when /sys/class/power_supply is - missing - -On s390 (at least) /sys/class/power_supply is not present. We should -treat this like if this directory was empty, and not an error. - -(cherry picked from commit 6d89003462484c8656b698e07b9cf0a337e3818e) ---- - src/shared/util.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index f24b5b4ec5..85487230a2 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -5994,7 +5994,7 @@ int on_ac_power(void) { - - d = opendir("/sys/class/power_supply"); - if (!d) -- return -errno; -+ return errno == ENOENT ? true : -errno; - - for (;;) { - struct dirent *de; diff --git a/0027-import-remove-unused-variable.patch b/0027-import-remove-unused-variable.patch deleted file mode 100644 index 45b9748..0000000 --- a/0027-import-remove-unused-variable.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 4d5f8b0cbdda7f662b85bdf18344d9b83c8789a8 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Tue, 17 Feb 2015 20:06:13 +0100 -Subject: [PATCH] import: remove unused variable - -(cherry picked from commit b89c454b37a23433f8fd6ad7b93f5a6190930aa4) ---- - src/import/import-tar.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/import/import-tar.c b/src/import/import-tar.c -index 999aa8ab5e..493252a132 100644 ---- a/src/import/import-tar.c -+++ b/src/import/import-tar.c -@@ -301,7 +301,6 @@ finish: - } - - static int tar_import_job_on_open_disk(ImportJob *j) { -- _cleanup_close_pair_ int pipefd[2] = { -1 , -1 }; - TarImport *i; - int r; - diff --git a/0028-hwdb-fix-ThinkPad-X-Tablet-special-keys.patch b/0028-hwdb-fix-ThinkPad-X-Tablet-special-keys.patch deleted file mode 100644 index fc56093..0000000 --- a/0028-hwdb-fix-ThinkPad-X-Tablet-special-keys.patch +++ /dev/null @@ -1,44 +0,0 @@ -From bfc587ff72ad50e290b3f5426edb929b225da53f Mon Sep 17 00:00:00 2001 -From: Lubomir Rintel -Date: Wed, 18 Feb 2015 21:02:01 +0100 -Subject: [PATCH] hwdb: fix ThinkPad X* Tablet special keys - -ThinkPad tablet firmware has DMI product name and version reversed: - -Handle 0x0001, DMI type 1, 27 bytes -System Information - Manufacturer: LENOVO - Product Name: 7762AS1 - Version: ThinkPad X61 Tablet - Serial Number: LKZCDH2 - UUID: 6ADBC681-4FC9-11CB-844F-B47CB9210BE2 - Wake-up Type: Power Switch - SKU Number: Not Specified - Family: ThinkPad X61 Tablet - -(cherry picked from commit 39addb81b660dd7af7d21be941d8de6497abbdbf) ---- - hwdb/60-keyboard.hwdb | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb -index 1b7d87101a..2cb976923d 100644 ---- a/hwdb/60-keyboard.hwdb -+++ b/hwdb/60-keyboard.hwdb -@@ -586,7 +586,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:pvr* - KEYBOARD_KEY_f3=f21 - - # Thinkpad X200_Tablet --keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X2*Tablet*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* - KEYBOARD_KEY_5d=menu - KEYBOARD_KEY_63=fn -@@ -596,7 +595,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* - KEYBOARD_KEY_6c=direction # rotate screen - - # ThinkPad X6 Tablet --keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* -+keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X6*Tablet* - KEYBOARD_KEY_6c=direction # rotate - KEYBOARD_KEY_68=leftmeta # toolbox - KEYBOARD_KEY_6b=esc # escape diff --git a/0029-man-add-newlines-to-the-pull-raw-example-in-machinec.patch b/0029-man-add-newlines-to-the-pull-raw-example-in-machinec.patch deleted file mode 100644 index 69d815d..0000000 --- a/0029-man-add-newlines-to-the-pull-raw-example-in-machinec.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 058bc7a903672a01981450a8c21ec03b92498aff Mon Sep 17 00:00:00 2001 -From: Benjamin Franzke -Date: Thu, 19 Feb 2015 13:10:18 +0100 -Subject: [PATCH] man: add newlines to the pull-raw example in machinectl(1) - -They were removed in commit 798d3a52 ("Reindent man pages to 2ch"). - -(cherry picked from commit ac92ced5bb41def1d90f871d6c8cfec2b03c0c7d) ---- - man/machinectl.xml | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/man/machinectl.xml b/man/machinectl.xml -index 9b07af4226..640cb8b7d6 100644 ---- a/man/machinectl.xml -+++ b/man/machinectl.xml -@@ -715,11 +715,12 @@ - Download a Fedora image, set a root password in it, start - it as service - -- # machinectl pull-raw --verify=no -- http://ftp.halifax.rwth-aachen.de/fedora/linux/releases/21/Cloud/Images/x86_64/Fedora-Cloud-Base-20141203-21.x86_64.raw.xz -- # systemd-nspawn -M Fedora-Cloud-Base-20141203-21 # passwd # -- exit # machinectl start Fedora-Cloud-Base-20141203-21 # -- machinectl login Fedora-Cloud-Base-20141203-21 -+ # machinectl pull-raw --verify=no http://ftp.halifax.rwth-aachen.de/fedora/linux/releases/21/Cloud/Images/x86_64/Fedora-Cloud-Base-20141203-21.x86_64.raw.xz -+# systemd-nspawn -M Fedora-Cloud-Base-20141203-21 -+# passwd -+# exit -+# machinectl start Fedora-Cloud-Base-20141203-21 -+# machinectl login Fedora-Cloud-Base-20141203-21 - - This downloads the specified .raw - image with verification disabled. Then a shell is opened in it diff --git a/0030-core-shared-in-deserializing-match-same-files-reache.patch b/0030-core-shared-in-deserializing-match-same-files-reache.patch deleted file mode 100644 index fb182ad..0000000 --- a/0030-core-shared-in-deserializing-match-same-files-reache.patch +++ /dev/null @@ -1,133 +0,0 @@ -From 25e6978bb35805349c69d610c775cfd3a70058f7 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Thu, 19 Feb 2015 23:12:38 +0100 -Subject: [PATCH] core, shared: in deserializing, match same files reached via - different paths - -When dbus.socket is updated like this: --ListenStream=/var/run/dbus/system_bus_socket -+ListenStream=/run/dbus/system_bus_socket -... and daemon-reload is performed, bad things happen. -During deserialization systemd does not recognize that the two paths -refer to the same named socket and replaces the socket file with a new -one. As a result, applications hang when they try talking to dbus. - -Fix this by finding a match not only when the path names are equal, but -also when they point to the same inode. -In socket_address_equal() it is necessary to move the address size -comparison into the abstract sockets branch. For path name sockets the -comparison must not be done and for other families it is redundant -(their sizes are constant and checked by socket_address_verify()). - -FIFOs and special files can also have multiple pathnames, so compare the -inodes for them as well. Note that previously the pathname checks used -streq_ptr(), but the paths cannot be NULL. - -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1186018 -(cherry picked from commit c78e47a61fa8d9a21fece01c83e4c26ce0938d27) ---- - src/core/socket.c | 6 +++--- - src/shared/path-util.c | 4 ++++ - src/shared/path-util.h | 1 + - src/shared/socket-util.c | 10 ++++------ - 4 files changed, 12 insertions(+), 9 deletions(-) - -diff --git a/src/core/socket.c b/src/core/socket.c -index 48c43a2880..88aae4815b 100644 ---- a/src/core/socket.c -+++ b/src/core/socket.c -@@ -2100,7 +2100,7 @@ static int socket_deserialize_item(Unit *u, const char *key, const char *value, - - LIST_FOREACH(port, p, s->ports) - if (p->type == SOCKET_FIFO && -- streq_ptr(p->path, value+skip)) -+ path_equal_or_files_same(p->path, value+skip)) - break; - - if (p) { -@@ -2119,7 +2119,7 @@ static int socket_deserialize_item(Unit *u, const char *key, const char *value, - - LIST_FOREACH(port, p, s->ports) - if (p->type == SOCKET_SPECIAL && -- streq_ptr(p->path, value+skip)) -+ path_equal_or_files_same(p->path, value+skip)) - break; - - if (p) { -@@ -2138,7 +2138,7 @@ static int socket_deserialize_item(Unit *u, const char *key, const char *value, - - LIST_FOREACH(port, p, s->ports) - if (p->type == SOCKET_MQUEUE && -- streq_ptr(p->path, value+skip)) -+ streq(p->path, value+skip)) - break; - - if (p) { -diff --git a/src/shared/path-util.c b/src/shared/path-util.c -index b9db7f1047..70bc1caa2a 100644 ---- a/src/shared/path-util.c -+++ b/src/shared/path-util.c -@@ -436,6 +436,10 @@ bool path_equal(const char *a, const char *b) { - } - } - -+bool path_equal_or_files_same(const char *a, const char *b) { -+ return path_equal(a, b) || files_same(a, b) > 0; -+} -+ - char* path_join(const char *root, const char *path, const char *rest) { - assert(path); - -diff --git a/src/shared/path-util.h b/src/shared/path-util.h -index bd0d32473f..bcf116ed3d 100644 ---- a/src/shared/path-util.h -+++ b/src/shared/path-util.h -@@ -45,6 +45,7 @@ int path_make_relative(const char *from_dir, const char *to_path, char **_r); - char* path_kill_slashes(char *path); - char* path_startswith(const char *path, const char *prefix) _pure_; - bool path_equal(const char *a, const char *b) _pure_; -+bool path_equal_or_files_same(const char *a, const char *b); - char* path_join(const char *root, const char *path, const char *rest); - - char** path_strv_make_absolute_cwd(char **l); -diff --git a/src/shared/socket-util.c b/src/shared/socket-util.c -index c6f64876be..c278d6f9d4 100644 ---- a/src/shared/socket-util.c -+++ b/src/shared/socket-util.c -@@ -325,9 +325,6 @@ bool socket_address_equal(const SocketAddress *a, const SocketAddress *b) { - if (a->type != b->type) - return false; - -- if (a->size != b->size) -- return false; -- - if (socket_address_family(a) != socket_address_family(b)) - return false; - -@@ -352,14 +349,16 @@ bool socket_address_equal(const SocketAddress *a, const SocketAddress *b) { - break; - - case AF_UNIX: -- - if ((a->sockaddr.un.sun_path[0] == 0) != (b->sockaddr.un.sun_path[0] == 0)) - return false; - - if (a->sockaddr.un.sun_path[0]) { -- if (!strneq(a->sockaddr.un.sun_path, b->sockaddr.un.sun_path, sizeof(a->sockaddr.un.sun_path))) -+ if (!path_equal_or_files_same(a->sockaddr.un.sun_path, b->sockaddr.un.sun_path)) - return false; - } else { -+ if (a->size != b->size) -+ return false; -+ - if (memcmp(a->sockaddr.un.sun_path, b->sockaddr.un.sun_path, a->size) != 0) - return false; - } -@@ -367,7 +366,6 @@ bool socket_address_equal(const SocketAddress *a, const SocketAddress *b) { - break; - - case AF_NETLINK: -- - if (a->protocol != b->protocol) - return false; - diff --git a/0031-shared-use-SocketAddress-in-socket_address_matches_f.patch b/0031-shared-use-SocketAddress-in-socket_address_matches_f.patch deleted file mode 100644 index a27e783..0000000 --- a/0031-shared-use-SocketAddress-in-socket_address_matches_f.patch +++ /dev/null @@ -1,83 +0,0 @@ -From c3ddd973109320c7f8f06d07438bb9b1f7876866 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Feb 2015 02:04:05 +0100 -Subject: [PATCH] shared: use SocketAddress in socket_address_matches_fd() - -Cleanup. No behavior change. - -(cherry picked from commit dbafedacba3ee77098e932222ae7840e7b4040fc) ---- - src/shared/socket-util.c | 36 ++++++++++++++++++------------------ - 1 file changed, 18 insertions(+), 18 deletions(-) - -diff --git a/src/shared/socket-util.c b/src/shared/socket-util.c -index c278d6f9d4..c31f60ec7e 100644 ---- a/src/shared/socket-util.c -+++ b/src/shared/socket-util.c -@@ -435,48 +435,48 @@ bool socket_ipv6_is_supported(void) { - } - - bool socket_address_matches_fd(const SocketAddress *a, int fd) { -- union sockaddr_union sa; -- socklen_t salen = sizeof(sa), solen; -- int protocol, type; -+ SocketAddress b; -+ socklen_t solen; - - assert(a); - assert(fd >= 0); - -- if (getsockname(fd, &sa.sa, &salen) < 0) -+ b.size = sizeof(b.sockaddr); -+ if (getsockname(fd, &b.sockaddr.sa, &b.size) < 0) - return false; - -- if (sa.sa.sa_family != a->sockaddr.sa.sa_family) -+ if (b.sockaddr.sa.sa_family != a->sockaddr.sa.sa_family) - return false; - -- solen = sizeof(type); -- if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &type, &solen) < 0) -+ solen = sizeof(b.type); -+ if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &b.type, &solen) < 0) - return false; - -- if (type != a->type) -+ if (b.type != a->type) - return false; - - if (a->protocol != 0) { -- solen = sizeof(protocol); -- if (getsockopt(fd, SOL_SOCKET, SO_PROTOCOL, &protocol, &solen) < 0) -+ solen = sizeof(b.protocol); -+ if (getsockopt(fd, SOL_SOCKET, SO_PROTOCOL, &b.protocol, &solen) < 0) - return false; - -- if (protocol != a->protocol) -+ if (b.protocol != a->protocol) - return false; - } - -- switch (sa.sa.sa_family) { -+ switch (b.sockaddr.sa.sa_family) { - - case AF_INET: -- return sa.in.sin_port == a->sockaddr.in.sin_port && -- sa.in.sin_addr.s_addr == a->sockaddr.in.sin_addr.s_addr; -+ return b.sockaddr.in.sin_port == a->sockaddr.in.sin_port && -+ b.sockaddr.in.sin_addr.s_addr == a->sockaddr.in.sin_addr.s_addr; - - case AF_INET6: -- return sa.in6.sin6_port == a->sockaddr.in6.sin6_port && -- memcmp(&sa.in6.sin6_addr, &a->sockaddr.in6.sin6_addr, sizeof(struct in6_addr)) == 0; -+ return b.sockaddr.in6.sin6_port == a->sockaddr.in6.sin6_port && -+ memcmp(&b.sockaddr.in6.sin6_addr, &a->sockaddr.in6.sin6_addr, sizeof(struct in6_addr)) == 0; - - case AF_UNIX: -- return salen == a->size && -- memcmp(sa.un.sun_path, a->sockaddr.un.sun_path, salen - offsetof(struct sockaddr_un, sun_path)) == 0; -+ return b.sockaddr.size == a->size && -+ memcmp(b.sockaddr.un.sun_path, a->sockaddr.un.sun_path, b.size - offsetof(struct sockaddr_un, sun_path)) == 0; - - } - diff --git a/0032-shared-avoid-semi-duplicating-socket_address_equal.patch b/0032-shared-avoid-semi-duplicating-socket_address_equal.patch deleted file mode 100644 index d89f105..0000000 --- a/0032-shared-avoid-semi-duplicating-socket_address_equal.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 1d23a6c379b429aaf257994d549a93d766b4cce0 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Feb 2015 02:13:03 +0100 -Subject: [PATCH] shared: avoid semi-duplicating socket_address_equal() - -Just call socket_address_equal() from socket_address_matches_fd() -instead of implementing similar comparing of addresses. - -(cherry picked from commit 02233928a502e46fc125118dba7234ba3e48dc15) ---- - src/shared/socket-util.c | 18 +----------------- - 1 file changed, 1 insertion(+), 17 deletions(-) - -diff --git a/src/shared/socket-util.c b/src/shared/socket-util.c -index c31f60ec7e..deecce8a80 100644 ---- a/src/shared/socket-util.c -+++ b/src/shared/socket-util.c -@@ -464,23 +464,7 @@ bool socket_address_matches_fd(const SocketAddress *a, int fd) { - return false; - } - -- switch (b.sockaddr.sa.sa_family) { -- -- case AF_INET: -- return b.sockaddr.in.sin_port == a->sockaddr.in.sin_port && -- b.sockaddr.in.sin_addr.s_addr == a->sockaddr.in.sin_addr.s_addr; -- -- case AF_INET6: -- return b.sockaddr.in6.sin6_port == a->sockaddr.in6.sin6_port && -- memcmp(&b.sockaddr.in6.sin6_addr, &a->sockaddr.in6.sin6_addr, sizeof(struct in6_addr)) == 0; -- -- case AF_UNIX: -- return b.sockaddr.size == a->size && -- memcmp(b.sockaddr.un.sun_path, a->sockaddr.un.sun_path, b.size - offsetof(struct sockaddr_un, sun_path)) == 0; -- -- } -- -- return false; -+ return socket_address_equal(a, &b); - } - - int sockaddr_pretty(const struct sockaddr *_sa, socklen_t salen, bool translate_ipv6, char **ret) { diff --git a/0033-shared-handle-unnamed-sockets-in-socket_address_equa.patch b/0033-shared-handle-unnamed-sockets-in-socket_address_equa.patch deleted file mode 100644 index 8b63403..0000000 --- a/0033-shared-handle-unnamed-sockets-in-socket_address_equa.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 04691e6f814b76ea497d8189b9b77d4c0feff794 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Fri, 20 Feb 2015 02:25:16 +0100 -Subject: [PATCH] shared: handle unnamed sockets in socket_address_equal() - -Make sure we don't inspect sun_path of unnamed sockets. -Since we cannot know if two unnamed sockets' adresses refer to the same -socket, just return false. - -(cherry picked from commit 710708a54ccc48e168ad7d4cd401645ef9e2eb14) ---- - src/shared/socket-util.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/shared/socket-util.c b/src/shared/socket-util.c -index deecce8a80..a4e26b1d8c 100644 ---- a/src/shared/socket-util.c -+++ b/src/shared/socket-util.c -@@ -349,6 +349,10 @@ bool socket_address_equal(const SocketAddress *a, const SocketAddress *b) { - break; - - case AF_UNIX: -+ if (a->size <= offsetof(struct sockaddr_un, sun_path) || -+ b->size <= offsetof(struct sockaddr_un, sun_path)) -+ return false; -+ - if ((a->sockaddr.un.sun_path[0] == 0) != (b->sockaddr.un.sun_path[0] == 0)) - return false; - diff --git a/0034-man-make-bootup-graph-consistent.patch b/0034-man-make-bootup-graph-consistent.patch deleted file mode 100644 index 7e4b3c5..0000000 --- a/0034-man-make-bootup-graph-consistent.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 1295853b39d330c6e7c6ea431a8fc7ce8be801b3 Mon Sep 17 00:00:00 2001 -From: Chris Morin -Date: Wed, 4 Feb 2015 14:54:34 -0500 -Subject: [PATCH] man: make bootup graph consistent - -(cherry picked from commit b44787bd437f4051660272b37bd6f75392f17931) ---- - man/bootup.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/man/bootup.xml b/man/bootup.xml -index d97d550236..b92057af29 100644 ---- a/man/bootup.xml -+++ b/man/bootup.xml -@@ -134,7 +134,7 @@ - v v | v rescue.target - timers.target paths.target | sockets.target - | | | | -- v |_________________ | ___________________/ -+ v \_________________ | ___________________/ - \|/ - v - basic.target diff --git a/0035-nspawn-fix-whitespace-and-typo-in-partition-table-bl.patch b/0035-nspawn-fix-whitespace-and-typo-in-partition-table-bl.patch deleted file mode 100644 index f738f52..0000000 --- a/0035-nspawn-fix-whitespace-and-typo-in-partition-table-bl.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 8b92bdb0bd91a1614c0132dc31a35ee6193c26da Mon Sep 17 00:00:00 2001 -From: Jan Synacek -Date: Mon, 23 Feb 2015 15:22:40 +0100 -Subject: [PATCH] nspawn: fix whitespace and typo in partition table blurb - -(cherry picked from commit 4aab5d0cbd979b2cccb88534f118bceaa86466d8) ---- - src/nspawn/nspawn.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index fb672510b4..7724df96bd 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -2676,7 +2676,7 @@ static int setup_image(char **device_path, int *loop_nr) { - - #define PARTITION_TABLE_BLURB \ - "Note that the disk image needs to either contain only a single MBR partition of\n" \ -- "type 0x83 that is marked bootable, or a sinlge GPT partition of type" \ -+ "type 0x83 that is marked bootable, or a single GPT partition of type " \ - "0FC63DAF-8483-4772-8E79-3D69D8477DE4 or follow\n" \ - " http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/\n" \ - "to be bootable with systemd-nspawn." diff --git a/0036-man-explain-time-units-in-tmpfiles.patch b/0036-man-explain-time-units-in-tmpfiles.patch deleted file mode 100644 index cdc9a41..0000000 --- a/0036-man-explain-time-units-in-tmpfiles.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 9b09a6df372e9eec7296c42239c8eef8f6edbdc8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 23 Feb 2015 18:59:17 -0500 -Subject: [PATCH] man: explain time units in tmpfiles - -https://bugzilla.redhat.com/show_bug.cgi?id=1195294 -(cherry picked from commit 00c53f4283ca41878a84b370840a84760b00d46e) ---- - man/tmpfiles.d.xml | 29 ++++++++++++++--------------- - 1 file changed, 14 insertions(+), 15 deletions(-) - -diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml -index 8815bf9970..4bd0fcf751 100644 ---- a/man/tmpfiles.d.xml -+++ b/man/tmpfiles.d.xml -@@ -443,23 +443,22 @@ - delete when cleaning. If a file or directory is older than the - current time minus the age field, it is deleted. The field - format is a series of integers each followed by one of the -- following postfixes for the respective time units: -- -- -- -- s -- min -- h -- d -- w -- ms -- m -- us -- -+ following postfixes for the respective time units: -+ s, -+ m or min, -+ h, -+ d, -+ w, -+ ms, -+ us, -+ respectively meaning seconds, minutes, hours, days, weeks, -+ milliseconds, and microseconds. Full names of the time units can -+ be used too. -+ - - If multiple integers and units are specified, the time -- values are summed up. If an integer is given without a unit, -- s is assumed. -+ values are summed. If an integer is given without a unit, -+ s is assumed. - - - When the age is set to zero, the files are cleaned diff --git a/0037-systemctl-check-validity-of-PID-we-received.patch b/0037-systemctl-check-validity-of-PID-we-received.patch deleted file mode 100644 index 7ae89c3..0000000 --- a/0037-systemctl-check-validity-of-PID-we-received.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 33ff9ced04684fe88e988fe06573ad73c8d9c20a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 7 Feb 2015 11:16:04 -0500 -Subject: [PATCH] systemctl: check validity of PID we received - -(cherry picked from commit d028e01814a405e83c400c60545785d35dba2a17) ---- - src/systemctl/systemctl.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 6b93ec8446..3da4d3d4f1 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -2881,6 +2881,9 @@ static int check_inhibitors(sd_bus *bus, enum action a) { - if (!sv) - return log_oom(); - -+ if ((pid_t) pid < 0) -+ return log_error_errno(ERANGE, "Bad PID %"PRIu32": %m", pid); -+ - if (!strv_contains(sv, - a == ACTION_HALT || - a == ACTION_POWEROFF || -@@ -2892,7 +2895,7 @@ static int check_inhibitors(sd_bus *bus, enum action a) { - user = uid_to_name(uid); - - log_warning("Operation inhibited by \"%s\" (PID "PID_FMT" \"%s\", user %s), reason is \"%s\".", -- who, pid, strna(comm), strna(user), why); -+ who, (pid_t) pid, strna(comm), strna(user), why); - - c++; - } diff --git a/0038-systemctl-support-auditd.service-better.patch b/0038-systemctl-support-auditd.service-better.patch deleted file mode 100644 index 8e6c1de..0000000 --- a/0038-systemctl-support-auditd.service-better.patch +++ /dev/null @@ -1,85 +0,0 @@ -From bddb25b6d9f5b1cf7f7219b3f23e3668f9563d6e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 7 Feb 2015 11:35:37 -0500 -Subject: [PATCH] systemctl: support auditd.service better - -We would print the filename header before trying to open the file. But since -the header was printed to stdout, and the error to stderr, the error would appear -on the terminal before the header. It is cleaner to open the file first, then -and only then print the header. - -Also exit on first error. We shouldn't report success if we were unable to open -a file. - -(cherry picked from commit 8527b07be1c5211b50a1a6496585952857a25c73) ---- - src/systemctl/systemctl.c | 46 +++++++++++++++++++++++----------------------- - 1 file changed, 23 insertions(+), 23 deletions(-) - -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 3da4d3d4f1..4ec0cff21d 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -4555,6 +4555,23 @@ static int init_home_and_lookup_paths(char **user_home, char **user_runtime, Loo - return 0; - } - -+static int cat_file(const char *filename, bool newline) { -+ _cleanup_close_ int fd; -+ -+ fd = open(filename, O_RDONLY|O_CLOEXEC|O_NOCTTY); -+ if (fd < 0) -+ return -errno; -+ -+ printf("%s%s# %s%s\n", -+ newline ? "\n" : "", -+ ansi_highlight_blue(), -+ filename, -+ ansi_highlight_off()); -+ fflush(stdout); -+ -+ return copy_bytes(fd, STDOUT_FILENO, (off_t) -1, false); -+} -+ - static int cat(sd_bus *bus, char **args) { - _cleanup_free_ char *user_home = NULL; - _cleanup_free_ char *user_runtime = NULL; -@@ -4600,32 +4617,15 @@ static int cat(sd_bus *bus, char **args) { - puts(""); - - if (fragment_path) { -- printf("%s# %s%s\n", -- ansi_highlight_blue(), -- fragment_path, -- ansi_highlight_off()); -- fflush(stdout); -- -- r = copy_file_fd(fragment_path, STDOUT_FILENO, false); -- if (r < 0) { -- log_warning_errno(r, "Failed to cat %s: %m", fragment_path); -- continue; -- } -+ r = cat_file(fragment_path, false); -+ if (r < 0) -+ return log_warning_errno(r, "Failed to cat %s: %m", fragment_path); - } - - STRV_FOREACH(path, dropin_paths) { -- printf("%s%s# %s%s\n", -- isempty(fragment_path) && path == dropin_paths ? "" : "\n", -- ansi_highlight_blue(), -- *path, -- ansi_highlight_off()); -- fflush(stdout); -- -- r = copy_file_fd(*path, STDOUT_FILENO, false); -- if (r < 0) { -- log_warning_errno(r, "Failed to cat %s: %m", *path); -- continue; -- } -+ r = cat_file(*path, path == dropin_paths); -+ if (r < 0) -+ return log_warning_errno(r, "Failed to cat %s: %m", *path); - } - } - diff --git a/0039-shared-unit-name-fix-gcc5-warning.patch b/0039-shared-unit-name-fix-gcc5-warning.patch deleted file mode 100644 index 6498a89..0000000 --- a/0039-shared-unit-name-fix-gcc5-warning.patch +++ /dev/null @@ -1,31 +0,0 @@ -From c52febcc0314c85d5a0cefc95d7f9ee0d7eb7081 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Tue, 24 Feb 2015 16:18:43 +0100 -Subject: [PATCH] shared/unit-name: fix gcc5 warning - -Fix the following gcc5 warning: - - CC src/shared/libsystemd_shared_la-unit-name.lo -src/shared/unit-name.c: In function 'unit_name_is_valid': -src/shared/unit-name.c:102:34: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] - if (!template_ok == TEMPLATE_VALID && at+1 == e) - ^ - -(cherry picked from commit f9bf3e260c480f7b660bec3f78a13f52a46ec34d) ---- - src/shared/unit-name.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/unit-name.c b/src/shared/unit-name.c -index 21b66913c9..f728af4a81 100644 ---- a/src/shared/unit-name.c -+++ b/src/shared/unit-name.c -@@ -100,7 +100,7 @@ bool unit_name_is_valid(const char *n, enum template_valid template_ok) { - if (at == n) - return false; - -- if (!template_ok == TEMPLATE_VALID && at+1 == e) -+ if (template_ok != TEMPLATE_VALID && at+1 == e) - return false; - } - diff --git a/0040-test-hashmap-fix-gcc5-warning.patch b/0040-test-hashmap-fix-gcc5-warning.patch deleted file mode 100644 index a6c2019..0000000 --- a/0040-test-hashmap-fix-gcc5-warning.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 6af0a4ba45b63072df70ca4d6a8fc5790c66e149 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Tue, 24 Feb 2015 16:24:14 +0100 -Subject: [PATCH] test-hashmap: fix gcc5 warning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -gcc5 spits out a warning about test-hashmap.c: - - CC src/test/test-hashmap.o -src/test/test-hashmap.c: In function ‘test_string_compare_func’: -src/test/test-hashmap.c:76:79: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] - -(cherry picked from commit 4b3eff61640672bf0b19cb8cdd88ce5e84dcda1c) ---- - src/test/test-hashmap.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/test/test-hashmap.c b/src/test/test-hashmap.c -index 6900da9e89..351563b967 100644 ---- a/src/test/test-hashmap.c -+++ b/src/test/test-hashmap.c -@@ -75,7 +75,7 @@ static void test_trivial_compare_func(void) { - } - - static void test_string_compare_func(void) { -- assert_se(!string_compare_func("fred", "wilma") == 0); -+ assert_se(string_compare_func("fred", "wilma") != 0); - assert_se(string_compare_func("fred", "fred") == 0); - } - diff --git a/0041-shared-fix-wrong-assertion-in-barrier_set_role.patch b/0041-shared-fix-wrong-assertion-in-barrier_set_role.patch deleted file mode 100644 index 69e63da..0000000 --- a/0041-shared-fix-wrong-assertion-in-barrier_set_role.patch +++ /dev/null @@ -1,29 +0,0 @@ -From cf0e4940eadeb4636a958e8d7bc243dd03120eb8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Fri, 20 Feb 2015 15:14:56 -0300 -Subject: [PATCH] shared: fix wrong assertion in barrier_set_role() - - assert(b->pipe[0] >= 0 && b->pipe[0] >= 0); - -Test the same condition twice, pretty sure we mean - - assert(b->pipe[0] >= 0 && b->pipe[1] >= 0); - -(cherry picked from commit 3f7f1fad7621f584d9ce024abb313ecbc9bd0e62) ---- - src/shared/barrier.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/barrier.c b/src/shared/barrier.c -index f65363a67b..b7dca75097 100644 ---- a/src/shared/barrier.c -+++ b/src/shared/barrier.c -@@ -178,7 +178,7 @@ void barrier_set_role(Barrier *b, unsigned int role) { - assert(b); - assert(role == BARRIER_PARENT || role == BARRIER_CHILD); - /* make sure this is only called once */ -- assert(b->pipe[1] >= 0 && b->pipe[1] >= 0); -+ assert(b->pipe[0] >= 0 && b->pipe[1] >= 0); - - if (role == BARRIER_PARENT) - b->pipe[1] = safe_close(b->pipe[1]); diff --git a/0042-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0042-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 0ac85f6..0000000 --- a/0042-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,60 +0,0 @@ -From d150bc380c90b7ec9fda50f0124e75b12e489ef1 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Wed, 25 Feb 2015 07:27:49 +0100 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - -(cherry picked from commit 3cabeab1197d3e45f16f514f5a396e0fb311e867) ---- - hwdb/20-bluetooth-vendor-product.hwdb | 42 +++++++++++++++++++++++++++++++++++ - 1 file changed, 42 insertions(+) - -diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb -index fb789fd495..4fd951a584 100644 ---- a/hwdb/20-bluetooth-vendor-product.hwdb -+++ b/hwdb/20-bluetooth-vendor-product.hwdb -@@ -1430,3 +1430,45 @@ bluetooth:v01D9* - - bluetooth:v01DA* - ID_VENDOR_FROM_DATABASE=Logitech International SA -+ -+bluetooth:v01DB* -+ ID_VENDOR_FROM_DATABASE=Innblue Consulting -+ -+bluetooth:v01DC* -+ ID_VENDOR_FROM_DATABASE=iParking Ltd. -+ -+bluetooth:v01DD* -+ ID_VENDOR_FROM_DATABASE=Koninklijke Philips Electronics N.V. -+ -+bluetooth:v01DE* -+ ID_VENDOR_FROM_DATABASE=Minelab Electronics Pty Limited -+ -+bluetooth:v01DF* -+ ID_VENDOR_FROM_DATABASE=Bison Group Ltd. -+ -+bluetooth:v01E0* -+ ID_VENDOR_FROM_DATABASE=Widex A/S -+ -+bluetooth:v01E1* -+ ID_VENDOR_FROM_DATABASE=Jolla Ltd -+ -+bluetooth:v01E2* -+ ID_VENDOR_FROM_DATABASE=Lectronix, Inc. -+ -+bluetooth:v01E3* -+ ID_VENDOR_FROM_DATABASE=Caterpillar Inc -+ -+bluetooth:v01E4* -+ ID_VENDOR_FROM_DATABASE=Freedom Innovations -+ -+bluetooth:v01E5* -+ ID_VENDOR_FROM_DATABASE=Dynamic Devices Ltd -+ -+bluetooth:v01E6* -+ ID_VENDOR_FROM_DATABASE=Technology Solutions (UK) Ltd -+ -+bluetooth:v01E7* -+ ID_VENDOR_FROM_DATABASE=IPS Group Inc. -+ -+bluetooth:v01E8* -+ ID_VENDOR_FROM_DATABASE=STIR diff --git a/0043-journal-make-skipping-of-exhausted-journal-files-eff.patch b/0043-journal-make-skipping-of-exhausted-journal-files-eff.patch deleted file mode 100644 index bf4bc28..0000000 --- a/0043-journal-make-skipping-of-exhausted-journal-files-eff.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 55c5c56d07d4e1d402ee33dbcf4a04aa20c4279c Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Tue, 24 Feb 2015 19:45:17 +0100 -Subject: [PATCH] journal: make skipping of exhausted journal files effective - again - -Commit 668c965af "journal: skipping of exhausted journal files is bad if -direction changed" fixed a correctness issue, but it also significantly -limited the cases where the optimization that skips exhausted journal -files could apply. -As a result, some journalctl queries are much slower in v219 than in v218. -(e.g. queries where a "--since" cutoff should have quickly eliminated -older journal files from consideration, but didn't.) - -If already in the initial iteration find_location_with_matches() finds -no entry, the journal file's location is not updated. This is fine, -except that: - - We must update at least f->last_direction. The optimization relies on - it. Let's separate that from journal_file_save_location() and update - it immediately after the direction checks. - - The optimization was conditional on "f->current_offset > 0", but it - would always be 0 in this scenario. This check is unnecessary for the - optimization. - -(cherry picked from commit 950c07d421c04e5aae99973479f4f13131fb45e1) ---- - src/journal/journal-file.c | 3 +-- - src/journal/journal-file.h | 2 +- - src/journal/sd-journal.c | 24 +++++++++++++++--------- - 3 files changed, 17 insertions(+), 12 deletions(-) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 0f28718b0e..24c49b916a 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -2014,8 +2014,7 @@ void journal_file_reset_location(JournalFile *f) { - f->current_xor_hash = 0; - } - --void journal_file_save_location(JournalFile *f, direction_t direction, Object *o, uint64_t offset) { -- f->last_direction = direction; -+void journal_file_save_location(JournalFile *f, Object *o, uint64_t offset) { - f->location_type = LOCATION_SEEK; - f->current_offset = offset; - f->current_seqnum = le64toh(o->entry.seqnum); -diff --git a/src/journal/journal-file.h b/src/journal/journal-file.h -index 2526e14d65..403c8f760c 100644 ---- a/src/journal/journal-file.h -+++ b/src/journal/journal-file.h -@@ -199,7 +199,7 @@ int journal_file_find_field_object(JournalFile *f, const void *field, uint64_t s - int journal_file_find_field_object_with_hash(JournalFile *f, const void *field, uint64_t size, uint64_t hash, Object **ret, uint64_t *offset); - - void journal_file_reset_location(JournalFile *f); --void journal_file_save_location(JournalFile *f, direction_t direction, Object *o, uint64_t offset); -+void journal_file_save_location(JournalFile *f, Object *o, uint64_t offset); - int journal_file_compare_locations(JournalFile *af, JournalFile *bf); - int journal_file_next_entry(JournalFile *f, uint64_t p, direction_t direction, Object **ret, uint64_t *offset); - -diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c -index 94891cdf35..9b57e5945d 100644 ---- a/src/journal/sd-journal.c -+++ b/src/journal/sd-journal.c -@@ -723,13 +723,17 @@ static int next_beyond_location(sd_journal *j, JournalFile *f, direction_t direc - assert(j); - assert(f); - -- if (f->last_direction == direction && f->current_offset > 0) { -- /* If we hit EOF before, recheck if any new entries arrived. */ -- n_entries = le64toh(f->header->n_entries); -- if (f->location_type == LOCATION_TAIL && n_entries == f->last_n_entries) -- return 0; -- f->last_n_entries = n_entries; -+ n_entries = le64toh(f->header->n_entries); -+ -+ /* If we hit EOF before, we don't need to look into this file again -+ * unless direction changed or new entries appeared. */ -+ if (f->last_direction == direction && f->location_type == LOCATION_TAIL && -+ n_entries == f->last_n_entries) -+ return 0; - -+ f->last_n_entries = n_entries; -+ -+ if (f->last_direction == direction && f->current_offset > 0) { - /* LOCATION_SEEK here means we did the work in a previous - * iteration and the current location already points to a - * candidate entry. */ -@@ -738,14 +742,16 @@ static int next_beyond_location(sd_journal *j, JournalFile *f, direction_t direc - if (r <= 0) - return r; - -- journal_file_save_location(f, direction, c, cp); -+ journal_file_save_location(f, c, cp); - } - } else { -+ f->last_direction = direction; -+ - r = find_location_with_matches(j, f, direction, &c, &cp); - if (r <= 0) - return r; - -- journal_file_save_location(f, direction, c, cp); -+ journal_file_save_location(f, c, cp); - } - - /* OK, we found the spot, now let's advance until an entry -@@ -773,7 +779,7 @@ static int next_beyond_location(sd_journal *j, JournalFile *f, direction_t direc - if (r <= 0) - return r; - -- journal_file_save_location(f, direction, c, cp); -+ journal_file_save_location(f, c, cp); - } - } - diff --git a/0044-hwdb-add-sdio-identifiers-for-Broadcom-WLAN-cards.patch b/0044-hwdb-add-sdio-identifiers-for-Broadcom-WLAN-cards.patch deleted file mode 100644 index 900c624..0000000 --- a/0044-hwdb-add-sdio-identifiers-for-Broadcom-WLAN-cards.patch +++ /dev/null @@ -1,34 +0,0 @@ -From c10e229f8222b92117ba38045ddb3e4d7951244a Mon Sep 17 00:00:00 2001 -From: Arend van Spriel -Date: Wed, 25 Feb 2015 11:02:39 +0100 -Subject: [PATCH] hwdb: add sdio identifiers for Broadcom WLAN cards - -This patch adds the sdio identifiers known to be supported by -the brcmfmac open-source driver. - -(cherry picked from commit 0c591b6c92ded66bea5ed615796b0f8c1cd6b422) ---- - hwdb/sdio.ids | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/hwdb/sdio.ids b/hwdb/sdio.ids -index 8a4c7136d2..d61729744e 100644 ---- a/hwdb/sdio.ids -+++ b/hwdb/sdio.ids -@@ -34,6 +34,16 @@ - 5347 GDM72xx WiMAX - 02d0 Broadcom Corp. - 044b Nintendo Wii WLAN daughter card -+ a887 BCM43143 WLAN card -+ 4324 BCM43241 WLAN card -+ 4329 BCM4329 WLAN card -+ 4330 BCM4330 WLAN card -+ 4334 BCM4334 WLAN card -+ a94c BCM43340 WLAN card -+ a94d BCM43341 WLAN card -+ 4335 BCM4335/BCM4339 WLAN card -+ a962 BCM43362 WLAN card -+ 4354 BCM4354 WLAN card - 02db SyChip Inc. - 0002 Pegasus WLAN SDIO Card (6060SD) - 02df Marvell Technology Group Ltd. diff --git a/0045-shared-condition-fix-gcc5-warning.patch b/0045-shared-condition-fix-gcc5-warning.patch deleted file mode 100644 index ec6caaa..0000000 --- a/0045-shared-condition-fix-gcc5-warning.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 99ed674eb8f9bdaa45d937379c2f00ea684a7fc9 Mon Sep 17 00:00:00 2001 -From: Daniel Mack -Date: Fri, 27 Feb 2015 20:05:26 +0100 -Subject: [PATCH] shared/condition: fix gcc5 warning -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixes the warning below. - -src/shared/condition.c: In function ‘condition_new’: -src/shared/condition.c:47:27: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] - assert(!parameter == (type == CONDITION_NULL)); - ^ -src/shared/macro.h:42:44: note: in definition of macro ‘_unlikely_’ - #define _unlikely_(x) (__builtin_expect(!!(x),0)) - ^ -src/shared/macro.h:226:22: note: in expansion of macro ‘assert_se’ - #define assert(expr) assert_se(expr) - ^ -src/shared/condition.c:47:9: note: in expansion of macro ‘assert’ - assert(!parameter == (type == CONDITION_NULL)); - ^ - -(cherry picked from commit 8a9c6071cb7467170010f0287672c987981bdf9c) ---- - src/shared/condition.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/condition.c b/src/shared/condition.c -index da7560f05f..796cc520d7 100644 ---- a/src/shared/condition.c -+++ b/src/shared/condition.c -@@ -46,7 +46,7 @@ Condition* condition_new(ConditionType type, const char *parameter, bool trigger - - assert(type >= 0); - assert(type < _CONDITION_TYPE_MAX); -- assert(!parameter == (type == CONDITION_NULL)); -+ assert((!parameter) == (type == CONDITION_NULL)); - - c = new0(Condition, 1); - if (!c) diff --git a/0046-man-correct-description-of-systemd-user-sessions.patch b/0046-man-correct-description-of-systemd-user-sessions.patch deleted file mode 100644 index 8ec2fc4..0000000 --- a/0046-man-correct-description-of-systemd-user-sessions.patch +++ /dev/null @@ -1,34 +0,0 @@ -From dd416d4c05eb40bc80380978779cfbc67fab7d35 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 27 Feb 2015 17:26:42 -0500 -Subject: [PATCH] man: correct description of systemd-user-sessions - -That part of functionality was removed in 7fb3ee51c1b377. - -(cherry picked from commit 3849a2ac8198fedd25e66fe780821fa96eb6396d) ---- - man/systemd-user-sessions.service.xml | 9 ++++----- - 1 file changed, 4 insertions(+), 5 deletions(-) - -diff --git a/man/systemd-user-sessions.service.xml b/man/systemd-user-sessions.service.xml -index 9d796b1ae1..e75ef11c4e 100644 ---- a/man/systemd-user-sessions.service.xml -+++ b/man/systemd-user-sessions.service.xml -@@ -55,13 +55,12 @@ - Description - - systemd-user-sessions.service is a -- service that controls user logins. After basic system -- initialization is complete it removes -+ service that controls user logins through -+ pam_nologin8. -+ After basic system initialization is complete it removes - /run/nologin, thus permitting logins. Before - system shutdown it creates /run/nologin, thus -- prohibiting further logins. At the same time it also kills all -- user processes, so that system shutdown may proceed without any -- remaining user processes around. -+ prohibiting further logins. - - - diff --git a/0047-build-sys-allow-lto-and-FORTIFY_SOURCE-with-O-sz.patch b/0047-build-sys-allow-lto-and-FORTIFY_SOURCE-with-O-sz.patch deleted file mode 100644 index bf0b629..0000000 --- a/0047-build-sys-allow-lto-and-FORTIFY_SOURCE-with-O-sz.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 86d07870ff23fb3a0d13760d31ff23409ef19523 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 1 Mar 2015 22:46:43 -0500 -Subject: [PATCH] build-sys: allow lto and FORTIFY_SOURCE with -O[sz] - -https://bugs.freedesktop.org/show_bug.cgi?id=89382 -(cherry picked from commit 0289f2fb2a64df53b589b771f69c43126b029590) ---- - configure.ac | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 97a29d63fd..6bc347423b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -208,13 +208,13 @@ AS_CASE([$CC], [*clang*], - -Wno-gnu-variable-sized-type-not-at-end \ - ])]) - --AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], -+AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], - [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ - -flto -ffat-lto-objects])], - [AC_MSG_RESULT([skipping -flto, optimization not enabled])]) - AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags") - --AS_CASE([$CFLAGS], [*-O[[12345\ ]]*], -+AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], - [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\ - -Wp,-D_FORTIFY_SOURCE=2])], - [AC_MSG_RESULT([skipping -D_FORTIFY_SOURCE, optimization not enabled])]) diff --git a/0048-man-fix-typo.patch b/0048-man-fix-typo.patch deleted file mode 100644 index 0781faf..0000000 --- a/0048-man-fix-typo.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 33ffe19b7c01fc1f4d32c629d4c6462776d84644 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 3 Mar 2015 00:11:51 +0100 -Subject: [PATCH] man: fix typo - -(cherry picked from commit a68188812290cb9ec9f3f8a17b65e64549a4fd65) ---- - man/systemd.netdev.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/man/systemd.netdev.xml b/man/systemd.netdev.xml -index 4480e1999d..ef58887dc8 100644 ---- a/man/systemd.netdev.xml -+++ b/man/systemd.netdev.xml -@@ -108,7 +108,7 @@ - A bond device is an aggregation of all its slave devices. See Linux Ethernet Bonding Driver HOWTO for details.Local configuration - - bridge -- A bridge devcie is a software switch, each of its slave devices and the bridge itself are ports of the switch. -+ A bridge device is a software switch, each of its slave devices and the bridge itself are ports of the switch. - - dummy - A dummy device drops all packets sent to it. diff --git a/0049-bus-proxyd-avoid-logging-oom-twice.patch b/0049-bus-proxyd-avoid-logging-oom-twice.patch deleted file mode 100644 index ed3e1c9..0000000 --- a/0049-bus-proxyd-avoid-logging-oom-twice.patch +++ /dev/null @@ -1,23 +0,0 @@ -From f0637f329a5da0680cd7ef79cc05ecdaa0194d82 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 3 Mar 2015 00:05:14 -0500 -Subject: [PATCH] bus-proxyd: avoid logging oom twice - -(cherry picked from commit c29005212dc38d98c707639d1a82ffa5270f2e97) ---- - src/bus-proxyd/bus-proxyd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/bus-proxyd/bus-proxyd.c b/src/bus-proxyd/bus-proxyd.c -index b6b0056362..b6550ed3cf 100644 ---- a/src/bus-proxyd/bus-proxyd.c -+++ b/src/bus-proxyd/bus-proxyd.c -@@ -82,7 +82,7 @@ static int client_context_new(ClientContext **out) { - - c = new0(ClientContext, 1); - if (!c) -- return log_oom(); -+ return -ENOMEM; - - c->fd = -1; - diff --git a/0050-Do-not-run-sysv-generator-test-when-sysv-compat-is-d.patch b/0050-Do-not-run-sysv-generator-test-when-sysv-compat-is-d.patch deleted file mode 100644 index 6860b33..0000000 --- a/0050-Do-not-run-sysv-generator-test-when-sysv-compat-is-d.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 7b95274e6adeec3b7bb44fd7cfe0a50902615151 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 3 Mar 2015 10:36:47 -0500 -Subject: [PATCH] Do not run sysv-generator-test when sysv compat is disabled - -(cherry picked from commit dcf1369057231fbf09e37b5a48483763b4ae6e19) ---- - Makefile.am | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/Makefile.am b/Makefile.am -index cc577ced48..aadaad2b8d 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -3786,9 +3786,14 @@ TESTS += \ - if HAVE_PYTHON - TESTS += \ - test/rule-syntax-check.py \ -+ $(NULL) -+ -+if HAVE_SYSV_COMPAT -+TESTS += \ - test/sysv-generator-test.py \ - $(NULL) - endif -+endif - - manual_tests += \ - test-libudev \ diff --git a/0051-README-mention-ACLs-more.patch b/0051-README-mention-ACLs-more.patch deleted file mode 100644 index 135db6c..0000000 --- a/0051-README-mention-ACLs-more.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 83a122de87bc2e5c01c083029d216da4241fe948 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 3 Mar 2015 09:00:39 -0500 -Subject: [PATCH] README: mention ACLs more - -They are now useful for any fs used for journal storage. - -(cherry picked from commit a6cccd8f580fc1e062dba3895e232007acd38781) ---- - README | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/README b/README -index c72209262e..aac255f7f1 100644 ---- a/README -+++ b/README -@@ -77,8 +77,8 @@ REQUIREMENTS: - Optional but strongly recommended: - CONFIG_IPV6 - CONFIG_AUTOFS4_FS -- CONFIG_TMPFS_POSIX_ACL - CONFIG_TMPFS_XATTR -+ CONFIG_{TMPFS,EXT4,XFS,BTRFS_FS,...}_POSIX_ACL - CONFIG_SECCOMP - - Required for CPUShares in resource control unit settings diff --git a/0052-Do-not-advertise-.d-snippets-over-main-config-file.patch b/0052-Do-not-advertise-.d-snippets-over-main-config-file.patch deleted file mode 100644 index d82b8bc..0000000 --- a/0052-Do-not-advertise-.d-snippets-over-main-config-file.patch +++ /dev/null @@ -1,333 +0,0 @@ -From fdf1ec82999b343bedaeb48bca55f2dc53d2646d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 3 Mar 2015 19:10:21 -0500 -Subject: [PATCH] Do not advertise .d snippets over main config file - -For daemons which have a main configuration file, there's -little reason for the administrator to use configuration snippets. -They are useful for packagers which need to override settings, but -we shouldn't advertise that as the main way of configuring those -services. - -https://bugs.freedesktop.org/show_bug.cgi?id=89397 -(cherry picked from commit e93549ef29c4123d9ee45acb5815048390201e49) ---- - man/bootchart.conf.xml | 3 +-- - man/coredump.conf.xml | 3 +-- - man/journald.conf.xml | 3 +-- - man/logind.conf.xml | 8 +++++--- - man/resolved.conf.xml | 3 +-- - man/standard-conf.xml | 42 ++++++++++++++++++++++++++++++++++-------- - man/systemd-sleep.conf.xml | 3 +-- - man/systemd-system.conf.xml | 3 +-- - man/timesyncd.conf.xml | 3 +-- - src/bootchart/bootchart.conf | 7 ++++--- - src/core/system.conf | 7 ++++--- - src/journal/coredump.conf | 7 ++++--- - src/journal/journald.conf | 7 ++++--- - src/login/logind.conf | 7 ++++--- - src/resolve/resolved.conf.in | 5 +++-- - src/timesync/timesyncd.conf.in | 7 ++++--- - 16 files changed, 73 insertions(+), 45 deletions(-) - -diff --git a/man/bootchart.conf.xml b/man/bootchart.conf.xml -index 8d9700d300..bf6ca0bf9e 100644 ---- a/man/bootchart.conf.xml -+++ b/man/bootchart.conf.xml -@@ -68,8 +68,7 @@ - parameters and graph output. - - -- -- -+ - - - Options -diff --git a/man/coredump.conf.xml b/man/coredump.conf.xml -index 3d325e6ad7..0b7329bf55 100644 ---- a/man/coredump.conf.xml -+++ b/man/coredump.conf.xml -@@ -63,8 +63,7 @@ - a handler for core dumps invoked by the kernel. - - -- -- -+ - - - Options -diff --git a/man/journald.conf.xml b/man/journald.conf.xml -index 364b58f07e..85146b0d82 100644 ---- a/man/journald.conf.xml -+++ b/man/journald.conf.xml -@@ -64,8 +64,7 @@ - - - -- -- -+ - - - Options -diff --git a/man/logind.conf.xml b/man/logind.conf.xml -index ffaec50351..ca2b18783c 100644 ---- a/man/logind.conf.xml -+++ b/man/logind.conf.xml -@@ -58,11 +58,13 @@ - - Description - -- These files configure various parameters of the systemd login manager, systemd-logind.service8. -+ These files configure various parameters of the systemd -+ login manager, -+ systemd-logind.service8. -+ - - -- -- -+ - - - Options -diff --git a/man/resolved.conf.xml b/man/resolved.conf.xml -index 36cae2706c..8047a4ea75 100644 ---- a/man/resolved.conf.xml -+++ b/man/resolved.conf.xml -@@ -63,8 +63,7 @@ - - - -- -- -+ - - - Options -diff --git a/man/standard-conf.xml b/man/standard-conf.xml -index b87d7e955b..36af45927d 100644 ---- a/man/standard-conf.xml -+++ b/man/standard-conf.xml -@@ -33,13 +33,39 @@ - configuration file. - - -- -- Configuration File -- -- Configuration is also read from a single configuration file in -- /etc/. This file is read before any of the -- configuration directories, and has the lowest precedence; entries in a file -- in any configuration directory override entries in the single configuration -- file. -+ -+ Configuration Directories and Precedence -+ -+ Default configuration is defined during compilation, so a -+ configuration file is only needed when it is necessary to deviate -+ from those defaults. By default the configuration file in -+ /etc/systemd/ contains commented out entries -+ showing the defaults as a guide to the administrator. This file -+ can be edited to create local overrides. -+ -+ -+ When packages need to customize the configuration, they can -+ install configuration snippets in -+ /usr/lib/systemd/*.conf.d/. Files in -+ /etc/ are reserved for the local -+ administrator, who may use this logic to override the -+ configuration files installed by vendor packages. The main -+ configuration file is read before any of the configuration -+ directories, and has the lowest precedence; entries in a file in -+ any configuration directory override entries in the single -+ configuration file. Files in the -+ logind.conf.d/ configuration subdirectories -+ are sorted by their filename in lexicographic order, regardless of -+ which of the subdirectories they reside in. If multiple files -+ specify the same option, the entry in the file with the -+ lexicographically latest name takes precedence. It is recommended -+ to prefix all filenames in those subdirectories with a two-digit -+ number and a dash, to simplify the ordering of the files. -+ -+ To disable a configuration file supplied by the vendor, the -+ recommended way is to place a symlink to -+ /dev/null in the configuration directory in -+ /etc/, with the same filename as the vendor -+ configuration file. - - -diff --git a/man/systemd-sleep.conf.xml b/man/systemd-sleep.conf.xml -index 433f2f83a0..bb17ec8669 100644 ---- a/man/systemd-sleep.conf.xml -+++ b/man/systemd-sleep.conf.xml -@@ -112,8 +112,7 @@ along with systemd; If not, see . - attempts to suspend or hibernate the machine. - - -- -- -+ - - - Options -diff --git a/man/systemd-system.conf.xml b/man/systemd-system.conf.xml -index 7c3f237567..c7bcfaee4d 100644 ---- a/man/systemd-system.conf.xml -+++ b/man/systemd-system.conf.xml -@@ -74,8 +74,7 @@ - operations. - - -- -- -+ - - - Options -diff --git a/man/timesyncd.conf.xml b/man/timesyncd.conf.xml -index 1127970a18..89a651c662 100644 ---- a/man/timesyncd.conf.xml -+++ b/man/timesyncd.conf.xml -@@ -63,8 +63,7 @@ - - - -- -- -+ - - - Options -diff --git a/src/bootchart/bootchart.conf b/src/bootchart/bootchart.conf -index 2d7cb61217..4f5e50936e 100644 ---- a/src/bootchart/bootchart.conf -+++ b/src/bootchart/bootchart.conf -@@ -5,10 +5,11 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - # --# You can override the directives in this file by creating files in --# /etc/systemd/bootchart.conf.d/*.conf. -+# Entries in this file show the compile time defaults. -+# You can change settings by editing this file. -+# Defaults can be restored by simply deleting this file. - # --# See bootchart.conf(5) for details -+# See bootchart.conf(5) for details. - - [Bootchart] - #Samples=500 -diff --git a/src/core/system.conf b/src/core/system.conf -index a3727200df..231609033b 100644 ---- a/src/core/system.conf -+++ b/src/core/system.conf -@@ -5,10 +5,11 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - # --# You can override the directives in this file by creating files in --# /etc/systemd/system.conf.d/*.conf. -+# Entries in this file show the compile time defaults. -+# You can change settings by editing this file. -+# Defaults can be restored by simply deleting this file. - # --# See systemd-system.conf(5) for details -+# See systemd-system.conf(5) for details. - - [Manager] - #LogLevel=info -diff --git a/src/journal/coredump.conf b/src/journal/coredump.conf -index 0fe9fe801a..c2f0643e03 100644 ---- a/src/journal/coredump.conf -+++ b/src/journal/coredump.conf -@@ -5,10 +5,11 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - # --# You can override the directives in this file by creating files in --# /etc/systemd/coredump.conf.d/*.conf. -+# Entries in this file show the compile time defaults. -+# You can change settings by editing this file. -+# Defaults can be restored by simply deleting this file. - # --# See coredump.conf(5) for details -+# See coredump.conf(5) for details. - - [Coredump] - #Storage=external -diff --git a/src/journal/journald.conf b/src/journal/journald.conf -index 29bdf8f183..47eefe91c1 100644 ---- a/src/journal/journald.conf -+++ b/src/journal/journald.conf -@@ -5,10 +5,11 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - # --# You can override the directives in this file by creating files in --# /etc/systemd/journald.conf.d/*.conf. -+# Entries in this file show the compile time defaults. -+# You can change settings by editing this file. -+# Defaults can be restored by simply deleting this file. - # --# See journald.conf(5) for details -+# See journald.conf(5) for details. - - [Journal] - #Storage=auto -diff --git a/src/login/logind.conf b/src/login/logind.conf -index 6b1943a2d1..834c4c2ebf 100644 ---- a/src/login/logind.conf -+++ b/src/login/logind.conf -@@ -5,10 +5,11 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - # --# You can override the directives in this file by creating files in --# /etc/systemd/logind.conf.d/*.conf. -+# Entries in this file show the compile time defaults. -+# You can change settings by editing this file. -+# Defaults can be restored by simply deleting this file. - # --# See logind.conf(5) for details -+# See logind.conf(5) for details. - - [Login] - #NAutoVTs=6 -diff --git a/src/resolve/resolved.conf.in b/src/resolve/resolved.conf.in -index e5a19ee474..3eb19e42b7 100644 ---- a/src/resolve/resolved.conf.in -+++ b/src/resolve/resolved.conf.in -@@ -5,8 +5,9 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - # --# You can override the directives in this file by creating files in --# /etc/systemd/resolved.conf.d/*.conf. -+# Entries in this file show the compile time defaults. -+# You can change settings by editing this file. -+# Defaults can be restored by simply deleting this file. - # - # See resolved.conf(5) for details - -diff --git a/src/timesync/timesyncd.conf.in b/src/timesync/timesyncd.conf.in -index fc3c6c49cf..b6a2ada273 100644 ---- a/src/timesync/timesyncd.conf.in -+++ b/src/timesync/timesyncd.conf.in -@@ -5,10 +5,11 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - # --# You can override the directives in this file by creating files in --# /etc/systemd/timesyncd.conf.d/*.conf. -+# Entries in this file show the compile time defaults. -+# You can change settings by editing this file. -+# Defaults can be restored by simply deleting this file. - # --# See timesyncd.conf(5) for details -+# See timesyncd.conf(5) for details. - - [Time] - #NTP= diff --git a/0053-hwdb-add-pnpid-for-the-T450s-touchpad.patch b/0053-hwdb-add-pnpid-for-the-T450s-touchpad.patch deleted file mode 100644 index 1b7ef18..0000000 --- a/0053-hwdb-add-pnpid-for-the-T450s-touchpad.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 0e1497b9c44688f5a038dbcc7d69090d55e2701a Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Wed, 4 Mar 2015 13:24:45 +1000 -Subject: [PATCH] hwdb: add pnpid for the T450s touchpad - -https://bugs.freedesktop.org/show_bug.cgi?id=89411 -(cherry picked from commit c26c1d86b3e466e073577e27ad839a0c112cd17b) ---- - hwdb/70-touchpad.hwdb | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/hwdb/70-touchpad.hwdb b/hwdb/70-touchpad.hwdb -index bbf44db778..9fcb5fdb9b 100644 ---- a/hwdb/70-touchpad.hwdb -+++ b/hwdb/70-touchpad.hwdb -@@ -36,4 +36,6 @@ - - # Lenovo X1 Carbon 3rd - touchpad:pnpid:*LEN0048*: -+# Lenovo T450s -+touchpad:pnpid:*LEN200f*: - TOUCHPAD_HAS_TRACKPOINT_BUTTONS=1 diff --git a/0054-networkd-netdev-inform-when-we-take-over-an-existing.patch b/0054-networkd-netdev-inform-when-we-take-over-an-existing.patch deleted file mode 100644 index 8492f69..0000000 --- a/0054-networkd-netdev-inform-when-we-take-over-an-existing.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 67ec035b3c192e71fb040959fe8d311d9c89edaa Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 4 Mar 2015 10:33:50 +0100 -Subject: [PATCH] networkd: netdev - inform when we take over an existing - netdev - -The crucial point here is that we will not change the settings of a netdev created by someone else -we simply use it as is and trust it was set up as intended. - -This is confusing in the case of the pre-created netdev's (bond0 etc.), the solution should probably -be to simply make the kernel stop creating these devices as they are pretty useless. - -(cherry picked from commit ff88a301e93cf1bddbaa7faa981f390a2a81a4bb) ---- - src/network/networkd-netdev.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/network/networkd-netdev.c b/src/network/networkd-netdev.c -index 8119205dde..7d193d088e 100644 ---- a/src/network/networkd-netdev.c -+++ b/src/network/networkd-netdev.c -@@ -261,7 +261,7 @@ static int netdev_create_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userda - - r = sd_rtnl_message_get_errno(m); - if (r == -EEXIST) -- log_netdev_debug(netdev, "netdev exists, using existing"); -+ log_info_netdev(netdev, "netdev exists, using existing without changing its parameters"); - else if (r < 0) { - log_warning_netdev(netdev, "netdev could not be created: %s", strerror(-r)); - netdev_drop(netdev); diff --git a/0055-man-replace-obsolete-wiki-link-with-man-page.patch b/0055-man-replace-obsolete-wiki-link-with-man-page.patch deleted file mode 100644 index 6cfd146..0000000 --- a/0055-man-replace-obsolete-wiki-link-with-man-page.patch +++ /dev/null @@ -1,181 +0,0 @@ -From 4015611680b1ee7ba43dbaf405fefb7ddb137797 Mon Sep 17 00:00:00 2001 -From: Zachary Cook -Date: Wed, 4 Mar 2015 18:43:20 -0500 -Subject: [PATCH] man: replace obsolete wiki link with man page - -(cherry picked from commit b1c1a51944e8e11545ae2a230d674f5145595192) ---- - man/systemd-cryptsetup-generator.xml | 6 ++---- - man/systemd-debug-generator.xml | 6 ++---- - man/systemd-efi-boot-generator.xml | 4 +--- - man/systemd-fstab-generator.xml | 6 ++---- - man/systemd-getty-generator.xml | 5 ++--- - man/systemd-gpt-auto-generator.xml | 4 +--- - man/systemd-system-update-generator.xml | 6 ++---- - man/systemd-sysv-generator.xml | 6 ++---- - man/systemd.unit.xml | 4 ++-- - man/systemd.xml | 5 ++--- - 10 files changed, 18 insertions(+), 34 deletions(-) - -diff --git a/man/systemd-cryptsetup-generator.xml b/man/systemd-cryptsetup-generator.xml -index 0e48e79346..1974cd7a2d 100644 ---- a/man/systemd-cryptsetup-generator.xml -+++ b/man/systemd-cryptsetup-generator.xml -@@ -59,10 +59,8 @@ - systemd-cryptsetup@.service8 - units as necessary. - -- systemd-cryptsetup-generator -- implements the generator -- specification. -+ systemd-cryptsetup-generator implements -+ systemd.generator7. - - - -diff --git a/man/systemd-debug-generator.xml b/man/systemd-debug-generator.xml -index 74c3b2620e..5c5e9fc4a1 100644 ---- a/man/systemd-debug-generator.xml -+++ b/man/systemd-debug-generator.xml -@@ -79,10 +79,8 @@ - systemctl1's - enable command. - -- systemd-debug-generator implements the -- generator -- specification. -+ systemd-debug-generator implements -+ systemd.generator7. - - - -diff --git a/man/systemd-efi-boot-generator.xml b/man/systemd-efi-boot-generator.xml -index b2d8d65e3d..fd7ba79837 100644 ---- a/man/systemd-efi-boot-generator.xml -+++ b/man/systemd-efi-boot-generator.xml -@@ -68,9 +68,7 @@ - only be activated on-demand, when accessed. - - systemd-efi-boot-generator implements -- the generator -- specification. -+ systemd.generator7. - - - -diff --git a/man/systemd-fstab-generator.xml b/man/systemd-fstab-generator.xml -index 8f82e33304..022efb4130 100644 ---- a/man/systemd-fstab-generator.xml -+++ b/man/systemd-fstab-generator.xml -@@ -71,10 +71,8 @@ - for more information about special /etc/fstab - mount options this generator understands. - -- systemd-fstab-generator implements the -- generator -- specification. -+ systemd-fstab-generator implements -+ systemd.generator7. - - - -diff --git a/man/systemd-getty-generator.xml b/man/systemd-getty-generator.xml -index 0b5b2f2a71..338925964d 100644 ---- a/man/systemd-getty-generator.xml -+++ b/man/systemd-getty-generator.xml -@@ -75,9 +75,8 @@ - for more information on the console= kernel - parameter. - -- systemd-getty-generator implements the -- generator -- specification. -+ systemd-getty-generator implements -+ systemd.generator7. - - Further information about configuration of gettys you may - find in -diff --git a/man/systemd-gpt-auto-generator.xml b/man/systemd-gpt-auto-generator.xml -index 9c706df246..8d2eaca4f6 100644 ---- a/man/systemd-gpt-auto-generator.xml -+++ b/man/systemd-gpt-auto-generator.xml -@@ -157,9 +157,7 @@ - using btrfs subvolume set-default. - - systemd-gpt-auto-generator implements -- the -- Generator -- Specification. -+ systemd.generator7. - - - -diff --git a/man/systemd-system-update-generator.xml b/man/systemd-system-update-generator.xml -index 3eec1d7b93..e7fc95c742 100644 ---- a/man/systemd-system-update-generator.xml -+++ b/man/systemd-system-update-generator.xml -@@ -61,10 +61,8 @@ - Updates Specification. - - -- systemd-system-update-generator -- implements the -- generator -- specification. -+ systemd-system-update-generator implements -+ systemd.generator7. - - - -diff --git a/man/systemd-sysv-generator.xml b/man/systemd-sysv-generator.xml -index e619b1bc2e..f2d56cbcd2 100644 ---- a/man/systemd-sysv-generator.xml -+++ b/man/systemd-sysv-generator.xml -@@ -81,10 +81,8 @@ - part of early boot, so all wrapper units are ordered after - basic.target. - -- systemd-sysv-generator -- implements the generator -- specification. -+ systemd-sysv-generator implements -+ systemd.generator7. - - - -diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml -index 09e11b4711..a452f87baf 100644 ---- a/man/systemd.unit.xml -+++ b/man/systemd.unit.xml -@@ -357,8 +357,8 @@ - from directories not on the unit load path. See the - link command for - systemctl1. -- Also, some units are dynamically created via generators Generators. -+ Also, some units are dynamically created via a -+ systemd.generator7. - - - -diff --git a/man/systemd.xml b/man/systemd.xml -index 80591dc732..9b92140e6b 100644 ---- a/man/systemd.xml -+++ b/man/systemd.xml -@@ -415,9 +415,8 @@ - - Units may be generated dynamically at boot and system - manager reload time, for example based on other configuration -- files or parameters passed on the kernel command line. For details -- see the -- Generators Specification. -+ files or parameters passed on the kernel command line. For details see -+ systemd.generator7. - - Systems which invoke systemd in a container or initrd - environment should implement the diff --git a/0056-Use-correct-uname-identifiers-in-arch_map-for-SuperH.patch b/0056-Use-correct-uname-identifiers-in-arch_map-for-SuperH.patch deleted file mode 100644 index 11c9607..0000000 --- a/0056-Use-correct-uname-identifiers-in-arch_map-for-SuperH.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9b6d1109707911b63b76b1c7a26e89a21cef9011 Mon Sep 17 00:00:00 2001 -From: John Paul Adrian Glaubitz -Date: Thu, 5 Mar 2015 00:07:33 +0100 -Subject: [PATCH] Use correct uname identifiers in arch_map for SuperH - architecture - -https://bugs.freedesktop.org/show_bug.cgi?id=89421 -(cherry picked from commit 3a867c6a2361c8af943d3ed452da6e8623a3f65d) ---- - src/shared/architecture.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/shared/architecture.c b/src/shared/architecture.c -index 34c5a53fa9..884abdd3ea 100644 ---- a/src/shared/architecture.c -+++ b/src/shared/architecture.c -@@ -108,8 +108,12 @@ int uname_architecture(void) { - { "armv8l", ARCHITECTURE_ARM }, - { "armv8b", ARCHITECTURE_ARM_BE }, - #elif defined(__sh__) || defined(__sh64__) -- { "sh64", ARCHITECTURE_SH64 }, -- { "sh", ARCHITECTURE_SH }, -+ { "sh5", ARCHITECTURE_SH64 }, -+ { "sh2", ARCHITECTURE_SH }, -+ { "sh2a", ARCHITECTURE_SH }, -+ { "sh3", ARCHITECTURE_SH }, -+ { "sh4", ARCHITECTURE_SH }, -+ { "sh4a", ARCHITECTURE_SH }, - #elif defined(__m68k__) - { "m68k", ARCHITECTURE_M68K }, - #elif defined(__tilegx__) diff --git a/0057-hwdb-fix-Dell-XPS12-9Q33-key-name.patch b/0057-hwdb-fix-Dell-XPS12-9Q33-key-name.patch deleted file mode 100644 index f780ecc..0000000 --- a/0057-hwdb-fix-Dell-XPS12-9Q33-key-name.patch +++ /dev/null @@ -1,24 +0,0 @@ -From cc32b9d93a797ce30b139e839432c49ec228271f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 4 Mar 2015 20:25:04 -0500 -Subject: [PATCH] hwdb: fix Dell XPS12 9Q33 key name - -https://bugs.freedesktop.org/show_bug.cgi?id=84437 -(cherry picked from commit 4f70555d76c90ffdc5a5e4f75bbc08b38022c911) ---- - hwdb/60-keyboard.hwdb | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb -index 2cb976923d..88906655ef 100644 ---- a/hwdb/60-keyboard.hwdb -+++ b/hwdb/60-keyboard.hwdb -@@ -259,7 +259,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* - # Dell XPS12 9Q33 - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:pvr* - KEYBOARD_KEY_88=wlan -- KEYBOARD_KEY_65=switchvideomode # Screen Rotate -+ KEYBOARD_KEY_65=direction # Screen Rotate - - # Dell Latitude microphone mute - keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* diff --git a/0058-Remove-the-cap-on-epoll-events.patch b/0058-Remove-the-cap-on-epoll-events.patch deleted file mode 100644 index 46f34c6..0000000 --- a/0058-Remove-the-cap-on-epoll-events.patch +++ /dev/null @@ -1,36 +0,0 @@ -From c2695a243c2741939080ef92e06f0dfddb59d2af Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Wed, 4 Mar 2015 16:32:16 +0100 -Subject: [PATCH] Remove the cap on epoll events - -Currently the code will silently blank out events if there are more -then 512 epoll events, causing them never to be handled at all. This -patch removes the cap on the number of events for epoll_wait, thereby -avoiding this issue. - -(cherry picked from commit 1c724e9e0ec5bc4bf791a3d7b1cf5b955cdb98b2) ---- - src/libsystemd/sd-event/sd-event.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c -index 25089a0335..c6350be9f4 100644 ---- a/src/libsystemd/sd-event/sd-event.c -+++ b/src/libsystemd/sd-event/sd-event.c -@@ -37,7 +37,6 @@ - - #include "sd-event.h" - --#define EPOLL_QUEUE_MAX 512U - #define DEFAULT_ACCURACY_USEC (250 * USEC_PER_MSEC) - - typedef enum EventSourceType { -@@ -2367,7 +2366,7 @@ _public_ int sd_event_wait(sd_event *e, uint64_t timeout) { - return 1; - } - -- ev_queue_max = CLAMP(e->n_sources, 1U, EPOLL_QUEUE_MAX); -+ ev_queue_max = MAX(e->n_sources, 1u); - ev_queue = newa(struct epoll_event, ev_queue_max); - - m = epoll_wait(e->epoll_fd, ev_queue, ev_queue_max, diff --git a/0059-Allow-up-to-4096-simultaneous-connections.patch b/0059-Allow-up-to-4096-simultaneous-connections.patch deleted file mode 100644 index b1d116b..0000000 --- a/0059-Allow-up-to-4096-simultaneous-connections.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 7eaa810935ff190e039f465a06663b4d92aea794 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Wed, 4 Mar 2015 16:32:17 +0100 -Subject: [PATCH] Allow up to 4096 simultaneous connections - -On large system we hit the limit on 512 simultaneous dbus -connections, resulting in tons of annoying messages: - -Too many concurrent connections, refusing - -This patch raises the limit to 4096. - -(cherry picked from commit cbecf9bf929318533fea798c57c10efcf6b2b447) ---- - src/core/dbus.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/dbus.c b/src/core/dbus.c -index 260775cd85..85b5174868 100644 ---- a/src/core/dbus.c -+++ b/src/core/dbus.c -@@ -44,7 +44,7 @@ - #include "bus-internal.h" - #include "selinux-access.h" - --#define CONNECTIONS_MAX 512 -+#define CONNECTIONS_MAX 4096 - - static void destroy_bus(Manager *m, sd_bus **bus); - diff --git a/0060-hwdb-add-Logitech-G5-Laser-Mouse.patch b/0060-hwdb-add-Logitech-G5-Laser-Mouse.patch deleted file mode 100644 index e8e0c8e..0000000 --- a/0060-hwdb-add-Logitech-G5-Laser-Mouse.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 09787b60a3876972b9194fe403a9ad9282f5dd86 Mon Sep 17 00:00:00 2001 -From: Jonathon Gilbert -Date: Thu, 5 Mar 2015 20:29:56 +1000 -Subject: [PATCH] hwdb: add Logitech G5 Laser Mouse - -(cherry picked from commit 6437edbebe80e68b782f178c7a76e870a53811d7) ---- - hwdb/70-mouse.hwdb | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/hwdb/70-mouse.hwdb b/hwdb/70-mouse.hwdb -index a62ebc497d..93ee4d9fa6 100644 ---- a/hwdb/70-mouse.hwdb -+++ b/hwdb/70-mouse.hwdb -@@ -196,6 +196,8 @@ mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4008: - mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:101b: - MOUSE_DPI=800@166 - -+# Logitech G5 Laser Mouse -+mouse:usb:v046dpc049:name:Logitech USB Gaming Mouse: - # Logitech G500s Laser Gaming Mouse - mouse:usb:v046dpc24e:name:Logitech G500s Laser Gaming Mouse: - MOUSE_DPI=400@500 *800@500 2000@500 diff --git a/0061-tmpfiles-Fix-handling-of-duplicate-lines.patch b/0061-tmpfiles-Fix-handling-of-duplicate-lines.patch deleted file mode 100644 index a38a61b..0000000 --- a/0061-tmpfiles-Fix-handling-of-duplicate-lines.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 71265e69fa8a26d8a9669824eeb3ea9d2fe7c923 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Thu, 5 Mar 2015 14:58:56 +0100 -Subject: [PATCH] tmpfiles: Fix handling of duplicate lines - -Commit 3f93da987 accidentally dropped the "return 0" after detection of a -duplicate line. Put it back, to get back the documented and intended "first -match wins" behaviour. - -https://launchpad.net/bugs/1428540 -(cherry picked from commit 6487ada88d63e4998113f4c57fa10b7c865f8026) ---- - src/tmpfiles/tmpfiles.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index 187997e1f4..1e10968164 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -1750,9 +1750,11 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) { - unsigned n; - - for (n = 0; n < existing->count; n++) { -- if (!item_compatible(existing->items + n, &i)) -+ if (!item_compatible(existing->items + n, &i)) { - log_warning("[%s:%u] Duplicate line for path \"%s\", ignoring.", - fname, line, i.path); -+ return 0; -+ } - } - } else { - existing = new0(ItemArray, 1); diff --git a/0062-hwdb-add-Lenovo-W451-to-TOUCHPAD_HAS_TRACKPOINT_BUTT.patch b/0062-hwdb-add-Lenovo-W451-to-TOUCHPAD_HAS_TRACKPOINT_BUTT.patch deleted file mode 100644 index 79187a7..0000000 --- a/0062-hwdb-add-Lenovo-W451-to-TOUCHPAD_HAS_TRACKPOINT_BUTT.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 9e28311ad66214528c4644ca593bcb5259462341 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Fri, 6 Mar 2015 11:02:04 +1000 -Subject: [PATCH] hwdb: add Lenovo W451 to TOUCHPAD_HAS_TRACKPOINT_BUTTONS list - -(cherry picked from commit 9638ee90862e4a24f5796e87beebc4c47e2728c2) ---- - hwdb/70-touchpad.hwdb | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/hwdb/70-touchpad.hwdb b/hwdb/70-touchpad.hwdb -index 9fcb5fdb9b..8a324466b3 100644 ---- a/hwdb/70-touchpad.hwdb -+++ b/hwdb/70-touchpad.hwdb -@@ -36,6 +36,8 @@ - - # Lenovo X1 Carbon 3rd - touchpad:pnpid:*LEN0048*: -+# Lenovo W541 -+touchpad:pnpid:*LEN004a*: - # Lenovo T450s - touchpad:pnpid:*LEN200f*: - TOUCHPAD_HAS_TRACKPOINT_BUTTONS=1 diff --git a/0063-vconsole-match-on-vtcon-events-not-fbcon-ones.patch b/0063-vconsole-match-on-vtcon-events-not-fbcon-ones.patch deleted file mode 100644 index b4617c9..0000000 --- a/0063-vconsole-match-on-vtcon-events-not-fbcon-ones.patch +++ /dev/null @@ -1,39 +0,0 @@ -From b83da13fffc79b5f4c1edaba3764f4d9be6993ff Mon Sep 17 00:00:00 2001 -From: Jan Engelhardt -Date: Tue, 24 Feb 2015 17:49:02 +0100 -Subject: [PATCH] vconsole: match on vtcon events, not fbcon ones - -I observe that upon loading of framebuffer drivers, I do not get the -desired system font, but the kernel-level defaults (usually -lib/fonts/font_8x16.c, but your mileage may vary depending on kernel -config and boot options). - -The fbcon driver may be loaded at a time way before the first -framebuffer device is active, such that the vconsole setup helper -runs too early. - -The existing rule is non-fitting. The going live of the fbcon kernel -component does not indicate the proper time at which to load the -visuals, which really ought to be done when a new vtcon object comes -into existence. (The font table is a per-vtcon property.) - -(cherry picked from commit a52750d1483ff139df33149afc0b675531e9cd79) ---- - src/vconsole/90-vconsole.rules.in | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git a/src/vconsole/90-vconsole.rules.in b/src/vconsole/90-vconsole.rules.in -index 062009640c..35b9ad5151 100644 ---- a/src/vconsole/90-vconsole.rules.in -+++ b/src/vconsole/90-vconsole.rules.in -@@ -5,7 +5,6 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - --# Kernel resets vconsole state when changing console drivers so run --# systemd-vconsole-setup when fbcon loads -- --ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fbcon", RUN+="@rootlibexecdir@/systemd-vconsole-setup" -+# Each vtcon keeps its own state of fonts. -+# -+ACTION=="add", SUBSYSTEM=="vtconsole", KERNEL=="vtcon*", RUN+="@rootlibexecdir@/systemd-vconsole-setup" diff --git a/0064-core-do-not-spawn-jobs-or-touch-other-units-during-c.patch b/0064-core-do-not-spawn-jobs-or-touch-other-units-during-c.patch deleted file mode 100644 index 8793226..0000000 --- a/0064-core-do-not-spawn-jobs-or-touch-other-units-during-c.patch +++ /dev/null @@ -1,375 +0,0 @@ -From 3ef091125ceb159374d2d0d4dbad84d90b252852 Mon Sep 17 00:00:00 2001 -From: Ivan Shapovalov -Date: Sat, 7 Mar 2015 08:44:52 -0500 -Subject: [PATCH] core: do not spawn jobs or touch other units during - coldplugging - -Because the order of coldplugging is not defined, we can reference a -not-yet-coldplugged unit and read its state while it has not yet been -set to a meaningful value. - -This way, already active units may get started again. - -We fix this by deferring such actions until all units have been at -least somehow coldplugged. - -Fixes https://bugs.freedesktop.org/show_bug.cgi?id=88401 - -(cherry picked from commit 6e392c9c45643d106673c6643ac8bf4e65da13c1) ---- - src/core/automount.c | 2 +- - src/core/busname.c | 2 +- - src/core/device.c | 2 +- - src/core/manager.c | 35 +++++++++++++++++++++++++++++++++-- - src/core/mount.c | 2 +- - src/core/path.c | 14 ++++++++++---- - src/core/scope.c | 2 +- - src/core/service.c | 2 +- - src/core/slice.c | 2 +- - src/core/snapshot.c | 2 +- - src/core/socket.c | 2 +- - src/core/swap.c | 2 +- - src/core/target.c | 2 +- - src/core/timer.c | 14 ++++++++++---- - src/core/unit.c | 25 ++++++++++++++++--------- - src/core/unit.h | 12 +++++++++--- - 16 files changed, 89 insertions(+), 33 deletions(-) - -diff --git a/src/core/automount.c b/src/core/automount.c -index 9f6bd84b21..e4c79415d1 100644 ---- a/src/core/automount.c -+++ b/src/core/automount.c -@@ -235,7 +235,7 @@ static void automount_set_state(Automount *a, AutomountState state) { - unit_notify(UNIT(a), state_translation_table[old_state], state_translation_table[state], true); - } - --static int automount_coldplug(Unit *u) { -+static int automount_coldplug(Unit *u, Hashmap *deferred_work) { - Automount *a = AUTOMOUNT(u); - int r; - -diff --git a/src/core/busname.c b/src/core/busname.c -index 1d77292f9b..43d7607a30 100644 ---- a/src/core/busname.c -+++ b/src/core/busname.c -@@ -335,7 +335,7 @@ static void busname_set_state(BusName *n, BusNameState state) { - unit_notify(UNIT(n), state_translation_table[old_state], state_translation_table[state], true); - } - --static int busname_coldplug(Unit *u) { -+static int busname_coldplug(Unit *u, Hashmap *deferred_work) { - BusName *n = BUSNAME(u); - int r; - -diff --git a/src/core/device.c b/src/core/device.c -index 1cc103c290..4ff8827219 100644 ---- a/src/core/device.c -+++ b/src/core/device.c -@@ -142,7 +142,7 @@ static void device_set_state(Device *d, DeviceState state) { - unit_notify(UNIT(d), state_translation_table[old_state], state_translation_table[state], true); - } - --static int device_coldplug(Unit *u) { -+static int device_coldplug(Unit *u, Hashmap *deferred_work) { - Device *d = DEVICE(u); - - assert(d); -diff --git a/src/core/manager.c b/src/core/manager.c -index bc9b7ec620..203a6a0a1a 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -983,7 +983,28 @@ static int manager_coldplug(Manager *m) { - Unit *u; - char *k; - -- assert(m); -+ /* -+ * Some unit types tend to spawn jobs or check other units' state -+ * during coldplug. This is wrong because it is undefined whether the -+ * units in question have been already coldplugged (i. e. their state -+ * restored). This way, we can easily re-start an already started unit -+ * or otherwise make a wrong decision based on the unit's state. -+ * -+ * Solve this by providing a way for coldplug functions to defer -+ * such actions until after all units have been coldplugged. -+ * -+ * We store Unit* -> int(*)(Unit*). -+ * -+ * https://bugs.freedesktop.org/show_bug.cgi?id=88401 -+ */ -+ _cleanup_hashmap_free_ Hashmap *deferred_work = NULL; -+ int(*proc)(Unit*); -+ -+ assert(m); -+ -+ deferred_work = hashmap_new(&trivial_hash_ops); -+ if (!deferred_work) -+ return -ENOMEM; - - /* Then, let's set up their initial state. */ - HASHMAP_FOREACH_KEY(u, k, m->units, i) { -@@ -993,7 +1014,17 @@ static int manager_coldplug(Manager *m) { - if (u->id != k) - continue; - -- q = unit_coldplug(u); -+ q = unit_coldplug(u, deferred_work); -+ if (q < 0) -+ r = q; -+ } -+ -+ /* After coldplugging and setting up initial state of the units, -+ * let's perform operations which spawn jobs or query units' state. */ -+ HASHMAP_FOREACH_KEY(proc, u, deferred_work, i) { -+ int q; -+ -+ q = proc(u); - if (q < 0) - r = q; - } -diff --git a/src/core/mount.c b/src/core/mount.c -index c971330af2..3ae0eb4621 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -617,7 +617,7 @@ static void mount_set_state(Mount *m, MountState state) { - m->reload_result = MOUNT_SUCCESS; - } - --static int mount_coldplug(Unit *u) { -+static int mount_coldplug(Unit *u, Hashmap *deferred_work) { - Mount *m = MOUNT(u); - MountState new_state = MOUNT_DEAD; - int r; -diff --git a/src/core/path.c b/src/core/path.c -index e5ea79fec7..51e36fa8be 100644 ---- a/src/core/path.c -+++ b/src/core/path.c -@@ -440,7 +440,12 @@ static void path_set_state(Path *p, PathState state) { - - static void path_enter_waiting(Path *p, bool initial, bool recheck); - --static int path_coldplug(Unit *u) { -+static int path_enter_waiting_coldplug(Unit *u) { -+ path_enter_waiting(PATH(u), true, true); -+ return 0; -+} -+ -+static int path_coldplug(Unit *u, Hashmap *deferred_work) { - Path *p = PATH(u); - - assert(p); -@@ -449,9 +454,10 @@ static int path_coldplug(Unit *u) { - if (p->deserialized_state != p->state) { - - if (p->deserialized_state == PATH_WAITING || -- p->deserialized_state == PATH_RUNNING) -- path_enter_waiting(p, true, true); -- else -+ p->deserialized_state == PATH_RUNNING) { -+ hashmap_put(deferred_work, u, &path_enter_waiting_coldplug); -+ path_set_state(p, PATH_WAITING); -+ } else - path_set_state(p, p->deserialized_state); - } - -diff --git a/src/core/scope.c b/src/core/scope.c -index b41db7872c..ae6614fbf0 100644 ---- a/src/core/scope.c -+++ b/src/core/scope.c -@@ -173,7 +173,7 @@ static int scope_load(Unit *u) { - return scope_verify(s); - } - --static int scope_coldplug(Unit *u) { -+static int scope_coldplug(Unit *u, Hashmap *deferred_work) { - Scope *s = SCOPE(u); - int r; - -diff --git a/src/core/service.c b/src/core/service.c -index 15e29be149..7781b4e626 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -879,7 +879,7 @@ static void service_set_state(Service *s, ServiceState state) { - s->reload_result = SERVICE_SUCCESS; - } - --static int service_coldplug(Unit *u) { -+static int service_coldplug(Unit *u, Hashmap *deferred_work) { - Service *s = SERVICE(u); - int r; - -diff --git a/src/core/slice.c b/src/core/slice.c -index ae9819d015..61ff9d3314 100644 ---- a/src/core/slice.c -+++ b/src/core/slice.c -@@ -153,7 +153,7 @@ static int slice_load(Unit *u) { - return slice_verify(s); - } - --static int slice_coldplug(Unit *u) { -+static int slice_coldplug(Unit *u, Hashmap *deferred_work) { - Slice *t = SLICE(u); - - assert(t); -diff --git a/src/core/snapshot.c b/src/core/snapshot.c -index b70c3beb60..b1d8448771 100644 ---- a/src/core/snapshot.c -+++ b/src/core/snapshot.c -@@ -75,7 +75,7 @@ static int snapshot_load(Unit *u) { - return 0; - } - --static int snapshot_coldplug(Unit *u) { -+static int snapshot_coldplug(Unit *u, Hashmap *deferred_work) { - Snapshot *s = SNAPSHOT(u); - - assert(s); -diff --git a/src/core/socket.c b/src/core/socket.c -index 88aae4815b..760de0203d 100644 ---- a/src/core/socket.c -+++ b/src/core/socket.c -@@ -1326,7 +1326,7 @@ static void socket_set_state(Socket *s, SocketState state) { - unit_notify(UNIT(s), state_translation_table[old_state], state_translation_table[state], true); - } - --static int socket_coldplug(Unit *u) { -+static int socket_coldplug(Unit *u, Hashmap *deferred_work) { - Socket *s = SOCKET(u); - int r; - -diff --git a/src/core/swap.c b/src/core/swap.c -index 5c19af5d91..369abf0f53 100644 ---- a/src/core/swap.c -+++ b/src/core/swap.c -@@ -513,7 +513,7 @@ static void swap_set_state(Swap *s, SwapState state) { - job_add_to_run_queue(UNIT(other)->job); - } - --static int swap_coldplug(Unit *u) { -+static int swap_coldplug(Unit *u, Hashmap *deferred_work) { - Swap *s = SWAP(u); - SwapState new_state = SWAP_DEAD; - int r; -diff --git a/src/core/target.c b/src/core/target.c -index 33fb66bc3f..2411a8e758 100644 ---- a/src/core/target.c -+++ b/src/core/target.c -@@ -107,7 +107,7 @@ static int target_load(Unit *u) { - return 0; - } - --static int target_coldplug(Unit *u) { -+static int target_coldplug(Unit *u, Hashmap *deferred_work) { - Target *t = TARGET(u); - - assert(t); -diff --git a/src/core/timer.c b/src/core/timer.c -index 45744c7de5..48cf9c16a8 100644 ---- a/src/core/timer.c -+++ b/src/core/timer.c -@@ -268,7 +268,12 @@ static void timer_set_state(Timer *t, TimerState state) { - - static void timer_enter_waiting(Timer *t, bool initial); - --static int timer_coldplug(Unit *u) { -+static int timer_enter_waiting_coldplug(Unit *u) { -+ timer_enter_waiting(TIMER(u), false); -+ return 0; -+} -+ -+static int timer_coldplug(Unit *u, Hashmap *deferred_work) { - Timer *t = TIMER(u); - - assert(t); -@@ -276,9 +281,10 @@ static int timer_coldplug(Unit *u) { - - if (t->deserialized_state != t->state) { - -- if (t->deserialized_state == TIMER_WAITING) -- timer_enter_waiting(t, false); -- else -+ if (t->deserialized_state == TIMER_WAITING) { -+ hashmap_put(deferred_work, u, &timer_enter_waiting_coldplug); -+ timer_set_state(t, TIMER_WAITING); -+ } else - timer_set_state(t, t->deserialized_state); - } - -diff --git a/src/core/unit.c b/src/core/unit.c -index a6558ee23b..565455bd63 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2859,27 +2859,34 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { - return 0; - } - --int unit_coldplug(Unit *u) { -+static int unit_add_deserialized_job_coldplug(Unit *u) { -+ int r; -+ -+ r = manager_add_job(u->manager, u->deserialized_job, u, JOB_IGNORE_REQUIREMENTS, false, NULL, NULL); -+ if (r < 0) -+ return r; -+ -+ u->deserialized_job = _JOB_TYPE_INVALID; -+ -+ return 0; -+} -+ -+int unit_coldplug(Unit *u, Hashmap *deferred_work) { - int r; - - assert(u); - - if (UNIT_VTABLE(u)->coldplug) -- if ((r = UNIT_VTABLE(u)->coldplug(u)) < 0) -+ if ((r = UNIT_VTABLE(u)->coldplug(u, deferred_work)) < 0) - return r; - - if (u->job) { - r = job_coldplug(u->job); - if (r < 0) - return r; -- } else if (u->deserialized_job >= 0) { -+ } else if (u->deserialized_job >= 0) - /* legacy */ -- r = manager_add_job(u->manager, u->deserialized_job, u, JOB_IGNORE_REQUIREMENTS, false, NULL, NULL); -- if (r < 0) -- return r; -- -- u->deserialized_job = _JOB_TYPE_INVALID; -- } -+ hashmap_put(deferred_work, u, &unit_add_deserialized_job_coldplug); - - return 0; - } -diff --git a/src/core/unit.h b/src/core/unit.h -index 291bc77a76..7ebc489c80 100644 ---- a/src/core/unit.h -+++ b/src/core/unit.h -@@ -307,8 +307,14 @@ struct UnitVTable { - int (*load)(Unit *u); - - /* If a lot of units got created via enumerate(), this is -- * where to actually set the state and call unit_notify(). */ -- int (*coldplug)(Unit *u); -+ * where to actually set the state and call unit_notify(). -+ * -+ * This must not reference other units (maybe implicitly through spawning -+ * jobs), because it is possible that they are not yet coldplugged. -+ * Such actions must be deferred until the end of coldplug bу adding -+ * a "Unit* -> int(*)(Unit*)" entry into the hashmap. -+ */ -+ int (*coldplug)(Unit *u, Hashmap *deferred_work); - - void (*dump)(Unit *u, FILE *f, const char *prefix); - -@@ -544,7 +550,7 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds); - - int unit_add_node_link(Unit *u, const char *what, bool wants); - --int unit_coldplug(Unit *u); -+int unit_coldplug(Unit *u, Hashmap *deferred_work); - - void unit_status_printf(Unit *u, const char *status, const char *unit_status_msg_format) _printf_(3, 0); - diff --git a/0065-firstboot-set-all-spwd-fields-to-1-for-consistency-w.patch b/0065-firstboot-set-all-spwd-fields-to-1-for-consistency-w.patch deleted file mode 100644 index dc35c94..0000000 --- a/0065-firstboot-set-all-spwd-fields-to-1-for-consistency-w.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 646308cdc78e95caa311d6d140379ce24954c068 Mon Sep 17 00:00:00 2001 -From: Ivan Shapovalov -Date: Thu, 26 Feb 2015 02:46:24 +0300 -Subject: [PATCH] firstboot: set all spwd fields to -1 for consistency with - sysusers - -(cherry picked from commit ad525df851a1bef7369fe21b5cde382941e7b073) ---- - src/firstboot/firstboot.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c -index a765d6d219..a37ca170fb 100644 ---- a/src/firstboot/firstboot.c -+++ b/src/firstboot/firstboot.c -@@ -525,9 +525,9 @@ static int process_root_password(void) { - - struct spwd item = { - .sp_namp = (char*) "root", -- .sp_min = 0, -- .sp_max = 99999, -- .sp_warn = 7, -+ .sp_min = -1, -+ .sp_max = -1, -+ .sp_warn = -1, - .sp_inact = -1, - .sp_expire = -1, - .sp_flag = (unsigned long) -1, /* this appears to be what everybody does ... */ diff --git a/0066-sysusers-do-not-reject-users-with-already-present-et.patch b/0066-sysusers-do-not-reject-users-with-already-present-et.patch deleted file mode 100644 index e92da59..0000000 --- a/0066-sysusers-do-not-reject-users-with-already-present-et.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 3f25df7d013a98f7a60b216f1687e95ff6a6cbbb Mon Sep 17 00:00:00 2001 -From: Ivan Shapovalov -Date: Sat, 7 Mar 2015 18:11:32 +0300 -Subject: [PATCH] sysusers: do not reject users with already present - /etc/shadow entries - -This is needed to interoperate firstboot and sysusers. The former one is started -first, and it writes only /etc/shadow when it is told to set the root password. -It's better to relax checks here than to duplicate functionality in firstboot. - -(cherry picked from commit c5abf22514b3925aa6f0d4a3f36f76799bf1911b) ---- - src/sysusers/sysusers.c | 23 +++++++++-------------- - 1 file changed, 9 insertions(+), 14 deletions(-) - -diff --git a/src/sysusers/sysusers.c b/src/sysusers/sysusers.c -index e47bcb4dca..76b5962c51 100644 ---- a/src/sysusers/sysusers.c -+++ b/src/sysusers/sysusers.c -@@ -605,6 +605,8 @@ static int write_files(void) { - if (r < 0) - goto finish; - -+ lstchg = (long) (now(CLOCK_REALTIME) / USEC_PER_DAY); -+ - original = fopen(shadow_path, "re"); - if (original) { - struct spwd *sp; -@@ -618,8 +620,13 @@ static int write_files(void) { - - i = hashmap_get(users, sp->sp_namp); - if (i && i->todo_user) { -- r = -EEXIST; -- goto finish; -+ /* we will update the existing entry */ -+ sp->sp_lstchg = lstchg; -+ -+ /* only the /etc/shadow stage is left, so we can -+ * safely remove the item from the todo set */ -+ i->todo_user = false; -+ hashmap_remove(todo_uids, UID_TO_PTR(i->uid)); - } - - errno = 0; -@@ -642,7 +649,6 @@ static int write_files(void) { - goto finish; - } - -- lstchg = (long) (now(CLOCK_REALTIME) / USEC_PER_DAY); - HASHMAP_FOREACH(i, todo_uids, iterator) { - struct spwd n = { - .sp_namp = i->name, -@@ -879,7 +885,6 @@ static int add_user(Item *i) { - - if (!arg_root) { - struct passwd *p; -- struct spwd *sp; - - /* Also check NSS */ - errno = 0; -@@ -895,16 +900,6 @@ static int add_user(Item *i) { - } - if (!IN_SET(errno, 0, ENOENT)) - return log_error_errno(errno, "Failed to check if user %s already exists: %m", i->name); -- -- /* And shadow too, just to be sure */ -- errno = 0; -- sp = getspnam(i->name); -- if (sp) { -- log_error("User %s already exists in shadow database, but not in user database.", i->name); -- return -EBADMSG; -- } -- if (!IN_SET(errno, 0, ENOENT)) -- return log_error_errno(errno, "Failed to check if user %s already exists in shadow database: %m", i->name); - } - - /* Try to use the suggested numeric uid */ diff --git a/0067-nspawn-fix-use-after-free-and-leak-in-error-paths.patch b/0067-nspawn-fix-use-after-free-and-leak-in-error-paths.patch deleted file mode 100644 index dc0a610..0000000 --- a/0067-nspawn-fix-use-after-free-and-leak-in-error-paths.patch +++ /dev/null @@ -1,40 +0,0 @@ -From fa09f5c3ceef08947225a9c39edb09411f3929d4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 7 Mar 2015 14:19:20 -0500 -Subject: [PATCH] nspawn: fix use-after-free and leak in error paths - -CID #1257765. - -(cherry picked from commit 8a16a7b4e7f6702a7e6edaead80ecf04be7d3ba2) ---- - src/nspawn/nspawn.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 7724df96bd..78bd584834 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -3627,7 +3627,7 @@ int main(int argc, char *argv[]) { - } - - if (arg_ephemeral) { -- char *np; -+ _cleanup_free_ char *np = NULL; - - /* If the specified path is a mount point we - * generate the new snapshot immediately -@@ -3657,13 +3657,13 @@ int main(int argc, char *argv[]) { - - r = btrfs_subvol_snapshot(arg_directory, np, arg_read_only, true); - if (r < 0) { -- free(np); - log_error_errno(r, "Failed to create snapshot %s from %s: %m", np, arg_directory); - goto finish; - } - - free(arg_directory); - arg_directory = np; -+ np = NULL; - - remove_subvol = true; - diff --git a/0068-login-fix-copy-pasto-in-error-path.patch b/0068-login-fix-copy-pasto-in-error-path.patch deleted file mode 100644 index 567c12d..0000000 --- a/0068-login-fix-copy-pasto-in-error-path.patch +++ /dev/null @@ -1,25 +0,0 @@ -From c29a899e634e5b16c7afcce1ac7c28514988a9f6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 7 Mar 2015 14:23:38 -0500 -Subject: [PATCH] login: fix copy-pasto in error path - -CID #1256583. - -(cherry picked from commit dcee01125dde502bd8108c36ddf2026c1348865f) ---- - src/login/inhibit.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/login/inhibit.c b/src/login/inhibit.c -index 44bda34aff..88af23e35c 100644 ---- a/src/login/inhibit.c -+++ b/src/login/inhibit.c -@@ -260,7 +260,7 @@ int main(int argc, char *argv[]) { - - fd = inhibit(bus, &error); - if (fd < 0) { -- log_error("Failed to inhibit: %s", bus_error_message(&error, -r)); -+ log_error("Failed to inhibit: %s", bus_error_message(&error, fd)); - return EXIT_FAILURE; - } - diff --git a/0069-journalctl-update-hint-now-that-we-set-ACL-everywher.patch b/0069-journalctl-update-hint-now-that-we-set-ACL-everywher.patch deleted file mode 100644 index 8538c76..0000000 --- a/0069-journalctl-update-hint-now-that-we-set-ACL-everywher.patch +++ /dev/null @@ -1,63 +0,0 @@ -From e8d55cb62e0c12b09d3fa02f4fc1a1e0b197020b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 8 Mar 2015 11:04:59 -0400 -Subject: [PATCH] journalctl: update hint now that we set ACL everywhere - -(cherry picked from commit 05c1853093d8c4e4aa16876b5129b65dac5abd01) ---- - src/journal/journalctl.c | 25 +++++++++++-------------- - 1 file changed, 11 insertions(+), 14 deletions(-) - -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index 55c7786331..12c869f5af 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -1542,10 +1542,17 @@ static int access_check_var_log_journal(sd_journal *j) { - have_access = in_group("systemd-journal") > 0; - - if (!have_access) { -+ const char* dir; -+ -+ if (access("/run/log/journal", F_OK) >= 0) -+ dir = "/run/log/journal"; -+ else -+ dir = "/var/log/journal"; -+ - /* Let's enumerate all groups from the default ACL of - * the directory, which generally should allow access - * to most journal files too */ -- r = search_acl_groups(&g, "/var/log/journal/", &have_access); -+ r = search_acl_groups(&g, dir, &have_access); - if (r < 0) - return r; - } -@@ -1571,7 +1578,7 @@ static int access_check_var_log_journal(sd_journal *j) { - return log_oom(); - - log_notice("Hint: You are currently not seeing messages from other users and the system.\n" -- " Users in the groups '%s' can see all messages.\n" -+ " Users in groups '%s' can see all messages.\n" - " Pass -q to turn off this notice.", s); - } - } -@@ -1595,18 +1602,8 @@ static int access_check(sd_journal *j) { - - if (set_contains(j->errors, INT_TO_PTR(-EACCES))) { - #ifdef HAVE_ACL -- /* If /var/log/journal doesn't even exist, -- * unprivileged users have no access at all */ -- if (access("/var/log/journal", F_OK) < 0 && -- geteuid() != 0 && -- in_group("systemd-journal") <= 0) { -- log_error("Unprivileged users cannot access messages, unless persistent log storage is\n" -- "enabled. Users in the 'systemd-journal' group may always access messages."); -- return -EACCES; -- } -- -- /* If /var/log/journal exists, try to pring a nice -- notice if the user lacks access to it */ -+ /* If /run/log/journal or /var/log/journal exist, try -+ to pring a nice notice if the user lacks access to it. */ - if (!arg_quiet && geteuid() != 0) { - r = access_check_var_log_journal(j); - if (r < 0) diff --git a/0070-sd-journal-return-error-when-we-cannot-open-a-file.patch b/0070-sd-journal-return-error-when-we-cannot-open-a-file.patch deleted file mode 100644 index 42beb07..0000000 --- a/0070-sd-journal-return-error-when-we-cannot-open-a-file.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 67c29191b0d4880decb771f2ed5cd155a4de09db Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 8 Mar 2015 11:11:50 -0400 -Subject: [PATCH] sd-journal: return error when we cannot open a file - -Lack of this caused journalctl not to display a hint about missing groups -properly when the user lacks permissions. - -(cherry picked from commit 7b300be75e6d5755778dd7da63e7147866f21351) ---- - src/journal/sd-journal.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c -index 9b57e5945d..9b9e8ac859 100644 ---- a/src/journal/sd-journal.c -+++ b/src/journal/sd-journal.c -@@ -1248,7 +1248,7 @@ static int add_file(sd_journal *j, const char *prefix, const char *filename) { - r = add_any_file(j, path); - if (r == -ENOENT) - return 0; -- return 0; -+ return r; - } - - static int remove_file(sd_journal *j, const char *prefix, const char *filename) { diff --git a/0071-missing.h-add-NDA_.patch b/0071-missing.h-add-NDA_.patch deleted file mode 100644 index 093e8d7..0000000 --- a/0071-missing.h-add-NDA_.patch +++ /dev/null @@ -1,70 +0,0 @@ -From e1deb661ba31023c77aaac6656da514654df3393 Mon Sep 17 00:00:00 2001 -From: Michael Olbrich -Date: Mon, 9 Mar 2015 12:27:25 +0100 -Subject: [PATCH] missing.h: add NDA_* - -This is necessary to build with older kernel headers. NDA_VLAN was -introduced in v3.9 and NDA_PORT, NDA_VNI and NDA_IFINDEX in v3.10 - -(cherry picked from commit cf1755bac0426132c21fdca519a336ce7d920277) ---- - configure.ac | 4 +++- - src/shared/missing.h | 16 ++++++++++++++++ - 2 files changed, 19 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 6bc347423b..14a7736a9e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -333,7 +333,8 @@ AC_CHECK_DECLS([IFLA_INET6_ADDR_GEN_MODE, - IFLA_VXLAN_LOCAL6, - IFLA_IPTUN_6RD_RELAY_PREFIXLEN, - IFLA_BRIDGE_VLAN_INFO, -- IFLA_BRPORT_UNICAST_FLOOD], -+ IFLA_BRPORT_UNICAST_FLOOD, -+ NDA_IFINDEX], - [], [], [[ - #include - #include -@@ -344,6 +345,7 @@ AC_CHECK_DECLS([IFLA_INET6_ADDR_GEN_MODE, - #include - #include - #include -+#include - ]]) - - # This makes sure pkg.m4 is available. -diff --git a/src/shared/missing.h b/src/shared/missing.h -index e72631e130..802b4957e0 100644 ---- a/src/shared/missing.h -+++ b/src/shared/missing.h -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - #ifdef HAVE_AUDIT - #include -@@ -623,6 +624,21 @@ static inline int setns(int fd, int nstype) { - #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) - #endif - -+#if !HAVE_DECL_NDA_IFINDEX -+#define NDA_UNSPEC 0 -+#define NDA_DST 1 -+#define NDA_LLADDR 2 -+#define NDA_CACHEINFO 3 -+#define NDA_PROBES 4 -+#define NDA_VLAN 5 -+#define NDA_PORT 6 -+#define NDA_VNI 7 -+#define NDA_IFINDEX 8 -+#define __NDA_MAX 9 -+ -+#define NDA_MAX (__NDA_MAX - 1) -+#endif -+ - #ifndef IPV6_UNICAST_IF - #define IPV6_UNICAST_IF 76 - #endif diff --git a/0072-udevd-close-race-in-udev-settle.patch b/0072-udevd-close-race-in-udev-settle.patch deleted file mode 100644 index 925baba..0000000 --- a/0072-udevd-close-race-in-udev-settle.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 0c9591e78e2dde262865e3c683d2fbd80692d4ff Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Mon, 9 Mar 2015 16:16:23 +0100 -Subject: [PATCH] udevd: close race in udev settle - -The udev-settle guarantees that udevd is no longer processing any of the -events casued by udev-trigger. The way this works is that it sends a -synchronous PING to udevd after udev-trigger has ran, and when that returns -it knows that udevd has started processing the events from udev-trigger. -udev-settle will then wait for the event queue to empty before returning. - -However, there was a race here, as we would only update the /run state at -the beginning of the event loop, before reading out new events and before -processing the ping. - -That means that if the first uevent arrived in the same event-loop iteration -as the PING, we would return the ping before updating the queue state in /run -(which would happen on the next iteration). - -The race window here is tiny (as the /run state would probably get updated -before udev-settle got a chance to read /run), but still a possibility. - -Fix the problem by updating the /run state as the last step before returning -the PING. - -We must still update it at the beginning of the loop as well, otherwise we -risk being stuck in poll() with a stale state in /run. - -Reported-by: Daniel Drake -(cherry picked from commit db93e063bdffe0a8b95fcc522aeacddf62d1a9f9) ---- - src/udev/udevd.c | 26 +++++++++++++++++--------- - 1 file changed, 17 insertions(+), 9 deletions(-) - -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 99d4c8983a..e98c1fd6da 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -909,6 +909,17 @@ static void handle_signal(struct udev *udev, int signo) { - } - } - -+static void event_queue_update(void) { -+ if (!udev_list_node_is_empty(&event_list)) { -+ int fd; -+ -+ fd = open("/run/udev/queue", O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444); -+ if (fd >= 0) -+ close(fd); -+ } else -+ unlink("/run/udev/queue"); -+} -+ - static int systemd_fds(struct udev *udev, int *rctrl, int *rnetlink) { - int ctrl = -1, netlink = -1; - int fd, n; -@@ -1369,15 +1380,7 @@ int main(int argc, char *argv[]) { - } - - /* tell settle that we are busy or idle */ -- if (!udev_list_node_is_empty(&event_list)) { -- int fd; -- -- fd = open("/run/udev/queue", O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444); -- if (fd >= 0) -- close(fd); -- } else { -- unlink("/run/udev/queue"); -- } -+ event_queue_update(); - - fdcount = epoll_wait(fd_ep, ev, ELEMENTSOF(ev), timeout); - if (fdcount < 0) -@@ -1502,6 +1505,11 @@ int main(int argc, char *argv[]) { - if (is_inotify) - handle_inotify(udev); - -+ /* tell settle that we are busy or idle, this needs to be before the -+ * PING handling -+ */ -+ event_queue_update(); -+ - /* - * This needs to be after the inotify handling, to make sure, - * that the ping is send back after the possibly generated diff --git a/0073-man-document-that-ExecStartPre-is-not-the-place-to-s.patch b/0073-man-document-that-ExecStartPre-is-not-the-place-to-s.patch deleted file mode 100644 index c045c4b..0000000 --- a/0073-man-document-that-ExecStartPre-is-not-the-place-to-s.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 5180cbe32605e4ae5d1b8870a845d6bde73af168 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 9 Mar 2015 18:01:47 +0100 -Subject: [PATCH] man: document that ExecStartPre= is not the place to start - long-running processes - -(cherry picked from commit b481de3b22fcd838a8f059aed8745375afdb9eca) ---- - man/systemd.service.xml | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/man/systemd.service.xml b/man/systemd.service.xml -index c03b4e8a54..f598705633 100644 ---- a/man/systemd.service.xml -+++ b/man/systemd.service.xml -@@ -334,6 +334,11 @@ - If any of those commands (not prefixed with - -) fail, the rest are not executed and the - unit is considered failed. -+ -+ Note that ExecStartPre= may not be -+ used to start long-running processes. All processes forked -+ off by processes invoked via ExecStartPre= will -+ be killed before the next service process is run. - - - diff --git a/0074-journal-fix-return-code.patch b/0074-journal-fix-return-code.patch deleted file mode 100644 index caff010..0000000 --- a/0074-journal-fix-return-code.patch +++ /dev/null @@ -1,31 +0,0 @@ -From c59d61522d87fdaca015f51466d7357288a95110 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Mon, 9 Mar 2015 17:46:30 -0400 -Subject: [PATCH] journal: fix return code - -Introduced in fa6ac76083b8ff. - -Might be related to CID #1261724, but I don't know if coverity can -recurse this deep. - -(cherry picked from commit 977eaa1eae53af7f418d87fcb42f4a4d34aad739) ---- - src/journal/journal-file.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 24c49b916a..f500568fec 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -2652,10 +2652,8 @@ int journal_file_open( - } - - r = mmap_cache_get(f->mmap, f->fd, f->prot, CONTEXT_HEADER, true, 0, PAGE_ALIGN(sizeof(Header)), &f->last_stat, &h); -- if (r < 0) { -- r = -errno; -+ if (r < 0) - goto fail; -- } - - f->header = h; - diff --git a/0075-console-fix-error-code-inversion.patch b/0075-console-fix-error-code-inversion.patch deleted file mode 100644 index 9e4ce33..0000000 --- a/0075-console-fix-error-code-inversion.patch +++ /dev/null @@ -1,27 +0,0 @@ -From c04228cbd9373f2e5242e871ef1cb8878559f27e Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Tue, 16 Dec 2014 16:14:48 +0100 -Subject: [PATCH] console: fix error-code inversion - -The error-code propagated via sysview is always negative. Avoid -multiplying by -1 before returning it. Otherwise, we will return >0 -instead of <0, which will not be detected as error by sysview-core. - -(cherry picked from commit 84c3561c58dd992b339afe5bb4c41971a2ebc486) ---- - src/console/consoled-manager.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/console/consoled-manager.c b/src/console/consoled-manager.c -index 9dd62f04a0..25de0a218f 100644 ---- a/src/console/consoled-manager.c -+++ b/src/console/consoled-manager.c -@@ -228,7 +228,7 @@ static int manager_sysview_session_control(Manager *m, sysview_event *event) { - sysview_session_get_name(session)); - session_free(s); - sysview_session_set_userdata(session, NULL); -- return -error; -+ return error; - } - - return 0; diff --git a/0076-bus-proxy-complain-only-once-about-queue-overflows.patch b/0076-bus-proxy-complain-only-once-about-queue-overflows.patch deleted file mode 100644 index de8e8d9..0000000 --- a/0076-bus-proxy-complain-only-once-about-queue-overflows.patch +++ /dev/null @@ -1,72 +0,0 @@ -From c98114c5e5c5b9d1e8fea75a0bfb37f0d329fd36 Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Wed, 11 Mar 2015 13:53:21 +0100 -Subject: [PATCH] bus-proxy: complain only once about queue overflows - -If the local peer does not dispatch its incoming queue, the bus-proxy will -slowly fill its outgoing queue. Once its full, it will continously -complain that it cannot forward its messages. - -As it turns out, pulseaudio does have an idle background dbus connection -that is not integrated into any mainloop (and given that gdbus and -libdbus1 both support background shared connections, PA is probably not -the only example), therefore, the bus-proxy will loudly complain if it -cannot forward NameOwnerChanged events once the queue is full. - -This commit makes the proxy track queue-state and complain only once the -queue runs full, not if it is already full. - -A PA bug-report (and patch) has been filed, and other applications should -be fixed similarly. Hence, lets keep the error message, instead of -dropping it. It's unused resources we really want to get rid of, so -silencing the message does not really help (which is actually what -dbus-daemon does). - -(cherry picked from commit ec2c7b56599981a7d9e76b15c75af3e1af3e6f81) ---- - src/bus-proxyd/proxy.c | 16 ++++++++++++---- - src/bus-proxyd/proxy.h | 1 + - 2 files changed, 13 insertions(+), 4 deletions(-) - -diff --git a/src/bus-proxyd/proxy.c b/src/bus-proxyd/proxy.c -index 3dea908f5b..e13cf5e2ea 100644 ---- a/src/bus-proxyd/proxy.c -+++ b/src/bus-proxyd/proxy.c -@@ -729,13 +729,21 @@ static int proxy_process_destination_to_local(Proxy *p) { - - /* Return the error to the client, if we can */ - synthetic_reply_method_errnof(m, r, "Failed to forward message we got from destination: %m"); -- log_error_errno(r, -- "Failed to forward message we got from destination: uid=" UID_FMT " gid=" GID_FMT" message=%s destination=%s path=%s interface=%s member=%s: %m", -- p->local_creds.uid, p->local_creds.gid, bus_message_type_to_string(m->header->type), -- strna(m->destination), strna(m->path), strna(m->interface), strna(m->member)); -+ if (r == -ENOBUFS) { -+ /* if local dbus1 peer does not dispatch its queue, warn only once */ -+ if (!p->queue_overflow) -+ log_error("Dropped messages due to queue overflow of local peer (pid: "PID_FMT" uid: "UID_FMT")", p->local_creds.pid, p->local_creds.uid); -+ p->queue_overflow = true; -+ } else -+ log_error_errno(r, -+ "Failed to forward message we got from destination: uid=" UID_FMT " gid=" GID_FMT" message=%s destination=%s path=%s interface=%s member=%s: %m", -+ p->local_creds.uid, p->local_creds.gid, bus_message_type_to_string(m->header->type), -+ strna(m->destination), strna(m->path), strna(m->interface), strna(m->member)); -+ - return 1; - } - -+ p->queue_overflow = false; - return 1; - } - -diff --git a/src/bus-proxyd/proxy.h b/src/bus-proxyd/proxy.h -index 913d47071b..782c4e60b3 100644 ---- a/src/bus-proxyd/proxy.h -+++ b/src/bus-proxyd/proxy.h -@@ -40,6 +40,7 @@ struct Proxy { - SharedPolicy *policy; - - bool got_hello : 1; -+ bool queue_overflow : 1; - }; - - int proxy_new(Proxy **out, int in_fd, int out_fd, const char *dest); diff --git a/0077-cgtop-fix-assert-when-not-on-tty.patch b/0077-cgtop-fix-assert-when-not-on-tty.patch deleted file mode 100644 index ef993b7..0000000 --- a/0077-cgtop-fix-assert-when-not-on-tty.patch +++ /dev/null @@ -1,31 +0,0 @@ -From b964d7b5736871e9bc7e07df209006d5da86cbe6 Mon Sep 17 00:00:00 2001 -From: Umut Tezduyar Lindskog -Date: Wed, 11 Mar 2015 11:24:18 +0100 -Subject: [PATCH] cgtop: fix assert when not on tty - -systemd-cgtop --dept=1 -b -n 10 -d 0.1 | cat - -Assertion 'new_length >= 3' failed at src/shared/util.c:3 \ -595, function ellipsize_mem(). Aborting. -Aborted (core dumped) - -(David: add comment) - -(cherry picked from commit 510c4a0f1e7e7efe2897d2fbb9067f121467b103) ---- - src/cgtop/cgtop.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c -index 3c7ad40605..f951c37cbc 100644 ---- a/src/cgtop/cgtop.c -+++ b/src/cgtop/cgtop.c -@@ -447,7 +447,7 @@ static int display(Hashmap *a) { - Group *g; - Group **array; - signed path_columns; -- unsigned rows, n = 0, j, maxtcpu = 0, maxtpath = 0; -+ unsigned rows, n = 0, j, maxtcpu = 0, maxtpath = 3; /* 3 for ellipsize() to work properly */ - char buffer[MAX3(21, FORMAT_BYTES_MAX, FORMAT_TIMESPAN_MAX)]; - - assert(a); diff --git a/0078-man-split-paragraph.patch b/0078-man-split-paragraph.patch deleted file mode 100644 index 94fd8db..0000000 --- a/0078-man-split-paragraph.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f6aeb4c2de958ed625edacb6b14a5e4cca6d726c Mon Sep 17 00:00:00 2001 -From: David Herrmann -Date: Thu, 12 Mar 2015 12:46:46 +0100 -Subject: [PATCH] man: split paragraph - -Explicitly put the "multiple EnvironmentFile=" description into its own -paragraph to make it much easier to find. - -(cherry picked from commit f407824d751a9cb31abfdf0343fe179e0efef259) ---- - man/systemd.exec.xml | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml -index 11b160e58f..fdb1578641 100644 ---- a/man/systemd.exec.xml -+++ b/man/systemd.exec.xml -@@ -283,7 +283,9 @@ - shortly before the process is executed (more specifically, - after all processes from a previous unit state terminated. - This means you can generate these files in one unit state, and -- read it with this option in the next). Settings from these -+ read it with this option in the next). -+ -+ Settings from these - files override settings made with - Environment=. If the same variable is set - twice from these files, the files will be read in the order diff --git a/0079-hwdb-update.patch b/0079-hwdb-update.patch deleted file mode 100644 index 8a940c6..0000000 --- a/0079-hwdb-update.patch +++ /dev/null @@ -1,3156 +0,0 @@ -From 9ac622b00ca23f9d01e0ff0c944130be8dc3a0e9 Mon Sep 17 00:00:00 2001 -From: Kay Sievers -Date: Thu, 12 Mar 2015 18:34:23 +0100 -Subject: [PATCH] hwdb: update - -(cherry picked from commit b83cbcb7d95482baa588706227f01bbbe44b9d12) ---- - hwdb/20-OUI.hwdb | 247 ++++++++++- - hwdb/20-pci-vendor-model.hwdb | 936 +++++++++++++++++++++++++++-------------- - hwdb/20-sdio-vendor-model.hwdb | 30 ++ - hwdb/20-usb-vendor-model.hwdb | 181 +++++++- - 4 files changed, 1060 insertions(+), 334 deletions(-) - -diff --git a/hwdb/20-OUI.hwdb b/hwdb/20-OUI.hwdb -index 6976bdf649..deb323d34c 100644 ---- a/hwdb/20-OUI.hwdb -+++ b/hwdb/20-OUI.hwdb -@@ -28829,7 +28829,7 @@ OUI:0013EB* - ID_OUI_FROM_DATABASE=Sysmaster Corporation - - OUI:0013EC* -- ID_OUI_FROM_DATABASE=Sunbay Software AG -+ ID_OUI_FROM_DATABASE=Netsnapper Technologies SARL - - OUI:0013ED* - ID_OUI_FROM_DATABASE=PSIA -@@ -44296,6 +44296,9 @@ OUI:0030FE* - OUI:0030FF* - ID_OUI_FROM_DATABASE=DATAFAB SYSTEMS, INC. - -+OUI:00323A* -+ ID_OUI_FROM_DATABASE=so-logic -+ - OUI:00336C* - ID_OUI_FROM_DATABASE=SynapSense Corporation - -@@ -44513,7 +44516,7 @@ OUI:004035* - ID_OUI_FROM_DATABASE=OPCOM - - OUI:004036* -- ID_OUI_FROM_DATABASE=TRIBE COMPUTER WORKS, INC. -+ ID_OUI_FROM_DATABASE=Zoom Telephonics, Inc - - OUI:004037* - ID_OUI_FROM_DATABASE=SEA-ILAN, INC. -@@ -50456,7 +50459,7 @@ OUI:00D093* - ID_OUI_FROM_DATABASE=TQ - COMPONENTS GMBH - - OUI:00D094* -- ID_OUI_FROM_DATABASE=TIMELINE VISTA, INC. -+ ID_OUI_FROM_DATABASE=Seeion Control LLC - - OUI:00D095* - ID_OUI_FROM_DATABASE=Alcatel-Lucent, Enterprise Business Group -@@ -52561,6 +52564,9 @@ OUI:082719* - OUI:082AD0* - ID_OUI_FROM_DATABASE=SRD Innovations Inc. - -+OUI:082CB0* -+ ID_OUI_FROM_DATABASE=Network Instruments -+ - OUI:082E5F* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -52699,6 +52705,9 @@ OUI:088E4F* - OUI:088F2C* - ID_OUI_FROM_DATABASE=Hills Sound Vision & Lighting - -+OUI:08952A* -+ ID_OUI_FROM_DATABASE=Technicolor CH USA Inc -+ - OUI:0896D7* - ID_OUI_FROM_DATABASE=AVM GmbH - -@@ -52804,6 +52813,9 @@ OUI:08EB74* - OUI:08EBED* - ID_OUI_FROM_DATABASE=World Elite Technology Co.,LTD - -+OUI:08ECA9* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:08EDB9* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -@@ -53320,6 +53332,9 @@ OUI:103DEA* - OUI:1040F3* - ID_OUI_FROM_DATABASE=Apple - -+OUI:10417F* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:104369* - ID_OUI_FROM_DATABASE=Soundmax Electronic Limited - -@@ -53611,6 +53626,9 @@ OUI:141330* - OUI:14144B* - ID_OUI_FROM_DATABASE=FUJIAN STAR-NET COMMUNICATION CO.,LTD - -+OUI:14157C* -+ ID_OUI_FROM_DATABASE=TOKYO COSMOS ELECTRIC CO.,LTD. -+ - OUI:141A51* - ID_OUI_FROM_DATABASE=Treetech Sistemas Digitais - -@@ -53656,6 +53674,9 @@ OUI:14307A* - OUI:1430C6* - ID_OUI_FROM_DATABASE=Motorola Mobility LLC - -+OUI:1432D1* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:14358B* - ID_OUI_FROM_DATABASE=Mediabridge Products, LLC. - -@@ -53716,6 +53737,9 @@ OUI:1458D0* - OUI:145A05* - ID_OUI_FROM_DATABASE=Apple - -+OUI:145A83* -+ ID_OUI_FROM_DATABASE=Logi-D inc -+ - OUI:145BD1* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -@@ -53929,6 +53953,9 @@ OUI:181420* - OUI:181456* - ID_OUI_FROM_DATABASE=Nokia Corporation - -+OUI:1816C9* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:181714* - ID_OUI_FROM_DATABASE=DAEWOOIS - -@@ -54049,6 +54076,9 @@ OUI:185936* - OUI:185AE8* - ID_OUI_FROM_DATABASE=Zenotech.Co.,Ltd - -+OUI:185D9A* -+ ID_OUI_FROM_DATABASE=BobjGear LLC -+ - OUI:18622C* - ID_OUI_FROM_DATABASE=SAGEMCOM SAS - -@@ -54532,6 +54562,9 @@ OUI:1CAB01* - OUI:1CABA7* - ID_OUI_FROM_DATABASE=Apple - -+OUI:1CADD1* -+ ID_OUI_FROM_DATABASE=Bosung Electronics Co., Ltd. -+ - OUI:1CAF05* - ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd - -@@ -54937,6 +54970,9 @@ OUI:20DCE6* - OUI:20DF3F* - ID_OUI_FROM_DATABASE=Nanjing SAC Power Grid Automation Co., Ltd. - -+OUI:20E407* -+ ID_OUI_FROM_DATABASE=Spark srl -+ - OUI:20E52A* - ID_OUI_FROM_DATABASE=NETGEAR INC., - -@@ -55252,6 +55288,9 @@ OUI:24E271* - OUI:24E314* - ID_OUI_FROM_DATABASE=Apple - -+OUI:24E5AA* -+ ID_OUI_FROM_DATABASE=Philips Oral Healthcare, Inc. -+ - OUI:24E6BA* - ID_OUI_FROM_DATABASE=JSC Zavod im. Kozitsky - -@@ -56185,6 +56224,9 @@ OUI:308730* - OUI:308999* - ID_OUI_FROM_DATABASE=Guangdong East Power Co., - -+OUI:3089D3* -+ ID_OUI_FROM_DATABASE=Shenzhen ucloudlink new technology co.,LTD -+ - OUI:308CFB* - ID_OUI_FROM_DATABASE=Dropcam - -@@ -56461,6 +56503,9 @@ OUI:3476C5* - OUI:347877* - ID_OUI_FROM_DATABASE=O-NET Communications(Shenzhen) Limited - -+OUI:347A60* -+ ID_OUI_FROM_DATABASE=Pace plc -+ - OUI:347E39* - ID_OUI_FROM_DATABASE=Nokia Danmark A/S - -@@ -56506,6 +56551,9 @@ OUI:3499D7* - OUI:349A0D* - ID_OUI_FROM_DATABASE=ZBD Displays Ltd - -+OUI:349B5B* -+ ID_OUI_FROM_DATABASE=Maquet GmbH -+ - OUI:349D90* - ID_OUI_FROM_DATABASE=Heinzmann GmbH & CO. KG - -@@ -57256,6 +57304,9 @@ OUI:3CA10D* - OUI:3CA315* - ID_OUI_FROM_DATABASE=Bless Information & Communications Co., Ltd - -+OUI:3CA31A* -+ ID_OUI_FROM_DATABASE=Oilfind International LLC -+ - OUI:3CA72B* - ID_OUI_FROM_DATABASE=MRV Communications (Networks) LTD - -@@ -57343,6 +57394,9 @@ OUI:3CD92B* - OUI:3CD9CE* - ID_OUI_FROM_DATABASE=Eclipse WiFi - -+OUI:3CDA2A* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:3CDF1E* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -@@ -57592,6 +57646,9 @@ OUI:408B07* - OUI:408BF6* - ID_OUI_FROM_DATABASE=Shenzhen TCL New Technology Co; Ltd. - -+OUI:408D5C* -+ ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. -+ - OUI:409558* - ID_OUI_FROM_DATABASE=Aisino Corporation - -@@ -58093,6 +58150,9 @@ OUI:44ED57* - OUI:44EE30* - ID_OUI_FROM_DATABASE=Budelmann Elektronik GmbH - -+OUI:44F436* -+ ID_OUI_FROM_DATABASE=zte corporation -+ - OUI:44F459* - ID_OUI_FROM_DATABASE=Samsung Electronics - -@@ -58117,6 +58177,9 @@ OUI:48066A* - OUI:480C49* - ID_OUI_FROM_DATABASE=NAKAYO TELECOMMUNICATIONS,INC - -+OUI:480FCF* -+ ID_OUI_FROM_DATABASE=Hewlett Packard -+ - OUI:481249* - ID_OUI_FROM_DATABASE=Luxcom Technologies Inc. - -@@ -58171,6 +58234,9 @@ OUI:4846F1* - OUI:4846FB* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -+OUI:485073* -+ ID_OUI_FROM_DATABASE=Microsoft Corporation -+ - OUI:4851B7* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -58636,6 +58702,9 @@ OUI:4CB199* - OUI:4CB4EA* - ID_OUI_FROM_DATABASE=HRD (S) PTE., LTD. - -+OUI:4CB76D* -+ ID_OUI_FROM_DATABASE=Novi Security -+ - OUI:4CB81C* - ID_OUI_FROM_DATABASE=SAM Electronics GmbH - -@@ -58705,6 +58774,9 @@ OUI:4CEB42* - OUI:4CEDDE* - ID_OUI_FROM_DATABASE=Askey Computer Corp - -+OUI:4CEEB0* -+ ID_OUI_FROM_DATABASE=SHC Netzwerktechnik GmbH -+ - OUI:4CF02E* - ID_OUI_FROM_DATABASE=Vifa Denmark A/S - -@@ -59032,6 +59104,9 @@ OUI:50ED94* - OUI:50F003* - ID_OUI_FROM_DATABASE=Open Stack, Inc. - -+OUI:50F0D3* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:50F43C* - ID_OUI_FROM_DATABASE=Leeo Inc - -@@ -59137,6 +59212,9 @@ OUI:5439DF* - OUI:543D37* - ID_OUI_FROM_DATABASE=Ruckus Wireless - -+OUI:5440AD* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:544249* - ID_OUI_FROM_DATABASE=Sony Corporation - -@@ -59170,6 +59248,9 @@ OUI:545EBD* - OUI:545FA9* - ID_OUI_FROM_DATABASE=Teracom Limited - -+OUI:546172* -+ ID_OUI_FROM_DATABASE=ZODIAC AEROSPACE SAS -+ - OUI:5461EA* - ID_OUI_FROM_DATABASE=Zaplox AB - -@@ -59284,6 +59365,9 @@ OUI:54BEF7* - OUI:54C80F* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:54CD10* -+ ID_OUI_FROM_DATABASE=Panasonic Mobile Communications Co.,Ltd. -+ - OUI:54CDA7* - ID_OUI_FROM_DATABASE=Fujian Shenzhou Electronic Co.,Ltd - -@@ -59794,6 +59878,9 @@ OUI:5C41E7* - OUI:5C43D2* - ID_OUI_FROM_DATABASE=HAZEMEYER - -+OUI:5C4527* -+ ID_OUI_FROM_DATABASE=Juniper Networks -+ - OUI:5C4A26* - ID_OUI_FROM_DATABASE=Enguity Technology Corp - -@@ -59911,6 +59998,9 @@ OUI:5CAAFD* - OUI:5CAC4C* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. - -+OUI:5CB395* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:5CB43E* - ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD - -@@ -60859,6 +60949,9 @@ OUI:64F970* - OUI:64F987* - ID_OUI_FROM_DATABASE=Avvasi Inc. - -+OUI:64FB81* -+ ID_OUI_FROM_DATABASE=IEEE REGISTRATION AUTHORITY - Please see MAM public listing for more information. -+ - OUI:64FC8C* - ID_OUI_FROM_DATABASE=Zonar Systems - -@@ -61417,6 +61510,9 @@ OUI:6C9CE9* - OUI:6C9CED* - ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. - -+OUI:6CA100* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:6CA682* - ID_OUI_FROM_DATABASE=EDAM information & communications - -@@ -61507,6 +61603,9 @@ OUI:6CD68A* - OUI:6CDC6A* - ID_OUI_FROM_DATABASE=Promethean Limited - -+OUI:6CE01E* -+ ID_OUI_FROM_DATABASE=Modcam AB -+ - OUI:6CE0B0* - ID_OUI_FROM_DATABASE=SOUND4 - -@@ -62119,6 +62218,9 @@ OUI:747E2D* - OUI:748114* - ID_OUI_FROM_DATABASE=Apple - -+OUI:74852A* -+ ID_OUI_FROM_DATABASE=PEGATRON CORPORATION -+ - OUI:74867A* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -62548,6 +62650,9 @@ OUI:789ED0* - OUI:789F4C* - ID_OUI_FROM_DATABASE=HOERBIGER Elektronik GmbH - -+OUI:789F70* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:789F87* - ID_OUI_FROM_DATABASE=Siemens AG I IA PP PRM - -@@ -62620,6 +62725,12 @@ OUI:78B81A* - OUI:78BAD0* - ID_OUI_FROM_DATABASE=Shinybow Technology Co. Ltd. - -+OUI:78BAF9* -+ ID_OUI_FROM_DATABASE=Cisco -+ -+OUI:78BDBC* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:78BEB6* - ID_OUI_FROM_DATABASE=Enhanced Vision - -@@ -63002,7 +63113,7 @@ OUI:7CB21B* - ID_OUI_FROM_DATABASE=Cisco SPVTG - - OUI:7CB232* -- ID_OUI_FROM_DATABASE=TCL King High Frequency EI,Co.,LTD -+ ID_OUI_FROM_DATABASE=Hui Zhou Gaoshengda Technology Co.,LTD - - OUI:7CB542* - ID_OUI_FROM_DATABASE=ACES Technology -@@ -63133,6 +63244,9 @@ OUI:7CF429* - OUI:7CF854* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:7CF90E* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:7CFADF* - ID_OUI_FROM_DATABASE=Apple - -@@ -63235,6 +63349,9 @@ OUI:8038FD* - OUI:8039E5* - ID_OUI_FROM_DATABASE=PATLITE CORPORATION - -+OUI:803B2A* -+ ID_OUI_FROM_DATABASE=ABB Xiamen Low Voltage Equipment Co.,Ltd. -+ - OUI:803B9A* - ID_OUI_FROM_DATABASE=ghe-ces electronic ag - -@@ -63262,6 +63379,9 @@ OUI:804971* - OUI:804B20* - ID_OUI_FROM_DATABASE=Ventilation Control - -+OUI:804E81* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:804F58* - ID_OUI_FROM_DATABASE=ThinkEco, Inc. - -@@ -63514,6 +63634,9 @@ OUI:840B2D* - OUI:840F45* - ID_OUI_FROM_DATABASE=Shanghai GMT Digital Technologies Co., Ltd - -+OUI:84119E* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:841715* - ID_OUI_FROM_DATABASE=GP Electronics (HK) Ltd. - -@@ -63580,6 +63703,9 @@ OUI:842B50* - OUI:842BBC* - ID_OUI_FROM_DATABASE=Modelleisenbahn GmbH - -+OUI:842E27* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:842F75* - ID_OUI_FROM_DATABASE=Innokas Group - -@@ -63943,6 +64069,9 @@ OUI:883612* - OUI:883B8B* - ID_OUI_FROM_DATABASE=Cheering Connection Co. Ltd. - -+OUI:884157* -+ ID_OUI_FROM_DATABASE=Shenzhen Atsmart Technology Co.,Ltd. -+ - OUI:8841C1* - ID_OUI_FROM_DATABASE=ORBISAT DA AMAZONIA IND E AEROL SA - -@@ -64006,6 +64135,9 @@ OUI:88708C* - OUI:8870EF* - ID_OUI_FROM_DATABASE=SC Professional Trading Co., Ltd. - -+OUI:887384* -+ ID_OUI_FROM_DATABASE=Toshiba -+ - OUI:887398* - ID_OUI_FROM_DATABASE=K2E Tekpoint - -@@ -64039,6 +64171,9 @@ OUI:888B5D* - OUI:888C19* - ID_OUI_FROM_DATABASE=Brady Corp Asia Pacific Ltd - -+OUI:88908D* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:889166* - ID_OUI_FROM_DATABASE=Viewcooper Corp. - -@@ -64075,6 +64210,9 @@ OUI:889FFA* - OUI:88A25E* - ID_OUI_FROM_DATABASE=juniper networks - -+OUI:88A2D7* -+ ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD -+ - OUI:88A3CC* - ID_OUI_FROM_DATABASE=Amatis Controls - -@@ -64591,6 +64729,9 @@ OUI:90203A* - OUI:902083* - ID_OUI_FROM_DATABASE=General Engine Management Systems Ltd. - -+OUI:902106* -+ ID_OUI_FROM_DATABASE=BSkyB Ltd -+ - OUI:902155* - ID_OUI_FROM_DATABASE=HTC Corporation - -@@ -64711,6 +64852,9 @@ OUI:9067F3* - OUI:9068C3* - ID_OUI_FROM_DATABASE=Motorola Mobility LLC - -+OUI:906CAC* -+ ID_OUI_FROM_DATABASE=Fortinet, Inc. -+ - OUI:906DC8* - ID_OUI_FROM_DATABASE=DLG Automação Industrial Ltda - -@@ -65254,6 +65398,9 @@ OUI:94E711* - OUI:94E848* - ID_OUI_FROM_DATABASE=FYLDE MICRO LTD - -+OUI:94E96A* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:94E98C* - ID_OUI_FROM_DATABASE=Alcatel-Lucent - -@@ -65935,6 +66082,9 @@ OUI:9CF938* - OUI:9CFBF1* - ID_OUI_FROM_DATABASE=MESOMATIC GmbH & Co.KG - -+OUI:9CFC01* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:9CFFBE* - ID_OUI_FROM_DATABASE=OTSL Inc. - -@@ -65977,6 +66127,9 @@ OUI:A0143D* - OUI:A0165C* - ID_OUI_FROM_DATABASE=Triteka LTD - -+OUI:A01828* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:A01859* - ID_OUI_FROM_DATABASE=Shenzhen Yidashi Electronics Co Ltd - -@@ -66178,6 +66331,9 @@ OUI:A0A23C* - OUI:A0A3E2* - ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc - -+OUI:A0A65C* -+ ID_OUI_FROM_DATABASE=Supercomputing Systems AG -+ - OUI:A0A763* - ID_OUI_FROM_DATABASE=Polytron Vertrieb GmbH - -@@ -66382,6 +66538,9 @@ OUI:A42305* - OUI:A424B3* - ID_OUI_FROM_DATABASE=FlatFrog Laboratories AB - -+OUI:A424DD* -+ ID_OUI_FROM_DATABASE=Cambrionix Ltd -+ - OUI:A4251B* - ID_OUI_FROM_DATABASE=Avaya, Inc - -@@ -66397,6 +66556,9 @@ OUI:A42B8C* - OUI:A42C08* - ID_OUI_FROM_DATABASE=Masterwork Automodules - -+OUI:A43135* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:A433D1* - ID_OUI_FROM_DATABASE=Fibrlink Communications Co.,Ltd. - -@@ -66475,6 +66637,9 @@ OUI:A46032* - OUI:A46706* - ID_OUI_FROM_DATABASE=Apple - -+OUI:A46C2A* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:A46CC1* - ID_OUI_FROM_DATABASE=LTi REEnergy GmbH - -@@ -67066,6 +67231,9 @@ OUI:AC20AA* - OUI:AC220B* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -+OUI:AC293A* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:AC2DA3* - ID_OUI_FROM_DATABASE=TXTR GmbH - -@@ -67144,6 +67312,9 @@ OUI:AC562C* - OUI:AC583B* - ID_OUI_FROM_DATABASE=Human Assembler, Inc. - -+OUI:AC5A14* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:AC5D10* - ID_OUI_FROM_DATABASE=Pace Americas - -@@ -67153,6 +67324,9 @@ OUI:AC5E8C* - OUI:AC6123* - ID_OUI_FROM_DATABASE=Drivven, Inc. - -+OUI:AC620D* -+ ID_OUI_FROM_DATABASE=Jabil Circuit (Wuxi) Co. LTD -+ - OUI:AC6706* - ID_OUI_FROM_DATABASE=Ruckus Wireless - -@@ -67180,6 +67354,9 @@ OUI:AC7289* - OUI:AC7A42* - ID_OUI_FROM_DATABASE=iConnectivity - -+OUI:AC7A4D* -+ ID_OUI_FROM_DATABASE=ALPS ELECTRIC CO.,LTD. -+ - OUI:AC7BA1* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -67402,6 +67579,9 @@ OUI:ACF7F3* - OUI:ACF97E* - ID_OUI_FROM_DATABASE=ELESYS INC. - -+OUI:ACFD93* -+ ID_OUI_FROM_DATABASE=Weifang GoerTek Electronics Co., Ltd. -+ - OUI:ACFDCE* - ID_OUI_FROM_DATABASE=Intel Corporate - -@@ -67688,7 +67868,7 @@ OUI:B0D59D* - ID_OUI_FROM_DATABASE=Shenzhen Zowee Technology Co., Ltd - - OUI:B0D7C5* -- ID_OUI_FROM_DATABASE=STP KFT -+ ID_OUI_FROM_DATABASE=Logipix Ltd - - OUI:B0DA00* - ID_OUI_FROM_DATABASE=CERA ELECTRONIQUE -@@ -67891,6 +68071,9 @@ OUI:B467E9* - OUI:B46D35* - ID_OUI_FROM_DATABASE=Dalian Seasky Automation Co;Ltd - -+OUI:B46D83* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:B47356* - ID_OUI_FROM_DATABASE=Hangzhou Treebear Networking Co., Ltd. - -@@ -68569,6 +68752,9 @@ OUI:BC38D2* - OUI:BC39A6* - ID_OUI_FROM_DATABASE=CSUN System Technology Co.,LTD - -+OUI:BC3AEA* -+ ID_OUI_FROM_DATABASE=GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD. -+ - OUI:BC3BAF* - ID_OUI_FROM_DATABASE=Apple - -@@ -69211,6 +69397,9 @@ OUI:C40F09* - OUI:C4108A* - ID_OUI_FROM_DATABASE=Ruckus Wireless - -+OUI:C412F5* -+ ID_OUI_FROM_DATABASE=D-Link International -+ - OUI:C413E2* - ID_OUI_FROM_DATABASE=Aerohive Networks Inc. - -@@ -69520,6 +69709,9 @@ OUI:C4E92F* - OUI:C4E984* - ID_OUI_FROM_DATABASE=TP-LINK TECHNOLOGIES CO.,LTD. - -+OUI:C4EA1D* -+ ID_OUI_FROM_DATABASE=Technicolor -+ - OUI:C4EBE3* - ID_OUI_FROM_DATABASE=RRCN SAS - -@@ -69586,6 +69778,9 @@ OUI:C81B6B* - OUI:C81E8E* - ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd - -+OUI:C81EE7* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:C81F66* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -69610,6 +69805,9 @@ OUI:C83232* - OUI:C8334B* - ID_OUI_FROM_DATABASE=Apple - -+OUI:C8348E* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:C835B8* - ID_OUI_FROM_DATABASE=Ericsson, EAB/RWI/K - -@@ -70018,6 +70216,9 @@ OUI:CC4BFB* - OUI:CC4E24* - ID_OUI_FROM_DATABASE=Brocade Communications Systems, Inc. - -+OUI:CC4EEC* -+ ID_OUI_FROM_DATABASE=HUMAX Co., Ltd. -+ - OUI:CC501C* - ID_OUI_FROM_DATABASE=KVH Industries, Inc. - -@@ -70279,6 +70480,9 @@ OUI:CCFCB1* - OUI:CCFE3C* - ID_OUI_FROM_DATABASE=Samsung Electronics - -+OUI:D0034B* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:D00790* - ID_OUI_FROM_DATABASE=Texas Instruments - -@@ -70321,6 +70525,9 @@ OUI:D023DB* - OUI:D02516* - ID_OUI_FROM_DATABASE=SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD. - -+OUI:D02598* -+ ID_OUI_FROM_DATABASE=Apple Inc -+ - OUI:D02788* - ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd - -@@ -70342,6 +70549,9 @@ OUI:D03972* - OUI:D039B3* - ID_OUI_FROM_DATABASE=ARRIS Group, Inc. - -+OUI:D0431E* -+ ID_OUI_FROM_DATABASE=Dell Inc. -+ - OUI:D046DC* - ID_OUI_FROM_DATABASE=Southwest Research Institute - -@@ -70501,6 +70711,9 @@ OUI:D09C30* - OUI:D09D0A* - ID_OUI_FROM_DATABASE=LINKCOM - -+OUI:D09DAB* -+ ID_OUI_FROM_DATABASE=TCT mobile ltd -+ - OUI:D0A0D6* - ID_OUI_FROM_DATABASE=Chengdu TD Tech Ltd. - -@@ -71266,6 +71479,9 @@ OUI:D8977C* - OUI:D897BA* - ID_OUI_FROM_DATABASE=PEGATRON CORPORATION - -+OUI:D89A34* -+ ID_OUI_FROM_DATABASE=Beijing SHENQI Technology Co., Ltd. -+ - OUI:D89D67* - ID_OUI_FROM_DATABASE=Hewlett Packard - -@@ -72028,6 +72244,9 @@ OUI:E0D9A2* - OUI:E0DADC* - ID_OUI_FROM_DATABASE=JVC KENWOOD Corporation - -+OUI:E0DB10* -+ ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd -+ - OUI:E0DB55* - ID_OUI_FROM_DATABASE=Dell Inc - -@@ -72367,6 +72586,9 @@ OUI:E4F4C6* - OUI:E4F7A1* - ID_OUI_FROM_DATABASE=Datafox GmbH - -+OUI:E4F89C* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:E4F8EF* - ID_OUI_FROM_DATABASE=Samsung Elec Co.,Ltd - -@@ -72376,6 +72598,9 @@ OUI:E4F939* - OUI:E4FA1D* - ID_OUI_FROM_DATABASE=PAD Peripheral Advanced Design Inc. - -+OUI:E4FAFD* -+ ID_OUI_FROM_DATABASE=Intel Corporate -+ - OUI:E4FED9* - ID_OUI_FROM_DATABASE=EDMI Europe Ltd - -@@ -72739,6 +72964,9 @@ OUI:E8F1B0* - OUI:E8F226* - ID_OUI_FROM_DATABASE=MILLSON CUSTOM SOLUTIONS INC. - -+OUI:E8F2E3* -+ ID_OUI_FROM_DATABASE=Starcor Beijing Co.,Limited -+ - OUI:E8F928* - ID_OUI_FROM_DATABASE=RFTECH SRL - -@@ -72874,6 +73102,9 @@ OUI:EC5A86* - OUI:EC5C69* - ID_OUI_FROM_DATABASE=MITSUBISHI HEAVY INDUSTRIES MECHATRONICS SYSTEMS,LTD. - -+OUI:EC60E0* -+ ID_OUI_FROM_DATABASE=AVI-ON LABS -+ - OUI:EC6264* - ID_OUI_FROM_DATABASE=Global411 Internet Services, LLC - -@@ -73213,6 +73444,9 @@ OUI:F07765* - OUI:F077D0* - ID_OUI_FROM_DATABASE=Xcellen - -+OUI:F07816* -+ ID_OUI_FROM_DATABASE=Cisco -+ - OUI:F07959* - ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. - -@@ -73279,6 +73513,9 @@ OUI:F09FC2* - OUI:F0A764* - ID_OUI_FROM_DATABASE=GST Co., Ltd. - -+OUI:F0AB54* -+ ID_OUI_FROM_DATABASE=MITSUMI ELECTRIC CO.,LTD. -+ - OUI:F0ACA4* - ID_OUI_FROM_DATABASE=HBC-radiomatic - -diff --git a/hwdb/20-pci-vendor-model.hwdb b/hwdb/20-pci-vendor-model.hwdb -index 6c22088873..3b35b26e59 100644 ---- a/hwdb/20-pci-vendor-model.hwdb -+++ b/hwdb/20-pci-vendor-model.hwdb -@@ -4361,6 +4361,9 @@ pci:v00001002d0000665Csv00001787sd00002329* - pci:v00001002d0000665D* - ID_MODEL_FROM_DATABASE=Bonaire [Radeon R7 200 Series] - -+pci:v00001002d0000665F* -+ ID_MODEL_FROM_DATABASE=Tobago [Radeon R7 300 Series] -+ - pci:v00001002d00006660* - ID_MODEL_FROM_DATABASE=Sun XT [Radeon HD 8670A/8670M/8690M] - -@@ -5984,6 +5987,63 @@ pci:v00001002d000067AA* - pci:v00001002d000067B0* - ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] - -+pci:v00001002d000067B0sv00001043sd0000046A* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X DirectCU II) -+ -+pci:v00001002d000067B0sv00001043sd0000046C* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X DirectCU II OC) -+ -+pci:v00001002d000067B0sv00001043sd00000474* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (Matrix R9 290X Platinum) -+ -+pci:v00001002d000067B0sv00001043sd00000476* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (ARES III) -+ -+pci:v00001002d000067B0sv00001458sd0000227C* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X WindForce 3X OC) -+ -+pci:v00001002d000067B0sv00001458sd00002281* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X WindForce 3X OC) -+ -+pci:v00001002d000067B0sv00001458sd0000228C* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X WindForce 3X) -+ -+pci:v00001002d000067B0sv00001458sd0000228D* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X WindForce 3X OC) -+ -+pci:v00001002d000067B0sv00001458sd00002290* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X WindForce 3X) -+ -+pci:v00001002d000067B0sv00001462sd00003070* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X Lightning) -+ -+pci:v00001002d000067B0sv00001462sd00003071* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X Lightning) -+ -+pci:v00001002d000067B0sv00001462sd00003072* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X Lightning LE) -+ -+pci:v00001002d000067B0sv00001462sd00003080* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X Gaming) -+ -+pci:v00001002d000067B0sv00001462sd00003082* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X Gaming OC) -+ -+pci:v00001002d000067B0sv0000148Csd00002347* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (Devil 13 Dual Core R9 290X) -+ -+pci:v00001002d000067B0sv00001682sd00009290* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (Double Dissipation R9 290X) -+ -+pci:v00001002d000067B0sv0000174Bsd0000E282* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (Vapor-X R9 290X Tri-X OC) -+ -+pci:v00001002d000067B0sv0000174Bsd0000E285* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X Tri-X OC) -+ -+pci:v00001002d000067B0sv00001787sd00002020* -+ ID_MODEL_FROM_DATABASE=Hawaii XT [Radeon R9 290X] (R9 290X IceQ X² Turbo) -+ - pci:v00001002d000067B1* - ID_MODEL_FROM_DATABASE=Hawaii PRO [Radeon R9 290] - -@@ -9092,6 +9152,9 @@ pci:v00001002d0000985E* - pci:v00001002d0000985F* - ID_MODEL_FROM_DATABASE=Mullins - -+pci:v00001002d00009874* -+ ID_MODEL_FROM_DATABASE=Carrizo -+ - pci:v00001002d00009900* - ID_MODEL_FROM_DATABASE=Trinity [Radeon HD 7660G] - -@@ -10272,10 +10335,10 @@ pci:v00001014d000000A6* - ID_MODEL_FROM_DATABASE=ATM 155MBPS MM Controller (1410a600) - - pci:v00001014d000000B7* -- ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] -+ ID_MODEL_FROM_DATABASE=GXT2000P Graphics Adapter - - pci:v00001014d000000B7sv00001092sd000000B8* -- ID_MODEL_FROM_DATABASE=256-bit Graphics Rasterizer [FireGL1] (FireGL1 AGP 32Mb) -+ ID_MODEL_FROM_DATABASE=GXT2000P Graphics Adapter (FireGL1 AGP 32Mb) - - pci:v00001014d000000B8* - ID_MODEL_FROM_DATABASE=GXT2000P Graphics Adapter -@@ -10325,6 +10388,15 @@ pci:v00001014d00000170* - pci:v00001014d00000170sv00001092sd00000172* - ID_MODEL_FROM_DATABASE=GXT6000P Graphics Adapter (Fire GL2) - -+pci:v00001014d00000170sv00001092sd00000173* -+ ID_MODEL_FROM_DATABASE=GXT6000P Graphics Adapter (Fire GL3) -+ -+pci:v00001014d00000170sv00001092sd00000174* -+ ID_MODEL_FROM_DATABASE=GXT6000P Graphics Adapter (Fire GL4) -+ -+pci:v00001014d00000170sv00001092sd00000184* -+ ID_MODEL_FROM_DATABASE=GXT6000P Graphics Adapter (Fire GL4s) -+ - pci:v00001014d0000017D* - ID_MODEL_FROM_DATABASE=GXT300P Graphics Adapter - -@@ -28542,913 +28614,934 @@ pci:v000010DEd000010D8* - ID_MODEL_FROM_DATABASE=GT218 [NVS 300] - - pci:v000010DEd00001140* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] - - pci:v000010DEd00001140sv00001019sd0000999F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000600* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000606* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000064A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000064C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000067A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000680* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000686* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000689* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000068B* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000068D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000068E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000691* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000692* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000694* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000702* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000719* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000725* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000728* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000072B* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd0000072E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000732* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001025sd00000763* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000773* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000774* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000776* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000077A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077B* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd0000077F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000781* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000798* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000799* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000079B* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000079C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000807* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000821* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000823* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000830* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000833* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd00000837* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001025sd0000083E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000841* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001025sd00000854* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000855* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000856* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000857* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000858* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000868* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000869* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 810M) - - pci:v000010DEd00001140sv00001025sd00000873* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000878* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd0000087B* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd0000087C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 810M) - - pci:v000010DEd00001140sv00001025sd00000881* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd0000088A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd0000089B* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd0000090F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000921* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd0000092E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 810M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 810M) - - pci:v000010DEd00001140sv00001025sd0000092F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd0000093A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd0000093C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd0000093F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000941* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000945* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000954* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001025sd00000965* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001028sd0000054D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd0000054E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000554* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001028sd00000557* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001028sd00000562* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd00000565* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000568* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000590* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd00000592* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd00000594* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd00000595* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005A2* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005B1* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005B3* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 625M) - - pci:v000010DEd00001140sv00001028sd000005DA* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd000005DE* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001028sd000005E0* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001028sd000005E8* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv00001028sd000005F4* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001028sd0000060F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001028sd0000064E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001028sd00000652* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001028sd00000653* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001028sd00000655* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001028sd0000065E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001028sd00000662* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001028sd0000068D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv0000103Csd000018EF* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018F9* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018FB* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018FD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd000018FF* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000103Csd00002335* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv0000103Csd00002337* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv0000103Csd00002AEF* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) - - pci:v000010DEd00001140sv0000103Csd00002AF9* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710A) - - pci:v000010DEd00001140sv00001043sd000010DD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv00001043sd000010ED* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv00001043sd000011FD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000124D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000126D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000131D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000013FD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000014C7* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd00001507* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001043sd000015AD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000015ED* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000160D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000163D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000166D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000016CD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000016DD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000170D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000176D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000178D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000179D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000017DD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd00002132* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001043sd00002136* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv00001043sd000021BA* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000021FA* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000220A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000221A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd0000223A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) - - pci:v000010DEd00001140sv00001043sd0000224A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) - - pci:v000010DEd00001140sv00001043sd0000227A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000228A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000232A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000233A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000236A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000238A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd00008595* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000085EA* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000085EB* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000085EC* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd000085EE* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001043sd000085F3* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000860E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000861A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000861B* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd00008628* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd00008643* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd0000864C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001043sd00008652* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv0000105Bsd00000DAC* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000105Bsd00000DAD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000105Bsd00000EF3* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001072sd0000152D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000010CFsd000017F5* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001179sd0000FA01* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA02* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA03* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA05* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA11* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA13* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA18* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA19* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA21* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA23* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA2A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA32* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA33* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA36* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA38* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA42* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA43* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA45* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA47* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA49* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA58* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA59* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA88* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001179sd0000FA89* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000B092* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv0000144Dsd0000C0D5* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000144Dsd0000C0D7* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv0000144Dsd0000C0E2* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv0000144Dsd0000C0E3* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv0000144Dsd0000C0E4* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv0000144Dsd0000C10D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv0000144Dsd0000C652* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv0000144Dsd0000C709* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000C711* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000C736* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000C737* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000144Dsd0000C745* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv0000144Dsd0000C750* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001462sd000010B8* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 710M) - - pci:v000010DEd00001140sv00001462sd000010E9* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001462sd00001116* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001462sd0000AA33* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv00001462sd0000AAA2* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001462sd0000AAA3* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001462sd0000ACB2* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001462sd0000ACC1* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001462sd0000AE61* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv00001462sd0000AE65* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001462sd0000AE6A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001462sd0000AE71* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000014C0sd00000083* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv0000152Dsd00000926* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 620M) - - pci:v000010DEd00001140sv0000152Dsd00000982* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000152Dsd00000983* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000152Dsd00001005* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 820M) - - pci:v000010DEd00001140sv0000152Dsd00001012* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000152Dsd00001019* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv0000152Dsd00001030* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 630M) - - pci:v000010DEd00001140sv0000152Dsd00001055* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv0000152Dsd00001067* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000152Dsd00001072* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv0000152Dsd00001086* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv0000152Dsd00001092* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00002200* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (NVS 5200M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (NVS 5200M) - - pci:v000010DEd00001140sv000017AAsd00002213* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00002220* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000309C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720A) - - pci:v000010DEd00001140sv000017AAsd000030B4* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ -+pci:v000010DEd00001140sv000017AAsd000030B7* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 720A) -+ -+pci:v000010DEd00001140sv000017AAsd0000361B* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ -+pci:v000010DEd00001140sv000017AAsd0000361C* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd00003656* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv000017AAsd0000365A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 705M) - - pci:v000010DEd00001140sv000017AAsd0000365E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 800M) -+ -+pci:v000010DEd00001140sv000017AAsd00003661* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000366C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd00003685* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd00003686* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 800M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 800M) - - pci:v000010DEd00001140sv000017AAsd00003687* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 705A) - - pci:v000010DEd00001140sv000017AAsd00003696* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369B* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd0000369E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd000036A9* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ -+pci:v000010DEd00001140sv000017AAsd000036AF* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ -+pci:v000010DEd00001140sv000017AAsd000036B0* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) -+ -+pci:v000010DEd00001140sv000017AAsd000036B6* -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820A) - - pci:v000010DEd00001140sv000017AAsd00003800* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003801* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003802* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003803* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003804* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003806* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003808* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000380D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd0000380E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd0000380F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00003811* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00003812* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00003813* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00003816* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00003818* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd0000381A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd0000381C* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00003901* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 610M / GT 620M) - - pci:v000010DEd00001140sv000017AAsd00003902* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00003903* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M/710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 610M/710M) - - pci:v000010DEd00001140sv000017AAsd00003904* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M/625M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M/625M) - - pci:v000010DEd00001140sv000017AAsd00003905* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003907* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00003910* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv000017AAsd00003912* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 720M) - - pci:v000010DEd00001140sv000017AAsd00003913* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00003915* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00003977* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00003983* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 610M) - - pci:v000010DEd00001140sv000017AAsd00005001* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 610M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 610M) - - pci:v000010DEd00001140sv000017AAsd00005003* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00005005* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 705M) - - pci:v000010DEd00001140sv000017AAsd0000500D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv000017AAsd00005014* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00005017* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00005019* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000501A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000501F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00005025* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd00005027* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000502A* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000502B* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000502D* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000502E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd0000502F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv000017AAsd00005030* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 705M) - - pci:v000010DEd00001140sv000017AAsd00005031* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 705M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 705M) - - pci:v000010DEd00001140sv000017AAsd00005032* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00005033* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd0000503E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv000017AAsd0000503F* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv000017AAsd00005040* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001854sd00000177* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001854sd00000180* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 710M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 710M) - - pci:v000010DEd00001140sv00001854sd00000190* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001854sd00000192* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001B0Asd000020DD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001B0Asd000020DF* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 620M) - - pci:v000010DEd00001140sv00001B0Asd0000210E* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001B0Asd00002202* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce GT 720M) - - pci:v000010DEd00001140sv00001B0Asd000090D7* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001140sv00001B0Asd000090DD* -- ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M] (GeForce 820M) -+ ID_MODEL_FROM_DATABASE=GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (GeForce 820M) - - pci:v000010DEd00001180* - ID_MODEL_FROM_DATABASE=GK104 [GeForce GTX 680] -@@ -29654,6 +29747,9 @@ pci:v000010DEd000011E3* - pci:v000010DEd000011E3sv000017AAsd00003683* - ID_MODEL_FROM_DATABASE=GK106M [GeForce GTX 760M] (GeForce GTX 760A) - -+pci:v000010DEd000011E7* -+ ID_MODEL_FROM_DATABASE=GK106M -+ - pci:v000010DEd000011FA* - ID_MODEL_FROM_DATABASE=GK106GL [Quadro K4000] - -@@ -30014,6 +30110,9 @@ pci:v000010DFd00000720sv000017AAsd00001057* - pci:v000010DFd00000720sv000017AAsd00001059* - ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14104-UT-L AnyFabric) - -+pci:v000010DFd00000720sv000017AAsd00004014* -+ ID_MODEL_FROM_DATABASE=OneConnect NIC (Skyhawk) (ThinkServer OCm14102-NX-L AnyFabric) -+ - pci:v000010DFd00000722* - ID_MODEL_FROM_DATABASE=OneConnect iSCSI Initiator (Skyhawk) - -@@ -30755,6 +30854,9 @@ pci:v000010ECd00008168sv00001775sd000011CC* - pci:v000010ECd00008168sv00001849sd00008168* - ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Motherboard (one of many)) - -+pci:v000010ECd00008168sv00007470sd00003468* -+ ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (TG-3468 Gigabit PCI Express Network Adapter) -+ - pci:v000010ECd00008168sv00008086sd0000D615* - ID_MODEL_FROM_DATABASE=RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (Desktop Board D510MO/D525MW) - -@@ -31278,7 +31380,7 @@ pci:v00001102d00007005sv00001102sd00001002* - ID_MODEL_FROM_DATABASE=SB Audigy LS Game Port (SB0312 Audigy LS MIDI/Game port) - - pci:v00001102d00007006* -- ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG PCI to PCIe Bridge -+ ID_MODEL_FROM_DATABASE=[SB X-Fi Xtreme Audio] CA0110-IBG PCIe to PCI Bridge - - pci:v00001102d00008938* - ID_MODEL_FROM_DATABASE=Ectiva EV1938 -@@ -33896,6 +33998,9 @@ pci:v0000111Dd00008088sv00001093sd00007600* - pci:v0000111Dd00008088sv00001093sd00007602* - ID_MODEL_FROM_DATABASE=PES32NT8BG2 PCI Express Switch (PXIe-8384) - -+pci:v0000111Dd0000808F* -+ ID_MODEL_FROM_DATABASE=PES32NT8AG2 -+ - pci:v0000111E* - ID_VENDOR_FROM_DATABASE=Eldec - -@@ -34664,9 +34769,12 @@ pci:v00001131d00007164sv00000070sd000089A0* - pci:v00001131d00007164sv00000070sd000089A1* - ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2200) - --pci:v00001131d00007164sv00000070sd0000F123* -+pci:v00001131d00007164sv00000070sd0000F120* - ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2205) - -+pci:v00001131d00007164sv00000070sd0000F123* -+ ID_MODEL_FROM_DATABASE=SAA7164 (WinTV HVR-2215) -+ - pci:v00001131d00007231* - ID_MODEL_FROM_DATABASE=SAA7231 - -@@ -39923,6 +40031,15 @@ pci:v0000125E* - pci:v0000125F* - ID_VENDOR_FROM_DATABASE=Concurrent Technologies, Inc. - -+pci:v0000125Fd00002071* -+ ID_MODEL_FROM_DATABASE=CC PMC/232 -+ -+pci:v0000125Fd00002084* -+ ID_MODEL_FROM_DATABASE=CC PMC/23P -+ -+pci:v0000125Fd00002091* -+ ID_MODEL_FROM_DATABASE=CC PMC/422 -+ - pci:v00001260* - ID_VENDOR_FROM_DATABASE=Intersil Corporation - -@@ -43145,17 +43262,56 @@ pci:v00001397* - pci:v00001397d000008B4* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] - -+pci:v00001397d000008B4sv00001397sd000008B4* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Cologne Chip HFC-4S Eval. Board]) -+ -+pci:v00001397d000008B4sv00001397sd0000B51A* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Allo.com BRI card]) -+ - pci:v00001397d000008B4sv00001397sd0000B520* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [IOB4ST]) - - pci:v00001397d000008B4sv00001397sd0000B540* -- ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Swyx 4xS0 SX2 QuadBri]) -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Swyx SX2 QuadBri]) - - pci:v00001397d000008B4sv00001397sd0000B550* -- ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns quadBRI]) -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns.NET quadBRI]) - - pci:v00001397d000008B4sv00001397sd0000B556* -- ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns DuoDBRI]) -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns.NET duoBRI]) -+ -+pci:v00001397d000008B4sv00001397sd0000B559* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns.NET duoBRI miniPCI]) -+ -+pci:v00001397d000008B4sv00001397sd0000B560* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [BeroNet BN4S0]) -+ -+pci:v00001397d000008B4sv00001397sd0000B566* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [BeroNet BN2S0]) -+ -+pci:v00001397d000008B4sv00001397sd0000B567* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [BeroNet BN1S0 miniPCI]) -+ -+pci:v00001397d000008B4sv00001397sd0000B568* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [BeroNet BN4S0 miniPCI]) -+ -+pci:v00001397d000008B4sv00001397sd0000B569* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [BeroNet BN2S0 miniPCI]) -+ -+pci:v00001397d000008B4sv00001397sd0000B620* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S) -+ -+pci:v00001397d000008B4sv00001397sd0000B752* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [Junghanns.NET quadBRI PCIe]) -+ -+pci:v00001397d000008B4sv00001397sd0000B761* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [BeroNet BN2S0 PCIe]) -+ -+pci:v00001397d000008B4sv00001397sd0000B762* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [BeroNet BN4S0 PCIe]) -+ -+pci:v00001397d000008B4sv00001397sd0000E884* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [OpenVox B200P]) - - pci:v00001397d000008B4sv00001397sd0000E888* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-4S] (HFC-4S [OpenVox B200P / B400P]) -@@ -43163,9 +43319,33 @@ pci:v00001397d000008B4sv00001397sd0000E888* - pci:v00001397d000016B8* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] - --pci:v00001397d000016B8sv00001397sd0000B562* -+pci:v00001397d000016B8sv00001397sd000016B8* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [Cologne Chip HFC-8S Eval. Board]) -+ -+pci:v00001397d000016B8sv00001397sd0000B521* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [IOB4ST Recording]) -+ -+pci:v00001397d000016B8sv00001397sd0000B522* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [IOB8ST]) - -+pci:v00001397d000016B8sv00001397sd0000B552* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [Junghanns.NET octoBRI]) -+ -+pci:v00001397d000016B8sv00001397sd0000B55B* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [Junghanns.NET octoBRI]) -+ -+pci:v00001397d000016B8sv00001397sd0000B562* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [BeroNet BN8S0]) -+ -+pci:v00001397d000016B8sv00001397sd0000B56B* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [BeroNet BN8S0+]) -+ -+pci:v00001397d000016B8sv00001397sd0000B622* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S) -+ -+pci:v00001397d000016B8sv00001397sd0000E998* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-8S] (HFC-8S [OpenVox B800P]) -+ - pci:v00001397d00002BD0* - ID_MODEL_FROM_DATABASE=ISDN network controller [HFC-PCI] - -@@ -43184,6 +43364,42 @@ pci:v00001397d00002BD0sv0000E4BFsd00001000* - pci:v00001397d000030B1* - ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] - -+pci:v00001397d000030B1sv00001397sd000030B1* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [Cologne Chip HFC-E1 Eval. Board]) -+ -+pci:v00001397d000030B1sv00001397sd0000B523* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [IOB1E1]) -+ -+pci:v00001397d000030B1sv00001397sd0000B543* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [Swyx SX2 SinglePRI V2]) -+ -+pci:v00001397d000030B1sv00001397sd0000B544* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [Swyx SX2 DualPRI V2]) -+ -+pci:v00001397d000030B1sv00001397sd0000B553* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [Junghanns.NET singleE1]) -+ -+pci:v00001397d000030B1sv00001397sd0000B554* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [Junghanns.NET doubleE1]) -+ -+pci:v00001397d000030B1sv00001397sd0000B555* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [Junghanns.NET doubleE1 2.0]) -+ -+pci:v00001397d000030B1sv00001397sd0000B55A* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [Junghanns.NET singleE1 miniPCI]) -+ -+pci:v00001397d000030B1sv00001397sd0000B563* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [beroNet BN1E1]) -+ -+pci:v00001397d000030B1sv00001397sd0000B564* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [beroNet BN2E1]) -+ -+pci:v00001397d000030B1sv00001397sd0000B565* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [beroNet BN2E1+]) -+ -+pci:v00001397d000030B1sv00001397sd0000B56A* -+ ID_MODEL_FROM_DATABASE=ISDN network Controller [HFC-E1] (HFC-E1 [beroNet BN1E1 miniPCI]) -+ - pci:v00001397d0000B700* - ID_MODEL_FROM_DATABASE=ISDN network controller PrimuX S0 [HFC-PCI] - -@@ -45206,6 +45422,9 @@ pci:v00001425d00005088* - pci:v00001425d00005089* - ID_MODEL_FROM_DATABASE=T520-5089 Unified Wire Ethernet Controller - -+pci:v00001425d00005090* -+ ID_MODEL_FROM_DATABASE=T540-5090 Unified Wire Ethernet Controller -+ - pci:v00001425d00005401* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller - -@@ -45299,6 +45518,9 @@ pci:v00001425d00005488* - pci:v00001425d00005489* - ID_MODEL_FROM_DATABASE=T520-5089 Unified Wire Ethernet Controller - -+pci:v00001425d00005490* -+ ID_MODEL_FROM_DATABASE=T540-5090 Unified Wire Ethernet Controller -+ - pci:v00001425d00005501* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller - -@@ -45392,6 +45614,9 @@ pci:v00001425d00005588* - pci:v00001425d00005589* - ID_MODEL_FROM_DATABASE=T520-5089 Unified Wire Storage Controller - -+pci:v00001425d00005590* -+ ID_MODEL_FROM_DATABASE=T540-5090 Unified Wire Storage Controller -+ - pci:v00001425d00005601* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Storage Controller - -@@ -45485,6 +45710,9 @@ pci:v00001425d00005688* - pci:v00001425d00005689* - ID_MODEL_FROM_DATABASE=T520-5089 Unified Wire Storage Controller - -+pci:v00001425d00005690* -+ ID_MODEL_FROM_DATABASE=T540-5090 Unified Wire Storage Controller -+ - pci:v00001425d00005701* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller - -@@ -45578,6 +45806,9 @@ pci:v00001425d00005788* - pci:v00001425d00005789* - ID_MODEL_FROM_DATABASE=T520-5089 Unified Wire Ethernet Controller - -+pci:v00001425d00005790* -+ ID_MODEL_FROM_DATABASE=T540-5090 Unified Wire Ethernet Controller -+ - pci:v00001425d00005801* - ID_MODEL_FROM_DATABASE=T520-CR Unified Wire Ethernet Controller [VF] - -@@ -45671,6 +45902,9 @@ pci:v00001425d00005888* - pci:v00001425d00005889* - ID_MODEL_FROM_DATABASE=T520-5089 Unified Wire Ethernet Controller [VF] - -+pci:v00001425d00005890* -+ ID_MODEL_FROM_DATABASE=T540-5090 Unified Wire Ethernet Controller [VF] -+ - pci:v00001425d0000A000* - ID_MODEL_FROM_DATABASE=PE10K Unified Wire Ethernet Controller - -@@ -51930,7 +52164,10 @@ pci:v0000168Cd0000003C* - ID_MODEL_FROM_DATABASE=QCA988x 802.11ac Wireless Network Adapter - - pci:v0000168Cd0000003E* -- ID_MODEL_FROM_DATABASE=Killer N1525 Wireless-AC -+ ID_MODEL_FROM_DATABASE=QCA6174 802.11ac Wireless Network Adapter -+ -+pci:v0000168Cd0000003Esv00001A56sd00001525* -+ ID_MODEL_FROM_DATABASE=QCA6174 802.11ac Wireless Network Adapter (Killer N1525 Wireless-AC) - - pci:v0000168Cd00000207* - ID_MODEL_FROM_DATABASE=AR5210 Wireless Network Adapter [AR5000 802.11a] -@@ -54326,6 +54563,12 @@ pci:v00001924d00000903sv00001924sd00008009* - pci:v00001924d00000903sv00001924sd0000800A* - ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x02F-R2 Flareon 7000 Series 10G Adapter) - -+pci:v00001924d00000903sv00001924sd0000800B* -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x22F-R3 Flareon Ultra 7000 Series 10G Adapter) -+ -+pci:v00001924d00000903sv00001924sd0000800C* -+ ID_MODEL_FROM_DATABASE=SFC9120 (SFN7x02F-R3 Flareon 7000 Series 10G Adapter) -+ - pci:v00001924d00000923* - ID_MODEL_FROM_DATABASE=SFC9140 - -@@ -55940,6 +56183,27 @@ pci:v00001BB0d00000002* - pci:v00001BB0d00000010* - ID_MODEL_FROM_DATABASE=OmniCube Accelerator OA-3000-2 - -+pci:v00001BB1* -+ ID_VENDOR_FROM_DATABASE=Seagate Technology PLC -+ -+pci:v00001BB1d0000005D* -+ ID_MODEL_FROM_DATABASE=Nytro PCIe Flash Storage -+ -+pci:v00001BB1d0000005Dsv00001BB1sd00006501* -+ ID_MODEL_FROM_DATABASE=Nytro PCIe Flash Storage (Nytro XP6500-8A1536 1.5TB) -+ -+pci:v00001BB1d0000005Dsv00001BB1sd00006502* -+ ID_MODEL_FROM_DATABASE=Nytro PCIe Flash Storage (Nytro XP6500-8A2048) -+ -+pci:v00001BB1d0000005Dsv00001BB1sd00006503* -+ ID_MODEL_FROM_DATABASE=Nytro PCIe Flash Storage (Nytro XP6500-8A4096) -+ -+pci:v00001BB1d0000005Dsv00001BB1sd00006511* -+ ID_MODEL_FROM_DATABASE=Nytro PCIe Flash Storage (Nytro XH6550-2GB DRAM) -+ -+pci:v00001BB1d0000005Dsv00001BB1sd00006512* -+ ID_MODEL_FROM_DATABASE=Nytro PCIe Flash Storage (Nytro XH6550-8GB DRAM) -+ - pci:v00001BB3* - ID_VENDOR_FROM_DATABASE=Bluecherry - -@@ -57905,6 +58169,9 @@ pci:v00007401* - pci:v00007401d0000E100* - ID_MODEL_FROM_DATABASE=PTP3100 PCIe PTP Slave Clock - -+pci:v00007470* -+ ID_VENDOR_FROM_DATABASE=TP-LINK Technologies Co., Ltd. -+ - pci:v00007604* - ID_VENDOR_FROM_DATABASE=O.N. Electronic Co Ltd. - -@@ -58434,13 +58701,13 @@ pci:v00008086d00000341* - ID_MODEL_FROM_DATABASE=41210 [Lanai] Serial to Parallel PCI Bridge (B-Segment Bridge) - - pci:v00008086d00000370* -- ID_MODEL_FROM_DATABASE=80333 Segment-A PCI Express-to-PCI Express Bridge -+ ID_MODEL_FROM_DATABASE=80333 Segment-A PCIe Express to PCI-X bridge - - pci:v00008086d00000371* - ID_MODEL_FROM_DATABASE=80333 A-Bus IOAPIC - - pci:v00008086d00000372* -- ID_MODEL_FROM_DATABASE=80333 Segment-B PCI Express-to-PCI Express Bridge -+ ID_MODEL_FROM_DATABASE=80333 Segment-B PCIe Express to PCI-X bridge - - pci:v00008086d00000373* - ID_MODEL_FROM_DATABASE=80333 B-Bus IOAPIC -@@ -62285,6 +62552,9 @@ pci:v00008086d00001521sv0000103Csd00003380* - pci:v00008086d00001521sv0000103Csd0000339E* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 2-port 361T Adapter) - -+pci:v00008086d00001521sv0000103Csd00008157* -+ ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Ethernet 1Gb 4-port 366T Adapter) -+ - pci:v00008086d00001521sv0000108Esd00007B16* - ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Quad Port GbE PCIe 2.0 ExpressModule, UTP) - -@@ -62588,6 +62858,12 @@ pci:v00008086d00001572* - pci:v00008086d00001572sv00001028sd00001F99* - ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet 10G 4P X710/I350 rNDC) - -+pci:v00008086d00001572sv00001137sd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged NIC X710-4) -+ -+pci:v00008086d00001572sv00001137sd0000013B* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (Ethernet Converged NIC X710-4) -+ - pci:v00008086d00001572sv000017AAsd00000000* - ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE SFP+ (ThinkServer XL710 AnyFabric) - -@@ -62636,6 +62912,18 @@ pci:v00008086d00001581sv00001028sd00001F98* - pci:v00008086d00001583* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ - -+pci:v00008086d00001583sv0000108Esd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Oracle 10 Gb and 40 Gb Ethernet Adapter) -+ -+pci:v00008086d00001583sv0000108Esd00007B1B* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Oracle 10 Gb and 40 Gb Ethernet Adapter) -+ -+pci:v00008086d00001583sv00001137sd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged NIC XL710-Q2) -+ -+pci:v00008086d00001583sv00001137sd0000013C* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged NIC XL710-Q2) -+ - pci:v00008086d00001583sv00008086sd00000000* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet Converged Network Adapter XL710-Q2) - -@@ -62664,7 +62952,16 @@ pci:v00008086d00001584sv00008086sd00000003* - ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 40GbE QSFP+ (Ethernet I/O Module XL710-Q1) - - pci:v00008086d00001585* -- ID_MODEL_FROM_DATABASE=Ethernet Controller XL710 for 10GbE QSFP+ -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GbE QSFP+ -+ -+pci:v00008086d00001586* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GBASE-T -+ -+pci:v00008086d00001586sv0000108Esd00000000* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GBASE-T -+ -+pci:v00008086d00001586sv0000108Esd00004857* -+ ID_MODEL_FROM_DATABASE=Ethernet Controller X710 for 10GBASE-T - - pci:v00008086d000015A0* - ID_MODEL_FROM_DATABASE=Ethernet Connection (2) I218-LM -@@ -77396,6 +77693,15 @@ pci:v00009412* - pci:v00009412d00006565* - ID_MODEL_FROM_DATABASE=6565 - -+pci:v00009413* -+ ID_VENDOR_FROM_DATABASE=Softlogic Co., Ltd. -+ -+pci:v00009413d00006010* -+ ID_MODEL_FROM_DATABASE=SOLO6010 MPEG-4 Video encoder/decoder -+ -+pci:v00009413d00006110* -+ ID_MODEL_FROM_DATABASE=SOLO6110 H.264 Video encoder/decoder -+ - pci:v00009618* - ID_VENDOR_FROM_DATABASE=JusonTech Corporation - -diff --git a/hwdb/20-sdio-vendor-model.hwdb b/hwdb/20-sdio-vendor-model.hwdb -index 626d673c4d..9cf34b2a39 100644 ---- a/hwdb/20-sdio-vendor-model.hwdb -+++ b/hwdb/20-sdio-vendor-model.hwdb -@@ -80,6 +80,36 @@ sdio:c*v02D0* - sdio:c*v02D0d044B* - ID_MODEL_FROM_DATABASE=Nintendo Wii WLAN daughter card - -+sdio:c*v02D0dA887* -+ ID_MODEL_FROM_DATABASE=BCM43143 WLAN card -+ -+sdio:c*v02D0d4324* -+ ID_MODEL_FROM_DATABASE=BCM43241 WLAN card -+ -+sdio:c*v02D0d4329* -+ ID_MODEL_FROM_DATABASE=BCM4329 WLAN card -+ -+sdio:c*v02D0d4330* -+ ID_MODEL_FROM_DATABASE=BCM4330 WLAN card -+ -+sdio:c*v02D0d4334* -+ ID_MODEL_FROM_DATABASE=BCM4334 WLAN card -+ -+sdio:c*v02D0dA94C* -+ ID_MODEL_FROM_DATABASE=BCM43340 WLAN card -+ -+sdio:c*v02D0dA94D* -+ ID_MODEL_FROM_DATABASE=BCM43341 WLAN card -+ -+sdio:c*v02D0d4335* -+ ID_MODEL_FROM_DATABASE=BCM4335/BCM4339 WLAN card -+ -+sdio:c*v02D0dA962* -+ ID_MODEL_FROM_DATABASE=BCM43362 WLAN card -+ -+sdio:c*v02D0d4354* -+ ID_MODEL_FROM_DATABASE=BCM4354 WLAN card -+ - sdio:c*v02DB* - ID_VENDOR_FROM_DATABASE=SyChip Inc. - -diff --git a/hwdb/20-usb-vendor-model.hwdb b/hwdb/20-usb-vendor-model.hwdb -index 94e0269ce7..8867531a31 100644 ---- a/hwdb/20-usb-vendor-model.hwdb -+++ b/hwdb/20-usb-vendor-model.hwdb -@@ -503,6 +503,9 @@ usb:v03F0p0217* - usb:v03F0p0218* - ID_MODEL_FROM_DATABASE=APOLLO P2500/2600 - -+usb:v03F0p022A* -+ ID_MODEL_FROM_DATABASE=Laserjet CP1525nw -+ - usb:v03F0p0241* - ID_MODEL_FROM_DATABASE=Link-5 micro dongle - -@@ -1320,7 +1323,7 @@ usb:v03F0p4002* - ID_MODEL_FROM_DATABASE=PhotoSmart 635/715/720/735/935 (storage) - - usb:v03F0p4004* -- ID_MODEL_FROM_DATABASE=cp1160 -+ ID_MODEL_FROM_DATABASE=CP1160 - - usb:v03F0p4102* - ID_MODEL_FROM_DATABASE=PhotoSmart 618 -@@ -2075,6 +2078,9 @@ usb:v0403p1060* - usb:v0403p1234* - ID_MODEL_FROM_DATABASE=IronLogic RFID Adapter [Z-2 USB] - -+usb:v0403p1235* -+ ID_MODEL_FROM_DATABASE=Iron Logic Z-397 RS-485/422 converter -+ - usb:v0403p6001* - ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC - -@@ -2147,6 +2153,9 @@ usb:v0403p8B2B* - usb:v0403p8B2C* - ID_MODEL_FROM_DATABASE=Alpermann+Velte TCC70 - -+usb:v0403p9090* -+ ID_MODEL_FROM_DATABASE=SNAP Stick 200 -+ - usb:v0403p9132* - ID_MODEL_FROM_DATABASE=LCD and Temperature Interface - -@@ -3311,6 +3320,9 @@ usb:v0411p00E8* - usb:v0411p0105* - ID_MODEL_FROM_DATABASE=External Hard Drive HD-CEU2 [Drive Station] - -+usb:v0411p012C* -+ ID_MODEL_FROM_DATABASE=SATA Bridge -+ - usb:v0411p012E* - ID_MODEL_FROM_DATABASE=WLI-UC-AG300N Wireless LAN Adapter - -@@ -5378,6 +5390,12 @@ usb:v0451p625F* - usb:v0451p8042* - ID_MODEL_FROM_DATABASE=Hub - -+usb:v0451p8142* -+ ID_MODEL_FROM_DATABASE=TUSB8041 4-Port Hub -+ -+usb:v0451p926B* -+ ID_MODEL_FROM_DATABASE=TUSB9260 Boot Loader -+ - usb:v0451pDBC0* - ID_MODEL_FROM_DATABASE=Device Bay Controller - -@@ -7364,6 +7382,9 @@ usb:v046Dp0A1F* - usb:v046Dp0A29* - ID_MODEL_FROM_DATABASE=H600 [Wireless Headset] - -+usb:v046Dp0A37* -+ ID_MODEL_FROM_DATABASE=USB Headset H540 -+ - usb:v046Dp0A38* - ID_MODEL_FROM_DATABASE=Headset H340 - -@@ -7608,7 +7629,7 @@ usb:v046DpC122* - ID_MODEL_FROM_DATABASE=Harmony 650/700 Remote - - usb:v046DpC124* -- ID_MODEL_FROM_DATABASE=Harmony 300 Remote -+ ID_MODEL_FROM_DATABASE=Harmony 300/350 Remote - - usb:v046DpC125* - ID_MODEL_FROM_DATABASE=Harmony 200 Remote -@@ -8432,6 +8453,9 @@ usb:v0471p20E3* - usb:v0471p20E4* - ID_MODEL_FROM_DATABASE=GoGear ViBE 8GB - -+usb:v0471p2160* -+ ID_MODEL_FROM_DATABASE=Mio LINK Heart Rate Monitor -+ - usb:v0471p262C* - ID_MODEL_FROM_DATABASE=SPC230NC Webcam - -@@ -8948,6 +8972,9 @@ usb:v0483p2018* - usb:v0483p2302* - ID_MODEL_FROM_DATABASE=Portable Flash Device (PFD) - -+usb:v0483p347B* -+ ID_MODEL_FROM_DATABASE=ST-LINK/V2-1 -+ - usb:v0483p3744* - ID_MODEL_FROM_DATABASE=STLINK Pseudo disk - -@@ -9044,6 +9071,9 @@ usb:v0489pE016* - usb:v0489pE02C* - ID_MODEL_FROM_DATABASE=Atheros AR5BBU12 Bluetooth Device - -+usb:v0489pE04D* -+ ID_MODEL_FROM_DATABASE=Atheros AR3012 Bluetooth -+ - usb:v048A* - ID_VENDOR_FROM_DATABASE=S-MOS Systems, Inc. - -@@ -13277,6 +13307,9 @@ usb:v04D8pF4B5* - usb:v04D8pF8DA* - ID_MODEL_FROM_DATABASE=Hughski Ltd. ColorHug - -+usb:v04D8pF8E8* -+ ID_MODEL_FROM_DATABASE=Harmony 300/350 Remote -+ - usb:v04D8pF91C* - ID_MODEL_FROM_DATABASE=SPROG IIv3 - -@@ -14376,7 +14409,7 @@ usb:v04E8p6632* - ID_MODEL_FROM_DATABASE=MITs Sync - - usb:v04E8p663E* -- ID_MODEL_FROM_DATABASE=D900e Phone -+ ID_MODEL_FROM_DATABASE=D900e/B2100 Phone - - usb:v04E8p663F* - ID_MODEL_FROM_DATABASE=SGH-E720/SGH-E840 -@@ -14400,10 +14433,10 @@ usb:v04E8p6734* - ID_MODEL_FROM_DATABASE=Juke - - usb:v04E8p6759* -- ID_MODEL_FROM_DATABASE=D900e Media Player -+ ID_MODEL_FROM_DATABASE=D900e/B2100 Media Player - - usb:v04E8p675A* -- ID_MODEL_FROM_DATABASE=D900e Mass Storage -+ ID_MODEL_FROM_DATABASE=D900e/B2100 Mass Storage - - usb:v04E8p675B* - ID_MODEL_FROM_DATABASE=D900e Camera -@@ -17153,6 +17186,9 @@ usb:v054Cp04CB* - usb:v054Cp0541* - ID_MODEL_FROM_DATABASE=DSC-HX100V [Cybershot Digital Still Camera] - -+usb:v054Cp05C4* -+ ID_MODEL_FROM_DATABASE=DualShock 4 -+ - usb:v054Cp0689* - ID_MODEL_FROM_DATABASE=Walkman NWZ-B173F - -@@ -17870,6 +17906,9 @@ usb:v056Ap00F6* - usb:v056Ap00F8* - ID_MODEL_FROM_DATABASE=Cintiq 24HD touch (DTH-2400) tablet - -+usb:v056Ap0302* -+ ID_MODEL_FROM_DATABASE=Intuos CTH480S2 [Manga] -+ - usb:v056Ap0307* - ID_MODEL_FROM_DATABASE=Cintiq Companion Hybrid 13HD (DTH-A1300) tablet - -@@ -20511,7 +20550,7 @@ usb:v05B4p4857* - ID_MODEL_FROM_DATABASE=M-Any DAH-210 - - usb:v05B4p6001* -- ID_MODEL_FROM_DATABASE=Digisette DUO-MP3 AR-100 -+ ID_MODEL_FROM_DATABASE=HYUNDAI GDS30C6001 SSFDC / MMC I/F Controller - - usb:v05B5* - ID_VENDOR_FROM_DATABASE=Dialogic Corp. -@@ -20618,6 +20657,9 @@ usb:v05C6p9001* - usb:v05C6p9002* - ID_MODEL_FROM_DATABASE=Gobi Wireless Modem - -+usb:v05C6p9003* -+ ID_MODEL_FROM_DATABASE=Quectel UC20 -+ - usb:v05C6p9008* - ID_MODEL_FROM_DATABASE=Gobi Wireless Modem (QDL mode) - -@@ -21548,6 +21590,9 @@ usb:v05DCpA813* - usb:v05DCpA815* - ID_MODEL_FROM_DATABASE=JumpDrive V10 - -+usb:v05DCpA833* -+ ID_MODEL_FROM_DATABASE=JumpDrive S23 64GB -+ - usb:v05DCpB002* - ID_MODEL_FROM_DATABASE=USB CF Reader - -@@ -22589,6 +22634,9 @@ usb:v064EpA219* - usb:v064EpC107* - ID_MODEL_FROM_DATABASE=HP webcam [dv6-1190en] - -+usb:v064EpC335* -+ ID_MODEL_FROM_DATABASE=HP TrueVision HD -+ - usb:v064EpD101* - ID_MODEL_FROM_DATABASE=Acer CrystalEye Webcam - -@@ -25850,6 +25898,9 @@ usb:v0764p0005* - usb:v0764p0501* - ID_MODEL_FROM_DATABASE=CP1500 AVR UPS - -+usb:v0764p0601* -+ ID_MODEL_FROM_DATABASE=PR1500LCDRT2U UPS -+ - usb:v0765* - ID_VENDOR_FROM_DATABASE=X-Rite, Inc. - -@@ -26900,6 +26951,9 @@ usb:v07B3p0A06* - usb:v07B3p0B00* - ID_MODEL_FROM_DATABASE=SmartPhoto F50 - -+usb:v07B3p0C00* -+ ID_MODEL_FROM_DATABASE=OpticPro ST64 Scanner -+ - usb:v07B3p0C03* - ID_MODEL_FROM_DATABASE=OpticPro ST64+ Scanner - -@@ -26946,7 +27000,7 @@ usb:v07B4p0112* - ID_MODEL_FROM_DATABASE=MAUSB-100 xD Card Reader - - usb:v07B4p0113* -- ID_MODEL_FROM_DATABASE=Mju 500 -+ ID_MODEL_FROM_DATABASE=Mju 500 / Stylus Digital Camera (PTP) - - usb:v07B4p0114* - ID_MODEL_FROM_DATABASE=C-350Z Camera -@@ -28589,6 +28643,9 @@ usb:v0846p9041* - usb:v0846p9042* - ID_MODEL_FROM_DATABASE=On Networks N150MA 802.11bgn [Realtek RTL8188CUS] - -+usb:v0846p9043* -+ ID_MODEL_FROM_DATABASE=WNA1000Mv2 802.11bgn [Realtek RTL8188CUS?] -+ - usb:v0846p9050* - ID_MODEL_FROM_DATABASE=A6200 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526] - -@@ -29432,6 +29489,9 @@ usb:v08E3p0301* - usb:v08E4* - ID_VENDOR_FROM_DATABASE=Pioneer Corp. - -+usb:v08E4p0184* -+ ID_MODEL_FROM_DATABASE=DDJ-WeGO -+ - usb:v08E4p0185* - ID_MODEL_FROM_DATABASE=DDJ-WeGO2 - -@@ -29990,6 +30050,9 @@ usb:v090Cp037A* - usb:v090Cp037B* - ID_MODEL_FROM_DATABASE=Silicon Motion Camera - -+usb:v090Cp037C* -+ ID_MODEL_FROM_DATABASE=300k Pixel Camera -+ - usb:v090Cp1000* - ID_MODEL_FROM_DATABASE=Flash Drive - -@@ -30032,6 +30095,9 @@ usb:v090CpB370* - usb:v090CpB371* - ID_MODEL_FROM_DATABASE=Silicon Motion SM371 Camera - -+usb:v090CpF37D* -+ ID_MODEL_FROM_DATABASE=Endoscope camera -+ - usb:v090D* - ID_VENDOR_FROM_DATABASE=Multiport Computer Vertriebs GmbH - -@@ -30323,6 +30389,9 @@ usb:v0928* - usb:v0928p8000* - ID_MODEL_FROM_DATABASE=Firmware uploader - -+usb:v0928pFFFF* -+ ID_MODEL_FROM_DATABASE=Blank Oxford Device -+ - usb:v0929* - ID_VENDOR_FROM_DATABASE=American Biometric Co. - -@@ -35774,6 +35843,15 @@ usb:v0C4Bp0500* - usb:v0C4Bp0501* - ID_MODEL_FROM_DATABASE=cyberJack RFID comfort dual interface smartcard reader - -+usb:v0C4Bp0502* -+ ID_MODEL_FROM_DATABASE=cyberJack compact -+ -+usb:v0C4Bp0504* -+ ID_MODEL_FROM_DATABASE=cyberJack go / go plus -+ -+usb:v0C4Bp0505* -+ ID_MODEL_FROM_DATABASE=cyberJack wave -+ - usb:v0C4Bp9102* - ID_MODEL_FROM_DATABASE=cyberJack RFID basis contactless smartcard reader - -@@ -35981,6 +36059,36 @@ usb:v0C5E* - usb:v0C60* - ID_VENDOR_FROM_DATABASE=Apogee Electronics Corp. - -+usb:v0C60p0001* -+ ID_MODEL_FROM_DATABASE=MiniMe -+ -+usb:v0C60p0002* -+ ID_MODEL_FROM_DATABASE=MiniDAC -+ -+usb:v0C60p0003* -+ ID_MODEL_FROM_DATABASE=ONE -+ -+usb:v0C60p0004* -+ ID_MODEL_FROM_DATABASE=GiO -+ -+usb:v0C60p0007* -+ ID_MODEL_FROM_DATABASE=Duet -+ -+usb:v0C60p0009* -+ ID_MODEL_FROM_DATABASE=Jam -+ -+usb:v0C60p000A* -+ ID_MODEL_FROM_DATABASE=Jam Bootloader -+ -+usb:v0C60p000B* -+ ID_MODEL_FROM_DATABASE=MiC -+ -+usb:v0C60p000C* -+ ID_MODEL_FROM_DATABASE=MiC Bootloader -+ -+usb:v0C60p8007* -+ ID_MODEL_FROM_DATABASE=Duet DFU Mode -+ - usb:v0C62* - ID_VENDOR_FROM_DATABASE=Chant Sincere Co., Ltd - -@@ -37524,7 +37632,7 @@ usb:v0DA3* - ID_VENDOR_FROM_DATABASE=Nippon Electro-Sensory Devices Corp. - - usb:v0DA4* -- ID_VENDOR_FROM_DATABASE=Polar Electro OY -+ ID_VENDOR_FROM_DATABASE=Polar Electro Oy - - usb:v0DA4p0001* - ID_MODEL_FROM_DATABASE=Interface -@@ -37667,6 +37775,18 @@ usb:v0DB3* - usb:v0DB4* - ID_VENDOR_FROM_DATABASE=Chung Fu Chen Yeh Enterprise Corp. - -+usb:v0DB5* -+ ID_VENDOR_FROM_DATABASE=Access IS -+ -+usb:v0DB5p0139* -+ ID_MODEL_FROM_DATABASE=LSR116 CDC -+ -+usb:v0DB5p013A* -+ ID_MODEL_FROM_DATABASE=LSR116 Keyboard -+ -+usb:v0DB5p013B* -+ ID_MODEL_FROM_DATABASE=LSR116 HID -+ - usb:v0DB7* - ID_VENDOR_FROM_DATABASE=ELCON Systemtechnik - -@@ -38510,6 +38630,9 @@ usb:v0E6Fp0005* - usb:v0E6Fp0006* - ID_MODEL_FROM_DATABASE=Edge wireless Controller - -+usb:v0E6Fp0128* -+ ID_MODEL_FROM_DATABASE=Wireless PS3 Controller -+ - usb:v0E70* - ID_VENDOR_FROM_DATABASE=Tokyo Electronic Industry Co., Ltd - -@@ -38618,6 +38741,9 @@ usb:v0E8Fp0020* - usb:v0E8Fp0021* - ID_MODEL_FROM_DATABASE=Multimedia Keyboard Controller - -+usb:v0E8Fp0022* -+ ID_MODEL_FROM_DATABASE=multimedia keyboard controller -+ - usb:v0E8Fp0201* - ID_MODEL_FROM_DATABASE=SmartJoy Frag Xpad/PS2 adaptor - -@@ -38858,6 +38984,9 @@ usb:v0EE3p1000* - usb:v0EE4* - ID_VENDOR_FROM_DATABASE=Sunrich Technology, Ltd - -+usb:v0EE4p0690* -+ ID_MODEL_FROM_DATABASE=SATA 3 Adapter -+ - usb:v0EEE* - ID_VENDOR_FROM_DATABASE=Digital Stream Technology, Inc. - -@@ -39663,7 +39792,7 @@ usb:v0FCEpE19B* - ID_MODEL_FROM_DATABASE=C2005 [Xperia M dual] (Mass Storage) - - usb:v0FCEpF0FA* -- ID_MODEL_FROM_DATABASE=Liveview micro display MN800 in DFU mode -+ ID_MODEL_FROM_DATABASE=MN800 / Smartwatch 2 (DFU mode) - - usb:v0FCF* - ID_VENDOR_FROM_DATABASE=Dynastream Innovations, Inc. -@@ -39884,6 +40013,9 @@ usb:v1004p61C6* - usb:v1004p61CC* - ID_MODEL_FROM_DATABASE=Optimus S - -+usb:v1004p61DA* -+ ID_MODEL_FROM_DATABASE=G2 Android Phone [tethering mode] -+ - usb:v1004p61F1* - ID_MODEL_FROM_DATABASE=Optimus Android Phone [LG Software mode] - -@@ -39900,13 +40032,13 @@ usb:v1004p6300* - ID_MODEL_FROM_DATABASE=Optimus Android Phone - - usb:v1004p631C* -- ID_MODEL_FROM_DATABASE=Optimus Android Phone [MTP mode] -+ ID_MODEL_FROM_DATABASE=G2/Optimus Android Phone [MTP mode] - - usb:v1004p631D* - ID_MODEL_FROM_DATABASE=Optimus Android Phone (Camera/PTP Mode) - - usb:v1004p631E* -- ID_MODEL_FROM_DATABASE=Optimus Android Phone [Camera/PTP mode] -+ ID_MODEL_FROM_DATABASE=G2/Optimus Android Phone [Camera/PTP mode] - - usb:v1004p631F* - ID_MODEL_FROM_DATABASE=Optimus Android Phone (Charge Mode) -@@ -40241,6 +40373,9 @@ usb:v1046p9967* - usb:v1048* - ID_VENDOR_FROM_DATABASE=Targus Group International - -+usb:v1048p2010* -+ ID_MODEL_FROM_DATABASE=4-Port hub -+ - usb:v104B* - ID_VENDOR_FROM_DATABASE=Mylex / Buslogic - -@@ -40287,13 +40422,22 @@ usb:v1050p0010* - ID_MODEL_FROM_DATABASE=Yubikey - - usb:v1050p0110* -- ID_MODEL_FROM_DATABASE=Yubikey NEO OTP -+ ID_MODEL_FROM_DATABASE=Yubikey NEO(-N) OTP - - usb:v1050p0111* -- ID_MODEL_FROM_DATABASE=Yubikey NEO OTP+CCID -+ ID_MODEL_FROM_DATABASE=Yubikey NEO(-N) OTP+CCID - - usb:v1050p0112* -- ID_MODEL_FROM_DATABASE=Yubikey NEO CCID -+ ID_MODEL_FROM_DATABASE=Yubikey NEO(-N) CCID -+ -+usb:v1050p0113* -+ ID_MODEL_FROM_DATABASE=Yubikey NEO(-N) U2F -+ -+usb:v1050p0114* -+ ID_MODEL_FROM_DATABASE=Yubikey NEO(-N) OTP+U2F -+ -+usb:v1050p0115* -+ ID_MODEL_FROM_DATABASE=Yubikey NEO(-N) U2F+CCID - - usb:v1050p0200* - ID_MODEL_FROM_DATABASE=U2F Gnubby -@@ -50777,6 +50921,15 @@ usb:v2931p0A05* - usb:v2931p0AFE* - ID_MODEL_FROM_DATABASE=Jolla charging only - -+usb:v2A03* -+ ID_VENDOR_FROM_DATABASE=dog hunter AG -+ -+usb:v2A03p0001* -+ ID_MODEL_FROM_DATABASE=Linino One (CDC ACM) -+ -+usb:v2A03p8001* -+ ID_MODEL_FROM_DATABASE=Linino ONE board -+ - usb:v2C02* - ID_VENDOR_FROM_DATABASE=Planex Communications - diff --git a/0080-networkd-Begin-with-serial-number-1-for-netlink-requ.patch b/0080-networkd-Begin-with-serial-number-1-for-netlink-requ.patch deleted file mode 100644 index 1d52a19..0000000 --- a/0080-networkd-Begin-with-serial-number-1-for-netlink-requ.patch +++ /dev/null @@ -1,45 +0,0 @@ -From cbc0484a42adf93bdd6897f93b15b0eaeb3077f6 Mon Sep 17 00:00:00 2001 -From: Richard Maw -Date: Thu, 12 Mar 2015 18:14:58 +0000 -Subject: [PATCH] networkd: Begin with serial number 1 for netlink requests - -"Notifications are of informal nature and no reply is expected, therefore the -sequence number is typically set to 0."[1] - -If networkd is started soon after recent netlink activity, then there -will be messages with sequence number 0 in the buffer. - -The first thing networkd does is to request a dump of all the links. If -it uses sequence number 0 for this, then it may confuse the dump request's -response with that of a notification. - -This will result in it failing to properly enumerate all the links, -but more importantly, when it comes to enumerate all the addresses, it -will still have the link dump in progress, so the address enumeration -will fail with -EBUSY. - -[1]: http://www.infradead.org/~tgr/libnl/doc/core.html#core_msg_types - -[tomegun: sequence -> serial] - -(cherry picked from commit d422e52a3523ad0955bec4f9fbed46e234d28590) ---- - src/libsystemd/sd-rtnl/sd-rtnl.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/libsystemd/sd-rtnl/sd-rtnl.c b/src/libsystemd/sd-rtnl/sd-rtnl.c -index ae49c77e01..7cdcc5d96a 100644 ---- a/src/libsystemd/sd-rtnl/sd-rtnl.c -+++ b/src/libsystemd/sd-rtnl/sd-rtnl.c -@@ -61,6 +61,11 @@ static int sd_rtnl_new(sd_rtnl **ret) { - sizeof(struct nlmsghdr), sizeof(uint8_t))) - return -ENOMEM; - -+ /* Change notification responses have sequence 0, so we must -+ * start our request sequence numbers at 1, or we may confuse our -+ * responses with notifications from the kernel */ -+ rtnl->serial = 1; -+ - *ret = rtnl; - rtnl = NULL; - diff --git a/0081-journal-remote-downgrade-routine-messages-to-debug.patch b/0081-journal-remote-downgrade-routine-messages-to-debug.patch deleted file mode 100644 index cf152dd..0000000 --- a/0081-journal-remote-downgrade-routine-messages-to-debug.patch +++ /dev/null @@ -1,179 +0,0 @@ -From 62ae285fd7265de8ef410b876a8aec047a93ea37 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 12 Mar 2015 21:29:28 -0400 -Subject: [PATCH] journal-remote: downgrade routine messages to debug - -https://bugs.freedesktop.org/show_bug.cgi?id=89486 -(cherry picked from commit 0e72da6fe8671d49b4d458519f5ac7600fd04f03) ---- - src/journal-remote/journal-remote-parse.c | 2 +- - src/journal-remote/journal-remote-write.c | 2 +- - src/journal-remote/journal-remote.c | 36 +++++++++++++++---------------- - src/journal-remote/microhttpd-util.c | 4 ++-- - 4 files changed, 22 insertions(+), 22 deletions(-) - -diff --git a/src/journal-remote/journal-remote-parse.c b/src/journal-remote/journal-remote-parse.c -index afded7e380..6c096de03a 100644 ---- a/src/journal-remote/journal-remote-parse.c -+++ b/src/journal-remote/journal-remote-parse.c -@@ -443,7 +443,7 @@ int process_source(RemoteSource *source, bool compress, bool seal) { - return r; - - /* We have a full event */ -- log_trace("Received a full event from source@%p fd:%d (%s)", -+ log_trace("Received full event from source@%p fd:%d (%s)", - source, source->fd, source->name); - - if (!source->iovw.count) { -diff --git a/src/journal-remote/journal-remote-write.c b/src/journal-remote/journal-remote-write.c -index df30049397..99820fa7b8 100644 ---- a/src/journal-remote/journal-remote-write.c -+++ b/src/journal-remote/journal-remote-write.c -@@ -156,7 +156,7 @@ int writer_write(Writer *w, - if (r < 0) - return r; - else -- log_info("%s: Successfully rotated journal", w->journal->path); -+ log_debug("%s: Successfully rotated journal", w->journal->path); - - log_debug("Retrying write."); - r = journal_file_append_entry(w->journal, ts, iovw->iovec, iovw->count, -diff --git a/src/journal-remote/journal-remote.c b/src/journal-remote/journal-remote.c -index 8f32a9a988..d1486e7cda 100644 ---- a/src/journal-remote/journal-remote.c -+++ b/src/journal-remote/journal-remote.c -@@ -207,7 +207,7 @@ static int open_output(Writer *w, const char* host) { - log_error_errno(r, "Failed to open output journal %s: %m", - output); - else -- log_info("Opened output file %s", w->journal->path); -+ log_debug("Opened output file %s", w->journal->path); - return r; - } - -@@ -747,7 +747,7 @@ static int setup_microhttpd_socket(RemoteServer *s, - const char *trust) { - int fd; - -- fd = make_socket_fd(LOG_INFO, address, SOCK_STREAM | SOCK_CLOEXEC); -+ fd = make_socket_fd(LOG_DEBUG, address, SOCK_STREAM | SOCK_CLOEXEC); - if (fd < 0) - return fd; - -@@ -844,7 +844,7 @@ static int remoteserver_init(RemoteServer *s, - if (n < 0) - return log_error_errno(n, "Failed to read listening file descriptors from environment: %m"); - else -- log_info("Received %d descriptors", n); -+ log_debug("Received %d descriptors", n); - - if (MAX(http_socket, https_socket) >= SD_LISTEN_FDS_START + n) { - log_error("Received fewer sockets than expected"); -@@ -853,7 +853,7 @@ static int remoteserver_init(RemoteServer *s, - - for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + n; fd++) { - if (sd_is_socket(fd, AF_UNSPEC, 0, true)) { -- log_info("Received a listening socket (fd:%d)", fd); -+ log_debug("Received a listening socket (fd:%d)", fd); - - if (fd == http_socket) - r = setup_microhttpd_server(s, fd, NULL, NULL, NULL); -@@ -868,7 +868,7 @@ static int remoteserver_init(RemoteServer *s, - if (r < 0) - return log_error_errno(r, "Failed to retrieve remote name: %m"); - -- log_info("Received a connection socket (fd:%d) from %s", fd, hostname); -+ log_debug("Received a connection socket (fd:%d) from %s", fd, hostname); - - r = add_source(s, fd, hostname, true); - } else { -@@ -908,7 +908,7 @@ static int remoteserver_init(RemoteServer *s, - } - - if (arg_listen_raw) { -- log_info("Listening on a socket..."); -+ log_debug("Listening on a socket..."); - r = setup_raw_socket(s, arg_listen_raw); - if (r < 0) - return r; -@@ -930,12 +930,12 @@ static int remoteserver_init(RemoteServer *s, - const char *output_name; - - if (streq(*file, "-")) { -- log_info("Using standard input as source."); -+ log_debug("Using standard input as source."); - - fd = STDIN_FILENO; - output_name = "stdin"; - } else { -- log_info("Reading file %s...", *file); -+ log_debug("Reading file %s...", *file); - - fd = open(*file, O_RDONLY|O_CLOEXEC|O_NOCTTY|O_NONBLOCK); - if (fd < 0) -@@ -1014,22 +1014,22 @@ static int dispatch_raw_source_event(sd_event_source *event, - if (source->state == STATE_EOF) { - size_t remaining; - -- log_info("EOF reached with source fd:%d (%s)", -- source->fd, source->name); -+ log_debug("EOF reached with source fd:%d (%s)", -+ source->fd, source->name); - - remaining = source_non_empty(source); - if (remaining > 0) -- log_warning("Premature EOF. %zu bytes lost.", remaining); -+ log_notice("Premature EOF. %zu bytes lost.", remaining); - remove_source(s, source->fd); -- log_info("%zu active sources remaining", s->active); -+ log_debug("%zu active sources remaining", s->active); - return 0; - } else if (r == -E2BIG) { -- log_error("Entry too big, skipped"); -+ log_notice_errno(E2BIG, "Entry too big, skipped"); - return 1; - } else if (r == -EAGAIN) { - return 0; - } else if (r < 0) { -- log_info_errno(r, "Closing connection: %m"); -+ log_debug_errno(r, "Closing connection: %m"); - remove_source(server, fd); - return 0; - } else -@@ -1071,10 +1071,10 @@ static int accept_connection(const char* type, int fd, - return r; - } - -- log_info("Accepted %s %s connection from %s", -- type, -- socket_address_family(addr) == AF_INET ? "IP" : "IPv6", -- a); -+ log_debug("Accepted %s %s connection from %s", -+ type, -+ socket_address_family(addr) == AF_INET ? "IP" : "IPv6", -+ a); - - *hostname = b; - -diff --git a/src/journal-remote/microhttpd-util.c b/src/journal-remote/microhttpd-util.c -index a95fff18f3..b45c38d682 100644 ---- a/src/journal-remote/microhttpd-util.c -+++ b/src/journal-remote/microhttpd-util.c -@@ -178,7 +178,7 @@ static int verify_cert_authorized(gnutls_session_t session) { - if (r < 0) - return log_error_errno(r, "gnutls_certificate_verification_status_print failed: %m"); - -- log_info("Certificate status: %s", out.data); -+ log_debug("Certificate status: %s", out.data); - gnutls_free(out.data); - - return status == 0 ? 0 : -EPERM; -@@ -280,7 +280,7 @@ int check_permissions(struct MHD_Connection *connection, int *code, char **hostn - return -EPERM; - } - -- log_info("Connection from %s", buf); -+ log_debug("Connection from %s", buf); - - if (hostname) { - *hostname = buf; diff --git a/0082-journal-remote-process-events-without-delay.patch b/0082-journal-remote-process-events-without-delay.patch deleted file mode 100644 index ff4f296..0000000 --- a/0082-journal-remote-process-events-without-delay.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 706ce3faab879d4cb20906ad6d27e962ab3e4ad0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 13 Mar 2015 00:02:28 -0400 -Subject: [PATCH] journal-remote: process events without delay - -journal-remote buffers input, and then parses it handling one journal entry at a time. -It was possible for useful data to be left in the buffer after some entries were -processesed. But all data would be already read from the fd, so there would be -no reason for the event loop to call the handler again. After some new data came in, -the handler would be called again, and would then process the "old" data in the buffer. - -Fix this by enabling a handler wherever we process input data and do not exhaust data -from the input buffer (i.e. when EAGAIN was not encountered). The handler runs until -we encounter EAGAIN. - -Looping over the input data is done in this roundabout way to allow the event loop -to dispatch other events in the meanwhile. If the loop was inside the handler, a -source which produced data fast enough could completely monopolize the process. - -https://bugs.freedesktop.org/show_bug.cgi?id=89516 -(cherry picked from commit 043945b93824e33e040954612aaa934cd1a43a1b) ---- - src/journal-remote/journal-remote-parse.c | 1 + - src/journal-remote/journal-remote-parse.h | 1 + - src/journal-remote/journal-remote.c | 65 +++++++++++++++++++++++++++---- - 3 files changed, 59 insertions(+), 8 deletions(-) - -diff --git a/src/journal-remote/journal-remote-parse.c b/src/journal-remote/journal-remote-parse.c -index 6c096de03a..7e62954351 100644 ---- a/src/journal-remote/journal-remote-parse.c -+++ b/src/journal-remote/journal-remote-parse.c -@@ -41,6 +41,7 @@ void source_free(RemoteSource *source) { - writer_unref(source->writer); - - sd_event_source_unref(source->event); -+ sd_event_source_unref(source->buffer_event); - - free(source); - } -diff --git a/src/journal-remote/journal-remote-parse.h b/src/journal-remote/journal-remote-parse.h -index 22db550913..06a50296a1 100644 ---- a/src/journal-remote/journal-remote-parse.h -+++ b/src/journal-remote/journal-remote-parse.h -@@ -54,6 +54,7 @@ typedef struct RemoteSource { - Writer *writer; - - sd_event_source *event; -+ sd_event_source *buffer_event; - } RemoteSource; - - RemoteSource* source_new(int fd, bool passive_fd, char *name, Writer *writer); -diff --git a/src/journal-remote/journal-remote.c b/src/journal-remote/journal-remote.c -index d1486e7cda..b7cc6d7172 100644 ---- a/src/journal-remote/journal-remote.c -+++ b/src/journal-remote/journal-remote.c -@@ -289,6 +289,8 @@ static int dispatch_raw_source_event(sd_event_source *event, - int fd, - uint32_t revents, - void *userdata); -+static int dispatch_raw_source_until_block(sd_event_source *event, -+ void *userdata); - static int dispatch_blocking_source_event(sd_event_source *event, - void *userdata); - static int dispatch_raw_connection_event(sd_event_source *event, -@@ -376,8 +378,15 @@ static int add_source(RemoteServer *s, int fd, char* name, bool own_name) { - - r = sd_event_add_io(s->events, &source->event, - fd, EPOLLIN|EPOLLRDHUP|EPOLLPRI, -- dispatch_raw_source_event, s); -- if (r == -EPERM) { -+ dispatch_raw_source_event, source); -+ if (r == 0) { -+ /* Add additional source for buffer processing. It will be -+ * enabled later. */ -+ r = sd_event_add_defer(s->events, &source->buffer_event, -+ dispatch_raw_source_until_block, source); -+ if (r == 0) -+ sd_event_source_set_enabled(source->buffer_event, SD_EVENT_OFF); -+ } else if (r == -EPERM) { - log_debug("Falling back to sd_event_add_defer for fd:%d (%s)", fd, name); - r = sd_event_add_defer(s->events, &source->event, - dispatch_blocking_source_event, source); -@@ -997,15 +1006,18 @@ static void server_destroy(RemoteServer *s) { - ********************************************************************** - **********************************************************************/ - --static int dispatch_raw_source_event(sd_event_source *event, -- int fd, -- uint32_t revents, -- void *userdata) { -+static int handle_raw_source(sd_event_source *event, -+ int fd, -+ uint32_t revents, -+ RemoteServer *s) { - -- RemoteServer *s = userdata; - RemoteSource *source; - int r; - -+ /* Returns 1 if there might be more data pending, -+ * 0 if data is currently exhausted, negative on error. -+ */ -+ - assert(fd >= 0 && fd < (ssize_t) s->sources_size); - source = s->sources[fd]; - assert(source->fd == fd); -@@ -1036,11 +1048,48 @@ static int dispatch_raw_source_event(sd_event_source *event, - return 1; - } - -+static int dispatch_raw_source_until_block(sd_event_source *event, -+ void *userdata) { -+ RemoteSource *source = userdata; -+ int r; -+ -+ /* Make sure event stays around even if source is destroyed */ -+ sd_event_source_ref(event); -+ -+ r = handle_raw_source(event, source->fd, EPOLLIN, server); -+ if (r != 1) -+ /* No more data for now */ -+ sd_event_source_set_enabled(event, SD_EVENT_OFF); -+ -+ sd_event_source_unref(event); -+ -+ return r; -+} -+ -+static int dispatch_raw_source_event(sd_event_source *event, -+ int fd, -+ uint32_t revents, -+ void *userdata) { -+ RemoteSource *source = userdata; -+ int r; -+ -+ assert(source->event); -+ assert(source->buffer_event); -+ -+ r = handle_raw_source(event, fd, EPOLLIN, server); -+ if (r == 1) -+ /* Might have more data. We need to rerun the handler -+ * until we are sure the buffer is exhausted. */ -+ sd_event_source_set_enabled(source->buffer_event, SD_EVENT_ON); -+ -+ return r; -+} -+ - static int dispatch_blocking_source_event(sd_event_source *event, - void *userdata) { - RemoteSource *source = userdata; - -- return dispatch_raw_source_event(event, source->fd, EPOLLIN, server); -+ return handle_raw_source(event, source->fd, EPOLLIN, server); - } - - static int accept_connection(const char* type, int fd, diff --git a/0083-man-update-example-2-in-systemd.network-5.patch b/0083-man-update-example-2-in-systemd.network-5.patch deleted file mode 100644 index b8f49e7..0000000 --- a/0083-man-update-example-2-in-systemd.network-5.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 1d6c7cfcd4e9f4117264e1611ce881a871b92a56 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 13 Mar 2015 00:25:31 -0400 -Subject: [PATCH] man: update example 2 in systemd.network(5) - -none/both/v4/v6 are deprecated in favour of no/yes/ipv4/ipv6. - -https://bugs.freedesktop.org/show_bug.cgi?id=89221 -(cherry picked from commit 9c8ca3f7a69f82ca181b3cd2d5e1d3e621938abb) ---- - man/systemd.network.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/man/systemd.network.xml b/man/systemd.network.xml -index 485876b6ac..24f8416ef9 100644 ---- a/man/systemd.network.xml -+++ b/man/systemd.network.xml -@@ -643,7 +643,7 @@ Gateway=192.168.0.1 - Name=en* - - [Network] --DHCP=both -+DHCP=yes - - - diff --git a/0084-gpt-auto-generator-fix-detection-of-srv.patch b/0084-gpt-auto-generator-fix-detection-of-srv.patch deleted file mode 100644 index ed2547c..0000000 --- a/0084-gpt-auto-generator-fix-detection-of-srv.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 4bbc153799e5b29d19c1ec699abfa3d562d8be46 Mon Sep 17 00:00:00 2001 -From: Mathieu Chevrier -Date: Fri, 13 Mar 2015 00:33:44 -0400 -Subject: [PATCH] gpt-auto-generator: fix detection of /srv - -https://bugs.freedesktop.org/show_bug.cgi?id=89226 -(cherry picked from commit d736e4f3e76daca4ab1b1fc444737e5ee20a27cd) ---- - src/gpt-auto-generator/gpt-auto-generator.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c -index 5c58b58f8a..869a230f17 100644 ---- a/src/gpt-auto-generator/gpt-auto-generator.c -+++ b/src/gpt-auto-generator/gpt-auto-generator.c -@@ -548,7 +548,7 @@ static int enumerate_partitions(dev_t devnum) { - srv_rw = !(flags & GPT_FLAG_READ_ONLY), - - free(srv); -- srv = strdup(node); -+ srv = strdup(subnode); - if (!srv) - return log_oom(); - } diff --git a/0085-sd-rtnl-never-set-serial-to-0.patch b/0085-sd-rtnl-never-set-serial-to-0.patch deleted file mode 100644 index 36c0284..0000000 --- a/0085-sd-rtnl-never-set-serial-to-0.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 12e474fdf33ffc500aacad39fe19aa57b344f9cb Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Fri, 13 Mar 2015 15:49:07 +0100 -Subject: [PATCH] sd-rtnl: never set serial to 0 - -In the unlikely event that we wrap the counter, skip 0 as this is used -for broadcasts. - -Suggested by Richard Maw. - -(cherry picked from commit 913b0eef1a01e0c78f0453b0174e75d5caae1023) ---- - src/libsystemd/sd-rtnl/sd-rtnl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/libsystemd/sd-rtnl/sd-rtnl.c b/src/libsystemd/sd-rtnl/sd-rtnl.c -index 7cdcc5d96a..5df39e1177 100644 ---- a/src/libsystemd/sd-rtnl/sd-rtnl.c -+++ b/src/libsystemd/sd-rtnl/sd-rtnl.c -@@ -262,7 +262,7 @@ static void rtnl_seal_message(sd_rtnl *rtnl, sd_rtnl_message *m) { - assert(m); - assert(m->hdr); - -- m->hdr->nlmsg_seq = rtnl->serial++; -+ m->hdr->nlmsg_seq = rtnl->serial++ ? : rtnl->serial++; - - rtnl_message_seal(m); - diff --git a/0086-gpt-auto-generator-allow-type-check-to-fail.patch b/0086-gpt-auto-generator-allow-type-check-to-fail.patch deleted file mode 100644 index f9194c9..0000000 --- a/0086-gpt-auto-generator-allow-type-check-to-fail.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 1261a8df61818d48c6bc9445a16b40e24ffaa74e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 13 Mar 2015 21:10:13 -0500 -Subject: [PATCH] gpt-auto-generator: allow type check to fail - -add_mount() is OK with unknow file type, but we have to initalize -the variable to NULL not to pass garbage on error. - -(cherry picked from commit a0b1209c4a59754f428894e0485413542da50014) ---- - src/gpt-auto-generator/gpt-auto-generator.c | 13 +++++-------- - 1 file changed, 5 insertions(+), 8 deletions(-) - -diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c -index 869a230f17..e0a5bb305b 100644 ---- a/src/gpt-auto-generator/gpt-auto-generator.c -+++ b/src/gpt-auto-generator/gpt-auto-generator.c -@@ -290,7 +290,7 @@ static int probe_and_add_mount( - const char *post) { - - _cleanup_blkid_free_probe_ blkid_probe b = NULL; -- const char *fstype; -+ const char *fstype = NULL; - int r; - - assert(id); -@@ -323,14 +323,11 @@ static int probe_and_add_mount( - r = blkid_do_safeprobe(b); - if (r == -2 || r == 1) /* no result or uncertain */ - return 0; -- else if (r != 0) { -- if (errno == 0) -- errno = EIO; -- log_error_errno(errno, "Failed to probe %s: %m", what); -- return -errno; -- } -+ else if (r != 0) -+ return log_error_errno(errno ?: EIO, "Failed to probe %s: %m", what); - -- blkid_probe_lookup_value(b, "TYPE", &fstype, NULL); -+ /* add_mount is OK with fstype being NULL. */ -+ (void) blkid_probe_lookup_value(b, "TYPE", &fstype, NULL); - - return add_mount( - id, diff --git a/0087-man-fix-a-bunch-of-links.patch b/0087-man-fix-a-bunch-of-links.patch deleted file mode 100644 index 2c97c98..0000000 --- a/0087-man-fix-a-bunch-of-links.patch +++ /dev/null @@ -1,1453 +0,0 @@ -From 285bc1b0a3d2a6e0b87a7778de8227216feb897e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 13 Mar 2015 21:22:39 -0500 -Subject: [PATCH] man: fix a bunch of links - -All hail linkchecker! - -(cherry picked from commit 3ba3a79df4ae094d1008c04a9af8d1ff970124c4) - -Conflicts: - man/systemd-efi-boot-generator.xml ---- - man/busctl.xml | 4 ++-- - man/crypttab.xml | 20 +++++++++---------- - man/file-hierarchy.xml | 2 +- - man/kernel-command-line.xml | 2 +- - man/locale.conf.xml | 8 ++++---- - man/localectl.xml | 8 ++++---- - man/logind.conf.xml | 2 +- - man/machine-id.xml | 4 ++-- - man/modules-load.d.xml | 2 +- - man/os-release.xml | 2 +- - man/sd_bus_message_append.xml | 2 +- - man/sd_bus_open_user.xml | 2 +- - man/sd_event_add_signal.xml | 4 ++-- - man/sd_journal_get_catalog.xml | 2 +- - man/sd_journal_get_cursor.xml | 2 +- - man/sd_journal_print.xml | 14 ++++++------- - man/sysctl.d.xml | 8 ++++---- - man/systemctl.xml | 6 +++--- - man/systemd-activate.xml | 2 +- - man/systemd-analyze.xml | 4 ++-- - man/systemd-cat.xml | 2 +- - man/systemd-cryptsetup-generator.xml | 2 +- - man/systemd-cryptsetup@.service.xml | 2 +- - man/systemd-efi-boot-generator.xml | 4 ++-- - man/systemd-firstboot.xml | 14 ++++++------- - man/systemd-fstab-generator.xml | 4 ++-- - man/systemd-gpt-auto-generator.xml | 8 ++++---- - man/systemd-hibernate-resume-generator.xml | 2 +- - man/systemd-journald.service.xml | 2 +- - man/systemd-localed.service.xml | 8 ++++---- - man/systemd-nspawn.xml | 4 ++-- - man/systemd-quotacheck.service.xml | 2 +- - man/systemd-remount-fs.service.xml | 6 +++--- - man/systemd-socket-proxyd.xml | 8 ++++---- - man/systemd-sysctl.service.xml | 8 ++++---- - man/systemd-system.conf.xml | 2 +- - man/systemd-update-utmp.service.xml | 2 +- - man/systemd-vconsole-setup.service.xml | 8 ++++---- - man/systemd.automount.xml | 6 +++--- - man/systemd.exec.xml | 16 +++++++-------- - man/systemd.generator.xml | 2 +- - man/systemd.journal-fields.xml | 2 +- - man/systemd.kill.xml | 4 ++-- - man/systemd.mount.xml | 14 ++++++------- - man/systemd.network.xml | 8 ++++---- - man/systemd.path.xml | 4 ++-- - man/systemd.socket.xml | 32 +++++++++++++++--------------- - man/systemd.swap.xml | 10 +++++----- - man/systemd.unit.xml | 4 ++-- - man/systemd.xml | 6 +++--- - man/vconsole.conf.xml | 6 +++--- - 51 files changed, 151 insertions(+), 151 deletions(-) - -diff --git a/man/busctl.xml b/man/busctl.xml -index 251233bb96..cc1844b0a0 100644 ---- a/man/busctl.xml -+++ b/man/busctl.xml -@@ -288,7 +288,7 @@ - url="http://wiki.wireshark.org/Development/LibpcapFileFormat">Libpcap - File Format description. Make sure to redirect the - output to STDOUT to a file. Tools like -- wireshark1 -+ wireshark1 - may be used to dissect and view the generated - files. - -@@ -472,7 +472,7 @@ o "/org/freedesktop/systemd1/job/42684" - systemd1, - systemd-bus-proxyd8, - machinectl1, -- wireshark1 -+ wireshark1 - - - -diff --git a/man/crypttab.xml b/man/crypttab.xml -index aeacc57973..3e249ad23e 100644 ---- a/man/crypttab.xml -+++ b/man/crypttab.xml -@@ -75,7 +75,7 @@ - - Setting up encrypted block devices using this file supports - three encryption modes: LUKS, TrueCrypt and plain. See -- cryptsetup8 -+ cryptsetup8 - for more information about each mode. When no mode is specified in - the options field and the block device contains a LUKS signature, - it is opened as a LUKS device; otherwise, it is assumed to be in -@@ -117,7 +117,7 @@ - - - Specifies the cipher to use. See -- cryptsetup8 -+ cryptsetup8 - for possible values and the default value of this option. A - cipher with unpredictable IV values, such as - aes-cbc-essiv:sha256, is -@@ -129,7 +129,7 @@ - - Specifies the hash to use for password - hashing. See -- cryptsetup8 -+ cryptsetup8 - for possible values and the default value of this - option. - -@@ -140,7 +140,7 @@ - Use a detached (separated) metadata device or - file where the LUKS header is stored. This option is only - relevant for LUKS devices. See -- cryptsetup8 -+ cryptsetup8 - for possible values and the default value of this - option. - -@@ -150,7 +150,7 @@ - - Specifies the number of bytes to skip at the - start of the key file. See -- cryptsetup8 -+ cryptsetup8 - for possible values and the default value of this - option. - -@@ -160,7 +160,7 @@ - - Specifies the maximum number of bytes to read - from the key file. See -- cryptsetup8 -+ cryptsetup8 - for possible values and the default value of this option. This - option is ignored in plain encryption mode, as the key file - size is then given by the key size. -@@ -174,7 +174,7 @@ - given passphrase or key, but another would, the setup of the - device will fail regardless. This option implies - . See -- cryptsetup8 -+ cryptsetup8 - for possible values. The default is to try all key slots in - sequential order. - -@@ -221,7 +221,7 @@ - - - Specifies the key size in bits. See -- cryptsetup8 -+ cryptsetup8 - for possible values and the default value of this - option. - -@@ -278,7 +278,7 @@ - volume provided in the second field. Please note that there is - no protection for the hidden volume if the outer volume is - mounted instead. See -- cryptsetup8 -+ cryptsetup8 - for more information on this limitation. - - -@@ -383,7 +383,7 @@ hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfil - systemd1, - systemd-cryptsetup@.service8, - systemd-cryptsetup-generator8, -- cryptsetup8, -+ cryptsetup8, - mkswap8, - mke2fs8 - -diff --git a/man/file-hierarchy.xml b/man/file-hierarchy.xml -index e9c894f5c8..364e130790 100644 ---- a/man/file-hierarchy.xml -+++ b/man/file-hierarchy.xml -@@ -397,7 +397,7 @@ - /dev/shm - Place for POSIX shared memory segments, as - created via -- shm_open3. -+ shm_open3. - This directory is flushed on boot, and is a - tmpfs file system. Since all users have - write access to this directory, special care should be taken -diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml -index 3741cf9cc2..919bd13745 100644 ---- a/man/kernel-command-line.xml -+++ b/man/kernel-command-line.xml -@@ -336,7 +336,7 @@ - - Enables resume from hibernation using the specified - device. All -- fstab5-like -+ fstab5-like - paths are supported. For details, see - systemd-hibernate-resume-generator8. - -diff --git a/man/locale.conf.xml b/man/locale.conf.xml -index 48c0006db2..2c32d16094 100644 ---- a/man/locale.conf.xml -+++ b/man/locale.conf.xml -@@ -91,7 +91,7 @@ - might be checked for locale configuration as well, however only as - fallback. - -- localectl1 -+ localectl1 - may be used to alter the settings in this file during runtime from - the command line. Use - systemd-firstboot1 -@@ -121,7 +121,7 @@ - Note that LC_ALL may not be configured in this - file. For details about the meaning and semantics of these - settings, refer to -- locale7. -+ locale7. - - - -@@ -142,8 +142,8 @@ LC_MESSAGES=en_US.UTF-8 - See Also - - systemd1, -- locale7, -- localectl1, -+ locale7, -+ localectl1, - systemd-localed.service8, - systemd-firstboot1 - -diff --git a/man/localectl.xml b/man/localectl.xml -index aae6e0629c..7def047f62 100644 ---- a/man/localectl.xml -+++ b/man/localectl.xml -@@ -124,7 +124,7 @@ - Set the system locale. This takes one or more - assignments such as "LANG=de_DE.utf8", - "LC_MESSAGES=en_GB.utf8", and so on. See -- locale7 -+ locale7 - for details on the available settings and their meanings. Use - list-locales for a list of available - locales (see below). -@@ -204,10 +204,10 @@ - See Also - - systemd1, -- locale7, -- locale.conf5, -+ locale7, -+ locale.conf5, - vconsole.conf5, -- loadkeys1, -+ loadkeys1, - kbd4, - - The XKB Configuration Guide -diff --git a/man/logind.conf.xml b/man/logind.conf.xml -index ca2b18783c..d02d573565 100644 ---- a/man/logind.conf.xml -+++ b/man/logind.conf.xml -@@ -126,7 +126,7 @@ - - Note that setting KillUserProcesses=1 - will break tools like -- screen1. -+ screen1. - - - -diff --git a/man/machine-id.xml b/man/machine-id.xml -index 83e0b26ced..92d67a3869 100644 ---- a/man/machine-id.xml -+++ b/man/machine-id.xml -@@ -75,7 +75,7 @@ - globally unique ID in the network, which does not change even if - the local network configuration changes. Due to this and its - greater length, it is a more useful replacement for the -- gethostid3 -+ gethostid3 - call that POSIX specifies. - - The -@@ -127,7 +127,7 @@ id[8] = (id[8] & 0x3F) | 0x80; - - systemd1, - systemd-machine-id-setup1, -- gethostid3, -+ gethostid3, - hostname5, - machine-info5, - os-release5, -diff --git a/man/modules-load.d.xml b/man/modules-load.d.xml -index 34a937db68..4b722aa128 100644 ---- a/man/modules-load.d.xml -+++ b/man/modules-load.d.xml -@@ -94,7 +94,7 @@ virtio-net - systemd1, - systemd-modules-load.service8, - systemd-delta1, -- modprobe8 -+ modprobe8 - - - -diff --git a/man/os-release.xml b/man/os-release.xml -index 1b71a49d05..8f4ab10fed 100644 ---- a/man/os-release.xml -+++ b/man/os-release.xml -@@ -316,7 +316,7 @@ BUG_REPORT_URL="https://bugzilla.redhat.com/" - See Also - - systemd1, -- lsb_release1, -+ lsb_release1, - hostname5, - machine-id5, - machine-info5 -diff --git a/man/sd_bus_message_append.xml b/man/sd_bus_message_append.xml -index 0c49a0c7c9..11fa07c636 100644 ---- a/man/sd_bus_message_append.xml -+++ b/man/sd_bus_message_append.xml -@@ -245,7 +245,7 @@ sd_bus_message_append(m, "ynqiuxtd", y, n, q, i, u, x, t, d); - sd_bus_new3, - sd_bus_ref3, - sd_bus_unref3, -- ssh1, -+ ssh1, - systemd-machined.service8, - machinectl1 - -diff --git a/man/sd_bus_open_user.xml b/man/sd_bus_open_user.xml -index e7a765962a..2bbb010696 100644 ---- a/man/sd_bus_open_user.xml -+++ b/man/sd_bus_open_user.xml -@@ -208,7 +208,7 @@ along with systemd; If not, see . - sd_bus_new3, - sd_bus_ref3, - sd_bus_unref3, -- ssh1, -+ ssh1, - systemd-machined.service8, - machinectl1 - -diff --git a/man/sd_event_add_signal.xml b/man/sd_event_add_signal.xml -index 0299aa5a53..7c8df7df8d 100644 ---- a/man/sd_event_add_signal.xml -+++ b/man/sd_event_add_signal.xml -@@ -86,7 +86,7 @@ along with systemd; If not, see . - the source parameter. The - signal parameter specifies the signal to be handled - (see -- signal7). -+ signal7). - The handler must reference a function to - call when the signal is delivered or be NULL. - The handler function will be passed the -@@ -94,7 +94,7 @@ along with systemd; If not, see . - freely by the caller. The handler also receives a pointer to a - const struct signalfd_siginfo containing - the information about the received signal. See -- signalfd2 -+ signalfd2 - for further information. - - Only a single handler may be installed for a specific -diff --git a/man/sd_journal_get_catalog.xml b/man/sd_journal_get_catalog.xml -index 1dcbadd186..c19eb11b20 100644 ---- a/man/sd_journal_get_catalog.xml -+++ b/man/sd_journal_get_catalog.xml -@@ -130,7 +130,7 @@ - sd_journal_open3, - sd_journal_next3, - sd_journal_get_data3, -- malloc3 -+ malloc3 - - - -diff --git a/man/sd_journal_get_cursor.xml b/man/sd_journal_get_cursor.xml -index 2b7f443f29..a400d8b1b5 100644 ---- a/man/sd_journal_get_cursor.xml -+++ b/man/sd_journal_get_cursor.xml -@@ -84,7 +84,7 @@ - time) available entry. The call takes two arguments: a journal - context object and a pointer to a string pointer where the cursor - string will be placed. The string is allocated via libc -- malloc3 -+ malloc3 - and should be freed after use with - free3. - -diff --git a/man/sd_journal_print.xml b/man/sd_journal_print.xml -index 068b10e7ca..0cd0b45b9a 100644 ---- a/man/sd_journal_print.xml -+++ b/man/sd_journal_print.xml -@@ -119,7 +119,7 @@ - sd_journal_print() but takes a variable - argument list encapsulated in an object of type - va_list (see -- stdarg3 -+ stdarg3 - for more information) instead of the format string. It is - otherwise equivalent in behavior. - -@@ -145,7 +145,7 @@ - sd_journal_send() but takes an array of - struct iovec (as defined in - uio.h, see -- readv3 -+ readv3 - for details) instead of the format string. Each structure should - reference one field of the entry to submit. The second argument - specifies the number of structures in the array. -@@ -154,7 +154,7 @@ - necessary. - - sd_journal_perror() is a similar to -- perror3 -+ perror3 - and writes a message to the journal that consists of the passed - string, suffixed with ": " and a human readable representation of - the current error code stored in -@@ -219,7 +219,7 @@ sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid( - Async signal safety - sd_journal_sendv() is "async signal - safe" in the meaning of -- signal7. -+ signal7. - - - sd_journal_print, -@@ -249,11 +249,11 @@ sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid( - sd-journal3, - sd_journal_stream_fd3, - syslog3, -- perror3, -+ perror3, - errno3, - systemd.journal-fields7, -- signal7, -- socket7 -+ signal7, -+ socket7 - - - -diff --git a/man/sysctl.d.xml b/man/sysctl.d.xml -index 5a35cfe2c8..8a131791a5 100644 ---- a/man/sysctl.d.xml -+++ b/man/sysctl.d.xml -@@ -57,7 +57,7 @@ - At boot, - systemd-sysctl.service8 - reads configuration files from the above directories to configure -- sysctl8 -+ sysctl8 - kernel parameters. - - -@@ -162,9 +162,9 @@ net.bridge.bridge-nf-call-arptables = 0 - systemd1, - systemd-sysctl.service8, - systemd-delta1, -- sysctl8, -- sysctl.conf5, -- modprobe8 -+ sysctl8, -+ sysctl.conf5, -+ modprobe8 - - - -diff --git a/man/systemctl.xml b/man/systemctl.xml -index 338c1d3280..b5e4cdf862 100644 ---- a/man/systemctl.xml -+++ b/man/systemctl.xml -@@ -1703,9 +1703,9 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service - $VISUAL are present or if it is set to an empty - string or if their execution failed, systemctl will try to execute well - known editors in this order: -- nano1, -- vim1, -- vi1. -+ nano1, -+ vim1, -+ vi1. - - - -diff --git a/man/systemd-activate.xml b/man/systemd-activate.xml -index e64894a28b..cb68a79be7 100644 ---- a/man/systemd-activate.xml -+++ b/man/systemd-activate.xml -@@ -165,7 +165,7 @@ - systemd1, - systemd.socket5, - systemd.service5, -- cat1 -+ cat1 - - - -diff --git a/man/systemd-analyze.xml b/man/systemd-analyze.xml -index 1ff81d3d5a..198315052f 100644 ---- a/man/systemd-analyze.xml -+++ b/man/systemd-analyze.xml -@@ -145,7 +145,7 @@ - systemd-analyze dot generates textual - dependency graph description in dot format for further processing - with the GraphViz -- dot1 -+ dot1 - tool. Use a command line like systemd-analyze dot | dot - -Tsvg > systemd.svg to generate a graphical dependency - tree. Unless or -@@ -229,7 +229,7 @@ - dot command (see above), this selects which - relationships are shown in the dependency graph. Both options - require a -- glob7 -+ glob7 - pattern as an argument, which will be matched against the - left-hand and the right-hand, respectively, nodes of a - relationship. -diff --git a/man/systemd-cat.xml b/man/systemd-cat.xml -index 38ddf66d27..9b1a8809dc 100644 ---- a/man/systemd-cat.xml -+++ b/man/systemd-cat.xml -@@ -171,7 +171,7 @@ - - systemd1, - systemctl1, -- logger1 -+ logger1 - - - -diff --git a/man/systemd-cryptsetup-generator.xml b/man/systemd-cryptsetup-generator.xml -index 1974cd7a2d..b6270358ea 100644 ---- a/man/systemd-cryptsetup-generator.xml -+++ b/man/systemd-cryptsetup-generator.xml -@@ -185,7 +185,7 @@ - systemd1, - crypttab5, - systemd-cryptsetup@.service8, -- cryptsetup8, -+ cryptsetup8, - systemd-fstab-generator8 - - -diff --git a/man/systemd-cryptsetup@.service.xml b/man/systemd-cryptsetup@.service.xml -index bd03637deb..ea524851eb 100644 ---- a/man/systemd-cryptsetup@.service.xml -+++ b/man/systemd-cryptsetup@.service.xml -@@ -78,7 +78,7 @@ - systemd1, - systemd-cryptsetup-generator8, - crypttab5, -- cryptsetup8 -+ cryptsetup8 - - - -diff --git a/man/systemd-efi-boot-generator.xml b/man/systemd-efi-boot-generator.xml -index fd7ba79837..3431c3ce5b 100644 ---- a/man/systemd-efi-boot-generator.xml -+++ b/man/systemd-efi-boot-generator.xml -@@ -62,7 +62,7 @@ - does not communicate the used ESP to the OS, on systems where - /boot is an explicitly configured mount (for - example, listed in -- fstab5) -+ fstab5) - or where the /boot mount point is non-empty. - Since this generator creates an automount unit, the mount will - only be activated on-demand, when accessed. -@@ -79,7 +79,7 @@ - systemd.automount5, - systemd-gpt-auto-generator8, - gummiboot8, -- fstab5 -+ fstab5 - - - -diff --git a/man/systemd-firstboot.xml b/man/systemd-firstboot.xml -index 67d38ba31f..67289daa26 100644 ---- a/man/systemd-firstboot.xml -+++ b/man/systemd-firstboot.xml -@@ -91,7 +91,7 @@ - - Note that this tool operates directly on the file system and - does not involve any running system services, unlike -- localectl1, -+ localectl1, - timedatectl1 - or - hostnamectl1. -@@ -125,7 +125,7 @@ - LANG= and LC_MESSAGES - settings. The argument should be a valid locale identifier, - such as de_DE.UTF-8. This controls the -- locale.conf5 -+ locale.conf5 - configuration file. - - -@@ -163,7 +163,7 @@ - - Sets the password of the system's root user. - This creates a -- shadow5 -+ shadow5 - file. This setting exists in two forms: - accepts the password to set - directly on the command line, -@@ -171,7 +171,7 @@ - Note that it is not recommended specifying passwords on the - command line as other users might be able to see them simply - by invoking -- ps1. -+ ps1. - - - -@@ -244,13 +244,13 @@ - See Also - - systemd1, -- locale.conf5, -+ locale.conf5, - localtime5, - hostname5, - machine-id5, -- shadow5, -+ shadow5, - systemd-machine-id-setup1, -- localectl1, -+ localectl1, - timedatectl1, - hostnamectl1 - -diff --git a/man/systemd-fstab-generator.xml b/man/systemd-fstab-generator.xml -index 022efb4130..bdc2dc1d0e 100644 ---- a/man/systemd-fstab-generator.xml -+++ b/man/systemd-fstab-generator.xml -@@ -54,7 +54,7 @@ - - systemd-fstab-generator is a generator - that translates /etc/fstab (see -- fstab5 -+ fstab5 - for details) into native systemd units early at boot and when - configuration of the system manager is reloaded. This will - instantiate mount and swap units as necessary. -@@ -173,7 +173,7 @@ - See Also - - systemd1, -- fstab5, -+ fstab5, - systemd.mount5, - systemd.swap5, - systemd-cryptsetup-generator8 -diff --git a/man/systemd-gpt-auto-generator.xml b/man/systemd-gpt-auto-generator.xml -index 8d2eaca4f6..bcc64ec9b5 100644 ---- a/man/systemd-gpt-auto-generator.xml -+++ b/man/systemd-gpt-auto-generator.xml -@@ -66,7 +66,7 @@ - Partitions Specification. Note that this generator has no - effect on non-GPT systems, on systems where the units are - explicitly configured (for example, listed in -- fstab5), -+ fstab5), - or where the mount points are non-empty. - - This generator will only look for root partitions on the -@@ -169,9 +169,9 @@ - systemd-fstab-generator8, - systemd-efi-boot-generator8, - systemd-cryptsetup@.service8, -- cryptsetup8, -- fstab5, -- btrfs8 -+ cryptsetup8, -+ fstab5, -+ btrfs8 - - - -diff --git a/man/systemd-hibernate-resume-generator.xml b/man/systemd-hibernate-resume-generator.xml -index a21782cbf9..d811b9b551 100644 ---- a/man/systemd-hibernate-resume-generator.xml -+++ b/man/systemd-hibernate-resume-generator.xml -@@ -73,7 +73,7 @@ - Takes a path to the resume device. Both - persistent block device paths like - /dev/disk/by-foo/bar and -- fstab5-style -+ fstab5-style - specifiers like FOO=bar are - supported. - -diff --git a/man/systemd-journald.service.xml b/man/systemd-journald.service.xml -index 6b250b65e6..8280d6c874 100644 ---- a/man/systemd-journald.service.xml -+++ b/man/systemd-journald.service.xml -@@ -241,7 +241,7 @@ - systemd.journal-fields7, - sd-journal3, - systemd-coredump8, -- setfacl1, -+ setfacl1, - sd_journal_print4, - pydoc systemd.journal. - -diff --git a/man/systemd-localed.service.xml b/man/systemd-localed.service.xml -index 8999166383..06aa78c0e4 100644 ---- a/man/systemd-localed.service.xml -+++ b/man/systemd-localed.service.xml -@@ -64,7 +64,7 @@ - unused. - - The tool -- localectl1 -+ localectl1 - is a command line client to this service. - - See the See Also - - systemd1, -- locale.conf5, -+ locale.conf5, - vconsole.conf5, -- localectl1, -- loadkeys1 -+ localectl1, -+ loadkeys1 - - - -diff --git a/man/systemd-nspawn.xml b/man/systemd-nspawn.xml -index 4a936d326f..65b4c2f294 100644 ---- a/man/systemd-nspawn.xml -+++ b/man/systemd-nspawn.xml -@@ -598,7 +598,7 @@ - - Control the architecture ("personality") - reported by -- uname2 -+ uname2 - in the container. Currently, only x86 and - x86-64 are supported. This is useful when - running a 32-bit container on a 64-bit host. If this setting -@@ -735,7 +735,7 @@ - pacman8, - systemd.slice5, - machinectl1, -- btrfs8 -+ btrfs8 - - - -diff --git a/man/systemd-quotacheck.service.xml b/man/systemd-quotacheck.service.xml -index 2179f11e95..9d4976274e 100644 ---- a/man/systemd-quotacheck.service.xml -+++ b/man/systemd-quotacheck.service.xml -@@ -86,7 +86,7 @@ - See Also - - systemd1, -- quotacheck8, -+ quotacheck8, - systemd-fsck@.service8 - - -diff --git a/man/systemd-remount-fs.service.xml b/man/systemd-remount-fs.service.xml -index 7b88ac3f3c..8e60e31b5c 100644 ---- a/man/systemd-remount-fs.service.xml -+++ b/man/systemd-remount-fs.service.xml -@@ -56,7 +56,7 @@ - - systemd-remount-fs.service is an - early-boot service that applies mount options listed in -- fstab5 -+ fstab5 - to the root file system, the /usr file system - and the kernel API file systems. This is required so that the - mount options of these file systems -- which are pre-mounted by -@@ -80,8 +80,8 @@ - See Also - - systemd1, -- fstab5, -- mount8 -+ fstab5, -+ mount8 - - - -diff --git a/man/systemd-socket-proxyd.xml b/man/systemd-socket-proxyd.xml -index 1c78b656e1..0b852e6bc1 100644 ---- a/man/systemd-socket-proxyd.xml -+++ b/man/systemd-socket-proxyd.xml -@@ -72,7 +72,7 @@ - to a configured server for each client, and then bidirectionally - forwards data between the two. - This utility's behavior is similar to -- socat1. -+ socat1. - The main differences for systemd-socket-proxyd - are support for socket activation with - Accept=false and an event-driven -@@ -183,9 +183,9 @@ $ curl http://localhost:80/]]> - systemd.socket5, - systemd.service5, - systemctl1, -- socat1, -- nginx1, -- curl1 -+ socat1, -+ nginx1, -+ curl1 - - - -diff --git a/man/systemd-sysctl.service.xml b/man/systemd-sysctl.service.xml -index f35a18a4d4..d4c1a7ebe3 100644 ---- a/man/systemd-sysctl.service.xml -+++ b/man/systemd-sysctl.service.xml -@@ -56,11 +56,11 @@ - - systemd-sysctl.service is an early-boot - service that configures -- sysctl8 -+ sysctl8 - kernel parameters. - - See -- sysctl.d5 -+ sysctl.d5 - for information about the configuration of this service. - - -@@ -68,8 +68,8 @@ - See Also - - systemd1, -- sysctl.d5, -- sysctl8, -+ sysctl.d5, -+ sysctl8, - - - -diff --git a/man/systemd-system.conf.xml b/man/systemd-system.conf.xml -index c7bcfaee4d..1b74ed38f7 100644 ---- a/man/systemd-system.conf.xml -+++ b/man/systemd-system.conf.xml -@@ -172,7 +172,7 @@ - capabilities7 - for details. Takes a whitespace-separated list of capability - names as read by -- cap_from_name3. -+ cap_from_name3. - Capabilities listed will be included in the bounding set, all - others are removed. If the list of capabilities is prefixed - with ~, all but the listed capabilities will be included, the -diff --git a/man/systemd-update-utmp.service.xml b/man/systemd-update-utmp.service.xml -index b842d29721..c8a9cb7c90 100644 ---- a/man/systemd-update-utmp.service.xml -+++ b/man/systemd-update-utmp.service.xml -@@ -69,7 +69,7 @@ - - systemd1, - utmp5, -- auditd8 -+ auditd8 - - - -diff --git a/man/systemd-vconsole-setup.service.xml b/man/systemd-vconsole-setup.service.xml -index 59bb5e4e8c..7c6ed08997 100644 ---- a/man/systemd-vconsole-setup.service.xml -+++ b/man/systemd-vconsole-setup.service.xml -@@ -57,9 +57,9 @@ - systemd-vconsole-setup.service is an - early-boot service that configures the virtual console font and - console keymap. Internally it calls -- loadkeys1 -+ loadkeys1 - and -- setfont8. -+ setfont8. - - See - vconsole.conf5 -@@ -105,8 +105,8 @@ - - systemd1, - vconsole.conf5, -- loadkeys1, -- setfont8, -+ loadkeys1, -+ setfont8, - systemd-localed.service8 - - -diff --git a/man/systemd.automount.xml b/man/systemd.automount.xml -index 3db65d988d..b5b5885cdf 100644 ---- a/man/systemd.automount.xml -+++ b/man/systemd.automount.xml -@@ -96,7 +96,7 @@ - - Automount units may either be configured via unit files, or - via /etc/fstab (see -- fstab5 -+ fstab5 - for details). - - For details how systemd parses -@@ -145,8 +145,8 @@ - systemctl1, - systemd.unit5, - systemd.mount5, -- mount8, -- automount8, -+ mount8, -+ automount8, - systemd.directives7 - - -diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml -index fdb1578641..56b53e6015 100644 ---- a/man/systemd.exec.xml -+++ b/man/systemd.exec.xml -@@ -663,7 +663,7 @@ - capabilities7 - for details. Takes a whitespace-separated list of capability - names as read by -- cap_from_name3, -+ cap_from_name3, - e.g. CAP_SYS_ADMIN, - CAP_DAC_OVERRIDE, - CAP_SYS_PTRACE. Capabilities listed will -@@ -711,7 +711,7 @@ - set for the executed process. Take a capability string - describing the effective, permitted and inherited capability - sets as documented in -- cap_from_text3. -+ cap_from_text3. - Note that these capability sets are usually influenced (and - filtered) by the capabilities attached to the executed file. - Due to that CapabilityBoundingSet= is -@@ -881,7 +881,7 @@ - , which control whether mounts in the - file system namespace set up for this unit's processes will - receive or propagate mounts or unmounts. See -- mount2 -+ mount2 - for details. Defaults to . Use - to ensure that mounts and unmounts are - propagated from the host to the container and vice versa. Use -@@ -929,7 +929,7 @@ - authorize the transition. This directive is ignored if SELinux - is disabled. If prefixed by -, all errors - will be ignored. See -- setexeccon3 -+ setexeccon3 - for details. - - -@@ -1076,7 +1076,7 @@ - prefixed with ~ the listed address - families will be applied as blacklist, otherwise as whitelist. - Note that this restricts access to the -- socket2 -+ socket2 - system call only. Sockets passed into the process by other - means (for example, by using socket activation with socket - units, see -@@ -1104,7 +1104,7 @@ - Personality= - - Controls which kernel architecture -- uname2 -+ uname2 - shall report, when invoked by unit processes. Takes one of - x86 and x86-64. This - is useful when running 32-bit services on a 64-bit host -@@ -1166,7 +1166,7 @@ - $LANG - - Locale. Can be set in -- locale.conf5 -+ locale.conf5 - or on the kernel command line (see - systemd1 - and -@@ -1184,7 +1184,7 @@ - login shell. The variables are set for the units that have - User= set, which includes user - systemd instances. See -- passwd5. -+ passwd5. - - - -diff --git a/man/systemd.generator.xml b/man/systemd.generator.xml -index ccb698752a..9b39e732e3 100644 ---- a/man/systemd.generator.xml -+++ b/man/systemd.generator.xml -@@ -333,7 +333,7 @@ find $dir - systemd-debug-generator8, - systemd-efi-boot-generator8, - systemd-fstab-generator8, -- fstab5, -+ fstab5, - systemd-getty-generator8, - systemd-gpt-auto-generator8, - systemd-hibernate-resume-generator8, -diff --git a/man/systemd.journal-fields.xml b/man/systemd.journal-fields.xml -index 1fd46de31f..7d6c5c715f 100644 ---- a/man/systemd.journal-fields.xml -+++ b/man/systemd.journal-fields.xml -@@ -134,7 +134,7 @@ - derived from glibc's - program_invocation_short_name variable, - see -- program_invocation_short_name3.) -+ program_invocation_short_name3.) - - - -diff --git a/man/systemd.kill.xml b/man/systemd.kill.xml -index c974e22489..e57f0e7242 100644 ---- a/man/systemd.kill.xml -+++ b/man/systemd.kill.xml -@@ -135,7 +135,7 @@ - of shutting down a unit (see above), and is usually followed - by SIGKILL (see above and below). For a - list of valid signals, see -- signal7. -+ signal7. - Defaults to SIGTERM. - - -@@ -176,7 +176,7 @@ - systemd.exec5, - systemd.directives7, - kill2, -- signal7 -+ signal7 - - - -diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml -index 5cbde8b84c..fcb9a44161 100644 ---- a/man/systemd.mount.xml -+++ b/man/systemd.mount.xml -@@ -68,7 +68,7 @@ - Additional options are listed in - systemd.exec5, - which define the execution environment the -- mount8 -+ mount8 - binary is executed in, and in - systemd.kill5, - which define the way the processes are terminated, and in -@@ -78,7 +78,7 @@ - particularly useful for mount units specifying a - Type= option or using configuration not - specified in /etc/fstab; -- mount8 -+ mount8 - will refuse options that are not listed in - /etc/fstab if it is not run as UID 0. - -@@ -118,7 +118,7 @@ - - Mount units may either be configured via unit files, or via - /etc/fstab (see -- fstab5 -+ fstab5 - for details). Mounts listed in /etc/fstab - will be converted into native units dynamically at boot and when - the configuration of the system manager is reloaded. In general, -@@ -231,7 +231,7 @@ - What= - Takes an absolute path of a device node, file - or other resource to mount. See -- mount8 -+ mount8 - for details. If this refers to a device node, a dependency on - the respective device unit is automatically created. (See - systemd.device5 -@@ -251,7 +251,7 @@ - - Type= - Takes a string for the file system type. See -- mount8 -+ mount8 - for details. This setting is optional. - - -@@ -270,7 +270,7 @@ - the options specified in Options= is - relaxed, and unknown mount options are tolerated. This - corresponds with -- mount8's -+ mount8's - -s switch. Defaults to - off. - -@@ -321,7 +321,7 @@ - systemd.service5, - systemd.device5, - proc5, -- mount8, -+ mount8, - systemd-fstab-generator8, - systemd.directives7 - -diff --git a/man/systemd.network.xml b/man/systemd.network.xml -index 24f8416ef9..97386271d6 100644 ---- a/man/systemd.network.xml -+++ b/man/systemd.network.xml -@@ -286,7 +286,7 @@ - separated by a / character. Specify - this key more than once to configure several addresses. - The format of the address must be as described in -- inet_pton3. -+ inet_pton3. - This is a short-hand for an [Address] section only - containing an Address key (see below). This option may be - specified more than once. -@@ -312,7 +312,7 @@ - - The gateway address, which must be in the format - described in -- inet_pton3. -+ inet_pton3. - This is a short-hand for a [Route] section only containing - a Gateway key. This option may be specified more than - once. -@@ -323,7 +323,7 @@ - - A DNS server address, which must be in the format - described in -- inet_pton3. -+ inet_pton3. - This option may be specified more than once. - - -@@ -429,7 +429,7 @@ - - The broadcast address, which must be in the format - described in -- inet_pton3. -+ inet_pton3. - This key only applies to IPv4 addresses. If it is not - given, it is derived from the Address - key. -diff --git a/man/systemd.path.xml b/man/systemd.path.xml -index 08a7ec8975..d02bc92ae6 100644 ---- a/man/systemd.path.xml -+++ b/man/systemd.path.xml -@@ -74,7 +74,7 @@ - (see below). - - Internally, path units use the -- inotify7 -+ inotify7 - API to monitor file systems. Due to that, it suffers by the same - limitations as inotify, and for example cannot be used to monitor - files or directories changed by other machines on remote NFS file -@@ -187,7 +187,7 @@ - systemctl1, - systemd.unit5, - systemd.service5, -- inotify7, -+ inotify7, - systemd.directives7 - - -diff --git a/man/systemd.socket.xml b/man/systemd.socket.xml -index 3938345fac..2f541937f8 100644 ---- a/man/systemd.socket.xml -+++ b/man/systemd.socket.xml -@@ -265,7 +265,7 @@ - Takes a one of , - or . Controls - the IPV6_V6ONLY socket option (see -- ipv67 -+ ipv67 - for details). If , IPv6 sockets bound - will be accessible via both IPv4 and IPv6. If - , they will be accessible via IPv6 -@@ -294,7 +294,7 @@ - this socket to. If set, traffic will only be accepted from the - specified network interfaces. This controls the - SO_BINDTODEVICE socket option (see -- socket7 -+ socket7 - for details). If this option is used, an automatic dependency - from this socket unit on the network interface device unit - (systemd.device5 -@@ -380,7 +380,7 @@ - /proc/sys/net/ipv4/tcp_keepalive_time) - for all TCP streams accepted on this socket. This controls the - SO_KEEPALIVE socket option (see -- socket7 -+ socket7 - and the TCP - Keepalive HOWTO for details.) Defaults to -@@ -392,7 +392,7 @@ - Takes time (in seconds) as argument . The connection needs to remain - idle before TCP starts sending keepalive probes. This controls the TCP_KEEPIDLE - socket option (see -- socket7 -+ socket7 - and the TCP - Keepalive HOWTO for details.) -@@ -405,7 +405,7 @@ - individual keepalive probes, if the socket option SO_KEEPALIVE - has been set on this socket seconds as argument. This controls - the TCP_KEEPINTVL socket option (see -- socket7 -+ socket7 - and the TCP - Keepalive HOWTO for details.) Defaults value is 75 -@@ -418,7 +418,7 @@ - unacknowledged probes to send before considering the - connection dead and notifying the application layer. This - controls the TCP_KEEPCNT socket option (see -- socket7 -+ socket7 - and the TCP - Keepalive HOWTO for details.) Defaults value is -@@ -431,7 +431,7 @@ - algorithm works by combining a number of small outgoing - messages, and sending them all at once. This controls the - TCP_NODELAY socket option (see -- tcp7 -+ tcp7 - Defaults to . - - -@@ -440,7 +440,7 @@ - Takes an integer argument controlling the - priority for all traffic sent from this socket. This controls - the SO_PRIORITY socket option (see -- socket7 -+ socket7 - for details.). - - -@@ -453,7 +453,7 @@ - established. When this option is set, the - TCP_DEFER_ACCEPT socket option will be - used (see -- tcp7), -+ tcp7), - and the kernel will ignore initial ACK packets without any - data. The argument specifies the approximate amount of time - the kernel should wait for incoming data before falling back -@@ -480,7 +480,7 @@ - Takes an integer argument controlling the - receive or send buffer sizes of this socket, respectively. - This controls the SO_RCVBUF and SO_SNDBUF socket options (see -- socket7 -+ socket7 - for details.). The usual suffixes K, M, G are supported and - are understood to the base of 1024. - -@@ -490,7 +490,7 @@ - Takes an integer argument controlling the IP - Type-Of-Service field for packets generated from this socket. - This controls the IP_TOS socket option (see -- ip7 -+ ip7 - for details.). Either a numeric string or one of - , , - or may -@@ -503,9 +503,9 @@ - Time-To-Live/IPv6 Hop-Count field for packets generated from - this socket. This sets the IP_TTL/IPV6_UNICAST_HOPS socket - options (see -- ip7 -+ ip7 - and -- ipv67 -+ ipv67 - for details.) - - -@@ -515,7 +515,7 @@ - mark of packets generated by this socket. This can be used in - the firewall logic to filter packets from this socket. This - sets the SO_MARK socket option. See -- iptables8 -+ iptables8 - for details. - - -@@ -526,7 +526,7 @@ - bind2s - to this TCP or UDP port. This controls the SO_REUSEPORT socket - option. See -- socket7 -+ socket7 - for details. - - -@@ -578,7 +578,7 @@ - control the mq_maxmsg field or the mq_msgsize field, - respectively, when creating the message queue. Note that - either none or both of these variables need to be set. See -- mq_setattr3 -+ mq_setattr3 - for details. - - -diff --git a/man/systemd.swap.xml b/man/systemd.swap.xml -index 23b9c712ed..5016f453d5 100644 ---- a/man/systemd.swap.xml -+++ b/man/systemd.swap.xml -@@ -69,7 +69,7 @@ - Additional options are listed in - systemd.exec5, - which define the execution environment the -- swapon8 -+ swapon8 - binary is executed in, and in - systemd.kill5, - which define the way the processes are terminated, and in -@@ -100,7 +100,7 @@ - - Swap units may either be configured via unit files, or via - /etc/fstab (see -- fstab5 -+ fstab5 - for details). Swaps listed in /etc/fstab will - be converted into native units dynamically at boot and when the - configuration of the system manager is reloaded. See -@@ -161,7 +161,7 @@ - What= - Takes an absolute path of a device node or - file to use for paging. See -- swapon8 -+ swapon8 - for details. If this refers to a device node, a dependency on - the respective device unit is automatically created. (See - systemd.device5 -@@ -187,7 +187,7 @@ - device. This may be used for controlling discard options among - other functionality, if the swap backing device supports the - discard or trim operation. (See -- swapon8 -+ swapon8 - for more information.) - - -@@ -229,7 +229,7 @@ - systemd.resource-control5, - systemd.device5, - systemd.mount5, -- swapon8, -+ swapon8, - systemd-fstab-generator8, - systemd.directives7 - -diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml -index a452f87baf..c2e374a94e 100644 ---- a/man/systemd.unit.xml -+++ b/man/systemd.unit.xml -@@ -826,7 +826,7 @@ - cris to test - against a specific architecture. The architecture is - determined from the information returned by -- uname2 -+ uname2 - and is thus subject to - personality2. - Note that a Personality= setting in the -@@ -1438,7 +1438,7 @@ PrivateTmp=yes - systemd-analyze1, - capabilities7, - systemd.directives7, -- uname1 -+ uname1 - - - -diff --git a/man/systemd.xml b/man/systemd.xml -index 9b92140e6b..d006b0bb99 100644 ---- a/man/systemd.xml -+++ b/man/systemd.xml -@@ -1012,9 +1012,9 @@ - Set the system locale to use. This overrides - the settings in /etc/locale.conf. For - more information see -- locale.conf5 -+ locale.conf5 - and -- locale7. -+ locale7. - - - -@@ -1077,7 +1077,7 @@ - - The systemd Homepage, - systemd-system.conf5, -- locale.conf5, -+ locale.conf5, - systemctl1, - journalctl1, - systemd-notify1, -diff --git a/man/vconsole.conf.xml b/man/vconsole.conf.xml -index 17bea8b682..27196d44e9 100644 ---- a/man/vconsole.conf.xml -+++ b/man/vconsole.conf.xml -@@ -129,9 +129,9 @@ FONT=eurlatgr - - systemd1, - systemd-vconsole-setup.service8, -- loadkeys1, -- setfont8, -- locale.conf5, -+ loadkeys1, -+ setfont8, -+ locale.conf5, - systemd-localed.service8 - - diff --git a/0088-man-link-to-fd.o-for-dbus-stuff.patch b/0088-man-link-to-fd.o-for-dbus-stuff.patch deleted file mode 100644 index 38d76c8..0000000 --- a/0088-man-link-to-fd.o-for-dbus-stuff.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 0cdbfc2734a4e1b3b926be66c31a37e50c9d1733 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 13 Mar 2015 21:24:30 -0500 -Subject: [PATCH] man: link to fd.o for dbus stuff - -(cherry picked from commit 3b5cfcdb580f5b766ff7fb1a2839bd37d74a98de) ---- - man/busctl.xml | 2 +- - man/custom-html.xsl | 13 +++++++++++++ - man/systemd-bus-proxyd.xml | 2 +- - man/systemd-bus-proxyd@.service.xml | 2 +- - man/systemd-machine-id-setup.xml | 2 +- - 5 files changed, 17 insertions(+), 4 deletions(-) - -diff --git a/man/busctl.xml b/man/busctl.xml -index cc1844b0a0..807fc78e8f 100644 ---- a/man/busctl.xml -+++ b/man/busctl.xml -@@ -465,7 +465,7 @@ o "/org/freedesktop/systemd1/job/42684" - See Also - - -- dbus-daemon1, -+ dbus-daemon1, - D-Bus, - kdbus, - sd-bus3, -diff --git a/man/custom-html.xsl b/man/custom-html.xsl -index 32299db710..706b95a1c4 100644 ---- a/man/custom-html.xsl -+++ b/man/custom-html.xsl -@@ -91,6 +91,19 @@ - - - -+ -+ -+ -+ http://dbus.freedesktop.org/doc/ -+ -+ . -+ -+ .html -+ -+ -+ -+ -+ - - -

-diff --git a/man/systemd-bus-proxyd.xml b/man/systemd-bus-proxyd.xml -index 2c7764047b..e0efe99854 100644 ---- a/man/systemd-bus-proxyd.xml -+++ b/man/systemd-bus-proxyd.xml -@@ -101,7 +101,7 @@ along with systemd; If not, see . - See Also - - -- dbus-daemon1, -+ dbus-daemon1, - D-Bus, - kdbus - -diff --git a/man/systemd-bus-proxyd@.service.xml b/man/systemd-bus-proxyd@.service.xml -index 141b43f6d9..dc4f07ff1b 100644 ---- a/man/systemd-bus-proxyd@.service.xml -+++ b/man/systemd-bus-proxyd@.service.xml -@@ -73,7 +73,7 @@ - - - systemd-bus-proxyd8, -- dbus-daemon1, -+ dbus-daemon1, - D-Bus, - kdbus - -diff --git a/man/systemd-machine-id-setup.xml b/man/systemd-machine-id-setup.xml -index 22bad3e5f4..182717f524 100644 ---- a/man/systemd-machine-id-setup.xml -+++ b/man/systemd-machine-id-setup.xml -@@ -122,7 +122,7 @@ - - systemd1, - machine-id5, -- dbus-uuidgen1, -+ dbus-uuidgen1, - systemd-firstboot1 - - diff --git a/0089-man-fix-name-of-systemd.resource-control-5.patch b/0089-man-fix-name-of-systemd.resource-control-5.patch deleted file mode 100644 index 2918e25..0000000 --- a/0089-man-fix-name-of-systemd.resource-control-5.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 01c9c40501ba72a595160137ab31a80bd42f62c6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 13 Mar 2015 21:25:37 -0500 -Subject: [PATCH] man: fix name of systemd.resource-control(5) - -(cherry picked from commit ee41f6028189819c728316e917ca09b9eb0a7850) ---- - man/systemctl.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/man/systemctl.xml b/man/systemctl.xml -index b5e4cdf862..50e6bc93f2 100644 ---- a/man/systemctl.xml -+++ b/man/systemctl.xml -@@ -1721,7 +1721,7 @@ kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service - loginctl1, - machinectl1, - systemd.unit5, -- systemd.resource-management5, -+ systemd.resource-control5, - systemd.special7, - wall1, - systemd.preset5, diff --git a/0090-selinux-fix-SEGV-during-switch-root-if-SELinux-polic.patch b/0090-selinux-fix-SEGV-during-switch-root-if-SELinux-polic.patch deleted file mode 100644 index 9b4feb5..0000000 --- a/0090-selinux-fix-SEGV-during-switch-root-if-SELinux-polic.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 19e98bf405a8105db71a4e3247b0397509825a6e Mon Sep 17 00:00:00 2001 -From: Will Woods -Date: Fri, 13 Mar 2015 17:24:46 -0400 -Subject: [PATCH] selinux: fix SEGV during switch-root if SELinux policy loaded - -If you've got SELinux policy loaded, label_hnd is your labeling handle. -When systemd is shutting down, we free that handle via mac_selinux_finish(). - -But: switch_root() calls mkdir_p_label(), which tries to look up a label -using that freed handle, and so we get a bunch of garbage and eventually -SEGV in libselinux. - -(This doesn't happen in the switch-root from initramfs to real root because -there's no SELinux policy loaded in initramfs, so label_hnd is NULL and we -never attempt any lookups.) - -So: make sure that mac_selinux_finish() actually sets label_hnd to NULL, so -nobody tries to use it after it becomes invalid. - -https://bugzilla.redhat.com/show_bug.cgi?id=1185604 -(cherry picked from commit f5ce2b49585a14cefb6d02f61c8dcdf7628a8605) ---- - src/shared/selinux-util.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/shared/selinux-util.c b/src/shared/selinux-util.c -index a2233e0cfb..a46ddf8498 100644 ---- a/src/shared/selinux-util.c -+++ b/src/shared/selinux-util.c -@@ -117,6 +117,7 @@ void mac_selinux_finish(void) { - return; - - selabel_close(label_hnd); -+ label_hnd = NULL; - #endif - } - diff --git a/0091-service-don-t-add-After-dependencies-on-.busname-uni.patch b/0091-service-don-t-add-After-dependencies-on-.busname-uni.patch deleted file mode 100644 index 0fc26ce..0000000 --- a/0091-service-don-t-add-After-dependencies-on-.busname-uni.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 4acdc3835b2c9d395f1df95bb1dd5620a4a0e7e5 Mon Sep 17 00:00:00 2001 -From: Michael Biebl -Date: Sat, 14 Mar 2015 16:48:54 +0100 -Subject: [PATCH] service: don't add After= dependencies on .busname units if - kdbus support is disabled - -(cherry picked from commit 6962fd3bd28cb5d3aaff69c1e3b6cc006e7c8426) ---- - src/core/service.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/src/core/service.c b/src/core/service.c -index 7781b4e626..ae5e610008 100644 ---- a/src/core/service.c -+++ b/src/core/service.c -@@ -556,14 +556,16 @@ static int service_add_extras(Service *s) { - s->notify_access = NOTIFY_MAIN; - - if (s->bus_name) { -+#ifdef ENABLE_KDBUS - const char *n; - -- r = unit_watch_bus_name(UNIT(s), s->bus_name); -+ n = strjoina(s->bus_name, ".busname"); -+ r = unit_add_dependency_by_name(UNIT(s), UNIT_AFTER, n, NULL, true); - if (r < 0) - return r; -+#endif - -- n = strjoina(s->bus_name, ".busname"); -- r = unit_add_dependency_by_name(UNIT(s), UNIT_AFTER, n, NULL, true); -+ r = unit_watch_bus_name(UNIT(s), s->bus_name); - if (r < 0) - return r; - } diff --git a/0092-libudev-monitor-fix-error-path-in-send_device.patch b/0092-libudev-monitor-fix-error-path-in-send_device.patch deleted file mode 100644 index 408f54e..0000000 --- a/0092-libudev-monitor-fix-error-path-in-send_device.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 317e24365d3d88b7a5282577a35bc8f259737f93 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 11 Mar 2015 22:23:38 +0100 -Subject: [PATCH] libudev: monitor - fix error path in send_device - -Return -errno rather than -1 in case sendmsg() fails. - -(cherry picked from commit a4445e88cece0444c66d70876b03065158dd4685) ---- - src/libudev/libudev-monitor.c | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c -index 3f1fee7f7e..d0486e3d1e 100644 ---- a/src/libudev/libudev-monitor.c -+++ b/src/libudev/libudev-monitor.c -@@ -749,12 +749,20 @@ int udev_monitor_send_device(struct udev_monitor *udev_monitor, - * If we send to a multicast group, we will get - * ECONNREFUSED, which is expected. - */ -- if (destination != NULL) -+ if (destination) - smsg.msg_name = &destination->snl; - else - smsg.msg_name = &udev_monitor->snl_destination; - smsg.msg_namelen = sizeof(struct sockaddr_nl); - count = sendmsg(udev_monitor->sock, &smsg, 0); -+ if (count < 0) { -+ if (!destination && errno == ECONNREFUSED) { -+ log_debug("passed unknown number of bytes to netlink monitor %p", udev_monitor); -+ return 0; -+ } else -+ return -errno; -+ } -+ - log_debug("passed %zi bytes to netlink monitor %p", count, udev_monitor); - return count; - } diff --git a/0093-core-remove-left-over-debug-message.patch b/0093-core-remove-left-over-debug-message.patch deleted file mode 100644 index c23e0fd..0000000 --- a/0093-core-remove-left-over-debug-message.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 84d7bc201f8875bed45c9516fcec62d5f82d3718 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 14 Mar 2015 17:41:53 -0400 -Subject: [PATCH] core: remove left-over debug message - -(cherry picked from commit bdb26d423a7f992bec5c28e17894c684d770d6f3) ---- - src/core/load-fragment.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c -index 90bf5634c8..f17a82fcdf 100644 ---- a/src/core/load-fragment.c -+++ b/src/core/load-fragment.c -@@ -634,8 +634,6 @@ int config_parse_exec(const char *unit, - - n[k] = NULL; - -- log_debug("path: %s", path ?: n[0]); -- - if (!n[0]) - reason = "Empty executable name or zeroeth argument"; - else if (!string_is_safe(path ?: n[0])) diff --git a/0094-units-there-is-no-systemd-udev-hwdb-update.service.patch b/0094-units-there-is-no-systemd-udev-hwdb-update.service.patch deleted file mode 100644 index a5b7c65..0000000 --- a/0094-units-there-is-no-systemd-udev-hwdb-update.service.patch +++ /dev/null @@ -1,23 +0,0 @@ -From b238b0eaf71449e128480bb5a5875a4b51cafd6f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 14 Mar 2015 17:56:13 -0400 -Subject: [PATCH] units: there is no systemd-udev-hwdb-update.service - -(cherry picked from commit d99ce93383028f08470b6d334bc1a31ca8d16b22) ---- - units/systemd-udevd.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/systemd-udevd.service.in b/units/systemd-udevd.service.in -index f6acd6fe4c..2791f73ac3 100644 ---- a/units/systemd-udevd.service.in -+++ b/units/systemd-udevd.service.in -@@ -10,7 +10,7 @@ Description=udev Kernel Device Manager - Documentation=man:systemd-udevd.service(8) man:udev(7) - DefaultDependencies=no - Wants=systemd-udevd-control.socket systemd-udevd-kernel.socket --After=systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udev-hwdb-update.service systemd-sysusers.service -+After=systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-hwdb-update.service systemd-sysusers.service - Before=sysinit.target - ConditionPathIsReadWrite=/sys - diff --git a/0095-util-remove-redundant-debug-message.patch b/0095-util-remove-redundant-debug-message.patch deleted file mode 100644 index a45e845..0000000 --- a/0095-util-remove-redundant-debug-message.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 5112d77f6a279cfa1cf4c1f3eac896f475650952 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 14 Mar 2015 20:14:39 -0400 -Subject: [PATCH] util: remove redundant debug message - -mar 14 20:05:34 fedora22 systemd[4058]: /usr/lib/systemd/system-generators/kdump-dep-generator.sh will be executed. -mar 14 20:05:34 fedora22 systemd[4058]: Spawned /usr/lib/systemd/system-generators/kdump-dep-generator.sh as 4059. - -The second line already says everything. - -(cherry picked from commit 7034e9db51d0b6f8e1dbbe9127393c6fbc06fe28) ---- - src/shared/util.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index 85487230a2..1e1bf944f2 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -4115,8 +4115,7 @@ static int do_execute(char **directories, usec_t timeout, char *argv[]) { - if (null_or_empty_path(path)) { - log_debug("%s is empty (a mask).", path); - continue; -- } else -- log_debug("%s will be executed.", path); -+ } - - pid = fork(); - if (pid < 0) { diff --git a/0096-tmpfiles-remove-redundant-debug-message.patch b/0096-tmpfiles-remove-redundant-debug-message.patch deleted file mode 100644 index a28174d..0000000 --- a/0096-tmpfiles-remove-redundant-debug-message.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a6a1e98b4e16777989ada937402f0b5373dad4a9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 14 Mar 2015 20:24:47 -0400 -Subject: [PATCH] tmpfiles: remove redundant debug message - -Mar 13 19:48:30 adam.happyassassin.net systemd-tmpfiles[970]: "/var/lib/machines" has right mode 40700 -Mar 13 19:48:30 adam.happyassassin.net systemd-tmpfiles[970]: /var/lib/machines created successfully. - -(cherry picked from commit 51bfdaf66c381793d2f39ad891f3411a55927da6) ---- - src/tmpfiles/tmpfiles.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index 1e10968164..73a9c9d5b6 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -1209,8 +1209,6 @@ static int create_item(Item *i) { - break; - } - -- log_debug("%s created successfully.", i->path); -- - return 0; - } - diff --git a/0097-sysv-generator-initialize-LookupPaths-just-once.patch b/0097-sysv-generator-initialize-LookupPaths-just-once.patch deleted file mode 100644 index a45dc80..0000000 --- a/0097-sysv-generator-initialize-LookupPaths-just-once.patch +++ /dev/null @@ -1,275 +0,0 @@ -From 68f8c0b9eeeead72fbdf90b32e5cf01862d9c351 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 14 Mar 2015 21:46:59 -0400 -Subject: [PATCH] sysv-generator: initialize LookupPaths just once - -With debugging on, sysv-generator would print the full set of -lookup paths for *every* sysv script. - -While at it, pass LookupPaths as a pointer in sysv-generator, -and constify it everywhere. - -(cherry picked from commit a8ffe6fbcbfdba39aef8dce8b298b3e0cb377c0e) ---- - src/shared/install.c | 55 ++++++++++++++++++++++--------------- - src/shared/install.h | 11 +++++++- - src/shared/path-lookup.c | 1 + - src/shared/path-lookup.h | 3 +- - src/sysv-generator/sysv-generator.c | 14 +++++----- - 5 files changed, 53 insertions(+), 31 deletions(-) - -diff --git a/src/shared/install.c b/src/shared/install.c -index 65f1c245c6..92b8d6e8ef 100644 ---- a/src/shared/install.c -+++ b/src/shared/install.c -@@ -1084,7 +1084,7 @@ static int unit_file_load( - static int unit_file_search( - InstallContext *c, - InstallInfo *info, -- LookupPaths *paths, -+ const LookupPaths *paths, - const char *root_dir, - bool allow_symlink, - bool load, -@@ -1153,7 +1153,7 @@ static int unit_file_search( - } - - static int unit_file_can_install( -- LookupPaths *paths, -+ const LookupPaths *paths, - const char *root_dir, - const char *name, - bool allow_symlink, -@@ -1317,7 +1317,7 @@ static int install_info_symlink_wants( - - static int install_info_symlink_link( - InstallInfo *i, -- LookupPaths *paths, -+ const LookupPaths *paths, - const char *config_path, - const char *root_dir, - bool force, -@@ -1345,7 +1345,7 @@ static int install_info_symlink_link( - - static int install_info_apply( - InstallInfo *i, -- LookupPaths *paths, -+ const LookupPaths *paths, - const char *config_path, - const char *root_dir, - bool force, -@@ -1377,7 +1377,7 @@ static int install_info_apply( - - static int install_context_apply( - InstallContext *c, -- LookupPaths *paths, -+ const LookupPaths *paths, - const char *config_path, - const char *root_dir, - bool force, -@@ -1424,7 +1424,7 @@ static int install_context_apply( - - static int install_context_mark_for_removal( - InstallContext *c, -- LookupPaths *paths, -+ const LookupPaths *paths, - Set **remove_symlinks_to, - const char *config_path, - const char *root_dir) { -@@ -1785,39 +1785,28 @@ int unit_file_get_default( - return -ENOENT; - } - --UnitFileState unit_file_get_state( -+UnitFileState unit_file_lookup_state( - UnitFileScope scope, - const char *root_dir, -+ const LookupPaths *paths, - const char *name) { - -- _cleanup_lookup_paths_free_ LookupPaths paths = {}; - UnitFileState state = _UNIT_FILE_STATE_INVALID; - char **i; - _cleanup_free_ char *path = NULL; - int r; - -- assert(scope >= 0); -- assert(scope < _UNIT_FILE_SCOPE_MAX); -- assert(name); -- -- if (root_dir && scope != UNIT_FILE_SYSTEM) -- return -EINVAL; -+ assert(paths); - - if (!unit_name_is_valid(name, TEMPLATE_VALID)) - return -EINVAL; - -- r = lookup_paths_init_from_scope(&paths, scope, root_dir); -- if (r < 0) -- return r; -- -- STRV_FOREACH(i, paths.unit_path) { -+ STRV_FOREACH(i, paths->unit_path) { - struct stat st; - char *partial; - bool also = false; - - free(path); -- path = NULL; -- - path = path_join(root_dir, *i, name); - if (!path) - return -ENOMEM; -@@ -1858,7 +1847,7 @@ UnitFileState unit_file_get_state( - else if (r > 0) - return state; - -- r = unit_file_can_install(&paths, root_dir, partial, true, &also); -+ r = unit_file_can_install(paths, root_dir, partial, true, &also); - if (r < 0 && errno != ENOENT) - return r; - else if (r > 0) -@@ -1873,6 +1862,28 @@ UnitFileState unit_file_get_state( - return r < 0 ? r : state; - } - -+UnitFileState unit_file_get_state( -+ UnitFileScope scope, -+ const char *root_dir, -+ const char *name) { -+ -+ _cleanup_lookup_paths_free_ LookupPaths paths = {}; -+ int r; -+ -+ assert(scope >= 0); -+ assert(scope < _UNIT_FILE_SCOPE_MAX); -+ assert(name); -+ -+ if (root_dir && scope != UNIT_FILE_SYSTEM) -+ return -EINVAL; -+ -+ r = lookup_paths_init_from_scope(&paths, scope, root_dir); -+ if (r < 0) -+ return r; -+ -+ return unit_file_lookup_state(scope, root_dir, &paths, name); -+} -+ - int unit_file_query_preset(UnitFileScope scope, const char *root_dir, const char *name) { - _cleanup_strv_free_ char **files = NULL; - char **p; -diff --git a/src/shared/install.h b/src/shared/install.h -index 357be0f92d..3ca39397e6 100644 ---- a/src/shared/install.h -+++ b/src/shared/install.h -@@ -23,6 +23,7 @@ - - #include "hashmap.h" - #include "unit-name.h" -+#include "path-lookup.h" - - typedef enum UnitFileScope { - UNIT_FILE_SYSTEM, -@@ -98,7 +99,15 @@ int unit_file_set_default(UnitFileScope scope, const char *root_dir, const char - int unit_file_get_default(UnitFileScope scope, const char *root_dir, char **name); - int unit_file_add_dependency(UnitFileScope scope, bool runtime, const char *root_dir, char **files, char *target, UnitDependency dep, bool force, UnitFileChange **changes, unsigned *n_changes); - --UnitFileState unit_file_get_state(UnitFileScope scope, const char *root_dir, const char *filename); -+UnitFileState unit_file_lookup_state( -+ UnitFileScope scope, -+ const char *root_dir, -+ const LookupPaths *paths, -+ const char *name); -+UnitFileState unit_file_get_state( -+ UnitFileScope scope, -+ const char *root_dir, -+ const char *filename); - - int unit_file_get_list(UnitFileScope scope, const char *root_dir, Hashmap *h); - -diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c -index 291a2f4054..812730be1c 100644 ---- a/src/shared/path-lookup.c -+++ b/src/shared/path-lookup.c -@@ -31,6 +31,7 @@ - #include "strv.h" - #include "path-util.h" - #include "path-lookup.h" -+#include "install.h" - - int user_config_home(char **config_home) { - const char *e; -diff --git a/src/shared/path-lookup.h b/src/shared/path-lookup.h -index 2ec888da81..f1925eef69 100644 ---- a/src/shared/path-lookup.h -+++ b/src/shared/path-lookup.h -@@ -22,7 +22,8 @@ - ***/ - - #include "macro.h" --#include "install.h" -+ -+typedef enum UnitFileScope UnitFileScope; - - typedef struct LookupPaths { - char **unit_path; -diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c -index 6e39b449eb..0125ca27d9 100644 ---- a/src/sysv-generator/sysv-generator.c -+++ b/src/sysv-generator/sysv-generator.c -@@ -723,10 +723,10 @@ static int fix_order(SysvStub *s, Hashmap *all_services) { - return 0; - } - --static int enumerate_sysv(LookupPaths lp, Hashmap *all_services) { -+static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) { - char **path; - -- STRV_FOREACH(path, lp.sysvinit_path) { -+ STRV_FOREACH(path, lp->sysvinit_path) { - _cleanup_closedir_ DIR *d = NULL; - struct dirent *de; - -@@ -768,7 +768,7 @@ static int enumerate_sysv(LookupPaths lp, Hashmap *all_services) { - if (!fpath) - return log_oom(); - -- if (unit_file_get_state(UNIT_FILE_SYSTEM, NULL, name) >= 0) { -+ if (unit_file_lookup_state(UNIT_FILE_SYSTEM, NULL, lp, name) >= 0) { - log_debug("Native unit for %s already exists, skipping", name); - continue; - } -@@ -793,7 +793,7 @@ static int enumerate_sysv(LookupPaths lp, Hashmap *all_services) { - return 0; - } - --static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) { -+static int set_dependencies_from_rcnd(const LookupPaths *lp, Hashmap *all_services) { - char **p; - unsigned i; - _cleanup_closedir_ DIR *d = NULL; -@@ -804,7 +804,7 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) { - _cleanup_set_free_ Set *shutdown_services = NULL; - int r = 0; - -- STRV_FOREACH(p, lp.sysvrcnd_path) -+ STRV_FOREACH(p, lp->sysvrcnd_path) - for (i = 0; i < ELEMENTSOF(rcnd_table); i ++) { - struct dirent *de; - -@@ -954,13 +954,13 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } - -- r = enumerate_sysv(lp, all_services); -+ r = enumerate_sysv(&lp, all_services); - if (r < 0) { - log_error("Failed to generate units for all init scripts."); - return EXIT_FAILURE; - } - -- r = set_dependencies_from_rcnd(lp, all_services); -+ r = set_dependencies_from_rcnd(&lp, all_services); - if (r < 0) { - log_error("Failed to read runlevels from rcnd links."); - return EXIT_FAILURE; diff --git a/0098-core-do-not-use-quotes-around-virt-and-arch.patch b/0098-core-do-not-use-quotes-around-virt-and-arch.patch deleted file mode 100644 index 4fcb782..0000000 --- a/0098-core-do-not-use-quotes-around-virt-and-arch.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1708f0d4156c6579691728bebe429ece10f5a2be Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 14 Mar 2015 21:49:10 -0400 -Subject: [PATCH] core: do not use quotes around virt and arch - -Quotes are useful when the string can contain spaces or be otherwise -confusing. Not possible with those two. - -(cherry picked from commit d3f86679783aee216d60b125acfb5f39a0df555f) ---- - src/core/main.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/core/main.c b/src/core/main.c -index ba2de85bd3..fd527d4d63 100644 ---- a/src/core/main.c -+++ b/src/core/main.c -@@ -1537,11 +1537,11 @@ int main(int argc, char *argv[]) { - - detect_virtualization(&virtualization); - if (virtualization) -- log_info("Detected virtualization '%s'.", virtualization); -+ log_info("Detected virtualization %s.", virtualization); - - write_container_id(); - -- log_info("Detected architecture '%s'.", architecture_to_string(uname_architecture())); -+ log_info("Detected architecture %s.", architecture_to_string(uname_architecture())); - - if (in_initrd()) - log_info("Running in initial RAM disk."); diff --git a/0099-udev-downgrade-has-devpath-and-filled-with-db-file-m.patch b/0099-udev-downgrade-has-devpath-and-filled-with-db-file-m.patch deleted file mode 100644 index 97eb68e..0000000 --- a/0099-udev-downgrade-has-devpath-and-filled-with-db-file-m.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 61504cbece6425b0e3acbb594aeed458fdc674e5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 14 Mar 2015 22:22:49 -0400 -Subject: [PATCH] udev: downgrade "has devpath" and "filled with db file" - messages - -Udev debug messages have to be significantly overhauled... For now -just downgrade those two. They are responsible for approximately 25% -of debug output during boot and are rather useless. - -(cherry picked from commit cdd45c1ffbf790facd1817757832aa25d9211967) ---- - src/libudev/libudev-device.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c -index 9863901a33..e408942221 100644 ---- a/src/libudev/libudev-device.c -+++ b/src/libudev/libudev-device.c -@@ -613,7 +613,7 @@ int udev_device_read_db(struct udev_device *udev_device, const char *dbfile) - } - fclose(f); - -- log_debug("device %p filled with db file data", udev_device); -+ log_trace("device %p filled with db file data", udev_device); - return 0; - } - -@@ -775,7 +775,7 @@ _public_ struct udev_device *udev_device_new_from_syspath(struct udev *udev, con - return NULL; - - udev_device_set_syspath(udev_device, path); -- log_debug("device %p has devpath '%s'", udev_device, udev_device_get_devpath(udev_device)); -+ log_trace("device %p has devpath '%s'", udev_device, udev_device_get_devpath(udev_device)); - - return udev_device; - } diff --git a/0100-cryptsetup-generator-remove-warning-about-crypttab-a.patch b/0100-cryptsetup-generator-remove-warning-about-crypttab-a.patch deleted file mode 100644 index 0fcf4ae..0000000 --- a/0100-cryptsetup-generator-remove-warning-about-crypttab-a.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 46746489010823c9a7cea7c39593aeb68ceee176 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 14 Mar 2015 22:35:30 -0400 -Subject: [PATCH] cryptsetup-generator: remove warning about crypttab access - mode -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This file contains no privileged data — just names of devices to decrypt -and files containing keys. On a running system most of this can be inferred from -the device tree anyway. - -(cherry picked from commit 71e4e1258436e7e81d772aed52a02bb5d9c87cb8) ---- - src/cryptsetup/cryptsetup-generator.c | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c -index 05061c0704..db8337f92a 100644 ---- a/src/cryptsetup/cryptsetup-generator.c -+++ b/src/cryptsetup/cryptsetup-generator.c -@@ -377,13 +377,6 @@ static int add_crypttab_devices(void) { - return 0; - } - -- /* If we readd support for specifying passphrases -- * directly in crypttab we should upgrade the warning -- * below, though possibly only if a passphrase is -- * specified directly. */ -- if (st.st_mode & 0005) -- log_debug("/etc/crypttab is world-readable. This is usually not a good idea."); -- - for (;;) { - int r, k; - char line[LINE_MAX], *l, *uuid; diff --git a/0101-sysctl-tweak-debug-message.patch b/0101-sysctl-tweak-debug-message.patch deleted file mode 100644 index 2b17b44..0000000 --- a/0101-sysctl-tweak-debug-message.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 69dd93bbe3444dc583581d59389567ab7d59bd6a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 14 Mar 2015 22:56:01 -0400 -Subject: [PATCH] sysctl: tweak debug message - -(cherry picked from commit 924bc14fef39373f4523664207007a6c82c2b2d5) ---- - src/sysctl/sysctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c -index 2415d84526..98b146a9ab 100644 ---- a/src/sysctl/sysctl.c -+++ b/src/sysctl/sysctl.c -@@ -121,7 +121,7 @@ static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno - return log_error_errno(r, "Failed to open file '%s', ignoring: %m", path); - } - -- log_debug("parse: %s", path); -+ log_debug("Parsing %s", path); - while (!feof(f)) { - char l[LINE_MAX], *p, *value, *new_value, *property, *existing; - void *v; diff --git a/0102-journald-add-syslog-fields-for-audit-messages.patch b/0102-journald-add-syslog-fields-for-audit-messages.patch deleted file mode 100644 index 0aa90de..0000000 --- a/0102-journald-add-syslog-fields-for-audit-messages.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 9555e12d82200b02ad8c54858bcf469e6f2d7e82 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 4 Mar 2015 10:31:42 -0500 -Subject: [PATCH] journald: add syslog fields for audit messages - -Audit messages would be displayed as "unknown[1]". - -Also specify AUTH as facility... This seems to be the closest match -(/* security/authorization messages */). - -(cherry picked from commit cd556b6ca8aec8dd371806afedec45f852f8f724) ---- - src/journal/journald-audit.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/journal/journald-audit.c b/src/journal/journald-audit.c -index c2f1545cc9..46eb82fa34 100644 ---- a/src/journal/journald-audit.c -+++ b/src/journal/journald-audit.c -@@ -373,7 +373,7 @@ static void process_audit_string(Server *s, int type, const char *data, size_t s - if (isempty(p)) - return; - -- n_iov_allocated = N_IOVEC_META_FIELDS + 5; -+ n_iov_allocated = N_IOVEC_META_FIELDS + 7; - iov = new(struct iovec, n_iov_allocated); - if (!iov) { - log_oom(); -@@ -392,6 +392,10 @@ static void process_audit_string(Server *s, int type, const char *data, size_t s - sprintf(id_field, "_AUDIT_ID=%" PRIu64, id); - IOVEC_SET_STRING(iov[n_iov++], id_field); - -+ assert_cc(32 == LOG_AUTH); -+ IOVEC_SET_STRING(iov[n_iov++], "SYSLOG_FACILITY=32"); -+ IOVEC_SET_STRING(iov[n_iov++], "SYSLOG_IDENTIFIER=audit"); -+ - m = alloca(strlen("MESSAGE= ") + strlen(p) + 1); - sprintf(m, "MESSAGE= %s", type, p); - IOVEC_SET_STRING(iov[n_iov++], m); diff --git a/0103-core-remove-useless-debug-message.patch b/0103-core-remove-useless-debug-message.patch deleted file mode 100644 index 33f6904..0000000 --- a/0103-core-remove-useless-debug-message.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 11c04e6ae1056e46687471a1fda6f8684ff6aa10 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sun, 15 Mar 2015 12:12:19 -0400 -Subject: [PATCH] core: remove useless debug message - -Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null) -Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null) -Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null) -Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null) -Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null) -Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null) -Mar 13 19:48:28 adam.happyassassin.net systemd[1]: Collecting (null) - -(cherry picked from commit cc3bc3e6203e0c615e31b8b68796362e1385f28a) ---- - src/core/manager.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/core/manager.c b/src/core/manager.c -index 203a6a0a1a..7483a96ec6 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -844,7 +844,8 @@ static unsigned manager_dispatch_gc_queue(Manager *m) { - - if (u->gc_marker == gc_marker + GC_OFFSET_BAD || - u->gc_marker == gc_marker + GC_OFFSET_UNSURE) { -- log_unit_debug(u->id, "Collecting %s", u->id); -+ if (u->id) -+ log_unit_debug(u->id, "Collecting %s", u->id); - u->gc_marker = gc_marker + GC_OFFSET_BAD; - unit_add_to_cleanup_queue(u); - } diff --git a/0104-man-standard-conf-change-directory-reference-to-wild.patch b/0104-man-standard-conf-change-directory-reference-to-wild.patch deleted file mode 100644 index 4bb4c5c..0000000 --- a/0104-man-standard-conf-change-directory-reference-to-wild.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 9270c8ffa5a7f12f510772eba0eb40fbb16ad163 Mon Sep 17 00:00:00 2001 -From: Alison Chaiken -Date: Sun, 15 Mar 2015 16:26:14 -0700 -Subject: [PATCH] man: standard-conf: change directory reference to wildcard - -(cherry picked from commit 1d940aa32913c108e0282ebd359b2eb999ffeadf) ---- - man/standard-conf.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/man/standard-conf.xml b/man/standard-conf.xml -index 36af45927d..004f53f70c 100644 ---- a/man/standard-conf.xml -+++ b/man/standard-conf.xml -@@ -54,7 +54,7 @@ - directories, and has the lowest precedence; entries in a file in - any configuration directory override entries in the single - configuration file. Files in the -- logind.conf.d/ configuration subdirectories -+ *.conf.d/ configuration subdirectories - are sorted by their filename in lexicographic order, regardless of - which of the subdirectories they reside in. If multiple files - specify the same option, the entry in the file with the diff --git a/0105-core-don-t-change-removed-devices-to-state-tentative.patch b/0105-core-don-t-change-removed-devices-to-state-tentative.patch deleted file mode 100644 index 36292ca..0000000 --- a/0105-core-don-t-change-removed-devices-to-state-tentative.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9ad7334d68fe2187968c4716097a24575835ab04 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Fri, 13 Mar 2015 08:35:59 +0100 -Subject: [PATCH] core: don't change removed devices to state "tentative" - -Commit 628c89c introduced the "tentative" device state, which caused -devices to go from "plugged" to "tentative" on a remove uevent. This -breaks the cleanup of stale mounts (see commit 3b48ce4), as that only -applies to "dead" devices. - -The "tentative" state only really makes sense on adding a device when -we don't know where it was coming from (i. e. not from udev). But when -we get a device removal from udev we definitively know that it's gone, -so change the device state back to "dead" as before 628c89c. - -(cherry picked from commit 496068a8288084ab3ecf8b179a8403ecff1a6be8) ---- - src/core/device.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/device.c b/src/core/device.c -index 4ff8827219..cc4ebd2c87 100644 ---- a/src/core/device.c -+++ b/src/core/device.c -@@ -421,7 +421,7 @@ static void device_update_found_one(Device *d, bool add, DeviceFound found, bool - if (now) { - if (d->found & DEVICE_FOUND_UDEV) - device_set_state(d, DEVICE_PLUGGED); -- else if (d->found != DEVICE_NOT_FOUND) -+ else if (add && d->found != DEVICE_NOT_FOUND) - device_set_state(d, DEVICE_TENTATIVE); - else - device_set_state(d, DEVICE_DEAD); diff --git a/0106-fstab-generator-ignore-invalid-swap-priority.patch b/0106-fstab-generator-ignore-invalid-swap-priority.patch deleted file mode 100644 index 6422734..0000000 --- a/0106-fstab-generator-ignore-invalid-swap-priority.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 0659783c379ec16f0556f8e78b30be9fd70f45aa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 21 Mar 2015 11:31:16 -0400 -Subject: [PATCH] fstab-generator: ignore invalid swap priority - -A failed priority is not something worth stopping boot over. Most people -have only one swap device, in which case priority is irrelevant, and even -if there is more than one swap device, they are all usable, and ignoring the -priority field should only result in some loss of performance. - -The kernel will report the priority as -1 if not set, so it's easy for -people to make this mistake. - -https://bugzilla.redhat.com/show_bug.cgi?id=1204336 -(cherry picked from commit e0952d9d021234e79f3a70f33a9e5d201872a417) ---- - src/fstab-generator/fstab-generator.c | 23 ++++++++++++++++------- - 1 file changed, 16 insertions(+), 7 deletions(-) - -diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c -index 5662b5fde1..8e2f522bd0 100644 ---- a/src/fstab-generator/fstab-generator.c -+++ b/src/fstab-generator/fstab-generator.c -@@ -54,9 +54,10 @@ static int add_swap( - bool noauto, - bool nofail) { - -- _cleanup_free_ char *name = NULL, *unit = NULL, *lnk = NULL; -+ _cleanup_free_ char *name = NULL, *unit = NULL, *lnk = NULL, *filtered = NULL; - _cleanup_fclose_ FILE *f = NULL; - int r, pri = -1; -+ const char *opts; - - assert(what); - assert(me); -@@ -71,9 +72,17 @@ static int add_swap( - return 0; - } - -- r = fstab_find_pri(me->mnt_opts, &pri); -- if (r < 0) -- return log_error_errno(r, "Failed to parse priority: %m"); -+ opts = me->mnt_opts; -+ r = fstab_find_pri(opts, &pri); -+ if (r < 0) { -+ log_error_errno(r, "Failed to parse priority, ignoring: %m"); -+ -+ /* Remove invalid pri field */ -+ r = fstab_filter_options(opts, "pri\0", NULL, NULL, &filtered); -+ if (r < 0) -+ return log_error_errno(r, "Failed to parse options: %m"); -+ opts = filtered; -+ } - - name = unit_name_from_path(what, ".swap"); - if (!name) -@@ -106,15 +115,15 @@ static int add_swap( - if (pri >= 0) - fprintf(f, "Priority=%i\n", pri); - -- if (!isempty(me->mnt_opts) && !streq(me->mnt_opts, "defaults")) -- fprintf(f, "Options=%s\n", me->mnt_opts); -+ if (!isempty(opts) && !streq(opts, "defaults")) -+ fprintf(f, "Options=%s\n", opts); - - r = fflush_and_check(f); - if (r < 0) - return log_error_errno(r, "Failed to write unit file %s: %m", unit); - - /* use what as where, to have a nicer error message */ -- r = generator_write_timeouts(arg_dest, what, what, me->mnt_opts, NULL); -+ r = generator_write_timeouts(arg_dest, what, what, opts, NULL); - if (r < 0) - return r; - diff --git a/0107-missing.h-add-more-btrfs-types-and-defines.patch b/0107-missing.h-add-more-btrfs-types-and-defines.patch deleted file mode 100644 index 1b10eae..0000000 --- a/0107-missing.h-add-more-btrfs-types-and-defines.patch +++ /dev/null @@ -1,192 +0,0 @@ -From 8ab04e3a6f3160114c679dc9045e89c8dd4d4a75 Mon Sep 17 00:00:00 2001 -From: Michael Olbrich -Date: Wed, 18 Mar 2015 14:04:55 +0100 -Subject: [PATCH] missing.h: add more btrfs types and defines - -(cherry picked from commit 8e8ba79229bb82248a568f5929143a66f4be45b7) ---- - src/shared/missing.h | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 151 insertions(+) - -diff --git a/src/shared/missing.h b/src/shared/missing.h -index 802b4957e0..ca670cea43 100644 ---- a/src/shared/missing.h -+++ b/src/shared/missing.h -@@ -230,12 +230,59 @@ static inline int getrandom(void *buffer, size_t count, unsigned flags) { - #define BTRFS_UUID_SIZE 16 - #endif - -+#ifndef BTRFS_SUBVOL_RDONLY -+#define BTRFS_SUBVOL_RDONLY (1ULL << 1) -+#endif -+ -+#ifndef BTRFS_SUBVOL_NAME_MAX -+#define BTRFS_SUBVOL_NAME_MAX 4039 -+#endif -+ -+#ifndef BTRFS_INO_LOOKUP_PATH_MAX -+#define BTRFS_INO_LOOKUP_PATH_MAX 4080 -+#endif -+ -+#ifndef BTRFS_SEARCH_ARGS_BUFSIZE -+#define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key)) -+#endif -+ - #ifndef HAVE_LINUX_BTRFS_H - struct btrfs_ioctl_vol_args { - int64_t fd; - char name[BTRFS_PATH_NAME_MAX + 1]; - }; - -+struct btrfs_qgroup_limit { -+ __u64 flags; -+ __u64 max_rfer; -+ __u64 max_excl; -+ __u64 rsv_rfer; -+ __u64 rsv_excl; -+}; -+ -+struct btrfs_qgroup_inherit { -+ __u64 flags; -+ __u64 num_qgroups; -+ __u64 num_ref_copies; -+ __u64 num_excl_copies; -+ struct btrfs_qgroup_limit lim; -+ __u64 qgroups[0]; -+}; -+ -+struct btrfs_ioctl_vol_args_v2 { -+ __s64 fd; -+ __u64 transid; -+ __u64 flags; -+ union { -+ struct { -+ __u64 size; -+ struct btrfs_qgroup_inherit *qgroup_inherit; -+ }; -+ __u64 unused[4]; -+ }; -+ char name[BTRFS_SUBVOL_NAME_MAX + 1]; -+}; -+ - struct btrfs_ioctl_dev_info_args { - uint64_t devid; /* in/out */ - uint8_t uuid[BTRFS_UUID_SIZE]; /* in/out */ -@@ -251,6 +298,68 @@ struct btrfs_ioctl_fs_info_args { - uint8_t fsid[BTRFS_FSID_SIZE]; /* out */ - uint64_t reserved[124]; /* pad to 1k */ - }; -+ -+struct btrfs_ioctl_ino_lookup_args { -+ __u64 treeid; -+ __u64 objectid; -+ char name[BTRFS_INO_LOOKUP_PATH_MAX]; -+}; -+ -+struct btrfs_ioctl_search_key { -+ /* which root are we searching. 0 is the tree of tree roots */ -+ __u64 tree_id; -+ -+ /* keys returned will be >= min and <= max */ -+ __u64 min_objectid; -+ __u64 max_objectid; -+ -+ /* keys returned will be >= min and <= max */ -+ __u64 min_offset; -+ __u64 max_offset; -+ -+ /* max and min transids to search for */ -+ __u64 min_transid; -+ __u64 max_transid; -+ -+ /* keys returned will be >= min and <= max */ -+ __u32 min_type; -+ __u32 max_type; -+ -+ /* -+ * how many items did userland ask for, and how many are we -+ * returning -+ */ -+ __u32 nr_items; -+ -+ /* align to 64 bits */ -+ __u32 unused; -+ -+ /* some extra for later */ -+ __u64 unused1; -+ __u64 unused2; -+ __u64 unused3; -+ __u64 unused4; -+}; -+ -+struct btrfs_ioctl_search_header { -+ __u64 transid; -+ __u64 objectid; -+ __u64 offset; -+ __u32 type; -+ __u32 len; -+}; -+ -+ -+struct btrfs_ioctl_search_args { -+ struct btrfs_ioctl_search_key key; -+ char buf[BTRFS_SEARCH_ARGS_BUFSIZE]; -+}; -+ -+struct btrfs_ioctl_clone_range_args { -+ __s64 src_fd; -+ __u64 src_offset, src_length; -+ __u64 dest_offset; -+}; - #endif - - #ifndef BTRFS_IOC_DEFRAG -@@ -258,6 +367,48 @@ struct btrfs_ioctl_fs_info_args { - struct btrfs_ioctl_vol_args) - #endif - -+#ifndef BTRFS_IOC_CLONE -+#define BTRFS_IOC_CLONE _IOW(BTRFS_IOCTL_MAGIC, 9, int) -+#endif -+ -+#ifndef BTRFS_IOC_CLONE_RANGE -+#define BTRFS_IOC_CLONE_RANGE _IOW(BTRFS_IOCTL_MAGIC, 13, \ -+ struct btrfs_ioctl_clone_range_args) -+#endif -+ -+#ifndef BTRFS_IOC_SUBVOL_CREATE -+#define BTRFS_IOC_SUBVOL_CREATE _IOW(BTRFS_IOCTL_MAGIC, 14, \ -+ struct btrfs_ioctl_vol_args) -+#endif -+ -+#ifndef BTRFS_IOC_SNAP_DESTROY -+#define BTRFS_IOC_SNAP_DESTROY _IOW(BTRFS_IOCTL_MAGIC, 15, \ -+ struct btrfs_ioctl_vol_args) -+#endif -+ -+#ifndef BTRFS_IOC_TREE_SEARCH -+#define BTRFS_IOC_TREE_SEARCH _IOWR(BTRFS_IOCTL_MAGIC, 17, \ -+ struct btrfs_ioctl_search_args) -+#endif -+ -+#ifndef BTRFS_IOC_INO_LOOKUP -+#define BTRFS_IOC_INO_LOOKUP _IOWR(BTRFS_IOCTL_MAGIC, 18, \ -+ struct btrfs_ioctl_ino_lookup_args) -+#endif -+ -+#ifndef BTRFS_IOC_SNAP_CREATE_V2 -+#define BTRFS_IOC_SNAP_CREATE_V2 _IOW(BTRFS_IOCTL_MAGIC, 23, \ -+ struct btrfs_ioctl_vol_args_v2) -+#endif -+ -+#ifndef BTRFS_IOC_SUBVOL_GETFLAGS -+#define BTRFS_IOC_SUBVOL_GETFLAGS _IOR(BTRFS_IOCTL_MAGIC, 25, __u64) -+#endif -+ -+#ifndef BTRFS_IOC_SUBVOL_SETFLAGS -+#define BTRFS_IOC_SUBVOL_SETFLAGS _IOW(BTRFS_IOCTL_MAGIC, 26, __u64) -+#endif -+ - #ifndef BTRFS_IOC_DEV_INFO - #define BTRFS_IOC_DEV_INFO _IOWR(BTRFS_IOCTL_MAGIC, 30, \ - struct btrfs_ioctl_dev_info_args) diff --git a/0108-timedated-flip-internal-status-after-executing-opera.patch b/0108-timedated-flip-internal-status-after-executing-opera.patch deleted file mode 100644 index 1bca2e6..0000000 --- a/0108-timedated-flip-internal-status-after-executing-opera.patch +++ /dev/null @@ -1,38 +0,0 @@ -From fb14f86a7188f289dfc4081a6d83a5c9c7ce5a81 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 21 Mar 2015 17:40:20 -0400 -Subject: [PATCH] timedated: flip internal status after executing operation - -timedated would set the internal status before calling out to systemd to do -the actual change. When the operation was refused because of a SELinux denial, -the state kept in timedated would get out of sync, and the second call from -timedatectl would appear to succeed. - -https://bugzilla.redhat.com/show_bug.cgi?id=1014315 -(cherry picked from commit 192b98b8fe73c8fb4bb3d6540deb93f5fb6eb9d2) ---- - src/timedate/timedated.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index 753c3d1d65..bee66af24a 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -609,8 +609,6 @@ static int method_set_ntp(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus - if (r == 0) - return 1; - -- c->use_ntp = ntp; -- - r = context_enable_ntp(c, bus, error); - if (r < 0) - return r; -@@ -619,6 +617,8 @@ static int method_set_ntp(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus - if (r < 0) - return r; - -+ c->use_ntp = ntp; -+ - log_info("Set NTP to %s", c->use_ntp ? "enabled" : "disabled"); - - sd_bus_emit_properties_changed(bus, "/org/freedesktop/timedate1", "org.freedesktop.timedate1", "NTP", NULL); diff --git a/0109-timedated-fix-enable-disable-reversal.patch b/0109-timedated-fix-enable-disable-reversal.patch deleted file mode 100644 index f41ba22..0000000 --- a/0109-timedated-fix-enable-disable-reversal.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 29b5cd796981c42666189501b8bc41f9da2d0f52 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 21 Mar 2015 19:21:17 -0400 -Subject: [PATCH] timedated: fix enable/disable reversal - -Bug introduced in 984f1b1d1b. The state was flipped later, -but the enable/disable routine made use of the state to decide -what to do. - -context_enable_ntp() and context_start_ntp() now get the desired -state directly, so the Context parameter can be removed. - -(cherry picked from commit 81b843990297ad8c813c531fccd8da30bb715bd6) ---- - src/timedate/timedated.c | 59 +++++++++++++++++------------------------------- - 1 file changed, 21 insertions(+), 38 deletions(-) - -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index bee66af24a..f2d23f34b1 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -225,38 +225,23 @@ static int context_read_ntp(Context *c, sd_bus *bus) { - return 0; - } - --static int context_start_ntp(Context *c, sd_bus *bus, sd_bus_error *error) { -+static int context_start_ntp(sd_bus *bus, sd_bus_error *error, bool enabled) { - int r; - -- assert(c); - assert(bus); - assert(error); - -- if (c->use_ntp) -- r = sd_bus_call_method( -- bus, -- "org.freedesktop.systemd1", -- "/org/freedesktop/systemd1", -- "org.freedesktop.systemd1.Manager", -- "StartUnit", -- error, -- NULL, -- "ss", -- "systemd-timesyncd.service", -- "replace"); -- else -- r = sd_bus_call_method( -- bus, -- "org.freedesktop.systemd1", -- "/org/freedesktop/systemd1", -- "org.freedesktop.systemd1.Manager", -- "StopUnit", -- error, -- NULL, -- "ss", -- "systemd-timesyncd.service", -- "replace"); -- -+ r = sd_bus_call_method( -+ bus, -+ "org.freedesktop.systemd1", -+ "/org/freedesktop/systemd1", -+ "org.freedesktop.systemd1.Manager", -+ enabled ? "StartUnit" : "StopUnit", -+ error, -+ NULL, -+ "ss", -+ "systemd-timesyncd.service", -+ "replace"); - if (r < 0) { - if (sd_bus_error_has_name(error, SD_BUS_ERROR_FILE_NOT_FOUND) || - sd_bus_error_has_name(error, "org.freedesktop.systemd1.LoadFailed") || -@@ -269,14 +254,13 @@ static int context_start_ntp(Context *c, sd_bus *bus, sd_bus_error *error) { - return 0; - } - --static int context_enable_ntp(Context*c, sd_bus *bus, sd_bus_error *error) { -+static int context_enable_ntp(sd_bus *bus, sd_bus_error *error, bool enabled) { - int r; - -- assert(c); - assert(bus); - assert(error); - -- if (c->use_ntp) -+ if (enabled) - r = sd_bus_call_method( - bus, - "org.freedesktop.systemd1", -@@ -592,15 +576,15 @@ static int method_set_time(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bu - } - - static int method_set_ntp(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus_error *error) { -- int ntp, interactive; -+ int enabled, interactive; - Context *c = userdata; - int r; - -- r = sd_bus_message_read(m, "bb", &ntp, &interactive); -+ r = sd_bus_message_read(m, "bb", &enabled, &interactive); - if (r < 0) - return r; - -- if ((bool)ntp == c->use_ntp) -+ if ((bool)enabled == c->use_ntp) - return sd_bus_reply_method_return(m, NULL); - - r = bus_verify_polkit_async(m, CAP_SYS_TIME, "org.freedesktop.timedate1.set-ntp", interactive, &c->polkit_registry, error); -@@ -609,17 +593,16 @@ static int method_set_ntp(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus - if (r == 0) - return 1; - -- r = context_enable_ntp(c, bus, error); -+ r = context_enable_ntp(bus, error, enabled); - if (r < 0) - return r; - -- r = context_start_ntp(c, bus, error); -+ r = context_start_ntp(bus, error, enabled); - if (r < 0) - return r; - -- c->use_ntp = ntp; -- -- log_info("Set NTP to %s", c->use_ntp ? "enabled" : "disabled"); -+ c->use_ntp = enabled; -+ log_info("Set NTP to %s", enabled ? "enabled" : "disabled"); - - sd_bus_emit_properties_changed(bus, "/org/freedesktop/timedate1", "org.freedesktop.timedate1", "NTP", NULL); - diff --git a/0110-core-make-SELinux-enable-disable-check-symmetric.patch b/0110-core-make-SELinux-enable-disable-check-symmetric.patch deleted file mode 100644 index 6f35111..0000000 --- a/0110-core-make-SELinux-enable-disable-check-symmetric.patch +++ /dev/null @@ -1,43 +0,0 @@ -From b6df45d1c129fc95078b47d9124eca1143a7fa64 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 21 Mar 2015 18:50:10 -0400 -Subject: [PATCH] core: make SELinux enable/disable check symmetric - -We'd use the generic check for disable, and a unit-file-specific one for enable. -Use the more specific one both ways. - -systemd[1]: SELinux access check scon=system_u:system_r:systemd_timedated_t:s0 tcon=system_u:system_r:init_t:s0 tclass=system perm=disable path=(null) cmdline=/usr/lib/systemd/systemd-timedated: -13 -systemd[1]: SELinux access check scon=system_u:system_r:systemd_timedated_t:s0 tcon=system_u:object_r:systemd_unit_file_t:s0 tclass=service perm=enable path=/usr/lib/systemd/system/systemd-timesyncd.service cmdline=/usr/lib/systemd/systemd-timedated: -13 - -https://bugzilla.redhat.com/show_bug.cgi?id=1014315 -(cherry picked from commit df823e23f04da832ad5fc078176f8c26597a9845) - -Conflicts: - src/core/dbus-manager.c ---- - src/core/dbus-manager.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c -index 8ba665dc3d..2bc37ba60e 100644 ---- a/src/core/dbus-manager.c -+++ b/src/core/dbus-manager.c -@@ -1772,15 +1772,15 @@ static int method_disable_unit_files_generic( - if (r == 0) - return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ - -- r = mac_selinux_access_check(message, verb, error); -+ r = sd_bus_message_read_strv(message, &l); - if (r < 0) - return r; - -- r = sd_bus_message_read_strv(message, &l); -+ r = sd_bus_message_read(message, "b", &runtime); - if (r < 0) - return r; - -- r = sd_bus_message_read(message, "b", &runtime); -+ r = mac_selinux_unit_access_check_strv(l, message, m, verb, error); - if (r < 0) - return r; - diff --git a/0111-shared-add-path_compare-an-ordering-path-comparison.patch b/0111-shared-add-path_compare-an-ordering-path-comparison.patch deleted file mode 100644 index b182b79..0000000 --- a/0111-shared-add-path_compare-an-ordering-path-comparison.patch +++ /dev/null @@ -1,149 +0,0 @@ -From 533cc35f09181971821d94b6e4ce242b4b966583 Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Mon, 16 Mar 2015 21:58:35 +0100 -Subject: [PATCH] shared: add path_compare(), an ordering path comparison - -... and make path_equal() a simple wrapper around it. - -(cherry picked from commit 2230852bd9755e1b7bfd1260082471f559b0a005) ---- - src/shared/path-util.c | 37 +++++++++++++++++++++++++++---------- - src/shared/path-util.h | 1 + - src/test/test-path-util.c | 36 +++++++++++++++++++++++++----------- - 3 files changed, 53 insertions(+), 21 deletions(-) - -diff --git a/src/shared/path-util.c b/src/shared/path-util.c -index 70bc1caa2a..d5510bf56f 100644 ---- a/src/shared/path-util.c -+++ b/src/shared/path-util.c -@@ -403,12 +403,18 @@ char* path_startswith(const char *path, const char *prefix) { - } - } - --bool path_equal(const char *a, const char *b) { -+int path_compare(const char *a, const char *b) { -+ int d; -+ - assert(a); - assert(b); - -- if ((a[0] == '/') != (b[0] == '/')) -- return false; -+ /* A relative path and an abolute path must not compare as equal. -+ * Which one is sorted before the other does not really matter. -+ * Here a relative path is ordered before an absolute path. */ -+ d = (a[0] == '/') - (b[0] == '/'); -+ if (d) -+ return d; - - for (;;) { - size_t j, k; -@@ -417,25 +423,36 @@ bool path_equal(const char *a, const char *b) { - b += strspn(b, "/"); - - if (*a == 0 && *b == 0) -- return true; -+ return 0; - -- if (*a == 0 || *b == 0) -- return false; -+ /* Order prefixes first: "/foo" before "/foo/bar" */ -+ if (*a == 0) -+ return -1; -+ if (*b == 0) -+ return 1; - - j = strcspn(a, "/"); - k = strcspn(b, "/"); - -- if (j != k) -- return false; -+ /* Alphabetical sort: "/foo/aaa" before "/foo/b" */ -+ d = memcmp(a, b, MIN(j, k)); -+ if (d) -+ return (d > 0) - (d < 0); /* sign of d */ - -- if (memcmp(a, b, j) != 0) -- return false; -+ /* Sort "/foo/a" before "/foo/aaa" */ -+ d = (j > k) - (j < k); /* sign of (j - k) */ -+ if (d) -+ return d; - - a += j; - b += k; - } - } - -+bool path_equal(const char *a, const char *b) { -+ return path_compare(a, b) == 0; -+} -+ - bool path_equal_or_files_same(const char *a, const char *b) { - return path_equal(a, b) || files_same(a, b) > 0; - } -diff --git a/src/shared/path-util.h b/src/shared/path-util.h -index bcf116ed3d..ca81b49cbf 100644 ---- a/src/shared/path-util.h -+++ b/src/shared/path-util.h -@@ -44,6 +44,7 @@ char* path_make_absolute_cwd(const char *p); - int path_make_relative(const char *from_dir, const char *to_path, char **_r); - char* path_kill_slashes(char *path); - char* path_startswith(const char *path, const char *prefix) _pure_; -+int path_compare(const char *a, const char *b) _pure_; - bool path_equal(const char *a, const char *b) _pure_; - bool path_equal_or_files_same(const char *a, const char *b); - char* path_join(const char *root, const char *path, const char *rest); -diff --git a/src/test/test-path-util.c b/src/test/test-path-util.c -index 11aa52aaed..6396fcb398 100644 ---- a/src/test/test-path-util.c -+++ b/src/test/test-path-util.c -@@ -27,23 +27,37 @@ - #include "macro.h" - #include "strv.h" - -+#define test_path_compare(a, b, result) { \ -+ assert_se(path_compare(a, b) == result); \ -+ assert_se(path_compare(b, a) == -result); \ -+ assert_se(path_equal(a, b) == !result); \ -+ assert_se(path_equal(b, a) == !result); \ -+ } - - static void test_path(void) { -- assert_se(path_equal("/goo", "/goo")); -- assert_se(path_equal("//goo", "/goo")); -- assert_se(path_equal("//goo/////", "/goo")); -- assert_se(path_equal("goo/////", "goo")); -+ test_path_compare("/goo", "/goo", 0); -+ test_path_compare("/goo", "/goo", 0); -+ test_path_compare("//goo", "/goo", 0); -+ test_path_compare("//goo/////", "/goo", 0); -+ test_path_compare("goo/////", "goo", 0); -+ -+ test_path_compare("/goo/boo", "/goo//boo", 0); -+ test_path_compare("//goo/boo", "/goo/boo//", 0); - -- assert_se(path_equal("/goo/boo", "/goo//boo")); -- assert_se(path_equal("//goo/boo", "/goo/boo//")); -+ test_path_compare("/", "///", 0); - -- assert_se(path_equal("/", "///")); -+ test_path_compare("/x", "x/", 1); -+ test_path_compare("x/", "/", -1); - -- assert_se(!path_equal("/x", "x/")); -- assert_se(!path_equal("x/", "/")); -+ test_path_compare("/x/./y", "x/y", 1); -+ test_path_compare("x/.y", "x/y", -1); - -- assert_se(!path_equal("/x/./y", "x/y")); -- assert_se(!path_equal("x/.y", "x/y")); -+ test_path_compare("foo", "/foo", -1); -+ test_path_compare("/foo", "/foo/bar", -1); -+ test_path_compare("/foo/aaa", "/foo/b", -1); -+ test_path_compare("/foo/aaa", "/foo/b/a", -1); -+ test_path_compare("/foo/a", "/foo/aaa", -1); -+ test_path_compare("/foo/a/b", "/foo/aaa", -1); - - assert_se(path_is_absolute("/")); - assert_se(!path_is_absolute("./")); diff --git a/0112-core-namespace-fix-path-sorting.patch b/0112-core-namespace-fix-path-sorting.patch deleted file mode 100644 index c565cce..0000000 --- a/0112-core-namespace-fix-path-sorting.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 85a6fabdd3e43cfab0fc6359e9f2a9e368d4a3ed Mon Sep 17 00:00:00 2001 -From: Michal Schmidt -Date: Mon, 16 Mar 2015 22:04:21 +0100 -Subject: [PATCH] core/namespace: fix path sorting - -The comparison function we use for qsorting paths is overly indifferent. -Consider these 3 paths for sorting: - /foo - /bar - /foo/foo -qsort() may compare: - "/foo" with "/bar" => 0, indifference - "/bar" with "/foo/foo" => 0, indifference -and assume transitively that "/foo" and "/foo/foo" are also indifferent. - -But this is wrong, we want "/foo" sorted before "/foo/foo". -The comparison function must be transitive. - -Use path_compare(), which behaves properly. - -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1184016 -(cherry picked from commit a0827e2b123010c46cfe4f03eebba57d92f9efc4) ---- - src/core/namespace.c | 12 ++++-------- - 1 file changed, 4 insertions(+), 8 deletions(-) - -diff --git a/src/core/namespace.c b/src/core/namespace.c -index 4fecd32363..d4f1c86211 100644 ---- a/src/core/namespace.c -+++ b/src/core/namespace.c -@@ -91,9 +91,11 @@ static int append_mounts(BindMount **p, char **strv, MountMode mode) { - - static int mount_path_compare(const void *a, const void *b) { - const BindMount *p = a, *q = b; -+ int d; - -- if (path_equal(p->path, q->path)) { -+ d = path_compare(p->path, q->path); - -+ if (!d) { - /* If the paths are equal, check the mode */ - if (p->mode < q->mode) - return -1; -@@ -105,13 +107,7 @@ static int mount_path_compare(const void *a, const void *b) { - } - - /* If the paths are not equal, then order prefixes first */ -- if (path_startswith(p->path, q->path)) -- return 1; -- -- if (path_startswith(q->path, p->path)) -- return -1; -- -- return 0; -+ return d; - } - - static void drop_duplicates(BindMount *m, unsigned *n) { diff --git a/0113-console-getty.service-don-t-start-when-dev-console-i.patch b/0113-console-getty.service-don-t-start-when-dev-console-i.patch deleted file mode 100644 index 9119113..0000000 --- a/0113-console-getty.service-don-t-start-when-dev-console-i.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 78bce4363bb349a64ed98ac307421698c8f8e06e Mon Sep 17 00:00:00 2001 -From: Jan Pazdziora -Date: Fri, 13 Mar 2015 12:57:18 +0100 -Subject: [PATCH] console-getty.service: don't start when /dev/console is - missing - -Create minimal image which runs systemd - - FROM rhel7.1 - RUN yum install -y /usr/bin/ps - ENV container docker - CMD [ "/usr/sbin/init" ] - -When you run the container without -t, the process - - /sbin/agetty --noclear --keep-baud console 115200 38400 9600 - -is not happy and checking the journal in the container, there is a stream of - -Mar 13 04:50:15 11bf07f59fff agetty[66]: /dev/console: No such file or directory -Mar 13 04:50:25 11bf07f59fff systemd[1]: console-getty.service holdoff time over, scheduling restart. -Mar 13 04:50:25 11bf07f59fff systemd[1]: Stopping Console Getty... -Mar 13 04:50:25 11bf07f59fff systemd[1]: Starting Console Getty... -Mar 13 04:50:25 11bf07f59fff systemd[1]: Started Console Getty. -Mar 13 04:50:25 11bf07f59fff agetty[67]: /dev/console: No such file or directory -Mar 13 04:50:35 11bf07f59fff systemd[1]: console-getty.service holdoff time over, scheduling restart. -Mar 13 04:50:35 11bf07f59fff systemd[1]: Stopping Console Getty... -Mar 13 04:50:35 11bf07f59fff systemd[1]: Starting Console Getty... -Mar 13 04:50:35 11bf07f59fff systemd[1]: Started Console Getty. -Mar 13 04:50:35 11bf07f59fff agetty[74]: /dev/console: No such file or directory -Mar 13 04:50:45 11bf07f59fff systemd[1]: console-getty.service holdoff time over, scheduling restart. -Mar 13 04:50:45 11bf07f59fff systemd[1]: Stopping Console Getty... -Mar 13 04:50:45 11bf07f59fff systemd[1]: Starting Console Getty... - -(cherry picked from commit 1b41981d9a62443d566df6bcabc1b5024e9f5e4a) ---- - units/console-getty.service.m4.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in -index 8ac51a471b..413d94094b 100644 ---- a/units/console-getty.service.m4.in -+++ b/units/console-getty.service.m4.in -@@ -9,6 +9,7 @@ - Description=Console Getty - Documentation=man:agetty(8) - After=systemd-user-sessions.service plymouth-quit-wait.service -+ConditionPathExists=/dev/console - m4_ifdef(`HAVE_SYSV_COMPAT', - After=rc-local.service - )m4_dnl diff --git a/0114-resolved-Do-not-add-.busname-dependencies-when-compi.patch b/0114-resolved-Do-not-add-.busname-dependencies-when-compi.patch deleted file mode 100644 index 43da8e4..0000000 --- a/0114-resolved-Do-not-add-.busname-dependencies-when-compi.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 412dc90d0b48e3253786309eb563a8c1e79db22a Mon Sep 17 00:00:00 2001 -From: Dimitri John Ledkov -Date: Tue, 17 Mar 2015 16:37:07 +0100 -Subject: [PATCH] resolved: Do not add .busname dependencies, when compiling - without kdbus. - -(cherry picked from commit defa8e675b2903ad53e093bb2847c7256f0779a5) ---- - Makefile.am | 2 +- - units/.gitignore | 1 + - units/{systemd-resolved.service.in => systemd-resolved.service.m4.in} | 2 ++ - 3 files changed, 4 insertions(+), 1 deletion(-) - rename units/{systemd-resolved.service.in => systemd-resolved.service.m4.in} (96%) - -diff --git a/Makefile.am b/Makefile.am -index aadaad2b8d..78f77d7090 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -5459,7 +5459,7 @@ dist_dbussystemservice_DATA += \ - src/resolve/org.freedesktop.resolve1.service - - EXTRA_DIST += \ -- units/systemd-resolved.service.in -+ units/systemd-resolved.service.m4.in - - SYSTEM_UNIT_ALIASES += \ - systemd-resolved.service dbus-org.freedesktop.resolve1.service -diff --git a/units/.gitignore b/units/.gitignore -index 6fdb629c3d..c59676c95b 100644 ---- a/units/.gitignore -+++ b/units/.gitignore -@@ -55,6 +55,7 @@ - /systemd-reboot.service - /systemd-remount-fs.service - /systemd-resolved.service -+/systemd-resolved.service.m4 - /systemd-hibernate-resume@.service - /systemd-rfkill@.service - /systemd-shutdownd.service -diff --git a/units/systemd-resolved.service.in b/units/systemd-resolved.service.m4.in -similarity index 96% -rename from units/systemd-resolved.service.in -rename to units/systemd-resolved.service.m4.in -index b643da9a73..d133847d5e 100644 ---- a/units/systemd-resolved.service.in -+++ b/units/systemd-resolved.service.m4.in -@@ -10,11 +10,13 @@ Description=Network Name Resolution - Documentation=man:systemd-resolved.service(8) - After=systemd-networkd.service network.service - -+m4_ifdef(`ENABLE_KDBUS', - # On kdbus systems we pull in the busname explicitly, because it - # carries policy that allows the daemon to acquire its name. - Wants=org.freedesktop.resolve1.busname - After=org.freedesktop.resolve1.busname - -+)m4_dnl - [Service] - Type=notify - Restart=always diff --git a/0115-man-add-journal-remote.conf-5.patch b/0115-man-add-journal-remote.conf-5.patch deleted file mode 100644 index ee73a1d..0000000 --- a/0115-man-add-journal-remote.conf-5.patch +++ /dev/null @@ -1,178 +0,0 @@ -From b66b41c3b5c9567cafce132782bae32055d6a69a Mon Sep 17 00:00:00 2001 -From: Chris Morgan -Date: Sat, 21 Mar 2015 20:47:46 -0400 -Subject: [PATCH] man: add journal-remote.conf(5) - -(cherry picked from commit eaa5251d9167027275d8275862e23e0b7dc8866e) ---- - Makefile-man.am | 7 +++ - man/journal-remote.conf.xml | 114 +++++++++++++++++++++++++++++++++++++++++ - man/systemd-journal-remote.xml | 1 + - 3 files changed, 122 insertions(+) - create mode 100644 man/journal-remote.conf.xml - -diff --git a/Makefile-man.am b/Makefile-man.am -index d0fb9aa1ae..28e1007c38 100644 ---- a/Makefile-man.am -+++ b/Makefile-man.am -@@ -1330,14 +1330,20 @@ endif - - if HAVE_MICROHTTPD - MANPAGES += \ -+ man/journal-remote.conf.5 \ - man/systemd-journal-gatewayd.service.8 \ - man/systemd-journal-remote.8 \ - man/systemd-journal-upload.8 - MANPAGES_ALIAS += \ -+ man/journal-remote.conf.d.5 \ - man/systemd-journal-gatewayd.8 \ - man/systemd-journal-gatewayd.socket.8 -+man/journal-remote.conf.d.5: man/journal-remote.conf.5 - man/systemd-journal-gatewayd.8: man/systemd-journal-gatewayd.service.8 - man/systemd-journal-gatewayd.socket.8: man/systemd-journal-gatewayd.service.8 -+man/journal-remote.conf.d.html: man/journal-remote.conf.html -+ $(html-alias) -+ - man/systemd-journal-gatewayd.html: man/systemd-journal-gatewayd.service.html - $(html-alias) - -@@ -1634,6 +1640,7 @@ EXTRA_DIST += \ - man/hostname.xml \ - man/hostnamectl.xml \ - man/hwdb.xml \ -+ man/journal-remote.conf.xml \ - man/journalctl.xml \ - man/journald.conf.xml \ - man/kernel-command-line.xml \ -diff --git a/man/journal-remote.conf.xml b/man/journal-remote.conf.xml -new file mode 100644 -index 0000000000..a7b2227182 ---- /dev/null -+++ b/man/journal-remote.conf.xml -@@ -0,0 +1,114 @@ -+ -+ -+ -+ -+ -+ -+ -+ journal-remote.conf -+ systemd -+ -+ -+ -+ Developer -+ Chris -+ Morgan -+ chmorgan@gmail.com -+ -+ -+ -+ -+ -+ journal-remote.conf -+ 5 -+ -+ -+ -+ journal-remote.conf -+ journal-remote.conf.d -+ Journal remote service configuration files -+ -+ -+ -+ /etc/systemd/journal-remote.conf -+ /etc/systemd/journald.conf.d/*.conf -+ /run/systemd/journald.conf.d/*.conf -+ /usr/lib/systemd/journald.conf.d/*.conf -+ -+ -+ -+ Description -+ -+ These files configure various parameters of the systemd-remote-journal -+ application, -+ systemd-journal-remote8. -+ -+ -+ -+ -+ -+ Options -+ -+ All options are configured in the -+ [Remote] section: -+ -+ -+ -+ -+ SplitMode= -+ -+ One of host or none. -+ -+ -+ -+ -+ ServerKeyFile= -+ -+ SSL key in PEM format -+ -+ -+ -+ ServerCertificateFile= -+ -+ SSL CA certificate in PEM format. -+ -+ -+ -+ TrustedCertificateFile= -+ -+ SSL CA certificate. -+ -+ -+ -+ -+ -+ -+ -+ See Also -+ -+ systemd-journal-remote1, -+ systemd1, -+ systemd-journald.service8 -+ -+ -+ -+ -diff --git a/man/systemd-journal-remote.xml b/man/systemd-journal-remote.xml -index 2687662a14..d5bda635c4 100644 ---- a/man/systemd-journal-remote.xml -+++ b/man/systemd-journal-remote.xml -@@ -310,6 +310,7 @@ systemd-journal-remote --url http://some.host:19531/ - journalctl1, - systemd-journald.service8, - systemd-journal-gatewayd.service8 -+ journal-remote.conf5 - - - diff --git a/0116-hwdb-Update-database-of-Bluetooth-company-identifier.patch b/0116-hwdb-Update-database-of-Bluetooth-company-identifier.patch deleted file mode 100644 index 04ed2ce..0000000 --- a/0116-hwdb-Update-database-of-Bluetooth-company-identifier.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 85967d7434a798b1d73429d87229cfaadfbf44b0 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann -Date: Tue, 31 Mar 2015 22:59:12 +0200 -Subject: [PATCH] hwdb: Update database of Bluetooth company identifiers - -(cherry picked from commit c185834d77335d50ef0247c39d7e9dffc74707bd) ---- - hwdb/20-bluetooth-vendor-product.hwdb | 36 +++++++++++++++++++++++++++++++++++ - 1 file changed, 36 insertions(+) - -diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb -index 4fd951a584..ff8862b9ea 100644 ---- a/hwdb/20-bluetooth-vendor-product.hwdb -+++ b/hwdb/20-bluetooth-vendor-product.hwdb -@@ -1472,3 +1472,39 @@ bluetooth:v01E7* - - bluetooth:v01E8* - ID_VENDOR_FROM_DATABASE=STIR -+ -+bluetooth:v01E9* -+ ID_VENDOR_FROM_DATABASE=Sano, Inc -+ -+bluetooth:v01EA* -+ ID_VENDOR_FROM_DATABASE=Advanced Application Design, Inc. -+ -+bluetooth:v01EB* -+ ID_VENDOR_FROM_DATABASE=AutoMap LLC -+ -+bluetooth:v01EC* -+ ID_VENDOR_FROM_DATABASE=Spreadtrum Communications Shanghai Ltd -+ -+bluetooth:v01ED* -+ ID_VENDOR_FROM_DATABASE=CuteCircuit LTD -+ -+bluetooth:v01EE* -+ ID_VENDOR_FROM_DATABASE=Valeo Service -+ -+bluetooth:v01EF* -+ ID_VENDOR_FROM_DATABASE=Fullpower Technologies, Inc. -+ -+bluetooth:v01F0* -+ ID_VENDOR_FROM_DATABASE=KloudNation -+ -+bluetooth:v01F1* -+ ID_VENDOR_FROM_DATABASE=Zebra Technologies Corporation -+ -+bluetooth:v01F2* -+ ID_VENDOR_FROM_DATABASE=Itron, Inc. -+ -+bluetooth:v01F3* -+ ID_VENDOR_FROM_DATABASE=The University of Tokyo -+ -+bluetooth:v01F4* -+ ID_VENDOR_FROM_DATABASE=UTC Fire and Security diff --git a/0117-mount-don-t-run-quotaon-only-for-network-filesystems.patch b/0117-mount-don-t-run-quotaon-only-for-network-filesystems.patch deleted file mode 100644 index fbaeca8..0000000 --- a/0117-mount-don-t-run-quotaon-only-for-network-filesystems.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 76e5c9cfb1df3991f631cc7b593ab25a15f8d3eb Mon Sep 17 00:00:00 2001 -From: Lukas Nykryn -Date: Mon, 30 Mar 2015 14:42:02 +0200 -Subject: [PATCH] mount: don't run quotaon only for network filesystems - -If you have for example ext4 on iscsi devices it is possible to setup -qoutas there. Unfortunately, because such fstab entry contains _netdev, -systemd will not add dependency to quotaon.service. - -(cherry picked from commit 11041c8488e956924870379a9203d7f1cac3b038) ---- - src/core/mount.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 3ae0eb4621..3359220251 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -107,7 +107,9 @@ static bool mount_is_auto(const MountParameters *p) { - static bool needs_quota(const MountParameters *p) { - assert(p); - -- if (mount_is_network(p)) -+ /* Quotas are not enabled on network filesystems, -+ * but we them, for example, on storages connected via iscsi */ -+ if (p->fstype && fstype_is_network(p->fstype)) - return false; - - if (mount_is_bind(p)) diff --git a/0118-mount-fix-up-wording-in-the-comment.patch b/0118-mount-fix-up-wording-in-the-comment.patch deleted file mode 100644 index cf5e0d3..0000000 --- a/0118-mount-fix-up-wording-in-the-comment.patch +++ /dev/null @@ -1,23 +0,0 @@ -From b9b1f41397212bb0a692454b75434b62a4ade1dc Mon Sep 17 00:00:00 2001 -From: Michal Sekletar -Date: Wed, 1 Apr 2015 13:08:25 +0200 -Subject: [PATCH] mount: fix up wording in the comment - -(cherry picked from commit 340a1d2330ddc1dd18ad75bcdddf32f63c84b4a1) ---- - src/core/mount.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/core/mount.c b/src/core/mount.c -index 3359220251..fd4fb6f1b2 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -108,7 +108,7 @@ static bool needs_quota(const MountParameters *p) { - assert(p); - - /* Quotas are not enabled on network filesystems, -- * but we them, for example, on storages connected via iscsi */ -+ * but we want them, for example, on storage connected via iscsi */ - if (p->fstype && fstype_is_network(p->fstype)) - return false; - diff --git a/0119-udev-net_id-fix-copy-paste-error.patch b/0119-udev-net_id-fix-copy-paste-error.patch deleted file mode 100644 index f7aeaac..0000000 --- a/0119-udev-net_id-fix-copy-paste-error.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e219205ca3accd36ce59ed19bb0e6d079311d505 Mon Sep 17 00:00:00 2001 -From: Tom Gundersen -Date: Wed, 1 Apr 2015 16:41:41 +0200 -Subject: [PATCH] udev: net_id - fix copy-paste error - -In case pci_slot overflows we were truncating pci_path instead. - -(cherry picked from commit 16f948cb208f1db9a1665f07ac9b22e416dc19d4) ---- - src/udev/udev-builtin-net_id.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c -index 37ff1b8008..71f3a5970f 100644 ---- a/src/udev/udev-builtin-net_id.c -+++ b/src/udev/udev-builtin-net_id.c -@@ -248,7 +248,7 @@ static int dev_pci_slot(struct udev_device *dev, struct netnames *names) { - if (dev_port > 0) - l = strpcpyf(&s, l, "d%d", dev_port); - if (l == 0) -- names->pci_path[0] = '\0'; -+ names->pci_slot[0] = '\0'; - } - out: - udev_device_unref(pci); diff --git a/0120-man-don-t-mention-journalctl-dev-sda.patch b/0120-man-don-t-mention-journalctl-dev-sda.patch deleted file mode 100644 index cf16e2d..0000000 --- a/0120-man-don-t-mention-journalctl-dev-sda.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4e19d468a0d5af50fcff6db4f67572689d28b706 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 2 Apr 2015 12:14:57 +0200 -Subject: [PATCH] man: don't mention "journalctl /dev/sda" - -It never worked, and nobody ever worked on it, hence don't mention it. - -(cherry picked from commit c4f54721175bde35e2051d61d3d23285def9619d) ---- - man/journalctl.xml | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/man/journalctl.xml b/man/journalctl.xml -index 770cf9bb29..08de0ff068 100644 ---- a/man/journalctl.xml -+++ b/man/journalctl.xml -@@ -817,11 +817,6 @@ - - journalctl /usr/bin/dbus-daemon - -- Show all logs of the kernel device node -- /dev/sda: -- -- journalctl /dev/sda -- - Show all kernel logs from previous boot: - - journalctl -k -b -1 diff --git a/0121-units-move-After-systemd-hwdb-update.service-depende.patch b/0121-units-move-After-systemd-hwdb-update.service-depende.patch deleted file mode 100644 index de80ec8..0000000 --- a/0121-units-move-After-systemd-hwdb-update.service-depende.patch +++ /dev/null @@ -1,43 +0,0 @@ -From bf38766c3a48427673527e7ae8894aeca2e34ffe Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 3 Apr 2015 14:27:16 +0200 -Subject: [PATCH] units: move After=systemd-hwdb-update.service dependency from - udev to udev-trigger - -Let's move the hwdb regeneration a bit later. Given that hwdb is -non-essential it should be OK to allow udev to run without it until we -do the full trigger. - -http://lists.freedesktop.org/archives/systemd-devel/2015-April/030074.html -(cherry picked from commit d8f0930eec248c2f54c85aa5029e1b3775c8dc75) ---- - units/systemd-udev-trigger.service.in | 2 +- - units/systemd-udevd.service.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/units/systemd-udev-trigger.service.in b/units/systemd-udev-trigger.service.in -index 0c33909cee..1e04d11fe3 100644 ---- a/units/systemd-udev-trigger.service.in -+++ b/units/systemd-udev-trigger.service.in -@@ -10,7 +10,7 @@ Description=udev Coldplug all Devices - Documentation=man:udev(7) man:systemd-udevd.service(8) - DefaultDependencies=no - Wants=systemd-udevd.service --After=systemd-udevd-kernel.socket systemd-udevd-control.socket -+After=systemd-udevd-kernel.socket systemd-udevd-control.socket systemd-hwdb-update.service - Before=sysinit.target - ConditionPathIsReadWrite=/sys - -diff --git a/units/systemd-udevd.service.in b/units/systemd-udevd.service.in -index 2791f73ac3..a133044005 100644 ---- a/units/systemd-udevd.service.in -+++ b/units/systemd-udevd.service.in -@@ -10,7 +10,7 @@ Description=udev Kernel Device Manager - Documentation=man:systemd-udevd.service(8) man:udev(7) - DefaultDependencies=no - Wants=systemd-udevd-control.socket systemd-udevd-kernel.socket --After=systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-hwdb-update.service systemd-sysusers.service -+After=systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-sysusers.service - Before=sysinit.target - ConditionPathIsReadWrite=/sys - diff --git a/0122-units-explicitly-order-systemd-user-sessions.service.patch b/0122-units-explicitly-order-systemd-user-sessions.service.patch deleted file mode 100644 index b2d69f8..0000000 --- a/0122-units-explicitly-order-systemd-user-sessions.service.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 2f9c8a3cacc7f6743925c8f8eb7fdffd1558c688 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 3 Apr 2015 14:31:35 +0200 -Subject: [PATCH] units: explicitly order systemd-user-sessions.service after - nss-user-lookup.target - -We should not allow logins before NIS/LDAP users are available. - -(cherry picked from commit efb3e19be9c568974b221990b9e84fb5304c5537) ---- - units/systemd-user-sessions.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/systemd-user-sessions.service.in b/units/systemd-user-sessions.service.in -index 0869e73991..c09c05d4d5 100644 ---- a/units/systemd-user-sessions.service.in -+++ b/units/systemd-user-sessions.service.in -@@ -8,7 +8,7 @@ - [Unit] - Description=Permit User Sessions - Documentation=man:systemd-user-sessions.service(8) --After=remote-fs.target -+After=remote-fs.target nss-user-lookup.target - - [Service] - Type=oneshot diff --git a/0123-zsh-completion-update-loginctl.patch b/0123-zsh-completion-update-loginctl.patch deleted file mode 100644 index 311a284..0000000 --- a/0123-zsh-completion-update-loginctl.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 33783ab52be4b52be91b3565948a29fbfc1d0799 Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Tue, 7 Apr 2015 19:35:13 +0200 -Subject: [PATCH] zsh-completion: update loginctl - -(cherry picked from commit 8470025541039f39391815b2ac93952003b7eee8) ---- - shell-completion/zsh/_loginctl | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/shell-completion/zsh/_loginctl b/shell-completion/zsh/_loginctl -index 0de66e191f..bd33b66fae 100644 ---- a/shell-completion/zsh/_loginctl -+++ b/shell-completion/zsh/_loginctl -@@ -102,10 +102,11 @@ _arguments -s \ - '--kill-who=[Who to send signal to]:killwho:(main control all)' \ - {-s+,--signal=}'[Which signal to send]:signal:_signals' \ - {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ -- {-M+,--machine=}'[Operate on local container]:machine' \ -- {-P,--privileged}'[Acquire privileges before execution]' \ -+ {-M+,--machine=}'[Operate on local container]:machine:_sd_machines' \ - {-l,--full}'[Do not ellipsize output]' \ - '--no-pager[Do not pipe output into a pager]' \ - '--no-legend[Do not show the headers and footers]' \ - '--no-ask-password[Do not ask for system passwords]' \ -+ {-n+,--lines=}'[Number of journal entries to show]' \ -+ {-o+,--output=}'[Change journal output mode]:output modes:_sd_outputmodes' \ - '*::loginctl command:_loginctl_command' diff --git a/0124-zsh-completion-add-missing-M-completion-for-journalc.patch b/0124-zsh-completion-add-missing-M-completion-for-journalc.patch deleted file mode 100644 index 7064f58..0000000 --- a/0124-zsh-completion-add-missing-M-completion-for-journalc.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 5fa78764c2405083d5023f56799e518e641abb2f Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Tue, 7 Apr 2015 19:35:57 +0200 -Subject: [PATCH] zsh-completion: add missing -M completion for journalctl - -(cherry picked from commit b178d279d92fdf002b18dd2f06f2353af14d0a6e) ---- - shell-completion/zsh/_journalctl | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/shell-completion/zsh/_journalctl b/shell-completion/zsh/_journalctl -index a469bbc9a7..863348e050 100644 ---- a/shell-completion/zsh/_journalctl -+++ b/shell-completion/zsh/_journalctl -@@ -76,6 +76,7 @@ _arguments -s \ - {-F,--field=}'[List all values a certain field takes]:Fields:_list_fields' \ - '--system[Show system and kernel messages]' \ - '--user[Show messages from user services]' \ -+ {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \ - {-D+,--directory=}'[Show journal files from directory]:directories:_directories' \ - '--file=[Operate on specified journal files]:file:_files' \ - '--root=[Operate on catalog hierarchy under specified directory]:directories:_directories' \ diff --git a/0125-zsh-completion-update-hostnamectl.patch b/0125-zsh-completion-update-hostnamectl.patch deleted file mode 100644 index 2a0f7db..0000000 --- a/0125-zsh-completion-update-hostnamectl.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 8a4bf5dd52fe70734d566df3315927e41d27ac0e Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Tue, 7 Apr 2015 20:14:28 +0200 -Subject: [PATCH] zsh-completion: update hostnamectl - -(cherry picked from commit d67b1f525f488e5dfc076972cccf2a6411257fb8) ---- - shell-completion/zsh/_hostnamectl | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/shell-completion/zsh/_hostnamectl b/shell-completion/zsh/_hostnamectl -index a7217a1999..7528e0649d 100644 ---- a/shell-completion/zsh/_hostnamectl -+++ b/shell-completion/zsh/_hostnamectl -@@ -33,6 +33,14 @@ _hostnamectl_set-deployment() { - fi - } - -+_hostnamectl_set-location() { -+ if (( CURRENT <= 3 )); then -+ _message "new location" -+ else -+ _message "no more options" -+ fi -+} -+ - _hostnamectl_command() { - local -a _hostnamectl_cmds - _hostnamectl_cmds=( -@@ -40,7 +48,8 @@ _hostnamectl_command() { - "set-hostname:Set system hostname" - "set-icon-name:Set icon name for host" - "set-chassis:Set chassis type for host" -- "set-deployment:Set deployment environment" -+ "set-deployment:Set deployment environment for host" -+ "set-location:Set location for host" - ) - if (( CURRENT == 1 )); then - _describe -t commands 'hostnamectl commands' _hostnamectl_cmds || compadd "$@" -@@ -67,4 +76,5 @@ _arguments -s \ - '--pretty[Only set pretty hostname]' \ - '--no-ask-password[Do not prompt for password]' \ - {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ -+ {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \ - '*::hostnamectl commands:_hostnamectl_command' diff --git a/0126-shell-completion-systemctl-switch-root-verb.patch b/0126-shell-completion-systemctl-switch-root-verb.patch deleted file mode 100644 index 9fa0bcb..0000000 --- a/0126-shell-completion-systemctl-switch-root-verb.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 51265c779c2c9ed84971405827595a41a10c5398 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 2 Apr 2015 22:54:35 -0400 -Subject: [PATCH] shell-completion: systemctl switch-root verb - -The completion is rudimentary (all files). I think this is OK since -this is used so rarely. But not having it proposed at all is annoying. - -(cherry picked from commit 7b742b3130941b5c8d5e178b6694428fb3b61086) ---- - shell-completion/bash/systemctl.in | 2 +- - shell-completion/zsh/_systemctl.in | 5 +++++ - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/shell-completion/bash/systemctl.in b/shell-completion/bash/systemctl.in -index 8063316ec6..3d787cdb77 100644 ---- a/shell-completion/bash/systemctl.in -+++ b/shell-completion/bash/systemctl.in -@@ -160,7 +160,7 @@ _systemctl () { - reboot rescue show-environment suspend get-default - is-system-running' - [NAME]='snapshot' -- [FILE]='link' -+ [FILE]='link switch-root' - [TARGETS]='set-default' - ) - -diff --git a/shell-completion/zsh/_systemctl.in b/shell-completion/zsh/_systemctl.in -index 7f2d5ac0fa..82edfd3d74 100644 ---- a/shell-completion/zsh/_systemctl.in -+++ b/shell-completion/zsh/_systemctl.in -@@ -59,6 +59,7 @@ - "reboot:Shut down and reboot the system" - "kexec:Shut down and reboot the system with kexec" - "exit:Ask for user instance termination" -+ "switch-root:Change root directory" - ) - - if (( CURRENT == 1 )); then -@@ -297,6 +298,10 @@ done - _sd_unit_files - } - -+(( $+functions[_systemctl_switch-root] )) || _systemctl_switch-root() { -+ _files -+} -+ - # no systemctl completion for: - # [STANDALONE]='daemon-reexec daemon-reload default - # emergency exit halt kexec list-jobs list-units diff --git a/0127-core-automount-beef-up-error-message.patch b/0127-core-automount-beef-up-error-message.patch deleted file mode 100644 index 2b91967..0000000 --- a/0127-core-automount-beef-up-error-message.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 7a6c9117eca12a1a59f1323ba7407e7b6dedfa66 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Thu, 2 Apr 2015 22:58:39 -0400 -Subject: [PATCH] core/automount: beef up error message - -This should not happen... but when it does more information is nice. - -(cherry picked from commit 50b03c8ea1248f2d35a9042a3fa959adc0ceb819) ---- - src/core/automount.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/core/automount.c b/src/core/automount.c -index e4c79415d1..b391f6198e 100644 ---- a/src/core/automount.c -+++ b/src/core/automount.c -@@ -734,7 +734,8 @@ static int automount_dispatch_io(sd_event_source *s, int fd, uint32_t events, vo - assert(fd == a->pipe_fd); - - if (events != EPOLLIN) { -- log_unit_error(UNIT(a)->id, "Got invalid poll event on pipe."); -+ log_unit_error(UNIT(a)->id, "%s: got invalid poll event %"PRIu32" on pipe (fd=%d)", -+ UNIT(a)->id, events, fd); - goto fail; - } - diff --git a/0128-man-remove-fs-from-rootfsflags.patch b/0128-man-remove-fs-from-rootfsflags.patch deleted file mode 100644 index 26695e7..0000000 --- a/0128-man-remove-fs-from-rootfsflags.patch +++ /dev/null @@ -1,25 +0,0 @@ -From d0d6d8081f89fd03cc2bdb4068239928e36db73c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 3 Apr 2015 08:28:21 -0400 -Subject: [PATCH] man: remove 'fs' from 'rootfsflags' - -rootfsflags does not appear anywhere else. - -(cherry picked from commit d6a12e7ca3a17ce0224fd6c95d827e4f97fe2c9a) ---- - man/kernel-command-line.xml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml -index 919bd13745..eb73727027 100644 ---- a/man/kernel-command-line.xml -+++ b/man/kernel-command-line.xml -@@ -295,7 +295,7 @@ - - root= - rootfstype= -- rootfsflags= -+ rootflags= - ro - rw - diff --git a/0129-shared-fix-memleak.patch b/0129-shared-fix-memleak.patch deleted file mode 100644 index a2b8b1c..0000000 --- a/0129-shared-fix-memleak.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 7b0a1d188bf80e77d833f1c624a9a9f467f3af25 Mon Sep 17 00:00:00 2001 -From: Ronny Chevalier -Date: Fri, 10 Apr 2015 15:44:02 +0200 -Subject: [PATCH] shared: fix memleak - -path was used for 2 purposes but it was not freed before being reused. - -(cherry picked from commit 0d67448869bd881fd6aea57de6da98800395cf1f) ---- - src/shared/install.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/src/shared/install.c b/src/shared/install.c -index 92b8d6e8ef..efd489ec08 100644 ---- a/src/shared/install.c -+++ b/src/shared/install.c -@@ -515,7 +515,7 @@ static int find_symlinks_in_scope( - UnitFileState *state) { - - int r; -- _cleanup_free_ char *path = NULL; -+ _cleanup_free_ char *normal_path = NULL, *runtime_path = NULL; - bool same_name_link_runtime = false, same_name_link = false; - - assert(scope >= 0); -@@ -523,11 +523,11 @@ static int find_symlinks_in_scope( - assert(name); - - /* First look in runtime config path */ -- r = get_config_path(scope, true, root_dir, &path); -+ r = get_config_path(scope, true, root_dir, &normal_path); - if (r < 0) - return r; - -- r = find_symlinks(name, path, &same_name_link_runtime); -+ r = find_symlinks(name, normal_path, &same_name_link_runtime); - if (r < 0) - return r; - else if (r > 0) { -@@ -536,11 +536,11 @@ static int find_symlinks_in_scope( - } - - /* Then look in the normal config path */ -- r = get_config_path(scope, false, root_dir, &path); -+ r = get_config_path(scope, false, root_dir, &runtime_path); - if (r < 0) - return r; - -- r = find_symlinks(name, path, &same_name_link); -+ r = find_symlinks(name, runtime_path, &same_name_link); - if (r < 0) - return r; - else if (r > 0) { diff --git a/0130-udev-restore-udevadm-settle-timeout.patch b/0130-udev-restore-udevadm-settle-timeout.patch deleted file mode 100644 index 8d1ddc5..0000000 --- a/0130-udev-restore-udevadm-settle-timeout.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 6ee163ccd848bc0283a4895dddd55f3a71626d6a Mon Sep 17 00:00:00 2001 -From: Nir Soffer -Date: Wed, 8 Apr 2015 04:04:16 +0300 -Subject: [PATCH] udev: restore udevadm settle timeout - -Commit 9ea28c55a2 (udev: remove seqnum API and all assumptions about -seqnums) introduced a regresion, ignoring the timeout option when -waiting until the event queue is empty. - -Previously, if the udev event queue was not empty when the timeout was -expired, udevadm settle was returning with exit code 1. To check if the -queue is empty, you could invoke udevadm settle with timeout=0. This -patch restores the previous behavior. - -(David: fixed timeout==0 handling and dropped redundant assignment) - -(cherry picked from commit 0736455b1186c9515e0f093e1e686e684d225787) ---- - src/udev/udevadm-settle.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c -index fff5de7a8b..e60c4623bd 100644 ---- a/src/udev/udevadm-settle.c -+++ b/src/udev/udevadm-settle.c -@@ -56,6 +56,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { - { "quiet", no_argument, NULL, 'q' }, /* removed */ - {} - }; -+ usec_t deadline; - const char *exists = NULL; - unsigned int timeout = 120; - struct pollfd pfd[1] = { {.fd = -1}, }; -@@ -105,6 +106,8 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { - return EXIT_FAILURE; - } - -+ deadline = now(CLOCK_MONOTONIC) + timeout * USEC_PER_SEC; -+ - /* guarantee that the udev daemon isn't pre-processing */ - if (getuid() == 0) { - struct udev_ctrl *uctrl; -@@ -146,6 +149,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { - break; - } - -+ if (timeout > 0 && now(CLOCK_MONOTONIC) >= deadline) -+ break; -+ - /* wake up when queue is empty */ - if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & POLLIN) - udev_queue_flush(queue); diff --git a/0131-hwdb-add-Samsung-ATIV-Book-6-8.patch b/0131-hwdb-add-Samsung-ATIV-Book-6-8.patch deleted file mode 100644 index c41055e..0000000 --- a/0131-hwdb-add-Samsung-ATIV-Book-6-8.patch +++ /dev/null @@ -1,30 +0,0 @@ -From cc2497363c22f32a4e38ca048f546a651ec45655 Mon Sep 17 00:00:00 2001 -From: Gavin Li -Date: Tue, 7 Apr 2015 03:30:10 -0700 -Subject: [PATCH] hwdb: add Samsung ATIV Book 6 / 8 - -This adds support for the keyboard illumination keys and fixes -Fn+F1. - -(cherry picked from commit af97ebf2dd8a2ec0d46f2924e35a63a55523c133) ---- - hwdb/60-keyboard.hwdb | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb -index 88906655ef..9f99ca8cac 100644 ---- a/hwdb/60-keyboard.hwdb -+++ b/hwdb/60-keyboard.hwdb -@@ -1009,6 +1009,12 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr* - KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer - KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch - -+# ATIV Book 6 / 8 -+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*[68][78]0Z*:pvr* -+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings -+ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up -+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down -+ - # SQ1US - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr* - KEYBOARD_KEY_d4=menu diff --git a/0132-udevd-fix-synchronization-with-settle-when-handling-.patch b/0132-udevd-fix-synchronization-with-settle-when-handling-.patch deleted file mode 100644 index f64dfe5..0000000 --- a/0132-udevd-fix-synchronization-with-settle-when-handling-.patch +++ /dev/null @@ -1,67 +0,0 @@ -From bb9b6abb1a73cadcd1ce48a83376183163f7ecd6 Mon Sep 17 00:00:00 2001 -From: Daniel Drake -Date: Mon, 6 Apr 2015 16:03:43 -0600 -Subject: [PATCH] udevd: fix synchronization with settle when handling inotify - events - -udev uses inotify to implement a scheme where when the user closes -a writable device node, a change uevent is forcefully generated. -In the case of block devices, it actually requests a partition rescan. - -This currently can't be synchronized with "udevadm settle", i.e. this -is not reliable in a script: - - sfdisk --change-id /dev/sda 1 81 - udevadm settle - mount /dev/sda1 /foo - -The settle call doesn't synchronize there, so at the same time we try -to mount the device, udevd is busy removing the partition device nodes and -readding them again. The mount call often happens in that moment where the -partition node has been removed but not readded yet. - -This exact issue was fixed long ago: -http://git.kernel.org/cgit/linux/hotplug/udev.git/commit/?id=bb38678e3ccc02bcd970ccde3d8166a40edf92d3 - -but that fix is no longer valid now that sequence numbers are no longer -used. - -Fix this by forcing another mainloop iteration after handling inotify events -before unblocking settle. If the inotify event caused us to generate a -"change" event, we'll pick that up in the following loop iteration, before -we reach the end of the loop where we respond to settle's control message, -unblocking it. - -(cherry picked from commit 07ba8037bf2a2d6a683fa107ee6f2b9545fca23e) ---- - src/udev/udevd.c | 15 ++++++++++++++- - 1 file changed, 14 insertions(+), 1 deletion(-) - -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index e98c1fd6da..87a3f69e90 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -1502,9 +1502,22 @@ int main(int argc, char *argv[]) { - continue; - - /* device node watch */ -- if (is_inotify) -+ if (is_inotify) { - handle_inotify(udev); - -+ /* -+ * settle might be waiting on us to determine the queue -+ * state. If we just handled an inotify event, we might have -+ * generated a "change" event, but we won't have queued up -+ * the resultant uevent yet. -+ * -+ * Before we go ahead and potentially tell settle that the -+ * queue is empty, lets loop one more time to update the -+ * queue state again before deciding. -+ */ -+ continue; -+ } -+ - /* tell settle that we are busy or idle, this needs to be before the - * PING handling - */ diff --git a/0133-python-systemd-fix-is_socket_inet-to-cope-with-ports.patch b/0133-python-systemd-fix-is_socket_inet-to-cope-with-ports.patch deleted file mode 100644 index f67159d..0000000 --- a/0133-python-systemd-fix-is_socket_inet-to-cope-with-ports.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 9aa4f0e0a69e610ca38ed34692e42be330cb7041 Mon Sep 17 00:00:00 2001 -From: Simon Farnsworth -Date: Wed, 25 Mar 2015 17:00:09 +0000 -Subject: [PATCH] python-systemd: fix is_socket_inet to cope with ports - -Just a couple of trivial oversights. - -(cherry picked from commit 9f1a574d50c1ffd19f18805cc8a3a433c4f2da37) ---- - src/python-systemd/_daemon.c | 2 +- - src/python-systemd/daemon.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/python-systemd/_daemon.c b/src/python-systemd/_daemon.c -index 65cfec7ce8..7c5f1b2bb6 100644 ---- a/src/python-systemd/_daemon.c -+++ b/src/python-systemd/_daemon.c -@@ -225,7 +225,7 @@ static PyObject* is_socket_inet(PyObject *self, PyObject *args) { - &fd, &family, &type, &listening, &port)) - return NULL; - -- if (port < 0 || port > INT16_MAX) { -+ if (port < 0 || port > UINT16_MAX) { - set_error(-EINVAL, NULL, "port must fit into uint16_t"); - return NULL; - } -diff --git a/src/python-systemd/daemon.py b/src/python-systemd/daemon.py -index 1c386bb6fc..82011ca606 100644 ---- a/src/python-systemd/daemon.py -+++ b/src/python-systemd/daemon.py -@@ -26,7 +26,7 @@ def is_socket(fileobj, family=_AF_UNSPEC, type=0, listening=-1): - - def is_socket_inet(fileobj, family=_AF_UNSPEC, type=0, listening=-1, port=0): - fd = _convert_fileobj(fileobj) -- return _is_socket_inet(fd, family, type, listening) -+ return _is_socket_inet(fd, family, type, listening, port) - - def is_socket_unix(fileobj, type=0, listening=-1, path=None): - fd = _convert_fileobj(fileobj) diff --git a/0134-man-fix-examples-indentation-in-tmpfiles.d-5.patch b/0134-man-fix-examples-indentation-in-tmpfiles.d-5.patch deleted file mode 100644 index bb30920..0000000 --- a/0134-man-fix-examples-indentation-in-tmpfiles.d-5.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 1625df2abbb82af7a0b2c02291e8379f00bdb8c4 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 13 Apr 2015 15:23:07 +0200 -Subject: [PATCH] man: fix examples indentation in tmpfiles.d(5) - -(cherry picked from commit bd1100898d63e9e2d8f6327b6895454f9abd5bd0) ---- - man/tmpfiles.d.xml | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml -index 4bd0fcf751..9b4e11c1b9 100644 ---- a/man/tmpfiles.d.xml -+++ b/man/tmpfiles.d.xml -@@ -504,15 +504,15 @@ - boot with specific modes and ownership. - - d /run/screens 1777 root root 10d -- d /run/uscreens 0755 root root 10d12h -- t /run/screen - - - - user.name="John Smith" security.SMACK64=screen -+d /run/uscreens 0755 root root 10d12h -+t /run/screen - - - - user.name="John Smith" security.SMACK64=screen - - - /etc/tmpfiles.d/abrt.conf example - abrt needs a directory created at boot with specific mode and ownership and its content should be preserved. - - d /var/tmp/abrt 0755 abrt abrt -- x /var/tmp/abrt/* -+x /var/tmp/abrt/* - - - diff --git a/0135-systemctl-avoid-bumping-NOFILE-rlimit-unless-needed.patch b/0135-systemctl-avoid-bumping-NOFILE-rlimit-unless-needed.patch deleted file mode 100644 index d525dab..0000000 --- a/0135-systemctl-avoid-bumping-NOFILE-rlimit-unless-needed.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 8bdb345984f8a00ff866c1b4198888a9eef03395 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 14 Apr 2015 20:47:20 -0500 -Subject: [PATCH] systemctl: avoid bumping NOFILE rlimit unless needed - -We actually only use the journal when showing status. Move setrlimit call -so it is only called for status. - -https://bugzilla.redhat.com/show_bug.cgi?id=1184712 -(cherry picked from commit 40acc203c043fd419f3c045dc6f116c3a28411d8) ---- - src/systemctl/systemctl.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 4ec0cff21d..089c25f83f 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -4449,6 +4449,12 @@ static int show(sd_bus *bus, char **args) { - if (show_properties) - pager_open_if_enabled(); - -+ if (show_status) -+ /* Increase max number of open files to 16K if we can, we -+ * might needs this when browsing journal files, which might -+ * be split up into many files. */ -+ setrlimit_closest(RLIMIT_NOFILE, &RLIMIT_MAKE_CONST(16384)); -+ - /* If no argument is specified inspect the manager itself */ - - if (show_properties && strv_length(args) <= 1) -@@ -7207,11 +7213,6 @@ found: - } - } - -- /* Increase max number of open files to 16K if we can, we -- * might needs this when browsing journal files, which might -- * be split up into many files. */ -- setrlimit_closest(RLIMIT_NOFILE, &RLIMIT_MAKE_CONST(16384)); -- - return verb->dispatch(bus, argv + optind); - } - diff --git a/0136-exit-status-Fix-NOTINSSTALLED-typo.patch b/0136-exit-status-Fix-NOTINSSTALLED-typo.patch deleted file mode 100644 index 256c40f..0000000 --- a/0136-exit-status-Fix-NOTINSSTALLED-typo.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 25a7f022e7e2e004f12757b7e73d7b7aecfe8926 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Sat, 18 Apr 2015 22:38:13 +0100 -Subject: [PATCH] exit-status: Fix "NOTINSSTALLED" typo - -(cherry picked from commit 9f8f87e375175536a972feab79c2ff8901c47f8e) ---- - src/shared/exit-status.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/shared/exit-status.c b/src/shared/exit-status.c -index 5c73b4d3c0..90c83a47a8 100644 ---- a/src/shared/exit-status.c -+++ b/src/shared/exit-status.c -@@ -167,7 +167,7 @@ const char* exit_status_to_string(ExitStatus status, ExitStatusLevel level) { - return "NOPERMISSION"; - - case EXIT_NOTINSTALLED: -- return "NOTINSSTALLED"; -+ return "NOTINSTALLED"; - - case EXIT_NOTCONFIGURED: - return "NOTCONFIGURED"; diff --git a/0137-udev-settle-should-return-immediately-when-timeout-i.patch b/0137-udev-settle-should-return-immediately-when-timeout-i.patch deleted file mode 100644 index be348c1..0000000 --- a/0137-udev-settle-should-return-immediately-when-timeout-i.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 8d89839589bf8d8498ee21f4257242d38df9b7e0 Mon Sep 17 00:00:00 2001 -From: Nir Soffer -Date: Sun, 19 Apr 2015 03:41:26 +0300 -Subject: [PATCH] udev: settle should return immediately when timeout is 0 - -udevadm manual says: - - A value of 0 will check if the queue is empty and always return - immediately. - -However, currently we ignore the deadline if the value is 0, and wait -without any limit. - -Zero timeout behaved according to the documentation until commit -ead7c62ab7 (udevadm: settle - kill alarm()). Looking at this patch, it -seems that the behavior change was unintended. - -This patch restores the documented behavior. - -(cherry picked from commit bf23b9f86f6807c3029a6a46e1999ae0c87ca22a) ---- - src/udev/udevadm-settle.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c -index e60c4623bd..40e3e28b1e 100644 ---- a/src/udev/udevadm-settle.c -+++ b/src/udev/udevadm-settle.c -@@ -149,7 +149,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { - break; - } - -- if (timeout > 0 && now(CLOCK_MONOTONIC) >= deadline) -+ if (now(CLOCK_MONOTONIC) >= deadline) - break; - - /* wake up when queue is empty */ diff --git a/0138-importd-add-CAP_DAC_OVERRIDE-capability.patch b/0138-importd-add-CAP_DAC_OVERRIDE-capability.patch deleted file mode 100644 index 5473fba..0000000 --- a/0138-importd-add-CAP_DAC_OVERRIDE-capability.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 989f43ac4c07d47147facd62d3703d3d97b50e01 Mon Sep 17 00:00:00 2001 -From: Lubomir Rintel -Date: Mon, 13 Apr 2015 19:46:59 +0200 -Subject: [PATCH] importd: add CAP_DAC_OVERRIDE capability - -Fedora's filesystem package ships /usr/bin (and other directories) which are -not writable by its owner. machinectl pull-dkr (and possibly others) are not -able to extract those: - - 14182 mkdirat(3, "usr", 0700) = 0 - 14182 mkdirat(3, "usr/bin", 0500) = 0 - 14182 openat(3, "usr/bin/[", O_WRONLY|O_CREAT|O_EXCL|O_NOCTTY|O_NONBLOCK|O_CLOEXEC, 0700) = -1 EACCES (Permission denied) - ... - -(cherry picked from commit 15d7b51724cc9775f03f2af4d3eec7f48f39f7de) ---- - units/systemd-importd.service.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/systemd-importd.service.in b/units/systemd-importd.service.in -index 26759ea0fb..45e98fd320 100644 ---- a/units/systemd-importd.service.in -+++ b/units/systemd-importd.service.in -@@ -12,7 +12,7 @@ Documentation=man:systemd-importd.service(8) - [Service] - ExecStart=@rootlibexecdir@/systemd-importd - BusName=org.freedesktop.import1 --CapabilityBoundingSet=CAP_CHOWN CAP_FOWNER CAP_FSETID CAP_MKNOD CAP_SETFCAP CAP_SYS_ADMIN CAP_SETPCAP -+CapabilityBoundingSet=CAP_CHOWN CAP_FOWNER CAP_FSETID CAP_MKNOD CAP_SETFCAP CAP_SYS_ADMIN CAP_SETPCAP CAP_DAC_OVERRIDE - NoNewPrivileges=yes - WatchdogSec=1min - PrivateTmp=yes diff --git a/0139-tmpfiles-there-s-no-systemd-forbid-user-logins.servi.patch b/0139-tmpfiles-there-s-no-systemd-forbid-user-logins.servi.patch deleted file mode 100644 index 010f975..0000000 --- a/0139-tmpfiles-there-s-no-systemd-forbid-user-logins.servi.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 7abbe742f656e171effea73821c38c29565bcab2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 21 Apr 2015 17:26:56 +0200 -Subject: [PATCH] tmpfiles: there's no systemd-forbid-user-logins.service - service - -(cherry picked from commit 451d691ae110a600497348d9f6288bc84efb8642) ---- - tmpfiles.d/systemd-nologin.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tmpfiles.d/systemd-nologin.conf b/tmpfiles.d/systemd-nologin.conf -index d61232b534..a30a8da604 100644 ---- a/tmpfiles.d/systemd-nologin.conf -+++ b/tmpfiles.d/systemd-nologin.conf -@@ -5,7 +5,7 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - --# See tmpfiles.d(5) and systemd-forbid-user-logins.service(5). -+# See tmpfiles.d(5), systemd-user-session.service(5) and pam_nologin(8). - # This file has special suffix so it is not run by mistake. - - F! /run/nologin 0644 - - - "System is booting up. See pam_nologin(8)" diff --git a/0140-kmod-setup-load-ip_tables-kmod-at-boot.patch b/0140-kmod-setup-load-ip_tables-kmod-at-boot.patch deleted file mode 100644 index 05f7ca8..0000000 --- a/0140-kmod-setup-load-ip_tables-kmod-at-boot.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 08a2ba2c6981ec9fef16639d1bed16a40406f0d0 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 22 Apr 2015 13:50:56 +0200 -Subject: [PATCH] kmod-setup: load ip_tables kmod at boot - -The module is currently no auto-loadable (and this is unlikely to change -anytime soon, given it's API is via getsockopt/setsockopt). It is needed -by networkd and nspawn currently. - -Users who really don't like the module to be loaded have the option to -blacklist it still, or not compile it at all. But for all others this -should make things work out-of-the-box. - -(cherry picked from commit 1d3087978a8ee23107cb64aa55ca97aefe9531e2) ---- - src/core/kmod-setup.c | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c -index c0a05b97aa..97f3b9b34a 100644 ---- a/src/core/kmod-setup.c -+++ b/src/core/kmod-setup.c -@@ -63,16 +63,19 @@ int kmod_setup(void) { - bool (*condition_fn)(void); - } kmod_table[] = { - /* auto-loading on use doesn't work before udev is up */ -- { "autofs4", "/sys/class/misc/autofs", true, NULL }, -+ { "autofs4", "/sys/class/misc/autofs", true, NULL }, - - /* early configure of ::1 on the loopback device */ -- { "ipv6", "/sys/module/ipv6", true, NULL }, -+ { "ipv6", "/sys/module/ipv6", true, NULL }, - - /* this should never be a module */ -- { "unix", "/proc/net/unix", true, NULL }, -+ { "unix", "/proc/net/unix", true, NULL }, - - /* IPC is needed before we bring up any other services */ -- { "kdbus", "/sys/fs/kdbus", false, cmdline_check_kdbus }, -+ { "kdbus", "/sys/fs/kdbus", false, cmdline_check_kdbus }, -+ -+ /* netfilter is needed by networkd, nspawn among others, and cannot be autoloaded */ -+ { "ip_tables", "/proc/net/ip_tables_names", false, NULL }, - }; - struct kmod_ctx *ctx = NULL; - unsigned int i; diff --git a/0141-udev-Fix-ping-timeout-when-settle-timeout-is-0.patch b/0141-udev-Fix-ping-timeout-when-settle-timeout-is-0.patch deleted file mode 100644 index 6436646..0000000 --- a/0141-udev-Fix-ping-timeout-when-settle-timeout-is-0.patch +++ /dev/null @@ -1,29 +0,0 @@ -From a8d917c7e49e3111aaf7bd80cd1b8731c4ea81ed Mon Sep 17 00:00:00 2001 -From: Nir Soffer -Date: Sun, 19 Apr 2015 02:49:47 +0300 -Subject: [PATCH] udev: Fix ping timeout when settle timeout is 0 - -When running udevadm settle --timeout=0, the ping always times out, and -udevadm will return 0 without checking the queue state. - -(David: Use a reasonable timeout to still get the barrier provided by - ctrl-ping) - -(cherry picked from commit 7375b3c4871861f100860ea4c2848e66b60e6ca4) ---- - src/udev/udevadm-settle.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c -index 40e3e28b1e..33597bc209 100644 ---- a/src/udev/udevadm-settle.c -+++ b/src/udev/udevadm-settle.c -@@ -114,7 +114,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { - - uctrl = udev_ctrl_new(udev); - if (uctrl != NULL) { -- if (udev_ctrl_send_ping(uctrl, timeout) < 0) { -+ if (udev_ctrl_send_ping(uctrl, MAX(5U, timeout)) < 0) { - log_debug("no connection to daemon"); - udev_ctrl_unref(uctrl); - return EXIT_SUCCESS; diff --git a/0142-util-Fix-assertion-in-split-on-missing.patch b/0142-util-Fix-assertion-in-split-on-missing.patch deleted file mode 100644 index d429d27..0000000 --- a/0142-util-Fix-assertion-in-split-on-missing.patch +++ /dev/null @@ -1,78 +0,0 @@ -From e7a90c1117e4d37be191a6567b405d7908a30434 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Wed, 22 Apr 2015 23:09:43 +0100 -Subject: [PATCH] util: Fix assertion in split() on missing ' - -When parsing a unit with a trailing slash after an escaped line break, like - - ExecStart=/bin/echo 'foo \ - bar' - -the split() function (through config_parse()) asserted and crashed pid 1: - - Assertion 'current[*l + 1] == quotechars[0]' failed at ../src/shared/util.c:583, function split(). Aborting. - -Fix this by returning an error in this case ("trailing garbage"). - -Add corresponding test case. Also fix the missing "unit" argument of -config_parse_exec() in the comment. - -https://launchpad.net/bugs/1447243 -(cherry picked from commit 470dca63cd2b1579f45f72b6b9777494abeff105) ---- - src/shared/util.c | 3 +-- - src/test/test-unit-file.c | 15 +++++++++++++++ - 2 files changed, 16 insertions(+), 2 deletions(-) - -diff --git a/src/shared/util.c b/src/shared/util.c -index 1e1bf944f2..649344d88f 100644 ---- a/src/shared/util.c -+++ b/src/shared/util.c -@@ -571,13 +571,12 @@ const char* split(const char **state, size_t *l, const char *separator, bool quo - char quotechars[2] = {*current, '\0'}; - - *l = strcspn_escaped(current + 1, quotechars); -- if (current[*l + 1] == '\0' || -+ if (current[*l + 1] == '\0' || current[*l + 1] != quotechars[0] || - (current[*l + 2] && !strchr(separator, current[*l + 2]))) { - /* right quote missing or garbage at the end */ - *state = current; - return NULL; - } -- assert(current[*l + 1] == quotechars[0]); - *state = current++ + *l + 2; - } else if (quoted) { - *l = strcspn_escaped(current, separator); -diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c -index e517f571d6..9f3e3a227e 100644 ---- a/src/test/test-unit-file.c -+++ b/src/test/test-unit-file.c -@@ -92,6 +92,7 @@ static void check_execcommand(ExecCommand *c, - - static void test_config_parse_exec(void) { - /* int config_parse_exec( -+ const char *unit, - const char *filename, - unsigned line, - const char *section, -@@ -303,6 +304,20 @@ static void test_config_parse_exec(void) { - assert_se(r == 0); - assert_se(c1->command_next == NULL); - -+ log_info("/* missing ending ' */"); -+ r = config_parse_exec(NULL, "fake", 4, "section", 1, -+ "LValue", 0, "/path 'foo", -+ &c, NULL); -+ assert_se(r == 0); -+ assert_se(c1->command_next == NULL); -+ -+ log_info("/* missing ending ' with trailing backslash */"); -+ r = config_parse_exec(NULL, "fake", 4, "section", 1, -+ "LValue", 0, "/path 'foo\\", -+ &c, NULL); -+ assert_se(r == 0); -+ assert_se(c1->command_next == NULL); -+ - exec_command_free_list(c); - } - diff --git a/0143-hwdb-add-HP-X1000-DPI-info.patch b/0143-hwdb-add-HP-X1000-DPI-info.patch deleted file mode 100644 index ce8c18d..0000000 --- a/0143-hwdb-add-HP-X1000-DPI-info.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 327176ac36892d068e821a1c496ca0862024f02b Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Thu, 23 Apr 2015 10:44:30 +1000 -Subject: [PATCH] hwdb: add HP X1000 DPI info - -Device name is PixArt, but it's sold as a HP brand. - -https://bugs.freedesktop.org/show_bug.cgi?id=90142 -(cherry picked from commit e8043cd5fe283ff3023f98c15a2f09328805efab) ---- - hwdb/70-mouse.hwdb | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/hwdb/70-mouse.hwdb b/hwdb/70-mouse.hwdb -index 93ee4d9fa6..6f06e17091 100644 ---- a/hwdb/70-mouse.hwdb -+++ b/hwdb/70-mouse.hwdb -@@ -125,6 +125,14 @@ mouse:usb:v0461p4d16:name:USB Optical Mouse: - MOUSE_DPI=500@125 - - ########################################## -+# HP -+########################################## -+ -+# HP X1000 -+mouse:usb:v093ap2510:name:PixArt USB Optical Mouse: -+ MOUSE_DPI=1000@125 -+ -+########################################## - # Lenovo - ########################################## - diff --git a/0144-units-set-KillMode-mixed-for-our-daemons-that-fork-w.patch b/0144-units-set-KillMode-mixed-for-our-daemons-that-fork-w.patch deleted file mode 100644 index b38d0ae..0000000 --- a/0144-units-set-KillMode-mixed-for-our-daemons-that-fork-w.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0e1b8518cc0409b268bdede1ae4b424c8544ed20 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Apr 2015 16:12:28 +0200 -Subject: [PATCH] units: set KillMode=mixed for our daemons that fork worker - processes - -The daemons should really have the time to kill the workers first, -before systemd does it, hence use KillMode=mixed for these daemons. - -https://bugs.freedesktop.org/show_bug.cgi?id=90051 -(cherry picked from commit 658f26b828fdd7007cfe82d794f610525b21cb99) ---- - units/systemd-importd.service.in | 1 + - units/systemd-udevd.service.in | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/units/systemd-importd.service.in b/units/systemd-importd.service.in -index 45e98fd320..6359e5cdd9 100644 ---- a/units/systemd-importd.service.in -+++ b/units/systemd-importd.service.in -@@ -18,3 +18,4 @@ WatchdogSec=1min - PrivateTmp=yes - ProtectSystem=full - ProtectHome=yes -+KillMode=mixed -diff --git a/units/systemd-udevd.service.in b/units/systemd-udevd.service.in -index a133044005..32f04d901a 100644 ---- a/units/systemd-udevd.service.in -+++ b/units/systemd-udevd.service.in -@@ -22,3 +22,4 @@ Restart=always - RestartSec=0 - ExecStart=@rootlibexecdir@/systemd-udevd - MountFlags=slave -+KillMode=mixed diff --git a/0145-unit-don-t-add-automatic-dependencies-on-device-unit.patch b/0145-unit-don-t-add-automatic-dependencies-on-device-unit.patch deleted file mode 100644 index 94dc88b..0000000 --- a/0145-unit-don-t-add-automatic-dependencies-on-device-unit.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 10303903dc22ad1711df58556e7057ce59471b2e Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 24 Apr 2015 17:28:06 +0200 -Subject: [PATCH] unit: don't add automatic dependencies on device units if - they aren't supported - -http://lists.freedesktop.org/archives/systemd-devel/2015-April/031187.html -(cherry picked from commit 47bc12e1ba35d38edda737dae232088d6d3ae688) ---- - src/core/unit.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/src/core/unit.c b/src/core/unit.c -index 565455bd63..b9e1f13eaf 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -2830,14 +2830,18 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { - - assert(u); - -- if (!what) -- return 0; -- - /* Adds in links to the device node that this unit is based on */ -+ if (isempty(what)) -+ return 0; - - if (!is_device_path(what)) - return 0; - -+ /* When device units aren't supported (such as in a -+ * container), don't create dependencies on them. */ -+ if (unit_vtable[UNIT_DEVICE]->supported && !unit_vtable[UNIT_DEVICE]->supported(u->manager)) -+ return 0; -+ - e = unit_name_from_path(what, ".device"); - if (!e) - return -ENOMEM; diff --git a/0146-update-done-ignore-nanosecond-file-timestamp-compone.patch b/0146-update-done-ignore-nanosecond-file-timestamp-compone.patch deleted file mode 100644 index 51115f9..0000000 --- a/0146-update-done-ignore-nanosecond-file-timestamp-compone.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 6cd7b4cf78462c45c2d255a9fbee3fbb5fb015e5 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 27 Apr 2015 17:25:57 +0200 -Subject: [PATCH] update-done: ignore nanosecond file timestamp components, - they are not reliable - -https://bugs.freedesktop.org/show_bug.cgi?id=90192 -(cherry picked from commit 329c542585cd92cb905990e3bf59eda16fd88cfb) ---- - src/update-done/update-done.c | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - -diff --git a/src/update-done/update-done.c b/src/update-done/update-done.c -index 561963e5eb..cb5cd6f4ab 100644 ---- a/src/update-done/update-done.c -+++ b/src/update-done/update-done.c -@@ -36,9 +36,15 @@ static int apply_timestamp(const char *path, struct timespec *ts) { - assert(ts); - - if (stat(path, &st) >= 0) { -- /* Is the timestamp file already newer than the OS? If so, there's nothing to do. */ -- if (st.st_mtim.tv_sec > ts->tv_sec || -- (st.st_mtim.tv_sec == ts->tv_sec && st.st_mtim.tv_nsec >= ts->tv_nsec)) -+ /* Is the timestamp file already newer than the OS? If -+ * so, there's nothing to do. We ignore the nanosecond -+ * component of the timestamp, since some file systems -+ * do not support any better accuracy than 1s and we -+ * have no way to identify the accuracy -+ * available. Most notably ext4 on small disks (where -+ * 128 byte inodes are used) does not support better -+ * accuracy than 1s. */ -+ if (st.st_mtim.tv_sec > ts->tv_sec) - return 0; - - /* It is older? Then let's update it */ diff --git a/0147-sd-daemon-simplify-sd_pid_notify_with_fds.patch b/0147-sd-daemon-simplify-sd_pid_notify_with_fds.patch deleted file mode 100644 index d497f4b..0000000 --- a/0147-sd-daemon-simplify-sd_pid_notify_with_fds.patch +++ /dev/null @@ -1,116 +0,0 @@ -From ed66f51061f2ce4d31838739c51f11276f97aaaf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Fri, 13 Mar 2015 21:22:05 -0500 -Subject: [PATCH] sd-daemon: simplify sd_pid_notify_with_fds - -Coverity was complaining that CMSG_NXTHDR is used without -checking the return value. In this case it cannot fail, but -it is a good excuse to simplify the function a bit. - -CID #1261726. - -(cherry picked from commit 64144440a5d2d94482f882b992fd2a4e0dca7a05) - -http://lists.freedesktop.org/archives/systemd-devel/2015-April/031348.html ---- - src/libsystemd/sd-daemon/sd-daemon.c | 61 ++++++++++++++++-------------------- - 1 file changed, 27 insertions(+), 34 deletions(-) - -diff --git a/src/libsystemd/sd-daemon/sd-daemon.c b/src/libsystemd/sd-daemon/sd-daemon.c -index 22a3a5347a..1474321c95 100644 ---- a/src/libsystemd/sd-daemon/sd-daemon.c -+++ b/src/libsystemd/sd-daemon/sd-daemon.c -@@ -352,12 +352,10 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char - .msg_iovlen = 1, - .msg_name = &sockaddr, - }; -- struct cmsghdr *control; - _cleanup_close_ int fd = -1; - struct cmsghdr *cmsg = NULL; - const char *e; -- size_t controllen_without_ucred = 0; -- bool try_without_ucred = false; -+ bool have_pid; - int r; - - if (!state) { -@@ -396,42 +394,37 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char - if (msghdr.msg_namelen > sizeof(struct sockaddr_un)) - msghdr.msg_namelen = sizeof(struct sockaddr_un); - -- control = alloca(CMSG_SPACE(sizeof(struct ucred)) + CMSG_SPACE(sizeof(int) * n_fds)); -+ have_pid = pid != 0 && pid != getpid(); - -- if (n_fds > 0) { -- msghdr.msg_control = control; -- msghdr.msg_controllen = CMSG_LEN(sizeof(int) * n_fds); -+ if (n_fds > 0 || have_pid) { -+ msghdr.msg_controllen = CMSG_SPACE(sizeof(int) * n_fds) + -+ CMSG_SPACE(sizeof(struct ucred) * have_pid); -+ msghdr.msg_control = alloca(msghdr.msg_controllen); - - cmsg = CMSG_FIRSTHDR(&msghdr); -- cmsg->cmsg_level = SOL_SOCKET; -- cmsg->cmsg_type = SCM_RIGHTS; -- cmsg->cmsg_len = CMSG_LEN(sizeof(int) * n_fds); -+ if (n_fds > 0) { -+ cmsg->cmsg_level = SOL_SOCKET; -+ cmsg->cmsg_type = SCM_RIGHTS; -+ cmsg->cmsg_len = CMSG_LEN(sizeof(int) * n_fds); - -- memcpy(CMSG_DATA(cmsg), fds, sizeof(int) * n_fds); -- } -- -- if (pid != 0 && pid != getpid()) { -- struct ucred *ucred; -- -- try_without_ucred = true; -- controllen_without_ucred = msghdr.msg_controllen; -+ memcpy(CMSG_DATA(cmsg), fds, sizeof(int) * n_fds); - -- msghdr.msg_control = control; -- msghdr.msg_controllen += CMSG_LEN(sizeof(struct ucred)); -+ if (have_pid) -+ assert_se(cmsg = CMSG_NXTHDR(&msghdr, cmsg)); -+ } - -- if (cmsg) -- cmsg = CMSG_NXTHDR(&msghdr, cmsg); -- else -- cmsg = CMSG_FIRSTHDR(&msghdr); -+ if (have_pid) { -+ struct ucred *ucred; - -- cmsg->cmsg_level = SOL_SOCKET; -- cmsg->cmsg_type = SCM_CREDENTIALS; -- cmsg->cmsg_len = CMSG_LEN(sizeof(struct ucred)); -+ cmsg->cmsg_level = SOL_SOCKET; -+ cmsg->cmsg_type = SCM_CREDENTIALS; -+ cmsg->cmsg_len = CMSG_LEN(sizeof(struct ucred)); - -- ucred = (struct ucred*) CMSG_DATA(cmsg); -- ucred->pid = pid; -- ucred->uid = getuid(); -- ucred->gid = getgid(); -+ ucred = (struct ucred*) CMSG_DATA(cmsg); -+ ucred->pid = pid; -+ ucred->uid = getuid(); -+ ucred->gid = getgid(); -+ } - } - - /* First try with fake ucred data, as requested */ -@@ -441,10 +434,10 @@ _public_ int sd_pid_notify_with_fds(pid_t pid, int unset_environment, const char - } - - /* If that failed, try with our own ucred instead */ -- if (try_without_ucred) { -- if (controllen_without_ucred <= 0) -+ if (have_pid) { -+ msghdr.msg_controllen -= CMSG_SPACE(sizeof(struct ucred)); -+ if (msghdr.msg_controllen == 0) - msghdr.msg_control = NULL; -- msghdr.msg_controllen = controllen_without_ucred; - - if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) >= 0) { - r = 1; diff --git a/0148-timedated-correctly-set-context-on-etc-localtime.patch b/0148-timedated-correctly-set-context-on-etc-localtime.patch deleted file mode 100644 index c106665..0000000 --- a/0148-timedated-correctly-set-context-on-etc-localtime.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 22eade6dd8422ba6d044c265f0620e3ebb900320 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Tue, 5 May 2015 16:35:34 -0400 -Subject: [PATCH] timedated: correctly set context on /etc/localtime - -https://bugzilla.redhat.com/show_bug.cgi?id=1190377 -(cherry picked from commit fad44453ec789f49529ea5244b2c2e4d5ad1d420) ---- - src/shared/label.c | 18 ++++++++++++++++++ - src/shared/label.h | 1 + - src/timedate/timedated.c | 4 +++- - 3 files changed, 22 insertions(+), 1 deletion(-) - -diff --git a/src/shared/label.c b/src/shared/label.c -index 82f10b21bd..7d0a6bc7ca 100644 ---- a/src/shared/label.c -+++ b/src/shared/label.c -@@ -78,3 +78,21 @@ int symlink_label(const char *old_path, const char *new_path) { - - return mac_smack_fix(new_path, false, false); - } -+ -+int symlink_label_atomic(const char *old_path, const char *new_path) { -+ int r; -+ -+ assert(old_path); -+ assert(new_path); -+ -+ r = mac_selinux_create_file_prepare(new_path, S_IFLNK); -+ if (r < 0) -+ return r; -+ -+ r = symlink_atomic(old_path, new_path); -+ mac_selinux_create_file_clear(); -+ if (r < 0) -+ return r; -+ -+ return mac_smack_fix(new_path, false, false); -+} -diff --git a/src/shared/label.h b/src/shared/label.h -index 8070bcb021..793596409b 100644 ---- a/src/shared/label.h -+++ b/src/shared/label.h -@@ -28,3 +28,4 @@ int label_fix(const char *path, bool ignore_enoent, bool ignore_erofs); - - int mkdir_label(const char *path, mode_t mode); - int symlink_label(const char *old_path, const char *new_path); -+int symlink_label_atomic(const char *old_path, const char *new_path); -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index f2d23f34b1..01ab9c98c7 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -34,6 +34,7 @@ - #include "clock-util.h" - #include "conf-files.h" - #include "path-util.h" -+#include "label.h" - #include "fileio-label.h" - #include "label.h" - #include "bus-util.h" -@@ -123,7 +124,8 @@ static int context_write_data_timezone(Context *c) { - if (!p) - return log_oom(); - -- r = symlink_atomic(p, "/etc/localtime"); -+ mac_selinux_init("/etc"); -+ r = symlink_label_atomic(p, "/etc/localtime"); - if (r < 0) - return r; - diff --git a/0149-Revert-timedated-correctly-set-context-on-etc-localt.patch b/0149-Revert-timedated-correctly-set-context-on-etc-localt.patch deleted file mode 100644 index 2eb395d..0000000 --- a/0149-Revert-timedated-correctly-set-context-on-etc-localt.patch +++ /dev/null @@ -1,71 +0,0 @@ -From c10fe187879d57c4e2290abc7e3f1017a39357f0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 20 May 2015 01:24:36 -0400 -Subject: [PATCH] Revert "timedated: correctly set context on /etc/localtime" - -This reverts commit 22eade6dd8422ba6d044c265f0620e3ebb900320. - -This commit was never supposed to be pushed. ---- - src/shared/label.c | 18 ------------------ - src/shared/label.h | 1 - - src/timedate/timedated.c | 4 +--- - 3 files changed, 1 insertion(+), 22 deletions(-) - -diff --git a/src/shared/label.c b/src/shared/label.c -index 7d0a6bc7ca..82f10b21bd 100644 ---- a/src/shared/label.c -+++ b/src/shared/label.c -@@ -78,21 +78,3 @@ int symlink_label(const char *old_path, const char *new_path) { - - return mac_smack_fix(new_path, false, false); - } -- --int symlink_label_atomic(const char *old_path, const char *new_path) { -- int r; -- -- assert(old_path); -- assert(new_path); -- -- r = mac_selinux_create_file_prepare(new_path, S_IFLNK); -- if (r < 0) -- return r; -- -- r = symlink_atomic(old_path, new_path); -- mac_selinux_create_file_clear(); -- if (r < 0) -- return r; -- -- return mac_smack_fix(new_path, false, false); --} -diff --git a/src/shared/label.h b/src/shared/label.h -index 793596409b..8070bcb021 100644 ---- a/src/shared/label.h -+++ b/src/shared/label.h -@@ -28,4 +28,3 @@ int label_fix(const char *path, bool ignore_enoent, bool ignore_erofs); - - int mkdir_label(const char *path, mode_t mode); - int symlink_label(const char *old_path, const char *new_path); --int symlink_label_atomic(const char *old_path, const char *new_path); -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index 01ab9c98c7..f2d23f34b1 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -34,7 +34,6 @@ - #include "clock-util.h" - #include "conf-files.h" - #include "path-util.h" --#include "label.h" - #include "fileio-label.h" - #include "label.h" - #include "bus-util.h" -@@ -124,8 +123,7 @@ static int context_write_data_timezone(Context *c) { - if (!p) - return log_oom(); - -- mac_selinux_init("/etc"); -- r = symlink_label_atomic(p, "/etc/localtime"); -+ r = symlink_atomic(p, "/etc/localtime"); - if (r < 0) - return r; - diff --git a/0150-run-synchronously-wait-until-the-scope-unit-we-creat.patch b/0150-run-synchronously-wait-until-the-scope-unit-we-creat.patch deleted file mode 100644 index f57f455..0000000 --- a/0150-run-synchronously-wait-until-the-scope-unit-we-creat.patch +++ /dev/null @@ -1,152 +0,0 @@ -From e083aeafc31469b302d14570b5c5eabfdea49098 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 28 Apr 2015 12:21:31 +0200 -Subject: [PATCH] run: synchronously wait until the scope unit we create is - started - -Otherwise it might happen that by the time PID 1 adds our process to the -scope unit the process might already have died, if the process is -short-running (such as an invocation to /bin/true). - -https://bugs.freedesktop.org/show_bug.cgi?id=86520 -(cherry picked from commit de158ed22db60e3a6654557fa4aa72f7248550af) ---- - src/libsystemd/sd-bus/bus-util.c | 10 ++++++++++ - src/libsystemd/sd-bus/bus-util.h | 1 + - src/run/run.c | 42 +++++++++++++++++++++++++++++++++------- - 3 files changed, 46 insertions(+), 7 deletions(-) - -diff --git a/src/libsystemd/sd-bus/bus-util.c b/src/libsystemd/sd-bus/bus-util.c -index 52d4ebe611..427f9a583d 100644 ---- a/src/libsystemd/sd-bus/bus-util.c -+++ b/src/libsystemd/sd-bus/bus-util.c -@@ -1785,6 +1785,16 @@ int bus_wait_for_jobs_add(BusWaitForJobs *d, const char *path) { - return set_put_strdup(d->jobs, path); - } - -+int bus_wait_for_jobs_one(BusWaitForJobs *d, const char *path, bool quiet) { -+ int r; -+ -+ r = bus_wait_for_jobs_add(d, path); -+ if (r < 0) -+ return log_oom(); -+ -+ return bus_wait_for_jobs(d, quiet); -+} -+ - int bus_deserialize_and_dump_unit_file_changes(sd_bus_message *m, bool quiet) { - const char *type, *path, *source; - int r; -diff --git a/src/libsystemd/sd-bus/bus-util.h b/src/libsystemd/sd-bus/bus-util.h -index e8a97cef9e..0dc4e699b1 100644 ---- a/src/libsystemd/sd-bus/bus-util.h -+++ b/src/libsystemd/sd-bus/bus-util.h -@@ -208,6 +208,7 @@ int bus_wait_for_jobs_new(sd_bus *bus, BusWaitForJobs **ret); - void bus_wait_for_jobs_free(BusWaitForJobs *d); - int bus_wait_for_jobs_add(BusWaitForJobs *d, const char *path); - int bus_wait_for_jobs(BusWaitForJobs *d, bool quiet); -+int bus_wait_for_jobs_one(BusWaitForJobs *d, const char *path, bool quiet); - - DEFINE_TRIVIAL_CLEANUP_FUNC(BusWaitForJobs*, bus_wait_for_jobs_free); - -diff --git a/src/run/run.c b/src/run/run.c -index 0661b3bee9..0b03d8e40d 100644 ---- a/src/run/run.c -+++ b/src/run/run.c -@@ -807,14 +807,20 @@ static int start_transient_scope( - char **argv) { - - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -+ _cleanup_bus_message_unref_ sd_bus_message *m = NULL, *reply = NULL; -+ _cleanup_(bus_wait_for_jobs_freep) BusWaitForJobs *w = NULL; - _cleanup_strv_free_ char **env = NULL, **user_env = NULL; -- _cleanup_bus_message_unref_ sd_bus_message *m = NULL; - _cleanup_free_ char *scope = NULL; -+ const char *object = NULL; - int r; - - assert(bus); - assert(argv); - -+ r = bus_wait_for_jobs_new(bus, &w); -+ if (r < 0) -+ return log_oom(); -+ - if (arg_unit) { - scope = unit_name_mangle_with_suffix(arg_unit, MANGLE_NOGLOB, ".scope"); - if (!scope) -@@ -855,7 +861,7 @@ static int start_transient_scope( - if (r < 0) - return bus_log_create_error(r); - -- r = sd_bus_call(bus, m, 0, &error, NULL); -+ r = sd_bus_call(bus, m, 0, &error, &reply); - if (r < 0) { - log_error("Failed to start transient scope unit: %s", bus_error_message(&error, -r)); - return r; -@@ -915,8 +921,16 @@ static int start_transient_scope( - if (!env) - return log_oom(); - -+ r = sd_bus_message_read(reply, "o", &object); -+ if (r < 0) -+ return bus_log_parse_error(r); -+ -+ r = bus_wait_for_jobs_one(w, object, arg_quiet); -+ if (r < 0) -+ return r; -+ - if (!arg_quiet) -- log_info("Running as unit %s.", scope); -+ log_info("Running scope as unit %s.", scope); - - execvpe(argv[0], argv, env); - -@@ -928,13 +942,19 @@ static int start_transient_timer( - char **argv) { - - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- _cleanup_bus_message_unref_ sd_bus_message *m = NULL; -+ _cleanup_bus_message_unref_ sd_bus_message *m = NULL, *reply = NULL; -+ _cleanup_(bus_wait_for_jobs_freep) BusWaitForJobs *w = NULL; - _cleanup_free_ char *timer = NULL, *service = NULL; -+ const char *object = NULL; - int r; - - assert(bus); - assert(argv); - -+ r = bus_wait_for_jobs_new(bus, &w); -+ if (r < 0) -+ return log_oom(); -+ - if (arg_unit) { - switch(unit_name_to_type(arg_unit)) { - -@@ -1035,15 +1055,23 @@ static int start_transient_timer( - if (r < 0) - return bus_log_create_error(r); - -- r = sd_bus_call(bus, m, 0, &error, NULL); -+ r = sd_bus_call(bus, m, 0, &error, &reply); - if (r < 0) { - log_error("Failed to start transient timer unit: %s", bus_error_message(&error, -r)); - return r; - } - -- log_info("Running as unit %s.", timer); -+ r = sd_bus_message_read(reply, "o", &object); -+ if (r < 0) -+ return bus_log_parse_error(r); -+ -+ r = bus_wait_for_jobs_one(w, object, arg_quiet); -+ if (r < 0) -+ return r; -+ -+ log_info("Running timer as unit %s.", timer); - if (argv[0]) -- log_info("Will run as unit %s.", service); -+ log_info("Will run service as unit %s.", service); - - return 0; - } diff --git a/0151-sysv-generator-test-Fix-assertion.patch b/0151-sysv-generator-test-Fix-assertion.patch deleted file mode 100644 index f6b021b..0000000 --- a/0151-sysv-generator-test-Fix-assertion.patch +++ /dev/null @@ -1,32 +0,0 @@ -From ca55eafbf7df19ef8726ea2086477efd11308d2b Mon Sep 17 00:00:00 2001 -From: Alberto Fanjul Alonso -Date: Tue, 28 Apr 2015 15:44:23 +0200 -Subject: [PATCH] sysv-generator test: Fix assertion - -(cherry picked from commit 230f04856647fcfb07d5658f4b8c1cb3557fa0d8) ---- - test/sysv-generator-test.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/test/sysv-generator-test.py b/test/sysv-generator-test.py -index 09f5c01762..509899e0a5 100644 ---- a/test/sysv-generator-test.py -+++ b/test/sysv-generator-test.py -@@ -323,7 +323,7 @@ class SysvGeneratorTest(unittest.TestCase): - self.add_sysv('foo.sh', {'Provides': 'foo bar'}) - err, results = self.run_generator() - # ensure we don't try to create a symlink to itself -- self.assertNotIn(err, 'itself') -+ self.assertNotIn('itself', err) - self.assertEqual(list(results), ['foo.service']) - self.assertEqual(results['foo.service'].get('Unit', 'Description'), - 'LSB: test foo service') -@@ -361,7 +361,7 @@ class SysvGeneratorTest(unittest.TestCase): - ['foo.bak.service', 'foo.old.service', 'foo.service']) - - # ensure we don't try to create a symlink to itself -- self.assertNotIn(err, 'itself') -+ self.assertNotIn('itself', err) - - self.assert_enabled('foo.service', [2, 3, 4, 5]) - self.assert_enabled('foo.bak.service', []) diff --git a/0152-man-avoid-line-break-in-url.patch b/0152-man-avoid-line-break-in-url.patch deleted file mode 100644 index 32fb010..0000000 --- a/0152-man-avoid-line-break-in-url.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 853f26c2820e6d1005201774a97d3014a5b02860 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Wed, 29 Apr 2015 12:04:16 +0200 -Subject: [PATCH] man: avoid line break in url - -(cherry picked from commit b53c3c2d24ed1398ee427139cd880b07bc35fa24) ---- - man/os-release.xml | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/man/os-release.xml b/man/os-release.xml -index 8f4ab10fed..4f57323d49 100644 ---- a/man/os-release.xml -+++ b/man/os-release.xml -@@ -104,8 +104,7 @@ - - For a longer rationale for os-release - please refer to the Announcement of -- /etc/os-release. -+ url="http://0pointer.de/blog/projects/os-release">Announcement of /etc/os-release. - - - diff --git a/0153-Add-VARIANT-as-a-standard-value-for-etc-os-release.patch b/0153-Add-VARIANT-as-a-standard-value-for-etc-os-release.patch deleted file mode 100644 index c6c62fa..0000000 --- a/0153-Add-VARIANT-as-a-standard-value-for-etc-os-release.patch +++ /dev/null @@ -1,72 +0,0 @@ -From c2f347ff929d790d35187b81adb41c5a92d32b12 Mon Sep 17 00:00:00 2001 -From: Stephen Gallagher -Date: Wed, 29 Apr 2015 08:19:05 -0400 -Subject: [PATCH] Add VARIANT as a standard value for /etc/os-release - -Some distributions (such as Fedora) are using the VARIANT field to -indicate to select packages which of several default configurations -they should be using. For example, VARIANT=Server provides a -different default firewall configuration (blocking basically -everything but SSH and the management console) whereas -VARIANT=Workstation opens many other ports for application -compatibility. - -By adding this patch to the manual pages, we can standardize on a -cross-distribution mechanism for accomplishing this. - -Fedora implementation details are available at -https://fedoraproject.org/wiki/Packaging:Per-Product_Configuration - -(David: drop double paranthesis) - -(cherry picked from commit be7d0048ddda1e994f651e2825f96266d537d10d) ---- - man/os-release.xml | 35 +++++++++++++++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - -diff --git a/man/os-release.xml b/man/os-release.xml -index 4f57323d49..4ca2e59706 100644 ---- a/man/os-release.xml -+++ b/man/os-release.xml -@@ -273,6 +273,41 @@ - - - -+ -+ VARIANT= -+ -+ -+ A string identifying a specific variant or edition of the -+ operating system suitable for presentation to the user. This -+ field may be used to inform the user that the configuration of -+ this system is subject to a specific divergent set of rules or -+ default configuration settings. This field is optional and may -+ not be implemented on all systems. -+ Examples: -+ VARIANT="Server Edition", -+ VARIANT="Smart Refrigerator Edition" -+ Note: this field is for display purposes only. The -+ VARIANT_ID field should be used for making -+ programmatic decisions. -+ -+ -+ -+ -+ VARIANT_ID= -+ -+ -+ A lower-case string (no spaces or other characters outside of -+ 0-9, a-z, ".", "_" and "-"), identifying a specific variant or -+ edition of the operating system. This may be interpreted by -+ other packages in order to determine a divergent default -+ configuration. This field is optional and may not be -+ implemented on all systems. -+ Examples: -+ VARIANT_ID=server, -+ VARIANT_ID=embedded -+ -+ -+ - - - If you are reading this file from C code or a shell script diff --git a/0154-Fix-permissions-on-run-systemd-nspawn-locks.patch b/0154-Fix-permissions-on-run-systemd-nspawn-locks.patch deleted file mode 100644 index 017dbe4..0000000 --- a/0154-Fix-permissions-on-run-systemd-nspawn-locks.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 185aa53dbf2dc882940487b35fae6dccd5097466 Mon Sep 17 00:00:00 2001 -From: Seth Jennings -Date: Tue, 5 May 2015 13:31:01 -0500 -Subject: [PATCH] Fix permissions on /run/systemd/nspawn/locks - -machined is getting an EACCES when trying to create the lock file for -images because the mode on /run/systemd/nspawn/locks is 0600. - -mkdir("/run/systemd/nspawn/locks", 0600) = -1 EEXIST (File exists) -stat("/run/systemd/nspawn/locks", {st_mode=S_IFDIR|0600, st_size=40, ...}) = 0 -open("/run/systemd/nspawn/locks/inode-41:256", O_RDWR|O_CREAT|O_NOCTTY|O_NOFOLLOW|O_CLOEXEC, 0600) = -1 EACCES (Permission denied) - -This commit adjusts the mode to 0700 to correct the issue. - -(cherry picked from commit 7e7cddb22493642dad826ec42ac00979f40b2d17) ---- - src/shared/machine-image.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/shared/machine-image.c b/src/shared/machine-image.c -index 8d61507e84..c02ee814c4 100644 ---- a/src/shared/machine-image.c -+++ b/src/shared/machine-image.c -@@ -601,7 +601,7 @@ int image_path_lock(const char *path, int operation, LockFile *global, LockFile - return r; - - if (p) { -- mkdir_p("/run/systemd/nspawn/locks", 0600); -+ mkdir_p("/run/systemd/nspawn/locks", 0700); - - r = make_lock_file(p, operation, global); - if (r < 0) { -@@ -628,7 +628,7 @@ int image_name_lock(const char *name, int operation, LockFile *ret) { - if (streq(name, ".host")) - return -EBUSY; - -- mkdir_p("/run/systemd/nspawn/locks", 0600); -+ mkdir_p("/run/systemd/nspawn/locks", 0700); - p = strjoina("/run/systemd/nspawn/locks/name-", name); - - return make_lock_file(p, operation, ret); diff --git a/0155-man-document-forwarding-to-syslog-better.patch b/0155-man-document-forwarding-to-syslog-better.patch deleted file mode 100644 index fd8834d..0000000 --- a/0155-man-document-forwarding-to-syslog-better.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 9d311192671afe6d11e8514b4198a70c23f42457 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 9 May 2015 16:20:51 -0500 -Subject: [PATCH] man: document forwarding to syslog better - -https://bugzilla.redhat.com/show_bug.cgi?id=1147651 -(cherry picked from commit 589532d0c61ecd667b0c840ec25faed076f2291e) ---- - man/journald.conf.xml | 70 ++++++++++++++++++++++++++++++++------------------- - 1 file changed, 44 insertions(+), 26 deletions(-) - -diff --git a/man/journald.conf.xml b/man/journald.conf.xml -index 85146b0d82..abfe3130dd 100644 ---- a/man/journald.conf.xml -+++ b/man/journald.conf.xml -@@ -97,7 +97,7 @@ - needed, so that its existence controls where log data goes. - none turns off all storage, all log data - received will be dropped. Forwarding to other targets, such as -- the console, the kernel log buffer or a syslog daemon will -+ the console, the kernel log buffer, or a syslog socket will - still work however. Defaults to - auto. - -@@ -220,27 +220,19 @@ - journald will stop using more space, but it will not be - removing existing files to go reduce footprint either. - -- SystemMaxFileSize= -- and -- RuntimeMaxFileSize= -- control how large individual journal -- files may grow at maximum. This -- influences the granularity in which -- disk space is made available through -- rotation, i.e. deletion of historic -- data. Defaults to one eighth of the -- values configured with -+ SystemMaxFileSize= and -+ RuntimeMaxFileSize= control how large -+ individual journal files may grow at maximum. This influences -+ the granularity in which disk space is made available through -+ rotation, i.e. deletion of historic data. Defaults to one -+ eighth of the values configured with - SystemMaxUse= and -- RuntimeMaxUse=, so -- that usually seven rotated journal -- files are kept as history. Specify -- values in bytes or use K, M, G, T, P, -- E as units for the specified sizes -- (equal to 1024, 1024²,... bytes). -- Note that size limits are enforced -- synchronously when journal files are -- extended, and no explicit rotation -- step triggered by time is -+ RuntimeMaxUse=, so that usually seven -+ rotated journal files are kept as history. Specify values in -+ bytes or use K, M, G, T, P, E as units for the specified sizes -+ (equal to 1024, 1024²,... bytes). Note that size limits are -+ enforced synchronously when journal files are extended, and no -+ explicit rotation step triggered by time is - needed. - - -@@ -308,13 +300,13 @@ - daemon, to the kernel log buffer (kmsg), to the system - console, or sent as wall messages to all logged-in users. - These options take boolean arguments. If forwarding to syslog -- is enabled but no syslog daemon is running, the respective -- option has no effect. By default, only forwarding wall is -- enabled. These settings may be overridden at boot time with -- the kernel command line options -+ is enabled but nothing reads messages from the socket, -+ forwarding to syslog has no effect. By default, only -+ forwarding to wall is enabled. These settings may be -+ overridden at boot time with the kernel command line options - systemd.journald.forward_to_syslog=, - systemd.journald.forward_to_kmsg=, -- systemd.journald.forward_to_console= and -+ systemd.journald.forward_to_console=, and - systemd.journald.forward_to_wall=. When - forwarding to the console, the TTY to log to can be changed - with TTYPath=, described -@@ -366,6 +358,32 @@ - - - -+ Forwarding to traditional syslog daemons -+ -+ -+ Journal events can be transfered to a different logging daemon -+ in two different ways. In the first method, messages are -+ immediately forwarded to a socket -+ (/run/systemd/journal/syslog), where the -+ traditional syslog daemon can read them. This method is -+ controlled by ForwardToSyslog= option. In a -+ second method, a syslog daemon behaves like a normal journal -+ client, and reads messages from the journal files, similarly to -+ journalctl1. -+ In this method, messages do not have to be read immediately, -+ which allows a logging daemon which is only started late in boot -+ to access all messages since the start of the system. In -+ addition, full structured meta-data is available to it. This -+ method of course is available only if the messages are stored in -+ a journal file at all. So it will work if -+ Storage=none is set. It should be noted that -+ usualy the second method is used by syslog -+ daemons, so the Storage= option, and not the -+ ForwardToSyslog= option, is relevant for them. -+ -+ -+ -+ - See Also - - systemd1, diff --git a/0156-man-fix-typos-in-previous-comimt.patch b/0156-man-fix-typos-in-previous-comimt.patch deleted file mode 100644 index 81828df..0000000 --- a/0156-man-fix-typos-in-previous-comimt.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 34f57ebc813dc576afb3d2f12fa6a26e7978ce3c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 9 May 2015 19:46:15 -0400 -Subject: [PATCH] man: fix typos in previous comimt - -(cherry picked from commit 7703bd4d2874a6becc2be60e284c4a547c28320b) ---- - man/journald.conf.xml | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/man/journald.conf.xml b/man/journald.conf.xml -index abfe3130dd..2cbe58bc15 100644 ---- a/man/journald.conf.xml -+++ b/man/journald.conf.xml -@@ -361,7 +361,7 @@ - Forwarding to traditional syslog daemons - - -- Journal events can be transfered to a different logging daemon -+ Journal events can be transferred to a different logging daemon - in two different ways. In the first method, messages are - immediately forwarded to a socket - (/run/systemd/journal/syslog), where the -@@ -375,9 +375,9 @@ - to access all messages since the start of the system. In - addition, full structured meta-data is available to it. This - method of course is available only if the messages are stored in -- a journal file at all. So it will work if -+ a journal file at all. So it will not work if - Storage=none is set. It should be noted that -- usualy the second method is used by syslog -+ usually the second method is used by syslog - daemons, so the Storage= option, and not the - ForwardToSyslog= option, is relevant for them. - diff --git a/0157-generators-rename-add_-root-usr-_mount-to-add_-sysro.patch b/0157-generators-rename-add_-root-usr-_mount-to-add_-sysro.patch deleted file mode 100644 index f35c5d9..0000000 --- a/0157-generators-rename-add_-root-usr-_mount-to-add_-sysro.patch +++ /dev/null @@ -1,160 +0,0 @@ -From 312596e3f42fd488b652c6234d085c32459e4552 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Sat, 2 May 2015 12:01:29 -0500 -Subject: [PATCH] generators: rename add_{root,usr}_mount to - add_{sysroot,sysroot_usr}_mount - -This makes it obvious that those functions are only usable in the -initramfs. - -Also, add a warning when noauto, nofail, or automount is used for the -root fs, instead of silently ignoring. Using those options would be a -sign of significant misconfiguration, and if we bother to check for -them, than let's go all the way and complain. - -Other various small cleanups and reformattings elsewhere. - -(cherry picked from commit 2e8522767e27d5686206794c69e0aa95da6e798b) ---- - src/fstab-generator/fstab-generator.c | 20 ++++++++++++-------- - src/shared/generator.c | 21 ++++++++++++--------- - src/shared/generator.h | 17 +++++++++++++---- - 3 files changed, 37 insertions(+), 21 deletions(-) - -diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c -index 8e2f522bd0..9fa2d860df 100644 ---- a/src/fstab-generator/fstab-generator.c -+++ b/src/fstab-generator/fstab-generator.c -@@ -192,10 +192,14 @@ static int add_mount( - return 0; - - if (path_equal(where, "/")) { -- /* The root disk is not an option */ -- automount = false; -- noauto = false; -- nofail = false; -+ if (noauto) -+ log_warning("Ignoring \"noauto\" for root device"); -+ if (nofail) -+ log_warning("Ignoring \"nofail\" for root device"); -+ if (automount) -+ log_warning("Ignoring automount option for root device"); -+ -+ noauto = nofail = automount = false; - } - - name = unit_name_from_path(where, ".mount"); -@@ -394,7 +398,7 @@ static int parse_fstab(bool initrd) { - return r; - } - --static int add_root_mount(void) { -+static int add_sysroot_mount(void) { - _cleanup_free_ char *what = NULL; - const char *opts; - -@@ -430,7 +434,7 @@ static int add_root_mount(void) { - "/proc/cmdline"); - } - --static int add_usr_mount(void) { -+static int add_sysroot_usr_mount(void) { - _cleanup_free_ char *what = NULL; - const char *opts; - -@@ -577,9 +581,9 @@ int main(int argc, char *argv[]) { - - /* Always honour root= and usr= in the kernel command line if we are in an initrd */ - if (in_initrd()) { -- r = add_root_mount(); -+ r = add_sysroot_mount(); - if (r == 0) -- r = add_usr_mount(); -+ r = add_sysroot_usr_mount(); - } - - /* Honour /etc/fstab only when that's enabled */ -diff --git a/src/shared/generator.c b/src/shared/generator.c -index 7f16d5cbef..cd37812f86 100644 ---- a/src/shared/generator.c -+++ b/src/shared/generator.c -@@ -33,13 +33,13 @@ - - int generator_write_fsck_deps( - FILE *f, -- const char *dest, -+ const char *dir, - const char *what, - const char *where, - const char *fstype) { - - assert(f); -- assert(dest); -+ assert(dir); - assert(what); - assert(where); - -@@ -59,10 +59,10 @@ int generator_write_fsck_deps( - return log_warning_errno(r, "Checking was requested for %s, but fsck.%s cannot be used: %m", what, fstype); - } - -- if (streq(where, "/")) { -+ if (path_equal(where, "/")) { - char *lnk; - -- lnk = strjoina(dest, "/" SPECIAL_LOCAL_FS_TARGET ".wants/systemd-fsck-root.service"); -+ lnk = strjoina(dir, "/" SPECIAL_LOCAL_FS_TARGET ".wants/systemd-fsck-root.service"); - - mkdir_parents(lnk, 0755); - if (symlink(SYSTEM_DATA_UNIT_PATH "/systemd-fsck-root.service", lnk) < 0) -@@ -76,17 +76,20 @@ int generator_write_fsck_deps( - return log_oom(); - - fprintf(f, -- "RequiresOverridable=%s\n" -- "After=%s\n", -- fsck, -+ "RequiresOverridable=%1$s\n" -+ "After=%1$s\n", - fsck); - } - - return 0; - } - --int generator_write_timeouts(const char *dir, const char *what, const char *where, -- const char *opts, char **filtered) { -+int generator_write_timeouts( -+ const char *dir, -+ const char *what, -+ const char *where, -+ const char *opts, -+ char **filtered) { - - /* Allow configuration how long we wait for a device that - * backs a mount point to show up. This is useful to support -diff --git a/src/shared/generator.h b/src/shared/generator.h -index 64bd28f596..6c3f38abba 100644 ---- a/src/shared/generator.h -+++ b/src/shared/generator.h -@@ -23,7 +23,16 @@ - - #include - --int generator_write_fsck_deps(FILE *f, const char *dest, const char *what, const char *where, const char *type); -- --int generator_write_timeouts(const char *dir, const char *what, const char *where, -- const char *opts, char **filtered); -+int generator_write_fsck_deps( -+ FILE *f, -+ const char *dir, -+ const char *what, -+ const char *where, -+ const char *type); -+ -+int generator_write_timeouts( -+ const char *dir, -+ const char *what, -+ const char *where, -+ const char *opts, -+ char **filtered); diff --git a/0158-Generate-systemd-fsck-root.service-in-the-initramfs.patch b/0158-Generate-systemd-fsck-root.service-in-the-initramfs.patch deleted file mode 100644 index 9602375..0000000 --- a/0158-Generate-systemd-fsck-root.service-in-the-initramfs.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 754ba6bd338a15a698a3152e8fbecbc20d09afec Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= -Date: Wed, 6 May 2015 01:09:53 -0400 -Subject: [PATCH] Generate systemd-fsck-root.service in the initramfs - -In the initrafms, generate a systemd-fsck-root.service to replace -systemd-fsck@.service. This way, after we transition -to the real root, systemd-fsck-root.service is marked as already done. - -This introduces an unnecessary synchronization point, because -systemd-fsck@* is ordered after systemd-fsck-root also in the -initramfs. In practice this shouldn't be a problem. - -https://bugzilla.redhat.com/show_bug.cgi?id=1201979 - -C.f. 956eaf2b8d6c9999024705ddadc7393bc707de02. - -(cherry picked from commit 4dda4e637e4c17a14db6cd265f36f5e8a5050367) ---- - src/shared/generator.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++---- - 1 file changed, 59 insertions(+), 4 deletions(-) - -diff --git a/src/shared/generator.c b/src/shared/generator.c -index cd37812f86..148a0b077b 100644 ---- a/src/shared/generator.c -+++ b/src/shared/generator.c -@@ -29,8 +29,51 @@ - #include "generator.h" - #include "path-util.h" - #include "fstab-util.h" -+#include "fileio.h" - #include "dropin.h" - -+static int write_fsck_sysroot_service(const char *dir, const char *what) { -+ const char *unit; -+ _cleanup_free_ char *device = NULL; -+ _cleanup_fclose_ FILE *f = NULL; -+ -+ unit = strjoina(dir, "/systemd-fsck-root.service"); -+ log_debug("Creating %s", unit); -+ -+ device = unit_name_from_path(what, ".device"); -+ if (!device) -+ return log_oom(); -+ -+ f = fopen(unit, "wxe"); -+ if (!f) -+ return log_error_errno(errno, "Failed to create unit file %s: %m", unit); -+ -+ fprintf(f, -+ "# Automatically generated by %1$s\n\n" -+ "[Unit]\n" -+ "Documentation=man:systemd-fsck-root.service(8)\n" -+ "Description=File System Check on %2$s\n" -+ "DefaultDependencies=no\n" -+ "BindsTo=%3$s\n" -+ "After=%3$s\n" -+ "Before=shutdown.target\n" -+ "\n" -+ "[Service]\n" -+ "Type=oneshot\n" -+ "RemainAfterExit=yes\n" -+ "ExecStart=/usr/lib/systemd/systemd-fsck %2$s\n" -+ "TimeoutSec=0\n", -+ program_invocation_short_name, -+ what, -+ device); -+ -+ fflush(f); -+ if (ferror(f)) -+ return log_error_errno(errno, "Failed to write unit file %s: %m", unit); -+ -+ return 0; -+} -+ - int generator_write_fsck_deps( - FILE *f, - const char *dir, -@@ -69,11 +112,23 @@ int generator_write_fsck_deps( - return log_error_errno(errno, "Failed to create symlink %s: %m", lnk); - - } else { -- _cleanup_free_ char *fsck = NULL; -+ _cleanup_free_ char *_fsck = NULL; -+ const char *fsck; -+ int r; -+ -+ if (in_initrd() && path_equal(where, "/sysroot")) { -+ r = write_fsck_sysroot_service(dir, what); -+ if (r < 0) -+ return r; -+ -+ fsck = "systemd-fsck-root.service"; -+ } else { -+ _fsck = unit_name_from_path_instance("systemd-fsck", what, ".service"); -+ if (!_fsck) -+ return log_oom(); - -- fsck = unit_name_from_path_instance("systemd-fsck", what, ".service"); -- if (!fsck) -- return log_oom(); -+ fsck = _fsck; -+ } - - fprintf(f, - "RequiresOverridable=%1$s\n" diff --git a/0159-units-fix-typo-in-systemd-resolved.service.patch b/0159-units-fix-typo-in-systemd-resolved.service.patch deleted file mode 100644 index 9e12ff4..0000000 --- a/0159-units-fix-typo-in-systemd-resolved.service.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 225d44db2d85b493d36bc159945191cc36a3fa21 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Thu, 14 May 2015 22:32:35 +0200 -Subject: [PATCH] units: fix typo in systemd-resolved.service -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There's no network.service unit, we actually mean network.target here. - -Reported by Fco. Eduardo Ramírez. - -(cherry picked from commit 1dff3202941786dd00060f078f6b031efe52d3c3) ---- - units/systemd-resolved.service.m4.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/units/systemd-resolved.service.m4.in b/units/systemd-resolved.service.m4.in -index d133847d5e..98ae564af6 100644 ---- a/units/systemd-resolved.service.m4.in -+++ b/units/systemd-resolved.service.m4.in -@@ -8,7 +8,7 @@ - [Unit] - Description=Network Name Resolution - Documentation=man:systemd-resolved.service(8) --After=systemd-networkd.service network.service -+After=systemd-networkd.service network.target - - m4_ifdef(`ENABLE_KDBUS', - # On kdbus systems we pull in the busname explicitly, because it diff --git a/0160-core-don-t-consider-umask-for-SocketMode.patch b/0160-core-don-t-consider-umask-for-SocketMode.patch deleted file mode 100644 index 8d32339..0000000 --- a/0160-core-don-t-consider-umask-for-SocketMode.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 426edae354b8ac159eedbf01d7d8b3933c3b96ca Mon Sep 17 00:00:00 2001 -From: Davide Bettio -Date: Fri, 15 May 2015 16:36:28 +0200 -Subject: [PATCH] core: don't consider umask for SocketMode= - -https://bugs.freedesktop.org/show_bug.cgi?id=89248 -(cherry picked from commit a2c7f25aec23b6d74ff5cf169e38159754e6dfe8) ---- - src/shared/socket-label.c | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/src/shared/socket-label.c b/src/shared/socket-label.c -index 6806c51158..a6289eb50f 100644 ---- a/src/shared/socket-label.c -+++ b/src/shared/socket-label.c -@@ -117,9 +117,6 @@ int socket_address_listen( - /* Enforce the right access mode for the socket */ - old_mask = umask(~ socket_mode); - -- /* Include the original umask in our mask */ -- umask(~socket_mode | old_mask); -- - r = mac_selinux_bind(fd, &a->sockaddr.sa, a->size); - - if (r < 0 && errno == EADDRINUSE) { diff --git a/0161-timedate-fix-memory-leak-in-timedated.patch b/0161-timedate-fix-memory-leak-in-timedated.patch deleted file mode 100644 index cc9fed1..0000000 --- a/0161-timedate-fix-memory-leak-in-timedated.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 41c7bce9cde89f981b7e82e5a0d5e49e321088fa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= -Date: Fri, 15 May 2015 13:26:18 -0300 -Subject: [PATCH] timedate: fix memory leak in timedated - -$ /usr/lib/systemd/systemd-timedated (wait until auto-exit) - -================================================================= -==396==ERROR: LeakSanitizer: detected memory leaks - -Direct leak of 928 byte(s) in 1 object(s) allocated from: - #0 0x7f782f788db1 in __interceptor_calloc (/usr/lib64/libasan.so.2+0x96db1) - #1 0x562a83ae60cf in bus_message_from_header src/libsystemd/sd-bus/bus-message.c:480 - #2 0x562a83ae6f5a in bus_message_from_malloc src/libsystemd/sd-bus/bus-message.c:576 - #3 0x562a83ad3cad in bus_socket_make_message src/libsystemd/sd-bus/bus-socket.c:915 - #4 0x562a83ad4cfc in bus_socket_read_message src/libsystemd/sd-bus/bus-socket.c:1051 - #5 0x562a83ab733f in bus_read_message src/libsystemd/sd-bus/sd-bus.c:1647 - #6 0x562a83ab98ea in sd_bus_call src/libsystemd/sd-bus/sd-bus.c:2038 - #7 0x562a83b1f46d in sd_bus_call_method src/libsystemd/sd-bus/bus-convenience.c:94 - #8 0x562a83aab3e1 in context_read_ntp src/timedate/timedated.c:192 - #9 0x562a83aae1af in main src/timedate/timedated.c:730 - #10 0x7f782eb238c4 in __libc_start_main (/lib64/libc.so.6+0x208c4) - -Indirect leak of 77 byte(s) in 1 object(s) allocated from: - #0 0x7f782f788f6a in realloc (/usr/lib64/libasan.so.2+0x96f6a) - #1 0x562a83ad418a in bus_socket_read_message src/libsystemd/sd-bus/bus-socket.c:963 - #2 0x562a83ab733f in bus_read_message src/libsystemd/sd-bus/sd-bus.c:1647 - #3 0x562a83ab98ea in sd_bus_call src/libsystemd/sd-bus/sd-bus.c:2038 - #4 0x562a83b1f46d in sd_bus_call_method src/libsystemd/sd-bus/bus-convenience.c:94 - #5 0x562a83aab3e1 in context_read_ntp src/timedate/timedated.c:192 - #6 0x562a83aae1af in main src/timedate/timedated.c:730 - #7 0x7f782eb238c4 in __libc_start_main (/lib64/libc.so.6+0x208c4) - -Indirect leak of 2 byte(s) in 1 object(s) allocated from: - #0 0x7f782f75493f in strdup (/usr/lib64/libasan.so.2+0x6293f) - #1 0x562a83b0229b in bus_message_parse_fields src/libsystemd/sd-bus/bus-message.c:5382 - #2 0x562a83ae7290 in bus_message_from_malloc src/libsystemd/sd-bus/bus-message.c:601 - #3 0x562a83ad3cad in bus_socket_make_message src/libsystemd/sd-bus/bus-socket.c:915 - #4 0x562a83ad4cfc in bus_socket_read_message src/libsystemd/sd-bus/bus-socket.c:1051 - #5 0x562a83ab733f in bus_read_message src/libsystemd/sd-bus/sd-bus.c:1647 - #6 0x562a83ab98ea in sd_bus_call src/libsystemd/sd-bus/sd-bus.c:2038 - #7 0x562a83b1f46d in sd_bus_call_method src/libsystemd/sd-bus/bus-convenience.c:94 - #8 0x562a83aab3e1 in context_read_ntp src/timedate/timedated.c:192 - #9 0x562a83aae1af in main src/timedate/timedated.c:730 - #10 0x7f782eb238c4 in __libc_start_main (/lib64/libc.so.6+0x208c4) - -SUMMARY: AddressSanitizer: 1007 byte(s) leaked in 3 allocation(s). - -This is due to missing _cleanup_bus_message_unref_ in context_read_ntp() - -(cherry picked from commit 6b71bab08dc6c92156263daba0e969313eed1323) ---- - src/timedate/timedated.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c -index f2d23f34b1..5ea6e654dc 100644 ---- a/src/timedate/timedated.c -+++ b/src/timedate/timedated.c -@@ -188,7 +188,7 @@ static int context_write_data_local_rtc(Context *c) { - - static int context_read_ntp(Context *c, sd_bus *bus) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; -- sd_bus_message *reply = NULL; -+ _cleanup_bus_message_unref_ sd_bus_message *reply = NULL; - const char *s; - int r; - diff --git a/0162-core-Fix-assertion-with-empty-Exec-paths.patch b/0162-core-Fix-assertion-with-empty-Exec-paths.patch deleted file mode 100644 index 4314dc3..0000000 --- a/0162-core-Fix-assertion-with-empty-Exec-paths.patch +++ /dev/null @@ -1,76 +0,0 @@ -From f7981f669621f3873c2182cac08a39086acf3a84 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Thu, 14 May 2015 09:06:40 +0200 -Subject: [PATCH] core: Fix assertion with empty Exec*= paths - -An Exec*= line with whitespace after modifiers, like - - ExecStart=- /bin/true - -is considered to have an empty command path. This is as specified, but causes -systemd to crash with - - Assertion 'skip < l' failed at ../src/core/load-fragment.c:607, function config_parse_exec(). Aborting. - Aborted (core dumped) - -Fix this by logging an error instead and ignoring the invalid line. - -Add corresponding test cases. Also add a test case for a completely empty value -which resets the command list. - -https://launchpad.net/bugs/1454173 -(cherry picked from commit 35b1078e1c375df244e19961792aeb78ca34bb54) ---- - src/core/load-fragment.c | 6 +++++- - src/test/test-unit-file.c | 21 +++++++++++++++++++++ - 2 files changed, 26 insertions(+), 1 deletion(-) - -diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c -index f17a82fcdf..ec4cf4eefa 100644 ---- a/src/core/load-fragment.c -+++ b/src/core/load-fragment.c -@@ -604,7 +604,11 @@ int config_parse_exec(const char *unit, - skip = separate_argv0 + ignore; - - /* skip special chars in the beginning */ -- assert(skip < l); -+ if (l <= skip) { -+ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Empty path in command line, ignoring: %s", rvalue); -+ r = 0; -+ goto fail; -+ } - - } else if (strneq(word, ";", MAX(l, 1U))) - /* new commandline */ -diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c -index 9f3e3a227e..5500983322 100644 ---- a/src/test/test-unit-file.c -+++ b/src/test/test-unit-file.c -@@ -318,6 +318,27 @@ static void test_config_parse_exec(void) { - assert_se(r == 0); - assert_se(c1->command_next == NULL); - -+ log_info("/* invalid space between modifiers */"); -+ r = config_parse_exec(NULL, "fake", 4, "section", 1, -+ "LValue", 0, "- /path", -+ &c, NULL); -+ assert_se(r == 0); -+ assert_se(c1->command_next == NULL); -+ -+ log_info("/* only modifiers, no path */"); -+ r = config_parse_exec(NULL, "fake", 4, "section", 1, -+ "LValue", 0, "-", -+ &c, NULL); -+ assert_se(r == 0); -+ assert_se(c1->command_next == NULL); -+ -+ log_info("/* empty argument, reset */"); -+ r = config_parse_exec(NULL, "fake", 4, "section", 1, -+ "LValue", 0, "", -+ &c, NULL); -+ assert_se(r == 0); -+ assert_se(c == NULL); -+ - exec_command_free_list(c); - } - diff --git a/0163-coredump-make-sure-we-vacuum-by-default.patch b/0163-coredump-make-sure-we-vacuum-by-default.patch deleted file mode 100644 index bcf16f2..0000000 --- a/0163-coredump-make-sure-we-vacuum-by-default.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 705313fc28f30ba3535d190ecb7ded21f66cc870 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 15 May 2015 20:56:55 +0200 -Subject: [PATCH] coredump: make sure we vacuum by default - -Only if both keep_free and max_use are actually 0 we can shortcut things -and avoid vacuuming. If either are positive or -1 we need to execute the -vacuuming. - -http://lists.freedesktop.org/archives/systemd-devel/2015-April/031382.html -(cherry picked from commit 5470c03b37d8421a903564c2c8028c8b8d67d403) ---- - man/coredump.conf.xml | 4 +++- - src/journal/coredump-vacuum.c | 5 ++--- - 2 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/man/coredump.conf.xml b/man/coredump.conf.xml -index 0b7329bf55..fd54c59e6b 100644 ---- a/man/coredump.conf.xml -+++ b/man/coredump.conf.xml -@@ -134,7 +134,9 @@ - by coredumps might temporarily exceed these limits while - coredumps are processed. Note that old coredumps are also - removed based on time via -- systemd-tmpfiles8. -+ systemd-tmpfiles8. Set -+ either value to 0 to turn off size based -+ clean-up. - - - -diff --git a/src/journal/coredump-vacuum.c b/src/journal/coredump-vacuum.c -index 9b73795e5b..c0347ef569 100644 ---- a/src/journal/coredump-vacuum.c -+++ b/src/journal/coredump-vacuum.c -@@ -103,8 +103,7 @@ static bool vacuum_necessary(int fd, off_t sum, off_t keep_free, off_t max_use) - - if (max_use < DEFAULT_MAX_USE_LOWER) - max_use = DEFAULT_MAX_USE_LOWER; -- } -- else -+ } else - max_use = DEFAULT_MAX_USE_LOWER; - } else - max_use = PAGE_ALIGN(max_use); -@@ -135,7 +134,7 @@ int coredump_vacuum(int exclude_fd, off_t keep_free, off_t max_use) { - struct stat exclude_st; - int r; - -- if (keep_free <= 0 && max_use <= 0) -+ if (keep_free == 0 && max_use == 0) - return 0; - - if (exclude_fd >= 0) { diff --git a/0164-tmpfiles-don-t-fail-if-we-cannot-create-a-subvolume-.patch b/0164-tmpfiles-don-t-fail-if-we-cannot-create-a-subvolume-.patch deleted file mode 100644 index ec62d9c..0000000 --- a/0164-tmpfiles-don-t-fail-if-we-cannot-create-a-subvolume-.patch +++ /dev/null @@ -1,48 +0,0 @@ -From b505f6560ea203ff1440da4d2b653b839e621aba Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Fri, 15 May 2015 21:47:22 +0200 -Subject: [PATCH] tmpfiles: don't fail if we cannot create a subvolume because - a file system is read-only but a dir already exists anyway - -https://bugs.freedesktop.org/show_bug.cgi?id=90281 -(cherry picked from commit 7b135a73999b6911ebb85c053b6f7701fdac1883) ---- - src/tmpfiles/tmpfiles.c | 17 +++++++++++------ - 1 file changed, 11 insertions(+), 6 deletions(-) - -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index 73a9c9d5b6..d0e6567d8a 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -1002,20 +1002,25 @@ static int create_item(Item *i) { - r = mkdir_label(i->path, i->mode); - - if (r < 0) { -- if (r != -EEXIST) -- return log_error_errno(r, "Failed to create directory or subvolume \"%s\": %m", i->path); -+ int k; - -- if (stat(i->path, &st) < 0) -- return log_error_errno(errno, "stat(%s) failed: %m", i->path); -+ if (r != -EEXIST && r != -EROFS) -+ return log_error_errno(r, "Failed to create directory or subvolume \"%s\": %m", i->path); - -- if (!S_ISDIR(st.st_mode)) { -- log_debug("\"%s\" already exists and is not a directory.", i->path); -+ k = is_dir(i->path, false); -+ if (k == -ENOENT && r == -EROFS) -+ return log_error_errno(r, "%s does not exist and cannot be created as the file system is read-only.", i->path); -+ if (k < 0) -+ return log_error_errno(k, "Failed to check if %s exists: %m", i->path); -+ if (!k) { -+ log_warning("\"%s\" already exists and is not a directory.", i->path); - return 0; - } - - creation = CREATION_EXISTING; - } else - creation = CREATION_NORMAL; -+ - log_debug("%s directory \"%s\".", creation_mode_verb_to_string(creation), i->path); - - r = path_set_perms(i, i->path); diff --git a/0165-zsh-completion-add-missing-completions-for-machinect.patch b/0165-zsh-completion-add-missing-completions-for-machinect.patch deleted file mode 100644 index 18ea5c8..0000000 --- a/0165-zsh-completion-add-missing-completions-for-machinect.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 9ca241de9a5c772044540e46366236a5fc8510b5 Mon Sep 17 00:00:00 2001 -From: Lukas Rusak -Date: Wed, 22 Apr 2015 15:52:59 -0700 -Subject: [PATCH] zsh-completion: add missing completions for machinectl - -Appologies, I'm still getting used to this mailing list thing and using git send-email - -(cherry picked from commit b3b9282d0c79b108ed87abff5de6891617fe0602) ---- - shell-completion/zsh/_machinectl | 84 +++++++++++++++++++++++++++++++++------- - 1 file changed, 70 insertions(+), 14 deletions(-) - -diff --git a/shell-completion/zsh/_machinectl b/shell-completion/zsh/_machinectl -index c666b7eb43..7898d7c05b 100644 ---- a/shell-completion/zsh/_machinectl -+++ b/shell-completion/zsh/_machinectl -@@ -1,5 +1,20 @@ - #compdef machinectl - -+__get_available_machines () { -+ machinectl --no-legend list-images | {while read -r a b; do echo $a; done;} -+} -+ -+_available_machines() { -+ local -a _machines -+ _machines=("${(fo)$(__get_available_machines)}") -+ typeset -U _machines -+ if [[ -n "$_machines" ]]; then -+ _describe 'machines' _machines -+ else -+ _message 'no machines' -+ fi -+} -+ - (( $+functions[_machinectl_command] )) || _machinectl_command() - { - local -a _machinectl_cmds -@@ -7,23 +22,55 @@ - "list:List currently running VMs/containers" - "status:Show VM/container status" - "show:Show properties of one or more VMs/containers" -+ "start:Start container as a service" - "login:Get a login prompt on a VM/container" -+ "enable:Enable automatic container start at boot" -+ "disable:Disable automatic container start at boot" - "poweroff:Power off one or more VMs/containers" - "reboot:Reboot one or more VMs/containers" - "terminate:Terminate one or more VMs/containers" - "kill:Send signal to process or a VM/container" -+ "copy-to:Copy files from the host to a container" -+ "copy-from:Copy files from a container to the host" -+ "bind:Bind mount a path from the host into a container" -+ -+ "list-images:Show available container and VM images" -+ "image-status:Show image details" -+ "show-image:Show properties of image" -+ "clone:Clone an image" -+ "rename:Rename an image" -+ "read-only:Mark or unmark image read-only" -+ "remove:Remove an image" -+ -+ "pull-tar:Download a TAR container image" -+ "pull-raw:Download a RAW container or VM image" -+ "pull-dkr:Download a DKR container image" -+ "list-transfers:Show list of downloads in progress" -+ "cancel-transfer:Cancel a download" - ) -+ - if (( CURRENT == 1 )); then - _describe -t commands 'machinectl command' _machinectl_cmds || compadd "$@" - else - local curcontext="$curcontext" - cmd="${${_machinectl_cmds[(r)$words[1]:*]%%:*}}" - if (( $#cmd )); then -- case $cmd in -- list) msg="no options" ;; -- *) -- _sd_machines -- esac -+ if (( CURRENT == 2 )); then -+ case $cmd in -+ list*|cancel-transfer|pull-tar|pull-raw|pull-dkr) -+ msg="no options" ;; -+ start) -+ _available_machines ;; -+ *) -+ _sd_machines -+ esac -+ else -+ case $cmd in -+ copy-to|copy-from|bind) -+ _files ;; -+ *) msg="no options" -+ esac -+ fi - else - _message "no more options" - fi -@@ -33,13 +80,22 @@ - _arguments \ - {-h,--help}'[Prints a short help text and exits.]' \ - '--version[Prints a short version string and exits.]' \ -- \*{-p+,--property=}'[Limit output to specified property.]:property:(Name Id Timestamp TimestampMonotonic Service Scope Leader Class State RootDirectory)' \ -- {-a,--all}'[Show all proerties]' \ -- (-l,--full)'[Do not ellipsize cgroup members]' \ -- '--no-pager[Do not pipe output into a pager]' \ -- '--no-ask-password[Do not ask for system passwords]' \ -- '--kill-who=[Who to send signal to]:killwho:(leader all)' \ -- {-s+,--signal=}'[Which signal to send]:signal:_signals' \ -- {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ -- {-P,--privileged}'[Acquire privileges before execution]' \ -+ '--no-pager[Do not pipe output into a pager.]' \ -+ '--no-legend[Do not show the headers and footers.]' \ -+ '--no-ask-password[Do not ask for system passwords.]' \ -+ {-H+,--host=}'[Operate on remote host.]:userathost:_sd_hosts_or_user_at_host' \ -+ {-M+,--machine=}'[Operate on local container.]:machine:_sd_machines' \ -+ {-p+,--property=}'[Limit output to specified property.]:property:(Name Id Timestamp TimestampMonotonic Service Scope Leader Class State RootDirectory)' \ -+ {-a,--all}'[Show all proerties.]' \ -+ {-q,--quiet}'[Suppress output.]' \ -+ {-l,--full}'[Do not ellipsize cgroup members.]' \ -+ '--kill-who=[Who to send signal to.]:killwho:(leader all)' \ -+ {-s+,--signal=}'[Which signal to send.]:signal:_signals' \ -+ '--read-only[Create read-only bind mount.]' \ -+ '--mkdir[Create directory before bind mounting, if missing.]' \ -+ {-n+,--lines=}'[Number of journal entries to show.]:integer' \ -+ {-o+,--output=}'[Change journal output mode.]:output modes:_sd_outputmodes' \ -+ '--verify=[Verification mode for downloaded images.]:verify:(no checksum signature)' \ -+ '--force[Download image even if already exists.]' \ -+ '--dkr-index-url=[Specify the index URL to use for DKR image downloads.]' \ - '*::machinectl command:_machinectl_command' diff --git a/0166-zsh-completion-update-M-completion-for-systemd-analy.patch b/0166-zsh-completion-update-M-completion-for-systemd-analy.patch deleted file mode 100644 index 15fbd54..0000000 --- a/0166-zsh-completion-update-M-completion-for-systemd-analy.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 1b31568fa9d3453ec4b880f846816daf7f94a445 Mon Sep 17 00:00:00 2001 -From: Lukas Rusak -Date: Wed, 22 Apr 2015 11:07:38 -0700 -Subject: [PATCH] zsh-completion: update -M completion for systemd-analyze - -(cherry picked from commit b93f15cd056ca71b7e0aa0560992da345e87f974) ---- - shell-completion/zsh/_systemd-analyze | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/shell-completion/zsh/_systemd-analyze b/shell-completion/zsh/_systemd-analyze -index 2c0e5433eb..efafddc686 100644 ---- a/shell-completion/zsh/_systemd-analyze -+++ b/shell-completion/zsh/_systemd-analyze -@@ -54,5 +54,5 @@ _arguments \ - '--from-pattern=[When generating a dependency graph, filter only origins]:GLOB' \ - '--to-pattern=[When generating a dependency graph, filter only destinations]:GLOB' \ - {-H+,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ -- {-M+,--machine=}'[Operate on local container]:machine' \ -+ {-M+,--machine=}'[Operate on local container]:machine:_sd_machines' \ - '*::systemd-analyze commands:_systemd_analyze_command' diff --git a/0167-zsh-completion-add-missing-completions-for-systemd-n.patch b/0167-zsh-completion-add-missing-completions-for-systemd-n.patch deleted file mode 100644 index 7c0e62c..0000000 --- a/0167-zsh-completion-add-missing-completions-for-systemd-n.patch +++ /dev/null @@ -1,62 +0,0 @@ -From b632845742c568b5576fdae430983deb42c7897a Mon Sep 17 00:00:00 2001 -From: Lukas Rusak -Date: Wed, 22 Apr 2015 11:07:39 -0700 -Subject: [PATCH] zsh-completion: add missing completions for systemd-nspawn - -(cherry picked from commit 6b85708cfd371f40ed95462cd8787ee0673ad36d) ---- - shell-completion/zsh/_systemd-nspawn | 22 +++++++++++++--------- - 1 file changed, 13 insertions(+), 9 deletions(-) - -diff --git a/shell-completion/zsh/_systemd-nspawn b/shell-completion/zsh/_systemd-nspawn -index ceedb2c5a0..08f5696acb 100644 ---- a/shell-completion/zsh/_systemd-nspawn -+++ b/shell-completion/zsh/_systemd-nspawn -@@ -11,34 +11,38 @@ _nspawn-caps(){ - } - - _arguments \ -- {-h,--help}'[Show this help]' \ -+ {-h,--help}'[Show this help.]' \ -+ '--version[Print a short version string and exit.]' \ -+ {--quiet,-q}'[Turns off any status output by the tool itself.]' \ - {--directory=,-D+}'[Directory to use as file system root for the namespace container. If omitted the current directory will be used.]:directories:_directories' \ -+ '--template=[Initialize root directory from template directory, if missing.]:template:_directories' \ -+ {--ephemeral,-x}'[Run container with snapshot of root directory, and remove it after exit.]' \ - {--image=,-i+}'[Disk image to mount the root directory for the container from.]' \ - {--boot=,-b+}'[Automatically search for an init binary and invoke it instead of a shell or a user supplied program.]' \ - {--user=,-u+}'[Run the command under specified user, create home directory and cd into it.]' \ - {--machine=,-M+}'[Sets the machine name for this container.]' \ - '--uuid=[Set the specified uuid for the container.]' \ -- '--slice=[Make the container part of the specified slice, instead of the default machine.slice.]' \ -- '--private-network[Turn off networking in the container. This makes all network interfaces unavailable in the container, with the exception of the loopback device.]' \ -+ {--slice=,-S+}'[Make the container part of the specified slice, instead of the default machine.slice.]' \ - '--private-network[Disconnect networking of the container from the host.]' \ - '--network-interface=[Assign the specified network interface to the container.]' \ - '--network-macvlan=[Create a "macvlan" interface of the specified Ethernet network interface and add it to the container.]' \ -- '--network-veth[Create a virtual Ethernet link (veth) between host and container.]' \ -+ '--network-ipvlan=[Create a ipvlan network interface based on an existing network interface to the container.]' \ -+ {--network-veth,-n}'[Create a virtual Ethernet link (veth) between host and container.]' \ - '--network-bridge=[Adds the host side of the Ethernet link created with --network-veth to the specified bridge.]' \ -+ {--port=,-p+}'[Expose a container IP port on the host.]' \ - {--selinux-context=,-Z+}'[Sets the SELinux security context to be used to label processes in the container.]' \ - {--selinux-apifs-context=,-L+}'[Sets the SELinux security context to be used to label files in the virtual API file systems in the container.]' \ - '--capability=[List one or more additional capabilities to grant the container.]:capabilities:_nspawn-caps' \ -- '--drop-capability=[Specify one or more additional capabilities to drop for the container]' \ -- "--link-journal=[Control whether the container's journal shall be made visible to the host system.]:options:(no, host, guest, auto)" \ -+ '--drop-capability=[Specify one or more additional capabilities to drop for the containerm]:capabilities:_nspawn-caps' \ -+ "--link-journal=[Control whether the container's journal shall be made visible to the host system.]:options:(no host guest auto)" \ - '-j[Equivalent to --link-journal=guest.]' \ - '--read-only[Mount the root file system read only for the container.]' \ - '--bind=[Bind mount a file or directory from the host into the container.]' \ - '--bind-ro=[Bind mount a file or directory from the host into the container (read-only).]' \ -+ '--tmpfs=[Mount an empty tmpfs to the specified directory.]' \ - '--setenv=[Specifies an environment variable assignment to pass to the init process in the container, in the format "NAME=VALUE".]' \ - '--share-system[Allows the container to share certain system facilities with the host.]' \ - '--register=[Controls whether the container is registered with systemd-machined(8).]' \ - '--keep-unit[Instead of creating a transient scope unit to run the container in, simply register the service or scope unit systemd-nspawn has been invoked in with systemd-machined(8).]' \ - '--personality=[Control the architecture ("personality") reported by uname(2) in the container.]' \ -- {--quiet,-q}'[Turns off any status output by the tool itself.]' \ -- {--help,-h}'[Print a short help text and exit.]' \ -- '--version[Print a short version string and exit.]' -+ '--volatile=[Run the system in volatile mode.]:volatile:(no yes state)' diff --git a/0168-zsh-completion-actually-run-_filter_units_by_propert.patch b/0168-zsh-completion-actually-run-_filter_units_by_propert.patch deleted file mode 100644 index 91916e5..0000000 --- a/0168-zsh-completion-actually-run-_filter_units_by_propert.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 21427b3c9865a0a7871d47e55b041d371dcfe36f Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Mon, 18 May 2015 01:02:38 -0400 -Subject: [PATCH] zsh-completion: actually run _filter_units_by_property when - creating the arrays _sys_(re|)startable_units - -(cherry picked from commit 67afa93148ca51eb1d37717ad3c3cac980be1c7a) ---- - shell-completion/zsh/_systemctl.in | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/shell-completion/zsh/_systemctl.in b/shell-completion/zsh/_systemctl.in -index 82edfd3d74..d2024b3cce 100644 ---- a/shell-completion/zsh/_systemctl.in -+++ b/shell-completion/zsh/_systemctl.in -@@ -149,20 +149,20 @@ _systemctl_get_template_names() { __systemctl list-unit-files | { while read -r - _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} - - _systemctl_startable_units(){ -- _sys_startable_units=(_filter_units_by_property ActiveState inactive $( -+ _sys_startable_units=( $( _filter_units_by_property ActiveState inactive $( - _filter_units_by_property CanStart yes $( - __systemctl $mode list-unit-files --state enabled,disabled,static | \ - { while read -r a b; do [[ $a =~ @\. ]] || echo -E - " $a"; done; } - __systemctl $mode list-units --state inactive,failed | \ -- { while read -r a b; do echo -E - " $a"; done; } ))) -+ { while read -r a b; do echo -E - " $a"; done; } )) ) ) - } - - _systemctl_restartable_units(){ -- _sys_restartable_units=(_filter_units_by_property CanStart yes $( -+ _sys_restartable_units=( $(_filter_units_by_property CanStart yes $( - __systemctl $mode list-unit-files --state enabled,disabled,static | \ - { while read -r a b; do [[ $a =~ @\. ]] || echo -E - " $a"; done; } - __systemctl $mode list-units | \ -- { while read -r a b; do echo -E - " $a"; done; } )) -+ { while read -r a b; do echo -E - " $a"; done; } )) ) - } - - _systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} -@@ -170,6 +170,7 @@ _systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files - _systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} - _systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "masked" ]] && echo -E - " $a"; done; }) )} - -+local fun - # Completion functions for ALL_UNITS - for fun in is-active is-failed is-enabled status show cat mask preset help list-dependencies edit ; do - (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() diff --git a/0169-zsh-completion-actually-complete-template-names-for-.patch b/0169-zsh-completion-actually-complete-template-names-for-.patch deleted file mode 100644 index 6ab1c94..0000000 --- a/0169-zsh-completion-actually-complete-template-names-for-.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 5fcc4e9b7958db15317bd7ca523d4fdb19049128 Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Mon, 18 May 2015 01:02:39 -0400 -Subject: [PATCH] zsh-completion: actually complete template names for - subcommands enable, reenable and disable. - -compadd's -a option treats non-option arguments as arrays. So -$(_systemctl_get_template_names) expands to some words that aren't -legal array names. Even if there were, they would be empty; thus adding -nothing. - -deduplicated a few functions too. - -(cherry picked from commit fb869ca1d20e503708ae813c3d3ebcf5a5173c25) ---- - shell-completion/zsh/_systemctl.in | 21 +++++++++------------ - 1 file changed, 9 insertions(+), 12 deletions(-) - -diff --git a/shell-completion/zsh/_systemctl.in b/shell-completion/zsh/_systemctl.in -index d2024b3cce..427572355a 100644 ---- a/shell-completion/zsh/_systemctl.in -+++ b/shell-completion/zsh/_systemctl.in -@@ -166,9 +166,7 @@ _systemctl_restartable_units(){ - } - - _systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} --_systemctl_enabled_units() {_sys_enabled_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "enabled" ]] && echo -E - " $a"; done; }) )} --_systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files | { while read -r a b; do [[ $b == "disabled" ]] && echo -E - " $a"; done; }) )} --_systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read -r a b; do [[ $b == "masked" ]] && echo -E - " $a"; done; }) )} -+_systemctl_unit_state() { typeset -gA _sys_unit_state; _sys_unit_state=( $(__systemctl list-unit-files) ) } - - local fun - # Completion functions for ALL_UNITS -@@ -183,22 +181,21 @@ done - # Completion functions for ENABLED_UNITS - (( $+functions[_systemctl_disable] )) || _systemctl_disable() - { -- _systemctl_enabled_units -- compadd "$@" -a - _sys_enabled_units -+ local _sys_unit_state; _systemctl_unit_state -+ compadd "$@" - ${(k)_sys_unit_state[(R)enabled]} - } - - (( $+functions[_systemctl_reenable] )) || _systemctl_reenable() - { -- _systemctl_enabled_units -- _systemctl_disabled_units -- compadd "$@" -a - _sys_enabled_units _sys_disabled_units $(_systemctl_get_template_names) -+ local _sys_unit_state; _systemctl_unit_state -+ compadd "$@" - ${(k)_sys_unit_state[(R)(enabled|disabled)]} $(_systemctl_get_template_names) - } - - # Completion functions for DISABLED_UNITS - (( $+functions[_systemctl_enable] )) || _systemctl_enable() - { -- _systemctl_disabled_units -- compadd "$@" -a - _sys_disabled_units $(_systemctl_get_template_names) -+ local _sys_unit_state; _systemctl_unit_state -+ compadd "$@" - ${(k)_sys_unit_state[(R)disabled]} $(_systemctl_get_template_names) - } - - # Completion functions for FAILED_UNITS -@@ -255,8 +252,8 @@ done - # Completion functions for MASKED_UNITS - (( $+functions[_systemctl_unmask] )) || _systemctl_unmask() - { -- _systemctl_masked_units -- compadd "$@" -a - _sys_masked_units || _message "no masked units found" -+ local _sys_unit_state; _systemctl_unit_state -+ compadd "$@" - ${(k)_sys_unit_state[(R)masked]} || _message "no masked units found" - } - - # Completion functions for JOBS diff --git a/0170-zsh-completion-less-forking-in-_systemctl_get_templa.patch b/0170-zsh-completion-less-forking-in-_systemctl_get_templa.patch deleted file mode 100644 index 9f7db79..0000000 --- a/0170-zsh-completion-less-forking-in-_systemctl_get_templa.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 5ee6d932fe185b8ae007bb47b34026308ac33623 Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Mon, 18 May 2015 01:02:40 -0400 -Subject: [PATCH] zsh-completion: less forking in - _systemctl_get_template_names() - -(cherry picked from commit e4e868f3aeedccfe04c6b6c3be026c7f8873370a) ---- - shell-completion/zsh/_systemctl.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/shell-completion/zsh/_systemctl.in b/shell-completion/zsh/_systemctl.in -index 427572355a..b8921791dd 100644 ---- a/shell-completion/zsh/_systemctl.in -+++ b/shell-completion/zsh/_systemctl.in -@@ -143,7 +143,7 @@ _filter_units_by_property() { - done - } - --_systemctl_get_template_names() { __systemctl list-unit-files | { while read -r a b; do [[ $a =~ @\. ]] && echo -E - " ${a%%@.*}@"; done; } } -+_systemctl_get_template_names() { echo -E - ${^${(M)${(f)"$(__systemctl list-unit-files)"}##*@.[^[:space:]]##}%%@.*}\@ } - - - _systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} diff --git a/0171-zsh-completion-less-forking-in-_systemctl_failed_uni.patch b/0171-zsh-completion-less-forking-in-_systemctl_failed_uni.patch deleted file mode 100644 index 0d20f37..0000000 --- a/0171-zsh-completion-less-forking-in-_systemctl_failed_uni.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 8d660f18b2b967f43b5891958553f0319d4f9f02 Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Mon, 18 May 2015 01:02:41 -0400 -Subject: [PATCH] zsh-completion: less forking in _systemctl_failed_units() and - make the array `_sys_failed_units' local to the completer. - -(cherry picked from commit 463985a9f489c54b89ee7ce6ffd67501035420b4) ---- - shell-completion/zsh/_systemctl.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/shell-completion/zsh/_systemctl.in b/shell-completion/zsh/_systemctl.in -index b8921791dd..e95b7d3af0 100644 ---- a/shell-completion/zsh/_systemctl.in -+++ b/shell-completion/zsh/_systemctl.in -@@ -165,7 +165,7 @@ _systemctl_restartable_units(){ - { while read -r a b; do echo -E - " $a"; done; } )) ) - } - --_systemctl_failed_units() {_sys_failed_units=( $(__systemctl list-units --failed | { while read -r a b; do echo -E - " $a"; done; }) )} -+_systemctl_failed_units() {_sys_failed_units=( ${${(f)"$(__systemctl list-units --failed)"}%% *} ) } - _systemctl_unit_state() { typeset -gA _sys_unit_state; _sys_unit_state=( $(__systemctl list-unit-files) ) } - - local fun -@@ -201,7 +201,7 @@ done - # Completion functions for FAILED_UNITS - (( $+functions[_systemctl_reset-failed] )) || _systemctl_reset-failed() - { -- _systemctl_failed_units -+ local _sys_failed_units; _systemctl_failed_units - compadd "$@" -a - _sys_failed_units || _message "no failed unit found" - } - diff --git a/0172-zsh-completion-removing-more-pointless-forks.patch b/0172-zsh-completion-removing-more-pointless-forks.patch deleted file mode 100644 index 0a42d0f..0000000 --- a/0172-zsh-completion-removing-more-pointless-forks.patch +++ /dev/null @@ -1,105 +0,0 @@ -From cd2c48a58a8cdbaab89c0227355a47ef27a5be53 Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Mon, 18 May 2015 03:19:59 -0400 -Subject: [PATCH] zsh-completion: removing more pointless forks - -I seem to have forgot about _systemctl_active_units(). - -(cherry picked from commit 2103d29d89f32546f95b9ec019be0ea06714c8c2) ---- - shell-completion/zsh/_systemctl.in | 30 ++++++++++++++---------------- - 1 file changed, 14 insertions(+), 16 deletions(-) - -diff --git a/shell-completion/zsh/_systemctl.in b/shell-completion/zsh/_systemctl.in -index e95b7d3af0..2a3e21bf17 100644 ---- a/shell-completion/zsh/_systemctl.in -+++ b/shell-completion/zsh/_systemctl.in -@@ -105,7 +105,7 @@ _systemctl_all_units() - if ( [[ ${+_sys_all_units} -eq 0 ]] || _cache_invalid SYS_ALL_UNITS ) && - ! _retrieve_cache SYS_ALL_UNITS; - then -- _sys_all_units=( $(__systemctl list-units --all | { while read -r a b; do echo -E - " $a"; done; }) ) -+ _sys_all_units=( ${${(f)"$(__systemctl list-units --all)"}%% *} ) - _store_cache SYS_ALL_UNITS _sys_all_units - fi - } -@@ -118,7 +118,7 @@ _systemctl_really_all_units() - if ( [[ ${+_sys_really_all_units} -eq 0 ]] || _cache_invalid SYS_REALLY_ALL_UNITS ) && - ! _retrieve_cache SYS_REALLY_ALL_UNITS; - then -- all_unit_files=( $(__systemctl list-unit-files | { while read -r a b; do echo -E - " $a"; done; }) ) -+ all_unit_files=( ${${(f)"$(__systemctl list-unit-files)"}%% *} ) - _systemctl_all_units - really_all_units=($_sys_all_units $all_unit_files) - _sys_really_all_units=(${(u)really_all_units}) -@@ -146,7 +146,7 @@ _filter_units_by_property() { - _systemctl_get_template_names() { echo -E - ${^${(M)${(f)"$(__systemctl list-unit-files)"}##*@.[^[:space:]]##}%%@.*}\@ } - - --_systemctl_active_units() {_sys_active_units=( $(__systemctl list-units | { while read -r a b; do echo -E - " $a"; done; }) )} -+_systemctl_active_units() {_sys_active_units=( ${${(f)"$(__systemctl list-units)"}%% *} )} - - _systemctl_startable_units(){ - _sys_startable_units=( $( _filter_units_by_property ActiveState inactive $( -@@ -259,22 +259,22 @@ done - # Completion functions for JOBS - (( $+functions[_systemctl_cancel] )) || _systemctl_cancel() - { -- compadd "$@" - $(__systemctl list-jobs \ -- | cut -d' ' -f1 2>/dev/null ) || _message "no jobs found" -+ compadd "$@" - ${${(f)"$(__systemctl list-jobs)"}%% *} || -+ _message "no jobs found" - } - - # Completion functions for SNAPSHOTS - (( $+functions[_systemctl_delete] )) || _systemctl_delete() - { -- compadd "$@" - $(__systemctl list-units --type snapshot --all \ -- | cut -d' ' -f1 2>/dev/null ) || _message "no snapshots found" -+ compadd "$@" - ${${(f)"$(__systemctl list-units --type snapshot --all)"}%% *} || -+ _message "no snapshots found" - } - - # Completion functions for TARGETS - (( $+functions[_systemctl_set-default] )) || _systemctl_set-default() - { -- compadd "$@" - $(__systemctl list-unit-files --type target --all \ -- | cut -d' ' -f1 2>/dev/null ) || _message "no targets found" -+ compadd "$@" - ${${(f)"$(__systemctl list-unit-files --type target --all)"}%% *} || -+ _message "no targets found" - } - - # Completion functions for ENVS -@@ -287,8 +287,7 @@ for fun in set-environment unset-environment ; do - suf='-S=' - fi - -- compadd "$@" ${suf} - $(systemctl show-environment \ -- | while read line; do echo " ${line%%\=}";done ) -+ compadd "$@" ${suf} - ${${(f)"$(systemctl show-environment)"}%%=*} - } - done - -@@ -315,7 +314,7 @@ _systemctl_caching_policy() - oldcache=( "$1"(mh+1) ) - (( $#oldcache )) && return 0 - -- _sysunits=($(__systemctl --all | cut -d' ' -f1)) -+ _sysunits=(${${(f)"$(__systemctl --all)"}%% *}) - - if (( $#_sysunits )); then - for unit in $_sysunits; do -@@ -342,10 +341,9 @@ _unit_properties() { - if ( [[ ${+_sys_all_properties} -eq 0 ]] || _cache_invalid SYS_ALL_PROPERTIES ) && - ! _retrieve_cache SYS_ALL_PROPERTIES; - then -- _sys_all_properties=( $( {__systemctl show --all; -- @rootlibexecdir@/systemd --dump-configuration-items; } | { -- while IFS='=' read -r a b; do [ -n "$b" ] && echo "$a"; done -- }) ) -+ _sys_all_properties=( ${${(M)${(f)"$(__systemctl show --all; -+ @rootlibexecdir@/systemd --dump-configuration-items)"}##[[:alnum:]]##=*}%%=*} -+ ) - _store_cache SYS_ALL_PROPRTIES _sys_all_properties - fi - _values -s , "${_sys_all_properties[@]}" diff --git a/0173-zsh-completion-make-the-arrays-_sys_active_units-_sy.patch b/0173-zsh-completion-make-the-arrays-_sys_active_units-_sy.patch deleted file mode 100644 index d1dc949..0000000 --- a/0173-zsh-completion-make-the-arrays-_sys_active_units-_sy.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 29ead1919564e18dc7a3aee2214543db02aea72d Mon Sep 17 00:00:00 2001 -From: Eric Cook -Date: Mon, 18 May 2015 01:02:43 -0400 -Subject: [PATCH] zsh-completion: make the arrays _sys_active_units, - _sys_startable_units and _sys_restartable_units local to the completer. - -(cherry picked from commit bf8864c2c07f3bdab4ab4287bf2b5d3b5ce21f5c) ---- - shell-completion/zsh/_systemctl.in | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/shell-completion/zsh/_systemctl.in b/shell-completion/zsh/_systemctl.in -index 2a3e21bf17..673b976e34 100644 ---- a/shell-completion/zsh/_systemctl.in -+++ b/shell-completion/zsh/_systemctl.in -@@ -208,7 +208,7 @@ done - # Completion functions for STARTABLE_UNITS - (( $+functions[_systemctl_start] )) || _systemctl_start() - { -- _systemctl_startable_units -+ local _sys_startable_units; _systemctl_startable_units - compadd "$@" - ${_sys_startable_units[*]} $(_systemctl_get_template_names) - } - -@@ -216,7 +216,7 @@ done - for fun in stop kill try-restart condrestart ; do - (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() - { -- _systemctl_active_units -+ local _sys_active_units; _systemctl_active_units - compadd "$@" - $( _filter_units_by_property CanStop yes \ - ${_sys_active_units[*]} ) - } -@@ -234,7 +234,7 @@ done - for fun in reload reload-or-try-restart force-reload ; do - (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() - { -- _systemctl_active_units -+ local _sys_active_units; _systemctl_active_units - compadd "$@" - $( _filter_units_by_property CanReload yes \ - ${_sys_active_units[*]} ) - } -@@ -244,7 +244,7 @@ done - for fun in restart reload-or-restart ; do - (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() - { -- _systemctl_restartable_units -+ local _sys_restartable_units; _systemctl_restartable_units - compadd "$@" - ${_sys_restartable_units[*]} $(_systemctl_get_template_names) - } - done diff --git a/0174-resolved-fix-crash-when-shutting-down.patch b/0174-resolved-fix-crash-when-shutting-down.patch deleted file mode 100644 index 843224a..0000000 --- a/0174-resolved-fix-crash-when-shutting-down.patch +++ /dev/null @@ -1,145 +0,0 @@ -From 94fa50b44f5b23a075df80bfd4854865ca0b649b Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 18 May 2015 23:23:17 +0200 -Subject: [PATCH] resolved: fix crash when shutting down -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Reported by Cristian Rodríguez - -http://lists.freedesktop.org/archives/systemd-devel/2015-May/031626.html -(cherry picked from commit cab5b05903096e1c9cf5575ccc73f89d15c8db69) ---- - src/resolve/resolved-dns-cache.c | 4 +--- - src/resolve/resolved-dns-server.c | 15 ++++++++------- - src/resolve/resolved-link.c | 6 +++--- - src/resolve/resolved-manager.c | 4 ++-- - src/shared/prioq.c | 6 ++++-- - src/shared/prioq.h | 2 +- - 6 files changed, 19 insertions(+), 18 deletions(-) - -diff --git a/src/resolve/resolved-dns-cache.c b/src/resolve/resolved-dns-cache.c -index 33ca4d1a45..874207cfb8 100644 ---- a/src/resolve/resolved-dns-cache.c -+++ b/src/resolve/resolved-dns-cache.c -@@ -93,9 +93,7 @@ void dns_cache_flush(DnsCache *c) { - - hashmap_free(c->by_key); - c->by_key = NULL; -- -- prioq_free(c->by_expiry); -- c->by_expiry = NULL; -+ c->by_expiry = prioq_free(c->by_expiry); - } - - static void dns_cache_remove(DnsCache *c, DnsResourceKey *key) { -diff --git a/src/resolve/resolved-dns-server.c b/src/resolve/resolved-dns-server.c -index caf06fe450..9a62a63258 100644 ---- a/src/resolve/resolved-dns-server.c -+++ b/src/resolve/resolved-dns-server.c -@@ -78,23 +78,24 @@ DnsServer* dns_server_free(DnsServer *s) { - if (!s) - return NULL; - -- if (s->manager) { -+ if (s->link) { - if (s->type == DNS_SERVER_LINK) - LIST_REMOVE(servers, s->link->dns_servers, s); -- else if (s->type == DNS_SERVER_SYSTEM) -+ -+ if (s->link->current_dns_server == s) -+ link_set_dns_server(s->link, NULL); -+ } -+ -+ if (s->manager) { -+ if (s->type == DNS_SERVER_SYSTEM) - LIST_REMOVE(servers, s->manager->dns_servers, s); - else if (s->type == DNS_SERVER_FALLBACK) - LIST_REMOVE(servers, s->manager->fallback_dns_servers, s); -- else -- assert_not_reached("Unknown server type"); - - if (s->manager->current_dns_server == s) - manager_set_dns_server(s->manager, NULL); - } - -- if (s->link && s->link->current_dns_server == s) -- link_set_dns_server(s->link, NULL); -- - free(s); - - return NULL; -diff --git a/src/resolve/resolved-link.c b/src/resolve/resolved-link.c -index f94e4bb6f0..27d9129e00 100644 ---- a/src/resolve/resolved-link.c -+++ b/src/resolve/resolved-link.c -@@ -68,13 +68,13 @@ Link *link_free(Link *l) { - if (l->manager) - hashmap_remove(l->manager->links, INT_TO_PTR(l->ifindex)); - -+ while (l->dns_servers) -+ dns_server_free(l->dns_servers); -+ - dns_scope_free(l->unicast_scope); - dns_scope_free(l->llmnr_ipv4_scope); - dns_scope_free(l->llmnr_ipv6_scope); - -- while (l->dns_servers) -- dns_server_free(l->dns_servers); -- - free(l); - return NULL; - } -diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c -index b5ad701611..7c253aa13f 100644 ---- a/src/resolve/resolved-manager.c -+++ b/src/resolve/resolved-manager.c -@@ -536,11 +536,11 @@ Manager *manager_free(Manager *m) { - while (m->dns_queries) - dns_query_free(m->dns_queries); - -- dns_scope_free(m->unicast_scope); -- - manager_flush_dns_servers(m, DNS_SERVER_SYSTEM); - manager_flush_dns_servers(m, DNS_SERVER_FALLBACK); - -+ dns_scope_free(m->unicast_scope); -+ - hashmap_free(m->links); - hashmap_free(m->dns_transactions); - -diff --git a/src/shared/prioq.c b/src/shared/prioq.c -index 8af4c51c2f..b89888be0e 100644 ---- a/src/shared/prioq.c -+++ b/src/shared/prioq.c -@@ -45,12 +45,14 @@ Prioq *prioq_new(compare_func_t compare_func) { - return q; - } - --void prioq_free(Prioq *q) { -+Prioq* prioq_free(Prioq *q) { - if (!q) -- return; -+ return NULL; - - free(q->items); - free(q); -+ -+ return NULL; - } - - int prioq_ensure_allocated(Prioq **q, compare_func_t compare_func) { -diff --git a/src/shared/prioq.h b/src/shared/prioq.h -index d836b36cd9..1c044b135c 100644 ---- a/src/shared/prioq.h -+++ b/src/shared/prioq.h -@@ -28,7 +28,7 @@ typedef struct Prioq Prioq; - #define PRIOQ_IDX_NULL ((unsigned) -1) - - Prioq *prioq_new(compare_func_t compare); --void prioq_free(Prioq *q); -+Prioq *prioq_free(Prioq *q); - int prioq_ensure_allocated(Prioq **q, compare_func_t compare_func); - - int prioq_put(Prioq *q, void *data, unsigned *idx); diff --git a/0175-resolved-allow-DnsAnswer-objects-with-no-space-for-R.patch b/0175-resolved-allow-DnsAnswer-objects-with-no-space-for-R.patch deleted file mode 100644 index 63c64d6..0000000 --- a/0175-resolved-allow-DnsAnswer-objects-with-no-space-for-R.patch +++ /dev/null @@ -1,27 +0,0 @@ -From c3c65351593dde09a2d37b571e0737af94386fe6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 18 May 2015 23:38:47 +0200 -Subject: [PATCH] resolved: allow DnsAnswer objects with no space for RRs - -They might be created as result of merged answer sets, hence accept -them. - -http://lists.freedesktop.org/archives/systemd-devel/2015-April/030834.html -(cherry picked from commit 084cea6cee1471d81e078bea4e7ee5f50a5dc009) ---- - src/resolve/resolved-dns-answer.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/resolve/resolved-dns-answer.c b/src/resolve/resolved-dns-answer.c -index 7c4ab18b58..e08eb667cc 100644 ---- a/src/resolve/resolved-dns-answer.c -+++ b/src/resolve/resolved-dns-answer.c -@@ -25,8 +25,6 @@ - DnsAnswer *dns_answer_new(unsigned n) { - DnsAnswer *a; - -- assert(n > 0); -- - a = malloc0(offsetof(DnsAnswer, rrs) + sizeof(DnsResourceRecord*) * n); - if (!a) - return NULL; diff --git a/0176-id128-add-new-sd_id128_is_null-call.patch b/0176-id128-add-new-sd_id128_is_null-call.patch deleted file mode 100644 index efda7ed..0000000 --- a/0176-id128-add-new-sd_id128_is_null-call.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a9303ae3af9bbf482842c084cc7ba49e206538c2 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 24 Feb 2015 00:10:35 +0100 -Subject: [PATCH] id128: add new sd_id128_is_null() call - -(cherry picked from commit 15e80c7b75c3a3188bfaaa0baddccf31ae661a7a) ---- - src/systemd/sd-id128.h | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/systemd/sd-id128.h b/src/systemd/sd-id128.h -index 48fd87671b..9f445278bb 100644 ---- a/src/systemd/sd-id128.h -+++ b/src/systemd/sd-id128.h -@@ -106,6 +106,10 @@ _sd_pure_ static inline int sd_id128_equal(sd_id128_t a, sd_id128_t b) { - return memcmp(&a, &b, 16) == 0; - } - -+_sd_pure_ static inline int sd_id128_is_null(sd_id128_t a) { -+ return a.qwords[0] == 0 && a.qwords[1] == 0; -+} -+ - #define SD_ID128_NULL ((const sd_id128_t) { .qwords = { 0, 0 }}) - - _SD_END_DECLARATIONS; diff --git a/0177-journalctl-Improve-boot-ID-lookup.patch b/0177-journalctl-Improve-boot-ID-lookup.patch deleted file mode 100644 index e183d47..0000000 --- a/0177-journalctl-Improve-boot-ID-lookup.patch +++ /dev/null @@ -1,400 +0,0 @@ -From fb2b7ef1b9a4247adae4a9c85516c72674327488 Mon Sep 17 00:00:00 2001 -From: Jan Janssen -Date: Fri, 1 May 2015 15:15:16 +0200 -Subject: [PATCH] journalctl: Improve boot ID lookup - -This method should greatly improve offset based lookup, by simply jumping -from one boot to the next boot. It starts at the journal head to get the -a boot ID, makes a _BOOT_ID match and then comes from the opposite -journal direction (tail) to get to the end that boot. After flushing the matches -and advancing the journal from that exact position, we arrive at the start -of next boot. Rinse and repeat. - -This is faster than the old method of aggregating the full boot listing just -so we can jump to a specific boot, which can be a real pain on big journals -just for a mere "-b -1" case. - -As an additional benefit --list-boots should improve slightly too, because -it does less seeking. - -Note that there can be a change in boot order with this lookup method -because it will use the order of boots in the journal, not the realtime stamp -stored in them. That's arguably better, though. -Another deficiency is that it will get confused with boots interleaving in the -journal, therefore, it will refuse operation in --merge, --file and --directory mode. - -https://bugs.freedesktop.org/show_bug.cgi?id=72601 -(cherry picked from commit 596a23293d28f93843aef86721b90043e74d3081) ---- - src/journal/journalctl.c | 275 ++++++++++++++++++++++++++++++----------------- - 1 file changed, 174 insertions(+), 101 deletions(-) - -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index 12c869f5af..c26cc00f51 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -131,6 +131,7 @@ typedef struct boot_id_t { - sd_id128_t id; - uint64_t first; - uint64_t last; -+ LIST_FIELDS(struct boot_id_t, boot_list); - } boot_id_t; - - static void pager_open_if_enabled(void) { -@@ -735,6 +736,11 @@ static int parse_argv(int argc, char *argv[]) { - return -EINVAL; - } - -+ if ((arg_boot || arg_action == ACTION_LIST_BOOTS) && (arg_file || arg_directory || arg_merge)) { -+ log_error("Using --boot or --list-boots with --file, --directory or --merge is not supported."); -+ return -EINVAL; -+ } -+ - return 1; - } - -@@ -854,111 +860,203 @@ static int add_matches(sd_journal *j, char **args) { - return 0; - } - --static int boot_id_cmp(const void *a, const void *b) { -- uint64_t _a, _b; -+static int discover_next_boot(sd_journal *j, -+ boot_id_t **boot, -+ bool advance_older, -+ bool read_realtime) { -+ int r; -+ char match[9+32+1] = "_BOOT_ID="; -+ _cleanup_free_ boot_id_t *next_boot = NULL; - -- _a = ((const boot_id_t *)a)->first; -- _b = ((const boot_id_t *)b)->first; -+ assert(j); -+ assert(boot); - -- return _a < _b ? -1 : (_a > _b ? 1 : 0); --} -+ /* We expect the journal to be on the last position of a boot -+ * (in relation to the direction we are going), so that the next -+ * invocation of sd_journal_next/previous will be from a different -+ * boot. We then collect any information we desire and then jump -+ * to the last location of the new boot by using a _BOOT_ID match -+ * coming from the other journal direction. */ - --static int get_boots(sd_journal *j, -- boot_id_t **boots, -- unsigned int *count, -- boot_id_t *query_ref_boot) { -- int r; -- const void *data; -- size_t length, allocated = 0; -+ /* Make sure we aren't restricted by any _BOOT_ID matches, so that -+ * we can actually advance to a *different* boot. */ -+ sd_journal_flush_matches(j); - -- assert(j); -- assert(boots); -- assert(count); -+ if (advance_older) -+ r = sd_journal_previous(j); -+ else -+ r = sd_journal_next(j); -+ if (r < 0) -+ return r; -+ else if (r == 0) -+ return 0; /* End of journal, yay. */ -+ -+ next_boot = new0(boot_id_t, 1); -+ if (!next_boot) -+ return log_oom(); - -- r = sd_journal_query_unique(j, "_BOOT_ID"); -+ r = sd_journal_get_monotonic_usec(j, NULL, &next_boot->id); - if (r < 0) - return r; - -- *count = 0; -- SD_JOURNAL_FOREACH_UNIQUE(j, data, length) { -- boot_id_t *id; -+ if (read_realtime) { -+ r = sd_journal_get_realtime_usec(j, &next_boot->first); -+ if (r < 0) -+ return r; -+ } - -- assert(startswith(data, "_BOOT_ID=")); -+ /* Now seek to the last occurrence of this boot ID. */ -+ sd_id128_to_string(next_boot->id, match + 9); -+ r = sd_journal_add_match(j, match, sizeof(match) - 1); -+ if (r < 0) -+ return r; - -- if (!GREEDY_REALLOC(*boots, allocated, *count + 1)) -- return log_oom(); -+ if (advance_older) -+ r = sd_journal_seek_head(j); -+ else -+ r = sd_journal_seek_tail(j); -+ if (r < 0) -+ return r; - -- id = *boots + *count; -+ if (advance_older) -+ r = sd_journal_next(j); -+ else -+ r = sd_journal_previous(j); -+ if (r < 0) -+ return r; -+ else if (r == 0) -+ return -ENODATA; /* This shouldn't happen. We just came from this very boot ID. */ - -- r = sd_id128_from_string(((const char *)data) + strlen("_BOOT_ID="), &id->id); -+ if (read_realtime) { -+ r = sd_journal_get_realtime_usec(j, &next_boot->last); - if (r < 0) -- continue; -+ return r; -+ } -+ -+ *boot = next_boot; -+ next_boot = NULL; -+ return 0; -+} -+ -+static int get_boots(sd_journal *j, -+ boot_id_t **boots, -+ boot_id_t *query_ref_boot, -+ int ref_boot_offset) { -+ bool skip_once; -+ int r, count = 0; -+ boot_id_t *head = NULL, *tail = NULL; -+ const bool advance_older = query_ref_boot && ref_boot_offset <= 0; -+ -+ assert(j); -+ -+ /* Adjust for the asymmetry that offset 0 is -+ * the last (and current) boot, while 1 is considered the -+ * (chronological) first boot in the journal. */ -+ skip_once = query_ref_boot && sd_id128_is_null(query_ref_boot->id) && ref_boot_offset < 0; -+ -+ /* Advance to the earliest/latest occurrence of our reference -+ * boot ID (taking our lookup direction into account), so that -+ * discover_next_boot() can do its job. -+ * If no reference is given, the journal head/tail will do, -+ * they're "virtual" boots after all. */ -+ if (query_ref_boot && !sd_id128_is_null(query_ref_boot->id)) { -+ char match[9+32+1] = "_BOOT_ID="; -+ -+ sd_journal_flush_matches(j); - -- r = sd_journal_add_match(j, data, length); -+ sd_id128_to_string(query_ref_boot->id, match + 9); -+ r = sd_journal_add_match(j, match, sizeof(match) - 1); - if (r < 0) - return r; - -- r = sd_journal_seek_head(j); -+ if (advance_older) -+ r = sd_journal_seek_head(j); -+ else -+ r = sd_journal_seek_tail(j); - if (r < 0) - return r; - -- r = sd_journal_next(j); -+ if (advance_older) -+ r = sd_journal_next(j); -+ else -+ r = sd_journal_previous(j); - if (r < 0) - return r; - else if (r == 0) -- goto flush; -- -- r = sd_journal_get_realtime_usec(j, &id->first); -+ goto finish; -+ else if (ref_boot_offset == 0) { -+ count = 1; -+ goto finish; -+ } -+ } else { -+ if (advance_older) -+ r = sd_journal_seek_tail(j); -+ else -+ r = sd_journal_seek_head(j); - if (r < 0) - return r; - -- if (query_ref_boot) { -- id->last = 0; -- if (sd_id128_equal(id->id, query_ref_boot->id)) -- *query_ref_boot = *id; -- } else { -- r = sd_journal_seek_tail(j); -- if (r < 0) -- return r; -+ /* No sd_journal_next/previous here. */ -+ } - -- r = sd_journal_previous(j); -- if (r < 0) -- return r; -- else if (r == 0) -- goto flush; -+ while (true) { -+ _cleanup_free_ boot_id_t *current = NULL; - -- r = sd_journal_get_realtime_usec(j, &id->last); -- if (r < 0) -- return r; -+ r = discover_next_boot(j, ¤t, advance_older, !query_ref_boot); -+ if (r < 0) { -+ boot_id_t *id, *id_next; -+ LIST_FOREACH_SAFE(boot_list, id, id_next, head) -+ free(id); -+ return r; - } - -- (*count)++; -- flush: -- sd_journal_flush_matches(j); -+ if (!current) -+ break; -+ -+ if (query_ref_boot) { -+ if (!skip_once) -+ ref_boot_offset += advance_older ? 1 : -1; -+ skip_once = false; -+ -+ if (ref_boot_offset == 0) { -+ count = 1; -+ query_ref_boot->id = current->id; -+ break; -+ } -+ } else { -+ LIST_INSERT_AFTER(boot_list, head, tail, current); -+ tail = current; -+ current = NULL; -+ count++; -+ } - } - -- qsort_safe(*boots, *count, sizeof(boot_id_t), boot_id_cmp); -- return 0; -+finish: -+ if (boots) -+ *boots = head; -+ -+ sd_journal_flush_matches(j); -+ -+ return count; - } - - static int list_boots(sd_journal *j) { -- int r, w, i; -- unsigned int count; -- boot_id_t *id; -- _cleanup_free_ boot_id_t *all_ids = NULL; -+ int w, i, count; -+ boot_id_t *id, *id_next, *all_ids; - - assert(j); - -- r = get_boots(j, &all_ids, &count, NULL); -- if (r < 0) -- return r; -+ count = get_boots(j, &all_ids, NULL, 0); -+ if (count <= 0) -+ return count; - - pager_open_if_enabled(); - - /* numbers are one less, but we need an extra char for the sign */ - w = DECIMAL_STR_WIDTH(count - 1) + 1; - -- for (id = all_ids, i = 0; id < all_ids + count; id++, i++) { -+ i = 0; -+ LIST_FOREACH_SAFE(boot_list, id, id_next, all_ids) { - char a[FORMAT_TIMESTAMP_MAX], b[FORMAT_TIMESTAMP_MAX]; - - printf("% *i " SD_ID128_FORMAT_STR " %s—%s\n", -@@ -966,39 +1064,8 @@ static int list_boots(sd_journal *j) { - SD_ID128_FORMAT_VAL(id->id), - format_timestamp_maybe_utc(a, sizeof(a), id->first), - format_timestamp_maybe_utc(b, sizeof(b), id->last)); -- } -- -- return 0; --} -- --static int get_boot_id_by_offset(sd_journal *j, sd_id128_t *boot_id, int offset) { -- int r; -- unsigned int count; -- boot_id_t ref_boot_id = {}, *id; -- _cleanup_free_ boot_id_t *all_ids = NULL; -- -- assert(j); -- assert(boot_id); -- -- ref_boot_id.id = *boot_id; -- r = get_boots(j, &all_ids, &count, &ref_boot_id); -- if (r < 0) -- return r; -- -- if (sd_id128_equal(*boot_id, SD_ID128_NULL)) { -- if (offset > (int) count || offset <= -(int)count) -- return -EADDRNOTAVAIL; -- -- *boot_id = all_ids[(offset <= 0)*count + offset - 1].id; -- } else { -- id = bsearch(&ref_boot_id, all_ids, count, sizeof(boot_id_t), boot_id_cmp); -- -- if (!id || -- offset <= 0 ? (id - all_ids) + offset < 0 : -- (id - all_ids) + offset >= (int) count) -- return -EADDRNOTAVAIL; -- -- *boot_id = (id + offset)->id; -+ i++; -+ free(id); - } - - return 0; -@@ -1007,6 +1074,7 @@ static int get_boot_id_by_offset(sd_journal *j, sd_id128_t *boot_id, int offset) - static int add_boot(sd_journal *j) { - char match[9+32+1] = "_BOOT_ID="; - int r; -+ boot_id_t ref_boot_id = {}; - - assert(j); - -@@ -1016,17 +1084,22 @@ static int add_boot(sd_journal *j) { - if (arg_boot_offset == 0 && sd_id128_equal(arg_boot_id, SD_ID128_NULL)) - return add_match_this_boot(j, arg_machine); - -- r = get_boot_id_by_offset(j, &arg_boot_id, arg_boot_offset); -- if (r < 0) { -- if (sd_id128_equal(arg_boot_id, SD_ID128_NULL)) -- log_error_errno(r, "Failed to look up boot %+i: %m", arg_boot_offset); -+ ref_boot_id.id = arg_boot_id; -+ r = get_boots(j, NULL, &ref_boot_id, arg_boot_offset); -+ assert(r <= 1); -+ if (r <= 0) { -+ const char *reason = (r == 0) ? "No such boot ID in journal" : strerror(-r); -+ -+ if (sd_id128_is_null(arg_boot_id)) -+ log_error("Failed to look up boot %+i: %s", arg_boot_offset, reason); - else - log_error("Failed to look up boot ID "SD_ID128_FORMAT_STR"%+i: %s", -- SD_ID128_FORMAT_VAL(arg_boot_id), arg_boot_offset, strerror(-r)); -- return r; -+ SD_ID128_FORMAT_VAL(arg_boot_id), arg_boot_offset, reason); -+ -+ return r == 0 ? -ENODATA : r; - } - -- sd_id128_to_string(arg_boot_id, match + 9); -+ sd_id128_to_string(ref_boot_id.id, match + 9); - - r = sd_journal_add_match(j, match, sizeof(match) - 1); - if (r < 0) diff --git a/0178-test-hashmap-fix-an-assert.patch b/0178-test-hashmap-fix-an-assert.patch deleted file mode 100644 index a436178..0000000 --- a/0178-test-hashmap-fix-an-assert.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 089491f20443a48ad3b65c24b7e98115fe955805 Mon Sep 17 00:00:00 2001 -From: Thomas Hindoe Paaboel Andersen -Date: Tue, 19 May 2015 06:33:54 +0200 -Subject: [PATCH] test-hashmap: fix an assert - -CID#1299016 - -(cherry picked from commit b669934fae49c9158c35e612e54e1765edca8584) ---- - src/test/test-hashmap-plain.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/test/test-hashmap-plain.c b/src/test/test-hashmap-plain.c -index 84b508f874..c1a5ccf1f5 100644 ---- a/src/test/test-hashmap-plain.c -+++ b/src/test/test-hashmap-plain.c -@@ -682,7 +682,7 @@ static void test_hashmap_get2(void) { - r = hashmap_get2(m, key_orig, &key_copy); - assert_se(streq(r, val)); - assert_se(key_orig != key_copy); -- assert_se(streq(key_orig, key_orig)); -+ assert_se(streq(key_orig, key_copy)); - - r = hashmap_get2(m, "no such key", NULL); - assert_se(r == NULL); diff --git a/0179-units-make-sure-systemd-nspawn-.slice-instances-are-.patch b/0179-units-make-sure-systemd-nspawn-.slice-instances-are-.patch deleted file mode 100644 index a664d62..0000000 --- a/0179-units-make-sure-systemd-nspawn-.slice-instances-are-.patch +++ /dev/null @@ -1,24 +0,0 @@ -From c1d39ccd066356ef5581081a97acfbe847103de7 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Tue, 19 May 2015 19:47:52 +0200 -Subject: [PATCH] units: make sure systemd-nspawn@.slice instances are actually - located in machine.slice - -https://plus.google.com/112206451048767236518/posts/SYAueyXHeEX -(cherry picked from commit 45d383a3b888195b01b58dbd2c46a11027ff5022) ---- - units/systemd-nspawn@.service.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/units/systemd-nspawn@.service.in b/units/systemd-nspawn@.service.in -index 3e26b53fd6..5e86121130 100644 ---- a/units/systemd-nspawn@.service.in -+++ b/units/systemd-nspawn@.service.in -@@ -17,6 +17,7 @@ KillMode=mixed - Type=notify - RestartForceExitStatus=133 - SuccessExitStatus=133 -+Slice=machine.slice - Delegate=yes - - [Install] diff --git a/sources b/sources index e8f9621..34e57f0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e0d6c9a4b4f69f66932d2230298c9a34 systemd-219.tar.xz +6c6b256570dfc1eea975c97951e68b4a systemd-220.tar.xz diff --git a/systemd.spec b/systemd.spec index 2afab02..ade52a7 100644 --- a/systemd.spec +++ b/systemd.spec @@ -15,8 +15,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd -Version: 219 -Release: 15%{?gitcommit:.git%{gitcommit}}%{?dist} +Version: 220 +Release: 1%{?gitcommit:.git%{gitcommit}}%{?dist} # For a breakdown of the licensing, see README License: LGPLv2+ and MIT and GPLv2+ Summary: A System and Service Manager @@ -35,189 +35,9 @@ Source6: sysctl.conf.README Source7: systemd-journal-remote.xml Source8: systemd-journal-gatewayd.xml -# Patch series is available from http://cgit.freedesktop.org/systemd/systemd-stable/log/?h=v219-stable -# GIT_DIR=~/src/systemd/.git git format-patch-ab -M -N --no-signature v219..v219-stable +# Patch series is available from http://cgit.freedesktop.org/systemd/systemd-stable/log/?h=v220-stable +# GIT_DIR=~/src/systemd/.git git format-patch-ab -M -N --no-signature v220..v220-stable # i=1; for p in 0*patch;do printf "Patch%04d: %s\n" $i $p; ((i++));done -Patch0001: 0001-journal-remote-fix-certificate-status-memory-leak.patch -Patch0002: 0002-journal-remote-fix-client_cert-memory-leak.patch -Patch0003: 0003-tmpfiles-Fix-parse_acl-error-message.patch -Patch0004: 0004-test-utf8-fix-utf16-tests-on-BE-machines.patch -Patch0005: 0005-tmpfiles-avoid-creating-duplicate-acl-entries.patch -Patch0006: 0006-shared-time-util-fix-gcc5-warning.patch -Patch0007: 0007-test-time-test-infinity-parsing-in-nanoseconds.patch -Patch0008: 0008-bootchart-fix-default-init-path.patch -Patch0009: 0009-systemctl-bump-NOFILE-only-for-systemctl_main.patch -Patch0010: 0010-acl-util-avoid-freeing-uninitialized-pointer.patch -Patch0011: 0011-bootchart-svg-fix-checking-of-list-end.patch -Patch0012: 0012-systemd-add-getrandom-syscall-numbers-for-MIPS.patch -Patch0013: 0013-unit-use-weaker-dependencies-between-mount-and-devic.patch -Patch0014: 0014-unit-When-stopping-due-to-BindsTo-log-which-unit-cau.patch -Patch0015: 0015-sysctl-downgrade-message-about-sysctl-overrides-to-d.patch -Patch0016: 0016-sysctl-add-some-hints-how-to-override-settings.patch -Patch0017: 0017-core-rework-device-state-logic.patch -Patch0018: 0018-core-fix-return-value-on-OOM.patch -Patch0019: 0019-machined-use-x-machine-unix-prefix-for-the-container.patch -Patch0020: 0020-shared-AFS-is-also-a-network-filesystem.patch -Patch0021: 0021-core-downgrade-unit-type-not-supported-message.patch -Patch0022: 0022-journal-remote-fix-saving-of-binary-fields.patch -Patch0023: 0023-journal-fix-Inappropriate-ioctl-for-device-on-ext4.patch -Patch0024: 0024-sd-daemon-replace-VLA-with-alloca-to-make-llvm-happy.patch -Patch0025: 0025-tmpfiles-quietly-ignore-ACLs-on-unsupported-filesyst.patch -Patch0026: 0026-shared-util-assume-ac-when-sys-class-power_supply-is.patch -Patch0027: 0027-import-remove-unused-variable.patch -Patch0028: 0028-hwdb-fix-ThinkPad-X-Tablet-special-keys.patch -Patch0029: 0029-man-add-newlines-to-the-pull-raw-example-in-machinec.patch -Patch0030: 0030-core-shared-in-deserializing-match-same-files-reache.patch -Patch0031: 0031-shared-use-SocketAddress-in-socket_address_matches_f.patch -Patch0032: 0032-shared-avoid-semi-duplicating-socket_address_equal.patch -Patch0033: 0033-shared-handle-unnamed-sockets-in-socket_address_equa.patch -Patch0034: 0034-man-make-bootup-graph-consistent.patch -Patch0035: 0035-nspawn-fix-whitespace-and-typo-in-partition-table-bl.patch -Patch0036: 0036-man-explain-time-units-in-tmpfiles.patch -Patch0037: 0037-systemctl-check-validity-of-PID-we-received.patch -Patch0038: 0038-systemctl-support-auditd.service-better.patch -Patch0039: 0039-shared-unit-name-fix-gcc5-warning.patch -Patch0040: 0040-test-hashmap-fix-gcc5-warning.patch -Patch0041: 0041-shared-fix-wrong-assertion-in-barrier_set_role.patch -Patch0042: 0042-hwdb-Update-database-of-Bluetooth-company-identifier.patch -Patch0043: 0043-journal-make-skipping-of-exhausted-journal-files-eff.patch -Patch0044: 0044-hwdb-add-sdio-identifiers-for-Broadcom-WLAN-cards.patch -Patch0045: 0045-shared-condition-fix-gcc5-warning.patch -Patch0046: 0046-man-correct-description-of-systemd-user-sessions.patch -Patch0047: 0047-build-sys-allow-lto-and-FORTIFY_SOURCE-with-O-sz.patch -Patch0048: 0048-man-fix-typo.patch -Patch0049: 0049-bus-proxyd-avoid-logging-oom-twice.patch -Patch0050: 0050-Do-not-run-sysv-generator-test-when-sysv-compat-is-d.patch -Patch0051: 0051-README-mention-ACLs-more.patch -Patch0052: 0052-Do-not-advertise-.d-snippets-over-main-config-file.patch -Patch0053: 0053-hwdb-add-pnpid-for-the-T450s-touchpad.patch -Patch0054: 0054-networkd-netdev-inform-when-we-take-over-an-existing.patch -Patch0055: 0055-man-replace-obsolete-wiki-link-with-man-page.patch -Patch0056: 0056-Use-correct-uname-identifiers-in-arch_map-for-SuperH.patch -Patch0057: 0057-hwdb-fix-Dell-XPS12-9Q33-key-name.patch -Patch0058: 0058-Remove-the-cap-on-epoll-events.patch -Patch0059: 0059-Allow-up-to-4096-simultaneous-connections.patch -Patch0060: 0060-hwdb-add-Logitech-G5-Laser-Mouse.patch -Patch0061: 0061-tmpfiles-Fix-handling-of-duplicate-lines.patch -Patch0062: 0062-hwdb-add-Lenovo-W451-to-TOUCHPAD_HAS_TRACKPOINT_BUTT.patch -Patch0063: 0063-vconsole-match-on-vtcon-events-not-fbcon-ones.patch -Patch0064: 0064-core-do-not-spawn-jobs-or-touch-other-units-during-c.patch -Patch0065: 0065-firstboot-set-all-spwd-fields-to-1-for-consistency-w.patch -Patch0066: 0066-sysusers-do-not-reject-users-with-already-present-et.patch -Patch0067: 0067-nspawn-fix-use-after-free-and-leak-in-error-paths.patch -Patch0068: 0068-login-fix-copy-pasto-in-error-path.patch -Patch0069: 0069-journalctl-update-hint-now-that-we-set-ACL-everywher.patch -Patch0070: 0070-sd-journal-return-error-when-we-cannot-open-a-file.patch -Patch0071: 0071-missing.h-add-NDA_.patch -Patch0072: 0072-udevd-close-race-in-udev-settle.patch -Patch0073: 0073-man-document-that-ExecStartPre-is-not-the-place-to-s.patch -Patch0074: 0074-journal-fix-return-code.patch -Patch0075: 0075-console-fix-error-code-inversion.patch -Patch0076: 0076-bus-proxy-complain-only-once-about-queue-overflows.patch -Patch0077: 0077-cgtop-fix-assert-when-not-on-tty.patch -Patch0078: 0078-man-split-paragraph.patch -Patch0079: 0079-hwdb-update.patch -Patch0080: 0080-networkd-Begin-with-serial-number-1-for-netlink-requ.patch -Patch0081: 0081-journal-remote-downgrade-routine-messages-to-debug.patch -Patch0082: 0082-journal-remote-process-events-without-delay.patch -Patch0083: 0083-man-update-example-2-in-systemd.network-5.patch -Patch0084: 0084-gpt-auto-generator-fix-detection-of-srv.patch -Patch0085: 0085-sd-rtnl-never-set-serial-to-0.patch -Patch0086: 0086-gpt-auto-generator-allow-type-check-to-fail.patch -Patch0087: 0087-man-fix-a-bunch-of-links.patch -Patch0088: 0088-man-link-to-fd.o-for-dbus-stuff.patch -Patch0089: 0089-man-fix-name-of-systemd.resource-control-5.patch -Patch0090: 0090-selinux-fix-SEGV-during-switch-root-if-SELinux-polic.patch -Patch0091: 0091-service-don-t-add-After-dependencies-on-.busname-uni.patch -Patch0092: 0092-libudev-monitor-fix-error-path-in-send_device.patch -Patch0093: 0093-core-remove-left-over-debug-message.patch -Patch0094: 0094-units-there-is-no-systemd-udev-hwdb-update.service.patch -Patch0095: 0095-util-remove-redundant-debug-message.patch -Patch0096: 0096-tmpfiles-remove-redundant-debug-message.patch -Patch0097: 0097-sysv-generator-initialize-LookupPaths-just-once.patch -Patch0098: 0098-core-do-not-use-quotes-around-virt-and-arch.patch -Patch0099: 0099-udev-downgrade-has-devpath-and-filled-with-db-file-m.patch -Patch0100: 0100-cryptsetup-generator-remove-warning-about-crypttab-a.patch -Patch0101: 0101-sysctl-tweak-debug-message.patch -Patch0102: 0102-journald-add-syslog-fields-for-audit-messages.patch -Patch0103: 0103-core-remove-useless-debug-message.patch -Patch0104: 0104-man-standard-conf-change-directory-reference-to-wild.patch -Patch0105: 0105-core-don-t-change-removed-devices-to-state-tentative.patch -Patch0106: 0106-fstab-generator-ignore-invalid-swap-priority.patch -Patch0107: 0107-missing.h-add-more-btrfs-types-and-defines.patch -Patch0108: 0108-timedated-flip-internal-status-after-executing-opera.patch -Patch0109: 0109-timedated-fix-enable-disable-reversal.patch -Patch0110: 0110-core-make-SELinux-enable-disable-check-symmetric.patch -Patch0111: 0111-shared-add-path_compare-an-ordering-path-comparison.patch -Patch0112: 0112-core-namespace-fix-path-sorting.patch -Patch0113: 0113-console-getty.service-don-t-start-when-dev-console-i.patch -Patch0114: 0114-resolved-Do-not-add-.busname-dependencies-when-compi.patch -Patch0115: 0115-man-add-journal-remote.conf-5.patch -Patch0116: 0116-hwdb-Update-database-of-Bluetooth-company-identifier.patch -Patch0117: 0117-mount-don-t-run-quotaon-only-for-network-filesystems.patch -Patch0118: 0118-mount-fix-up-wording-in-the-comment.patch -Patch0119: 0119-udev-net_id-fix-copy-paste-error.patch -Patch0120: 0120-man-don-t-mention-journalctl-dev-sda.patch -Patch0121: 0121-units-move-After-systemd-hwdb-update.service-depende.patch -Patch0122: 0122-units-explicitly-order-systemd-user-sessions.service.patch -Patch0123: 0123-zsh-completion-update-loginctl.patch -Patch0124: 0124-zsh-completion-add-missing-M-completion-for-journalc.patch -Patch0125: 0125-zsh-completion-update-hostnamectl.patch -Patch0126: 0126-shell-completion-systemctl-switch-root-verb.patch -Patch0127: 0127-core-automount-beef-up-error-message.patch -Patch0128: 0128-man-remove-fs-from-rootfsflags.patch -Patch0129: 0129-shared-fix-memleak.patch -Patch0130: 0130-udev-restore-udevadm-settle-timeout.patch -Patch0131: 0131-hwdb-add-Samsung-ATIV-Book-6-8.patch -Patch0132: 0132-udevd-fix-synchronization-with-settle-when-handling-.patch -Patch0133: 0133-python-systemd-fix-is_socket_inet-to-cope-with-ports.patch -Patch0134: 0134-man-fix-examples-indentation-in-tmpfiles.d-5.patch -Patch0135: 0135-systemctl-avoid-bumping-NOFILE-rlimit-unless-needed.patch -Patch0136: 0136-exit-status-Fix-NOTINSSTALLED-typo.patch -Patch0137: 0137-udev-settle-should-return-immediately-when-timeout-i.patch -Patch0138: 0138-importd-add-CAP_DAC_OVERRIDE-capability.patch -Patch0139: 0139-tmpfiles-there-s-no-systemd-forbid-user-logins.servi.patch -Patch0140: 0140-kmod-setup-load-ip_tables-kmod-at-boot.patch -Patch0141: 0141-udev-Fix-ping-timeout-when-settle-timeout-is-0.patch -Patch0142: 0142-util-Fix-assertion-in-split-on-missing.patch -Patch0143: 0143-hwdb-add-HP-X1000-DPI-info.patch -Patch0144: 0144-units-set-KillMode-mixed-for-our-daemons-that-fork-w.patch -Patch0145: 0145-unit-don-t-add-automatic-dependencies-on-device-unit.patch -Patch0146: 0146-update-done-ignore-nanosecond-file-timestamp-compone.patch -Patch0147: 0147-sd-daemon-simplify-sd_pid_notify_with_fds.patch -Patch0148: 0148-timedated-correctly-set-context-on-etc-localtime.patch -Patch0149: 0149-Revert-timedated-correctly-set-context-on-etc-localt.patch -Patch0150: 0150-run-synchronously-wait-until-the-scope-unit-we-creat.patch -Patch0151: 0151-sysv-generator-test-Fix-assertion.patch -Patch0152: 0152-man-avoid-line-break-in-url.patch -Patch0153: 0153-Add-VARIANT-as-a-standard-value-for-etc-os-release.patch -Patch0154: 0154-Fix-permissions-on-run-systemd-nspawn-locks.patch -Patch0155: 0155-man-document-forwarding-to-syslog-better.patch -Patch0156: 0156-man-fix-typos-in-previous-comimt.patch -Patch0157: 0157-generators-rename-add_-root-usr-_mount-to-add_-sysro.patch -Patch0158: 0158-Generate-systemd-fsck-root.service-in-the-initramfs.patch -Patch0159: 0159-units-fix-typo-in-systemd-resolved.service.patch -Patch0160: 0160-core-don-t-consider-umask-for-SocketMode.patch -Patch0161: 0161-timedate-fix-memory-leak-in-timedated.patch -Patch0162: 0162-core-Fix-assertion-with-empty-Exec-paths.patch -Patch0163: 0163-coredump-make-sure-we-vacuum-by-default.patch -Patch0164: 0164-tmpfiles-don-t-fail-if-we-cannot-create-a-subvolume-.patch -Patch0165: 0165-zsh-completion-add-missing-completions-for-machinect.patch -Patch0166: 0166-zsh-completion-update-M-completion-for-systemd-analy.patch -Patch0167: 0167-zsh-completion-add-missing-completions-for-systemd-n.patch -Patch0168: 0168-zsh-completion-actually-run-_filter_units_by_propert.patch -Patch0169: 0169-zsh-completion-actually-complete-template-names-for-.patch -Patch0170: 0170-zsh-completion-less-forking-in-_systemctl_get_templa.patch -Patch0171: 0171-zsh-completion-less-forking-in-_systemctl_failed_uni.patch -Patch0172: 0172-zsh-completion-removing-more-pointless-forks.patch -Patch0173: 0173-zsh-completion-make-the-arrays-_sys_active_units-_sy.patch -Patch0174: 0174-resolved-fix-crash-when-shutting-down.patch -Patch0175: 0175-resolved-allow-DnsAnswer-objects-with-no-space-for-R.patch -Patch0176: 0176-id128-add-new-sd_id128_is_null-call.patch -Patch0177: 0177-journalctl-Improve-boot-ID-lookup.patch -Patch0178: 0178-test-hashmap-fix-an-assert.patch -Patch0179: 0179-units-make-sure-systemd-nspawn-.slice-instances-are-.patch - # kernel-install patch for grubby, drop if grubby is obsolete Patch1000: kernel-install-grubby.patch @@ -510,7 +330,6 @@ pushd build2 popd find %{buildroot} \( -name '*.a' -o -name '*.la' \) -delete -sed -i 's/L+/#/' %{buildroot}/usr/lib/tmpfiles.d/etc.conf # udev links mkdir -p %{buildroot}/%{_sbindir} @@ -540,30 +359,11 @@ ln -s ../sysctl.conf %{buildroot}/etc/sysctl.d/99-sysctl.conf # them. rm -r %{buildroot}%{_sysconfdir}/systemd/system/*.target.wants -# Make sure the ghost-ing below works -touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel2.target -touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel3.target -touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel4.target -touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel5.target - # Make sure these directories are properly owned mkdir -p %{buildroot}%{system_unit_dir}/basic.target.wants mkdir -p %{buildroot}%{system_unit_dir}/default.target.wants mkdir -p %{buildroot}%{system_unit_dir}/dbus.target.wants mkdir -p %{buildroot}%{system_unit_dir}/syslog.target.wants - -# Temporary workaround for #1002806 -mkdir -p %{buildroot}%{system_unit_dir}/poweroff.target.wants -mkdir -p %{buildroot}%{system_unit_dir}/rescue.target.wants -mkdir -p %{buildroot}%{system_unit_dir}/multi-user.target.wants -mkdir -p %{buildroot}%{system_unit_dir}/graphical.target.wants -mkdir -p %{buildroot}%{system_unit_dir}/reboot.target.wants -ln -s ../systemd-update-utmp-runlevel.service %{buildroot}%{system_unit_dir}/poweroff.target.wants/ -ln -s ../systemd-update-utmp-runlevel.service %{buildroot}%{system_unit_dir}/rescue.target.wants/ -ln -s ../systemd-update-utmp-runlevel.service %{buildroot}%{system_unit_dir}/multi-user.target.wants/ -ln -s ../systemd-update-utmp-runlevel.service %{buildroot}%{system_unit_dir}/graphical.target.wants/ -ln -s ../systemd-update-utmp-runlevel.service %{buildroot}%{system_unit_dir}/reboot.target.wants/ - mkdir -p %{buildroot}%{_localstatedir}/run mkdir -p %{buildroot}%{_localstatedir}/log touch %{buildroot}%{_localstatedir}/run/utmp @@ -776,7 +576,7 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd %files -f %{name}.lang %doc %{_pkgdocdir} %exclude %{_pkgdocdir}/LICENSE.* -%license LICENSE.GPL2 LICENSE.LGPL2.1 LICENSE.MIT +%license LICENSE.GPL2 LICENSE.LGPL2.1 %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user @@ -904,6 +704,7 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd %{_prefix}/lib/tmpfiles.d/tmp.conf %{_prefix}/lib/tmpfiles.d/var.conf %{_prefix}/lib/tmpfiles.d/etc.conf +%{_prefix}/lib/tmpfiles.d/home.conf %{_prefix}/lib/sysctl.d/50-default.conf %{_prefix}/lib/sysctl.d/50-coredump.conf %{_prefix}/lib/sysusers.d/basic.conf @@ -952,7 +753,7 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy %{_datadir}/polkit-1/actions/org.freedesktop.import1.policy %{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy -%{_libdir}/pkgconfig/systemd.pc +%{_datadir}/pkgconfig/systemd.pc %{_datadir}/pkgconfig/udev.pc %{_datadir}/bash-completion/completions/* %{_datadir}/zsh/site-functions/* @@ -961,13 +762,6 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd %{pkgdir}/network/80-container-host0.network %{pkgdir}/network/80-container-ve.network -# Make sure we don't remove runlevel targets from F14 alpha installs, -# but make sure we don't create then anew. -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target -%ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target - %files libs %{_libdir}/security/pam_systemd.so %{_libdir}/libnss_myhostname.so.2 @@ -1046,6 +840,12 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd /usr/lib/firewalld/services/* %changelog +* Thu May 21 2015 Lennart Poettering - 220-1 +- New upstream release +- Drop /etc/mtab hack, as that's apparently fixed in mock now (#1116158) +- Remove ghosting for %{_sysconfdir}/systemd/system/runlevel*.target, these targets are not configurable anymore in systemd upstream +- Drop work-around for #1002806, since this is solved upstream now + * Wed May 20 2015 Dennis Gilmore - 219-15 - fix up the conflicts version for fedora-release