/[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.17 - (hide annotations) (download)
Fri Aug 31 14:19:51 2007 UTC (6 years, 10 months ago) by cardoe
Branch: MAIN
Changes since 1.16: +2 -3 lines
change libparted depend as suggested by agaffney in bug #190860
(Portage version: 2.1.3.7)

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

  ViewVC Help
Powered by ViewVC 1.1.20