commit 364329bd4784e0d172ced668eecd493d05302dcd
parent d5a810b4c0e3ede72ae8a7e72ca3544df67cc40f
Author: Jan Pobrislo <ccx@te2000.cz>
Date: Mon, 26 May 2025 14:48:10 +0000
Add mlog from vuxu
Diffstat:
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