diff options
Diffstat (limited to 'multimedia/HandBrake/HandBrake.SlackBuild')
-rw-r--r-- | multimedia/HandBrake/HandBrake.SlackBuild | 109 |
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 |