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

Contents of /sys-apps/hal/hal-0.5.11-r6.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Tue Jan 6 13:43:59 2009 UTC (5 years, 9 months ago) by chainsaw
Branch: MAIN
Bad interactions between the ARM & PPC setup meant the PMU was enabled/disabled twice. Avoid by using hardware variable instead of use_enable for PMU.
(Portage version: 2.1.6.4/cvs/Linux 2.6.28-06127-g238c6d5-dirty x86_64)

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

  ViewVC Help
Powered by ViewVC 1.1.20