* [PATCH v2] waf.bbclass: explicitly pass bindir and libdir @ 2017-12-12 13:27 Stefan Agner 2017-12-12 13:52 ` Otavio Salvador 2017-12-12 14:00 ` Burton, Ross 0 siblings, 2 replies; 14+ messages in thread From: Stefan Agner @ 2017-12-12 13:27 UTC (permalink / raw) To: openembedded-core; +Cc: Stefan Agner, otavio From: Stefan Agner <stefan.agner@toradex.com> On some build hosts distros (e.g. Fedora 26) waf tries to be smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. This obviously is not what we want for 32-bit targets and usually fails in the do_package phase: WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: gstreamer1.0-plugins-imx: Files/directories were installed but not shipped in any package: /usr/lib64/libgstimxcommon.so.0 Waf knows prefix, bindir and libdir as default options. Explicitly pass those three. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> --- meta/classes/waf.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/classes/waf.bbclass b/meta/classes/waf.bbclass index c4698e910a..d0de6fe729 100644 --- a/meta/classes/waf.bbclass +++ b/meta/classes/waf.bbclass @@ -26,7 +26,7 @@ def get_waf_parallel_make(d): return "" waf_do_configure() { - ${S}/waf configure --prefix=${prefix} ${EXTRA_OECONF} + ${S}/waf configure --prefix=${prefix} --bindir=${bindir} --libdir=${libdir} ${EXTRA_OECONF} } waf_do_compile() { -- 2.13.6 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 13:27 [PATCH v2] waf.bbclass: explicitly pass bindir and libdir Stefan Agner @ 2017-12-12 13:52 ` Otavio Salvador 2017-12-12 14:00 ` Burton, Ross 1 sibling, 0 replies; 14+ messages in thread From: Otavio Salvador @ 2017-12-12 13:52 UTC (permalink / raw) To: Stefan Agner Cc: Otavio Salvador, Stefan Agner, Patches and discussions about the oe-core layer On Tue, Dec 12, 2017 at 11:27 AM, Stefan Agner <stefan@agner.ch> wrote: > From: Stefan Agner <stefan.agner@toradex.com> > > On some build hosts distros (e.g. Fedora 26) waf tries to be > smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. > This obviously is not what we want for 32-bit targets and usually > fails in the do_package phase: > WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: gstreamer1.0-plugins-imx: Files/directories were installed but not shipped in any package: > /usr/lib64/libgstimxcommon.so.0 > > Waf knows prefix, bindir and libdir as default options. Explicitly > pass those three. > > Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Otavio Salvador <otavio@ossystems.com.br> -- Otavio Salvador O.S. Systems http://www.ossystems.com.br http://code.ossystems.com.br Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 13:27 [PATCH v2] waf.bbclass: explicitly pass bindir and libdir Stefan Agner 2017-12-12 13:52 ` Otavio Salvador @ 2017-12-12 14:00 ` Burton, Ross 2017-12-12 14:03 ` Stefan Agner 2017-12-12 14:06 ` Vincent Prince 1 sibling, 2 replies; 14+ messages in thread From: Burton, Ross @ 2017-12-12 14:00 UTC (permalink / raw) To: Stefan Agner; +Cc: Otavio Salvador, Stefan Agner, OE-core [-- Attachment #1: Type: text/plain, Size: 1739 bytes --] On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: > On some build hosts distros (e.g. Fedora 26) waf tries to be > smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. > This obviously is not what we want for 32-bit targets and usually > fails in the do_package phase: > WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: > gstreamer1.0-plugins-imx: Files/directories were installed but not shipped > in any package: > /usr/lib64/libgstimxcommon.so.0 > > Waf knows prefix, bindir and libdir as default options. Explicitly > pass those three. > Obviously not. ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: do_configure (log file is located at /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278) ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 Log data follows: | DEBUG: Executing shell function do_configure | waf [commands] [options] | | Main commands (example: ./waf build -j4) | build : executes the build | clean : cleans the project | configure: configures the project | dist : makes a tarball for redistributing the sources | distcheck: checks if the project compiles (tarball from 'dist') | distclean: removes the build directory | install : installs the targets on the system | list : lists the targets to execute | step : executes tasks in a step-by-step fashion, for debugging | uninstall: removes the targets installed | update : updates the plugins from the *waflib/extras* directory | | waf: error: no such option: --bindir Ross [-- Attachment #2: Type: text/html, Size: 2370 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 14:00 ` Burton, Ross @ 2017-12-12 14:03 ` Stefan Agner 2017-12-12 14:13 ` Burton, Ross 2017-12-12 14:06 ` Vincent Prince 1 sibling, 1 reply; 14+ messages in thread From: Stefan Agner @ 2017-12-12 14:03 UTC (permalink / raw) To: Burton, Ross; +Cc: Otavio Salvador, Stefan Agner, OE-core On 2017-12-12 15:00, Burton, Ross wrote: > On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: > >> On some build hosts distros (e.g. Fedora 26) waf tries to be >> smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. >> This obviously is not what we want for 32-bit targets and usually >> fails in the do_package phase: >> WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: gstreamer1.0-plugins-imx: Files/directories were installed but not shipped in any package: >> /usr/lib64/libgstimxcommon.so.0 >> >> Waf knows prefix, bindir and libdir as default options. Explicitly >> pass those three. > > Obviously not. > > ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: do_configure (log file is located at /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278) > ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 > Log data follows: > | DEBUG: Executing shell function do_configure > | waf [commands] [options] > | > | Main commands (example: ./waf build -j4) > | build : executes the build > | clean : cleans the project > | configure: configures the project > | dist : makes a tarball for redistributing the sources > | distcheck: checks if the project compiles (tarball from 'dist') > | distclean: removes the build directory > | install : installs the targets on the system > | list : lists the targets to execute > | step : executes tasks in a step-by-step fashion, for debugging > | uninstall: removes the targets installed > | update : updates the plugins from the *waflib/extras* directory > | > | waf: error: no such option: --bindir > Hm, eglinfo seems to come with a old waf version, 1.7.8 to be specific. It seems bindir/libdir got added in 1.8 series: https://github.com/waf-project/waf/blob/waf-1.8/waflib/Options.py Make version specific variables? -- Stefan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 14:03 ` Stefan Agner @ 2017-12-12 14:13 ` Burton, Ross 2017-12-12 14:38 ` Stefan Agner 0 siblings, 1 reply; 14+ messages in thread From: Burton, Ross @ 2017-12-12 14:13 UTC (permalink / raw) To: Stefan Agner; +Cc: Otavio Salvador, Stefan Agner, OE-core [-- Attachment #1: Type: text/plain, Size: 2439 bytes --] On 12 December 2017 at 14:03, Stefan Agner <stefan@agner.ch> wrote: > On 2017-12-12 15:00, Burton, Ross wrote: > > > On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: > > > >> On some build hosts distros (e.g. Fedora 26) waf tries to be > >> smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. > >> This obviously is not what we want for 32-bit targets and usually > >> fails in the do_package phase: > >> WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: > gstreamer1.0-plugins-imx: Files/directories were installed but not shipped > in any package: > >> /usr/lib64/libgstimxcommon.so.0 > >> > >> Waf knows prefix, bindir and libdir as default options. Explicitly > >> pass those three. > > > > Obviously not. > > > > ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: do_configure > (log file is located at /data/poky-tmp/master/build/ > work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log. > do_configure.17278) > > ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/ > work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 > > Log data follows: > > | DEBUG: Executing shell function do_configure > > | waf [commands] [options] > > | > > | Main commands (example: ./waf build -j4) > > | build : executes the build > > | clean : cleans the project > > | configure: configures the project > > | dist : makes a tarball for redistributing the sources > > | distcheck: checks if the project compiles (tarball from 'dist') > > | distclean: removes the build directory > > | install : installs the targets on the system > > | list : lists the targets to execute > > | step : executes tasks in a step-by-step fashion, for debugging > > | uninstall: removes the targets installed > > | update : updates the plugins from the *waflib/extras* directory > > | > > | waf: error: no such option: --bindir > > > > Hm, eglinfo seems to come with a old waf version, 1.7.8 to be specific. > > It seems bindir/libdir got added in 1.8 series: > https://github.com/waf-project/waf/blob/waf-1.8/waflib/Options.py > > Make version specific variables? > That neatly shows where the "clever code" that was breaking libdir earlier is: https://github.com/waf-project/waf/commit/823b4cd2dc03d06a81e0ab003606067da03d8745#diff-b44b0c8f383b2fd1b19f2ba039d30237 Ross [-- Attachment #2: Type: text/html, Size: 3502 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 14:13 ` Burton, Ross @ 2017-12-12 14:38 ` Stefan Agner 2017-12-12 15:47 ` Otavio Salvador 0 siblings, 1 reply; 14+ messages in thread From: Stefan Agner @ 2017-12-12 14:38 UTC (permalink / raw) To: Burton, Ross; +Cc: Otavio Salvador, Stefan Agner, OE-core On 2017-12-12 15:13, Burton, Ross wrote: > On 12 December 2017 at 14:03, Stefan Agner <stefan@agner.ch> wrote: > >> On 2017-12-12 15:00, Burton, Ross wrote: >> >>> On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: >>> >>>> On some build hosts distros (e.g. Fedora 26) waf tries to be >>>> smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. >>>> This obviously is not what we want for 32-bit targets and usually >>>> fails in the do_package phase: >>>> WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: gstreamer1.0-plugins-imx: Files/directories were installed but not shipped in any package: >>>> /usr/lib64/libgstimxcommon.so.0 >>>> >>>> Waf knows prefix, bindir and libdir as default options. Explicitly >>>> pass those three. >>> >>> Obviously not. >>> >>> ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: do_configure (log file is located at /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278) >>> ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 >>> Log data follows: >>> | DEBUG: Executing shell function do_configure >>> | waf [commands] [options] >>> | >>> | Main commands (example: ./waf build -j4) >>> | build : executes the build >>> | clean : cleans the project >>> | configure: configures the project >>> | dist : makes a tarball for redistributing the sources >>> | distcheck: checks if the project compiles (tarball from 'dist') >>> | distclean: removes the build directory >>> | install : installs the targets on the system >>> | list : lists the targets to execute >>> | step : executes tasks in a step-by-step fashion, for debugging >>> | uninstall: removes the targets installed >>> | update : updates the plugins from the *waflib/extras* directory >>> | >>> | waf: error: no such option: --bindir >>> >> Hm, eglinfo seems to come with a old waf version, 1.7.8 to be specific. >> >> It seems bindir/libdir got added in 1.8 series: >> https://github.com/waf-project/waf/blob/waf-1.8/waflib/Options.py >> >> Make version specific variables? > > That neatly shows where the "clever code" that was breaking libdir earlier is: > > https://github.com/waf-project/waf/commit/823b4cd2dc03d06a81e0ab003606067da03d8745#diff-b44b0c8f383b2fd1b19f2ba039d30237 > Yeah that seems to be it. That go added in the 1.8.6 dev cycle afaik. I am thinking about adding some kind of version autodetection WAFMINOR=$(${S}/waf --version | sed -e '1{s/waf [0-9]\.//;s/\.[0-9]* (.*//};q') if [ $WAFMINOR -gt "7" ] ... Maybe there is a nicer way of doing this? -- Stefan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 14:38 ` Stefan Agner @ 2017-12-12 15:47 ` Otavio Salvador 2017-12-12 15:56 ` Stefan Agner 0 siblings, 1 reply; 14+ messages in thread From: Otavio Salvador @ 2017-12-12 15:47 UTC (permalink / raw) To: Stefan Agner; +Cc: Stefan Agner, Otavio Salvador, OE-core On Tue, Dec 12, 2017 at 12:38 PM, Stefan Agner <stefan@agner.ch> wrote: > On 2017-12-12 15:13, Burton, Ross wrote: > >> On 12 December 2017 at 14:03, Stefan Agner <stefan@agner.ch> wrote: >> >>> On 2017-12-12 15:00, Burton, Ross wrote: >>> >>>> On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: >>>> >>>>> On some build hosts distros (e.g. Fedora 26) waf tries to be >>>>> smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. >>>>> This obviously is not what we want for 32-bit targets and usually >>>>> fails in the do_package phase: >>>>> WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: gstreamer1.0-plugins-imx: Files/directories were installed but not shipped in any package: >>>>> /usr/lib64/libgstimxcommon.so.0 >>>>> >>>>> Waf knows prefix, bindir and libdir as default options. Explicitly >>>>> pass those three. >>>> >>>> Obviously not. >>>> >>>> ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: do_configure (log file is located at /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278) >>>> ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 >>>> Log data follows: >>>> | DEBUG: Executing shell function do_configure >>>> | waf [commands] [options] >>>> | >>>> | Main commands (example: ./waf build -j4) >>>> | build : executes the build >>>> | clean : cleans the project >>>> | configure: configures the project >>>> | dist : makes a tarball for redistributing the sources >>>> | distcheck: checks if the project compiles (tarball from 'dist') >>>> | distclean: removes the build directory >>>> | install : installs the targets on the system >>>> | list : lists the targets to execute >>>> | step : executes tasks in a step-by-step fashion, for debugging >>>> | uninstall: removes the targets installed >>>> | update : updates the plugins from the *waflib/extras* directory >>>> | >>>> | waf: error: no such option: --bindir >>>> >>> Hm, eglinfo seems to come with a old waf version, 1.7.8 to be specific. >>> >>> It seems bindir/libdir got added in 1.8 series: >>> https://github.com/waf-project/waf/blob/waf-1.8/waflib/Options.py >>> >>> Make version specific variables? >> >> That neatly shows where the "clever code" that was breaking libdir earlier is: >> >> https://github.com/waf-project/waf/commit/823b4cd2dc03d06a81e0ab003606067da03d8745#diff-b44b0c8f383b2fd1b19f2ba039d30237 >> > > Yeah that seems to be it. > > That go added in the 1.8.6 dev cycle afaik. > > I am thinking about adding some kind of version autodetection > > WAFMINOR=$(${S}/waf --version | sed -e '1{s/waf [0-9]\.//;s/\.[0-9]* > (.*//};q') > > if [ $WAFMINOR -gt "7" ] ... > > Maybe there is a nicer way of doing this? What about we provide a package waf version and replace the binaries prior building? So we know what version we'd be using. Kinda autoreconf run in autotools class. -- Otavio Salvador O.S. Systems http://www.ossystems.com.br http://code.ossystems.com.br Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 15:47 ` Otavio Salvador @ 2017-12-12 15:56 ` Stefan Agner 2017-12-12 16:04 ` Vincent Prince 2017-12-12 17:54 ` Joshua Watt 0 siblings, 2 replies; 14+ messages in thread From: Stefan Agner @ 2017-12-12 15:56 UTC (permalink / raw) To: Otavio Salvador; +Cc: Stefan Agner, Otavio Salvador, OE-core On 2017-12-12 16:47, Otavio Salvador wrote: > On Tue, Dec 12, 2017 at 12:38 PM, Stefan Agner <stefan@agner.ch> wrote: >> On 2017-12-12 15:13, Burton, Ross wrote: >> >>> On 12 December 2017 at 14:03, Stefan Agner <stefan@agner.ch> wrote: >>> >>>> On 2017-12-12 15:00, Burton, Ross wrote: >>>> >>>>> On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: >>>>> >>>>>> On some build hosts distros (e.g. Fedora 26) waf tries to be >>>>>> smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. >>>>>> This obviously is not what we want for 32-bit targets and usually >>>>>> fails in the do_package phase: >>>>>> WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: gstreamer1.0-plugins-imx: Files/directories were installed but not shipped in any package: >>>>>> /usr/lib64/libgstimxcommon.so.0 >>>>>> >>>>>> Waf knows prefix, bindir and libdir as default options. Explicitly >>>>>> pass those three. >>>>> >>>>> Obviously not. >>>>> >>>>> ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: do_configure (log file is located at /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278) >>>>> ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 >>>>> Log data follows: >>>>> | DEBUG: Executing shell function do_configure >>>>> | waf [commands] [options] >>>>> | >>>>> | Main commands (example: ./waf build -j4) >>>>> | build : executes the build >>>>> | clean : cleans the project >>>>> | configure: configures the project >>>>> | dist : makes a tarball for redistributing the sources >>>>> | distcheck: checks if the project compiles (tarball from 'dist') >>>>> | distclean: removes the build directory >>>>> | install : installs the targets on the system >>>>> | list : lists the targets to execute >>>>> | step : executes tasks in a step-by-step fashion, for debugging >>>>> | uninstall: removes the targets installed >>>>> | update : updates the plugins from the *waflib/extras* directory >>>>> | >>>>> | waf: error: no such option: --bindir >>>>> >>>> Hm, eglinfo seems to come with a old waf version, 1.7.8 to be specific. >>>> >>>> It seems bindir/libdir got added in 1.8 series: >>>> https://github.com/waf-project/waf/blob/waf-1.8/waflib/Options.py >>>> >>>> Make version specific variables? >>> >>> That neatly shows where the "clever code" that was breaking libdir earlier is: >>> >>> https://github.com/waf-project/waf/commit/823b4cd2dc03d06a81e0ab003606067da03d8745#diff-b44b0c8f383b2fd1b19f2ba039d30237 >>> >> >> Yeah that seems to be it. >> >> That go added in the 1.8.6 dev cycle afaik. >> >> I am thinking about adding some kind of version autodetection >> >> WAFMINOR=$(${S}/waf --version | sed -e '1{s/waf [0-9]\.//;s/\.[0-9]* >> (.*//};q') >> >> if [ $WAFMINOR -gt "7" ] ... >> >> Maybe there is a nicer way of doing this? > > What about we provide a package waf version and replace the binaries > prior building? So we know what version we'd be using. Kinda > autoreconf run in autotools class. Waf seems to be extensible using wscript. I don't know how exactly wscript depends on waf (version) and whether the API is considered stable... I'd rather prefer not taking chances... -- Stefan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 15:56 ` Stefan Agner @ 2017-12-12 16:04 ` Vincent Prince 2017-12-12 16:05 ` Stefan Agner 2017-12-12 17:54 ` Joshua Watt 1 sibling, 1 reply; 14+ messages in thread From: Vincent Prince @ 2017-12-12 16:04 UTC (permalink / raw) To: Stefan Agner; +Cc: Otavio Salvador, Otavio Salvador, Stefan Agner, OE-core [-- Attachment #1: Type: text/plain, Size: 4124 bytes --] As waf_do_configure takes care of EXTRA_OECONF, maybe we can only fix gstreamer1.0-plugins-imx_0.13.0.bb by adding libdir ? It is much a bug fix than a longterm solution, but if any waf version breaks options, it can be a nightmare to handle... 2017-12-12 16:56 GMT+01:00 Stefan Agner <stefan@agner.ch>: > On 2017-12-12 16:47, Otavio Salvador wrote: > > On Tue, Dec 12, 2017 at 12:38 PM, Stefan Agner <stefan@agner.ch> wrote: > >> On 2017-12-12 15:13, Burton, Ross wrote: > >> > >>> On 12 December 2017 at 14:03, Stefan Agner <stefan@agner.ch> wrote: > >>> > >>>> On 2017-12-12 15:00, Burton, Ross wrote: > >>>> > >>>>> On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: > >>>>> > >>>>>> On some build hosts distros (e.g. Fedora 26) waf tries to be > >>>>>> smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. > >>>>>> This obviously is not what we want for 32-bit targets and usually > >>>>>> fails in the do_package phase: > >>>>>> WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: > gstreamer1.0-plugins-imx: Files/directories were installed but not shipped > in any package: > >>>>>> /usr/lib64/libgstimxcommon.so.0 > >>>>>> > >>>>>> Waf knows prefix, bindir and libdir as default options. Explicitly > >>>>>> pass those three. > >>>>> > >>>>> Obviously not. > >>>>> > >>>>> ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: > do_configure (log file is located at /data/poky-tmp/master/build/ > work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log. > do_configure.17278) > >>>>> ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/ > work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 > >>>>> Log data follows: > >>>>> | DEBUG: Executing shell function do_configure > >>>>> | waf [commands] [options] > >>>>> | > >>>>> | Main commands (example: ./waf build -j4) > >>>>> | build : executes the build > >>>>> | clean : cleans the project > >>>>> | configure: configures the project > >>>>> | dist : makes a tarball for redistributing the sources > >>>>> | distcheck: checks if the project compiles (tarball from 'dist') > >>>>> | distclean: removes the build directory > >>>>> | install : installs the targets on the system > >>>>> | list : lists the targets to execute > >>>>> | step : executes tasks in a step-by-step fashion, for > debugging > >>>>> | uninstall: removes the targets installed > >>>>> | update : updates the plugins from the *waflib/extras* directory > >>>>> | > >>>>> | waf: error: no such option: --bindir > >>>>> > >>>> Hm, eglinfo seems to come with a old waf version, 1.7.8 to be > specific. > >>>> > >>>> It seems bindir/libdir got added in 1.8 series: > >>>> https://github.com/waf-project/waf/blob/waf-1.8/waflib/Options.py > >>>> > >>>> Make version specific variables? > >>> > >>> That neatly shows where the "clever code" that was breaking libdir > earlier is: > >>> > >>> https://github.com/waf-project/waf/commit/ > 823b4cd2dc03d06a81e0ab003606067da03d8745#diff- > b44b0c8f383b2fd1b19f2ba039d30237 > >>> > >> > >> Yeah that seems to be it. > >> > >> That go added in the 1.8.6 dev cycle afaik. > >> > >> I am thinking about adding some kind of version autodetection > >> > >> WAFMINOR=$(${S}/waf --version | sed -e '1{s/waf [0-9]\.//;s/\.[0-9]* > >> (.*//};q') > >> > >> if [ $WAFMINOR -gt "7" ] ... > >> > >> Maybe there is a nicer way of doing this? > > > > What about we provide a package waf version and replace the binaries > > prior building? So we know what version we'd be using. Kinda > > autoreconf run in autotools class. > > Waf seems to be extensible using wscript. I don't know how exactly > wscript depends on waf (version) and whether the API is considered > stable... > > I'd rather prefer not taking chances... > > -- > Stefan > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core > [-- Attachment #2: Type: text/html, Size: 6285 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 16:04 ` Vincent Prince @ 2017-12-12 16:05 ` Stefan Agner 0 siblings, 0 replies; 14+ messages in thread From: Stefan Agner @ 2017-12-12 16:05 UTC (permalink / raw) To: Vincent Prince; +Cc: Otavio Salvador, Otavio Salvador, Stefan Agner, OE-core On 2017-12-12 17:04, Vincent Prince wrote: > As waf_do_configure takes care of EXTRA_OECONF, maybe we can only fix gstreamer1.0-plugins-imx_0.13.0.bb by adding libdir ? > It is much a bug fix than a longterm solution, but if any waf version breaks options, it can be a nightmare to handle... For me, that definitly would work too. But then, since all version of waf > 1.8.6 seem to use this autodetection it is quite likely that other packages fail/will fail. I am about to send a v3 with version detection, lets see if we can agree on such a solution (and backport it to rocko). -- Stefan > > 2017-12-12 16:56 GMT+01:00 Stefan Agner <stefan@agner.ch>: > >> On 2017-12-12 16:47, Otavio Salvador wrote: >>> On Tue, Dec 12, 2017 at 12:38 PM, Stefan Agner <stefan@agner.ch> wrote: >>>> On 2017-12-12 15:13, Burton, Ross wrote: >>>> >>>>> On 12 December 2017 at 14:03, Stefan Agner <stefan@agner.ch> wrote: >>>>> >>>>>> On 2017-12-12 15:00, Burton, Ross wrote: >>>>>> >>>>>>> On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: >>>>>>> >>>>>>>> On some build hosts distros (e.g. Fedora 26) waf tries to be >>>>>>>> smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. >>>>>>>> This obviously is not what we want for 32-bit targets and usually >>>>>>>> fails in the do_package phase: >>>>>>>> WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: gstreamer1.0-plugins-imx: Files/directories were installed but not shipped in any package: >>>>>>>> /usr/lib64/libgstimxcommon.so.0 >>>>>>>> >>>>>>>> Waf knows prefix, bindir and libdir as default options. Explicitly >>>>>>>> pass those three. >>>>>>> >>>>>>> Obviously not. >>>>>>> >>>>>>> ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: do_configure (log file is located at /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278) >>>>>>> ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 >>>>>>> Log data follows: >>>>>>> | DEBUG: Executing shell function do_configure >>>>>>> | waf [commands] [options] >>>>>>> | >>>>>>> | Main commands (example: ./waf build -j4) >>>>>>> | build : executes the build >>>>>>> | clean : cleans the project >>>>>>> | configure: configures the project >>>>>>> | dist : makes a tarball for redistributing the sources >>>>>>> | distcheck: checks if the project compiles (tarball from 'dist') >>>>>>> | distclean: removes the build directory >>>>>>> | install : installs the targets on the system >>>>>>> | list : lists the targets to execute >>>>>>> | step : executes tasks in a step-by-step fashion, for debugging >>>>>>> | uninstall: removes the targets installed >>>>>>> | update : updates the plugins from the *waflib/extras* directory >>>>>>> | >>>>>>> | waf: error: no such option: --bindir >>>>>>> >>>>>> Hm, eglinfo seems to come with a old waf version, 1.7.8 to be specific. >>>>>> >>>>>> It seems bindir/libdir got added in 1.8 series: >>>>>> https://github.com/waf-project/waf/blob/waf-1.8/waflib/Options.py >>>>>> >>>>>> Make version specific variables? >>>>> >>>>> That neatly shows where the "clever code" that was breaking libdir earlier is: >>>>> >>>>> https://github.com/waf-project/waf/commit/823b4cd2dc03d06a81e0ab003606067da03d8745#diff-b44b0c8f383b2fd1b19f2ba039d30237 >>>>> >>>> >>>> Yeah that seems to be it. >>>> >>>> That go added in the 1.8.6 dev cycle afaik. >>>> >>>> I am thinking about adding some kind of version autodetection >>>> >>>> WAFMINOR=$(${S}/waf --version | sed -e '1{s/waf [0-9]\.//;s/\.[0-9]* >>>> (.*//};q') >>>> >>>> if [ $WAFMINOR -gt "7" ] ... >>>> >>>> Maybe there is a nicer way of doing this? >>> >>> What about we provide a package waf version and replace the binaries >>> prior building? So we know what version we'd be using. Kinda >>> autoreconf run in autotools class. >> Waf seems to be extensible using wscript. I don't know how exactly >> wscript depends on waf (version) and whether the API is considered >> stable... >> >> I'd rather prefer not taking chances... >> >> -- >> Stefan >> >> -- >> _______________________________________________ >> Openembedded-core mailing list >> Openembedded-core@lists.openembedded.org >> http://lists.openembedded.org/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 15:56 ` Stefan Agner 2017-12-12 16:04 ` Vincent Prince @ 2017-12-12 17:54 ` Joshua Watt 2017-12-12 18:41 ` Otavio Salvador 1 sibling, 1 reply; 14+ messages in thread From: Joshua Watt @ 2017-12-12 17:54 UTC (permalink / raw) To: Stefan Agner, Otavio Salvador; +Cc: Otavio Salvador, Stefan Agner, OE-core On Tue, 2017-12-12 at 16:56 +0100, Stefan Agner wrote: > On 2017-12-12 16:47, Otavio Salvador wrote: > > On Tue, Dec 12, 2017 at 12:38 PM, Stefan Agner <stefan@agner.ch> > > wrote: > > > On 2017-12-12 15:13, Burton, Ross wrote: > > > > > > > On 12 December 2017 at 14:03, Stefan Agner <stefan@agner.ch> > > > > wrote: > > > > > > > > > On 2017-12-12 15:00, Burton, Ross wrote: > > > > > > > > > > > On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch > > > > > > > wrote: > > > > > > > > > > > > > On some build hosts distros (e.g. Fedora 26) waf tries to > > > > > > > be > > > > > > > smart about libdir detection and defaults to > > > > > > > [EXEC_PREFIX/lib64]. > > > > > > > This obviously is not what we want for 32-bit targets and > > > > > > > usually > > > > > > > fails in the do_package phase: > > > > > > > WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: > > > > > > > QA Issue: gstreamer1.0-plugins-imx: Files/directories > > > > > > > were installed but not shipped in any package: > > > > > > > /usr/lib64/libgstimxcommon.so.0 > > > > > > > > > > > > > > Waf knows prefix, bindir and libdir as default options. > > > > > > > Explicitly > > > > > > > pass those three. > > > > > > > > > > > > Obviously not. > > > > > > > > > > > > ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: > > > > > > do_configure (log file is located at /data/poky- > > > > > > tmp/master/build/work/corei7-64-poky-linux/eglinfo- > > > > > > x11/1.0.0-r0/temp/log.do_configure.17278) > > > > > > ERROR: Logfile of failure stored in: /data/poky- > > > > > > tmp/master/build/work/corei7-64-poky-linux/eglinfo- > > > > > > x11/1.0.0-r0/temp/log.do_configure.17278 > > > > > > Log data follows: > > > > > > > DEBUG: Executing shell function do_configure > > > > > > > waf [commands] [options] > > > > > > > > > > > > > > Main commands (example: ./waf build -j4) > > > > > > > build : executes the build > > > > > > > clean : cleans the project > > > > > > > configure: configures the project > > > > > > > dist : makes a tarball for redistributing the > > > > > > > sources > > > > > > > distcheck: checks if the project compiles (tarball from > > > > > > > 'dist') > > > > > > > distclean: removes the build directory > > > > > > > install : installs the targets on the system > > > > > > > list : lists the targets to execute > > > > > > > step : executes tasks in a step-by-step fashion, > > > > > > > for debugging > > > > > > > uninstall: removes the targets installed > > > > > > > update : updates the plugins from the *waflib/extras* > > > > > > > directory > > > > > > > > > > > > > > waf: error: no such option: --bindir > > > > > > > > > > Hm, eglinfo seems to come with a old waf version, 1.7.8 to be > > > > > specific. > > > > > > > > > > It seems bindir/libdir got added in 1.8 series: > > > > > https://github.com/waf-project/waf/blob/waf-1.8/waflib/Option > > > > > s.py > > > > > > > > > > Make version specific variables? > > > > > > > > That neatly shows where the "clever code" that was breaking > > > > libdir earlier is: > > > > > > > > https://github.com/waf-project/waf/commit/823b4cd2dc03d06a81e0a > > > > b003606067da03d8745#diff-b44b0c8f383b2fd1b19f2ba039d30237 > > > > > > > > > > Yeah that seems to be it. > > > > > > That go added in the 1.8.6 dev cycle afaik. > > > > > > I am thinking about adding some kind of version autodetection > > > > > > WAFMINOR=$(${S}/waf --version | sed -e '1{s/waf [0-9]\.//;s/\.[0- > > > 9]* > > > (.*//};q') > > > > > > if [ $WAFMINOR -gt "7" ] ... > > > > > > Maybe there is a nicer way of doing this? > > > > What about we provide a package waf version and replace the > > binaries > > prior building? So we know what version we'd be using. Kinda > > autoreconf run in autotools class. > > Waf seems to be extensible using wscript. I don't know how exactly > wscript depends on waf (version) and whether the API is considered > stable... > > I'd rather prefer not taking chances... I agree. Using a "packaged waf" is against one of the philosophies of waf. Consequently, this is one of the reasons software built with waf has trouble getting into things like Debian packages. Also, from expirence this is probably not a good idea for 2 reasons: 1) Different versions of waf behave differently and it can cause strange build issues if you replace the version a package is normally built and tested with 2) A project can "prebuild" waf with all the extra tools it wants. If there was a packaged version of waf it would have to include every tool possible, which can be imposible if there are custom project tools which have been prebuilt. I don't know how common it is to include custom project tools into the prebuilt waf, but it is certainly possible. > > -- > Stefan ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 17:54 ` Joshua Watt @ 2017-12-12 18:41 ` Otavio Salvador 0 siblings, 0 replies; 14+ messages in thread From: Otavio Salvador @ 2017-12-12 18:41 UTC (permalink / raw) To: Joshua Watt; +Cc: Stefan Agner, Otavio Salvador, OE-core On Tue, Dec 12, 2017 at 3:54 PM, Joshua Watt <jpewhacker@gmail.com> wrote: ... > Using a "packaged waf" is against one of the philosophies of waf. > Consequently, this is one of the reasons software built with waf has > trouble getting into things like Debian packages. The more I learn about waf, the more I enjoy not being a waf user ... You raised quite good points. I believe Stefan latest patch does take care the most common cases. -- Otavio Salvador O.S. Systems http://www.ossystems.com.br http://code.ossystems.com.br Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 14:00 ` Burton, Ross 2017-12-12 14:03 ` Stefan Agner @ 2017-12-12 14:06 ` Vincent Prince 2017-12-12 14:09 ` Stefan Agner 1 sibling, 1 reply; 14+ messages in thread From: Vincent Prince @ 2017-12-12 14:06 UTC (permalink / raw) To: Burton, Ross; +Cc: Stefan Agner, Otavio Salvador, OE-core [-- Attachment #1: Type: text/plain, Size: 2156 bytes --] Hi Ross, Does it fail with V1? Best regards, Vincent 2017-12-12 15:00 GMT+01:00 Burton, Ross <ross.burton@intel.com>: > On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: > >> On some build hosts distros (e.g. Fedora 26) waf tries to be >> smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. >> This obviously is not what we want for 32-bit targets and usually >> fails in the do_package phase: >> WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: >> gstreamer1.0-plugins-imx: Files/directories were installed but not shipped >> in any package: >> /usr/lib64/libgstimxcommon.so.0 >> >> Waf knows prefix, bindir and libdir as default options. Explicitly >> pass those three. >> > > Obviously not. > > ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: do_configure > (log file is located at /data/poky-tmp/master/build/ > work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log. > do_configure.17278) > ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/ > work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 > Log data follows: > | DEBUG: Executing shell function do_configure > | waf [commands] [options] > | > | Main commands (example: ./waf build -j4) > | build : executes the build > | clean : cleans the project > | configure: configures the project > | dist : makes a tarball for redistributing the sources > | distcheck: checks if the project compiles (tarball from 'dist') > | distclean: removes the build directory > | install : installs the targets on the system > | list : lists the targets to execute > | step : executes tasks in a step-by-step fashion, for debugging > | uninstall: removes the targets installed > | update : updates the plugins from the *waflib/extras* directory > | > | waf: error: no such option: --bindir > > Ross > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core > > [-- Attachment #2: Type: text/html, Size: 3392 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2] waf.bbclass: explicitly pass bindir and libdir 2017-12-12 14:06 ` Vincent Prince @ 2017-12-12 14:09 ` Stefan Agner 0 siblings, 0 replies; 14+ messages in thread From: Stefan Agner @ 2017-12-12 14:09 UTC (permalink / raw) To: Vincent Prince; +Cc: Stefan Agner, Otavio Salvador, OE-core On 2017-12-12 15:06, Vincent Prince wrote: > Hi Ross, > > Does it fail with V1? The waf version which comes with eglinfo says it will fail: configure options: -o OUT, --out=OUT build dir for the project -t TOP, --top=TOP src dir for the project --prefix=PREFIX installation prefix [default: '/usr/local/'] --download try to download the tools if missing .. No libdir to be seen. -- Stefan > Best regards, > Vincent > > 2017-12-12 15:00 GMT+01:00 Burton, Ross <ross.burton@intel.com>: > > On 12 December 2017 at 13:27, Stefan Agner <stefan@agner.ch> wrote: > > On some build hosts distros (e.g. Fedora 26) waf tries to be > smart about libdir detection and defaults to [EXEC_PREFIX/lib64]. > This obviously is not what we want for 32-bit targets and usually > fails in the do_package phase: > WARNING: gstreamer1.0-plugins-imx-0.13.0-r0 do_package: QA Issue: gstreamer1.0-plugins-imx: Files/directories were installed but not shipped in any package: > /usr/lib64/libgstimxcommon.so.0 > > Waf knows prefix, bindir and libdir as default options. Explicitly > pass those three. > > Obviously not. > > ERROR: eglinfo-x11-1.0.0-r0 do_configure: Function failed: do_configure (log file is located at /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278) > ERROR: Logfile of failure stored in: /data/poky-tmp/master/build/work/corei7-64-poky-linux/eglinfo-x11/1.0.0-r0/temp/log.do_configure.17278 > Log data follows: > | DEBUG: Executing shell function do_configure > | waf [commands] [options] > | > | Main commands (example: ./waf build -j4) > | build : executes the build > | clean : cleans the project > | configure: configures the project > | dist : makes a tarball for redistributing the sources > | distcheck: checks if the project compiles (tarball from 'dist') > | distclean: removes the build directory > | install : installs the targets on the system > | list : lists the targets to execute > | step : executes tasks in a step-by-step fashion, for debugging > | uninstall: removes the targets installed > | update : updates the plugins from the *waflib/extras* directory > | > | waf: error: no such option: --bindir > > Ross > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2017-12-12 18:41 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-12-12 13:27 [PATCH v2] waf.bbclass: explicitly pass bindir and libdir Stefan Agner 2017-12-12 13:52 ` Otavio Salvador 2017-12-12 14:00 ` Burton, Ross 2017-12-12 14:03 ` Stefan Agner 2017-12-12 14:13 ` Burton, Ross 2017-12-12 14:38 ` Stefan Agner 2017-12-12 15:47 ` Otavio Salvador 2017-12-12 15:56 ` Stefan Agner 2017-12-12 16:04 ` Vincent Prince 2017-12-12 16:05 ` Stefan Agner 2017-12-12 17:54 ` Joshua Watt 2017-12-12 18:41 ` Otavio Salvador 2017-12-12 14:06 ` Vincent Prince 2017-12-12 14:09 ` Stefan Agner
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.