sartura / replica

Replica.one is an easy to use build system designed to deliver both secure and flexible firmware images.
MIT License
26 stars 12 forks source link

Several jobs fail to build, e. g. `ModuleNotFoundError: No module named 'snakeoil'` #49

Open paulmenzel opened 1 year ago

paulmenzel commented 1 year ago

In a VM with Debian sid/unstable building Replica.one fails:

$ dpkg -l docker.io
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version             Architecture Description
+++-==============-===================-============-=================================
ii  docker.io      20.10.25+dfsg1-1+b1 amd64        Linux container runtime
$ git log --no-decorate --oneline -1
67fdefc config: savedconfig: busybox: use for v1.36.1
$ make -j32 DOCKER_BUILDKIT=1 CTARGET=aarch64-unknown-linux-gnu package_tn48m GENTOO_MIRRORS="http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://gentoo.wheel.sk/ http://mirrors.evowise.com/gentoo/"
[…]
#26 3312.3 >>> Jobs: 112 of 129 complete, 1 failed             Load avg: 1.10, 1.44, 5.43
#26 3312.3 >>> Installing (113 of 129) virtual/perl-Encode-3.170.0::gentoo to /usr/aarch64-unknown-linux-gnu/
#26 3312.3 >>> Jobs: 112 of 129 complete, 1 failed             Load avg: 1.10, 1.44, 5.43
#26 3315.8 >>> Completed (113 of 129) virtual/perl-Encode-3.170.0::gentoo to /usr/aarch64-unknown-linux-gnu/
#26 3315.8 >>> Jobs: 112 of 129 complete, 1 failed             Load avg: 1.09, 1.43, 5.41
#26 3315.8 >>> Jobs: 113 of 129 complete, 1 failed             Load avg: 1.09, 1.43, 5.41
#26 3315.8 >>> Installing (115 of 129) sys-apps/dbus-1.15.4-r1::gentoo to /usr/aarch64-unknown-linux-gnu/
#26 3315.8 >>> Jobs: 113 of 129 complete, 1 failed             Load avg: 1.09, 1.43, 5.41
#26 3319.9 >>> Completed (115 of 129) sys-apps/dbus-1.15.4-r1::gentoo to /usr/aarch64-unknown-linux-gnu/
#26 3319.9 >>> Jobs: 113 of 129 complete, 1 failed             Load avg: 1.00, 1.41, 5.38
#26 3319.9 >>> Jobs: 114 of 129 complete, 1 failed             Load avg: 1.00, 1.41, 5.38
#26 3319.9
#26 3319.9  * Package:    sys-apps/pkgcore-0.12.21:0
#26 3319.9  * Repository: gentoo
#26 3319.9  * Maintainer: pkgcore@gentoo.org
#26 3319.9  * USE:        arm64 elibc_glibc kernel_linux python_targets_python3_11
#26 3319.9  * FEATURES:   ccache network-sandbox preserve-libs sandbox userpriv usersandbox
#26 3319.9 Unable to unshare: EPERM (for FEATURES="pid-sandbox")
#26 3319.9 Unable to unshare: EPERM (for FEATURES="ipc-sandbox network-sandbox pid-sandbox")
#26 3319.9 >>> Unpacking source...
#26 3319.9 >>> Unpacking pkgcore-0.12.21.tar.gz to /usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work
#26 3319.9 >>> Source unpacked in /usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work
#26 3319.9 Unable to unshare: EPERM (for FEATURES="ipc-sandbox network-sandbox pid-sandbox")
#26 3319.9 >>> Preparing source in /usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work/pkgcore-0.12.21 ...
#26 3319.9  * Build system packages:
#26 3319.9  *   dev-python/gpep517            : 13
#26 3319.9  *   dev-python/installer          : 0.7.0
#26 3319.9 >>> Source prepared.
#26 3319.9 Unable to unshare: EPERM (for FEATURES="ipc-sandbox network-sandbox pid-sandbox")
#26 3319.9 >>> Configuring source in /usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work/pkgcore-0.12.21 ...
#26 3319.9 >>> Source configured.
#26 3319.9 Unable to unshare: EPERM (for FEATURES="ipc-sandbox network-sandbox pid-sandbox")
#26 3319.9 >>> Compiling source in /usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work/pkgcore-0.12.21 ...
#26 3319.9  * python3_11: running distutils-r1_run_phase distutils-r1_python_compile
#26 3319.9  *   Building the wheel for pkgcore-0.12.21 via py_build
#26 3319.9 gpep517 build-wheel --backend py_build --output-fd 3 --wheel-dir /usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work/pkgcore-0.12.21-python3_11/wheel --sysroot /usr/aarch64-unknown-linux-gnu
#26 3319.9 2023-09-09 15:53:03,524 gpep517 INFO Using sysconfig from /usr/aarch64-unknown-linux-gnu/usr/lib/python3.11/_sysconfigdata__linux_aarch64-linux-gnu.py
#26 3319.9 2023-09-09 15:53:03,561 gpep517 INFO Building wheel via backend py_build
#26 3319.9 generating version info: /usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work/pkgcore-0.12.21/src/pkgcore/_verinfo.py
#26 3319.9 Traceback (most recent call last):
#26 3319.9   File "/usr/lib/python-exec/python3.11/gpep517", line 4, in <module>
#26 3319.9     sys.exit(main())
#26 3319.9              ^^^^^^
#26 3319.9   File "/usr/lib/python3.11/site-packages/gpep517/__main__.py", line 406, in main
#26 3319.9     return func(args)
#26 3319.9            ^^^^^^^^^^
#26 3319.9   File "/usr/lib/python3.11/site-packages/gpep517/__main__.py", line 202, in build_wheel
#26 3319.9     print(build_wheel_impl(args, args.wheel_dir), file=out)
#26 3319.9           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#26 3319.9   File "/usr/lib/python3.11/site-packages/gpep517/__main__.py", line 194, in build_wheel_impl
#26 3319.9     wheel_name = backend.build_wheel(str(wheel_dir), args.config_json)
#26 3319.9                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#26 3319.9   File "/usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work/pkgcore-0.12.21/py_build.py", line 94, in build_wheel
#26 3319.9     return prepare_pkgcore(callback, consts=True)
#26 3319.9            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#26 3319.9   File "/usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work/pkgcore-0.12.21/py_build.py", line 62, in prepare_pkgcore
#26 3319.9     write_verinfo(cleanup_files)
#26 3319.9   File "/usr/aarch64-unknown-linux-gnu/tmp/portage/sys-apps/pkgcore-0.12.21/work/pkgcore-0.12.21/py_build.py", line 53, in write_verinfo
#26 3319.9     from snakeoil.version import get_git_version
#26 3319.9 ModuleNotFoundError: No module named 'snakeoil'
[…]
#26 3319.9
#26 3319.9  * After world updates, it is important to remove obsolete packages with
#26 3319.9  * emerge --depclean. Refer to `man emerge` for more information.
------
executor failed running [/bin/bash -l -c set_repository_conf ${SYSROOT} replica 100 &&     set_repository_conf ${SYSROOT} switch 101 &&     set_portage_profile ${SYSROOT} switch replica/tn48m &&     cross-emerge -vt --keep-going=n --deep --with-bdeps=y --newuse --newrepo @world]: exit code: 1
make: *** [Makefile:138: build_tn48m] Error 1
rm targets/tn48m.cache

[Full output] (https://github.com/sartura/replica/files/12566210/20230909--replica.one--make.txt)

jpetrina commented 1 year ago

Hi Paul,

thanks for reporting, I haven't been able to reproduce this.

The sys-apps/pkgcore does define a runtime dependency on dev-python/snakeoil. Based on the full log output:

...
[nomerge       ] sys-apps/lm-sensors-3.6.0-r1:0/5.0.0::gentoo to /usr/aarch64-unknown-linux-gnu/
[nomerge       ]  dev-lang/perl-5.36.1-r3:0/5.36::gentoo to /usr/aarch64-unknown-linux-gnu/
[ebuild  N     ]   app-admin/perl-cleaner-2.30::gentoo to /usr/aarch64-unknown-linux-gnu/
[ebuild  N     ]    sys-apps/pkgcore-0.12.21::gentoo to /usr/aarch64-unknown-linux-gnu/
[ebuild  N     ]     dev-python/snakeoil-0.10.5::gentoo to /usr/aarch64-unknown-linux-gnu/
[ebuild  N     ]      dev-python/lazy-object-proxy-1.9.0::gentoo to /usr/aarch64-unknown-linux-gnu/
[ebuild  N     ]     dev-python/lxml-4.9.2-r1::gentoo to /usr/aarch64-unknown-linux-gnu/
[ebuild  N     ]      dev-lang/python-3.11.4:3.11::gentoo to /usr/aarch64-unknown-linux-gnu/
...

It seems to be pulled in and installed so not sure why Portage/Python cannot find it. Let me investigate this further.

paulmenzel commented 1 year ago

I removed the -j32, and issued

make DOCKER_BUILDKIT=1 CTARGET=aarch64-unknown-linux-gnu package_tn48m GENTOO_MIRRORS=" http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://gentoo.wheel.sk/ http://mirrors.evowise.com/gentoo/"

again (without cleaning anything up), but it failed at the same spot.