summaryrefslogtreecommitdiffstats
path: root/handbrake
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2015-10-01 23:11:42 +0000
committer Eric Hameleers <alien@slackware.com>2015-10-01 23:11:42 +0000
commit39152ff2a42535609d04a9c08bb2193bb5477062 (patch)
tree6f42f9e6bf60e11c85c8921339fd4141a3aba50d /handbrake
parent1236139438b10809b19fa034d66abb34128801e5 (diff)
downloadasb-39152ff2a42535609d04a9c08bb2193bb5477062.tar.gz
asb-39152ff2a42535609d04a9c08bb2193bb5477062.tar.xz
handbrake: make it compile on slackware-current (14.2)
Diffstat (limited to 'handbrake')
-rwxr-xr-xhandbrake/build/handbrake.SlackBuild292
1 files changed, 14 insertions, 278 deletions
diff --git a/handbrake/build/handbrake.SlackBuild b/handbrake/build/handbrake.SlackBuild
index d9025d16..23ce2231 100755
--- a/handbrake/build/handbrake.SlackBuild
+++ b/handbrake/build/handbrake.SlackBuild
@@ -51,12 +51,8 @@
# * New release.
# 0.9.9-1: 03/jun/2013 by Eric Hameleers <alien@slackware.com>
# * New release.
-# 0.10.0-1: 24/nov/2014 by Eric Hameleers <alien@slackware.com>
-# * New release. Was not able to compile.
-# 0.10.1-1: 21/mar/2015 by Eric Hameleers <alien@slackware.com>
-# * New release. New attempt at compilation failed.
-# 0.10.2-1: 30/sep/2015 by Eric Hameleers <alien@slackware.com>
-# * New release, another attempt.
+# 0.10.2-1: 01/oct/2015 by Eric Hameleers <alien@slackware.com>
+# * New release, slackware-current only (GTK+3 requirements)
#
# Run 'sh handbrake.SlackBuild' to build a Slackware package.
# The package (.txz) and .txt file as well as build logs are created in /tmp .
@@ -67,20 +63,14 @@
PRGNAM=handbrake
VERSION=${VERSION:-0.10.2}
-# Find the revision for a release tag:
+# Find the revision for a release tag (does not currently work!):
RELREV=${RELREV:-""}
BUILD=${BUILD:-1}
TAG=${TAG:-alien}
DOCS="AUTHORS BUILD COPYING* CREDITS NEWS THANKS TRANSLATIONS"
-# Versions of the GTK stack we need to statically compile:
-ATK=2.12.0 # 2.15.1
-FFI=3.0.13
-GDKPIXBUF=2.30.8 # 2.31.2
-GLIB=2.40.2 # 2.43.0
-GTK=3.12.2 # 3.14.4
-PANGO=1.36.8
+CONTRIBURL="http://download.handbrake.fr/handbrake/contrib"
# Versions of the contribs most of which are compiled-in:
ASS=0.10.0-1
@@ -110,10 +100,6 @@ TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-# We need to compile additional dependencies or else Handbrake fails to build:
-HBDEPSDIR="$TMP/tmp-$PRGNAM/hbdeps"
-mkdir -p $HBDEPSDIR/usr/{bin,doc,include,lib${LIBDIRSUFFIX},man}
-
# Dynamic array index:
DLI=0
@@ -129,33 +115,6 @@ else
fi
DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/gtk+-$GTK.tar.xz"
-SRCURL[$DLI]="http://ftp.gnome.org/pub/gnome/sources/gtk+/$(echo $GTK |cut -d. -f1,2)/gtk+-$GTK.tar.xz"
-
-DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/glib-$GLIB.tar.xz"
-SRCURL[$DLI]="http://ftp.gnome.org/pub/gnome/sources/glib/$(echo $GLIB | cut -d. -f1,2)/glib-$GLIB.tar.xz"
-
-DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/atk-$ATK.tar.xz"
-SRCURL[$DLI]="http://ftp.gnome.org/pub/GNOME/sources/atk/$(echo $ATK | cut -d. -f1,2)/atk-$ATK.tar.xz"
-
-DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/pango-$PANGO.tar.xz"
-SRCURL[$DLI]="http://ftp.gnome.org/pub/GNOME/sources/pango/$(echo $PANGO | cut -d. -f1,2)/pango-$PANGO.tar.xz"
-
-DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/gdk-pixbuf-$GDKPIXBUF.tar.xz"
-SRCURL[$DLI]="http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/$(echo $GDKPIXBUF | cut -d. -f1,2)/gdk-pixbuf-$GDKPIXBUF.tar.xz"
-
-DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/libffi-$FFI.tar.gz"
-SRCURL[$DLI]="ftp://sourceware.org/pub/libffi/libffi-$FFI.tar.gz"
-
-GTKI=$DLI
-CONTRIBURL="http://download.handbrake.fr/handbrake/contrib"
-
-DLI=$(($DLI+1))
SOURCE[$DLI]="$SRCDIR/libass-$ASS.tar.gz"
SRCURL[$DLI]="$CONTRIBURL/libass-$ASS.tar.gz"
@@ -294,41 +253,6 @@ src_checkout() {
esac
}
-# -----------------------------------------------------------------------------
-# Helper function to expose private libs:
-# -----------------------------------------------------------------------------
-pkg_static ()
-{
-PCFILE="$1"
-
-TEMPOUTL=$(mktemp -t alien.XXXXXX)
-TEMPOUTR=$(mktemp -t alien.XXXXXX)
-
-mv "${PCFILE}" "${PCFILE}.orig"
-touch "${PCFILE}"
-cat "${PCFILE}.orig" | while read LINE; do
- lpub="${LINE#Libs:}"
- lpriv="${LINE#Libs.private:}"
- rpub="${LINE#Requires:}"
- rpriv="${LINE#Requires.private:}"
- if test "$lpub" != "$LINE"; then
- echo "$lpub" >> $TEMPOUTL
- elif test "$lpriv" != "$LINE"; then
- echo "$lpriv" >> $TEMPOUTL
- elif test "$rpub" != "$LINE"; then
- echo "$rpub" >> $TEMPOUTR
- elif test "$rpriv" != "$LINE"; then
- echo "$rpriv" >> $TEMPOUTR
- else
- echo "$LINE" >> ${PCFILE}
- fi
-done
-echo "Libs: $(echo $(cat $TEMPOUTL))" >> ${PCFILE}
-echo "Requires: $(echo $(cat $TEMPOUTR))" >> ${PCFILE}
-
-rm -f $TEMPOUTL $TEMPOUTR
-}
-
# Regular URL downloads follow:
for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do
if ! [ -f ${SOURCE[$i]} ]; then
@@ -374,200 +298,16 @@ cd $TMP/tmp-$PRGNAM
# ---------------------------------------------------------------------------
#
-for FF in $(seq 1 $GTKI); do
- tar xvf ${SOURCE[$FF]}
-done
-chown -R root:root .
-chmod -R u+w,go+r-w,a+X-s .
-
-echo "Compiling ffi static libraries:"
-cd libffi-${FFI}
- cat $SRCDIR/patches/libffi.includedir.diff | patch -p1 --verbose \
- 2>&1 | tee $OUTPUT/patch-${PRGNAM}_ffi.log
-
- # Expose all privately used libs to facilitate static linking:
- for PCIN in *.pc.in ; do pkg_static $PCIN ; done
-
- CFLAGS="-I$HBDEPSDIR/usr/include $SLKCFLAGS" \
- LDFLAGS="-L$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
- PKG_CONFIG_PATH="$HBDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
- PKG_CONFIG="pkg-config --static" \
- ./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=$HBDEPSDIR/etc \
- --localstatedir=$HBDEPSDIR/var \
- --mandir=$HBDEPSDIR/usr/man \
- --infodir=$HBDEPSDIR/usr/info \
- --docdir=$HBDEPSDIR/usr/doc/$PRGNAM-$VERSION \
- --enable-static \
- --disable-shared \
- --build=$TARGET \
- 2>&1 | tee $OUTPUT/configure-${PRGNAM}_ffi.log
-
- make 2>&1 | tee $OUTPUT/make-${PRGNAM}_ffi.log
- make install \
- 2>&1 | tee $OUTPUT/install-${PRGNAM}_ffi.log
-cd -
-
-echo "Compiling glib2 static libraries:"
-cd glib-${GLIB}
- # Silly upstream, using the bleeding edge. Reconf:
- autoreconf --force --install
-
- # Expose all privately used libs to facilitate static linking:
- for PCIN in *.pc.in ; do pkg_static $PCIN ; done
-
- CFLAGS="-I$HBDEPSDIR/usr/include $SLKCFLAGS" \
- LDFLAGS="-L$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS -lpthread -lffi" \
- PKG_CONFIG_PATH="$HBDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
- PKG_CONFIG="pkg-config --static" \
- ./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
- --enable-static \
- --disable-shared \
- --build=$TARGET \
- 2>&1 | tee $OUTPUT/configure-${PRGNAM}_glib.log
-
- make 2>&1 | tee $OUTPUT/make-${PRGNAM}_glib.log
- make install \
- 2>&1 | tee $OUTPUT/install-${PRGNAM}_glib.log
-cd -
-
-echo "Compiling atk static libraries:"
-cd atk-$ATK
- # Expose all privately used libs to facilitate static linking:
- for PCIN in *.pc.in ; do pkg_static $PCIN ; done
-
- CFLAGS="-I$HBDEPSDIR/usr/include $SLKCFLAGS" \
- LDFLAGS="-L$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
- PKG_CONFIG_PATH="$HBDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
- PKG_CONFIG="pkg-config --static" \
- ./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
- --enable-static \
- --disable-shared \
- --build=$TARGET \
- 2>&1 | tee $OUTPUT/configure-${PRGNAM}_atk.log
-
- make 2>&1 | tee $OUTPUT/make-${PRGNAM}_atk.log
- make install 2>&1 | tee $OUTPUT/install-${PRGNAM}_atk.log
-cd -
-
-echo "Compiling gdk-pixbuf static libraries:"
-cd gdk-pixbuf-$GDKPIXBUF
- # Expose all privately used libs to facilitate static linking:
- for PCIN in *.pc.in ; do pkg_static $PCIN ; done
-
- CFLAGS="-I$HBDEPSDIR/usr/include $SLKCFLAGS" \
- LDFLAGS="-L$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS -lz" \
- PKG_CONFIG_PATH="$HBDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
- PKG_CONFIG="pkg-config --static" \
- ./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
- --enable-static \
- --disable-shared \
- --enable-introspection \
- --with-x11 \
- --build=$TARGET \
- 2>&1 | tee $OUTPUT/configure-${PRGNAM}_gdkpixbuf.log
-
- make 2>&1 | tee $OUTPUT/make-${PRGNAM}_gdkpixbuf.log
- make install 2>&1 | tee $OUTPUT/install-${PRGNAM}_gdkpixbuf.log
-
- # We need to massage the pkgconfig file to prevent libgio-2.0 linking errors:
- sed -e '/^Libs:/s/-lm/-lgio-2.0 -lz -lresolv &/' \
- -i $HBDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig/gdk-pixbuf-2.0.pc
-cd -
-
-echo "Compiling pango static libraries:"
-cd pango-$PANGO
- # Fix for x86_64 (does not hurt the other archs but note that we will start
- # using /etc/pango/$host instead of /etc/pango/ now):
- cat $SRCDIR/patches/pango.etc.host.location.diff | patch -p1 --verbose \
- 2>&1 | tee $OUTPUT/patch-${PRGNAM}_pango.log
-
- # Autoconf changes linux to linux-gnu.
- # Our host is $ARCH-slackware-linux not $ARCH-slackware-linux-gnu:
- sed -i -e 's#linux|linux-gnu|#linux|linux|#' config.sub
-
- # Expose all privately used libs to facilitate static linking:
- for PCIN in *.pc.in ; do pkg_static $PCIN ; done
-
- CFLAGS="-I$HBDEPSDIR/usr/include $SLKCFLAGS" \
- LDFLAGS="-L$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
- PKG_CONFIG_PATH="$HBDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
- PKG_CONFIG="pkg-config --static" \
- ./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
- --with-xft \
- --enable-static \
- --disable-shared \
- --build=$TARGET \
- --host=$TARGET \
- --target=$TARGET \
- 2>&1 | tee $OUTPUT/configure-${PRGNAM}_pango.log
-
- make 2>&1 | tee $OUTPUT/make-${PRGNAM}_pango.log
- make install 2>&1 | tee $OUTPUT/install-${PRGNAM}_pango.log
-cd -
-
-echo "Compiling gtk+3 static libraries:"
-cd gtk+-${GTK}
- # Regenerate ./configure:
- libtoolize --copy --force
- autoreconf -vif
-
- # Autoconf changes linux to linux-gnu.
- # Our host is $ARCH-slackware-linux not $ARCH-slackware-linux-gnu:
- sed -i -e 's#linux|linux-gnu|#linux|linux|#' build-aux/config.sub
-
- # Expose all privately used libs to facilitate static linking:
- for PCIN in *.pc.in ; do pkg_static $PCIN ; done
-
- CFLAGS="-I$HBDEPSDIR/usr/include $SLKCFLAGS" \
- LDFLAGS="-L$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
- PKG_CONFIG_PATH="$HBDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
- PKG_CONFIG="pkg-config --static" \
- ./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
- --enable-gtk2-dependency \
- --enable-xkb \
- --disable-modules \
- --disable-shared \
- --enable-static \
- --build=$TARGET \
- 2>&1 | tee $OUTPUT/configure-${PRGNAM}_gtk.log
-
- make 2>&1 | tee $OUTPUT/make-${PRGNAM}_gtk.log
- make install \
- RUN_QUERY_IMMODULES_TEST=false RUN_QUERY_LOADER_TEST=false \
- 2>&1 | tee $OUTPUT/install-${PRGNAM}_gtk.log
-cd -
-
-#
-# ---------------------------------------------------------------------------
-#
-
-echo "Continuing with $PRGNAM:"
tar -xvf ${SOURCE[0]}
cd HandBrake-${VERSION}
+chown -R root:root .
+chmod -R u+w,go+r-w,a+X-s .
touch $OUTPUT/patch-${PRGNAM}.log
# Handbrake thinks all Linux systems come with libass, lame and x264:
cat $SRCDIR/patches/handbrake.static_modules.patch |patch -p1 --verbose \
2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
-# Add our own PKG_CONFIG_PATH to make it find our private GTK+3:
-cat $SRCDIR/patches/gtk/gtk_use_my_pkgconfigpath.patch \
- | sed -e "s,@PKGCONFIGPATH@,${HBDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig/," \
- | patch -p1 --verbose \
- 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
# Add some of our own patches to the build:
HBTOPDIR=$(pwd)
@@ -575,27 +315,23 @@ cd $SRCDIR/patches
cp -a --parent contrib $HBTOPDIR/
cd -
+# And remove this one;
+# it's gone in git master and replaced by the one we just added:
+rm contrib/lame/P00-darwin-xmmintrin.patch
+
mkdir download
-for FF in $(seq $(($GTKI+1)) $(( ${#SOURCE[@]} -1 ))); do
+for FF in $(seq 1 $(( ${#SOURCE[@]} -1 ))); do
cp ${SOURCE[$FF]} download/
done
chown -R root:root .
chmod -R u+w,go+r-w,a+X-s .
-# Pre-req test:
-if ! which yasm 1>/dev/null 2>&1 ; then
- echo "Could not find 'yasm'. Please install yasm and restart '$(basename $0)'"
- exit 1
-fi
-
echo Building ...
# This will build the commandline and GTK programs
-CFLAGS="-I$HBDEPSDIR/usr/include $SLKCFLAGS" \
-CXXFLAGS="-I$HBDEPSDIR/usr/include $SLKCFLAGS" \
-LDFLAGS="-L$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} -lgio-2.0 $SLKLDFLAGS" \
-PKG_CONFIG_PATH="$HBDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
-PKG_CONFIG="pkg-config --static" \
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+LDFLAGS="$SLKLDFLAGS" \
./configure \
--prefix=/usr \
--disable-gtk-update-checks \