-
Notifications
You must be signed in to change notification settings - Fork 167
Description
Hey all,
So I am working on the idea of having CustomPiOS get better support for other boards, and modules that are stored on other repositories.
I still want to keep CustomPiOS "simple" so I am trying to limit the new logic. I would value your input if its too simple. Or not clear enough. Or if something critical is missing.
I have now a feature branch for meta modules.
The branch at work is here: In devel branch now
https://github.com/guysoft/CustomPiOS/tree/feature/meta-modules
This work is geared towards having what Mainsail did work on other distributions (namely OctoPi, but hopefully others too, perhaps FullPageOS).
Mainsail build for multiple boards using a "config" folder and a bunch of scripts to place the builds.
You can see how that looks here:
https://github.com/mainsail-crew/MainsailOS/tree/develop/config
So how is it expected to look?
the idea is you could do
build -d
And also
build -d -b board
And it would automatically download the latest image and build it.
Or run a mult_build orangepi_orangepi_zero2,raspberrypiarm64,armbian_orangepi3lts
And get a bunch of images image for your distribution for diffrent boards.
All images and settings managed
What are meta modules?
The idea is that you have a "meta" file in a modules. Which lets you add in sub modules based on if they are needed in a board.
Its an executable script that can hold any logic you like. And example for one for base is here (and there is one for network:
https://github.com/guysoft/CustomPiOS/blob/feature/meta-modules/src/modules/base/meta
So for example:
base(octopi)
Could be turned by a meta file to
base(armbian(octopi))
What are remote modules?
The idea is that you can have modules that are stored on other repositories, currently implemented only for git repositories, and have them downloaded and used at build time.
They are configured in this yaml file:
https://github.com/guysoft/CustomPiOS/blob/feature/meta-modules/src/modules_remote.yml
I could add a local yaml that a repo can add in their repository that would let you set extra modules per-repo.
More info about what mainsail are doing
Partly this started because I am trying to organize what Mainsail are doing here:
https://github.com/mainsail-crew/MainsailOS/blob/develop/config/orangepi/default#L26
Namely how we handle base for armbian and orangepi and other boards