From 1925689868513e9b3b34b0d543383cfe2c37e9fc Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Sun, 22 Apr 2018 01:36:41 +0000 Subject: vlc: updated to 3.0.2 --- vlc/build/vlc.SlackBuild | 481 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 417 insertions(+), 64 deletions(-) (limited to 'vlc') diff --git a/vlc/build/vlc.SlackBuild b/vlc/build/vlc.SlackBuild index cd5c46da..c3b18fbd 100755 --- a/vlc/build/vlc.SlackBuild +++ b/vlc/build/vlc.SlackBuild @@ -464,6 +464,8 @@ # * VLC 3.0.0 released! # 3.0.0-2 13/feb/2018 by Eric Hameleers # * Enable chromecast. +# 3.0.2-1 21/apr/2018 by Eric Hameleers +# * Update. # # Run 'sh vlc.SlackBuild' to build a Slackware package. # The package (.txz) plus descriptive .txt file are created in /tmp . @@ -487,7 +489,7 @@ PRGNAM=vlc PRGNAM2=npapi-vlc -BUILD=${BUILD:-2} +BUILD=${BUILD:-1} NPBUILD=${NPBUILD:-1} TAG=${TAG:-"alien"} @@ -519,9 +521,9 @@ SLACKVER=${SLACKVER:-$(cat /etc/slackware-version| cut -d' ' -f2)} # ----------------------------------------------------------------------------- VLCBRANCH=${VLCBRANCH:-"3.0"} -VLCMINOR=${VLCMINOR:-"0"} +VLCMINOR=${VLCMINOR:-"2"} DEFGITURI=${GITURI:-"git://git.videolan.org/vlc/vlc-${VLCBRANCH}.git"} -VERSION=${VERSION:-"3.0.0"} +VERSION=${VERSION:-"3.0.2"} PKGVERSION=${VERSION} #PKGVERSION=${PKGVERSION:-"${VLCBRANCH}.${VLCMINOR}"} @@ -572,6 +574,15 @@ esac USE_PATENTS=${USE_PATENTS:-"YES"} USE_PATENTS=$(echo $USE_PATENTS | tr 'a-z' 'A-Z') +# VLC requires Qt5 for its GUI. +# Slackware older than 15.0 does not include Qt5 installed, so on those +# releases, we need to include the Qt5 librarieus into the package. +# In that case, define STATIC_QT5="YES", else the package will depend on +# the presence of the system version of Qt5. +# BIG FAT WARNING: STATIC QT5 DOES NOT WORK CURRENTLY +STATIC_QT5=${STATIC_QT5:-"NO"} +STATIC_QT5=$(echo $STATIC_QT5 | tr 'a-z' 'A-Z') + # VLC uses ffmpeg's avcodec for a lot of the AV processing. # If you already have ffmpeg installed, it will speed up the compilation, # and create a smaller vlc package, if you define STATIC_FFMPEG="NO": @@ -626,8 +637,8 @@ DV=1.0.0 DVBPSI=1.3.1 DVDNAV=6.0.0 DVDREAD=6.0.0 -DVDCSS=1.4.1 -EBML=1.3.5 +DVDCSS=1.4.2 +EBML=1.3.6 FAAC=1.28 FFMPEG=eaff5fc # ffmpeg3 git snapshot 06 dec 2017 FLUID=1.1.6 @@ -641,15 +652,16 @@ LAME=3.100 LIBVA=2.0.0 LIVE=2016.11.28 LUA=5.1.5 -MATROSKA=1.4.8 -MDNS=0.0.8 +MATROSKA=1.4.9 +MDNS=0.0.10 MPCDEC=r481 MPEG2DEC=0.5.1 -NPAPI=20180209 +NPAPI=20180420 OPUS=1.2.1 +PCRE2=10.31 PROJECTM=2.0.1 PROTOBUF=3.1.0 -QT4=4.8.7 +QT5=5.7.1 RAW1394=2.0.5 SHOUT=2.4.1 SPEEX=1.2.0 @@ -663,8 +675,8 @@ TWOLAME=0.3.13 UPNP=1.6.19 VDPAU=1.1.1 VPX=1.6.1 -X262=20180204 -X264=20180203-2245 +X262=20180420 +X264=20180420-2245 X265=2.5 # Where do we look for sources? @@ -1051,11 +1063,35 @@ SRCURL[52]="https://github.com/google/protobuf/releases/download/v${PROTOBUF}/pr SRCPAT[52]="NO" USE[52]="YES" +# PCRE2 library for Qt5Base: +SOURCE[53]="$SRCDIR/pcre2-${PCRE2}.tar.gz" +SRCURL[53]="https://ftp.pcre.org/pub/pcre/pcre2-${PCRE2}.tar.gz" +SRCPAT[53]="NO" +USE[53]="NO" + +# Qt5 base libraries: +SOURCE[54]="$SRCDIR/qtbase-opensource-src-${QT5}.tar.xz" +SRCURL[54]="http://download.qt.io/official_releases/qt/$(echo $QT5 |cut -d. -f1,2)/${QT5}/submodules/qtbase-opensource-src-${QT5}.tar.xz" +SRCPAT[54]="NO" +USE[54]="NO" + +# Qt5 SVG support: +SOURCE[55]="$SRCDIR/qtsvg-opensource-src-${QT5}.tar.xz" +SRCURL[55]="http://download.qt.io/official_releases/qt/$(echo $QT5 |cut -d. -f1,2)/${QT5}/submodules/qtsvg-opensource-src-${QT5}.tar.xz" +SRCPAT[55]="NO" +USE[55]="NO" + +# Qt5 platform-specific APIs for X11: +SOURCE[56]="$SRCDIR/qtx11extras-opensource-src-${QT5}.tar.xz" +SRCURL[56]="http://download.qt.io/official_releases/qt/$(echo $QT5 |cut -d. -f1,2)/${QT5}/submodules/qtx11extras-opensource-src-${QT5}.tar.xz" +SRCPAT[56]="NO" +USE[56]="NO" + # CSS decoding- VLC can do without if you install an external libdvdcss package. -SOURCE[53]="$SRCDIR/libdvdcss-${DVDCSS}.tar.bz2" -SRCURL[53]="http://download.videolan.org/pub/libdvdcss/${DVDCSS}/libdvdcss-${DVDCSS}.tar.bz2" -SRCPAT[53]="YES" -USE[53]="YES" +SOURCE[57]="$SRCDIR/libdvdcss-${DVDCSS}.tar.bz2" +SRCURL[57]="http://download.videolan.org/pub/libdvdcss/${DVDCSS}/libdvdcss-${DVDCSS}.tar.bz2" +SRCPAT[57]="YES" +USE[57]="YES" # Use the src_checkout() function if no downloadable tarball exists. # This function checks out sources from SVN/CVS and creates a tarball of them. @@ -1239,6 +1275,17 @@ if [ "$P1" != "--oldbuild" -a "$P1" != "--download" ]; then rm -f $OUTPUT/*${PRGNAM}*.log # Delete old logfiles fi +# We may not need to download and unpack the Qt5 sources: +if [ "$STATIC_QT5" != "NO" ]; then + echo "**" + echo "** Building with a static QT5..." + echo "**" + USE[53]="YES" + USE[54]="YES" + USE[55]="YES" + USE[56]="YES" +fi + # We may not need to download and unpack the ffmpeg sources: if [ "$STATIC_FFMPEG" != "YES" ]; then echo "**" @@ -1304,7 +1351,7 @@ if [ "$P1" != "--oldbuild" ]; then if $(file ${SOURCE[$i]} | grep -iq ": zip"); then unzip ${SOURCE[$i]} else - tar -xvf ${SOURCE[$i]} + tar -xf ${SOURCE[$i]} fi fi done @@ -1489,7 +1536,7 @@ make install $VLCDEPSDIR/PREFIX=/usr LIBDIR=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_amrwbenc.log # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/amrwbenc -cp -a AUTHORS COPYING ChangeLog LICENSE NEWS README \ +cp -a COPYING ChangeLog README \ $VLCDEPSDIR/doc/amrwbenc || true cd - } @@ -1663,7 +1710,7 @@ fi # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/ffmpeg/ -cp COPYING* CREDITS Changelog MAINTAINERS README \ +cp COPYING* CREDITS Changelog MAINTAINERS \ $VLCDEPSDIR/doc/ffmpeg/ || true cd $OLDDIR @@ -1775,30 +1822,32 @@ cd $TMP/tmp-$PRGNAM/libebml-$EBML # Apply patches: touch $OUTPUT/patch-${PRGNAM}_ebml.log -cat $SRCDIR/patches/ebml_maxread.patch | patch -p1 --verbose \ - 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ebml.log -cat $SRCDIR/patches/ebml_unknown-check.patch | patch -p1 --verbose \ - 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ebml.log -cat $SRCDIR/patches/ebml_null-compare.patch | patch -p1 --verbose \ - 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ebml.log -cat $SRCDIR/patches/ebml_infinite-start.patch | patch -p1 --verbose \ +#cat $SRCDIR/patches/ebml_maxread.patch | patch -p1 --verbose \ +# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ebml.log +#cat $SRCDIR/patches/ebml_unknown-check.patch | patch -p1 --verbose \ +# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ebml.log +#cat $SRCDIR/patches/ebml_null-compare.patch | patch -p1 --verbose \ +# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ebml.log +#cat $SRCDIR/patches/ebml_infinite-start.patch | patch -p1 --verbose \ +# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ebml.log +cat $SRCDIR/patches/ebml_gcc7.patch | patch -p1 --verbose \ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_ebml.log -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS -fexceptions" \ -LDFLAGS="$SLKLDFLAGS" \ -./configure \ - --prefix=$VLCDEPSDIR/usr \ - --libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ - --enable-static \ - --disable-shared \ - --program-prefix= \ - --program-suffix= \ - --build=$TARGET \ +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS -fexceptions -fvisibility=hidden" +export LDFLAGS="$SLKLDFLAGS" + +mkdir build +( cd build + cmake .. \ + -DCMAKE_INSTALL_PREFIX=${VLCDEPSDIR}/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DBUILD_SHARED_LIBS=OFF \ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_ebml.log -make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_ebml.log -# Install into a temp directory where vlc & matroska can pick it up: -make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_ebml.log + make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_ebml.log + # Install into a temp directory where vlc & matroska can pick it up: + make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_ebml.log +) # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/libebml/ cp ChangeLog LICENSE.LGPL \ @@ -1818,18 +1867,20 @@ export CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" export CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" export LDFLAGS="-L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" export PKG_CONFIG_PATH="${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig" -./configure \ - --prefix=$VLCDEPSDIR/usr \ - --libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ - --enable-static \ - --disable-shared \ - --program-prefix= \ - --program-suffix= \ - --build=$TARGET \ - 2>&1 | tee $OUTPUT/configure-${PRGNAM}_matroska.log -make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_matroska.log -# Install into a temp directory where vlc can pick it up: -make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_matroska.log + +pkg_static "libmatroska.pc.in" + +mkdir build +( cd build + cmake .. \ + -DCMAKE_INSTALL_PREFIX=${VLCDEPSDIR}/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DBUILD_SHARED_LIBS=OFF \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_matroska.log + make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_matroska.log + # Install into a temp directory where vlc can pick it up: + make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_matroska.log +) # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/libmatroska/ cp ChangeLog LICENSE.LGPL \ @@ -2911,7 +2962,7 @@ echo -e "\n**\n**\n" make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_fribidi.log # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/fribidi/ -cp AUTHORS COPYING ChangeLog NEWS README THANKS TODO \ +cp AUTHORS COPYING NEWS README THANKS TODO \ $VLCDEPSDIR/doc/fribidi/ || true cd - } @@ -2982,7 +3033,7 @@ make install DESTDIR=$VLCDEPSDIR \ # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/taglib/ -cp AUTHORS COPYING* README TODO $VLCDEPSDIR/doc/taglib/ || true +cp AUTHORS COPYING* $VLCDEPSDIR/doc/taglib/ || true cd - } @@ -3330,6 +3381,12 @@ make_microdns() echo -e "**\n** microdns ...\n**" cd $TMP/tmp-$PRGNAM/microdns-${MDNS} +## Apply patches: +#touch $OUTPUT/patch-${PRGNAM}_microdns.log +# Fixed in 0.0.10: +#cat $SRCDIR/patches/microdns_fix_null-deref.patch | patch -p1 --verbose \ +# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_microdns.log + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ LDFLAGS="$SLKLDFLAGS" \ @@ -3347,7 +3404,7 @@ make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_microdns.log make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_microdns.log # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/microdns/ -cp AUTHORS COPYING ChangeLog NEWS README \ +cp AUTHORS COPYING NEWS \ $VLCDEPSDIR/doc/microdns/ || true cd - } @@ -3603,7 +3660,7 @@ make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_ssh2.log make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_ssh2.log # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/libssh2/ -cp AUTHORS COPYING ChangeLog NEWS README \ +cp COPYING ChangeLog NEWS README \ $VLCDEPSDIR/doc/libssh2/ || true cd - } @@ -3632,14 +3689,272 @@ PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_protobuf.log make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_protobuf.log # Install protobuf into a temp location so vlc can pickup the library -make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_asdcplib.log +make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_protobuf.log # Add DOCS to the vlcdeps to have it added to vlc package later: -mkdir -p $VLCDEPSDIR/doc/asdcplib/ +mkdir -p $VLCDEPSDIR/doc/protobuf/ cp LICENSE *.txt $VLCDEPSDIR/doc/protobuf/ || true cd - } +# ----------------------------------------------------------------------------- +# Compile pcre2 +# ----------------------------------------------------------------------------- +make_pcre2() +{ +echo -e "**\n** pcre2 ...\n**" +cd $TMP/tmp-$PRGNAM/pcre2-${PCRE2} + +CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \ +CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS -std=gnu++98" \ +LDFLAGS="-L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \ +PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ +./configure \ + --prefix=$VLCDEPSDIR/usr \ + --libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ + --disable-shared \ + --disable-silent-rules \ + --enable-static \ + --enable-static=no \ + --enable-pcre2-16 \ + --enable-pcre2-32 \ + --enable-jit \ + --program-prefix= \ + --program-suffix= \ + --build=$TARGET \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_pcre2.log +make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_pcre2.log +# Install pcre2 into a temp location so qtbase can pickup the library +make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_pcre2.log +# Add DOCS to the vlcdeps to have it added to vlc package later: +mkdir -p $VLCDEPSDIR/doc/pcre2/ +cp AUTHORS COPYING ChangeLog HACKING LICENCE NEWS README \ + $VLCDEPSDIR/doc/pcre2/ || true +cd - +} + + +# ----------------------------------------------------------------------------- +# Compile qt5 base - for the GUI +# ----------------------------------------------------------------------------- +make_qt5base() +{ +echo -e "**\n** qt5base ...\n**" + +RETDIR=$(pwd) +# If we build a static Qt5 gui, unset the QT-related environment variables, +# so that a pre-existing Qt will not be picked up and create errors later: +unset QTDIR +unset QT5DIR +NEWPATH="$VLCDEPSDIR/usr/bin" +for elem in $(echo $PATH | cut -d: --output-delimiter=' ' -f1-) ; do + if ! $(echo "$elem"| grep -q /qt) ; then + NEWPATH="$NEWPATH:$elem" + fi +done +export PATH="$NEWPATH" + +export CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export OPENSOURCE_CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export LDFLAGS="-L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" +export PKG_CONFIG_PATH="${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig" +export PKG_CONFIG="/usr/bin/pkg-config --static" + +# qtbase: +cd $TMP/tmp-$PRGNAM/$(ls --indicator-style=none | grep qtbase-*-${QT5}) + +# Apply patches: +touch $OUTPUT/patch-${PRGNAM}_qtbase.log + +# Don't tag binaries in static mode (causes this error on linking vlc library +# dynamically - "version node not found for symbol qt_version_tag@Qt_5.5": +cat $SRCDIR/patches/qtbase_dont_tag_static_binaries.patch |patch -p1 --verbose \ + 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_qtbase.log + +# Fix missing private includes: +sed -e '/CMAKE_NO_PRIVATE_INCLUDES\ \=\ true/d' \ + -i mkspecs/features/create_cmake.prf + +# Use our custom compiler and linker flags: +#sed -i -e "s,-O2,$CFLAGS," mkspecs/common/g++-base.conf || exit 1 +sed -i -e "s,-O2,$CFLAGS," mkspecs/common/gcc-base.conf || exit 1 +sed -i -e "s,-O3,$CFLAGS," mkspecs/common/gcc-base.conf || exit 1 +sed -i -e "/^QMAKE_LFLAGS\s/s,+=,+= $LDFLAGS,g" mkspecs/common/gcc-base.conf || exit 1 + +./configure \ + -platform linux-g++ \ + -confirm-license \ + -opensource \ + -prefix $VLCDEPSDIR/usr \ + -libdir $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ + -headerdir $VLCDEPSDIR/usr/include/qt5 \ + -datadir $VLCDEPSDIR/usr/share/qt5 \ + -archdatadir $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/qt5 \ + -release \ + -static \ + -icu \ + -qpa xcb \ + -qt-xcb \ + -qt-xkbcommon-x11 \ + -qt-libjpeg \ + -system-harfbuzz -system-libpng -system-pcre -system-zlib \ + -no-gif \ + -no-openssl -no-opengl -no-dbus -no-qml-debug \ + -no-sql-odbc -no-sql-sqlite \ + -no-compile-examples -nomake examples -nomake tests \ + -no-separate-debug-info \ + -no-pch \ + -no-shared \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_qt5base.log + #-no-pkg-config \ + #-no-use-gold-linker \ +make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_qt5base.log + +# Install into a temp location so vlc can find it (INSTALL_ROOT not needed): +make install \ + 2>&1 | tee $OUTPUT/install-${PRGNAM}_qt5base.log + +# Move the plugins that VLC needs into libdir, and # add these static +# plugin libraries to .pc files to prevent runtime error +# "plugins are disabled in static builds" +# (only seen when starting vlc as 'QT_DEBUG_PLUGINS=1 vlc'): +mv ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/qt5/plugins/platforms/libqxcb.* \ + ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/ +rm -rf ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/qt5/plugins +sed -i -e 's/ -lQt5Gui/ -lfontconfig -lX11 -lxcb -lqxcb -lQt5XcbQpa -lQt5PlatformSupport -lQt5Gui/g' \ + ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig/Qt5Gui.pc + +# Link includes to match what VLC expects +mkdir -p ${VLCDEPSDIR}/usr/include/QtGui/qpa +ln -s \ + ${VLCDEPSDIR}/usr/include/qt5/QtGui/${QT5}/QtGui/qpa/qplatformnativeinterface.h \ + ${VLCDEPSDIR}/usr/include/QtGui/qpa/ + +# Prevent weirdness later on: +unset PKG_CONFIG + +# Remove unwanted library: +rm -f $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libQt5Bootstrap* + +# Remove all .la files: +find "$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}" -type f -name '*.la' \ + -exec rm -f {} \; + +# Fix the path in prl files: +find "$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}" -type f -name '*.prl' \ + -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \; + +# Add DOCS to the vlcdeps to have it added to vlc package later: +mkdir -p $VLCDEPSDIR/doc/qtt5base/ +cp *GPL_EXCEPTION* INSTALL LICENSE* README* \ + $VLCDEPSDIR/doc/qt5base/ || true +cd $RETDIR +} + + +# ----------------------------------------------------------------------------- +# Compile qt5svg +# ----------------------------------------------------------------------------- +make_qt5svg() +{ +echo -e "**\n** qt5svg ...\n**" + +RETDIR=$(pwd) +# If we build a static Qt5 gui, unset the QT-related environment variables, +# so that a pre-existing Qt will not be picked up and create errors later: +unset QTDIR +unset QT5DIR +NEWPATH="$VLCDEPSDIR/usr/bin" +for elem in $(echo $PATH | cut -d: --output-delimiter=' ' -f1-) ; do + if ! $(echo "$elem"| grep -q /qt) ; then + NEWPATH="$NEWPATH:$elem" + fi +done +export PATH="$NEWPATH" + +export CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export OPENSOURCE_CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export LDFLAGS="-L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" +export PKG_CONFIG_PATH="${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig" +export QTDIR="${VLCDEPSDIR}/usr" +#export QT_PLUGIN_PATH="${QTDIR}/lib${LIBDIRSUFFIX}/qt5/plugins" + +# qtsvg: +cd $TMP/tmp-$PRGNAM/$(ls --indicator-style=none | grep qtsvg-*-${QT5}) + +## Make sure our private Qt5 headers are used: +#cat $SRCDIR/patches/qtsvg_use_private_qtzlib.patch | patch -p1 --verbose \ +# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_qt5svg.log + +# Make and install: +qmake \ + 2>&1 | tee $OUTPUT/qmake-${PRGNAM}_qt5svg.log +make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_qt5svg.log +make install 2>&1 | tee $OUTPUT/install-${PRGNAM}_qt5svg.log + +# Move static libraries into place, and fix up the .pc file +# so that they get linked into VLC later,: +mv ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/qt5/plugins/iconengines/libqsvgicon.* \ + ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/qt5/plugins/imageformats/libqsvg.* \ + ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/ +rm -rf ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/qt5/plugins +sed -i ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig/Qt5Svg.pc \ + -e '/Libs:/ s/-lQt5Svg/-lqsvg -lqsvgicon -lQt5Svg/ ' + +# Add DOCS to the vlcdeps to have it added to vlc package later: +mkdir -p $VLCDEPSDIR/doc/qt5svg/ +cp *GPL_EXCEPTION* LICENSE* \ + $VLCDEPSDIR/doc/qt5svg/ || true +cd $RETDIR +} + + +# ----------------------------------------------------------------------------- +# Compile qt5x11extras +# ----------------------------------------------------------------------------- +make_qt5x11extras() +{ +echo -e "**\n** qt5x11extras ...\n**" + +RETDIR=$(pwd) +# If we build a static Qt5 gui, unset the QT-related environment variables, +# so that a pre-existing Qt will not be picked up and create errors later: +unset QTDIR +unset QT5DIR +NEWPATH="$VLCDEPSDIR/usr/bin" +for elem in $(echo $PATH | cut -d: --output-delimiter=' ' -f1-) ; do + if ! $(echo "$elem"| grep -q /qt) ; then + NEWPATH="$NEWPATH:$elem" + fi +done +export PATH="$NEWPATH" + +export CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export OPENSOURCE_CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export LDFLAGS="-L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" +export PKG_CONFIG_PATH="${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig" +export QTDIR="${VLCDEPSDIR}/usr" +#export QT_PLUGIN_PATH="${QTDIR}/lib${LIBDIRSUFFIX}/qt5/plugins" + +# qtx11extras: +cd $TMP/tmp-$PRGNAM/$(ls --indicator-style=none | grep qtx11extras-*-${QT5}) + +# Make and install: +qmake \ + 2>&1 | tee $OUTPUT/qmake-${PRGNAM}_qt5x11extras.log +make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_qt5x11extras.log +make install 2>&1 | tee $OUTPUT/install-${PRGNAM}_qt5x11extras.log + +# Add DOCS to the vlcdeps to have it added to vlc package later: +mkdir -p $VLCDEPSDIR/doc/qt5x11extras/ +cp *GPL_EXCEPTION* LICENSE* \ + $VLCDEPSDIR/doc/qt5x11extras/ || true +cd $RETDIR +} + # ----------------------------------------------------------------------------- # VLC @@ -3672,8 +3987,14 @@ if [ "$BRANCH" != "master" -a "x$BRANCH" != "x" ]; then fi cd $TMP/tmp-$PRGNAM/${PRGNAM}-${SRCVER} + +# Apply patches: echo "" >$OUTPUT/patch-${PRGNAM}.log +# Make it possible to compile Qt5 statically for Linux: +cat $SRCDIR/patches/vlc_qt5static.patch | patch -p1 --verbose \ + 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log + ## Configure a default Slackware TTF font: ## Now taken care of with configure parameters! #cat $SRCDIR/patches/vlc-${VLCBRANCH}_deffont.patch | patch -p1 --verbose \ @@ -3711,6 +4032,34 @@ sh bootstrap export PATH="$VLCDEPSDIR/usr/bin:$PATH" +export CPPFLAGS="-I$VLCDEPSDIR/usr/include" +export CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" +export CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" + +if [ "$STATIC_QT5" = "YES" ]; then + export QTDIR="${VLCDEPSDIR}/usr" + export QT_PLUGIN_PATH="${QTDIR}/lib${LIBDIRSUFFIX}/qt5/plugins" + # If we build a static Qt5 gui, make sure that any pre-existing + # Qt5 installation will not be picked up and create errors later: + NEWPATH="" + for elem in $(echo $PATH | cut -d: --output-delimiter=' ' -f1-) ; do + if ! $(echo "$elem"| grep -q /qt) ; then + NEWPATH="$NEWPATH:$elem" + fi + done + export PATH="$NEWPATH" + # All the library additions in LDFLAGS are needed to quell missing symbol + # errors when linking to the Qt5 libraries: + if which pcre2-config 1>/dev/null 2>&1 ; then + PCRECONFIG="pcre2-config" + else + PCRECONFIG="pcre-config" + fi + export LDFLAGS="-Wl,-Bsymbolic -L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} -lpng -lz -lharfbuzz $(icu-config --ldflags) $($PCRECONFIG --libs16) $SLKLDFLAGS" +else + export LDFLAGS="-Wl,-Bsymbolic -L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" +fi + # Slackware > 14.2 switched to ncurses 6.x: NCURSESWCONF=$(which ncursesw5-config 2>/dev/null || which ncursesw6-config 2>/dev/null) @@ -3719,10 +4068,6 @@ NCURSES_LIBS="$(${NCURSESWCONF} --libs)" \ PROJECTM_LIBS="-lprojectM $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libMilkdropPresetFactory.a $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libRenderer.a -lGLU -lGLEW -lGL" \ PROJECTM2_LIBS="-lprojectM $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libMilkdropPresetFactory.a $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libRenderer.a -lGLU -lGLEW -lGL" \ LUAC="$VLCDEPSDIR/usr/bin/luac" \ -CPPFLAGS="-I$VLCDEPSDIR/usr/include" \ -CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \ -CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \ -LDFLAGS="-Wl,-Bsymbolic -L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \ PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ ./configure \ --prefix=/usr \ @@ -3844,7 +4189,7 @@ PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ #AVCODEC_CFLAGS="" \ # Now, we are ready for the compile: -make ${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}.log +make ${NUMJOBS} VERBOSE=1 2>&1 | tee $OUTPUT/make-${PRGNAM}.log # If we are compiling the browser plugin, then we need to install to $VLCDEPSDIR if [ "$MOZPLUGIN" == "YES" ]; then @@ -4035,14 +4380,22 @@ if echo "$*" | grep -qw -- --unwrapvlcdeps ; then fi [ ! -f $DEPSFILE ] && DEPSFILE="$SRCDIR/$PRGNAM-vlcdeps-${SLACKVER}-$ARCH.tar.bz2" cd $TMP/tmp-$PRGNAM - echo "Extracting tarball with pre-compiled binary library code..." - tar -xvf $DEPSFILE + echo "Extracting tarball '$(basename $DEPSFILE)' with pre-compiled library code..." + tar -xf $DEPSFILE find . -name "*.la" -o -name "*.pc" | xargs sed -i -e "s#/vlcdepsdir#$TMP/tmp-$PRGNAM#g" cd - else #if [ "xy" == "x" ]; then + # Qt5 is used for the vlc gui: + if [ "$STATIC_QT5" = "YES" ]; then + #make_pcre2 + make_qt5base + make_qt5svg + #make_qt5x11extras + fi + # This first, which resolves weird build failures on ARM (assembly fails) make_x265 make_x264 -- cgit v1.2.3-65-gdbad