Christian Kastner: Simple-PPA, a minimalistic PPA implementation
Today, the Debusine developers launched
Debusine repositories,
a beta implementation of PPAs. In the announcement, Colin remarks that
“[d]iscussions about this have been happening for long enough that people started
referring to PPAs for Debian as ‘bikesheds'”; a characterization that I’m sure
most will agree with.
So it is with great amusement that on this same day, I launch a second PPA
implementation for Debian: Simple-PPA.
Simple-PPA was never meant to compete with Debusine, though. In fact, it’s
entirely the opposite: from discussions at DebConf, I knew that it was only a
matter of time until Debusine gained a PPA-like feature, but I needed a
stop-gap solution earlier, and with some polish, what was once by Python script
already doing APT processing for
apt.ai.debian.net, recently became Simple-PPA.
Consequently, Simple-PPA lacks (and will always lack) all of the features that
Debusine offers: there is no auto-building, no CI, nor any other type of QA.
It’s the simplest possible type of APT repository: you just upload packages,
they get imported into an archive, and the archive is exposed via a web server.
Under the hood, reprepro does all
the heavy lifting.
However, this also means it’s trivial to set up. The following is the entire
configuration that
simple-ppa.debian.net started with:
# simple-ppa.conf [CORE] SignWith = 2906D748B7551BC8 ExportDir = /srv/www/simple-ppa MailFrom: Simple-PPA <[email protected]> Codenames = sid forky trixie trixie-backports bookworm bookworm-backports AlsoAllow = forky: unstable trixie: unstable bookworm: unstable [simple-ppa-dev] Label = Simple-PPA's self-hosted development repository # ckk's key Uploaders = allow * by key E76004C5CEF0C94C+ [ckk] Label = Christian Kastner at Simple-PPA Uploaders = allow * by key E76004C5CEF0C94C+
The CORE section just sets some defaults and sensible rules. Two PPAs are
defined, simple-ppa-dev and ckk, which accept packages signed by the
key with the ID E76004C5CEF0C94C. These PPAs use the global defaults, but
individual PPAs can override Architectures, Suites, and Components,
and of course allow an arbitrary number of users.
Users upload to this archive using SFTP (e.g.: with
dput-ng). Every 15 minutes,
uploads get processed, with ACCEPTED or REJECTED mails sent to the Maintainer
address. The APT archive of all PPAs is signed with a single global key.
I myself intend to use Debusine repositories soon, as the autobuilding and
the QA tasks Debusine offers are something I need. However, I do still see a
niche use case for Simple-PPA: when you need an APT archive, but don’t want to
do a deep dive into reprepro (which is extremely powerful).
If you’d like to give Simple-PPA a try, head over to
simple-ppa.debian.net and follow the
instructions for users.
