add readme for packaging layout
This commit is contained in:
parent
f782fe88c3
commit
a377c8dce0
50
packages/packaging-readme.md
Normal file
50
packages/packaging-readme.md
Normal file
@ -0,0 +1,50 @@
|
||||
## 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
|
||||
```
|
Loading…
Reference in New Issue
Block a user