- we build now on VMs or real hardware via SSH, we should also try to
build with chroots and bin_fmt (thanks to oaken-source mentioning it)
- how to clean up sysroot nicely without having to rebuild the cross-compiler?
for now only removing and stowing a copy somewhere before building stage1
- pacman with a '--no-execute-hooks' option
- makepkg with an 'alternate root' option (which doens't collide with
pacman's options), avoids patching -r and --config into makepkg for
- shims and provides and depends don't work yet:
- binutils and glibc-shim
- same for gcc-libs: glibc and gcc-libs for gcc
- bsdtar: /home/cross/i486-root/packages/i486/linux-docs-4.15.1-2-i486.pkg.tar.xz: Not found in archive
bsdtar: /home/cross/i486-root/packages/i486/linux-headers-4.15.1-2-i486.pkg.tar.xz: Not found in archive
bsdtar: Error exit delayed from previous errors.
Built package linux.
- removing all pacman databases and recreating them with repo-add, also
removing all installed pacman packages seem a little bit paranoic. Find
out how to speed this up and do it properly.
- as soon as asp32 creates a combined PKGBUILD when exporting a package,
we can remove the git repo packages32 and the cat of the diff-PKGBUILD
- when uninstalling pacman in the chroot, you must rename pacman.pacsave
back to pacman.conf as it is used for building packages
- some packages get build more than once in stage1 (linux-api-headers, pacman-mirrorlist)
- make a wrapper for sed in DESCR, which is actually able to detect whether
the patch was successful or not. Avoid hard to detect errors, when the
upstream PKGBUILD(s) change.
- stage 1 and stage 2 scripts have things in common which should probably
be dealt with not by copy pasting code
- maybe we should not simply overwrite packages with the same version numbers,
have something like build/stage numbers as in Archlinux32.
- Missing dependencies errors on host when doing makepkg -o, ugly, but it
- introduce a '-package' along to '(+)package' to delete a package at a
given place (e.g. a shim)
- get rid of ADDITIONAL_PACKAGES, we actually parse pkgname and install
all mentioned packages directly
- stage1: cdrom installs keyrings without having a gpg binary
- 32 MB is not enough when installing packages => add a swap as first action!
- stage1 has no bootloader package (syslinux) to install
- do we really want to install stage1 via a CDROM?
- using the cross compiler for syslinux is most likely overkill
- some packages still build more than really needed:
- syslinux: builds docu with asciidoc and build EFI stuff from gnu-efi
- rename STAGE1 directories i486-root to i486-stage1-root and i486-build
- gdb uses cross-compiler source files for debugging:
Temporary breakpoint 1, 0x004005b0 in main ()
1 /home/cross/.build/i486-unknown-linux-gnu/src/gcc/libgcc/libgcc2.c: No such file or directory.
- currently gcc has a PKGBUILD modified by hand instead of diff seds in DESCR
(the diff is very big and complex)
- there is really no need to copy stage 1 repo /packages/i486 onto the hdd
- make: recursive targets like all-recursive don't work, the root cause is bash,
=> rebuilding bash on the target as first package works, but it's a workaround
- cross-compiled pacman has issues with repos:
error: could not register 'temp' database (wrong or NULL argument passed)
error: no usable package repositories configured.
=> we cannot install via the [temp] repo
=> on the long term, debug pacman and libalpm and see what could be the root cause
- our expectiation is makepkg -o -e would do the trick, but it doesn't
- cracklib and other packages: something is broken in zlib and thwe way libtool is used there:
strip: /usr/lib/libz.so.1: no version information available (required by /usr/lib/libbfd-2.29.1.so)
=> this is because some tools are built with other versions (toolchain vs. chroot)
=> so we must not install zlib before we rebuild binutils
- better "package already built" test (example pacman and pacman-mirrorlist)
dito linux and linux-api-headers
- syslinux: python cmenu issues (a generator), python is out of reach for stage2 to
make it a build requirement!
- syslinux: linking issues, header section too small in ld linker script
- syslinux: shouldn't we switch to another easier boot manager? or to grub?
- we lack a hdd and iso creator, for now we just take stage1 for stage2 and stage2
stage 3 issues:
- some packages don't install (also in stage 1): iana-etc, filesystem
- can we build layers in parallel?
- linux-atm, we should actually build the kernel first
- pacman-key --refresh:
gpg: connecting dirmngr at '/etc/pacman.d/gnupg/S.dirmngr' failed: IPC connect call failed
gpg: keyserver refresh failed: No dirmngr
- libtool relink during installation issues in toolchain (libquadmath)
- python-pip-bootstrap for starting with setuptools and pip and wheel, they conflict
with the vanilla packages, so we have to force to overwrite the shimmed files.
stage 4 issues:
- nss and generation of ca-certificates-mozilla