[oe] [meta-perl][PATCH] adduser: add new recipe

Huang, Jie (Jackie) Jackie.Huang at windriver.com
Mon Jan 12 03:25:06 UTC 2015



> -----Original Message-----
> From: openembedded-devel-bounces at lists.openembedded.org [mailto:openembedded-devel-
> bounces at lists.openembedded.org] On Behalf Of Martin Jansa
> Sent: Monday, January 05, 2015 8:23 PM
> To: openembedded-devel at lists.openembedded.org
> Subject: Re: [oe] [meta-perl][PATCH] adduser: add new recipe
> 
> On Fri, Dec 19, 2014 at 02:14:56PM +0800, jackie.huang at windriver.com wrote:
> > From: Jackie Huang <jackie.huang at windriver.com>
> >
> > This is a utility from debain to add users/groups to the system, which
> > is actually a perl wrapper of the useradd/groupadd command.
> >
> > We want this to replace the same commands provided by busybox.
> >
> > Homepage: https://alioth.debian.org/projects/adduser
> >
> > Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
> > ---
> >  .../recipes-perl/adduser/adduser_3.113+nmu3.bb     | 53 ++++++++++++++++++++
> >  ...-M-option-for-useradd-when-no-create-home.patch | 57
> > ++++++++++++++++++++++
> >  2 files changed, 110 insertions(+)
> >  create mode 100644
> > meta-perl/recipes-perl/adduser/adduser_3.113+nmu3.bb
> >  create mode 100644
> > meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd-
> > when-no-create-home.patch
> >
> > diff --git a/meta-perl/recipes-perl/adduser/adduser_3.113+nmu3.bb
> > b/meta-perl/recipes-perl/adduser/adduser_3.113+nmu3.bb
> > new file mode 100644
> > index 0000000..2ba74b0
> > --- /dev/null
> > +++ b/meta-perl/recipes-perl/adduser/adduser_3.113+nmu3.bb
> > @@ -0,0 +1,53 @@
> > +SUMMARY = "a utility to add users/groups to the system"
> > +DESCRIPTION = "adduser, addgroup - add a user or group to the system"
> > +HOMEPAGE = "http://alioth.debian.org/projects/adduser/"
> > +SECTION = "base/utils"
> > +
> > +LICENSE = "GPLv2"
> > +LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef"
> > +
> > +SRC_URI = "http://ftp.de.debian.org/debian/pool/main/a/${BPN}/${BPN}_${PV}.tar.gz \
> > +
> > +file://adduser-add-M-option-for-useradd-when-no-create-home.patch \ "
> > +
> > +SRC_URI[md5sum] = "ccb5864bde56683182c89c44474e7182"
> > +SRC_URI[sha256sum] = "02682be3f51f3e732121f20a3e4922bb8bef15cfacb8767fc250a01d09502122"
> > +
> > +inherit cpan-base update-alternatives
> > +
> > +do_install() {
> > +	install -d ${D}${sbindir}
> > +	install -m 0755 ${S}/adduser ${D}${sbindir}
> > +	install -m 0755 ${S}/deluser ${D}${sbindir}
> > +
> > +	install -d ${D}${libdir}/perl/${PERLVERSION}/Debian
> > +	install -m 0644 ${S}/AdduserCommon.pm ${D}${libdir}/perl/${PERLVERSION}/Debian
> > +	sed -i -e "s/VERSION/${PV}/" ${D}${sbindir}/*
> > +
> > +	install -d ${D}/${sysconfdir}
> > +	install -m 0644 ${S}/*.conf ${D}/${sysconfdir}
> > +
> > +	install -d ${D}${mandir}/man5
> > +	install -m 0644 ${S}/doc/*.conf.5 ${D}${mandir}/man5
> > +	install -d ${D}${mandir}/man8
> > +	install -m 0644 ${S}/doc/*.8 ${D}${mandir}/man8
> > +	install -d ${D}${docdir}/${BPN}
> > +	cp -rf ${S}/examples ${D}${docdir}/${BPN} }
> 
> Use 4 spaces for indentation.

Sure, I will change and send v2.

Thanks,
Jackie

> 
> > +
> > +RDEPENDS_${PN} += "\
> > +	shadow \
> > +	perl-module-getopt-long \
> > +	perl-module-overloading \
> > +	perl-module-file-find \
> > +	perl-module-file-temp \
> > +"
> > +
> > +ALTERNATIVE_${PN} = "adduser deluser addgroup delgroup"
> > +ALTERNATIVE_PRIORITY = "60"
> > +ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser"
> > +ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser"
> > +ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup"
> > +ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup"
> > +ALTERNATIVE_TARGET[addgroup] = "${sbindir}/adduser.${BPN}"
> > +ALTERNATIVE_TARGET[delgroup] = "${sbindir}/deluser.${BPN}"
> > diff --git
> > a/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-userad
> > d-when-no-create-home.patch
> > b/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-userad
> > d-when-no-create-home.patch
> > new file mode 100644
> > index 0000000..4b0a03f
> > --- /dev/null
> > +++ b/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-us
> > +++ eradd-when-no-create-home.patch
> > @@ -0,0 +1,57 @@
> > +From 809f00a6ef0224b41b2e1207194c8da3cd3e3c7e Mon Sep 17 00:00:00
> > +2001
> > +From: Jackie Huang <jackie.huang at windriver.com>
> > +Date: Thu, 18 Dec 2014 17:23:37 +0800
> > +Subject: [PATCH] adduser: add -M option for useradd when
> > +--no-create-home is specified
> > +
> > +The useradd (from package passwd) in debian based system sets -M
> > +(--no-create-home) by default, but the one we are using (from package
> > +shadow) sets -m (--create-home) by default, so we need to explicitly add -M option for useradd
> call when --no-create-home is specified for adduser.
> > +
> > +Upstream-Status: Pending
> > +
> > +Signed-off-by: Jackie Huang <jackie.huang at windriver.com>
> > +---
> > + adduser |   20 ++++++++++++++++----
> > + 1 files changed, 16 insertions(+), 4 deletions(-)
> > +
> > +diff --git a/adduser b/adduser
> > +index c3bd8b0..9a07f9f 100755
> > +--- a/adduser
> > ++++ b/adduser
> > +@@ -434,8 +434,14 @@ if ($action eq "addsysuser") {
> > +     $shell = $special_shell || '/bin/false';
> > +     $undouser = $new_name;
> > +     my $useradd = &which('useradd');
> > +-    &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
> > +-		$shell, '-u', $new_uid, $new_name);
> > ++    if ($no_create_home) {
> > ++        &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
> > ++		    $shell, '-u', $new_uid, '-M', $new_name);
> > ++    }
> > ++    else {
> > ++        &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
> > ++                    $shell, '-u', $new_uid, $new_name);
> > ++    }
> > +     if(!$disabled_login) {
> > +         my $usermod = &which('usermod');
> > +         &systemcall($usermod, '-p', '*', $new_name); @@ -524,8
> > ++530,14 @@ if ($action eq "adduser") {
> > + 	$shell = $special_shell || $config{"dshell"};
> > +     $undouser = $new_name;
> > +     my $useradd = &which('useradd');
> > +-    &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
> > +-		$shell, '-u', $new_uid, $new_name);
> > ++    if ($no_create_home) {
> > ++        &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
> > ++	    	    $shell, '-u', $new_uid, '-M', $new_name);
> > ++    }
> > ++    else {
> > ++        &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
> > ++	    	    $shell, '-u', $new_uid, $new_name);
> > ++    }
> > +     &invalidate_nscd();
> > +
> > +     create_homedir (1); # copy skeleton data
> > +--
> > +1.7.1
> > +
> > --
> > 1.9.1
> >
> > --
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> 
> --
> Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com



More information about the Openembedded-devel mailing list