#!/bin/sh # $Id: mplayer-codecs.SlackBuild,v 1.2 2007/10/15 18:36:57 root Exp root $ # Copyright (c) 2006,2007 Eric Hameleers # ----------------------------------------------------------------------------- # # Slackware SlackBuild script # =========================== # By: Eric Hameleers # For: mplayer-codecs # Descr: Win32 codecs for MPlayer (and xine) # URL: http://www.mplayerhq.hu/ # Needs: # Changelog: # 20061022-1: 05/Nov/2006 by Eric Hameleers # * Initial build. # 20071007-1: 15/Oct/2007 by Eric Hameleers # * Update. # # Run 'sh mplayer-codecs.SlackBuild --cleanup' to build a Slackware package. # The package (.tgz) plus descriptive .txt file are created in /tmp . # Install using 'installpkg'. # # ----------------------------------------------------------------------------- # Set initial variables: # Set TYPE=${TYPE:-"all"} if you want the "all"-codecs package built by default. # Usually, "essential" would be sufficient for MPlayer, but you might need # "all" for xine. TYPE=${TYPE:-"essential"} PRGNAM=mplayer-codecs VERSION=${VERSION:-20071007} ARCH=${ARCH:-noarch} BUILD=${BUILD:-1} # Where do we look for sources? CWD=`pwd` SRCDIR=`dirname $0` [ "${SRCDIR:0:1}" == "." ] && SRCDIR=${CWD}/${SRCDIR} # Place to build (TMP) package (PKG) and output (OUTPUT) the program: TMP=${TMP:-/tmp/build} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} # Exit the script on errors: set -e trap 'echo "$0 FAILED at line $LINENO!" | tee $OUTPUT/error-${PRGNAM}.log' ERR # Catch unitialized variables: set -u P1=${1:-1} # Input URL: http://www1.mplayerhq.hu/MPlayer/releases/codecs/all-20061022.tar.bz2 SOURCE[0]="$SRCDIR/${TYPE}-${VERSION}.tar.bz2" SRCURL[0]="http://www1.mplayerhq.hu/MPlayer/releases/codecs/${TYPE}-${VERSION}.tar.bz2" SOURCE[1]="$SRCDIR/ChangeLog" SRCURL[1]="http://www1.mplayerhq.hu/MPlayer/releases/codecs/ChangeLog" SOURCE[2]="$SRCDIR/MD5SUMS" SRCURL[2]="http://www1.mplayerhq.hu/MPlayer/releases/codecs/MD5SUMS" # DOCS="ChangeLog MD5SUMS" DOCS="${SOURCE[1]} ${SOURCE[2]}" ## ## --- with a little luck, you won't have to edit below this point --- ## ## # 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/* # 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 -T 20 -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." exit 1 fi fi done if [ "$P1" == "--download" ]; then echo "Download complete." exit 0 fi # --- PACKAGE BUILDING --- echo "++" echo "|| $PRGNAM-$VERSION" echo "++" cd $TMP/tmp-$PRGNAM echo "Extracting the source archive(s) for $PRGNAM..." tar -xvf ${SOURCE[0]} cd ${TYPE}-${VERSION} chown -R root.root * find . -perm 777 -exec chmod 755 {} \; find . -perm 700 -exec chmod 755 {} \; find . -perm 666 -exec chmod 644 {} \; find . -perm 600 -exec chmod 644 {} \; # Install all the needed stuff to the package dir mkdir -p $PKG/usr/lib/codecs install -m0755 * $PKG/usr/lib/codecs/ chown -R root:root $PKG/usr/lib/codecs cd $PKG/usr/lib ln -s codecs win32 cd - # Add some documentation: mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/* # Add a package description: mkdir -p $PKG/install cat $SRCDIR/slack-desc > $PKG/install/slack-desc if [ -f $SRCDIR/doinst.sh ]; then cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh fi # Build the package: cd $PKG makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${TYPE}_${VERSION}-${ARCH}-${BUILD}.tgz \ 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log (cd $OUTPUT && md5sum ${PRGNAM}-${TYPE}_${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${TYPE}_${VERSION}-${ARCH}-${BUILD}.tgz.md5) cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${TYPE}_${VERSION}-${ARCH}-${BUILD}.txt # Clean up the extra stuff: if [ "$P1" = "--cleanup" ]; then rm -rf $TMP/tmp-$PRGNAM rm -rf $PKG fi