]> gitweb.fluxo.info Git - slackbuilds.git/commitdiff
cabextract.SlackBuild: atualizado
authorrudson <rudson@370017ae-e619-0410-ac65-c121f96126d4>
Sun, 22 Apr 2007 21:31:14 +0000 (21:31 +0000)
committerrudson <rudson@370017ae-e619-0410-ac65-c121f96126d4>
Sun, 22 Apr 2007 21:31:14 +0000 (21:31 +0000)
git-svn-id: svn+slack://slack.fluxo.info/var/svn/slackbuilds@1180 370017ae-e619-0410-ac65-c121f96126d4

app/arch/cabextract/cabextract.SlackBuild

index a7b3700437e0113c650fc41fa2ac9d9c4c19996b..2fc07f1bce1427f7c6b2488e50c4383c503ba323 100755 (executable)
 #!/bin/bash
 #
-#  cabextract.SlackBuild is free software; you can redistribute it and/or modify it under the
-#  terms of the GNU General Public License as published by the Free Software
-#  Foundation; either version 2 of the License, or any later version.
+# SlackBuild for cabextract
+# http://www.kyz.uklinux.net/downloads/
 #
-#  cabextract.SlackBuild is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-#  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+# Author: Rudson R. Alves
 #
-#  You should have received a copy of the GNU General Public License along with
-#  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
-#  Place - Suite 330, Boston, MA 02111-1307, USA
-#
-# slackbuild for cabextract, by Rudson R. Alves
-# requires: none
-# tested: cabextract-1.2
-
-CWD=`pwd`
 
-# ----  Inicializa variáveis com o slackbuild  ------------
-if [ -e ~/.slackbuildrc ]; then
+# Look for slackbuildrc
+if [ -f ~/.slackbuildrc ]; then
   source ~/.slackbuildrc
-elif [ -e /etc/slackbuildrc ]; then
+elif [ -f /etc/slackbuildrc ]; then
   source /etc/slackbuildrc
 fi
 
-# --------  Variáveis de controle de versão  --------------
-# Nome da fonte para a qual o slackbuild foi construído e
-# o seu md5sum
-SRC_ORIG="cabextract-1.2.tar.gz"
-MD5_ORIG="dc421a690648b503265c82ade84e143e"
-PACKAGE_ORIG=`echo $SRC_ORIG | sed 's/\(.*\)-\(.*\)\.\(.*\..*\)$/\1/'`
-VERSION_ORIG=`echo $SRC_ORIG | sed 's/\(.*\)-\(.*\)\.\(.*\..*\)$/\2/'`
-EXTENSION=`echo $SRC_ORIG | sed 's/\(.*\)-\(.*\)\.\(.*\..*\)$/\3/'`
-
-# -------  Códigos de erro para o createpkg  --------------
-ERROR_WGET=31;      ERROR_MAKE=32;      ERROR_INSTALL=33
-ERROR_MD5=34;       ERROR_CONF=35;      ERROR_HELP=36
-ERROR_TAR=37;       ERROR_MKPKG=38;    ERROR_GPG=39
-ERROR_PATCH=40;     ERROR_VCS=41
-
-# ---------  Inicializa variáveis de entrada  -------------
-PACKAGE=$PACKAGE_ORIG
-ARCH=${ARCH:=i486}
-SRC_DIR=${SRC:=$CWD}
-VERSION=${VERSION:=$VERSION_ORIG}
-SRC=$PACKAGE-$VERSION.$EXTENSION
-BUILD=${BUILD:=1rud}
+# Set variables
+CWD="$(pwd)"
+SRC_NAME="cabextract"
+PKG_NAME="cabextract"
+ARCH=${ARCH:=i468}
+SRC_VERSION=${VERSION:=1.2}
+PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')"
+BUILD=${BUILD:=1rra}
+SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME
 TMP=${TMP:=/tmp}
+PKG=${PKG:=$TMP/package-$PKG_NAME}
 REPOS=${REPOS:=$TMP}
 PREFIX=${PREFIX:=/usr}
-OPTCONF=${OPTCONF:=""}
-MD5=${MD5:=$MD5_ORIG}
-URL=${URL:="http://www.kyz.uklinux.net/downloads/$SRC"}
-
-# ----------------  Download fontes  ----------------------
-# Fonte a ser compilada, com o path
-SOURCE=$SRC_DIR/$PACKAGE/$SRC
-# Verifica existência do pacote em $SRC em $SRC_DIR
-if [ ! -e $SOURCE ]; then
-    wget "$URL" -P "$SRC_DIR/$PACKAGE" || exit $ERROR_WGET
-fi
+PKG_SRC="$TMP/$SRC_NAME-$SRC_VERSION"
+CONF_OPTIONS=${CONF_OPTIONS:=""}
+NUMJOBS=${NUMJOBS:="-j4"}
 
-# ------------------  Checa md5sum  -----------------------
-if [ "$SRC_ORIG" = "$SRC" -o "$MD5" != "$MD5_ORIG" -a "$MD5" != "no" ]; then
-    SUM=`md5sum $SOURCE | awk '{print $1}'`
-    [ "$SUM" != "$MD5" ] && exit $ERROR_MD5
-fi
+# Set system libraries' path and optmization flags based on $ARCH
+LIBDIR="$PREFIX/lib"
 
-# -----------------  ARCH e LIBDIR  -----------------------
-# Libdir, para arch x86_64
-LIBDIR=$PREFIX/lib
-# Seleciona flags para o compilador
 if [ "$ARCH" = "i386" ]; then
-    SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+  SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
 elif [ "$ARCH" = "i486" ]; then
-    SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
+  SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
 elif [ "$ARCH" = "i686" ]; then
-    SLKCFLAGS="-O2 -march=i686"
+  SLKCFLAGS="-O2 -march=i686"
 elif [ "$ARCH" = "s390" ]; then
-    SLKCFLAGS="-O2"
+  SLKCFLAGS="-O2"
 elif [ "$ARCH" = "x86_64" ]; then
-    SLKCFLAGS="-O2"
-    LIBDIR="$PREFIX/lib64"
+  SLKCFLAGS="-O2"
+  LIBDIR="$PREFIX/lib64"
+fi
+
+# Set error codes (used by createpkg)
+ERROR_WGET=31;      ERROR_MAKE=32;      ERROR_INSTALL=33
+ERROR_MD5=34;       ERROR_CONF=35;      ERROR_HELP=36
+ERROR_TAR=37;       ERROR_MKPKG=38;     ERROR_GPG=39
+ERROR_PATCH=40;     ERROR_VCS=41;       ERROR_MKDIR=42
+
+# Clean up any leftovers of previous builds
+rm -rf "$PKG_SRC" 2> /dev/null
+rm -rf "$PKG" 2> /dev/null
+
+# Create directories if necessary
+mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR
+mkdir -p "$PKG" || exit $ERROR_MKDIR
+mkdir -p "$REPOS" || exit $ERROR_MKDIR
+
+# Dowload source if necessary
+SRC="$SRC_NAME-$SRC_VERSION.tar.gz"
+URL="http://www.kyz.uklinux.net/downloads/$SRC"
+
+if [ ! -s "$SRC_DIR/$SRC" ] || ! gunzip -t "$SRC_DIR/$SRC" 2> /dev/null; then
+  wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET
 fi
 
-# --------------  Desempacota fontes  ---------------------
-# Desempacota fontes em PKG_SRC=$TMP/$PACKAGE-source
-PKG_SRC=$TMP/$PACKAGE-source
-rm -rf $PKG_SRC 2>/dev/null
-mkdir -p $PKG_SRC
-# Desempacota $SOURCE em $TMP/$PACKAGE-source
-tar xvf $SOURCE -C $PKG_SRC || exit $ERROR_TAR
-
-# Pega o nome do diretório das fontes independente de sua
-# estrutura (package-version...)
-PKG_DIR="$PKG_SRC/$( ls $PKG_SRC/ )"
-cd $PKG_DIR
-
-# --------------  Configura programa  ---------------------
-# Configura programa
-CFLAGS="$SLKCFLAGS" ./configure --prefix=$PREFIX --libdir=$LIBDIR $OPTCONF || exit $ERROR_CONF
-
-# ----------------  Compila programa  ---------------------
-make || exit $ERROR_MAKE
-
-# -------------  Diretório Temporário  --------------------
-# Cria diretório temporário para construção do pacote
-PKG=$TMP/$PACKAGE
-rm -rf $PKG
-mkdir -p $PKG
-
-# ---------------  Instala programa  ----------------------
-# Instala programa em diretório temporário
-make install DESTDIR=$PKG || exit $ERROR_INSTALL
-
-# ---------------  compacta manuais  ----------------------
-gzip -r $PKG/$PREFIX/man/*
-
-# -----------------  Stripa código  -----------------------
-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
-
-# ----------------  Cria slack-desc  ----------------------
-mkdir $PKG/install
-cat << EOF > install/slack-desc
+# Untar
+cd "$TMP"
+tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR
+cd "$PKG_SRC"
+
+# Configure
+CFLAGS="$SLKCFLAGS" \
+  CXXFLAGS="$SLKCFLAGS" \
+  ./configure \
+  --prefix="$PREFIX" --libdir="$LIBDIR" "$CONF_OPTIONS" || exit $ERROR_CONF
+
+# Compile
+make $NUMJOBS || exit $ERROR_MAKE
+
+# Install
+make install DESTDIR="$PKG" || exit $ERROR_INSTALL
+
+# 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
+)
+
+# Install documentation
+DOCS="NEWS TODO README AUTHORS INSTALL ChangeLog COPYING"
+mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR
+cp -a $DOCS "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION"
+
+# Add package description (slack-desc)
+mkdir -p "$PKG/install" || exit $ERROR_MKDIR
+cat << EODESC > "$PKG/install/slack-desc"
 # HOW TO EDIT THIS FILE:
 # The "handy ruler" below makes it easier to edit a package description.  Line
-# up the first '|' above the ':' following the base package name, and the '|' on
-# the right side marks the last column you can put a character in.  You must make
-# exactly 11 lines for the formatting to be correct.  It's also customary to
-# leave one space after the ':'.
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in.  You must
+# make exactly 11 lines for the formatting to be correct.  It's also
+# customary to leave one space after the ':'.
 
-          |----handy-ruler------------------------------------------------------|
-cabextract: cabextract.SlackBuild by Rudson R. Alves
+          |-----handy-ruler--------------------------------------------------|
+cabextract: cabextract.SlackBuild by Slack.Sarava
 cabextract:
 cabextract: cabextract - a program to extract Microsoft Cabinet files.
 cabextract:
-cabextract: Cabinet (.CAB) files are a form of archive, which Microsoft use to
-cabextract: distribute their software, and things like Windows Font Packs. The
-cabextract: cabextract program unpacks these files.
+cabextract: Cabinet (.CAB) files are a form of archive, which Microsoft use 
+cabextract: to distribute their software, and things like Windows Font Packs.
+cabextract: The cabextract program unpacks these files.
 cabextract:
-cabextract: For more information, see http://www.kyz.uklinux.net/cabextract.php
-cabextract: or run the command 'cabextract --help'.
-EOF
-
-# -----------------  Documentações  -----------------------
-# Criar diretório de documentação
-PKG_DOC=$PKG/usr/doc/$PACKAGE-$VERSION
-mkdir -p $PKG_DOC
-cp $PKG_DIR/{AUTHORS,COPYING,ChangeLog,INSTALL,NEWS,README,TODO} $PKG_DOC
-
-# ---------------  Constroi o pacote  ---------------------
-makepkg -c y -l y $REPOS/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz || exit $ERROR_MKPKG
-
-# -----------  Remove arquivos temporários  ---------------
-if [ "$CLEANUP" = "yes" ]; then
-    rm -rf $PKG $PKG_SRC
+cabextract: For more information, see 
+cabextract: http://www.kyz.uklinux.net/cabextract.php
+EODESC
+
+# Build the package
+cd "$PKG"
+makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG
+
+# Delete source and build directories if requested
+if [ "$CLEANUP" == "yes" ]; then
+  rm -rf "$PKG_SRC" "$PKG"
 fi
+