From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by mx.groups.io with SMTP id smtpd.web09.4660.1614437557243141530 for ; Sat, 27 Feb 2021 06:52:37 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: bootlin.com, ip: 217.70.183.199, mailfrom: alexandre.belloni@bootlin.com) X-Originating-IP: 90.65.108.55 Received: from localhost (lfbn-lyo-1-1676-55.w90-65.abo.wanadoo.fr [90.65.108.55]) (Authenticated sender: alexandre.belloni@bootlin.com) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 46CE5FF802; Sat, 27 Feb 2021 14:52:24 +0000 (UTC) Date: Sat, 27 Feb 2021 15:52:23 +0100 From: "Alexandre Belloni" To: Luca Bocassi Cc: openembedded-core@lists.openembedded.org, richard.purdie@linuxfoundation.org, bluelightning@bluelightning.org Subject: Re: [OE-core] [PATCH v5] util-linux: split uuid in separate recipe to allow bootstrapping Message-ID: References: <20201210184632.3448265-1-luca.boccassi@gmail.com> <20210225153035.1239276-1-luca.boccassi@gmail.com> MIME-Version: 1.0 In-Reply-To: <20210225153035.1239276-1-luca.boccassi@gmail.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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' -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com