Expose installer images automatically#16
Draft
samueldr-at-cyberus wants to merge 14 commits into
Draft
Conversation
4 tasks
d35e025 to
09830c2
Compare
Signed-off-by: Samuel Dionne-Riel <samuel.dionne-riel@cyberus-technology.de>
The device name (even though the vendor does not seem to always spell it out), includes “Super”. I'm using the fact that the innate DeviceTree for the platform uses the model name: ``` NVIDIA Jetson Orin Nano Engineering Reference Developer Kit Super ``` The `compatible` is `nvidia,p3768-0000+p3767-0005-super`. For this reason, we shall always use “super”. Signed-off-by: Samuel Dionne-Riel <samuel.dionne-riel@cyberus-technology.de>
Signed-off-by: Samuel Dionne-Riel <samuel.dionne-riel@cyberus-technology.de>
This will ensure the `mkIf` conditional is always *coherent* with what it should be. Otherwise, copy/paste mistakes can become awkward to debug. Signed-off-by: Samuel Dionne-Riel <samuel.dionne-riel@cyberus-technology.de>
Signed-off-by: Samuel Dionne-Riel <samuel.dionne-riel@cyberus-technology.de>
This is the first part of a change set that mirrors a commit from Julian. This only *moves* the files and module itself around, the options names are changed in the follow-up commit. Co-authored-by: Julian Stecklina <julian.stecklina@cyberus-technology.de> Signed-off-by: Samuel Dionne-Riel <samuel.dionne-riel@cyberus-technology.de>
This is the final part of a change set that mirrors a commit from Julian. This one renames the options from platform to hardware devices, better future-proofing the options. This also has the benefit of not re-using a term (platform) that has an existing meaning with Nixpkgs things (`stdenv.hostPlatform.system`), and should make it less confusing to discuss about. Co-authored-by: Julian Stecklina <julian.stecklina@cyberus-technology.de> Signed-off-by: Samuel Dionne-Riel <samuel.dionne-riel@cyberus-technology.de>
This is WIP because this is currently using the `legacyPackages` Flake output attribute, but I believe this is the wrong thing to do. These are not packages, they would not be added to a user's system. The `flakeModule` design seems to break down once you need something that isn't in the "well-known"[sic] outputs of Flakes.
Signed-off-by: Samuel Dionne-Riel <samuel.dionne-riel@cyberus-technology.de>
09830c2 to
e035ec4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
(Follow-up to #15)
This diff view will be easier to review
This PR exposes images automatically for every device we are adding to the repository. The knowledge necessary to build a compatible image should be coming entirely from the device description, and as few details as possible should be coming from the installer expressions.
This might not look like it's useful, but this is also the beginning of thinking about composable configurations. We have the technology.
The main rationale behind this PR is to help with future additions to the repo. We shouldn't have to maintain a set of bespoke config attributes for devices we add to the repo, they should come up for free, exposed in some way.
Right now we have the
isoandsd-imageexposed. The SD image is the one for AArch64 systems, so that's one issue to fix. We should add ageneric/mainline-x86_64system or something to that effect for hardening our design against ARM-brainedness. (We should also addgeneric/mainline-aarch64, which in the end should result in the stock installer without device-specific configs.)I'm not a fan, though, of using “packages” (be it legacy or not) to expose ISOs. To me,
packagesshould be things that realistically will be added to a system, not random artifacts. But I don't know how that would be handled with thisflake-partsstructure. So that's left to be determined.