Skip to content

Linuxfabrik/packaging

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

License GitHub Issues OpenSSF Scorecard GitHubSponsors PayPal


Linuxfabrik Packaging

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).

Repository layout

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

Adding a package

  1. Create packages/<name>/ with package.conf, the recipes you need (rpm/, deb/) and any shared files/.
  2. Set the source, version and the PKG_RPM_DISTROS / PKG_DEB_DISTROS targets in package.conf.
  3. Build locally to verify (see below).
  4. Open a pull request. On merge, the pipeline builds and publishes the package.

See CONTRIBUTING.md for the details.

Building locally

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.sh

Built packages are collected under packaged/<distro>/.

Support the Project

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.

About

Build pipeline that turns Linuxfabrik's own and third-party software into RPM and DEB packages for repo.linuxfabrik.ch.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors