Tools for building 32-bit archlinux packages from archlinux.org's official, 64-bit tested PKGBUILDs et al.
Andreas Baumann 8f2170c141 broken-packages-candidates: making output nicer in -p case 2 days ago
bin broken-packages-candidates: making output nicer in -p case 2 days ago
conf bin/build-packages: :haskell_without_check: should not skip if it's not a haskell-* package - it should rather append a build trial including straw :without_check: if it is such a package 2 months ago
lib lib/common-functions: add dependencies for linux-*-{docs,headers} -> linux-* with version 3 weeks ago
misc `calculate_maximal_moveable_set` should deliberately break dependencies of to-be-deleted packages 4 days ago
.gitignore add .gitignore 2 years ago
LICENSE Initial commit 2 years ago
README.md update README.md 2 months ago

README.md

builder

tools for building 32-bit archlinux packages from archlinux.org's official, 64-bit tested PKGBUILDs et al. This includes scripts to be run on the build master as well as scripts to be run on the build slaves (both residing in bin). The sources are currently hosted on https://git.archlinux32.org/archlinux32/builder.

requirements

  • moreutils
  • lsof

build master only

  • base-devel
  • git
  • ii
  • inotify-tools
  • some mysql-server (mariadb + stunnel)
  • nginx or equivalent
  • parallel
  • pkgfile
  • rsync
  • screen
  • some ssh-server

build slave only

  • some ssh-client
  • wget
  • devtools32
  • sudo rights required by devtools32

configuration

The standard configuration in conf/*.conf.example can be locally overwritten by removing the .example suffix, uncommenting the desired variables and changing the values.

build master only

  • add command=".../bin/slave-build-connect $slave-identifier" $ssh-key to ~/.ssh/authorized_keys for each build slave

build slave only

  • set keyserver-options auto-key-retrieve in ~/.gnupg/gpg.conf
  • enable [releng] repository in /etc/pacman.conf with an i686 mirror

tools for the build master and the build slaves

  • check-opcodes: Scan binaries for certain opcodes.
  • clean-git: Clean the packages' git repositories.
  • opcode: Helper for check-opcodes.
  • strict-bashism-check: Strict style check for this code base.

tools for the build master

  • bootstrap-mysql: Bootstrap the mysql database.
  • build-master-status: Print some informational statistics.
  • check-bugtracker: Receive list of packages with issues from the bug tracker.
  • check-db-structure: Dump the structure of the database.
  • check-mirrors: Check responsiveness of mirrors and update database accordingly.
  • check-upstream-bug-tracker: Check archlinux' bug tracker for reports about packages which are broken on archlinux32 and add wait-for entries in the database.
  • clean-dependencies: Remove run-time dependencies from the database which are not recorded in the package itself.
  • cleanup: Clean up left over files.
  • copy-to-build-support: Copy a package into [build-support].
  • db-update: Move around packages on the master mirror.
  • delete-packages: Delete obsolete packages on the master mirror.
  • filter-build-logs: Filter content of build-logs for display on the webserver.
  • find-obsolete-packages: Find packages which are no longer available upstream.
  • get-assignment: Receive a build assignment from the build-list.
  • get-package-updates: Update the build-list.
  • harvest-commit-times: Harvest the commit times of package sources from git and put them into the database.
  • ii-answer: Answer the irc channel.
  • ii-connect: Connect to the irc channel.
  • ii-watch: Watch the irc channel.
  • interpret-mail: Interpret the content of an email - also checks for validity of the mail.
  • modify-package-state: Modify status of a package in the database.
  • ping-from-slave: Receive ping from slave.
  • prioritize-build-list: Reorder the build list.
  • repo-copy: Step brother of repo-add and repo-remove.
  • return-assignment: Return an assignment - either a tar of built package(s) or of error logs.
  • sanity-check: Check sanity of build master.
  • seed-build-list: Seed the build list from an upstream mirror or a manual package list.
  • slave-build-connect: Proxy command to be allowed for connection via ssh from build slaves - this way, they can execute exactly the commands they need to operate.
  • systemd-email: Helper to add sendmail capability to systemd services.
  • update-pacman-dbs: Update the pacman databases required by wtf.
  • why-dont-you: Script to investigate why a (desired) action is not done.
  • wtf: Find which package contains a given file.
  • wtp: Find a package.

tools for the build slaves

  • build-packages: Get a build assignment from the build master, build it and report back.
  • clean-cache: Remove packages from /var/cache/archbuild32 which do not match their checksum.
  • local-build-package: Build package without involvement of build-master.
  • ping-to-master: Ping the build master to show the slave is still compiling.

working directory

In the standard configuration, the directory work will be used to cache some volatile data, as well as the git repositories of PKGBUILDs and modifications (in repos/packages, repos/community, repos/packages32).

shellcheck

Check the scripts in the bin directory with shellsheck -x <script>