Building packages¶
Every Obarun package is built from a PKGBUILD kept in the open, by a pipeline
anyone can inspect. This page is where to look, and what the pipeline does.
Where the sources are¶
All packaging lives under one group: git.obarun.org/pkg.
| Group | Contents |
|---|---|
pkg/obcore |
PKGBUILDs for the obcore repository |
pkg/obextra |
PKGBUILDs for obextra |
pkg/observice |
PKGBUILDs for observice |
pkg/obcommunity |
PKGBUILDs for the community repository |
Each package has its own repository. So the recipe for 66 is at
git.obarun.org/pkg/obcore/66, and the same pattern holds for everything else.
Following a build¶
Because each package is its own project, each has its own pipelines:
- Build logs:
https://git.obarun.org/pkg/obcore/<package>/-/jobs - Pipelines and artifacts:
https://git.obarun.org/pkg/obcore/<package>/-/pipelines, where the built binary can be downloaded from the artifacts button.
If you ever wonder how the package on your disk was produced, the answer is one URL away.
How they are built¶
Packages are built inside a container image made for the purpose, not on a maintainer's machine. The image is a bare system containing the base groups and nothing else; anything a build needs is installed by pacman at build time from a synchronised database.
The practical consequence is that a package does not vary with whoever built it.
- Image: hub.docker.com/r/obarun/base
- Image sources: git.obarun.org/Obarun/obarun-docker
Building one yourself¶
Clone the package's repository and use makepkg as the
Arch Wiki describes. The PKGBUILDs
are ordinary ones.
If you want the same clean environment the pipeline uses rather than your own
system, build inside the obarun/base container.
Contributing a package¶
obcommunity is the place for packages that are not part of the official set.
It is community maintained and not officially supported, and unlike the AUR it
ships the built binary: a user installs it with pacman and compiles nothing.
Contributions go to
git.obarun.org/pkg/obcommunity.
For a change to an official package, open a merge request on that package's own repository.