In the past I have generated local Debian packages on my workstation and uploaded them to the apt server.
Recently I moved them to the apt server itself so packages can be updated remotely if need be.
The build script is basically a fancy wrapper around a pretty standard debian build method. It downloads upstream code (like for oxygen) and re-packages it, as well as building meta packages and a config package that is site-specific.
I am currently building the following packages:
- hcmc-desktop - a meta package that installs packages we use like java, fonts, ssh, subversion, etc.
- hcmc-conf - a configuration package that includes a collection of scripts/files that set up a machine for use in our lab. This includes everything from setting JAVA_HOME and mimelists (for oXygen etc.) to auto-configuring hostname, default skel and firefox profiles.
- hcmc-auth-sssd - this installs and configures SSSD, which we use for LDAP authentication on our machines. It's a separate package from hcmc-conf for practical reasons.
- hcmc-oxygen - this is a repackaging of the oXygen XML editor for deployment in our labs. Doing this way allows easy upgrades.
- hcmc-style - basically just look-and-feel stuff such as wallpaper, theme, icons, and colour-schemes that I like.
The script finishes by invoking reprepro to ingest the package and offer it via apt install.