Building Canopy/OpenBMC fails because of failing subprocess
1. Bug
**Describe the bug**
Building [Canopy](https://github.com/canopybmc/canopybmc) (an OpenBMC distribution) fails because some files can't be copied and further processed.
Excerpt from the log:
```bash
Exception: subprocess.CalledProcessError: Command 'tar --exclude=./sysroot-only -cf - -C /var/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/linux-libc-headers/6.18/image -p -S . | tar -xf - -C /var/home/haeckle/workspace/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/linux-libc-headers/6.18/package' returned non-zero exit status 2.
Subprocess output:
tar: ./usr/include: Cannot mkdir: Function not implemented
```
**Steps how to reproduce the behaviour**
1. Create a new toolbox: `toolbox create canopybmc` (Fedora 44 in this case)
2. Enter toolbox and install dependencies:
```bash
sudo dnf install git python3 gcc g++ gawk which bzip2 chrpath cpio hostname file diffutils diffstat lz4 wget zstd rpcgen patch perl-FindBin perl-Thread-Queue perl-File-Compare perl-open
```
3. Initialize environment:
```bash
git clone git@github.com:canopybmc/canopybmc.git
cd canopybmc
source setup canopy-qemu
```
5. Start build (**be aware this needs some resources!**): `bitbake obmc-phosphor-image`
6. Encounter error
**Expected behaviour**
The build runs successfully.
**Actual behaviour**
The build ends with an error message.
**Screenshots**
No screenshot, but the console output:
```
9elements@toolbx canopy-qemu]$ bitbake obmc-phosphor-image
Loading cache: 100% |###################################################################################################################################################################################################| Time: 0:00:01
Loaded 5353 entries from dependency cache.
Parsing recipes: 100% |#################################################################################################################################################################################################| Time: 0:00:00
Parsing of 3097 .bb files complete (3096 cached, 1 parsed). 5354 targets, 781 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "2.16.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "arm-openbmc-linux-gnueabi"
MACHINE = "canopy-qemu"
SDKMACHINE = "x86_64"
DISTRO = "canopy"
DISTRO_VERSION = "nodistro.0"
TUNE_FEATURES = "arm armv7a vfp vfpv4d16 callconvention-hard"
meta-canopy = "main:ee514ce94b7cd19cdc84809faec93c81fa598c6a"
meta
meta-oe
meta-networking
meta-python
meta-phosphor
meta-aspeed = "HEAD:4bcd6c002b339b1a31ab51d77faddf4e5834776e"
Sstate summary: Wanted 1325 Local 0 Mirrors 0 Missed 1325 Current 1928 (0% match, 59% complete)
Initialising tasks: 100% |##############################################################################################################################################################################################| Time: 0:00:03
NOTE: Executing Tasks
ERROR: linux-libc-headers-6.18-r0 do_package: Error executing a python function in exec_func_python() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_func_python() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:perform_packagecopy(d)
0003:
File: '/var/home/9elements/Schreibtisch/canopybmc/openbmc/meta/classes-global/package.bbclass', lineno: 365, function: perform_packagecopy
0361: rpath_replace (dvar, d)
0362:}
0363:perform_packagecopy[cleandirs] = "${PKGD}"
0364:perform_packagecopy[dirs] = "${PKGD}"
*** 0365:
0366:python populate_packages () {
0367: oe.package.populate_packages(d)
0368:}
0369:populate_packages[dirs] = "${D}"
File: '/usr/lib64/python3.14/subprocess.py', lineno: 473, function: check_output
0469: else:
0470: empty = b''
0471: kwargs['input'] = empty
0472:
*** 0473: return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
0474: **kwargs).stdout
0475:
0476:
0477:class CompletedProcess(object):
File: '/usr/lib64/python3.14/subprocess.py', lineno: 578, function: run
0574: # We don't call process.wait() as .__exit__ does that for us.
0575: raise
0576: retcode = process.poll()
0577: if check and retcode:
*** 0578: raise CalledProcessError(retcode, process.args,
0579: output=stdout, stderr=stderr)
0580: return CompletedProcess(process.args, retcode, stdout, stderr)
0581:
0582:
Exception: subprocess.CalledProcessError: Command 'tar --exclude=./sysroot-only -cf - -C /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/linux-libc-headers/6.18/image -p -S . | tar -xf - -C /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/linux-libc-headers/6.18/package' returned non-zero exit status 2.
Subprocess output:
tar: ./usr/include: Cannot mkdir: Function not implemented
tar: ./usr/include/regulator: Cannot mkdir: Function not implemented
tar: ./usr/include/regulator/regulator.h: Cannot open: Function not implemented
…
…
…
tar: ./usr/include/mtd/inftl-user.h: Cannot open: Function not implemented
tar: ./usr/include/mtd/nftl-user.h: Cannot open: Function not implemented
tar: ./usr/include/mtd/mtd-abi.h: Cannot open: Function not implemented
tar: Exiting with failure status due to previous errors
ERROR: Logfile of failure stored in: /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/linux-libc-headers/6.18/temp/log.do_package.643318
ERROR: Task (/var/home/9elements/Schreibtisch/canopybmc/openbmc/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.18.bb:do_package) failed with exit code '1'
ERROR: glibc-2.43+git-r1 do_compile: oe_runmake failed
ERROR: glibc-2.43+git-r1 do_compile: Execution of '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/run.do_compile.643295' failed with exit code 1
ERROR: Logfile of failure stored in: /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/log.do_compile.643295
Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make PARALLELMFLAGS=-j 8 SHELL=/bin/bash KSHELL=/bin/sh
| make -r PARALLELMFLAGS="-j 8" -C ../sources/glibc-2.43+git objdir=`pwd` all
| make[1]: Entering directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git'
|
| type "make help" for help with common glibc makefile targets
|
| make -j 8 subdir=csu -C csu ..=../ subdir_lib
| make -j 8 subdir=iconv -C iconv ..=../ subdir_lib
| make -j 8 subdir=locale -C locale ..=../ subdir_lib
| make -j 8 subdir=localedata -C localedata ..=../ subdir_lib
| make[2]: Entering directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/localedata'
| make[2]: Nothing to be done for 'subdir_lib'.
| make[2]: Leaving directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/localedata'
| make -j 8 subdir=iconvdata -C iconvdata ..=../ subdir_lib
| make[2]: Entering directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/iconvdata'
| make[2]: Nothing to be done for 'subdir_lib'.
| make[2]: Leaving directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/iconvdata'
| make -j 8 subdir=assert -C assert ..=../ subdir_lib
| make -j 8 subdir=ctype -C ctype ..=../ subdir_lib
| make -j 8 subdir=intl -C intl ..=../ subdir_lib
| make -j 8 subdir=catgets -C catgets ..=../ subdir_lib
| make -j 8 subdir=math -C math ..=../ subdir_lib
| make -j 8 subdir=setjmp -C setjmp ..=../ subdir_lib
| make -j 8 subdir=signal -C signal ..=../ subdir_lib
| make -j 8 subdir=stdlib -C stdlib ..=../ subdir_lib
| make -j 8 subdir=stdio-common -C stdio-common ..=../ subdir_lib
| make -j 8 subdir=libio -C libio ..=../ subdir_lib
| make -j 8 subdir=dlfcn -C dlfcn ..=../ subdir_lib
| make -j 8 subdir=nptl -C nptl ..=../ subdir_lib
| make[2]: Entering directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/nptl'
| make[2]: Leaving directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/nptl'
| make -j 8 subdir=rt -C rt ..=../ subdir_lib
| make -j 8 subdir=malloc -C malloc ..=../ subdir_lib
| make[2]: Entering directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/malloc'
| make[2]: Leaving directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/malloc'
| make -j 8 subdir=string -C string ..=../ subdir_lib
| make[2]: Entering directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/string'
| ../Rules:409: warning: overriding recipe for target '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/build-arm-openbmc-linux-gnueabi/string/tst-strerror.out'
| ../Rules:396: warning: ignoring old recipe for target '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/build-arm-openbmc-linux-gnueabi/string/tst-strerror.out'
| ../Rules:409: warning: overriding recipe for target '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/build-arm-openbmc-linux-gnueabi/string/tst-strsignal.out'
| ../Rules:396: warning: ignoring old recipe for target '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/build-arm-openbmc-linux-gnueabi/string/tst-strsignal.out'
| make[2]: Leaving directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/string'
| make -j 8 subdir=wcsmbs -C wcsmbs ..=../ subdir_lib
| make -j 8 subdir=timezone -C timezone ..=../ subdir_lib
| make[2]: Entering directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/timezone'
| make[2]: Nothing to be done for 'subdir_lib'.
| make[2]: Leaving directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/timezone'
| make -j 8 subdir=time -C time ..=../ subdir_lib
| make -j 8 subdir=dirent -C dirent ..=../ subdir_lib
| make -j 8 subdir=posix -C posix ..=../ subdir_lib
| make -j 8 subdir=io -C io ..=../ subdir_lib
| make[2]: Entering directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/io'
| make[2]: Leaving directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git/io'
| /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/build-arm-openbmc-linux-gnueabi/io/close_range.os.d:60: *** missing separator. Stop.
| make[1]: *** [Makefile:504: io/subdir_lib] Error 2
| make[1]: Leaving directory '/var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/sources/glibc-2.43+git'
| make: *** [Makefile:20: all] Error 2
| ERROR: oe_runmake failed
| WARNING: /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/run.do_compile.643295:189 exit 1 from 'exit 1'
| WARNING: Backtrace (BB generated script):
| #1: bbfatal_log, /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/run.do_compile.643295, line 189
| #2: die, /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/run.do_compile.643295, line 174
| #3: oe_runmake, /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/run.do_compile.643295, line 179
| #4: base_do_compile, /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/run.do_compile.643295, line 157
| #5: do_compile, /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/run.do_compile.643295, line 142
| #6: main, /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/run.do_compile.643295, line 199
ERROR: Task (/var/home/9elements/Schreibtisch/canopybmc/openbmc/meta/recipes-core/glibc/glibc_2.43.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 1607 tasks of which 1604 didn't need to be rerun and 2 failed.
Summary: 2 tasks failed:
/var/home/9elements/Schreibtisch/canopybmc/openbmc/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_6.18.bb:do_package
log: /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/linux-libc-headers/6.18/temp/log.do_package.643318
/var/home/9elements/Schreibtisch/canopybmc/openbmc/meta/recipes-core/glibc/glibc_2.43.bb:do_compile
log: /var/home/9elements/Schreibtisch/canopybmc/build/canopy-qemu/tmp/work/armv7ahf-vfpv4d16-openbmc-linux-gnueabi/glibc/2.43+git/temp/log.do_compile.643295
Summary: There were 3 ERROR messages, returning a non-zero exit code.
```
**Output of `toolbox --version` (v0.0.90+)**
`toolbox version 0.3`
**Toolbx package info (`rpm -q toolbox`)**
`toolbox-0.3-4.fc44.x86_64`
**Output of `podman version`**
```
Client: Podman Engine
Version: 5.8.2
API Version: 5.8.2
Go Version: go1.26.1-X:nodwarf5
Git Commit: 5b263b5f5b48004a87caac44e67349a8266d9ef4
Built: Tue Apr 14 02:00:00 2026
Build Origin: Fedora Project
OS/Arch: linux/amd64
```
**Podman package info (`rpm -q podman`)**
`podman-5.8.2-1.fc44.x86_64`
**Info about your OS**
Fedora Silverblue 44
**Additional context**
There was a recent error with AppArmor on Ubuntu ([#2056555](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2056555)), however SELinux seems to not have a problem (at least from what I encounter). But I could imagine that it has something to do with bitbake using namespaces (see this [comment](https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2056555/comments/12))
3 条评论