[oe] [PATCH][STABLE] shadow: reorg into .inc, pull some mvl6 changes over, use a 'pam' distro feature.

Philip Balister philip at balister.org
Tue Mar 23 02:00:47 UTC 2010


Acked-by: Philip Balister <philip at balister.org>


On 03/22/2010 07:06 AM, Marcin Juszkiewicz wrote:
> From: Chris Larson<clarson at mvista.com>
>
> Signed-off-by: Chris Larson<clarson at mvista.com>
> ---
>   recipes/shadow/shadow.inc        |   91 ++++++++++++++++++++++++++++++++++++++
>   recipes/shadow/shadow_4.1.4.1.bb |    3 +
>   recipes/shadow/shadow_4.1.4.2.bb |   55 +----------------------
>   recipes/shadow/shadow_4.1.4.bb   |   12 +----
>   4 files changed, 98 insertions(+), 63 deletions(-)
>   create mode 100644 recipes/shadow/shadow.inc
>   create mode 100644 recipes/shadow/shadow_4.1.4.1.bb
>
> diff --git a/recipes/shadow/shadow.inc b/recipes/shadow/shadow.inc
> new file mode 100644
> index 0000000..83d06c3
> --- /dev/null
> +++ b/recipes/shadow/shadow.inc
> @@ -0,0 +1,91 @@
> +# Configuration parameters
> +SHADOW_MAILFILE ?= "Mailbox"
> +SHADOW_MAILDIR ?= "${localstatedir}/spool/mail"
> +SHADOW_UTMPDIR ?= "${localstatedir}/utmp"
> +SHADOW_LOGDIR ?= "${localstatedir}/log"
> +
> +# Metadata
> +DESCRIPTION = "Tools to change and administer password and group data."
> +HOMEPAGE = "http://pkg-shadow.alioth.debian.org/"
> +LICENSE = "BSD"
> +SECTION = "base"
> +DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
> +
> +INC_PR = "r6"
> +
> +# Additional Policy files for PAM
> +PAM_SRC_URI = " \
> +           file://pam.d/chfn \
> +           file://pam.d/chpasswd \
> +           file://pam.d/chsh \
> +           file://pam.d/login \
> +           file://pam.d/newusers \
> +           file://pam.d/passwd \
> +           file://pam.d/su \
> +"
> +SRC_URI = "ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-${PV}.tar.bz2 \
> +           file://login_defs_pam.sed \
> +           ${@base_contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
> +           file://securetty \
> +"
> +
> +inherit autotools gettext
> +
> +EXTRA_OECONF += "\
> +    --disable-account-tools-setuid \
> +    --without-audit \
> +    --without-selinux \
> +    --without-libcrack \
> +    ${@base_contains('DISTRO_FEATURES', 'pam', '--with-libpam', '--without-libpam', d)} \
> +"
> +
> +CFLAGS += "-I../include"
> +
> +do_configure_prepend () {
> +    export CONFIG_SITE="${CONFIG_SITE} ${B}/cachedpaths"
> +    cat<<END>${B}/cachedpaths
> +shadow_cv_maildir=${SHADOW_MAILDIR}
> +shadow_cv_mailfile=${SHADOW_MAILFILE}
> +shadow_cv_utmpdir=${SHADOW_UTMPDIR}
> +shadow_cv_logdir=${SHADOW_LOGDIR}
> +shadow_cv_passwd_dir=${bindir}
> +END
> +}
> +
> +do_install_append() {
> +  # Ensure that the image has as /var/spool/mail dir so shadow can put mailboxes there if the user
> +  # reconfigures Shadow to default (see sed below).
> +  install -d ${D}${SHADOW_MAILDIR}
> +
> +  if [ -e ${WORKDIR}/pam.d ]; then
> +      install -d ${D}${sysconfdir}/pam.d/
> +      install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
> +  fi
> +
> +  # Remove defaults that are not used when supporting PAM
> +  ${@base_contains('DISTRO_FEATURES', 'pam', 'sed -i -f ${WORKDIR}/login_defs_pam.sed ${D}${sysconfdir}/login.defs', '', d)}
> +
> +  # Enable CREATE_HOME by default.
> +  sed -i 's/#CREATE_HOME/CREATE_HOME/g' ${D}${sysconfdir}/login.defs
> +
> +  # As we are on an embedded system ensure the users mailbox is in ~/ not
> +  # /var/spool/mail by default as who knows where or how big /var is.
> +  # The system MDA will set this later anyway.
> +  sed -i 's/MAIL_DIR/#MAIL_DIR/g' ${D}${sysconfdir}/login.defs
> +  sed -i 's/#MAIL_FILE/MAIL_FILE/g' ${D}${sysconfdir}/login.defs
> +
> +  mv ${D}${sbindir}/chpasswd ${D}${sbindir}/chpasswd.${PN}
> +  mv ${D}${bindir}/passwd ${D}${bindir}/chpasswd.${PN}
> +
> +  install -m 0644 ${WORKDIR}/securetty ${D}${sysconfdir}/securetty
> +}
> +
> +pkg_postinst_${PN} () {
> +    update-alternatives --install ${bindir}/passwd passwd passwd.${PN} 100
> +    update-alternatives --install ${sbindir}/chpasswd chpasswd chpasswd.${PN} 100
> +}
> +
> +pkg_prerm_${PN} () {
> +    update-alternatives --remove passwd passwd.${PN}
> +    update-alternatives --remove chpasswd chpasswd.${PN}
> +}
> diff --git a/recipes/shadow/shadow_4.1.4.1.bb b/recipes/shadow/shadow_4.1.4.1.bb
> new file mode 100644
> index 0000000..7f9d403
> --- /dev/null
> +++ b/recipes/shadow/shadow_4.1.4.1.bb
> @@ -0,0 +1,3 @@
> +require shadow.inc
> +
> +PR = "${INC_PR}.0"
> diff --git a/recipes/shadow/shadow_4.1.4.2.bb b/recipes/shadow/shadow_4.1.4.2.bb
> index b53f89f..7f9d403 100644
> --- a/recipes/shadow/shadow_4.1.4.2.bb
> +++ b/recipes/shadow/shadow_4.1.4.2.bb
> @@ -1,54 +1,3 @@
> -DESCRIPTION = "login/password and account utilities"
> -LICENSE = "GPL"
> +require shadow.inc
>
> -DEPENDS = "libpam"
> -
> -PR = "r6"
> -
> -EXTRA_OECONF += " --enable-shared  --enable-static --with-libpam --without-libcrack"
> -
> -inherit autotools
> -
> -HOMEPAGE = "http://pkg-shadow.alioth.debian.org/"
> -SRC_URI = "ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-${PV}.tar.bz2 \
> -           file://login_defs_pam.sed \
> -"
> -
> -# Additional Policy files for PAM
> -SRC_URI_append = " \
> -           file://pam.d/chfn \
> -           file://pam.d/chpasswd \
> -           file://pam.d/chsh \
> -           file://pam.d/login \
> -           file://pam.d/newusers \
> -           file://pam.d/passwd \
> -           file://pam.d/su \
> -           file://securetty \
> -"
> -
> -S = "${WORKDIR}/shadow-${PV}"
> -
> -CFLAGS_append = " -I../include"
> -
> -do_install_append() {
> -  # Ensure that the image has as /var/spool/mail dir so shadow can put mailboxes there if the user
> -  # reconfigures Shadow to default (see sed below).
> -  install -d ${D}${localstatedir}/spool/mail/
> -
> -  install -d ${D}${sysconfdir}/pam.d/
> -  install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
> -
> -  # Remove defaults that are not used when supporting PAM
> -  sed -i -f ${WORKDIR}/login_defs_pam.sed ${D}${sysconfdir}/login.defs
> -
> -  # Enable CREATE_HOME by default.
> -  sed -i 's/#CREATE_HOME/CREATE_HOME/g' ${D}${sysconfdir}/login.defs
> -
> -  # As we are on an embedded system ensure the users mailbox is in ~/ not
> -  # /var/spool/mail by default as who knows where or how big /var is.
> -  # The system MDA will set this later anyway.
> -  sed -i 's/MAIL_DIR/#MAIL_DIR/g' ${D}${sysconfdir}/login.defs
> -  sed -i 's/#MAIL_FILE/MAIL_FILE/g' ${D}${sysconfdir}/login.defs
> -
> -  install -m 0644 ${WORKDIR}/securetty ${D}${sysconfdir}/securetty
> -}
> +PR = "${INC_PR}.0"
> diff --git a/recipes/shadow/shadow_4.1.4.bb b/recipes/shadow/shadow_4.1.4.bb
> index 393edce..7f9d403 100644
> --- a/recipes/shadow/shadow_4.1.4.bb
> +++ b/recipes/shadow/shadow_4.1.4.bb
> @@ -1,11 +1,3 @@
> -DESCRIPTION = "login/password utilities"
> -LICENSE = "GPL"
> -
> -inherit autotools
> -
> -SRC_URI = "ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-${PV}.tar.gz"
> -
> -S = "${WORKDIR}/shadow-${PV}"
> -
> -CFLAGS_append = " -I../include"
> +require shadow.inc
>
> +PR = "${INC_PR}.0"




More information about the Openembedded-devel mailing list