blob: 7eebd1f627634b62c0bfb7b95f236fe6a4ce08ff (
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/libgphoto2/libgphoto2-2.3.1-r5.ebuild,v 1.1 2007/08/18 15:28:04 zzam Exp $
# TODO
# 1. Track upstream bug --disable-docs does not work.
# http://sourceforge.net/tracker/index.php?func=detail&aid=1643870&group_id=8874&atid=108874
# 2. Track upstream bug udevscriptdir does not work.
# http://sourceforge.net/tracker/index.php?func=detail&aid=1646520&group_id=8874&atid=108874
# http://sourceforge.net/tracker/index.php?func=detail&aid=1648346&group_id=8874&atid=108874
# 3. Track upstream bug regarding rpm usage.
# http://sourceforge.net/tracker/index.php?func=detail&aid=1643813&group_id=8874&atid=358874
inherit eutils multilib
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="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
IUSE="nls doc exif hal kernel_linux"
RESTRICT="test"
# By default, drivers for all supported cameras will be compiled.
# If you want to only compile for specific camera(s), set CAMERAS
# environment to a space-separated list (no commas) of drivers that
# you want to build.
IUSE_CAMERAS="adc65 agfa-cl20 aox barbie canon casio clicksmart310 digigr8 digita
dimera directory enigma13 fuji gsmart300 hp215 iclick jamcam jd11 kodak
konica largan lg_gsm mars minolta mustek panasonic pccam300 pccam600
polaroid ptp2 ricoh samsung sierra sipix smal sonix sonydscf1 sonydscf55
soundvision spca50x sq905 stv0674 stv0680 sx330z template toshiba"
for camera in ${IUSE_CAMERAS}; do
IUSE="${IUSE} cameras_${camera}"
done
RDEPEND=">=dev-libs/libusb-0.1.8
exif? ( >=media-libs/libexif-0.5.9 )
hal? ( >=sys-apps/hal-0.5 )
sys-devel/libtool"
DEPEND="${RDEPEND}
dev-util/pkgconfig
doc? ( app-doc/doxygen )"
RDEPEND="${RDEPEND}
!<sys-fs/udev-114"
pkg_setup() {
if ! echo "${USE}" | grep "cameras_" > /dev/null 2>&1; then
einfo "libgphoto2 supports: all ${IUSE_CAMERAS}"
einfo "All camera drivers will be built since you did not specify"
einfo "via the CAMERAS variable what camera you use."
ewarn "NOTICE: Upstream will not support you if you do not compile all camera drivers first"
fi
enewgroup plugdev || die "Error creating plugdev group"
}
src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}/${P}-rpm.patch"
# Fix for udev >= 098 rules generation
epatch "${FILESDIR}"/${P}-udev-rules-fix3.diff
}
src_compile() {
local cameras
local cam
for cam in ${IUSE_CAMERAS} ; do
use "cameras_${cam}" && cameras="${cameras},${cam}"
done
[ -z "${cameras}" ] \
&& cameras="all" \
|| cameras="${cameras:1}"
einfo "Enabled camera drivers: ${cameras}"
[ "${cameras}" != "all" ] && \
ewarn "Upstream will not support you if you do not compile all camera drivers first"
CFLAGS="${CFLAGS} -DCANON_EXPERIMENTAL_20D"
local myconf
use exif \
&& myconf="${myconf} --with-exif-prefix=/usr" \
|| myconf="${myconf} --without-exif"
econf \
--with-drivers=${cameras} \
--with-doc-dir=/usr/share/doc/${PF} \
--with-html-dir=/usr/share/doc/${PF}/html \
--with-hotplug-doc-dir=/usr/share/doc/${PF}/hotplug \
$(use_enable nls) \
--with-rpmbuild=/bin/true \
--disable-docs \
udevscriptdir=/lib/udev \
GTKDOC=/bin/true \
${myconf} || die "econf failed"
# $(use_enable doc docs) \ TODO
emake || die "make failed"
}
src_install() {
emake DESTDIR=${D} install || die "install failed"
# fixup autoconf bug TODO
if ! use doc && [ -d ${D}/usr/share/doc/${PF}/apidocs.html ]; then
rm -fr "${D}/usr/share/doc/${PF}/apidocs.html"
fi
# end fixup
# fixup udevscriptdir is not working TODO
dodir /lib
mv "${D}/usr/$(get_libdir)/udev" "${D}/lib" || die "Moving udev-helper files failed."
# end fixup
dodoc ChangeLog NEWS* README AUTHORS TESTERS MAINTAINERS HACKING
HAL_FDI="/usr/share/hal/fdi/information/10freedesktop/10-camera-libgphoto2.fdi"
UDEV_RULES="/etc/udev/rules.d/99-libgphoto2.rules"
if [ -x ${D}/usr/$(get_libdir)/libgphoto2/print-camera-list ]; then
# Let print-camera-list find libgphoto2.so
export LD_LIBRARY_PATH="${D}/usr/$(get_libdir)"
# Let libgphoto2 find its camera-modules
export CAMLIBS="${D}/usr/$(get_libdir)/libgphoto2/${PV}"
if use hal; then
einfo "Generating HAL FDI files ..."
mkdir -p ${D}/${HAL_FDI%/*}
${D}/usr/$(get_libdir)/libgphoto2/print-camera-list hal-fdi >> ${D}/${HAL_FDI} \
|| die "failed to create hal-fdi"
fi
einfo "Generating UDEV-rules ..."
mkdir -p ${D}/${UDEV_RULES%/*}
${D}/usr/$(get_libdir)/libgphoto2/print-camera-list \
udev-rules-0.98 group plugdev mode 0660 >> ${D}/${UDEV_RULES} \
|| die "failed to create udev-rules"
else
eerror "Unable to find print-camera-list"
eerror "and therefore unable to generate hotplug usermap or HAL FDI files."
eerror "You will have to manually generate it by running:"
eerror " /usr/$(get_libdir)/libgphoto2/print-camera-list udev-rules-0.98 group plugdev mode 0660 > ${UDEV_RULES}"
eerror " /usr/$(get_libdir)/libgphoto2/print-camera-list hal-fdi > ${HAL_FDI}"
fi
}
pkg_postinst() {
elog "Don't forget to add yourself to the plugdev group "
elog "if you want to be able to access your camera."
}
|