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

Reply via email to