summaryrefslogtreecommitdiffstats
path: root/handbrake
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2016-12-30 10:03:12 +0000
committer Eric Hameleers <alien@slackware.com>2016-12-30 10:03:12 +0000
commit61fe40bfba9b75ec8cf6e228baa120cf1cfa52c4 (patch)
tree343f185051b8b863e76ccb331be0232e942d677f /handbrake
parent0e8ee8aa99490554b0ed6846cb3892ec206812c9 (diff)
downloadasb-61fe40bfba9b75ec8cf6e228baa120cf1cfa52c4.tar.gz
asb-61fe40bfba9b75ec8cf6e228baa120cf1cfa52c4.tar.xz
handbrake: new attempts to add an internal copy of GTK+3 libraries. Unsuccessful, ghb still segfaults.
Diffstat (limited to 'handbrake')
-rwxr-xr-xhandbrake/build/handbrake_static.SlackBuild300
1 files changed, 188 insertions, 112 deletions
diff --git a/handbrake/build/handbrake_static.SlackBuild b/handbrake/build/handbrake_static.SlackBuild
index d9025d16..bf95fdca 100755
--- a/handbrake/build/handbrake_static.SlackBuild
+++ b/handbrake/build/handbrake_static.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
# $Id$
-# Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015 Eric Hameleers, Eindhoven, NL
+# Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Eric Hameleers, Eindhoven, NL
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -51,12 +51,13 @@
# * 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)
+# 0.10.5-1: 03/apr/2016 by Eric Hameleers <alien@slackware.com>
+# * Update, slackware-current only (GTK+3 requirements)
+# 1.0.0-1: 27/dec/2016 by Eric Hameleers <alien@slackware.com>
+# * First stable release!
+# Builds on slackware 14.2 and newer 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 .
@@ -66,40 +67,52 @@
PRGNAM=handbrake
-VERSION=${VERSION:-0.10.2}
-# Find the revision for a release tag:
+VERSION=${VERSION:-1.0.0}
+# 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"
+# Do you want to compile the GTK+3 based GUI (ghb) or just HandBrakeCLI ?
+# By default the script compiles the GUI but that will fail if your GTK+3
+# is not new enough.
+WITH_GUI=${WITH_GUI:-"YES"}
+
+DOCS="AUTHORS* COPYING* LICENSE* NEWS* README* THANKS*"
+
+CONTRIBURL="http://download.handbrake.fr/handbrake/contrib"
# Versions of the GTK stack we need to statically compile:
ATK=2.12.0 # 2.15.1
+CAIRO=1.12.18
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
+PIXMAN=0.32.8
# Versions of the contribs most of which are compiled-in:
-ASS=0.10.0-1
-BLURAY="0.5.0"
-FDKAAC="v0.1.1-6-gbae4553"
-FFMPEG="v10.1"
-FONTCONFIG=2.8.0
-FREETYPE=2.4.7
-FRIBIDI=0.19.2
+ASS=0.13.2
+BLURAY="0.9.3"
+FDKAAC="0.1.4"
+FFMPEG="12"
+FONTCONFIG=2.12.1
+FREETYPE=2.6.5
+FRIBIDI=0.19.7
+HARFBUZZ=1.3.0
+JANSSON="2.6"
LAME=3.98
-DVDNAV=5.0.1-0-gaa3659d
+DVDNAV=5.0.1
DVDREAD=5.0.0-6-gcb1ae87
OGG=1.3.0
+OPUS=1.1.3
SAMPLERATE=0.1.4
THEORA=1.1.0
VORBIS="aotuv_b6.03"
-VPX="v1.3.0"
-X264="r2479-dd79a61"
-X265="9329-0d30d2641875-1.5"
+VPX="1.5.0"
+X264="snapshot-20160920-2245-stable"
+X265="2.1-1"
XML2="2.7.7"
# Where do we look for sources?
@@ -110,10 +123,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
@@ -141,6 +150,14 @@ 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/pixman-$PIXMAN.tar.xz"
+SRCURL[$DLI]="https://www.cairographics.org/releases/pixman-$PIXMAN.tar.gz"
+
+DLI=$(($DLI+1))
+SOURCE[$DLI]="$SRCDIR/cairo-$CAIRO.tar.xz"
+SRCURL[$DLI]="https://www.cairographics.org/releases/cairo-$CAIRO.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"
@@ -152,8 +169,8 @@ DLI=$(($DLI+1))
SOURCE[$DLI]="$SRCDIR/libffi-$FFI.tar.gz"
SRCURL[$DLI]="ftp://sourceware.org/pub/libffi/libffi-$FFI.tar.gz"
+# Mark the spot where GTK GUI deps stop and codec support libraries start:
GTKI=$DLI
-CONTRIBURL="http://download.handbrake.fr/handbrake/contrib"
DLI=$(($DLI+1))
SOURCE[$DLI]="$SRCDIR/libass-$ASS.tar.gz"
@@ -164,24 +181,32 @@ SOURCE[$DLI]="$SRCDIR/libbluray-$BLURAY.tar.bz2"
SRCURL[$DLI]="$CONTRIBURL/libbluray-$BLURAY.tar.bz2"
DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/fdk-aac-$FDKAAC.tar.bz2"
-SRCURL[$DLI]="$CONTRIBURL/fdk-aac-$FDKAAC.tar.bz2"
+SOURCE[$DLI]="$SRCDIR/harfbuzz-$HARFBUZZ.tar.bz2"
+SRCURL[$DLI]="$CONTRIBURL/harfbuzz-$HARFBUZZ.tar.bz2"
DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/libav-$FFMPEG.tar.bz2"
-SRCURL[$DLI]="$CONTRIBURL/libav-$FFMPEG.tar.bz2"
+SOURCE[$DLI]="$SRCDIR/fdk-aac-$FDKAAC.tar.gz"
+SRCURL[$DLI]="$CONTRIBURL/fdk-aac-$FDKAAC.tar.gz"
DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/fribidi-$FRIBIDI.tar.gz"
-SRCURL[$DLI]="$CONTRIBURL/fribidi-$FRIBIDI.tar.gz"
+SOURCE[$DLI]="$SRCDIR/libav-$FFMPEG.tar.gz"
+SRCURL[$DLI]="$CONTRIBURL/libav-$FFMPEG.tar.gz"
+
+DLI=$(($DLI+1))
+SOURCE[$DLI]="$SRCDIR/fribidi-$FRIBIDI.tar.bz2"
+SRCURL[$DLI]="$CONTRIBURL/fribidi-$FRIBIDI.tar.bz2"
+
+DLI=$(($DLI+1))
+SOURCE[$DLI]="$SRCDIR/jansson-$JANSSON.tar.bz2"
+SRCURL[$DLI]="$CONTRIBURL/jansson-$JANSSON.tar.bz2"
DLI=$(($DLI+1))
SOURCE[$DLI]="$SRCDIR/lame-$LAME.tar.gz"
SRCURL[$DLI]="$CONTRIBURL/lame-$LAME.tar.gz"
DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/libdvdnav-$DVDNAV.tar.gz"
-SRCURL[$DLI]="$CONTRIBURL/libdvdnav-$DVDNAV.tar.gz"
+SOURCE[$DLI]="$SRCDIR/libdvdnav-$DVDNAV.tar.bz2"
+SRCURL[$DLI]="$CONTRIBURL/libdvdnav-$DVDNAV.tar.bz2"
DLI=$(($DLI+1))
SOURCE[$DLI]="$SRCDIR/libdvdread-$DVDREAD.tar.gz"
@@ -192,12 +217,16 @@ SOURCE[$DLI]="$SRCDIR/libvpx-$VPX.tar.bz2"
SRCURL[$DLI]="$CONTRIBURL/libvpx-$VPX.tar.bz2"
DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/x264-$X264.tar.gz"
-SRCURL[$DLI]="$CONTRIBURL/x264-$X264.tar.gz"
+SOURCE[$DLI]="$SRCDIR/opus-$OPUS.tar.gz"
+SRCURL[$DLI]="$CONTRIBURL/opus-$OPUS.tar.gz"
+
+DLI=$(($DLI+1))
+SOURCE[$DLI]="$SRCDIR/x264-$X264.tar.bz2"
+SRCURL[$DLI]="$CONTRIBURL/x264-$X264.tar.bz2"
DLI=$(($DLI+1))
-SOURCE[$DLI]="$SRCDIR/x265-$X265.tar.bz2"
-SRCURL[$DLI]="$CONTRIBURL/x265-$X265.tar.bz2"
+SOURCE[$DLI]="$SRCDIR/x265_$X265.tar.gz"
+SRCURL[$DLI]="$CONTRIBURL/x265_$X265.tar.gz"
##
## --- with a little luck, you won't have to edit below this point --- ##
@@ -374,6 +403,22 @@ cd $TMP/tmp-$PRGNAM
# ---------------------------------------------------------------------------
#
+# We need to compile additional dependencies or else Handbrake fails to build:
+HBDEPSDIR="/usr/lib${LIBDIRSUFFIX}/hbgtk3"
+
+# Sanity check: in case we need to build an internal GTK+3, do not compile
+# this package when handbrake already installed!
+if [ -d $HBDEPSDIR ]; then
+ echo ""
+ echo "** You have handbrake installed in $HBDEPSDIR ;"
+ echo "** Compiling this package means you have to remove the existing"
+ echo "** handbrake installation first, it conflicts with the compilation!"
+ echo ""
+ exit 1
+else
+ mkdir -p $HBDEPSDIR/{bin,doc,include,lib${LIBDIRSUFFIX},man}
+fi
+
for FF in $(seq 1 $GTKI); do
tar xvf ${SOURCE[$FF]}
done
@@ -388,24 +433,25 @@ cd libffi-${FFI}
# 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" \
+ CFLAGS="-I$HBDEPSDIR/include $SLKCFLAGS" \
+ LDFLAGS="-L$HBDEPSDIR/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
+ PKG_CONFIG_PATH="$HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig" \
PKG_CONFIG="pkg-config --static" \
./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --prefix=$HBDEPSDIR \
+ --libdir=$HBDEPSDIR/lib${LIBDIRSUFFIX} \
--sysconfdir=$HBDEPSDIR/etc \
--localstatedir=$HBDEPSDIR/var \
- --mandir=$HBDEPSDIR/usr/man \
- --infodir=$HBDEPSDIR/usr/info \
- --docdir=$HBDEPSDIR/usr/doc/$PRGNAM-$VERSION \
+ --mandir=$HBDEPSDIR/man \
+ --infodir=$HBDEPSDIR/info \
+ --docdir=$HBDEPSDIR/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
+ # We spam the root partition:
make install \
2>&1 | tee $OUTPUT/install-${PRGNAM}_ffi.log
cd -
@@ -418,19 +464,20 @@ cd glib-${GLIB}
# 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" \
+ CFLAGS="-I$HBDEPSDIR/include $SLKCFLAGS" \
+ LDFLAGS="-L$HBDEPSDIR/lib${LIBDIRSUFFIX} $SLKLDFLAGS -lpthread -lffi" \
+ PKG_CONFIG_PATH="$HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig" \
PKG_CONFIG="pkg-config --static" \
./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --prefix=$HBDEPSDIR \
+ --libdir=$HBDEPSDIR/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
+ # We spam the root partition:
make install \
2>&1 | tee $OUTPUT/install-${PRGNAM}_glib.log
cd -
@@ -440,19 +487,20 @@ 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" \
+ CFLAGS="-I$HBDEPSDIR/include $SLKCFLAGS" \
+ LDFLAGS="-L$HBDEPSDIR/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
+ PKG_CONFIG_PATH="$HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig" \
PKG_CONFIG="pkg-config --static" \
./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --prefix=$HBDEPSDIR \
+ --libdir=$HBDEPSDIR/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
+ # We spam the root partition:
make install 2>&1 | tee $OUTPUT/install-${PRGNAM}_atk.log
cd -
@@ -461,13 +509,13 @@ 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" \
+ CFLAGS="-I$HBDEPSDIR/include $SLKCFLAGS" \
+ LDFLAGS="-L$HBDEPSDIR/lib${LIBDIRSUFFIX} $SLKLDFLAGS -lz" \
+ PKG_CONFIG_PATH="$HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig" \
PKG_CONFIG="pkg-config --static" \
./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --prefix=$HBDEPSDIR \
+ --libdir=$HBDEPSDIR/lib${LIBDIRSUFFIX} \
--enable-static \
--disable-shared \
--enable-introspection \
@@ -476,11 +524,12 @@ cd gdk-pixbuf-$GDKPIXBUF
2>&1 | tee $OUTPUT/configure-${PRGNAM}_gdkpixbuf.log
make 2>&1 | tee $OUTPUT/make-${PRGNAM}_gdkpixbuf.log
+ # We spam the root partition:
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
+ -i $HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig/gdk-pixbuf-2.0.pc
cd -
echo "Compiling pango static libraries:"
@@ -497,13 +546,13 @@ cd pango-$PANGO
# 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" \
+ CFLAGS="-I$HBDEPSDIR/include $SLKCFLAGS" \
+ LDFLAGS="-L$HBDEPSDIR/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
+ PKG_CONFIG_PATH="$HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig" \
PKG_CONFIG="pkg-config --static" \
./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
+ --prefix=$HBDEPSDIR \
+ --libdir=$HBDEPSDIR/lib${LIBDIRSUFFIX} \
--with-xft \
--enable-static \
--disable-shared \
@@ -513,6 +562,7 @@ cd pango-$PANGO
2>&1 | tee $OUTPUT/configure-${PRGNAM}_pango.log
make 2>&1 | tee $OUTPUT/make-${PRGNAM}_pango.log
+ # We spam the root partition:
make install 2>&1 | tee $OUTPUT/install-${PRGNAM}_pango.log
cd -
@@ -529,14 +579,14 @@ cd gtk+-${GTK}
# 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" \
+ CFLAGS="-I$HBDEPSDIR/include $SLKCFLAGS" \
+ LDFLAGS="-L$HBDEPSDIR/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
+ PKG_CONFIG_PATH="$HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig" \
PKG_CONFIG="pkg-config --static" \
./configure \
- --prefix=$HBDEPSDIR/usr \
- --libdir=$HBDEPSDIR/usr/lib${LIBDIRSUFFIX} \
- --enable-gtk2-dependency \
+ --prefix=$HBDEPSDIR \
+ --libdir=$HBDEPSDIR/lib${LIBDIRSUFFIX} \
+ --disable-gtk2-dependency \
--enable-xkb \
--disable-modules \
--disable-shared \
@@ -545,6 +595,7 @@ cd gtk+-${GTK}
2>&1 | tee $OUTPUT/configure-${PRGNAM}_gtk.log
make 2>&1 | tee $OUTPUT/make-${PRGNAM}_gtk.log
+ # We spam the root partition:
make install \
RUN_QUERY_IMMODULES_TEST=false RUN_QUERY_LOADER_TEST=false \
2>&1 | tee $OUTPUT/install-${PRGNAM}_gtk.log
@@ -557,23 +608,42 @@ 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
+
+# Fix compilation of libdvdread and fribidi on Slackware 14.1:
+cat $SRCDIR/patches/handbrake.libdvdread_automake.patch |patch -p1 --verbose \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
+cat $SRCDIR/patches/handbrake.fribidi_autoconf.patch |patch -p1 --verbose \
+ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
+
+# Fix a potential crash in the 2-pass VP8 encoder (fixed after 1.0.0):
+cat $SRCDIR/patches/handbrake.encavcodec_crash.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/," \
+ | sed -e "s,@PKGCONFIGPATH@,$HBDEPSDIR/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)
-cd $SRCDIR/patches
- cp -a --parent contrib $HBTOPDIR/
-cd -
+## Add some of our own patches to the build:
+#HBTOPDIR=$(pwd)
+#cd $SRCDIR/patches
+# cp -a --parent contrib $HBTOPDIR/
+#cd -
+
+if [ "$WITH_GUI" = "YES" -o "$WITH_GUI" = "yes" ]; then
+ GUI_OPTS="--disable-gtk-update-checks"
+else
+ GUI_OPTS="--disable-gtk"
+fi
mkdir download
for FF in $(seq $(($GTKI+1)) $(( ${#SOURCE[@]} -1 ))); do
@@ -582,52 +652,57 @@ 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" \
+# This will build the commandline and GTK (if requested) programs,
+# adding ' -lglib-2.0' to the LDFLAGS was needed for the program to link
+# against libfribidi.a on 32bit:
+export LD_LIBRARY_PATH="$HBDEPSDIR/lib${LIBDIRSUFFIX}"
+export LD_RUN_PATH="$HBDEPSDIR/lib${LIBDIRSUFFIX}"
+CFLAGS="-I$HBDEPSDIR/include $SLKCFLAGS" \
+CXXFLAGS="-I$HBDEPSDIR/include $SLKCFLAGS" \
+LDFLAGS="-L$HBDEPSDIR/lib${LIBDIRSUFFIX} -lgio-2.0 -lglib-2.0 $SLKLDFLAGS" \
+PKG_CONFIG_PATH="$HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig" \
PKG_CONFIG="pkg-config --static" \
+GHB_GTK_3_12_CFLAGS="$(PKG_CONFIG_PATH=$HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig pkg-config --cflags gtk+-3.0)" \
+GHB_GTK_3_12_LIBS="$(PKG_CONFIG_PATH=$HBDEPSDIR/lib${LIBDIRSUFFIX}/pkgconfig pkg-config --libs gtk+-3.0)" \
./configure \
--prefix=/usr \
- --disable-gtk-update-checks \
--launch --launch-jobs=0 \
+ ${GUI_OPTS} \
2>&1 | tee $OUTPUT/configure-${PRGNAM}.log
-# Compile and install the GTK gui and commandline client:
+# Compile and install the GTK gui (if requested) and commandline client:
cd build
make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
make install DESTDIR=$PKG
cd -
-# Add application bitmaps, not just a SVG:
-for i in 16 24 32 48 64 96 128; do
- mkdir -p $PKG/usr/share/icons/hicolor/${i}x${i}/apps
- convert $PKG/usr/share/icons/hicolor/scalable/apps/hb-icon.svg \
- -resize ${i}x${i} \
- $PKG/usr/share/icons/hicolor/${i}x${i}/apps/hb-icon.png
-done
-
-# Show an icon in the XFCE menu:
-mkdir -p $PKG/usr/share/pixmaps
-cp -a $PKG/usr/share/icons/hicolor/128x128/apps/hb-icon.png \
- $PKG/usr/share/pixmaps/
-
-# Remove this cache file, it will get in our way:
-[ -f $PKG/usr/share/icons/hicolor/icon-theme.cache ] \
- && rm -f $PKG/usr/share/icons/hicolor/icon-theme.cache
-
-# Add this to the doinst.sh:
-! [ -d $PKG/install ] && mkdir -p $PKG/install
-cat <<EOT >> $PKG/install/doinst.sh
+if [ "$WITH_GUI" = "YES" -o "$WITH_GUI" = "yes" ]; then
+ # Move the GTK libraries we installed into the fileystem, into our package:
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
+ mv -i $HBDEPSDIR $PKG/usr/lib${LIBDIRSUFFIX}/
+
+ # Add application bitmaps, not just a SVG:
+ for i in 16 24 32 48 64 96 128; do
+ mkdir -p $PKG/usr/share/icons/hicolor/${i}x${i}/apps
+ convert $PKG/usr/share/icons/hicolor/scalable/apps/hb-icon.svg \
+ -resize ${i}x${i} \
+ $PKG/usr/share/icons/hicolor/${i}x${i}/apps/hb-icon.png
+ done
+
+ # Show an icon in the XFCE menu:
+ mkdir -p $PKG/usr/share/pixmaps
+ cp -a $PKG/usr/share/icons/hicolor/128x128/apps/hb-icon.png \
+ $PKG/usr/share/pixmaps/
+
+ # Remove this cache file, it will get in our way:
+ [ -f $PKG/usr/share/icons/hicolor/icon-theme.cache ] \
+ && rm -f $PKG/usr/share/icons/hicolor/icon-theme.cache
+
+ # Add this to the doinst.sh:
+ ! [ -d $PKG/install ] && mkdir -p $PKG/install
+ cat <<EOT >> $PKG/install/doinst.sh
# Update the desktop database:
if [ -x usr/bin/update-desktop-database ]; then
chroot . /usr/bin/update-desktop-database usr/share/applications > /dev/null 2> /dev/null
@@ -646,6 +721,7 @@ if [ -d usr/share/icons/hicolor ]; then
fi
EOT
+fi # End [ "$WITH_GUI" = "YES" -o "$WITH_GUI" = "yes" ]
# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/gtk