/[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.20 - (hide annotations) (download)
Wed Feb 20 02:49:13 2008 UTC (6 years, 5 months ago) by wolf31o2
Branch: MAIN
Changes since 1.19: +9 -8 lines
I hate blank spaces in output for no reason, so switching from using echo to using an extra \n at the end of the line.
(Portage version: 2.1.4.4)

1 wolf31o2 1.19 # Copyright 1999-2008 Gentoo Foundation
2 cardoe 1.1 # Distributed under the terms of the GNU General Public License v2
3 wolf31o2 1.20 # $Header: /var/cvsroot/gentoo-x86/sys-apps/hal/hal-0.5.9-r1.ebuild,v 1.19 2008/02/08 20:11:00 wolf31o2 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 wolf31o2 1.19 function check_hotplug_net() {
54     local CONFIG_CHECK="~HOTPLUG ~NET"
55 wolf31o2 1.20 local WARNING_HOTPLUG="CONFIG_HOTPLUG:\tis not set (required for HAL)
56     "
57     local WARNING_NET="CONFIG_NET:\tis not set (required for HAL)
58     "
59 wolf31o2 1.19 check_extra_config
60 cardoe 1.1 }
61    
62 wolf31o2 1.19 function check_inotify() {
63     local CONFIG_CHECK="~INOTIFY_USER"
64 wolf31o2 1.20 local WARNING_INOTIFY_USER="CONFIG_INOTIFY_USER:\tis not set (required for HAL)
65     "
66 wolf31o2 1.19 check_extra_config
67 cardoe 1.1 }
68    
69 wolf31o2 1.19 function check_procfs() {
70     local CONFIG_CHECK="~PROC_FS"
71 wolf31o2 1.20 local WARNING_PROC_FS="CONFIG_PROC_FS:\tis not set (required for HAL)
72     "
73 wolf31o2 1.19 check_extra_config
74 cardoe 1.1 }
75    
76     pkg_setup() {
77 wolf31o2 1.19 if ! built_with_use --missing true sys-apps/pciutils hal ; then
78 vapier 1.15 if built_with_use --missing false sys-apps/pciutils zlib ; then
79     die "You MUST build sys-apps/pciutils without the zlib USE flag"
80     fi
81 cardoe 1.1 fi
82    
83 wolf31o2 1.19 if use kernel_linux ; then
84     if [ -e ${ROOT}/usr/src/linux/.config ] ; then
85     kernel_is ge 2 6 17 || \
86     ewarn "HAL requires a kernel version 2.6.17 or newer"
87 cardoe 1.1 fi
88    
89 wolf31o2 1.19 check_hotplug_net
90     check_inotify
91     use acpi && check_procfs
92 cardoe 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 compnerd 1.18 cd "${S}"
106 cardoe 1.1
107     # Patches accepted upstream
108 compnerd 1.18 epatch "${FILESDIR}/${PV}/01_luks_mount_fix.patch"
109     epatch "${FILESDIR}/${PV}/02_acpi_repeated_property_change.patch"
110     epatch "${FILESDIR}/${PV}/03_crasher_fix_fail_to_return_value.patch"
111     epatch "${FILESDIR}/${PV}/04_cache_regen_return_fix.patch"
112     epatch "${FILESDIR}/${PV}/05_freebsd_partutil_make_fix.patch"
113     epatch "${FILESDIR}/${PV}/06_freebsd_backend_fix.patch"
114     epatch "${FILESDIR}/${PV}/07_malloc_h_for_stdlib_h.patch"
115     epatch "${FILESDIR}/${PV}/08_contains_not_fdi_directive.patch"
116     epatch "${FILESDIR}/${PV}/09_hald_addon_keyboard_start_one.patch"
117     epatch "${FILESDIR}/${PV}/10_freebsd_storage_reprobe_fix.patch"
118     epatch "${FILESDIR}/${PV}/11_hal_fix_segfault_probe_volume.patch"
119     epatch "${FILESDIR}/${PV}/12_hal_fix-vol_label_probe_volume.patch"
120     epatch "${FILESDIR}/${PV}/13_detect_newer_macbooks.patch"
121     epatch "${FILESDIR}/${PV}/14_ntfs_allows_utf8.patch"
122     epatch "${FILESDIR}/${PV}/15_spec_fdi_matching.patch"
123     epatch "${FILESDIR}/${PV}/16_dev_root_is_mounted.patch"
124     epatch "${FILESDIR}/${PV}/18_hal_fix_info.category_for_laptop_panel_v2.patch"
125     epatch "${FILESDIR}/${PV}/19_hald_runner_catch_dbus_disconnect.patch"
126 cardoe 1.1
127     # Gentoo patchset
128 compnerd 1.18 epatch "${FILESDIR}/${PV}/95_gentoo_man_page.patch"
129     epatch "${FILESDIR}/${PV}/96_plugdev_allow_send.patch"
130     epatch "${FILESDIR}/${PV}/97_ignore_fixed_drives.patch"
131     epatch "${FILESDIR}/${PV}/98_hald_cache_test_path.patch"
132 cardoe 1.1
133     eautoreconf
134     }
135    
136     src_compile() {
137     local backend=""
138     local acpi=""
139    
140     # TODO :: policykit should have a pam useflag
141     append-flags -rdynamic
142    
143     if use kernel_linux ; then
144     backend="linux"
145     use acpi && acpi="--enable-acpi-toshiba --enable-acpi-ibm"
146     elif use kernel_FreeBSD ; then
147     backend="freebsd"
148     else
149     eerror "Invalid backend"
150     fi
151    
152     if ! use acpi ; then
153     acpi="--disable-acpi-proc --disable-acpi-acpid"
154     fi
155    
156     econf --disable-policy-kit \
157 cardoe 1.9 --docdir=/usr/share/doc/${PF} \
158 cardoe 1.1 --with-os-type=gentoo \
159     --with-pid-file=/var/run/hald.pid \
160     --with-socket-dir=/var/run/hald \
161     --with-hwdata=/usr/share/misc \
162     --enable-hotplug-map \
163     --enable-man-pages \
164     --with-backend=${backend} \
165     $(use_enable debug verbose-mode) \
166     $(use_with dell dell-backlight) \
167     $(use_enable disk-partition parted) \
168     $(use_enable pcmcia pcmcia-support) \
169     $(use_enable doc docbook-docs) \
170     $(use_enable doc doxygen-docs) \
171     $(use_enable selinux) \
172     --disable-console-kit \
173     ${acpi} \
174     || die "configure failed"
175     #$(use_enable pam console-kit)
176    
177     emake || die "make failed"
178     }
179    
180     src_install() {
181     make DESTDIR="${D}" install || die
182     dodoc AUTHORS ChangeLog NEWS README
183    
184     # remove dep on gnome-python
185     mv "${D}"/usr/bin/hal-device-manager "${D}"/usr/share/hal/device-manager/
186    
187     # hal umount for unclean unmounts
188     exeinto /lib/udev/
189     newexe "${FILESDIR}"/hal-unmount.dev hal_unmount
190    
191     # initscript
192     newinitd "${FILESDIR}"/0.5.9-hald.rc hald
193     cp "${FILESDIR}"/0.5.9-hald.conf "${WORKDIR}"/
194     # if use pam; then
195     # sed -e 's:RC_NEED="":RC_NEED="consolekit":' -i "${WORKDIR}"/0.5.9-hald.conf
196     # fi
197     if use debug; then
198     sed -e 's:HALD_VERBOSE="no":HALD_VERBOSE="yes":' \
199     -i "${WORKDIR}"/0.5.9-hald.conf
200     fi
201     newconfd "${WORKDIR}"/0.5.9-hald.conf hald
202    
203     # We now create and keep /media here as both gnome-mount and pmount
204     # use these directories, to avoid collision.
205     keepdir /media
206    
207     # We also need to create and keep /etc/fdi/{information,policy,preprobe}
208     # or else hal bombs.
209     keepdir /etc/hal/fdi/{information,policy,preprobe}
210    
211     # HAL stores it's fdi cache in /var/lib/cache/hald
212     keepdir /var/lib/cache/hald
213    
214     # HAL keeps its unix socket here
215     keepdir /var/run/hald
216     }
217    
218     pkg_postinst() {
219     # Despite what people keep changing this location. Either one works.. it doesn't matter
220     # http://dev.gentoo.org/~plasmaroo/devmanual/ebuild-writing/functions/
221    
222     # Create groups for hotplugging and HAL
223     enewgroup haldaemon || die "Problem adding haldaemon group"
224     enewgroup plugdev || die "Problem adding plugdev group"
225    
226     # HAL drops priviledges by default now ...
227     # ... so we must make sure it can read disk/cdrom info (ie. be in ${HALDAEMON_GROUPS} groups)
228     if use kernel_linux; then
229     enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_LINUX} \
230     || die "Problem adding haldaemon user"
231     elif use kernel_FreeBSD; then
232     enewuser haldaemon -1 "-1" /dev/null ${HALDAEMON_GROUPS_FREEBSD} \
233     || die "Problem addding haldaemon user"
234     fi
235    
236     # Make sure that the haldaemon user is in the ${HALDAEMON_GROUPS}
237     # If users have a problem with this, let them file a bug
238     if [[ ${ROOT} == / ]] ; then
239     if use kernel_linux; then
240     usermod -G ${HALDAEMON_GROUPS_LINUX} haldaemon
241     elif use kernel_FreeBSD; then
242     pw usermod haldaemon -G ${HALDAEMON_GROUPS_FREEBSD}
243     fi
244     fi
245    
246     elog "The HAL daemon needs to be running for certain applications to"
247     elog "work. Suggested is to add the init script to your start-up"
248     elog "scripts, this should be done like this :"
249     elog "\`rc-update add hald default\`"
250     echo
251     elog "Looking for automounting support? Add yourself to the plugdev group"
252     }

  ViewVC Help
Powered by ViewVC 1.1.20