# Maintainer: Phillip Smith <phillips@archserver.org>
# Maintainer: Aaron Griffin <aaron@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>

pkgname=filesystem
pkgver=2010.03
_RELEASE='redgum'
pkgrel=2
pkgdesc="Base filesystem"
arch=('any')
license=('GPL')
url="http://www.archserver.org"
groups=('base')
install=filesystem.install
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' 'resolv.conf' 'shells'
        'gshadow' 'services' 'protocols' 'profile' 'modprobe.d.usb-load-ehci-first')
md5sums=('f4cf8d0a2de2658165148d5f64d81675'
         '599e03e675d262a5f293d7f262fe2e65'
         '13753e4e0964f3652b0cc60a28528bdf'
         '36f442b3638c8857180c5bfbfccc4728'
         'f28150d4c0b22a017be51b9f7f9977ed'
         '6e488ffecc8ba142c0cf7e2d7aeb832e'
         '8a9042a2cedf6b6b47eb8973f14289cb'
         '019e5c24f9befef395a28e7ef2e4e5b9'
         'c93ecbf758cbd2e3c76e3217abe82a4e'
         'e5d8323a4dbee7a6d0d2a19cbf4b819f'
         '71bd8d87140b2426dfd3fa1514bf780d'
         '4bafe80c7f85ae3864593ae238b6d79c'
         '6f48288b6fcaf0065fcb7b0e525413e0'
         '40dac0de4c6b99c8ca97effbd7527c84'
         '5340b9287b71ffe9d4d99510bffe933f'
         '54a48e5c3f8b5c923391b4105d77d98d'
         '65d78e621ed69eed69f854c3ee2e5942'
         '288a2e8d63c5ea2c2d852c7147e59d28'
         '8098ffd9fbf890468d3198277596b85a')

build() {
  msg "Nothing to build for $pkgname"
}

package() {
  cd $pkgdir
  
  mkdir -p bin boot dev etc home lib mnt proc root sbin tmp usr var opt srv sys || return 1
  chmod 555 proc || return 1
  mkdir -p media/{fl,cd,dvd} || return 1
  mkdir -p usr/{bin,include,lib,sbin,share/misc,src,man} || return 1
  mkdir -p usr/share/man/man{1,2,3,4,5,6,7,8} || return 1
  ln -s man3 $pkgdir/usr/share/man/man3x || return 1
  
  # fhs compliance
  mkdir -p usr/local/{bin,include,lib,man,sbin,share,src} || return 1
  ln -s ../man $pkgdir/usr/local/share/man || return 1
  mkdir -p var/{cache/man,local,lock,opt,run,spool/mail,tmp,empty} || return 1
  chmod 1777 var/lock || return 1
  mkdir -p var/log/old || return 1
  mkdir -p etc/{skel,profile.d,ld.so.conf.d} || return 1
  mkdir -p lib/modules || return 1
  mkdir -p var/lib/misc || return 1
  (cd $pkgdir/var && ln -s spool/mail mail) || return 1
  
  # vsftpd won't run with write perms on /srv/ftp
  mkdir -p srv/ftp || return 1
  chown root.ftp srv/ftp || return 1
  chmod 555 srv/ftp || return 1
  
  install -d -o root -g root -m755 srv/http || return 1
  install -d -o root -g root -m755 srv/git || return 1
  install -d -o root -g root -m755 srv/svn || return 1
  
  chmod 1777 var/spool/mail tmp var/tmp || return 1
  chmod 0750 root || return 1
  
  cd $srcdir
  cp fstab crypttab group host.conf hosts issue ld.so.conf nsswitch.conf passwd protocols resolv.conf securetty services shadow shells profile $pkgdir/etc/ || return 1
  install -m600 $srcdir/gshadow $pkgdir/etc/gshadow || return 1
  chmod 600 $pkgdir/etc/shadow || return 1
  chmod 600 $pkgdir/etc/crypttab || return 1
  
  # Add a version to issue
  cat issue | sed "s/#VERSION#/$_RELEASE/" > $pkgdir/etc/issue
  cat motd  | sed "s/#VERSION#/$_RELEASE/" > $pkgdir/etc/motd
  # Create /etc/arch-release, some software uses it to check whether arch is running
  cat > $pkgdir/etc/arch-release << EOT
ArchServer $_RELEASE
Built `date`
EOT
  
  # Add /etc/modprobe.d/
  install -Dm644 $srcdir/modprobe.d.usb-load-ehci-first $pkgdir/etc/modprobe.d/usb-load-ehci-first.conf
}

# vim:set ts=2 sw=2 et:
