From 752110b0dfd1f2ec68c7affb343153fb51532eb0 Mon Sep 17 00:00:00 2001 From: Deven Blake Date: Tue, 25 Jan 2022 10:56:40 -0500 Subject: [PATCH] Filesystem Hierarchy Standard --- lsd/dist/config.sh | 2 ++ lsd/dist/fhs | 85 ++++++++++++++++++++++++++++++++++++++++++++++ lsd/dist/install | 12 ++++++- lsd/dist/sync_musl | 5 ++- lsd/dist/try | 6 ++-- 5 files changed, 103 insertions(+), 7 deletions(-) create mode 100644 lsd/dist/fhs diff --git a/lsd/dist/config.sh b/lsd/dist/config.sh index 9d09e0a..fdb6c9c 100644 --- a/lsd/dist/config.sh +++ b/lsd/dist/config.sh @@ -1,3 +1,5 @@ #!/bin/false +GCC_UPSTREAM="git://gcc.gnu.org/git/gcc.git" MUSL_UPSTREAM="git://git.musl-libc.org/musl" +PKGSRC_UPSTREAM="https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc.tar.xz" diff --git a/lsd/dist/fhs b/lsd/dist/fhs new file mode 100644 index 0000000..1378d4d --- /dev/null +++ b/lsd/dist/fhs @@ -0,0 +1,85 @@ +#!/bin/false + +# Filesystem Hierarchy Standard 3.0, 2015 +# https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf + +# section 3.2 +mkdir -p "$PREFIX/bin" +mkdir -p "$PREFIX/boot" +mkdir -p "$PREFIX/dev" +mkdir -p "$PREFIX/etc" +mkdir -p "$PREFIX/lib" +mkdir -p "$PREFIX/media" +mkdir -p "$PREFIX/mnt" +mkdir -p "$PREFIX/opt" +mkdir -p "$PREFIX/run" +mkdir -p "$PREFIX/sbin" +mkdir -p "$PREFIX/srv" +mkdir -p "$PREFIX/tmp" +mkdir -p "$PREFIX/usr" +mkdir -p "$PREFIX/var" + +# section 3.7.4 +mkdir -p "$PREFIX/etc/opt" + +# section 4.2 +mkdir -p "$PREFIX/usr/bin" +mkdir -p "$PREFIX/usr/lib" +mkdir -p "$PREFIX/usr/local" +mkdir -p "$PREFIX/usr/sbin" +mkdir -p "$PREFIX/usr/share" + +# section 4.3 +mkdir -p "$PREFIX/usr/include" +ln -s "$PREFIX/usr/spool" "$PREFIX/var/spool" +ln -s "$PREFIX/usr/tmp" "$PREFIX/var/tmp" +ln -s "$PREFIX/usr/spool/locks" "$PREFIX/var/lock" + +# section 4.6 +mkdir -p "$PREFIX/usr/lib" + +# section 4.9 +mkdir -p "$PREFIX/usr/local" + +# section 4.9.2 +mkdir -p "$PREFIX/usr/local/bin" +#mkdir -p "$PREFIX/usr/local/etc" # see section 4.9.3 +mkdir -p "$PREFIX/usr/local/games" +mkdir -p "$PREFIX/usr/local/include" +mkdir -p "$PREFIX/usr/local/lib" +mkdir -p "$PREFIX/usr/local/man" +mkdir -p "$PREFIX/usr/local/sbin" +mkdir -p "$PREFIX/usr/local/share" +mkdir -p "$PREFIX/usr/local/src" + +# section 4.9.3 +ln -s "$PREFIX/usr/local/etc" "$PREFIX/etc/local" + +# section 4.11.6 +mkdir -p "$PREFIX/usr/share/man" + +# section 4.11.7 +mkdir -p "$PREFIX/usr/share/misc" + +# section 4.12 +mkdir -p "$PREFIX/usr/src" + +# section 5.2 +mkdir -p "$PREFIX/var/cache" +mkdir -p "$PREFIX/var/lib" +mkdir -p "$PREFIX/var/local" +mkdir -p "$PREFIX/var/lock" +mkdir -p "$PREFIX/var/log" +mkdir -p "$PREFIX/var/opt" +#mkdir -p "$PREFIX/var/run" # see section 5.13.2 +mkdir -p "$PREFIX/var/spool" +mkdir -p "$PREFIX/var/tmp" + +# section 5.8.2 +mkdir -p "$PREFIX/var/lib/misc" + +# section 5.13.2 +ln -s "$PREFIX/var/run" "$PREFIX/run" + +# section 6.1.10 +mkdir -p "$PREFIX/var/spool/cron" diff --git a/lsd/dist/install b/lsd/dist/install index 2d435c2..f3438e8 100755 --- a/lsd/dist/install +++ b/lsd/dist/install @@ -9,4 +9,14 @@ For example, "PREFIX=/ %s".\n' "$0" 1>&2 exit 1 fi -. ./sync_musl +. "$PREFIX/dist/unrepo" +. "$PREFIX/dist/fhs" +. "$PREFIX/dist/sync_musl" + +cd "$PREFIX/usr/src" +if [ -d gcc ]; then + cd gcc + git pull +else + fetch_upstream "$GCC_UPSTREAM" +fi diff --git a/lsd/dist/sync_musl b/lsd/dist/sync_musl index e086230..37f5a72 100644 --- a/lsd/dist/sync_musl +++ b/lsd/dist/sync_musl @@ -5,13 +5,12 @@ depend_on cd depend_on make depend_on mkdir -mkdir -p "$PREFIX/src" -cd "$PREFIX/src" +cd "$PREFIX/usr/src" if [ -d musl ] then cd musl; git pull else fetch_upstream "$MUSL_UPSTREAM"; fi -cd "$PREFIX/src/musl" +cd "$PREFIX/usr/src/musl" ./configure --prefix="$PREFIX" make install diff --git a/lsd/dist/try b/lsd/dist/try index 0a03993..5ed111e 100755 --- a/lsd/dist/try +++ b/lsd/dist/try @@ -6,6 +6,6 @@ For example, "PREFIX=/ %s".\n' "$0" 1>&2 exit 1 fi -cd "$PREFIX"/dist -. ./macro.sh -. ./"$1" +. "$PREFIX/dist/config.sh" +. "$PREFIX/dist/macro.sh" +. "$PREFIX/dist/$1"