diff --git a/core/filesystem/.SRCINFO b/core/filesystem/.SRCINFO index a18cdf0c5..b8bedd06d 100644 --- a/core/filesystem/.SRCINFO +++ b/core/filesystem/.SRCINFO @@ -1,6 +1,6 @@ pkgbase = filesystem pkgdesc = Base Arch Linux files - pkgver = 2024.01.19 + pkgver = 2024.04.07 pkgrel = 1 url = https://archlinux.org arch = any @@ -21,8 +21,13 @@ pkgbase = filesystem backup = etc/securetty backup = etc/shadow backup = etc/shells - backup = etc/subuid backup = etc/subgid + backup = etc/subuid + source = arch-release + source = archlinux-logo.png + source = archlinux-logo.svg + source = archlinux-logo-text.svg + source = archlinux-logo-text-dark.svg source = crypttab source = env-generator source = fstab @@ -35,8 +40,8 @@ pkgbase = filesystem source = locale.sh source = nsswitch.conf source = os-release - source = profile source = passwd + source = profile source = resolv.conf source = securetty source = shadow @@ -44,12 +49,13 @@ pkgbase = filesystem source = sysctl source = sysusers source = tmpfiles - source = subuid source = subgid - source = archlinux-logo.svg - source = archlinux-logo.png - source = archlinux-logo-text.svg - source = archlinux-logo-text-dark.svg + source = subuid + sha256sums = 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b + sha256sums = 3f48779141b68a81e07fee710a42025d4f67b16240295aa4cf148a7ba99cab3c + sha256sums = 3ffe8ea4e98db43a3ec4dcca55fd4009cd8b8d220f0996aef7a5b427fdf65234 + sha256sums = 601069e6e8920309178c397fd8cebe43410827d01899d31777d13212f0dfacf8 + sha256sums = 96e3cc81623c0537a19799f9eefa966fe46ff5f28a9dc7af1187990973baa127 sha256sums = e03bede3d258d680548696623d5979c6edf03272e801a813c81ba5a5c64f4f82 sha256sums = ed0cb4f1db4021f8c3b5ce78fdf91d2c0624708f58f36c9cf867f4d93c3bc6da sha256sums = e54626e74ed8fee4173b62a545ab1c3a3a069e4217a0ee8fc398d9933e9c1696 @@ -62,20 +68,16 @@ pkgbase = filesystem sha256sums = 8ca2d8eef6fb5143c9ef7e9174ccfef59ac7ad2deee243574cd10c763156cc10 sha256sums = c8ee7a9faf798caab178ec51afae4146f1efd8a716b7acedf28345b6c75f9697 sha256sums = 71ff7a6e248d9a0718344c957ec709cb6f0b18631682fa404d7cff2af3ff341d - sha256sums = 8f08231922fe185d3132f9aedded5cd688fb7c482a6f6f272402ded82fa4849a sha256sums = 13e2783884783ef46b8345fbcdf7880f0414c0a9c42e2b2fc6a2b048cbc2d86e + sha256sums = 8f08231922fe185d3132f9aedded5cd688fb7c482a6f6f272402ded82fa4849a sha256sums = 5557d8e601b17a80d1ea7de78a9869be69637cb6a02fbfe334e22fdf64e61d4c sha256sums = d88be2b45b43605ff31dd83d6a138069b6c2e92bc8989b7b9ab9eba8da5f8c7b sha256sums = 6e13705ac4d6f69cdba118c6b70c722346fd3c45224133e6bbfe28aca719563c sha256sums = ec289c03aa0d150e90e8287f001c8e6552ab9dd54f450bdb5c2d2254e477965b - sha256sums = 89e43a0b7028f52d5c8e7fb961d962c4b4f4e9595880a6157274ddb2c7c0b6b4 + sha256sums = 1a1f39695826ca8d5e33ac5801c21f17c6e1d0593b281a1e77be099d454d9715 sha256sums = 30b97e8f5965744138f7a394e04454db6d509fb89e0a9b615bcd9037df3d6f2a - sha256sums = 5d8e61479f0093852365090e84d8d95b1e7fccfab068274ee25863bde6ff3e07 + sha256sums = 01d1aeb2cb35965074943bb99a4bb646959e0270a81dcd6af9a7b1c092fb3524 sha256sums = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 sha256sums = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - sha256sums = 3ffe8ea4e98db43a3ec4dcca55fd4009cd8b8d220f0996aef7a5b427fdf65234 - sha256sums = 3f48779141b68a81e07fee710a42025d4f67b16240295aa4cf148a7ba99cab3c - sha256sums = 601069e6e8920309178c397fd8cebe43410827d01899d31777d13212f0dfacf8 - sha256sums = 96e3cc81623c0537a19799f9eefa966fe46ff5f28a9dc7af1187990973baa127 pkgname = filesystem diff --git a/core/filesystem/PKGBUILD b/core/filesystem/PKGBUILD index 338ba1237..e029d180d 100644 --- a/core/filesystem/PKGBUILD +++ b/core/filesystem/PKGBUILD @@ -1,3 +1,4 @@ +# Maintainer: David Runge # Maintainer: Sébastien Luttringer # Contributor: Tom Gundersen @@ -5,23 +6,68 @@ # - modifed os-release pkgname=filesystem -pkgver=2024.01.19 +pkgver=2024.04.07 pkgrel=1 pkgdesc='Base Arch Linux files' arch=('any') license=('GPL-3.0-or-later') url='https://archlinux.org' depends=('iana-etc') -backup=('etc/crypttab' 'etc/fstab' 'etc/group' 'etc/gshadow' 'etc/host.conf' - 'etc/hosts' 'etc/issue' 'etc/ld.so.conf' 'etc/nsswitch.conf' - 'etc/passwd' 'etc/profile' 'etc/resolv.conf' 'etc/securetty' - 'etc/shadow' 'etc/shells' 'etc/subuid' 'etc/subgid') -source=('crypttab' 'env-generator' 'fstab' 'group' 'gshadow' 'host.conf' 'hosts' - 'issue' 'ld.so.conf' 'locale.sh' 'nsswitch.conf' 'os-release' 'profile' - 'passwd' 'resolv.conf' 'securetty' 'shadow' 'shells' 'sysctl' 'sysusers' - 'tmpfiles' 'subuid' 'subgid' 'archlinux-logo.svg' 'archlinux-logo.png' - 'archlinux-logo-text.svg' 'archlinux-logo-text-dark.svg') -sha256sums=('e03bede3d258d680548696623d5979c6edf03272e801a813c81ba5a5c64f4f82' +backup=( + 'etc/crypttab' + 'etc/fstab' + 'etc/group' + 'etc/gshadow' + 'etc/host.conf' + 'etc/hosts' + 'etc/issue' + 'etc/ld.so.conf' + 'etc/nsswitch.conf' + 'etc/passwd' + 'etc/profile' + 'etc/resolv.conf' + 'etc/securetty' + 'etc/shadow' + 'etc/shells' + 'etc/subgid' + 'etc/subuid' +) +source=( + 'arch-release' + 'archlinux-logo.png' + 'archlinux-logo.svg' + 'archlinux-logo-text.svg' + 'archlinux-logo-text-dark.svg' + 'crypttab' + 'env-generator' + 'fstab' + 'group' + 'gshadow' + 'host.conf' + 'hosts' + 'issue' + 'ld.so.conf' + 'locale.sh' + 'nsswitch.conf' + 'os-release' + 'passwd' + 'profile' + 'resolv.conf' + 'securetty' + 'shadow' + 'shells' + 'sysctl' + 'sysusers' + 'tmpfiles' + 'subgid' + 'subuid' +) +sha256sums=('01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b' + '3f48779141b68a81e07fee710a42025d4f67b16240295aa4cf148a7ba99cab3c' + '3ffe8ea4e98db43a3ec4dcca55fd4009cd8b8d220f0996aef7a5b427fdf65234' + '601069e6e8920309178c397fd8cebe43410827d01899d31777d13212f0dfacf8' + '96e3cc81623c0537a19799f9eefa966fe46ff5f28a9dc7af1187990973baa127' + 'e03bede3d258d680548696623d5979c6edf03272e801a813c81ba5a5c64f4f82' 'ed0cb4f1db4021f8c3b5ce78fdf91d2c0624708f58f36c9cf867f4d93c3bc6da' 'e54626e74ed8fee4173b62a545ab1c3a3a069e4217a0ee8fc398d9933e9c1696' '244f0718ee2a9d6862ae59d6c18c1dd1568651eada91a704574fa527fbac2b3a' @@ -33,106 +79,172 @@ sha256sums=('e03bede3d258d680548696623d5979c6edf03272e801a813c81ba5a5c64f4f82' '8ca2d8eef6fb5143c9ef7e9174ccfef59ac7ad2deee243574cd10c763156cc10' 'c8ee7a9faf798caab178ec51afae4146f1efd8a716b7acedf28345b6c75f9697' '72eaedcb694aa5833e804660dfb4f61907d52aef009767173689d0bb9e845a23' - '8f08231922fe185d3132f9aedded5cd688fb7c482a6f6f272402ded82fa4849a' '13e2783884783ef46b8345fbcdf7880f0414c0a9c42e2b2fc6a2b048cbc2d86e' + '8f08231922fe185d3132f9aedded5cd688fb7c482a6f6f272402ded82fa4849a' '5557d8e601b17a80d1ea7de78a9869be69637cb6a02fbfe334e22fdf64e61d4c' 'd88be2b45b43605ff31dd83d6a138069b6c2e92bc8989b7b9ab9eba8da5f8c7b' '6e13705ac4d6f69cdba118c6b70c722346fd3c45224133e6bbfe28aca719563c' 'ec289c03aa0d150e90e8287f001c8e6552ab9dd54f450bdb5c2d2254e477965b' - '89e43a0b7028f52d5c8e7fb961d962c4b4f4e9595880a6157274ddb2c7c0b6b4' + '1a1f39695826ca8d5e33ac5801c21f17c6e1d0593b281a1e77be099d454d9715' '30b97e8f5965744138f7a394e04454db6d509fb89e0a9b615bcd9037df3d6f2a' - '5d8e61479f0093852365090e84d8d95b1e7fccfab068274ee25863bde6ff3e07' + '01d1aeb2cb35965074943bb99a4bb646959e0270a81dcd6af9a7b1c092fb3524' 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' - 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' - '3ffe8ea4e98db43a3ec4dcca55fd4009cd8b8d220f0996aef7a5b427fdf65234' - '3f48779141b68a81e07fee710a42025d4f67b16240295aa4cf148a7ba99cab3c' - '601069e6e8920309178c397fd8cebe43410827d01899d31777d13212f0dfacf8' - '96e3cc81623c0537a19799f9eefa966fe46ff5f28a9dc7af1187990973baa127') + 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855') package() { - cd "$pkgdir" + local group link mode source_file user + declare -A directories + declare -A files + declare -A symlinks - # setup root filesystem - for d in boot dev etc home mnt usr var opt srv/http run; do - install -d -m755 $d - done - install -d -m555 proc - install -d -m555 sys - install -d -m0750 root - install -d -m1777 tmp - # vsftpd won't run with write perms on /srv/ftp - # ftp (uid 14/gid 11) - install -d -m555 -g 11 srv/ftp + # associative array with directories and their assigned mode, user and group + # all paths are relative to the root directory / + directories=( + ["boot"]="755:0:0" + ["dev"]="755:0:0" + ["etc"]="755:0:0" + ["etc/ld.so.conf.d"]="755:0:0" + ["etc/profile.d"]="755:0:0" + ["etc/skel"]="755:0:0" + ["home"]="755:0:0" + ["mnt"]="755:0:0" + ["opt"]="755:0:0" + ["proc"]="555:0:0" + ["root"]="0750:0:0" + ["run"]="755:0:0" + ["srv/http"]="755:0:0" + ["srv/ftp"]="555:0:11" # vsftpd won't run with write perms on /srv/ftp + ["sys"]="555:0:0" + ["tmp"]="1777:0:0" + ["usr"]="755:0:0" + ["usr/bin"]="755:0:0" + ["usr/include"]="755:0:0" + ["usr/lib"]="755:0:0" + ["usr/lib/ld.so.conf.d"]="755:0:0" + ["usr/local/bin"]="755:0:0" + ["usr/local/etc"]="755:0:0" + ["usr/local/games"]="755:0:0" + ["usr/local/include"]="755:0:0" + ["usr/local/lib"]="755:0:0" + ["usr/local/man"]="755:0:0" + ["usr/local/sbin"]="755:0:0" + ["usr/local/share"]="755:0:0" + ["usr/local/src"]="755:0:0" + ["usr/share/factory/etc"]="755:0:0" + ["usr/share/man/man1"]="755:0:0" + ["usr/share/man/man2"]="755:0:0" + ["usr/share/man/man3"]="755:0:0" + ["usr/share/man/man4"]="755:0:0" + ["usr/share/man/man5"]="755:0:0" + ["usr/share/man/man6"]="755:0:0" + ["usr/share/man/man7"]="755:0:0" + ["usr/share/man/man8"]="755:0:0" + ["usr/share/misc"]="755:0:0" + ["usr/share/pixmaps"]="755:0:0" + ["usr/src"]="755:0:0" + ["var"]="755:0:0" + ["var/cache"]="755:0:0" + ["var/empty"]="755:0:0" + ["var/games"]="775:0:50" # allow setgid games (gid 50) to write scores + ["var/lib/misc"]="755:0:0" + ["var/local"]="755:0:0" + ["var/log/old"]="755:0:0" + ["var/opt"]="755:0:0" + ["var/spool/mail"]="1777:0:0" + ["var/tmp"]="1777:0:0" + ) - # setup /etc and /usr/share/factory/etc - install -d etc/{ld.so.conf.d,skel,profile.d} usr/share/factory/etc - for f in fstab group host.conf hosts issue ld.so.conf nsswitch.conf \ - passwd resolv.conf securetty shells profile subuid subgid; do - install -m644 "$srcdir"/$f etc/ - install -m644 "$srcdir"/$f usr/share/factory/etc/ - done - ln -s ../proc/self/mounts etc/mtab - for f in gshadow shadow crypttab; do - install -m600 "$srcdir"/$f etc/ - install -m600 "$srcdir"/$f usr/share/factory/etc/ - done - touch etc/arch-release - install -m644 "$srcdir"/locale.sh etc/profile.d/locale.sh - install -Dm644 "$srcdir"/os-release usr/lib/os-release - - # setup /var - for d in cache local opt log/old lib/misc empty; do - install -d -m755 var/$d - done - install -d -m1777 var/{tmp,spool/mail} - - # allow setgid games (gid 50) to write scores - install -d -m775 -g 50 var/games - ln -s spool/mail var/mail - ln -s ../run var/run - ln -s ../run/lock var/lock - - # setup /usr hierarchy - for d in bin include lib share/{misc,pixmaps} src; do - install -d -m755 usr/$d - done - for d in {1..8}; do - install -d -m755 usr/share/man/man$d - done - install -d usr/lib/ld.so.conf.d - - # add lib symlinks - ln -s usr/lib lib + # associative array with symlink names and their respective targets + # all paths are relative to the root directory / + symlinks=( + ["bin"]="usr/bin" + ["etc/mtab"]="../proc/self/mounts" + ["lib"]="usr/lib" + ["sbin"]="usr/bin" + ["usr/local/share/man"]="../man" + ["usr/sbin"]="bin" + ["var/lock"]="../run/lock" + ["var/mail"]="spool/mail" + ["var/run"]="../run" + ) [[ $CARCH = 'x86_64' ]] && { - ln -s usr/lib lib64 - ln -s lib usr/lib64 + symlinks["lib64"]="usr/lib" + symlinks["usr/lib64"]="lib" } - # add bin symlinks - ln -s usr/bin bin - ln -s usr/bin sbin - ln -s bin usr/sbin + # associative array of target files, their source file, file mode, user and group ownership + files=( + ["etc/arch-release"]="arch-release:644:0:0" + ["etc/crypttab"]="crypttab:600:0:0" + ["etc/fstab"]="fstab:644:0:0" + ["etc/group"]="group:644:0:0" + ["etc/gshadow"]="gshadow:600:0:0" + ["etc/host.conf"]="host.conf:644:0:0" + ["etc/hosts"]="hosts:644:0:0" + ["etc/issue"]="issue:644:0:0" + ["etc/ld.so.conf"]="ld.so.conf:644:0:0" + ["etc/nsswitch.conf"]="nsswitch.conf:644:0:0" + ["etc/passwd"]="passwd:644:0:0" + ["etc/profile"]="profile:644:0:0" + ["etc/profile.d/locale.sh"]="locale.sh:644:0:0" + ["etc/resolv.conf"]="resolv.conf:644:0:0" + ["etc/securetty"]="securetty:644:0:0" + ["etc/shells"]="shells:644:0:0" + ["etc/shadow"]="shadow:600:0:0" + ["etc/subgid"]="subgid:644:0:0" + ["etc/subuid"]="subuid:644:0:0" + ["usr/lib/os-release"]="os-release:644:0:0" + ["usr/lib/sysctl.d/10-arch.conf"]="sysctl:644:0:0" + ["usr/lib/sysusers.d/arch.conf"]="sysusers:644:0:0" + ["usr/lib/tmpfiles.d/arch.conf"]="tmpfiles:644:0:0" + ["usr/lib/systemd/system-environment-generators/10-arch"]="env-generator:755:0:0" + ["usr/share/factory/etc/arch-release"]="arch-release:644:0:0" + ["usr/share/factory/etc/crypttab"]="crypttab:600:0:0" + ["usr/share/factory/etc/fstab"]="fstab:644:0:0" + ["usr/share/factory/etc/group"]="group:644:0:0" + ["usr/share/factory/etc/gshadow"]="gshadow:600:0:0" + ["usr/share/factory/etc/host.conf"]="host.conf:644:0:0" + ["usr/share/factory/etc/hosts"]="hosts:644:0:0" + ["usr/share/factory/etc/issue"]="issue:644:0:0" + ["usr/share/factory/etc/ld.so.conf"]="ld.so.conf:644:0:0" + ["usr/share/factory/etc/nsswitch.conf"]="nsswitch.conf:644:0:0" + ["usr/share/factory/etc/passwd"]="passwd:644:0:0" + ["usr/share/factory/etc/profile"]="profile:644:0:0" + ["usr/share/factory/etc/profile.d/locale.sh"]="locale.sh:644:0:0" + ["usr/share/factory/etc/resolv.conf"]="resolv.conf:644:0:0" + ["usr/share/factory/etc/securetty"]="securetty:644:0:0" + ["usr/share/factory/etc/shadow"]="shadow:600:0:0" + ["usr/share/factory/etc/shells"]="shells:644:0:0" + ["usr/share/factory/etc/subgid"]="subgid:644:0:0" + ["usr/share/factory/etc/subuid"]="subuid:644:0:0" + ["usr/share/pixmaps/archlinux-logo.png"]="archlinux-logo.png:644:0:0" + ["usr/share/pixmaps/archlinux-logo.svg"]="archlinux-logo.svg:644:0:0" + ["usr/share/pixmaps/archlinux-logo-text.svg"]="archlinux-logo-text.svg:644:0:0" + ["usr/share/pixmaps/archlinux-logo-text-dark.svg"]="archlinux-logo-text-dark.svg:644:0:0" + ) - # setup /usr/local hierarchy - for d in bin etc games include lib man sbin share src; do - install -d -m755 usr/local/$d + cd "$pkgdir" + + for dir in "${!directories[@]}"; do + mode="$(cut -f 1 -d ':' <<< "${directories[$dir]}")" + user="$(cut -f 2 -d ':' <<< "${directories[$dir]}")" + group="$(cut -f 3 -d ':' <<< "${directories[$dir]}")" + + install -vdm "$mode" -o "$user" -g "$group" "$dir" done - ln -s ../man usr/local/share/man - # setup systemd-sysctl - install -D -m644 "$srcdir"/sysctl usr/lib/sysctl.d/10-arch.conf + for link in "${!symlinks[@]}"; do + ln -sv "${symlinks[$link]}" "$link" + done - # setup systemd-sysusers - install -D -m644 "$srcdir"/sysusers usr/lib/sysusers.d/arch.conf + for target_file in "${!files[@]}"; do + source_file="$(cut -f 1 -d ':' <<< "${files[$target_file]}")" + mode="$(cut -f 2 -d ':' <<< "${files[$target_file]}")" + user="$(cut -f 3 -d ':' <<< "${files[$target_file]}")" + group="$(cut -f 4 -d ':' <<< "${files[$target_file]}")" - # setup systemd-tmpfiles - install -D -m644 "$srcdir"/tmpfiles usr/lib/tmpfiles.d/arch.conf - - # setup systemd.environment-generator - install -D -m755 "$srcdir"/env-generator usr/lib/systemd/system-environment-generators/10-arch - - # add logo - install -D -m644 "$srcdir"/archlinux-logo{.png,.svg,-text.svg,-text-dark.svg} usr/share/pixmaps + install -vDm "$mode" -o "$user" -g "$group" "$srcdir/$source_file" "$target_file" + done } # vim:set ts=2 sw=2 et: diff --git a/core/filesystem/arch-release b/core/filesystem/arch-release new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/core/filesystem/arch-release @@ -0,0 +1 @@ + diff --git a/core/filesystem/sysctl b/core/filesystem/sysctl index b585ea2cc..7446e243a 100644 --- a/core/filesystem/sysctl +++ b/core/filesystem/sysctl @@ -1,3 +1,6 @@ # Raise inotify resource limits fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 524288 + +# Increase the default vm.max_map_count value +vm.max_map_count=1048576 diff --git a/core/filesystem/tmpfiles b/core/filesystem/tmpfiles index 04f8d126b..e84d49289 100644 --- a/core/filesystem/tmpfiles +++ b/core/filesystem/tmpfiles @@ -1,5 +1,6 @@ # copy from factory when missing +C /etc/arch-release C /etc/crypttab C /etc/fstab C /etc/group @@ -11,6 +12,7 @@ C /etc/ld.so.conf C /etc/nsswitch.conf C /etc/passwd C /etc/profile +C /etc/profile.d/locale.sh C /etc/securetty C /etc/shadow C /etc/shells