Changeset - 7f52fc52f33b
[Not reviewed]
default
0 0 6
Nathan Brink (binki) - 16 years ago 2008-12-16 17:59:50
ohnobinki@ohnopublishing.net
added libgphoto2-2.4.2 with a file listing length increase
A future version (beyond libgphoto2-2.4.3) will have this constant limit fixed: see https://sourceforge.net/tracker2/index.php?func=detail&aid=2055906&group_id=8874&atid=108874
libgphoto2-2.4.3 does not have this fix yet and libgphoto2-2.4.3 has EAPI="2", which requires =portage-2*
Increasing the constant number of images listable is the most practial way of fixing this. For an example, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425515
6 files changed with 242 insertions and 0 deletions:
0 comments (0 inline, 0 general)
media-libs/libgphoto2/ChangeLog
Show inline comments
 
new file 100644
 
# 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 <ohnobinki@ohnopublishing.net> +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.
media-libs/libgphoto2/Manifest
Show inline comments
 
new file 100644
 
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
media-libs/libgphoto2/files/gphoto2-ixany.patch
Show inline comments
 
new file 100644
 
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 */
media-libs/libgphoto2/files/libgphoto2-2.4.0-rpm.patch
Show inline comments
 
new file 100644
 
--- 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
media-libs/libgphoto2/files/libgphoto2-2.4.2-listlen.patch
Show inline comments
 
new file 100644
 
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
media-libs/libgphoto2/libgphoto2-2.4.2.ebuild
Show inline comments
 
new file 100644
 
# 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}
 
	!<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
 

	
 
	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
 
}
0 comments (0 inline, 0 general)