summaryrefslogtreecommitdiffstats
path: root/truecrypt
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2008-07-04 14:42:07 +0000
committer Eric Hameleers <alien@slackware.com>2008-07-04 14:42:07 +0000
commiteaf0056157bdddb53defa0ef8ac8da210935cddc (patch)
treee6d5846c918cf8f412b0e6f213d5d698ba733b0a /truecrypt
parent45ed2d4aefdb3b7a4492e040eb2c4796947152f1 (diff)
downloadasb-eaf0056157bdddb53defa0ef8ac8da210935cddc.tar.gz
asb-eaf0056157bdddb53defa0ef8ac8da210935cddc.tar.xz
The SlackBuild was updated for 5.1a (includes a wxGTK gui)
Diffstat (limited to 'truecrypt')
-rwxr-xr-xtruecrypt/build/truecrypt.SlackBuild306
1 files changed, 137 insertions, 169 deletions
diff --git a/truecrypt/build/truecrypt.SlackBuild b/truecrypt/build/truecrypt.SlackBuild
index 110bf86f..9220fed5 100755
--- a/truecrypt/build/truecrypt.SlackBuild
+++ b/truecrypt/build/truecrypt.SlackBuild
@@ -1,33 +1,35 @@
#!/bin/sh
# $Id$
-# -----------------------------------------------------------------------------
-# Copyright (c) 2006,2007 Eric Hameleers <alien@slackware.com>
-# Permission to use, copy, modify, and distribute this software for
-# any purpose with or without fee is hereby granted, provided that
-# the above copyright notice and this permission notice appear in all
-# copies.
+# Copyright (c) 2006-2008 Eric Hameleers <alien@slackware.com>
+# All rights reserved.
+#
+# Permission to use, copy, modify, and distribute this software for
+# any purpose with or without fee is hereby granted, provided that
+# the above copyright notice and this permission notice appear in all
+# copies.
#
-# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
-# CONTRIBUTORS 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.
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+# CONTRIBUTORS 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.
# -----------------------------------------------------------------------------
#
# Slackware SlackBuild script
# ===========================
-# By: Eric Hameleers <alien@slackware.com>
-# For: truecrypt
-# URL: http://www.truecrypt.org/
-# Needs: device-mapper >= 1.00.08 (for Slackware older than 12.0)
-# Changelog:
+# By: Eric Hameleers <alien@slackware.com>
+# For: truecrypt
+# Descr: On-the-fly disk encryption
+# URL: http://truecrypt.org
+# Needs:
+# Changelog:
# 4.0-1: 02/Nov/2005 by Eric Hameleers <alien@slackware.com>
# * Initial build.
# 4.2-1: 18/apr/2006 by Eric Hameleers <alien@slackware.com>
@@ -46,47 +48,42 @@
# list it as a dependency.
# 4.3a-3: 13/oct/2007 by Eric Hameleers <alien@slackware.com>
# * Add patch to support kernel >= 2.6.23
+# 5.1a-1: 04/Jul/2008 by Eric Hameleers <alien@slackware.com>
+# * New release requires wxWindows for the GUI, no longer is
+# kernel version dependant (by using fuse).
#
-# Run 'sh SlackBuild --cleanup' to build a Slackware package.
+# Run 'sh truecrypt.SlackBuild --cleanup' to build a Slackware package.
# The package (.tgz) plus descriptive .txt file are created in /tmp .
# Install using 'installpkg'.
#
# -----------------------------------------------------------------------------
-# --- INIT ---
+# Set initial variables:
PRGNAM=truecrypt
-VERSION=${VERSION:-4.3a}
+VERSION=${VERSION:-5.1a}
ARCH=${ARCH:-i486}
-BUILD=3
-
-DOCS="README.1st Readme.txt License.txt userguide.pdf"
+BUILD=${BUILD:-1}
+TAG=${TAG:-alien}
-KVER=${KVER:-$(uname -r)}
-KSRC=${KSRC:-/lib/modules/{KVER}/build}
-
-SLACKMAJ=$( cat /etc/slackware-version | cut -f2 -d\ | cut -f1 -d. )
+DOCS="Readme.txt License.txt userguide.pdf \
+ Release/Setup\ Files/TrueCrypt\ User\ Guide.pdf"
+WXGTK=${WXGTK:-2.8.8} # for the GUI
# Where do we look for sources?
-CWD=$(pwd)
-SRCDIR=$(dirname $0)
-[ "${SRCDIR:0:1}" == "." ] && SRCDIR=${CWD}/${SRCDIR}
-
-SRCURL="http://www.truecrypt.org/downloads/${PRGNAM}-${VERSION}-source-code.tar.gz"
-SOURCE="${SRCDIR}/${PRGNAM}-${VERSION}-source-code.tar.gz"
-
-PATCH0="${SRCDIR}/${PRGNAM}-${VERSION}_ksrc.patch"
-PATCH1="${SRCDIR}/${PRGNAM}-${VERSION}_kernel_2.6.23.patch"
+SRCDIR=$(cd $(dirname $0); pwd)
# Place to build (TMP) package (PKG) and output (OUTPUT) the program:
TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-# ------------------------------------------------------------------------
-# truecrypt used to be installed with setuid root - as of 4.3a the program
-# will use 'sudo' to get elevated rights.
-# ------------------------------------------------------------------------
+# If you want automatic download to work, supply a URL for 'SRCURL' below:
+SOURCE[0]="$SRCDIR/${PRGNAM}-${VERSION}-source.tar.gz"
+SRCURL[0]=""
+
+SOURCE[1]="$SRCDIR/${PRGNAM}-${VERSION}.tar.gz"
+SRCURL[1]="http://downloads.sourceforge.net/wxwindows/wxGTK-${WXGTK}.tar.gz"
##
## --- with a little luck, you won't have to edit below this point --- ##
@@ -94,7 +91,7 @@ OUTPUT=${OUTPUT:-/tmp}
# Exit the script on errors:
set -e
-trap 'echo "$0 FAILED!" | tee $OUTPUT/error-${PRGNAM}.log' ERR
+trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR
# Catch unitialized variables:
set -u
P1=${1:-1}
@@ -107,9 +104,6 @@ else
fi
case "$ARCH" in
- i386) SLKCFLAGS="-O2 -march=i386 -m${MOPT}=i686"
- SLKLDFLAGS=""; LIBDIRSUFFIX=""
- ;;
i486) SLKCFLAGS="-O2 -march=i486 -m${MOPT}=i686"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
@@ -127,158 +121,132 @@ case "$ARCH" in
;;
esac
-# Prepare build environment:
+# Create working directories:
+mkdir -p $OUTPUT # place for the package to be saved
mkdir -p $TMP/tmp-$PRGNAM # location to build the source
+mkdir -p $PKG # place for the package to be built
+rm -rf $PKG/* # always erase old package's contents
rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build
-mkdir -p $PKG # place for the package to be built
-rm -rf $PKG/* # We always erase old package's contents:
-mkdir -p $OUTPUT # place for the package to be saved
# Source file availability:
-if ! [ -f ${SOURCE} ]; then
- if ! [ "x${SRCURL}" == "x" ]; then
- # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
- [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)"
- echo "Source '$(basename ${SOURCE})' not available yet..."
- echo "Will download file to $(dirname $SOURCE)"
- wget -nv --connect-timeout=30 -O "${SOURCE}" "${SRCURL}" || true
- if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then
- echo "Downloading '$(basename ${SOURCE})' failed... aborting the build."
- mv -f "${SOURCE}" "${SOURCE}".FAIL
+for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do
+ if ! [ -f ${SOURCE[$i]} ]; then
+ if ! [ "x${SRCURL[$i]}" == "x" ]; then
+ # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
+ [ -w "$SRCDIR" ] || SOURCE[$i]="$OUTPUT/$(basename ${SOURCE[$i]})"
+ echo "Source '$(basename ${SOURCE[$i]})' not available yet..."
+ echo "Will download file to $(dirname $SOURCE[$i])"
+ wget -nv -T 20 -O "${SOURCE[$i]}" "${SRCURL[$i]}" || true
+ if [ $? -ne 0 -o ! -s "${SOURCE[$i]}" ]; then
+ echo "Downloading '$(basename ${SOURCE[$i]})' failed.. aborting the build."
+ mv -f "${SOURCE[$i]}" "${SOURCE[$i]}".FAIL
+ exit 1
+ fi
+ else
+ echo "File '$(basename ${SOURCE[$i]})' not available.. aborting the build."
exit 1
fi
- else
- echo "File '$(basename ${SOURCE})' not available... aborting the build."
- exit 1
fi
+done
+
+if [ "$P1" == "--download" ]; then
+ echo "Download complete."
+ exit 0
fi
-# Package building:
+# --- PACKAGE BUILDING ---
+
echo "++"
echo "|| $PRGNAM-$VERSION"
echo "++"
cd $TMP/tmp-$PRGNAM
-echo "Extracting the program tarball(s) for $PRGNAM..."
-tar -xzvf ${SOURCE}
-mv ${PRGNAM}-${VERSION}-source-code ${PRGNAM}-${VERSION} || true
+echo "Extracting the source archive(s) for $PRGNAM..."
+for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do
+ if $(file ${SOURCE[$i]} | grep -q ": bzip2"); then
+ tar -xjvf ${SOURCE[$i]}
+ elif $(file ${SOURCE[$i]} | grep -q ": gzip"); then
+ tar -xzvf ${SOURCE[$i]}
+ fi
+done
+mv ${PRGNAM}-${VERSION}-source ${PRGNAM}-${VERSION}
cd ${PRGNAM}-${VERSION}
-chown -R root.root *
-find . -perm 777 -exec chmod 755 {} \;
-find . -exec chmod +r {} \;
-
-echo "Building ..."
-
-cd Linux
-# Patches first:
-# Verbose compilation output:
-patch -p0 < ${PATCH0} 2>&1 | tee $OUTPUT/patch-${PRGNAM}.log
-# Support for kernels >= 2.6.23 :
-patch -p1 < ${PATCH1} 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
+# Fix dismount failure:
+cat $SRCDIR/${PRGNAM}_umount.patch | patch -p1 \
+ 2>&1 | tee $OUTPUT/patch-${PRGNAM}.log
+# If you use gcc 4.3 you'll need this:
+if [ $(gcc -dumpversion | tr -d '.' |cut -c 1-2) -ge 43 ]; then
+ cat $SRCDIR/${PRGNAM}_gcc43.patch | patch -p1 \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
+fi
+chown -R root:root .
+chmod -R u+w,go+r-w,a-s .
-CFLAGS="$SLKCFLAGS" \
-KERNEL_VER=$KVER KERNEL_SRC=$KSRC \
-./build.sh 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
+echo Building ...
+export LDFLAGS="$SLKLDFLAGS"
+export CXXFLAGS="$SLKCFLAGS"
+export CFLAGS="$SLKCFLAGS"
-# Run a test
-./Cli/truecrypt --test 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log
+# First build a static wxGTK, then build truecrypt:
+make WX_ROOT==$(cd ../wxGTK-$WXGTK; pwd) wxbuild 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
+make 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log
-# Install all the needed stuff to the package dir:
+# Install the binary:
mkdir -p $PKG/usr/bin
-mkdir -p $PKG/usr/man/man1
-mkdir -p $PKG/lib/modules/$KVER/extra
-
-cp -a Cli/truecrypt $PKG/usr/bin/
-cp -a Cli/Man/truecrypt.1 $PKG/usr/man/man1/
-cp -a Kernel/truecrypt.ko $PKG/lib/modules/$KVER/extra
-chmod 600 $PKG/lib/modules/$KVER/extra/truecrypt.ko
-
-cd ..
+cp Main/truecrypt $PKG/usr/bin
+
+# Add a desktop entry:
+mkdir -p $PKG/usr/share/{applications,pixmaps}
+cp $SRCDIR/truecrypt.png $PKG/usr/share/pixmaps/
+cat <<-EOT > $PKG/usr/share/applications/truecrypt.desktop
+ [Desktop Entry]
+ Name=Truecrypt
+ Comment=Disk encryption software
+ Exec=truecrypt
+ Icon=truecrypt.png
+ Terminal=0
+ Type=Application
+ Encoding=UTF-8
+ Categories=System;Application;
+ EOT
+
+# Add this to the doinst.sh:
+! [ -d $PKG/install ] && mkdir -p $PKG/install
+cat <<EOT >> $PKG/install/doinst.sh
+# Update the desktop database:
+if [ -x usr/bin/update-desktop-database ]; then
+ chroot . /usr/bin/update-desktop-database /usr/share/applications > /dev/null 2>&1
+fi
-# And now write the doinst.sh :
-mkdir -p $PKG/install
-cat <<-EEOOTT > $PKG/install/doinst.sh
- # TrueCrypt install script
- # Determine the rc.modules to use:
- if [ -f etc/rc.d/rc.modules.local ]; then
- RCMODULES="etc/rc.d/rc.modules.local"
- elif [ -f etc/rc.d/rc.modules-$(uname -r) ]; then
- RCMODULES="etc/rc.d/rc.modules-$(uname -r)"
- else
- RCMODULES="etc/rc.d/rc.modules"
- fi
-
- if [ ! -x usr/sbin/dmsetup -a ! -x sbin/dmsetup ] ; then
- echo "TrueCrypt requires device mapper tools (dmsetup) 1.00.08 or later."
- echo "Please install the 'device-mapper' package before trying to use truecrypt."
- fi
-
- # Make the device mapper module load on boot:
- if ! grep -e "^[^#]* dm-mod" \${RCMODULES} >/dev/null ; then
- echo "# Loading device mapper module (for truecrypt amongst others)" >> \${RCMODULES}
- echo "/sbin/modprobe dm-mod" >> \${RCMODULES}
- fi
-
- # Make truecrypt module load on boot:
- if ! grep -e "^[^#]* truecrypt" \${RCMODULES} >/dev/null ; then
- echo "# TrueCrypt OTFE (On The Fly Encryption)" >> \${RCMODULES}
- echo "/sbin/modprobe truecrypt" >> \${RCMODULES}
- fi
-
- # Only run depmod on matching running kernel
- # Slackware will run depmod anyway on reboot):
- MYMODVER=$KVER
- MYKERNEL=\`uname -r\`
-
- if [ "\$MYKERNEL" = "\$MYMODVER" ]; then
- if [ -x sbin/depmod ]; then
- chroot . /sbin/depmod -a \$MYKERNEL 1> /dev/null 2> /dev/null
- # This probably doesn't hurt:
- modprobe -r truecrypt >/dev/null 2>&1
- modprobe dm-mod >/dev/null 2>&1
- modprobe truecrypt >/dev/null 2>&1
- fi
- fi
- EEOOTT
+EOT
# Add documentation:
-cp Release/Readme.txt README.1st
-cp Release/Setup\ Files/TrueCrypt\ User\ Guide.pdf userguide.pdf
-
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a $DOCS \
- $PKG/usr/doc/$PRGNAM-$VERSION
-chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/*
-
-# Compress the man page(s):
-if [ -d $PKG/usr/man ]; then
- find $PKG/usr/man -name "*.?" -type f -exec gzip -9f {} \;
-fi
+cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
+cp -a $SRCDIR/$(basename $0) $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION
+find $PKG/usr/doc -type f -exec chmod 644 {} \;
# Strip binaries:
-( cd $PKG
- find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-)
+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 || true
+cd -
# Add a package description:
mkdir -p $PKG/install
cat $SRCDIR/slack-desc > $PKG/install/slack-desc
-# Substitute correct versions
-sed -i -e "s#\@\@KERNELVERS\@\@#${KVER}#g" $PKG/install/slack-desc
-if [ -f $SRCDIR/slack-required -a $SLACKMAJ -lt 12 ]; then
- cat $SRCDIR/slack-required > $PKG/install/slack-required
+if [ -f $SRCDIR/doinst.sh ]; then
+ cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh
fi
# Build the package:
cd $PKG
-makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}_$(echo $KVER | tr - _)-${ARCH}-${BUILD}.tgz \
- 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
-(cd $OUTPUT && md5sum ${PRGNAM}-${VERSION}_$(echo $KVER | tr - _)-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}_$(echo $KVER | tr - _)-${ARCH}-${BUILD}.tgz.md5)
-cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}_$(echo $KVER | tr - _)-${ARCH}-${BUILD}.txt
-if [ -f $PKG/install/slack-required ]; then
- cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}_$(echo $KVER | tr - _)-${ARCH}-${BUILD}.dep
-fi
+makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.tgz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
+cd $OUTPUT
+md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.tgz.md5
+cd -
+cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt
# Clean up the extra stuff:
if [ "$P1" = "--cleanup" ]; then