Patchwork bash: Make it possible to run bash 3.2.48 instead of 4.2.

login
register
mail settings
Submitter Martin Ertsaas
Date Sept. 18, 2012, 12:52 p.m.
Message ID <1347972747-7040-1-git-send-email-mertsas@cisco.com>
Download mbox | patch
Permalink /patch/36735/
State New
Headers show

Comments

Martin Ertsaas - Sept. 18, 2012, 12:52 p.m.
bash-3.2.48 did not provide the linking from sh to bash, making it unusable.
This patch fixes this. The reason for using 3.2.48 is that it is GPLv2 licensed,
which 4.2 is not.
---
 meta/recipes-extended/bash/bash_3.2.48.bb |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)
Saul Wold - Sept. 18, 2012, 2:55 p.m.
On 09/18/2012 05:52 AM, Martin Ertsaas wrote:
> bash-3.2.48 did not provide the linking from sh to bash, making it unusable.
> This patch fixes this. The reason for using 3.2.48 is that it is GPLv2 licensed,
> which 4.2 is not.
> ---
>   meta/recipes-extended/bash/bash_3.2.48.bb |   20 +++++++++++++++-----
>   1 files changed, 15 insertions(+), 5 deletions(-)
>

Why can't this recipe use the base.inc file also?  This seems to be 
duplicating the code in the .inc file.

Sau!

> diff --git a/meta/recipes-extended/bash/bash_3.2.48.bb b/meta/recipes-extended/bash/bash_3.2.48.bb
> index 509d7a0..bab38a1 100644
> --- a/meta/recipes-extended/bash/bash_3.2.48.bb
> +++ b/meta/recipes-extended/bash/bash_3.2.48.bb
> @@ -6,7 +6,7 @@ LICENSE = "GPLv2+"
>   LIC_FILES_CHKSUM = "file://COPYING;md5=fd5d9bcabd8ed5a54a01ce8d183d592a"
>   DEPENDS = "ncurses"
>
> -PR = "r10"
> +PR = "r11"
>
>   SRC_URI = "${GNU_MIRROR}/bash/bash-${PV}.tar.gz;name=tarball \
>              ${GNU_MIRROR}/bash/bash-3.2-patches/bash32-049;apply=yes;striplevel=0;name=patch001 \
> @@ -25,16 +25,18 @@ SRC_URI[patch003.sha256sum] = "354886097cd95b4def77028f32ee01e2e088d58a98184fede
>   SRC_URI[md5sum] = "338dcf975a93640bb3eaa843ca42e3f8"
>   SRC_URI[sha256sum] = "128d281bd5682ba5f6953122915da71976357d7a76490d266c9173b1d0426348"
>
> -inherit autotools gettext
> +inherit autotools gettext update-alternatives
>
>   PARALLEL_MAKE = ""
>
> -bindir = "/bin"
> -sbindir = "/sbin"
> -
>   EXTRA_OECONF = "--with-ncurses"
>   export CC_FOR_BUILD = "${BUILD_CC}"
>
> +ALTERNATIVE_${PN} = "sh"
> +ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
> +ALTERNATIVE_TARGET[sh] = "${base_bindir}/bash"
> +ALTERNATIVE_PRIORITY = "100"
> +
>   export AUTOHEADER = "true"
>
>   do_configure_prepend () {
> @@ -43,6 +45,14 @@ do_configure_prepend () {
>   	fi
>   }
>
> +do_install_append () {
> +	# Move /usr/bin/bash to /bin/bash, if need
> +	if [ "${base_bindir}" != "${bindir}" ]; then
> +		mkdir -p ${D}${base_bindir}
> +		mv ${D}${bindir}/bash ${D}${base_bindir}
> +	fi
> +}
> +
>   pkg_postinst_${PN} () {
>   	touch $D${sysconfdir}/shells
>   	grep -q "bin/bash" $D${sysconfdir}/shells || echo /bin/bash >> $D${sysconfdir}/shells
>
Martin Ertsaas - Sept. 19, 2012, 5:55 a.m.
On 09/18/12 16:55, Saul Wold wrote:
> On 09/18/2012 05:52 AM, Martin Ertsaas wrote:
>> bash-3.2.48 did not provide the linking from sh to bash, making it
>> unusable.
>> This patch fixes this. The reason for using 3.2.48 is that it is
>> GPLv2 licensed,
>> which 4.2 is not.
>> ---
>>   meta/recipes-extended/bash/bash_3.2.48.bb |   20 +++++++++++++++-----
>>   1 files changed, 15 insertions(+), 5 deletions(-)
>>
>
> Why can't this recipe use the base.inc file also?  This seems to be
> duplicating the code in the .inc file.
>
> Sau!
We could of course do that, and then overwrite the license as the inc
file is the one that says it's GPLv3. I however find that a bit
confusing, as we will have two files to make bash-3.2.48, where one is
saying it's GPLv3 and one saying it's GPLv2. The build system will
understand it, but I don't think it's a nice solution.

Another solution would be to move the LICENSE part out of the inc file,
and into the bash_4.2.bb file, which would completely eliminate both of
our concerns about this. Any objections to doing that?

- Martin
>
>> diff --git a/meta/recipes-extended/bash/bash_3.2.48.bb
>> b/meta/recipes-extended/bash/bash_3.2.48.bb
>> index 509d7a0..bab38a1 100644
>> --- a/meta/recipes-extended/bash/bash_3.2.48.bb
>> +++ b/meta/recipes-extended/bash/bash_3.2.48.bb
>> @@ -6,7 +6,7 @@ LICENSE = "GPLv2+"
>>   LIC_FILES_CHKSUM =
>> "file://COPYING;md5=fd5d9bcabd8ed5a54a01ce8d183d592a"
>>   DEPENDS = "ncurses"
>>
>> -PR = "r10"
>> +PR = "r11"
>>
>>   SRC_URI = "${GNU_MIRROR}/bash/bash-${PV}.tar.gz;name=tarball \
>>             
>> ${GNU_MIRROR}/bash/bash-3.2-patches/bash32-049;apply=yes;striplevel=0;name=patch001
>> \
>> @@ -25,16 +25,18 @@ SRC_URI[patch003.sha256sum] =
>> "354886097cd95b4def77028f32ee01e2e088d58a98184fede
>>   SRC_URI[md5sum] = "338dcf975a93640bb3eaa843ca42e3f8"
>>   SRC_URI[sha256sum] =
>> "128d281bd5682ba5f6953122915da71976357d7a76490d266c9173b1d0426348"
>>
>> -inherit autotools gettext
>> +inherit autotools gettext update-alternatives
>>
>>   PARALLEL_MAKE = ""
>>
>> -bindir = "/bin"
>> -sbindir = "/sbin"
>> -
>>   EXTRA_OECONF = "--with-ncurses"
>>   export CC_FOR_BUILD = "${BUILD_CC}"
>>
>> +ALTERNATIVE_${PN} = "sh"
>> +ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
>> +ALTERNATIVE_TARGET[sh] = "${base_bindir}/bash"
>> +ALTERNATIVE_PRIORITY = "100"
>> +
>>   export AUTOHEADER = "true"
>>
>>   do_configure_prepend () {
>> @@ -43,6 +45,14 @@ do_configure_prepend () {
>>       fi
>>   }
>>
>> +do_install_append () {
>> +    # Move /usr/bin/bash to /bin/bash, if need
>> +    if [ "${base_bindir}" != "${bindir}" ]; then
>> +        mkdir -p ${D}${base_bindir}
>> +        mv ${D}${bindir}/bash ${D}${base_bindir}
>> +    fi
>> +}
>> +
>>   pkg_postinst_${PN} () {
>>       touch $D${sysconfdir}/shells
>>       grep -q "bin/bash" $D${sysconfdir}/shells || echo /bin/bash >>
>> $D${sysconfdir}/shells
>>
Khem Raj - Sept. 19, 2012, 6:56 a.m.
On Tue, Sep 18, 2012 at 10:55 PM, Martin Ertsås <mertsas@cisco.com> wrote:
> Another solution would be to move the LICENSE part out of the inc file,

thats ok.

Patch

diff --git a/meta/recipes-extended/bash/bash_3.2.48.bb b/meta/recipes-extended/bash/bash_3.2.48.bb
index 509d7a0..bab38a1 100644
--- a/meta/recipes-extended/bash/bash_3.2.48.bb
+++ b/meta/recipes-extended/bash/bash_3.2.48.bb
@@ -6,7 +6,7 @@  LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=fd5d9bcabd8ed5a54a01ce8d183d592a"
 DEPENDS = "ncurses"
 
-PR = "r10"
+PR = "r11"
 
 SRC_URI = "${GNU_MIRROR}/bash/bash-${PV}.tar.gz;name=tarball \
            ${GNU_MIRROR}/bash/bash-3.2-patches/bash32-049;apply=yes;striplevel=0;name=patch001 \
@@ -25,16 +25,18 @@  SRC_URI[patch003.sha256sum] = "354886097cd95b4def77028f32ee01e2e088d58a98184fede
 SRC_URI[md5sum] = "338dcf975a93640bb3eaa843ca42e3f8"
 SRC_URI[sha256sum] = "128d281bd5682ba5f6953122915da71976357d7a76490d266c9173b1d0426348"
 
-inherit autotools gettext
+inherit autotools gettext update-alternatives
 
 PARALLEL_MAKE = ""
 
-bindir = "/bin"
-sbindir = "/sbin"
-
 EXTRA_OECONF = "--with-ncurses"
 export CC_FOR_BUILD = "${BUILD_CC}"
 
+ALTERNATIVE_${PN} = "sh"
+ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
+ALTERNATIVE_TARGET[sh] = "${base_bindir}/bash"
+ALTERNATIVE_PRIORITY = "100"
+
 export AUTOHEADER = "true"
 
 do_configure_prepend () {
@@ -43,6 +45,14 @@  do_configure_prepend () {
 	fi
 }
 
+do_install_append () {
+	# Move /usr/bin/bash to /bin/bash, if need
+	if [ "${base_bindir}" != "${bindir}" ]; then
+		mkdir -p ${D}${base_bindir}
+		mv ${D}${bindir}/bash ${D}${base_bindir}
+	fi
+}
+
 pkg_postinst_${PN} () {
 	touch $D${sysconfdir}/shells
 	grep -q "bin/bash" $D${sysconfdir}/shells || echo /bin/bash >> $D${sysconfdir}/shells