Novena packaging overview
Novena packages are built as .deb files from source. The majority of files live in git, so you should use git-buildpackage to build the output .deb file.
Building .deb files
All packages have tagged releases, and you must pass this release name to git-buildpackage in the form of --git-upstream-tag. The basic steps you should take to build a package are:
- Clone the repo using git
- List available tags
- Build a package using git-buildpackage
- Copy the resulting .deb file to the target machine
An example of the steps to take to build u-boot-novena:
git clone https://github.com/xobs/u-boot-novena.git git-buildpackage -us -uc --git-upstream-tag=v2014.10-novena-rc5
This will result in a few files getting generated in the parent directory:
xobs@xobs-novena ~/C/n/u-boot-novena-1.0> ls ../u-boot-novena_2014.10-novena* ../u-boot-novena_2014.10-novena.orig.tar.gz ../u-boot-novena_2014.10-novena-rc5_armhf.build ../u-boot-novena_2014.10-novena-rc5_armhf.changes ../u-boot-novena_2014.10-novena-rc5_armhf.deb ../u-boot-novena_2014.10-novena-rc5.debian.tar.xz ../u-boot-novena_2014.10-novena-rc5.dsc xobs@xobs-novena ~/C/n/u-boot-novena-1.0>
These same steps can be taken for any files packaged for Novena.
Modifying source
Modifying the source can be a bit tricky, because the git repo must be clean in order to build (unless you pass additional arguments to git-buildpackage). Generally, perform the following steps:
- Run debchanges. Be sure to make the following changes:
- Update the version number (in the first line) to something valid, as this will be in the version of the resulting .deb
- Change "UNRELEASED" to something like "unstable" or "stable"
- Modify the list of changes using bullet points
- Add your name to the sign-off line
- Put your correct email address into the sign-off line
- Save and close the file
- Make any changes you need to make to the source file
- Commit everything to git. There should be no untracked files, so add tempfiles and .o files to .gitignore
- Tag the release using "git tag", e.g. "git tag v1.1". If you're testing a release, delete the old tag first with "git tag -d", e.g. "git tag -d v1.1; git tag v1.1"
- If you're re-running a tag (e.g. you had to run "git tag -d"), remove the source files from the parent directory, e.g. "rm -f ../pulseaudio-novena_*")
- Run git-buildpackage -us -uc --git-remote-tag=[tagname]
The package will build, and source files will appear in the parent directory.
Available packages
- pulseaudio-novena
- novena-disable-ssp
- u-boot-novena
- Novena linux-kernel
- novena-firstrun
- irqbalance
- xorg-novena -- Configuration files for Novena
- xserver-xorg-video-armada -- Accelerated X server
- novena-eeprom -- Editor for the configuration EEPROM
- novena-eeprom-gui -- GUI editor for the configuration EEPROM
- novena-usb-hub -- Program to manipulate USB hib status
- firmware-senoko -- Firmware blob / updater for Senoko battery board
- novena-heirloom -- Support packages for the heirloom model