Page MenuHomePureOS Tracker

Packaging Overview
Updated 2,472 Days AgoPublic

Version 1 of 42: You are viewing an older version of this document, as it appeared on Jun 20 2017, 09:40.

Prerequisites

To build packages, install the devscripts package: sudo apt install devscripts, which contains a lot of useful helpers for building Debian packages.
Having gbp available is also a good idea: sudo apt install git-buildpackage

Building packages

All packages have to be built in a pristine PureOS landing chroot before being uploaded to PureOS. The preferred method to do that is by using pbuilder.
For packages not managed in Git, pbuilder can be invoked via

DIST=landing pdebuild --auto-debsign

For Git-managed packages, gbp provides options to build with pbuilder directly. Alternatively, pdebuild can be passed in like gbp buildpackage --git-builder='DIST=landing pdebuild --auto-debsign'

Version numbers

Packages which are available on Debian and are changed in PureOS have a pureosX version tag attached to the Debian revision, with X being the PureOS revision number. So, if the package's upstream version is 2.1, it's Debian revision is 2 (creating the Debian version string 2.1-2) and you make a change for PureOS, the resulting package version must be 2.1-2pureos1. The PureOS revsion is incremented with every change, so the next version would be 2.1-2pureos1.

If the package isn't in Debian, the Debian revision number is assumed to be zero and all other rules from above still apply. So, and upstream package with version 3.4 which is new in PureOS will get the initial version 3.4-0pureos1.

If you do not do any source changes but just rebuild a package, bX is appended to the revision. So, a package of version 1.0-3 gets the new version 1.0-3b1 if it is rebuilt. The rebuild version is incremented on every subsequent rebuild.

Paying attention to the version numbers is important, because the PureOS archive tools will use the version number to make decisions about the package's state, which includes overriding it with a version from Debian or even removing it.
Using the right version number will make the archive do the right thing.

Validating packages

Use lintian -IE --pedantic <changes-file> to check a package for compliance with the Debian policy. Ensure it is warning and error-free.
Currently, all warnings related to NMUs and invalid suites can be ignored, as those are different or don't exist in PureOS (Lintian does not know about the existence of PureOS yet).

Last Author
mladen
Last Edited
Jun 20 2017, 09:40

Event Timeline

jonas.smedegaard edited the content of this document. (Show Details)Jul 17 2017, 04:27
chris.lamb edited the content of this document. (Show Details)Dec 14 2017, 14:32
chris.lamb edited the content of this document. (Show Details)Dec 14 2017, 14:35
chris.lamb edited the content of this document. (Show Details)Dec 14 2017, 14:43
chris.lamb edited the content of this document. (Show Details)Dec 15 2017, 01:33
chris.lamb edited the content of this document. (Show Details)Feb 23 2018, 13:45
chris.lamb edited the content of this document. (Show Details)Feb 23 2018, 13:50
chris.lamb edited the content of this document. (Show Details)Feb 25 2018, 09:45
chris.lamb edited the content of this document. (Show Details)Mar 8 2018, 09:18
mak edited the content of this document. (Show Details)May 28 2018, 06:35
mak edited the content of this document. (Show Details)Jul 24 2018, 07:11
jeremiah.foster edited the content of this document. (Show Details)Jul 8 2019, 09:22
jeremiah.foster edited the content of this document. (Show Details)
jeremiah.foster edited the content of this document. (Show Details)
jeremiah.foster added a project: Restricted Project.Jul 8 2019, 09:34
jeremiah.foster edited the content of this document. (Show Details)Aug 1 2019, 18:21
jeremiah.foster edited the content of this document. (Show Details)Aug 2 2019, 08:17
jeremiah.foster edited the content of this document. (Show Details)Aug 2 2019, 08:33
jeremiah.foster edited the content of this document. (Show Details)Sep 11 2019, 14:40
jeremiah.foster edited the content of this document. (Show Details)Sep 11 2019, 14:50
jeremiah.foster edited the content of this document. (Show Details)Dec 10 2019, 13:37
mak edited the content of this document. (Show Details)Feb 17 2020, 15:59
jeremiah.foster edited the content of this document. (Show Details)Jun 23 2020, 10:59
jeremiah.foster edited the content of this document. (Show Details)Jun 23 2020, 11:02
jeremiah.foster edited the content of this document. (Show Details)
guido edited the content of this document. (Show Details)Feb 3 2021, 07:00
jeremiah.foster edited the content of this document. (Show Details)Feb 3 2021, 07:20
jeremiah.foster edited the content of this document. (Show Details)Feb 11 2021, 08:53
jeremiah.foster edited the content of this document. (Show Details)Mar 8 2021, 12:37
jeremiah.foster edited the content of this document. (Show Details)Mar 8 2021, 12:45
jeremiah.foster edited the content of this document. (Show Details)Mar 9 2021, 08:01
jeremiah.foster edited projects, added Restricted Project, Restricted Project, Restricted Project; removed Restricted Project.
jeremiah.foster edited the content of this document. (Show Details)Mar 9 2021, 08:05
jeremiah.foster edited the content of this document. (Show Details)Mar 11 2021, 13:30
guido edited the content of this document. (Show Details)Apr 19 2021, 03:28
guido edited the content of this document. (Show Details)Apr 20 2021, 02:06
guido edited the content of this document. (Show Details)Apr 20 2021, 02:16
guido edited the content of this document. (Show Details)Apr 21 2021, 00:53
evangelos.tzaras edited the content of this document. (Show Details)Apr 24 2021, 05:06

Feel free to delete my draft which arouse out of confusion around the Uploaders: field ;)

I would delete it myself, but have no clue how :O

guido edited the content of this document. (Show Details)Apr 26 2021, 03:48
guido published a new version of this document.
guido added a subscriber: guido.

@evangelos.tzaras no idea how one drops drafts but i think i restored the original version.

@guido

the main development branch should be called debian/latest

I believe that should be pureos/latest instead.

So would that be pureos/latest (instead of pureos/byzantium) and pureos/amber or pureos/amber-phone then?
Confusing!

guido edited the content of this document. (Show Details)Apr 28 2021, 02:45

@sebastian.krzyszkowiak , thanks fixed!

Using pureos/byzantium or pureos/amber with or without -phone is somewhat easier for me since it clarifies which branch is destined for which target suite. In my mind, pureos/latest points to the branch that you work from to create pureos/*.

  1. @guido Am I right in this thinking with pureos/latest?
  2. @evangelos.tzaras How can we make this less confusing?

I was mostly confused whether this would imply that we would have both pureos/latest and pureos/byzantium.

Might also have been a case of -ENOCOFFEE, so feel free to disregard the confusion ;)

guido added a comment.Apr 30 2021, 01:11

@evangelos.tzaras you only have *both* `pueros/latest and pureos/byzantium once byzatium is no longer the current development version. See https://dep-team.pages.debian.net/deps/dep14/ . The upside of pureos/latest is that you'd not be constantly busy with switching the repos default branch and name. It's basically the same as we do within DebianOnMobile with debian/master.

jeremiah.foster edited the content of this document. (Show Details)May 8 2021, 21:16
mak edited the content of this document. (Show Details)Nov 4 2021, 15:03