An open API service indexing awesome lists of open source software.

https://github.com/mumble-voip/mumble-ubuntu-ppa

Template Debian package used to generate the Mumble team's PPAs on Launchpad.
https://github.com/mumble-voip/mumble-ubuntu-ppa

mumble mumble-server ppa ubuntu

Last synced: 2 months ago
JSON representation

Template Debian package used to generate the Mumble team's PPAs on Launchpad.

Awesome Lists containing this project

README

        

# Mumble Ubuntu PPA template package

This git repository contains a template Debian package that we use to
generate the Mumble PPAs that live on Launchpad:

| PPA | Description |
| --- | --- |
| [release][ppa-release] | Current stable release of Mumble and Mumble Server |
| [snapshot][ppa-snapshot] | Current development snapshot of Mumble and Mumble Server for testind and bleeding-edge features and fixes |

The provided packages are the client `mumble` and the server `mumble-server`.

## Context

PPA stands for Personal Package Archive.

While a distribution like Ubuntu prepares and offers official packages (builds) maintained by a dedicated maintainer these packages can become outdated compared to the upstream source project because of the fixed release cycles of the distribution.

Some distributions offer backports package repositories that backport newer program versions to previous OS distribution versions. But a single backports repository will contain a lot of newer packages instead of just the ones you want to explicitly use newer versions of. Manually managing those (with a lower auto-install priority) is possible, but manual work.

PPAs allow third parties like upstream official projects to host their own package archives which can be added to an installations package sources. These PPAs are often more focused on single software packages.

For Mumble we provide a [release][ppa-release] and a [snapshot][ppa-snapshot] repository (under [~mumble][ppa]). The release PPA holds current stable releases for current and older Ubuntu releases. The snapshot PPA holds current development snapshots for testing and bleeding-edge features and fixes.

### PPA package building

Ubuntu uses the Debian apt deb package system.

This repository holds deb package information and scripts for building deb packages, and for uploading them to the PPA.

### Our infrastructure

In our internal build system we have a job named 'Mumble Ubuntu PPA Submitter' that prepares a package source tar ball that is uploaded to launchpad, built on the launchpad build system, and published in the PPAs for numerous Ubuntu versions.

## General Idea

The idea of this package is to be a base from which packages for various
Ubuntu PPA builds can be built from.

All the entries made by the Mumble team in the changelog are made for
a special release called 'template'. For example, the latest release
as of this writing is 1.2.4~rc1-8-gb115a29-0~template1 and the whole
changelog entry is:

mumble (1.2.4~rc1-8-gb115a29-0~template1) template; urgency=low

* Drop version requirement on libzeroc-ice-dev to build on precise.
* Use bundled CELT codecs to build on raring.
* Add CONFIG+=bundled-opus to force the use of the bundled Opus library.

-- Mikkel Krautz Sat, 03 Feb 2013 14:39:40 +0100

All modifications made in the base template should target the template release
and use the debian version '0~template1' (and bump if appropriate).

Every time the Mumble team updates the template package, one of these template
entries will be added. The package version number that is used is simply a
reflection of the current Mumble package at the time of the update.

When building a source package for upload to Launchpad, the `ppagen.bash` script
(which also lives in this repository) can be used. For example, to generate
a package using the template, use:

./ppagen.bash 1.2.4~rc1-8-gb115a29 quantal 1 --dry-run # drop --dry run to upload

and without dry run, uploaded to the mumble-snapshot PPA
(which lives at ):

./ppagen.bash 1.2.4~rc1-8-gb115a29 quantal 1 --snapshot # use --release to upload
# to the mumble-release PPA

The `ppagen.bash` script will, when running the above command:

* Download the Mumble tarball for the given version (and a GPG .sig)
* Verify the signature
* Clone the mumble-ubuntu-ppa repository into the 'debian' folder
in the root of the source tree.
* Add a new changelog entry for the PPA build.
* Upload it to the mumble-snapshot PPA ()

The changelog entry that the script adds will be of the form:

mumble (1.2.4~rc1-8-gb115a29-1~ppa1~quantal1) quantal; urgency=low

* PPA Upload of 1.2.4~rc1-8-gb115a29 snapshot for Ubuntu quantal

-- Mikkel Krautz Sun, 03 Feb 2013 15:19:02 +0100

with the latest template changelog entry exactly below it:

mumble (1.2.4~rc1-8-gb115a29-0~template1) template; urgency=low

* Drop version requirement on libzeroc-ice-dev to build on precise.
* Use bundled CELT codecs to build on raring.
* Add CONFIG+=bundled-opus to force the use of the bundled Opus library.

-- Mikkel Krautz Sat, 03 Feb 2013 14:39:40 +0100

That is, the changelog entry that is added by the `ppagen.bash` script is merely
a temporary indicator of the fact that a PPA build was performed (oh, and it of
course also provides the version number to use for the package and the release
to target).

[ppa]: https://launchpad.net/~mumble
[ppa-release]: https://launchpad.net/~mumble/+archive/ubuntu/release
[ppa-snapshot]: https://launchpad.net/~mumble/+archive/ubuntu/snapshot