Thread (69 messages) 69 messages, 12 authors, 2021-03-26

Re: [OE-core] [PATCH v5] util-linux: split uuid in separate recipe to allow bootstrapping

From: "Alexandre Belloni" <alexandre.belloni@bootlin.com>
Date: 2021-02-27 15:08:05

On 27/02/2021 15:52:25+0100, Alexandre Belloni wrote:
Hello,

On 25/02/2021 15:30:35+0000, Luca Bocassi wrote:
quoted
From: Luca Boccassi <redacted>

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 <redacted>
---
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: <module>
     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'
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]


-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help