summaryrefslogtreecommitdiff
blob: 1faca221e75e67886c1c6999df0d609e326d2f76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/libgphoto2/libgphoto2-2.1.4.ebuild,v 1.7 2004/05/06 06:29:34 leonardop Exp $

inherit libtool eutils

MAKEOPTS="${MAKEOPTS} -j1" # or the documentation fails.

DESCRIPTION="Library that implements support for numerous digital cameras."
HOMEPAGE="http://www.gphoto.org/"
SRC_URI="mirror://sourceforge/gphoto/${P}.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="x86 ~ppc sparc ~amd64 ~ia64"
IUSE="nls doc jpeg"

# needs >usbutils-0.11-r2 to avoid /usr/lib/libusb* 
# conflicts with dev-libs/libusb
RDEPEND=">=dev-libs/libusb-0.1.6
	>=sys-apps/usbutils-0.11-r2
	sys-apps/hotplug
	jpeg? ( >=media-libs/libexif-0.5.9 )"

DEPEND="${RDEPEND}
	dev-util/pkgconfig
	doc? ( dev-util/gtk-doc )"

# By default, drivers for all supported cards will be compiled.
# If you want to only compile for specific card(s), set GPHOTO_LIBS
# environment to a comma-separated list (no spaces) of drivers that 
# you want to build.
#
# For example:
#
#   env GPHOTO_LIBS='canon,ptp2' emerge libgphoto2
#
# drivers: agfa-cl20, barbie, canon, casio, digita, dimera,
#          directory, fuji, gsmart300, jamcam,
#          jd11, kodak, konica, mustek, largan,
#          minolta, panasonic, pccam300, pccam600,
#          polaroid, ptp2, ricoh, samsung, smal,
#          sierra, sipix, sonydscf1, sonydscf55,
#          soundvision, spca50x, sq905, stv0680, sx330z
#
[ -z "${GPHOTO_LIBS}" ] && GPHOTO_LIBS="all"


src_unpack() {
	unpack ${A}
	EPATCH_OPTS="-d ${S}" epatch ${FILESDIR}/${PN}-2.1.2-norpm.patch
	# Fix compilation under gcc-2.
	epatch ${FILESDIR}/${P}-gcc2_fixes.patch
}

src_compile() {
	elibtoolize

	local myconf

	myconf="--with-rpmbuild=/bin/false"

	myconf="--with-drivers=${GPHOTO_LIBS}"

	use jpeg \
		&& myconf="${myconf} --with-exif-prefix=/usr" \
		|| myconf="${myconf} --without-exif"

	myconf="${myconf} `use_enable nls`"
	myconf="${myconf} `use_enable doc docs`"

	econf ${myconf} || die "econf failed"
	emake || die "make failed"
}

src_install() {
	make DESTDIR=${D} \
		gphotodocdir=/usr/share/doc/${PF} \
		HTML_DIR=/usr/share/doc/${PF}/sgml \
		hotplugdocdir=/usr/share/doc/${PF}/linux-hotplug \
		install || die "install failed"

	# manually move apidocs
	if [ -n "`use doc`" ]; then
		dodir /usr/share/doc/${PF}/api
		mv ${D}/usr/share/doc/libgphoto2/html/api/* ${D}/usr/share/doc/${PF}/api/
		mv ${D}/usr/share/doc/libgphoto2_port/html/api/* ${D}/usr/share/doc/${PF}/api/
	fi
	rm -rf ${D}/usr/share/doc/libgphoto2
	rm -rf ${D}/usr/share/doc/libgphoto2_port

	dodoc ChangeLog NEWS* README AUTHORS TESTERS MAINTAINERS HACKING CHANGES

	# install hotplug support
	insinto /etc/hotplug/usb
	newins ${S}/packaging/linux-hotplug/usbcam.console usbcam
	chmod +x ${D}/etc/hotplug/usb/usbcam
}

pkg_postinst() {
	einfo "Generating usbcam-gphoto2.usermap .."
	HOTPLUG_USERMAP="/etc/hotplug/usb/usbcam-gphoto2.usermap"
	if [ -x ${ROOT}/usr/lib/libgphoto2/print-usb-usermap ]; then
		echo "# !!! DO NOT EDIT THIS FILE !!! This file is automatically generated." > ${ROOT}/${HOTPLUG_USERMAP}
		echo "# Put your custom entries in /etc/hotplug/usb/usbcam.usermap" >> ${ROOT}/${HOTPLUG_USERMAP}
		${ROOT}/usr/lib/libgphoto2/print-usb-usermap >> ${ROOT}/${HOTPLUG_USERMAP}
	else
		eerror "Unable to find ${ROOT}/usr/lib/libgphoto2/print-usb-usermap"
		eerror "and therefore unable to generate hotplug usermap."
		eerror "You will have to manually generate it by running:"
		eerror " /usr/lib/libgphoto2/print-usb-usermap > ${HOTPLUG_USERMAP}"
	fi
}