/[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.4 - (hide annotations) (download)
Thu Jun 14 20:59:38 2007 UTC (7 years, 1 month ago) by cardoe
Branch: MAIN
Changes since 1.3: +2 -1 lines
fix make test. bug #176535
(Portage version: 2.1.2.9)

1 cardoe 1.1 # Copyright 1999-2007 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 cardoe 1.4 # $Header: /var/cvsroot/gentoo-x86/sys-apps/hal/hal-0.5.9-r1.ebuild,v 1.3 2007/05/07 16:18:33 chainsaw 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 cardoe 1.4 epatch ${FILESDIR}/${PV}/98_hald_cache_test_path.patch
138 cardoe 1.1
139     eautoreconf
140     }
141    
142     src_compile() {
143     local backend=""
144     local acpi=""
145    
146     # TODO :: policykit should have a pam useflag
147     append-flags -rdynamic
148    
149     if use kernel_linux ; then
150     backend="linux"
151     use acpi && acpi="--enable-acpi-toshiba --enable-acpi-ibm"
152     elif use kernel_FreeBSD ; then
153     backend="freebsd"
154     else
155     eerror "Invalid backend"
156     fi
157    
158     if ! use acpi ; then
159     acpi="--disable-acpi-proc --disable-acpi-acpid"
160     fi
161    
162     econf --disable-policy-kit \
163     --with-doc-dir=/usr/share/doc/${PF} \
164     --with-os-type=gentoo \
165     --with-pid-file=/var/run/hald.pid \
166     --with-socket-dir=/var/run/hald \
167     --with-hwdata=/usr/share/misc \
168     --enable-hotplug-map \
169     --enable-man-pages \
170     --with-backend=${backend} \
171     $(use_enable debug verbose-mode) \
172     $(use_with dell dell-backlight) \
173     $(use_enable disk-partition parted) \
174     $(use_enable pcmcia pcmcia-support) \
175     $(use_enable doc docbook-docs) \
176     $(use_enable doc doxygen-docs) \
177     $(use_enable selinux) \
178     --disable-console-kit \
179     ${acpi} \
180     || die "configure failed"
181     #$(use_enable pam console-kit)
182    
183     emake || die "make failed"
184     }
185    
186     src_install() {
187     make DESTDIR="${D}" install || die
188     dodoc AUTHORS ChangeLog NEWS README
189    
190     # remove dep on gnome-python
191     mv "${D}"/usr/bin/hal-device-manager "${D}"/usr/share/hal/device-manager/
192    
193     # hal umount for unclean unmounts
194     exeinto /lib/udev/
195     newexe "${FILESDIR}"/hal-unmount.dev hal_unmount
196    
197     # initscript
198     newinitd "${FILESDIR}"/0.5.9-hald.rc hald
199     cp "${FILESDIR}"/0.5.9-hald.conf "${WORKDIR}"/
200     # if use pam; then
201     # sed -e 's:RC_NEED="":RC_NEED="consolekit":' -i "${WORKDIR}"/0.5.9-hald.conf
202     # fi
203     if use debug; then
204     sed -e 's:HALD_VERBOSE="no":HALD_VERBOSE="yes":' \
205     -i "${WORKDIR}"/0.5.9-hald.conf
206     fi
207     newconfd "${WORKDIR}"/0.5.9-hald.conf hald
208    
209     # We now create and keep /media here as both gnome-mount and pmount
210     # use these directories, to avoid collision.
211     keepdir /media
212    
213     # We also need to create and keep /etc/fdi/{information,policy,preprobe}
214     # or else hal bombs.
215     keepdir /etc/hal/fdi/{information,policy,preprobe}
216    
217     # HAL stores it's fdi cache in /var/lib/cache/hald
218     keepdir /var/lib/cache/hald
219    
220     # HAL keeps its unix socket here
221     keepdir /var/run/hald
222     }
223    
224     pkg_postinst() {
225     # Despite what people keep changing this location. Either one works.. it doesn't matter
226     # http://dev.gentoo.org/~plasmaroo/devmanual/ebuild-writing/functions/
227    
228     # Create groups for hotplugging and HAL
229     enewgroup haldaemon || die "Problem adding haldaemon group"
230     enewgroup plugdev || die "Problem adding plugdev group"
231    
232     # HAL drops priviledges by default now ...
233     # ... so we must make sure it can read disk/cdrom info (ie. be in ${HALDAEMON_GROUPS} groups)
234     if use kernel_linux; then
235     enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_LINUX} \
236     || die "Problem adding haldaemon user"
237     elif use kernel_FreeBSD; then
238     enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_FREEBSD} \
239     || die "Problem addding haldaemon user"
240     fi
241    
242     # Make sure that the haldaemon user is in the ${HALDAEMON_GROUPS}
243     # If users have a problem with this, let them file a bug
244     if [[ ${ROOT} == / ]] ; then
245     if use kernel_linux; then
246     usermod -G ${HALDAEMON_GROUPS_LINUX} haldaemon
247     elif use kernel_FreeBSD; then
248     pw usermod haldaemon -G ${HALDAEMON_GROUPS_FREEBSD}
249     fi
250     fi
251    
252     elog "The HAL daemon needs to be running for certain applications to"
253     elog "work. Suggested is to add the init script to your start-up"
254     elog "scripts, this should be done like this :"
255     elog "\`rc-update add hald default\`"
256     echo
257     elog "Looking for automounting support? Add yourself to the plugdev group"
258     }

  ViewVC Help
Powered by ViewVC 1.1.20