diff options
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 |
commit | 2c47c8b305e1739baa2430b628d54648856425c9 (patch) | |
tree | 78e7cfefd22930febdfb416e970dc192b820f95d /MPlayer | |
parent | 1189e0763b8fc5e95791c399f091c05b5e66a47f (diff) | |
download | asb-2c47c8b305e1739baa2430b628d54648856425c9.tar.gz asb-2c47c8b305e1739baa2430b628d54648856425c9.tar.xz |
Updated script for new release 1.0rc2
Diffstat (limited to 'MPlayer')
-rwxr-xr-x | MPlayer/build/MPlayer.SlackBuild | 234 |
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 |