summaryrefslogtreecommitdiffstats
path: root/multimedia/HandBrake/HandBrake.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/HandBrake/HandBrake.SlackBuild')
-rw-r--r--multimedia/HandBrake/HandBrake.SlackBuild109
1 files changed, 81 insertions, 28 deletions
diff --git a/multimedia/HandBrake/HandBrake.SlackBuild b/multimedia/HandBrake/HandBrake.SlackBuild
index 4c8a28ff04..c180a1fa80 100644
--- a/multimedia/HandBrake/HandBrake.SlackBuild
+++ b/multimedia/HandBrake/HandBrake.SlackBuild
@@ -1,17 +1,43 @@
-#!/bin/sh
+#!/bin/bash
# Slackware build script for HandBrake
-# This slackbuild maintained by Klaatu at klaatu@hackerpublicradio.org
+# This slackbuild was maintained by Klaatu at klaatu@hackerpublicradio.org
# Modified by David Somero at SlackBuilds.org.
# Modified by Erik Hanson at SlackBuilds.org
# Patched to fix x264 segfault by John Vogel
+# Permission from Klaatu was given in 2024 to add the following copyright.
+# If any previous maintainers would like to have their info added, please
+# contact the current maintainer.
+
+# Copyright 2024 Jeremy Hansen <jebrhansen+SBo@gmail.com>
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 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.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
PRGNAM=HandBrake
-VERSION=${VERSION:-1.0.7}
+VERSION=${VERSION:-1.8.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
-DOCDIR=${DOCDIR:-/usr/doc}
+PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -21,13 +47,17 @@ if [ -z "$ARCH" ]; then
esac
fi
-CWD=$(pwd)
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@@ -40,22 +70,16 @@ else
LIBDIRSUFFIX=""
fi
-SLKCFLAGS="$SLKCFLAGS -fno-aggressive-loop-optimizations"
-saved_CFLAGS="$CFLAGS"
-saved_CXXFLAGS="$CFLAGS"
-export CFLAGS="$SLKCFLAGS"
-export CXXFLAGS="$SLKCFLAGS"
-
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
+tar xvf $CWD/$PRGNAM-$VERSION-source.tar.bz2
cd $PRGNAM-$VERSION
mkdir -p download
-cp -r $CWD/* download
+cp -r $CWD/*.tar.{gz,bz2} download/
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -63,34 +87,63 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+# Correct dependency tarball naming inconsistency
+mv download/AMF-1.4.33-slim.tar.gz download/AMF-1.4.33.tar.gz
+
+# Disable 10/12bit x265 on 32bit since it fails compilation
+if echo "$ARCH" | grep -q "i.86"; then
+ sed -i '/1[02]bit/d' make/include/main.defs
+ sed -i '/1[02]bit/d;s|main.a \\|main.a|' contrib/x265/module.defs
+ sed -i 's|-DEXTRA_LIB="x265_main10.a;x265_main12.a" -DEXTRA_LINK_FLAGS=-L. -DLINKED_10BIT=ON -DLINKED_12BIT=ON ||' contrib/x265_8bit/module.defs
+fi
+
+# Make the GUI optional
+if [ "$GUI" == "no" ]; then
+ GTK_GUI="--disable-gtk"
+else
+ GTK_GUI="--enable-gtk"
+fi
+
+# libdovi and nvdec/nvenc currently don't compile successfully on my
+# machine. Feel free to send any suggestions/fixes.
+# libdovi fails if not forcefully disabled... disabling nvdec/nvenc
+# in case it does the same.
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
- --disable-gtk-update-checks \
--enable-fdk-aac \
- --disable-libav-aac \
+ --enable-numa \
+ --enable-qsv \
+ --enable-vce \
--enable-x265 \
+ --disable-libdovi \
+ --disable-nvdec \
+ --disable-nvenc \
+ $GTK_GUI \
--arch=$ARCH
cd build
- # Fix underlinking by configuring the gtk module first, then sed:
- make gtk.configure
make
make install DESTDIR=$PKG
-cd $TMP/$PRGNAM-$VERSION
-export CFLAGS="$saved_CFLAGS"
-export CXXFLAGS="$saved_CXXFLAGS"
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+cd $TMP/$PRGNAM-$VERSION
-mkdir -p $PKG/$DOCDIR/$PRGNAM-$VERSION
-cp -a AUTHORS.markdown COPYING NEWS.markdown THANKS.markdown README.markdown \
- $PKG/$DOCDIR/$PRGNAM-$VERSION
-cat $CWD/$PRGNAM.SlackBuild > $PKG/$DOCDIR/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ AUTHORS.markdown COPYING NEWS.markdown THANKS.markdown README.markdown \
+ $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
+# Don't use the doinst.sh if there is no GUI
+if [ "$GUI" != "no" ]; then cat $CWD/doinst.sh > $PKG/install/doinst.sh; fi
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