commit e9e72261ba68757b4485afc79d4d39633d4f3a1e
parent d573b328c53e4773720f9a1dd4f584adc65ceeec
Author: Jan Pobrislo <ccx@te2000.cz>
Date: Wed, 29 Oct 2025 00:29:46 +0000
ocaml packages
Diffstat:
17 files changed, 939 insertions(+), 4 deletions(-)
diff --git a/templates/generic b/templates/generic
@@ -8,8 +8,12 @@
#@git:{{submodule.current[upstream_name]}}:{{upstream_name}}
{% elif pkg_source == "tar" -%}
#@untar::{{downloads[upstream_name + "-" + assertion(pkg_version) + "." + pkg_source]}}:.
+{% elif pkg_source == "tgz" -%}
+#@untar:-z:{{downloads[upstream_name + "-" + assertion(pkg_version) + "." + pkg_source]}}:.
{% elif pkg_source == "tar.gz" -%}
#@untar:-z:{{downloads[upstream_name + "-" + assertion(pkg_version) + "." + pkg_source]}}:.
+{% elif pkg_source == "tbz" -%}
+#@untar:-j:{{downloads[upstream_name + "-" + assertion(pkg_version) + "." + pkg_source]}}:.
{% elif pkg_source == "tar.bz2" -%}
#@untar:-j:{{downloads[upstream_name + "-" + assertion(pkg_version) + "." + pkg_source]}}:.
{% elif pkg_source == "tar.xz" -%}
diff --git a/templates/pkg/ocaml-astring b/templates/pkg/ocaml-astring
@@ -0,0 +1,19 @@
+{%- set pkg_version="0.8.5" -%}
+{%- set upstream_name="astring" -%}
+{%- set pkg_source="tbz" -%}
+{% extends "topkg" %}
+{% block package_deps -%}
+#+{{pkg_install_name("ocaml-topkg")}}
+{% endblock package_deps %}
+{% block genlinks_begin %}
+ x["./library.ocaml/astring/astring.a"]=1
+ x["./library.ocaml/astring/astring.cma"]=1
+ x["./library.ocaml/astring/astring.cmi"]=1
+ x["./library.ocaml/astring/astring.cmt"]=1
+ x["./library.ocaml/astring/astring.cmti"]=1
+ x["./library.ocaml/astring/astring.cmx"]=1
+ x["./library.ocaml/astring/astring.cmxa"]=1
+ x["./library.ocaml/astring/astring.cmxs"]=1
+ x["./library.ocaml/astring/astring.ml"]=1
+ x["./library.ocaml/astring/astring.mli"]=1
+{% endblock genlinks_begin %}
diff --git a/templates/pkg/ocaml-bos b/templates/pkg/ocaml-bos
@@ -0,0 +1,21 @@
+{%- set pkg_version="0.7.0" -%}
+{%- set upstream_name="rresult" -%}
+{%- set pkg_source="tbz" -%}
+{% extends "topkg" %}
+{% block package_deps -%}
+#+{{pkg_install_name("ocaml-topkg")}}
+#+{{pkg_install_name("ocaml-astring")}}
+#+{{pkg_install_name("ocaml-rresult")}}
+{% endblock package_deps %}
+{% block genlinks_begin %}
+ x["./library.ocaml/bos/bos.a"]=1
+ x["./library.ocaml/bos/bos.cma"]=1
+ x["./library.ocaml/bos/bos.cmi"]=1
+ x["./library.ocaml/bos/bos.cmt"]=1
+ x["./library.ocaml/bos/bos.cmti"]=1
+ x["./library.ocaml/bos/bos.cmx"]=1
+ x["./library.ocaml/bos/bos.cmxa"]=1
+ x["./library.ocaml/bos/bos.cmxs"]=1
+ x["./library.ocaml/bos/bos.ml"]=1
+ x["./library.ocaml/bos/bos.mli"]=1
+{% endblock genlinks_begin %}
diff --git a/templates/pkg/ocaml-rresult b/templates/pkg/ocaml-rresult
@@ -0,0 +1,19 @@
+{%- set pkg_version="0.7.0" -%}
+{%- set upstream_name="rresult" -%}
+{%- set pkg_source="tbz" -%}
+{% extends "topkg" %}
+{% block package_deps -%}
+#+{{pkg_install_name("ocaml-topkg")}}
+{% endblock package_deps %}
+{% block genlinks_begin %}
+ x["./library.ocaml/rresult/rresult.a"]=1
+ x["./library.ocaml/rresult/rresult.cma"]=1
+ x["./library.ocaml/rresult/rresult.cmi"]=1
+ x["./library.ocaml/rresult/rresult.cmt"]=1
+ x["./library.ocaml/rresult/rresult.cmti"]=1
+ x["./library.ocaml/rresult/rresult.cmx"]=1
+ x["./library.ocaml/rresult/rresult.cmxa"]=1
+ x["./library.ocaml/rresult/rresult.cmxs"]=1
+ x["./library.ocaml/rresult/rresult.ml"]=1
+ x["./library.ocaml/rresult/rresult.mli"]=1
+{% endblock genlinks_begin %}
diff --git a/templates/pkg/ocaml-topkg b/templates/pkg/ocaml-topkg
@@ -0,0 +1,16 @@
+{%- set pkg_version="1.0.5" -%}
+{%- set upstream_name="topkg" -%}
+{%- set pkg_source="tbz" -%}
+{% extends "topkg" %}
+{% block genlinks_begin %}
+ x["./library.ocaml/topkg/topkg.a"]=1
+ x["./library.ocaml/topkg/topkg.cma"]=1
+ x["./library.ocaml/topkg/topkg.cmi"]=1
+ x["./library.ocaml/topkg/topkg.cmt"]=1
+ x["./library.ocaml/topkg/topkg.cmti"]=1
+ x["./library.ocaml/topkg/topkg.cmx"]=1
+ x["./library.ocaml/topkg/topkg.cmxa"]=1
+ x["./library.ocaml/topkg/topkg.cmxs"]=1
+ x["./library.ocaml/topkg/topkg.ml"]=1
+ x["./library.ocaml/topkg/topkg.mli"]=1
+{% endblock genlinks_begin %}
diff --git a/templates/pkg/wip.environment b/templates/pkg/wip.environment
@@ -4,4 +4,5 @@
#+{{pkg_install_name("ocamlbuild")}}
#+{{pkg_install_name("ocaml-base")}}
#+{{pkg_install_name("opam")}}
+#+{{pkg_install_name("ocaml-bos")}}
{#- #+{{pkg_install_name("ocaml-findlib")}} #}
diff --git a/templates/topkg b/templates/topkg
@@ -0,0 +1,27 @@
+{% extends "genlinks" %}
+{% block template_deps -%}
+{{ super() -}}
+#+{{pkg_install_name("busybox-diffutils")}}
+#+{{pkg_install_name("musl-cross-make")}}
+#+{{pkg_install_name("ocaml")}}
+#+{{pkg_install_name("ocaml-findlib")}}
+#+{{pkg_install_name("ocamlbuild")}}
+#+{{pkg_install_name("opam")}}
+{% endblock template_deps %}
+{%- block build %}
+ocaml pkg/pkg.ml build
+
+{% endblock build %}
+{%- block install %}
+ opam-installer -i \
+ --prefix="$dest" \
+ --libdir="$dest/library.ocaml" \
+ --mandir="$dest/man" \
+ --docdir="$dest/doc/{{shortname}}"
+
+{% endblock install %}
+{% block genlinks_rules %}
+{{ super() -}}
+$2 == "library.ocaml" { link($0); next }
+{% endblock genlinks_rules -%}
+
diff --git a/variants/ccx-x86_64/ocaml-astring b/variants/ccx-x86_64/ocaml-astring
@@ -0,0 +1,103 @@
+#!/usr/bin/env pthbs-build
+#+busybox.47c820e8cf3f700bf5b693d7d379272d485e5078b2036912ce2e01bb998caf1f
+#+busybox-findutils.79fab8ce17646e27c958348822c367903ddbef44dcebb134d16caa4fc287b716
+#+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b
+#+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8
+#+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f
+#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763
+#+ocaml-findlib.a61ac6b73b6aa88d3e3944bc47b9d4916b464a1b154e120dbed5d6890d6813c3
+#+ocamlbuild.1f92ef06cb109487b573ecdd2059d0b0ab559ec12ac113d9fa88a4372103d884
+#+opam.980b1502f3730e01bb440581e4d7a06832832110b48a7f1d7f37d2bb5143cdfd
+#+ocaml-topkg.4bf23fa6e99ba9a2b085914c1a5a043fa202665f5b700a3baba1b8dec533158a
+#@untar:-j:sha256:865692630c07c3ab87c66cdfc2734c0fdfc9c34a57f8e89ffec7c7d15e7a70fa:.
+
+
+# - build script start -
+
+prefix=/home/ccx/versions/$pthbs_package
+dest=${pthbs_destdir%/}${prefix}
+cd 'astring-0.8.5'
+
+
+
+ocaml pkg/pkg.ml build
+
+
+ opam-installer -i \
+ --prefix="$dest" \
+ --libdir="$dest/library.ocaml" \
+ --mandir="$dest/man" \
+ --docdir="$dest/doc/ocaml-astring"
+
+
+
+
+
+cd "$pthbs_destdir/home/ccx/versions/$pthbs_package"
+find -type d -o -print | awk -F/ '
+BEGIN {
+ x["./library.ocaml/astring/astring.a"]=1
+ x["./library.ocaml/astring/astring.cma"]=1
+ x["./library.ocaml/astring/astring.cmi"]=1
+ x["./library.ocaml/astring/astring.cmt"]=1
+ x["./library.ocaml/astring/astring.cmti"]=1
+ x["./library.ocaml/astring/astring.cmx"]=1
+ x["./library.ocaml/astring/astring.cmxa"]=1
+ x["./library.ocaml/astring/astring.cmxs"]=1
+ x["./library.ocaml/astring/astring.ml"]=1
+ x["./library.ocaml/astring/astring.mli"]=1
+}
+
+function r1(s) {
+ sub("^[.]/[^/]*", ".", s)
+ return s
+}
+function s1(repl, s) {
+ sub("^[.]/[^/]*", "./"repl, s)
+ return s
+}
+function link(src) {
+ x[$0]=0
+ printf "%s\t%s\n", $0, src
+ printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
+}
+$1!="."{exit 1}
+
+
+$2 == "library.ocaml" { link($0); next }
+
+$2 == "config" { link($0); next }
+$2 == "keys" { link($0); next }
+$2 == "zsh" { link($0); next }
+$2 == "env" { link($0); next }
+$2 == "command" { link($0); next }
+$2 == "bin" { link(s1("command", $0)); next }
+
+$2 == "library.so" { link($0); next }
+$2 == "library" { link($0); next }
+$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
+$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next }
+
+$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next }
+
+$2 == "man" { link($0); next }
+$2 == "info" { link($0); next }
+$2 == "doc" { link($0); next }
+$2 == "icons" { link($0); next }
+$2 == "terminfo" { link($0); next }
+$2 == "data" { link($0); next }
+$2 == "include" { link($0); next }
+
+{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
+
+END {
+ for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
+ for(fname in x) {
+ if(x[fname]) {
+ printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
+ exit 3
+ }
+ }
+}' >.install-links.new
+mv .install-links.new .install-links
+
diff --git a/variants/ccx-x86_64/ocaml-bos b/variants/ccx-x86_64/ocaml-bos
@@ -0,0 +1,105 @@
+#!/usr/bin/env pthbs-build
+#+busybox.47c820e8cf3f700bf5b693d7d379272d485e5078b2036912ce2e01bb998caf1f
+#+busybox-findutils.79fab8ce17646e27c958348822c367903ddbef44dcebb134d16caa4fc287b716
+#+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b
+#+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8
+#+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f
+#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763
+#+ocaml-findlib.a61ac6b73b6aa88d3e3944bc47b9d4916b464a1b154e120dbed5d6890d6813c3
+#+ocamlbuild.1f92ef06cb109487b573ecdd2059d0b0ab559ec12ac113d9fa88a4372103d884
+#+opam.980b1502f3730e01bb440581e4d7a06832832110b48a7f1d7f37d2bb5143cdfd
+#+ocaml-topkg.4bf23fa6e99ba9a2b085914c1a5a043fa202665f5b700a3baba1b8dec533158a
+#+ocaml-astring.3ef0c306cca8149221bda3943eb738a4b52c39390ea1f5bb9fabf819405dda09
+#+ocaml-rresult.9f5e6913976951030d6685fd548aec850b429ea8e8b234d899391d1c984b2292
+#@untar:-j:sha256:11aa7f5b83460e60431e3154e3e32c071d46e151ea5760cf24377805bf975540:.
+
+
+# - build script start -
+
+prefix=/home/ccx/versions/$pthbs_package
+dest=${pthbs_destdir%/}${prefix}
+cd 'rresult-0.7.0'
+
+
+
+ocaml pkg/pkg.ml build
+
+
+ opam-installer -i \
+ --prefix="$dest" \
+ --libdir="$dest/library.ocaml" \
+ --mandir="$dest/man" \
+ --docdir="$dest/doc/ocaml-bos"
+
+
+
+
+
+cd "$pthbs_destdir/home/ccx/versions/$pthbs_package"
+find -type d -o -print | awk -F/ '
+BEGIN {
+ x["./library.ocaml/bos/bos.a"]=1
+ x["./library.ocaml/bos/bos.cma"]=1
+ x["./library.ocaml/bos/bos.cmi"]=1
+ x["./library.ocaml/bos/bos.cmt"]=1
+ x["./library.ocaml/bos/bos.cmti"]=1
+ x["./library.ocaml/bos/bos.cmx"]=1
+ x["./library.ocaml/bos/bos.cmxa"]=1
+ x["./library.ocaml/bos/bos.cmxs"]=1
+ x["./library.ocaml/bos/bos.ml"]=1
+ x["./library.ocaml/bos/bos.mli"]=1
+}
+
+function r1(s) {
+ sub("^[.]/[^/]*", ".", s)
+ return s
+}
+function s1(repl, s) {
+ sub("^[.]/[^/]*", "./"repl, s)
+ return s
+}
+function link(src) {
+ x[$0]=0
+ printf "%s\t%s\n", $0, src
+ printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
+}
+$1!="."{exit 1}
+
+
+$2 == "library.ocaml" { link($0); next }
+
+$2 == "config" { link($0); next }
+$2 == "keys" { link($0); next }
+$2 == "zsh" { link($0); next }
+$2 == "env" { link($0); next }
+$2 == "command" { link($0); next }
+$2 == "bin" { link(s1("command", $0)); next }
+
+$2 == "library.so" { link($0); next }
+$2 == "library" { link($0); next }
+$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
+$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next }
+
+$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next }
+
+$2 == "man" { link($0); next }
+$2 == "info" { link($0); next }
+$2 == "doc" { link($0); next }
+$2 == "icons" { link($0); next }
+$2 == "terminfo" { link($0); next }
+$2 == "data" { link($0); next }
+$2 == "include" { link($0); next }
+
+{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
+
+END {
+ for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
+ for(fname in x) {
+ if(x[fname]) {
+ printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
+ exit 3
+ }
+ }
+}' >.install-links.new
+mv .install-links.new .install-links
+
diff --git a/variants/ccx-x86_64/ocaml-rresult b/variants/ccx-x86_64/ocaml-rresult
@@ -0,0 +1,103 @@
+#!/usr/bin/env pthbs-build
+#+busybox.47c820e8cf3f700bf5b693d7d379272d485e5078b2036912ce2e01bb998caf1f
+#+busybox-findutils.79fab8ce17646e27c958348822c367903ddbef44dcebb134d16caa4fc287b716
+#+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b
+#+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8
+#+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f
+#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763
+#+ocaml-findlib.a61ac6b73b6aa88d3e3944bc47b9d4916b464a1b154e120dbed5d6890d6813c3
+#+ocamlbuild.1f92ef06cb109487b573ecdd2059d0b0ab559ec12ac113d9fa88a4372103d884
+#+opam.980b1502f3730e01bb440581e4d7a06832832110b48a7f1d7f37d2bb5143cdfd
+#+ocaml-topkg.4bf23fa6e99ba9a2b085914c1a5a043fa202665f5b700a3baba1b8dec533158a
+#@untar:-j:sha256:11aa7f5b83460e60431e3154e3e32c071d46e151ea5760cf24377805bf975540:.
+
+
+# - build script start -
+
+prefix=/home/ccx/versions/$pthbs_package
+dest=${pthbs_destdir%/}${prefix}
+cd 'rresult-0.7.0'
+
+
+
+ocaml pkg/pkg.ml build
+
+
+ opam-installer -i \
+ --prefix="$dest" \
+ --libdir="$dest/library.ocaml" \
+ --mandir="$dest/man" \
+ --docdir="$dest/doc/ocaml-rresult"
+
+
+
+
+
+cd "$pthbs_destdir/home/ccx/versions/$pthbs_package"
+find -type d -o -print | awk -F/ '
+BEGIN {
+ x["./library.ocaml/rresult/rresult.a"]=1
+ x["./library.ocaml/rresult/rresult.cma"]=1
+ x["./library.ocaml/rresult/rresult.cmi"]=1
+ x["./library.ocaml/rresult/rresult.cmt"]=1
+ x["./library.ocaml/rresult/rresult.cmti"]=1
+ x["./library.ocaml/rresult/rresult.cmx"]=1
+ x["./library.ocaml/rresult/rresult.cmxa"]=1
+ x["./library.ocaml/rresult/rresult.cmxs"]=1
+ x["./library.ocaml/rresult/rresult.ml"]=1
+ x["./library.ocaml/rresult/rresult.mli"]=1
+}
+
+function r1(s) {
+ sub("^[.]/[^/]*", ".", s)
+ return s
+}
+function s1(repl, s) {
+ sub("^[.]/[^/]*", "./"repl, s)
+ return s
+}
+function link(src) {
+ x[$0]=0
+ printf "%s\t%s\n", $0, src
+ printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
+}
+$1!="."{exit 1}
+
+
+$2 == "library.ocaml" { link($0); next }
+
+$2 == "config" { link($0); next }
+$2 == "keys" { link($0); next }
+$2 == "zsh" { link($0); next }
+$2 == "env" { link($0); next }
+$2 == "command" { link($0); next }
+$2 == "bin" { link(s1("command", $0)); next }
+
+$2 == "library.so" { link($0); next }
+$2 == "library" { link($0); next }
+$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
+$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next }
+
+$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next }
+
+$2 == "man" { link($0); next }
+$2 == "info" { link($0); next }
+$2 == "doc" { link($0); next }
+$2 == "icons" { link($0); next }
+$2 == "terminfo" { link($0); next }
+$2 == "data" { link($0); next }
+$2 == "include" { link($0); next }
+
+{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
+
+END {
+ for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
+ for(fname in x) {
+ if(x[fname]) {
+ printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
+ exit 3
+ }
+ }
+}' >.install-links.new
+mv .install-links.new .install-links
+
diff --git a/variants/ccx-x86_64/ocaml-topkg b/variants/ccx-x86_64/ocaml-topkg
@@ -0,0 +1,102 @@
+#!/usr/bin/env pthbs-build
+#+busybox.47c820e8cf3f700bf5b693d7d379272d485e5078b2036912ce2e01bb998caf1f
+#+busybox-findutils.79fab8ce17646e27c958348822c367903ddbef44dcebb134d16caa4fc287b716
+#+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b
+#+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8
+#+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f
+#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763
+#+ocaml-findlib.a61ac6b73b6aa88d3e3944bc47b9d4916b464a1b154e120dbed5d6890d6813c3
+#+ocamlbuild.1f92ef06cb109487b573ecdd2059d0b0ab559ec12ac113d9fa88a4372103d884
+#+opam.980b1502f3730e01bb440581e4d7a06832832110b48a7f1d7f37d2bb5143cdfd
+#@untar:-j:sha256:452082626e651ac4b1633c2b4ae4cad7abeb1fb6a13046e699f95eec58b5d1c7:.
+
+
+# - build script start -
+
+prefix=/home/ccx/versions/$pthbs_package
+dest=${pthbs_destdir%/}${prefix}
+cd 'topkg-1.0.5'
+
+
+
+ocaml pkg/pkg.ml build
+
+
+ opam-installer -i \
+ --prefix="$dest" \
+ --libdir="$dest/library.ocaml" \
+ --mandir="$dest/man" \
+ --docdir="$dest/doc/ocaml-topkg"
+
+
+
+
+
+cd "$pthbs_destdir/home/ccx/versions/$pthbs_package"
+find -type d -o -print | awk -F/ '
+BEGIN {
+ x["./library.ocaml/topkg/topkg.a"]=1
+ x["./library.ocaml/topkg/topkg.cma"]=1
+ x["./library.ocaml/topkg/topkg.cmi"]=1
+ x["./library.ocaml/topkg/topkg.cmt"]=1
+ x["./library.ocaml/topkg/topkg.cmti"]=1
+ x["./library.ocaml/topkg/topkg.cmx"]=1
+ x["./library.ocaml/topkg/topkg.cmxa"]=1
+ x["./library.ocaml/topkg/topkg.cmxs"]=1
+ x["./library.ocaml/topkg/topkg.ml"]=1
+ x["./library.ocaml/topkg/topkg.mli"]=1
+}
+
+function r1(s) {
+ sub("^[.]/[^/]*", ".", s)
+ return s
+}
+function s1(repl, s) {
+ sub("^[.]/[^/]*", "./"repl, s)
+ return s
+}
+function link(src) {
+ x[$0]=0
+ printf "%s\t%s\n", $0, src
+ printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
+}
+$1!="."{exit 1}
+
+
+$2 == "library.ocaml" { link($0); next }
+
+$2 == "config" { link($0); next }
+$2 == "keys" { link($0); next }
+$2 == "zsh" { link($0); next }
+$2 == "env" { link($0); next }
+$2 == "command" { link($0); next }
+$2 == "bin" { link(s1("command", $0)); next }
+
+$2 == "library.so" { link($0); next }
+$2 == "library" { link($0); next }
+$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
+$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next }
+
+$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next }
+
+$2 == "man" { link($0); next }
+$2 == "info" { link($0); next }
+$2 == "doc" { link($0); next }
+$2 == "icons" { link($0); next }
+$2 == "terminfo" { link($0); next }
+$2 == "data" { link($0); next }
+$2 == "include" { link($0); next }
+
+{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
+
+END {
+ for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
+ for(fname in x) {
+ if(x[fname]) {
+ printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
+ exit 3
+ }
+ }
+}' >.install-links.new
+mv .install-links.new .install-links
+
diff --git a/variants/ccx-x86_64/wip.environment b/variants/ccx-x86_64/wip.environment
@@ -3,4 +3,5 @@
#+dune.0bf1fa603f0e8ae0f1b4fd7e28d8be34f035e643e5594e0a380ce13485b06a6c
#+ocamlbuild.1f92ef06cb109487b573ecdd2059d0b0ab559ec12ac113d9fa88a4372103d884
#+ocaml-base.15c014249975c989e3c9b2e5379406579f3dbd7cdfa40aac8628865bb57df155
-#+opam.980b1502f3730e01bb440581e4d7a06832832110b48a7f1d7f37d2bb5143cdfd-
\ No newline at end of file
+#+opam.980b1502f3730e01bb440581e4d7a06832832110b48a7f1d7f37d2bb5143cdfd
+#+ocaml-bos.c480c759b54d4f23867e95795297fa484c8a3241f8354e56eae2e727060cb0d6+
\ No newline at end of file
diff --git a/variants/root-x86_64/ocaml-astring b/variants/root-x86_64/ocaml-astring
@@ -0,0 +1,103 @@
+#!/usr/bin/env pthbs-build
+#+busybox.05cde6bebcef146cc4de9201c82e0ef427702cc3bfe1acb48c0587542ba53002
+#+busybox-findutils.2c87d98d861d724e141128f395bed58e70601468aee2a192d77d5791d83772b7
+#+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b
+#+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc
+#+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676
+#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691
+#+ocaml-findlib.86135939e924589adf4f414376013b61b0354b7c19047ec3841829c1d6e031b3
+#+ocamlbuild.c3517ef4f01ee9188faf3fc292460b4865e24fed652e1079d153e4bc1345bdfc
+#+opam.0024db1cd6d51699e0b9dc7163d9ada59a1503d039065f64b55b7e4433024e03
+#+ocaml-topkg.8722b047af0417bb0793a8c36ac819c1ebb9dff159edfa8c7dda18bf78c06e9b
+#@untar:-j:sha256:865692630c07c3ab87c66cdfc2734c0fdfc9c34a57f8e89ffec7c7d15e7a70fa:.
+
+
+# - build script start -
+
+prefix=/versions/$pthbs_package
+dest=${pthbs_destdir%/}${prefix}
+cd 'astring-0.8.5'
+
+
+
+ocaml pkg/pkg.ml build
+
+
+ opam-installer -i \
+ --prefix="$dest" \
+ --libdir="$dest/library.ocaml" \
+ --mandir="$dest/man" \
+ --docdir="$dest/doc/ocaml-astring"
+
+
+
+
+
+cd "$pthbs_destdir/versions/$pthbs_package"
+find -type d -o -print | awk -F/ '
+BEGIN {
+ x["./library.ocaml/astring/astring.a"]=1
+ x["./library.ocaml/astring/astring.cma"]=1
+ x["./library.ocaml/astring/astring.cmi"]=1
+ x["./library.ocaml/astring/astring.cmt"]=1
+ x["./library.ocaml/astring/astring.cmti"]=1
+ x["./library.ocaml/astring/astring.cmx"]=1
+ x["./library.ocaml/astring/astring.cmxa"]=1
+ x["./library.ocaml/astring/astring.cmxs"]=1
+ x["./library.ocaml/astring/astring.ml"]=1
+ x["./library.ocaml/astring/astring.mli"]=1
+}
+
+function r1(s) {
+ sub("^[.]/[^/]*", ".", s)
+ return s
+}
+function s1(repl, s) {
+ sub("^[.]/[^/]*", "./"repl, s)
+ return s
+}
+function link(src) {
+ x[$0]=0
+ printf "%s\t%s\n", $0, src
+ printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
+}
+$1!="."{exit 1}
+
+
+$2 == "library.ocaml" { link($0); next }
+
+$2 == "config" { link($0); next }
+$2 == "keys" { link($0); next }
+$2 == "zsh" { link($0); next }
+$2 == "env" { link($0); next }
+$2 == "command" { link($0); next }
+$2 == "bin" { link(s1("command", $0)); next }
+
+$2 == "library.so" { link($0); next }
+$2 == "library" { link($0); next }
+$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
+$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next }
+
+$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next }
+
+$2 == "man" { link($0); next }
+$2 == "info" { link($0); next }
+$2 == "doc" { link($0); next }
+$2 == "icons" { link($0); next }
+$2 == "terminfo" { link($0); next }
+$2 == "data" { link($0); next }
+$2 == "include" { link($0); next }
+
+{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
+
+END {
+ for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
+ for(fname in x) {
+ if(x[fname]) {
+ printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
+ exit 3
+ }
+ }
+}' >.install-links.new
+mv .install-links.new .install-links
+
diff --git a/variants/root-x86_64/ocaml-bos b/variants/root-x86_64/ocaml-bos
@@ -0,0 +1,105 @@
+#!/usr/bin/env pthbs-build
+#+busybox.05cde6bebcef146cc4de9201c82e0ef427702cc3bfe1acb48c0587542ba53002
+#+busybox-findutils.2c87d98d861d724e141128f395bed58e70601468aee2a192d77d5791d83772b7
+#+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b
+#+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc
+#+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676
+#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691
+#+ocaml-findlib.86135939e924589adf4f414376013b61b0354b7c19047ec3841829c1d6e031b3
+#+ocamlbuild.c3517ef4f01ee9188faf3fc292460b4865e24fed652e1079d153e4bc1345bdfc
+#+opam.0024db1cd6d51699e0b9dc7163d9ada59a1503d039065f64b55b7e4433024e03
+#+ocaml-topkg.8722b047af0417bb0793a8c36ac819c1ebb9dff159edfa8c7dda18bf78c06e9b
+#+ocaml-astring.cf262a2d47f6e8dc05e9b5c62b4fc33c29e117a0434ef7b99afa9a20b3074323
+#+ocaml-rresult.efaf5db55ea527916898ad03da4fc87eb0d815ff710402e9cec4355edbb7752c
+#@untar:-j:sha256:11aa7f5b83460e60431e3154e3e32c071d46e151ea5760cf24377805bf975540:.
+
+
+# - build script start -
+
+prefix=/versions/$pthbs_package
+dest=${pthbs_destdir%/}${prefix}
+cd 'rresult-0.7.0'
+
+
+
+ocaml pkg/pkg.ml build
+
+
+ opam-installer -i \
+ --prefix="$dest" \
+ --libdir="$dest/library.ocaml" \
+ --mandir="$dest/man" \
+ --docdir="$dest/doc/ocaml-bos"
+
+
+
+
+
+cd "$pthbs_destdir/versions/$pthbs_package"
+find -type d -o -print | awk -F/ '
+BEGIN {
+ x["./library.ocaml/bos/bos.a"]=1
+ x["./library.ocaml/bos/bos.cma"]=1
+ x["./library.ocaml/bos/bos.cmi"]=1
+ x["./library.ocaml/bos/bos.cmt"]=1
+ x["./library.ocaml/bos/bos.cmti"]=1
+ x["./library.ocaml/bos/bos.cmx"]=1
+ x["./library.ocaml/bos/bos.cmxa"]=1
+ x["./library.ocaml/bos/bos.cmxs"]=1
+ x["./library.ocaml/bos/bos.ml"]=1
+ x["./library.ocaml/bos/bos.mli"]=1
+}
+
+function r1(s) {
+ sub("^[.]/[^/]*", ".", s)
+ return s
+}
+function s1(repl, s) {
+ sub("^[.]/[^/]*", "./"repl, s)
+ return s
+}
+function link(src) {
+ x[$0]=0
+ printf "%s\t%s\n", $0, src
+ printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
+}
+$1!="."{exit 1}
+
+
+$2 == "library.ocaml" { link($0); next }
+
+$2 == "config" { link($0); next }
+$2 == "keys" { link($0); next }
+$2 == "zsh" { link($0); next }
+$2 == "env" { link($0); next }
+$2 == "command" { link($0); next }
+$2 == "bin" { link(s1("command", $0)); next }
+
+$2 == "library.so" { link($0); next }
+$2 == "library" { link($0); next }
+$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
+$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next }
+
+$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next }
+
+$2 == "man" { link($0); next }
+$2 == "info" { link($0); next }
+$2 == "doc" { link($0); next }
+$2 == "icons" { link($0); next }
+$2 == "terminfo" { link($0); next }
+$2 == "data" { link($0); next }
+$2 == "include" { link($0); next }
+
+{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
+
+END {
+ for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
+ for(fname in x) {
+ if(x[fname]) {
+ printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
+ exit 3
+ }
+ }
+}' >.install-links.new
+mv .install-links.new .install-links
+
diff --git a/variants/root-x86_64/ocaml-rresult b/variants/root-x86_64/ocaml-rresult
@@ -0,0 +1,103 @@
+#!/usr/bin/env pthbs-build
+#+busybox.05cde6bebcef146cc4de9201c82e0ef427702cc3bfe1acb48c0587542ba53002
+#+busybox-findutils.2c87d98d861d724e141128f395bed58e70601468aee2a192d77d5791d83772b7
+#+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b
+#+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc
+#+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676
+#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691
+#+ocaml-findlib.86135939e924589adf4f414376013b61b0354b7c19047ec3841829c1d6e031b3
+#+ocamlbuild.c3517ef4f01ee9188faf3fc292460b4865e24fed652e1079d153e4bc1345bdfc
+#+opam.0024db1cd6d51699e0b9dc7163d9ada59a1503d039065f64b55b7e4433024e03
+#+ocaml-topkg.8722b047af0417bb0793a8c36ac819c1ebb9dff159edfa8c7dda18bf78c06e9b
+#@untar:-j:sha256:11aa7f5b83460e60431e3154e3e32c071d46e151ea5760cf24377805bf975540:.
+
+
+# - build script start -
+
+prefix=/versions/$pthbs_package
+dest=${pthbs_destdir%/}${prefix}
+cd 'rresult-0.7.0'
+
+
+
+ocaml pkg/pkg.ml build
+
+
+ opam-installer -i \
+ --prefix="$dest" \
+ --libdir="$dest/library.ocaml" \
+ --mandir="$dest/man" \
+ --docdir="$dest/doc/ocaml-rresult"
+
+
+
+
+
+cd "$pthbs_destdir/versions/$pthbs_package"
+find -type d -o -print | awk -F/ '
+BEGIN {
+ x["./library.ocaml/rresult/rresult.a"]=1
+ x["./library.ocaml/rresult/rresult.cma"]=1
+ x["./library.ocaml/rresult/rresult.cmi"]=1
+ x["./library.ocaml/rresult/rresult.cmt"]=1
+ x["./library.ocaml/rresult/rresult.cmti"]=1
+ x["./library.ocaml/rresult/rresult.cmx"]=1
+ x["./library.ocaml/rresult/rresult.cmxa"]=1
+ x["./library.ocaml/rresult/rresult.cmxs"]=1
+ x["./library.ocaml/rresult/rresult.ml"]=1
+ x["./library.ocaml/rresult/rresult.mli"]=1
+}
+
+function r1(s) {
+ sub("^[.]/[^/]*", ".", s)
+ return s
+}
+function s1(repl, s) {
+ sub("^[.]/[^/]*", "./"repl, s)
+ return s
+}
+function link(src) {
+ x[$0]=0
+ printf "%s\t%s\n", $0, src
+ printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
+}
+$1!="."{exit 1}
+
+
+$2 == "library.ocaml" { link($0); next }
+
+$2 == "config" { link($0); next }
+$2 == "keys" { link($0); next }
+$2 == "zsh" { link($0); next }
+$2 == "env" { link($0); next }
+$2 == "command" { link($0); next }
+$2 == "bin" { link(s1("command", $0)); next }
+
+$2 == "library.so" { link($0); next }
+$2 == "library" { link($0); next }
+$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
+$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next }
+
+$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next }
+
+$2 == "man" { link($0); next }
+$2 == "info" { link($0); next }
+$2 == "doc" { link($0); next }
+$2 == "icons" { link($0); next }
+$2 == "terminfo" { link($0); next }
+$2 == "data" { link($0); next }
+$2 == "include" { link($0); next }
+
+{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
+
+END {
+ for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
+ for(fname in x) {
+ if(x[fname]) {
+ printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
+ exit 3
+ }
+ }
+}' >.install-links.new
+mv .install-links.new .install-links
+
diff --git a/variants/root-x86_64/ocaml-topkg b/variants/root-x86_64/ocaml-topkg
@@ -0,0 +1,102 @@
+#!/usr/bin/env pthbs-build
+#+busybox.05cde6bebcef146cc4de9201c82e0ef427702cc3bfe1acb48c0587542ba53002
+#+busybox-findutils.2c87d98d861d724e141128f395bed58e70601468aee2a192d77d5791d83772b7
+#+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b
+#+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc
+#+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676
+#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691
+#+ocaml-findlib.86135939e924589adf4f414376013b61b0354b7c19047ec3841829c1d6e031b3
+#+ocamlbuild.c3517ef4f01ee9188faf3fc292460b4865e24fed652e1079d153e4bc1345bdfc
+#+opam.0024db1cd6d51699e0b9dc7163d9ada59a1503d039065f64b55b7e4433024e03
+#@untar:-j:sha256:452082626e651ac4b1633c2b4ae4cad7abeb1fb6a13046e699f95eec58b5d1c7:.
+
+
+# - build script start -
+
+prefix=/versions/$pthbs_package
+dest=${pthbs_destdir%/}${prefix}
+cd 'topkg-1.0.5'
+
+
+
+ocaml pkg/pkg.ml build
+
+
+ opam-installer -i \
+ --prefix="$dest" \
+ --libdir="$dest/library.ocaml" \
+ --mandir="$dest/man" \
+ --docdir="$dest/doc/ocaml-topkg"
+
+
+
+
+
+cd "$pthbs_destdir/versions/$pthbs_package"
+find -type d -o -print | awk -F/ '
+BEGIN {
+ x["./library.ocaml/topkg/topkg.a"]=1
+ x["./library.ocaml/topkg/topkg.cma"]=1
+ x["./library.ocaml/topkg/topkg.cmi"]=1
+ x["./library.ocaml/topkg/topkg.cmt"]=1
+ x["./library.ocaml/topkg/topkg.cmti"]=1
+ x["./library.ocaml/topkg/topkg.cmx"]=1
+ x["./library.ocaml/topkg/topkg.cmxa"]=1
+ x["./library.ocaml/topkg/topkg.cmxs"]=1
+ x["./library.ocaml/topkg/topkg.ml"]=1
+ x["./library.ocaml/topkg/topkg.mli"]=1
+}
+
+function r1(s) {
+ sub("^[.]/[^/]*", ".", s)
+ return s
+}
+function s1(repl, s) {
+ sub("^[.]/[^/]*", "./"repl, s)
+ return s
+}
+function link(src) {
+ x[$0]=0
+ printf "%s\t%s\n", $0, src
+ printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
+}
+$1!="."{exit 1}
+
+
+$2 == "library.ocaml" { link($0); next }
+
+$2 == "config" { link($0); next }
+$2 == "keys" { link($0); next }
+$2 == "zsh" { link($0); next }
+$2 == "env" { link($0); next }
+$2 == "command" { link($0); next }
+$2 == "bin" { link(s1("command", $0)); next }
+
+$2 == "library.so" { link($0); next }
+$2 == "library" { link($0); next }
+$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
+$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next }
+
+$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next }
+
+$2 == "man" { link($0); next }
+$2 == "info" { link($0); next }
+$2 == "doc" { link($0); next }
+$2 == "icons" { link($0); next }
+$2 == "terminfo" { link($0); next }
+$2 == "data" { link($0); next }
+$2 == "include" { link($0); next }
+
+{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
+
+END {
+ for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
+ for(fname in x) {
+ if(x[fname]) {
+ printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
+ exit 3
+ }
+ }
+}' >.install-links.new
+mv .install-links.new .install-links
+
diff --git a/variants/root-x86_64/wip.environment b/variants/root-x86_64/wip.environment
@@ -3,4 +3,5 @@
#+dune.d71d865a1e049f9cb3345d4588f36c028ef41ae48915a57ce510bfe02d623bf8
#+ocamlbuild.c3517ef4f01ee9188faf3fc292460b4865e24fed652e1079d153e4bc1345bdfc
#+ocaml-base.def774f8d6a68e11e8d7e1d3291b67fbd8711662f91cf843e69dd729cb9c566c
-#+opam.0024db1cd6d51699e0b9dc7163d9ada59a1503d039065f64b55b7e4433024e03-
\ No newline at end of file
+#+opam.0024db1cd6d51699e0b9dc7163d9ada59a1503d039065f64b55b7e4433024e03
+#+ocaml-bos.6bafffa3cc8d5d521b6be8c7e5b704a993d97a28777a5b8636c84b2b80be12bb+
\ No newline at end of file