#!/bin/bash
#
# source: http://downloads.sourceforge.net/project/gphoto/libgphoto/2.4.14/libgphoto2-2.4.14.tar.bz2
#
# maintainer: gmg (monpontet.gerard@neuf.fr)
#

#------------------ Set Some Variables

soft="libgphoto2"
softversion="2.4.14"
arch="i486"
cpu="i686"
packageversion="72.1"

buildir=$(pwd)
srcpkg="$buildir/$soft-$softversion.tar.bz2"
src="$buildir/$soft-$softversion"
package="$soft-$softversion-$arch-$packageversion"
dest="$buildir/$package"

# ----------------- Extract sources and get ready to build

cd $buildir
rm -rf $src
tar -xvjf $srcpkg
rm -f $dest.tgz
rm -rf $dest

#------------------ Set correct permissions

cd $src
chown -R root:root .
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 {} \;

#------------------Start Configure

export CFLAGS="-O2 -march=$arch -mtune=$cpu"
export CXXFLAGS="-O2 -march=$arch -mtune=$cpu"

./configure \
  udevscriptdir='/lib/udev' \
  --prefix=/usr \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --with-doc-dir=/usr/doc/$soft-$softversion \
  --disable-rpath

make -j6
make install DESTDIR=$dest

# Strip binaries:

find $dest | xargs file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null

# Remove recursive symlink
rm -f $dest/usr/include/gphoto2/gphoto2

# Generate udev rules and hal device information files
# First, we'll have to set (and export) some important variables
LD_LIBRARY_PATH=$dest/usr/lib
CAMLIBS=$dest/usr/lib/$soft/$softversion
LIBDIR=$dest/usr/lib
export LD_LIBRARY_PATH CAMLIBS LIBDIR
# Generate udev rules
mkdir -p $dest/lib/udev/rules.d
$dest/usr/lib/libgphoto2/print-camera-list udev-rules version 136 \
  > $dest/lib/udev/rules.d/40-gphoto2.rules
unset LD_LIBRARY_PATH CAMLIBS LIBDIR   # Unset these just in case

# Compress man pages

( cd $dest/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
)
#------------------ Prepare the documentation:

cp -a ChangeLog INSTALL MAINTAINERS TESTERS $dest/usr/doc/$soft-$softversion

#----------------- Make the slack-desc files

mkdir -p $dest/install
cat << EODESC > $dest/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.  Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in.  You must
# make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':'.

          |-----handy-ruler--------------------------------------------------|
libgphoto2: libgphoto2 - a library to access various digital cameras
libgphoto2:
libgphoto2:
libgphoto2: libgphoto2 is a library that can be used by applications to
libgphoto2: access various digital cameras. It is used by e.g. gphoto2,
libgphoto2: gThumb and digikam.
libgphoto2:
libgphoto2:
libgphoto2:
libgphoto2:
libgphoto2:
EODESC

#------------------- copy the build-script in /usr/src

mkdir -p $dest/usr/src/$soft-$softversion
cp -a $buildir/build-$soft.sh $dest/usr/src/$soft-$softversion

#------------------- Make the packages and the md5sum

cd $dest
makepkg -l y -c n $dest.txz

cd $buildir
md5sum $package.txz > $package.md5