commit 586e63cb8f7e2f839cc3fc7c73e4b844dc85ee03
parent 548d0f2be3c459d20cf31f81ea5e0efbb4eb3d3a
Author: Jan Pobrislo <ccx@te2000.cz>
Date: Thu, 6 Nov 2025 13:50:37 +0000
Move environment definition into package set macros
Diffstat:
9 files changed, 138 insertions(+), 88 deletions(-)
diff --git a/templates/package_sets b/templates/package_sets
@@ -0,0 +1,114 @@
+{#
+{% macro foo() -%}
+{%- endmacro %}
+#}
+
+{% macro bootstrap() -%}
+#+{{pkg_install_name("busybox:bootstrap")}}
+#+{{pkg_install_name("gnu-make:bootstrap")}}
+#+{{pkg_install_name("musl-cross-make:bootstrap-1")}}
+{%- endmacro %}
+
+{% macro wip() -%}
+#+{{pkg_install_name("ocaml:dynlink")}}
+#+{{pkg_install_name("dune")}}
+#+{{pkg_install_name("ocamlbuild")}}
+#+{{pkg_install_name("ocaml-base")}}
+#+{{pkg_install_name("opam")}}
+#+{{pkg_install_name("ocaml-bos")}}
+#+{{pkg_install_name("ocaml-lun")}}
+#+{{pkg_install_name("ocaml-ppx_deriving")}}
+{#- #+{{pkg_install_name("ocaml-findlib")}} #}
+{%- endmacro %}
+
+{% macro ocaml() -%}{%- endmacro %}
+
+{% macro vm() -%}
+#+{{pkg_install_name("linux-qemu-guest")}}
+{%- endmacro %}
+
+{% macro mdevd() -%}
+#+{{pkg_install_name("busybox")}}
+#+{{pkg_install_name("execline")}}
+#+{{pkg_install_name("s6")}}
+#+{{pkg_install_name("mdev-scripts")}}
+#+{{pkg_install_name("mdevd")}}
+#+{{pkg_install_name(["busybox-modutils", "busybox:modutils"][kernel is defined|int])}}
+{%- endmacro %}
+
+{% macro containers() -%}
+#+{{pkg_install_name("busybox")}}
+#+{{pkg_install_name("busybox-diffutils")}}
+#+{{pkg_install_name("execline")}}
+#+{{pkg_install_name("s6")}}
+#+{{pkg_install_name("s6-portable-utils")}}
+#+{{pkg_install_name("s6-linux-utils")}}
+#+{{pkg_install_name("zsh")}}
+#+{{pkg_install_name("confz")}}
+#+{{pkg_install_name("containers")}}
+#+{{pkg_install_name("xbps")}}
+#+{{pkg_install_name("zstd")}}{# called by xbps-install #}
+#+{{pkg_install_name("apk-tools")}}
+#+{{pkg_install_name("alpine-keys")}}
+#+{{pkg_install_name("getent")}}
+#+{{pkg_install_name("fileset")}}
+#+{{pkg_install_name("ccx-utils")}}
+#+{{pkg_install_name("easyseccomp")}}
+#+{{pkg_install_name("findutils")}}
+#+{{pkg_install_name("nawk")}}
+{%- endmacro %}
+
+{% macro userspace() -%}
+#+{{pkg_install_name("busybox")}}
+#+{{pkg_install_name("gnu-make")}}
+#+{{pkg_install_name("musl-cross-make")}}
+#+{{pkg_install_name("diffutils")}}
+#+{{pkg_install_name("patch")}}
+#+{{pkg_install_name("flex")}}
+#+{{pkg_install_name("bison")}}
+#+{{pkg_install_name("rsync")}}
+#+{{pkg_install_name("execline")}}
+#+{{pkg_install_name("s6")}}
+#+{{pkg_install_name("s6-rc")}}
+#+{{pkg_install_name("s6-portable-utils")}}
+#+{{pkg_install_name("s6-linux-utils")}}
+#+{{pkg_install_name("s6-linux-init")}}
+#+{{pkg_install_name("mdevd")}}
+#+{{pkg_install_name("s6-dns")}}
+#+{{pkg_install_name("libressl")}}
+#+{{pkg_install_name("s6-networking")}}
+#+{{pkg_install_name("zsh")}}
+#+{{pkg_install_name("pthbs-banginstall")}}
+#+{{pkg_install_name("aat")}}
+#+{{pkg_install_name("confz")}}
+#+{{pkg_install_name("containers")}}
+#+{{pkg_install_name("fileset")}}
+#+{{pkg_install_name("logincaps")}}
+#+{{pkg_install_name("snaprep")}}
+#+{{pkg_install_name("curl")}}
+#+{{pkg_install_name("git")}}
+#+{{pkg_install_name("xbps")}}
+#+{{pkg_install_name("apk-tools")}}
+#+{{pkg_install_name("getent")}}
+#+{{pkg_install_name("getconf")}}
+#+{{pkg_install_name("iconv")}}
+#+{{pkg_install_name("libcap")}}
+#+{{pkg_install_name("applyuidgid-caps")}}
+#+{{pkg_install_name("ccx-utils")}}
+#+{{pkg_install_name("user-env")}}
+#+{{pkg_install_name("strace")}}
+#+{{pkg_install_name("mlog")}}
+#+{{pkg_install_name("findutils")}}
+#+{{pkg_install_name("nawk")}}
+#+{{pkg_install_name("squashfs-tools")}}
+{%- endmacro %}
+
+{% macro default() -%}
+{{ userspace() }}
+#+{{pkg_install_name("system-config")}}
+#+{{pkg_install_name("system-config-rc")}}
+#+{{pkg_install_name("system-config-scripts")}}
+#+{{pkg_install_name("system-config-init")}}
+#+{{pkg_install_name("system-config-zsh")}}
+#+{{pkg_install_name(["busybox-modutils", "busybox:modutils"][kernel is defined|int])}}
+{%- endmacro %}
diff --git a/templates/pkg/bootstrap.environment b/templates/pkg/bootstrap.environment
@@ -1,4 +1,5 @@
{{ shebang }}
-#+{{pkg_install_name("busybox:bootstrap")}}
-#+{{pkg_install_name("gnu-make:bootstrap")}}
-#+{{pkg_install_name("musl-cross-make:bootstrap-1")}}
+{%- set env_name=name.split('.')[0] -%}
+{%- import "package_sets" as ps %}
+{%- if ps[env_name]() == "" %}{% do skip("package set is empty: " ~ env_name) %}{% endif %}
+{{ ps[env_name]() }}
diff --git a/templates/pkg/containers.environment b/templates/pkg/containers.environment
@@ -1,20 +1,3 @@
{{ shebang }}
-#+{{pkg_install_name("busybox")}}
-#+{{pkg_install_name("busybox-diffutils")}}
-#+{{pkg_install_name("execline")}}
-#+{{pkg_install_name("s6")}}
-#+{{pkg_install_name("s6-portable-utils")}}
-#+{{pkg_install_name("s6-linux-utils")}}
-#+{{pkg_install_name("zsh")}}
-#+{{pkg_install_name("confz")}}
-#+{{pkg_install_name("containers")}}
-#+{{pkg_install_name("xbps")}}
-#+{{pkg_install_name("zstd")}}{# called by xbps-install #}
-#+{{pkg_install_name("apk-tools")}}
-#+{{pkg_install_name("alpine-keys")}}
-#+{{pkg_install_name("getent")}}
-#+{{pkg_install_name("fileset")}}
-#+{{pkg_install_name("ccx-utils")}}
-#+{{pkg_install_name("easyseccomp")}}
-#+{{pkg_install_name("findutils")}}
-#+{{pkg_install_name("nawk")}}
+{%- import "package_sets" as ps %}
+{{ ps[name.split('.')[0]]() }}
diff --git a/templates/pkg/default.environment b/templates/pkg/default.environment
@@ -1,8 +1,3 @@
-{% include "pkg/userspace.environment" %}
-#+{{pkg_install_name("system-config")}}
-#+{{pkg_install_name("system-config-rc")}}
-#+{{pkg_install_name("system-config-scripts")}}
-#+{{pkg_install_name("system-config-init")}}
-#+{{pkg_install_name("system-config-zsh")}}
-#+{{pkg_install_name(["busybox-modutils", "busybox:modutils"][kernel is defined|int])}}
-{#- {% include "pkg/kernel.environment" %} #}
+{{ shebang }}
+{%- import "package_sets" as ps %}
+{{ ps.default() }}
diff --git a/templates/pkg/mdevd.environment b/templates/pkg/mdevd.environment
@@ -1,7 +1,3 @@
{{ shebang }}
-#+{{pkg_install_name("busybox")}}
-#+{{pkg_install_name("execline")}}
-#+{{pkg_install_name("s6")}}
-#+{{pkg_install_name("mdev-scripts")}}
-#+{{pkg_install_name("mdevd")}}
-#+{{pkg_install_name(["busybox-modutils", "busybox:modutils"][kernel is defined|int])}}
+{%- import "package_sets" as ps %}
+{{ ps[name.split('.')[0]]() }}
diff --git a/templates/pkg/ocaml.environment b/templates/pkg/ocaml.environment
@@ -0,0 +1,5 @@
+{{ shebang }}
+{%- set env_name=name.split('.')[0] -%}
+{%- import "package_sets" as ps %}
+{%- if ps[env_name]() == "" %}{% do skip("package set is empty: " ~ env_name) %}{% endif %}
+{{ ps[env_name]() }}
diff --git a/templates/pkg/userspace.environment b/templates/pkg/userspace.environment
@@ -1,43 +1,3 @@
{{ shebang }}
-#+{{pkg_install_name("busybox")}}
-#+{{pkg_install_name("gnu-make")}}
-#+{{pkg_install_name("musl-cross-make")}}
-#+{{pkg_install_name("diffutils")}}
-#+{{pkg_install_name("patch")}}
-#+{{pkg_install_name("flex")}}
-#+{{pkg_install_name("bison")}}
-#+{{pkg_install_name("rsync")}}
-#+{{pkg_install_name("execline")}}
-#+{{pkg_install_name("s6")}}
-#+{{pkg_install_name("s6-rc")}}
-#+{{pkg_install_name("s6-portable-utils")}}
-#+{{pkg_install_name("s6-linux-utils")}}
-#+{{pkg_install_name("s6-linux-init")}}
-#+{{pkg_install_name("mdevd")}}
-#+{{pkg_install_name("s6-dns")}}
-#+{{pkg_install_name("libressl")}}
-#+{{pkg_install_name("s6-networking")}}
-#+{{pkg_install_name("zsh")}}
-#+{{pkg_install_name("pthbs-banginstall")}}
-#+{{pkg_install_name("aat")}}
-#+{{pkg_install_name("confz")}}
-#+{{pkg_install_name("containers")}}
-#+{{pkg_install_name("fileset")}}
-#+{{pkg_install_name("logincaps")}}
-#+{{pkg_install_name("snaprep")}}
-#+{{pkg_install_name("curl")}}
-#+{{pkg_install_name("git")}}
-#+{{pkg_install_name("xbps")}}
-#+{{pkg_install_name("apk-tools")}}
-#+{{pkg_install_name("getent")}}
-#+{{pkg_install_name("getconf")}}
-#+{{pkg_install_name("iconv")}}
-#+{{pkg_install_name("libcap")}}
-#+{{pkg_install_name("applyuidgid-caps")}}
-#+{{pkg_install_name("ccx-utils")}}
-#+{{pkg_install_name("user-env")}}
-#+{{pkg_install_name("strace")}}
-#+{{pkg_install_name("mlog")}}
-#+{{pkg_install_name("findutils")}}
-#+{{pkg_install_name("nawk")}}
-#+{{pkg_install_name("squashfs-tools")}}
+{%- import "package_sets" as ps %}
+{{ ps[name.split('.')[0]]() }}
diff --git a/templates/pkg/vm.environment b/templates/pkg/vm.environment
@@ -1,2 +1,3 @@
{{ shebang }}
-#+{{pkg_install_name("linux-qemu-guest")}}
+{%- import "package_sets" as ps %}
+{{ ps[name.split('.')[0]]() }}
diff --git a/templates/pkg/wip.environment b/templates/pkg/wip.environment
@@ -1,10 +1,5 @@
{{ shebang }}
-#+{{pkg_install_name("ocaml:dynlink")}}
-#+{{pkg_install_name("dune")}}
-#+{{pkg_install_name("ocamlbuild")}}
-#+{{pkg_install_name("ocaml-base")}}
-#+{{pkg_install_name("opam")}}
-#+{{pkg_install_name("ocaml-bos")}}
-#+{{pkg_install_name("ocaml-lun")}}
-#+{{pkg_install_name("ocaml-ppx_deriving")}}
-{#- #+{{pkg_install_name("ocaml-findlib")}} #}
+{%- set env_name=name.split('.')[0] -%}
+{%- import "package_sets" as ps %}
+{%- if ps[env_name]() == "" %}{% do skip("package set is empty: " ~ env_name) %}{% endif %}
+{{ ps[env_name]() }}