Uploading Packages to PureOS#

Uploading via dput#

There are two tools in Debian based distros which provide the functionality to put a package on a remote server in the correct location for it to built and inserted into a package repository; dput and dput-ng. The package dput-ng provides better results. In dput-ng there is are switches to allow one to unset profiles, use those switches so you don’t upload to Debian inadvertently.

Please use source-only uploads (created by passing -S -sa to dpkg-buildpackage, e.g. by using gbp via gbp buildpackage -S -sa) if possible, and only upload binaries directly if absolutely necessary (e.g. for bootstrapping). The autobuild system of the Laniakea archive management system will usually build new packages pretty quickly.

To upload please create the following ~/.dput.cf snippet:

[pureos]
fqdn = upload.pureos.net
method = https
incoming = pureos
login = anonymous
allow_unsigned_uploads = 0

Then issue this command;

dput pureos-origin stream_0.1.0-1pureos1.1_source.changes

  • Upload might take ~20 minutes to be processed after the upload is fully complete.

  • See also NEW queue and archive layout

  • If you want to get notification about any new upload that gets submitted to the archive, consider subscribing to the pureos-changes mailinglist.

  • Uploads targeted at the current development release of PureOS (currently byzantium) will automatically be redirected to landing, just like uploads to the *-updates suite of a stable release will automatically go to *-proposed-updates first.

Uploading via git tag#

Packages can also be uploaded by tagging them appropriately in git. Have a look at https://source.puri.sm/snippets/138 The flow of a package once accepted by the archive is the same.

Tracing the package after the upload#

  • If the package didn’t have any version in the archive before it will be held in The PureOS NEW queue <pureos_development_new_queue>

  • If the package gets accepted a mail is sent to the pureos-changes mailing list <pureos_changes_list>

  • In case of a source package a build for the binary packages will be scheduled and put to the end of the build queue.

  • If the package built successfully it will wait for migration

  • The status of a package in a certain suite (including build logs can queried via https://software.pureos.net/package/src/<suite>/<sourcepackage>. Example: phosh’s status in byzantium: https://software.pureos.net/package/src/byzantium/phosh

  • Once the (suite dependent) migration period passes it will migrate to the target suite. The ultimate reference if a package is in a suite is the archive’s package file at e.g. https://repo.pureos.net/pureos/dists/byzantium/main/binary-arm64/Packages.xz for arm64 packages and for AMD64 in byzantium.