Building Releases

From OpenHIP
Jump to: navigation, search

This describes how to build installers for an OpenHIP release. This page is intended to help the OpenHIP developers when creating releases. If you just want to build and run HIP, follow the build instructions on Installation instead. You could use these instructions to build your own installers.

Release prep and source tarball

First edit configure.ac and change the AC_INIT(OpenHIP, 0.9, ...) line to the new release version.

Build a distribution tarball using make dist.

Check for missing (or extra) files against the exported SVN directory.

 svn copy  https://openhip.svn.sourceforge.net/svnroot/openhip/hip/trunk  https://openhip.svn.sourceforge.net/svnroot/openhip/hip/tags/release-0.9
 svn export https://openhip.svn.sourceforge.net/svnroot/openhip/hip/tags/release-0.9 hip-0.9


Ship it!

Building a Debian DEB package

Debian packages are built using the pbuilder-dist package builder. Some prerequisites:

 sudo apt-get install ubuntu-dev-tools
 sudo apt-get install devscripts debhelper cdbs pbuilder

If you are behind a proxy, add "export http_proxy=http://myproxy.com" to /etc/pbuilderrc.

Unpack the distribution tarball and generate a dsc and original.tar.gz file.

 tar xzf openhip-0.9.tar.gz
 cd openhip-0.9
 ./bootstrap.sh
 ./configure
 make deb
 cd ..

The above creates a debian/ subdir having control files. Now we generate the .dsc and .tar.gz files that pbuilder will use.

 dpkg-source -b openhip-0.9

Given the .dsc and .tar.gz, packages can now be built for various distributions:

 pbuilder-dist oneiric amd64 build openhip_0.9-0ubuntu1.dsc
 pbuilder-dist oneiric i386 build openhip_0.9-0ubuntu1.dsc
 pbuilder-dist natty amd64 build openhip_0.9-0ubuntu1.dsc
 pbuilder-dist natty i386 build openhip_0.9-0ubuntu1.dsc
 pbuilder-dist maverick amd64 build openhip_0.9-0ubuntu1.dsc
 ...

Easy. You should now have a file in ~/pbuilder/oneiric-amd64_result/openhip_0.9-0ubuntu1_amd64.deb.

For release candidates, the version string 0.9_RC1 is not valid per Debian Policy, so you need to fix up the control file to be 0.9-RC1.

Building a RedHat RPM package

The RPM build process uses Fedora's mock to build for various distros.

 yum install rpmdevtools mock

If you are behind a proxy, you'll want to set the following line in your /etc/mock/default.cfg (and other distro .cfg files):

 proxy=http://myproxy.com

First build an OpenHIP source RPM from the distribution tarball that mock can work with:

 tar xzf openhip-0.9.tar.gz
 cd openhip-0.9.tar.gz
 ./bootstrap.sh
 ./configure
 # could instead use 'make dist' here
 cp ../openhip-0.9.tar.gz
 make rpm

This uses rpmdev-setuptree to make directories in ~/rpmbuild/ if they do not already exist. Then rpmbuild is used to build a source RPM that ends up in ~/rpmbuild/SRPMS/openhip-0.9-1.src.rpm.

Now go to town using mock:

 mock -r fedora-16-x86_64 rebuild openhip-0.9-1.src.rpm
 mock -r fedora-16-i386 rebuild openhip-0.9-1.src.rpm
 mock -r fedora-15-x86_64 rebuild openhip-0.9-1.src.rpm
 mock -r fedora-15-i386 rebuild openhip-0.9-1.src.rpm
 mock -r fedora-14-x86_64 rebuild openhip-0.9-1.src.rpm
 mock -r fedora-14-i386 rebuild openhip-0.9-1.src.rpm
 mock -r epel-6-x86_64 rebuild openhip-0.9-1.src.rpm
 mock -r epel-6-i386 rebuild openhip-0.9-1.src.rpm

Resulting RPM files end up in directories such as /var/lib/mock/fedora-16-x86_64/result/.

Ship!

Building a Windows Installer

OpenHIP uses the Nullsoft Scriptable Install System (NSIS) for building a Windows setup executable. Download and install it first. OpenHIP is not too dependent on the version used, for example NSIS-2.44 (Feb 2009) was used to build openhip-0.6-install.exe. The Simple Firewall Plugin is used to detect and disable the Windows Firewall during installation.

  • Download and install NSIS 2.44 or greater
  • Download the NSIS Simple Firewall Plugin 1.16 or greater. Put the DLL file into your c:\Program Files\NSIS\Plugins> folder per the plugin's installation instructions.
  • Follow the instructions under Installation for building OpenHIP from source
  • Copy hipmon.exe to the hip-0.6/bin folder
    TODO: we need instructions here on how to build hipmon.exe; however, this system tray app is being phased out in favor of the pekka cross-platform UI
  • Browse to the hip-0.6/src/win32/install-win32 folder, right-click on openhip.nsi and choose Compile NSIS Script. This should launch the NSIS compiler dialog and produce an openhip-0.6-install.exe file.

Building a Mac OS X DMG package