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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Tue Jul 21 19:14:17 2009 UTC (5 years ago) by dang
Branch: MAIN
Bump hal to 0.5.13; bug #270956
(Portage version: 2.2_rc33/cvs/Linux x86_64, RepoMan options: --force)

1 # Copyright 1999-2009 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.12_rc1-r7.ebuild,v 1.1 2009/07/19 15:33:19 dang Exp $
4
5 EAPI="2"
6
7 inherit eutils linux-info autotools flag-o-matic multilib
8
9 PATCH_VERSION="0"
10
11 MY_P=${P/_/}
12 S=${WORKDIR}/${MY_P}
13 PATCHNAME="${MY_P}-gentoo-patches-${PATCH_VERSION}"
14 DESCRIPTION="Hardware Abstraction Layer"
15 HOMEPAGE="http://www.freedesktop.org/wiki/Software/hal"
16 SRC_URI="http://hal.freedesktop.org/releases/${MY_P}.tar.bz2
17 http://dev.gentoo.org/~dang/files/${PATCHNAME}.tar.bz2"
18
19 LICENSE="|| ( GPL-2 AFL-2.0 )"
20 SLOT="0"
21 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
22
23 KERNEL_IUSE="kernel_linux kernel_FreeBSD"
24 IUSE="X acpi apm crypt consolekit debug dell disk-partition doc laptop policykit selinux ${KERNEL_IUSE}"
25
26 RDEPEND=">=dev-libs/dbus-glib-0.61
27 >=dev-libs/glib-2.14
28 >=dev-libs/expat-1.95.8
29 =virtual/libusb-0*
30 >=sys-apps/pciutils-2.2.7-r1
31 >=dev-util/gperf-3.0.3
32 sys-apps/usbutils
33 virtual/eject
34 amd64? ( >=sys-apps/dmidecode-2.7 )
35 dell? ( >=sys-libs/libsmbios-0.13.4 )
36 disk-partition? ( >=sys-apps/parted-1.8.0 )
37 ia64? ( >=sys-apps/dmidecode-2.7 )
38 kernel_linux? (
39 >=sys-fs/udev-117
40 >=sys-apps/util-linux-2.16
41 >=sys-kernel/linux-headers-2.6.19
42 crypt? ( >=sys-fs/cryptsetup-1.0.5 )
43 )
44 kernel_FreeBSD? ( >=dev-libs/libvolume_id-0.77 )
45 x86? ( >=sys-apps/dmidecode-2.7 )
46 selinux? ( sys-libs/libselinux sec-policy/selinux-hal )
47 consolekit? (
48 sys-auth/consolekit[policykit=]
49 )
50 policykit? (
51 sys-auth/consolekit[policykit]
52 sys-auth/policykit[pam]
53 )"
54 DEPEND="${RDEPEND}
55 dev-util/pkgconfig
56 >=dev-util/intltool-0.35
57 doc? (
58 app-text/xmlto
59 dev-libs/libxml2
60 dev-util/gtk-doc
61 app-text/docbook-sgml-utils
62 )
63 !<gnome-extra/gnome-power-manager-2.24.4-r2"
64 PDEPEND=">=app-misc/hal-info-20081219
65 !gnome-extra/hal-device-manager
66 laptop? ( >=sys-power/pm-utils-0.99.3 )"
67
68 ## HAL Daemon drops privledges so we need group access to read disks
69 HALDAEMON_GROUPS_LINUX="haldaemon,plugdev,disk,cdrom,cdrw,floppy,usb"
70 HALDAEMON_GROUPS_FREEBSD="haldaemon,plugdev,operator"
71
72 function check_hotplug_net() {
73 local CONFIG_CHECK="~HOTPLUG ~NET"
74 local WARNING_HOTPLUG="CONFIG_HOTPLUG:\tis not set (required for HAL)\n"
75 local WARNING_NET="CONFIG_NET:\tis not set (required for HAL)\n"
76 check_extra_config
77 }
78
79 function check_inotify() {
80 local CONFIG_CHECK="~INOTIFY_USER"
81 local WARNING_INOTIFY_USER="CONFIG_INOTIFY_USER:\tis not set (required for HAL)\n"
82 check_extra_config
83 }
84
85 function check_acpi_proc() {
86 local CONFIG_CHECK="~ACPI_PROCFS ~ACPI_PROC_EVENT"
87 local WARNING_ACPI_PROCFS="CONFIG_ACPI_PROCFS:\tis not set (required for HAL)\n"
88 local WARNING_ACPI_PROC_EVENT="CONFIG_ACPI_PROC_EVENT:\tis not set (required for HAL)\n"
89 check_extra_config
90 }
91
92 pkg_setup() {
93 if use kernel_linux ; then
94 if [[ -e "${ROOT}/usr/src/linux/.config" ]] ; then
95 kernel_is ge 2 6 19 || ewarn "HAL requires a kernel version 2.6.19 or newer"
96
97 if kernel_is lt 2 6 23 && use acpi ; then
98 check_acpi_proc
99 fi
100 fi
101
102 check_hotplug_net
103 check_inotify
104 fi
105
106 # http://devmanual.gentoo.org/ebuild-writing/functions/
107 # http://bugs.gentoo.org/show_bug.cgi?id=191605
108
109 # Create groups for hotplugging and HAL
110 enewgroup haldaemon
111 enewgroup plugdev
112
113 # HAL drops priviledges by default now ...
114 # ... so we must make sure it can read disk/cdrom info (ie. be in ${HALDAEMON_GROUPS} groups)
115 if use kernel_linux; then
116 enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_LINUX}
117 elif use kernel_FreeBSD; then
118 enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_FREEBSD}
119 fi
120
121 # Make sure that the haldaemon user is in the ${HALDAEMON_GROUPS}
122 # If users have a problem with this, let them file a bug
123 if [[ ${ROOT} == / ]] ; then
124 if use kernel_linux; then
125 usermod -G ${HALDAEMON_GROUPS_LINUX} haldaemon
126 elif use kernel_FreeBSD; then
127 pw usermod haldaemon -G ${HALDAEMON_GROUPS_FREEBSD}
128 fi
129 fi
130 }
131
132 src_prepare() {
133 # Only apply one of the policy patches. Bug #267042
134 if use policykit ; then
135 rm "${WORKDIR}/${PATCHNAME}/patches/0001-plugdev-dbus-policy.patch"
136 else
137 rm "${WORKDIR}/${PATCHNAME}/patches/0002-policykit-dbus-policy.patch"
138 fi
139
140 EPATCH_MULTI_MSG="Applying Gentoo Patchset ..." \
141 EPATCH_SUFFIX="patch" \
142 EPATCH_SOURCE="${WORKDIR}/${PATCHNAME}/patches/" \
143 EPATCH_FORCE="yes" \
144 epatch
145
146 eautoreconf
147 }
148
149 src_configure() {
150 local acpi="$(use_enable acpi)"
151 local backend=
152 local hardware=
153 local consolekit="$(use_enable consolekit console-kit)"
154
155 append-flags -rdynamic
156
157 if use kernel_linux ; then
158 backend="linux"
159 elif use kernel_FreeBSD ; then
160 backend="freebsd"
161 else
162 eerror "Invalid backend"
163 fi
164
165 if use kernel_linux ; then
166 if use acpi ; then
167 # Using IBM ACPI and Toshiba ACPI results in double notification as this
168 # was merged into the Linux Kernel 2.6.22
169 if kernel_is lt 2 6 22 ; then
170 acpi="$acpi --enable-acpi-ibm --enable-acpi-toshiba"
171 else
172 acpi="$acpi --disable-acpi-ibm --disable-acpi-toshiba"
173 fi
174
175 acpi="$acpi --enable-acpi-proc --enable-acpi-acpid"
176 else
177 acpi="$acpi --disable-acpi-ibm --disable-acpi-toshiba"
178 acpi="$acpi --disable-acpi-proc --disable-acpi-acpid"
179 fi
180
181 hardware="--with-cpufreq --with-usb-csr --with-keymaps"
182 use arm && hardware="$hardware --with-omap --enable-pmu"
183 use ppc && hardware="$hardware --enable-pmu"
184 if use x86 || use amd64; then
185 hardware="$hardware --with-macbook --with-macbookpro"
186 fi
187
188 if use dell ; then
189 hardware="$hardware --with-dell-backlight"
190 else
191 hardware="$hardware --without-dell-backlight"
192 fi
193
194 hardware="$hardware --enable-sonypic"
195 else
196 hardware="--without-cpufreq --without-usb-csr --without-keymaps"
197 hardware="$hardware --without-omap"
198 hardware="$hardware --without-dell-backlight"
199 hardware="$hardware --enable-acpi-ibm --enable-acpi-toshiba"
200 hardware="$hardware --disable-sonypic"
201 fi
202
203 # Policykit support depends on consolekit support. Therefore, force on
204 # consolekit, even if it's USE flag is off, if policykit support is on.
205 # This enables packages to USE-depend on hal[policykit?]
206 if use policykit ; then
207 consolekit="--enable-console-kit"
208 fi
209
210 econf --with-backend=${backend} \
211 --with-os-type=gentoo \
212 --with-pid-file=/var/run/hald.pid \
213 --with-hwdata=/usr/share/misc \
214 --with-socket-dir=/var/run/hald \
215 --enable-umount-helper \
216 --enable-man-pages \
217 --disable-acl-management \
218 --enable-pci \
219 $(use_enable apm) \
220 $(use_enable debug verbose-mode) \
221 $(use_enable disk-partition parted) \
222 $(use_enable doc docbook-docs) \
223 $(use_enable doc gtk-doc) \
224 $(use_enable policykit policy-kit) \
225 ${consolekit} \
226 --docdir=/usr/share/doc/${PF} \
227 --localstatedir=/var \
228 ${acpi} ${hardware} \
229 || die "configure failed"
230 }
231
232 src_install() {
233 emake DESTDIR="${D}" install || die
234 dodoc AUTHORS ChangeLog NEWS README || die "docs failed"
235
236 # hal umount for unclean unmounts
237 exeinto /$(get_libdir)/udev/
238 newexe "${FILESDIR}/hal-unmount.dev" hal_unmount || die "udev helper failed"
239
240 # initscript
241 newinitd "${FILESDIR}/0.5.10-hald.rc" hald || die "init script failed"
242
243 # configuration
244 cp "${FILESDIR}/0.5.10-hald.conf" "${WORKDIR}/" || \
245 die "failed to copy hald.conf"
246
247 if use debug; then
248 sed -e 's:HALD_VERBOSE="no":HALD_VERBOSE="yes":' \
249 -i "${WORKDIR}/0.5.10-hald.conf" || die "failed to change verbose"
250 fi
251 newconfd "${WORKDIR}/0.5.10-hald.conf" hald || \
252 die "failed to install hald.conf"
253
254 if use X ; then
255 # New Configuration Snippets
256 dodoc "${WORKDIR}/${PATCHNAME}/config-examples/"*.fdi || \
257 die "dodoc X examples failed"
258 fi
259
260 # We now create and keep /media here as both gnome-mount and pmount
261 # use these directories, to avoid collision.
262 keepdir /media
263
264 # We also need to create and keep /etc/fdi/{information,policy,preprobe}
265 # or else hal bombs.
266 keepdir /etc/hal/fdi/{information,policy,preprobe}
267
268 # HAL stores it's fdi cache in /var/cache/hald
269 keepdir /var/cache/hald
270
271 # HAL keeps its unix socket here
272 keepdir /var/run/hald
273 keepdir /var/lib/hal
274 }
275
276 pkg_postinst() {
277 # Despite what people keep changing this location. Either one works.. it doesn't matter
278 # http://dev.gentoo.org/~plasmaroo/devmanual/ebuild-writing/functions/
279
280 elog "The HAL daemon needs to be running for certain applications to"
281 elog "work. Suggested is to add the init script to your start-up"
282 elog "scripts, this should be done like this :"
283 elog "\`rc-update add hald default\`"
284 echo
285 elog "Access to hal is not protected by either policykit or the plugdev group."
286 elog "If you have problems discovering/configuring hardware, try adding"
287 elog "yourself to plugdev."
288 echo
289 elog "IF you have additional applications which consume ACPI events, you"
290 elog "should consider installing acpid to allow applications to share ACPI"
291 elog "events."
292 if use X ; then
293 echo
294 elog "If you wish to use a non US layout, you may do so by executing:"
295 elog "setxkbmap <layout> or by utilizing your Desktop Environment's"
296 elog "Keyboard Layout Settings mechanism."
297 elog "Under GNOME, this is gnome-keyboard-properties, and under KDE"
298 elog "it is kxkb."
299 fi
300 echo
301 elog "In order have suspend/hibernate function with HAL or apps that use HAL"
302 elog "(such as gnome-power-manager), you should build HAL with the laptop"
303 elog "useflag which will install pm-utils."
304 if use X ; then
305 echo
306 elog "X Input Hotplugging (if you build xorg-server with the HAL useflag)"
307 elog "reads user specific configuration from /etc/hal/fdi/policy/."
308 echo
309 elog "You should remove the Input sections from your xorg.conf once you have"
310 elog "migrated the rules to a HAL fdi file."
311 fi
312
313 ebeep 5
314 epause 5
315 }

  ViewVC Help
Powered by ViewVC 1.1.20