aboutsummaryrefslogtreecommitdiff
path: root/system/openct/openct.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'system/openct/openct.SlackBuild')
-rw-r--r--system/openct/openct.SlackBuild117
1 files changed, 66 insertions, 51 deletions
diff --git a/system/openct/openct.SlackBuild b/system/openct/openct.SlackBuild
index f3db81a3e30e..b4083691053f 100644
--- a/system/openct/openct.SlackBuild
+++ b/system/openct/openct.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for openct
-# Copyright 2008 LukenShiro <lukenshiro@ngi.it>
+# Copyright 2008-2009 LukenShiro <lukenshiro@ngi.it>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=openct
-VERSION=${VERSION:-0.6.15}
+VERSION=${VERSION:-0.6.16}
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -33,16 +33,20 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-APIDOC=${APIDOC:-0} # api documentation not built by default
-NONPRIV=${NONPRIV:-0} # disable not-privileged mode (it will be used by root)
+APIDOC=${APIDOC:-0} # api documentation not built by default
+NONPRIV=${NONPRIV:-0} # disable not-privileged mode (it will be used by root)
+HALD=${HALD:-0} # hal detection is disabled by default, we use udev instead
DOCFILES="NEWS TODO LGPL-2.1"
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
fi
set -e # Exit on most errors
@@ -69,11 +73,18 @@ esac
# 'openctd:usb'): for now it's unnecessary to add other user/group.
# If NONPRIV is enabled you'll have to verify /etc/rc.d/rc.openctd accordingly.
case "$NONPRIV" in
- 0) NONPRIV_FLAGS="--with-daemon-user=root \
- --with-daemon-groups=root --disable-non-privileged" # root-only
+ 0) NONPRIV_FLAGS="--with-daemon-groups=root \
+ --disable-non-privileged" # root-only
;;
- *) NONPRIV_FLAGS="--with-daemon-user=root \
- --with-daemon-groups=plugdev --enable-non-privileged" # non privileged mode
+ *) NONPRIV_FLAGS="--with-daemon-groups=plugdev \
+ --enable-non-privileged" # non privileged mode
+ ;;
+esac
+
+case "$HALD" in
+ 0) UDEV_FLAGS="--with-udev=/lib${LIBDIRSUFFIX}/udev"
+ ;;
+ *) UDEV_FLAGS="" # do nothing
;;
esac
@@ -82,21 +93,22 @@ CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
--localstatedir=/var \
--docdir=/usr/doc/$PRGNAM-$VERSION \
--datarootdir=/usr/share \
--mandir=/usr/man \
- --disable-static \
--enable-usb \
--enable-pcsc \
--enable-doc \
- --with-udev=/lib/udev \
- --with-bundle=/usr/lib/pcsc/drivers \
+ --with-bundle=/usr/lib${LIBDIRSUFFIX}/pcsc/drivers \
--${APIDOC_FLAG}able-api-doc \
- --with-ifddir \
+ --with-ifddir=/usr/lib${LIBDIRSUFFIX}/ifd \
--disable-static \
--build=$ARCH-slackware-linux \
- $NONPRIV_FLAGS
+ --with-daemon-user=root \
+ $NONPRIV_FLAGS \
+ $UDEV_FLAGS
make
make install DESTDIR=$PKG
@@ -106,20 +118,20 @@ mkdir -p $PKG/etc/rc.d
cat $CWD/rc.openctd > $PKG/etc/rc.d/rc.openctd.new
chmod 0755 $PKG/etc/rc.d/rc.openctd.new
case "$NONPRIV" in
- 0) true # do nothing
- ;;
- *) # enable non-privileged in rc.openctd
+ 0) true # do nothing
+ ;;
+ *) # enable non-privileged in rc.openctd
sed -i "s|#chown root:plugdev|chown root:plugdev|g" $PKG/etc/rc.d/rc.openctd.new
- sed -i "s|#chmod 750|chmod 750|g" $PKG/etc/rc.d/rc.openctd.new
+ sed -i "s|#chmod 750|chmod 750|g" $PKG/etc/rc.d/rc.openctd.new
;;
esac
# Don't clobber the config file
mv $PKG/etc/openct.conf $PKG/etc/openct.conf.new
-# used for serial devices within pcsc-lite
-# entries decommented by default (as they could tamper with pcsc-lite's device detection)
-# renamed to avoid pcsc-lite's reader.conf overwriting
+# Used for serial devices within pcsc-lite
+# entries decommented by default (as they could tamper with pcsc-lite's device
+# detection) renamed to avoid pcsc-lite's reader.conf overwriting
mkdir -p $PKG/etc/reader.conf.d
cp -a etc/reader.conf $PKG/etc/reader.conf.d/reader-openct.conf.new
sed -i "s|^FRIENDLYNAME|#FRIENDLYNAME|g" $PKG/etc/reader.conf.d/reader-openct.conf.new
@@ -127,37 +139,37 @@ sed -i "s|^DEVICENAME|#DEVICENAME|g" $PKG/etc/reader.conf.d/reader-openct.conf.n
sed -i "s|^LIBPATH|#LIBPATH|g" $PKG/etc/reader.conf.d/reader-openct.conf.new
sed -i "s|^CHANNELID|#CHANNELID|g" $PKG/etc/reader.conf.d/reader-openct.conf.new
-# installing udev scripts for openct
-mkdir -p $PKG/lib/udev
-install -m755 etc/openct_usb $PKG/lib/udev/openct_usb
-install -m755 etc/openct_pcmcia $PKG/lib/udev/openct_pcmcia
-install -m755 etc/openct_serial $PKG/lib/udev/openct_serial
-# to maintain forward compatibility with more recent udev (particularly Slackware post-12.1 current's udev)
-sed -i "s|udevinfo|udevadm info|g" $PKG/lib/udev/openct_usb
-
-# installing udev rules for openct
-mkdir -p $PKG/etc/udev/rules.d
-cp -a etc/openct.udev $PKG/etc/udev/rules.d/95-openct.rules
-# update attributes according to recent udev rules' naming convention
-sed -i "s|SYSFS{|ATTR{|g" $PKG/etc/udev/rules.d/95-openct.rules
-# modification taken to prevent bug (as happened in other distributions:
-# i.e. https://bugzilla.redhat.com/287871):
-# it seems 'sleep' program would otherwise be applied to every usb add event,
-# not only to this one
-sed -i "s|^PROGRAM=|#PROGRAM=|g" $PKG/etc/udev/rules.d/95-openct.rules
-
-# REMINDER for slackware-current post-12.1:
-# as WAIT_FOR_SYSFS is replaced by WAIT_FOR in udev>=123:
-#sed -i "s|WAIT_FOR_SYSFS=|WAIT_FOR=|g" $PKG/etc/udev/rules.d/95-openct.rules
-# maybe it will have to be moved to /lib/udev/rules.d/, too
-
-# installing openct rules/script for hal
-mkdir -p $PKG/usr/share/hal/fdi/information/10freedesktop/
-cp -a etc/openct.fdi $PKG/usr/share/hal/fdi/information/10freedesktop/10-usb-openct.fdi
-mkdir -p $PKG/usr/libexec
-cp -a etc/openct.hald $PKG/usr/libexec/hald-addon-openct
-
-# directory for status, socket and lock files
+# Hal and udev detection are alternative, and their rules should not be
+# installed at the same time, according to upstream.
+case "$HALD" in
+ 0) # Install udev scripts for openct
+ mkdir -p $PKG/lib${LIBDIRSUFFIX}/udev
+ install -m755 etc/openct_usb $PKG/lib${LIBDIRSUFFIX}/udev/openct_usb
+ install -m755 etc/openct_pcmcia $PKG/lib${LIBDIRSUFFIX}/udev/openct_pcmcia
+ install -m755 etc/openct_serial $PKG/lib${LIBDIRSUFFIX}/udev/openct_serial
+
+ # Install udev rules for openct
+ mkdir -p $PKG/lib${LIBDIRSUFFIX}/udev/rules.d
+ cp -a etc/openct.udev $PKG/lib${LIBDIRSUFFIX}/udev/rules.d/95-openct.rules
+ # Update attributes according to recent udev rules' naming convention
+ sed -i "s|SYSFS{|ATTR{|g" $PKG/lib${LIBDIRSUFFIX}/udev/rules.d/95-openct.rules
+ # WAIT_FOR_SYSFS is replaced by WAIT_FOR in udev>=123:
+ sed -i "s|WAIT_FOR_SYSFS=|WAIT_FOR=|g" $PKG/lib${LIBDIRSUFFIX}/udev/rules.d/95-openct.rules
+ # modification taken to prevent bug (as happened in other distributions:
+ # i.e. https://bugzilla.redhat.com/287871):
+ # it seems 'sleep' program would otherwise be applied to every usb add
+ # event, not only to this one
+ sed -i "s|^PROGRAM=|#PROGRAM=|g" $PKG/lib${LIBDIRSUFFIX}/udev/rules.d/95-openct.rules
+ ;;
+ *) # Install openct rules/script for hal
+ mkdir -p $PKG/usr/share/hal/fdi/information/10freedesktop/
+ cp -a etc/openct.fdi $PKG/usr/share/hal/fdi/information/10freedesktop/10-usb-openct.fdi
+ mkdir -p $PKG/usr/libexec
+ install -m755 etc/openct.hald $PKG/usr/libexec/hald-addon-openct
+ ;;
+esac
+
+# Directory for status, socket and lock files
mkdir -p $PKG/var/run/openct
case "$NONPRIV" in
0) USR_GRP="root:root" # root-only
@@ -167,6 +179,9 @@ case "$NONPRIV" in
esac
chown $USR_GRP $PKG/var/run/openct
+# Make directory for openct modules (not bundled with openct)
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/ifd
+
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null