summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libraries/libgphoto2/README45
-rw-r--r--libraries/libgphoto2/doinst.sh36
-rw-r--r--libraries/libgphoto2/libgphoto2.SlackBuild118
-rw-r--r--libraries/libgphoto2/libgphoto2.info8
-rw-r--r--libraries/libgphoto2/print-camera-list.c.diff20
-rw-r--r--libraries/libgphoto2/slack-desc11
6 files changed, 238 insertions, 0 deletions
diff --git a/libraries/libgphoto2/README b/libraries/libgphoto2/README
new file mode 100644
index 0000000000..7a76674698
--- /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 0000000000..06dfc8ea24
--- /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 0000000000..b7400cdb12
--- /dev/null
+++ b/libraries/libgphoto2/libgphoto2.SlackBuild
@@ -0,0 +1,118 @@
+#!/bin/sh
+
+# Slackware build script for libgphoto2
+
+# Written by MagicMan <MagicMan07@bluebottle.com>
+# No Guarantees. Use this SlackBuild at your own risk.
+# Public Domain
+
+# Modified by the SlackBuilds.org project
+
+# Modified by Michael Wagner <lapinours@web.de>
+# (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
+<!-- DO NOT EDIT THIS FILE! -->
+<!-- Any custom changes will be lost if the libgphoto package is upgraded. -->
+
+EOF
+
+cat << EOF > $PKG/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2-device.fdi
+<!-- DO NOT EDIT THIS FILE! -->
+<!-- Any custom changes will be lost if the libgphoto package is upgraded. -->
+
+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 0000000000..02bc5c8ab5
--- /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 0000000000..c6491d2b15
--- /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 0000000000..04fd2b838b
--- /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: