mrrl

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

commit 364329bd4784e0d172ced668eecd493d05302dcd
parent d5a810b4c0e3ede72ae8a7e72ca3544df67cc40f
Author: Jan Pobrislo <ccx@te2000.cz>
Date:   Mon, 26 May 2025 14:48:10 +0000

Add mlog from vuxu

Diffstat:
M.gitmodules | 3+++
Mcommitlist.sha1 | 2++
Asources/mlog | 1+
Atemplates/pkg/mlog | 23+++++++++++++++++++++++
Mtemplates/pkg/userspace.environment | 1+
Mvariants/ccx-x86_64/default.environment | 1+
Avariants/ccx-x86_64/mlog | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/ccx-x86_64/userspace.environment | 5+++--
Mvariants/root-x86_64/default.environment | 1+
Avariants/root-x86_64/mlog | 90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mvariants/root-x86_64/userspace.environment | 5+++--
11 files changed, 218 insertions(+), 4 deletions(-)

diff --git a/.gitmodules b/.gitmodules @@ -111,3 +111,6 @@ path = sources/libelf url = https://github.com/arachsys/libelf branch = tags/v0.193 +[submodule "sources/mlog"] + path = sources/mlog + url = git://git.vuxu.org/mlog diff --git a/commitlist.sha1 b/commitlist.sha1 @@ -1793,6 +1793,8 @@ ca7f6ecdeff71b8525b77004d24835404147c0e8 sources/mdevd d414dc4ffaacc23bd743e2e8bed7423d030b3a8e sources/mdevd d7ae3ec33282fe4d1ead4ff3c164b49a8194d099 sources/mdevd ea993d4a7785ff8a3d0e2ebcd6a7513519df7b83 sources/mdevd +6847561a81a9310c82f19f209008a56073225fcb sources/mlog +d04aff8c528014d7583a9207a48d6e934116eec3 sources/mlog 629189831f61b73ba1053624eee12ff6a816438f sources/musl-cross-make 67edcf134d9c373a4093e5510dc141ebf8a53fb5 sources/musl-cross-make 6f3701d08137496d5aac479e3a3977b5ae993c1f sources/musl-cross-make diff --git a/sources/mlog b/sources/mlog @@ -0,0 +1 @@ +Subproject commit 6847561a81a9310c82f19f209008a56073225fcb diff --git a/templates/pkg/mlog b/templates/pkg/mlog @@ -0,0 +1,23 @@ +{% extends "genlinks" %} +{%- block script %} +#+{{pkg_install_name("musl-cross-make")}} +#+{{pkg_install_name("gnu-make")}} +#+{{pkg_install_name("busybox")}} + +name=mlog +{% include "functions/check_static" %} +{% include "functions/build_env_static" %} +{% include "functions/vars" %} +build_env_static +def_prefix + +make "$name" + +install -d "$pthbs_destdir/$prefix/command" +install -m 755 "$name" "$pthbs_destdir/$prefix/command" +check_static "command/$name" +{% endblock %} +{% block genlinks_begin %} + x["./command/mlog"]=1 +{%- endblock %} + diff --git a/templates/pkg/userspace.environment b/templates/pkg/userspace.environment @@ -37,3 +37,4 @@ #+{{pkg_install_name("ccx-utils")}} #+{{pkg_install_name("user-env")}} #+{{pkg_install_name("strace")}} +#+{{pkg_install_name("mlog")}} diff --git a/variants/ccx-x86_64/default.environment b/variants/ccx-x86_64/default.environment @@ -37,6 +37,7 @@ #+ccx-utils.ab28a8d701f60db69818ef22c546d02eca1ba3900bcdeaf5676bcc13d4b7f114 #+user-env.4e95a5387aa403e1d16a22254f21fb4cec046c69341a5eae764dd8126fb638a8 #+strace.53097be3dbf67dbf52aa675a59980a7d965fd8cdf965ef3005035e70fc7e4103 +#+mlog.ba962cb36c392fd5d36e252d5d873df33feca74fb548ab64ae62a62912f6e083 #+system-config.c35ca029ae6c68c9783ee82525ea0ccdab16fbf719dc630db58d0ec72cc9e9ad #+system-config-rc.40369271518e9d8d70b414386306a13efc47b0cdf4005fd772516979fb8406a6 #+system-config-scripts.bdedb957b96fc1efd8259d16dac786d1d9c220dcde66996a16688989f104925d diff --git a/variants/ccx-x86_64/mlog b/variants/ccx-x86_64/mlog @@ -0,0 +1,90 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.98979eb41109d371f19d0637d51116db18c7aeef61fbf804a68094c22a302a78 +#+gnu-make.ba8d7c64a23885182fc1c9dc0331d52adcdbc45df6000fb81e8e1dd3ee05694b +#+busybox.ee3440974794767b833fd3299226771f170d3f8601cf225cb884f0a513db8ab3 + +name=mlog +check_static() { + local exe || true + exe=$pthbs_destdir/'/home/ccx/versions'/$pthbs_package/$1 + if ! test -f $exe; then + printf '%s\n' "Error: file '$1' doesn't exist!" + exit 1 + fi + interp_info=$(readelf --string-dump=.interp "$exe") || exit $? + if test x '!=' "x$interp_info"; then + printf '%s\n' "Error: '$1' is a dynamic binary!" + exit 1 + fi +} +build_env_static() { + export LD_LIBRARY_PATH="$pthbs_build_environment/library" + export CPATH="$pthbs_build_environment/include" + export LDFLAGS="-static -L$pthbs_build_environment/library $LDFLAGS" +} +def_prefix() { + prefix=/home/ccx/versions/$pthbs_package +} +def_dest() { + dest=${pthbs_destdir%/}//home/ccx/versions/$pthbs_package +} +build_env_static +def_prefix + +make "$name" + +install -d "$pthbs_destdir/$prefix/command" +install -m 755 "$name" "$pthbs_destdir/$prefix/command" +check_static "command/$name" + +cd "$pthbs_destdir/home/ccx/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/mlog"]=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 == "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/userspace.environment b/variants/ccx-x86_64/userspace.environment @@ -36,4 +36,5 @@ #+applyuidgid-caps.9856a13db04a0f0192c4208744de2c649db2ae721dc0d0dd37eb90346236a514 #+ccx-utils.ab28a8d701f60db69818ef22c546d02eca1ba3900bcdeaf5676bcc13d4b7f114 #+user-env.4e95a5387aa403e1d16a22254f21fb4cec046c69341a5eae764dd8126fb638a8 -#+strace.53097be3dbf67dbf52aa675a59980a7d965fd8cdf965ef3005035e70fc7e4103- \ No newline at end of file +#+strace.53097be3dbf67dbf52aa675a59980a7d965fd8cdf965ef3005035e70fc7e4103 +#+mlog.ba962cb36c392fd5d36e252d5d873df33feca74fb548ab64ae62a62912f6e083+ \ No newline at end of file diff --git a/variants/root-x86_64/default.environment b/variants/root-x86_64/default.environment @@ -37,6 +37,7 @@ #+ccx-utils.ccaa449ada3142ef075f3c80a6e475520219814490557f308ded4685231a70ac #+user-env.8ad55eebe32b11f005f7b5c6dc204fdccc0a53cd7294f87c1e959ea47793dbca #+strace.ce1707d2cf1dfcd965827af80a18c6b97ca20b563b8967be8297322e8adf9296 +#+mlog.e665fc04df0f028e396ba70e2c77d724d56d1a8b38e2794f2505914a0b0ec0df #+system-config.e0684eb45f07a2e32ea426688539eaac0e89414443ef97326b7aed096589204f #+system-config-rc.fccd23adcfd1aab4d3f51160d09cc442bf744e9a3b8b89d38cae73cd1f22a1f5 #+system-config-scripts.4c00e32b8c4f6feef53b562356abd54830cc7e889149e4f8bcb928d6e6e93378 diff --git a/variants/root-x86_64/mlog b/variants/root-x86_64/mlog @@ -0,0 +1,90 @@ +#!/usr/bin/env pthbs-build +#+musl-cross-make.d0431fc0def788be03da43136972361827de52c8e6f0a6f3890dc57fe32e8ecc +#+gnu-make.444e811a68f4f16724e21354b710fad3592e53a2dbf7c0c78658f3d4e7c8e465 +#+busybox.f4ef3d511c029095beda8d21dd48f7730bec63fb09792ca951402d6620338089 + +name=mlog +check_static() { + local exe || true + exe=$pthbs_destdir/'/versions'/$pthbs_package/$1 + if ! test -f $exe; then + printf '%s\n' "Error: file '$1' doesn't exist!" + exit 1 + fi + interp_info=$(readelf --string-dump=.interp "$exe") || exit $? + if test x '!=' "x$interp_info"; then + printf '%s\n' "Error: '$1' is a dynamic binary!" + exit 1 + fi +} +build_env_static() { + export LD_LIBRARY_PATH="$pthbs_build_environment/library" + export CPATH="$pthbs_build_environment/include" + export LDFLAGS="-static -L$pthbs_build_environment/library $LDFLAGS" +} +def_prefix() { + prefix=/versions/$pthbs_package +} +def_dest() { + dest=${pthbs_destdir%/}//versions/$pthbs_package +} +build_env_static +def_prefix + +make "$name" + +install -d "$pthbs_destdir/$prefix/command" +install -m 755 "$name" "$pthbs_destdir/$prefix/command" +check_static "command/$name" + +cd "$pthbs_destdir/versions/$pthbs_package" +find -type d -o -print | awk -F/ ' +BEGIN { + x["./command/mlog"]=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 == "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/userspace.environment b/variants/root-x86_64/userspace.environment @@ -36,4 +36,5 @@ #+applyuidgid-caps.2d571b717bda734b4464e7d3b36bb2c9eaa265fffd595bc090cbb137258121b8 #+ccx-utils.ccaa449ada3142ef075f3c80a6e475520219814490557f308ded4685231a70ac #+user-env.8ad55eebe32b11f005f7b5c6dc204fdccc0a53cd7294f87c1e959ea47793dbca -#+strace.ce1707d2cf1dfcd965827af80a18c6b97ca20b563b8967be8297322e8adf9296- \ No newline at end of file +#+strace.ce1707d2cf1dfcd965827af80a18c6b97ca20b563b8967be8297322e8adf9296 +#+mlog.e665fc04df0f028e396ba70e2c77d724d56d1a8b38e2794f2505914a0b0ec0df+ \ No newline at end of file