From 1b0527472e17ba395acfa8e34ef534c592cee531 Mon Sep 17 00:00:00 2001 From: MagicMan Date: Tue, 11 May 2010 14:56:19 +0200 Subject: libraries/libgphoto2: Initial import --- libraries/libgphoto2/README | 45 ++++++++++ libraries/libgphoto2/doinst.sh | 36 ++++++++ libraries/libgphoto2/libgphoto2.SlackBuild | 118 ++++++++++++++++++++++++++ libraries/libgphoto2/libgphoto2.info | 8 ++ libraries/libgphoto2/print-camera-list.c.diff | 20 +++++ libraries/libgphoto2/slack-desc | 11 +++ 6 files changed, 238 insertions(+) create mode 100644 libraries/libgphoto2/README create mode 100644 libraries/libgphoto2/doinst.sh create mode 100644 libraries/libgphoto2/libgphoto2.SlackBuild create mode 100644 libraries/libgphoto2/libgphoto2.info create mode 100644 libraries/libgphoto2/print-camera-list.c.diff create mode 100644 libraries/libgphoto2/slack-desc (limited to 'libraries') diff --git a/libraries/libgphoto2/README b/libraries/libgphoto2/README new file mode 100644 index 000000000000..7a76674698f0 --- /dev/null +++ b/libraries/libgphoto2/README @@ -0,0 +1,45 @@ +libgphoto2 is a library that can be used by applications to access +various digital cameras. + +The resulting package checks /var/log/packages for your installed udev +version and generates udev rules in the post-install stage. For those +of you still using the old hotplug subsystem, it also adds the file +/etc/hotplug/usb/usbcam during the packaging and appends some text to +/etc/hotplug/usb.usermap in the post-install stage. This appending is +not normally something that we would do with any of our scripts, but in +this case, it should be completely harmless; however, a backup copy of +the file is left in the same directory just in case. + +Since version 2.3.1 build 3, there are two different groups granting +access to your digital camera for non-root users via udev and hotplug. + +From now on the udev rules generated during install set device ownership +to the 'plugdev' group. If this group does not yet exist (users of HAL +should have this group already), you will need to create it and add any +users that may access the camera. A recommended way for adding the 'plugdev' +group would be: + + /usr/sbin/groupadd -g 83 plugdev + +Hotplug users still have to use the group 'camera' and add any users that +should be permitted to access the camera to this group. Alternatively, +you can edit the included doinst.sh file to change "group plugdev" to +"group users" (if you're using udev) or edit /etc/hotplug/usb/usbcam after +the package is installed and change "camera" to "users" (if you're using +hotplug) if you want all users to have access to cameras. + +The resulting package *should* work without any manual setup, but in our +testing here, it seems that some cameras aren't recognized by the installed +udev rules. There is at least one reliable report of a change that *may* be +needed if you're using udev-097 from Slackware 11.0: + + This: + BUS!="usb*", GOTO="libgphoto2_rules_end" + should perhaps be this: + SUBSYSTEM!="usb*", GOTO="libgphoto2_rules_end" + +However, if the rules installed by libgphoto2 work for you, don't change +anything - this should only be done if they don't work. Note that this is +*not* a bug in the build script or implementation - we just use the provided +tools with libgphoto2 to generate the udev rules; as such, any bug reports +with the udev rules should go to them (feel free to CC our -users list). diff --git a/libraries/libgphoto2/doinst.sh b/libraries/libgphoto2/doinst.sh new file mode 100644 index 000000000000..06dfc8ea24e9 --- /dev/null +++ b/libraries/libgphoto2/doinst.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +# Check to see if udev package is installed +if [ -e var/log/packages/udev-* ]; then + # Get udev version + UDEV_VERSION=$(basename var/log/packages/udev-* | cut -d- -f2) + # Generate udev rules files + if [ "$UDEV_VERSION" -lt "098" ]; then + usr/bin/print-camera-list udev-rules mode 0660 owner root group plugdev \ + >> etc/udev/rules.d/90-libgphoto2.rules + elif [ "$UDEV_VERSION" -ge "098" ]; then + usr/bin/print-camera-list udev-rules-0.98 mode 0660 owner root group plugdev \ + >> etc/udev/rules.d/90-libgphoto2.rules + fi +fi + +# Generate files for old hotplug support +if [ -e etc/hotplug/usb.usermap ]; then + cat etc/hotplug/usb.usermap > etc/hotplug/usb.usermap.bak + rm -rf tmp/.usermap + grep -v usbcam etc/hotplug/usb.usermap > tmp/.usermap + usr/bin/print-camera-list usb-usermap usbcam >> tmp/.usermap + cat tmp/.usermap > etc/hotplug/usb.usermap + rm -f tmp/.usermap +else + usr/bin/print-camera-list usb-usermap usbcam > etc/hotplug/usb.usermap +fi + +# Check to see if hal is installed and generate fdi files +if [ -e var/log/packages/hal-[0-9]* ]; then + 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 +fi + diff --git a/libraries/libgphoto2/libgphoto2.SlackBuild b/libraries/libgphoto2/libgphoto2.SlackBuild new file mode 100644 index 000000000000..b7400cdb12ce --- /dev/null +++ b/libraries/libgphoto2/libgphoto2.SlackBuild @@ -0,0 +1,118 @@ +#!/bin/sh + +# Slackware build script for libgphoto2 + +# Written by MagicMan +# No Guarantees. Use this SlackBuild at your own risk. +# Public Domain + +# Modified by the SlackBuilds.org project + +# Modified by Michael Wagner +# (include hal device information files, change group ownership +# for udev rules to plugdev, adjust README) +# Do not blame the original author if anything goes wrong with these changes. + +PRGNAM=libgphoto2 +VERSION=2.3.1 +ARCH=${ARCH:-i486} +BUILD=${BUILD:-3} +TAG=${TAG:-_SBo} +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +PDOCS="ABOUT-NLS ChangeLog HACKING INSTALL MAINTAINERS README.in TESTERS" + +# If you have HAL installed, pass HAL=YES when running the build script +# HAL=YES ./libgphoto2.SlackBuild +HAL=${HAL:-NO} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP || exit 1 +rm -rf $PRGNAM-$VERSION +tar -xvjf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1 +cd $PRGNAM-$VERSION || exit 1 +chown -R root:root . +chmod -R u+w,go+r-w,a-s . + +# Patch print-camera-list.c to ignore zero vendor IDs on udev >= 098 +# https://bugs.launchpad.net/ubuntu/+source/udev/+bug/76077 +# This is a harmless patch for stock 11.0 +patch -p0 < $CWD/print-camera-list.c.diff || exit 1 + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-static=no \ + --mandir=/usr/man \ + --with-doc-dir=/usr/doc/$PRGNAM-$VERSION \ + || exit 1 + +make || exit 1 + +# 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 \ + install-strip DESTDIR=$PKG \ + || exit 1 + +# Install usbcam file for old hotplug subsystem to work properly +install -D -m 0755 packaging/linux-hotplug/usbcam.group \ + $PKG/etc/hotplug/usb/usbcam + +# Install "dummy" udev rules files and (maybe) HAL device information files so +# they will be removed later if the package is uninstalled; the post-install +# script will append auto-generated rules to these files +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 + +# If HAL is installed, then also install the fdi files for it +if [ "$HAL" = "YES" ]; then +mkdir -p $PKG/usr/share/hal/fdi/information/20thirdparty +cat << EOF > $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi + + + +EOF + +cat << EOF > $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2-device.fdi + + + +EOF +fi + +( cd $PKG/usr/man + 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 $PDOCS $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +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 diff --git a/libraries/libgphoto2/libgphoto2.info b/libraries/libgphoto2/libgphoto2.info new file mode 100644 index 000000000000..02bc5c8ab5d1 --- /dev/null +++ b/libraries/libgphoto2/libgphoto2.info @@ -0,0 +1,8 @@ +PRGNAM="libgphoto2" +VERSION="2.3.1" +HOMEPAGE="http://www.gphoto.org/" +DOWNLOAD="http://dl.sourceforge.net/gphoto/libgphoto2-2.3.1.tar.bz2" +MD5SUM="37f85e34e5b6031ddf6cac8b8782ac4f" +MAINTAINER="MagicMan" +EMAIL="MagicMan07@bluebottle.com" +APPROVED="rworkman" diff --git a/libraries/libgphoto2/print-camera-list.c.diff b/libraries/libgphoto2/print-camera-list.c.diff new file mode 100644 index 000000000000..c6491d2b15a5 --- /dev/null +++ b/libraries/libgphoto2/print-camera-list.c.diff @@ -0,0 +1,20 @@ +--- packaging/generic/print-camera-list.c (Revision 9959) ++++ packaging/generic/print-camera-list.c (Revision 9960) +@@ -333,7 +333,7 @@ + | GP_USB_HOTPLUG_MATCH_PRODUCT_ID); + usb_vendor = a->usb_vendor; + usb_product = a->usb_product; +- } else if ((a->usb_class) && (a->usb_class != 666)) { ++ } else if (a->usb_class) { + class = a->usb_class; + subclass = a->usb_subclass; + proto = a->usb_protocol; +@@ -446,7 +446,7 @@ + | GP_USB_HOTPLUG_MATCH_PRODUCT_ID); + usb_vendor = a->usb_vendor; + usb_product = a->usb_product; +- } else if ((a->usb_class) && (a->usb_class != 666)) { ++ } else if (a->usb_class) { + class = a->usb_class; + subclass = a->usb_subclass; + proto = a->usb_protocol; diff --git a/libraries/libgphoto2/slack-desc b/libraries/libgphoto2/slack-desc new file mode 100644 index 000000000000..04fd2b838b10 --- /dev/null +++ b/libraries/libgphoto2/slack-desc @@ -0,0 +1,11 @@ +libgphoto2: libgphoto2 (Digital Camera Library) +libgphoto2: +libgphoto2: libgphoto2 is a library that can be used by applications +libgphoto2: to access various digital cameras. +libgphoto2: +libgphoto2: Homepage: http://www.gphoto.org/ +libgphoto2: +libgphoto2: +libgphoto2: +libgphoto2: +libgphoto2: -- cgit v1.2.3