All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Hatle <mark.hatle@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 3/4] base-passwd: move initial criation of group and passwd to preinst
Date: Fri, 21 Oct 2011 09:52:02 -0500	[thread overview]
Message-ID: <4EA18712.4050904@windriver.com> (raw)
In-Reply-To: <908ef7747e3391af158b7edb9f2b420b0016a7af.1319206126.git.otavio@ossystems.com.br>

I've seen other distributions solve this doing this by creating the passwd/group
files based on the contents of the recipe and not some external file.

So you would have a list of users/groups that need to be created with their
attributes.  In the do_install these items would be dumped into the
passwd/group.master file(s).  But also in the preinst, it would check for the
existence of the files -- if they didn't exist yet.. it would simply write out
the passwd/group files at that point.

By embedding the data in the recipe, it keeps things in sync and resolves the
chicken/egg problem.

Any opinions from folks if this is even halfway reasonable for us to consider?

(I'm guessing with some anon python code we could probably load in the
passwd/group files, place them into a variable and use the variable to embed
them within the preinst -- keeping the contents out of the recipe.)

--Mark

On 10/21/11 9:10 AM, Otavio Salvador wrote:
> To allow use and manipulation of users and groups at rootfs building
> time, the '/etc/passwd' and '/etc/group' needs to be available as soon
> as possible.
> 
> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
> ---
>  .../recipes-core/base-passwd/base-passwd_3.5.22.bb |   19 ++++++++++++++++++-
>  1 files changed, 18 insertions(+), 1 deletions(-)
> 
> diff --git a/meta/recipes-core/base-passwd/base-passwd_3.5.22.bb b/meta/recipes-core/base-passwd/base-passwd_3.5.22.bb
> index 137512d..aa90a6d 100644
> --- a/meta/recipes-core/base-passwd/base-passwd_3.5.22.bb
> +++ b/meta/recipes-core/base-passwd/base-passwd_3.5.22.bb
> @@ -1,7 +1,7 @@
>  SUMMARY = "Base system master password/group files."
>  DESCRIPTION = "The master copies of the user database files (/etc/passwd and /etc/group).  The update-passwd tool is also provided to keep the system databases synchronized with these master files."
>  SECTION = "base"
> -PR = "r3"
> +PR = "r4"
>  LICENSE = "GPLv2+"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
>  
> @@ -37,6 +37,23 @@ do_install () {
>  	install -p -m 644 debian/copyright ${D}${docdir}/${BPN}/
>  }
>  
> +pkg_preinst_${PN} () {
> +	set -e
> +
> +	# Used for rootfs generation. On in-target install this will be run
> +        # before the unpack so the files won't be available
> +
> +	if [ ! -e $D${sysconfdir}/passwd ] && [ -e $D${datadir}/base-passwd/passwd.master ]; then
> +		cp $D${datadir}/base-passwd/passwd.master $D${sysconfdir}/passwd
> +	fi
> +
> +	if [ ! -e $D${sysconfdir}/group ] && [ -e $D${datadir}/base-passwd/group.master ]; then
> +		cp $D${datadir}/base-passwd/group.master $D${sysconfdir}/group
> +	fi
> +
> +	exit 0
> +}
> +
>  pkg_postinst_${PN} () {
>  	set -e
>  




  reply	other threads:[~2011-10-21 14:57 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-21 14:10 [PATCH 0/4 v2] Fixes and improvements Otavio Salvador
2011-10-21 14:10 ` [PATCH 1/4] bootimg.bbclass: add support to disable HDD image building Otavio Salvador
2011-10-21 14:10 ` [PATCH 2/4] useradd.bbclass: check if a group already exists manually Otavio Salvador
2011-10-21 14:10 ` [PATCH 3/4] base-passwd: move initial criation of group and passwd to preinst Otavio Salvador
2011-10-21 14:52   ` Mark Hatle [this message]
2011-10-21 16:01     ` Otavio Salvador
2011-10-21 14:10 ` [PATCH 4/4] dbus: use useradd class to allow use in read-only filesystems Otavio Salvador
2011-10-21 17:03   ` Saul Wold
2011-10-21 17:07     ` Koen Kooi
  -- strict thread matches above, loose matches on Subject: below --
2011-10-21  3:31 [PATCH 0/4] Fixes and improvements from O.S. Systems Otavio Salvador
2011-10-21  3:31 ` [PATCH 3/4] base-passwd: move initial criation of group and passwd to preinst Otavio Salvador
2011-10-21  3:41   ` Scott Garman
2011-10-21  6:52   ` Phil Blundell
2011-10-21 12:05     ` Otavio Salvador

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EA18712.4050904@windriver.com \
    --to=mark.hatle@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.