libraries/libgphoto2: Updated for version 2.4.3

This commit is contained in:
Frank Caraballo 2010-05-11 22:23:59 +02:00 committed by David Somero
parent 15b1188858
commit 93858dda25
6 changed files with 85 additions and 138 deletions

View File

@ -1,5 +1,2 @@
libgphoto2 is a library that can be used by applications to access
various digital cameras.
The udev rules generated during install set device ownership to the
'plugdev' group.
various digital cameras.

View File

@ -0,0 +1,14 @@
diff -Nur libgphoto2-2.4.3.orig/packaging/generic/check-ptp-camera libgphoto2-2.4.3/packaging/generic/check-ptp-camera
--- libgphoto2-2.4.3.orig/packaging/generic/check-ptp-camera 2007-07-27 00:52:50.000000000 -0500
+++ libgphoto2-2.4.3/packaging/generic/check-ptp-camera 2008-10-21 12:43:06.121742696 -0500
@@ -3,8 +3,8 @@
# check if any interface of this device is a PTP camera interface (06)
INTERFACE="${1:-06/01/01}"
-BASENAME=${PHYSDEVPATH##*/}
-for d in /sys/${PHYSDEVPATH}/${BASENAME}:*; do
+BASENAME=${DEVPATH##*/}
+for d in /sys/${DEVPATH}/${BASENAME}:*; do
[[ -d ${d} ]] || continue
INTERFACEID="$(< ${d}/bInterfaceClass)"
INTERFACEID="${INTERFACEID}/$(< ${d}/bInterfaceSubClass)"

View File

@ -1,12 +0,0 @@
#!/bin/bash
# Generate udev rules files
usr/bin/print-camera-list udev-rules mode 0660 group plugdev \
>> etc/udev/rules.d/90-libgphoto2.rules
# Install hal device information files
usr/bin/print-camera-list hal-fdi \
> usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi
usr/bin/print-camera-list hal-fdi-device \
> usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2-device.fdi

View File

@ -2,23 +2,30 @@
# Slackware build script for libgphoto2
# Written by Frank Caraballo <fecaraballo[AT]gmail.com>
# No Guarantees. Use this SlackBuild at your own risk.
# Public Domain
# Modified by Michael Wagner <lapinours@web.de>
# (change group ownership for udev rules to plugdev, adjust README)
# Do not blame the original author if anything goes wrong with these changes.
# Modified by Robby Workman <rworkman@slackbuilds.org> to fix a bug in
# the way the fdi files are created (the xml header must be the first line,
# so we can't append the autogenerated rules - they must overwrite the file)
# Thanks to amrit for the report.
# Copyright 2007-2008 Frank Caraballo <fecaraballo{at}gmail{dot}com>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=libgphoto2
VERSION=2.4.0
VERSION=2.4.3
ARCH=${ARCH:-i486}
BUILD=${BUILD:-3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
CWD=$(pwd)
@ -26,25 +33,33 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
DOCS="ABOUT-NLS ChangeLog HACKING INSTALL MAINTAINERS README.in TESTERS"
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP || exit 1
cd $TMP
rm -rf $PRGNAM-$VERSION
tar -xvjf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1
cd $PRGNAM-$VERSION || exit 1
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
# Patch print-camera-list.c for newer kernels
patch -p0 < $CWD/print-camera-list.c.diff || exit 1
# Fix the usage of obsolete PHYSDEVPATH in favor of DEVPATH in the
# check-ptp-camera script called by udev
# https://sourceforge.net/tracker/index.php?func=detail&aid=2110825&group_id=8874&atid=108874
patch -p1 < $CWD/check-ptp-camera.diff
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@ -52,47 +67,55 @@ CXXFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--disable-static \
--mandir=/usr/man \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--with-doc-dir=/usr/doc/$PRGNAM-$VERSION \
|| exit 1
make || exit 1
--build=$ARCH-slackware-linux
# Make sure udev helper scripts are put in the right place and
# install the other utilities to /usr/bin instead of /usr/lib/libgphoto2/
make \
udevscriptdir=/lib/udev \
utilsdir=/usr/bin
make \
udevscriptdir=/lib/udev \
utilsdir=/usr/bin \
install-strip DESTDIR=$PKG \
|| exit 1
install DESTDIR=$PKG
# Install "dummy" udev rules file so it will be removed later if the package
# is uninstalled; the post-install script will append auto-generated rules
mkdir -p $PKG/etc/udev/rules.d
cat << EOF > $PKG/etc/udev/rules.d/90-libgphoto2.rules
# DO NOT EDIT THIS FILE!
# Any custom changes will be lost if the libgphoto package is upgraded.
EOF
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
# Generate udev rules and hal device information files
# First, we'll have to set (and export) some important variables
LD_LIBRARY_PATH=/$PKG/usr/lib
CAMLIBS=$PKG/usr/lib/$PRGNAM/$VERSION
LIBDIR=$PKG/usr/lib
export LD_LIBRARY_PATH CAMLIBS LIBDIR
# Generate udev rules
mkdir -p $PKG/etc/udev/rules.d
$PKG/usr/bin/print-camera-list udev-rules mode 0660 owner root group plugdev \
> $PKG/etc/udev/rules.d/90-libgphoto2.rules
# Generate fdi files
mkdir -p $PKG/usr/share/hal/fdi/information/20thirdparty
touch $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi
touch $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2-device.fdi
$PKG/usr/bin/print-camera-list hal-fdi \
> $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi
$PKG/usr/bin/print-camera-list hal-fdi-device \
> $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2-device.fdi
unset LD_LIBRARY_PATH CAMLIBS LIBDIR # Unset these just in case
# Compress man pages
( cd $PKG/usr/man
( cd $PKG/usr/man || exit 1
find . -type f -exec gzip -9 {} \;
for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
)
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cp -a AUTHORS COPYING* ChangeLog HACKING INSTALL MAINTAINERS \
NEWS README README.packaging TESTERS $PKG/usr/doc/$PRGNAM-$VERSION
# We don't need these
rm -rf $PKG/usr/doc/$PRGNAM-$VERSION/{apidocs.html,linux-hotplug,README.apidocs}
rm -rf $PKG/usr/doc/$PRGNAM-$VERSION/{apidocs.html,camlibs,linux-hotplug,README.apidocs}
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz

View File

@ -1,8 +1,8 @@
PRGNAM="libgphoto2"
VERSION="2.4.0"
VERSION="2.4.3"
HOMEPAGE="http://www.gphoto.org/"
DOWNLOAD="http://downloads.sourceforge.net/gphoto/libgphoto2-2.4.0.tar.bz2"
MD5SUM="a60154772635b693ff08b4f34dea7f61"
DOWNLOAD="http://downloads.sourceforge.net/gphoto/libgphoto2-2.4.3.tar.bz2"
MD5SUM="6c23b8b3021aee4187b2c11d4bb7265b"
MAINTAINER="Frank Caraballo"
EMAIL="fecaraballo[AT]gmail.com"
APPROVED="rworkman"
APPROVED="dsomero"

View File

@ -1,75 +0,0 @@
--- packaging/generic/print-camera-list.c 2007-07-27 02:35:28.000000000 +0200
+++ packaging/generic/print-camera-list.c.new 2008-02-22 20:24:35.000000000 +0100
@@ -382,14 +382,31 @@
char *owner;
char *group;
char *script;
- char *begin_string;
- char *usbcam_string;
+ const char *begin_string;
+ const char *usbcam_string;
} udev_persistent_data_t;
static void
udev_parse_params (const func_params_t *params, void **data)
{
+ /* Note: 2 lines because we need to use || ... having them on the same
+ * line would mean &&.
+ */
+ static const char * const begin_strings[] = {
+ /* UDEV_PRE_0_98 */
+ "BUS!=\"usb_device\", GOTO=\"libgphoto2_rules_end\"\n"
+ "ACTION!=\"add\", GOTO=\"libgphoto2_rules_end\"\n\n",
+ /* UDEV_0_98 */
+ "SUBSYSTEM!=\"usb|usb_device\", GOTO=\"libgphoto2_rules_end\"\n"
+ "ACTION!=\"add\", GOTO=\"libgphoto2_rules_end\"\n\n"
+ };
+ static const char * const usbcam_strings[] = {
+ /* UDEV_PRE_0_98 */
+ "SYSFS{idVendor}==\"%04x\", SYSFS{idProduct}==\"%04x\", ",
+ /* UDEV_0_98 */
+ "ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ",
+ };
udev_persistent_data_t *pdata;
pdata = calloc(1, sizeof(udev_persistent_data_t));
pdata->version = UDEV_0_98;
@@ -436,37 +453,12 @@
FATAL("The <script> parameter conflicts with the <mode,group,owner> parameters.");
}
- /* Note: 2 lines because we need to use || ... having them on the same
- * line would mean &&.
- */
- static char *begin_strings[] = {
- /* UDEV_PRE_0_98 */
- "BUS!=\"usb_device\", GOTO=\"libgphoto2_rules_end\"\n"
- "ACTION!=\"add\", GOTO=\"libgphoto2_rules_end\"\n\n",
- /* UDEV_0_98 */
- "SUBSYSTEM!=\"usb_device\", GOTO=\"libgphoto2_rules_end\"\n"
- "ACTION!=\"add\", GOTO=\"libgphoto2_rules_end\"\n\n"
- };
- static char *usbcam_strings[] = {
- /* UDEV_PRE_0_98 */
- "SYSFS{idVendor}==\"%04x\", SYSFS{idProduct}==\"%04x\", ",
- /* UDEV_0_98 */
- "ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ",
- };
pdata->begin_string = begin_strings[pdata->version];
pdata->usbcam_string = usbcam_strings[pdata->version];
}
-static void
-version_str_func(const char *str, void *data)
-{
- const char **foo = (const char **)data;
- fprintf(stdout, "V[%s]", str);
- fflush(stdout);
- *foo = str;
-}
-static inline const char *
+static const char *
get_version_str(udev_version_t version)
{
return gpi_enum_to_string(version, udev_version_t_map);