[OE-core] [PATCH 2/3] pseudo: provide fallback passwd and group files
Peter A. Bigot
pab at pabigot.com
Thu Nov 13 03:04:49 UTC 2014
On 11/12/2014 08:31 PM, zhangxiao wrote:
> On 2014年11月12日 19:15, Peter A. Bigot wrote:
>> On 11/12/2014 01:36 AM, zhangxiao wrote:
>>> On 2014年11月02日 01:04, Peter A. Bigot wrote:
>>>> Normally pseudo is built with --without-passwd-fallback, which
>>>> requires
>>>> that somebody provide target passwd and group files. Those come from
>>>> base-passwd in OE, but base-passwd cannot be built without first
>>>> invoking operations under pseudo that require getpw*/getgr*.
>>>>
>>>> Provide the absolute minimum stub files, matching in content what will
>>>> eventually be on the target, that can be used in the cases where the
>>>> target files are not yet available. The requirements for minimum stub
>>>> are the usernames and groups identified in meta/files/fs-perms.txt.
>>>>
>>>> Signed-off-by: Peter A. Bigot <pab at pabigot.com>
>>>> ---
>>>> meta/recipes-devtools/pseudo/files/fallback-group | 2 ++
>>>> meta/recipes-devtools/pseudo/files/fallback-passwd | 1 +
>>>> meta/recipes-devtools/pseudo/pseudo_1.6.2.bb | 8 ++++++++
>>>> 3 files changed, 11 insertions(+)
>>>> create mode 100644 meta/recipes-devtools/pseudo/files/fallback-group
>>>> create mode 100644
>>>> meta/recipes-devtools/pseudo/files/fallback-passwd
>>>>
>>>> diff --git a/meta/recipes-devtools/pseudo/files/fallback-group
>>>> b/meta/recipes-devtools/pseudo/files/fallback-group
>>>> new file mode 100644
>>>> index 0000000..81bf732
>>>> --- /dev/null
>>>> +++ b/meta/recipes-devtools/pseudo/files/fallback-group
>>>> @@ -0,0 +1,2 @@
>>>> +root:*:0:
>>>
>>> How about adding those two lines below?
>>>
>>> daemon:*:1:
>>> bin:*:2:
>>
>> What's the rationale for adding these?
>>
>> My intent is for pseudo to provide the absolute minimum required for the
>> default fs-perms.txt, not to attempt to provide everything that's in
>> base-passwd. If you override fs-perms.txt somehow and need those extra
>> groups in early build stages, I think the right approach is to also
>> provide your own fallback-group and fallback-passwd at the same time.
>>
>> If too much gets added to these fallback specifications, we're back in
>> the same position of getting target files that don't match the
>> configuration used during build/packaging. In most cases, adding
>> DEPENDS += "base-passwd" is going to be the right approach to things not
>> being in the fallback files.
>>
> In fact, that is the reason I want those two lines above. I know it is
> not
> nice. :-(
>
> From my point of view, base-files and base-passwd is so important and
> basic
> that they should be installed at very beginning. Almost all packages
> should
> R-depends on them, so can we find a method to install them at very
> beginning
> thus avoid adding "DEPENDS" in those bb files?
I agree in theory, but I tried pretty hard and couldn't make it work,
for reasons (circular dependencies) described in the 0/3 that introduced
this series. I think the current solution is very clean. Either an
explicit DEPENDS in a few recipes that reference groups daemon and bin
or an override of the fallback files in one of your layers (or by
setting a custom PSEUDO_PASSWD in the recipes that needs them) would
probably solve your problem, but I don't have enough information about
the context to be completely sure of that.
Peter
>
> Thanks
> Xiao
>
>> Peter
>>
>>>
>>> Thanks
>>> Xiao
>>>
>>>> +mail:*:8:
>>>> diff --git a/meta/recipes-devtools/pseudo/files/fallback-passwd
>>>> b/meta/recipes-devtools/pseudo/files/fallback-passwd
>>>> new file mode 100644
>>>> index 0000000..c1458dc
>>>> --- /dev/null
>>>> +++ b/meta/recipes-devtools/pseudo/files/fallback-passwd
>>>> @@ -0,0 +1 @@
>>>> +root::0:0:root:/home/root:/bin/sh
>>>> diff --git a/meta/recipes-devtools/pseudo/pseudo_1.6.2.bb
>>>> b/meta/recipes-devtools/pseudo/pseudo_1.6.2.bb
>>>> index fb85f89..95fd2b8 100644
>>>> --- a/meta/recipes-devtools/pseudo/pseudo_1.6.2.bb
>>>> +++ b/meta/recipes-devtools/pseudo/pseudo_1.6.2.bb
>>>> @@ -5,9 +5,17 @@ SRC_URI = " \
>>>> file://0001-pseudo_client.c-protect-pwd_lck-against-magic.patch \
>>>> file://0002-pseudo_util-modify-interface-to-pseudo_etc_file.patch \
>>>> file://0003-pseudo_client.c-support-multiple-directories-in-PSEU.patch
>>>> \
>>>> + file://fallback-passwd \
>>>> + file://fallback-group \
>>>> "
>>>>
>>>> SRC_URI[md5sum] = "4d7b4f9d1b4aafa680ce94a5a9a52f1f"
>>>> SRC_URI[sha256sum] =
>>>> "c72be92689511ced7c419149c6aaa1b1a9e4dfc6409d1f16ab72cc35bc1e376a"
>>>>
>>>> PSEUDO_EXTRA_OPTS ?= "--enable-force-async
>>>> --without-passwd-fallback"
>>>> +
>>>> +do_install_append_class-native () {
>>>> + install -d ${D}${sysconfdir}
>>>> + install -m 644 ${WORKDIR}/fallback-passwd
>>>> ${D}${sysconfdir}/passwd
>>>> + install -m 644 ${WORKDIR}/fallback-group ${D}${sysconfdir}/group
>>>> +}
>>>>
>>
>>
>>
More information about the Openembedded-core
mailing list