2.3 KiB
PrawnOS Packaging
All programs, themes, etc that are not part of upstream debian are built as packages this allows PrawnOS the following benefits:
- the PrawnOS apt repo is not a build dependency
- test builds don't require any special steps-- just make the change locally and rebuild the filesystem
- a user doesn't have to trust the PrawnOS apt repo to build their own image
- the PrawnOS apt repo requires less bandwidth, as only package updates will be gotten from it
Note that some packages that are available upstream, but only in unstable or testing repos or have fixes only in the unstable or testing repos are packaged as part of PrawnOS
Updating Packages
By using packages for all parts of PrawnOS, updates are more straightforward. When an existing PrawnOS install has out of date packages, the user can then either build the new version themselves or get the update from the repo using the standard "apt upgrade"
Package folder structure
Packages are stored under component of the final PrawnOS image they belong to, and then for filesystem packages, the component of the filesystem they belong to. Inside the package folder there are the following items:
makefile
- source folder called
src
- a
.orig.tar.gz*
containing the package source. - a
.gitignore
to avoid commiting build artifacts, or unnecessary source files
The contents of the src
are the following:
- a
debian
folder - the source files if the package is not packages upstream (by debian)
- the patched source files if there are any PrawnOS specific patches. This is to keep the changes tracked by git.
If the source is from an upstream package, and no PrawnOS specific patches are carried then only the debian
folder is in the src
folder
Building packages
Most packages are built in a host architecture agnostic fashion using pbuilder. The only notable exceptions to this are font packages, which are not architecture dependent and the kernel package, which handles cross compilation manually without a chroot.
To build any package, navigate to that packages folder and run
make clean
make
the resulting .deb will be in that same folder when the build is complete
Uploading packages
New packages, and package updates can upload to deb.prawnos.com
by
first building and then running
make upload