koenkooi / meta-kodi

The official OpenEmbedded/Yocto Project layer for Kodi
11 stars 27 forks source link

meta-kodi branch master-next with poky branch hardknott have error:You must have GNU Libtool installed to build fstrcmp. #59

Closed EzEmbedded closed 2 years ago

EzEmbedded commented 2 years ago

I'm testing meta-kodi branch master-next with poky and meta-meson branch is hardknott,but there is a error: ERROR: Task (/home/yocto-crops/meta-kodi/recipes-support/fstrcmp/fstrcmp_0.7.bb:do_configure) failed with exit code '1'. my conf:

MACHINE= "khadas-vim3l"
PACKAGECONFIG_append_pn-chromium = " component-build proprietary-codecs use-vaapi"
PACKAGECONFIG_append_pn-gstreamer1.0-plugins-good = "vpx wavpack libv4l2"
LICENSE_FLAGS_WHITELIST += " commercial commercial_mpg123 commercial_libav commercial_x264"
DISTRO_FEATURES_append = " virtualization systemd pam opengl egl"
DISTRO_FEATURES_remove = " x11"
IMAGE_INSTALL_append += " kodi"

bitbake amlogic-image-headless-initrd

BBLAYERS ?= " \
  /home/yocto-crops/poky/meta \
  /home/yocto-crops/poky/meta-poky \
  /home/yocto-crops/poky/meta-yocto-bsp \
  /home/yocto-crops/meta-openembedded/meta-oe \
  /home/yocto-crops/meta-openembedded/meta-python \
  /home/yocto-crops/meta-openembedded/meta-perl \
  /home/yocto-crops/meta-openembedded/meta-multimedia \
  /home/yocto-crops/meta-openembedded/meta-networking \
  /home/yocto-crops/meta-openembedded/meta-filesystems \
  /home/yocto-crops/meta-openembedded/meta-webserver \
  /home/yocto-crops/meta-clang \
  /home/yocto-crops/meta-python2 \
  /home/yocto-crops/meta-virtualization \
  /home/yocto-crops/meta-security \
  /home/yocto-crops/meta-meson \
  /home/yocto-crops/meta-browser/meta-chromium \
  /home/yocto-crops/meta-kodi \
  "

the meta branch are hardknott , but meta-kodi branch is master-next ,meta-browse is master. the error is:

do_configure: ExecutionError('/home/yocto-crops/build/tmp/work/aarch64-poky-linux/fstrcmp/0.7-r0/temp/run.do_configure.33063', 1, None, None)
Currently 15 running tasks (3960 of 5354)  73% |###################################################                   |ERROR: Logfile of failure stored in: /home/yocto-crops/build/tmp/work/aarch64-poky-linux/fstrcmp/0.7-r0/temp/log.do_configure.33063
Log data follows:
| DEBUG: Executing shell function autotools_preconfigure
....
| checking for libtool... no
| 
|         You must have GNU Libtool installed to build fstrcmp.
|         Homepage: http://www.gnu.org/software/libtool/
| 
|         If you are using a package based install, you will need the
|         libtool package.
| 
| NOTE: The following config.log files may provide further information.
| NOTE: /home/yocto-crops/build/tmp/work/aarch64-poky-linux/fstrcmp/0.7-r0/fstrcmp-0.7.D001/config.log
| ERROR: configure failed
dev-0x7C6 commented 2 years ago

@MarkusVolk this is related to #57 any idea how we can support both for now? Tried honister + master-next and also getting this issue.

MarkusVolk commented 2 years ago

I guess this could be done with python or shell script with e.g. something like that

DISTRO_VERSION_MAJOR = "$(echo ${DISTRO_VERSION} | cut -b 1)"
DISTRO_VERSION_MINOR = "$(echo ${DISTRO_VERSION} | cut -b 3)"

do_configure:prepend() {
    if [ ${DISTRO_VERSION_MAJOR} -le 3 ] && [ ${DISTRO_VERSION_MINOR} -lt 5 ] && [ ! ${DISTRO_CODENAME} = "master" ]; then
        export LIBTOOL="${HOST_SYS}-libtool"
    fi
}

but i have to confess that i dislike the approach on creating one branch for all poky versions in general. The only clean solution to me would be to create separate branches for every supported poky version.

dev-0x7C6 commented 2 years ago

Do you know reason why master-next (poky) don't need this fix? Maybe newer version is exporting already modified version of LIBTOOL variable, maybe we can check for it?

MarkusVolk commented 2 years ago

https://git.yoctoproject.org/poky/commit/?id=ebf34d5b252cc9bec3ba97039807e2fa03dcfbe2

This commit is the reason. For historical reasons libtool was prefixed with ${HOST_SYS} in poky. This behaviour was dropped with this commit. Have a look at the commit message to get a better explanation why this was done and why its not needed anymore nowadays.

dev-0x7C6 commented 2 years ago

I think we workaround this by trying to bbappend to libtool and make conditional symlink to ${HOST_SYS}-libtool in case when it's installed as libtool.

dev-0x7C6 commented 2 years ago

or make simlink libtool to ${HOST_SYS}-libtool when it's available.

dev-0x7C6 commented 2 years ago

@MarkusVolk I'll try to workaround this way, if there is no objections ;)

MarkusVolk commented 2 years ago

@dev-0x7C6 no objections :) we need some kind of workaround anyway

MarkusVolk commented 2 years ago

although it's nice to have a branch for the kodi dev release, i really needed a branch to build the stable release because i want to use kodi in real life too. The dev release is sometimes quite unstable and a lot of addons have not been adapted yet.

I have therefore created branches for master and honister which both build the stable release. I also added patches for v4l2_m2m and v4l2_request. For Rockchip, the master and honister branches must use kernel 5.10 for hardware acceleration to work.

This would also solve the fstrcmp problem. What do you think ?

https://github.com/MarkusVolk/meta-kodi

dev-0x7C6 commented 2 years ago

@MarkusVolk Sorry for delay and happy new year ;)

I created honister branch from older 051fdf4618725d0b5cfebe3fe3a7fb276e5bce00 this is before first bunch of patches that mention Nexus release. Works fine for my rpi builds.

dev-0x7C6 commented 2 years ago

I also pushed 439cc5eb94b10d8e4dba8e30b56d7dbf4234ec24

into hardknott and honister branch

EzEmbedded commented 2 years ago

Hi dev-0x7C6 ! Thanks your efforts. my problem is "ERROR: fstrcmp-0.7-r0 do_configure: configure failed",not fstrcmp url. I tested jast now your newest push on hardknott ,but the error is the same:"ERROR: fstrcmp-0.7-r0 do_configure: configure failed".

dev-0x7C6 commented 2 years ago

I tested jast now your newest push on hardknott

@EzEmbedded I see that you mention mixing master-next with hardknott release. Can you make sure that every branch is set as hardknott without local changes? (at least oe-core/poky and meta-kodi)

https://github.com/koenkooi/meta-kodi/blob/hardknott/recipes-support/fstrcmp/fstrcmp_0.7.bb#L19

is this line preserved in your meta-kodi (local branch)?

dev-0x7C6 commented 2 years ago

For my understanding for now:

meta-kodi:master-next and poky:hardknott shouldn't work as is now (since invalid export) :broken_heart: meta-kodi:master-next and poky:honister ^ as above :broken_heart:

mata-kodi:master-next and poky:master-next should work just fine :heavy_check_mark: meta-kodi:hardknott and poky:hardknott should work just fine :heavy_check_mark:

EzEmbedded commented 2 years ago

Hi dev-0x7C6! I tested : mata-kodi:master-next and poky:master-next fail meta-kodi:hardknott and poky:hardknott fail the error messages are same: ERROR: fstrcmp-0.7-r0 do_configure: configure failed My test step:

  1. deleted all old repositories.
  2. git clone the newest repositories. Do you mind share your conf file with me? Thanks!
dev-0x7C6 commented 2 years ago

@MarkusVolk any idea what is going on?

dev-0x7C6 commented 2 years ago

@EzEmbedded this is partial configuration that I'm using to build by distro with meta-kodi (https://github.com/dev-0x7C6/retro-build-environment). I need to switch to docker/podman approach and make some tests for meta-kodi.

MarkusVolk commented 2 years ago

any idea what is going on?

ERROR: fstrcmp-0.7-r0 do_configure: configure failed

This doesn't tell much. Can you post the complete log.do_configure ?

EzEmbedded commented 2 years ago

Hi MarkusVolk. In console-latest.log:

ERROR: fstrcmp-0.7-r0 do_configure: configure failed
ERROR: fstrcmp-0.7-r0 do_configure: ExecutionError('/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/temp/run.do_configure.28730', 1, None, None)
ERROR: Logfile of failure stored in: /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/temp/log.do_configure.28730
NOTE: recipe fstrcmp-0.7-r0: task do_configure: Failed

In log.do_configure.28730:

DEBUG: Executing shell function autotools_preconfigure
DEBUG: Shell function autotools_preconfigure finished
DEBUG: Executing python function autotools_aclocals
DEBUG: SITE files ['endian-little', 'bit-64', 'arm-common', 'arm-64', 'common-linux', 'common-glibc', 'aarch64-linux', 'common']
DEBUG: Python function autotools_aclocals finished
DEBUG: Executing python function extend_recipe_sysroot
NOTE: Direct dependencies are ['/home/yocto-crops/poky/meta/recipes-devtools/gcc/gcc-runtime_10.2.bb:do_populate_sysroot', '/home/yocto-crops/poky/meta/recipes-devtools/gcc/gcc-cross_10.2.bb:do_populate_sysroot', '/home/yocto-crops/poky/meta/recipes-devtools/libtool/libtool-native_2.4.6.bb:do_populate_sysroot', 'virtual:native:/home/yocto-crops/poky/meta/recipes-devtools/patch/patch_2.7.6.bb:do_populate_sysroot', '/home/yocto-crops/poky/meta/recipes-devtools/libtool/libtool-cross_2.4.6.bb:do_populate_sysroot', '/home/yocto-crops/poky/meta/recipes-core/glibc/glibc_2.33.bb:do_populate_sysroot', 'virtual:native:/home/yocto-crops/poky/meta/recipes-devtools/automake/automake_1.16.3.bb:do_populate_sysroot', '/home/yocto-crops/poky/meta/recipes-devtools/quilt/quilt-native_0.66.bb:do_populate_sysroot', 'virtual:native:/home/yocto-crops/poky/meta/recipes-devtools/autoconf/autoconf_2.71.bb:do_populate_sysroot', 'virtual:native:/home/yocto-crops/poky/meta/recipes-extended/groff/groff_1.22.4.bb:do_populate_sysroot', 'virtual:native:/home/yocto-crops/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot']
NOTE: Installed into sysroot: []
NOTE: Skipping as already exists in sysroot: ['gcc-runtime', 'gcc-cross-aarch64', 'libtool-native', 'patch-native', 'libtool-cross', 'glibc', 'automake-native', 'quilt-native', 'autoconf-native', 'groff-native', 'pseudo-native', 'libgcc', 'linux-libc-headers', 'texinfo-dummy-native', 'mpfr-native', 'gnu-config-native', 'gmp-native', 'flex-native', 'binutils-cross-aarch64', 'xz-native', 'zlib-native', 'libmpc-native', 'attr-native', 'm4-native', 'pkgconfig-native', 'perl-native', 'gettext-minimal-native', 'gdbm-native', 'db-native']
DEBUG: Python function extend_recipe_sysroot finished
DEBUG: Executing shell function do_configure
automake (GNU automake) 1.16.3
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Tom Tromey <tromey@redhat.com>
       and Alexandre Duret-Lutz <adl@gnu.org>.
AUTOV is 1.16
NOTE: Executing ACLOCAL="aclocal --system-acdir=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot/usr/share/aclocal/ --automake-acdir=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot-native/usr/share/aclocal-1.16" autoreconf -Wcross --verbose --install --force --exclude=autopoint --exclude=gtkdocize -I /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot-native/usr/share/aclocal/
autoreconf: export WARNINGS=cross,no-obsolete
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --system-acdir=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot/usr/share/aclocal/ --automake-acdir=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot-native/usr/share/aclocal-1.16 -I /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot-native/usr/share/aclocal/ --force 
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot-native/usr/bin/autoconf --include=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot-native/usr/share/aclocal/ --force
autoreconf: running: /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot-native/usr/bin/autoheader --include=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot-native/usr/share/aclocal/ --force
autoreconf: configure.ac: not using Automake
autoreconf: './config.sub' is updated
autoreconf: './config.guess' is updated
autoreconf: './install-sh' is updated
autoreconf: Leaving directory '.'
NOTE: Running ./configure  --build=x86_64-linux           --host=aarch64-poky-linux           --target=aarch64-poky-linux         --prefix=/usr           --exec_prefix=/usr          --bindir=/usr/bin           --sbindir=/usr/sbin         --libexecdir=/usr/libexec           --datadir=/usr/share        --sysconfdir=/etc           --sharedstatedir=/com           --localstatedir=/var        --libdir=/usr/lib           --includedir=/usr/include           --oldincludedir=/usr/include        --infodir=/usr/share/info           --mandir=/usr/share/man         --disable-silent-rules          --disable-dependency-tracking           --with-libtool-sysroot=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot  --disable-static  
configure: WARNING: unrecognized options: --disable-silent-rules, --disable-dependency-tracking, --with-libtool-sysroot, --disable-static
configure: loading site script /home/yocto-crops/poky/meta/site/endian-little
configure: loading site script /home/yocto-crops/poky/meta/site/arm-common
configure: loading site script /home/yocto-crops/poky/meta/site/arm-64
configure: loading site script /home/yocto-crops/poky/meta/site/common-linux
configure: loading site script /home/yocto-crops/poky/meta/site/common-glibc
configure: loading site script /home/yocto-crops/poky/meta/site/common
configure: loading site script /home/yocto-crops/meta-openembedded/meta-networking/site/endian-little
checking for aarch64-poky-linux-gcc... aarch64-poky-linux-gcc  -march=armv8.2-a -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether aarch64-poky-linux-gcc  -march=armv8.2-a -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot accepts -g... yes
checking for aarch64-poky-linux-gcc  -march=armv8.2-a -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot option to enable C11 features... none needed
checking build system type... x86_64-pc-linux-gnu
checking host system type... aarch64-poky-linux-gnu
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for a BSD-compatible install... /home/yocto-crops/build/tmp/hosttools/install -c
checking for aarch64-poky-linux-ranlib... aarch64-poky-linux-gcc-ranlib
checking for ar... aarch64-poky-linux-gcc-ar
checking for an ANSI C-conforming const... yes
checking for library containing strerror... none required
checking if aarch64-poky-linux-gcc  -march=armv8.2-a -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot accepts -Wall... yes
checking if aarch64-poky-linux-gcc  -march=armv8.2-a -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot accepts -Wextra... yes
checking if aarch64-poky-linux-gcc  -march=armv8.2-a -fstack-protector-strong  -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/recipe-sysroot accepts -Wshadow... yes
checking for libtool... no

        You must have GNU Libtool installed to build fstrcmp.
        Homepage: http://www.gnu.org/software/libtool/

        If you are using a package based install, you will need the
        libtool package.

NOTE: The following config.log files may provide further information.
NOTE: /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/fstrcmp-0.7.D001/config.log
ERROR: configure failed
WARNING: /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/temp/run.do_configure.28730:289 exit 1 from 'exit 1'
WARNING: Backtrace (BB generated script): 
    #1: bbfatal_log, /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/temp/run.do_configure.28730, line 289
    #2: oe_runconf, /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/temp/run.do_configure.28730, line 260
    #3: autotools_do_configure, /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/temp/run.do_configure.28730, line 235
    #4: do_configure, /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/temp/run.do_configure.28730, line 155
    #5: main, /home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/temp/run.do_configure.28730, line 293
ERROR: ExecutionError('/home/yocto-crops/build/tmp/work/armv8-2a-poky-linux/fstrcmp/0.7-r0/temp/run.do_configure.28730', 1, None, None)
MarkusVolk commented 2 years ago

checking for libtool... no

This indicates that you are not using the recent meta-kodi honister Branch. Try to update it.

For honister or older poky releases you need this line inside fstrcmp.bb: https://github.com/koenkooi/meta-kodi/blob/58ea7c0f1c7cc3408df8e60120e59fa681e31064/recipes-support/fstrcmp/fstrcmp_0.7.bb#L19

For poky master branch this line needs to be removed: https://github.com/koenkooi/meta-kodi/blob/master-next/recipes-support/fstrcmp/fstrcmp_0.7.bb

EzEmbedded commented 2 years ago

Hi MarkusVolk. I add export LIBTOOL = "${HOST_SYS}-libtool" to meta-kodi/recipes-support/fstrcmp/fstrcmp_0.7.bb and fstrcmp passed .thanks! but I encountered a new issue. so I close the one and create a new issue. Thanks to MarkusVolk and dev-0x7C6.