diff --git a/media-libs/libgphoto2/ChangeLog b/media-libs/libgphoto2/ChangeLog new file mode 100644 --- /dev/null +++ b/media-libs/libgphoto2/ChangeLog @@ -0,0 +1,9 @@ +# ChangeLog for media-libs/libgphoto2 +# Copyright 1999-2008 Nathan Brink; Distributed under the GPL v2 +# $Header: $ + +*libgphoto2-2.4.2 (16 December 2008) + + 16 Dec 2008; Nathan Phillip Brink +files/libgphoto2-2.4.2-listlen.patch +files/libgphoto2-2.4.0-rpm.patch +files/gphoto2-ixany.patch +ChangeLog +libgphoto2-2.4.2.ebuild: + Initial import of libgphoto2-2.4.2 from Gentoo's portage + Added files/libgphoto2-2.4.2-listlen.patch which multiplies the length of the list of files libgphoto2 can read from a camera by 16, from just 1024 which isn't enough for many cameras with merely 4GB of memory. diff --git a/media-libs/libgphoto2/Manifest b/media-libs/libgphoto2/Manifest new file mode 100644 --- /dev/null +++ b/media-libs/libgphoto2/Manifest @@ -0,0 +1,8 @@ +AUX gphoto2-ixany.patch 533 RMD160 84c48af39a8e843765816060656132a4dd467b22 SHA1 2021fdc650a29c0faef13d5feba91ba635fc3d00 SHA256 abaffc4911b4cc60b0df55ad7055a0a71b2b1d79390ba21a20dd9c911954ffca +AUX libgphoto2-2.4.0-rpm.patch 452 RMD160 694c3f602a6b20fbcd135586d69551e335328f84 SHA1 ebbee5e9c4a6c1659e6fe7278733ce9b1702d430 SHA256 39501ccdfc6c780b3aa6a105584b32e9e4a6ad7195a14a341210be9f2e871149 +AUX libgphoto2-2.4.2-listlen.patch 496 RMD160 118b51e590ec9cfe199709511fcc4184ccea88f0 SHA1 d1cc0ef8433d38dd310abcbfc2b1502bb4529bab SHA256 29ba82e5abd16c061a25dde0c6ae5f85879836d6bbe112d8c46651d727e43423 +DIST libgphoto2-2.4.2.tar.bz2 3444898 RMD160 3e5562fabdc67ec493248b4afc0853510da3a1c0 SHA1 bde7a9e78e4342878f11b493b53eca5b69107de9 SHA256 f319655b272186ad76ab73317b7e8c5e3b87d51c1265ce676f02e8c312745226 +EBUILD libgphoto2-2.4.2.ebuild 6117 RMD160 03b3d3910d804b07bb8d16c414cf1529be73ae95 SHA1 aa04d5f5eb9eaff007d6be7b3b90addeb75fd39d SHA256 8efa892177a7246d356731cf3ff9f9413c80bef7a98d6596dd5b7d60239c575f +MISC ChangeLog 629 RMD160 ab4f8e35e70f44f21cf2cda26590fd62162d5d47 SHA1 3129a975a9569579dde3399808dc9e962c3ac4fa SHA256 1d926a9c11568a41cd5a1f8607317d7d7142497cf80efc6b597ee50468ec047b +MISC ChangeLog~ 434 RMD160 1b3383b16252722a3511c18ece42bae78015ad53 SHA1 bc45c85184d852d4968cd8b5ff89ddd77fb0ab93 SHA256 6a92e5fafa60b4273543f78c337ce973f0a0702201e95fc4219a119bce5612db +MISC libgphoto2-2.4.2.ebuild~ 6069 RMD160 900ccf62ab3fe29a4a8126d02a94aa3d45ab9cf1 SHA1 2d076cfa907cfcc6e7b62668929425ffac101f21 SHA256 e020897b9016fa1984a8b9ec8d8d519825b124161bb654cc9fab0fceea5a0b14 diff --git a/media-libs/libgphoto2/files/gphoto2-ixany.patch b/media-libs/libgphoto2/files/gphoto2-ixany.patch new file mode 100644 --- /dev/null +++ b/media-libs/libgphoto2/files/gphoto2-ixany.patch @@ -0,0 +1,14 @@ +diff -up gphoto2-2.4.0/libgphoto2-2.4.0/libgphoto2_port/serial/unix.c.ixany gphoto2-2.4.0/libgphoto2-2.4.0/libgphoto2_port/serial/unix.c +--- libgphoto2-2.4.0/libgphoto2_port/serial/unix.c.ixany 2007-07-27 02:36:13.000000000 +0200 ++++ libgphoto2-2.4.0/libgphoto2_port/serial/unix.c 2008-02-25 06:40:40.000000000 +0100 +@@ -98,6 +98,10 @@ + + #define CHECK(result) {int r=(result); if (r<0) return (r);} + ++#ifndef IXANY ++#define IXANY 0004000 ++#endif ++ + /* Linux */ + #ifdef __linux__ + /* devfs is accounted for in the implementation */ diff --git a/media-libs/libgphoto2/files/libgphoto2-2.4.0-rpm.patch b/media-libs/libgphoto2/files/libgphoto2-2.4.0-rpm.patch new file mode 100644 --- /dev/null +++ b/media-libs/libgphoto2/files/libgphoto2-2.4.0-rpm.patch @@ -0,0 +1,11 @@ +--- configure.old 2007-09-24 22:21:16.000000000 +0200 ++++ configure 2007-09-24 22:21:27.000000000 +0200 +@@ -26609,7 +26609,7 @@ + # whether libusb-devel is installed or not defines whether the RPM + # packages we're going to build will depend on libusb and libusb-devel + # RPM packages or not. +- if rpm -q libusb-devel > /dev/null 2>&1; then ++ if false -q libusb-devel > /dev/null 2>&1; then + RPM_LIBUSB_DEVEL_TRUE= + RPM_LIBUSB_DEVEL_FALSE='#' + else diff --git a/media-libs/libgphoto2/files/libgphoto2-2.4.2-listlen.patch b/media-libs/libgphoto2/files/libgphoto2-2.4.2-listlen.patch new file mode 100644 --- /dev/null +++ b/media-libs/libgphoto2/files/libgphoto2-2.4.2-listlen.patch @@ -0,0 +1,14 @@ +diff -c /var/tmp/portage/media-libs/libgphoto2-2.4.2/work/libgphoto2-2.4.2/libgphoto2/gphoto2-list.c /tmp/buffer-content-11991_Fc +--- libgphoto2/gphoto2-list.c.orig 2007-07-27 01:52:55.000000000 -0400 ++++ libgphoto2/gphoto2-list.c 2008-12-16 16:33:58.000000000 -0500 +@@ -72,7 +72,7 @@ + + #ifdef CAMERALIST_STRUCT_COMPATIBILITY + +-#define MAX_ENTRIES 1024 ++#define MAX_ENTRIES 16384 + #define MAX_LIST_STRING_LENGTH 128 + struct _CameraList { + int count; + +Diff finished. Tue Dec 16 16:33:58 2008 diff --git a/media-libs/libgphoto2/libgphoto2-2.4.2.ebuild b/media-libs/libgphoto2/libgphoto2-2.4.2.ebuild new file mode 100644 --- /dev/null +++ b/media-libs/libgphoto2/libgphoto2-2.4.2.ebuild @@ -0,0 +1,186 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-libs/libgphoto2/libgphoto2-2.4.2.ebuild,v 1.2 2008/10/08 20:50:41 eva 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 +# 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 ~hppa ~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_qv clicksmart310 +digigr8 digita dimera3500 directory enigma13 fuji gsmart300 hp215 iclick +jamcam jd11 kodak_dc120 kodak_dc210 kodak_dc240 kodak_dc3200 kodak_ez200 +konica konica_qm150 largan lg_gsm mars dimagev mustek panasonic_coolshot +panasonic_l859 panasonic_dc1000 panasonic_dc1580 pccam300 pccam600 +polaroid_pdc320 polaroid_pdc640 polaroid_pdc700 ptp2 ricoh ricoh_g3 samsung +sierra sipix_blink sipix_blink2 sipix_web2 smal sonix sony_dscf1 sony_dscf55 +soundvision spca50x sq905 stv0674 stv0680 sx330z template toshiba_pdrm11 +topfield" + +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 )" +DEPEND="${RDEPEND} + dev-util/pkgconfig + sys-devel/flex + sys-devel/libtool + doc? ( app-doc/doxygen )" +# FIXME: gtk-doc is broken +# >=dev-util/gtk-doc-1.10 )" + +RDEPEND="${RDEPEND} + ! /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 + + if use cameras_template || use cameras_sipix_blink; then + einfo "Upstream considers sipix_blink & template driver as obsolete" + fi + + enewgroup plugdev || die "Error creating plugdev group" +} + +src_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}"/${PN}-2.4.0-rpm.patch + epatch "${FILESDIR}"/${PN}-2.4.2-listlen.patch + + # Fix pkgconfig file when USE="-exif" + use exif || sed -i "s/, @REQUIREMENTS_FOR_LIBEXIF@//" libgphoto2.pc.in || die " libgphoto2.pc sed failed" + + # Fix bug #212721, libtool-2 failure + sed -i "s:lt_dlcaller_register:lt_dlinit:g" configure libgphoto2_port/configure || die "libtool sed failed" + + # Fix bug #216206, libusb detection + sed -i "s:usb_busses:usb_find_busses:g" libgphoto2_port/configure || die "libusb sed failed" + + # Fix building on alpha, bug #221853 comment #6 + epatch "${FILESDIR}"/gphoto2-ixany.patch +} + +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" + + local myconf + + use exif \ + && myconf="${myconf} --with-libexif=/usr" \ + || myconf="${myconf} --with-libexif=no" + + 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 \ + ${myconf} + +# FIXME: gtk-doc is currently broken +# $(use_enable doc docs) + + emake || die "make failed" + + if use doc; then + doxygen doc/Doxyfile || die "Documentation generation failed" + fi +} + +src_install() { + emake DESTDIR="${D}" install || die "install failed" + + # FIXME: fixup autoconf bug + if ! use doc && [ -d "${D}/usr/share/doc/${PF}/apidocs.html" ]; then + rm -fr "${D}/usr/share/doc/${PF}/apidocs.html" + fi + # end fixup + + dodoc ChangeLog NEWS* README AUTHORS TESTERS MAINTAINERS HACKING + + HAL_FDI="/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi" + UDEV_RULES="/etc/udev/rules.d/70-libgphoto2.rules" + CAM_LIST="/usr/$(get_libdir)/libgphoto2/print-camera-list" + + if [ -x "${D}"${CAM_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 && [ -n "$("${D}"${CAM_LIST} idlist)" ]; then + einfo "Generating HAL FDI files ..." + mkdir -p "${D}"/${HAL_FDI%/*} + "${D}"${CAM_LIST} hal-fdi >> "${D}"/${HAL_FDI} \ + || die "failed to create hal-fdi" + else + ewarn "No HAL FDI file generated because no real camera driver enabled" + fi + + einfo "Generating UDEV-rules ..." + mkdir -p "${D}"/${UDEV_RULES%/*} + echo -e "# do not edit this file, it will be overwritten on update\n#" \ + > "${D}"/${UDEV_RULES} + "${D}"${CAM_LIST} udev-rules version 0.98 group plugdev >> "${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 " ${CAM_LIST} udev-rules version 0.98 group plugdev > ${UDEV_RULES}" + eerror " ${CAM_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." + local OLD_UDEV_RULES="${ROOT}"etc/udev/rules.d/99-libgphoto2.rules + if [[ -f ${OLD_UDEV_RULES} ]]; then + rm -f "${OLD_UDEV_RULES}" + fi +}