Novena packaging overview

From Studio Kousagi Wiki
Jump to: navigation, search

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:

  1. Clone the repo using git
  2. List available tags
  3. Build a package using git-buildpackage
  4. Copy the resulting .deb file to the target machine

An example of the steps to take to build u-boot-novena:

   git clone
   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*
   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:

  1. 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
  2. Make any changes you need to make to the source file
  3. Commit everything to git. There should be no untracked files, so add tempfiles and .o files to .gitignore
  4. 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"
  5. 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_*")
  6. Run git-buildpackage -us -uc --git-remote-tag=[tagname]

The package will build, and source files will appear in the parent directory.

Available packages