Iglunix Packaging Guildelines

Licenses

Licenses are added by dumping them to stdout in the license function as shown below.

license() {
	cat COPYING
	cat COPYING-OTHER
}

Versioning

Git

Packages that follow the latest upstream git are named by their branch. For example:

pkgname=kati
pkgver=master

Directory Layout

Path What for What to put
/sbin Admin commands required early in boot Most packages shouldn’t write to here
/bin General commands required early in boot Most packages shouldn’t write to here
/lib Dynamic Libraries and library programs required early in boot Most packages shouldn’t write to here
/usr/sbin Admin commands Daemons, programs requiring high privaleges
/usr/bin General commands Most binaries
/usr/lib General libraries Static libraries, Dynamic libraries and library programs
/usr/include Headers C and C++ header files
/usr/share/man Man pages Documentation

CMake

Meson

Rust Packages

Patching Crates

for all crates that need to be patched, the vendor checksums must be cleared

_clear_vendor_checksus() {
	sed -i 's/\("files":{\)[^}]*/\1/' vendor/$1/.cargo-checksum.json
}

fetch() {
	# ...
	_clear_vendor_checksums ncurses
	# ...
	patch -p1 < ../fix-ncurses.patch
}