/[gentoo-x86]/sys-apps/hal/hal-0.5.12_rc1-r4.ebuild
Gentoo

Contents of /sys-apps/hal/hal-0.5.12_rc1-r4.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations) (download)
Sat May 16 08:49:29 2009 UTC (5 years, 3 months ago) by robbat2
Branch: MAIN
Changes since 1.1: +2 -2 lines
Migration to virtual/libusb. Verified by code inspection.
(Portage version: 2.2_rc33/cvs/Linux x86_64)

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-r4.ebuild,v 1.1 2009/05/13 20:54:12 dang Exp $
4
5 EAPI="2"
6
7 inherit eutils linux-info autotools flag-o-matic
8
9 PATCH_VERSION="5"
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 ~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.13
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 EPATCH_MULTI_MSG="Applying Gentoo Patchset ..." \
134 EPATCH_SUFFIX="patch" \
135 EPATCH_SOURCE="${WORKDIR}/${PATCHNAME}/patches/" \
136 EPATCH_FORCE="yes" \
137 epatch
138
139 eautoreconf
140 }
141
142 src_configure() {
143 local acpi="$(use_enable acpi)"
144 local backend=
145 local hardware=
146 local consolekit="$(use_enable consolekit console-kit)"
147
148 append-flags -rdynamic
149
150 if use kernel_linux ; then
151 backend="linux"
152 elif use kernel_FreeBSD ; then
153 backend="freebsd"
154 else
155 eerror "Invalid backend"
156 fi
157
158 if use kernel_linux ; then
159 if use acpi ; then
160 # Using IBM ACPI and Toshiba ACPI results in double notification as this
161 # was merged into the Linux Kernel 2.6.22
162 if kernel_is lt 2 6 22 ; then
163 acpi="$acpi --enable-acpi-ibm --enable-acpi-toshiba"
164 else
165 acpi="$acpi --disable-acpi-ibm --disable-acpi-toshiba"
166 fi
167
168 acpi="$acpi --enable-acpi-proc --enable-acpi-acpid"
169 else
170 acpi="$acpi --disable-acpi-ibm --disable-acpi-toshiba"
171 acpi="$acpi --disable-acpi-proc --disable-acpi-acpid"
172 fi
173
174 hardware="--with-cpufreq --with-usb-csr --with-keymaps"
175 use arm && hardware="$hardware --with-omap --enable-pmu"
176 use ppc && hardware="$hardware --enable-pmu"
177 if use x86 || use amd64; then
178 hardware="$hardware --with-macbook --with-macbookpro"
179 fi
180
181 if use dell ; then
182 hardware="$hardware --with-dell-backlight"
183 else
184 hardware="$hardware --without-dell-backlight"
185 fi
186
187 hardware="$hardware --enable-sonypic"
188 else
189 hardware="--without-cpufreq --without-usb-csr --without-keymaps"
190 hardware="$hardware --without-omap"
191 hardware="$hardware --without-dell-backlight"
192 hardware="$hardware --enable-acpi-ibm --enable-acpi-toshiba"
193 hardware="$hardware --disable-sonypic"
194 fi
195
196 # Policykit support depends on consolekit support. Therefore, force on
197 # consolekit, even if it's USE flag is off, if policykit support is on.
198 # This enables packages to USE-depend on hal[policykit?]
199 if use policykit ; then
200 consolekit="--enable-console-kit"
201 fi
202
203 econf --with-backend=${backend} \
204 --with-os-type=gentoo \
205 --with-pid-file=/var/run/hald.pid \
206 --with-hwdata=/usr/share/misc \
207 --with-socket-dir=/var/run/hald \
208 --enable-umount-helper \
209 --enable-man-pages \
210 --disable-acl-management \
211 --enable-pci \
212 $(use_enable apm) \
213 $(use_enable debug verbose-mode) \
214 $(use_enable disk-partition parted) \
215 $(use_enable doc docbook-docs) \
216 $(use_enable doc gtk-doc) \
217 $(use_enable policykit policy-kit) \
218 ${consolekit} \
219 --docdir=/usr/share/doc/${PF} \
220 --localstatedir=/var \
221 ${acpi} ${hardware} \
222 || die "configure failed"
223 }
224
225 src_install() {
226 emake DESTDIR="${D}" install || die
227 dodoc AUTHORS ChangeLog NEWS README || die "docs failed"
228
229 # hal umount for unclean unmounts
230 exeinto /lib/udev/
231 newexe "${FILESDIR}/hal-unmount.dev" hal_unmount || die "udev helper failed"
232
233 # initscript
234 newinitd "${FILESDIR}/0.5.10-hald.rc" hald || die "init script failed"
235
236 # configuration
237 cp "${FILESDIR}/0.5.10-hald.conf" "${WORKDIR}/" || \
238 die "failed to copy hald.conf"
239
240 if use debug; then
241 sed -e 's:HALD_VERBOSE="no":HALD_VERBOSE="yes":' \
242 -i "${WORKDIR}/0.5.10-hald.conf" || die "failed to change verbose"
243 fi
244 newconfd "${WORKDIR}/0.5.10-hald.conf" hald || \
245 die "failed to install hald.conf"
246
247 if use X ; then
248 # New Configuration Snippets
249 dodoc "${WORKDIR}/${PATCHNAME}/config-examples/"*.fdi || \
250 die "dodoc X examples failed"
251 fi
252
253 # We now create and keep /media here as both gnome-mount and pmount
254 # use these directories, to avoid collision.
255 keepdir /media
256
257 # We also need to create and keep /etc/fdi/{information,policy,preprobe}
258 # or else hal bombs.
259 keepdir /etc/hal/fdi/{information,policy,preprobe}
260
261 # HAL stores it's fdi cache in /var/cache/hald
262 keepdir /var/cache/hald
263
264 # HAL keeps its unix socket here
265 keepdir /var/run/hald
266 keepdir /var/lib/hal
267 }
268
269 pkg_postinst() {
270 # Despite what people keep changing this location. Either one works.. it doesn't matter
271 # http://dev.gentoo.org/~plasmaroo/devmanual/ebuild-writing/functions/
272
273 elog "The HAL daemon needs to be running for certain applications to"
274 elog "work. Suggested is to add the init script to your start-up"
275 elog "scripts, this should be done like this :"
276 elog "\`rc-update add hald default\`"
277 echo
278 elog "Looking for automounting support? Add yourself to the plugdev group"
279 echo
280 elog "IF you have additional applications which consume ACPI events, you"
281 elog "should consider installing acpid to allow applications to share ACPI"
282 elog "events."
283 if use X ; then
284 echo
285 elog "If you wish to use a non US layout, you may do so by executing:"
286 elog "setxkbmap <layout> or by utilizing your Desktop Environment's"
287 elog "Keyboard Layout Settings mechanism."
288 elog "Under GNOME, this is gnome-keyboard-properties, and under KDE"
289 elog "it is kxkb."
290 fi
291 echo
292 elog "In order have suspend/hibernate function with HAL or apps that use HAL"
293 elog "(such as gnome-power-manager), you should build HAL with the laptop"
294 elog "useflag which will install pm-utils."
295 if use X ; then
296 echo
297 elog "X Input Hotplugging (if you build xorg-server with the HAL useflag)"
298 elog "reads user specific configuration from /etc/hal/fdi/policy/."
299 echo
300 elog "You should remove the Input sections from your xorg.conf once you have"
301 elog "migrated the rules to a HAL fdi file."
302 fi
303
304 ebeep 5
305 epause 5
306 }

  ViewVC Help
Powered by ViewVC 1.1.20