Patchwork [1/5] binconfig.bbclass: search configs in D instead of S

login
register
mail settings
Submitter Stanislav Brabec
Date April 16, 2011, 11:23 p.m.
Message ID <1302996215.3122.31.camel@utx.lan>
Download mbox | patch
Permalink /patch/2425/
State New, archived
Headers show

Comments

Stanislav Brabec - April 16, 2011, 11:23 p.m.
Searching for binconfig in S makes more problems than it
brings benefits. Searching in the installed root seems to be more logical.

Fixes following subtle breakages:
- binconfig are populated with a different name that upstream intended
- populated binconfig files that were not intended to be populated

It fixes at least ncurses, which populates ncurses-config instead of
ncurses5-config and ncursesw5-config, causing secondary breakages.

Signed-off-by: Stanislav Brabec <utx@penguin.cz>
Andreas Oberritter - April 19, 2011, 11:10 a.m.
On 04/17/2011 01:23 AM, Stanislav Brabec wrote:
> Searching for binconfig in S makes more problems than it
> brings benefits. Searching in the installed root seems to be more logical.
> 
> Fixes following subtle breakages:
> - binconfig are populated with a different name that upstream intended
> - populated binconfig files that were not intended to be populated
> 
> It fixes at least ncurses, which populates ncurses-config instead of
> ncurses5-config and ncursesw5-config, causing secondary breakages.
> 
> Signed-off-by: Stanislav Brabec <utx@penguin.cz>

Acked-by: Andreas Oberritter <obi@opendreambox.org>

> diff --git a/classes/binconfig.bbclass b/classes/binconfig.bbclass
> index b3b2236..3d2bf0f 100644
> --- a/classes/binconfig.bbclass
> +++ b/classes/binconfig.bbclass
> @@ -49,7 +49,7 @@ binconfig_package_preprocess () {
>  SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess"
>  
>  binconfig_sysroot_preprocess () {
> -	for config in `find ${S} -name '${BINCONFIG_GLOB}'`; do
> +	for config in `find ${D} -name '${BINCONFIG_GLOB}'`; do
>  		configname=`basename $config`
>  		install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}
>  		cat $config | sed ${@get_binconfig_mangle(d)} > ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname
>
Paul Menzel - April 20, 2011, 10:59 a.m.
Am Dienstag, den 19.04.2011, 13:10 +0200 schrieb Andreas Oberritter:
> On 04/17/2011 01:23 AM, Stanislav Brabec wrote:
> > Searching for binconfig in S makes more problems than it
> > brings benefits. Searching in the installed root seems to be more logical.
> > 
> > Fixes following subtle breakages:
> > - binconfig are populated with a different name that upstream intended
> > - populated binconfig files that were not intended to be populated
> > 
> > It fixes at least ncurses, which populates ncurses-config instead of
> > ncurses5-config and ncursesw5-config, causing secondary breakages.

Is `alsa-utils` – as written in your introduction 0/5 – the only
secondary breakage you found? Is that a run time problem? I can build
`alsa-utils-1.0.24.2-r1` just fine using `minimal`.

> > Signed-off-by: Stanislav Brabec <utx@penguin.cz>
> 
> Acked-by: Andreas Oberritter <obi@opendreambox.org>

Acked-by: Paul Menzel <paulepanter@users.sourceforge.net>

I am adding Enrico to the CC since he did a lot of Ncurses work and
maybe can also share his opinion.

> > diff --git a/classes/binconfig.bbclass b/classes/binconfig.bbclass
> > index b3b2236..3d2bf0f 100644
> > --- a/classes/binconfig.bbclass
> > +++ b/classes/binconfig.bbclass
> > @@ -49,7 +49,7 @@ binconfig_package_preprocess () {
> >  SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess"
> >  
> >  binconfig_sysroot_preprocess () {
> > -	for config in `find ${S} -name '${BINCONFIG_GLOB}'`; do
> > +	for config in `find ${D} -name '${BINCONFIG_GLOB}'`; do
> >  		configname=`basename $config`
> >  		install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}
> >  		cat $config | sed ${@get_binconfig_mangle(d)} > ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname
> >


Thanks,

Paul
Enrico Scholz - April 20, 2011, 11:27 a.m.
Paul Menzel <paulepanter@users.sourceforge.net> writes:

>> > Searching for binconfig in S makes more problems than it
>> > brings benefits. Searching in the installed root seems to be more logical.
> ...
> I am adding Enrico to the CC since he did a lot of Ncurses work and
> maybe can also share his opinion.

yes; I submitted a similar patch [1] because it is required by ncurses.

Acked-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>



Enrico

Footnotes: 
[1]  http://patchwork.openembedded.org/patch/2248
Stanislav Brabec - April 20, 2011, 9:44 p.m.
Paul Menzel wrote:
> > On 04/17/2011 01:23 AM, Stanislav Brabec wrote:

> > > It fixes at least ncurses, which populates ncurses-config instead of
> > > ncurses5-config and ncursesw5-config, causing secondary breakages.
> 
> Is `alsa-utils` – as written in your introduction 0/5 – the only
> secondary breakage you found? Is that a run time problem? I can build
> `alsa-utils-1.0.24.2-r1` just fine using `minimal`.

Probably more breakages existed - basically anything that uses ncurses
may be broken. Due to ncurses breakage, alsa-utils probably used
ncurses?*-config from your host system, and as a consequence also host
system includes. It may work, it may break in runtime, it may cause
miscompilation. On hosts without ncurses development files build failed.

Patch

diff --git a/classes/binconfig.bbclass b/classes/binconfig.bbclass
index b3b2236..3d2bf0f 100644
--- a/classes/binconfig.bbclass
+++ b/classes/binconfig.bbclass
@@ -49,7 +49,7 @@  binconfig_package_preprocess () {
 SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess"
 
 binconfig_sysroot_preprocess () {
-	for config in `find ${S} -name '${BINCONFIG_GLOB}'`; do
+	for config in `find ${D} -name '${BINCONFIG_GLOB}'`; do
 		configname=`basename $config`
 		install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}
 		cat $config | sed ${@get_binconfig_mangle(d)} > ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname