tesserae are the package definitions for each program that one might want to have in their mosaic.
It is a work in progress. Currently, mostly git and it's dependencies are packages.
The other targets are the packages defined in the LFS book, and programming languages like nim and rust.
The scope of tesserae does not include an installer for mosaic, nor for the cross-compilation steps of LFS. These might be in a different project (?)
As of now a tessera requires the following:
source: string # the source url (in the future also can be a local path)
patches: seq[string] # the source urls for the patches (also local in the future probably)
dependencies: seq[string] # list of dependencies to be built before the package
build: seq[string] # the list of commands in the order they are meant to be run
result: string # an identifier output bin or lib to verify installation
The above "works" for a traditional distro setup, but not for a declerative distro, since the aim is to build a bin and its deps in a single sha256-pkgName folder structure, like Guix/Nix
The final shape is probably going to be more like:
source: string
patches: seq[string]
dependencies: seq[string]
dependants: seq[string] # mostly for the core/ tessera and updates cascading. tbh this may or may not make it because you can just walk the graph backwards.
build: seq[string]
; all rights regarding Text and Data Mining (TDM) are reserved.