about summary refs log tree commit diff
README(7) Miscellaneous Information Manual README(7)

jortsjune's ports

This is my own personal ports tree for macOS (though I suspect it could work elsewhere). It's based on these big brain ideas:

  • Sources get vendored. Either from release tarballs or with git-subtree(1). This allows dead simple local patching and inspection of the code currently installed, like /usr/src. It makes the tree entirely self-contained.
  • Produce simple package tarballs. They're literally just the contents of DESTDIR after staging install. They can be uninstalled by removing the paths inside from the system. They're their own packing lists.
  • Track installed packages with symbolic links to specific package tarballs. Keep old tarballs around for rollbacks. See what's currently installed with just ls(1)!
  • Use bmake(1). It's scrutable.
  • No GNU software. Unless I have no choice.

Bootstrap
Shell script to build and install bmake(1), then use bmake(1) to install itself.
Install
Shell script to install ports and their dependencies.
Uninstall
Shell script to uninstall ports and their unneeded dependencies.
Outdated
Shell script to check for outdated ports against Repology.
Port.mk
The guts.

See what's installed:

$ ls -l */Installed

To use sparse checkout, optionally clone with --sparse and run:

$ git sparse-checkout set '/*' '!/*/src'

Source trees will automatically be checked out and removed in the course of building and cleaning ports.

Install(1), Port(7)

how to make jorts

june <june@causal.agency>

June 10, 2022 Causal Agency