Debian Buildpackages

From Linux PARISC Wiki
Revision as of 18:35, 30 January 2021 by Deller (Talk | contribs)

Jump to: navigation, search


Debian Buildservers

Since December 2013 we have debian unstable buildservers.
Current build status is here:
Contacts for the debian HPPA buildds
Helge Deller <>, PA-RISC Kernel maintainer, buildd maintainer
John David Anglin <>, HPPA GCC, and binutils maintainer
Jessica Clarke provides easy-to-use scripts to set up a buildd server
old repo:
How to use debian schroot
List of debian porterboxes:
How to upload a new debian package for debian developers
Set up sbuild:
Build the package on amd64 with sbuild and argument "--source-only-changes"
Upload the source.changes file.

Some other info:

Build chroot requirements

  • openfoam requires up to 40GB disc space
  • I'm running the buildd chroot in a ramdisc. In /etc/fstab I have:
 tmpfs /srv/buildd/unpack tmpfs size=40G 0 2

Tips to manually build debian Linux kernel

  • by adding "debug-info: false" to the [build] section in debian/config/hppa/defines avoids building the debug info

Autosign packages via cron:

  • @hourly buildd find upload -name *changes -type f -cmin -60 -cmin +20 -exec debsign -k 43374411AA94178C84FE52A8489F10615531D26E --re-sign '{}' \;

How to manually build debian packages

Prevent mandb run
echo 'man-db man-db/auto-update boolean false' |sudo debconf-set-selections
How to get a specific version of a source package
apt-get source packagename=version
How to build a package (without modifying source)
dpkg-buildpackage --force-sign -B -sa -m<email>
e.g.: dpkg-buildpackage --force-sign -sa -mHelge\ Deller\ \<\> -kB51E3864 -j5
or in a chroot environment:
DEB_BUILD_OPTIONS=nocheck sbuild -s -mHelge\ Deller\ \<\> --dist=unstable --no-arch-all --no-source -j5
How to build a package (*with* modified source)
dch --distribution unstable --bin-nmu Rebuild b1
dpkg-buildpackage --force-sign -B -sa -m<email>
How to modify debian changelog
dch --distribution unstable --bin-nmu Rebuild b1
dch-git --since <commit_nr>
How to sign packages (with debsign)
debsign -k <key> packagename.changes
How to sign packages (without debsign)
Create Debian chroot
apt-get install debian-ports-archive-keyring
/usr/sbin/sbuild-createchroot --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg --include=debian-ports-archive-keyring,eatmydata unstable build/chroot-unstable
On the physical server (outside of chroot) for building experimental
adduser --force-badname --system -home /var/empty --no-create-home --quiet _apt
chmod 666 /dev/ptmx # if permissions aren't that yet
In each chroot to be fixed
Remove the link in the /usr/hppa64-linux-gnu directory to /usr/include:
ls -lad /home/build*/build*/chroot-*/usr/hppa64*/include
In each chroot, /etc/hosts has to look like this (e.g. needed for mod-gnutls package)       localhost sibaris localhost.localdomain
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters
In each chroot modify (for unstable) /etc/apt/sources.list
deb [arch=all] buildd-unstable main
deb [arch=all] unstable main
deb unstable main
deb unstable main
# deb experimental main
# main/debian-installer
deb-src unstable main
deb-src buildd-unstable main
For building debian packages in the chroots, store the following script as /usr/bin/fix-buildd into the chroots,
and modify the chroot definitions in /etc/schroot/chroot.d/ to include this line
# Various fixes for the debian builds
# everything in a function to avoid environment pollution
runprog() {
  local cmd
  # 1. vtk6 builds fail if DOT_NUM_THREADS is not set to 1 (machine gets unresponsive)
  # 2. enable parallel building of packages
  # execute the command
  exec "$cmd" "$@"
runprog "$@"
wanna-build interface
How to create multiple buildds on one server
Create new user "buildd2", use new UID, but keep GID "buildd" (without "2"). Use new homedir, e.g. /home/buildd2
Add user buildd2 to groups sbuild and buildd in /etc/group
Copy original homedir from buildd to /home/buildd2 (you won't need existing Logs and upload-debs)
Change ownership of /home/buildd2: "chmod -R buildd2.buildd /home/buildd2"
Create a new chroot with /usr/sbin/sbuild-createchroot (name e.g. "unstable2"). Update the generated /etc/schroot/chroot.d/XXX file. Usually I have my chroots then under /home/buildd2/build-trees/chroots/
In ~buildd2 create new .sbuildrc und .builddrc files, and change wanna_build_db_user => "buildd_hppa-phantom2" and sbuild_chroot => "unstable2-hppa-sbuild"
Log in as buildd2 and manually run "buildd" to check if everything works.
If everything worked add the buildd-cronjobs for buildd2 in /etc/cron.d/buildd (copy existing entries and change copied entries to use "buildd2" instead of "buildd"
How to setup a dd porterbox.
How to create a palo iplboot image from official Debian install CD
palo --init-tape=lifimage -k vmlinux-3.13-1-parisc.gz -k vmlinux-3.13-1-parisc64-smp.gz -r initrd.gz --commandline='0/vmlinux initrd=0/ramdisk panic_timeout=60 panic=-1 debian-installer/allow_unauthenticated=true mirror/http/ mirror/http/directory=/debian'
How to build haskell/uuagc
cd <uuagc source directory>
ghc --make Setup.hs -o setup -package Cabal
./setup configure
./setup build
./setup install
Personal tools