/[gentoo-x86]/sys-apps/hal/hal-0.5.9.ebuild
Gentoo

Contents of /sys-apps/hal/hal-0.5.9.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.18 - (show annotations) (download)
Thu Apr 12 16:43:50 2007 UTC (7 years ago) by cardoe
Branch: MAIN
Changes since 1.17: +15 -4 lines
haldaemon groups tweak for FreeBSD
(Portage version: 2.1.2.3)

1 # Copyright 1999-2007 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/sys-apps/hal/hal-0.5.9.ebuild,v 1.17 2007/04/12 16:13:00 cardoe Exp $
4
5 inherit eutils linux-info autotools flag-o-matic
6
7 DESCRIPTION="Hardware Abstraction Layer"
8 HOMEPAGE="http://www.freedesktop.org/Software/hal"
9 SRC_URI="http://people.freedesktop.org/~david/dist/${P}.tar.gz"
10
11 LICENSE="|| ( GPL-2 AFL-2.0 )"
12 SLOT="0"
13 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 -mips ~ppc ~ppc64 ~sh ~sparc ~x86"
14
15 KERNEL_IUSE="kernel_linux kernel_FreeBSD"
16 IUSE="acpi crypt debug dell disk-partition doc pam pcmcia selinux ${KERNEL_IUSE}"
17
18 RDEPEND=">=dev-libs/glib-2.6
19 >=dev-libs/dbus-glib-0.61
20 kernel_linux? ( >=sys-fs/udev-104 )
21 kernel_linux? ( >=sys-apps/util-linux-2.12r-r1 )
22 kernel_linux? ( >=sys-kernel/linux-headers-2.6.17 )
23 kernel_FreeBSD? ( dev-libs/libvolume_id )
24 >=dev-libs/expat-1.95.8
25 >=sys-apps/pciutils-2.2.3
26 >=dev-libs/libusb-0.1.10a
27 virtual/eject
28 amd64? ( >=sys-apps/dmidecode-2.7 )
29 x86? ( >=sys-apps/dmidecode-2.7 )
30 ia64? ( >=sys-apps/dmidecode-2.7 )
31 dell? ( >=sys-libs/libsmbios-0.13.4 )
32 disk-partition? ( >=sys-apps/parted-1.7.1 )
33 kernel_linux? ( crypt? ( >=sys-fs/cryptsetup-luks-1.0.1 ) )
34 selinux? ( sys-libs/libselinux
35 sec-policy/selinux-hal )
36 pam? ( sys-auth/consolekit )"
37
38 DEPEND="${RDEPEND}
39 dev-util/pkgconfig
40 >=dev-util/intltool-0.35
41 doc? ( app-doc/doxygen app-text/docbook-sgml-utils )"
42
43 PDEPEND="app-misc/hal-info"
44
45 ## HAL Daemon drops privledges so we need group access to read disks
46 HALDAEMON_GROUPS_LINUX="haldaemon,plugdev,disk,cdrom,cdrw,floppy,usb"
47 HALDAEMON_GROUPS_FREEBSD="haldaemon,plugdev,operator"
48
49 function notify_uevent() {
50 ewarn
51 ewarn "You must enable Kernel Userspace Events in your kernel."
52 ewarn "For this you need to enable 'Hotplug' under 'General Setup' and"
53 ewarn "basic networking. They are marked CONFIG_HOTPLUG and CONFIG_NET"
54 ewarn "in the config file."
55 ewarn
56 ebeep 5
57 }
58
59 function notify_procfs() {
60 ewarn
61 ewarn "You must enable the proc filesystem in your kernel."
62 ewarn "For this you need to enable '/proc file system support' under"
63 ewarn "'Pseudo filesystems' in 'File systems'. It is marked"
64 ewarn "CONFIG_PROC_FS in the config file."
65 ewarn
66 ebeep 5
67 }
68
69 function notify_inotify() {
70 ewarn
71 ewarn "You must enable the Inotify system in your kernel."
72 ewarn "For this you need to enable 'Inotify support for userspace'"
73 ewarn "in 'File systems'. It is marked CONFIG_INOTIFY_USER in the config file."
74 ewarn
75 ebeep 5
76 }
77
78 pkg_setup() {
79 if use kernel_linux; then
80 kernel_is ge 2 6 17 || ewarn "HAL requires a kernel version 2.6.17 or newer"
81
82 if ! ( linux_chkconfig_present HOTPLUG && linux_chkconfig_present NET )
83 then
84 notify_uevent
85 fi
86
87 linux_chkconfig_present INOTIFY_USER || notify_inotify
88
89 if use acpi ; then
90 linux_chkconfig_present PROC_FS || notify_procfs
91 fi
92 fi
93
94 if [[ -d ${ROOT}/etc/hal/device.d ]]; then
95 eerror "HAL 0.5.x will not run with the HAL 0.4.x series of"
96 eerror "/etc/hal/device.d/ so please remove this directory"
97 eerror "with rm -rf /etc/hal/device.d/ and then re-emerge."
98 eerror "This is due to configuration protection of /etc/"
99 die "remove /etc/hal/device.d/"
100 fi
101 }
102
103 src_unpack() {
104 unpack ${A}
105 cd ${S}
106
107 # Gentoo Patch Set
108 EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" epatch ${FILESDIR}/${PV}
109
110 eautoreconf
111 }
112
113 src_compile() {
114 local backend=""
115 local acpi=""
116
117 # TODO :: policykit should have a pam useflag
118 append-flags -rdynamic
119
120 if use kernel_linux ; then
121 backend="linux"
122 elif use kernel_FreeBSD ; then
123 backend="freebsd"
124 else
125 eerror "Invalid backend"
126 fi
127
128 if use acpi ; then
129 acpi="--enable-acpi-toshiba --enable-acpi-ibm"
130 else
131 acpi="--disable-acpi-proc --disable-acpi-acpid"
132 fi
133
134 econf --disable-policy-kit \
135 --with-doc-dir=/usr/share/doc/${PF} \
136 --with-os-type=gentoo \
137 --with-pid-file=/var/run/hald.pid \
138 --with-hwdata=/usr/share/misc \
139 --enable-hotplug-map \
140 --enable-man-pages \
141 --with-backend=${backend} \
142 $(use_enable debug verbose-mode) \
143 $(use_with dell dell-backlight) \
144 $(use_enable disk-partition parted) \
145 $(use_enable pcmcia pcmcia-support) \
146 $(use_enable doc docbook-docs) \
147 $(use_enable doc doxygen-docs) \
148 $(use_enable selinux) \
149 $(use_enable pam console-kit) \
150 ${acpi} \
151 || die "configure failed"
152
153 emake || die "make failed"
154 }
155
156 src_install() {
157 make DESTDIR="${D}" install || die
158 dodoc AUTHORS ChangeLog NEWS README
159
160 # remove dep on gnome-python
161 mv "${D}"/usr/bin/hal-device-manager "${D}"/usr/share/hal/device-manager/
162
163 # hal umount for unclean unmounts
164 exeinto /lib/udev/
165 newexe "${FILESDIR}"/hal-unmount.dev hal_unmount
166
167 # initscript
168 newinitd "${FILESDIR}"/0.5.9-hald.rc hald
169 cp "${FILESDIR}"/0.5.9-hald.conf "${WORKDIR}"/
170 if use pam; then
171 sed -e 's:RC_NEED:RC_NEED="consolekit":' -i "${WORKDIR}"/0.5.9-hald.conf
172 else
173 sed -e 's:RC_NEED:RC_NEED="":' -i "${WORKDIR}"/0.5.9-hald.conf
174 fi
175 newconfd "${WORKDIR}"/0.5.9-hald.conf hald
176
177 # We now create and keep /media here as both gnome-mount and pmount
178 # use these directories, to avoid collision.
179 keepdir /media
180
181 # We also need to create and keep /etc/fdi/{information,policy,preprobe}
182 # or else hal bombs.
183 keepdir /etc/hal/fdi/{information,policy,preprobe}
184
185 # HAL stores it's fdi cache in /var/lib/cache/hald
186 keepdir /var/lib/cache/hald
187 }
188
189 pkg_postinst() {
190 # Despite what people keep changing this location. Either one works.. it doesn't matter
191 # http://dev.gentoo.org/~plasmaroo/devmanual/ebuild-writing/functions/
192
193 # Create groups for hotplugging and HAL
194 enewgroup haldaemon || die "Problem adding haldaemon group"
195 enewgroup plugdev || die "Problem adding plugdev group"
196
197 # HAL drops priviledges by default now ...
198 # ... so we must make sure it can read disk/cdrom info (ie. be in ${HALDAEMON_GROUPS} groups)
199 if use kernel_linux; then
200 enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_LINUX} \
201 || die "Problem adding haldaemon user"
202 elif use kernel_FreeBSD; then
203 enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_FREEBSD} \
204 || die "Problem addding haldaemon user"
205 fi
206
207 # Make sure that the haldaemon user is in the ${HALDAEMON_GROUPS}
208 # If users have a problem with this, let them file a bug
209 if use kernel_linux; then
210 usermod -G ${HALDAEMON_GROUPS_LINUX} haldaemon
211 elif use kernel_FreeBSD; then
212 usermod -G ${HALDAEMON_GROUPS_FREEBSD} haldaemon
213 fi
214
215 elog "The HAL daemon needs to be running for certain applications to"
216 elog "work. Suggested is to add the init script to your start-up"
217 elog "scripts, this should be done like this :"
218 elog "\`rc-update add hald default\`"
219 echo
220 elog "Looking for automounting support? Add yourself to the plugdev group"
221 }

  ViewVC Help
Powered by ViewVC 1.1.20