From: Phil Blundell <philb@gnu.org>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 2/7] shadow: add a -native recipe with customized utilities
Date: Thu, 01 Sep 2011 15:46:27 +0100 [thread overview]
Message-ID: <1314888388.19905.187.camel@phil-desktop> (raw)
In-Reply-To: <7826575ce92090c4460c7d016e0b06441f84cff7.1306865217.git.scott.a.garman@intel.com>
I just tried using useradd.bbclass for the first time (in an effort to
make dbus installable on a readonly-rootfs) and it doesn't seem to be
working very well for me.
The root of my problem seems to be the code below. As far as I can
tell, what's happening is that process_root_flag() consumes all the
command line arguments to useradd, which means that the subsequent call
to getopt() in process_flags() just returns immediately because there is
nothing left for it to do. The upshot of all this is that the switches
on the command line are simply ignored and useradd doesn't do what I
wanted.
Is anybody else using this code successfully in oe-core with a
nontrivial USERADD_PARAM?
p.
On Tue, 2011-05-31 at 12:53 -0700, Scott Garman wrote:
> + /*
> ++ * process_root_flag - chroot if given the --root option
> ++ *
> ++ * We do this outside of process_flags() because
> ++ * the is_shadow_pwd boolean needs to be set before
> ++ * process_flags(), and if we do need to chroot() we
> ++ * must do so before is_shadow_pwd gets set.
> ++ */
> ++static void process_root_flag (int argc, char **argv)
> ++{
> ++ /*
> ++ * Parse the command line options.
> ++ */
> ++ int flag;
> ++ int option_index = 0;
> ++ static struct option long_options[] = {
> ++ {"root", required_argument, NULL, 'Q'},
> ++ {NULL, 0, NULL, '\0'}
> ++ };
> ++
> ++ while ((flag = getopt_long (argc, argv, "a:A:d:gM:Q:rR", long_options, &option_index)) != -1) {
> ++ switch (flag) {
> ++ case 'Q':
> ++ if ('/' != optarg[0]) {
> ++ fprintf (stderr,
> ++ _("%s: invalid chroot path '%s'\n"),
> ++ Prog, optarg);
> ++ exit (E_BAD_ARG);
> ++ }
> ++ newroot = optarg;
> ++
> ++ if (access (newroot, F_OK) != 0) {
> ++ fprintf(stderr,
> ++ _("%s: chroot directory %s does not exist\n"),
> ++ Prog, newroot);
> ++ exit (E_BAD_ARG);
> ++ }
> ++ if ( chroot(newroot) != 0 ) {
> ++ fprintf(stderr,
> ++ _("%s: unable to chroot to directory %s\n"),
> ++ Prog, newroot);
> ++ exit (E_BAD_ARG);
> ++ }
> ++ break;
> ++ /* no-op on everything else - they will be hanled by process_flags() */
> ++ }
> ++ }
> ++}
next prev parent reply other threads:[~2011-09-01 14:51 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-31 19:53 [PATCH 0/7] User/group creation at preinstall Scott Garman
2011-05-31 18:45 ` [poky] " Koen Kooi
2011-05-31 19:06 ` Saul Wold
2011-05-31 19:51 ` Scott Garman
2011-05-31 19:57 ` Otavio Salvador
2011-05-31 21:16 ` Mark Hatle
2011-05-31 21:27 ` Scott Garman
2011-05-31 21:51 ` Richard Purdie
2011-05-31 21:25 ` Richard Purdie
2011-05-31 19:53 ` [PATCH 1/7] shadow: recipe and patch cleanup Scott Garman
2011-05-31 19:53 ` [PATCH 2/7] shadow: add a -native recipe with customized utilities Scott Garman
2011-06-01 9:47 ` Phil Blundell
2011-06-01 12:34 ` Martyn Welch
2011-06-01 13:42 ` Phil Blundell
2011-06-01 17:43 ` Scott Garman
2011-06-01 21:05 ` Mark Hatle
2011-06-02 11:19 ` Phil Blundell
2011-09-01 14:46 ` Phil Blundell [this message]
2011-09-01 16:41 ` Phil Blundell
2011-09-01 16:54 ` Mark Hatle
2011-09-01 16:58 ` Phil Blundell
2011-09-01 17:25 ` Mark Hatle
2011-09-01 19:44 ` Phil Blundell
2011-09-01 21:59 ` Richard Purdie
2011-09-02 0:02 ` Mark Hatle
2011-09-02 7:15 ` Phil Blundell
2011-09-02 9:50 ` Phil Blundell
2011-09-02 14:03 ` Richard Purdie
2011-09-02 18:43 ` Phil Blundell
2011-09-02 19:17 ` Mark Hatle
2011-05-31 19:53 ` [PATCH 3/7] base-passwd: add -cross recipe with default login.defs Scott Garman
2011-05-31 19:53 ` [PATCH 4/7] useradd.bbclass: new class for managing user/group permissions Scott Garman
2011-05-31 19:53 ` [PATCH 5/7] useradd-example: example recipe for using inherit useradd Scott Garman
2011-05-31 19:53 ` [PATCH 6/7] bitbake.conf: set PSEUDO_PASSWD within FAKEROOTENV Scott Garman
2011-05-31 19:53 ` [PATCH 7/7] package_rpm.bbclass: make RPM use on-disk permissions Scott Garman
-- strict thread matches above, loose matches on Subject: below --
2011-06-02 23:50 [PATCH 0/7] User/group creation at preinstall v2 Scott Garman
2011-06-02 23:50 ` [PATCH 2/7] shadow: add a -native recipe with customized utilities Scott Garman
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=1314888388.19905.187.camel@phil-desktop \
--to=philb@gnu.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox