Patchwork [V1,1/2] base-files: move shells generating process to pkg_postinst

login
register
mail settings
Submitter Ming Liu
Date Oct. 17, 2013, 2:04 a.m.
Message ID <1381975446-25671-1-git-send-email-ming.liu@windriver.com>
Download mbox | patch
Permalink /patch/60051/
State New
Headers show

Comments

Ming Liu - Oct. 17, 2013, 2:04 a.m.
The "shells" file lists several valid login shells, of which some might be
not present in a particular rootfs, this is unreasonable.

Fix it by moving "shells" file generating process to pkg_postinst, for other
shells must do the same thing to register themselves to this file.

Signed-off-by: Ming Liu <ming.liu@windriver.com>
---
 meta/recipes-core/base-files/base-files/shells    | 8 --------
 meta/recipes-core/base-files/base-files_3.0.14.bb | 8 ++++++--
 2 files changed, 6 insertions(+), 10 deletions(-)
 delete mode 100644 meta/recipes-core/base-files/base-files/shells
Martin Jansa - Oct. 17, 2013, 9:40 a.m.
On Thu, Oct 17, 2013 at 10:04:05AM +0800, Ming Liu wrote:
> The "shells" file lists several valid login shells, of which some might be
> not present in a particular rootfs, this is unreasonable.
> 
> Fix it by moving "shells" file generating process to pkg_postinst, for other
> shells must do the same thing to register themselves to this file.
> 
> Signed-off-by: Ming Liu <ming.liu@windriver.com>
> ---
>  meta/recipes-core/base-files/base-files/shells    | 8 --------
>  meta/recipes-core/base-files/base-files_3.0.14.bb | 8 ++++++--
>  2 files changed, 6 insertions(+), 10 deletions(-)
>  delete mode 100644 meta/recipes-core/base-files/base-files/shells
> 
> diff --git a/meta/recipes-core/base-files/base-files/shells b/meta/recipes-core/base-files/base-files/shells
> deleted file mode 100644
> index ce39b3d..0000000
> --- a/meta/recipes-core/base-files/base-files/shells
> +++ /dev/null
> @@ -1,8 +0,0 @@
> -# /etc/shells: valid login shells
> -/bin/sh
> -/bin/ash
> -/bin/bash
> -/bin/dash
> -/bin/ksh
> -/usr/bin/ksh
> -/usr/bin/screen
> diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
> index 054fefa..47c7ebe 100644
> --- a/meta/recipes-core/base-files/base-files_3.0.14.bb
> +++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
> @@ -16,7 +16,6 @@ SRC_URI = "file://rotation \
>             file://inputrc \
>             file://host.conf \
>             file://profile \
> -           file://shells \
>             file://fstab \
>             file://filesystems \
>             file://issue.net \
> @@ -92,7 +91,6 @@ do_install () {
>  	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
>  	sed -i "s#ROOTHOME#${ROOT_HOME}#" ${WORKDIR}/profile
>  	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
> -	install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
>  	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
>  	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
>  	install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc
> @@ -137,6 +135,12 @@ do_install_append_linuxstdbase() {
>          done
>  }
>  
> +pkg_postinst_${PN} () {
> +        touch $D${sysconfdir}/shells
> +        grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells

What it someone installs component providing /usr/bin/shell? Use at
least ^/bin/sh$ in grep.

> +}
> +
> +
>  PACKAGES = "${PN}-doc ${PN} ${PN}-dev ${PN}-dbg"
>  FILES_${PN} = "/"
>  FILES_${PN}-doc = "${docdir} ${datadir}/common-licenses"
> -- 
> 1.8.3.3
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Ming Liu - Oct. 17, 2013, 9:51 a.m.
On 10/17/2013 05:40 PM, Martin Jansa wrote:
> On Thu, Oct 17, 2013 at 10:04:05AM +0800, Ming Liu wrote:
>> The "shells" file lists several valid login shells, of which some might be
>> not present in a particular rootfs, this is unreasonable.
>>
>> Fix it by moving "shells" file generating process to pkg_postinst, for other
>> shells must do the same thing to register themselves to this file.
>>
>> Signed-off-by: Ming Liu <ming.liu@windriver.com>
>> ---
>>   meta/recipes-core/base-files/base-files/shells    | 8 --------
>>   meta/recipes-core/base-files/base-files_3.0.14.bb | 8 ++++++--
>>   2 files changed, 6 insertions(+), 10 deletions(-)
>>   delete mode 100644 meta/recipes-core/base-files/base-files/shells
>>
>> diff --git a/meta/recipes-core/base-files/base-files/shells b/meta/recipes-core/base-files/base-files/shells
>> deleted file mode 100644
>> index ce39b3d..0000000
>> --- a/meta/recipes-core/base-files/base-files/shells
>> +++ /dev/null
>> @@ -1,8 +0,0 @@
>> -# /etc/shells: valid login shells
>> -/bin/sh
>> -/bin/ash
>> -/bin/bash
>> -/bin/dash
>> -/bin/ksh
>> -/usr/bin/ksh
>> -/usr/bin/screen
>> diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
>> index 054fefa..47c7ebe 100644
>> --- a/meta/recipes-core/base-files/base-files_3.0.14.bb
>> +++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
>> @@ -16,7 +16,6 @@ SRC_URI = "file://rotation \
>>              file://inputrc \
>>              file://host.conf \
>>              file://profile \
>> -           file://shells \
>>              file://fstab \
>>              file://filesystems \
>>              file://issue.net \
>> @@ -92,7 +91,6 @@ do_install () {
>>   	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
>>   	sed -i "s#ROOTHOME#${ROOT_HOME}#" ${WORKDIR}/profile
>>   	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
>> -	install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
>>   	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
>>   	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
>>   	install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc
>> @@ -137,6 +135,12 @@ do_install_append_linuxstdbase() {
>>           done
>>   }
>>   
>> +pkg_postinst_${PN} () {
>> +        touch $D${sysconfdir}/shells
>> +        grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells
> What it someone installs component providing /usr/bin/shell? Use at
> least ^/bin/sh$ in grep.
OK, better to be precise. I will send V2.

the best,
thank you

>
>> +}
>> +
>> +
>>   PACKAGES = "${PN}-doc ${PN} ${PN}-dev ${PN}-dbg"
>>   FILES_${PN} = "/"
>>   FILES_${PN}-doc = "${docdir} ${datadir}/common-licenses"
>> -- 
>> 1.8.3.3
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core

Patch

diff --git a/meta/recipes-core/base-files/base-files/shells b/meta/recipes-core/base-files/base-files/shells
deleted file mode 100644
index ce39b3d..0000000
--- a/meta/recipes-core/base-files/base-files/shells
+++ /dev/null
@@ -1,8 +0,0 @@ 
-# /etc/shells: valid login shells
-/bin/sh
-/bin/ash
-/bin/bash
-/bin/dash
-/bin/ksh
-/usr/bin/ksh
-/usr/bin/screen
diff --git a/meta/recipes-core/base-files/base-files_3.0.14.bb b/meta/recipes-core/base-files/base-files_3.0.14.bb
index 054fefa..47c7ebe 100644
--- a/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -16,7 +16,6 @@  SRC_URI = "file://rotation \
            file://inputrc \
            file://host.conf \
            file://profile \
-           file://shells \
            file://fstab \
            file://filesystems \
            file://issue.net \
@@ -92,7 +91,6 @@  do_install () {
 	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
 	sed -i "s#ROOTHOME#${ROOT_HOME}#" ${WORKDIR}/profile
 	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
-	install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
 	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
 	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
 	install -m 0644 ${WORKDIR}/inputrc ${D}${sysconfdir}/inputrc
@@ -137,6 +135,12 @@  do_install_append_linuxstdbase() {
         done
 }
 
+pkg_postinst_${PN} () {
+        touch $D${sysconfdir}/shells
+        grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells
+}
+
+
 PACKAGES = "${PN}-doc ${PN} ${PN}-dev ${PN}-dbg"
 FILES_${PN} = "/"
 FILES_${PN}-doc = "${docdir} ${datadir}/common-licenses"