summaryrefslogtreecommitdiff
path: root/core/udev/PKGBUILD
blob: be706f13fb51fd78ac9a53f13308286f2e6a2f67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# $Id: PKGBUILD 147038 2012-01-21 00:32:06Z dreisner $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Contributor: Aaron Griffin <aaron@archlinux.org>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Thomas Bächler <thomas@archlinux.org>

pkgbase="udev"
pkgname=('udev' 'udev-compat')
pkgver=177
pkgrel=3
arch=(i686 x86_64)
url="http://git.kernel.org/?p=linux/hotplug/udev.git;a=summary"
license=('GPL')
groups=('base')
options=(!makeflags !libtool)
makedepends=('gobject-introspection' 'gperf' 'libxslt' 'usbutils' 'kmod')
source=(ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/$pkgbase-$pkgver.tar.xz
	0001-udevd-kill-hanging-event-processes-after-30-seconds.patch)

build() {
  cd $srcdir/$pkgbase-$pkgver

  # deal with broken drivers waiting for firmware to be loaded
  patch -p1 -i ../0001-udevd-kill-hanging-event-processes-after-30-seconds.patch

  ./configure --prefix=/usr \
              --with-rootprefix= \
              --sysconfdir=/etc \
              --bindir=/sbin \
              --libdir=/usr/lib \
              --with-rootlibdir=/lib \
              --libexecdir=/lib \
              --with-systemdsystemunitdir=/lib/systemd/system \
              --enable-udev_acl

  make
}
  
package_udev() {
  pkgdesc="The userspace dev tools (udev)"
  depends=('util-linux' 'libusb-compat' 'glib2' 'kmod' 'pciutils' 'usbutils' 'pciutils')
  install=udev.install
  backup=(etc/udev/udev.conf)

  cd $srcdir/$pkgbase-$pkgver
  make DESTDIR=${pkgdir} install

  # create framebuffer blacklist
  install -d -m755 ${pkgdir}/lib/modprobe.d/
  for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko.gz' -exec basename {} .ko.gz \;); do 
  	echo "blacklist $mod" 
  done | sort -u > $pkgdir/lib/modprobe.d/framebuffer_blacklist.conf

  # /dev/loop0 is created for convenience, to autoload the module if necessary
  # this is no longer needed when util-linux-2.21 is released as /dev/loop-control
  # will be used instead. In that case move this to udev-compat
  install -d -m755 ${pkgdir}/lib/udev/devices/
  mknod ${pkgdir}/lib/udev/devices/loop0 b 7 0
  chgrp disk ${pkgdir}/lib/udev/devices/loop0
 
  # udevd moved, symlink to make life easy for restarting udevd manually
  ln -s /lib/udev/udevd ${pkgdir}/sbin/udevd

  # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group
  for i in $pkgdir/lib/udev/rules.d/*.rules; do
    sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g;
               s#GROUP="tape"#GROUP="storage"#g;
               s#GROUP="cdrom"#GROUP="optical"#g' $i
  done
}

package_udev-compat() {
  pkgdesc="The userspace dev tools (udev) - additional rules for older kernels"
  depends=('udev')
  groups=('')
  install -d -m755 ${pkgdir}/lib/udev/rules.d
  install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules

  # create static nodes to be compatible with on-demand module
  # loading in the most recent kernel
  #
  # the list of nodes is generated from /lib/modules/`most recent kernel`/modprobe.devname
  # excluding any devices not included in the LTS kernel and any entries in the
  # modprobe.devname file of the LTS kernel (if it exists).

  install -d -m755 ${pkgdir}/lib/udev/devices
  cd ${pkgdir}/lib/udev/devices

  install -d -m755 net
  mknod net/tun c 10 200
  mknod ppp c 108 0
#  mknod loop-control c 10 237 -- does not exist in old kernels
  mknod uinput c 10 223
  install -d -m755 mapper
  mknod mapper/control c 10 236
  install -d -m755 snd
  mknod snd/timer c 116 33
  mknod snd/seq c 116 1
  mknod btrfs-control c 10 234
  mknod autofs c 10 235
  mknod fuse c 10 229
  install -d -m755 cpu
  mknod cpu/microcode c 10 184
  
}
md5sums=('b4e00faf8153fd7202a7ef609284b0c3'
         '3e40dca1c4f8194b4633e3befb4da4d4')