Skip to content

Package Management Policy

  • glaucus uses the filesystem tree as its database to store package metadata and recipes

Cerata

  • Patches are typically applied in prepare
  • Newly crafted patches should use -p0
  • Packages that use autoreconf, need runstatedir (copied from the system)
  • Try to group commands that deal with multiple arguments into one (if that applies, e.g. cp, rm, mkdir (if same permissions)…)
  • Group all commands that are repeated 3 or more times into for loops
  • Packages should not install to the following directories: /boot, /dev, /mnt, /run, /sys, /tmp
  • Do not store commands inside variables: https://www.unix.com/unix-for-dummies-questions-and-answers/247059-run-command-stored-variable.html

Repository Layout

  • /var/cache/rad/local (local binary packages, contains sac (DESTDIR) + tarball + sum)
  • /var/cache/rad/pkg (fetched binary packages, signed)
  • /var/cache/rad/src (source tarballs, read-only, equals SRCD)
  • /var/lib/rad/clusters/cerata (official cluster, equals CERD)
  • /var/lib/rad/clusters/custom (custom cluster)
  • /var/lib/rad/local (track installed packages using another form of metadata, with checksums and files)
  • /var/log/rad (log files, equals LOGD)
  • /var/tmp/rad (temporary src and bld for native)
Terminal window
# glaucus repo layout
# Source packages (git repos only):
cerata/$cluster/$nom/{ceras, build}
# Binary packages
cerata/$cluster/$nom/{$nom-$ver.tar.zst, sum}

Local

  • check for additional files that need removing (vcheck already does that):
    • .a (static libraries)
    • .alias
    • .bs (perl files)
    • .dbg
    • .la (libtool archives)
    • .packlist (perl files) (alpine removes them)
    • .pod (perl files) (void removes them)
    • .py (python files)
    • .pyc (python files) (ewe removes them)
    • .pyo (python files) (ewe removes them)
    • alias
    • charset
    • extralibs.ld (perl files)
    • locale
    • systemd
    • test (ewe removes them)

Out of Tree Builds

Toolchain:

  • binutils
  • gcc

Cross:

  • binutils
  • dash (no patches applied so no need to copy src)
  • e2fsprogs
  • gcc
  • iputils
  • less
  • lksh
  • mksh
  • musl-utils (has no package source though, as its files are in CERD)
  • which

Resources