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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations) (download)
Wed Sep 30 11:59:28 2009 UTC (5 years, 1 month ago) by leio
Branch: MAIN
Changes since 1.2: +2 -3 lines
Remove now unnecessary gnome-power-manager blocker, all revisions of it that could file collide with hal are gone now and it included the 2.22 versions in the blocker, which was not necessary and is problematic with HAL stabling but g-p-m staying at 2.22. This fixes bug 287037; Gracious revbump to ensure amd64 stable users get the blocker fixed in VDB, permission from mrpouet to keep the stable keyword
(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.13-r2.ebuild,v 1.2 2009/08/17 11:49:49 aballier Exp $
4
5 EAPI="2"
6
7 inherit eutils linux-info autotools flag-o-matic multilib
8
9 PATCH_VERSION="1"
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 PDEPEND=">=app-misc/hal-info-20081219
64 !gnome-extra/hal-device-manager
65 laptop? ( >=sys-power/pm-utils-0.99.3 )"
66
67 ## HAL Daemon drops privledges so we need group access to read disks
68 HALDAEMON_GROUPS_LINUX="haldaemon,plugdev,disk,cdrom,cdrw,floppy,usb"
69 HALDAEMON_GROUPS_FREEBSD="haldaemon,plugdev,operator"
70
71 function check_hotplug_net() {
72 local CONFIG_CHECK="~HOTPLUG ~NET"
73 local WARNING_HOTPLUG="CONFIG_HOTPLUG:\tis not set (required for HAL)\n"
74 local WARNING_NET="CONFIG_NET:\tis not set (required for HAL)\n"
75 check_extra_config
76 }
77
78 function check_inotify() {
79 local CONFIG_CHECK="~INOTIFY_USER"
80 local WARNING_INOTIFY_USER="CONFIG_INOTIFY_USER:\tis not set (required for HAL)\n"
81 check_extra_config
82 }
83
84 function check_acpi_proc() {
85 local CONFIG_CHECK="~ACPI_PROCFS ~ACPI_PROC_EVENT"
86 local WARNING_ACPI_PROCFS="CONFIG_ACPI_PROCFS:\tis not set (required for HAL)\n"
87 local WARNING_ACPI_PROC_EVENT="CONFIG_ACPI_PROC_EVENT:\tis not set (required for HAL)\n"
88 check_extra_config
89 }
90
91 pkg_setup() {
92 if use kernel_linux ; then
93 if [[ -e "${ROOT}/usr/src/linux/.config" ]] ; then
94 kernel_is ge 2 6 19 || ewarn "HAL requires a kernel version 2.6.19 or newer"
95
96 if kernel_is lt 2 6 23 && use acpi ; then
97 check_acpi_proc
98 fi
99 fi
100
101 check_hotplug_net
102 check_inotify
103 fi
104
105 # http://devmanual.gentoo.org/ebuild-writing/functions/
106 # http://bugs.gentoo.org/show_bug.cgi?id=191605
107
108 # Create groups for hotplugging and HAL
109 enewgroup haldaemon
110 enewgroup plugdev
111
112 # HAL drops priviledges by default now ...
113 # ... so we must make sure it can read disk/cdrom info (ie. be in ${HALDAEMON_GROUPS} groups)
114 if use kernel_linux; then
115 enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_LINUX}
116 elif use kernel_FreeBSD; then
117 enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_FREEBSD}
118 fi
119
120 # Make sure that the haldaemon user is in the ${HALDAEMON_GROUPS}
121 # If users have a problem with this, let them file a bug
122 if [[ ${ROOT} == / ]] ; then
123 if use kernel_linux; then
124 usermod -G ${HALDAEMON_GROUPS_LINUX} haldaemon
125 elif use kernel_FreeBSD; then
126 pw usermod haldaemon -G ${HALDAEMON_GROUPS_FREEBSD}
127 fi
128 fi
129 }
130
131 src_prepare() {
132 # Only apply one of the policy patches. Bug #267042
133 if use policykit ; then
134 rm "${WORKDIR}/${PATCHNAME}/patches/0001-plugdev-dbus-policy.patch"
135 else
136 rm "${WORKDIR}/${PATCHNAME}/patches/0002-policykit-dbus-policy.patch"
137 fi
138
139 EPATCH_MULTI_MSG="Applying Gentoo Patchset ..." \
140 EPATCH_SUFFIX="patch" \
141 EPATCH_SOURCE="${WORKDIR}/${PATCHNAME}/patches/" \
142 EPATCH_FORCE="yes" \
143 epatch
144
145 eautoreconf
146 }
147
148 src_configure() {
149 local acpi="$(use_enable acpi)"
150 local backend=
151 local hardware=
152 local consolekit="$(use_enable consolekit console-kit)"
153
154 append-flags -rdynamic
155
156 if use kernel_linux ; then
157 backend="linux"
158 elif use kernel_FreeBSD ; then
159 backend="freebsd"
160 else
161 eerror "Invalid backend"
162 fi
163
164 if use kernel_linux ; then
165 if use acpi ; then
166 # Using IBM ACPI and Toshiba ACPI results in double notification as this
167 # was merged into the Linux Kernel 2.6.22
168 if kernel_is lt 2 6 22 ; then
169 acpi="$acpi --enable-acpi-ibm --enable-acpi-toshiba"
170 else
171 acpi="$acpi --disable-acpi-ibm --disable-acpi-toshiba"
172 fi
173
174 acpi="$acpi --enable-acpi-proc --enable-acpi-acpid"
175 else
176 acpi="$acpi --disable-acpi-ibm --disable-acpi-toshiba"
177 acpi="$acpi --disable-acpi-proc --disable-acpi-acpid"
178 fi
179
180 hardware="--with-cpufreq --with-usb-csr --with-keymaps"
181 use arm && hardware="$hardware --with-omap --enable-pmu"
182 use ppc && hardware="$hardware --enable-pmu"
183 if use x86 || use amd64; then
184 hardware="$hardware --with-macbook --with-macbookpro"
185 fi
186
187 if use dell ; then
188 hardware="$hardware --with-dell-backlight"
189 else
190 hardware="$hardware --without-dell-backlight"
191 fi
192
193 hardware="$hardware --enable-sonypic"
194 else
195 hardware="--without-cpufreq --without-usb-csr --without-keymaps"
196 hardware="$hardware --without-omap"
197 hardware="$hardware --without-dell-backlight"
198 hardware="$hardware --enable-acpi-ibm --enable-acpi-toshiba"
199 hardware="$hardware --disable-sonypic"
200 fi
201
202 # Policykit support depends on consolekit support. Therefore, force on
203 # consolekit, even if it's USE flag is off, if policykit support is on.
204 # This enables packages to USE-depend on hal[policykit?]
205 if use policykit ; then
206 consolekit="--enable-console-kit"
207 fi
208
209 econf --with-backend=${backend} \
210 --with-os-type=gentoo \
211 --with-pid-file=/var/run/hald.pid \
212 --with-hwdata=/usr/share/misc \
213 --with-socket-dir=/var/run/hald \
214 --with-udev-prefix=/etc \
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