# $Id: PKGBUILD 22190 2008-12-22 18:25:11Z tpowa $
# Maintainer: Aaron Griffin <aaron@archlinux.org>
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=udev
pkgver=135
pkgrel=7
pkgdesc="The userspace dev tools (udev)"
arch=(i686 x86_64)
url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
license=('GPL')
groups=('base')
depends=('glibc' 'coreutils' 'util-linux')
makedepends=('kernel26') #needed to build framebuffer blacklist
install=udev.install
backup=(etc/udev/udev.conf
        etc/scsi_id.config
        etc/udev/cdsymlinks.conf
        etc/modprobe.d/framebuffer_blacklist)
conflicts=('pcmcia-cs' 'hotplug')
replaces=('devfsd')
# older initscripts versions required start_udev
conflicts=('initscripts<2008.02')
options=(!makeflags)
source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgname-$pkgver.tar.bz2
        81-arch.rules load-modules.sh resolve-modalias.c cdsymlinks.sh root-link.sh
        arch-udev-rules.patch readme-udev-arch.txt usb-storage.rules udev-ntfs-3g.patch mount-usb)
md5sums=('661b9df34e1304dad10f595d95b472bb'
         '3a955ca8e2122a48a223f9d8adf87b70'
         'f4951f61438d69894b728212dac7318b'
         'fca04a608009069beb786e26338a783b'
         '8424b78e9dd772e75b4ef90814807815'
         '2d6dc6842464f107bccc68cd505a6c31'
         'ae216c26a6a5cae4a3ef9c0e1f7bfaa6'
         '7fc6d33bb218e752302eef0a80ff0a89'
	 '11eaec41b77746f50975d4ef834c8f83')

build() {
  cd $srcdir/$pkgname-$pkgver
  patch -p1 < ../udev-ntfs-3g.patch || return 1
  ./configure --prefix="" --mandir=/usr/share/man --includedir=/usr/include
  make || return 1
  make DESTDIR=$startdir/pkg install

  # Fix pkgconfig path
  install -d -m755 $pkgdir/usr/lib
  mv $pkgdir/lib/pkgconfig $pkgdir/usr/lib

  # Non-stock rules still go in /etc
  install -D -m644 $srcdir/81-arch.rules $pkgdir/etc/udev/rules.d/81-arch.rules
  install -D -m644 $srcdir/usb-storage.rules $pkgdir/etc/udev/rules.d/usb-storage.rules

  # Scripts needed
  mkdir $pkgdir/etc/udev/scripts
  install -D -m744 $srcdir/mount-usb $pkgdir/etc/udev/scripts

  # install our module loading subsystem
  install -D -m755 $srcdir/load-modules.sh $pkgdir/lib/udev/load-modules.sh
  install -d -m755 $pkgdir/bin
  gcc -Wall $CFLAGS -o $pkgdir/bin/resolve-modalias $srcdir/resolve-modalias.c
  # install cdsymlinks.sh
  install -D -m755 $srcdir/cdsymlinks.sh $pkgdir/lib/udev/cdsymlinks.sh
  # install root-link.sh
  install -D -m755 $srcdir/root-link.sh $pkgdir/lib/udev/root-link.sh

  # install instructions
  # NOTE: We should delete this file
  install -D -m644 $srcdir/readme-udev-arch.txt $pkgdir/usr/share/udev/readme-udev-arch.txt

  # add devices dir
  mkdir $pkgdir/lib/udev/devices
  # disable error logging to prevent startup failures printed to vc on boot
  sed -i -e 's|udev_log="err"|udev_log="0"|g' $pkgdir/etc/udev/udev.conf
  # install additional rules files
  for rule in $srcdir/$pkgname-$pkgver/rules/packages/*.rules; do
      install -D -m 644 $rule $pkgdir/lib/udev/rules.d/
  done
  # fix standard udev rules to fit to arch
  cd $pkgdir/lib/udev/rules.d/
  patch -Np1 -i $srcdir/arch-udev-rules.patch || return 1

  # remove the md-raid rules which are now provided by the mdadm package
  rm -f $pkgdir/lib/udev/rules.d/64-md-raid.rules

  # disable persistent cdromsymlinks and network by default 
  # and move it to /etc/udev/rules.d
  mv $pkgdir/lib/udev/rules.d/75-persistent-net-generator.rules \
     $pkgdir/etc/udev/rules.d/75-persistent-net-generator.rules.optional
  mv $pkgdir/lib/udev/rules.d/75-cd-aliases-generator.rules \
     $pkgdir/etc/udev/rules.d/75-cd-aliases-generator.rules.optional
  # create framebuffer blacklist
  mkdir -p $pkgdir/etc/modprobe.d/
  for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko' -exec basename {} .ko \;); do 
	echo "blacklist $mod" >> $pkgdir/etc/modprobe.d/framebuffer_blacklist
  done
}