Skip to contentSkip to conversation

Upgrade systemd to 199

PATCH In review Khem Raj 8 participants 20 messages Mar 28, 2013 – Apr 17, 2013 3 messages not in the archive

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

cover Upgrade systemd to 199

Hi

This patch upgrades to systemd 199. Additionally fix packaging issues seen due to move of udevadm from usr/bin to /bin upstream

adds missing udev-journald system group

Build and run tested on qemuppc with eglibc/uclibc

qemuimage-testlib: Capture stderror in the logs as well as stdout (2013-03-27 13:54:06 +0000)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib kraj/systemd-199
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/systemd-199

Khem Raj (1):
systemd: Upgrade to 199

 .../0002-readahead-chunk-on-spinning-media.patch   |  142 ++++++++++++++++++++
 .../systemd/systemd/0003-readahead-cleanups.patch  |   86 ++++++++++++
 ...ctl-Handle-missing-etc-sysctl.conf-proper.patch |   33 +++++
 .../systemd/{systemd_198.bb => systemd_199.bb}     |   11 +-
 4 files changed, 268 insertions(+), 4 deletions(-)
 create mode 100644 meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch
 rename meta/recipes-core/systemd/{systemd_198.bb => systemd_199.bb} (95%)
Signature · 1 line
1.7.9.5
author
#1 lore raw

PATCH 1/1 systemd: Upgrade to 199

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

Backport patches for readahead fixes on spinning disks and to tackle error reported on missing /etc/sysctl.conf

---
 .../0002-readahead-chunk-on-spinning-media.patch   |  142 ++++++++++++++++++++
 .../systemd/systemd/0003-readahead-cleanups.patch  |   86 ++++++++++++
 ...ctl-Handle-missing-etc-sysctl.conf-proper.patch |   33 +++++
 .../systemd/{systemd_198.bb => systemd_199.bb}     |   11 +-
 4 files changed, 268 insertions(+), 4 deletions(-)
 create mode 100644 meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch
 rename meta/recipes-core/systemd/{systemd_198.bb => systemd_199.bb} (95%)
meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch new file +142 -0
new file mode 100644
index 0000000..d57a01c
@@ -0,0 +1,142 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 94243ef299425d6c7089a7a05c48c9bb8f6cf3da Mon Sep 17 00:00:00 2001
+From: Auke Kok <[email protected]>
+Date: Fri, 22 Mar 2013 15:09:45 -0700
+Subject: [PATCH 02/17] readahead: chunk on spinning media
+
+Readahead has all sorts of bad side effects depending on your
+storage media. On rotating disks, it may be degrading startup
+performance if enough requests are queued spanning linearly
+over all blocks early at boot, and mount, blkid and friends
+want to insert reads to the start of these block devices after.
+
+The end result is that on spinning disks with ext3/4 that udev
+and mounts take a very long time, and nothing really happens until
+readahead is completely finished.
+
+This has the net effect that the CPU is almost entirely idle
+for the entire period that readahead is working. We could have
+finished starting up quite a lot of services in this time if
+we were smarter at how we do readahead.
+
+This patch sorts all requests into 2 second "chunks" and sub-sorts
+each chunk by block. This adds a single cross-drive seek per "chunk"
+but has the benefit that we will have a lot of the blocks we need
+early on in the boot sequence loaded into memory faster.
+
+For a comparison of how before/after bootcharts look (ext4 on a
+mobile 5400rpm 250GB drive) please look at:
+
+    http://foo-projects.org/~sofar/blocked-tests/
+
+There are bootcharts in the "before" and "after" folders where you
+should be able to see that many low-level services finish 5-7
+seconds earlier with the patch applied (after).
+---
+ Makefile.am                       |    2 +-
+ src/readahead/readahead-collect.c |   28 +++++++++++++++++++++++++---
+ 2 files changed, 26 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 37c1cc2..5861976 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
+ systemd_readahead_LDADD = \
+ 	libsystemd-shared.la \
+ 	libsystemd-daemon.la \
+-	libudev.la
++	libudev.la -lm
+ 
+ dist_doc_DATA += \
+ 	src/readahead/sd-readahead.c \
+diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
+index 5d07f47..5d22949 100644
+--- a/src/readahead/readahead-collect.c
++++ b/src/readahead/readahead-collect.c
+@@ -42,6 +42,7 @@
+ #include <sys/vfs.h>
+ #include <getopt.h>
+ #include <sys/inotify.h>
++#include <math.h>
+ 
+ #ifdef HAVE_FANOTIFY_INIT
+ #include <sys/fanotify.h>
+@@ -67,6 +68,7 @@
+  */
+ 
+ static ReadaheadShared *shared = NULL;
++static struct timespec starttime;
+ 
+ /* Avoid collisions with the NULL pointer */
+ #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
+@@ -205,6 +207,7 @@ static unsigned long fd_first_block(int fd) {
+ struct item {
+         const char *path;
+         unsigned long block;
++        unsigned long bin;
+ };
+ 
+ static int qsort_compare(const void *a, const void *b) {
+@@ -213,6 +216,13 @@ static int qsort_compare(const void *a, const void *b) {
+         i = a;
+         j = b;
+ 
++        /* sort by bin first */
++        if (i->bin < j->bin)
++                return -1;
++        if (i->bin > j->bin)
++                return 1;
++
++        /* then sort by sector */
+         if (i->block < j->block)
+                 return -1;
+         if (i->block > j->block)
+@@ -250,6 +260,8 @@ static int collect(const char *root) {
+                 goto finish;
+         }
+ 
++        clock_gettime(CLOCK_MONOTONIC, &starttime);
++
+         /* If there's no pack file yet we lower the kernel readahead
+          * so that mincore() is accurate. If there is a pack file
+          * already we assume it is accurate enough so that kernel
+@@ -447,10 +459,21 @@ static int collect(const char *root) {
+                                         free(p);
+                                 else {
+                                         unsigned long ul;
++                                        struct timespec ts;
++                                        struct item *entry;
++
++                                        entry = new0(struct item, 1);
+ 
+                                         ul = fd_first_block(m->fd);
+ 
+-                                        if ((k = hashmap_put(files, p, SECTOR_TO_PTR(ul))) < 0) {
++                                        clock_gettime(CLOCK_MONOTONIC, &ts);
++
++                                        entry->block = ul;
++                                        entry->path = strdup(p);
++                                        entry->bin = round((ts.tv_sec - starttime.tv_sec +
++                                                     ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0);
++
++                                        if ((k = hashmap_put(files, p, entry)) < 0) {
+                                                 log_warning("set_put() failed: %s", strerror(-k));
+                                                 free(p);
+                                         }
+@@ -518,8 +541,7 @@ done:
+ 
+                 j = ordered;
+                 HASHMAP_FOREACH_KEY(q, p, files, i) {
+-                        j->path = p;
+-                        j->block = PTR_TO_SECTOR(q);
++                        memcpy(j, q, sizeof(struct item));
+                         j++;
+                 }
+ 
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch new file +86 -0

86 lines not on this page · raw message

meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch new file +33 -0
new file mode 100644
index 0000000..f2c8e02
@@ -0,0 +1,33 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 6f6fad96addf6b00b55c98cc0d0d8026b0c1e7ca Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <[email protected]>
+Date: Wed, 27 Mar 2013 13:41:59 +0100
+Subject: [PATCH 13/17] systemd-sysctl: Handle missing /etc/sysctl.conf
+ properly
+
+Since fabe5c0e5fce730aa66e10a9c4f9fdd443d7aeda, systemd-sysctl returns
+a non-zero exit code if /etc/sysctl.conf does not exist, due to a
+broken ENOENT check.
+---
+ 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 2d43660..79f3f77 100644
+--- a/src/sysctl/sysctl.c
++++ b/src/sysctl/sysctl.c
+@@ -125,7 +125,7 @@ static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno
+ 
+         r = search_and_fopen_nulstr(path, "re", conf_file_dirs, &f);
+         if (r < 0) {
+-                if (ignore_enoent && errno == -ENOENT)
++                if (ignore_enoent && r == -ENOENT)
+                         return 0;
+ 
+                 log_error("Failed to open file '%s', ignoring: %s", path, strerror(-r));
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +7 -4
similarity index 95%
rename from meta/recipes-core/systemd/systemd_198.bb
rename to meta/recipes-core/systemd/systemd_199.bb
index 6a8db51..74b14af 100644
@@ -23,10 +23,13 @@ SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
            file://var-run.conf \
            ${UCLIBCPATCHES} \
            file://00-create-volatile.conf \
+           file://0002-readahead-chunk-on-spinning-media.patch \
+           file://0003-readahead-cleanups.patch \
+           file://0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch \
            file://init \
           "
-SRC_URI[md5sum] = "26a75e2a310f8c1c1ea9ec26ddb171c5"
-SRC_URI[sha256sum] = "444492355e5ff0ad99e0691ecaff1081ee8d45901580f47ba8b74e56107c71bf"
+SRC_URI[md5sum] = "4bb13f84ce211e93f0141774a90a2322"
+SRC_URI[sha256sum] = "8c4462a04f3ecf7f083782e5e0687913b1d33c6444bf20fa2f31df9222965fed"
 
 UCLIBCPATCHES = ""
 UCLIBCPATCHES_libc-uclibc = "file://systemd-pam-configure-check-uclibc.patch \
@@ -114,7 +117,7 @@ PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"
 PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze"
 
 USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r lock"
+GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
 
 FILES_${PN}-analyze = "${base_bindir}/systemd-analyze"
 
@@ -224,7 +227,7 @@ FILES_udev += "${base_sbindir}/udevd \
 FILES_udev-consolekit += "/lib/ConsoleKit"
 RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}"
 
-FILES_udev-utils = "${bindir}/udevadm"
+FILES_udev-utils = "${base_bindir}/udevadm ${datadir}/bash-completion/completions/udevadm"
 
 FILES_udev-hwdb = "${base_libdir}/udev/hwdb.d"
 
Signature · 1 line
1.7.9.5
#2 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Quoted 7 lines · Khem Raj

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

Backport patches for readahead fixes on spinning disks and to tackle error reported on missing /etc/sysctl.conf

Looks like it creates few new (empty) directories:

WARNING: QA Issue: systemd: Files/directories were installed but not shipped
/etc/kernel
/etc/kernel/install.d
/usr/lib/kernel
/usr/lib/kernel/install.d

Doesn't look very useful for our use-case, maybe whole kernel-install should be in separate package.
http://www.freedesktop.org/software/systemd/man/kernel-install.html

Quoted 341 lines
---
 .../0002-readahead-chunk-on-spinning-media.patch   |  142 ++++++++++++++++++++
 .../systemd/systemd/0003-readahead-cleanups.patch  |   86 ++++++++++++
 ...ctl-Handle-missing-etc-sysctl.conf-proper.patch |   33 +++++
 .../systemd/{systemd_198.bb => systemd_199.bb}     |   11 +-
 4 files changed, 268 insertions(+), 4 deletions(-)
 create mode 100644 meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
 create mode 100644 meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch
 rename meta/recipes-core/systemd/{systemd_198.bb => systemd_199.bb} (95%)
meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch new file +142 -0
new file mode 100644
index 0000000..d57a01c
@@ -0,0 +1,142 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 94243ef299425d6c7089a7a05c48c9bb8f6cf3da Mon Sep 17 00:00:00 2001
+From: Auke Kok <[email protected]>
+Date: Fri, 22 Mar 2013 15:09:45 -0700
+Subject: [PATCH 02/17] readahead: chunk on spinning media
+
+Readahead has all sorts of bad side effects depending on your
+storage media. On rotating disks, it may be degrading startup
+performance if enough requests are queued spanning linearly
+over all blocks early at boot, and mount, blkid and friends
+want to insert reads to the start of these block devices after.
+
+The end result is that on spinning disks with ext3/4 that udev
+and mounts take a very long time, and nothing really happens until
+readahead is completely finished.
+
+This has the net effect that the CPU is almost entirely idle
+for the entire period that readahead is working. We could have
+finished starting up quite a lot of services in this time if
+we were smarter at how we do readahead.
+
+This patch sorts all requests into 2 second "chunks" and sub-sorts
+each chunk by block. This adds a single cross-drive seek per "chunk"
+but has the benefit that we will have a lot of the blocks we need
+early on in the boot sequence loaded into memory faster.
+
+For a comparison of how before/after bootcharts look (ext4 on a
+mobile 5400rpm 250GB drive) please look at:
+
+    http://foo-projects.org/~sofar/blocked-tests/
+
+There are bootcharts in the "before" and "after" folders where you
+should be able to see that many low-level services finish 5-7
+seconds earlier with the patch applied (after).
+---
+ Makefile.am                       |    2 +-
+ src/readahead/readahead-collect.c |   28 +++++++++++++++++++++++++---
+ 2 files changed, 26 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 37c1cc2..5861976 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
+ systemd_readahead_LDADD = \
+ 	libsystemd-shared.la \
+ 	libsystemd-daemon.la \
+-	libudev.la
++	libudev.la -lm
+ 
+ dist_doc_DATA += \
+ 	src/readahead/sd-readahead.c \
+diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
+index 5d07f47..5d22949 100644
+--- a/src/readahead/readahead-collect.c
++++ b/src/readahead/readahead-collect.c
+@@ -42,6 +42,7 @@
+ #include <sys/vfs.h>
+ #include <getopt.h>
+ #include <sys/inotify.h>
++#include <math.h>
+ 
+ #ifdef HAVE_FANOTIFY_INIT
+ #include <sys/fanotify.h>
+@@ -67,6 +68,7 @@
+  */
+ 
+ static ReadaheadShared *shared = NULL;
++static struct timespec starttime;
+ 
+ /* Avoid collisions with the NULL pointer */
+ #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
+@@ -205,6 +207,7 @@ static unsigned long fd_first_block(int fd) {
+ struct item {
+         const char *path;
+         unsigned long block;
++        unsigned long bin;
+ };
+ 
+ static int qsort_compare(const void *a, const void *b) {
+@@ -213,6 +216,13 @@ static int qsort_compare(const void *a, const void *b) {
+         i = a;
+         j = b;
+ 
++        /* sort by bin first */
++        if (i->bin < j->bin)
++                return -1;
++        if (i->bin > j->bin)
++                return 1;
++
++        /* then sort by sector */
+         if (i->block < j->block)
+                 return -1;
+         if (i->block > j->block)
+@@ -250,6 +260,8 @@ static int collect(const char *root) {
+                 goto finish;
+         }
+ 
++        clock_gettime(CLOCK_MONOTONIC, &starttime);
++
+         /* If there's no pack file yet we lower the kernel readahead
+          * so that mincore() is accurate. If there is a pack file
+          * already we assume it is accurate enough so that kernel
+@@ -447,10 +459,21 @@ static int collect(const char *root) {
+                                         free(p);
+                                 else {
+                                         unsigned long ul;
++                                        struct timespec ts;
++                                        struct item *entry;
++
++                                        entry = new0(struct item, 1);
+ 
+                                         ul = fd_first_block(m->fd);
+ 
+-                                        if ((k = hashmap_put(files, p, SECTOR_TO_PTR(ul))) < 0) {
++                                        clock_gettime(CLOCK_MONOTONIC, &ts);
++
++                                        entry->block = ul;
++                                        entry->path = strdup(p);
++                                        entry->bin = round((ts.tv_sec - starttime.tv_sec +
++                                                     ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0);
++
++                                        if ((k = hashmap_put(files, p, entry)) < 0) {
+                                                 log_warning("set_put() failed: %s", strerror(-k));
+                                                 free(p);
+                                         }
+@@ -518,8 +541,7 @@ done:
+ 
+                 j = ordered;
+                 HASHMAP_FOREACH_KEY(q, p, files, i) {
+-                        j->path = p;
+-                        j->block = PTR_TO_SECTOR(q);
++                        memcpy(j, q, sizeof(struct item));
+                         j++;
+                 }
+ 
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch new file +86 -0
new file mode 100644
index 0000000..e0b68df
@@ -0,0 +1,86 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From b0640287f784a320661f7206c9ade07b99003fd5 Mon Sep 17 00:00:00 2001
+From: Auke Kok <[email protected]>
+Date: Tue, 26 Mar 2013 11:13:47 -0700
+Subject: [PATCH 03/17] readahead: cleanups
+
+- check for OOM
+- no need to use floats and round()
+---
+ Makefile.am                       |    2 +-
+ src/readahead/readahead-collect.c |   20 ++++++++++++++------
+ 2 files changed, 15 insertions(+), 7 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 5861976..37c1cc2 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
+ systemd_readahead_LDADD = \
+ 	libsystemd-shared.la \
+ 	libsystemd-daemon.la \
+-	libudev.la -lm
++	libudev.la
+ 
+ dist_doc_DATA += \
+ 	src/readahead/sd-readahead.c \
+diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
+index 5d22949..e2fd8df 100644
+--- a/src/readahead/readahead-collect.c
++++ b/src/readahead/readahead-collect.c
+@@ -68,7 +68,7 @@
+  */
+ 
+ static ReadaheadShared *shared = NULL;
+-static struct timespec starttime;
++static usec_t starttime;
+ 
+ /* Avoid collisions with the NULL pointer */
+ #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
+@@ -260,7 +260,7 @@ static int collect(const char *root) {
+                 goto finish;
+         }
+ 
+-        clock_gettime(CLOCK_MONOTONIC, &starttime);
++        starttime = now(CLOCK_MONOTONIC);
+ 
+         /* If there's no pack file yet we lower the kernel readahead
+          * so that mincore() is accurate. If there is a pack file
+@@ -459,19 +459,27 @@ static int collect(const char *root) {
+                                         free(p);
+                                 else {
+                                         unsigned long ul;
+-                                        struct timespec ts;
++                                        usec_t entrytime;
+                                         struct item *entry;
+ 
+                                         entry = new0(struct item, 1);
++                                        if (!entry) {
++                                                r = log_oom();
++                                                goto finish;
++                                        }
+ 
+                                         ul = fd_first_block(m->fd);
+ 
+-                                        clock_gettime(CLOCK_MONOTONIC, &ts);
++                                        entrytime = now(CLOCK_MONOTONIC);
+ 
+                                         entry->block = ul;
+                                         entry->path = strdup(p);
+-                                        entry->bin = round((ts.tv_sec - starttime.tv_sec +
+-                                                     ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0);
++                                        if (!entry->path) {
++                                                free(entry);
++                                                r = log_oom();
++                                                goto finish;
++                                        }
++                                        entry->bin = (entrytime - starttime) / 2000000;
+ 
+                                         if ((k = hashmap_put(files, p, entry)) < 0) {
+                                                 log_warning("set_put() failed: %s", strerror(-k));
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch new file +33 -0
new file mode 100644
index 0000000..f2c8e02
@@ -0,0 +1,33 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 6f6fad96addf6b00b55c98cc0d0d8026b0c1e7ca Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <[email protected]>
+Date: Wed, 27 Mar 2013 13:41:59 +0100
+Subject: [PATCH 13/17] systemd-sysctl: Handle missing /etc/sysctl.conf
+ properly
+
+Since fabe5c0e5fce730aa66e10a9c4f9fdd443d7aeda, systemd-sysctl returns
+a non-zero exit code if /etc/sysctl.conf does not exist, due to a
+broken ENOENT check.
+---
+ 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 2d43660..79f3f77 100644
+--- a/src/sysctl/sysctl.c
++++ b/src/sysctl/sysctl.c
+@@ -125,7 +125,7 @@ static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno
+ 
+         r = search_and_fopen_nulstr(path, "re", conf_file_dirs, &f);
+         if (r < 0) {
+-                if (ignore_enoent && errno == -ENOENT)
++                if (ignore_enoent && r == -ENOENT)
+                         return 0;
+ 
+                 log_error("Failed to open file '%s', ignoring: %s", path, strerror(-r));
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +7 -4
similarity index 95%
rename from meta/recipes-core/systemd/systemd_198.bb
rename to meta/recipes-core/systemd/systemd_199.bb
index 6a8db51..74b14af 100644
@@ -23,10 +23,13 @@ SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
            file://var-run.conf \
            ${UCLIBCPATCHES} \
            file://00-create-volatile.conf \
+           file://0002-readahead-chunk-on-spinning-media.patch \
+           file://0003-readahead-cleanups.patch \
+           file://0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch \
            file://init \
           "
-SRC_URI[md5sum] = "26a75e2a310f8c1c1ea9ec26ddb171c5"
-SRC_URI[sha256sum] = "444492355e5ff0ad99e0691ecaff1081ee8d45901580f47ba8b74e56107c71bf"
+SRC_URI[md5sum] = "4bb13f84ce211e93f0141774a90a2322"
+SRC_URI[sha256sum] = "8c4462a04f3ecf7f083782e5e0687913b1d33c6444bf20fa2f31df9222965fed"
 
 UCLIBCPATCHES = ""
 UCLIBCPATCHES_libc-uclibc = "file://systemd-pam-configure-check-uclibc.patch \
@@ -114,7 +117,7 @@ PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"
 PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze"
 
 USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-r lock"
+GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
 
 FILES_${PN}-analyze = "${base_bindir}/systemd-analyze"
 
@@ -224,7 +227,7 @@ FILES_udev += "${base_sbindir}/udevd \
 FILES_udev-consolekit += "/lib/ConsoleKit"
 RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}"
 
-FILES_udev-utils = "${bindir}/udevadm"
+FILES_udev-utils = "${base_bindir}/udevadm ${datadir}/bash-completion/completions/udevadm"
 
 FILES_udev-hwdb = "${base_libdir}/udev/hwdb.d"
 
Signature · 7 lines
1.7.9.5


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
author
#3 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Quoted 9 lines · Martin Jansa
Quoted 7 lines · Khem Raj

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

Backport patches for readahead fixes on spinning disks and to tackle error reported on missing /etc/sysctl.conf

Quoted 8 lines

Looks like it creates few new (empty) directories:

WARNING: QA Issue: systemd: Files/directories were installed but not shipped
/etc/kernel
/etc/kernel/install.d
/usr/lib/kernel
/usr/lib/kernel/install.d

OK I have created a new package called systems-kernel-install and these dirs along with kernel-install binary are moved into the new package and updated the pull request.

Quoted 349 lines

Doesn't look very useful for our use-case, maybe whole kernel-install should be in separate package.
http://www.freedesktop.org/software/systemd/man/kernel-install.html

Quoted 341 lines

---

.../0002-readahead-chunk-on-spinning-media.patch   |  142 ++++++++++++++++++++
.../systemd/systemd/0003-readahead-cleanups.patch  |   86 ++++++++++++
...ctl-Handle-missing-etc-sysctl.conf-proper.patch |   33 +++++
.../systemd/{systemd_198.bb => systemd_199.bb}     |   11 +-
4 files changed, 268 insertions(+), 4 deletions(-)

create mode 100644 meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch create mode 100644 meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
create mode 100644 meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch rename meta/recipes-core/systemd/{systemd_198.bb => systemd_199.bb} (95%)

meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch new file +142 -0
new file mode 100644
index 0000000..d57a01c
@@ -0,0 +1,142 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 94243ef299425d6c7089a7a05c48c9bb8f6cf3da Mon Sep 17 00:00:00 2001
+From: Auke Kok <[email protected]>
+Date: Fri, 22 Mar 2013 15:09:45 -0700
+Subject: [PATCH 02/17] readahead: chunk on spinning media
+
+Readahead has all sorts of bad side effects depending on your
+storage media. On rotating disks, it may be degrading startup
+performance if enough requests are queued spanning linearly
+over all blocks early at boot, and mount, blkid and friends
+want to insert reads to the start of these block devices after.
+
+The end result is that on spinning disks with ext3/4 that udev
+and mounts take a very long time, and nothing really happens until
+readahead is completely finished.
+
+This has the net effect that the CPU is almost entirely idle
+for the entire period that readahead is working. We could have
+finished starting up quite a lot of services in this time if
+we were smarter at how we do readahead.
+
+This patch sorts all requests into 2 second "chunks" and sub-sorts
+each chunk by block. This adds a single cross-drive seek per "chunk"
+but has the benefit that we will have a lot of the blocks we need
+early on in the boot sequence loaded into memory faster.
+
+For a comparison of how before/after bootcharts look (ext4 on a
+mobile 5400rpm 250GB drive) please look at:
+
+    http://foo-projects.org/~sofar/blocked-tests/
+
+There are bootcharts in the "before" and "after" folders where you
+should be able to see that many low-level services finish 5-7
+seconds earlier with the patch applied (after).
+---
+ Makefile.am                       |    2 +-
+ src/readahead/readahead-collect.c |   28 +++++++++++++++++++++++++---
+ 2 files changed, 26 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 37c1cc2..5861976 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
+ systemd_readahead_LDADD = \
+ 	libsystemd-shared.la \
+ 	libsystemd-daemon.la \
+-	libudev.la
++	libudev.la -lm
+ 
+ dist_doc_DATA += \
+ 	src/readahead/sd-readahead.c \
+diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
+index 5d07f47..5d22949 100644
+--- a/src/readahead/readahead-collect.c
++++ b/src/readahead/readahead-collect.c
+@@ -42,6 +42,7 @@
+ #include <sys/vfs.h>
+ #include <getopt.h>
+ #include <sys/inotify.h>
++#include <math.h>
+ 
+ #ifdef HAVE_FANOTIFY_INIT
+ #include <sys/fanotify.h>
+@@ -67,6 +68,7 @@
+  */
+ 
+ static ReadaheadShared *shared = NULL;
++static struct timespec starttime;
+ 
+ /* Avoid collisions with the NULL pointer */
+ #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
+@@ -205,6 +207,7 @@ static unsigned long fd_first_block(int fd) {
+ struct item {
+         const char *path;
+         unsigned long block;
++        unsigned long bin;
+ };
+ 
+ static int qsort_compare(const void *a, const void *b) {
+@@ -213,6 +216,13 @@ static int qsort_compare(const void *a, const void *b) {
+         i = a;
+         j = b;
+ 
++        /* sort by bin first */
++        if (i->bin < j->bin)
++                return -1;
++        if (i->bin > j->bin)
++                return 1;
++
++        /* then sort by sector */
+         if (i->block < j->block)
+                 return -1;
+         if (i->block > j->block)
+@@ -250,6 +260,8 @@ static int collect(const char *root) {
+                 goto finish;
+         }
+ 
++        clock_gettime(CLOCK_MONOTONIC, &starttime);
++
+         /* If there's no pack file yet we lower the kernel readahead
+          * so that mincore() is accurate. If there is a pack file
+          * already we assume it is accurate enough so that kernel
+@@ -447,10 +459,21 @@ static int collect(const char *root) {
+                                         free(p);
+                                 else {
+                                         unsigned long ul;
++                                        struct timespec ts;
++                                        struct item *entry;
++
++                                        entry = new0(struct item, 1);
+ 
+                                         ul = fd_first_block(m->fd);
+ 
+-                                        if ((k = hashmap_put(files, p, SECTOR_TO_PTR(ul))) < 0) {
++                                        clock_gettime(CLOCK_MONOTONIC, &ts);
++
++                                        entry->block = ul;
++                                        entry->path = strdup(p);
++                                        entry->bin = round((ts.tv_sec - starttime.tv_sec +
++                                                     ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0);
++
++                                        if ((k = hashmap_put(files, p, entry)) < 0) {
+                                                 log_warning("set_put() failed: %s", strerror(-k));
+                                                 free(p);
+                                         }
+@@ -518,8 +541,7 @@ done:
+ 
+                 j = ordered;
+                 HASHMAP_FOREACH_KEY(q, p, files, i) {
+-                        j->path = p;
+-                        j->block = PTR_TO_SECTOR(q);
++                        memcpy(j, q, sizeof(struct item));
+                         j++;
+                 }
+ 
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch new file +86 -0
new file mode 100644
index 0000000..e0b68df
@@ -0,0 +1,86 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From b0640287f784a320661f7206c9ade07b99003fd5 Mon Sep 17 00:00:00 2001
+From: Auke Kok <[email protected]>
+Date: Tue, 26 Mar 2013 11:13:47 -0700
+Subject: [PATCH 03/17] readahead: cleanups
+
+- check for OOM
+- no need to use floats and round()
+---
+ Makefile.am                       |    2 +-
+ src/readahead/readahead-collect.c |   20 ++++++++++++++------
+ 2 files changed, 15 insertions(+), 7 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 5861976..37c1cc2 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
+ systemd_readahead_LDADD = \
+ 	libsystemd-shared.la \
+ 	libsystemd-daemon.la \
+-	libudev.la -lm
++	libudev.la
+ 
+ dist_doc_DATA += \
+ 	src/readahead/sd-readahead.c \
+diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
+index 5d22949..e2fd8df 100644
+--- a/src/readahead/readahead-collect.c
++++ b/src/readahead/readahead-collect.c
+@@ -68,7 +68,7 @@
+  */
+ 
+ static ReadaheadShared *shared = NULL;
+-static struct timespec starttime;
++static usec_t starttime;
+ 
+ /* Avoid collisions with the NULL pointer */
+ #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
+@@ -260,7 +260,7 @@ static int collect(const char *root) {
+                 goto finish;
+         }
+ 
+-        clock_gettime(CLOCK_MONOTONIC, &starttime);
++        starttime = now(CLOCK_MONOTONIC);
+ 
+         /* If there's no pack file yet we lower the kernel readahead
+          * so that mincore() is accurate. If there is a pack file
+@@ -459,19 +459,27 @@ static int collect(const char *root) {
+                                         free(p);
+                                 else {
+                                         unsigned long ul;
+-                                        struct timespec ts;
++                                        usec_t entrytime;
+                                         struct item *entry;
+ 
+                                         entry = new0(struct item, 1);
++                                        if (!entry) {
++                                                r = log_oom();
++                                                goto finish;
++                                        }
+ 
+                                         ul = fd_first_block(m->fd);
+ 
+-                                        clock_gettime(CLOCK_MONOTONIC, &ts);
++                                        entrytime = now(CLOCK_MONOTONIC);
+ 
+                                         entry->block = ul;
+                                         entry->path = strdup(p);
+-                                        entry->bin = round((ts.tv_sec - starttime.tv_sec +
+-                                                     ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0);
++                                        if (!entry->path) {
++                                                free(entry);
++                                                r = log_oom();
++                                                goto finish;
++                                        }
++                                        entry->bin = (entrytime - starttime) / 2000000;
+ 
+                                         if ((k = hashmap_put(files, p, entry)) < 0) {
+                                                 log_warning("set_put() failed: %s", strerror(-k));
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch new file +33 -0
new file mode 100644
index 0000000..f2c8e02
@@ -0,0 +1,33 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 6f6fad96addf6b00b55c98cc0d0d8026b0c1e7ca Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <[email protected]>
+Date: Wed, 27 Mar 2013 13:41:59 +0100
+Subject: [PATCH 13/17] systemd-sysctl: Handle missing /etc/sysctl.conf
+ properly
+
+Since fabe5c0e5fce730aa66e10a9c4f9fdd443d7aeda, systemd-sysctl returns
+a non-zero exit code if /etc/sysctl.conf does not exist, due to a
+broken ENOENT check.
+---
+ 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 2d43660..79f3f77 100644
+--- a/src/sysctl/sysctl.c
++++ b/src/sysctl/sysctl.c
+@@ -125,7 +125,7 @@ static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno
+ 
+         r = search_and_fopen_nulstr(path, "re", conf_file_dirs, &f);
+         if (r < 0) {
+-                if (ignore_enoent && errno == -ENOENT)
++                if (ignore_enoent && r == -ENOENT)
+                         return 0;
+ 
+                 log_error("Failed to open file '%s', ignoring: %s", path, strerror(-r));
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +5 -2
similarity index 95%
rename from meta/recipes-core/systemd/systemd_198.bb
rename to meta/recipes-core/systemd/systemd_199.bb
index 6a8db51..74b14af 100644
@@ -23,10 +23,13 @@ SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
           file://var-run.conf \
           ${UCLIBCPATCHES} \
           file://00-create-volatile.conf \
+           file://0002-readahead-chunk-on-spinning-media.patch \
+           file://0003-readahead-cleanups.patch \
+           file://0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch \
           file://init \
          "
-SRC_URI[md5sum] = "26a75e2a310f8c1c1ea9ec26ddb171c5"
-SRC_URI[sha256sum] = "444492355e5ff0ad99e0691ecaff1081ee8d45901580f47ba8b74e56107c71bf"
+SRC_URI[md5sum] = "4bb13f84ce211e93f0141774a90a2322"
+SRC_URI[sha256sum] = "8c4462a04f3ecf7f083782e5e0687913b1d33c6444bf20fa2f31df9222965fed"
 

UCLIBCPATCHES = ""
UCLIBCPATCHES_libc-uclibc = "file://systemd-pam-configure-check-uclibc.patch \

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +0 -0
@@ -114,7 +117,7 @@ PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"

PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze"

USERADD_PACKAGES = "${PN}"

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +1 -1
-GROUPADD_PARAM_${PN} = "-r lock"
+GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"

FILES_${PN}-analyze = "${base_bindir}/systemd-analyze"

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +0 -0
@@ -224,7 +227,7 @@ FILES_udev += "${base_sbindir}/udevd \

FILES_udev-consolekit += "/lib/ConsoleKit"
RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}"

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +1 -1
-FILES_udev-utils = "${bindir}/udevadm"
+FILES_udev-utils = "${base_bindir}/udevadm ${datadir}/bash-completion/completions/udevadm"

FILES_udev-hwdb = "${base_libdir}/udev/hwdb.d"

Signature · 7 lines
1.7.9.5


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#4 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Op 29 mrt. 2013, om 06:28 heeft Khem Raj <[email protected]> het volgende geschreven:

Quoted 22 lines · Martin Jansa
Quoted 10 lines · Khem Raj
Quoted 7 lines

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

Backport patches for readahead fixes on spinning disks and to tackle error reported on missing /etc/sysctl.conf

Quoted 8 lines

Looks like it creates few new (empty) directories:

WARNING: QA Issue: systemd: Files/directories were installed but not shipped
/etc/kernel
/etc/kernel/install.d
/usr/lib/kernel
/usr/lib/kernel/install.d

Quoted 2 lines

OK I have created a new package called systems-kernel-install and these dirs along with kernel-install binary are moved into the new package and updated the pull request.

There's a new releases, 200, mostly bugfixes and some hwdp and keymap updates. Your 199 patch has the most important fixes, so I'm not sure if it's worth to respin to 200 or get this in and update to 200 (or 201) later.

Quoted 357 lines
Quoted 340 lines

Doesn't look very useful for our use-case, maybe whole kernel-install should be in separate package.
http://www.freedesktop.org/software/systemd/man/kernel-install.html

Quoted 333 lines

---

.../0002-readahead-chunk-on-spinning-media.patch   |  142 ++++++++++++++++++++
.../systemd/systemd/0003-readahead-cleanups.patch  |   86 ++++++++++++
...ctl-Handle-missing-etc-sysctl.conf-proper.patch |   33 +++++
.../systemd/{systemd_198.bb => systemd_199.bb}     |   11 +-
4 files changed, 268 insertions(+), 4 deletions(-)

create mode 100644 meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch create mode 100644 meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
create mode 100644 meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch rename meta/recipes-core/systemd/{systemd_198.bb => systemd_199.bb} (95%)

meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch new file +142 -0
new file mode 100644
index 0000000..d57a01c
@@ -0,0 +1,142 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 94243ef299425d6c7089a7a05c48c9bb8f6cf3da Mon Sep 17 00:00:00 2001
+From: Auke Kok <[email protected]>
+Date: Fri, 22 Mar 2013 15:09:45 -0700
+Subject: [PATCH 02/17] readahead: chunk on spinning media
+
+Readahead has all sorts of bad side effects depending on your
+storage media. On rotating disks, it may be degrading startup
+performance if enough requests are queued spanning linearly
+over all blocks early at boot, and mount, blkid and friends
+want to insert reads to the start of these block devices after.
+
+The end result is that on spinning disks with ext3/4 that udev
+and mounts take a very long time, and nothing really happens until
+readahead is completely finished.
+
+This has the net effect that the CPU is almost entirely idle
+for the entire period that readahead is working. We could have
+finished starting up quite a lot of services in this time if
+we were smarter at how we do readahead.
+
+This patch sorts all requests into 2 second "chunks" and sub-sorts
+each chunk by block. This adds a single cross-drive seek per "chunk"
+but has the benefit that we will have a lot of the blocks we need
+early on in the boot sequence loaded into memory faster.
+
+For a comparison of how before/after bootcharts look (ext4 on a
+mobile 5400rpm 250GB drive) please look at:
+
+    http://foo-projects.org/~sofar/blocked-tests/
+
+There are bootcharts in the "before" and "after" folders where you
+should be able to see that many low-level services finish 5-7
+seconds earlier with the patch applied (after).
+---
+ Makefile.am                       |    2 +-
+ src/readahead/readahead-collect.c |   28 +++++++++++++++++++++++++---
+ 2 files changed, 26 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 37c1cc2..5861976 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
+ systemd_readahead_LDADD = \
+ 	libsystemd-shared.la \
+ 	libsystemd-daemon.la \
+-	libudev.la
++	libudev.la -lm
+ 
+ dist_doc_DATA += \
+ 	src/readahead/sd-readahead.c \
+diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
+index 5d07f47..5d22949 100644
+--- a/src/readahead/readahead-collect.c
++++ b/src/readahead/readahead-collect.c
+@@ -42,6 +42,7 @@
+ #include <sys/vfs.h>
+ #include <getopt.h>
+ #include <sys/inotify.h>
++#include <math.h>
+ 
+ #ifdef HAVE_FANOTIFY_INIT
+ #include <sys/fanotify.h>
+@@ -67,6 +68,7 @@
+  */
+ 
+ static ReadaheadShared *shared = NULL;
++static struct timespec starttime;
+ 
+ /* Avoid collisions with the NULL pointer */
+ #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
+@@ -205,6 +207,7 @@ static unsigned long fd_first_block(int fd) {
+ struct item {
+         const char *path;
+         unsigned long block;
++        unsigned long bin;
+ };
+ 
+ static int qsort_compare(const void *a, const void *b) {
+@@ -213,6 +216,13 @@ static int qsort_compare(const void *a, const void *b) {
+         i = a;
+         j = b;
+ 
++        /* sort by bin first */
++        if (i->bin < j->bin)
++                return -1;
++        if (i->bin > j->bin)
++                return 1;
++
++        /* then sort by sector */
+         if (i->block < j->block)
+                 return -1;
+         if (i->block > j->block)
+@@ -250,6 +260,8 @@ static int collect(const char *root) {
+                 goto finish;
+         }
+ 
++        clock_gettime(CLOCK_MONOTONIC, &starttime);
++
+         /* If there's no pack file yet we lower the kernel readahead
+          * so that mincore() is accurate. If there is a pack file
+          * already we assume it is accurate enough so that kernel
+@@ -447,10 +459,21 @@ static int collect(const char *root) {
+                                         free(p);
+                                 else {
+                                         unsigned long ul;
++                                        struct timespec ts;
++                                        struct item *entry;
++
++                                        entry = new0(struct item, 1);
+ 
+                                         ul = fd_first_block(m->fd);
+ 
+-                                        if ((k = hashmap_put(files, p, SECTOR_TO_PTR(ul))) < 0) {
++                                        clock_gettime(CLOCK_MONOTONIC, &ts);
++
++                                        entry->block = ul;
++                                        entry->path = strdup(p);
++                                        entry->bin = round((ts.tv_sec - starttime.tv_sec +
++                                                     ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0);
++
++                                        if ((k = hashmap_put(files, p, entry)) < 0) {
+                                                 log_warning("set_put() failed: %s", strerror(-k));
+                                                 free(p);
+                                         }
+@@ -518,8 +541,7 @@ done:
+ 
+                 j = ordered;
+                 HASHMAP_FOREACH_KEY(q, p, files, i) {
+-                        j->path = p;
+-                        j->block = PTR_TO_SECTOR(q);
++                        memcpy(j, q, sizeof(struct item));
+                         j++;
+                 }
+ 
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch new file +86 -0
new file mode 100644
index 0000000..e0b68df
@@ -0,0 +1,86 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From b0640287f784a320661f7206c9ade07b99003fd5 Mon Sep 17 00:00:00 2001
+From: Auke Kok <[email protected]>
+Date: Tue, 26 Mar 2013 11:13:47 -0700
+Subject: [PATCH 03/17] readahead: cleanups
+
+- check for OOM
+- no need to use floats and round()
+---
+ Makefile.am                       |    2 +-
+ src/readahead/readahead-collect.c |   20 ++++++++++++++------
+ 2 files changed, 15 insertions(+), 7 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 5861976..37c1cc2 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
+ systemd_readahead_LDADD = \
+ 	libsystemd-shared.la \
+ 	libsystemd-daemon.la \
+-	libudev.la -lm
++	libudev.la
+ 
+ dist_doc_DATA += \
+ 	src/readahead/sd-readahead.c \
+diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
+index 5d22949..e2fd8df 100644
+--- a/src/readahead/readahead-collect.c
++++ b/src/readahead/readahead-collect.c
+@@ -68,7 +68,7 @@
+  */
+ 
+ static ReadaheadShared *shared = NULL;
+-static struct timespec starttime;
++static usec_t starttime;
+ 
+ /* Avoid collisions with the NULL pointer */
+ #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
+@@ -260,7 +260,7 @@ static int collect(const char *root) {
+                 goto finish;
+         }
+ 
+-        clock_gettime(CLOCK_MONOTONIC, &starttime);
++        starttime = now(CLOCK_MONOTONIC);
+ 
+         /* If there's no pack file yet we lower the kernel readahead
+          * so that mincore() is accurate. If there is a pack file
+@@ -459,19 +459,27 @@ static int collect(const char *root) {
+                                         free(p);
+                                 else {
+                                         unsigned long ul;
+-                                        struct timespec ts;
++                                        usec_t entrytime;
+                                         struct item *entry;
+ 
+                                         entry = new0(struct item, 1);
++                                        if (!entry) {
++                                                r = log_oom();
++                                                goto finish;
++                                        }
+ 
+                                         ul = fd_first_block(m->fd);
+ 
+-                                        clock_gettime(CLOCK_MONOTONIC, &ts);
++                                        entrytime = now(CLOCK_MONOTONIC);
+ 
+                                         entry->block = ul;
+                                         entry->path = strdup(p);
+-                                        entry->bin = round((ts.tv_sec - starttime.tv_sec +
+-                                                     ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0);
++                                        if (!entry->path) {
++                                                free(entry);
++                                                r = log_oom();
++                                                goto finish;
++                                        }
++                                        entry->bin = (entrytime - starttime) / 2000000;
+ 
+                                         if ((k = hashmap_put(files, p, entry)) < 0) {
+                                                 log_warning("set_put() failed: %s", strerror(-k));
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch new file +33 -0
new file mode 100644
index 0000000..f2c8e02
@@ -0,0 +1,33 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 6f6fad96addf6b00b55c98cc0d0d8026b0c1e7ca Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <[email protected]>
+Date: Wed, 27 Mar 2013 13:41:59 +0100
+Subject: [PATCH 13/17] systemd-sysctl: Handle missing /etc/sysctl.conf
+ properly
+
+Since fabe5c0e5fce730aa66e10a9c4f9fdd443d7aeda, systemd-sysctl returns
+a non-zero exit code if /etc/sysctl.conf does not exist, due to a
+broken ENOENT check.
+---
+ 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 2d43660..79f3f77 100644
+--- a/src/sysctl/sysctl.c
++++ b/src/sysctl/sysctl.c
+@@ -125,7 +125,7 @@ static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno
+ 
+         r = search_and_fopen_nulstr(path, "re", conf_file_dirs, &f);
+         if (r < 0) {
+-                if (ignore_enoent && errno == -ENOENT)
++                if (ignore_enoent && r == -ENOENT)
+                         return 0;
+ 
+                 log_error("Failed to open file '%s', ignoring: %s", path, strerror(-r));
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +5 -2
similarity index 95%
rename from meta/recipes-core/systemd/systemd_198.bb
rename to meta/recipes-core/systemd/systemd_199.bb
index 6a8db51..74b14af 100644
@@ -23,10 +23,13 @@ SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
          file://var-run.conf \
          ${UCLIBCPATCHES} \
          file://00-create-volatile.conf \
+           file://0002-readahead-chunk-on-spinning-media.patch \
+           file://0003-readahead-cleanups.patch \
+           file://0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch \
          file://init \
         "
-SRC_URI[md5sum] = "26a75e2a310f8c1c1ea9ec26ddb171c5"
-SRC_URI[sha256sum] = "444492355e5ff0ad99e0691ecaff1081ee8d45901580f47ba8b74e56107c71bf"
+SRC_URI[md5sum] = "4bb13f84ce211e93f0141774a90a2322"
+SRC_URI[sha256sum] = "8c4462a04f3ecf7f083782e5e0687913b1d33c6444bf20fa2f31df9222965fed"
 

UCLIBCPATCHES = ""
UCLIBCPATCHES_libc-uclibc = "file://systemd-pam-configure-check-uclibc.patch \

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +0 -0
@@ -114,7 +117,7 @@ PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"

PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze"

USERADD_PACKAGES = "${PN}"

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +1 -1
-GROUPADD_PARAM_${PN} = "-r lock"
+GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"

FILES_${PN}-analyze = "${base_bindir}/systemd-analyze"

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +0 -0
@@ -224,7 +227,7 @@ FILES_udev += "${base_sbindir}/udevd \

FILES_udev-consolekit += "/lib/ConsoleKit"
RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}"

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +1 -1
-FILES_udev-utils = "${bindir}/udevadm"
+FILES_udev-utils = "${base_bindir}/udevadm ${datadir}/bash-completion/completions/udevadm"

FILES_udev-hwdb = "${base_libdir}/udev/hwdb.d"

Quoted 11 lines
Quoted 8 lines
Signature · 7 lines
1.7.9.5


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

author
#5 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Quoted 25 lines · Koen Kooi

Op 29 mrt. 2013, om 06:28 heeft Khem Raj <[email protected]> het volgende geschreven:

Quoted 22 lines · Martin Jansa
Quoted 18 lines · Khem Raj
Quoted 7 lines

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

Backport patches for readahead fixes on spinning disks and to tackle error reported on missing /etc/sysctl.conf

Looks like it creates few new (empty) directories:

WARNING: QA Issue: systemd: Files/directories were installed but not shipped
/etc/kernel
/etc/kernel/install.d
/usr/lib/kernel
/usr/lib/kernel/install.d

Quoted 4 lines
Quoted 2 lines

OK I have created a new package called systems-kernel-install and these dirs along with kernel-install binary are moved into the new package and updated the pull request.

There's a new releases, 200, mostly bugfixes and some hwdp and keymap updates. Your 199 patch has the most important fixes, so I'm not sure if it's worth to respin to 200 or get this in and update to 200 (or 201) later.

yeah lets stay at 199 for some time and cherry pick fixes we need.

#6 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Quoted 28 lines · Khem Raj
Quoted 25 lines · Koen Kooi

Op 29 mrt. 2013, om 06:28 heeft Khem Raj <[email protected]> het volgende geschreven:

Quoted 22 lines · Martin Jansa
Quoted 18 lines · Khem Raj
Quoted 7 lines

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

Backport patches for readahead fixes on spinning disks and to tackle error reported on missing /etc/sysctl.conf

Looks like it creates few new (empty) directories:

WARNING: QA Issue: systemd: Files/directories were installed but not shipped
/etc/kernel
/etc/kernel/install.d
/usr/lib/kernel
/usr/lib/kernel/install.d

Quoted 9 lines
Quoted 4 lines
Quoted 2 lines

OK I have created a new package called systems-kernel-install and these dirs along with kernel-install binary are moved into the new package and updated the pull request.

There's a new releases, 200, mostly bugfixes and some hwdp and keymap updates. Your 199 patch has the most important fixes, so I'm not sure if it's worth to respin to 200 or get this in and update to 200 (or 201) later.

yeah lets stay at 199 for some time and cherry pick fixes we need.

Anybody an idea why I get this when building from scratch:

| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file

| make[2]: *** [org.freedesktop.systemd1.Manager.xml] Error 1
| make[2]: *** Waiting for unfinished jobs....
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:

'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Unit.xml] Error 1
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Service.xml] Error 1
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Job.xml] Error 1
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
/home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file

| 'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Socket.xml] Error 1
| make[2]: *** [org.freedesktop.systemd1.Timer.xml] Error 1
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:

'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Target.xml] Error 1

Andreas

#7 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Quoted 56 lines · Andreas Müller
Quoted 28 lines · Khem Raj
Quoted 25 lines · Koen Kooi

Op 29 mrt. 2013, om 06:28 heeft Khem Raj <[email protected]> het volgende geschreven:

Quoted 22 lines · Martin Jansa
Quoted 18 lines · Khem Raj
Quoted 7 lines

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

Backport patches for readahead fixes on spinning disks and to tackle error reported on missing /etc/sysctl.conf

Looks like it creates few new (empty) directories:

WARNING: QA Issue: systemd: Files/directories were installed but not shipped
/etc/kernel
/etc/kernel/install.d
/usr/lib/kernel
/usr/lib/kernel/install.d

Quoted 9 lines
Quoted 4 lines
Quoted 2 lines

OK I have created a new package called systems-kernel-install and these dirs along with kernel-install binary are moved into the new package and updated the pull request.

There's a new releases, 200, mostly bugfixes and some hwdp and keymap updates. Your 199 patch has the most important fixes, so I'm not sure if it's worth to respin to 200 or get this in and update to 200 (or 201) later.

yeah lets stay at 199 for some time and cherry pick fixes we need.

Anybody an idea why I get this when building from scratch:

| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file

| make[2]: *** [org.freedesktop.systemd1.Manager.xml] Error 1
| make[2]: *** Waiting for unfinished jobs....
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:

'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Unit.xml] Error 1
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Service.xml] Error 1
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Job.xml] Error 1
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
/home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file

Quoted 7 lines
| 'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Socket.xml] Error 1
| make[2]: *** [org.freedesktop.systemd1.Timer.xml] Error 1
| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:

'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Target.xml] Error 1

FYI: Last building version is 197

Andreas

#8 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

In reply to Andreas Müller
Quoted 6 lines · Andreas Müller

Anybody an idea why I get this when building from scratch:

| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Manager.xml] Error 1
| make[2]: *** Waiting for unfinished jobs....

http://lists.freedesktop.org/archives/systemd-devel/2013-February/008751.html

#9 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Quoted 12 lines · Colin Walters
Quoted 6 lines · Andreas Müller

Anybody an idea why I get this when building from scratch:

| /home/Superandy/tmp/oe-core-eglibc/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-objcopy:
'systemd': No such file
| make[2]: *** [org.freedesktop.systemd1.Manager.xml] Error 1
| make[2]: *** Waiting for unfinished jobs....

http://lists.freedesktop.org/archives/systemd-devel/2013-February/008751.html

Had no make-native so did manually build it and now systemd compiles fine now.

Is there a reason why we don't build make-native - If remember correct there were fixes also for webkit-gtk parallel-make issues (ok - these are wiped away for me by retry loop).

Andreas

#10 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Hi,

Quoted 5 lines · Andreas Müller

Had no make-native so did manually build it and now systemd compiles fine now.

Is there a reason why we don't build make-native - If remember correct there were fixes also for webkit-gtk parallel-make issues (ok - these are wiped away for me by retry loop).

We don't build make-native because any real distribution doesn't ship an un-patched make 3.82 as it can't actually be used to compile pretty large chunks of a distro. Most distributions have either kept with 3.81 or use 3.82 with patches, and thanks to Colin we have the patches in our own make-native now.

My hunch is that you're using Debian with make from experimental. The maintainers appear to be waiting for upstream to release 3.83 instead of pulling in patches, so my advise is not to use it - 3.82 is genuinely broken.

Ross

A message that is not in the archive (sent off-list or not yet received): CALbNGRRCFyiD+6eY1xMe6o8dqtpuyf6YAEa7xKZ=f8wBv262uA@mail.gmail.com

A message that is not in the archive (sent off-list or not yet received): CAJTo0Ladru_hAgyL32SX8bDet3euSFz9Jf=jiJxBJqiNv8eseQ@mail.gmail.com

A message that is not in the archive (sent off-list or not yet received): CALbNGRQ+BqGarZWxmtj50S4rJbDtNPGqB=eWvotBVdVAcviedQ@mail.gmail.com

#14 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Quoted 9 lines · Andreas Müller
Quoted 8 lines · Ross

Hi Andreas,

Quoted 1 line · Andreas Müller

It is Fedora 14 and I don't have the time to update the machine.

Genuinely shocked that they shipped GNU make 3.82 without the patches to make it work.

Quoted 9 lines
Quoted 7 lines
Quoted 4 lines

Since there seems no support for little poor old-fashioned people like
me: Is there a configuration option so I can force to build make-native on that machine (checked local.conf.sample / site.conf.sample / yocto reference manual but did not find a hint)?

From a quick look, BASEDEPENDS_append = " make-native" might do the trick.

Thanks

This came too early because - before I tested it. I get

NOTE: multiple providers are available for make-native (make-native, remake-native)
NOTE: consider defining a PREFERRED_PROVIDER entry to match make-native
NOTE: Preparing runqueue
ERROR: Unbuildable tasks were found.
These are usually caused by circular dependencies and any circular dependency chains found will be printed below. Increase the debug level to see a list of unbuildable tasks.

Identifying dependency loops (this may take a short while)...

ERROR: An uncaught exception occured in runqueue, please see the failure below:
ERROR: Running idle function
Traceback (most recent call last):
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=175, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175]):
if scan:
> find_chains(revdep, copy.deepcopy(prev_chain))
for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=176, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176]):
if scan:
> find_chains(revdep, copy.deepcopy(prev_chain))
for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=1142, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176, 1142]):
if scan:
> find_chains(revdep, copy.deepcopy(prev_chain))
for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=1143, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176, 1142, 1143]):
if scan:
> find_chains(revdep, copy.deepcopy(prev_chain))
for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 301, in find_chains(taskid=1139, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176, 1142, 1143, 1139]):
find_chains(revdep, copy.deepcopy(prev_chain))
> for dep in explored_deps[revdep]:
if dep not in total_deps:
KeyError: 1140

NOTE: Tasks Summary: Attempted 0 tasks of which 0 didn't need to be rerun and all succeeded.

Summary: There was 1 WARNING message shown.
Summary: There were 3 ERROR messages shown, returning a non-zero exit code.

bitbake make-native works fine.

What other options do I have to force build of make-native. Why I
insist: On both of my machines (Fedora 14 / 15) build of systemd fails.

Andreas

#15 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Quoted 75 lines · Andreas Müller
Quoted 9 lines · Andreas Müller
Quoted 8 lines · Ross

Hi Andreas,

Quoted 1 line · Andreas Müller

It is Fedora 14 and I don't have the time to update the machine.

Genuinely shocked that they shipped GNU make 3.82 without the patches to make it work.

Quoted 9 lines
Quoted 7 lines
Quoted 4 lines

Since there seems no support for little poor old-fashioned people like
me: Is there a configuration option so I can force to build make-native on that machine (checked local.conf.sample / site.conf.sample / yocto reference manual but did not find a hint)?

From a quick look, BASEDEPENDS_append = " make-native" might do the trick.

Thanks

This came too early because - before I tested it. I get

NOTE: multiple providers are available for make-native (make-native, remake-native)
NOTE: consider defining a PREFERRED_PROVIDER entry to match make-native
NOTE: Preparing runqueue
ERROR: Unbuildable tasks were found.
These are usually caused by circular dependencies and any circular dependency chains found will be printed below. Increase the debug level to see a list of unbuildable tasks.

Identifying dependency loops (this may take a short while)...

ERROR: An uncaught exception occured in runqueue, please see the failure below:
ERROR: Running idle function
Traceback (most recent call last):
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=175, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175]):
if scan:
> find_chains(revdep, copy.deepcopy(prev_chain))
for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=176, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176]):
if scan:
> find_chains(revdep, copy.deepcopy(prev_chain))
for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=1142, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176, 1142]):
if scan:
> find_chains(revdep, copy.deepcopy(prev_chain))
for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=1143, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176, 1142, 1143]):
if scan:
> find_chains(revdep, copy.deepcopy(prev_chain))
for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 301, in find_chains(taskid=1139, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176, 1142, 1143, 1139]):
find_chains(revdep, copy.deepcopy(prev_chain))
> for dep in explored_deps[revdep]:
if dep not in total_deps:
KeyError: 1140

NOTE: Tasks Summary: Attempted 0 tasks of which 0 didn't need to be rerun and all succeeded.

Summary: There was 1 WARNING message shown.
Summary: There were 3 ERROR messages shown, returning a non-zero exit code.

Quoted 5 lines

bitbake make-native works fine.

What other options do I have to force build of make-native. Why I
insist: On both of my machines (Fedora 14 / 15) build of systemd fails.

In local.conf do something like:

DEPENDS_append_pn-systemd = " make-native"

By adding make-native to the base dependencies you've introduced circular dependencies and the circular dependency handling code in bitbake is breaking for unknown reasons. That code is fairly broken at this point unfortunately (someone should file a bug) but its beyond what we can fix in 1.4 at this point.

Cheers,

Richard

#16 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Quoted 7 lines · Richard Purdie
Quoted 3 lines

What other options do I have to force build of make-native. Why I
insist: On both of my machines (Fedora 14 / 15) build of systemd fails.

In local.conf do something like:

DEPENDS_append_pn-systemd = " make-native"

to ensure that all recipes get 'parallel-make-safe' (I know of problems with systemd and webkit-gtk - there might be others) I added to my local.conf

DEPENDS_append_pn-gettext-native = " make-native"
PREFERRED_PROVIDER_make-native = "make-native"

It is dirty but I can live with it.

Quoted 6 lines

By adding make-native to the base dependencies you've introduced circular dependencies and the circular dependency handling code in bitbake is breaking for unknown reasons. That code is fairly broken at this point unfortunately (someone should file a bug) but its beyond what we can fix in 1.4 at this point.

hard times - I know :)

Quoted 5 lines

Cheers,

Richard

Andreas

author
#17 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

In reply to Richard Purdie
Quoted 78 lines · Richard Purdie
Quoted 77 lines · Andreas Müller
Quoted 9 lines · Andreas Müller
Quoted 8 lines · Ross

Hi Andreas,

Quoted 1 line · Andreas Müller

It is Fedora 14 and I don't have the time to update the machine.

Genuinely shocked that they shipped GNU make 3.82 without the patches to make it work.

Quoted 9 lines
Quoted 7 lines
Quoted 4 lines

Since there seems no support for little poor old-fashioned people like
me: Is there a configuration option so I can force to build make-native on that machine (checked local.conf.sample / site.conf.sample / yocto reference manual but did not find a hint)?

From a quick look, BASEDEPENDS_append = " make-native" might do the trick.

Thanks

This came too early because - before I tested it. I get

NOTE: multiple providers are available for make-native (make-native, remake-native)
NOTE: consider defining a PREFERRED_PROVIDER entry to match make-native
NOTE: Preparing runqueue
ERROR: Unbuildable tasks were found.
These are usually caused by circular dependencies and any circular dependency chains found will be printed below. Increase the debug level to see a list of unbuildable tasks.

Identifying dependency loops (this may take a short while)...

ERROR: An uncaught exception occured in runqueue, please see the failure below:
ERROR: Running idle function
Traceback (most recent call last):
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=175, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175]):
if scan:

Quoted 1 line

find_chains(revdep, copy.deepcopy(prev_chain))

for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=176, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176]):
if scan:

Quoted 1 line

find_chains(revdep, copy.deepcopy(prev_chain))

for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=1142, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176, 1142]):
if scan:

Quoted 1 line

find_chains(revdep, copy.deepcopy(prev_chain))

for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 300, in find_chains(taskid=1143, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176, 1142, 1143]):
if scan:

Quoted 1 line

find_chains(revdep, copy.deepcopy(prev_chain))

for dep in explored_deps[revdep]:
File "/home/andreas/oe-core/sources/bitbake/lib/bb/runqueue.py",
line 301, in find_chains(taskid=1139, prev_chain=[14, 15, 19, 20, 16, 17, 174, 178, 179, 175, 176, 1142, 1143, 1139]):
find_chains(revdep, copy.deepcopy(prev_chain))

Quoted 1 line

for dep in explored_deps[revdep]:

if dep not in total_deps:
KeyError: 1140

NOTE: Tasks Summary: Attempted 0 tasks of which 0 didn't need to be rerun and all succeeded.

Summary: There was 1 WARNING message shown.
Summary: There were 3 ERROR messages shown, returning a non-zero exit code.

bitbake make-native works fine.

Quoted 7 lines
Quoted 3 lines

What other options do I have to force build of make-native. Why I
insist: On both of my machines (Fedora 14 / 15) build of systemd fails.

In local.conf do something like:

DEPENDS_append_pn-systemd = " make-native"

this would then suddenly shift the rest of unbuilt packages to use make-native whenever its staged so we will have weird issues if components own build systems are sensitive to make versions. so either we recommend a version of make or we don't

Quoted 16 lines

By adding make-native to the base dependencies you've introduced circular dependencies and the circular dependency handling code in bitbake is breaking for unknown reasons. That code is fairly broken at this point unfortunately (someone should file a bug) but its beyond what we can fix in 1.4 at this point.

Cheers,

Richard

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

author
#18 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

In reply to Koen Kooi

Hi Richard

There was a followup patch to this and you took the old one. Thats ok. I have refreshed the pull tree again and the follow up patch is there. Please pull

-Khem

Quoted 388 lines · Koen Kooi

Op 29 mrt. 2013, om 06:28 heeft Khem Raj <[email protected]> het volgende geschreven:

Quoted 22 lines · Martin Jansa
Quoted 10 lines · Khem Raj
Quoted 7 lines

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

Backport patches for readahead fixes on spinning disks and to tackle error reported on missing /etc/sysctl.conf

Quoted 8 lines

Looks like it creates few new (empty) directories:

WARNING: QA Issue: systemd: Files/directories were installed but not shipped
/etc/kernel
/etc/kernel/install.d
/usr/lib/kernel
/usr/lib/kernel/install.d

Quoted 2 lines

OK I have created a new package called systems-kernel-install and these dirs along with kernel-install binary are moved into the new package and updated the pull request.

There's a new releases, 200, mostly bugfixes and some hwdp and keymap updates. Your 199 patch has the most important fixes, so I'm not sure if it's worth to respin to 200 or get this in and update to 200 (or 201) later.

Quoted 357 lines
Quoted 340 lines

Doesn't look very useful for our use-case, maybe whole kernel-install should be in separate package.
http://www.freedesktop.org/software/systemd/man/kernel-install.html

Quoted 333 lines

---

.../0002-readahead-chunk-on-spinning-media.patch   |  142 ++++++++++++++++++++
.../systemd/systemd/0003-readahead-cleanups.patch  |   86 ++++++++++++
...ctl-Handle-missing-etc-sysctl.conf-proper.patch |   33 +++++
.../systemd/{systemd_198.bb => systemd_199.bb}     |   11 +-
4 files changed, 268 insertions(+), 4 deletions(-)

create mode 100644 meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch create mode 100644 meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
create mode 100644 meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch rename meta/recipes-core/systemd/{systemd_198.bb => systemd_199.bb} (95%)

meta/recipes-core/systemd/systemd/0002-readahead-chunk-on-spinning-media.patch new file +142 -0
new file mode 100644
index 0000000..d57a01c
@@ -0,0 +1,142 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 94243ef299425d6c7089a7a05c48c9bb8f6cf3da Mon Sep 17 00:00:00 2001
+From: Auke Kok <[email protected]>
+Date: Fri, 22 Mar 2013 15:09:45 -0700
+Subject: [PATCH 02/17] readahead: chunk on spinning media
+
+Readahead has all sorts of bad side effects depending on your
+storage media. On rotating disks, it may be degrading startup
+performance if enough requests are queued spanning linearly
+over all blocks early at boot, and mount, blkid and friends
+want to insert reads to the start of these block devices after.
+
+The end result is that on spinning disks with ext3/4 that udev
+and mounts take a very long time, and nothing really happens until
+readahead is completely finished.
+
+This has the net effect that the CPU is almost entirely idle
+for the entire period that readahead is working. We could have
+finished starting up quite a lot of services in this time if
+we were smarter at how we do readahead.
+
+This patch sorts all requests into 2 second "chunks" and sub-sorts
+each chunk by block. This adds a single cross-drive seek per "chunk"
+but has the benefit that we will have a lot of the blocks we need
+early on in the boot sequence loaded into memory faster.
+
+For a comparison of how before/after bootcharts look (ext4 on a
+mobile 5400rpm 250GB drive) please look at:
+
+    http://foo-projects.org/~sofar/blocked-tests/
+
+There are bootcharts in the "before" and "after" folders where you
+should be able to see that many low-level services finish 5-7
+seconds earlier with the patch applied (after).
+---
+ Makefile.am                       |    2 +-
+ src/readahead/readahead-collect.c |   28 +++++++++++++++++++++++++---
+ 2 files changed, 26 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 37c1cc2..5861976 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
+ systemd_readahead_LDADD = \
+ 	libsystemd-shared.la \
+ 	libsystemd-daemon.la \
+-	libudev.la
++	libudev.la -lm
+ 
+ dist_doc_DATA += \
+ 	src/readahead/sd-readahead.c \
+diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
+index 5d07f47..5d22949 100644
+--- a/src/readahead/readahead-collect.c
++++ b/src/readahead/readahead-collect.c
+@@ -42,6 +42,7 @@
+ #include <sys/vfs.h>
+ #include <getopt.h>
+ #include <sys/inotify.h>
++#include <math.h>
+ 
+ #ifdef HAVE_FANOTIFY_INIT
+ #include <sys/fanotify.h>
+@@ -67,6 +68,7 @@
+  */
+ 
+ static ReadaheadShared *shared = NULL;
++static struct timespec starttime;
+ 
+ /* Avoid collisions with the NULL pointer */
+ #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
+@@ -205,6 +207,7 @@ static unsigned long fd_first_block(int fd) {
+ struct item {
+         const char *path;
+         unsigned long block;
++        unsigned long bin;
+ };
+ 
+ static int qsort_compare(const void *a, const void *b) {
+@@ -213,6 +216,13 @@ static int qsort_compare(const void *a, const void *b) {
+         i = a;
+         j = b;
+ 
++        /* sort by bin first */
++        if (i->bin < j->bin)
++                return -1;
++        if (i->bin > j->bin)
++                return 1;
++
++        /* then sort by sector */
+         if (i->block < j->block)
+                 return -1;
+         if (i->block > j->block)
+@@ -250,6 +260,8 @@ static int collect(const char *root) {
+                 goto finish;
+         }
+ 
++        clock_gettime(CLOCK_MONOTONIC, &starttime);
++
+         /* If there's no pack file yet we lower the kernel readahead
+          * so that mincore() is accurate. If there is a pack file
+          * already we assume it is accurate enough so that kernel
+@@ -447,10 +459,21 @@ static int collect(const char *root) {
+                                         free(p);
+                                 else {
+                                         unsigned long ul;
++                                        struct timespec ts;
++                                        struct item *entry;
++
++                                        entry = new0(struct item, 1);
+ 
+                                         ul = fd_first_block(m->fd);
+ 
+-                                        if ((k = hashmap_put(files, p, SECTOR_TO_PTR(ul))) < 0) {
++                                        clock_gettime(CLOCK_MONOTONIC, &ts);
++
++                                        entry->block = ul;
++                                        entry->path = strdup(p);
++                                        entry->bin = round((ts.tv_sec - starttime.tv_sec +
++                                                     ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0);
++
++                                        if ((k = hashmap_put(files, p, entry)) < 0) {
+                                                 log_warning("set_put() failed: %s", strerror(-k));
+                                                 free(p);
+                                         }
+@@ -518,8 +541,7 @@ done:
+ 
+                 j = ordered;
+                 HASHMAP_FOREACH_KEY(q, p, files, i) {
+-                        j->path = p;
+-                        j->block = PTR_TO_SECTOR(q);
++                        memcpy(j, q, sizeof(struct item));
+                         j++;
+                 }
+ 
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch new file +86 -0
new file mode 100644
index 0000000..e0b68df
@@ -0,0 +1,86 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From b0640287f784a320661f7206c9ade07b99003fd5 Mon Sep 17 00:00:00 2001
+From: Auke Kok <[email protected]>
+Date: Tue, 26 Mar 2013 11:13:47 -0700
+Subject: [PATCH 03/17] readahead: cleanups
+
+- check for OOM
+- no need to use floats and round()
+---
+ Makefile.am                       |    2 +-
+ src/readahead/readahead-collect.c |   20 ++++++++++++++------
+ 2 files changed, 15 insertions(+), 7 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 5861976..37c1cc2 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2956,7 +2956,7 @@ systemd_readahead_SOURCES = \
+ systemd_readahead_LDADD = \
+ 	libsystemd-shared.la \
+ 	libsystemd-daemon.la \
+-	libudev.la -lm
++	libudev.la
+ 
+ dist_doc_DATA += \
+ 	src/readahead/sd-readahead.c \
+diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c
+index 5d22949..e2fd8df 100644
+--- a/src/readahead/readahead-collect.c
++++ b/src/readahead/readahead-collect.c
+@@ -68,7 +68,7 @@
+  */
+ 
+ static ReadaheadShared *shared = NULL;
+-static struct timespec starttime;
++static usec_t starttime;
+ 
+ /* Avoid collisions with the NULL pointer */
+ #define SECTOR_TO_PTR(s) ULONG_TO_PTR((s)+1)
+@@ -260,7 +260,7 @@ static int collect(const char *root) {
+                 goto finish;
+         }
+ 
+-        clock_gettime(CLOCK_MONOTONIC, &starttime);
++        starttime = now(CLOCK_MONOTONIC);
+ 
+         /* If there's no pack file yet we lower the kernel readahead
+          * so that mincore() is accurate. If there is a pack file
+@@ -459,19 +459,27 @@ static int collect(const char *root) {
+                                         free(p);
+                                 else {
+                                         unsigned long ul;
+-                                        struct timespec ts;
++                                        usec_t entrytime;
+                                         struct item *entry;
+ 
+                                         entry = new0(struct item, 1);
++                                        if (!entry) {
++                                                r = log_oom();
++                                                goto finish;
++                                        }
+ 
+                                         ul = fd_first_block(m->fd);
+ 
+-                                        clock_gettime(CLOCK_MONOTONIC, &ts);
++                                        entrytime = now(CLOCK_MONOTONIC);
+ 
+                                         entry->block = ul;
+                                         entry->path = strdup(p);
+-                                        entry->bin = round((ts.tv_sec - starttime.tv_sec +
+-                                                     ((ts.tv_nsec - starttime.tv_nsec) / 1000000000.0)) / 2.0);
++                                        if (!entry->path) {
++                                                free(entry);
++                                                r = log_oom();
++                                                goto finish;
++                                        }
++                                        entry->bin = (entrytime - starttime) / 2000000;
+ 
+                                         if ((k = hashmap_put(files, p, entry)) < 0) {
+                                                 log_warning("set_put() failed: %s", strerror(-k));
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch new file +33 -0
new file mode 100644
index 0000000..f2c8e02
@@ -0,0 +1,33 @@
+Upstream-Status: Backport
+
+-Khem 2013/03/28
+
+From 6f6fad96addf6b00b55c98cc0d0d8026b0c1e7ca Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <[email protected]>
+Date: Wed, 27 Mar 2013 13:41:59 +0100
+Subject: [PATCH 13/17] systemd-sysctl: Handle missing /etc/sysctl.conf
+ properly
+
+Since fabe5c0e5fce730aa66e10a9c4f9fdd443d7aeda, systemd-sysctl returns
+a non-zero exit code if /etc/sysctl.conf does not exist, due to a
+broken ENOENT check.
+---
+ 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 2d43660..79f3f77 100644
+--- a/src/sysctl/sysctl.c
++++ b/src/sysctl/sysctl.c
+@@ -125,7 +125,7 @@ static int parse_file(Hashmap *sysctl_options, const char *path, bool ignore_eno
+ 
+         r = search_and_fopen_nulstr(path, "re", conf_file_dirs, &f);
+         if (r < 0) {
+-                if (ignore_enoent && errno == -ENOENT)
++                if (ignore_enoent && r == -ENOENT)
+                         return 0;
+ 
+                 log_error("Failed to open file '%s', ignoring: %s", path, strerror(-r));
+-- 
+1.7.9.5
+
meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +5 -2
similarity index 95%
rename from meta/recipes-core/systemd/systemd_198.bb
rename to meta/recipes-core/systemd/systemd_199.bb
index 6a8db51..74b14af 100644
@@ -23,10 +23,13 @@ SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
         file://var-run.conf \
         ${UCLIBCPATCHES} \
         file://00-create-volatile.conf \
+           file://0002-readahead-chunk-on-spinning-media.patch \
+           file://0003-readahead-cleanups.patch \
+           file://0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patch \
         file://init \
        "
-SRC_URI[md5sum] = "26a75e2a310f8c1c1ea9ec26ddb171c5"
-SRC_URI[sha256sum] = "444492355e5ff0ad99e0691ecaff1081ee8d45901580f47ba8b74e56107c71bf"
+SRC_URI[md5sum] = "4bb13f84ce211e93f0141774a90a2322"
+SRC_URI[sha256sum] = "8c4462a04f3ecf7f083782e5e0687913b1d33c6444bf20fa2f31df9222965fed"
 

UCLIBCPATCHES = ""
UCLIBCPATCHES_libc-uclibc = "file://systemd-pam-configure-check-uclibc.patch \

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +0 -0
@@ -114,7 +117,7 @@ PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"

PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze"

USERADD_PACKAGES = "${PN}"

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +1 -1
-GROUPADD_PARAM_${PN} = "-r lock"
+GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"

FILES_${PN}-analyze = "${base_bindir}/systemd-analyze"

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +0 -0
@@ -224,7 +227,7 @@ FILES_udev += "${base_sbindir}/udevd \

FILES_udev-consolekit += "/lib/ConsoleKit"
RDEPENDS_udev-consolekit += "${@base_contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d)}"

meta/recipes-core/systemd/systemd_199.bb renamed from meta/recipes-core/systemd/systemd_198.bb +1 -1
-FILES_udev-utils = "${bindir}/udevadm"
+FILES_udev-utils = "${base_bindir}/udevadm ${datadir}/bash-completion/completions/udevadm"

FILES_udev-hwdb = "${base_libdir}/udev/hwdb.d"

Quoted 11 lines
Quoted 8 lines
Signature · 7 lines
1.7.9.5


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

#19 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

In reply to Khem Raj
Quoted 1 line · Khem Raj

udevadm is now moved from /usr/bin to /bin

This is setting off alarm bells. Are there any scripts that are going to break?

Cheers,

Richard

#20 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Op 28 mrt. 2013, om 14:24 heeft Richard Purdie <[email protected]> het volgende geschreven:

Quoted 5 lines · Khem Raj
Quoted 1 line

udevadm is now moved from /usr/bin to /bin

This is setting off alarm bells. Are there any scripts that are going to break?

Only udev internal scripts are supposed to reference it, so this change should be safe.

#21 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

In reply to Khem Raj

Hi,

Quoted 4 lines · Khem Raj

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

It looks like systemd-analyze installs into /usr/bin and therefore isn't picked up in PACKAGE systemd-analyze. This should fix it:

(quoted diff) +0 -0

b/meta/recipes-core/systemd/systemd_199.bb
index ba1d133..f896187 100644

meta/recipes-core/systemd/systemd_199.bb +0 -0
@@ -119,7 +119,7 @@ PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup

${PN}-initramfs ${PN}-analyze ${PN}-
USERADD_PACKAGES = "${PN}" GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"

-FILES_${PN}-analyze = "${base_bindir}/systemd-analyze" +FILES_${PN}-analyze = "${bindir}/systemd-analyze"

FILES_${PN}-initramfs = "/init"
RDEPENDS_${PN}-initramfs = "${PN}"

Cheers,
Erik

author
#22 lore raw

Re: [PATCH 1/1] systemd: Upgrade to 199

Erik

Thanks, Yes this should fix it.

Quoted 29 lines · Erik Botö

Hi,

Quoted 4 lines · Khem Raj

udevadm is now moved from /usr/bin to /bin so account for that bash completions for udevadm should be packages with udev-utils since thats where udevadm itself is, they were in systemd package which is not correct location for it

It looks like systemd-analyze installs into /usr/bin and therefore isn't picked up in PACKAGE systemd-analyze. This should fix it:

meta/recipes-core/systemd/systemd_199.bb +0 -0
index ba1d133..f896187 100644
@@ -119,7 +119,7 @@ PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup

${PN}-initramfs ${PN}-analyze ${PN}- USERADD_PACKAGES = "${PN}" GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"

meta/recipes-core/systemd/systemd_199.bb +1 -1
-FILES_${PN}-analyze = "${base_bindir}/systemd-analyze"
+FILES_${PN}-analyze = "${bindir}/systemd-analyze"

FILES_${PN}-initramfs = "/init"
RDEPENDS_${PN}-initramfs = "${PN}"

Cheers,
Erik