Tree


.gitignorecommits | blame
README.mdcommits | blame
bundles/
core/
daemon/
devel/
doc/
dtr*commits | blame
editors/
filegen.sh*commits | blame
fonts/
gitfinder.sh*commits | blame
info.examplecommits | blame
lang/
lib/
libsh/
net/
old/
shells/
spc*commits | blame
userspace/
utils/
wl/

README.md

# This is the dérive ports tree.

0. overview
	- this repo contains a number of build recipes and a build recipe system, leveraging pure posix sh. it is used with the 'dtr' and 'spc' helpers, which install these ports. everything is built using static linking. we try and pick out only actually decent software to be in this repo, with some exceptions. 

1. scripts   
_derive "port scripts" (ndmake.sh) are (kinda) simple. you need to define some metadata at the top;_
	- **name** - package name 
	- **version** - package version  
	- **release** - package release
	- **sources** - upstream git/tarball link and any patches/other files  

the port must also have a deps file, which lists dependnecies and what type of dependency they are:,      - . - build time deps
    - / - link time deps
    - > - runtime deps

as well as an info file, listing the name, version, description, license, and upstream link


2. running scripts   
	_there are two ways to run a **dmake.sh**_
	1. doing it with dtr [reccomended]
		this is the most simplest way, _(the latter is too)_ you just run `dtr mi <package>`   
		such script **[m]akes** and **[i]nstalls**  a port. this also tracks the package's installed files, automatically resolves dependencies, and allows for easy package removal later.
	2. doing it the hard way   
		you navigate to your package, like `cd /ports/core/curl` and run   
		```bash
		sh ndmake.sh fetch
		sh ndmake.sh make
		spc create /var/tmp/dtr/pkg-$pkgname-git pkgname.spc.zstd
		spc install pkgname.spc.zstd
		```   
	this does not resolve dependencies or track packages, you will have to do it yourself.
3. understanding ports  
	- the tree is sorted into categories which describe their function and purpose. this does not effect installation of ports in any way. each port has an info file with some basic information about it

4. contributing
	- creating a port is pretty easy, depending on the complexity of the target software. i usually just copy a template from another port, and tweak as needed. the libdmake.sh build system should handle all building of packages for you. if you need to do it yourself,