summaryrefslogtreecommitdiffstats
path: root/vlc
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2018-04-22 01:36:41 +0000
committer Eric Hameleers <alien@slackware.com>2018-04-22 01:36:41 +0000
commit1925689868513e9b3b34b0d543383cfe2c37e9fc (patch)
tree834af1795ebb5cbdf07014e7b1c4d231f3b60321 /vlc
parent2f3c7731c7d0978b54fa144d0d4a5621dd0a9148 (diff)
downloadasb-1925689868513e9b3b34b0d543383cfe2c37e9fc.tar.gz
asb-1925689868513e9b3b34b0d543383cfe2c37e9fc.tar.xz
vlc: updated to 3.0.2
Diffstat (limited to 'vlc')
-rwxr-xr-xvlc/build/vlc.SlackBuild481
1 files changed, 417 insertions, 64 deletions
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 <alien@slackware.com>
# * Enable chromecast.
+# 3.0.2-1 21/apr/2018 by Eric Hameleers <alien@slackware.com>
+# * 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