1
0

Initial commit

This commit is contained in:
dtb 2021-12-29 23:46:58 -05:00
commit f44e84ee52
5 changed files with 125 additions and 0 deletions

49
lsd/dist/documentation/trinitx.7 vendored Normal file
View File

@ -0,0 +1,49 @@
.TH TRINITX 7
.SH PRONUNCIATION
Trinity, but replace the final syllable with tech.
.SH SYNOPSIS
.I Trinitx
is a UNIX-like software distribution built upon the Linux kernel and the
musl C standard library, with nearly all configuration options left to the
user's own device.
.SH BASE SYSTEM
.I Trinitx
explicitly relies on the existence of the following programs and
packages:
dash(1),
ftp(1),
the GNU compiler collection,
GNU make,
musl,
linux,
bsdtar(1),
and util-linux.
.PP
In addition,
.I Trinitx
needs a core utilities package.
The GNU coreutils are a popular choice but Busybox or your own may be used.
.PP
.I Trinitx
also needs an initialization system.
OpenRC is the suggested choice but others may be used.
SystemD is discouraged; it's mentioned for its popularity and frowned upon for
its generally lax security.
.SH HISTORY
The
.I Trinitx
project was started 2021-12-28.
.SH COPYRIGHT
.I Trinitx
documentation and all in-house tools are part of the public domain.
Components of the distribution are of course subject to their own licenses.

20
lsd/dist/install vendored Executable file
View File

@ -0,0 +1,20 @@
#!/bin/true
set -e
depend_on cd
depend_on mkdir
depend_on nonzero
depend_on test
if ! nonzero "$PREFIX"; then
printf 'Please select a $PREFIX for installation.
For example, "PREFIX=/ %s".\n' "$0" 1>&2
exit 1
fi
# constant definitions
MUSL_UPSTREAM="git://git.musl-libc.org/musl"
argv0="$0"
trinitx sync_musl

31
lsd/dist/macro.sh vendored Normal file
View File

@ -0,0 +1,31 @@
#!/bin/true
# constant definitions
MUSL_UPSTREAM="git://git.musl-libc.org/musl"
depend_on(){
! command -v "$1" >/dev/null \
&& printf "Missing %s.\n" "$1" 1>&2 \
&& exit 1 \
|| true
}
fetch_upstream(){
url="$1"
scheme="$(scheme_from_uri "$url")"
case "$scheme" in
git)
git clone "$url"
;;
*)
printf "%s: Invalid upstream URL %s (scheme is %s)\n" \
"$argv0" "$1" "$scheme"
exit 1
esac
}
scheme_from_uri(){
# There are no colons in scheme names and no ways to separate schemes
# from scheme-specific content without colons (RFC 3986).
printf "%s\n" "$1" | cut -d ':' -f 1
}

14
lsd/dist/sync_musl vendored Normal file
View File

@ -0,0 +1,14 @@
#!/bin/true
set -e
depend_on cd
depend_on make
depend_on mkdir
mkdir -p "$PREFIX/src"
cd "$PREFIX/src"
fetch_upstream "$MUSL_UPSTREAM"
cd "$PREFIX/src/musl"
./configure --prefix="$PREFIX"
make install

11
lsd/dist/trinitx vendored Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
if [ -z "$PREFIX" ]; then
printf 'Please select a $PREFIX for installation.
For example, "PREFIX=/ %s".\n' "$0" 1>&2
exit 1
fi
cd "$PREFIX"/dist
. ./macro.sh
. ./"$1"