From 61fe40bfba9b75ec8cf6e228baa120cf1cfa52c4 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Fri, 30 Dec 2016 10:03:12 +0000 Subject: handbrake: new attempts to add an internal copy of GTK+3 libraries. Unsuccessful, ghb still segfaults. --- handbrake/build/handbrake_static.SlackBuild | 300 +++++++++++++++++----------- 1 file changed, 188 insertions(+), 112 deletions(-) (limited to 'handbrake') 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 # * New release. -# 0.10.0-1: 24/nov/2014 by Eric Hameleers -# * New release. Was not able to compile. -# 0.10.1-1: 21/mar/2015 by Eric Hameleers -# * New release. New attempt at compilation failed. -# 0.10.2-1: 30/sep/2015 by Eric Hameleers -# * New release, another attempt. +# 0.10.2-1: 01/oct/2015 by Eric Hameleers +# * New release, slackware-current only (GTK+3 requirements) +# 0.10.5-1: 03/apr/2016 by Eric Hameleers +# * Update, slackware-current only (GTK+3 requirements) +# 1.0.0-1: 27/dec/2016 by Eric Hameleers +# * 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 @@ -140,6 +149,14 @@ 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/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 <> $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 <> $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 -- cgit v1.2.3-79-gdb01