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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.18 - (hide annotations) (download)
Thu Apr 12 16:43:50 2007 UTC (7 years, 5 months ago) by cardoe
Branch: MAIN
Changes since 1.17: +15 -4 lines
haldaemon groups tweak for FreeBSD
(Portage version: 2.1.2.3)

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

  ViewVC Help
Powered by ViewVC 1.1.20