Patchwork [1/1] quagga: add pam support for vtysh

login
register
mail settings
Submitter Hongxu Jia
Date Nov. 8, 2013, 4:32 a.m.
Message ID <568c0cba0af47d5f6a0402ef4ac8316db7769326.1383884700.git.hongxu.jia@windriver.com>
Download mbox | patch
Permalink /patch/61313/
State New, archived
Headers show

Comments

Hongxu Jia - Nov. 8, 2013, 4:32 a.m.
According to DISTRO_FEATURES to add pam support for quagga, and import
configure file from Fedora.

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 meta-networking/recipes-protocols/quagga/files/quagga.pam | 13 +++++++++++++
 meta-networking/recipes-protocols/quagga/quagga.inc       | 13 ++++++++++++-
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 meta-networking/recipes-protocols/quagga/files/quagga.pam
rongqing.li@windriver.com - Nov. 8, 2013, 5:08 a.m.
On 11/08/2013 12:32 PM, Hongxu Jia wrote:
> According to DISTRO_FEATURES to add pam support for quagga, and import
> configure file from Fedora.
>
> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ---
>   meta-networking/recipes-protocols/quagga/files/quagga.pam | 13 +++++++++++++
>   meta-networking/recipes-protocols/quagga/quagga.inc       | 13 ++++++++++++-
>   2 files changed, 25 insertions(+), 1 deletion(-)
>   create mode 100644 meta-networking/recipes-protocols/quagga/files/quagga.pam
>
> diff --git a/meta-networking/recipes-protocols/quagga/files/quagga.pam b/meta-networking/recipes-protocols/quagga/files/quagga.pam
> new file mode 100644
> index 0000000..3541a97
> --- /dev/null
> +++ b/meta-networking/recipes-protocols/quagga/files/quagga.pam
> @@ -0,0 +1,13 @@
> +#
> +# The PAM configuration file for the quagga `vtysh' service
> +#
> +
> +# This allows root to change user infomation without being
> +# prompted for a password
> +auth		sufficient	pam_rootok.so
> +
> +# The standard Unix authentication modules, used with
> +# NIS (man nsswitch) as well as normal /etc/passwd and
> +# /etc/shadow entries.
> +auth       include      common-auth
> +
> diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc
> index 2106c9b..52cd7a3 100644
> --- a/meta-networking/recipes-protocols/quagga/quagga.inc
> +++ b/meta-networking/recipes-protocols/quagga/quagga.inc
> @@ -32,10 +32,12 @@ SRC_URI = "http://download.savannah.gnu.org/releases/quagga${QUAGGASUBDIR}/quagg
>              file://watchquagga.init \
>              file://watchquagga.default \
>              file://volatiles.03_quagga \
> +           file://file://quagga.pam \

Why is there be two file://?

>              file://ripd-fix-two-bugs-after-received-SIGHUP.patch"
>
> -PACKAGECONFIG ??= ""
> +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
>   PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap"
> +PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam"
>
>   inherit autotools update-rc.d useradd
>
> @@ -98,6 +100,15 @@ do_install () {
>       # Remove generated info dir file, it doesn't belong in the generated
>       # package.
>       rm -f ${D}${infodir}/dir
> +
> +    # For PAM
> +    for feature in ${DISTRO_FEATURES}; do
> +        if [ "$feature" = "pam" ]; then
> +            install -D -m 644 ${WORKDIR}/quagga.pam ${D}/${sysconfdir}/pam.d/quagga
> +            break
> +        fi
> +    done
> +


Could you use the below method to simply this loop

     if 
${@base_contains('DISTRO_FEATURES','sysvinit','false','true',d)};then
     if

-Roy

>   }
>
>   # Split into a main package and separate per-protocol packages
>
Hongxu Jia - Nov. 8, 2013, 8:30 a.m.
On 11/08/2013 01:08 PM, Rongqing Li wrote:
>
>
> On 11/08/2013 12:32 PM, Hongxu Jia wrote:
>> According to DISTRO_FEATURES to add pam support for quagga, and import
>> configure file from Fedora.
>>
>> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
>> ---
>>   meta-networking/recipes-protocols/quagga/files/quagga.pam | 13 
>> +++++++++++++
>>   meta-networking/recipes-protocols/quagga/quagga.inc       | 13 
>> ++++++++++++-
>>   2 files changed, 25 insertions(+), 1 deletion(-)
>>   create mode 100644 
>> meta-networking/recipes-protocols/quagga/files/quagga.pam
>>
>> diff --git 
>> a/meta-networking/recipes-protocols/quagga/files/quagga.pam 
>> b/meta-networking/recipes-protocols/quagga/files/quagga.pam
>> new file mode 100644
>> index 0000000..3541a97
>> --- /dev/null
>> +++ b/meta-networking/recipes-protocols/quagga/files/quagga.pam
>> @@ -0,0 +1,13 @@
>> +#
>> +# The PAM configuration file for the quagga `vtysh' service
>> +#
>> +
>> +# This allows root to change user infomation without being
>> +# prompted for a password
>> +auth        sufficient    pam_rootok.so
>> +
>> +# The standard Unix authentication modules, used with
>> +# NIS (man nsswitch) as well as normal /etc/passwd and
>> +# /etc/shadow entries.
>> +auth       include      common-auth
>> +
>> diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc 
>> b/meta-networking/recipes-protocols/quagga/quagga.inc
>> index 2106c9b..52cd7a3 100644
>> --- a/meta-networking/recipes-protocols/quagga/quagga.inc
>> +++ b/meta-networking/recipes-protocols/quagga/quagga.inc
>> @@ -32,10 +32,12 @@ SRC_URI = 
>> "http://download.savannah.gnu.org/releases/quagga${QUAGGASUBDIR}/quagg
>>              file://watchquagga.init \
>>              file://watchquagga.default \
>>              file://volatiles.03_quagga \
>> +           file://file://quagga.pam \
>
> Why is there be two file://?
>

Oh, sorry for the typo, I have updated the git to correct this.

   git://git.pokylinux.org/poky-contrib hongxu/fix-quagga-pam
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/fix-quagga-pam

Thanks,
Hongxu

>> file://ripd-fix-two-bugs-after-received-SIGHUP.patch"
>>
>> -PACKAGECONFIG ??= ""
>> +PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', 
>> '', d)}"
>>   PACKAGECONFIG[cap] = 
>> "--enable-capabilities,--disable-capabilities,libcap"
>> +PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam"
>>
>>   inherit autotools update-rc.d useradd
>>
>> @@ -98,6 +100,15 @@ do_install () {
>>       # Remove generated info dir file, it doesn't belong in the 
>> generated
>>       # package.
>>       rm -f ${D}${infodir}/dir
>> +
>> +    # For PAM
>> +    for feature in ${DISTRO_FEATURES}; do
>> +        if [ "$feature" = "pam" ]; then
>> +            install -D -m 644 ${WORKDIR}/quagga.pam 
>> ${D}/${sysconfdir}/pam.d/quagga
>> +            break
>> +        fi
>> +    done
>> +
>
>
> Could you use the below method to simply this loop
>
>     if 
> ${@base_contains('DISTRO_FEATURES','sysvinit','false','true',d)};then
>     if
>
> -Roy
>
>>   }
>>
>>   # Split into a main package and separate per-protocol packages
>>
>

Patch

diff --git a/meta-networking/recipes-protocols/quagga/files/quagga.pam b/meta-networking/recipes-protocols/quagga/files/quagga.pam
new file mode 100644
index 0000000..3541a97
--- /dev/null
+++ b/meta-networking/recipes-protocols/quagga/files/quagga.pam
@@ -0,0 +1,13 @@ 
+#
+# The PAM configuration file for the quagga `vtysh' service
+#
+
+# This allows root to change user infomation without being
+# prompted for a password
+auth		sufficient	pam_rootok.so
+
+# The standard Unix authentication modules, used with
+# NIS (man nsswitch) as well as normal /etc/passwd and
+# /etc/shadow entries.
+auth       include      common-auth
+
diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc
index 2106c9b..52cd7a3 100644
--- a/meta-networking/recipes-protocols/quagga/quagga.inc
+++ b/meta-networking/recipes-protocols/quagga/quagga.inc
@@ -32,10 +32,12 @@  SRC_URI = "http://download.savannah.gnu.org/releases/quagga${QUAGGASUBDIR}/quagg
            file://watchquagga.init \
            file://watchquagga.default \
            file://volatiles.03_quagga \
+           file://file://quagga.pam \
            file://ripd-fix-two-bugs-after-received-SIGHUP.patch"
 
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
 PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap"
+PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam"
 
 inherit autotools update-rc.d useradd
 
@@ -98,6 +100,15 @@  do_install () {
     # Remove generated info dir file, it doesn't belong in the generated
     # package.
     rm -f ${D}${infodir}/dir
+
+    # For PAM
+    for feature in ${DISTRO_FEATURES}; do
+        if [ "$feature" = "pam" ]; then
+            install -D -m 644 ${WORKDIR}/quagga.pam ${D}/${sysconfdir}/pam.d/quagga
+            break
+        fi
+    done
+
 }
 
 # Split into a main package and separate per-protocol packages