Skip to content
Snippets Groups Projects
PKGBUILD 4.19 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Maintainer: Tom Gundersen <teg@jklm.no>
    
    
    pkgname=filesystem
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    pkgver=2016.11
    
    pkgdesc='Base Arch Linux filesystem'
    
    license=('GPL')
    
    url='https://www.archlinux.org'
    
    groups=('base')
    
    install='filesystem.install'
    
    makedepends=('asciidoc')
    
    Allan McRae's avatar
    Allan McRae committed
    depends=('iana-etc')
    
    backup=('etc/fstab' 'etc/crypttab' 'etc/group' 'etc/hosts' 'etc/ld.so.conf' 'etc/passwd'
            'etc/shadow' 'etc/gshadow' 'etc/resolv.conf' 'etc/motd' 'etc/nsswitch.conf'
            'etc/shells' 'etc/host.conf' 'etc/securetty' 'etc/profile' 'etc/issue')
    source=('group' 'issue' 'nsswitch.conf' 'securetty' 'host.conf' 'ld.so.conf'
    
            'passwd' 'shadow' 'fstab' 'crypttab' 'hosts' 'motd' 'os-release' 'resolv.conf'
    
            'shells' 'gshadow' 'profile' 'modprobe.d.usb-load-ehci-first' 'archlinux.7.txt'
    
            'locale.sh')
    
    Dave Reisner's avatar
    Dave Reisner committed
    md5sums=('4d7417d2bf8872665c0907f09ae37c34'
    
             '7813c481156f6b280a3ba91fc6236368'
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
             '7b21f0f97f048988908bf93778bba65f'
    
             '4c4540eeb748bf1f71d631b8c1dcf0b3'
             'f28150d4c0b22a017be51b9f7f9977ed'
             '6e488ffecc8ba142c0cf7e2d7aeb832e'
    
             'a998d1e6c7cc5791a7f4a2b49b2d10ce'
             '1ec1b16e2a71fad63ab8f147069a5d97'
    
             '693c97f2c9a519bb97a17008e92c2b74'
    
             'f0a5071f50d8864d2810c44e23eb00cc'
    
             '7bc65f234dfb6abf24e7c3b03e86f4ff'
             'd41d8cd98f00b204e9800998ecf8427e'
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
             '7756fd3b8876eee095bd6e94ddac13ca'
    
             '6f48288b6fcaf0065fcb7b0e525413e0'
             '22518e922891f9359f971f4f5b4e793c'
    
    Dave Reisner's avatar
    Dave Reisner committed
             '69e460404f45bdb7288d1de662e56dd9'
    
             '6c11d5af3bf8c770766e77312e7bd07f'
    
             'a8a962370cd0128465d514e6a1f74130'
             '2e193c4a37245f2323ebe87f1a673563'
    
    Dave Reisner's avatar
    Dave Reisner committed
             '71ed98c52e11ada1f936ac8cb14eecd9')
    
    lint() {
    	# ensure that passwd is sync'd to shadow and group is sync'd to gshadow.
    	local r=0
    
    	local passwd shadow group gshadow
    
    	for f in passwd shadow group gshadow; do
    		mapfile -t "$f" < <(cut -d: -f1 "$f" | sort)
    	done
    
    	# we can cheat and do simple string comparison only because we can make some
    	# assumptions about the data in these files
    	if [[ ${passwd[*]} != "${shadow[*]}" ]]; then
    		error 'passwd is not in sync with shadow!'
    		r=1
    	fi
    
    	if [[ ${group[*]} != "${gshadow[*]}" ]]; then
    		error 'group is not in sync with gshadow!'
    		r=1
    	fi
    
    	return $r
    }
    
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    	cd "$srcdir"
    
    	a2x -d manpage -f manpage archlinux.7.txt
    }
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    	cd "$pkgdir"
    
    	#
    	# setup root filesystem
    	#
    
    	for d in boot dev etc home mnt usr var opt srv/http run; do
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    		install -d -m755 $d
    
    	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
    
    	install -d -m555 -g ftp srv/ftp
    
    	install -d etc/{ld.so.conf.d,skel,profile.d}
    
    	for f in fstab group host.conf hosts issue ld.so.conf motd nsswitch.conf passwd resolv.conf securetty shells profile; do
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    		install -m644 "$srcdir"/$f etc/
    
    	ln -s /proc/self/mounts etc/mtab
    
    	for f in gshadow shadow crypttab; do
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    		install -m600 "$srcdir"/$f etc/
    
    	touch etc/arch-release
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    	install -D -m644 "$srcdir"/modprobe.d.usb-load-ehci-first usr/lib/modprobe.d/usb-load-ehci-first.conf
    	install -m755 "$srcdir"/locale.sh etc/profile.d/locale.sh
    
    	install -Dm644 "$srcdir"/os-release "$pkgdir"/usr/lib/os-release
    
    	for d in cache local opt log/old lib/misc empty; do
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    		install -d -m755 var/$d
    
    	install -d -m1777 var/{tmp,spool/mail}
    
    	# allow setgid games to write scores
    
    	install -d -m775 -g games var/games
    	ln -s spool/mail var/mail
    
    	ln -s ../run var/run
    	ln -s ../run/lock var/lock
    
    	#
    	# setup /usr hierarchy
    	#
    
    Tom Gundersen's avatar
    Tom Gundersen committed
    	for d in bin include lib share/misc src; do
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    		install -d -m755 usr/$d
    
    	done
    	for d in $(seq 8); do
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    		install -d -m755 usr/share/man/man$d
    
    Allan McRae's avatar
    Allan McRae committed
    	#
    	# add lib symlinks
    	#
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    	ln -s usr/lib "$pkgdir"/lib
    	[[ $CARCH = 'x86_64' ]] && (
    		ln -s usr/lib "$pkgdir"/lib64
    		ln -s lib "$pkgdir"/usr/lib64
    
    Allan McRae's avatar
    Allan McRae committed
    	)
    
    
    Tom Gundersen's avatar
    Tom Gundersen committed
    	#
    	# add bin symlinks
    	#
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    	ln -s usr/bin "$pkgdir"/bin
    	ln -s usr/bin "$pkgdir"/sbin
    	ln -s bin "$pkgdir"/usr/sbin
    
    Tom Gundersen's avatar
    Tom Gundersen committed
    
    
    	#
    	# install archlinux(7) manpage
    	#
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    	install -D -m644 "$srcdir"/archlinux.7 usr/share/man/man7/archlinux.7
    
    	#
    	# setup /usr/local hierarchy
    	#
    
    	for d in bin etc games include lib man share src; do
    
    Sébastien Luttringer's avatar
    Sébastien Luttringer committed
    		install -d -m755 usr/local/$d
    
    	ln -s ../man usr/local/share/man
    
    	ln -s bin usr/local/sbin