Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
developers:jenkins:packaging:debian [2015/12/04 00:44] – remove old package delivery script. oranges | developers:jenkins:packaging:debian [2015/12/29 01:21] (current) – Add example setups oranges | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Building packages on Jenkins with pbuilder ====== | ||
+ | |||
+ | pbuilder is the Debian build system for production packages. | ||
+ | It uses a chroot environment to compile binary packages from source packages on a fresh Debian system. | ||
+ | |||
+ | pbuilder is installed on the x86 and x86-64 Linux Jenkin slaves. To use it you must have a Debian source package mypackage.dsc and upstream' | ||
+ | |||
+ | < | ||
+ | DIST=stretch ARCH=amd64 sudo pbuilder build --buildresult $PWD *.dsc | ||
+ | </ | ||
+ | |||
+ | This will put the resulting binary packages in the current working directory. | ||
+ | If your package depends on other packages not present in the Debian archive, you must copy them to / | ||
+ | |||
+ | You can see example source package setups for qtox/ | ||
+ | |||
+ | You can also see example source package setups for toxic, along with some helper scripts for mass setup of builds and tar commands here https:// | ||
+ | |||
+ | The source packages are ingested into pbuilder and it spits out nicely linked binary packages for shipping to the package server, this means you can do per distro versioning and other useful crud | ||
+ | |||
+ | ====== Making Debian source packages ====== | ||
+ | |||
+ | Please refer to the Debian manual. | ||
+ | |||
+ | https:// | ||
+ | |||
+ | https:// | ||
+ | |||
+ | https:// | ||
+ | |||
+ | https:// | ||
+ | |||
+ | ====== How to make a cheap ass poor man's home-rolled package ====== | ||
+ | |||
Use this skeleton script for your deb package. | Use this skeleton script for your deb package. | ||
Line 54: | Line 88: | ||
rm -rf src || true | rm -rf src || true | ||
- | # PACKAGE_INFO? | + | # PACKAGE_INFO? |
set -a | set -a | ||
source PACKAGE_INFO | source PACKAGE_INFO | ||
Line 74: | Line 108: | ||
Version: $PACKAGE_VERS | Version: $PACKAGE_VERS | ||
License: GPLv3+ | License: GPLv3+ | ||
- | Vendor: | + | Vendor: |
Architecture: | Architecture: | ||
- | Maintainer: | + | Maintainer: |
Installed-Size: | Installed-Size: | ||
Depends: < Dependencies go here, if you have any. > | Depends: < Dependencies go here, if you have any. > | ||
Line 88: | Line 122: | ||
md5_walk_dir package/* >> package/ | md5_walk_dir package/* >> package/ | ||
fakeroot dpkg-deb -b package && mv package.deb " | fakeroot dpkg-deb -b package && mv package.deb " | ||
- | echo "miku the MVP" | ||
echo " | echo " | ||
</ | </ |