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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download)
Mon May 7 16:18:33 2007 UTC (7 years, 5 months ago) by chainsaw
Branch: MAIN
Changes since 1.2: +2 -2 lines
Remove PPC64 keywords for 0.5.9 & 0.5.9-r1 as these fail to start on PPC64, bug #176380.
(Portage version: 2.1.2.7)

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

  ViewVC Help
Powered by ViewVC 1.1.20