From 53f88651546fabb75d1583f8128019e7bbd0639b Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Sat, 15 Sep 2007 13:09:11 +0000 Subject: New SlackBuild, for Slackware 12.0 --- fontforge/build/fontforge.SlackBuild | 207 +++++++++++++++-------------------- 1 file changed, 88 insertions(+), 119 deletions(-) (limited to 'fontforge') diff --git a/fontforge/build/fontforge.SlackBuild b/fontforge/build/fontforge.SlackBuild index 0dc9641e..3c0bc642 100755 --- a/fontforge/build/fontforge.SlackBuild +++ b/fontforge/build/fontforge.SlackBuild @@ -1,33 +1,55 @@ #!/bin/sh # $Id$ -# Copyright (c) 2006 Eric Hameleers +# Copyright (c) 2006,2007 Eric Hameleers +# 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 # For: fontforge -# Descr: An outline font editor -# URL: http://fontforge.sf.net/ +# Descr: an outline font editor +# URL: http://fontforge.sourceforge.net/ # Needs: # Changelog: # 20061014-1: 18/Oct/2006 by Eric Hameleers # * Initial build. +# 20070831-1: 15/Sep/2007 by Eric Hameleers +# * Update; new SlackBuild, and a Slackware 12.0 package. # -# Run 'sh SlackBuild --cleanup' to build a Slackware package. +# Run 'sh fontforge.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=fontforge -VERSION=${VERSION:-20061014} +VERSION=${VERSION:-20070831} ARCH=${ARCH:-i486} BUILD=${BUILD:-1} +DOCS="AUTHORS LICENSE README-unix VERSION" + # Where do we look for sources? CWD=`pwd` SRCDIR=`dirname $0` @@ -38,27 +60,24 @@ TMP=${TMP:-/tmp/build} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} -# Exit the script on errors: -set -e -trap 'echo "$0 FAILED!" | tee $OUTPUT/error-${PRGNAM}.log' ERR -# Catch unitialized variables: -set -u -P1=${1:-1} - - -# This covers most filenames you'd want as documentation. Change if needed. -DOCS="AUTHORS LICENSE README-unix VERSION" - -SOURCE[0]="${PRGNAM}_full-${VERSION}.tar.bz2" -SRCURL[0]="http://fontforge.sourceforge.net/${PRGNAM}_full-${VERSION}.tar.bz2" - -SOURCE[1]="cidmaps.tgz" +# Input URL: http://dl.sourceforge.net/fontforge/fontforge_full-20070831.tar.bz2 +SOURCE[0]="$SRCDIR/${PRGNAM}-${VERSION}.tar.bz2" +SRCURL[0]="http://dl.sourceforge.net/${PRGNAM}/${PRGNAM}_full-${VERSION}.tar.bz2" +SOURCE[1]="$SRCDIR/cidmaps.tgz" SRCURL[1]="http://fontforge.sourceforge.net/cidmaps.tgz" + ## ## --- with a little luck, you won't have to edit below this point --- ## ## +# 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} + # 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 @@ -87,43 +106,29 @@ case "$ARCH" in ;; esac -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 -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 -fi - - -# --- SOURCE FILE AVAILABILITY --- +# Create working directories: +mkdir -p $TMP/tmp-$PRGNAM # location to build the source +rm -rf $TMP/tmp-$PRGNAM/* # By default we 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 ${SRCDIR}/${SOURCE[$i]} ]; then + if ! [ -f ${SOURCE[$i]} ]; then if ! [ "x${SRCURL[$i]}" == "x" ]; then - echo "Source '${SOURCE[$i]}' not available yet... will download now:" - wget -nv -O "${SRCDIR}/${SOURCE[$i]}" "${SRCURL[$i]}" || true - if [ $? -ne 0 ]; then - echo "Downloading '${SOURCE[$i]}' failed... aborting the build." - mv -f "${SRCDIR}/${SOURCE[$i]}" "${SRCDIR}/${SOURCE[$i]}".FAIL + # 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 --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 '${SOURCE[$i]}' not available... aborting the build." + echo "File '`basename ${SOURCE[$i]}`' not available.. aborting the build." exit 1 fi fi @@ -140,70 +145,54 @@ echo "++" echo "|| $PRGNAM-$VERSION" echo "++" -cd $PKG - # Explode the package framework: if [ -f $SRCDIR/_$PRGNAM.tar.gz ]; then + cd $PKG explodepkg $SRCDIR/_$PRGNAM.tar.gz + cd - fi cd $TMP/tmp-$PRGNAM - -# --- TARBALL EXTRACTION,PATCH,MODIFY --- - echo "Extracting the source archive(s) for $PRGNAM..." for (( i = 0; i < ${#SOURCE[*]}; i++ )) ; do - if `file $SRCDIR/${SOURCE[$i]} | grep -q ": bzip2"`; then - tar -xjvf $SRCDIR/${SOURCE[$i]} || true - elif `file $SRCDIR/${SOURCE[$i]} | grep -qi ": zip"`; then - unzip $SRCDIR/${SOURCE[$i]} || true - elif `file $SRCDIR/${SOURCE[$i]} | grep -qi ": 7-zip"`; then - 7za -x $SRCDIR/${SOURCE[$i]} || true - else - tar -xzvf $SRCDIR/${SOURCE[$i]} || true - fi - if [ $? -ne 0 ]; then - echo "Error in unpacking '${SOURCE[$i]}!' Aborting..." - exit $? + if `file ${SOURCE[$i]} | grep -q ": bzip2"`; then + tar -xjvf ${SOURCE[$i]} + elif `file ${SOURCE[$i]} | grep -q ": gzip"`; then + tar -xzvf ${SOURCE[$i]} fi done # Read README-unix for the 'why' of the cidmaps: mkdir ${PRGNAM}-${VERSION}/cidmap mv *.cidmap ${PRGNAM}-${VERSION}/cidmap/ -cd ${PRGNAM}-${VERSION} - -chown -R root.root * -find . -perm 777 -exec chmod 755 {} \; -find . -perm 666 -exec chmod 644 {} \; - -# --- BUILDING --- +cd ${PRGNAM}-${VERSION} +chown -R root:root . +chmod -R u+w,go+r-w,a-s . echo Building ... - LDFLAGS="$SLKLDFLAGS" \ CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ ./configure --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --localstatedir=/var \ --sysconfdir=/etc \ - --program-prefix="" \ - --program-suffix="" \ --with-multilayer \ --with-devicetables \ - $ARCH-slackware-linux \ + --program-prefix="" \ + --program-suffix="" \ + --build=$ARCH-slackware-linux \ 2>&1 | tee $OUTPUT/configure-${PRGNAM}.log make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log -# # Install all the needed stuff to the package dir -# mkdir -p $PKG/usr/{bin,lib,man,share} -# Use installwatch if available: -if `which installwatch > /dev/null 2>&1`; then +# 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 installwatch -o $OUTPUT/install-${PRGNAM}.log \ make prefix=$PKG/usr libdir=$PKG/usr/lib install else @@ -211,58 +200,38 @@ else 2>&1 |tee $OUTPUT/install-${PRGNAM}.log fi - -# --- DOCUMENTATION --- - +# Add 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/* -# Move incorrectly installed man pages, if any -[ -d $PKG/usr/share/man ] && \ - mv $PKG/usr/share/man $PKG/usr/ && rmdir $PKG/usr/share || true -# Compress the man page(s) -[ -d $PKG/usr/man ] && \ +# 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 -# Strip binaries -( cd $PKG - find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null - find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null -) - - -# --- OWNERSHIP, RIGHTS --- - -chmod -R o-w $PKG - +# 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 - -# --- PACKAGE DESCRIPTION --- +# 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 -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 -(cd $OUTPUT && md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz.md5) +makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log +cd $OUTPUT +md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz.md5 +cd - cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txt -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 -- cgit v1.2.3