Create a new package repository
Debusine can host package repositories, allowing you to upload to them using dput-ng and allowing your users to download from them using APT and other standard Debian tools.
Initial setup
You must have at least debusine-client version 0.14.1 for the debusine
archive suite create command.
Follow Set up debusine-client to configure the Debusine client for the appropriate Debusine server.
Create a workspace
Repositories live within workspaces, and may
contain multiple suites. Each suite typically
corresponds to a different base version of the operating system: so if you
were publishing similar packages for a given topic for both Debian 12
(bookworm) and Debian 13 (trixie), you might have bookworm-mytopic and
trixie-mytopic suites.
Start by creating a suitable workspace. If you have direct access to the
Debusine server you’re using, then you can create one using
debusine-admin workspace define.
Otherwise, you will normally need to use a
create_experiment_workspace
workflow as configured by the owner of a workspace you have access to: for
example, Debian developers may start the create-experiment workflow on
debusine.debian.net (see https://wiki.debian.org/DebusineDebianNet for more
details).
Create a suite
For each suite you intend to publish, create it in your workspace, as follows:
$ debusine --server SERVER archive suite create --workspace WORKSPACE \
--architecture all --architecture amd64 \
--base-workflow-template TEMPLATE SUITE
The base workflow template is the name of an existing
debian_pipeline template describing how to build and test
packages for a similar base suite, normally including things like
environment and backend configuration. This command will create a copy of
that template called publish-to-{suite} (substituting the name of the
new suite), adjusting its parameters to publish packages to the new suite.
If you omit the --base-workflow-template option, then no workflow
template will be created; you can create one yourself using debusine
workflow-template create.
Packages in the new suite will only be built and tested on the architectures you specify.
If you need to edit any of this configuration later, you can do so using
debusine collection manage and debusine workflow-template edit.
For example, if you have created a developers-myuser_experiment
workspace on debusine.debian.net, you can create a sid-experiment suite
in it as follows:
$ debusine --server debian archive suite create \
--workspace developers-myuser_experiment \
--architecture all --architecture amd64 \
--base-workflow-template upload-to-unstable \
sid-experiment
Configure dput-ng
You may already have a suitable profile for
uploading to the Debusine server in question. If you do, you can override
the workspace and workflow using the -O debusine_workspace=WORKSPACE and
-O debusine_workflow=WORKFLOW options to dput (in the example above,
this would be -O debusine_workspace=developers_myuser-experiment -O
debusine_workflow=sid-experiment).
This can get rather verbose, so you may prefer to create your own profile
and store it under ~/.dput.d/profiles/ (e.g.
~/.dput.d/profiles/myuser_experiment.json). Start with the minimal
profile in dput-ng profile options and set fqdn, debusine_scope,
debusine_workspace, and either debusine_workflow or
debusine_workflows_by_distribution to match your repository. For the
example above:
{
"allow_unsigned_uploads": true,
"debusine_scope": "debian",
"debusine_workflows_by_distribution": {
"sid": "sid-experiment"
},
"debusine_workflow_data": {
"source_artifact": "@UPLOAD@"
},
"debusine_workspace": "developers-myuser_experiment",
"fqdn": "debusine.debian.net",
"incoming": "/",
"meta": "debusine",
"method": "debusine"
}
Access the repository
APT configuration for each suite will look something like this:
Types: deb deb-src
URIs: https://deb.debusine.debian.net/debian/developers-myuser_experiment
Suites: sid-experiment
Components: main
See Package repositories for more details and examples.