linux-qubasis
linux oasis port as a qubes template
git clone https://9o.is/git/linux-qubasis.git
commit 1234532d20a41005ea8a3c37f05f22fa5340c0f9 parent ac4793b6e318f35929bddf72abdae991e5c36434 Author: Jul <jul@9o.is> Date: Tue, 18 Nov 2025 08:32:25 -0500 add tune2fs with sub function - refactor host Diffstat:
| M | genfn.sh | | | 36 | +++++++++++++++++++++++++----------- |
| M | pkg/e2fsprogs/gen.sh | | | 49 | ++++++++++++++++++++++++------------------------- |
| M | pkg/genfn.sh | | | 32 | ++++++++++++++++++-------------- |
| M | qubes/genfn.sh | | | 2 | +- |
4 files changed, 68 insertions(+), 51 deletions(-)
diff --git a/genfn.sh b/genfn.sh @@ -1,7 +1,8 @@ main() { DIR=. GEN_FILES='./gen.sh ./genfn.sh' - NINJA_FILES=./local.ninja + NINJA_FILE=local.ninja + NINJA_FILES=$DIR/$NINJA_FILE set_target "$1" init_file @@ -9,19 +10,21 @@ main() { } init_file() { - if persist && [ -e $DIR/local.ninja.tmp ]; then - rm -f $DIR/local.ninja.tmp + if persist && [ -e $DIR/$NINJA_FILE.tmp ]; then + rm -f $DIR/$NINJA_FILE.tmp fi } -gen_done() { - gen $dir/local.ninja '|' $GEN_FILES - phony $dir/ninja $NINJA_FILES - - if persist && [ -e $DIR/local.ninja.tmp ]; then - mv $DIR/local.ninja.tmp $DIR/local.ninja +fini_file() { + if persist && [ -e $DIR/$NINJA_FILE.tmp ]; then + mv $DIR/$NINJA_FILE.tmp $DIR/$NINJA_FILE fi +} +gen_done() { + gen $dir/$NINJA_FILE '|' $GEN_FILES + phony $dir/ninja $NINJA_FILES + fini_file wait } @@ -65,12 +68,23 @@ persist() { write() { if persist; then - printf '%s\n' "$@" >> $DIR/local.ninja.tmp + printf '%s\n' "$@" >> $DIR/$NINJA_FILE.tmp fi } +sub() ( + write "subninja $dir/$1.ninja" + NINJA_FILE=$1.ninja + init_file + + [ "${2-}" ] && eval "$2 $1" + $1 + [ "${3-}" ] && eval "$3 $1" + fini_file +) + subgen() { - write "subninja $dir/$1/local.ninja" + write "subninja $dir/$1/$NINJA_FILE" NINJA_FILES="$NINJA_FILES $dir/$1/ninja" if in_target_route $1; then diff --git a/pkg/e2fsprogs/gen.sh b/pkg/e2fsprogs/gen.sh @@ -271,31 +271,30 @@ bin mke2fs " $pkgdir/util-linux/libuuid.a.d " -# journal() { -# cflags -I $srcdir/e2fsck -D DEBUGFS -# setv objdir $objdir/journal -# dep $dir/headers -# -# lib libjournal.a " -# debugfs/journal.c -# e2fsck/revoke.c -# e2fsck/recovery.c -# " -# } -# -# subninja journal -# -# bin tune2fs " -# misc/tune2fs.c -# misc/util.c -# $outdir/journal/libjournal.a -# $outdir/libsupport.a -# $outdir/libext2fs.a -# $outdir/libe2p.a -# $outdir/libcomm_err.a -# $pkgdir/util-linux/libblkid.a.d -# $pkgdir/util-linux/libuuid.a.d -# " +journal() { + cflags -I$srcdir/e2fsck -DDEBUGFS + dep $dir/headers + + lib libjournal.a " + debugfs/journal.c + e2fsck/revoke.c + e2fsck/recovery.c + " +} + +pkgsub journal + +bin tune2fs " + misc/tune2fs.c + misc/util.c + $libdir/journal/libjournal.a + $libdir/libsupport.a + $libdir/libext2fs.a + $libdir/libe2p.a + $libdir/libcomm_err.a + $pkgdir/util-linux/libblkid.a.d + $pkgdir/util-linux/libuuid.a.d +" bin e4crypt " misc/e4crypt.c diff --git a/pkg/genfn.sh b/pkg/genfn.sh @@ -18,9 +18,8 @@ init_pkg() { } fini_pkg() { - if command -v host >/dev/null 2>&1 && persist && ! ${RUN_HOST-false}; then - write "subninja $dir/host.ninja" - SRCS="$SRCS $(run_host)" + if command -v host >/dev/null 2>&1 && persist; then + pkgsub host init_host fi [ "$DEPS" ] && phony deps $DEPS @@ -36,17 +35,14 @@ fini_pkg() { fi } -run_host() { - RUN_HOST=true +pkgsub() { + SRCS="$SRCS $(sub $1 ${2-init_pkgsub} ${3-fini_pkgsub})" +} + +init_host() { + SRCS= OBJS= DEPS= - rm -f $DIR/host.ninja.tmp - - write() { - if persist; then - printf '%s\n' "$@" >> $DIR/host.ninja.tmp - fi - } var tgtdir $outdir var outdir $hostdir @@ -60,9 +56,17 @@ run_host() { var objcopy objcopy var cflags -O2 -pipe var ldflags '' +} + +init_pkgsub() { + OBJS= + SRCS= + var outdir $outdir/$1 + var objdir $outdir/obj + var libdir $outdir +} - host - mv $DIR/host.ninja.tmp $DIR/host.ninja +fini_pkgsub() { echo $SRCS } diff --git a/qubes/genfn.sh b/qubes/genfn.sh @@ -37,7 +37,7 @@ pkg() { return fi - GEN_FILES="$GEN_FILES ./pkg/$1/gen.sh" + GEN_FILES="$GEN_FILES $_in ./pkg/$1/gen.sh" FSPECS="$FSPECS $_out" _deps="$(awk -v pkgexclude="$PKGEXCLUDE" "