summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Goldstein <cardoe@gentoo.org>2007-01-31 15:53:38 +0000
committerDoug Goldstein <cardoe@gentoo.org>2007-01-31 15:53:38 +0000
commit201fa01ff1ad04c76bde61decb5e3c2d8ca3beaa (patch)
tree1dfbcd3f3dc5342c24de7adaf0693a2f19a8c254 /media-libs/libgphoto2
parentSign Manfiest (diff)
downloadgentoo-2-201fa01ff1ad04c76bde61decb5e3c2d8ca3beaa.tar.gz
gentoo-2-201fa01ff1ad04c76bde61decb5e3c2d8ca3beaa.tar.bz2
gentoo-2-201fa01ff1ad04c76bde61decb5e3c2d8ca3beaa.zip
Fix for generating udev rules properly. Rather then recursive it just changes the device. Also don't accidentally match on VendorID=0.
(Portage version: 2.1.2-r5)
Diffstat (limited to 'media-libs/libgphoto2')
-rw-r--r--media-libs/libgphoto2/ChangeLog9
-rw-r--r--media-libs/libgphoto2/files/digest-libgphoto2-2.3.1-r23
-rw-r--r--media-libs/libgphoto2/files/libgphoto2-2.3.1-udev-rules-fix.diff29
-rw-r--r--media-libs/libgphoto2/libgphoto2-2.3.1-r2.ebuild156
4 files changed, 196 insertions, 1 deletions
diff --git a/media-libs/libgphoto2/ChangeLog b/media-libs/libgphoto2/ChangeLog
index 64468bc0684a..031c0cd431ac 100644
--- a/media-libs/libgphoto2/ChangeLog
+++ b/media-libs/libgphoto2/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for media-libs/libgphoto2
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/libgphoto2/ChangeLog,v 1.90 2007/01/30 19:57:28 alonbl Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/libgphoto2/ChangeLog,v 1.91 2007/01/31 15:53:38 cardoe Exp $
+
+*libgphoto2-2.3.1-r2 (31 Jan 2007)
+
+ 31 Jan 2007; Doug Goldstein <cardoe@gentoo.org>
+ +files/libgphoto2-2.3.1-udev-rules-fix.diff, +libgphoto2-2.3.1-r2.ebuild:
+ Fix for generating udev rules properly. Rather then recursive it just
+ changes the device. Also don't accidentally match on VendorID=0.
30 Jan 2007; Alon Bar-Lev <alonbl@gentoo.org> libgphoto2-2.3.1-r1.ebuild:
Fix an issue with gtk-doc installed, bug#164530
diff --git a/media-libs/libgphoto2/files/digest-libgphoto2-2.3.1-r2 b/media-libs/libgphoto2/files/digest-libgphoto2-2.3.1-r2
new file mode 100644
index 000000000000..770cf01bd000
--- /dev/null
+++ b/media-libs/libgphoto2/files/digest-libgphoto2-2.3.1-r2
@@ -0,0 +1,3 @@
+MD5 37f85e34e5b6031ddf6cac8b8782ac4f libgphoto2-2.3.1.tar.bz2 3230934
+RMD160 ab678a5006a89ef1fe9f052dac1f9738961cc3a8 libgphoto2-2.3.1.tar.bz2 3230934
+SHA256 b56433ae44e593ea0c55dd4ad69074e59151920f266dc646c1dc7e80ebe3b727 libgphoto2-2.3.1.tar.bz2 3230934
diff --git a/media-libs/libgphoto2/files/libgphoto2-2.3.1-udev-rules-fix.diff b/media-libs/libgphoto2/files/libgphoto2-2.3.1-udev-rules-fix.diff
new file mode 100644
index 000000000000..675855877d7c
--- /dev/null
+++ b/media-libs/libgphoto2/files/libgphoto2-2.3.1-udev-rules-fix.diff
@@ -0,0 +1,29 @@
+diff -Nur libgphoto2-2.3.1/packaging/generic/print-camera-list.c libgphoto2-2.3.1-udev-fix/packaging/generic/print-camera-list.c
+--- libgphoto2-2.3.1/packaging/generic/print-camera-list.c 2006-12-24 10:16:19.000000000 -0500
++++ libgphoto2-2.3.1-udev-fix/packaging/generic/print-camera-list.c 2007-01-31 10:39:12.000000000 -0500
+@@ -299,7 +299,7 @@
+ /* Note: 2 lines because we need to use || ... having them on the same
+ * line would mean &&.
+ */
+- printf ("SUBSYSTEM!=\"usb*\", GOTO=\"libgphoto2_rules_end\"\n");
++ printf ("SUBSYSTEM!=\"usb_device\", GOTO=\"libgphoto2_rules_end\"\n");
+ printf ("ACTION!=\"add\", GOTO=\"libgphoto2_rules_end\"\n\n");
+ return 0;
+ }
+@@ -479,9 +479,14 @@
+ else
+ fprintf(stderr,"unhandled interface match flags %x\n", flags);
+ }
+- } else {
+- printf ("ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ",
++ } else if (flags & GP_USB_HOTPLUG_MATCH_VENDOR_ID) {
++
++ printf ("ATTR{idVendor}==\"%04x\", ATTR{idProduct}==\"%04x\", ",
+ a->usb_vendor, a->usb_product);
++ } else {
++ fprintf(stderr, "Attempted to output rule for Camera: \"%s\" , Vendor: \"%04x\" , Product: \"%04x\"",
++ a->model, a->usb_vendor, a->usb_product);
++ return 0;
+ }
+ if ((*params->argv)[1] == NULL) {
+ const char *hotplug_script = ((*params->argv)[0] != NULL)
diff --git a/media-libs/libgphoto2/libgphoto2-2.3.1-r2.ebuild b/media-libs/libgphoto2/libgphoto2-2.3.1-r2.ebuild
new file mode 100644
index 000000000000..d84853de3acd
--- /dev/null
+++ b/media-libs/libgphoto2/libgphoto2-2.3.1-r2.ebuild
@@ -0,0 +1,156 @@
+# 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-r2.ebuild,v 1.1 2007/01/31 15:53:38 cardoe 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
+# 3. Track upstream bug regarding rpm usage.
+# http://sourceforge.net/tracker/index.php?func=detail&aid=1643813&group_id=8874&atid=358874
+
+inherit eutils
+
+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 cards will be compiled.
+# If you want to only compile for specific card(s), set CAMERAS
+# environment to a comma-separated list (no spaces) 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="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 )"
+
+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-fix.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/lib/udev" "${D}/lib"
+ # 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 ${ROOT}/usr/$(get_libdir)/libgphoto2/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."
+}
+