mrrl

Minimal Reliable Reproducible Linux
git clone https://ccx.te2000.cz/git/mrrl
Log | Files | Refs | Submodules | README

commit 7ee2cecca33ecb91f74615a35392a3a0cfd53eb2
parent c20c17d32d36b107920ba9fc77e7d4658e1c752b
Author: Jan Pobrislo <ccx@te2000.cz>
Date:   Mon, 27 Oct 2025 11:41:53 +0000

ocaml packages

Diffstat:
Mtemplates/pkg/ocaml | 9++-------
Atemplates/pkg/ocaml:dynlink | 18++++++++++++++++++
Mtemplates/pkg/opam | 3++-
Mvariants/ccx-x86_64/dune | 2+-
Mvariants/ccx-x86_64/ocaml | 5++---
Mvariants/ccx-x86_64/ocaml-base | 8++++----
Mvariants/ccx-x86_64/ocaml-findlib | 2+-
Mvariants/ccx-x86_64/ocaml-sexplib0 | 4++--
Avariants/ccx-x86_64/ocaml:dynlink | 123+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/ccx-x86_64/ocaml_intrinsics_kernel | 4++--
Mvariants/ccx-x86_64/ocamlbuild | 2+-
Mvariants/ccx-x86_64/opam | 7++++---
Mvariants/ccx-x86_64/wip.environment | 12++++++------
Mvariants/root-x86_64/dune | 2+-
Mvariants/root-x86_64/ocaml | 5++---
Mvariants/root-x86_64/ocaml-base | 8++++----
Mvariants/root-x86_64/ocaml-findlib | 2+-
Mvariants/root-x86_64/ocaml-sexplib0 | 4++--
Avariants/root-x86_64/ocaml:dynlink | 123+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/root-x86_64/ocaml_intrinsics_kernel | 4++--
Mvariants/root-x86_64/ocamlbuild | 2+-
Mvariants/root-x86_64/opam | 7++++---
Mvariants/root-x86_64/wip.environment | 12++++++------
23 files changed, 314 insertions(+), 54 deletions(-)

diff --git a/templates/pkg/ocaml b/templates/pkg/ocaml @@ -1,14 +1,9 @@ {%- set pkg_version="5.4.0" -%} {%- set pkg_source="tar.xz" -%} -{% extends "autotools" %} -{%- do import_functions.update(["build_env_static", "check_static"]) %} +{% extends "autotools_static" %} {% do setitem(env_template, "OCAMLPATH", "@ENVROOT@/library.ocaml") %} {% do setitem(env_template, "OCAMLPARAM", "I=@ENVROOT@/library.ocaml,_") %} -{%- block configure %} -build_env_static -autotools_config --enable-native-compiler --disable-native-toplevel --enable-installing-bytecode-programs --libdir="$prefix/library.ocaml" - -{% endblock configure %} +{%- block configure_args %}--enable-native-compiler --disable-native-toplevel --enable-installing-bytecode-programs --libdir="$prefix/library.ocaml"{% endblock %} {% block check -%} check_static command/ocamlopt diff --git a/templates/pkg/ocaml:dynlink b/templates/pkg/ocaml:dynlink @@ -0,0 +1,18 @@ +{%- set pkg_version="5.4.0" -%} +{%- set pkg_source="tar.xz" -%} +{% extends "autotools" %} +{%- do import_functions.update(["build_env_dynamic"]) %} +{% do setitem(env_template, "OCAMLPATH", "@ENVROOT@/library.ocaml") %} +{% do setitem(env_template, "OCAMLPARAM", "I=@ENVROOT@/library.ocaml,_") %} +{%- block configure %} +build_env_dynamic +autotools_config --enable-native-compiler --disable-native-toplevel --enable-installing-bytecode-programs --libdir="$prefix/library.ocaml" + +{% endblock configure %} +{% block genlinks_begin %} + x["./command/ocamlopt"]=1 +{% endblock %} +{% block genlinks_rules %} +$2 == "library.ocaml" { link($0); next } +$2 == ".env-template" { link($0); next } +{% endblock -%} diff --git a/templates/pkg/opam b/templates/pkg/opam @@ -7,7 +7,7 @@ #+{{pkg_install_name("patch")}} #+{{pkg_install_name("gnu-make")}} #+{{pkg_install_name("musl-cross-make")}} -#+{{pkg_install_name("ocaml")}} +#+{{pkg_install_name("ocaml:dynlink")}} #+{{pkg_install_name("dune")}} #@untar:-z:{{downloads["opam-full-" + assertion(pkg_version) + ".tar.gz"]}}:. {% endblock package_deps %} @@ -37,6 +37,7 @@ make DUNE_ARGS=--verbose {% block check -%} make tests check_static command/opam +check_static command/opam-installer {% endblock check %} {% block genlinks_begin %} diff --git a/variants/ccx-x86_64/dune b/variants/ccx-x86_64/dune @@ -4,7 +4,7 @@ #+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b #+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8 #+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f -#+ocaml.4cfdb7eca8b558bf5c082ea7d6ec69e434a38ece062b332eb9c93b01c95741b1 +#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763 #@untar:-z:sha256:579c738f8ca191ba0a9b22dbe78f1377542442c9827cf4939f8964f09f9edb28:. diff --git a/variants/ccx-x86_64/ocaml b/variants/ccx-x86_64/ocaml @@ -60,9 +60,8 @@ dest=${pthbs_destdir%/}${prefix} cd 'ocaml-5.4.0' -build_env_static -autotools_config --enable-native-compiler --disable-native-toplevel --enable-installing-bytecode-programs --libdir="$prefix/library.ocaml" - +autotools_config_static --enable-native-compiler --disable-native-toplevel --enable-installing-bytecode-programs --libdir="$prefix/library.ocaml" + make -j${JOBS:-1} -l$((1+${JOBS:-1})) diff --git a/variants/ccx-x86_64/ocaml-base b/variants/ccx-x86_64/ocaml-base @@ -4,10 +4,10 @@ #+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b #+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8 #+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f -#+ocaml.4cfdb7eca8b558bf5c082ea7d6ec69e434a38ece062b332eb9c93b01c95741b1 -#+dune.96b2d22581cb76fb6d4231f0cd758c0ad294b78a8e3f3733f0acd0d828933b04 -#+ocaml_intrinsics_kernel.fbe5fc81ace75ccc7814309762bef5e83f8a8e8c508a5f906817c0613e642731 -#+ocaml-sexplib0.6656336f363dfee9c0e063977c1bda7b0dfdaf2fc894163b971020d62f1ff37e +#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763 +#+dune.0bf1fa603f0e8ae0f1b4fd7e28d8be34f035e643e5594e0a380ce13485b06a6c +#+ocaml_intrinsics_kernel.16ed146b02bc9156f3992e8a5e86bf84358aedbbe209a79cdcae96f1a42b296b +#+ocaml-sexplib0.7ac2faf2340d7e45ce8e6cec23d13becb9013643d005781ba81fd64a514816d1 #@untar:-z:sha256:3f3f64789ab25bb5cb7f5f907dd651dec9cc9440981822fe75df6b94344b7208:. diff --git a/variants/ccx-x86_64/ocaml-findlib b/variants/ccx-x86_64/ocaml-findlib @@ -6,7 +6,7 @@ #+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f #+gnu-make.7f18f735a456d2fbe052b2605010941e48ce678fe79a65937be1769e87197062 #+m4.dc120fc43dc1cb22ba9ebbaf5639f6c7fa9f159e361a84b6ebfbdacb3fab058d -#+ocaml.4cfdb7eca8b558bf5c082ea7d6ec69e434a38ece062b332eb9c93b01c95741b1 +#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763 #@untar:-z:sha256:d6899935ccabf67f067a9af3f3f88d94e310075d13c648fa03ff498769ce039d:. diff --git a/variants/ccx-x86_64/ocaml-sexplib0 b/variants/ccx-x86_64/ocaml-sexplib0 @@ -4,8 +4,8 @@ #+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b #+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8 #+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f -#+ocaml.4cfdb7eca8b558bf5c082ea7d6ec69e434a38ece062b332eb9c93b01c95741b1 -#+dune.96b2d22581cb76fb6d4231f0cd758c0ad294b78a8e3f3733f0acd0d828933b04 +#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763 +#+dune.0bf1fa603f0e8ae0f1b4fd7e28d8be34f035e643e5594e0a380ce13485b06a6c #@untar:-z:sha256:86dba26468194512f789f2fb709063515a9cb4e5c4461c021c239a369590701d:. diff --git a/variants/ccx-x86_64/ocaml:dynlink b/variants/ccx-x86_64/ocaml:dynlink @@ -0,0 +1,123 @@ +#!/usr/bin/env pthbs-build +#+busybox.47c820e8cf3f700bf5b693d7d379272d485e5078b2036912ce2e01bb998caf1f +#+busybox-findutils.79fab8ce17646e27c958348822c367903ddbef44dcebb134d16caa4fc287b716 +#+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b +#+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8 +#+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f +#+gnu-make.7f18f735a456d2fbe052b2605010941e48ce678fe79a65937be1769e87197062 +#+m4.dc120fc43dc1cb22ba9ebbaf5639f6c7fa9f159e361a84b6ebfbdacb3fab058d +#@untar:-J:sha256:dfaa8a2e11c799bc1765d8bef44911406ee5f4803027190382a939f88c912266:. + + +# - build script start - + +autotools_config() { + prefix=/home/ccx/versions/$pthbs_package + ./configure -C \ + --prefix="$prefix" \ + --build="$(${CC:-gcc} -dumpmachine)" \ + --bindir="$prefix/command" \ + --sbindir="$prefix/command" \ + --infodir="$prefix/info" \ + --localedir="$prefix/locale" \ + --mandir="$prefix/man" \ + --libdir="$prefix/library" \ + --docdir="$prefix/doc/ocaml" \ + --datadir="$prefix/data" \ + --datarootdir="$prefix/data" \ + --localstatedir='/var/pthbs' \ + "$@" + +} + +autotools_config_static() { + build_env_static + autotools_config "$@" --enable-static --disable-shared +} + +build_env_dynamic() { + export LD_LIBRARY_PATH="$pthbs_build_environment/library.so" + export CPATH="$pthbs_build_environment/include" + export LDFLAGS="-L$pthbs_build_environment/library.so $LDFLAGS" +} + +prefix=/home/ccx/versions/$pthbs_package +dest=${pthbs_destdir%/}${prefix} +cd 'ocaml-5.4.0' + + +build_env_dynamic +autotools_config --enable-native-compiler --disable-native-toplevel --enable-installing-bytecode-programs --libdir="$prefix/library.ocaml" + + +make -j${JOBS:-1} -l$((1+${JOBS:-1})) + +make DESTDIR="$pthbs_destdir" install + + + + +mkdir -p "$dest/.env-template" +printf '%s' >"$dest/.env-template"/'OCAMLPARAM' 'I=@ENVROOT@/library.ocaml,_' +printf '%s' >"$dest/.env-template"/'OCAMLPATH' '@ENVROOT@/library.ocaml' + +cd "$pthbs_destdir/home/ccx/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/ocamlopt"]=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 == ".env-template" { 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_intrinsics_kernel b/variants/ccx-x86_64/ocaml_intrinsics_kernel @@ -4,8 +4,8 @@ #+busybox-awk.6efe6e8726ffa7c47dc117be114219675ccea315e4e29685e40a06b61d249f9b #+busybox-diffutils.f40ac7713836b6eaa4e46db3b7577b533f4738fb10bf732edc044ffc48eb9ec8 #+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f -#+ocaml.4cfdb7eca8b558bf5c082ea7d6ec69e434a38ece062b332eb9c93b01c95741b1 -#+dune.96b2d22581cb76fb6d4231f0cd758c0ad294b78a8e3f3733f0acd0d828933b04 +#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763 +#+dune.0bf1fa603f0e8ae0f1b4fd7e28d8be34f035e643e5594e0a380ce13485b06a6c #@untar:-z:sha256:c988b7769a59749631c3c98ba5edd1d2fe91f5dc380b5e0593c073c92f4bee01:. diff --git a/variants/ccx-x86_64/ocamlbuild b/variants/ccx-x86_64/ocamlbuild @@ -6,7 +6,7 @@ #+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f #+gnu-make.7f18f735a456d2fbe052b2605010941e48ce678fe79a65937be1769e87197062 #+m4.dc120fc43dc1cb22ba9ebbaf5639f6c7fa9f159e361a84b6ebfbdacb3fab058d -#+ocaml.4cfdb7eca8b558bf5c082ea7d6ec69e434a38ece062b332eb9c93b01c95741b1 +#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763 #@untar:-z:sha256:2ba6857f2991b7f69368e8db818b163d31cf5a367f15f5953bf8f01a77b3d4fc:. diff --git a/variants/ccx-x86_64/opam b/variants/ccx-x86_64/opam @@ -6,8 +6,8 @@ #+patch.71865adfe1b1a83862c182902ff3bf77fcce6168cde6b35cd59fd5a85916e7c8 #+gnu-make.7f18f735a456d2fbe052b2605010941e48ce678fe79a65937be1769e87197062 #+musl-cross-make.e4735d8572f9b6654a7381ebdfbd62e665d1d1da5e06a56923e89274cc6a510f -#+ocaml.4cfdb7eca8b558bf5c082ea7d6ec69e434a38ece062b332eb9c93b01c95741b1 -#+dune.96b2d22581cb76fb6d4231f0cd758c0ad294b78a8e3f3733f0acd0d828933b04 +#+ocaml.25730b05a968e5472a0458d040d5a52a7eee2d5b896231dc9476f51117cb7c5c +#+dune.0bf1fa603f0e8ae0f1b4fd7e28d8be34f035e643e5594e0a380ce13485b06a6c #@untar:-z:sha256:c4d053029793c714e4e7340b1157428c0f90783585fb17f35158247a640467d9:. @@ -45,7 +45,7 @@ export DUNE_CACHE=disabled --infodir="$prefix/info" \ --localedir="$prefix/locale" \ --localstatedir='/var/pthbs' \ - --with-dune='/home/ccx/versions/dune.96b2d22581cb76fb6d4231f0cd758c0ad294b78a8e3f3733f0acd0d828933b04/command/dune' \ + --with-dune='/home/ccx/versions/dune.0bf1fa603f0e8ae0f1b4fd7e28d8be34f035e643e5594e0a380ce13485b06a6c/command/dune' \ --with-mccs \ --with-vendored-deps \ --enable-static @@ -58,6 +58,7 @@ make DESTDIR="$pthbs_destdir" install make tests check_static command/opam +check_static command/opam-installer diff --git a/variants/ccx-x86_64/wip.environment b/variants/ccx-x86_64/wip.environment @@ -1,6 +1,6 @@ #!/usr/bin/env pthbs-build -#+ocaml.4cfdb7eca8b558bf5c082ea7d6ec69e434a38ece062b332eb9c93b01c95741b1 -#+dune.96b2d22581cb76fb6d4231f0cd758c0ad294b78a8e3f3733f0acd0d828933b04 -#+ocamlbuild.9e4130dd4bbc617e4c56eac3551e64e9f706a444b5ab81cc2e36bce2a73c2202 -#+ocaml-base.91f2899ebe8be0b779e5f89caaa7ebcf214f055f5476c3919c98b663dac70b11 -#+opam.24e7c0e451222ac7610f20ce66d458e401b279ae6370f208c577fc7da3661fec- \ No newline at end of file +#+ocaml.ef754772d8f7327d0be86b448ecdefacca57060d3e358a9d917b40e9e323d763 +#+dune.0bf1fa603f0e8ae0f1b4fd7e28d8be34f035e643e5594e0a380ce13485b06a6c +#+ocamlbuild.1f92ef06cb109487b573ecdd2059d0b0ab559ec12ac113d9fa88a4372103d884 +#+ocaml-base.15c014249975c989e3c9b2e5379406579f3dbd7cdfa40aac8628865bb57df155 +#+opam.e990073fb6c854103ab48fcf3ac7430af748620141fa05a62e97e3cc2e091e08+ \ No newline at end of file diff --git a/variants/root-x86_64/dune b/variants/root-x86_64/dune @@ -4,7 +4,7 @@ #+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b #+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc #+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 -#+ocaml.8680c865c7a8f9efccf48d901a21b6beca7da8325e8c900f3db88756c8ed7b5a +#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691 #@untar:-z:sha256:579c738f8ca191ba0a9b22dbe78f1377542442c9827cf4939f8964f09f9edb28:. diff --git a/variants/root-x86_64/ocaml b/variants/root-x86_64/ocaml @@ -60,9 +60,8 @@ dest=${pthbs_destdir%/}${prefix} cd 'ocaml-5.4.0' -build_env_static -autotools_config --enable-native-compiler --disable-native-toplevel --enable-installing-bytecode-programs --libdir="$prefix/library.ocaml" - +autotools_config_static --enable-native-compiler --disable-native-toplevel --enable-installing-bytecode-programs --libdir="$prefix/library.ocaml" + make -j${JOBS:-1} -l$((1+${JOBS:-1})) diff --git a/variants/root-x86_64/ocaml-base b/variants/root-x86_64/ocaml-base @@ -4,10 +4,10 @@ #+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b #+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc #+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 -#+ocaml.8680c865c7a8f9efccf48d901a21b6beca7da8325e8c900f3db88756c8ed7b5a -#+dune.d4e80a48c5b65ac9299dcce38ad05e692474b17f6e578727ede176de25c53742 -#+ocaml_intrinsics_kernel.904d114600358bc047bdd592e9a495b761102ee66ca55471c5fe0e71ff7dbd06 -#+ocaml-sexplib0.01ae46b7bb9d3264499d5c1fa4881cf4c4561e1792ad12c9662e474aa763c8c5 +#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691 +#+dune.d71d865a1e049f9cb3345d4588f36c028ef41ae48915a57ce510bfe02d623bf8 +#+ocaml_intrinsics_kernel.9bc274eaa63c8f8bd585747fbfbb7ec0651449fa5d43713726de7e72abfb5307 +#+ocaml-sexplib0.f3b749f3314a6cf821882d9720fafeb1d582c7238947a2c04a1eef1d2208c3ca #@untar:-z:sha256:3f3f64789ab25bb5cb7f5f907dd651dec9cc9440981822fe75df6b94344b7208:. diff --git a/variants/root-x86_64/ocaml-findlib b/variants/root-x86_64/ocaml-findlib @@ -6,7 +6,7 @@ #+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 #+gnu-make.72c6cd66010255e26a13af335dd8220c935dfc6e811ca0f28226e35f6099ff15 #+m4.d87711c3b6d7cdea0f3b7a7af19a969fb6293d09aa1f310a4df3098201e26838 -#+ocaml.8680c865c7a8f9efccf48d901a21b6beca7da8325e8c900f3db88756c8ed7b5a +#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691 #@untar:-z:sha256:d6899935ccabf67f067a9af3f3f88d94e310075d13c648fa03ff498769ce039d:. diff --git a/variants/root-x86_64/ocaml-sexplib0 b/variants/root-x86_64/ocaml-sexplib0 @@ -4,8 +4,8 @@ #+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b #+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc #+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 -#+ocaml.8680c865c7a8f9efccf48d901a21b6beca7da8325e8c900f3db88756c8ed7b5a -#+dune.d4e80a48c5b65ac9299dcce38ad05e692474b17f6e578727ede176de25c53742 +#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691 +#+dune.d71d865a1e049f9cb3345d4588f36c028ef41ae48915a57ce510bfe02d623bf8 #@untar:-z:sha256:86dba26468194512f789f2fb709063515a9cb4e5c4461c021c239a369590701d:. diff --git a/variants/root-x86_64/ocaml:dynlink b/variants/root-x86_64/ocaml:dynlink @@ -0,0 +1,123 @@ +#!/usr/bin/env pthbs-build +#+busybox.05cde6bebcef146cc4de9201c82e0ef427702cc3bfe1acb48c0587542ba53002 +#+busybox-findutils.2c87d98d861d724e141128f395bed58e70601468aee2a192d77d5791d83772b7 +#+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b +#+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc +#+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 +#+gnu-make.72c6cd66010255e26a13af335dd8220c935dfc6e811ca0f28226e35f6099ff15 +#+m4.d87711c3b6d7cdea0f3b7a7af19a969fb6293d09aa1f310a4df3098201e26838 +#@untar:-J:sha256:dfaa8a2e11c799bc1765d8bef44911406ee5f4803027190382a939f88c912266:. + + +# - build script start - + +autotools_config() { + prefix=/versions/$pthbs_package + ./configure -C \ + --prefix="$prefix" \ + --build="$(${CC:-gcc} -dumpmachine)" \ + --bindir="$prefix/command" \ + --sbindir="$prefix/command" \ + --infodir="$prefix/info" \ + --localedir="$prefix/locale" \ + --mandir="$prefix/man" \ + --libdir="$prefix/library" \ + --docdir="$prefix/doc/ocaml" \ + --datadir="$prefix/data" \ + --datarootdir="$prefix/data" \ + --localstatedir='/var/pthbs' \ + "$@" + +} + +autotools_config_static() { + build_env_static + autotools_config "$@" --enable-static --disable-shared +} + +build_env_dynamic() { + export LD_LIBRARY_PATH="$pthbs_build_environment/library.so" + export CPATH="$pthbs_build_environment/include" + export LDFLAGS="-L$pthbs_build_environment/library.so $LDFLAGS" +} + +prefix=/versions/$pthbs_package +dest=${pthbs_destdir%/}${prefix} +cd 'ocaml-5.4.0' + + +build_env_dynamic +autotools_config --enable-native-compiler --disable-native-toplevel --enable-installing-bytecode-programs --libdir="$prefix/library.ocaml" + + +make -j${JOBS:-1} -l$((1+${JOBS:-1})) + +make DESTDIR="$pthbs_destdir" install + + + + +mkdir -p "$dest/.env-template" +printf '%s' >"$dest/.env-template"/'OCAMLPARAM' 'I=@ENVROOT@/library.ocaml,_' +printf '%s' >"$dest/.env-template"/'OCAMLPATH' '@ENVROOT@/library.ocaml' + +cd "$pthbs_destdir/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/ocamlopt"]=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 == ".env-template" { 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_intrinsics_kernel b/variants/root-x86_64/ocaml_intrinsics_kernel @@ -4,8 +4,8 @@ #+busybox-awk.a5b9d5a1c719361e565a642a57d44356c26855fb0eda30c03eaf582ba6c3194b #+busybox-diffutils.977bc00da27e0150d3b3d395fe42cf24e0364b03390cab81002f27b34158d9fc #+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 -#+ocaml.8680c865c7a8f9efccf48d901a21b6beca7da8325e8c900f3db88756c8ed7b5a -#+dune.d4e80a48c5b65ac9299dcce38ad05e692474b17f6e578727ede176de25c53742 +#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691 +#+dune.d71d865a1e049f9cb3345d4588f36c028ef41ae48915a57ce510bfe02d623bf8 #@untar:-z:sha256:c988b7769a59749631c3c98ba5edd1d2fe91f5dc380b5e0593c073c92f4bee01:. diff --git a/variants/root-x86_64/ocamlbuild b/variants/root-x86_64/ocamlbuild @@ -6,7 +6,7 @@ #+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 #+gnu-make.72c6cd66010255e26a13af335dd8220c935dfc6e811ca0f28226e35f6099ff15 #+m4.d87711c3b6d7cdea0f3b7a7af19a969fb6293d09aa1f310a4df3098201e26838 -#+ocaml.8680c865c7a8f9efccf48d901a21b6beca7da8325e8c900f3db88756c8ed7b5a +#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691 #@untar:-z:sha256:2ba6857f2991b7f69368e8db818b163d31cf5a367f15f5953bf8f01a77b3d4fc:. diff --git a/variants/root-x86_64/opam b/variants/root-x86_64/opam @@ -6,8 +6,8 @@ #+patch.1f7ab95c511ea31573c4b2e3338bd15925cd1b93631a0681388475e41678d93f #+gnu-make.72c6cd66010255e26a13af335dd8220c935dfc6e811ca0f28226e35f6099ff15 #+musl-cross-make.ef7f483eefcad5b8f2d6c8329e61a0acaca7864b88e9521cb839392c62f45676 -#+ocaml.8680c865c7a8f9efccf48d901a21b6beca7da8325e8c900f3db88756c8ed7b5a -#+dune.d4e80a48c5b65ac9299dcce38ad05e692474b17f6e578727ede176de25c53742 +#+ocaml.8c21f24d07485e61cf270c6f08b4835b300c5bbed438c00d4a15da7c4c310a82 +#+dune.d71d865a1e049f9cb3345d4588f36c028ef41ae48915a57ce510bfe02d623bf8 #@untar:-z:sha256:c4d053029793c714e4e7340b1157428c0f90783585fb17f35158247a640467d9:. @@ -45,7 +45,7 @@ export DUNE_CACHE=disabled --infodir="$prefix/info" \ --localedir="$prefix/locale" \ --localstatedir='/var/pthbs' \ - --with-dune='/versions/dune.d4e80a48c5b65ac9299dcce38ad05e692474b17f6e578727ede176de25c53742/command/dune' \ + --with-dune='/versions/dune.d71d865a1e049f9cb3345d4588f36c028ef41ae48915a57ce510bfe02d623bf8/command/dune' \ --with-mccs \ --with-vendored-deps \ --enable-static @@ -58,6 +58,7 @@ make DESTDIR="$pthbs_destdir" install make tests check_static command/opam +check_static command/opam-installer diff --git a/variants/root-x86_64/wip.environment b/variants/root-x86_64/wip.environment @@ -1,6 +1,6 @@ #!/usr/bin/env pthbs-build -#+ocaml.8680c865c7a8f9efccf48d901a21b6beca7da8325e8c900f3db88756c8ed7b5a -#+dune.d4e80a48c5b65ac9299dcce38ad05e692474b17f6e578727ede176de25c53742 -#+ocamlbuild.696fa2279788c806984b896b57b98984afa57e2f94bc62ef0a944a2453df0caa -#+ocaml-base.7ed5f3bb03213cfe95788c1f604b54dd279f816bcfbedd449753bbeea67c9c2b -#+opam.9cb3f5a1cb26bee2b40e4fc872b08cbb0befaecb3ef1e2113c4891298dec3eb4- \ No newline at end of file +#+ocaml.5f284ca479cb1311e030bce243d0075ef6bdbc702f514ca5a836b4638b203691 +#+dune.d71d865a1e049f9cb3345d4588f36c028ef41ae48915a57ce510bfe02d623bf8 +#+ocamlbuild.c3517ef4f01ee9188faf3fc292460b4865e24fed652e1079d153e4bc1345bdfc +#+ocaml-base.def774f8d6a68e11e8d7e1d3291b67fbd8711662f91cf843e69dd729cb9c566c +#+opam.2957f921b1e330eb19abac1abdda7782b5c556307410049fc9f0478e2db005ef+ \ No newline at end of file