diff options
author | Doug Goldstein <cardoe@gentoo.org> | 2007-01-31 15:53:38 +0000 |
---|---|---|
committer | Doug Goldstein <cardoe@gentoo.org> | 2007-01-31 15:53:38 +0000 |
commit | 201fa01ff1ad04c76bde61decb5e3c2d8ca3beaa (patch) | |
tree | 1dfbcd3f3dc5342c24de7adaf0693a2f19a8c254 /media-libs/libgphoto2 | |
parent | Sign Manfiest (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | media-libs/libgphoto2/files/digest-libgphoto2-2.3.1-r2 | 3 | ||||
-rw-r--r-- | media-libs/libgphoto2/files/libgphoto2-2.3.1-udev-rules-fix.diff | 29 | ||||
-rw-r--r-- | media-libs/libgphoto2/libgphoto2-2.3.1-r2.ebuild | 156 |
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." +} + |