* feat: Add kmods installer module
Credits: @C0dePlayer
This is not ideal as it does not support custom kernels & it involves editing Containerfile.
I believe there is no other way but to make users edit Containerfile for those files to be even pulled of.
I would like this to be through the recipe only, so I will put this as a draft until some better ideas come.
* Update Containerfile
Related to this:
d76cca4f3a/modules/akmods/README.md
* Clarify change of akmod version better
Part of adding support for Surface & Asus images.
* Bump release-iso workflow to Fedora 39
* Pin isogenerator version
It is recommended in order to avoid some unexpected changes to the maintainer.
* Update other recipe & containerfile to reflect Fedora 39 change
this change makes sense for when in the future it's possible to
build other OS's with this same system
it was done now, because i'm bundling a bunch of breaking changes
into a single update
Every individual RUN, COPY and ADD action creates an extra container layer, so there was plenty of room for improvement in our Containerfile.
This optimization gets rid of 4 useless layers from our final container image, and shrinks the final OCI download size as follows:
- Removing the "mkdir /tmp/scripts" layer. It's not necessary to manually create the target directory for the container copy action.
- Removing the manual "chmod +x" for the scripts, and putting that step inside "build.sh" instead.
- Removing the manual copying of "build.sh", by instead placing it at "scripts/build.sh" so that it's automatically copied together with all the other scripts in one layer instead.
- Removing the separate "chmod +x build.sh && run build script" step by merging it with the "cleanup temp files and then finalize the container" step, so that we don't create a pointless extra filesystem layer just for the build.sh script execution.
These changes also reduce the size of the final image, because we're cleaning up the image in the exact same step that we run the "build.sh". If we didn't combine these steps, we'd still be keeping a useless extra layer with all the /tmp/ and /var/ junk files that were left over after the build.
Most seriously, the "/var/cache" folder contained copies of ALL RPM FILES that build.sh installed via "rpm-ostree install". This meant that we were generating a very big layer with a lot of junk data that shipped in the final image.
Our build now only generates 7 layers (instead of 11), and users will have a much smaller OCI download since we aren't shipping the cached RPM "build leftovers" or temp files via useless extra layers anymore.
- We don't have any files remaining in "./etc/" in this repo.
- We could add a ".gitkeep" file to it, to keep the "empty" directory, but then that file would get automatically merged as a hidden file into the final image, which is silly.
- So let's just document the proper location to place things instead, which is "usr/etc/".
- The Containerfile has also been cleaned up to be a bit easier to follow along what it's doing, such as putting the "copy scripts" step closer to the actual running of the scripts.
* feat: add nix install script from bluefin / dnkmmr
* feat: add nix-me-up just cmd from bluefin
* feat: just update nix if installed
* feat: add nix-app-icons.sh
enables desktop icon support by adding to XDG_DATA_DIRS
* chore: remove nix update for now
this will be added in a later PR
* fix: prevent /etc/ merge issues
discussed at length in #28
also including tons of comments about the issue
* fix: change references of /etc/ to /usr/etc
startingpoint has been updated to use multiple recipes. currently
this process is broken as the default recipe is always used. this
fixes this by adding a build arg to the containerfile and github
workflow build.