From f73871d2028117341a5f080d7df7a2eed4bc55c2 Mon Sep 17 00:00:00 2001 From: Jonni Liljamo Date: Thu, 20 Nov 2025 12:52:57 +0200 Subject: [PATCH] feat: makeimg init --- .gitignore | 8 ++++++++ .makeimg.modes | 19 +++++++++++++++++++ IMGBUILD | 7 +++++++ files/etc/apk/repositories | 2 ++ justfile | 37 +++++++++++++++++++++++++++++++++++++ keys | 1 + makeimg.nix | 19 ++++++++++++++++++- repositories | 1 + 8 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 .makeimg.modes create mode 100644 IMGBUILD create mode 100644 files/etc/apk/repositories create mode 100644 justfile create mode 120000 keys create mode 120000 repositories diff --git a/.gitignore b/.gitignore index 4fe1cb4..9c56e8d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,11 @@ +# Nix Flake /.direnv/ /.pre-commit-config.yaml /result + +# makeimg outputs +/anemos-test.img +/anemos-test.packages + +# Alpine Linux keys +/files/etc/apk/keys/* diff --git a/.makeimg.modes b/.makeimg.modes new file mode 100644 index 0000000..b5ced61 --- /dev/null +++ b/.makeimg.modes @@ -0,0 +1,19 @@ +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub +644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub +644 files/etc/apk/repositories diff --git a/IMGBUILD b/IMGBUILD new file mode 100644 index 0000000..29fabc7 --- /dev/null +++ b/IMGBUILD @@ -0,0 +1,7 @@ +imgname=anemos-test +target=alpine +format="raw 4g msdos ext4" + +packages=" + alpine-base +" diff --git a/files/etc/apk/repositories b/files/etc/apk/repositories new file mode 100644 index 0000000..02a7842 --- /dev/null +++ b/files/etc/apk/repositories @@ -0,0 +1,2 @@ +https://dl-cdn.alpinelinux.org/alpine/v3.22/main +https://dl-cdn.alpinelinux.org/alpine/v3.22/community diff --git a/justfile b/justfile new file mode 100644 index 0000000..882e8c2 --- /dev/null +++ b/justfile @@ -0,0 +1,37 @@ +_default: + just --list + +alpine-keys: + #!/usr/bin/env sh + mkdir -p files/etc/apk/keys + cd files/etc/apk/keys + + # Copy the names unser APKBUILD from here: + # https://git.alpinelinux.org/aports/plain/main/alpine-keys + keys=" + alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub + alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub + alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub + alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub + alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub + alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub + alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub + alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub + alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub + alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub + alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub + alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub + alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub + alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub + alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub + alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub + alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub + alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub + " + + for key in $keys; do + curl -O "https://git.alpinelinux.org/aports/plain/main/alpine-keys/${key}" + done + +build: + sudo makeimg diff --git a/keys b/keys new file mode 120000 index 0000000..bc8f321 --- /dev/null +++ b/keys @@ -0,0 +1 @@ +files/etc/apk/keys \ No newline at end of file diff --git a/makeimg.nix b/makeimg.nix index 03ee5a9..e37da56 100644 --- a/makeimg.nix +++ b/makeimg.nix @@ -1,6 +1,14 @@ { - stdenv, + makeWrapper, + lib, pkgs, + stdenv, + coreutils, + util-linux, + e2fsprogs, + parted, + apk-tools, + findutils, ... }: let in @@ -17,7 +25,16 @@ in dontBuild = true; + nativeBuildInputs = [makeWrapper]; installPhase = '' install -Dm755 -t $out/bin makeimg + wrapProgram $out/bin/makeimg --set PATH ${lib.makeBinPath [ + coreutils + util-linux + e2fsprogs + parted + apk-tools + findutils + ]} ''; } diff --git a/repositories b/repositories new file mode 120000 index 0000000..8ecfe62 --- /dev/null +++ b/repositories @@ -0,0 +1 @@ +files/etc/apk/repositories \ No newline at end of file -- 2.44.1