/[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.18 - (hide annotations) (download)
Fri Nov 23 06:43:51 2007 UTC (6 years, 9 months ago) by compnerd
Branch: MAIN
Changes since 1.17: +24 -24 lines
fix quoting issues
(Portage version: 2.1.3.16)

1 cardoe 1.1 # Copyright 1999-2007 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 compnerd 1.18 # $Header: /var/cvsroot/gentoo-x86/sys-apps/hal/hal-0.5.9-r1.ebuild,v 1.17 2007/08/31 14:19:51 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 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 compnerd 1.18 cd "${S}"
117 cardoe 1.1
118     # Patches accepted upstream
119 compnerd 1.18 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 cardoe 1.1
138     # Gentoo patchset
139 compnerd 1.18 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     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