Coder Social home page Coder Social logo

chimera-linux / cports Goto Github PK

View Code? Open in Web Editor NEW
167.0 167.0 104.0 26.05 MB

Chimera ports collection

License: BSD 2-Clause "Simplified" License

Python 90.57% Shell 2.89% Roff 3.26% C 2.75% JavaScript 0.03% C++ 0.44% M4 0.01% Vim Script 0.02% Makefile 0.03%

cports's People

Contributors

a16bitsysop avatar anixedn avatar aurelilia avatar bridouz avatar cesorious avatar firefly-cpp avatar flukeeey avatar geopjr avatar gnarwhal avatar ifreund avatar jamikettunen avatar jcgruenhage avatar mikoxyz avatar natthias avatar nekopsykose avatar novaandrom3da avatar paulapatience avatar q66 avatar rbgarga avatar shtayerc avatar subnut avatar the-eater avatar triallax avatar ttyyls avatar valpackett avatar wezm avatar yanchan09 avatar yoctozepto avatar yopito avatar z-erica avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cports's Issues

cbuild: extract step fails if no distfiles

new wrksrc handling (rev 020ad37 ?) fails in case package has no distfiles, like main/base-files for instance:

$ ./cbuild.py install main/base-files
OK: 156 distinct packages available
=> cbuild: reconfiguring base...
Clearing symlinks in /etc/ssl/certs...
done.
Updating certificates in /etc/ssl/certs...
     137 added,        0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
=> cbuild: updating software in /build/chimera/bldroot container...
=> cbuild: removing autodeps...
OK: 347 MiB in 60 packages
=> base-files-0.142-r0: building for x86_64...
=> base-files-0.142-r0: running do_fetch hook: 00_distfiles...
=> base-files-0.142-r0: running do_extract hook: 00_distfiles...
=> A failure has occured!
Traceback (most recent call last):
  File "/home/yopito/chimera/cports.git/./cbuild.py", line 446, in <module>
    ({
  File "/home/yopito/chimera/cports.git/./cbuild.py", line 434, in do_pkg
    build.build(
  File "/home/yopito/chimera/cports.git/cbuild/core/build.py", line 55, in build
    extract.invoke(pkg)
  File "/home/yopito/chimera/cports.git/cbuild/step/extract.py", line 18, in invoke
    template.call_pkg_hooks(pkg, "do_extract")
  File "/home/yopito/chimera/cports.git/cbuild/core/template.py", line 165, in call_pkg_hooks
    run_pkg_func(pkg, f[0], f"{stepn}_{f[1]}", f"{stepn} hook: {f[1]}")
  File "/home/yopito/chimera/cports.git/cbuild/core/template.py", line 160, in run_pkg_func
    func(pkg)
  File "/home/yopito/chimera/cports.git/cbuild/hooks/do_extract/00_distfiles.py", line 141, in invoke
    if sentry or not entry.is_dir() or entry.is_symlink():
AttributeError: 'NoneType' object has no attribute 'is_dir'

main/libxo: crossbuild failed

using rev be5f469 with patch from #49 : crossbuild fails (native build is fine):

[cports.git]$ uname -mr
5.13.19_1 x86_64

[cports.git]$ ./cbuild clean
=> cbuild: removing autodeps...

[cports.git]$ ./cbuild -a aarch64 pkg main/libxo
OK: 219 distinct packages available
=> cbuild: updating software in /build/chimera/bldroot container...
=> cbuild: removing autodeps...
(1/1) Replacing libxo (1.6.0-r0 -> 1.6.0-r0)
OK: 339 MiB in 58 packages
=> base-cross-0.1-r0: found (base-cross-0.1-r0)
=> libxo-1.6.0-r0: installing cross toolchain for aarch64...
=> libxo-1.6.0-r0: setting up sysroot for aarch64...
=> libxo-1.6.0-r0: updating virtual provider for aarch64...
=> libxo-1.6.0-r0: building [gnu_configure] for aarch64...
   [host] pkgconf: found (1.7.3-r0)
   [host] gettext-tiny: found (0.3.2-r0)
   [target] gettext-tiny-devel: found (0.3.2-r0)
=> libxo-1.6.0-r0: installing host dependencies: pkgconf, gettext-tiny
=> libxo-1.6.0-r0: installing target dependencies: gettext-tiny-devel
=> libxo-1.6.0-r0: running do_fetch hook: 00_sources...
=> libxo-1.6.0-r0: running do_extract hook: 00_sources...
=> libxo-1.6.0-r0: running init_patch hook: 00_env_pkg_config...
=> libxo-1.6.0-r0: running do_patch hook: 00_patches...
=> libxo-1.6.0-r0: patching: bmake.patch
=> libxo-1.6.0-r0: patching: gettext.patch
=> libxo-1.6.0-r0: patching: portability.patch
=> libxo-1.6.0-r0: running post_patch...
=> libxo-1.6.0-r0: running init_configure...
=> libxo-1.6.0-r0: running pre_configure hook: 02_script_wrapper...
ld: error: /usr/aarch64-linux-musl/lib/Scrt1.o is incompatible with elf_x86_64
ld: error: /usr/aarch64-linux-musl/lib/crti.o is incompatible with elf_x86_64
ld: error: /usr/aarch64-linux-musl/lib/libunwind.so is incompatible with elf_x86_64
ld: error: /usr/aarch64-linux-musl/lib/libc.so is incompatible with elf_x86_64
ld: error: /usr/aarch64-linux-musl/lib/libunwind.so is incompatible with elf_x86_64
ld: error: /usr/aarch64-linux-musl/lib/crtn.o is incompatible with elf_x86_64
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
=> A failure has occured!
Traceback (most recent call last):
  File "/home/yopito/chimera/cports.git/./cbuild", line 622, in <module>
    case "build" | "check" | "install" | "pkg": do_pkg(cmd)
  File "/home/yopito/chimera/cports.git/./cbuild", line 599, in do_pkg
    build.build(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/build.py", line 80, in build
    configure.invoke(pkg, step)
  File "/home/yopito/chimera/cports.git/src/cbuild/step/configure.py", line 15, in invoke
    pkg.run_step("configure", optional = True)
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 880, in run_step
    call_pkg_hooks(self, "pre_" + stepn)
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 167, in call_pkg_hooks
    run_pkg_func(pkg, f[0], f"{stepn}_{f[1]}", f"{stepn} hook: {f[1]}")
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 162, in run_pkg_func
    func(pkg)
  File "/home/yopito/chimera/cports.git/src/cbuild/hooks/pre_configure/02_script_wrapper.py", line 54, in invoke
    _wrap_cross_cc(pkg)
  File "/home/yopito/chimera/cports.git/src/cbuild/hooks/pre_configure/02_script_wrapper.py", line 21, in _wrap_cross_cc
    compiler.C(pkg).invoke(
  File "/home/yopito/chimera/cports.git/src/cbuild/util/compiler.py", line 36, in invoke
    return self.template.do(self.cexec, argsbase)
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 864, in do
    return chroot.enter(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/chroot.py", line 392, in enter
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bwrap', '--ro-bind', PosixPath('/build/chimera/bldroot'), '/', '--bind', PosixPath('/build/chimera/bldroot/builddir'), '/builddir', '--ro-bind', PosixPath('/build/chimera/bldroot/destdir'), '/destdir', '--ro-bind', PosixPath('/build/chimera/sources'), '/sources', '--dev', '/dev', '--proc', '/proc', '--tmpfs', '/tmp', '--new-session', '--die-with-parent', '--bind', PosixPath('/build/chimera/ccache'), '/ccache', '--uid', '1337', '--gid', '1337', '--unshare-all', '--chdir', PosixPath('/builddir/libxo-1.6.0'), 'clang', '-D_FORTIFY_SOURCE=2', '-fstack-protector-strong', '-fstack-clash-protection', '-O2', '-Wno-unused-command-line-argument', '-Wl,--as-needed', '-Wl,-z,now', '-Wl,-z,relro', '--sysroot', '/usr/aarch64-linux-musl', '/builddir/.cbuild-libxo/wrappers/cross-cc.c', '-Wl,--as-needed', '-Wl,-z,now', '-Wl,-z,relro', '-o', '/builddir/.cbuild-libxo/wrappers/cross-cc']' returned non-zero exit status 1.

remove DONTSTRIP from cbuild/wrappers/install wrapper

cbuild/wrappers/install.sh sets environment variable DONTSTRIP, that makes install(1) informs about it each item it's called with the following: "install: DONTSTRIP set - will not strip installed binaries"

Apart from generating a lot of log, this sentence regulary makes various packages provided testsuites fail just because of its presence.

Since STRIPBIN is already set in this wrapper, DONTSTRIP is not really required. So we can safely remove DONTSTRIP from cbuild/wrappers/install.sh.

boostrap.sh: fails with void musl rootfs as of 20210218 (x86_64)

embedded ca-certficates is too old now.
I'm testing with 20210930 version, will open a PR if succeed.

output:

$ date
Fri Oct  1 08:18:11 CEST 2021

$ rm -rf /build/chimera/SCRATCH_cports.git/bootstrap.ROOTDIR 

$ BOOTSTRAP_ROOT=/build/chimera/SCRATCH_cports.git/bootstrap.ROOTDIR ./bootstrap.sh
void-x86_64-musl-ROOTFS-20210218.tar.xz: OK
>> Updating base system...
[*] Updating repository `https://alpha.de.repo.voidlinux.org/current/musl/x86_64-musl-repodata' ...
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
Certificate verification failed for /O=Digital Signature Trust Co./CN=DST Root CA X3
SSL_connect returned 1
ERROR: [reposync] failed to fetch file `https://alpha.de.repo.voidlinux.org/current/musl/x86_64-musl-repodata': Operation not permitted
Bootstrap failed!

clang --print-multiarch is wrong for riscv64 on crossbuild

context: crossbuild main/python on x86_64 host using rev 28f5384 .
fine for aarch64 and ppc64* , error with target host riscv64:

OK: 467 distinct packages available
=> cbuild: updating software in /build/chimera/bldroot container...
=> cbuild: removing autodeps...
OK: 395 MiB in 58 packages
=> base-cross-0.1-r0: found (base-cross-0.1-r0)
OK: 395 MiB in 58 packages
=> python-3.10.0-r0: installing cross toolchain for riscv64...
=> python-3.10.0-r0: setting up sysroot for riscv64...
=> python-3.10.0-r0: updating virtual provider for riscv64...
=> python-3.10.0-r0: building [gnu_configure] for riscv64...
   [host] pkgconf: found (1.8.0-r0)
   [host] gmake: found (4.3-r0)
   [host] python: found (3.10.0-r0)
   [target] libffi-devel: found (3.4.2-r0)
   [target] openssl-devel: found (1.1.1l-r0)
   [target] libbz2-devel: found (1.0.8-r0)
   [target] libedit-devel: found (20210910.3.1-r0)
   [target] zlib-devel: found (1.2.11-r0)
   [target] liblzma-devel: found (5.2.5-r0)
   [target] libexpat-devel: found (2.4.1-r0)
   [target] sqlite-devel: found (3.36.0-r0)
   [target] linux-headers: found (5.15.5-r0)
   [runtime] ca-certificates>=0: found (20211016-r0)
   [runtime] python-devel=3.10.0-r0: subpackage (ignored)
   [runtime] python=3.10.0-r0: subpackage (ignored)
=> python-3.10.0-r0: installing host dependencies: pkgconf, gmake, python
=> python-3.10.0-r0: installing target dependencies: libffi-devel, openssl-devel, libbz2-devel, libedit-devel, zlib-devel, liblzma-devel, libexpat-devel, sqlite-devel, linux-headers
=> python-3.10.0-r0: running do_fetch hook: 00_sources...
=> python-3.10.0-r0: running do_extract hook: 00_sources...
=> python-3.10.0-r0: running init_patch hook: 00_env_pkg_config...
=> python-3.10.0-r0: running do_patch hook: 00_patches...
=> python-3.10.0-r0: patching: musl-find_library.patch
=> python-3.10.0-r0: running init_configure...
=> python-3.10.0-r0: running pre_configure hook: 02_script_wrapper...
=> python-3.10.0-r0: running pre_configure...
=> python-3.10.0-r0: running do_configure...
configure: WARNING: unrecognized options: --with-sysroot, --with-libtool-sysroot
checking build system type... x86_64-chimera-linux-musl
checking host system type... riscv64-chimera-linux-musl
checking for python3.10... python3.10
checking for python interpreter for cross build... python3.10
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
checking MACHDEP... "linux"
checking for riscv64-chimera-linux-musl-gcc... riscv64-chimera-linux-musl-clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether riscv64-chimera-linux-musl-clang accepts -g... yes
checking for riscv64-chimera-linux-musl-clang option to accept ISO C89... none needed
checking how to run the C preprocessor... riscv64-chimera-linux-musl-clang-cpp
checking for grep that handles long lines and -e... /usr/bin/grep
checking for a sed that does not truncate output... /usr/bin/sed
checking for --with-cxx-main=<compiler>... no
checking for the platform triplet based on compiler characteristics... riscv64-linux-gnu
configure: error: internal configure error for the platform triplet, please file a bug report
=> A failure has occured!
Traceback (most recent call last):
(removed traceback)

digging into this error show that --print-multiarch is inconsistent for riscv64 with others:
additional -chimera- on output:

./cbuild chroot

/tmp$ apk info -L | grep base-cross
base-cross-riscv64
base-cross-aarch64
base-cross-ppc64
base-cross-ppc64le

/tmp$ /usr/bin/riscv64-chimera-linux-musl-clang --print-multiarch
riscv64-chimera-linux-musl

/tmp$ /usr/bin/aarch64-chimera-linux-musl-clang --print-multiarch
aarch64-linux-gnu

/tmp$ /usr/bin/powerpc64-chimera-linux-musl-cc --print-multiarch                                                                                      
powerpc64-linux-gnu

/tmp$ /usr/bin/powerpc64le-chimera-linux-musl-cc --print-multiarch                                                                                    
powerpc64le-linux-gnu

Add the "build" directory as a template variable

in order to not hardcode "build" in template, or add additional call in templates if it's not "build".

Example: if need to use ".", have currently to rework all phase this way:

...
def do_configure(self):
    # dedicated build dir is not supported by upstream's source
    from cbuild.util import gnu_configure
    gnu_configure.replace_guess(self)
    gnu_configure.configure(
        self,
        configure_script = self.configure_script,
        build_dir = "."
    )

def do_build(self):
    # don't use a dedicated build dir
    self.make.build(wrksrc = ".")

def do_check(self):
    self.make.invoke("check", wrksrc = ".")

def do_install(self):
    # don't use a dedicated build dir
    self.make.install(wrksrc = ".")

run_check is True on crossbuild

Using run_check this way in a template:

if current.run_check:
   makedepends += ["zlib-devel"]

makes zlib-devel package getting installed even on crossbuilding.
Is it the right way to use it ? If such, run_check should be set to false on crossbuild.

main/bmake fails on bootstrap stage0

using last rev ce27fdc:

  • do_install() fails
  • also do_install() starts by building it again ?

output:

=> cbuild: bootstrapping stage 0
=> base-cbuild-0.1-r0: building [meta] for x86_64...
(...)
=> bmake-20211024-r0: building (dependency of base-cbuild) for x86_64...
=> bmake-20211024-r0: running do_fetch hook: 000_sources...
=> bmake-20211024-r0: running do_extract hook: 000_sources...
=> bmake-20211024-r0: running init_patch hook: 000_env_pkg_config...
=> bmake-20211024-r0: running do_patch hook: 000_patches...
=> bmake-20211024-r0: patching: build.patch
=> bmake-20211024-r0: patching: tests.patch
=> bmake-20211024-r0: running pre_configure hook: 000_script_wrapper...
=> bmake-20211024-r0: running pre_configure hook: 001_prepare_users...
=> bmake-20211024-r0: running do_build...
NOTE: default prefix=/usr/local 
checking whether system has timezone Europe/Berlin... yes
(...)
config.status: creating make-bootstrap.sh
config.status: creating config.h

You can now run

        sh ./make-bootstrap.sh

to produce a fully functional bmake.

clang -c -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wno-unused-command-line-argument -O2 -pipe -rtlib=compiler-rt -isystem /cports/bl
droot-stage0/usr/include -I. -I/cports/bldroot-stage0/builddir/bmake-20211024 -DHAVE_CONFIG_H -I/cports/bldroot-stage0/builddir/bmake-20
211024/missing -DMAKE_NATIVE -DUSE_META -DBMAKE_PATH_MAX=1024 -DMAKE_VERSION="20211024" -DMACHINE="linux5" -DMACHINE_ARCH="x86_64" -D_PA
TH_DEFSYSPATH="/usr/share/mk" -o main.o /cports/bldroot-stage0/builddir/bmake-20211024/main.c
(...)
=> bmake-20211024-r0: skipping check (skipped by user)
=> bmake-20211024-r0: running do_install...
NOTE: default prefix=/usr/local 
clang -c -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wno-unused-command-line-argument -O2 -pipe -rtlib=compiler-rt -isystem /cports/bldroot-stage0/usr/include -I. -I/cports/bldroot-stage0/builddir/bmake-20211024 -DHAVE_CONFIG_H -I/cports/bldroot-stage0/builddir/bmake-20211024/missing -DMAKE_NATIVE -DUSE_META -DBMAKE_PATH_MAX=1024 -DMAKE_VERSION="20211024" -DMACHINE="linux5" -DMACHINE_ARCH="x86_64" -D_PATH_DEFSYSPATH="/usr/share/mk" -o main.o /cports/bldroot-stage0/builddir/bmake-20211024/main.c
(...)
clang -Wl,--as-needed -Wl,-z,now -Wl,-z,relro -fuse-ld=lld -L/cports/bldroot-stage0/usr/lib -Wl,-rpath-link=/cports/bldroot-stage0/usr/l
ib -o bmake main.o job.o meta.o arch.o buf.o compat.o cond.o dir.o enum.o for.o hash.o lst.o make.o make_malloc.o metachar.o parse.o sig
compat.o str.o suff.o targ.o trace.o var.o util.o stresep.o
test -d /cports/bldroot-stage0/destdir/bmake-20211024/usr/bin || /cports/bldroot-stage0/builddir/bmake-20211024/install-sh -m 775 -d /cp
orts/bldroot-stage0/destdir/bmake-20211024/usr/bin
test -d /cports/bldroot-stage0/destdir/bmake-20211024/usr/share/man/cat1 || /cports/bldroot-stage0/builddir/bmake-20211024/install-sh -m
 775 -d /cports/bldroot-stage0/destdir/bmake-20211024/usr/share/man/cat1
[ -d /cports/bldroot-stage0/destdir/bmake-20211024/usr/bin ] ||  /cports/bldroot-stage0/builddir/bmake-20211024/install-sh -d -o root -g
 root -m 775 /cports/bldroot-stage0/destdir/bmake-20211024/usr/bin
/cports/bldroot-stage0/builddir/bmake-20211024/install-sh -c -s -o root -g root -m 555  bmake /cports/bldroot-stage0/destdir/bmake-20211
024/usr/bin/
chgrp: changing group of '/cports/bldroot-stage0/destdir/bmake-20211024/usr/bin//bmake': Invalid argument
*** Error code 1

Stop.
bmake: stopped in /cports/bldroot-stage0/builddir/bmake-20211024
(...)

suggestion: better tool for initrd

I noticed that chimera currently uses initramfs-tools to generate initramfs, but I couldn't find any LICENCE in that repo

my suggestions :

  • for now dracut : a mature & portable option
  • for future tinyramfs : not mature, but most portable & offers features that would complement the idea behind chimera

grub: build fails on x86_64

based on rev a7725c5:

=> grub-2.06-r0: running do_build...
...
PATH=.:$PATH pkgdatadir=. /usr/bin/help2man --section=1 -i /builddir/grub-2.06/docs/man/grub-kbdcomp.h2m -o grub-kbdcomp.1 grub-kbdcomp
clang -o build-grub-mkfont -I/builddir/grub-2.06/include -std=gnu99 -D_FORTIFY_SOURCE=2 -fno-PIE -fno-stack-protector -O2 -Os -fuse-ld=bfd -Wno-unused-command-line-argument -no-integrated-as -DGRUB_FILE=\"util/grub-mkfont.c\" -I. -I/builddir/grub-2.06 -I. -I/builddir/grub-2.06 -I/builddir/grub-2.06/include -I./include -I/builddir/grub-2.06/grub-core/lib/libgcrypt-grub/src/ -Wl,--as-needed -Wl,-z,now -Wl,-z,relro -no-pie -fuse-ld=bfd -DGRUB_MKFONT=1 -DGRUB_BUILD=1 -DGRUB_UTIL=1 -DGRUB_BUILD_PROGRAM_NAME=\"build-grub-mkfont\" /builddir/grub-2.06/util/grub-mkfont.c /builddir/grub-2.06/grub-core/unidata.c /builddir/grub-2.06/grub-core/kern/emu/misc.c /builddir/grub-2.06/util/misc.c -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  -lfreetype 
In file included from /builddir/grub-2.06/util/grub-mkfont.c:20:
/builddir/grub-2.06/include/grub/types.h:59:28: error: invalid token at start of a preprocessor expression
#if GRUB_CPU_SIZEOF_VOID_P != 4 && GRUB_CPU_SIZEOF_VOID_P != 8
                           ^
...

(full output here: https://gist.githubusercontent.com/yopito/16b75effff83dc72164016dd5654daa9/raw/4ae59430fe657f0f6f0dae57f02b3d6b2aa5acca/gistfile1.txt)

missing initrd file for kernel (x86_64)

install grub and kernel this way in a qemu VM:
image

once rebooted, grub launches nicely booting linux kernel fails.
=> initrd directive is missing in corresponding grub entry ... because no /boot/*.img file is present on disk, corresponding to linux kernel ?

image

cbuild: scanelf failed on empty file

building stage0 with rev 608933e fails on empty file.
(Added a debug output to see which file it fails on):

...
/cports/bldroot-stage0/builddir/musl-1.2.2/tools/install.sh -D -m 644 /cports/bldroot-stage0/builddir/musl-1.2.2/include/wordexp.h /cports/bldroot-stage0/destdir/musl-1.2.2/usr/include/wordexp.h
=> musl-1.2.2-r0: creating path: /cports/bldroot-stage0/destdir/musl-1.2.2/usr/bin
=> musl-1.2.2-r0: symlinking: ../lib/libc.so -> /cports/bldroot-stage0/destdir/musl-1.2.2/usr/bin/ldd
=> musl-1.2.2-r0: copying (755): /cports/bldroot-stage0/builddir/musl-1.2.2/iconv -> /cports/bldroot-stage0/destdir/musl-1.2.2/usr/bin
=> musl-1.2.2-r0: copying (755): /cports/bldroot-stage0/builddir/musl-1.2.2/getent -> /cports/bldroot-stage0/destdir/musl-1.2.2/usr/bin
...
=> musl-devel-1.2.2-r0: running pkg_install...
=> musl-devel-1.2.2-r0: moving: /cports/bldroot-stage0/destdir/musl-1.2.2/usr/include -> /cports/bldroot-stage0/destdir/musl-devel-1.2.2
...
=> musl-devel-1.2.2-r0: moving: /cports/bldroot-stage0/destdir/musl-1.2.2/usr/lib/crti.o -> /cports/bldroot-stage0/destdir/musl-devel-1.2.2
=> musl-devel-1.2.2-r0: (dbg) scan fpath=/cports/bldroot-stage0/destdir/musl-devel-1.2.2/usr/lib/libm.a
...
=> musl-devel-1.2.2-r0: (dbg) scan fpath=/cports/bldroot-stage0/destdir/musl-devel-1.2.2/usr/include/bits/alltypes.h
=> musl-devel-1.2.2-r0: (dbg) scan fpath=/cports/bldroot-stage0/destdir/musl-devel-1.2.2/usr/include/bits/ioctl_fix.h
=> A failure has occured!
Traceback (most recent call last):
  File "/cports/./cbuild", line 720, in <module>
    case "bootstrap": bootstrap(cmd)
  File "/cports/./cbuild", line 342, in bootstrap
    build.build(tgt, rp, {}, opt_signkey)
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 415, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 103, in build
    install.invoke(sp, True)
  File "/cports/src/cbuild/step/install.py", line 30, in invoke
    scanelf.scan(pkg, pkg.rparent.current_elfs)
  File "/cports/src/cbuild/core/scanelf.py", line 215, in scan
    scanned = _scan_one(fpath)
  File "/cports/src/cbuild/core/scanelf.py", line 90, in _scan_one
    mm = mmap.mmap(inf.fileno(), 0, prot = mmap.PROT_READ)
ValueError: cannot mmap an empty file
Bootstrap failed!
$ ls -l bldroot-stage0/destdir/musl-devel-1.2.2/usr/include/bits/| grep -C 3 ioctl_fix.h
-rw-r--r-- 1 yopito yopito     0 Oct 27 08:53 hwcap.h
-rw-r--r-- 1 yopito yopito  2023 Oct 27 08:53 io.h
-rw-r--r-- 1 yopito yopito  3054 Oct 27 08:53 ioctl.h
-rw-r--r-- 1 yopito yopito     0 Oct 27 08:53 ioctl_fix.h
-rw-r--r-- 1 yopito yopito   157 Oct 27 08:53 ipc.h
-rw-r--r-- 1 yopito yopito    19 Oct 27 08:53 ipcstat.h
-rw-r--r-- 1 yopito yopito    22 Oct 27 08:53 kd.h

Add gnome-software

Please, consider supporting GNOME Software if possible or similar GUI tool to manage packages/ports (+ additional package formats like Flatpaks) in Chimera Linux. It would make the distro more accessible to many new users.

main/byacc fails building on bootstrap stage 1

context: bootstrap on x86_64 using rev d77e1e5

It was fine on building byacc on april (my previous bootstrap).

$ PYTHONUNBUFFERED=1 BOOTSTRAP_ROOT=/build/chimera/SCRATCH_cports.git/bootstrap.ROOTDIR ./bootstrap.sh
...
=> cbuild: bootstrapping stage 1
=> cbuild: removing autodeps...
=> base-cbuild-0.1-r0: building [meta] for x86_64...
   [runtime] musl-devel>=0: not found
   [runtime] elftoolchain>=0: not found
   [runtime] llvm>=0: not found
   [runtime] clang>=0: not found
   [runtime] lld>=0: not found
...
=> elftoolchain-0.7.1_svn20220506-r0: building [makefile] (dependency of base-cbuild) for x86_64...
   [host] bsdm4: not found
   [host] byacc: not found
   [host] flex: not found
   [target] libarchive-devel: not found
   [target] musl-bsd-headers: not found
   [runtime] libelf=0.7.1_svn20220506-r0: subpackage (ignored)
=> cbuild: removing autodeps...
=> bsdm4-0.99.1-r0: building [makefile] (dependency of elftoolchain) for x86_64...
   [host] byacc: not found
=> cbuild: removing autodeps...
=> byacc-20220128-r0: building [gnu_configure] (dependency of bsdm4) for x86_64...
=> byacc-20220128-r0: running do_fetch hook: 000_sources...
=> byacc-20220128-r0: running do_extract hook: 000_sources...
=> byacc-20220128-r0: running init_patch hook: 000_env_pkg_config...
=> byacc-20220128-r0: running do_patch hook: 000_patches...
=> byacc-20220128-r0: running pre_configure hook: 000_script_wrapper...
=> byacc-20220128-r0: running pre_configure hook: 001_prepare_users...
=> byacc-20220128-r0: running do_configure...
checking build system type... x86_64-chimera-linux-musl
checking host system type... x86_64-chimera-linux-musl
checking target system type... x86_64-chimera-linux-musl
Configuring for linux-musl
checking for x86_64-chimera-linux-musl-gcc... clang
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for executable suffix... 
checking for object suffix... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking version of clang... 14.0.1
checking if this is really Intel C compiler... no
checking if this is really Clang C compiler... yes
checking version of clang... 14.0.1
checking if option -Qunused-arguments works... yes
checking if option -Wno-error=implicit-function-declaration works... yes
checking for clang option to accept ANSI C... none needed
checking $CFLAGS variable... broken
configure: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options
checking $CC variable... ok
checking whether bmake sets ${MAKE}... yes
checking for a BSD compatible install... /usr/bin/install -c
checking if filesystem supports mixed-case filenames... yes
checking for exctags... no
checking for ctags... no
checking for exetags... no
checking for etags... no
checking for ctags... no
checking for etags... no
checking for mawk... no
checking for gawk... no
checking for nawk... no
checking for awk... awk
checking for lint... no
checking for cppcheck... no
checking for splint... no
checking if the POSIX test-macros are already defined... no
checking if this is the GNU C library... no
checking if _XOPEN_SOURCE really is set... yes
checking for ggrep... no
checking for grep... grep
checking for egrep... grep -E
checking how to run the C preprocessor... clang-cpp
checking for fcntl.h... yes
checking for unistd.h... yes
checking for working mkstemp... yes
checking for unistd.h... (cached) yes
checking for getopt.h... yes
checking for header declaring getopt variables... unistd.h
checking for getopt... yes
checking for vsnprintf... yes
checking for maximum table size... default
checking if backtracking extension is wanted... 
checking for fgrep... grep -F
checking if you want to use C11 _Noreturn feature... no
checking if you want to turn on gcc warnings... no
configure: checking for clang __attribute__ directives...
... scanf
... printf
... unused
... noreturn
checking if you want to see long compiling messages... yes
checking if you want to use dmalloc for testing... no
checking if you want to use dbmalloc for testing... no
checking if you want to use valgrind for testing... no
checking if you want to perform memory-leak testing... no
checking for groff... no
checking for nroff... no
checking for mandoc... no
checking for tbl... cat
checking for man2html... no
checking for program to convert manpage to html... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... (cached) yes
checking for mode_t... yes
configure: creating ./config.status
config.status: creating makefile
cp: /tmp/csABGiEA/out: Cross-device link
config.status: creating config.h
=> byacc-20220128-r0: running do_build...
bmake: bmake: don't know how to make yacc.1. Stop

bmake: stopped in /builddir/byacc-20220128/build
=> A failure has occurred!
Traceback (most recent call last):
  File "/cports/src/runner.py", line 1202, in fire
    case "bootstrap": bootstrap(cmd)
  File "/cports/src/runner.py", line 429, in bootstrap
    do_pkg("pkg", "main/base-cbuild", False, False, stage = 1)
  File "/cports/src/runner.py", line 930, in do_pkg
    build.build(
  File "/cports/src/cbuild/core/build.py", line 57, in build
    if dependencies.install(
  File "/cports/src/cbuild/core/dependencies.py", line 418, in install
    build.build(
  File "/cports/src/cbuild/core/build.py", line 57, in build
    if dependencies.install(
  File "/cports/src/cbuild/core/dependencies.py", line 381, in install
    build.build(
  File "/cports/src/cbuild/core/build.py", line 57, in build
    if dependencies.install(
  File "/cports/src/cbuild/core/dependencies.py", line 381, in install
    build.build(
  File "/cports/src/cbuild/core/build.py", line 100, in build
    buildm.invoke(pkg, step)
  File "/cports/src/cbuild/step/build.py", line 14, in invoke
    pkg.run_step("build", optional = True)
  File "/cports/src/cbuild/core/template.py", line 1068, in run_step
    if not run_pkg_func(self, "do_" + stepn) and not optional:
  File "/cports/src/cbuild/core/template.py", line 164, in run_pkg_func
    func(pkg)
  File "/cports/src/cbuild/build_style/gnu_configure.py", line 8, in do_build
    self.make.build()
  File "/cports/src/cbuild/util/make.py", line 80, in build
    return self._invoke(
  File "/cports/src/cbuild/util/make.py", line 63, in _invoke
    return self.template.do(
  File "/cports/src/cbuild/core/template.py", line 1046, in do
    return chroot.enter(
  File "/cports/src/cbuild/core/chroot.py", line 437, in enter
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bwrap', '--unshare-all', '--hostname', 'cbuild', '--ro-bind', PosixPath('/cports/bldroot-stage0'), '/', '--bind', PosixPath('/cports/bldroot-stage0/builddir'), '/builddir', '--ro-bind', PosixPath('/cports/bldroot-stage0/destdir'), '/destdir', '--ro-bind', PosixPath('/cports/sources'), '/sources', '--dev', '/dev', '--proc', '/proc', '--tmpfs', '/tmp', '--tmpfs', '/var/tmp', '--new-session', '--die-with-parent', '--bind', PosixPath('/cports/cbuild_cache'), '/cbuild_cache', '--uid', '1337', '--gid', '1337', '--chdir', PosixPath('/builddir/byacc-20220128/build'), 'bmake', '-j3']' returned non-zero exit status 2.
Bootstrap failed!

xz conflicts with bsdgzip

some packaging need xz, that can't be installed within "build jail" : conflict with bsdgzip:

[cports.git]$ ./cbuild.py zap && ./cbuild.py binary-bootstrap > /dev/null
ERROR: 194 errors updating directory permissions

[cports.git]$ ./cbuild.py chroot
OK: 156 distinct packages available
=> cbuild: reconfiguring base...
Clearing symlinks in /etc/ssl/certs...
done.
Updating certificates in /etc/ssl/certs...
     137 added,        0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

/tmp$ apk add xz
(1/1) Installing xz (5.2.5-r0)
ERROR: xz-5.2.5-r0: trying to overwrite usr/bin/xzdiff owned by bsdgzip-0.99.2-r0.
ERROR: xz-5.2.5-r0: trying to overwrite usr/share/man/man1/xzdiff.1 owned by bsdgzip-0.99.2-r0.
1 error; 348 MiB in 61 packages

stage0: fails to build zlib

using rev a135beb ("main/cmake: update to 3.21.1, lint")

zlib is the first package containing .pc file on stage0 building path.
not sure how to patch correctly if bootstraping: just skip pc file scanning ?

output:

...
=> zlib-1.2.11-r0: running post_install hook: 99_check_suid...
=> zlib-devel-1.2.11-r0: running pre_pkg hook: 03_remove_empty_dirs...
=> zlib-devel-1.2.11-r0: running pre_pkg hook: 04_generate_runtime_deps...
=> zlib-devel-1.2.11-r0: failed scanning .pc files (missing pkgconf?)
=> A failure has occured!
Traceback (most recent call last):
  File "/cports/./cbuild", line 481, in <module>
    case "bootstrap": bootstrap(cmd)
  File "/cports/./cbuild", line 334, in bootstrap
    build.build(tgt, rp, {}, opt_signkey)
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 414, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 403, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 403, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 112, in build
    prepkg.invoke(sp)
  File "/cports/src/cbuild/step/prepkg.py", line 10, in invoke
    template.call_pkg_hooks(pkg, "pre_pkg")
  File "/cports/src/cbuild/core/template.py", line 166, in call_pkg_hooks
    run_pkg_func(pkg, f[0], f"{stepn}_{f[1]}", f"{stepn} hook: {f[1]}")
  File "/cports/src/cbuild/core/template.py", line 161, in run_pkg_func
    func(pkg)
  File "/cports/src/cbuild/hooks/pre_pkg/04_generate_runtime_deps.py", line 250, in invoke
    _scan_pc(pkg)
  File "/cports/src/cbuild/hooks/pre_pkg/04_generate_runtime_deps.py", line 145, in _scan_pc
    scan_pc(f)
  File "/cports/src/cbuild/hooks/pre_pkg/04_generate_runtime_deps.py", line 124, in scan_pc
    pkg.error("failed scanning .pc files (missing pkgconf?)")
  File "/cports/src/cbuild/core/template.py", line 185, in error
    raise PackageError()
cbuild.core.template.PackageError
Bootstrap failed!

cbuild: not found

strace --failed-only ./bootstrap.sh
/bootstrap-inner.sh: 23: ./cbuild: not found
ioctl(2, TIOCGWINSZ, 0x7fffaf77a600)    = -1 ENOTTY (Inappropriate ioctl for device)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=299, si_uid=0, si_status=127, si_utime=0, si_stime=0} ---
wait4(-1, 0x7fffaf779f50, WNOHANG, NULL) = -1 ECHILD (No child processes)
Bootstrap failed!

grub-install fails with grub-i386-pc : diskboot.img size is not 512 bytes

within a VM (started with external kernel and initramfs from now):

image

package content:

$ 2>/dev/null tar tzvf /build/chimera/packages/main/x86_64/grub-i386-pc-2.06-r0.apk | grep .img
-rw-r--r-- root/root       535 2021-12-10 23:33 usr/lib/grub/i386-pc/boot.img
-rw-r--r-- root/root       535 2021-12-10 23:33 usr/lib/grub/i386-pc/boot_hybrid.img
-rw-r--r-- root/root      2071 2021-12-10 23:33 usr/lib/grub/i386-pc/cdboot.img
-rw-r--r-- root/root       535 2021-12-10 23:33 usr/lib/grub/i386-pc/diskboot.img
-rwxr-xr-x root/root     35092 2021-12-10 23:33 usr/lib/grub/i386-pc/kernel.img
-rw-r--r-- root/root      1047 2021-12-10 23:33 usr/lib/grub/i386-pc/lnxboot.img
-rw-r--r-- root/root      3399 2021-12-10 23:33 usr/lib/grub/i386-pc/lzma_decompress.img
-rw-r--r-- root/root      1047 2021-12-10 23:33 usr/lib/grub/i386-pc/pxeboot.img

crossbuild is broken: missing target arch to clang ?

trying to build zlib for aarch64 on (native) x86_64:

$ rm -rf /build/chimera/masterdir && ./cbuild.py binary-bootstrap && ./cbuild.py -a aarch64 pkg zlib

output:

...
=> cbuild: updating software in /build/chimera/masterdir masterdir...
=> cbuild: removing autodeps...
WARNING: Ignoring /binpkgs/nonfree: No such file or directory
WARNING: Ignoring /binpkgs/debug: No such file or directory
OK: 348 MiB in 60 packages
=> cbuild: removing autodeps...
=> base-cross-0.1-r0: found (base-cross-0.1-r0)
=> zlib-1.2.11-r0: installing cross toolchain for aarch64...
=> zlib-1.2.11-r0: setting up sysroot for aarch64...
=> zlib-1.2.11-r0: updating virtual provider for aarch64...
=> zlib-1.2.11-r0: building [configure] for x86_64...
   [runtime] zlib=1.2.11-r0: subpackage (ignored)
=> zlib-1.2.11-r0: running do_fetch hook: 00_distfiles...
=> zlib-1.2.11-r0: running do_extract hook: 00_distfiles...
=> zlib-1.2.11-r0: running init_patch hook: 00_env_pkg_config...
=> zlib-1.2.11-r0: running do_patch hook: 00_patches...
=> zlib-1.2.11-r0: patching: makefile_ranlib_syntax.patch
=> zlib-1.2.11-r0: running pre_configure hook: 02_script_wrapper...
=> zlib-1.2.11-r0: running do_configure...
Compiler error reporting is too harsh for /builddir/zlib-1.2.11/configure (perhaps remove -Werror).
** /builddir/zlib-1.2.11/configure aborting.
=> A failure has occured!
Traceback (most recent call last):
  File "/home/yopito/chimera/cports.git/./cbuild.py", line 390, in <module>
    ({
  File "/home/yopito/chimera/cports.git/./cbuild.py", line 381, in do_pkg
    build.build(tgt, rp, {}, opt_signkey)
  File "/home/yopito/chimera/cports.git/cbuild/core/build.py", line 42, in build
    configure.invoke(pkg, step)
  File "/home/yopito/chimera/cports.git/cbuild/step/configure.py", line 15, in invoke
    pkg.run_step("configure", optional = True)
  File "/home/yopito/chimera/cports.git/cbuild/core/template.py", line 648, in run_step
    if not run_pkg_func(self, "do_" + stepn) and not optional:
  File "/home/yopito/chimera/cports.git/cbuild/core/template.py", line 159, in run_pkg_func
    func(pkg)
  File "/home/yopito/chimera/cports.git/srcpkgs/zlib/template.py", line 15, in do_configure
    self.do(self.chroot_wrksrc / "configure", [
  File "/home/yopito/chimera/cports.git/cbuild/core/template.py", line 629, in do
    return chroot.enter(
  File "/home/yopito/chimera/cports.git/cbuild/core/chroot.py", line 419, in enter
    return subprocess.run(
  File "/usr/lib/python3.9/subprocess.py", line 528, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bwrap', '--ro-bind', '/build/chimera/masterdir', '/', '--bind', '/build/chimera/masterdir/builddir', '/builddir', '--bind', '/build/chimera/masterdir/destdir', '/destdir', '--ro-bind', '/build/chimera/hostdir/sources', '/sources', '--dev', '/dev', '--proc', '/proc', '--tmpfs', '/tmp', '--bind', '/build/chimera/hostdir/ccache', '/ccache', '--unshare-all', '--chdir', '/builddir/zlib-1.2.11', '/builddir/zlib-1.2.11/configure', '--prefix=/usr', '--shared']' returned non-zero exit status 1.

more details in configure.log:

$ cat /build/chimera/masterdir/builddir/zlib-1.2.11/configure.log
--------------------
/builddir/zlib-1.2.11/configure --prefix=/usr --shared

=== ztest2.c ===
extern int getchar();
int hello() {return getchar();}
===
clang -c ztest2.c
... using gcc

Checking for obsessive-compulsive compiler options...
=== ztest2.c ===
int foo() { return 0; }
===
clang -c -D_FORTIFY_SOURCE=2 -fstack-protector-strong -march=armv8-a --sysroot /usr/aarch64-linux-musl ztest2.c
error: unknown target CPU 'armv8-a'
note: valid target CPU values are: nocona, core2, penryn, bonnell, atom, silvermont, slm, goldmont, goldmont-plus, tremont, nehalem, corei7, westmere, sandybridge, corei7-avx, ivybridge, core-avx-i, haswell, core-avx2, broadwell, skylake, skylake-avx512, skx, cascadelake, cooperlake, cannonlake, icelake-client, icelake-server, tigerlake, sapphirerapids, alderlake, knl, knm, k8, athlon64, athlon-fx, opteron, k8-sse3, athlon64-sse3, opteron-sse3, amdfam10, barcelona, btver1, btver2, bdver1, bdver2, bdver3, bdver4, znver1, znver2, znver3, x86-64, x86-64-v2, x86-64-v3, x86-64-v4
(exit code 1)
Compiler error reporting is too harsh for /builddir/zlib-1.2.11/configure (perhaps remove -Werror).
** /builddir/zlib-1.2.11/configure aborting.
--------------------

packages bsdgrep and zstd conflict about zstdgrep

can't use both bsdgrep and zstd packages: conflict about /usr/binzstdgrep and usr/share/man/man1/zstdgrep.1

Example on building (private) automake package:

...
=> automake-1.16.4-r0: installing host dependencies: gmake, perl, autoconf, texinfo, cscope, help2man, gettext-devel, xz, zstd
>> stderr:
ERROR: zstd-1.5.0-r0: trying to overwrite usr/bin/zstdgrep owned by bsdgrep-1.0.4-r0.
ERROR: zstd-1.5.0-r0: trying to overwrite usr/share/man/man1/zstdgrep.1 owned by bsdgrep-1.0.4-r0.
=> automake-1.16.4-r0: failed to install dependencies

main/pkgconf: packaging fails on stage1

using rev a884684:

...
=> pkgconf-1.8.0-r0: running post_install...
=> libpkgconf-1.8.0-r0: running pkg_install...
=> libpkgconf-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-1.8.0/usr/lib/libpkgconf.so.3 -> /cports/bldroot-stage0/destdir/libpkgconf-1.8.0
=> libpkgconf-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-1.8.0/usr/lib/libpkgconf.so.3.0.0 -> /cports/bldroot-stage0/destdir/libpkgconf-1.8.0
=> libpkgconf-1.8.0-r0: running post_install hook: 000_handle_modes...
=> libpkgconf-1.8.0-r0: running post_install hook: 001_hardlinks...
=> libpkgconf-1.8.0-r0: detecting hardlinks
=> libpkgconf-1.8.0-r0: running post_install hook: 002_uncompress_manpages...
=> libpkgconf-1.8.0-r0: running post_install hook: 003_remove_misc...
=> libpkgconf-1.8.0-r0: running post_install hook: 004_remove_libtool_archives...
=> libpkgconf-1.8.0-r0: running post_install hook: 005_remove_perl_files...
=> libpkgconf-1.8.0-r0: running post_install hook: 006_remove_python_bytecode...
=> libpkgconf-1.8.0-r0: running post_install hook: 007_strip_debug...
   Stripped library: usr/lib/libpkgconf.so.3.0.0
=> libpkgconf-1.8.0-r0: running post_install hook: 008_rename_python_bindings...
=> libpkgconf-1.8.0-r0: running post_install hook: 009_remove_pkgconf_sysroot...
=> libpkgconf-1.8.0-r0: running post_install hook: 099_check_suid...
=> libpkgconf-1.8.0-r0: running post_install hook: 100_rewrite_python_shebang...
=> libpkgconf-1.8.0-r0: running post_install hook: 199_remove_empty_dirs...
=> libpkgconf-1.8.0-r0: running post_install hook: 200_split_autopkgs...
=> libpkgconf-1.8.0-r0: running post_install hook: 999_lint_devel...
=> pkgconf-devel-1.8.0-r0: running pkg_install...
=> pkgconf-devel-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-1.8.0/usr/include -> /cports/bldroot-stage0/destdir/pkgconf-devel-1.8.0
=> pkgconf-devel-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-1.8.0/usr/lib/pkgconfig -> /cports/bldroot-stage0/destdir/pkgconf-devel-1.8.0
=> pkgconf-devel-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-1.8.0/usr/lib/libpkgconf.so -> /cports/bldroot-stage0/destdir/pkgconf-devel-1.8.0
=> pkgconf-devel-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-1.8.0/usr/lib/libpkgconf.a -> /cports/bldroot-stage0/destdir/pkgconf-devel-1.8.0
=> pkgconf-devel-1.8.0-r0: running post_install hook: 000_handle_modes...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 001_hardlinks...
=> pkgconf-devel-1.8.0-r0: detecting hardlinks
=> pkgconf-devel-1.8.0-r0: running post_install hook: 002_uncompress_manpages...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 003_remove_misc...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 004_remove_libtool_archives...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 005_remove_perl_files...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 006_remove_python_bytecode...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 007_strip_debug...
   Stripped static library: usr/lib/libpkgconf.a
=> pkgconf-devel-1.8.0-r0: running post_install hook: 008_rename_python_bindings...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 009_remove_pkgconf_sysroot...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 099_check_suid...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 100_rewrite_python_shebang...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 199_remove_empty_dirs...
=> pkgconf-devel-1.8.0-r0: running post_install hook: 200_split_autopkgs...
=> pkgconf-devel-static-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-devel-1.8.0/usr/lib/libpkgconf.a -> /cports/bldroot-stage0/destdir/pkgconf-devel-static-1.8.0
=> pkgconf-devel-1.8.0-r0: running post_install hook: 999_lint_devel...
=> pkgconf-1.8.0-r0: running post_install hook: 000_handle_modes...
=> pkgconf-1.8.0-r0: running post_install hook: 001_hardlinks...
=> pkgconf-1.8.0-r0: detecting hardlinks
=> pkgconf-1.8.0-r0: running post_install hook: 002_uncompress_manpages...
=> pkgconf-1.8.0-r0: running post_install hook: 003_remove_misc...
=> pkgconf-1.8.0-r0: running post_install hook: 004_remove_libtool_archives...
=> pkgconf-1.8.0-r0: running post_install hook: 005_remove_perl_files...
=> pkgconf-1.8.0-r0: running post_install hook: 006_remove_python_bytecode...
=> pkgconf-1.8.0-r0: running post_install hook: 007_strip_debug...
   Stripped position-independent executable: usr/bin/pkgconf
=> pkgconf-1.8.0-r0: running post_install hook: 008_rename_python_bindings...
=> pkgconf-1.8.0-r0: running post_install hook: 009_remove_pkgconf_sysroot...
=> pkgconf-1.8.0-r0: running post_install hook: 099_check_suid...
=> pkgconf-1.8.0-r0: running post_install hook: 100_rewrite_python_shebang...
=> pkgconf-1.8.0-r0: running post_install hook: 199_remove_empty_dirs...
=> WARNING: pkgconf-1.8.0-r0: removed empty directory: usr/lib
=> pkgconf-1.8.0-r0: running post_install hook: 200_split_autopkgs...
=> pkgconf-doc-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-1.8.0/usr/share/doc -> /cports/bldroot-stage0/destdir/pkgconf-doc-1.8.0
=> pkgconf-doc-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-1.8.0/usr/share/licenses -> /cports/bldroot-stage0/destdir/pkgconf-doc-1.8.0
=> pkgconf-man-1.8.0-r0: moving: /cports/bldroot-stage0/destdir/pkgconf-1.8.0/usr/share/man -> /cports/bldroot-stage0/destdir/pkgconf-man-1.8.0
=> pkgconf-1.8.0-r0: running post_install hook: 999_lint_devel...
=> WARNING: pkgconf-1.8.0-r0: usr/share/aclocal should be in the -devel package
=> WARNING: pkgconf-1.8.0-r0: *-config tools should be in the -devel package
=> libpkgconf-1.8.0-r0: running pre_pkg hook: 001_runtime_deps...
   SONAME: libc.so <-> musl
=> libpkgconf-1.8.0-r0: running pre_pkg hook: 002_cmd_provides...
=> libpkgconf-1.8.0-r0: running pre_pkg hook: 003_pc_provides...
=> libpkgconf-1.8.0-r0: running pre_pkg hook: 004_so_provides...
   SONAME libpkgconf.so.3 from usr/lib
=> libpkgconf-1.8.0-r0: running pre_pkg hook: 090_timestamps...
=> libpkgconf-1.8.0-r0: setting mtimes to Tue Dec 28 00:58:00 2021
=> libpkgconf-1.8.0-r0: running pre_pkg hook: 098_lint...
=> libpkgconf-1.8.0-r0: running pre_pkg hook: 099_scriptlets...
=> libpkgconf-1.8.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> pkgconf-devel-1.8.0-r0: running pre_pkg hook: 001_runtime_deps...
   symlink: usr/lib/libpkgconf.so.3.0.0 <-> libpkgconf
=> pkgconf-devel-1.8.0-r0: running pre_pkg hook: 002_cmd_provides...
=> pkgconf-devel-1.8.0-r0: running pre_pkg hook: 003_pc_provides...
=> pkgconf-devel-1.8.0-r0: ERROR: failed scanning .pc files (missing pkgconf?)
Traceback (most recent call last):
  File "/cports/src/runner.py", line 909, in fire
    case "bootstrap": bootstrap(cmd)
  File "/cports/src/runner.py", line 391, in bootstrap
    do_pkg("pkg", "main/base-cbuild", False, False, stage = 1)
  File "/cports/src/runner.py", line 858, in do_pkg
    build.build(
  File "/cports/src/cbuild/core/build.py", line 53, in build
    dependencies.install(
  File "/cports/src/cbuild/core/dependencies.py", line 441, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 53, in build
    dependencies.install(
  File "/cports/src/cbuild/core/dependencies.py", line 428, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 53, in build
    dependencies.install(
  File "/cports/src/cbuild/core/dependencies.py", line 415, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 107, in build
    prepkg.invoke(sp)
  File "/cports/src/cbuild/step/prepkg.py", line 11, in invoke
    template.call_pkg_hooks(pkg, "pre_pkg")
  File "/cports/src/cbuild/core/template.py", line 165, in call_pkg_hooks
    run_pkg_func(pkg, f[0], f"{stepn}_{f[1]}", f"{stepn} hook: {f[1]}")
  File "/cports/src/cbuild/core/template.py", line 160, in run_pkg_func
    func(pkg)
  File "/cports/src/cbuild/hooks/pre_pkg/003_pc_provides.py", line 65, in invoke
    scan_pc(f)
  File "/cports/src/cbuild/hooks/pre_pkg/003_pc_provides.py", line 46, in scan_pc
    pkg.error("failed scanning .pc files (missing pkgconf?)")
  File "/cports/src/cbuild/core/template.py", line 183, in error
    raise errors.PackageException(msg, end, self)
cbuild.core.errors.PackageException: failed scanning .pc files (missing pkgconf?)
Bootstrap failed!

for some reason, option "!scanpkgconf" is not propagated ?

python importlib.util not found

bootstraping stage0 with rev be5f469:

.... (install xbps packages)
m4-1.4.18_2: configuring ...
Registering info file: /usr/share/info/m4.info-1.gz... done.
Registering info file: /usr/share/info/m4.info.gz... done.
Registering info file: /usr/share/info/m4.info-2.gz... done.
m4-1.4.18_2: installed successfully.

53 downloaded, 53 installed, 0 updated, 53 configured, 0 removed.
=> cbuild: bootstrapping stage 0
=> A failure has occured!
Traceback (most recent call last):
  File "/cports/./cbuild", line 610, in <module>
    case "bootstrap": bootstrap(cmd)
  File "/cports/./cbuild", line 334, in bootstrap
    rp = template.read_pkg(
  File "/cports/src/cbuild/core/template.py", line 1593, in read_pkg
    modspec = importlib.util.spec_from_file_location(
AttributeError: module 'importlib' has no attribute 'util'
Bootstrap failed!

libunwind (llvm14) packaging fails on bootstrap stage0

using rev be3942b:

...
=> llvm-14.0.0-r0: running post_install hook: 000_handle_modes...
=> llvm-14.0.0-r0: running post_install hook: 001_hardlinks...
=> llvm-14.0.0-r0: detecting hardlinks
=> llvm-14.0.0-r0: running post_install hook: 002_uncompress_manpages...
=> llvm-14.0.0-r0: running post_install hook: 003_remove_misc...
=> llvm-14.0.0-r0: running post_install hook: 004_remove_libtool_archives...
=> llvm-14.0.0-r0: running post_install hook: 005_remove_perl_files...
=> llvm-14.0.0-r0: running post_install hook: 007_strip_debug...
...
   Stripped position-independent executable: usr/bin/llvm-tli-checker
=> llvm-14.0.0-r0: running post_install hook: 008_rename_python_bindings...
=> llvm-14.0.0-r0: running post_install hook: 009_remove_pkgconf_sysroot...
=> llvm-14.0.0-r0: running post_install hook: 099_check_suid...
=> llvm-14.0.0-r0: running post_install hook: 100_rewrite_python_shebang...
=> llvm-14.0.0-r0: running post_install hook: 200_split_autopkgs...
=> llvm-man-14.0.0-r0: moving: /cports/bldroot-stage0/destdir/llvm-14.0.0/usr/share/man -> /cports/bldroot-stage0/destdir/llvm-man-14.0.0
=> llvm-14.0.0-r0: running post_install hook: 998_remove_empty_dirs...
=> WARNING: llvm-14.0.0-r0: removed empty directory: usr/share
=> WARNING: llvm-14.0.0-r0: removed empty directory: usr/lib
=> WARNING: llvm-14.0.0-r0: removed empty directory: usr/libexec
=> llvm-14.0.0-r0: running post_install hook: 999_lint_devel...
=> WARNING: llvm-14.0.0-r0: *-config tools should be in the -devel package
=> clang-tools-extra-static-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
=> clang-tools-extra-static-14.0.0-r0: running pre_pkg hook: 002_cmd_provides...
=> clang-tools-extra-static-14.0.0-r0: running pre_pkg hook: 003_pc_provides...
=> clang-tools-extra-static-14.0.0-r0: running pre_pkg hook: 004_so_provides...
=> clang-tools-extra-static-14.0.0-r0: running pre_pkg hook: 090_timestamps...
=> clang-tools-extra-static-14.0.0-r0: setting mtimes to Sat Apr  9 03:22:07 2022
=> clang-tools-extra-static-14.0.0-r0: running pre_pkg hook: 098_lint...
=> clang-tools-extra-static-14.0.0-r0: running pre_pkg hook: 099_scriptlets...
=> clang-tools-extra-static-14.0.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> clang-tools-extra-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
   SONAME: libLLVM-14.so <-> libllvm
   SONAME: libc++.so.1 <-> libcxx
   SONAME: libc.so <-> musl
   SONAME: libclang-cpp.so.14 <-> libclang-cpp
=> clang-tools-extra-14.0.0-r0: running pre_pkg hook: 002_cmd_provides...
=> clang-tools-extra-14.0.0-r0: running pre_pkg hook: 003_pc_provides...
=> clang-tools-extra-14.0.0-r0: running pre_pkg hook: 004_so_provides...
=> clang-tools-extra-14.0.0-r0: running pre_pkg hook: 090_timestamps...
=> clang-tools-extra-14.0.0-r0: setting mtimes to Sat Apr  9 03:22:07 2022
=> clang-tools-extra-14.0.0-r0: running pre_pkg hook: 098_lint...
=> clang-tools-extra-14.0.0-r0: running pre_pkg hook: 099_scriptlets...
=> clang-tools-extra-14.0.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> clang-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
   SONAME: libclang-cpp.so.14 <-> libclang-cpp
   SONAME: libLLVM-14.so <-> libllvm
   SONAME: libc++.so.1 <-> libcxx
   SONAME: libc.so <-> musl
   SONAME: libclang.so.13 <-> libclang
=> clang-14.0.0-r0: running pre_pkg hook: 002_cmd_provides...
=> clang-14.0.0-r0: running pre_pkg hook: 003_pc_provides...
=> clang-14.0.0-r0: running pre_pkg hook: 004_so_provides...
=> clang-14.0.0-r0: running pre_pkg hook: 090_timestamps...
=> clang-14.0.0-r0: setting mtimes to Sat Apr  9 03:22:07 2022
=> clang-14.0.0-r0: running pre_pkg hook: 098_lint...
=> clang-14.0.0-r0: running pre_pkg hook: 099_scriptlets...
=> clang-14.0.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> clang-rt-devel-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
=> clang-rt-devel-14.0.0-r0: running pre_pkg hook: 002_cmd_provides...
=> clang-rt-devel-14.0.0-r0: running pre_pkg hook: 003_pc_provides...
=> clang-rt-devel-14.0.0-r0: running pre_pkg hook: 004_so_provides...
=> clang-rt-devel-14.0.0-r0: running pre_pkg hook: 090_timestamps...
=> clang-rt-devel-14.0.0-r0: setting mtimes to Sat Apr  9 03:22:07 2022
=> clang-rt-devel-14.0.0-r0: running pre_pkg hook: 098_lint...
=> clang-rt-devel-14.0.0-r0: running pre_pkg hook: 099_scriptlets...
=> clang-rt-devel-14.0.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> clang-devel-static-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
=> clang-devel-static-14.0.0-r0: running pre_pkg hook: 002_cmd_provides...
=> clang-devel-static-14.0.0-r0: running pre_pkg hook: 003_pc_provides...
=> clang-devel-static-14.0.0-r0: running pre_pkg hook: 004_so_provides...
=> clang-devel-static-14.0.0-r0: running pre_pkg hook: 090_timestamps...
=> clang-devel-static-14.0.0-r0: setting mtimes to Sat Apr  9 03:22:07 2022
=> clang-devel-static-14.0.0-r0: running pre_pkg hook: 098_lint...
=> clang-devel-static-14.0.0-r0: running pre_pkg hook: 099_scriptlets...
=> clang-devel-static-14.0.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> clang-devel-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
   symlink: usr/lib/libclang-cpp.so.14 <-> libclang-cpp
   symlink: usr/lib/libclang.so.13 <-> libclang
=> clang-devel-14.0.0-r0: running pre_pkg hook: 002_cmd_provides...
=> clang-devel-14.0.0-r0: running pre_pkg hook: 003_pc_provides...
=> clang-devel-14.0.0-r0: running pre_pkg hook: 004_so_provides...
=> clang-devel-14.0.0-r0: running pre_pkg hook: 090_timestamps...
=> clang-devel-14.0.0-r0: setting mtimes to Sat Apr  9 03:22:07 2022
=> clang-devel-14.0.0-r0: running pre_pkg hook: 098_lint...
=> clang-devel-14.0.0-r0: running pre_pkg hook: 099_scriptlets...
=> clang-devel-14.0.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> clang-analyzer-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
=> clang-analyzer-14.0.0-r0: running pre_pkg hook: 002_cmd_provides...
=> clang-analyzer-14.0.0-r0: running pre_pkg hook: 003_pc_provides...
=> clang-analyzer-14.0.0-r0: running pre_pkg hook: 004_so_provides...
=> clang-analyzer-14.0.0-r0: running pre_pkg hook: 090_timestamps...
=> clang-analyzer-14.0.0-r0: setting mtimes to Sat Apr  9 03:22:07 2022
=> clang-analyzer-14.0.0-r0: running pre_pkg hook: 098_lint...
=> clang-analyzer-14.0.0-r0: running pre_pkg hook: 099_scriptlets...
=> clang-analyzer-14.0.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> libclang-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
   SONAME: libLLVM-14.so <-> libllvm
   SONAME: libc++.so.1 <-> libcxx
   SONAME: libc.so <-> musl
=> libclang-14.0.0-r0: running pre_pkg hook: 002_cmd_provides...
=> libclang-14.0.0-r0: running pre_pkg hook: 003_pc_provides...
=> libclang-14.0.0-r0: running pre_pkg hook: 004_so_provides...
   SONAME libclang.so.13 from usr/lib
=> libclang-14.0.0-r0: running pre_pkg hook: 090_timestamps...
=> libclang-14.0.0-r0: setting mtimes to Sat Apr  9 03:22:07 2022
=> libclang-14.0.0-r0: running pre_pkg hook: 098_lint...
=> libclang-14.0.0-r0: running pre_pkg hook: 099_scriptlets...
=> libclang-14.0.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> libclang-cpp-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
   SONAME: libLLVM-14.so <-> libllvm
   SONAME: libc++.so.1 <-> libcxx
   SONAME: libc.so <-> musl
=> libclang-cpp-14.0.0-r0: running pre_pkg hook: 002_cmd_provides...
=> libclang-cpp-14.0.0-r0: running pre_pkg hook: 003_pc_provides...
=> libclang-cpp-14.0.0-r0: running pre_pkg hook: 004_so_provides...
   SONAME libclang-cpp.so.14 from usr/lib
=> libclang-cpp-14.0.0-r0: running pre_pkg hook: 090_timestamps...
=> libclang-cpp-14.0.0-r0: setting mtimes to Sat Apr  9 03:22:07 2022
=> libclang-cpp-14.0.0-r0: running pre_pkg hook: 098_lint...
=> libclang-cpp-14.0.0-r0: running pre_pkg hook: 099_scriptlets...
=> libclang-cpp-14.0.0-r0: running pre_pkg hook: 999_collected_rdeps...
=> libunwind-14.0.0-r0: running pre_pkg hook: 001_runtime_deps...
   SONAME: libc.so <-> musl
=>    SONAME: libgcc_s.so.1 <-> UNKNOWN PACKAGE!

Stabilize core set

Right now the core package set is looking closer to what we have in mind, but it's not quite there yet. The base-files package needs reworking (right now it's very close to Void's) and maybe dependency reorg, template gardening, and so on.

triplet's profile is None on bootstrap

this make stage0 fails on kernel-libc-headers (see output below).

as configured in cbuild/core/profile;py line 70

output for kernel-libc-headers on stage0:

...
=> cbuild: bootstrapping stage 0
=> base-chroot-0.66-r0: building for x86_64...
...
=> kernel-libc-headers-5.10.4-r0: building (dependency of musl) for x86_64...
=> kernel-libc-headers-5.10.4-r0: running init_patch hook: 00_env_pkg_config...
=> kernel-libc-headers-5.10.4-r0: running do_build...
=> A failure has occured!
Traceback (most recent call last):
  File "/cports/cbuild.py", line 390, in <module>
    ({
  File "/cports/cbuild.py", line 266, in bootstrap
    build.build(tgt, rp, {}, opt_signkey)
  File "/cports/cbuild/core/build.py", line 30, in build
    autodep = dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/cbuild/core/dependencies.py", line 420, in install
    build.build(step, template.read_pkg(
  File "/cports/cbuild/core/build.py", line 30, in build
    autodep = dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/cbuild/core/dependencies.py", line 420, in install
    build.build(step, template.read_pkg(
  File "/cports/cbuild/core/build.py", line 45, in build
    buildm.invoke(pkg, step)
  File "/cports/cbuild/step/build.py", line 13, in invoke
    pkg.run_step("build", optional = True)
  File "/cports/cbuild/core/template.py", line 636, in run_step
    if not run_pkg_func(self, "do_" + stepn) and not optional:
  File "/cports/cbuild/core/template.py", line 159, in run_pkg_func
    func(pkg)
  File "/cports/srcpkgs/kernel-libc-headers/template.py", line 40, in do_build
    "CC=clang -target " + self.build_profile.short_triplet,
TypeError: can only concatenate str (not "NoneType") to str

Cross compiling

We need to be able to support cross compiling. This includes:

  • integration into cbuild
  • crosstoolchain packages (clang is a multi-toolchain but we still need cross rt/libc/etc)
  • add a sanitizing wrapper for C/C++ compiler so it does not attempt to use things outside its sysroot
  • add sanitizing hooks to eliminate sysroot stuff in generated files (e.g. pkg-config and so on)
  • ...

build clang-rt-crt-cross-12.0.0-r0 package : invalid patch ?

see output below.
have to investigate.
Another point is that it fails into interactive input ? ("File to patch:" is a prompt)

$ ./cbuild.py clean
$ ./cbuild.py pkg main/base-cross
OK: 113 distinct packages available
=> cbuild: updating software in /build/chimera/bldroot container...
=> cbuild: removing autodeps...
OK: 342 MiB in 60 packages
=> base-cross-0.1-r0: building for x86_64...
   [runtime] clang-rt-cross>=0: not found
   [runtime] musl-cross>=0: not found
   [runtime] libcxx-cross>=0: not found
   [runtime] base-cross-aarch64=0.1-r0: subpackage (ignored)
   [runtime] base-cross-ppc64le=0.1-r0: subpackage (ignored)
   [runtime] base-cross-ppc64=0.1-r0: subpackage (ignored)
   [runtime] base-cross-riscv64=0.1-r0: subpackage (ignored)
   [runtime] clang-rt-cross-aarch64>=0: not found
   [runtime] musl-cross-aarch64>=0: not found
   [runtime] libcxx-cross-aarch64>=0: not found
   [runtime] kernel-libc-headers-cross-aarch64>=0: not found
   [runtime] clang-rt-cross-ppc64le>=0: not found
   [runtime] musl-cross-ppc64le>=0: not found
   [runtime] libcxx-cross-ppc64le>=0: not found
   [runtime] kernel-libc-headers-cross-ppc64le>=0: not found
   [runtime] clang-rt-cross-ppc64>=0: not found
   [runtime] musl-cross-ppc64>=0: not found
   [runtime] libcxx-cross-ppc64>=0: not found
   [runtime] kernel-libc-headers-cross-ppc64>=0: not found
   [runtime] clang-rt-cross-riscv64>=0: not found
   [runtime] musl-cross-riscv64>=0: not found
   [runtime] libcxx-cross-riscv64>=0: not found
   [runtime] kernel-libc-headers-cross-riscv64>=0: not found
=> clang-rt-cross-12.0.0-r0: building [cmake] (dependency of base-cross) for x86_64...
   [host] cmake: found (3.20.3-r0)
   [host] gmake: found (4.3-r0)
   [host] python: found (3.9.5-r0)
   [host] llvm-devel: found (12.0.0-r0)
   [host] clang-tools-extra: found (12.0.0-r0)
   [target] zlib-devel: found (1.2.11-r0)
   [target] libffi-devel: found (3.3-r0)
   [target] clang-rt-crt-cross: not found
   [target] libcxx-cross: not found
   [target] libexecinfo-cross: not found
   [target] kernel-libc-headers-cross: not found
   [runtime] clang-rt-crt-cross>=0: not found
   [runtime] libcxx-cross>=0: not found
   [runtime] libexecinfo-cross>=0: not found
   [runtime] clang-rt-cross-aarch64=12.0.0-r0: subpackage (ignored)
   [runtime] clang-rt-cross-ppc64le=12.0.0-r0: subpackage (ignored)
   [runtime] clang-rt-cross-ppc64=12.0.0-r0: subpackage (ignored)
   [runtime] clang-rt-cross-riscv64=12.0.0-r0: subpackage (ignored)
   [runtime] clang-rt-crt-cross-aarch64>=0: not found
   [runtime] libcxx-cross-aarch64>=0: not found
   [runtime] libexecinfo-cross-aarch64>=0: not found
   [runtime] clang-rt-crt-cross-ppc64le>=0: not found
   [runtime] libcxx-cross-ppc64le>=0: not found
   [runtime] libexecinfo-cross-ppc64le>=0: not found
   [runtime] clang-rt-crt-cross-ppc64>=0: not found
   [runtime] libcxx-cross-ppc64>=0: not found
   [runtime] libexecinfo-cross-ppc64>=0: not found
   [runtime] clang-rt-crt-cross-riscv64>=0: not found
   [runtime] libcxx-cross-riscv64>=0: not found
   [runtime] libexecinfo-cross-riscv64>=0: not found
=> clang-rt-crt-cross-12.0.0-r0: building [cmake] (dependency of clang-rt-cross) for x86_64...
   [host] cmake: found (3.20.3-r0)
   [host] gmake: found (4.3-r0)
   [host] python: found (3.9.5-r0)
   [host] llvm-devel: found (12.0.0-r0)
   [host] clang-tools-extra: found (12.0.0-r0)
   [target] zlib-devel: found (1.2.11-r0)
   [target] libffi-devel: found (3.3-r0)
   [runtime] clang-rt-crt-cross-aarch64=12.0.0-r0: subpackage (ignored)
   [runtime] clang-rt-crt-cross-ppc64le=12.0.0-r0: subpackage (ignored)
   [runtime] clang-rt-crt-cross-ppc64=12.0.0-r0: subpackage (ignored)
   [runtime] clang-rt-crt-cross-riscv64=12.0.0-r0: subpackage (ignored)
   [runtime] clang>=12.0.0: found (12.0.0-r0)
   [runtime] clang>=12.0.0: found (12.0.0-r0)
   [runtime] clang>=12.0.0: found (12.0.0-r0)
   [runtime] clang>=12.0.0: found (12.0.0-r0)
=> clang-rt-crt-cross-12.0.0-r0: installing host dependencies: cmake, gmake, python, llvm-devel, clang-tools-extra
=> clang-rt-crt-cross-12.0.0-r0: installing target dependencies: zlib-devel, libffi-devel
=> clang-rt-crt-cross-12.0.0-r0: running init_patch hook: 00_env_pkg_config...
=> clang-rt-crt-cross-12.0.0-r0: running do_patch hook: 00_patches...
=> clang-rt-crt-cross-12.0.0-r0: patching: crt-enable-ppc.patch
File to patch: ^C=> A failure has occured!
Traceback (most recent call last):
  File "/home/yopito/chimera/cports.git/./cbuild.py", line 461, in <module>
    ({
  File "/home/yopito/chimera/cports.git/./cbuild.py", line 449, in do_pkg
    build.build(
  File "/home/yopito/chimera/cports.git/cbuild/core/build.py", line 38, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/home/yopito/chimera/cports.git/cbuild/core/dependencies.py", line 414, in install
    build.build(step, template.read_pkg(
  File "/home/yopito/chimera/cports.git/cbuild/core/build.py", line 38, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/home/yopito/chimera/cports.git/cbuild/core/dependencies.py", line 403, in install
    build.build(step, template.read_pkg(
  File "/home/yopito/chimera/cports.git/cbuild/core/build.py", line 60, in build
    patch.invoke(pkg)
  File "/home/yopito/chimera/cports.git/cbuild/step/patch.py", line 15, in invoke
    pkg.run_step("patch", optional = True)
  File "/home/yopito/chimera/cports.git/cbuild/core/template.py", line 679, in run_step
    call_pkg_hooks(self, "do_" + stepn)
  File "/home/yopito/chimera/cports.git/cbuild/core/template.py", line 165, in call_pkg_hooks
    run_pkg_func(pkg, f[0], f"{stepn}_{f[1]}", f"{stepn} hook: {f[1]}")
  File "/home/yopito/chimera/cports.git/cbuild/core/template.py", line 160, in run_pkg_func
    func(pkg)
  File "/home/yopito/chimera/cports.git/cbuild/hooks/do_patch/00_patches.py", line 67, in invoke
    process_patch(pkg, p)
  File "/home/yopito/chimera/cports.git/cbuild/hooks/do_patch/00_patches.py", line 43, in process_patch
    chroot.enter(
  File "/home/yopito/chimera/cports.git/cbuild/core/chroot.py", line 426, in enter
    return subprocess.run(
  File "/usr/lib/python3.9/subprocess.py", line 507, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/usr/lib/python3.9/subprocess.py", line 1126, in communicate
    self.wait()
  File "/usr/lib/python3.9/subprocess.py", line 1189, in wait
    return self._wait(timeout=timeout)
  File "/usr/lib/python3.9/subprocess.py", line 1917, in _wait
    (pid, sts) = self._try_wait(0)
  File "/usr/lib/python3.9/subprocess.py", line 1875, in _try_wait
    (pid, sts) = os.waitpid(self.pid, wait_flags)
  File "/home/yopito/chimera/cports.git/./cbuild.py", line 28, in do_exit
    raise Exception("cbuild: interrupted!")
Exception: cbuild: interrupted!

Implement missing options

We will need at least the following:

  • support for custom config files passed on command line
  • fix up -f
  • ignore-dependencies mode
  • support for remote repositories
  • ignore-network mode
  • support for build options
  • support for alternative repository path
  • introspection options (and maybe an actual python API)
  • hostdir gardening options
  • explicit package signing

cbuild detect a cycle on crossbuild if host's counterpart is not already available

try to crossbuild file for ppc64 from x86_64. It fails because x64_64 file is not already available:

$ ./cbuild -a ppc64 pkg main/file
OK: 233 distinct packages available
=> cbuild: updating software in /build/chimera/bldroot container...
=> cbuild: removing autodeps...
OK: 396 MiB in 58 packages
=> base-cross-0.1-r0: found (base-cross-0.1-r0)
OK: 396 MiB in 58 packages
=> file-5.41-r0: installing cross toolchain for ppc64...
=> file-5.41-r0: setting up sysroot for ppc64...
=> file-5.41-r0: updating virtual provider for ppc64...
=> file-5.41-r0: building [gnu_configure] for ppc64...
   [host] pkgconf: found (1.8.0-r0)
   [host] file: not found
   [target] zlib-devel: found (1.2.11-r0)
   [runtime] zlib-devel>=0: found (1.2.11-r0)
=> file-5.41-r0: ERROR: build-time dependency cycle encountered for file (dependency of file)
Traceback (most recent call last):
  File "/home/yopito/chimera/cports.git/src/runner.py", line 894, in fire
    case "build" | "check" | "install" | "pkg": do_pkg(cmd)
  File "/home/yopito/chimera/cports.git/src/runner.py", line 828, in do_pkg
    build.build(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/build.py", line 53, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/home/yopito/chimera/cports.git/src/cbuild/core/dependencies.py", line 410, in install
    build.build(step, template.read_pkg(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/build.py", line 20, in build
    pkg.error(f"build-time dependency cycle encountered for {pkg.pkgname} (dependency of {pkg.origin.pkgname})")
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 182, in error
    raise errors.PackageException(msg, end, self)
cbuild.core.errors.PackageException: build-time dependency cycle encountered for file (dependency of file)

=> workaround: build file for x86_84 first, then crossbuild: in this case it's fine:

$ ./cbuild pkg file
.... (ok)
$ ./cbuild -a ppc64 pkg main/file
.... (ok)

I don't know if this is a specific case (host file is need by target file) or more generic like cbuild does not handle "cross" dependancies.

stage1: circular dependency between perl and gmake

using rev 0377753:

=> cbuild: bootstrapping stage 1
OK: 56 distinct packages available
=> base-chroot-0.1-r0: building [meta] for x86_64...
   [runtime] musl-devel>=0: not found
   [runtime] base-files>=0: not found
   [runtime] elftoolchain>=0: not found
   [runtime] llvm>=0: not found
   [runtime] clang>=0: not found
   [runtime] lld>=0: not found
   [runtime] bmake>=0: not found
   [runtime] bsdutils>=0: not found
   [runtime] dash>=0: not found
   [runtime] file>=0: not found
   [runtime] apk-tools>=0: not found
   [runtime] awk>=0: not found
   [runtime] ncurses>=0: not found
   [runtime] bsdgrep>=0: not found
   [runtime] bsdgzip>=0: not found
   [runtime] bsdpatch>=0: not found
   [runtime] bsdsed>=0: not found
   [runtime] bsdtar>=0: not found
   [runtime] bsddiff>=0: not found
   [runtime] chroot-util-linux>=0: not found
   [runtime] ccache>=0: not found
=> musl-1.2.2-r0: building [gnu_configure] (dependency of base-chroot) for x86_64...
   [host] gmake: not found
   [runtime] kernel-libc-headers>=0: not found
   [runtime] musl=1.2.2-r0: subpackage (ignored)
=> gmake-4.3-r0: building [gnu_configure] (dependency of musl) for x86_64...
   [host] perl: not found
=> perl-5.32.1-r0: building [gnu_configure] (dependency of gmake) for x86_64...
   [host] gmake: not found
=> perl-5.32.1-r0: [host] build loop detected: gmake <-> gmake
=> A failure has occured!
Traceback (most recent call last):
  File "/cports/./cbuild", line 481, in <module>
    case "bootstrap": bootstrap(cmd)
  File "/cports/./cbuild", line 350, in bootstrap
    do_pkg("pkg", "main/base-chroot", False, False)
  File "/cports/./cbuild", line 470, in do_pkg
    build.build(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 414, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 392, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 392, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 321, in install
    pkg.error(f"[host] build loop detected: {pkgn} <-> {origpkg}")
  File "/cports/src/cbuild/core/template.py", line 185, in error
    raise PackageError()
cbuild.core.template.PackageError
Bootstrap failed!

cant build cmake in stage 2

So I just cloned the git repo, generated the key and am trying to bootstrap, but it fails

[ 97%] Building CXX object Tests/CMakeLib/CMakeFiles/CMakeLibTests.dir/testRST.cxx.o
clang-14: error: unable to execute command: Killed
clang-14: error: linker command failed due to signal (use -v to see invocation)
--- bin/cmake ---
*** [bin/cmake] Error code 254

bmake[2]: stopped in /builddir/cmake-3.23.0
1 error

bmake[2]: stopped in /builddir/cmake-3.23.0
--- Source/CMakeFiles/cmake.dir/all ---
*** [Source/CMakeFiles/cmake.dir/all] Error code 2

bmake[1]: stopped in /builddir/cmake-3.23.0
--- Tests/CMakeLib/CMakeFiles/CMakeLibTests.dir/all ---
*** [Tests/CMakeLib/CMakeFiles/CMakeLibTests.dir/all] Error code 6

bmake[1]: stopped in /builddir/cmake-3.23.0
--- Tests/RunCMake/CMakeFiles/ctresalloc.dir/all ---
*** [Tests/RunCMake/CMakeFiles/ctresalloc.dir/all] Error code 6

bmake[1]: stopped in /builddir/cmake-3.23.0
--- Source/CursesDialog/CMakeFiles/ccmake.dir/all ---
*** [Source/CursesDialog/CMakeFiles/ccmake.dir/all] Error code 6

bmake[1]: stopped in /builddir/cmake-3.23.0
--- Source/CMakeFiles/cpack.dir/all ---
*** [Source/CMakeFiles/cpack.dir/all] Error code 6

bmake[1]: stopped in /builddir/cmake-3.23.0
--- Source/CMakeFiles/ctest.dir/all ---
*** [Source/CMakeFiles/ctest.dir/all] Error code 6

bmake[1]: stopped in /builddir/cmake-3.23.0
6 errors

bmake[1]: stopped in /builddir/cmake-3.23.0
*** [all] Error code 2

bmake: stopped in /builddir/cmake-3.23.0
1 error

bmake: stopped in /builddir/cmake-3.23.0
=> A failure has occurred!
Traceback (most recent call last):
  File "/home/leo/cports/src/runner.py", line 1154, in fire
    case "bootstrap": bootstrap(cmd)
  File "/home/leo/cports/src/runner.py", line 443, in bootstrap
    do_pkg("pkg", "main/base-cbuild", False, False, stage = 2)
  File "/home/leo/cports/src/runner.py", line 922, in do_pkg
    build.build(
  File "/home/leo/cports/src/cbuild/core/build.py", line 57, in build
    if dependencies.install(
  File "/home/leo/cports/src/cbuild/core/dependencies.py", line 418, in install
    build.build(
  File "/home/leo/cports/src/cbuild/core/build.py", line 57, in build
    if dependencies.install(
  File "/home/leo/cports/src/cbuild/core/dependencies.py", line 381, in install
    build.build(
  File "/home/leo/cports/src/cbuild/core/build.py", line 100, in build
    buildm.invoke(pkg, step)
  File "/home/leo/cports/src/cbuild/step/build.py", line 14, in invoke
    pkg.run_step("build", optional = True)
  File "/home/leo/cports/src/cbuild/core/template.py", line 1043, in run_step
    if not run_pkg_func(self, "do_" + stepn) and not optional:
  File "/home/leo/cports/src/cbuild/core/template.py", line 164, in run_pkg_func
    func(pkg)
  File "/home/leo/cports/src/cbuild/build_style/configure.py", line 10, in do_build
    self.make.build()
  File "/home/leo/cports/src/cbuild/util/make.py", line 80, in build
    return self._invoke(
  File "/home/leo/cports/src/cbuild/util/make.py", line 63, in _invoke
    return self.template.do(
  File "/home/leo/cports/src/cbuild/core/template.py", line 1021, in do
    return chroot.enter(
  File "/home/leo/cports/src/cbuild/core/chroot.py", line 437, in enter
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bwrap', '--unshare-all', '--hostname', 'cbuild', '--ro-bind', PosixPath('/home/leo/cports/bldroot-stage1'), '/', '--bind', PosixPath('/home/leo/cports/bldroot-stage1/builddir'), '/builddir', '--ro-bind', PosixPath('/home/leo/cports/bldroot-stage1/destdir'), '/destdir', '--ro-bind', PosixPath('/home/leo/cports/sources'), '/sources', '--dev', '/dev', '--proc', '/proc', '--tmpfs', '/tmp', '--tmpfs', '/var/tmp', '--new-session', '--die-with-parent', '--bind', PosixPath('/home/leo/cports/cbuild_cache'), '/cbuild_cache', '--uid', '1337', '--gid', '1337', '--chdir', PosixPath('/builddir/cmake-3.23.0'), 'bmake', '-j8']' returned non-zero exit status 2.

file timestamp in apk package is different from their build date

for instance, rebuilt main/ncurses on 2021-08-28 but files are timestamped as of 2021-08-26:

$ ls -l /build/chimera/hostdir/binpkgs/main/x86_64/ncurses-6.2-r0.apk
-rw-r--r-- 1 yopito yopito 180237 Aug 28 10:54 /build/chimera/hostdir/binpkgs/main/x86_64/ncurses-6.2-r0.apk

$ 2> /dev/null tar tzvf /build/chimera/hostdir/binpkgs/main/x86_64/ncurses-6.2-r0.apk | head
-rw-r--r-- root/root       256 2021-08-26 01:59 .SIGN.RSA.yopito-60e18006.rsa.pub
-rw-r--r-- root/root       504 2021-08-26 01:59 .PKGINFO
drwxr-xr-x root/root         0 2021-08-26 01:59 usr/
drwxr-xr-x root/root         0 2021-08-26 01:59 usr/bin/
lrwxrwxrwx root/root         0 2021-08-26 01:59 usr/bin/captoinfo -> tic
-rwxr-xr-x root/root      8248 2021-08-26 01:59 usr/bin/clear
-rwxr-xr-x root/root     71424 2021-08-26 01:59 usr/bin/infocmp
lrwxrwxrwx root/root         0 2021-08-26 01:59 usr/bin/infotocap -> tic
lrwxrwxrwx root/root         0 2021-08-26 01:59 usr/bin/reset -> tset
-rwxr-xr-x root/root     14776 2021-08-26 01:59 usr/bin/tabs

Installed file from this package via cbuild.py in a fresh masterdir show the same date than tar output (from my regular system):

$ ls -l /build/chimera/masterdir/usr/bin/tic
-rwxr-xr-x 1 yopito yopito 102568 Aug 26 01:59 /build/chimera/masterdir/usr/bin/tic

eudev is needed for VM's userland start (x86_64)

console output from x86_64:
image

This error disapeared once eudev package installed within VM and VM restarted:

(vm single) # apk add eudev
(vm single) # reboot

VM disk's image was populated thanks to the following commands:

$ # mount /dev/sda1 of VM disk image onto  /build/chimera/tmp/disk_mnt

$ sudo ~/chimera/bootstrap-chimera.git/chimera-bootstrap.py \
           -r /build/chimera/packages \
           -k etc/keys/yopito-60e18006.rsa.pub \
          -e neofetch /build/chimera/tmp/disk_mnt

So I think that eudev should be added as dep of main/base-full

main/opus: fails to build on x86_64

output:

OK: 936 distinct packages available
=> cbuild: updating software in /build/chimera/bldroot container...
=> cbuild: removing autodeps...
OK: 395 MiB in 58 packages
=> opus-1.3.1-r0: building [gnu_configure] for x86_64...
   [host] pkgconf: found (1.8.0-r0)
   [runtime] opus-devel=1.3.1-r0: subpackage (ignored)
=> opus-1.3.1-r0: installing host dependencies: pkgconf
=> opus-1.3.1-r0: running do_fetch hook: 00_sources...
=> opus-1.3.1-r0: running do_extract hook: 00_sources...
=> opus-1.3.1-r0: running init_patch hook: 00_env_pkg_config...
=> opus-1.3.1-r0: running do_patch hook: 00_patches...
=> opus-1.3.1-r0: running pre_configure hook: 02_script_wrapper...
=> opus-1.3.1-r0: running do_configure...
checking whether make supports nested variables... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /builddir/opus-1.3.1/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... yes
checking build system type... x86_64-chimera-linux-musl
checking host system type... x86_64-chimera-linux-musl
checking how to print strings... printf
checking for style of include used by make... GNU
checking for x86_64-chimera-linux-musl-gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking whether clang understands -c and -o together... yes
checking dependency style of clang... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by clang... ld
checking if the linker (ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... llvm-nm
checking the name lister (llvm-nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 98304
checking how to convert x86_64-chimera-linux-musl file names to x86_64-chimera-linux-musl format... func_convert_file_noop
checking how to convert x86_64-chimera-linux-musl file names to toolchain format... func_convert_file_noop
checking for ld option to reload object files... -r
checking for x86_64-chimera-linux-musl-objdump... llvm-objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-chimera-linux-musl-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-chimera-linux-musl-ar... llvm-ar
checking for archiver @FILE support... @
checking for x86_64-chimera-linux-musl-strip... llvm-strip
checking for x86_64-chimera-linux-musl-ranlib... llvm-ranlib
checking command to parse llvm-nm output from clang object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
/builddir/opus-1.3.1/configure: 1: /usr/bin/file: not found
checking for x86_64-chimera-linux-musl-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... clang-cpp
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if clang supports -fno-rtti -fno-exceptions... yes
checking for clang option to produce PIC... -fPIC -DPIC
checking if clang PIC flag -fPIC -DPIC works... yes
checking if clang static flag -static works... no
checking if clang supports -c -o file.o... yes
checking if clang supports -c -o file.o... (cached) yes
checking whether the clang linker (ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for clang option to accept ISO C99... none needed
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking dependency style of clang... gcc3
checking for C/C++ restrict keyword... __restrict
checking for C99 variable-size arrays... yes
checking for cos in -lm... yes
configure: WARNING: Floating point approximations are not supported on all platforms.
checking if compiler supports SSE intrinsics... yes
checking if compiler supports SSE2 intrinsics... yes
checking if compiler supports SSE4.1 intrinsics... no
checking if compiler supports SSE4.1 intrinsics with -msse4.1... yes
checking if compiler supports AVX intrinsics... no
checking if compiler supports AVX intrinsics with -mavx... yes
checking How to get X86 CPU Info... Inline Assembly
checking for doxygen... no
checking for dot... no
checking if clang supports -fvisibility=hidden... yes
checking if clang supports -fstack-protector-strong... yes
checking whether to add -D_FORTIFY_SOURCE=2 to CFLAGS... no
checking if clang supports -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes... yes
checking for lrintf... yes
checking for lrint... yes
checking for __malloc_hook... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating opus.pc
config.status: creating opus-uninstalled.pc
config.status: creating celt/arm/armopts.s
config.status: creating doc/Makefile
config.status: creating doc/Doxyfile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure:
------------------------------------------------------------------------
  opus 1.3.1:  Automatic configuration OK.

    Compiler support:

      C99 var arrays: ................ yes
      C99 lrintf: .................... yes
      Use alloca: .................... no (using var arrays)

    General configuration:

      Floating point support: ........ yes
      Fast float approximations: ..... yes
      Fixed point debugging: ......... no
      Inline Assembly Optimizations: . No inline ASM for your platform, please send patches
      External Assembly Optimizations: 
      Intrinsics Optimizations: ...... x86 SSE SSE2 SSE4.1 AVX
      Run-time CPU detection: ........ x86 SSE4.1 AVX
      Custom modes: .................. no
      Assertion checking: ............ no
      Hardening: ..................... yes
      Fuzzing: ....................... no
      Check ASM: ..................... no

      API documentation: ............. yes
      Extra programs: ................ yes
------------------------------------------------------------------------

 Type "make; make install" to compile and install
 Type "make check" to run the test suite

=> opus-1.3.1-r0: running do_build...
bmake: "/builddir/opus-1.3.1/build/Makefile" line 3449: warning: duplicate script for target "%-gnu.S" ignored
bmake: "/builddir/opus-1.3.1/build/Makefile" line 3446: warning: using previous script for "%-gnu.S" defined here
bmake  all-recursive
bmake[1]: "/builddir/opus-1.3.1/build/Makefile" line 3449: warning: duplicate script for target "%-gnu.S" ignored
bmake[1]: "/builddir/opus-1.3.1/build/Makefile" line 3446: warning: using previous script for "%-gnu.S" defined here
bmake[2]: "/builddir/opus-1.3.1/build/Makefile" line 3449: warning: duplicate script for target "%-gnu.S" ignored
bmake[2]: "/builddir/opus-1.3.1/build/Makefile" line 3446: warning: using previous script for "%-gnu.S" defined here
bmake[2]: bmake[2]: don't know how to make CFLAGS. Stop

bmake[2]: stopped in /builddir/opus-1.3.1/build

bmake[1]: stopped in /builddir/opus-1.3.1/build

bmake: stopped in /builddir/opus-1.3.1/build
=> A failure has occured!
Traceback (most recent call last):
  File "/home/yopito/chimera/cports.git/src/runner.py", line 895, in fire
    case "build" | "check" | "install" | "pkg": do_pkg(cmd)
  File "/home/yopito/chimera/cports.git/src/runner.py", line 829, in do_pkg
    build.build(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/build.py", line 89, in build
    buildm.invoke(pkg, step)
  File "/home/yopito/chimera/cports.git/src/cbuild/step/build.py", line 13, in invoke
    pkg.run_step("build", optional = True)
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 992, in run_step
    if not run_pkg_func(self, "do_" + stepn) and not optional:
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 159, in run_pkg_func
    func(pkg)
  File "/home/yopito/chimera/cports.git/src/cbuild/build_style/gnu_configure.py", line 8, in do_build
    self.make.build()
  File "/home/yopito/chimera/cports.git/src/cbuild/util/make.py", line 73, in build
    return self._invoke(
  File "/home/yopito/chimera/cports.git/src/cbuild/util/make.py", line 61, in _invoke
    return self.template.do(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 970, in do
    return chroot.enter(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/chroot.py", line 399, in enter
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bwrap', '--unshare-all', '--hostname', 'cbuild', '--ro-bind', PosixPath('/build/chimera/bldroot'), '/', '--bind', PosixPath('/build/chimera/bldroot/builddir'), '/builddir', '--ro-bind', PosixPath('/build/chimera/bldroot/destdir'), '/destdir', '--ro-bind', PosixPath('/home/yopito/chimera/cports.git/sources'), '/sources', '--dev', '/dev', '--proc', '/proc', '--tmpfs', '/tmp', '--tmpfs', '/var/tmp', '--new-session', '--die-with-parent', '--bind', PosixPath('/build/chimera/ccache'), '/ccache', '--uid', '1337', '--gid', '1337', '--chdir', PosixPath('/builddir/opus-1.3.1/build'), 'bmake', '-j1']' returned non-zero exit status 2.

fine with gmake. PR to come.

main/gtk-doc-tools fails to build

build output:

...
=> gtk-doc-tools-1.33.2-r0: running post_install hook: 100_rewrite_python_shebang...
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-mkpdf
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-check
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-depscan
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-mkdb
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-scan
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-fixxref
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-rebase
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-mkman
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-mkhtml2
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-scangobj
   Shebang converted to '#!/usr/bin/python3': usr/bin/gtkdoc-mkhtml
   Shebang converted to '#!/usr/bin/python3': usr/share/gtk-doc/python/gtkdoc/mkhtml2.py
   Shebang converted to '#!/usr/bin/python3': usr/share/gtk-doc/python/gtkdoc/highlight.py
=> gtk-doc-tools-1.33.2-r0: running post_install hook: 199_remove_empty_dirs...
=> gtk-doc-tools-1.33.2-r0: running post_install hook: 200_split_autopkgs...
=> gtk-doc-tools-doc-1.33.2-r0: moving: /build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr/share/gtk-doc -> /build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2
=> gtk-doc-tools-doc-1.33.2-r0: moving: /build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr/share/help -> /build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2
=> gtk-doc-tools-1.33.2-r0: running post_install hook: 999_lint_devel...
=> gtk-doc-tools-1.33.2-r0: running pre_pkg hook: 001_runtime_deps...
=> gtk-doc-tools-1.33.2-r0: running pre_pkg hook: 002_cmd_provides...
   cmd: gtkdoc-mkpdf from usr/bin
   cmd: gtkdoc-check from usr/bin
   cmd: gtkdocize from usr/bin
   cmd: gtkdoc-depscan from usr/bin
   cmd: gtkdoc-mkdb from usr/bin
   cmd: gtkdoc-scan from usr/bin
   cmd: gtkdoc-fixxref from usr/bin
   cmd: gtkdoc-rebase from usr/bin
   cmd: gtkdoc-mkman from usr/bin
   cmd: gtkdoc-mkhtml2 from usr/bin
   cmd: gtkdoc-scangobj from usr/bin
   cmd: gtkdoc-mkhtml from usr/bin
=> gtk-doc-tools-1.33.2-r0: running pre_pkg hook: 003_pc_provides...
   pc: gtk-doc=1.33.1 from usr/share/pkgconfig
=> gtk-doc-tools-1.33.2-r0: running pre_pkg hook: 004_so_provides...
=> gtk-doc-tools-1.33.2-r0: running pre_pkg hook: 090_timestamps...
=> gtk-doc-tools-1.33.2-r0: setting mtimes to Sat Dec 25 20:09:17 2021
=> gtk-doc-tools-1.33.2-r0: running pre_pkg hook: 098_lint...
=> gtk-doc-tools-1.33.2-r0: running pre_pkg hook: 099_scriptlets...
=> gtk-doc-tools-1.33.2-r0: ERROR: non-existent pycompile_dirs specified
Traceback (most recent call last):
  File "/home/yopito/chimera/cports.git/src/runner.py", line 924, in fire
    case "build" | "check" | "install" | "pkg": do_pkg(cmd)
  File "/home/yopito/chimera/cports.git/src/runner.py", line 858, in do_pkg
    build.build(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/build.py", line 53, in build
    dependencies.install(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/dependencies.py", line 441, in install
    build.build(step, template.read_pkg(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/build.py", line 53, in build
    dependencies.install(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/dependencies.py", line 415, in install
    build.build(step, template.read_pkg(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/build.py", line 53, in build
    dependencies.install(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/dependencies.py", line 415, in install
    build.build(step, template.read_pkg(
  File "/home/yopito/chimera/cports.git/src/cbuild/core/build.py", line 109, in build
    prepkg.invoke(pkg)
  File "/home/yopito/chimera/cports.git/src/cbuild/step/prepkg.py", line 11, in invoke
    template.call_pkg_hooks(pkg, "pre_pkg")
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 165, in call_pkg_hooks
    run_pkg_func(pkg, f[0], f"{stepn}_{f[1]}", f"{stepn} hook: {f[1]}")
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 160, in run_pkg_func
    func(pkg)
  File "/home/yopito/chimera/cports.git/src/cbuild/hooks/pre_pkg/099_scriptlets.py", line 484, in invoke
    _handle_python(pkg, _add_hook)
  File "/home/yopito/chimera/cports.git/src/cbuild/hooks/pre_pkg/099_scriptlets.py", line 451, in _handle_python
    pkg.error("non-existent pycompile_dirs specified")
  File "/home/yopito/chimera/cports.git/src/cbuild/core/template.py", line 183, in error
    raise errors.PackageException(msg, end, self)
cbuild.core.errors.PackageException: non-existent pycompile_dirs specified

template uses pycompile_dirs = ["usr/share/gtk-doc/python/gtkdoc"]

but automatic subpkg -doc has gained these python files, so pycompile_dirs of "main" package can't find them.

$ find /build/chimera/bldroot/destdir -type d | sort

/build/chimera/bldroot/destdir/
/build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2
/build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr
/build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr/bin
/build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr/lib
/build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr/lib/cmake
/build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr/lib/cmake/GtkDoc
/build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr/share
/build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr/share/aclocal
/build/chimera/bldroot/destdir/gtk-doc-tools-1.33.2/usr/share/pkgconfig

/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/gtk-doc
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/gtk-doc/data
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/gtk-doc/python
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/gtk-doc/python/gtkdoc
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/help
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/help/C
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/help/C/gtk-doc-manual
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/help/bn_IN
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/help/bn_IN/gtk-doc-manual
...
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/help/zh_CN
/build/chimera/bldroot/destdir/gtk-doc-tools-doc-1.33.2/usr/share/help/zh_CN/gtk-doc-manual

Move the python files to a different location than usr/share/gtk-doc/python seem the best solution.
Or create a dedicated python subpackage ?

Add support for writing packages into an alternative repo

Occasionally it is useful to specify an alternative repo path to emit packages into (for quick tests and so on). The system should still be able to pull build dependencies (as well as check for runtime dependencies) from the primary path.

Add API for cbuild

The system should provide some kind of API that should be usable from external programs. There are a few approaches we could take:

  1. Python API?
  2. Some kind of command interface for usage from shell scripts and so on?
  3. A cbuild server + some kind of API over a protocol?
  4. All of these?

open ssl tests fail

Sorry to bother again, but the tests for openssl don't work, is it a ram issue again? I don't have any ram left to give my vm, should I reduce the core count?.

=> openssl-3.0.2-r0: running do_check...
--- tests ---
bmake depend && bmake _tests
--- depend ---
--- run_tests ---
--- ./util/opensslwrap.sh ---
--- ./apps/openssl.cnf ---
--- run_tests ---
( SRCTOP=.  BLDTOP=.  PERL="/usr/bin/perl"  FIPSKEY="f4556650ac31d35461610bac4ed81b1a181b2d8a43ea2854cbae22ca74560813"  EXE_EXT=  /usr/bin/perl ./test/run_tests.pl  )
00-prep_fipsmodule_cnf.t .. skipped: FIPS module config file only supported in a fips build
Files=1, Tests=0,  0 wallclock secs ( 0.00 usr  0.00 sys +  0.12 cusr  0.01 csys =  0.13 CPU)
Result: NOTESTS
01-test_abort.t .................... ok
01-test_fipsmodule_cnf.t ........... skipped: Test only supported in a fips build
01-test_sanity.t ................... ok
01-test_symbol_presence.t .......... ok
01-test_test.t ..................... ok
02-test_errstr.t ................... ok
02-test_internal_context.t ......... ok
02-test_internal_ctype.t ........... ok
02-test_internal_keymgmt.t ......... ok
02-test_internal_provider.t ........ ok
02-test_lhash.t .................... ok
02-test_ordinals.t ................. ok
02-test_sparse_array.t ............. ok
02-test_stack.t .................... ok
03-test_exdata.t ................... ok
03-test_fipsinstall.t .............. skipped: Test only supported in a fips build
03-test_internal_asn1.t ............ ok
03-test_internal_asn1_dsa.t ........ ok
03-test_internal_bn.t .............. ok
03-test_internal_chacha.t .......... ok
03-test_internal_curve448.t ........ ok
03-test_internal_ec.t .............. ok
03-test_internal_ffc.t ............. ok
03-test_internal_mdc2.t ............ ok
03-test_internal_modes.t ........... ok
03-test_internal_namemap.t ......... ok
03-test_internal_poly1305.t ........ ok
03-test_internal_rsa_sp800_56b.t ... ok
03-test_internal_siphash.t ......... ok
03-test_internal_sm2.t ............. ok
03-test_internal_sm3.t ............. ok
03-test_internal_sm4.t ............. ok
03-test_internal_ssl_cert_table.t .. ok
03-test_internal_x509.t ............ ok
03-test_params_api.t ............... ok
03-test_property.t ................. ok
03-test_ui.t ....................... ok
04-test_asn1_decode.t .............. ok
04-test_asn1_encode.t .............. ok
04-test_asn1_string_table.t ........ ok
04-test_bio_callback.t ............. ok
04-test_bio_core.t ................. ok
04-test_bioprint.t ................. ok
04-test_conf.t ..................... ok
04-test_encoder_decoder.t .......... ok
04-test_encoder_decoder_legacy.t ... ok
04-test_err.t ...................... ok
04-test_hexstring.t ................ ok
04-test_param_build.t .............. ok
04-test_params.t ................... ok
04-test_params_conversion.t ........ ok
04-test_pem_read_depr.t ............ ok
04-test_pem_reading.t .............. ok
04-test_provfetch.t ................ ok
04-test_provider.t ................. ok
04-test_provider_fallback.t ........ ok
04-test_provider_pkey.t ............ ok
04-test_upcalls.t .................. ok
05-test_bf.t ....................... ok
05-test_cast.t ..................... ok
05-test_cmac.t ..................... ok
05-test_des.t ...................... ok
05-test_hmac.t ..................... ok
05-test_idea.t ..................... ok
05-test_pbe.t ...................... ok
05-test_rand.t ..................... ok
05-test_rc2.t ...................... ok
05-test_rc4.t ...................... ok
05-test_rc5.t ...................... skipped: rc5 is not supported by this OpenSSL build
06-test_algorithmid.t .............. ok
06-test_rdrand_sanity.t ............ ok
10-test_bn.t ....................... ok
10-test_exp.t ...................... ok
15-test_dh.t ....................... ok
15-test_dsa.t ...................... ok
15-test_dsaparam.t ................. ok
15-test_ec.t ....................... ok
15-test_ecdsa.t .................... ok
15-test_ecparam.t .................. ok
15-test_gendh.t .................... ok
15-test_gendhparam.t ............... ok
15-test_gendsa.t ................... ok
15-test_genec.t .................... ok
15-test_genrsa.t ................... ok
15-test_mp_rsa.t ................... ok
15-test_out_option.t ............... ok
15-test_rsa.t ...................... ok
15-test_rsaoaep.t .................. ok
15-test_rsapss.t ................... ok
15-test_sha.t ...................... ok
20-test_app.t ...................... ok
20-test_cli_fips.t ................. skipped: Test only supported in a fips build with security checks
20-test_dgst.t ..................... ok
20-test_dhparam.t .................. ok
20-test_dhparam_check.t ............ ok
20-test_enc.t ...................... ok
20-test_enc_more.t ................. ok
20-test_kdf.t ...................... ok
20-test_mac.t ...................... ok
20-test_passwd.t ................... ok
20-test_pkeyutl.t .................. ok
20-test_rand_config.t .............. ok
20-test_spkac.t .................... ok
25-test_crl.t ...................... ok
25-test_d2i.t ...................... ok
25-test_eai_data.t ................. ok
25-test_pkcs7.t .................... ok
25-test_req.t ...................... ok
25-test_rusext.t ................... ok
25-test_sid.t ...................... ok
25-test_verify.t ................... ok
25-test_verify_store.t ............. ok
25-test_x509.t ..................... ok
30-test_acvp.t ..................... skipped: ACVP is not supported by this test
30-test_aesgcm.t ................... ok
30-test_afalg.t .................... ok
30-test_defltfips.t ................ ok
30-test_engine.t ................... ok
30-test_evp.t ...................... ok
30-test_evp_extra.t ................ ok
30-test_evp_fetch_prov.t ........... ok
30-test_evp_kdf.t .................. ok
30-test_evp_libctx.t ............... ok
30-test_evp_pkey_dparam.t .......... ok
30-test_evp_pkey_provided.t ........ ok
30-test_pbelu.t .................... ok
30-test_pkey_meth.t ................ ok
30-test_pkey_meth_kdf.t ............ ok
30-test_prov_config.t .............. ok
30-test_provider_status.t .......... ok
40-test_rehash.t ................... ok
60-test_x509_check_cert_pkey.t ..... ok
60-test_x509_dup_cert.t ............ ok
60-test_x509_store.t ............... ok
60-test_x509_time.t ................ ok
61-test_bio_prefix.t ............... ok
61-test_bio_readbuffer.t ........... ok
65-test_cmp_asn.t .................. ok
65-test_cmp_client.t ............... ok
65-test_cmp_ctx.t .................. ok
65-test_cmp_hdr.t .................. ok
65-test_cmp_msg.t .................. ok
65-test_cmp_protect.t .............. ok
65-test_cmp_server.t ............... ok
65-test_cmp_status.t ............... ok
65-test_cmp_vfy.t .................. ok
66-test_ossl_store.t ............... ok
70-test_asyncio.t .................. ok
70-test_bad_dtls.t ................. ok
70-test_clienthello.t .............. ok
70-test_comp.t ..................... ok
70-test_key_share.t ................ ok
70-test_packet.t ................... ok
70-test_recordlen.t ................ ok
70-test_renegotiation.t ............ ok
70-test_servername.t ............... ok
70-test_sslcbcpadding.t ............ ok
70-test_sslcertstatus.t ............ ok
70-test_sslextension.t ............. ok
70-test_sslmessages.t .............. ok
70-test_sslrecords.t ............... ok
70-test_sslsessiontick.t ........... ok
70-test_sslsigalgs.t ............... ok
70-test_sslsignature.t ............. ok
70-test_sslskewith0p.t ............. ok
70-test_sslversions.t .............. ok
70-test_sslvertol.t ................ ok
70-test_tls13alerts.t .............. ok
70-test_tls13cookie.t .............. ok
70-test_tls13downgrade.t ........... ok
70-test_tls13hrr.t ................. ok
70-test_tls13kexmodes.t ............ ok
70-test_tls13messages.t ............ ok
70-test_tls13psk.t ................. ok
70-test_tlsextms.t ................. ok
70-test_verify_extra.t ............. ok
70-test_wpacket.t .................. ok
71-test_ssl_ctx.t .................. ok
79-test_http.t ..................... ok
80-test_ca.t ....................... ok
80-test_cipherbytes.t .............. ok
80-test_cipherlist.t ............... ok
80-test_ciphername.t ............... ok

# 
Killing mock server with pid=2430380-test_cmp_http.t ................. ok
# 80-test_cms.t ...................... ok
80-test_cmsapi.t ................... ok
80-test_ct.t ....................... ok
80-test_dane.t ..................... ok
80-test_dtls.t ..................... ok
80-test_dtls_mtu.t ................. ok
80-test_dtlsv1listen.t ............. ok
80-test_ocsp.t ..................... ok
80-test_pkcs12.t ................... ok

            # ERROR: (int) 'result->result == test_ctx->expected_result' failed @ test/ssl_test.c:36
            # [2] compared to [0]
            # INFO:  @ test/ssl_test.c:39
            # ExpectedResult mismatch: expected Success, got ClientFail.
            # 18E3E396BC7F0000:error:0A000415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:ssl/record/rec_layer_s3.c:1584:SSL alert number 45
            # OPENSSL_TEST_RAND_ORDER=1656344345
            not ok 2 - iteration 2
# ------------------------------------------------------------------------------
            # ERROR: (int) 'result->result == test_ctx->expected_result' failed @ test/ssl_test.c:36
            # [2] compared to [0]
            # INFO:  @ test/ssl_test.c:39
            # ExpectedResult mismatch: expected Success, got ClientFail.
            # 18E3E396BC7F0000:error:0A000415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:ssl/record/rec_layer_s3.c:1584:SSL alert number 45
            # OPENSSL_TEST_RAND_ORDER=1656344345
            not ok 4 - iteration 4
# ------------------------------------------------------------------------------
            # ERROR: (int) 'result->result == test_ctx->expected_result' failed @ test/ssl_test.c:36
            # [4] compared to [0]
            # INFO:  @ test/ssl_test.c:39
            # ExpectedResult mismatch: expected Success, got FirstHandshakeFailed.
            # 18E3E396BC7F0000:error:0A000415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:ssl/record/rec_layer_s3.c:1584:SSL alert number 45
            # OPENSSL_TEST_RAND_ORDER=1656344345
            not ok 5 - iteration 5
# ------------------------------------------------------------------------------
            # ERROR: (int) 'result->result == test_ctx->expected_result' failed @ test/ssl_test.c:36
            # [4] compared to [0]
            # INFO:  @ test/ssl_test.c:39
            # ExpectedResult mismatch: expected Success, got FirstHandshakeFailed.
            # 18E3E396BC7F0000:error:0A000415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:ssl/record/rec_layer_s3.c:1584:SSL alert number 45
            # OPENSSL_TEST_RAND_ORDER=1656344345
            not ok 6 - iteration 6
# ------------------------------------------------------------------------------
        # OPENSSL_TEST_RAND_ORDER=1656344345
        not ok 1 - test_handshake
# ------------------------------------------------------------------------------
../../util/wrap.pl ../../test/ssl_test 12-ct.cnf.none none => 1
    not ok 3 - running ssl_test 12-ct.cnf
# ------------------------------------------------------------------------------
            # ERROR: (int) 'result->result == test_ctx->expected_result' failed @ test/ssl_test.c:36
            # [2] compared to [0]
            # INFO:  @ test/ssl_test.c:39
            # ExpectedResult mismatch: expected Success, got ClientFail.
            # 186381EA2B7F0000:error:0A000415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:ssl/record/rec_layer_s3.c:1584:SSL alert number 45
            # OPENSSL_TEST_RAND_ORDER=1656344345
            not ok 2 - iteration 2
# ------------------------------------------------------------------------------
            # ERROR: (int) 'result->result == test_ctx->expected_result' failed @ test/ssl_test.c:36
            # [2] compared to [0]
            # INFO:  @ test/ssl_test.c:39
            # ExpectedResult mismatch: expected Success, got ClientFail.
            # 186381EA2B7F0000:error:0A000415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:ssl/record/rec_layer_s3.c:1584:SSL alert number 45
            # OPENSSL_TEST_RAND_ORDER=1656344345
            not ok 4 - iteration 4
# ------------------------------------------------------------------------------
            # ERROR: (int) 'result->result == test_ctx->expected_result' failed @ test/ssl_test.c:36
            # [4] compared to [0]
            # INFO:  @ test/ssl_test.c:39
            # ExpectedResult mismatch: expected Success, got FirstHandshakeFailed.
            # 186381EA2B7F0000:error:0A000415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:ssl/record/rec_layer_s3.c:1584:SSL alert number 45
            # OPENSSL_TEST_RAND_ORDER=1656344345
            not ok 5 - iteration 5
# ------------------------------------------------------------------------------
            # ERROR: (int) 'result->result == test_ctx->expected_result' failed @ test/ssl_test.c:36
            # [4] compared to [0]
            # INFO:  @ test/ssl_test.c:39
            # ExpectedResult mismatch: expected Success, got FirstHandshakeFailed.
            # 186381EA2B7F0000:error:0A000415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired:ssl/record/rec_layer_s3.c:1584:SSL alert number 45
            # OPENSSL_TEST_RAND_ORDER=1656344345
            not ok 6 - iteration 6
# ------------------------------------------------------------------------------
        # OPENSSL_TEST_RAND_ORDER=1656344345
        not ok 1 - test_handshake
# ------------------------------------------------------------------------------
../../util/wrap.pl ../../test/ssl_test 12-ct.cnf.default default => 1
    not ok 6 - running ssl_test 12-ct.cnf
# ------------------------------------------------------------------------------
    #   Failed test 'running ssl_test 12-ct.cnf'
    #   at test/recipes/80-test_ssl_new.t line 171.
    # Looks like you failed 2 tests of 6.
not ok 12 - Test configuration 12-ct.cnf
# ------------------------------------------------------------------------------
# Looks like you failed 1 test of 30.80-test_ssl_new.t .................. 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/30 subtests 
80-test_ssl_old.t .................. ok
80-test_ssl_test_ctx.t ............. ok
80-test_sslcorrupt.t ............... ok
80-test_tsa.t ...................... ok
80-test_x509aux.t .................. ok
81-test_cmp_cli.t .................. ok
90-test_asn1_time.t ................ ok
90-test_async.t .................... ok
90-test_bio_enc.t .................. ok
90-test_bio_memleak.t .............. ok
90-test_constant_time.t ............ ok
90-test_fatalerr.t ................. ok
90-test_fipsload.t ................. skipped: Test is disabled with disabled fips
90-test_gmdiff.t ................... ok
90-test_ige.t ...................... ok
90-test_includes.t ................. ok
90-test_memleak.t .................. ok
90-test_overhead.t ................. ok
90-test_secmem.t ................... ok
90-test_shlibload.t ................ ok
90-test_srp.t ...................... ok
90-test_sslapi.t ................... ok
90-test_sslbuffers.t ............... ok
90-test_store.t .................... ok
90-test_sysdefault.t ............... ok
90-test_threads.t .................. ok
90-test_time_offset.t .............. ok
90-test_tls13ccs.t ................. ok
90-test_tls13encryption.t .......... ok
90-test_tls13secrets.t ............. ok
90-test_v3name.t ................... ok
91-test_pkey_check.t ............... ok
95-test_external_gost_engine.t ..... skipped: No external tests in this configuration
95-test_external_krb5.t ............ skipped: No external tests in this configuration
95-test_external_pyca.t ............ skipped: No external tests in this configuration
99-test_ecstress.t ................. ok
99-test_fuzz_asn1.t ................ ok
99-test_fuzz_asn1parse.t ........... ok
99-test_fuzz_bignum.t .............. ok
99-test_fuzz_bndiv.t ............... ok
99-test_fuzz_client.t .............. ok
99-test_fuzz_cmp.t ................. ok
99-test_fuzz_cms.t ................. ok
99-test_fuzz_conf.t ................ ok
99-test_fuzz_crl.t ................. ok
99-test_fuzz_ct.t .................. ok
99-test_fuzz_server.t .............. ok
99-test_fuzz_x509.t ................ ok
Test Summary Report
-------------------
80-test_ssl_new.t                (Wstat: 256 Tests: 30 Failed: 1)
  Failed test:  12
  Non-zero exit status: 1
Files=242, Tests=3284, 252 wallclock secs ( 6.20 usr  0.48 sys + 212.20 cusr 34.81 csys = 253.69 CPU)
Result: FAIL
*** [run_tests] Error code 1

bmake[1]: stopped in /builddir/openssl-3.0.2
1 error

bmake[1]: stopped in /builddir/openssl-3.0.2
*** [tests] Error code 2

bmake: stopped in /builddir/openssl-3.0.2
1 error

bmake: stopped in /builddir/openssl-3.0.2
=> A failure has occurred!
Traceback (most recent call last):
  File "/home/leo/cports/src/runner.py", line 1154, in fire
    case "bootstrap": bootstrap(cmd)
  File "/home/leo/cports/src/runner.py", line 460, in bootstrap
    do_pkg("pkg", "main/base-cbuild", False, stage = 3)
  File "/home/leo/cports/src/runner.py", line 922, in do_pkg
    build.build(
  File "/home/leo/cports/src/cbuild/core/build.py", line 57, in build
    if dependencies.install(
  File "/home/leo/cports/src/cbuild/core/dependencies.py", line 418, in install
    build.build(
  File "/home/leo/cports/src/cbuild/core/build.py", line 57, in build
    if dependencies.install(
  File "/home/leo/cports/src/cbuild/core/dependencies.py", line 400, in install
    build.build(
  File "/home/leo/cports/src/cbuild/core/build.py", line 57, in build
    if dependencies.install(
  File "/home/leo/cports/src/cbuild/core/dependencies.py", line 400, in install
    build.build(
  File "/home/leo/cports/src/cbuild/core/build.py", line 104, in build
    check.invoke(pkg, step, check_fail)
  File "/home/leo/cports/src/cbuild/step/check.py", line 25, in invoke
    pkg.run_step("check", optional = True)
  File "/home/leo/cports/src/cbuild/core/template.py", line 1043, in run_step
    if not run_pkg_func(self, "do_" + stepn) and not optional:
  File "/home/leo/cports/src/cbuild/core/template.py", line 164, in run_pkg_func
    func(pkg)
  File "/home/leo/cports/src/cbuild/build_style/configure.py", line 13, in do_check
    self.make.check()
  File "/home/leo/cports/src/cbuild/util/make.py", line 114, in check
    return self._invoke(
  File "/home/leo/cports/src/cbuild/util/make.py", line 63, in _invoke
    return self.template.do(
  File "/home/leo/cports/src/cbuild/core/template.py", line 1021, in do
    return chroot.enter(
  File "/home/leo/cports/src/cbuild/core/chroot.py", line 437, in enter
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bwrap', '--unshare-all', '--hostname', 'cbuild', '--ro-bind', PosixPath('/home/leo/cports/bldroot-stage2'), '/', '--bind', PosixPath('/home/leo/cports/bldroot-stage2/builddir'), '/builddir', '--ro-bind', PosixPath('/home/leo/cports/bldroot-stage2/destdir'), '/destdir', '--ro-bind', PosixPath('/home/leo/cports/sources'), '/sources', '--dev', '/dev', '--proc', '/proc', '--tmpfs', '/tmp', '--tmpfs', '/var/tmp', '--new-session', '--die-with-parent', '--bind', PosixPath('/home/leo/cports/cbuild_cache'), '/cbuild_cache', '--uid', '1337', '--gid', '1337', '--chdir', PosixPath('/builddir/openssl-3.0.2'), 'bmake', '-j8', 'test']' returned non-zero exit status 2.

main/ca-certificates: build fails on stage0

main/ca-certificates is building fine on on regular workflow (with binpkgs from stage2) but currently fails on bootstraping stage0 (with rev e31ae19).

looks like that post_patch phase in this context is not within a bubblewrap chroot, so clang fails (see -isystem argument):

bootstraping stage0 output:

$ rm -rf masterdir-stage0/
$ BOOTSTRAP_ROOT=/build/chimera/SCRATCH_cports.git/bootstrap.ROOTDIR ./bootstrap.sh
[...]
=> cbuild: bootstrapping stage 0
=> base-chroot-0.66-r0: building for x86_64...
   [runtime] musl-devel>=0: found (1.2.2-r0)
   [runtime] base-files>=0: found (0.142-r0)
   [runtime] elftoolchain>=0: found (0.7.1_svn20210623-r0)
   [runtime] llvm>=0: found (12.0.0-r0)
   [runtime] clang>=0: found (12.0.0-r0)
   [runtime] lld>=0: found (12.0.0-r0)
   [runtime] bmake>=0: found (20210420-r0)
   [runtime] bsdutils>=0: found (0.0.1-r0)
   [runtime] dash>=0: found (0.5.11.3-r0)
   [runtime] file>=0: found (5.40-r0)
   [runtime] apk-tools>=0: not found
   [runtime] awk>=0: not found
   [runtime] ncurses>=0: found (6.2-r0)
   [runtime] bsdgrep>=0: not found
   [runtime] bsdgzip>=0: not found
   [runtime] bsdpatch>=0: not found
   [runtime] bsdsed>=0: not found
   [runtime] bsdtar>=0: found (3.5.1-r0)
   [runtime] bsddiff>=0: not found
   [runtime] chroot-util-linux>=0: not found
=> apk-tools-2.12.5-r0: building [meson] (dependency of base-chroot) for x86_64...
   [target] zlib-devel: found (1.2.11-r0)
   [target] openssl-devel: found (1.1.1k-r0)
   [runtime] ca-certificates>=0: not found
   [runtime] apk-tools=2.12.5-r0: subpackage (ignored)
=> ca-certificates-20210119-r0: building (dependency of apk-tools) for x86_64...
   [host] openssl: found (1.1.1k-r0)
   [runtime] openssl<=2.0: found (1.1.1k-r0)
   [runtime] run-parts>=0: found (4.11.2-r0)
=> ca-certificates-20210119-r0: installing host dependencies: openssl
=> ca-certificates-20210119-r0: running do_fetch hook: 00_distfiles...
=> ca-certificates-20210119-r0: running do_extract hook: 00_distfiles...
=> ca-certificates-20210119-r0: running init_patch hook: 00_env_pkg_config...
=> ca-certificates-20210119-r0: running do_patch hook: 00_patches...
=> ca-certificates-20210119-r0: patching: update-ca-certificates-destdir.patch
=> ca-certificates-20210119-r0: running post_patch...
clang -D_FORTIFY_SOURCE=2 -fstack-protector-strong -O2 -pipe -rtlib=compiler-rt -isystem /cports/masterdir-stage0/usr/include certdata2pem.c -Wl,--as-needed -Wl,-z,now -Wl,-z,relro -fuse-ld=lld -L/cports/masterdir-stage0/usr/lib -Wl,-rpath-link=/cports/masterdir-stage0/usr/lib -o /builddir/work/mozilla/certdata2pem
=> A failure has occured!
Traceback (most recent call last):
  File "/cports/cbuild.py", line 390, in <module>
    ({
  File "/cports/cbuild.py", line 265, in bootstrap
    build.build(tgt, rp, {}, opt_signkey)
  File "/cports/cbuild/core/build.py", line 34, in build
    autodep = dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/cbuild/core/dependencies.py", line 410, in install
    build.build(step, template.read_pkg(
  File "/cports/cbuild/core/build.py", line 34, in build
    autodep = dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/cbuild/core/dependencies.py", line 410, in install
    build.build(step, template.read_pkg(
  File "/cports/cbuild/core/build.py", line 58, in build
    patch.invoke(pkg)
  File "/cports/cbuild/step/patch.py", line 15, in invoke
    pkg.run_step("patch", optional = True)
  File "/cports/cbuild/core/template.py", line 620, in run_step
    run_pkg_func(self, "post_" + stepn)
  File "/cports/cbuild/core/template.py", line 160, in run_pkg_func
    func(pkg)
  File "/cports/main/ca-certificates/template.py", line 23, in post_patch
    cc.invoke(
  File "/cports/cbuild/util/compiler.py", line 36, in invoke
    return self.template.do(self.cexec, argsbase)
  File "/cports/cbuild/core/template.py", line 593, in do
    return chroot.enter(
  File "/cports/cbuild/core/chroot.py", line 359, in enter
    return subprocess.run(
  File "/usr/lib/python3.9/subprocess.py", line 505, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.9/subprocess.py", line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/builddir/work'
Bootstrap failed!

Signing security

Currently the system is prone to leaking keys to whatever malicious process running in the build container, because things bind-mount globally (so the process inside can just reach into /cports and do its thing). This is obviously known and we didn't care until now because it's WIP, but we should address this. A large part of it will be solved with #2.

Container security

We'll need to ensure some things:

  • reduce bind-mounting (only mount whatever is necessary for each step)
  • unshare network namespace after fetch step
  • mount / read-only after dependency install step
  • ...

Implement custom build options

Templates should be able to specify options the user can specify to alter the template's features. This includes:

  1. Figuring out the template syntax for it
  2. Figuring out the semantics (notably how to properly reinit the template so that conditional checks for options can be done properly)
  3. Figuring out the user-facing interface to it (cbuild config files, arguments etc.)

bootstrap stage0 fails on removing autodeps

using rev f76d21b :

=> acl-progs-2.3.1-r0: running do_pkg hook: 000_gen_apk...
=> Creating acl-progs-2.3.1-r0.apk in repository /cports/packages-stage0/main/.stage/x86_64...
=> Creating acl-progs-doc-2.3.1-r0.apk in repository /cports/packages-stage0/main/.stage/x86_64...
=> Creating acl-progs-man-2.3.1-r0.apk in repository /cports/packages-stage0/main/.stage/x86_64...
=> Creating acl-progs-locale-2.3.1-r0.apk in repository /cports/packages-stage0/main/.stage/x86_64...
=> acl-2.3.1-r0: running do_pkg hook: 000_gen_apk...
=> Creating acl-2.3.1-r0.apk in repository /cports/packages-stage0/main/.stage/x86_64...
=> Staging new packages to /cports/packages-stage0/main/.stage/x86_64...
=> cbuild: removing autodeps...
>> stderr (target):
ERROR: System state may be inconsistent: failed to write database: No such file or directory

=> cbuild: failed to remove autodeps
Bootstrap failed!

more details:

  • this does not happen with previously generated packages.
  • this happens for all packages after acl. workaround is to delete bldroot-stage0 after each generated packages
  • this does not happen on other stages (e.g > 0)

libxo: fails to build on stage0

using rev 56a5fe1 :

...
=> gettext-tiny-devel-0.3.2-r0: removing files from destdir...
=> libxo-1.6.0-r0: installing target dependencies: gettext-tiny-devel
=> libxo-1.6.0-r0: running do_fetch hook: 00_sources...
=> libxo-1.6.0-r0: running do_extract hook: 00_sources...
=> libxo-1.6.0-r0: running init_patch hook: 00_env_pkg_config...
=> libxo-1.6.0-r0: running do_patch hook: 00_patches...
=> libxo-1.6.0-r0: patching: bmake.patch
=> libxo-1.6.0-r0: patching: gettext.patch
=> libxo-1.6.0-r0: patching: portability.patch
=> libxo-1.6.0-r0: running post_patch...
=> libxo-1.6.0-r0: running pre_configure hook: 02_script_wrapper...
=> libxo-1.6.0-r0: running do_configure...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for gcc... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether clang accepts -g... yes
checking for clang option to enable C11 features... none needed
checking whether clang understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of clang... none
checking whether ln -s works... yes
checking build system type... x86_64-pc-linux-musl
checking host system type... x86_64-pc-linux-musl
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by clang... ld.lld
checking if the linker (ld.lld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... nm
checking the name lister (nm) interface... BSD nm
checking the maximum length of command line arguments... 98304
checking how to convert x86_64-pc-linux-musl file names to x86_64-pc-linux-musl format... func_convert_file_noop
checking how to convert x86_64-pc-linux-musl file names to toolchain format... func_convert_file_noop
checking for ld.lld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse nm output from clang object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if clang supports -fno-rtti -fno-exceptions... yes
checking for clang option to produce PIC... -fPIC -DPIC
checking if clang PIC flag -fPIC -DPIC works... yes
checking if clang static flag -static works... yes
checking if clang supports -c -o file.o... yes
checking if clang supports -c -o file.o... (cached) yes
checking whether the clang linker (ld.lld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... no
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for basename... /usr/bin/basename
checking for bison... /usr/bin/bison
checking for cat... /usr/bin/cat
checking for chmod... /usr/bin/chmod
checking for cp... /usr/bin/cp
checking for diff... /usr/bin/diff
checking for mkdir... /usr/bin/mkdir
checking for mv... /usr/bin/mv
checking for rm... /usr/bin/rm
checking for sed... (cached) /usr/bin/sed
checking for inline... inline
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for GNU libc compatible malloc... yes
checking for GNU libc compatible realloc... yes
checking for bzero... yes
checking for memmove... yes
checking for strchr... yes
checking for strcspn... yes
checking for strerror... yes
checking for strspn... yes
checking for sranddev... no
checking for srand... yes
checking for strlcpy... yes
checking for fdopen... yes
checking for getrusage... yes
checking for gettimeofday... yes
checking for ctime... yes
checking for getpass... yes
checking for getprogname... no
checking for sysctlbyname... no
checking for flock... yes
checking for asprintf... yes
checking for __flbf... yes
checking for sysctlbyname... (cached) no
checking for dlfcn.h... (cached) yes
checking for dlfcn.h... (cached) yes
checking for stdio_ext.h... yes
checking for tzfile.h... no
checking for stdtime/tzfile.h... no
checking for dlfunc... no
checking for sys/time.h... yes
checking for ctype.h... yes
checking for errno.h... yes
checking for stdio.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for sys/param.h... yes
checking for unistd.h... (cached) yes
checking for sys/sysctl.h... no
checking for threads.h... yes
checking for monitor.h... no
checking for libutil.h... no
checking for humanize_number in -lutil... no
humanize_number results: :no:no:
checking gettext in /usr... yes
checking thread-locals are unknown... before
checking for MD5_Init in -lcrypto... no
checking for struct sockaddr_un.sun_len... no
checking for clang options needed to detect all undeclared functions... -fno-builtin
checking whether __isthreaded is declared... no
checking for libslax... no
checking whether to build with warnings... no
checking whether to build with debugging... no
checking whether to use int return codes... no
checking whether to build with text-only rendering... no
checking whether to build with local wcwidth implementation... yes
checking retain hash bucket size... default
checking for lrint in -lm... yes
checking compiler for gcc... no
checking whether to build with printflike... no
checking whether to build with LIBXO_OPTIONS... yes
Using configure dir /cports/bldroot-stage0/builddir/libxo-1.6.0
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libxo-config
config.status: creating xohtml/xohtml.sh
config.status: creating libxo/Makefile
config.status: creating libxo/add.man
config.status: creating bin/Makefile
config.status: creating encoder/Makefile
config.status: creating encoder/cbor/Makefile
config.status: creating encoder/csv/Makefile
config.status: creating encoder/test/Makefile
config.status: creating xo/Makefile
config.status: creating xolint/Makefile
config.status: creating xohtml/Makefile
config.status: creating xopo/Makefile
config.status: creating packaging/libxo.pc
config.status: creating doc/Makefile
config.status: creating doc/top-link.html
config.status: creating tests/Makefile
config.status: creating tests/core/Makefile
config.status: creating tests/gettext/Makefile
config.status: creating tests/xo/Makefile
config.status: creating packaging/libxo.spec
config.status: creating packaging/libxo.rb.base
config.status: creating libxo/xo_config.h
config.status: executing depfiles commands
config.status: executing libtool commands
rm: cannot remove 'libtoolT': No such file or directory
configure: summary of build options:

  libxo version:    1.6.0 
  host type:        x86_64-pc-linux-musl / linux-musl
  install prefix:   /usr
  srcdir:           /cports/bldroot-stage0/builddir/libxo-1.6.0
  libdir:           /usr/lib
  bindir:           /usr/bin
  includedir:       ${prefix}/include
  share dir:        /usr/share/libxo
  extensions dir:   /usr/lib/libxo/encoder
  oxtradoc dir:     

  compiler:         clang (no)
  compiler flags:   -D_GNU_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -Wno-unused-command-line-argument -O2 -pipe -rtlib=compiler-rt -isystem /cports/bldroot-stage0/usr/include
  library types:    Shared=yes, Static=yes

  warnings:         no
  debug:            no
  printf-like:      no
  libxo-options:    yes
  text-only:        no
  gettext:          yes (/usr)
  isthreaded:       no
  thread-local:     before
  local wcwidth:    yes
  retain size:      default

=> libxo-1.6.0-r0: running do_build...
--- all-recursive ---
Making all in bin
Making all in libxo
--- all ---
bmake  all-am
--- libxo.lo ---
--- xo_encoder.lo ---
--- xo_syslog.lo ---
--- libxo.lo ---
  CC       libxo.lo
--- xo_encoder.lo ---
  CC       xo_encoder.lo
--- xo_syslog.lo ---
  CC       xo_syslog.lo
--- libxo.la ---
  CCLD     libxo.la
/usr/bin/x86_64-unknown-linux-musl-ld: cannot find -lintl
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
*** [libxo.la] Error code 1

bmake[2]: stopped in /cports/bldroot-stage0/builddir/libxo-1.6.0/build/libxo
1 error

bmake[2]: stopped in /cports/bldroot-stage0/builddir/libxo-1.6.0/build/libxo

bmake[1]: stopped in /cports/bldroot-stage0/builddir/libxo-1.6.0/build/libxo

bmake: stopped in /cports/bldroot-stage0/builddir/libxo-1.6.0/build
=> A failure has occured!
Traceback (most recent call last):
  File "/cports/./cbuild", line 491, in <module>
    case "bootstrap": bootstrap(cmd)
  File "/cports/./cbuild", line 343, in bootstrap
    build.build(tgt, rp, {}, opt_signkey)
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 415, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 403, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 84, in build
    buildm.invoke(pkg, step)
  File "/cports/src/cbuild/step/build.py", line 13, in invoke
    pkg.run_step("build", optional = True)
  File "/cports/src/cbuild/core/template.py", line 883, in run_step
    if not run_pkg_func(self, "do_" + stepn) and not optional:
  File "/cports/src/cbuild/core/template.py", line 161, in run_pkg_func
    func(pkg)
  File "/cports/src/cbuild/build_style/gnu_configure.py", line 8, in do_build
    self.make.build()
  File "/cports/src/cbuild/util/make.py", line 67, in build
    return self.invoke(
  File "/cports/src/cbuild/util/make.py", line 60, in invoke
    return self.template.do(
  File "/cports/src/cbuild/core/template.py", line 861, in do
    return chroot.enter(
  File "/cports/src/cbuild/core/chroot.py", line 384, in enter
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bmake', '-j3']' returned non-zero exit status 2.
Bootstrap failed!

ncurses build fails on stage1

output:

...
=> ncurses-6.3-r0: building [gnu_configure] (dependency of less) for x86_64...
   [host] pkgconf: found (1.8.0-r0)
   [host] gmake: found (4.3-r0)
   [runtime] ncurses-base=6.3-r0: subpackage (ignored)
   [runtime] ncurses-devel=6.3-r0: subpackage (ignored)
   [runtime] ncurses-base=6.3-r0: subpackage (ignored)
=> ncurses-6.3-r0: installing host dependencies: pkgconf, gmake
=> ncurses-6.3-r0: running do_fetch hook: 00_sources...
=> ncurses-6.3-r0: running do_extract hook: 00_sources...
=> ncurses-6.3-r0: running init_patch hook: 00_env_pkg_config...
=> ncurses-6.3-r0: running do_patch hook: 00_patches...
=> ncurses-6.3-r0: running init_configure...
=> ncurses-6.3-r0: running pre_configure hook: 02_script_wrapper...
=> ncurses-6.3-r0: running do_configure...
checking for ggrep... no
checking for grep... grep
checking for egrep... grep -E
Configuring NCURSES 6.3 ABI 6 (Fri Nov 19 12:33:45 UTC 2021)
checking for package version... 6.3
checking for package patch date... 20211021
checking build system type... x86_64-pc-linux-musl
checking host system type... x86_64-pc-linux-musl
checking target system type... x86_64-pc-linux-musl
Configuring for linux-musl
checking for fgrep... grep -F
checking for prefix... /usr
checking for x86_64-linux-musl-gcc... clang
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for executable suffix... 
checking for object suffix... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking version of clang... 13.0.0
checking if this is really Intel C compiler... no
checking if this is really Clang C compiler... yes
checking version of clang... 13.0.0
checking if option -Qunused-arguments works... yes
checking if option -Wno-error=implicit-function-declaration works... yes
checking for clang option to accept ANSI C... none needed
checking $CFLAGS variable... broken
configure: WARNING: your environment uses the CFLAGS variable to hold CPPFLAGS options
checking $CC variable... ok
checking how to run the C preprocessor... clang-cpp
checking whether clang needs -traditional... no
checking whether clang understands -c and -o together... yes
checking for ldconfig... /usr/bin/ldconfig
checking if you want to ensure bool is consistent with C++... yes
checking for x86_64-linux-musl-g++... clang++
checking whether we are using the GNU C++ compiler... yes
checking whether clang++ accepts -g... yes
checking if clang++ works... yes
checking version of clang++... 13.0.0
checking if you want to build C++ binding and demo... yes
checking if you want to build with Ada... no
checking if you want to install terminal database... yes
checking if you want to install manpages... yes
checking if you want to build programs such as tic... yes
checking if you want to build test-programs... yes
checking if you wish to install curses.h... yes
checking for mawk... no
checking for gawk... no
checking for nawk... no
checking for awk... awk
checking for a BSD compatible install... /usr/bin/install -c
checking for lint... no
checking for cppcheck... no
checking for splint... no
checking whether ln -s works... yes
checking if ln -s -f options work... yes
checking for long file names... yes
checking if you want to use pkg-config... yes
checking for x86_64-linux-musl-pkg-config... no
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for /usr/bin/pkg-config library directory... checking for first directory... none
checking if we should install .pc files for /usr/bin/pkg-config... yes
configure: error: expected a pathname, not ""
=> A failure has occured!
Traceback (most recent call last):
  File "/cports/src/runner.py", line 870, in fire
    case "bootstrap": bootstrap(cmd)
  File "/cports/src/runner.py", line 358, in bootstrap
    do_pkg("pkg", "main/base-cbuild", False, False, stage = 1)
  File "/cports/src/runner.py", line 816, in do_pkg
    build.build(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 434, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 422, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 422, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 422, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 410, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 410, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 50, in build
    dependencies.install(pkg, pkg.origin.pkgname, "pkg", depmap, signkey)
  File "/cports/src/cbuild/core/dependencies.py", line 422, in install
    build.build(step, template.read_pkg(
  File "/cports/src/cbuild/core/build.py", line 80, in build
    configure.invoke(pkg, step)
  File "/cports/src/cbuild/step/configure.py", line 15, in invoke
    pkg.run_step("configure", optional = True)
  File "/cports/src/cbuild/core/template.py", line 990, in run_step
    if not run_pkg_func(self, "do_" + stepn) and not optional:
  File "/cports/src/cbuild/core/template.py", line 162, in run_pkg_func
    func(pkg)
  File "/cports/src/cbuild/build_style/gnu_configure.py", line 5, in do_configure
    gnu_configure.configure(self)
  File "/cports/src/cbuild/util/gnu_configure.py", line 126, in configure
    pkg.do(
  File "/cports/src/cbuild/core/template.py", line 968, in do
    return chroot.enter(
  File "/cports/src/cbuild/core/chroot.py", line 397, in enter
    return subprocess.run(
  File "/usr/lib/python3.10/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bwrap', '--unshare-all', '--hostname', 'cbuild', '--ro-bind', PosixPath('/cports/bldroot-stage0'), '/', '--bind', PosixPath('/cports/bldroot-stage0/builddir'), '/builddir', '--ro-bind', PosixPath('/cports/bldroot-stage0/destdir'), '/destdir', '--ro-bind', PosixPath('/cports/sources'), '/sources', '--dev', '/dev', '--proc', '/proc', '--tmpfs', '/tmp', '--tmpfs', '/var/tmp', '--new-session', '--die-with-parent', '--bind', PosixPath('/cports/ccache'), '/ccache', '--uid', '1337', '--gid', '1337', '--chdir', PosixPath('/builddir/ncurses-6.3/build'), PosixPath('/builddir/ncurses-6.3/configure'), '--prefix=/usr', '--sysconfdir=/etc', '--sbindir=/usr/bin', '--bindir=/usr/bin', '--libdir=/usr/lib', '--mandir=/usr/share/man', '--infodir=/usr/share/info', '--localstatedir=/var', '--build=x86_64-linux-musl', '--host=x86_64-linux-musl', '--enable-widec', '--enable-big-core', '--enable-ext-colors', '--enable-pc-files', '--without-debug', '--without-ada', '--with-shared', '--with-manpage-symlinks', '--with-manpage-format=normal', '--with-pkg-config-libdir=/usr/lib/pkgconfig', 'ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config', 'BUILD_CFLAGS=-D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -O2 -fPIC']' returned non-zero exit status 1.
Bootstrap failed!

crossbuild: can't find a requirement if not in base-chroot

while building for a crossbuild arch (let's say aarch64), shlibs fails to find requirement of the being built package: It does not find a lib provided by a package that is installed for target arch.

this is because apk is launched against host paths.masterdir() and not against the target's equivalent path here:

"apk", "info", "--root", paths.masterdir(),

practical example:

  • package nvi rely on libdb-18.1.so provided by a db libdb package
  • crossbuild package nvi for aarch64
  • errror: SONAME: libdb-18.1.so <-> UNKNOWN PACKAGE!
  • wrong call apkg info --root /build/chimera/masterdir --allow-untrusted --installed so:libdb-18.1.so
  • right call should be apkg info --root /build/chimera/masterdir/usr/aarch64-unknown-linux-musl --allow-untrusted --installed so:libdb-18.1.so

Edit: package providing .so lib is named libdb

perl-locale-gettext: FTBFS in stage2 on x86_64

on x86_64 native

$ ./cbuild bootstrap |& grep error
/usr/lib/perl5/core_perl/CORE/perlio.h:241:15: error: unknown type name 'off64_t'; did you mean 'off_t'?
/usr/lib/perl5/core_perl/CORE/proto.h:963:47: error: unknown type name 'off64_t'; did you mean 'off_t'?
/usr/lib/perl5/core_perl/CORE/proto.h:971:15: error: unknown type name 'off64_t'; did you mean 'off_t'?
/usr/lib/perl5/core_perl/CORE/proto.h:971:51: error: unknown type name 'off64_t'; did you mean 'off_t'?
/usr/lib/perl5/core_perl/CORE/proto.h:974:15: error: unknown type name 'off64_t'; did you mean 'off_t'?
/usr/lib/perl5/core_perl/CORE/proto.h:6876:53: error: unknown type name 'off64_t'; did you mean 'off_t'?
/usr/lib/perl5/core_perl/CORE/proto.h:6896:15: error: unknown type name 'off64_t'; did you mean 'off_t'?
153 warnings and 7 errors generated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.