mrrl

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

containers (4719B)


      1 #!/usr/bin/env pthbs-build
      2 #+busybox.ee3440974794767b833fd3299226771f170d3f8601cf225cb884f0a513db8ab3
      3 #+zsh.f79a20125b2f520d3719411e6f0895cf4f2e0657565c3fef07b3069436b8960f
      4 #+pthbs-banginstall.7ddbf08ba8b1298841fad793d4ed7ba4979b9346155195489fc5e492ed5f0fe2
      5 #+execline.1505a32c24aa5dbf362550f39283c9ff1936e717e5a82d220f8212cd9e604d8f
      6 #+alpine-keys.dedc78b0b50e461d33a449adf40691698925b5eb9af8a6b69e7c0ece6b708ef4
      7 #+apk-tools.e556b101ee41fc88c653ea4a9c405942ce921c65d378def15c77fd19aec3beaf
      8 #+xbps.a8e42fa55614db5c7453b7513e917b19070a71abb801ef22cff7ef004e13241b
      9 #+container-bin-image.0f876e2e86efb0645ccd18192741eed44985d3e770c31f19b5e31503ca4d77f8
     10 #@git:6f1870365d2a7e410b48f3fe633d6f1b658738ba:containers
     11 
     12 : ${JOBS:=1}
     13 prefix=/home/ccx/versions/$pthbs_package
     14 pkgdir="$pthbs_destdir/$prefix"
     15 mkdir -p "$pkgdir/"
     16 cd 'containers'
     17 
     18 for d in bin sbin command; do
     19 	if test -d "$d"; then
     20 		pthbs-banginstall "$d"/* "$pkgdir"
     21 	fi
     22 done
     23 
     24 if test -d vim; then
     25 	mkdir -p "$pkgdir/vimfiles/pack/plugins/start"
     26 	mv -v vim "$pkgdir/vimfiles/pack/plugins/start/$pthbs_package"
     27 fi
     28 
     29 if test -d zsh-functions; then
     30 	mkdir -p "$pkgdir/zsh"
     31 	mv -v zsh-functions "$pkgdir/zsh/site-functions"
     32 fi
     33 mkdir "$pkgdir/data"
     34 mv -v service_scripts container_template "$pkgdir/data/"
     35 printf '%s\n' >"$pkgdir/zsh/site-functions/confz_containers_pthbs_init" \
     36 	"typeset -g container_template_dir='$prefix/data/container_template'" \
     37 	"typeset -g container_service_script_dir='$prefix/data/service_scripts'" \
     38 	"typeset -g container_ns_bin_dir='$prefix/deps/container-bin-image'" \
     39 	'container_ns_bin_dir=${container_ns_bin_dir:P}' \
     40 	"typeset -g container_alpine_keys_dir='$prefix/deps/keys/alpine/x86_64'" \
     41 	"typeset -g container_apk_executable='$prefix/deps/command/apk.static'" \
     42 	"typeset -g container_void_keys_dir='$prefix/deps/keys/void'" \
     43 	"typeset -g container_xbps_install_executable='$prefix/deps/command/xbps-install.static'"
     44 
     45 mkdir -p "$pkgdir/deps/command"
     46 ln -sf '/home/ccx/versions/apk-tools.e556b101ee41fc88c653ea4a9c405942ce921c65d378def15c77fd19aec3beaf/command/apk.static' "$pkgdir/deps/command/"
     47 ln -sf '/home/ccx/versions/xbps.a8e42fa55614db5c7453b7513e917b19070a71abb801ef22cff7ef004e13241b/command/xbps-install.static' "$pkgdir/deps/command/"
     48 
     49 for f in '/home/ccx/versions/alpine-keys.dedc78b0b50e461d33a449adf40691698925b5eb9af8a6b69e7c0ece6b708ef4'/keys/alpine/*/*; do
     50 	test -f "$f"
     51 	d=$(basename "${f%/*}")
     52 	mkdir -p "$pkgdir/deps/keys/alpine/$d"
     53 	ln -sf "$f" "$pkgdir/deps/keys/alpine/$d/"
     54 done
     55  
     56 mkdir -p "$pkgdir/deps/keys/void"
     57 for f in '/home/ccx/versions/xbps.a8e42fa55614db5c7453b7513e917b19070a71abb801ef22cff7ef004e13241b'/keys/void/*; do
     58 	ln -sf "$f" "$pkgdir/deps/keys/void/"
     59 done
     60 
     61 test -d '/home/ccx/versions/container-bin-image.0f876e2e86efb0645ccd18192741eed44985d3e770c31f19b5e31503ca4d77f8/container-bin-image'
     62 test -f '/home/ccx/versions/container-bin-image.0f876e2e86efb0645ccd18192741eed44985d3e770c31f19b5e31503ca4d77f8/container-bin-image/if'
     63 ln -sf '/home/ccx/versions/container-bin-image.0f876e2e86efb0645ccd18192741eed44985d3e770c31f19b5e31503ca4d77f8/container-bin-image' "$pkgdir/deps/"
     64 
     65 cd "$pthbs_destdir/home/ccx/versions/$pthbs_package"
     66 find -type d -o -print | awk -F/ '
     67 BEGIN {
     68 	x["./command/container_sysroot_run"]=1
     69 	x["./command/ns_run"]=1
     70 	x["./command/ns_umount_script.awk"]=1
     71 	x["./command/pidns_run.py"]=1
     72 	x["./zsh/site-functions/confz_containers_init"]=1
     73 	x["./zsh/site-functions/confz_site_containers_init"]=1}
     74 
     75 function r1(s) {
     76 	sub("^[.]/[^/]*", ".", s)
     77 	return s
     78 }
     79 function s1(repl, s) {
     80 	sub("^[.]/[^/]*", "./"repl, s)
     81 	return s
     82 }
     83 function link(src) {
     84 	x[$0]=0
     85 	printf "%s\t%s\n", $0, src
     86 	printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr"
     87 }
     88 $1!="."{exit 1}
     89 
     90 
     91 $2 == "zsh" { link($0); next }
     92 $2 == "vimfiles" { link($0); next }
     93 $2 == "command" { link($0); next }
     94 $2 == "bin" { link(s1("command", $0)); next }
     95 
     96 $2 == "library.so" { link($0); next }
     97 $2 == "library" { link($0); next }
     98 $2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next }
     99 $2 == "lib" && $NF ~ /\.so(|\..*)$/ { link(s1("library.so", $0)); next }
    100 
    101 $2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next }
    102 
    103 $2 == "man" { link($0); next }
    104 $2 == "info" { link($0); next }
    105 $2 == "doc" { link($0); next }
    106 $2 == "icons" { link($0); next }
    107 $2 == "terminfo" { link($0); next }
    108 $2 == "data" { link($0); next }
    109 $2 == "include" { link($0); next }
    110 
    111 { printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" }
    112 
    113 END {
    114 	for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" }
    115 	for(fname in x) {
    116 		if(x[fname]) {
    117 			printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr"
    118 			exit 3
    119 		}
    120 	}
    121 }' >.install-links.new
    122 mv .install-links.new .install-links