summaryrefslogtreecommitdiffstats
path: root/multimedia/winff/winff.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/winff/winff.SlackBuild')
-rw-r--r--multimedia/winff/winff.SlackBuild145
1 files changed, 105 insertions, 40 deletions
diff --git a/multimedia/winff/winff.SlackBuild b/multimedia/winff/winff.SlackBuild
index fbd6015c8c..52eb1ccfc3 100644
--- a/multimedia/winff/winff.SlackBuild
+++ b/multimedia/winff/winff.SlackBuild
@@ -1,8 +1,9 @@
-#!/bin/sh
+#!/bin/bash
-# Slackware build script for WinFF
+# Slackware build script for winff
# Copyright 2010 by Giovanne Castro, Campinas, Sao Paulo, Brazil <giovannefc@ig.com.br>
+# Copyright 2022-2024 Vijay Marcel
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -11,75 +12,139 @@
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS 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 AUTHOR 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.
-
-# Modified by the SlackBuilds.org project
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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.
+
+# 20230527 bkw: modified by SlackBuilds.org:
+# - fix ARCH, use separate CPU variable for the compiler.
+# - grammar cleanups for README.
+# - stop creating /root/.lazarus/compilertest.pas outside of $TMP.
+
+cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=winff
-VERSION=${VERSION:-20170714_220b212}
+VERSION=${VERSION:-1.6.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) ARCH=i386 ;;
+case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
- *) ARCH=$( uname -m ) ;;
- esac
+ *) ARCH=$( uname -m ) ;;
+esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
fi
-CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-set -e
+case "$ARCH" in
+ i?86) CPU="i386"
+ LIBDIRSUFFIX=""
+ ;;
+ x86_64) CPU="x86_64"
+ LIBDIRSUFFIX="64"
+ ;;
+ *) printf "$ARCH is not supported...\n"
+ exit 1
+ ;;
+esac
+
+set -e
+trap 'echo "$0 FAILED at line $LINENO!" | tee -a $OUTPUT/error-${PRGNAM}.log' ERR
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
-cd $PRGNAM-$VERSION
+rm -rf $PRGNAM-$PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
+ -o -perm 511 \) -exec chmod 755 {} + -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} +
+
+echo "Patching Winff, See README and changelog for Details"
+
+cd $PRGNAM
+
+patch --verbose --unified < $CWD/patches/unit1-pas.patch
+patch --verbose --unified < $CWD/patches/unit2-pas.patch
+patch --verbose --unified < $CWD/patches/unit3-lfm.patch
+patch --verbose --unified < $CWD/patches/unit3-pas.patch
+patch --verbose --unified < $CWD/patches/unit4-pas.patch
+patch --verbose --unified < $CWD/patches/unit5-pas.patch
+patch --verbose --unified < $CWD/patches/unit6-pas.patch
+patch --verbose --unified < $CWD/patches/winff-lpi.patch
+patch --verbose --unified < $CWD/patches/winff-lpr.patch
+patch --verbose --unified < $CWD/patches/winff-1.patch
+
+echo "Patching the languages file"
+
+find languages -type f -not \( -name 'winff.po' -or -name 'winff.pot' -or -name 'winff.en_GB.po' \) -delete
+
+cd languages
-lazbuild --lazarusdir=/usr/share/lazarus --cpu=$ARCH -B winff.lpr
+patch --verbose --unified < $CWD/patches/winff-pot.patch
+patch --verbose --unified < $CWD/patches/winff-en.patch
-install -m 0755 -D $PRGNAM $PKG/usr/bin/$PRGNAM
+cd ..
-mkdir -p $PKG/usr/share/winff
-cp -a languages $PKG/usr/share/winff/
-zcat $CWD/presets.xml.gz > $PKG/usr/share/winff/presets.xml
+# Adapted from https://slackbuilds.org/slackbuilds/15.0/system/doublecmd-qt5/doublecmd-qt5.SlackBuild
+# This should technically prevent lazbuild to put object code files in /usr/share/lazarus when builing
+# pascal applications using lazbuild
-mkdir -p $PKG/usr/man/man1
-gzip -c9 $PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz
+echo "we are now copying /usr/share/lazarus to $(pwd) to avoid putting object code files in /usr/share/lazarus when compiling winff"
+
+cp -a /usr/share/lazarus ./
+
+echo "Building WinFF with QT5 Widget insted of GTK"
+
+$(pwd)/lazarus/lazbuild --lazarusdir="$(pwd)/lazarus" --widgetset=qt5 --cpu=$CPU -B winff.lpr
+
+install -s -m 0755 -D $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/$PRGNAM $PKG/usr/bin/$PRGNAM
+
+mkdir -pv $PKG/usr/share/$PRGNAM
+cp -a $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/languages $PKG/usr/share/$PRGNAM/
+cp -a $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/presets.xml $PKG/usr/share/$PRGNAM/
+install -m 0644 $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/scripts/check_presets.sh $PKG/usr/share/$PRGNAM/
+
+mkdir -pv $PKG/usr/man/man1
+gzip -c9 $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz
install -m 0644 -D $CWD/$PRGNAM.desktop $PKG/usr/share/applications/$PRGNAM.desktop
-install -m 0644 -D winff-icons/48x48/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
+install -m 0644 -D $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/winff-icons/48x48/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
-# Copy documentation
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a docs/*.{pdf,txt} $PKG/usr/doc/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+mkdir -pv $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/COPYING $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/AUTHORS $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/{README-Presets.txt,changelog.txt} $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a $TMP/$PRGNAM-$PRGNAM-$VERSION/$PRGNAM/docs/*.{pdf,txt} $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a $TMP/$PRGNAM-$PRGNAM-$VERSION/README.md $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-mkdir $PKG/install
+mkdir -pv $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.${PKGTYPE:-tgz}
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
+