Debian Buildpackages
From Linux PARISC Wiki
(Difference between revisions)
m (→How to build debian packages) |
m |
||
(31 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | == | + | === Debian Buildservers === |
− | ; | + | ; Since December 2013 we have debian unstable buildservers. |
− | : https:// | + | : Current build status is here: https://buildd.debian.org/status/architecture.php?a=hppa&suite=sid |
− | ; | + | ; Contacts for the debian HPPA buildds |
− | : https://www.wzdftpd.net/redmine/projects/general/wiki/DebianBuildd | + | : Helge Deller <deller@gmx.de>, PA-RISC Kernel maintainer, buildd maintainer |
+ | : John David Anglin <dave.anglin@bell.net>, HPPA GCC, and binutils maintainer | ||
+ | |||
+ | ; James Clarke provides easy-to-use scripts to set up a buildd server: | ||
+ | : https://wiki.debian.org/PortsDocs/BuilddSetup | ||
+ | : https://salsa.debian.org/debian-ports-team/dsa-puppet | ||
+ | : old repo: https://anonscm.debian.org/git/users/jrtc27/dsa-puppet.git/ | ||
+ | |||
+ | Some other info: | ||
+ | |||
+ | * [https://lists.debian.org/debian-68k/2013/10/msg00006.html Setting up buildd server with btrfs] | ||
+ | * [https://wiki.debian.org/DebianWannaBuildInfrastructureOnOneServer DebianWannaBuildInfrastructureOnOneServer] | ||
+ | * [https://www.wzdftpd.net/redmine/projects/general/wiki/DebianBuildd Another description on how to set up a buildd] | ||
+ | * [http://blog.cihar.com/archives/2010/09/29/using-pgp-subkeys-signing/ How to use subkeys for signing on buildds] | ||
+ | |||
+ | == 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 | ||
+ | |||
+ | == How to manually build debian packages == | ||
− | ; | + | ; How to get a specific version of a source package |
− | : | + | : apt-get source packagename=version |
; How to build a package (without modifying source): | ; How to build a package (without modifying source): | ||
Line 14: | Line 39: | ||
: e.g.: dpkg-buildpackage --force-sign -sa -mHelge\ Deller\ \<deller@gmx.de\> -kB51E3864 -j5 | : e.g.: dpkg-buildpackage --force-sign -sa -mHelge\ Deller\ \<deller@gmx.de\> -kB51E3864 -j5 | ||
: DEB_BUILD_OPTIONS=nocheck | : DEB_BUILD_OPTIONS=nocheck | ||
+ | : or in a chroot environment: | ||
+ | : DEB_BUILD_OPTIONS=nocheck sbuild -s -mHelge\ Deller\ \<deller@gmx.de\> --dist=unstable --no-arch-all --no-source -j5 | ||
; How to build a package (*with* modified source): | ; How to build a package (*with* modified source): | ||
Line 19: | Line 46: | ||
: dpkg-buildpackage --force-sign -B -sa -m<email> | : dpkg-buildpackage --force-sign -B -sa -m<email> | ||
− | ; How to | + | ; 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) | ; How to sign packages (without debsign) | ||
Line 28: | Line 59: | ||
: https://www.wzdftpd.net/redmine/projects/general/wiki/DebianBuildd | : https://www.wzdftpd.net/redmine/projects/general/wiki/DebianBuildd | ||
: apt-get install debian-ports-archive-keyring | : 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 unstable build/chroot-unstable http://ftp. | + | : /usr/sbin/sbuild-createchroot --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg --include=debian-ports-archive-keyring,eatmydata unstable build/chroot-unstable http://ftp.ports.debian.org/debian-ports/ |
: https://wiki.debian.org/sbuild | : https://wiki.debian.org/sbuild | ||
: https://www.ca-zephyr.org/mediawiki/index.php/Some_Notes | : https://www.ca-zephyr.org/mediawiki/index.php/Some_Notes | ||
+ | |||
+ | ; 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: | ; 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 | : 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) | ||
+ | 127.0.0.1 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] http://incoming.debian.org/debian-buildd buildd-unstable main | ||
+ | deb [arch=all] http://ftp.debian.org/debian unstable main | ||
+ | deb http://ftp.ports.debian.org/debian-ports unstable main | ||
+ | deb http://incoming.ports.debian.org/buildd unstable main | ||
+ | # deb http://ftp.ports.debian.org/debian-ports experimental main | ||
+ | # main/debian-installer | ||
+ | deb-src http://ftp.debian.org/debian unstable main | ||
+ | deb-src http://incoming.debian.org/debian-buildd 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: command-prefix=fix-buildd | ||
+ | |||
+ | #!/bin/sh | ||
+ | #- | ||
+ | # 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) | ||
+ | DOT_NUM_THREADS=1 | ||
+ | export DOT_NUM_THREADS | ||
+ | # 2. enable parallel building of packages | ||
+ | NUMCPU=$(getconf _NPROCESSORS_ONLN) | ||
+ | DEB_BUILD_OPTIONS="parallel=$NUMCPU" | ||
+ | export DEB_BUILD_OPTIONS | ||
+ | # execute the command | ||
+ | cmd=$1 | ||
+ | shift | ||
+ | exec "$cmd" "$@" | ||
+ | } | ||
+ | runprog "$@" | ||
; wanna-build interface: | ; wanna-build interface: | ||
Line 43: | Line 116: | ||
: http://kmuto.jp/open.cgi?buildd | : http://kmuto.jp/open.cgi?buildd | ||
− | = | + | ; 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. | |
+ | : See https://wiki.debian.org/NonDSAPorterBoxSetUp | ||
− | + | ; 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/hostname=mkhppa3.esiee.fr mirror/http/directory=/debian' | ||
− | + | ; How to build haskell/uuagc: | |
− | + | : http://foswiki.cs.uu.nl/foswiki/HUT/AttributeGrammarManual | |
− | + | cd <uuagc source directory> | |
− | + | ghc --make Setup.hs -o setup -package Cabal | |
− | + | ./setup configure | |
− | : http:// | + | ./setup build |
− | + | ./setup install | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Revision as of 07:26, 21 January 2019
Contents |
Debian Buildservers
- Since December 2013 we have debian unstable buildservers.
- Current build status is here: https://buildd.debian.org/status/architecture.php?a=hppa&suite=sid
- Contacts for the debian HPPA buildds
- Helge Deller <deller@gmx.de>, PA-RISC Kernel maintainer, buildd maintainer
- John David Anglin <dave.anglin@bell.net>, HPPA GCC, and binutils maintainer
- James Clarke provides easy-to-use scripts to set up a buildd server
- https://wiki.debian.org/PortsDocs/BuilddSetup
- https://salsa.debian.org/debian-ports-team/dsa-puppet
- old repo: https://anonscm.debian.org/git/users/jrtc27/dsa-puppet.git/
Some other info:
- Setting up buildd server with btrfs
- DebianWannaBuildInfrastructureOnOneServer
- Another description on how to set up a buildd
- How to use subkeys for signing on buildds
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
How to manually build debian packages
- 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\ \<deller@gmx.de\> -kB51E3864 -j5
- DEB_BUILD_OPTIONS=nocheck
- or in a chroot environment:
- DEB_BUILD_OPTIONS=nocheck sbuild -s -mHelge\ Deller\ \<deller@gmx.de\> --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)
- http://purplefloyd.wordpress.com/2009/02/05/signing-deb-packages/
- Create Debian chroot
- https://www.wzdftpd.net/redmine/projects/general/wiki/DebianBuildd
- 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 http://ftp.ports.debian.org/debian-ports/
- https://wiki.debian.org/sbuild
- https://www.ca-zephyr.org/mediawiki/index.php/Some_Notes
- 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)
127.0.0.1 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] http://incoming.debian.org/debian-buildd buildd-unstable main deb [arch=all] http://ftp.debian.org/debian unstable main deb http://ftp.ports.debian.org/debian-ports unstable main deb http://incoming.ports.debian.org/buildd unstable main # deb http://ftp.ports.debian.org/debian-ports experimental main # main/debian-installer deb-src http://ftp.debian.org/debian unstable main deb-src http://incoming.debian.org/debian-buildd 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
- command-prefix=fix-buildd
#!/bin/sh #- # 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) DOT_NUM_THREADS=1 export DOT_NUM_THREADS # 2. enable parallel building of packages NUMCPU=$(getconf _NPROCESSORS_ONLN) DEB_BUILD_OPTIONS="parallel=$NUMCPU" export DEB_BUILD_OPTIONS # execute the command cmd=$1 shift exec "$cmd" "$@" } runprog "$@"
- wanna-build interface
- https://wiki.debian.org/M68k/Porting#binNMU_notes
- http://lists.debian.org/debian-68k/2012/12/msg00124.html
- http://lists.debian.org/debian-68k/2013/10/msg00021.html
- http://kmuto.jp/open.cgi?buildd
- 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.
- See https://wiki.debian.org/NonDSAPorterBoxSetUp
- 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/hostname=mkhppa3.esiee.fr mirror/http/directory=/debian'
- How to build haskell/uuagc
- http://foswiki.cs.uu.nl/foswiki/HUT/AttributeGrammarManual
cd <uuagc source directory> ghc --make Setup.hs -o setup -package Cabal ./setup configure ./setup build ./setup install