diff --git a/main/lfsbase/APKBUILD b/main/lfsbase/APKBUILD new file mode 100644 index 0000000..950c5b1 --- /dev/null +++ b/main/lfsbase/APKBUILD @@ -0,0 +1,87 @@ +# Contributor: Sören Tempel +# Contributor: Natanael Copa +# Maintainer: Alex Denes +pkgname=lfsbase +pkgver=1.0 +pkgrel=0 +pkgdesc="Base directory structure for linux" +url="none" +arch="noarch" +license="GPL-2.0-only" +options="!check" +install=" + $pkgname.pre-install + $pkgname.post-install + $pkgname.pre-upgrade + $pkgname.post-upgrade +" +source=" + group + passwd + profile +" +builddir="$srcdir/build" + +prepare() { + default_prepare + mkdir -p "$builddir" +} + +_passwd2shadow() { + local name="$(echo "$1" | cut -d: -f1)" + printf '%s:!:::::::\n' "$name" +} + +build() { + while read -r LINE; do + _passwd2shadow "$LINE" + done < "$srcdir"/passwd > shadow +} + +package() { + mkdir -p "$pkgdir" + cd "$pkgdir" + + install -m 0755 -d \ + etc \ + var \ + mnt \ + proc \ + run \ + sys + + install -d -m 0700 root + install -d -m 1777 tmp + + ln -s /run var/run + ln -s /tmp var/tmp + + echo "localhost" > etc/hostname + cat > etc/hosts <<-EOF + 127.0.0.1 localhost localhost.localdomain + ::1 localhost localhost.localdomain + EOF + cat > etc/shells <<-EOF + # valid login shells + /bin/sh + /bin/ash + EOF + + install -m644 \ + "$srcdir"/group \ + "$srcdir"/passwd \ + "$srcdir"/profile \ + etc/ + + install -m640 "$builddir"/shadow \ + etc/ + + # symlinks + ln -s /proc/mounts etc/mtab +} + +sha512sums=" +e322a393aee9633981cb8669af30429899fed859e9709d4b888d17af43feb65474fe822e7aa8f06e7127ee7b6cf2d66d2f56698fd4314e0f8ab737ce275d1914 group +f6fe247889a9c09a1c6ac6b1f5baae9ecc9f6300594428dc04dd8e7543c06b4774f57cf034e970a913faf7bbf0aff28b170e5c6425ab04b380b34a3b80a3b529 passwd +2e0c19c08bc161278db950ca66c138091724a134ccbaa655cb7efa933f32ce28cfc006a563d0c150646c8ac7b6c84ab03f0958fd1a55c17e7d3f91c9ff0c1e94 profile +" diff --git a/main/lfsbase/group b/main/lfsbase/group new file mode 100644 index 0000000..4fcf8c1 --- /dev/null +++ b/main/lfsbase/group @@ -0,0 +1,4 @@ +root:x:0:root +shadow:x:42: +nogroup:x:65533: +nobody:x:65534: diff --git a/main/lfsbase/lfsbase.post-install b/main/lfsbase/lfsbase.post-install new file mode 100644 index 0000000..207e43c --- /dev/null +++ b/main/lfsbase/lfsbase.post-install @@ -0,0 +1,4 @@ +#!/bin/sh + +# force /etc/shadow to be owned by root and not be world readable +chown root:shadow /etc/shadow diff --git a/main/lfsbase/lfsbase.post-upgrade b/main/lfsbase/lfsbase.post-upgrade new file mode 120000 index 0000000..2014a6d --- /dev/null +++ b/main/lfsbase/lfsbase.post-upgrade @@ -0,0 +1 @@ +lfsbase.post-install \ No newline at end of file diff --git a/main/lfsbase/lfsbase.pre-install b/main/lfsbase/lfsbase.pre-install new file mode 100644 index 0000000..fc0d0b9 --- /dev/null +++ b/main/lfsbase/lfsbase.pre-install @@ -0,0 +1,5 @@ +#!/bin/sh + +addgroup -S -g 42 shadow 2>/dev/null + +exit 0 diff --git a/main/lfsbase/lfsbase.pre-upgrade b/main/lfsbase/lfsbase.pre-upgrade new file mode 120000 index 0000000..9cf8fa5 --- /dev/null +++ b/main/lfsbase/lfsbase.pre-upgrade @@ -0,0 +1 @@ +lfsbase.pre-install \ No newline at end of file diff --git a/main/lfsbase/passwd b/main/lfsbase/passwd new file mode 100644 index 0000000..cdec8ed --- /dev/null +++ b/main/lfsbase/passwd @@ -0,0 +1,2 @@ +root:x:0:0:root:/root:/bin/ash +nobody:x:65534:65534:nobody:/:/sbin/nologin diff --git a/main/lfsbase/profile b/main/lfsbase/profile new file mode 100644 index 0000000..1b9c31c --- /dev/null +++ b/main/lfsbase/profile @@ -0,0 +1,23 @@ +# Append "$1" to $PATH when not already in. +# Copied from Arch Linux, see #12803 for details. +append_path () { + case ":$PATH:" in + *:"$1":*) + ;; + *) + PATH="${PATH:+$PATH:}$1" + ;; + esac +} + +append_path "/usr/local/sbin" +append_path "/usr/local/bin" +append_path "/usr/sbin" +append_path "/usr/bin" +append_path "/sbin" +append_path "/bin" +unset -f append_path + +export PATH +export PAGER=less +umask 022 diff --git a/main/nnd/APKBUILD b/main/nnd/APKBUILD new file mode 100644 index 0000000..55a37a6 --- /dev/null +++ b/main/nnd/APKBUILD @@ -0,0 +1,39 @@ +# Contributor: Alex Denes +# Maintainer: Alex Denes +pkgname=nnd +pkgver=0.1 +pkgrel=0 +pkgdesc="Identification package for nnd" +url="none" +arch="noarch" +license="MIT" +builddir="$srcdir/" + +build() { + local NAME="nonamedistribution" + echo "$pkgver" > release + + cat >issue <<-EOF + Welcome to $NAME $pkgver + Kernel \\r on \\m (\\l) + + EOF + + cat >os-release <<-EOF + NAME="$NAME" + ID=nnd + VERSION_ID=$pkgver + PRETTY_NAME="$NAME $pkgver" + EOF + + cat >motd <<-EOF + Welcome to $NAME $pkgver, a extension/distribution based on Alpine! + + EOF +} + +package() { + install -Dm444 "$builddir"/os-release "$pkgdir"/etc/os-release + install -Dm444 "$builddir"/issue "$pkgdir"/etc/issue + install -Dm444 "$builddir"/motd "$pkgdir"/etc/motd +}