Upgrade systemd to 199
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
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
@@ -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
@@ -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
@@ -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
Re: [PATCH 1/1] systemd: Upgrade to 199
Quoted 7 lines · Khem Raj
udevadm is now moved from
/usr/binto /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 itBackport 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
Signed-off-by Khem Raj <[email protected]>--- .../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@@ -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@@ -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@@ -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@@ -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]
Re: [PATCH 1/1] systemd: Upgrade to 199
Quoted 9 lines · Martin Jansa
Quoted 7 lines · Khem Raj
udevadm is now moved from
/usr/binto /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 itBackport 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.htmlQuoted 341 lines
Signed-off-by Khem Raj <[email protected]>---
.../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.patchcreate mode 100644meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
create mode 100644meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patchrename 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@@ -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@@ -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@@ -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@@ -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-coreSignature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
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/binto /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 itBackport patches for readahead fixes on spinning disks and to tackle error reported on missing
/etc/sysctl.confQuoted 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.htmlQuoted 333 lines
Signed-off-by Khem Raj <[email protected]>---
.../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.patchcreate mode 100644meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
create mode 100644meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patchrename 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@@ -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@@ -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@@ -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@@ -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-coreSignature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
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/binto /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 itBackport patches for readahead fixes on spinning disks and to tackle error reported on missing
/etc/sysctl.confLooks 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.
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/binto /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 itBackport patches for readahead fixes on spinning disks and to tackle error reported on missing
/etc/sysctl.confLooks 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
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/binto /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 itBackport patches for readahead fixes on spinning disks and to tackle error reported on missing
/etc/sysctl.confLooks 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.dQuoted 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
Re: [PATCH 1/1] systemd: Upgrade to 199
In reply to Andreas MüllerQuoted 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
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
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
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
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 aPREFERRED_PROVIDERentry 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, infind_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, infind_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, infind_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, infind_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, infind_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 intotal_deps:
KeyError: 1140NOTE: 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
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
Re: [PATCH 1/1] systemd: Upgrade to 199
In reply to Richard PurdieQuoted 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 aPREFERRED_PROVIDERentry 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, infind_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, infind_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, infind_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, infind_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, infind_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: 1140NOTE: 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
Re: [PATCH 1/1] systemd: Upgrade to 199
In reply to Koen KooiHi 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/binto /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 itBackport patches for readahead fixes on spinning disks and to tackle error reported on missing
/etc/sysctl.confQuoted 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.dQuoted 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.htmlQuoted 333 lines
Signed-off-by Khem Raj <[email protected]>---
.../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.patchcreate mode 100644meta/recipes-core/systemd/systemd/0003-readahead-cleanups.patch
create mode 100644meta/recipes-core/systemd/systemd/0013-systemd-sysctl-Handle-missing-etc-sysctl.conf-proper.patchrename 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@@ -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@@ -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@@ -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@@ -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-coreSignature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Re: [PATCH 1/1] systemd: Upgrade to 199
In reply to Khem RajQuoted 1 line · Khem Raj
udevadm is now moved from
/usr/binto /bin
This is setting off alarm bells. Are there any scripts that are going to break?
Cheers,
Richard
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/binto /binThis 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.
Re: [PATCH 1/1] systemd: Upgrade to 199
In reply to Khem RajHi,
Quoted 4 lines · Khem Raj
udevadm is now moved from
/usr/binto /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
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/binto /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 itIt looks like systemd-analyze installs into
/usr/binand therefore isn't picked up in PACKAGE systemd-analyze. This should fix it: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"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