[yocto] useradd and one sysroot per recipe in pyro

Leonardo Sandoval leonardo.sandoval.gonzalez at linux.intel.com
Wed Jun 14 10:47:14 PDT 2017


On Wed, 2017-06-14 at 18:12 +0200, Laurent Gauthier wrote:
> Hi Christian,
> 
> In pyro the creation of users and group (using the useradd class) is
> done during the package pre-installation.
> 
> So my best guess is that you could move the owner/group change in the
> package post-installation as follows:
> 
> do_install () {
>             (…)
>             install -d ${D}${sysconfdir}/myappl
>             install -d ${D}${localstatedir}/lib/myappl
> }
> 
> pkg_postinst_${PN} () {
>             chown -R myuser:mygroup ${D}${sysconfdir}/myappl
>             chown -R myuser:mygroup ${D}${localstatedir}/lib/myappl
> }
> 
> I hope this helps.

also, at the oe-core repo, you can find a recipe example


meta-skeleton/recipes-skeleton/useradd/useradd-example.bb


> 
> Laurent.
> 
> On Wed, Jun 14, 2017 at 5:57 PM, Andersen, Christian
> <c.andersen at kostal.com> wrote:
> > Any ideas how to use „useradd“ bbclass with pyro?
> >
> > If I move useradd to my recipe my-appl.bb, it works. But there are more
> > recipes depending on the added user, so I want to add this user in a
> > base-recipe and just depend on it using (DEPENDS/RDEPENDS).
> >
> > Regards
> > Christian
> >
> >
> >
> > Von: Andersen, Christian
> > Gesendet: Dienstag, 13. Juni 2017 18:10
> > An: 'yocto at yoctoproject.org' <yocto at yoctoproject.org>
> > Betreff: useradd and one sysroot per recipe in pyro
> >
> >
> >
> > Hello,
> >
> >
> >
> > currently I am trying the newest Yocto release (pyro). It seems I have a
> > problem with useradd and the new concept of one sysroot per recipe.
> >
> >
> >
> > I have a base recipe (let’s call it my-base.bb) which inherits useradd and
> > creates a new user (let’s call him myuser):
> >
> >
> >
> > inherit useradd
> >
> >
> >
> > USERADD_PACKAGES = "${PN}"
> >
> > USERADD_PARAM_${PN} = " \
> >
> >     --uid 1200 \
> >
> >     --gid 1200 \
> >
> >     --system \
> >
> >     --shell /bin/bash \
> >
> >     --create-home \
> >
> >     --home-dir /home/myuser \
> >
> >     --groups mygroup,video,input \
> >
> >     myuser"
> >
> > GROUPADD_PARAM_${PN} = "-g 1200 mygroup"
> >
> >
> >
> > do_install () {
> >
> > install -d ${D}/home/myuser
> >
> >             chown -R myuser:mygroup ${D}/home/myuser
> >
> > }
> >
> >
> >
> > Other recipes depend on this base recipe (via DEPENDS and RDEPENDS), because
> > they require this user, e.g. in recipe my-appl.bb (in this case python only,
> > so no configure or compile):
> >
> >
> >
> > DEPENDS = "puck-base"
> >
> > RDEPENDS_${PN} = "puck-base python3-dbus python3-sqlite3 python3-netclient
> > python3-requests"
> >
> >
> >
> > do_configure[noexec] = "1"
> >
> > do_compile[noexec] = "1"
> >
> >
> >
> > do_install () {
> >
> >             (…)
> >
> >
> >
> > install -d ${D}${sysconfdir}/myappl
> >
> >             chown -R myuser:mygroup ${D}${sysconfdir}/myappl
> >
> >
> >
> > install -d ${D}${localstatedir}/lib/myappl
> >
> >             chown -R myuser:mygroup ${D}${localstatedir}/lib/myappl
> >
> > }
> >
> >
> >
> > Unfortunately I get an error when building the recipe my-appl.bb
> >
> >
> >
> > | chown: invalid user: ‘myuser:mygroup’
> >
> > | WARNING: exit code 1 from a shell command.
> >
> > | ERROR: Function failed: do_install (log file is located at …)
> >
> > ERROR: Task (…/my-appl.bb:do_install) failed with exit code '1'
> >
> >
> >
> > In morty the user was created in the shared sysroot. But using pyro the user
> > is not created in the recipe-sysroot.
> >
> >
> >
> > What am I doing wrong and is there a way to solve this?
> >
> >
> >
> > Thanks in advance!
> >
> > Regards
> >
> > Christian
> >
> > KOSTAL Industrie Elektrik GmbH - Sitz Lüdenscheid, Registergericht Iserlohn
> > HRB 3924 - USt-Id-Nr./Vat No.: DE 813742170
> > Postanschrift: An der Bellmerei 10, D-58513 Lüdenscheid * Telefon: +49 2351
> > 16-0 * Telefax: +49 2351 16-2400
> > Werksanschrift: Lange Eck 11, D-58099 Hagen * Tel. +49 2331 8040-800 * Fax
> > +49 2331 8040-602
> > Geschäftsführung: Axel Zimmermann, Dipl.-Ing. Marwin Kinzl, Dipl.-Oec.
> > Andreas Kostal
> >
> > --
> > _______________________________________________
> > yocto mailing list
> > yocto at yoctoproject.org
> > https://lists.yoctoproject.org/listinfo/yocto
> >
> 
> 
> 
> -- 
> Laurent Gauthier
> Phone: +33 630 483 429
> http://soccasys.com





More information about the yocto mailing list