Cross-building Debian packages and rebootstrap ============================================== Introduction ------------ * Recent discussion in debian-cross ML: https://lists.debian.org/debian-cross/2018/06/msg00000.html * Consideration * share the current development state of cross-building * clarify new issues to be solved * future plan of such kind of activities Exchanging people's interests and priorities (Timed-limited) ------------------------------------------------------------ * Kazu: * 1. Make as many packages cross-buildable as possible * Priority: popcon + packages usually used in our products * Solving "missing perl-base, python*" related issues, because many packages are "unsatisfiable" in http://subdivi.de/~helmut/cross_report_20180614.html * 2. Sharing common ways to test cross-building * Tool: sbuild * How to setup build env (drop CONFIG_SITE, DEB_BUILD_*, --add-depends?) * Documentating * 3. Common build infrastructure in Debian community (cross-buildd) * Hardware sponsor for running a cross buildd? * Required H/W resources? * Developing and maintaining the tooling that can setup and do builds? * zumbi: * "Cross-distro" support: cross building packages between different Linux distributions (e.g. cross build application to another distro such apertis or pureos) * Helmut: * Enable building Debian from source (bootstrap, initially cross bootstrap) * cross building all of Debian exhibits toolchain problems and gives a better view of what build profiles are necessary * ruinland?: * Improve docuementation/wiki pages * riscv64 * Kay Williams: * evaluating Debian as an operating system to build on * image building * ? * cross building installation media * guix? * ... Your interests and priorities Discussion ---------- * Recent issues in debian-cross -> https://lists.debian.org/debian-cross/2018/06/msg00000.html * making more packages cross buildable? * make perl cross buildable? * cross translatable toolchain dependencies? * reduce toolchain bootstrap to two stages? * foreign image building without qemu? * ... your problems * How to share efforts (i.e. patches, testing, investigation) for cross-building packages * debian-cross ML * Avoid duplications -> Use common user and user tag in BTS * user debian-cross@lists.debian.org usertags ftcbfs * user debian-cross@lists.debian.org usertags cross-satisfiability * user helmutg@debian.org usertags rebootstrap (for general cross/bootstrap bugs) * usertag:"ftcbfs" for bugs about cross building a package where Build-Depends are cross-installable, but the build fails. * usertag: "cross-satisfiability" for bugs about packages that fail to satisfy their cross Build-Depends or that cause other packages to fail dependency satisfaction. * Infrastructure for cross-building packages * First step: Clarify how to setup cross-build environment and share * Fix the defaults in sbuild/pbuilder. Make --host/--host-arch just work. * Goal: cross-buildd? * Helmut's sbuild invocation: + sbuild + -d sid + --host=$arch + --profiles=nocheck,cross # nocheck reduces dependencies, cross adds some. Maybe push into sbuild/pbuilder whenever --host is given? + --add-depends="libc-dev, libstdc++-dev" # work around #815172, pbuilder does this automatically + --post-build-commands="home_grown_validator %SBUILD_CHANGES" # extract .debs and fail if there are any build arch ELF objects. a sanity check. rarely triggers. equivalent to lintian tag binary-from-other-architecture + --chroot-setup-commands="install -D /dev/null /etc/dpkg-cross/cross-config.%SBUILD_HOST_ARCH" # dpkg-cross' config.site is very broken + --debbuildopt=-J1 # readable build logs + --bd-uninstallable-explainer=apt # when building packages that dose thinks to be satisfiable, the dose (default) explainer is useless + --no-run-lintian # out of scope + --no-arch-all # should that be default when --host is given? used to be default + $pkg_$version * Involving people who are interested in this topic * e.g. Add information in PTS (package tracking system) -> How? * Documentating using Wiki to share information * Various pages of varying quality. How to organize/improve? * https://wiki.debian.org/CrossBuildPackagingGuidelines * https://wiki.debian.org/CrossCompiling * ... * Various pages on particular problem areas * https://wiki.debian.org/CrossTranslatableBuildDeps * https://wiki.debian.org/ReleaseGoals/CrossBuildableBase * https://wiki.debian.org/Teams/Ruby/CrossBuilding * ... Fonzie(BnW.h): suggests installation images (or installing media) could be done the [GNU Guix](https://www.gnu.org/software/guix/) way * CI Communication: irc #debian-bootstrap