diff options
Diffstat (limited to 'vlc/build/vlc.SlackBuild')
-rwxr-xr-x | vlc/build/vlc.SlackBuild | 745 |
1 files changed, 528 insertions, 217 deletions
diff --git a/vlc/build/vlc.SlackBuild b/vlc/build/vlc.SlackBuild index 72aad29e..6f81064f 100755 --- a/vlc/build/vlc.SlackBuild +++ b/vlc/build/vlc.SlackBuild @@ -1,6 +1,6 @@ -#!/bin/sh +i!/bin/sh # $Id$ -# Copyright (c) 2007,2008,2009,2010,2011 Eric Hameleers, Eindhoven, Netherlands +# Copyright 2007, 2008, 2009, 2010, 2011, 2012 Eric Hameleers, Eindhoven, Netherlands # # Permission to use, copy, modify, and distribute this software for # any purpose with or without fee is hereby granted, provided that @@ -275,40 +275,52 @@ # 1.1.5-2: 29/nov/2010 by Eric Hameleers <alien@slackware.com> # * Try to fix the segfault of goom visualization plugin on 32bit. # Fix projectM audio visualization for non-US locales. -# 1.1.6-1: 24/jan/2011 by Eric Hameleers <alien@slackware.com> -# * New release of VLC 1.1.x series fixes a security hole, and -# adds a lot of functionality. -# Updated x264, libkate, libtiger, libass, libvpx and live555 -# plugins, and used the latest xulrunner for building the -# mozilla plugin. -# 1.1.7-1: 31/jan/2011 by Eric Hameleers <alien@slackware.com> -# * New release fixes Matroska/WebM remote code execution -# vulnerability (VideoLAN-SA-1102). -# VideoLAN has disabled KDE GUI platform integration as of 1.1.7 -# on order to try and work around several issues. -# 1.1.7-2: 08/feb/2011 by Eric Hameleers <alien@slackware.com> -# * Updated live555 library to fix the crash bug when trying to -# play any rtsp:// stream. -# 1.1.8-1: 24/mar/2011 by Eric Hameleers <alien@slackware.com> -# * New release. Also updated libupnp, libva, live, x264 and -# xulrunner components. -# 1.1.9-1: 12/apr/2011 by Eric Hameleers <alien@slackware.com> -# * New release. -# 1.1.10-1: 06/jun/2011 by Eric Hameleers <alien@slackware.com> -# * New release. -# 1.1.11-1: 24/jul/2011 by Eric Hameleers <alien@slackware.com> -# * Critical bugfix release (fixes CVE-2011-2587 and CVE-2588). -# 1.1.11-2: 30/jul/2011 by Eric Hameleers <alien@slackware.com> -# * Quickfix for the broken youtube support (after the youtube guys -# 1.1.11-3: 14/aug/2011 by Eric Hameleers <alien@slackware.com> -# * Yet another patch to fix youtube URL playback. -# 1.1.12-1: 07/oct/2011 by Eric Hameleers <alien@slackware.com> -# * New release. Updated support libraries in this package are: -# libebml, libmatroska, live555, x264. -# 1.1.13-1: 20/dec/2011 by Eric Hameleers <alien@slackware.com> -# * New release. Updated support libraries in this package are: -# libass, avc1394, dvbpsi, dvdnav, dvdread, ffmpeg, fluid, kate, -# lame, live555, orc, twolame, upnp, v4l, vpx, x264. +# 1.1.5-3: 29/dec/2010 by Eric Hameleers <alien@slackware.com> +# * Updated x264, libkate, libtiger, libass and libvpx, and used +# the latest xulrunner for building the mozilla plugin. +# 20101230-1: 30/dec/2010 by Eric Hameleers <alien@slackware.com> +# * With updated dependencies, it is time to test 1.2.0.git. +# Starting with 1.2.0, the mozilla plugin has been separated +# from the vlc sources and re-designed for stability. Its new +# package name is "npapi-vlc". Upgrade an old vlc-mozplugin with +# this new package! +# 20110827-1: 28/aug/2011 by Eric Hameleers <alien@slackware.com> +# * With updated dependencies again. I Had to disable the stream +# switcher because even with a patch it would give compilation +# errors (vlc's configure does not enable it by default anyway). +# 20110910-1: 10/sep/2011 by Eric Hameleers <alien@slackware.com> +# * Updated snapshots for vlcgit and x264. +# 20111006-1: 06/oct/2011 by Eric Hameleers <alien@slackware.com> +# * Added (unencrypted) bluray playback support. +# Updated the ffmpeg, lbvpx, live555, v4l and x264 support +# libraries. +# 20111016-1: 16/oct/2011 by Eric Hameleers <alien@slackware.com> +# * Updated internal bluray, dvdnav/dvdread, ebml/matroska, +# live555, orc, x264 libraries. +# Also updated to 20111016 snapshots of vlc and npapi-vlc. +# 20111114-1: 14/nov/2011 by Eric Hameleers <alien@slackware.com> +# * Time to check out the status of 1.2.pre1 (already ten days of +# development since that tag but still) and I took the liberty +# to refresh a lot of the dependencies too: +# I updated internal ass, bluray, dvbpsi, ffmpeg, fluidsynth, +# kate, lame, live555, twolame, v4l-utils, x264 libraries. +# Added internal fribidi library to satisfy the new libass +# requirement. +# 20111202-1: 02/dec/2011 by Eric Hameleers <alien@slackware.com> +# * Updated internal ffmpeg, libupnp, libmpc (switched to +# recommended SVN tarball), x264 libraries. +# Added librtmp and libgsm libraries to ffmpeg. +# Froze the version of live555 to match the vlc patches. +# 20111223-1: 23/dec/2011 by Eric Hameleers <alien@slackware.com> +# * Updated snapshot as well as internal ffmpeg, x264. +# Patched LUA compiler to only use 32-bit LUAC file format. +# Updated libbluray (now called 'first useable version' by the +# developers), added builtin dvdcss support (if USE_PATENTS is +# set to "YES") +# 2.0.0-1 17/feb/2012 by Eric Hameleers <alien@slackware.com> +# * New release! Version 2.0 was originally named 1.2 but the +# developers deciced that there were so many changes after 1.1.x +# that a version bump to 2.0 would reflect this better. # # Run 'sh vlc.SlackBuild' to build a Slackware package. # The package (.txz) plus descriptive .txt file are created in /tmp . @@ -331,7 +343,7 @@ # Set initial variables: PRGNAM=vlc -PRGNAM2=mozplugin +PRGNAM2=npapi-vlc BUILD=${BUILD:-1} TAG=${TAG:-"alien"} @@ -348,17 +360,18 @@ PKGTYPE=${PKGTYPE:-"txz"} # Hint: checkout at a certain date takes a snapshot at 00:00, not 23:59) # # Acceptible formats: -#VERSION=${VERSION:-"1.1.5"} -#VERSION=${VERSION:-"20101031"} +#VERSION=${VERSION:-"2.0.0"} +#VERSION=${VERSION:-"20120217"} #VERSION=${VERSION:-"HEAD"} -#VERSION=${VERSION:-"master#20100414"} -#VERSION=${VERSION:-"@1.1.0-bugfix#20100414"} -#VERSION=${VERSION:-"master@git://git.videolan.org/vlc/vlc-1.1.git#20100523"} +#VERSION=${VERSION:-"master#20120217"} +#VERSION=${VERSION:-"@1.1.0-bugfix#20120217"} +#VERSION=${VERSION:-"master@git://git.videolan.org/vlc/vlc-2.0.git#20120217"} -VERSION=${VERSION:-"1.1.13"} +VERSION=${VERSION:-"2.0.0"} -# At some point, the 1.1 development branched off the master tree: -DEFGITURI=${GITURI:-"git://git.videolan.org/vlc.git"} +# At some point, the 1.2 development branched off the master tree: +#DEFGITURI=${GITURI:-"git://git.videolan.org/vlc.git"} +DEFGITURI=${GITURI:-"git://git.videolan.org/vlc/vlc-2.0.git"} DOCS="ABOUT-NLS AUTHORS COPYING HACKING INSTALL NEWS README THANKS" @@ -368,6 +381,7 @@ NUMJOBS=${NUMJOBS:-7} # Number of parallel jobs for the compiler if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) export ARCH=i486 ;; + armv7hl) export ARCH=$MARCH ;; arm*) export ARCH=arm ;; # Unless $ARCH is already set, use uname -m for all other archs: *) export ARCH=$( uname -m ) ;; @@ -381,6 +395,9 @@ case "$ARCH" in x86_64) SLKCFLAGS="-O2 -fPIC" SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" ;; + armv7hl) SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16" + SLKLDFLAGS=""; LIBDIRSUFFIX="" + ;; *) SLKCFLAGS="-O2" SLKLDFLAGS=""; LIBDIRSUFFIX="" ;; @@ -436,9 +453,12 @@ MOZPLUGIN=$(echo $MOZPLUGIN | tr 'a-z' 'A-Z') # Dependent package versions A52=0.7.4 +AACENC=0.1.1 +AMRWBENC=0.1.1 AMR=0.1.2 ASS=0.10.0 AVC1394=0.5.4 +BLURAY=0.2.1 CDDB=1.3.2 CDIO=0.82 DAAP=0.4.0 @@ -452,25 +472,28 @@ DVDCSS=1.2.11 EBML=1.2.2 FAAC=1.28 FAAD2=2.7 -FFMPEG=0.9 +FFMPEG=0.10 #FFMPEG=r25676 # 20101104 FLUID=1.1.5 FRIBIDI=0.19.2 GGI=2.2.2 GII=1.0.2 GOOM=2k4-0 +GSM=1.0.13 KATE=0.4.1 -LAME=3.99.1 +LAME=3.99.3 LIBVA="0.32.0-1+sds2" -LIVE=2011.11.08 +LIVE=2011.12.23 LUA=5.1.4 MATROSKA=1.3.0 -MPCDEC=1.2.6 +MPCDEC=r475 MPEG2DEC=0.5.1 +NPAPI=20120217 ORC=0.4.16 PROJECTM=2.0.1 QT4=4.7.4 RAW1394=2.0.5 +RTMP=2.3 SCHROEDINGER=1.0.10 SHOUT=2.2.2 SPEEX=1.2rc1 @@ -482,10 +505,10 @@ TWOLAME=0.3.13 UPNP=1.6.14 V4L=0.8.5 VCD=0.7.23 -VPX=v0.9.7-p1 +VPX=v1.0.0 X264_SAFE=20080301-2245 # In later versions nasm complains # about 'function hidden' -X264=20111219-2245 # Needs yasm installed +X264=20120216-2245 # Needs yasm installed XUL=1.9.2.19 # Determine what X we're running (the modular X returns the prefix @@ -499,23 +522,17 @@ SRCDIR=$(cd $(dirname $0); pwd) # Place to build (TMP) package (PKG) and output (OUTPUT) the program: TMP=${TMP:-"/tmp/build"} PKG=$TMP/package-$PRGNAM -PKG2=$TMP/package-$PRGNAM-$PRGNAM2 +PKG2=$TMP/package-$PRGNAM2 OUTPUT=${OUTPUT:-"/tmp"} # This is where we are going to temporarily install the dependencies: VLCDEPSDIR="$TMP/tmp-$PRGNAM/vlcdeps" # Building the mozilla plugin requires the Sun Java SDK: -if [ "$MOZPLUGIN" == "NO" ]; then - DO_MOZPLUGIN="" -else - if which javac 1>/dev/null 2>/dev/null ; then - MOZPLUGIN="YES" - DO_MOZPLUGIN="--enable-mozilla --with-mozilla-sdk-path=$VLCDEPSDIR/usr/xulrunner-sdk" - else +if [ "$MOZPLUGIN" == "YES" ]; then + if ! which javac 1>/dev/null 2>/dev/null ; then echo "+++ NOT building mozilla plugin - Needs Sun JDK from /extra! +++" MOZPLUGIN="NO" - DO_MOZPLUGIN="" fi fi @@ -690,7 +707,8 @@ USE[18]="YES" # Musepack (MPC) audio demuxing support: SOURCE[19]="$SRCDIR/libmpcdec-${MPCDEC}.tar.bz2" -SRCURL[19]="http://files.musepack.net/source/libmpcdec-${MPCDEC}.tar.bz2" +#SRCURL[19]="http://files.musepack.net/source/libmpcdec-${MPCDEC}.tar.bz2" +SRCURL[19]="" SRCPAT[19]="NO" USE[19]="YES" @@ -845,17 +863,53 @@ SRCURL[44]="http://webm.googlecode.com/files/libvpx-${VPX}.tar.bz2" SRCPAT[44]="NO" USE[44]="YES" -# Unicode BiDirectional algorithm library, requirement for libass. -SOURCE[45]="$SRCDIR/fribidi-${FRIBIDI}.tar.gz" -SRCURL[45]="http://fribidi.org/download/fribidi-${FRIBIDI}.tar.gz" -SRCPAT[45]="NO" +# VisualOn AAC encoding library, for AAC (MP4 audio) encoding +SOURCE[45]="$SRCDIR/vo-aacenc-$AACENC.tar.gz" +SRCURL[45]="http://downloads.sourceforge.net/opencore-amr/vo-aacenc-$AACENC.tar.gz" +SRCPAT[45]="YES" USE[45]="YES" +# AMR-WB encoder libraries used to encode 3GPP audio +SOURCE[46]="$SRCDIR/vo-amrwbenc-${AMRWBENC}.tar.gz" +SRCURL[46]="http://downloads.sourceforge.net/opencore-amr/vo-amrwbenc-${AMRWBENC}.tar.gz" +SRCPAT[46]="NO" +USE[46]="YES" + +# The browser plugin source has been separated from VLC: +SOURCE[47]="$SRCDIR/npapi-vlc-${NPAPI}.tar.bz2" +SRCURL[47]="" +SRCPAT[47]="NO" +USE[47]="YES" + +# Bluray support library (for unencrypted content): +SOURCE[48]="$SRCDIR/libbluray-${BLURAY}.tar.bz2" +SRCURL[48]="ftp://ftp.videolan.org/pub/videolan/libbluray/${BLURAY}/libbluray-${BLURAY}.tar.bz2" +SRCPAT[48]="NO" +USE[48]="YES" + +# Unicode BiDirectional algorithm library, requirement for libass. +SOURCE[49]="$SRCDIR/fribidi-${FRIBIDI}.tar.gz" +SRCURL[49]="http://fribidi.org/download/fribidi-${FRIBIDI}.tar.gz" +SRCPAT[49]="NO" +USE[49]="YES" + +# librtmp library, supporting RTMP (flash) streams +SOURCE[50]="$SRCDIR/rtmpdump-${RTMP}.tar.gz" +SRCURL[50]="http://rtmpdump.mplayerhq.hu/download/rtmpdump-${RTMP}.tgz" +SRCPAT[50]="NO" +USE[50]="YES" + +# GSM support: +SOURCE[51]="$SRCDIR/gsm-$GSM.tar.gz" +SRCURL[51]="http://osxwinebuilder.googlecode.com/files/gsm-$GSM.tar.gz" +SRCPAT[51]="NO" +USE[51]="YES" + # CSS decoding- VLC can do without if you install an external libdvdcss package. -#SOURCE[xx]="$SRCDIR/libdvdcss-${DVDCSS}.tar.bz2" -#SRCURL[xx]="http://download.videolan.org/pub/libdvdcss/${DVDCSS}/libdvdcss-${DVDCSS}.tar.bz2" -#SRCPAT[xx]="YES" -#USE[xx]="YES" +SOURCE[52]="$SRCDIR/libdvdcss-${DVDCSS}.tar.bz2" +SRCURL[52]="http://download.videolan.org/pub/libdvdcss/${DVDCSS}/libdvdcss-${DVDCSS}.tar.bz2" +SRCPAT[52]="YES" +USE[52]="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. @@ -891,7 +945,9 @@ src_checkout() { && cd .. fi chown -R root:root . \ - && tar --exclude .git -${TARCOMP}cf ${2} vlc-${SRCVER} + && tar -${TARCOMP}cf ${2} vlc-${SRCVER} + # 20110824: vlc from git won't compile unless there is .git directory + # && tar --exclude .git -${TARCOMP}cf ${2} vlc-${SRCVER} cd .. rm -rf vlc_temp_checkout_$$ # If VERSION was "HEAD" we still want a date to appear in the pkgname: @@ -954,6 +1010,22 @@ src_checkout() { && tar -${TARCOMP}cf ${2} libdvdread-${DVDREAD} rm -rf libdvdread-${DVDREAD} ;; + 19) # libmpcdec-$MPCDEC + local SVNURL=http://svn.musepack.net/libmpc/trunk/ + if [ "$(echo ${MPCDEC}|cut -c1)" == 'r' ]; then # revision instead of date + REV=$(echo ${MPCDEC} | cut -c2-) + else + REV="{${MPCDEC}}" + fi + mkdir libmpcdec-${MPCDEC} \ + && cd libmpcdec-${MPCDEC} \ + && svn checkout --revision $REV $SVNURL . \ + && chown -R root:root . \ + && cd .. \ + && tar --exclude .svn -${TARCOMP}cf ${2} libmpcdec-${MPCDEC} + rm -rf libmpcdec-${MPCDEC} + unset SVNURL + ;; 44) # We clone the git of libvpx at a certain date: mkdir libvpx-${VPX} \ && cd libvpx-${VPX} \ @@ -964,6 +1036,26 @@ src_checkout() { && tar --exclude .git -${TARCOMP}cf ${2} libvpx-${VPX} rm -rf libvpx-${VPX} ;; + 47) # We clone the git of npapi-vlc at a certain date: + mkdir npapi-vlc-${NPAPI} \ + && cd npapi-vlc-${NPAPI} \ + && git clone git://git.videolan.org/npapi-vlc.git . \ + && git checkout $(git rev-list -n 1 --before="`date -d $NPAPI`" master) \ + && chown -R root:root . \ + && cd .. \ + && tar --exclude .git -${TARCOMP}cf ${2} npapi-vlc-${NPAPI} + rm -rf npapi-vlc-${NPAPI} + ;; + 48) # We clone the git of libbluray at a certain date: + mkdir libbluray-${BLURAY} \ + && cd libbluray-${BLURAY} \ + && git clone git://git.videolan.org/libbluray.git . \ + && git checkout $(git rev-list -n 1 --before="`date -d $BLURAY`" master) \ + && chown -R root:root . \ + && cd .. \ + && tar --exclude .git -${TARCOMP}cf ${2} libbluray-${BLURAY} + rm -rf libbluray-${BLURAY} + ;; *) # Do nothing ;; esac @@ -1024,6 +1116,10 @@ if [ "$STATIC_FFMPEG" != "YES" ]; then USE[8]="NO" # faac USE[35]="NO" # theora USE[44]="NO" # vpx + USE[45]="NO" # aacenc + USE[46]="NO" # vo-amrwb + USE[50]="NO" # rtmp + USE[51]="NO" # gsm fi # Source file availability: @@ -1099,11 +1195,6 @@ make_theora() { echo -e "**\n** theora ...\n**" cd $TMP/tmp-$PRGNAM/libtheora-${THEORA} -# Hope this is temporary - add a forgotten file for 1.0beta3: -if [ ! -f doc/spec/ltablex.sty -a -f $SRCDIR/ltablex.sty ]; then - echo "Adding missing 'ltablex.sty'..." - cp $SRCDIR/ltablex.sty ./doc/spec/ -fi # Don't build documentation and other crap: sed -i -e "s/doc tests / /" Makefile* @@ -1221,16 +1312,129 @@ CFLAGS="$SLKCFLAGS" \ make -j$NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}_amr.log make install PREFIX=$VLCDEPSDIR/usr LIBDIR=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_amr.log -# Add DOCS to the vlcdeps to have it added to ffmpeg package later: +# Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/amr cp -a AUTHORS COPYING ChangeLog LICENSE NEWS README \ $VLCDEPSDIR/doc/amr || true cd - } +# ----------------------------------------------------------------------------- +# Compile VisualOn amr wideband encoder library +# The ffmpeg will use these +# ----------------------------------------------------------------------------- +make_amrwbenc() +{ +echo -e "**\n** amrwbenc ...\n**" +cd $TMP/tmp-$PRGNAM/vo-amrwbenc-${AMRWBENC} +LDFLAGS="$SLKLDFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=$VLCDEPSDIR/usr \ + --libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ + --mandir=$VLCDEPSDIR/usr/man \ + --disable-shared \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_amrwbenc.log +make -j$NUMJOBS 2>&1 | tee $OUTPUT/make-${PRGNAM}_amrwbenc.log +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 \ + $VLCDEPSDIR/doc/amrwbenc || true +cd - +} + +# ----------------------------------------------------------------------------- +# Compile aacenc library +# The ffmpeg will use these # ----------------------------------------------------------------------------- -# Compile ffmpeg with support for AMR, LAME, XVID, FAAC +make_aacenc() +{ +echo -e "**\n** aacenc ...\n**" +cd $TMP/tmp-$PRGNAM/vo-aacenc-${AACENC} + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +LDFLAGS="$SLKLDFLAGS" \ +./configure \ + --prefix=$VLCDEPSDIR/usr \ + --libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ + --enable-static \ + --disable-shared \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_aacenc.log +make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_aacenc.log +# Install aacenc into a temp location so ffmpeg can pickup the library +make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_aacenc.log +# Add DOCS to the vlcdeps to have it added to vlc package later: +mkdir -p $VLCDEPSDIR/doc/aacenc +cp -a AUTHORS COPYING* ChangeLog NEWS NOTICE README \ + $VLCDEPSDIR/doc/aacenc || true +cd - +} + + +# ----------------------------------------------------------------------------- +# Compile rtmpdump +# ----------------------------------------------------------------------------- +make_rtmp() +{ +echo -e "**\n** rtmp ...\n**" +cd $TMP/tmp-$PRGNAM/rtmpdump-$RTMP +make -C librtmp prefix=/usr OPT="$SLKCFLAGS" all librtmp.pc \ + 2>&1 | tee $OUTPUT/make-${PRGNAM}_rtmp.log +# Install librtmp into a temp location so ffmpeg can pickup the library +echo -e "\n**\n**\n" +mkdir -p $VLCDEPSDIR/usr/{include/librtmp,lib${LIBDIRSUFFIX}/pkgconfig} +cp -a librtmp/librtmp.a $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} +cp -a librtmp/{amf.h,http.h,log.h,rtmp.h} $VLCDEPSDIR/usr/include/librtmp +cp -a librtmp/librtmp.pc $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig +# Add DOCS to the vlcdeps to have it added to vlc package later: +mkdir -p $VLCDEPSDIR/doc/rtmp +cp -a AUTHORS COPYING ChangeLog README $VLCDEPSDIR/doc/rtmp/ || true +cd - +} + + +# ----------------------------------------------------------------------------- +# Compile gsm +# ----------------------------------------------------------------------------- +make_gsm() +{ +echo -e "**\n** gsm ...\n**" +GSMMAJ=$(echo $GSM | cut -d. -f1,2) +GSMPL=$(echo $GSM | cut -d. -f3) +mv $TMP/tmp-$PRGNAM/gsm-${GSMMAJ}-pl${GSMPL} $TMP/tmp-$PRGNAM/gsm-${GSM} +cd $TMP/tmp-$PRGNAM/gsm-${GSM} +# Without this, x86_64 builds will fail: +sed -i -e "/^CCFLAGS/s,-O2 ,$SLKCFLAGS ," \ + -e "s,^# LDFLAGS.*,LDFLAGS = $SLKLDFLAGS," Makefile +make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_gsm.log +# Install gsm into a temp location so ffmpeg can pickup the library +make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_gsm.log +mkdir -p $VLCDEPSDIR/usr/{bin,include/gsm,lib${LIBDIRSUFFIX}} +cp bin/* $VLCDEPSDIR/usr/bin/ +cp inc/gsm.h $VLCDEPSDIR/usr/include/gsm/ +ln -sf gsm/gsm.h $VLCDEPSDIR/usr/include/gsm.h +cp lib/* $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/ +# Add DOCS to the vlcdeps to have it added to vlc package later: +mkdir -p $VLCDEPSDIR/doc/gsm +cp -a COPYRIGHT ChangeLog* INSTALL MACHINES MANIFEST README \ + $VLCDEPSDIR/doc/gsm || true +cd - +} + + +# ----------------------------------------------------------------------------- +# Compile ffmpeg with support for AMR, LAME, XVID, FAAC, RTMP, ... # Later, we will statically link VLC to the generated libavcodec libraries # ----------------------------------------------------------------------------- make_ffmpeg() @@ -1246,7 +1450,10 @@ fi # Only use patented code if we are allowing it: if [ "${USE_PATENTS}" == "YES" ]; then - USE_PATENTED="--enable-libmp3lame --enable-libfaac --enable-nonfree" + USE_PATENTED="--enable-libmp3lame \ + --enable-libfaac \ + --enable-libvo-aacenc \ + --enable-nonfree" else USE_PATENTED=" " fi @@ -1259,6 +1466,10 @@ else ARCHOPTS="" fi +## Prevent static linking issues: +#sed -i -e "s/pkg_config --libs/pkg_config --static --libs/" \ +# configure + # Stamp the version into the source: [ -f version.sh ] && sed -i -e "s/UNKNOWN/$FFMPEG/" version.sh @@ -1274,13 +1485,17 @@ PKG_CONFIG_PATH="${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ ${USE_PATENTED} \ --enable-gpl \ --enable-version3 \ + --enable-libgsm \ --enable-libopencore-amrnb \ --enable-libopencore-amrwb \ + --enable-librtmp \ --enable-libtheora \ + --enable-libvo-amrwbenc \ --enable-libvpx \ --enable-avfilter \ --enable-postproc \ --enable-pthreads \ + --enable-hardcoded-tables \ --disable-ffserver \ --disable-ffplay \ --disable-ffmpeg \ @@ -1463,6 +1678,20 @@ make_live555() { echo -e "**\n** live555 ...\n**" cd $TMP/tmp-$PRGNAM/live + +# VLC will refuse live555 unless these patches have been applied: +cat /dev/null > $OUTPUT/patch-${PRGNAM}_live.log +cat ../vlc-$VERSION/contrib/src/live555/live-uselocale.patch \ + | patch -p1 --verbose 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_live.log +cat ../vlc-$VERSION/contrib/src/live555/live-inet_ntop.patch \ + | patch -p1 --verbose 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_live.log +cat ../vlc-$VERSION/contrib/src/live555/live-intptr.patch \ + | patch -p1 --verbose 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_live.log +cat ../vlc-$VERSION/contrib/src/live555/live-getaddrinfo.patch \ + | patch -p1 --verbose 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_live.log +cat ../vlc-$VERSION/contrib/src/live555/live-cloexec.patch \ + | patch -p1 --verbose 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_live.log + # Force the use of our CFLAGS sed -i -e "s|-O2|${SLKCFLAGS}|g" config.linux # Live555 is not useable with vlc unless linked statically. @@ -1474,6 +1703,21 @@ if ! $(grep -q Bstatic config.linux) ; then fi ./genMakefiles linux 2>&1 | tee $OUTPUT/configure-${PRGNAM}_live.log make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_live.log +# Move the live555 stuff into place for vlc to pick it up: +mkdir -p $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $VLCDEPSDIR/usr/include +cp \ + groupsock/libgroupsock.a \ + liveMedia/libliveMedia.a \ + UsageEnvironment/libUsageEnvironment.a \ + BasicUsageEnvironment/libBasicUsageEnvironment.a \ + $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/ +cp \ + groupsock/include/*.hh \ + groupsock/include/*.h \ + liveMedia/include/*.hh \ + UsageEnvironment/include/*.hh \ + BasicUsageEnvironment/include/*.hh \ + $VLCDEPSDIR/usr/include/ # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/live555/ cp COPYING README \ @@ -1580,21 +1824,35 @@ make_mpcdec() { echo -e "**\n** libmpcdec ...\n**" cd $TMP/tmp-$PRGNAM/libmpcdec-$MPCDEC -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -LDFLAGS="$SLKLDFLAGS" \ -./configure \ - --prefix=$VLCDEPSDIR/usr \ - --libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ - --enable-static \ - --disable-shared \ - --program-prefix= \ - --program-suffix= \ - --build=$ARCH-slackware-linux \ - 2>&1 | tee $OUTPUT/configure-${PRGNAM}_mpcdec.log + +# Prevent a dependency on libreplaygain and libcuefile: +sed -i \ + -e 's,^add_subdirectory(mpcgain),,g' \ + -e 's,^add_subdirectory(mpcchap),,g' \ + CMakeLists.txt + +# We want to use our own CFLAGS please: +sed -i \ + -e 's/set(CMAKE_C_FLAGS "\(.*\)")$/add_definitions(\1)/' \ + CMakeLists.txt + +mkdir build +cd build + CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + LDFLAGS="$SLKLDFLAGS" \ + cmake .. \ + -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX=${LIBDIRSUFFIX} \ + -DSHARED=OFF \ + 2>&1 | tee $OUTPUT/cmake-${PRGNAM}_mpcdec.log make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_mpcdec.log # Install mpcdec into a temp location so vlc can pickup the library -make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_mpcdec.log +# (with the move to 'cmake', the install target does not work any longer): +mkdir -p $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} +install -m0644 libmpcdec/libmpcdec_static.a \ + $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libmpcdec.a # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/libmpcdec/ cp AUTHORS COPYING ChangeLog README \ @@ -1630,7 +1888,8 @@ PATH="$VLCDEPSDIR/usr/bin:$PATH" \ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_dvdnav.log make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_dvdnav.log # Install libdvdnav into a temp location so vlc can pickup the library -make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_dvdnav.log +make install m4datadir=$VLCDEPSDIR/usr/share/aclocal \ + 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_dvdnav.log # Make a symlink which vlc-20080730 needs: ( cd $VLCDEPSDIR/usr/include ln -s dvdread libdvdread @@ -1682,25 +1941,25 @@ make_dvdread() echo -e "**\n** libdvdread ...\n**" cd $TMP/tmp-$PRGNAM/libdvdread-$DVDREAD + +if [ "${USE_PATENTS}" == "YES" ]; then + # If we allow patented software, we also link libdvdcss statically into + # libdvdread. Otherwise, you can just install libdvdcss additionally + # and the dvdread library will find and load dvdcss support at runtime. + cat $SRCDIR/dvdread-css-static.patch | patch -p1 --verbose \ + 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_dvdread.log + DO_CSS="--enable-libdvdcss" +else + DO_CSS="" +fi + ./autogen.sh noconfig \ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_dvdread.log -#if [ "${USE_PATENTS}" == "YES" ]; then -# # If we allow patented software, we also link libdvdcss statically into -# # libdvdread. Otherwise, you can just install libdvdcss additionally -# # and the dvdread library will find and load dvdcss support at runtime. -# cat $SRCDIR/libdvdread_static_dvdcss.patch | patch -p0 --verbose \ -# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}_dvdread.log -# DO_CSS="--with-libdvdcss=$VLCDEPSDIR/usr" -#else -# DO_CSS="" -#fi -## Unfortunately, I still cannot get dvdcss statically linked-in: -DO_CSS="" - CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \ CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \ LDFLAGS="-L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \ +PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ ./configure \ --prefix=$VLCDEPSDIR/usr \ --libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ @@ -1714,7 +1973,8 @@ LDFLAGS="-L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \ make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_dvdread.log # Install libdvdread into a temp location so libdvdnav can pickup the library echo -e "\n**\n**\n" -make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_dvdread.log +make install m4datadir=$VLCDEPSDIR/usr/share/aclocal \ + 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_dvdread.log # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/libdvdread/ cp AUTHORS COPYING ChangeLog NEWS README TODO \ @@ -1722,6 +1982,7 @@ cp AUTHORS COPYING ChangeLog NEWS README TODO \ cd - } + # ----------------------------------------------------------------------------- # Compile libcddb # ----------------------------------------------------------------------------- @@ -1839,7 +2100,6 @@ LDFLAGS="$SLKLDFLAGS" \ --libdir=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} \ --enable-static \ --disable-shared \ - --disable-debug \ --program-prefix= \ --program-suffix= \ --build=$ARCH-slackware-linux \ @@ -1928,10 +2188,12 @@ cd - make_orc() { echo -e "**\n** orc ...\n**" + cd $TMP/tmp-$PRGNAM/orc-$ORC ## Make the static build succeed: #cat $SRCDIR/orc-0.4.3_static.diff | patch -p1 --verbose \ # 2>&1 | tee $OUTPUT/patch-${PRGNAM}_orc.log + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ LDFLAGS="$SLKLDFLAGS" \ @@ -2100,6 +2362,7 @@ LDFLAGS="$SLKLDFLAGS" \ --program-suffix= \ --build=$ARCH-slackware-linux \ 2>&1 | tee $OUTPUT/configure-${PRGNAM}_goom.log + make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_goom.log # Install libgoom into a temp location so vlc can pickup the library make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_goom.log @@ -2582,9 +2845,9 @@ make_kate() echo -e "**\n** kate ...\n**" cd $TMP/tmp-$PRGNAM/libkate-${KATE} -## Compatibility patch for libpng14: -#cat $SRCDIR/libkate_png14.patch | patch -p0 --verbose \ -# 2>&1 | tee $OUTPUT/patch-${PRGNAM}_kate.log +# Compatibility patch for libpng14: +cat $SRCDIR/libkate_png14.patch | patch -p0 --verbose \ + 2>&1 | tee $OUTPUT/patch-${PRGNAM}_kate.log CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ @@ -2653,6 +2916,12 @@ make_lua() echo -e "**\n** lua ...\n**" cd $TMP/tmp-$PRGNAM/lua-${LUA} +# Use 32-bits LUAC file format on all platforms. In other words, +# 64-bits platform will support 32-bits LUAC files and reject 64-bits LUAC +# files. This should ease cross-compilation and copying luac files manually. +cat $SRCDIR/luac-32bits.patch | patch -p1 --verbose \ + 2>&1 | tee $OUTPUT/patch-${PRGNAM}_lua.log + # Make it use our CFLAGS: sed -i "s/-DLUA_USE_LINUX/\"-DLUA_USE_LINUX $SLKCFLAGS\"/g" src/Makefile @@ -2689,7 +2958,7 @@ mkdir ${VLCDEPSDIR}/etc export CFLAGS="$SLKCFLAGS" export CPPFLAGS="$SLKCFLAGS" -export LDFLAGS="$SLKLDFLAGS" +export LDFLAGS="$SLKLDFLAGS -ljpeg" make -j${NUMJOBS} -C lib LINKTYPE=static PREFIX=$VLCDEPSDIR/usr LIBDIR=$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} SYSCONFDIR=$VLCDEPSDIR/etc 2>&1 | tee $OUTPUT/make-${PRGNAM}_v4l.log # Strip the static lib to prevent linking errors in 64-bit, # and fix the pkg-config file (to fix unresolved symbols in the plugin) @@ -2762,6 +3031,9 @@ make install DESTDIR=$VLCDEPSDIR 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_libva.log # the drivers in $(libdir)/va/drivers): rm -f $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libva*.so* rm -f $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libva*.la +## Fix the pkgconfig file to get rid of unresolved symbols at link time: +#sed -i -e "/^Libs:/s/$/ -ldl/" \ +# $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig/libva*.pc # Add DOCS to the vlcdeps to have it added to vlc package later: mkdir -p $VLCDEPSDIR/doc/libva/ cp COPYING $VLCDEPSDIR/doc/libva/ || true @@ -2869,6 +3141,71 @@ cd - # ----------------------------------------------------------------------------- +# Compile npapi-vlc +# ----------------------------------------------------------------------------- +make_npapi() +{ +echo -e "**\n** npapi ...\n**" +cd $TMP/tmp-$PRGNAM/$PRGNAM2-${NPAPI} + +[ ! -x configure ] && ./autogen.sh 2>&1 | tee autogen-${PRGNAM}_npapi.log + +CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \ +CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \ +LDFLAGS="-L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \ +PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --with-mozilla-sdk-path=$VLCDEPSDIR/usr/xulrunner-sdk \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_npapi.log +make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_npapi.log +cd - +} + + +# ----------------------------------------------------------------------------- +# Compile libbluray +# ----------------------------------------------------------------------------- +make_bluray() +{ +echo -e "**\n** bluray ...\n**" +cd $TMP/tmp-$PRGNAM/libbluray-${BLURAY} + +[ ! -x configure ] && sh bootstrap + +CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \ +CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \ +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-examples \ + --disable-debug \ + --disable-bdjava \ + --disable-shared \ + --enable-static \ + --disable-doxygen-doc \ + --with-dlopen-crypto-libs \ + --program-prefix= \ + --program-suffix= \ + --build=$ARCH-slackware-linux \ + 2>&1 | tee $OUTPUT/configure-${PRGNAM}_bluray.log +make -j${NUMJOBS} 2>&1 | tee $OUTPUT/make-${PRGNAM}_bluray.log +# Install libbluray into a temp location so vlc can pickup the library +make install 2>&1 | tee -a $OUTPUT/make-${PRGNAM}_bluray.log +# Add DOCS to the vlcdeps to have it added to vlc package later: +mkdir -p $VLCDEPSDIR/doc/libbluray/ +cp COPYING *.txt $VLCDEPSDIR/doc/libbluray/ || true +cd - +} + + +# ----------------------------------------------------------------------------- # VLC # ----------------------------------------------------------------------------- make_vlc() @@ -2916,52 +3253,12 @@ cd $TMP/tmp-$PRGNAM/${PRGNAM}-${SRCVER} echo "" >$OUTPUT/patch-${PRGNAM}.log # Configure a default Slackware TTF font: -cat $SRCDIR/vlc-1.1.12_deffont.patch | patch -p1 --verbose \ +cat $SRCDIR/vlc-1.2_deffont.patch | patch -p1 --verbose \ 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log # Fix SDL header location: sed -i -e "s#SDL_image.h#SDL/&#" -e "s#SDL.h#SDL/&#" $(grep -lr "SDL*.h" .) -# Fix PLUGIN_PATH path for lib64 -sed -i -e 's#/lib/vlc#/usr/lib${LIBDIRSUFFIX}/vlc#g' vlc-config.in.in configure* \ - 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log - -## Detection of libupnp needs some extra libs: -#cat $SRCDIR/vlc-0.9.0_upnp.patch | patch -p1 --verbose \ -# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log - -## Fix compilation errors because of redefining gettext -## (this patch is not needed on slackware > 12.2): -#cat $SRCDIR/vlc-1.0.0_fixgettext.diff | patch -p1 --verbose \ -# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log - -# I want to be able to compile VLC on Slackware 12.2 (glibc 2.7): -cat $SRCDIR/vlc-1.0.0_allow_older_glibc.diff | patch -p1 --verbose \ - 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log - -# Fix fullscreen in KDE-4.3.3 and vlc-1.0.3: -if [ "$VERSION" = "1.0.3" ]; then - cat $SRCDIR/vlc-1.0.3_fixfullscreen.diff | patch -p1 --verbose \ - 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log -fi - -# Patch the dc1394 plugin (vlc 1.0.x) to use the new libdc1394 2.x API: -if [ "$(echo $VERSION |cut -d. -f1-2)" = "1.0" ]; then - cat $SRCDIR/vlc-1.0.3_ieee1394.diff | patch -p1 --verbose \ - 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log -fi - -# Fix youtube support in 1.1.11 -if [ "$VERSION" = "1.1.11" ]; then - cat $SRCDIR/vlc-1.1.11_youtube.patch | patch -p1 --verbose \ - 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log -fi - -## Patch the dc1394 plugin (vlc 1.0.x) to use the new libdc1394 2.x API: -## Allow older taglib versions (like the one in Slackware 13.0): -#cat $SRCDIR/vlc_oldtaglib.diff | patch -p1 --verbose \ -# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log - # Only enable DLL loader on ELF ix86 platforms: if [ "$ARCH" == "i486" -o "$ARCH" == "i686" ]; then DO_LOADER="--enable-loader" @@ -2976,37 +3273,47 @@ else DO_FFMPEG_LIBS_PAT="" fi +## FFMPEG changed it's CPU flag definitions but VLC did not yet follow: +#if grep -q FF_MM_MMX modules/stream_out/switcher.c ; then +# cat $SRCDIR/vlc_ffmpeg_mm_api.patch | patch -p1 --verbose \ +# 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log +#fi + +# Fix runtime errors about missing symbols: +## vlc-cache-gen trips over at the end of the build, when we add LIBS +## to avoid missing symbols in the avcodec plugin at runtime: +if ! grep -q " -ldrm" ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig/libavcodec.pc ; then + sed -i "/^Libs: /s/$/ -lva -lva-x11 -lX11 -lXext -lXfixes -ldrm/" \ + ${VLCDEPSDIR}/usr/lib${LIBDIRSUFFIX}/pkgconfig/libavcodec.pc +fi + # If we built a static projectM support library, let's use it properly: if [ -d $VLCDEPSDIR/usr/share/vlc/projectM ]; then sed -i -e "s#share/projectM#share/vlc/projectM#" \ $(grep -lr 'share/projectM' .) sed -i -e "s#usr/share/fonts/truetype/ttf-dejavu#usr/share/fonts/TTF#" \ $(grep -lr 'usr/share/fonts/truetype/ttf-dejavu' .) - ## This patch is no longer needed in 1.1.6 : - #cat $SRCDIR/projectM_locale.patch | patch -p1 --verbose \ - # 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log -fi - -# VLC 0.9.6 but also 0.9.9 needs to regenerate libtool (known bug) -if ls m4/lt*.m4 1>/dev/null 2>/dev/null ; then - rm -f m4/{lt,lib}*.m4; autoreconf -svif fi -# vlc checks eventfd availability in glibc rather awkwardly. Our glibc 2.7 -# implements the function but does not export it in a header. Still vlc thinks -# it can make use of it. NOTE: with glibc 2.8 it will work... have to wait... -sed -i -e 's/^#ifdef HAVE_EVENTFD/#ifdef HAVE_SYS_EVENTFD_H/' src/misc/objects.c +## VLC 0.9.6 but also 0.9.9 needs to regenerate libtool (known bug) +#if ls m4/lt*.m4 1>/dev/null 2>/dev/null ; then +# rm -f m4/{lt,lib}*.m4; autoreconf -svif +#fi +# +## vlc checks eventfd availability in glibc rather awkwardly. Our glibc 2.7 +## implements the function but does not export it in a header. Still vlc thinks +## it can make use of it. NOTE: with glibc 2.8 it will work... have to wait... +#sed -i -e 's/^#ifdef HAVE_EVENTFD/#ifdef HAVE_SYS_EVENTFD_H/' src/misc/objects.c sh bootstrap +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" \ CPPFLAGS="-I$VLCDEPSDIR/usr/include -I$VLCDEPSDIR/usr/include/xulrunner" \ CFLAGS="-I$VLCDEPSDIR/usr/include -I$VLCDEPSDIR/usr/include/xulrunner $SLKCFLAGS" \ CXXFLAGS="-I$VLCDEPSDIR/usr/include -I$VLCDEPSDIR/usr/include/xulrunner $SLKCFLAGS" \ LDFLAGS="-Wl,-Bsymbolic -L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \ -LIBS="-lva -lva-x11 -lX11 -lXext -lXfixes -ldrm" \ PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \ -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" \ PATH="$VLCDEPSDIR/usr/bin:$PATH" \ ./configure \ --prefix=/usr \ @@ -3018,11 +3325,10 @@ PATH="$VLCDEPSDIR/usr/bin:$PATH" \ --without-contrib \ --disable-rpath \ --disable-debug \ - --disable-static \ --disable-jack \ --disable-gnomevfs \ --disable-zvbi \ - --disable-snapshot \ + --disable-switcher \ --enable-shared \ --enable-optimize-memory=no \ --enable-qt4 \ @@ -3033,23 +3339,19 @@ PATH="$VLCDEPSDIR/usr/bin:$PATH" \ --enable-dv \ --enable-dvbpsi \ --enable-dvdnav \ - --with-dvdnav-config-path=$VLCDEPSDIR/usr/bin \ --enable-vcdx \ --enable-libcddb \ + --enable-projectm \ --enable-svg \ - --enable-svgalib \ --enable-telx \ --enable-libass \ - --enable-v4l \ --enable-caca \ --enable-aa \ - --enable-switcher \ --enable-upnp \ --enable-flac \ --enable-shout \ --enable-schroedinger \ --enable-live555 \ - --with-live555-tree=$TMP/tmp-$PRGNAM/live \ --enable-real \ --enable-realrtsp \ --enable-speex \ @@ -3065,8 +3367,6 @@ PATH="$VLCDEPSDIR/usr/bin:$PATH" \ --enable-avcodec \ --enable-avformat \ --enable-swscale \ - --enable-id3tag \ - ${DO_MOZPLUGIN} \ ${DO_LOADER} \ --enable-run-as-root \ --program-prefix= \ @@ -3115,25 +3415,28 @@ PATH="$VLCDEPSDIR/usr/bin:$PATH" \ #--enable-release \ #--enable-libcdio \ #--enable-cddax \ + #--disable-snapshot \ + #--with-dvdnav-config-path=$VLCDEPSDIR/usr/bin \ + #--enable-svgalib \ + #--enable-v4l \ + #--enable-id3tag \ + # Now finds the required libraries without manual tweaking: #AVCODEC_LIBS="-lavcodec -lbz2 -lz ${DO_FFMPEG_LIBS_PAT} -ldl -ltheora -lvorbisenc -lswscale -lavutil -lvorbis -lm -logg" \ #AVCODEC_CFLAGS="" \ -# At some time, I needed to remove access_mmap from vlc-config because that -# caused my vlc to die after only a few seconds of playtime... -# You can test this by adding "--no-file-mmap" as a parameter (or not) to vlc -# if you did not strip access_mmap from vlc-config: -#sed -i -e "s/access_mmap//" vlc-config - -# Force dtstofloat32 (back) in: -if ! $(grep -q dtstofloat32 vlc-config) ; then - sed -i -e "s/dtstospdif /dtstofloat32 dtstospdif /" vlc-config -fi - # Now, we are ready for the compile: make -j${NUMJOBS} 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 + echo -e "\n**\n**\n" >> $OUTPUT/make-${PRGNAM}.log + make install DESTDIR=$VLCDEPSDIR 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log + # And remove the .la files because they confuse the plugin compilation. + rm $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libvlc*.la +fi + cd $OLDDIR } @@ -3142,35 +3445,37 @@ cd $OLDDIR # and creating the actual Slackware packages in $OUTPUT # ----------------------------------------------------------------------------- -build_mozplugin() +build_npapipkg() { -echo -e "**\n** mozplugin ...\n**" -cd $TMP/tmp-$PRGNAM/${PRGNAM}-${SRCVER} +echo -e "**\n** creating $PRGNAM2 package ...\n**" +cd $TMP/tmp-$PRGNAM/$PRGNAM2-${NPAPI} # Install the mozilla plugin: mkdir -p $PKG2/usr/lib${LIBDIRSUFFIX}/mozilla/plugins/ -make -C projects/mozilla DESTDIR=$PKG2 install-strip +make DESTDIR=$PKG2 install-strip + +# Add package documentation: +mkdir -p $PKG2/usr/doc/$PRGNAM2-$NPAPI +cp -a AUTHORS COPYING ChangeLog NEWS README $PKG2/usr/doc/$PRGNAM2-$NPAPI || true +find $PKG2/usr/doc -type f -exec chmod 644 {} \; +chown -R root:root $PKG2/usr/doc/$PRGNAM2-$NPAPI/* mkdir -p $PKG2/install cat $SRCDIR/slack-desc.$PRGNAM2 > $PKG2/install/slack-desc -if [ -f $SRCDIR/slack-required.$PRGNAM2 ]; then - cat $SRCDIR/slack-required.$PRGNAM2 > $PKG2/install/slack-required -fi +cat $SRCDIR/slack-required.$PRGNAM2 > $PKG2/install/slack-required cd $PKG2 -makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${PRGNAM2}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE} 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}_${PRGNAM2}.log +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM2}-${NPAPI}-${ARCH}-${BUILD}${TAG}.${PKGTYPE} 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}_${PRGNAM2}.log cd $OUTPUT -md5sum ${PRGNAM}-${PRGNAM2}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE} > ${PRGNAM}-${PRGNAM2}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE}.md5 +md5sum ${PRGNAM2}-${NPAPI}-${ARCH}-${BUILD}${TAG}.${PKGTYPE} > ${PRGNAM2}-${NPAPI}-${ARCH}-${BUILD}${TAG}.${PKGTYPE}.md5 cd - -cat $PKG2/install/slack-desc | grep "^${PRGNAM}-${PRGNAM2}" > $OUTPUT/${PRGNAM}-${PRGNAM2}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt -if [ -f $PKG2/install/slack-required ]; then - cat $PKG2/install/slack-required > $OUTPUT/${PRGNAM}-${PRGNAM2}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep -fi +cat $PKG2/install/slack-desc | grep "^${PRGNAM2}" > $OUTPUT/${PRGNAM2}-${NPAPI}-${ARCH}-${BUILD}${TAG}.txt +cat $PKG2/install/slack-required > $OUTPUT/${PRGNAM2}-${NPAPI}-${ARCH}-${BUILD}${TAG}.dep } -build_slackpkg() +build_vlcpkg() { -echo -e "**\n** building the package ...\n**" +echo -e "**\n** building the $PRGNAM package ...\n**" # # Install all the needed stuff to the package dir # @@ -3178,10 +3483,6 @@ cd $TMP/tmp-$PRGNAM/${PRGNAM}-${SRCVER} make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log -# Even though I modified vlc-config to exclude access_mmap from building, it -# does get built... so now we remove it forcibly: -#rm -f $PKG/usr/lib${LIBDIRSUFFIX}/vlc/access/libaccess_mmap_plugin.* - # We don't want the mozilla plugin here: [ -d $PKG/usr/lib${LIBDIRSUFFIX}/mozilla ] && rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/mozilla @@ -3216,7 +3517,8 @@ mkdir -p $PKG/install cat <<EOINS > $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 1> /dev/null 2> /dev/null + chroot . /usr/bin/update-desktop-database usr/share/applications > /dev/null +2>&1 fi # Update hicolor theme cache: @@ -3273,7 +3575,7 @@ cp -a $VLCDEPSDIR/doc/* $PKG/usr/doc/$PRGNAM-$VERSION || true cat $SRCDIR/$(basename $0) > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild ( cd $SRCDIR tar -zcf $PKG/usr/doc/$PRGNAM-$VERSION/${PRGNAM}_slackware_patches.tar.gz \ - *.diff *.patch ltablex.sty + *.diff *.patch ) find $PKG/usr/doc -type f -exec chmod 644 {} \; chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION/* @@ -3359,8 +3661,10 @@ else make_cddb # DVD support: - # I can not get dvdcss statically linked into libdvdread: - #make_dvdcss + # Only use patented code if we are allowing it: + if [ "${USE_PATENTS}" == "YES" ]; then + make_dvdcss + fi make_dvdread make_dvdnav @@ -3369,10 +3673,14 @@ else make_theora make_vpx make_amr + make_amrwbenc + make_rtmp + make_gsm # Only use patented code if we are allowing it: if [ "${USE_PATENTS}" == "YES" ]; then make_lame make_faac + make_aacenc fi # ffmpeg uses the above static libraries: @@ -3402,6 +3710,7 @@ else make_tiger make_lua make_v4l + make_bluray # Visualisations: make_goom @@ -3426,8 +3735,7 @@ if echo "$*" | grep -qw -- --wrapvlcdeps ; then tar -jcf $OUTPUT/$PRGNAM-vlcdeps-$ARCH.tar.bz2 \ vlcdeps \ a52dec-$A52 \ - faad2-$FAAD2 \ - live + faad2-$FAAD2 echo "Created vlcdeps binary tarball in '$OUTPUT/$PRGNAM-vlcdeps-$ARCH.tar.bz2'..." cd - @@ -3435,11 +3743,14 @@ else # Compile VLC using all the precompiled static libs in $VLCDEPSDIR : make_vlc - # Should we also build a package for the mozilla plugin? + # Wrap VLC into a Slackware package: + build_vlcpkg "$*" + + # Should we also compile the mozilla plugin (npapi-vlc)? if [ "$MOZPLUGIN" == "YES" ]; then - build_mozplugin + ## Unfortunately we need to spam the root partition with the vlc package: + #upgradepkg --install-new $OUTPUT/${PRGNAM}-$(echo $VERSION |tr '-' '.')-${ARCH}-${BUILD}${TAG}.${PKGTYPE} + make_npapi + build_npapipkg fi - - # Pack all this stuff into a Slackware package: - build_slackpkg "$*" fi |