]> gitweb.fluxo.info Git - slackbuilds.git/commitdiff
generic.SlackBuild v0.3
authorluis <luis@370017ae-e619-0410-ac65-c121f96126d4>
Thu, 18 Jan 2007 02:12:12 +0000 (02:12 +0000)
committerluis <luis@370017ae-e619-0410-ac65-c121f96126d4>
Thu, 18 Jan 2007 02:12:12 +0000 (02:12 +0000)
git-svn-id: svn+slack://slack.fluxo.info/var/svn/slackbuilds@983 370017ae-e619-0410-ac65-c121f96126d4

others/generic/generic.SlackBuild

index 79882a3bcc35f3ff409dc8927088ab0a5c15e231..17389148cd378cb05da05ca768b7dbe246305371 100755 (executable)
@@ -1,7 +1,7 @@
 ################################################
 ## Generic template for SlackBuilds
 ##
-## Version 0.2.3 - Luis
+## Version 0.3 - Luis
 ##
 ################################################
 #!/bin/bash
@@ -32,10 +32,10 @@ TMP=${TMP:=/tmp}
 PKG=${PKG:=$TMP/package-$PKG_NAME}
 REPOS=${REPOS:=$TMP}
 PREFIX=${PREFIX:=/usr}
-PKG_SRC=$SRC_NAME-$VERSION
+PKG_SRC="$SRC_DIR/$SRC_NAME-$VERSION"
 
 # Set system libraries' path and optmization flags based on $ARCH
-LIBDIR=$PREFIX/lib
+LIBDIR="$PREFIX/lib"
 
 if [ "$ARCH" = "i386" ]; then
   SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
@@ -57,13 +57,13 @@ 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
+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
+mkdir -p "$SRC_DIR" || exit $ERROR_MKDIR
+mkdir -p "$PKG" || exit $ERROR_MKDIR
+mkdir -p "$REPOS" || exit $ERROR_MKDIR
 
 # Import (minimized) signing key from
 # [[SIGNING KEY URL]]
@@ -72,7 +72,7 @@ gpg --import << EOKEY || exit $ERROR_GPG
 EOKEY
 
 # Dowload source and its signature, if necessary
-SRC="$PKG_SRC.tar.[[SOURCE EXTENSION]]"
+SRC="$SRC_NAME-$VERSION.tar.[[SOURCE EXTENSION]]"
 URL="[[DOWNLOAD FOLDER URL]]/$SRC"
 
 if [ ! -f "$SRC_DIR/$SRC" ]; then
@@ -83,30 +83,30 @@ if [ ! -f "$SRC_DIR/$SRC.sig" ]; then
 fi
 
 # Check source's signature
-gpg --verify $SRC_DIR/$SRC.sig $SRC_DIR/$SRC || exit $ERROR_GPG
+gpg --verify "$SRC_DIR/$SRC.sig" "$SRC_DIR/$SRC" || exit $ERROR_GPG
 
 # Untar, patch, configure, compile and install
-tar --no-same-owner --no-same-permissions -xvf $SRC_DIR/$SRC -C $SRC_DIR || exit $ERROR_TAR
-cd $SRC_DIR/$PKG_SRC
+tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" -C "$SRC_DIR" || exit $ERROR_TAR
+cd "$PKG_SRC"
 patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < $CWD/[[PATCH FILE]]
 CFLAGS="$SLKCFLAGS" \
   CXXFLAGS="$SLKCFLAGS" \
   ./configure \
-  --prefix=$PREFIX --libdir=$LIBDIR [[OTHER CONFIGURE ARGS]] || exit $ERROR_CONF
+  --prefix="$PREFIX" --libdir="$LIBDIR" [[OTHER CONFIGURE ARGS]] || exit $ERROR_CONF
 make || exit $ERROR_MAKE
-make install DESTDIR=$PKG || exit $ERROR_INSTALL
+make install DESTDIR="$PKG" || exit $ERROR_INSTALL
 
 # Strip binaries
-( cd $PKG
+( 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
 )
 
-# Compress and link manpages, if any
-if [ -d $PKG/$PREFIX/man ]; then
-  ( cd $PKG/$PREFIX/man
+# Compress and link manpages
+if [ -d "$PKG/$PREFIX/man" ]; then
+  ( cd "$PKG/$PREFIX/man"
     for manpagedir in $(find . -type d -name "man*") ; do
       ( cd $manpagedir
         for eachpage in $( find . -type l -maxdepth 1) ; do
@@ -119,9 +119,9 @@ if [ -d $PKG/$PREFIX/man ]; then
   )
 fi
 
-# Compress info files, if any
-if [ -d $PKG/$PREFIX/info ]; then
-  ( cd $PKG/$PREFIX/info
+# Compress info files
+if [ -d "$PKG/$PREFIX/info" ]; then
+  ( cd "$PKG/$PREFIX/info"
     rm -f dir
     gzip -9 *
   )
@@ -129,12 +129,12 @@ fi
 
 # Install documentation
 DOCS="[[DOCUMENTATION FILES]]"
-mkdir -p $PKG/$PREFIX/doc/$PKG_NAME-$VERSION || exit $ERROR_MKDIR
-cp -a $DOCS $PKG/$PREFIX/doc/$PKG_NAME-$VERSION
+mkdir -p "$PKG/$PREFIX/doc/$PKG_NAME-$VERSION" || exit $ERROR_MKDIR
+cp -a $DOCS "$PKG/$PREFIX/doc/$PKG_NAME-$VERSION"
 
 # Add package description (slack-desc)
-mkdir -p $PKG/install || exit $ERROR_MKDIR
-cat << EODESC > $PKG/install/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 '|'
@@ -146,15 +146,29 @@ cat << EODESC > $PKG/install/slack-desc
 EODESC
 
 # Add a post-installation script (doinst.sh)
-cat << EOSCRIPT > $PKG/install/doinst.sh
-[[DOINST.SH]]
+cat << EOSCRIPT > "$PKG/install/doinst.sh"
+config() {
+  NEW="\$1"
+  OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)"
+  # If there's no config file by that name, mv it over:
+  if [ ! -r \$OLD ]; then
+    mv \$NEW \$OLD
+  elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then
+    # toss the redundant copy
+    rm \$NEW
+  fi
+  # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+config path/to/config_file.new
+[[REST OF DOINST.SH]]
 EOSCRIPT
 
 # Build the package
-cd $PKG
-makepkg -l y -c n $REPOS/$PKG_NAME-$VERSION-$ARCH-$BUILD.tgz || exit $ERROR_MKPKG
+cd "$PKG"
+makepkg -l y -c n "$REPOS/$PKG_NAME-$VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG
 
 # Delete source and build directories, if requested
 if [ "$CLEANUP" == "yes" ]; then
-  rm -rf $SRC_DIR/$PKG_SRC $PKG
+  rm -rf "$PKG_SRC" "$PKG"
 fi