Debian Buildpackages

From Linux PARISC Wiki
(Difference between revisions)
Jump to: navigation, search
m (How to cross-compile debian kernel on x86 for hppa)
m (How to cross-compile debian kernel on x86 for hppa)
Line 182: Line 182:
 
: for 64bit:  
 
: for 64bit:  
 
:: DPKG_FLAGS="-d -nc"  make -C ../linux O=`pwd` -j 20 ARCH=parisc64 bindeb-pkg
 
:: DPKG_FLAGS="-d -nc"  make -C ../linux O=`pwd` -j 20 ARCH=parisc64 bindeb-pkg
: or for older kernels before v5.16: make -j 30 ARCH=parisc64 CROSS_COMPILE=hppa64-linux-gnu- bindeb-pkg
+
: or for older kernels  
 +
:: v5.10: DPKG_FLAGS="-d -nc" make -C ../linux O=`pwd` -j 8 ARCH=parisc bindeb-pkg
 +
:: v5.16: make -j 30 ARCH=parisc64 CROSS_COMPILE=hppa64-linux-gnu- bindeb-pkg
  
 
If you choose to build debian source package kernel, you may need to  
 
If you choose to build debian source package kernel, you may need to  

Revision as of 19:07, 20 August 2022

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
Jessica 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/
How to use debian schroot
https://dsa.debian.org/doc/schroot/
List of debian porterboxes: https://db.debian.org/machines.cgi?sortby=purpose&sortorder=dsc
How to upload a new debian package for debian developers
Set up sbuild: https://wiki.debian.org/sbuild
Build the package on amd64 with sbuild and argument "--source-only-changes"
Upload the source.changes file.
How to create backport:
Wait until package is in testing (unstable isn't sufficient)
run "dch --bpo" on this package to get backports changelog
Build package with sbuild --debbuildopts="-vVERSION". VERSION is current version of package in stable.
Then upload to ftp-master independen of distribution, and stretch-backports-sloppy see: https://backports.debian.org/news/buster-backports/

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 '{}' \;

Prevent regeneration of mandb

  • /var/lib/man-db/auto-update (touch it or remove it)

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\ \<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 import a new porterbox apt key
Problem is like this:
Err:7 https://db.debian.org/debian-admin debian-all Release.gpg
The following signatures were invalid: EXPKEYSIG 661EBB0E456D79AB db.debian.org archive key 2014
Solution: Download key from https://salsa.debian.org/debian-ports-team/dsa-puppet/-/blob/cf872d5d5fe797e40f1bdf3855cda8309e2e10e1/modules/debian-org/files/db.debian.org.gpg
then import it with "apt-key import db.debian.org.gpg"
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


How to cross-compile debian kernel on x86 for hppa

  1. git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git linux-5.10.y --depth 1
  2. copy .config from debian into kernel directory
How to cross-build debian kernel from sources from kernel.org on Fedora
for 32bit:
DPKG_FLAGS="-d -nc" make -C ../linux O=`pwd` -j 20 ARCH=parisc bindeb-pkg
for 64bit:
DPKG_FLAGS="-d -nc" make -C ../linux O=`pwd` -j 20 ARCH=parisc64 bindeb-pkg
or for older kernels
v5.10: DPKG_FLAGS="-d -nc" make -C ../linux O=`pwd` -j 8 ARCH=parisc bindeb-pkg
v5.16: make -j 30 ARCH=parisc64 CROSS_COMPILE=hppa64-linux-gnu- bindeb-pkg

If you choose to build debian source package kernel, you may need to

  • symlink in /usr/bin: ln -s hppa64-linux-gnu-gcc-10 hppa64-linux-gnu-gcc
  • disable ABI checks in debian/bin/buildcheck.py, and
  • drop *perf* package from: debian/control
Personal tools