From 2530a97b3c5863c8e8e002dcd489f4404c319cbd Mon Sep 17 00:00:00 2001 From: Cem Keylan Date: Fri, 29 May 2020 23:45:35 +0300 Subject: baselayout: merge i686 and drop the usage of 'install' --- core/baselayout/build | 59 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 23 deletions(-) (limited to 'core/baselayout') 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" -- cgit v1.2.3