All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] system: add ability to pass additional users tables.
Date: Thu, 27 Mar 2014 19:19:15 +0100	[thread overview]
Message-ID: <20140327181915.GA4458@free.fr> (raw)
In-Reply-To: <1395937176-7585-2-git-send-email-eric.le.bihan.dev@free.fr>

Eric, All,

On 2014-03-27 17:19 +0100, Eric Le Bihan spake thusly:
> A new entry has been added to the "System Configuration" menu to allow
> the user to set the location of additional user tables (besides the ones
> defined in packages).
> 
> A user table is a text file, formatted using the mkusers syntax, which
> describes the users on the target system, with their UID/GID, home
> directory, password, etc.
> 
> The target root file system will be populated according the content of
> these files.
> 
> Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
> ---
>  fs/common.mk     |    6 +++++-
>  system/Config.in |    9 +++++++++
>  2 files changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/common.mk b/fs/common.mk
> index d95c26b..6f37bd0 100644
> --- a/fs/common.mk
> +++ b/fs/common.mk
> @@ -33,6 +33,7 @@ FULL_DEVICE_TABLE = $(BUILD_DIR)/_device_table.txt
>  ROOTFS_DEVICE_TABLES = $(call qstrip,$(BR2_ROOTFS_DEVICE_TABLE) \
>         $(BR2_ROOTFS_STATIC_DEVICE_TABLE))
>  USERS_TABLE = $(BUILD_DIR)/_users_table.txt
> +ROOTFS_USERS_TABLE = $(call qstrip,$(BR2_ROOTFS_USERS_TABLE))
>  
>  define ROOTFS_TARGET_INTERNAL
>  
> @@ -78,7 +79,10 @@ endif
>  	printf '$$(subst $$(sep),\n,$$(PACKAGES_PERMISSIONS_TABLE))' >> $$(FULL_DEVICE_TABLE)
>  	echo "$$(HOST_DIR)/usr/bin/makedevs -d $$(FULL_DEVICE_TABLE) $$(TARGET_DIR)" >> $$(FAKEROOT_SCRIPT)
>  endif
> -	printf '$(subst $(sep),\n,$(PACKAGES_USERS))' > $(USERS_TABLE)
> +ifneq ($$(ROOTFS_USERS_TABLE),)
> +	cat $$(ROOTFS_USERS_TABLE) > $(USERS_TABLE)
> +endif
> +	printf '$(subst $(sep),\n,$(PACKAGES_USERS))' >> $(USERS_TABLE)
>  	$(TOPDIR)/support/scripts/mkusers $(USERS_TABLE) $(TARGET_DIR) >> $(FAKEROOT_SCRIPT)
>  	echo "$$(ROOTFS_$(2)_CMD)" >> $$(FAKEROOT_SCRIPT)
>  	chmod a+x $$(FAKEROOT_SCRIPT)
> diff --git a/system/Config.in b/system/Config.in
> index e8f1ed6..b7052f5 100644
> --- a/system/Config.in
> +++ b/system/Config.in
> @@ -280,6 +280,15 @@ config BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW
>  
>  endif # BR2_ROOTFS_SKELETON_DEFAULT
>  
> +config BR2_ROOTFS_USERS_TABLE
> +	string "Path to the users tables"
> +	help
> +	  Specify a space-separated list of users table locations,
> +	  that will be passed to the mkusers utility to create
> +	  users on the system, with home directory, password, etc.
> +
> +	  See manual for details on the usage and syntax of these files.
> +

There is a discrepancy bewteen the description commit log and this help
text, and the actual behaviour. The commit log and help text both
explain this can be a space-separated list of files, but in the code you
just treat it as if it were a unique file:

    ifneq ($$(ROOTFS_USERS_TABLE),)
        cat $$(ROOTFS_USERS_TABLE) > $(USERS_TABLE)
    endif

I think you should do something like:

    $(foreach f,$$(ROOTFS_USERS_TABLE),cat $$(f) >>$(USERS_TABLE)$(sep))

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2014-03-27 18:19 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-27 16:19 [Buildroot] [RFC] add ability to pass additional users tables Eric Le Bihan
2014-03-27 16:19 ` [Buildroot] [PATCH 1/1] system: " Eric Le Bihan
2014-03-27 18:19   ` Yann E. MORIN [this message]
2014-03-28 11:10     ` Eric Le Bihan
2014-03-28 16:50       ` Yann E. MORIN
2014-04-20 17:21   ` Yann E. MORIN

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=20140327181915.GA4458@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /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.