summaryrefslogtreecommitdiffstats
path: root/MPlayer
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2007-10-09 19:59:19 +0000
committer Eric Hameleers <alien@slackware.com>2007-10-09 19:59:19 +0000
commit2c47c8b305e1739baa2430b628d54648856425c9 (patch)
tree78e7cfefd22930febdfb416e970dc192b820f95d /MPlayer
parent1189e0763b8fc5e95791c399f091c05b5e66a47f (diff)
downloadasb-2c47c8b305e1739baa2430b628d54648856425c9.tar.gz
asb-2c47c8b305e1739baa2430b628d54648856425c9.tar.xz
Updated script for new release 1.0rc2
Diffstat (limited to 'MPlayer')
-rwxr-xr-xMPlayer/build/MPlayer.SlackBuild234
1 files changed, 121 insertions, 113 deletions
diff --git a/MPlayer/build/MPlayer.SlackBuild b/MPlayer/build/MPlayer.SlackBuild
index 13cd7a81..4b967e59 100755
--- a/MPlayer/build/MPlayer.SlackBuild
+++ b/MPlayer/build/MPlayer.SlackBuild
@@ -1,15 +1,34 @@
#!/bin/sh
# $Id$
-# Copyright (c) 2006 Eric Hameleers <alien@slackware.com>
+# Copyright (c) 2007 Eric Hameleers <alien@slackware.com>
+# All rights reserved.
+#
+# Permission to use, copy, modify, and distribute this software for
+# any purpose with or without fee is hereby granted, provided that
+# the above copyright notice and this permission notice appear in all
+# copies.
+#
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
# -----------------------------------------------------------------------------
#
# Slackware SlackBuild script
# ===========================
# By: Eric Hameleers <alien@slackware.com>
# For: MPlayer
-# Descr: MPEG-4 digital video technology
+# Descr: a movie player for LINUX
# URL: http://www.mplayerhq.hu/
-# Needs: libdvdread > 0.9.6
+# Needs:
# Changelog:
# 1.0rc1-1: 05/Nov/2006 by Eric Hameleers <alien@slackware.com>
# * Initial build.
@@ -31,26 +50,29 @@
# add security fix
# 1.0rc1-5: 07/jun/2007 by Eric Hameleers <alien@slackware.com>
# Add security fix.
+# 1.0rc2-1: 09/oct/2007 by Eric Hameleers <alien@slackware.com>
+# New version.
#
-# Run 'sh SlackBuild --cleanup' to build a Slackware package.
+# Run 'sh MPlayer.SlackBuild --cleanup' to build a Slackware package.
# The package (.tgz) plus descriptive .txt file are created in /tmp .
# Install using 'installpkg'.
#
# -----------------------------------------------------------------------------
-# --- INIT ---
# Set initial variables:
PRGNAM=MPlayer
-VERSION=${VERSION:-"1.0rc1"}
-ARCH=${ARCH:-"i486"}
-BUILD=${BUILD:-"5"}
+VERSION=${VERSION:-1.0rc2}
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-1}
-DOCS="AUTHORS ChangeLog Copyright LICENSE README DOCS/HTML DOCS/tech"
+DOCS="AUTHORS Changelog Copyright LICENSE README DOCS/HTML DOCS/tech"
CODECSDIR=/usr/lib/codecs # Where the WIN32 codecs are expected for instance
-DEFSKIN=${DEFSKIN:-"Blue"} # Download more at http://www.mplayerhq.hu/design7/dload.html
-SKINVER=${SKINVER:-"1.7"}
+
+DEFSKIN=${DEFSKIN:-"Blue"} # Download more skins at the following url:
+SKINVER=${SKINVER:-"1.7"} # http://www.mplayerhq.hu/design7/dload.html
+
LANGUAGES="en nl fr de es" # The default is to just add "en" documentation
# MPlayer will try to use one of the TrueType fonts present on the target
@@ -63,19 +85,18 @@ LANGUAGES="en nl fr de es" # The default is to just add "en" documentation
# if you want to know more about OSD font configuration.
OSDFONTS="Arialuni.ttf arial.ttf DejaVuSans.ttf Vera.ttf"
-# MPlayer source contains 'libmpdvdkit2' for reading DVD's. But this also
-# contains a copy of libdvdcss which is considered illegal software in some
-# countries.
-# The SlackBuild removes this library before building MPlayer and links to
-# the external library libdvdread instead, so that the resulting binary can be
-# distributed without legal concerns.
+# MPlayer source contains an internal copy of 'libdvdcss' for reading DVD's.
+# This is considered illegal software in some countries.
+# The SlackBuild removes support for this this library before building MPlayer
+# so that the resulting binary can be distributed without legal concerns.
# This also means that this SlackBuild creates a version of MPlayer that is
# unable to play encrypted DVD's (which is most DVD's on the market). If it is
# allowed in your country to use libdvdcss, this is not a big problem though.
-# Install a copy of libdvdcss and it will be picked up automatically by the
-# libdvdread library, so that MPlayer will again be able to play encrypted DVD's.
-# Set REMOVECSS="no" if you want MPLayer to use it's internal dvdcss code.
-REMOVECSS=${REMOVECSS:-yes}
+# Install a copy of libdvdcss and it will be picked up automatically by
+# MPlayer's internal libdvdread library, so that MPlayer will again be able
+# to play encrypted DVD's.
+# Set REMOVECSS="no" if you want MPLayer to use it's internal decss code.
+REMOVECSS=${REMOVECSS:-"yes"}
# Determine what X we're running (the modular X returns the prefix
# in the next command, while older versions stay silent):
@@ -83,8 +104,8 @@ XPREF=`pkg-config --variable=prefix x11` || true
[ "$XPREF" == "" ] && XPREF='/usr/X11R6'
# Where do we look for sources?
-CWD=`pwd`
-SRCDIR=`dirname $0`
+CWD=$(pwd)
+SRCDIR=$(dirname $0)
[ "${SRCDIR:0:1}" == "." ] && SRCDIR=${CWD}/${SRCDIR}
# Place to build (TMP) package (PKG) and output (OUTPUT) the program:
@@ -92,7 +113,7 @@ TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-# Input URL: http://www4.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc1.tar.bz2
+# Input URL: http://www4.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc2.tar.bz2
SOURCE[0]="$SRCDIR/${PRGNAM}-${VERSION}.tar.bz2"
SRCURL[0]="http://www4.mplayerhq.hu/${PRGNAM}/releases/${PRGNAM}-${VERSION}.tar.bz2"
@@ -100,14 +121,6 @@ SRCURL[0]="http://www4.mplayerhq.hu/${PRGNAM}/releases/${PRGNAM}-${VERSION}.tar.
SOURCE[1]="$SRCDIR/${DEFSKIN}-${SKINVER}.tar.bz2"
SRCURL[1]="http://www.mplayerhq.hu/MPlayer/skins/${DEFSKIN}-${SKINVER}.tar.bz2"
-# Security fix DSA 1244-1:
-SOURCE[2]="$SRCDIR/asmrules_fix_20061231.diff"
-SRCURL[2]="http://www.mplayerhq.hu/MPlayer/patches/asmrules_fix_20061231.diff"
-
-# Security fix CVE-2007-2948:
-SOURCE[3]="$SRCDIR/cddb_fix_20070605.diff"
-SRCURL[3]="http://www.mplayerhq.hu/MPlayer/patches/cddb_fix_20070605.diff"
-
##
## --- with a little luck, you won't have to edit below this point --- ##
##
@@ -119,46 +132,57 @@ trap 'echo "$0 FAILED at line $LINENO!" | tee $OUTPUT/error-${PRGNAM}.log' ERR
set -u
P1=${1:-1}
-if [ ! -d $TMP/tmp-$PRGNAM ]; then
- mkdir -p $TMP/tmp-$PRGNAM # location to build the source
-elif [ "$P1" != "--oldbuild" ]; then
- # If the "--oldbuild" parameter is present, we keep
- # the old build files and continue;
- # By default we remove the remnants of previous build and continue:
- rm -rf $TMP/tmp-$PRGNAM/*
-fi
-
-if [ "$PKG" = "" -o "$PKG" = "/" ] ; then
- echo "Please provide a sane value for the variable 'PKG'."
- exit 1
-elif [ ! -d $PKG ]; then
- mkdir -p $PKG # place for the package to be built
+# Slackware 11 and up need other option (gcc > 3.3.x)
+if [ $(gcc -dumpversion | tr -d '.' |cut -c 1-2) -gt 33 ]; then
+ MOPT=tune
else
- rm -rf $PKG/* # We always erase old package's contents:
-fi
-
-if [ ! -d $OUTPUT ]; then
- mkdir -p $OUTPUT # place for the package to be saved
+ MOPT=cpu
fi
-
-# --- SOURCE FILE AVAILABILITY ---
-
+case "$ARCH" in
+ i386) SLKCFLAGS="-O2 -march=i386 -m${MOPT}=i686"
+ SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ ;;
+ i486) SLKCFLAGS="-O2 -march=i486 -m${MOPT}=i686"
+ SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ ;;
+ s390) SLKCFLAGS="-O2"
+ SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ ;;
+ powerpc) SLKCFLAGS="-O2"
+ SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ ;;
+ x86_64) SLKCFLAGS="-O2 -fPIC"
+ SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
+ ;;
+ athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
+ SLKLDFLAGS=""; LIBDIRSUFFIX=""
+ ;;
+esac
+
+# Create working directories:
+mkdir -p $TMP/tmp-$PRGNAM # location to build the source
+rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build
+mkdir -p $PKG # place for the package to be built
+rm -rf $PKG/* # We always erase old package's contents:
+mkdir -p $OUTPUT # place for the package to be saved
+
+# Source file availability:
for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do
if ! [ -f ${SOURCE[$i]} ]; then
if ! [ "x${SRCURL[$i]}" == "x" ]; then
# Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
- [ -w "$SRCDIR" ] || SOURCE[$i]="$OUTPUT/`basename ${SOURCE[$i]}`"
- echo "Source '`basename ${SOURCE[$i]}`' not available yet..."
- echo "Will download file to `dirname $SOURCE[$i]`"
- wget -nv -O "${SOURCE[$i]}" "${SRCURL[$i]}" || true
- if [ $? -ne 0 ]; then
- echo "Downloading '`basename ${SOURCE[$i]}`' failed... aborting the build."
+ [ -w "$SRCDIR" ] || SOURCE[$i]="$OUTPUT/$(basename ${SOURCE[$i]})"
+ echo "Source '$(basename ${SOURCE[$i]})' not available yet..."
+ echo "Will download file to $(dirname $SOURCE[$i])"
+ wget -nv --connect-timeout=30 -O "${SOURCE[$i]}" "${SRCURL[$i]}" || true
+ if [ $? -ne 0 -o ! -s "${SOURCE[$i]}" ]; then
+ echo "Downloading '$(basename ${SOURCE[$i]})' failed.. aborting the build."
mv -f "${SOURCE[$i]}" "${SOURCE[$i]}".FAIL
exit 1
fi
else
- echo "File '`basename ${SOURCE[$i]}`' not available... aborting the build."
+ echo "File '$(basename ${SOURCE[$i]})' not available.. aborting the build."
exit 1
fi
fi
@@ -177,50 +201,45 @@ echo "++"
# Warn about libdvdread requirement:
if [ "$REMOVECSS" == "yes" ]; then
- echo -e "\n***\n*** You will need libdvdread installed if you want DVD support!!!\n***\n"
+ echo -e "\n***\n*** Removing internal DECSS library.\n*** If you want to play encrypted DVD's you need to install libdvdcss separately.\n***\n*** If you do not want to remove libdvdcss, then\n*** edit this SlackBuild script and change the line:\n*** REMOVECSS=${REMOVECSS:-"yes"}\n*** to:\n*** REMOVECSS="no"\n***\n"
sleep 2
fi
cd $TMP/tmp-$PRGNAM
echo "Extracting the source archive(s) for $PRGNAM..."
-tar -xjvf ${SOURCE[0]}
+tar -xjvf ${SOURCE[$i]}
+chown -R root:root *
+chmod -R u+w,go+r-w,a-s *
cd ${PRGNAM}-${VERSION}
-chown -R root.root *
-chmod -R a-s,u+rw,go+r-w *
-
-# Fix a security problem: read http://www.debian.org/security/2006/dsa-1244
-patch -p0 < ${SOURCE[2]} 2>&1 | tee $OUTPUT/patch-${PRGNAM}.log
-
-# Fix a security problem: read http://secunia.com/advisories/24302/
-patch -p0 < ${SOURCE[3]} 2>&1 | tee -a $OUTPUT/patch-${PRGNAM}.log
# Remove potentially illegal dvdcss code (in which case, make sure you have
# libdvdread installed before you start the compile!):
-[ "$REMOVECSS" == "yes" ] && rm -rf libmpdvdkit2
-
-# --- BUILDING ---
+[ "$REMOVECSS" == "yes" ] && DO_CSS="--disable-libdvdcss-internal" \
+ || DO_CSS=" "
echo Building ...
# MPlayer wants to automatically determine compiler flags,
# so we don't provide CFLAGS:
./configure --prefix=/usr \
+ --mandir=/usr/man \
--confdir=/etc/mplayer \
--enable-runtime-cpudetection \
--enable-gui \
--enable-menu \
--enable-largefiles \
- --with-codecsdir=${CODECSDIR} \
- --with-win32libdir=${CODECSDIR} \
+ --disable-arts \
+ --codecsdir=${CODECSDIR} \
+ --win32codecsdir=${CODECSDIR} \
+ --realcodecsdir=${CODECSDIR} \
--language="${LANGUAGES}" \
+ ${DO_CSS} \
2>&1 | tee $OUTPUT/configure-${PRGNAM}.log
make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
-#
# Install all the needed stuff to the package dir
-#
# Use installwatch if available, to produce a logfile of the installation
# process that is more easily readable:
-if `which installwatch > /dev/null 2>&1`; then
+if $(which installwatch > /dev/null 2>&1); then
installwatch -o $OUTPUT/install-${PRGNAM}.log make DESTDIR=$PKG install
else
make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log
@@ -241,14 +260,7 @@ chown -R root:root *
ln -s ${DEFSKIN} default
cd -
-# Installing a bitmap font is considered deprecated; use a TTF font instead:
-# Instead, we try to link to an installed TTF font at install time.
-#( cd $PKG/usr/share/mplayer/font
-# tar -xvf ${FONT}
-# ln -s font-arial-iso-8859-1/font-arial-${FONTSIZE}-iso-8859-1 font
-#)
-
-# Add this to the doinst.sh
+# Add this to the doinst.sh:
! [ -d $PKG/install ] && mkdir -p $PKG/install
cat <<EOINS >> $PKG/install/doinst.sh
# Handle the incoming configuration files:
@@ -267,6 +279,8 @@ config() {
done
}
+# Installing a bitmap font is considered deprecated; use a TTF font instead.
+# We try to link to an installed TTF font at install time.
# Configure a default TrueType font to use for the OSD :
if [ ! -f usr/share/mplayer/subfont.ttf ]; then
for font in ${OSDFONTS}; do
@@ -281,11 +295,10 @@ fi
# Prepare the new configuration file
config etc/mplayer/mplayer.conf.new
-EOINS
-
-# --- DOCUMENTATION ---
+EOINS
+# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
# Only keep the docs for languages that we want:
@@ -300,28 +313,29 @@ rm -rf $PKG/usr/doc/$PRGNAM-$VERSION/html
for i in etc/*.conf ; do
cp $i $PKG/usr/doc/$PRGNAM-$VERSION/`basename $i`-sample
done
+# Save a transcript of all configured options for this specific build:
+if [ -n $OUTPUT/configure-${PRGNAM}.log ]; then
+ cat $OUTPUT/configure-${PRGNAM}.log \
+ | sed -n "/^Config files successfully generated/,/^'config.h' and 'config.ma
+k' contain your configuration options./p" \
+ > $PKG/usr/doc/$PRGNAM-$VERSION/${PRGNAM}.configuration
+fi
# Finally;
chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/*
-# Compress the man page(s)
-cd $PKG/usr/man
-find . -type f -name "*.?" -exec gzip -9f {} \;
-for i in `find . -type l -name "*.?"` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-cd -
-
-# Strip binaries
-
-find $PKG | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
- find $PKG | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-
-# --- OWNERSHIP, RIGHTS ---
-
-chmod -R o-w $PKG
-
+# Compress the man page(s):
+if [ -d $PKG/usr/man ]; then
+ find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \;
+ for i in $(find $PKG/usr/man -type l -name "*.?") ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+fi
-# --- PACKAGE DESCRIPTION ---
+# Strip binaries:
+cd $PKG
+find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+cd -
+# Add a package description:
mkdir -p $PKG/install
cat $SRCDIR/slack-desc > $PKG/install/slack-desc
if [ -f $SRCDIR/doinst.sh ]; then
@@ -331,9 +345,6 @@ if [ -f $SRCDIR/slack-required ]; then
cat $SRCDIR/slack-required > $PKG/install/slack-required
fi
-
-# --- BUILDING ---
-
# Build the package:
cd $PKG
makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
@@ -345,9 +356,6 @@ if [ -f $PKG/install/slack-required ]; then
cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.dep
fi
-
-# --- CLEANUP ---
-
# Clean up the extra stuff:
if [ "$P1" = "--cleanup" ]; then
rm -rf $TMP/tmp-$PRGNAM