aboutsummaryrefslogtreecommitdiff
path: root/core/baselayout
diff options
context:
space:
mode:
authorCem Keylan <cem@ckyln.com>2020-05-29 23:45:35 +0300
committerCem Keylan <cem@ckyln.com>2020-05-29 23:45:35 +0300
commit2530a97b3c5863c8e8e002dcd489f4404c319cbd (patch)
tree65d23f31b01ea4c3e6e1237c8442c529ec97404e /core/baselayout
parentb4c73dae057e9d688f258eb353810434f7d64365 (diff)
downloadrepository-2530a97b3c5863c8e8e002dcd489f4404c319cbd.tar.gz
baselayout: merge i686 and drop the usage of 'install'
Diffstat (limited to 'core/baselayout')
-rwxr-xr-xcore/baselayout/build59
1 files changed, 36 insertions, 23 deletions
diff --git a/core/baselayout/build b/core/baselayout/build
index 91aff2ca..b94b05be 100755
--- a/core/baselayout/build
+++ b/core/baselayout/build
@@ -1,23 +1,34 @@
#!/bin/sh -e
+# All directories are created sequentially, so we can ignore 'mkdir -pm' here.
+# shellcheck disable=2174
+
+# The fallback is for backwards compatibility, this will be dropped later.
+sys_arch=${3:-$(uname -m)}
+
+kinstall_t() {
+ mod=$1 dir=$2; mkdir -p "$2"
+ shift 2
+ for file do cp "$file" "$dir"; chmod "$mod" "$file"; done
+}
# Setup base directories.
for d in boot dev etc home mnt usr var opt run; do
- install -dm 755 "$1/$d"
+ mkdir -pm 755 "$1/$d"
done
-install -dm 555 "$1/proc"
-install -dm 555 "$1/sys"
-install -dm 0750 "$1/root"
-install -dm 1777 "$1/tmp"
+mkdir -pm 555 "$1/proc"
+mkdir -pm 555 "$1/sys"
+mkdir -pm 0750 "$1/root"
+mkdir -pm 1777 "$1/tmp"
# Setup /usr hierarchy.
-for d in bin include lib lib32 share src; do
- install -d -m755 "$1"/usr/"$d"
+for d in bin include lib lib32 local share share/man src; do
+ mkdir -pm 755 "$1/usr/$d"
done
# Setup manpages directories.
for d in 1 2 3 4 5 6 7 8; do
- install -dm 755 "$1/usr/share/man/man$d"
+ mkdir -pm 755 "$1/usr/share/man/man$d"
done
# Add symlinks.
@@ -25,16 +36,23 @@ ln -s usr/bin "$1/bin"
ln -s usr/bin "$1/sbin"
ln -s bin "$1/usr/sbin"
ln -s usr/lib "$1/lib"
-ln -s usr/lib "$1/lib64"
-ln -s lib "$1/usr/lib64"
+
+# Unless we are on i*86, create lib64 symlinks. Obviously, i*86
+# is not the only 32-bit architecture, but it is currently the
+# only supported one.
+[ "${sys_arch#i?86}" ] && {
+ ln -s usr/lib "$1/lib64"
+ ln -s lib "$1/usr/lib64"
+}
# Setup /var.
-for d in cache local opt log/old lib/misc empty service; do
- install -dm 755 "$1/var/$d"
+for d in cache local opt log log/old lib lib/misc empty service; do
+ mkdir -pm 755 "$1/var/$d"
done
-install -dm 1777 "$1/var/tmp"
-install -dm 1777 "$1/var/spool/mail"
+for d in tmp spool spool/mail; do
+ mkdir -pm 1777 "$1/var/$d"
+done
ln -s spool/mail "$1/var/mail"
ln -s ../run "$1/var/run"
@@ -42,19 +60,14 @@ ln -s ../run/lock "$1/var/lock"
# Setup /usr/local (usually for any programs installed outside package manager).
for d in bin etc games include lib man sbin share src; do
- install -dm 755 "$1/usr/local/$d"
+ mkdir -pm 755 "$1/usr/local/$d"
done
ln -s ../man "$1/usr/local/share/man"
# /etc skeleton files.
-for f in fstab group host.conf hosts issue keymap os-release \
- passwd profile securetty shells mime.types; do
- install -m 644 "$f" "$1/etc"
-done
-
-for f in crypttab shadow; do
- install -m 600 "$f" "$1/etc"
-done
+kinstall_t 644 "$1/etc" fstab group host.conf hosts issue keymap os-release \
+ passwd profile securetty shells mime.types
+kinstall_t 600 "$1/etc" crypttab shadow
ln -s /proc/self/mounts "$1/etc/mtab"