Linuxfabrik Packaging
Build pipeline that turns Linuxfabrik's own and third-party software into RPM and DEB packages and publishes them on repo.linuxfabrik.ch. • made by Linuxfabrik
This repository is the single, organization-wide place where Linuxfabrik software is turned into RPM and DEB packages for repo.linuxfabrik.ch. It packages both Linuxfabrik's own products (e.g. FirewallFabrik) and third-party upstream software (e.g. glances, mysqltuner, mydumper). Source repositories stay source-only; the build recipes and pipeline live here once instead of being duplicated into every project's CI.
Each package lives under packages/<name>/ and brings its RPM and/or DEB recipe plus a small
package.conf manifest. The build is package-agnostic: the manifest declares the source and the
target distributions, and the shared scripts under build/ fetch the source, build inside a
per-distro container and collect the resulting packages, one file per distro and version.
See CONTRIBUTING.md for how to add a package and for the packaging conventions (distro-native builds, basing third-party recipes on the official packaging, the split-package pattern for GUI apps, and the release trigger).
packages/<name>/
package.conf # manifest: source, version, per-format distro targets
rpm/<name>.spec # RPM recipe (EL, Fedora, SLES)
deb/debian/ # DEB recipe (control, rules, copyright, source/format)
files/ # shared assets, e.g. the systemd unit
build/
containerfiles/ # one build environment per distro (rocky-*, fedora-*, debian-*, ...)
create-package.sh # entry point: fetch source, dispatch to the format builder
create-rpm.sh # build a binary RPM from a spec (dnf or zypper)
create-deb.sh # build a binary .deb from a debian/ recipe
matrix-package.sh # build one package across many distros, each in a container
publish.sh # hand the built packages to the repo server
- Create
packages/<name>/withpackage.conf, the recipes you need (rpm/,deb/) and any sharedfiles/. - Set the source, version and the
PKG_RPM_DISTROS/PKG_DEB_DISTROStargets inpackage.conf. - Build locally to verify (see below).
- Open a pull request. On merge, the pipeline builds and publishes the package.
See CONTRIBUTING.md for the details.
PKG_NAME=glances \
PKG_TARGET_DISTROS='rocky-v10 debian-v13' \
PKG_PACKAGE_ITERATION=1 \
PKG_ARCH=x86_64 \
PKG_DIR_REPO="$(pwd)" \
PKG_DIR_PACKAGED="$(pwd)/packaged" \
bash build/matrix-package.shBuilt packages are collected under packaged/<distro>/.
Enterprise support, including an SLA, is available via a Service Contract.
If this project helps you, consider a donation via GitHub Sponsors or PayPal.
There is no fixed roadmap. Milestones are driven by customer needs and by contributors' time.