As per Debian documentation and Ubuntu Launchpad documentation, upstreaming deb package is through the use of dput
. This program handles all Debian packages and uses different channels to upstream the deb.
Depending on distributions such as Debian, Ubuntu or Ubuntu Launchpad, each of them has its own compliance, requirements and processes. However, all of them shares the same upstream mechanism: dput
with configurations. This guide covers a generic way of using dput
to upstream your deb packages.
All known upstream (especially Debian) employs the use of source.changes file. Both Ubuntu and Debian will perform the compilation at upon receiving the changes file. Also keep in mind that you need to sign the source package so proceed to rebuild it with -k"gpg_id" -S
flags.
$ debuild -k"gpg_id" -S
You should get a list of newly compiled source package files.
Now to ensure it is working, you should prepare a dput configuration file (known as dput.cf
). You can save it as a localized file or in your $HOME
location as $HOME/.dput.cf
. Your CF file should contains the terminal side of the upstream server. A simple example, gathered from Debian maintainer guidelines and Ubuntu Launchpad, it should look something as follows:
[ubuntu-launchpad]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~[GROUPNAME]/ubuntu/[REPONAME]/
login = anonymous
allow_unsigned_uploads = 0
[debian-mentors]
fqdn = mentors.debian.net
login = anonymous
progress_indicator = 2
passive_ftp = 1
incoming = /pub/UploadQueue/
method = ftp
allow_unsigned_uploads = 0
# Allow uploads for UNRELEASED packages
allowed_distributions = .*
The configuration file specification is listed in the manual page. Generally, your upstream server should provide the necessary configurations for you to use.
Once you're done with the dput
configuration files, you may start your upload by using dput
command. It follows the following pattern:
$ dput --config </path/to/dput.cf> <upstream tag> </path/to/your/.changes>
The upstream tag is the [tag]
inside your dput configuration file. Based on the example above, it should be either:
ubuntu-launchpad
debian-mentors
So, say if we want to upstream to debian-mentors
, the command should look like the following:
$HOME/.dput.cf
$ dput debian-mentors ./your_sourcepackage_1.0.changes
$ dput --config /path/to/dput.cf debian-mentors ./your_source_package_1.0.changes
That's all about upstreaming via dput
. You'll then follow the respective guidelines and processes to make your software into the main repository.