diff options
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 |
commit | 39152ff2a42535609d04a9c08bb2193bb5477062 (patch) | |
tree | 6f42f9e6bf60e11c85c8921339fd4141a3aba50d /handbrake | |
parent | 1236139438b10809b19fa034d66abb34128801e5 (diff) | |
download | asb-39152ff2a42535609d04a9c08bb2193bb5477062.tar.gz asb-39152ff2a42535609d04a9c08bb2193bb5477062.tar.xz |
handbrake: make it compile on slackware-current (14.2)
Diffstat (limited to 'handbrake')
-rwxr-xr-x | handbrake/build/handbrake.SlackBuild | 292 |
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 \ |