Patchwork [V2,2/2] screen: add pkg_postinst to register entry to /etc/shells

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

Comments

Ming Liu - Oct. 17, 2013, 10:03 a.m.
Signed-off-by: Ming Liu <ming.liu@windriver.com>
---
 meta/recipes-extended/screen/screen_4.0.3.bb | 5 +++++
 1 file changed, 5 insertions(+)
Phil Blundell - Oct. 17, 2013, 10:11 a.m.
On Thu, 2013-10-17 at 18:03 +0800, Ming Liu wrote:
> +pkg_postinst_${PN} () {
> +	touch $D${sysconfdir}/shells
> +	grep -q "${bindir}/screen" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
> +}

Is that "touch" really desirable?  It seems as though screen ought not
really to be creating /etc/shells if it isn't there already, and
probably ought not to be updating the timestamp if it isn't actually
changing the file either.

p.
Ming Liu - Oct. 17, 2013, 10:28 a.m.
On 10/17/2013 06:11 PM, Phil Blundell wrote:
> On Thu, 2013-10-17 at 18:03 +0800, Ming Liu wrote:
>> +pkg_postinst_${PN} () {
>> +	touch $D${sysconfdir}/shells
>> +	grep -q "${bindir}/screen" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
>> +}
> Is that "touch" really desirable?  It seems as though screen ought not
> really to be creating /etc/shells if it isn't there already,
No, it's supposed to be created if /etc/shells doesn't exist already, 
otherwise, how could we echo text to it?

> and
> probably ought not to be updating the timestamp if it isn't actually
> changing the file either.
Yes, it may happen that the timestamp be updated even the it isn't 
actually changing the file, but only for upgrade case, and I think it's 
not a big deal. Actually I copied this piece of script from bash recipe, 
it's doing the same thing there.

//Ming Liu

>
> p.
>
>
>
Martin Jansa - Oct. 17, 2013, 10:33 a.m.
On Thu, Oct 17, 2013 at 06:03:12PM +0800, Ming Liu wrote:
> Signed-off-by: Ming Liu <ming.liu@windriver.com>
> ---
>  meta/recipes-extended/screen/screen_4.0.3.bb | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/meta/recipes-extended/screen/screen_4.0.3.bb b/meta/recipes-extended/screen/screen_4.0.3.bb
> index 1a7eb20..81e418b 100644
> --- a/meta/recipes-extended/screen/screen_4.0.3.bb
> +++ b/meta/recipes-extended/screen/screen_4.0.3.bb
> @@ -41,3 +41,8 @@ do_install_append () {
>  		fi
>  	done
>  }
> +
> +pkg_postinst_${PN} () {
> +	touch $D${sysconfdir}/shells
> +	grep -q "${bindir}/screen" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
                  ^ the same, we don't want to match /usr/bin/screenie
if it's there and "screen" isn't

Is there patch to add this postinst to bash and busybox?

> +}
> -- 
> 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, 10:44 a.m.
On 10/17/2013 06:33 PM, Martin Jansa wrote:
> On Thu, Oct 17, 2013 at 06:03:12PM +0800, Ming Liu wrote:
>> Signed-off-by: Ming Liu <ming.liu@windriver.com>
>> ---
>>   meta/recipes-extended/screen/screen_4.0.3.bb | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/meta/recipes-extended/screen/screen_4.0.3.bb b/meta/recipes-extended/screen/screen_4.0.3.bb
>> index 1a7eb20..81e418b 100644
>> --- a/meta/recipes-extended/screen/screen_4.0.3.bb
>> +++ b/meta/recipes-extended/screen/screen_4.0.3.bb
>> @@ -41,3 +41,8 @@ do_install_append () {
>>   		fi
>>   	done
>>   }
>> +
>> +pkg_postinst_${PN} () {
>> +	touch $D${sysconfdir}/shells
>> +	grep -q "${bindir}/screen" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
>                    ^ the same, we don't want to match /usr/bin/screenie
> if it's there and "screen" isn't
Yes, you are correct, I am too less comprehensive.

>
> Is there patch to add this postinst to bash and busybox?
For bash, it already has it, as following:
------------------
pkg_postinst_${PN} () {
         touch $D${sysconfdir}/shells
         grep -q "bin/bash" $D${sysconfdir}/shells || echo /bin/bash >> 
$D${sysconfdir}/shells
         grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> 
$D${sysconfdir}/shells
}
-----------------

But as you pointed out, it needs to be more stringent too.

For busybox, I don't think it need this script for it provides the 
symbol link: /bin/sh.

//Ming Liu

>
>> +}
>> -- 
>> 1.8.3.3
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Phil Blundell - Oct. 17, 2013, 10:53 a.m.
On Thu, 2013-10-17 at 18:28 +0800, Ming Liu wrote:
> On 10/17/2013 06:11 PM, Phil Blundell wrote:
> > On Thu, 2013-10-17 at 18:03 +0800, Ming Liu wrote:
> >> +pkg_postinst_${PN} () {
> >> +	touch $D${sysconfdir}/shells
> >> +	grep -q "${bindir}/screen" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
> >> +}
> > Is that "touch" really desirable?  It seems as though screen ought not
> > really to be creating /etc/shells if it isn't there already,
> No, it's supposed to be created if /etc/shells doesn't exist already, 
> otherwise, how could we echo text to it?

I guess there are two things to say about this:

1) not everybody wants /etc/shells, and having screen (or any other
recipe) create that file unilaterally seems like a bad thing.
Especially since there doesn't seem to be any corresponding postrm to
clear it up if screen is then removed again, nor is /etc/shells
mentioned in CONFFILES.

2) even if you did want to create /etc/shells, the touch is unnecessary
because "echo foo >> FILE" is perfectly capable of creating the FILE if
it didn't already exist.

p.
Ming Liu - Oct. 17, 2013, 11:06 a.m.
On 10/17/2013 06:53 PM, Phil Blundell wrote:
> On Thu, 2013-10-17 at 18:28 +0800, Ming Liu wrote:
>> On 10/17/2013 06:11 PM, Phil Blundell wrote:
>>> On Thu, 2013-10-17 at 18:03 +0800, Ming Liu wrote:
>>>> +pkg_postinst_${PN} () {
>>>> +	touch $D${sysconfdir}/shells
>>>> +	grep -q "${bindir}/screen" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
>>>> +}
>>> Is that "touch" really desirable?  It seems as though screen ought not
>>> really to be creating /etc/shells if it isn't there already,
>> No, it's supposed to be created if /etc/shells doesn't exist already,
>> otherwise, how could we echo text to it?
> I guess there are two things to say about this:
>
> 1) not everybody wants /etc/shells, and having screen (or any other
> recipe) create that file unilaterally seems like a bad thing.
> Especially since there doesn't seem to be any corresponding postrm to
> clear it up if screen is then removed again, nor is /etc/shells
> mentioned in CONFFILES.
>
> 2) even if you did want to create /etc/shells, the touch is unnecessary
> because "echo foo >> FILE" is perfectly capable of creating the FILE if
> it didn't already exist.
Yes, you are correct for both of the two points, I will send the V3, 
includes the changes:
1 add postrm script, removing the entry in /etc/shells.
2 rm the unnecessary 'touch'.
3 change the regex for screen and bash recipes.(As Martin pointed out)

Anything else?

//Ming Liu
>
> p.
>
>
>
>

Patch

diff --git a/meta/recipes-extended/screen/screen_4.0.3.bb b/meta/recipes-extended/screen/screen_4.0.3.bb
index 1a7eb20..81e418b 100644
--- a/meta/recipes-extended/screen/screen_4.0.3.bb
+++ b/meta/recipes-extended/screen/screen_4.0.3.bb
@@ -41,3 +41,8 @@  do_install_append () {
 		fi
 	done
 }
+
+pkg_postinst_${PN} () {
+	touch $D${sysconfdir}/shells
+	grep -q "${bindir}/screen" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
+}