Op 13 aug. 2014, om 09:10 heeft ChenQi <qi.c...@windriver.com> het volgende geschreven:
> On 08/01/2014 05:43 PM, Koen Kooi wrote: >> Op 31 jul. 2014, om 10:08 heeft Chen Qi <qi.c...@windriver.com> het volgende >> geschreven: >> >>> Upgrade systemd from 213 to 215. >>> >>> systemd-older-kernel.patch is removed as it's fixed in 215. >>> >>> Backport two patches to fix compilation problem for qemuppc. >>> >>> 0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch >>> 0002-endian-explicitly-include-endian.h-wherever-we-want-.patch >>> >>> Signed-off-by: Chen Qi <qi.c...@windriver.com> >>> --- >>> ...k-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch | 116 >>> ++++++++++++++++++++ >>> ...icitly-include-endian.h-wherever-we-want-.patch | 52 +++++++++ >>> .../systemd/systemd/systemd-older-kernel.patch | 56 ---------- >>> .../systemd/{systemd_213.bb => systemd_215.bb} | 10 +- >>> 4 files changed, 174 insertions(+), 60 deletions(-) >>> create mode 100644 >>> meta/recipes-core/systemd/systemd/0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch >>> create mode 100644 >>> meta/recipes-core/systemd/systemd/0002-endian-explicitly-include-endian.h-wherever-we-want-.patch >>> delete mode 100644 >>> meta/recipes-core/systemd/systemd/systemd-older-kernel.patch >>> rename meta/recipes-core/systemd/{systemd_213.bb => systemd_215.bb} (97%) >>> >>> diff --git >>> a/meta/recipes-core/systemd/systemd/0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch >>> >>> b/meta/recipes-core/systemd/systemd/0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch >>> new file mode 100644 >>> index 0000000..228d835 >>> --- /dev/null >>> +++ >>> b/meta/recipes-core/systemd/systemd/0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch >>> @@ -0,0 +1,116 @@ >>> +Upstream-Status: Backport >>> + >>> +Subject: always check for __BYTE_ORDER == __BIG_ENDIAN when checking for >>> endianess >>> + >>> +Let's always stick to glibc's way to determine byte order, and not mix >>> +autoconf-specific checks with gcc checks. >>> + >>> +Signed-off-by: Chen Qi <qi.c...@windriver.com> >>> +--- >>> + src/shared/architecture.h | 12 ++++++------ >>> + src/shared/gpt.h | 4 ++-- >>> + src/shared/time-dst.c | 6 +++--- >>> + 3 files changed, 11 insertions(+), 11 deletions(-) >>> + >>> +diff --git a/src/shared/architecture.h b/src/shared/architecture.h >>> +index 4821d5d..58e97e5 100644 >>> +--- a/src/shared/architecture.h >>> ++++ b/src/shared/architecture.h >>> +@@ -80,7 +80,7 @@ Architecture uname_architecture(void); >>> + # define native_architecture() ARCHITECTURE_X86 >>> + # define LIB_ARCH_TUPLE "i386-linux-gnu" >>> + #elif defined(__powerpc64__) >>> +-# if defined(WORDS_BIGENDIAN) >>> ++# if __BYTE_ORDER == __BIG_ENDIAN >>> + # define native_architecture() ARCHITECTURE_PPC64 >>> + # define LIB_ARCH_TUPLE "ppc64-linux-gnu" >>> + # else >>> +@@ -88,7 +88,7 @@ Architecture uname_architecture(void); >>> + # error "Missing LIB_ARCH_TUPLE for PPC64LE" >>> + # endif >>> + #elif defined(__powerpc__) >>> +-# if defined(WORDS_BIGENDIAN) >>> ++# if __BYTE_ORDER == __BIG_ENDIAN >>> + # define native_architecture() ARCHITECTURE_PPC >>> + # define LIB_ARCH_TUPLE "powerpc-linux-gnu" >>> + # else >>> +@@ -117,7 +117,7 @@ Architecture uname_architecture(void); >>> + # define native_architecture() ARCHITECTURE_SPARC >>> + # define LIB_ARCH_TUPLE "sparc-linux-gnu" >>> + #elif defined(__mips64__) >>> +-# if defined(WORDS_BIGENDIAN) >>> ++# if __BYTE_ORDER == __BIG_ENDIAN >>> + # define native_architecture() ARCHITECTURE_MIPS64 >>> + # error "Missing LIB_ARCH_TUPLE for MIPS64" >>> + # else >>> +@@ -125,7 +125,7 @@ Architecture uname_architecture(void); >>> + # error "Missing LIB_ARCH_TUPLE for MIPS64_LE" >>> + # endif >>> + #elif defined(__mips__) >>> +-# if defined(WORDS_BIGENDIAN) >>> ++# if __BYTE_ORDER == __BIG_ENDIAN >>> + # define native_architecture() ARCHITECTURE_MIPS >>> + # define LIB_ARCH_TUPLE "mips-linux-gnu" >>> + # else >>> +@@ -136,7 +136,7 @@ Architecture uname_architecture(void); >>> + # define native_architecture() ARCHITECTURE_ALPHA >>> + # define LIB_ARCH_TUPLE "alpha-linux-gnu" >>> + #elif defined(__aarch64__) >>> +-# if defined(WORDS_BIGENDIAN) >>> ++# if __BYTE_ORDER == __BIG_ENDIAN >>> + # define native_architecture() ARCHITECTURE_ARM64_BE >>> + # define LIB_ARCH_TUPLE "aarch64_be-linux-gnu" >>> + # else >>> +@@ -144,7 +144,7 @@ Architecture uname_architecture(void); >>> + # define LIB_ARCH_TUPLE "aarch64-linux-gnu" >>> + # endif >>> + #elif defined(__arm__) >>> +-# if defined(WORDS_BIGENDIAN) >>> ++# if __BYTE_ORDER == __BIG_ENDIAN >>> + # define native_architecture() ARCHITECTURE_ARM_BE >>> + # if defined(__ARM_EABI__) >>> + # if defined(__ARM_PCS_VFP) >>> +diff --git a/src/shared/gpt.h b/src/shared/gpt.h >>> +index 64090e0..278940b 100644 >>> +--- a/src/shared/gpt.h >>> ++++ b/src/shared/gpt.h >>> +@@ -42,10 +42,10 @@ >>> + # define GPT_ROOT_NATIVE GPT_ROOT_X86 >>> + #endif >>> + >>> +-#if defined(__aarch64__) && !defined(WORDS_BIGENDIAN) >>> ++#if defined(__aarch64__) && (__BYTE_ORDER != __BIG_ENDIAN) >>> + # define GPT_ROOT_NATIVE GPT_ROOT_ARM_64 >>> + # define GPT_ROOT_SECONDARY GPT_ROOT_ARM >>> +-#elif defined(__arm__) && !defined(WORDS_BIGENDIAN) >>> ++#elif defined(__arm__) && (__BYTE_ORDER != __BIG_ENDIAN) >>> + # define GPT_ROOT_NATIVE GPT_ROOT_ARM >>> + #endif >>> + >>> +diff --git a/src/shared/time-dst.c b/src/shared/time-dst.c >>> +index ceca2fa..6195b11 100644 >>> +--- a/src/shared/time-dst.c >>> ++++ b/src/shared/time-dst.c >>> +@@ -207,8 +207,8 @@ read_again: >>> + if (type_idxs[i] >= num_types) >>> + return -EINVAL; >>> + >>> +- if (BYTE_ORDER == BIG_ENDIAN ? sizeof(time_t) == 8 && trans_width >>> == 4 >>> +- : sizeof(time_t) == 4 || trans_width >>> == 4) { >>> ++ if (__BYTE_ORDER == __BIG_ENDIAN ? sizeof(time_t) == 8 && >>> trans_width == 4 >>> ++ : sizeof(time_t) == 4 || >>> trans_width == 4) { >>> + /* Decode the transition times, stored as 4-byte integers >>> in >>> + network (big-endian) byte order. We work from the end >>> of >>> + the array so as not to clobber the next element to be >>> +@@ -216,7 +216,7 @@ read_again: >>> + i = num_transitions; >>> + while (i-- > 0) >>> + transitions[i] = decode((char *)transitions + i * >>> 4); >>> +- } else if (BYTE_ORDER != BIG_ENDIAN && sizeof(time_t) == 8) { >>> ++ } else if (__BYTE_ORDER != __BIG_ENDIAN && sizeof(time_t) == 8) { >>> + /* Decode the transition times, stored as 8-byte integers >>> in >>> + network (big-endian) byte order. */ >>> + for (i = 0; i < num_transitions; ++i) >>> +-- >>> +1.7.9.5 >>> + >>> diff --git >>> a/meta/recipes-core/systemd/systemd/0002-endian-explicitly-include-endian.h-wherever-we-want-.patch >>> >>> b/meta/recipes-core/systemd/systemd/0002-endian-explicitly-include-endian.h-wherever-we-want-.patch >>> new file mode 100644 >>> index 0000000..5494192 >>> --- /dev/null >>> +++ >>> b/meta/recipes-core/systemd/systemd/0002-endian-explicitly-include-endian.h-wherever-we-want-.patch >>> @@ -0,0 +1,52 @@ >>> +Upstream-Status: Backport >>> + >>> +Subject: endian: explicitly include endian.h wherever we want to use >>> __BYTE_ORDER >>> + >>> +Signed-off-by: Chen Qi <qi.c...@windriver.com> >>> +--- >>> + src/libsystemd/sd-bus/bus-protocol.h | 1 + >>> + src/shared/architecture.h | 2 ++ >>> + src/shared/gpt.h | 2 ++ >>> + 3 files changed, 5 insertions(+) >>> + >>> +diff --git a/src/libsystemd/sd-bus/bus-protocol.h >>> b/src/libsystemd/sd-bus/bus-protocol.h >>> +index 5046d17..4f46468 100644 >>> +--- a/src/libsystemd/sd-bus/bus-protocol.h >>> ++++ b/src/libsystemd/sd-bus/bus-protocol.h >>> +@@ -21,6 +21,7 @@ >>> + along with systemd; If not, see <http://www.gnu.org/licenses/>. >>> + ***/ >>> + >>> ++#include <endian.h> >>> + >>> + /* Endianness */ >>> + >>> +diff --git a/src/shared/architecture.h b/src/shared/architecture.h >>> +index 58e97e5..38780d1 100644 >>> +--- a/src/shared/architecture.h >>> ++++ b/src/shared/architecture.h >>> +@@ -21,6 +21,8 @@ >>> + along with systemd; If not, see <http://www.gnu.org/licenses/>. >>> + ***/ >>> + >>> ++#include <endian.h> >>> ++ >>> + #include "util.h" >>> + >>> + /* A cleaned up architecture definition. We don't want to get lost in >>> +diff --git a/src/shared/gpt.h b/src/shared/gpt.h >>> +index 278940b..ef3444f 100644 >>> +--- a/src/shared/gpt.h >>> ++++ b/src/shared/gpt.h >>> +@@ -19,6 +19,8 @@ >>> + along with systemd; If not, see <http://www.gnu.org/licenses/>. >>> + ***/ >>> + >>> ++#include <endian.h> >>> ++ >>> + #include "sd-id128.h" >>> + >>> + /* We only support root disk discovery for x86, x86-64 and ARM for >>> +-- >>> +1.7.9.5 >>> + >>> diff --git a/meta/recipes-core/systemd/systemd/systemd-older-kernel.patch >>> b/meta/recipes-core/systemd/systemd/systemd-older-kernel.patch >>> deleted file mode 100644 >>> index 18b50e7..0000000 >>> --- a/meta/recipes-core/systemd/systemd/systemd-older-kernel.patch >>> +++ /dev/null >>> @@ -1,56 +0,0 @@ >>> -From 6109f02dcc4f2d7a461c5772bab494f5753a2203 Mon Sep 17 00:00:00 2001 >>> -From: Robert Yang <liezhi.y...@windriver.com> >>> -Date: Thu, 29 May 2014 08:09:07 +0000 >>> -Subject: [PATCH] rtnl-types.c: check IFLA_VLAN_PROTOCOL >>> - >>> -The older kernel's linux/if_link.h doesn't have IFLA_VLAN_PROTOCOL, we need >>> -check whether it has been defined or not. >>> - >>> -The maintainer said that he would fix it: >>> - >>> -http://thread.gmane.org/gmane.comp.sysutils.systemd.devel/18200 >>> - >>> -Also we need redefine IFLA_MAX from 34 to 35 when define IFLA_CARRIER, >>> -otherwise there would be error: >>> - >>> -| src/libsystemd/sd-rtnl/rtnl-types.c:233:9: error: array index in >>> initializer exceeds array bounds >>> -| [IFLA_CARRIER] = { .type = NLA_U8 }, >>> - >>> -Upstream-Status: Pending >>> - >>> -Signed-off-by: Robert Yang <liezhi.y...@windriver.com> >>> ---- >>> - src/libsystemd/sd-rtnl/rtnl-types.c | 2 ++ >>> - src/shared/missing.h | 2 ++ >>> - 2 files changed, 4 insertions(+) >>> - >>> -diff --git a/src/libsystemd/sd-rtnl/rtnl-types.c >>> b/src/libsystemd/sd-rtnl/rtnl-types.c >>> -index 44ac5ec..ab6161f 100644 >>> ---- a/src/libsystemd/sd-rtnl/rtnl-types.c >>> -+++ b/src/libsystemd/sd-rtnl/rtnl-types.c >>> -@@ -67,7 +67,9 @@ static const NLType >>> rtnl_link_info_data_vlan_types[IFLA_VLAN_MAX + 1] = { >>> - [IFLA_VLAN_EGRESS_QOS] = { .type = NLA_NESTED }, >>> - [IFLA_VLAN_INGRESS_QOS] = { .type = NLA_NESTED }, >>> - */ >>> -+#ifdef IFLA_VLAN_PROTOCOL >>> - [IFLA_VLAN_PROTOCOL] = { .type = NLA_U16 }, >>> -+#endif >>> - }; >>> - >>> - static const NLType rtnl_link_info_data_bond_types[IFLA_BOND_MAX + 1] = { >>> -diff --git a/src/shared/missing.h b/src/shared/missing.h >>> -index d5ec2f8..732853f 100644 >>> ---- a/src/shared/missing.h >>> -+++ b/src/shared/missing.h >>> -@@ -94,6 +94,8 @@ >>> - >>> - #ifndef IFLA_CARRIER >>> - #define IFLA_CARRIER 33 >>> -+ #undef IFLA_MAX >>> -+ #define IFLA_MAX 35 >>> - #ifndef IFLA_NUM_RX_QUEUES >>> - #define IFLA_NUM_RX_QUEUES 32 >>> - #ifndef IFLA_NUM_TX_QUEUES >>> --- >>> -1.8.3.4 >>> - >>> diff --git a/meta/recipes-core/systemd/systemd_213.bb >>> b/meta/recipes-core/systemd/systemd_215.bb >>> similarity index 97% >>> rename from meta/recipes-core/systemd/systemd_213.bb >>> rename to meta/recipes-core/systemd/systemd_215.bb >>> index 5de7cdc..9eafa38 100644 >>> --- a/meta/recipes-core/systemd/systemd_213.bb >>> +++ b/meta/recipes-core/systemd/systemd_215.bb >>> @@ -17,9 +17,9 @@ SECTION = "base/shell" >>> >>> inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d >>> update-alternatives qemu systemd ptest >>> >>> -SRCREV = "c9679c652b3c31f2510e8805d81630680ebc7e95" >>> +SRCREV = "252ff40a3827b4e8e62e03a5e2f80da3fe02bee6" >>> >>> -PV = "213+git${SRCPV}" >>> +PV = "215+git${SRCPV}" >>> >>> SRC_URI = >>> "git://anongit.freedesktop.org/systemd/systemd;branch=master;protocol=git \ >>> file://binfmt-install.patch \ >>> @@ -31,12 +31,13 @@ SRC_URI = >>> "git://anongit.freedesktop.org/systemd/systemd;branch=master;protocol= >>> file://0001-uClibc-doesn-t-implement-pwritev-preadv.patch \ >>> file://uclibc-sysinfo_h.patch \ >>> file://uclibc-get-physmem.patch \ >>> + >>> file://0001-always-check-for-__BYTE_ORDER-__BIG_ENDIAN-when-chec.patch \ >>> + >>> file://0002-endian-explicitly-include-endian.h-wherever-we-want-.patch \ >>> file://touchscreen.rules \ >>> file://00-create-volatile.conf \ >>> file://init \ >>> file://run-ptest \ >>> - file://systemd-older-kernel.patch \ >>> - " >>> + " >>> >>> S = "${WORKDIR}/git" >>> >>> @@ -231,6 +232,7 @@ FILES_${PN} = " ${base_bindir}/* \ >>> ${exec_prefix}/lib/systemd \ >>> ${exec_prefix}/lib/modules-load.d \ >>> ${exec_prefix}/lib/sysctl.d \ >>> + ${exec_prefix}/lib/sysusers.d \ >>> ${localstatedir} \ >>> /lib/udev/rules.d/70-uaccess.rules \ >>> /lib/udev/rules.d/71-seat.rules \ >> >> Like I keep saying, the sysusers files need to be in CONFFILES >> > > Hi Koen, > > Sorry for the late reply. > > I checked the initial commit of sysusers.d/ in the systemd git repo. > > " > This also adds a minimal user definition file, that should be > sufficient for most basic systems. Distributions are expected to patch > these files and augment the contents, for example with fixed UIDs for > the users where that's necessary. > " > > From the above commit message, we can tell that these files are expected to > be modified by distros instead of users including admins. Nowhere does it say "instead of users", it only says "by distros". The question to ask is: do you want changes to this to get blown away by package upgrades? > If a file is not expected to be modified by users, how can it be a > configuration file? > > Below is the complete commit message in the git repo. > > """" > > sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group from > static files > > systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group > from static definition files that take a lot of inspiration from > tmpfiles snippets. These snippets should carry information about system > users only. To make sure it is not misused for normal users these > snippets only allow configuring UID and gecos field for each user, but > do not allow configuration of the home directory or shell, which is > necessary for real login users. > > The purpose of this tool is to enable state-less systems that can > populate /etc with the minimal files necessary, solely from static data > in /usr. systemd-sysuser is additive only, and will never override > existing users. > > This tool will create these files directly, and not via some user > database abtsraction layer. This is appropriate as this tool is supposed > to run really early at boot, and is only useful for creating system > users, and system users cannot be stored in remote databases anyway. > > The tool is also useful to be invoked from RPM scriptlets, instead of > useradd. This allows moving from imperative user descriptions in RPM to > declarative descriptions. > > The UID/GID for a user/group to be created can either be chosen dynamic, > or fixed, or be read from the owner of a file in the file system, in > order to support reconstructing the correct IDs for files that shall be > owned by them. > > This also adds a minimal user definition file, that should be > sufficient for most basic systems. Distributions are expected to patch > these files and augment the contents, for example with fixed UIDs for > the users where that's necessary. > > > """" > > Best Regards, > Chen Qi > -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core