-
Notifications
You must be signed in to change notification settings - Fork 76
packaging burp
I have some plans to test burp2 as server with protocol one (clients running burp1 in this case). Burp compiling is ver easy, Graham and collaborators have made an excelent README.md on the sources available at github. But I prefer to have packages instead of installing dependencies for compiling the software on each server, with packages it's also easier to maintain (remove, upgrade). Because there is no ppa with burp2. In this case I have been looking for some way to create a deb package for Ubuntu trusty (the version actually I use for servers). I had to spent more time than expected, ofcourse with no previous experience packaging it maybe had to be expected (something around 5hs to have everything clear and working).I had to look over many documentation, so I'm creating a ppa and and also documenting what I got in this experience today. My goal with this document is to help others in creating their own packages, and also invite some others to write similar guide for other distributions (Redhat, opensuse, etc).
It could need some more tunning...
Authors here:
- Pablo Estigarribia (pablodav at gmail)
git clone git://github.com/grke/burp.git
git checkout 2.0.36 # Example to move to some tag
sudo apt-get install make pkg-config check g++ librsync-dev libz-dev libssl-dev uthash-dev libyajl-dev
sudo apt-get install autoconf automake libtool
sudo apt-get install build-essential fakeroot devscripts
sudo apt-get install packaging-dev
Follow some steps: https://help.launchpad.net/Packaging/PPA?action=show&redirect=PPA
Resume:
gpg --gen-key
ssh-keygen
cat ~/.ssh/id_rsa.pub
gpg --fingerprint [email protected]
Upload your key:
gpg --keyserver keyserver.ubuntu.com --send-keys NNNNNNNN
Add to your profile:
https://launchpad.net/~username/+editpgpkeys https://launchpad.net/~username/+editsshkeys
bzr whoami "Name Lastname <[email protected]>"
bzr launchpad-login username
Edit your ~/.bashrc
export DEBFULLNAME="Name Lastname"
export DEBEMAIL="[email protected]"
Add new debian/changelog information
dch -n
Ensure debian/rules has these lines:
override_dh_install:
$(MAKE) DESTDIR=$$(pwd)/debian/burp install
$(MAKE) DESTDIR=$$(pwd)/debian/burp install-configs
$(MAKE) DESTDIR=$$(pwd)/debian/burp install-configs
is important for burp2 because it is the way to build the .conf files in /etc/burp, this was the thing that made me expent more time than anything else, as I got errors because the configuration files where missing on the firsts packages tried.
If you want to build without conf files, you should remove references to the files in debian/rules and debian/burp.lintian-overrides
I had to change debian/control sources to ensure it will work always
Build-Depends: debhelper (>= 9), autotools-dev, libncurses5-dev, libssl-dev, zlib1g-dev, librsync-dev, libacl1-dev, libattr1-dev, uthash-dev, openssl, libyajl-dev, pkg-config, check, g++, libz-dev, make, autoconf, automake, libtool, dh-autoreconf
For this line autoreconf -vif
, I have added the following dh_auto_configure to debian/rules in my package
DH_VERBOSE=1
#Add build flags
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
export DH_VERBOSE=1
%:
dh $@ --with autoreconf,autotools-dev
override_dh_auto_configure:
dh_testdir
dh_auto_configure -- --prefix="/usr" --sysconfdir=/etc/burp --sbindir=\$${prefix}/sbin --mandir=\$${prefix}/share/man --localstatedir=/var CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)"
I will try to upload all these changes to main repository of burp, so burp will be ready to compile on ubuntu later.
Same configuration should work for debian
Compress the source:
tar czf burp-2.0.36.tar.gz burp
Build new this with bzr ready to upload later to ppa:
bzr dh-make burp 2.0.36 burp-2.0.36.tar.gz
You can use just builddeb for debian
bzr builddeb -- -us -uc
sudo dpkg -i ../burp_2.0.36-0ubuntu1_amd64.deb
Here you are ready to use this package in your servers, but you can continue reading to try to upload it to your ppa.
http://packaging.ubuntu.com/html/packaging-new-software.html#next-steps
bzr builddeb -- -S -sa
cd ../build-area
pbuilder-dist trusty create
pbuilder-dist trusty build burp_2.0.36-0ubuntu1.dsc
Upload:
dput ppa:user/burp2-backup burp_2.0.36-0ubuntu1_source.changes
Optional:
Upload your sources to launchpad, not really necesary or recomended:
bzr push lp:~<lp-username>/+junk/hello-package
http://packaging.ubuntu.com/html/packaging-new-software.html https://help.launchpad.net/Packaging/PPA/BuildingASourcePackage https://help.launchpad.net/Packaging/PPA/Uploading https://help.launchpad.net/Packaging/UploadErrors https://wiki.debian.org/BuildingTutorial#Building_the_source_package https://wiki.debian.org/Autoreconf https://www.debian.org/doc/manuals/maint-guide/dother.en.html