linux-qubasis

linux oasis port as a qubes template

git clone https://9o.is/git/linux-qubasis.git

commit acd2f86c5c90780024518f9ed27ef1ed4a2bed2c
parent 9a180e196f1b4e3c4cacb4ab12dce8dbb7ca5d0b
Author: Jul <jul@9o.is>
Date:   Mon, 15 Sep 2025 14:32:18 +0800

add perp

Diffstat:
Mgen.sh | 1+
Apkg/perp/gen.sh | 118+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/perp/lasagna | 247+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 366 insertions(+), 0 deletions(-)

diff --git a/gen.sh b/gen.sh @@ -29,6 +29,7 @@ subgen pkg/mandoc subgen pkg/netbsd-curses subgen pkg/oksh subgen pkg/pax +subgen pkg/perp subgen pkg/probe subgen pkg/rc subgen pkg/sbase diff --git a/pkg/perp/gen.sh b/pkg/perp/gen.sh @@ -0,0 +1,118 @@ +fetch curl http://b0llix.net/perp/distfiles/perp-2.07.tar.gz \ + 1222fe31c16014d8b2a78416f93ba9f8c31eddbc381adc9021fa5d9764475815 + +cflags " + -std=c99 + -D _GNU_SOURCE + -D TINYLOG_ZIP='\"/bin/gzip\"' + -D ZIP_EXT='\".gz\"' + -I $srcdir/lasagna + -I $outdir/_include + -Wno-implicit-fallthrough + -Wno-implicit-function-declaration + -Wno-pointer-arith + -Wno-array-parameter + -Wno-unused-but-set-variable + -Wno-enum-conversion + -Wno-misleading-indentation +" + +rule outvec '$hostdir/mk_outvec >$out' +bind description 'OUTVEC $out' + +rule rlimit '$hostdir/mk_rlimit >$out' +bind description 'RLIMIT $out' + +rule sysstr '$hostdir/mksysstr $type >$out' +bind description 'SYSSTR $out' + +host() { + exe mk_outvec lasagna/outvec/mk_outvec.c + exe mk_rlimit lasagna/rlimit/mk_rlimit.c + exe mksysstr lasagna/sysstr/mksysstr.c +} + +build outvec $outdir/_include/outvec_STDOUT.h '|' $hostdir/mk_outvec +build rlimit $outdir/_include/rlimit_defs.c.in '|' $hostdir/mk_rlimit + +build sysstr $outdir/_include/sysstr_errno.c.in '|' $hostdir/mksysstr +bind type errno + +build sysstr $outdir/_include/sysstr_signo.c.in '|' $hostdir/mksysstr +bind type signo + +dep " + $outdir/_include/outvec_STDOUT.h + $outdir/_include/rlimit_defs.c.in + $outdir/_include/sysstr_errno.c.in + $outdir/_include/sysstr_signo.c.in +" + +perp() { + for src in $*; do + case $src in + perpd) + exe perpd " + perp/perpd.c + perp/perpd_conn.c + perp/perpd_svdef.c + $outdir/libasagna.a + " + ;; + *) + exe $src perp/$src.c $outdir/libasagna.a + ;; + esac + bin $src + man perp/man/$src.8 + done +} + +runtools() { + for src in $*; do + exe $src runtools/$src.c $outdir/libasagna.a + bin $src + + case $src in + [!cat]*) man runtools/man/$src.8;; + esac + done +} + +lib libasagna.a "$(cat $DIR/lasagna)" + +perp " + perpboot + perpctl + perpd + perphup + perpls + perpok + perpstat + tinylog +" + +runtools " + catargs + catenv + catlimits + catuid + runargs + runargv0 + runchoom + rundetach + rundeux + runenv + runfile + runlimit + runlock + runpause + runsession + runtool + runtrap + runuid +" + +man perp/man/perpetrate.8 +man perp/man/perp_intro.8 +man runtools/man/runtools_intro.8 diff --git a/pkg/perp/lasagna b/pkg/perp/lasagna @@ -0,0 +1,247 @@ +lasagna/buf/buf_cmp.c +lasagna/buf/buf_copy.c +lasagna/buf/buf_fill.c +lasagna/buf/buf_ndx.c +lasagna/buf/buf_rcopy.c +lasagna/buf/buf_rndx.c +lasagna/cdb/cdb_cc.c +lasagna/cdb/cdb_clear.c +lasagna/cdb/cdb_close.c +lasagna/cdb/cdb_distance.c +lasagna/cdb/cdb_dynget.c +lasagna/cdb/cdb_dynread.c +lasagna/cdb/cdb_find.c +lasagna/cdb/cdb_get.c +lasagna/cdb/cdb_hashpart.c +lasagna/cdb/cdb_init.c +lasagna/cdb/cdb_open.c +lasagna/cdb/cdb_read.c +lasagna/cdb/cdb_seq.c +lasagna/cdb/cdbmk__update.c +lasagna/cdb/cdbmk_add.c +lasagna/cdb/cdbmk_addioq.c +lasagna/cdb/cdbmk_addrec.c +lasagna/cdb/cdbmk_clear.c +lasagna/cdb/cdbmk_finish.c +lasagna/cdb/cdbmk_init.c +lasagna/cstr/cstr_cat.c +lasagna/cstr/cstr_chop.c +lasagna/cstr/cstr_cmp.c +lasagna/cstr/cstr_cmpi.c +lasagna/cstr/cstr_contains.c +lasagna/cstr/cstr_copy.c +lasagna/cstr/cstr_dup.c +lasagna/cstr/cstr_lcat.c +lasagna/cstr/cstr_lcpy.c +lasagna/cstr/cstr_len.c +lasagna/cstr/cstr_ltrim.c +lasagna/cstr/cstr_match.c +lasagna/cstr/cstr_matchi.c +lasagna/cstr/cstr_ncmp.c +lasagna/cstr/cstr_pos.c +lasagna/cstr/cstr_rpos.c +lasagna/cstr/cstr_rtrim.c +lasagna/cstr/cstr_trim.c +lasagna/cstr/cstr_vcat_.c +lasagna/cstr/cstr_vcopy_.c +lasagna/cstr/cstr_vlen_.c +lasagna/devout/devout.c +lasagna/domsock/domsock_accept.c +lasagna/domsock/domsock_close.c +lasagna/domsock/domsock_connect.c +lasagna/domsock/domsock_create.c +lasagna/dynbuf/dynbuf.c +lasagna/dynbuf/dynbuf_clear.c +lasagna/dynbuf/dynbuf_copy.c +lasagna/dynbuf/dynbuf_free.c +lasagna/dynbuf/dynbuf_freebuf.c +lasagna/dynbuf/dynbuf_grow.c +lasagna/dynbuf/dynbuf_need.c +lasagna/dynbuf/dynbuf_new.c +lasagna/dynbuf/dynbuf_pack.c +lasagna/dynbuf/dynbuf_put.c +lasagna/dynbuf/dynbuf_putb.c +lasagna/dynstr/dynstr.c +lasagna/dynstr/dynstr_chop.c +lasagna/dynstr/dynstr_clear.c +lasagna/dynstr/dynstr_copy.c +lasagna/dynstr/dynstr_copys.c +lasagna/dynstr/dynstr_free.c +lasagna/dynstr/dynstr_freestr.c +lasagna/dynstr/dynstr_grow.c +lasagna/dynstr/dynstr_need.c +lasagna/dynstr/dynstr_new.c +lasagna/dynstr/dynstr_put.c +lasagna/dynstr/dynstr_putc.c +lasagna/dynstr/dynstr_putn.c +lasagna/dynstr/dynstr_puts.c +lasagna/dynstr/dynstr_set.c +lasagna/dynstr/dynstr_vputs_.c +lasagna/dynstuf/dynstuf_find.c +lasagna/dynstuf/dynstuf_free.c +lasagna/dynstuf/dynstuf_get.c +lasagna/dynstuf/dynstuf_grow.c +lasagna/dynstuf/dynstuf_init.c +lasagna/dynstuf/dynstuf_isempty.c +lasagna/dynstuf/dynstuf_items.c +lasagna/dynstuf/dynstuf_new.c +lasagna/dynstuf/dynstuf_peek.c +lasagna/dynstuf/dynstuf_pop.c +lasagna/dynstuf/dynstuf_push.c +lasagna/dynstuf/dynstuf_replace.c +lasagna/dynstuf/dynstuf_reverse.c +lasagna/dynstuf/dynstuf_set.c +lasagna/dynstuf/dynstuf_slots.c +lasagna/dynstuf/dynstuf_sort.c +lasagna/dynstuf/dynstuf_stuf.c +lasagna/dynstuf/dynstuf_visit.c +lasagna/execvx/execvx.c +lasagna/fd/fd_blocking.c +lasagna/fd/fd_cloexec.c +lasagna/fd/fd_dupe.c +lasagna/fd/fd_move.c +lasagna/fd/fd_nonblock.c +lasagna/hdb/hdb_cc.c +lasagna/hdb/hdb_clear.c +lasagna/hdb/hdb_close.c +lasagna/hdb/hdb_distance.c +lasagna/hdb/hdb_dynget.c +lasagna/hdb/hdb_dynread.c +lasagna/hdb/hdb_find.c +lasagna/hdb/hdb_get.c +lasagna/hdb/hdb_hashpart.c +lasagna/hdb/hdb_init.c +lasagna/hdb/hdb_open.c +lasagna/hdb/hdb_read.c +lasagna/hdb/hdb_seq.c +lasagna/hdb/hdbmk_add.c +lasagna/hdb/hdbmk_addioq.c +lasagna/hdb/hdbmk_addrec.c +lasagna/hdb/hdbmk_clear.c +lasagna/hdb/hdbmk_finish.c +lasagna/hdb/hdbmk_start.c +lasagna/hdb/hdbmk__update.c +lasagna/hfunc/hfunc_djba.c +lasagna/hfunc/hfunc_djbm.c +lasagna/hfunc/hfunc_djbx.c +lasagna/hfunc/hfunc_elf1.c +lasagna/hfunc/hfunc_fnva.c +lasagna/hfunc/hfunc_fnvm.c +lasagna/hfunc/hfunc_ghfa.c +lasagna/hfunc/hfunc_ghfm.c +lasagna/hfunc/hfunc_ghfx.c +lasagna/hfunc/hfunc_jsw1.c +lasagna/hfunc/hfunc_kp37.c +lasagna/hfunc/hfunc_kr31.c +lasagna/hfunc/hfunc_kx17.c +lasagna/hfunc/hfunc_murm.c +lasagna/hfunc/hfunc_oat1.c +lasagna/hfunc/hfunc_p50a.c +lasagna/hfunc/hfunc_pjw1.c +lasagna/hfunc/hfunc_postmix32.c +lasagna/hfunc/hfunc_rot1.c +lasagna/hfunc/hfunc_rotm.c +lasagna/hfunc/hfunc_rsuh.c +lasagna/hfunc/hfunc_sax1.c +lasagna/hfunc/hfunc_sdbm.c +lasagna/hfunc/hfunc_sfh1.c +lasagna/ioq/ioq_get.c +lasagna/ioq/ioq_getln.c +lasagna/ioq/ioq_init.c +lasagna/ioq/ioq_put.c +lasagna/ioq/ioq_putfd.c +lasagna/ioq/ioq_putfile.c +lasagna/ioq/ioq_stderr.c +lasagna/ioq/ioq_stdin.c +lasagna/ioq/ioq_stdout.c +lasagna/ioq/ioq_vputs_.c +lasagna/newenv/newenv.c +lasagna/nextopt/nextopt.c +lasagna/nextopt/nextopt_progname.c +lasagna/nfmt/nfmt_uint32.c +lasagna/nfmt/nfmt_uint32_pad.c +lasagna/nfmt/nfmt_uint32_pad0.c +lasagna/nfmt/nfmt_uint32_pad0_.c +lasagna/nfmt/nfmt_uint32_pad_.c +lasagna/nfmt/nfmt_uint32o.c +lasagna/nfmt/nfmt_uint32o_pad0.c +lasagna/nfmt/nfmt_uint32o_pad0_.c +lasagna/nfmt/nfmt_uint32x.c +lasagna/nfmt/nfmt_uint32x_pad.c +lasagna/nfmt/nfmt_uint32x_pad0.c +lasagna/nfmt/nfmt_uint32x_pad0_.c +lasagna/nfmt/nfmt_uint32x_pad_.c +lasagna/nfmt/nfmt_uint64.c +lasagna/nfmt/nfmt_uint64_pad.c +lasagna/nfmt/nfmt_uint64_pad0.c +lasagna/nfmt/nfmt_uint64_pad0_.c +lasagna/nfmt/nfmt_uint64_pad_.c +lasagna/nuscan/nuscan_uint32.c +lasagna/nuscan/nuscan_uint32o.c +lasagna/outvec/outvec_STDERR.c +lasagna/outvec/outvec_STDOUT.c +lasagna/outvec/outvec_flush.c +lasagna/outvec/outvec_put.c +lasagna/outvec/outvec_puts.c +lasagna/outvec/outvec_vputs_.c +lasagna/packet/packet_read.c +lasagna/packet/packet_write.c +lasagna/padlock/padlock_exbyte.c +lasagna/padlock/padlock_exlock.c +lasagna/padlock/padlock_extest.c +lasagna/padlock/padlock_fcntl.c +lasagna/padlock/padlock_shbyte.c +lasagna/padlock/padlock_shlock.c +lasagna/padlock/padlock_shtest.c +lasagna/padlock/padlock_unbyte.c +lasagna/padlock/padlock_unlock.c +lasagna/pidlock/pidlock_check.c +lasagna/pidlock/pidlock_set.c +lasagna/pkt/pkt_load.c +lasagna/pkt/pkt_read.c +lasagna/pkt/pkt_write.c +lasagna/pollio/pollio.c +lasagna/rlimit/rlimit.c +lasagna/sig/sig_block.c +lasagna/sig/sig_catch.c +lasagna/sig/sig_catchr.c +lasagna/sig/sig_unblock.c +lasagna/sysstr/sysstr_errno.c +lasagna/sysstr/sysstr_signal.c +lasagna/tain/tain_assign.c +lasagna/tain/tain_iszero.c +lasagna/tain/tain_less.c +lasagna/tain/tain_load.c +lasagna/tain/tain_load_msecs.c +lasagna/tain/tain_load_utc.c +lasagna/tain/tain_minus.c +lasagna/tain/tain_now.c +lasagna/tain/tain_pack.c +lasagna/tain/tain_packhex.c +lasagna/tain/tain_pause.c +lasagna/tain/tain_plus.c +lasagna/tain/tain_tai_pack.c +lasagna/tain/tain_tai_unpack.c +lasagna/tain/tain_to_float.c +lasagna/tain/tain_to_msecs.c +lasagna/tain/tain_to_utc.c +lasagna/tain/tain_unpack.c +lasagna/tain/tain_unpackhex.c +lasagna/tain/tain_uptime.c +lasagna/tx64/base64_vec.c +lasagna/tx64/tx64_encode.c +lasagna/ufunc/ufunc_u32add.c +lasagna/ufunc/ufunc_u48add.c +lasagna/upak/upak16_pack.c +lasagna/upak/upak16_unpack.c +lasagna/upak/upak24_pack.c +lasagna/upak/upak24_unpack.c +lasagna/upak/upak32_pack.c +lasagna/upak/upak32_unpack.c +lasagna/upak/upak48_pack.c +lasagna/upak/upak48_unpack.c +lasagna/upak/upak64_pack.c +lasagna/upak/upak64_unpack.c +lasagna/upak/upak_pack.c +lasagna/upak/upak_unpack.c +lasagna/upak/upak_vpack.c