On Sat, 2021-02-27 at 16:15 +0100, Alexandre Belloni wrote: > On 27/02/2021 16:08:02+0100, Alexandre Belloni wrote: > > On 27/02/2021 15:52:25+0100, Alexandre Belloni wrote: > > > Hello, > > > > > > On 25/02/2021 15:30:35+0000, Luca Bocassi wrote: > > > > From: Luca Boccassi > > > > > > > > Recently util-linux gained an (optional) build dependency on libcryptsetup. > > > > But libcryptsetup build-depends on util-linux for blkid (optional, can be disabled) > > > > and uuid (mandatory). > > > > Split out util-linux-uuid in a different recipe to break the cycle. > > > > > > > > https://github.com/karelzak/util-linux/pull/898 > > > > > > > > Signed-off-by: Luca Boccassi > > > > --- > > > > v1: util-linux 2.35 is not out yet, but I'd like to get the preparatory work > > > > underway as I'm not sure if this is the best approach or if there are > > > > alternatives. Suggestions and comments very welcome. Thanks! > > > > v2: changed packages names to reflect old ones (eg: libuuid1 -> util-linux-libuuid) > > > > and leave uuid build enable in main recipe to allow for uuidgen build to happen, > > > > as it does not have its own autoconf switch. Delete the library manualy from > > > > the main recipe after build instead, and add dependency. > > > > Might help to break loop python3 -> util-linux -> libselinux -> python3, as it's > > > > only libuuid that is needed, see https://lists.yoctoproject.org/g/yocto/message/47570 > > > > v3: rebased and refactored to have a common util-linux.inc file > > > > v4: added RDEPENDS on util-linux-libuuid on various packages to fix QA warnings > > > > v5: remove RDEPENDS and instead have util-linux RDEPEND on util-linux-uuid. > > > > Removed PACKAGES_remove and instead filter out libuuid via the package generation > > > > regex. > > > > Rebased on util-linux 2.36.2. > > > > > > > > .../util-linux/util-linux-uuid_2.36.2.bb | 22 ++++++++ > > > > meta/recipes-core/util-linux/util-linux.inc | 41 ++++++++++++++ > > > > .../util-linux/util-linux_2.36.2.bb | 53 +++++-------------- > > > > 3 files changed, 75 insertions(+), 41 deletions(-) > > > > create mode 100644 meta/recipes-core/util-linux/util-linux-uuid_2.36.2.bb > > > > create mode 100644 meta/recipes-core/util-linux/util-linux.inc > > > > > > > > > > With this patch, there is a very weird failure on the autobuilders, two > > > a-full builds failed with this: > > > > > > ERROR: musl-1.2.2+gitAUTOINC+e5d2823631-r0 do_package: Error executing a python function in exec_python_func() autogenerated: > > > The stack trace of python calls that resulted in this exception/failure was: > > > File: 'exec_python_func() autogenerated', lineno: 2, function: > > > 0001: > > > *** 0002:extend_recipe_sysroot(d) > > > 0003: > > > File: '/home/pokybuild/yocto-worker/poky-tiny/build/meta/classes/staging.bbclass', lineno: 582, function: extend_recipe_sysroot > > > 0578: if "/bin/" in l or "/sbin/" in l: > > > 0579: # defer /*bin/* files until last in case they need libs > > > 0580: binfiles[l] = (targetdir, dest) > > > 0581: else: > > > *** 0582: staging_copyfile(l, targetdir, dest, postinsts, seendirs) > > > 0583: > > > 0584: # Handle deferred binfiles > > > 0585: for l in binfiles: > > > 0586: (targetdir, dest) = binfiles[l] > > > File: '/home/pokybuild/yocto-worker/poky-tiny/build/meta/classes/staging.bbclass', lineno: 157, function: staging_copyfile > > > 0153: os.symlink(linkto, dest) > > > 0154: #bb.warn(c) > > > 0155: else: > > > 0156: try: > > > *** 0157: os.link(c, dest) > > > 0158: except OSError as err: > > > 0159: if err.errno == errno.EXDEV: > > > 0160: bb.utils.copyfile(c, dest) > > > 0161: else: > > > Exception: FileExistsError: [Errno 17] File exists: '/home/pokybuild/yocto-worker/poky-tiny/build/build/tmp/sysroots-components/core2-32/libgcc/usr/lib/i686-poky-linux-musl/10.2.0/libgcc_eh.a' -> '/home/pokybuild/yocto-worker/poky-tiny/build/build/tmp/work/core2-32-poky-linux-musl/musl/1.2.2+gitAUTOINC+e5d2823631-r0/recipe-sysroot/usr/lib/i686-poky-linux-musl/10.2.0/libgcc_eh.a' > > > ERROR: Logfile of failure stored in: /home/pokybuild/yocto-worker/poky-tiny/build/build/tmp/work/core2-32-poky-linux-musl/musl/1.2.2+gitAUTOINC+e5d2823631-r0/temp/log.do_package.4051328 > > > NOTE: recipe musl-1.2.2+gitAUTOINC+e5d2823631-r0: task do_package: Failed > > > ERROR: Task (/home/pokybuild/yocto-worker/poky-tiny/build/meta/recipes-core/musl/musl_git.bb:do_package) failed with exit code '1' > > > > > > This also happens with glibc-2.33-r0: > > > > > > > > > ERROR: glibc-2.33-r0 do_package: Error executing a python function in exec_python_func() autogenerated: > > > [...] > > > Exception: FileExistsError: [Errno 17] File exists: '/home/pokybuild/yocto-worker/edgerouter/build/build/tmp/sysroots-components/mips64/libgcc/usr/lib/mips64-poky-linux/10.2.0/libgcc.a' -> '/home/pokybuild/yocto-worker/edgerouter/build/build/tmp/work/mips64-poky-linux/glibc/2.33-r0/recipe-sysroot/usr/lib/mips64-poky-linux/10.2.0/libgcc.a' > > > ERROR: Logfile of failure stored in: /home/pokybuild/yocto-worker/edgerouter/build/build/tmp/work/mips64-poky-linux/glibc/2.33-r0/temp/log.do_package.29993 > > > NOTE: recipe glibc-2.33-r0: task do_package: Failed > > > ERROR: Task (/home/pokybuild/yocto-worker/edgerouter/build/meta/recipes-core/glibc/glibc_2.33.bb:do_package) failed with exit code '1' > > > I see those kind of errors without this patch all the time, when a build directory is hosed, and normally it means it's time for a rm -rf and start over. It happens quite often when building in the same directory multiple times. Are you sure it's related to this particular patch? > > Not sure this helps but we also get: > > > > WARNING: nativesdk-util-linux-2.36.2-r0 do_package_qa: QA Issue: nativesdk-util-linux rdepends on nativesdk-util-linux-uuid, but it isn't a build dependency? [build-deps] Uhm I don't understand this warning, it _is_ a build dependency? Any idea? -DEPENDS = "libcap-ng ncurses virtual/crypt zlib" +DEPENDS = "libcap-ng ncurses virtual/crypt zlib util-linux-uuid" > and I'm adding https://autobuilder.yoctoproject.org/typhoon/#/builders/47/builds/3137/steps/12/logs/stdio : > > ERROR: util-linux-uuid-2.36.2-r0 do_package: QA Issue: util-linux-uuid: Files/directories were installed but not shipped in any package: > /usr/lib/libuuid.a > Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. Whops, indeed I forgot the static archive, fixed now. -- Kind regards, Luca Boccassi