Home | :: | About | :: | Download | :: | Install | :: | Use | :: | Manual | :: | Changes |
There are some assumptions in the build process based on my personal
environment, namely that lots of stuff is present under the directory
/packages/localsrc/Tribblix
which I have as an environment
variable THOME
. You'll need THOME
set for much
of the following to work.
You'll need to check out one or more of the 3 overlay sources.
cd $THOME git clone https://github.com/tribblix/overlays git clone https://github.com/tribblix/overlays.lx git clone https://github.com/tribblix/overlays.sparc
You'll also need the build repo, because some of the shared scripts are supplied there (rather than each set of overlays having a duplicate copy).
cd $THOME git clone https://github.com/tribblix/build
In general, the intention is that the overlays available for the different variants should be as similar as possible.
The lx version is slightly different, only because OmniTribblix has a couple of extra features. The only differences should be:
In general, though, the application overlays for lx should be identical to the vanilla version. The actual packages are shared between the variants, so there's no reason for any differences.
The sparc version can be quite different. There are significant differences in the packages that come from illumos - the packages are named differently in some cases, and there's a different set of drivers. And in terms of applications, software availability on sparc is quite a bit worse (there's no go or rust, for example, so anything requiring those won't exist on sparc at all).
Some of the overlays make no sense at all on sparc (for example, anything related to cloud).
Related to software availability, some packages for sparc are downrev compared to x86. (In many cases a later version has been rewritten in rust, for example, which means we can't update.) That also means that the list of dependencies can be quite different.
There are 2 files for each overlay. The ovl
file is metadata,
and the pkgs
file is simply the list of constituent packages.
Generally, I try to normalise the overlays a bit. In other words,
overlays are layered, so you don't have to duplicate packages between
overlays too much. That's more of an aspiration than a hard rule.
Dependencies between overlays are expressed as a REQUIRES
entry
in the ovl
file.
Adding a new overlay requires creating both files.
Adding new software is simple a case of adding the package to the
pkgs
file and bumpoing the version in the ovl
file.
The overlays should be consistent (see the next section for checks), although there are missing dependencies in some of the core packages. This is deliberate (for example, perl is missing from the live image which makes it slightly wrong, but that's a known case and handled correctly).
The validation scripts are shared and come from the build repo.
To check the dependencies are consistent:
cd ${THOME}/overlays ../build/overlay-depends -a
If there's something missing you can see why for a given overlay:
cd ${THOME}/overlays ../build/overlay-depends -v develop-extras
You can also check that all the packages actually exist:
cd ${THOME}/overlays ../build/check-overlay-pkgs -a
Note that a lot of this assumes that you have a copy of the illumos packages as built earlier to check against.