aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluis <luis@370017ae-e619-0410-ac65-c121f96126d4>2007-01-18 02:12:12 +0000
committerluis <luis@370017ae-e619-0410-ac65-c121f96126d4>2007-01-18 02:12:12 +0000
commit2222491a69ee716b2d8d77678f7285f2dced1db0 (patch)
tree73988d6d459755a608fb85ed127a4c2bb58a355d
parentb4f6bc5bed96b4665fbbfaa097e22126c0453949 (diff)
downloadslackbuilds-2222491a69ee716b2d8d77678f7285f2dced1db0.tar.gz
slackbuilds-2222491a69ee716b2d8d77678f7285f2dced1db0.tar.bz2
generic.SlackBuild v0.3
git-svn-id: svn+slack://slack.fluxo.info/var/svn/slackbuilds@983 370017ae-e619-0410-ac65-c121f96126d4
-rwxr-xr-xothers/generic/generic.SlackBuild74
1 files changed, 44 insertions, 30 deletions
diff --git a/others/generic/generic.SlackBuild b/others/generic/generic.SlackBuild
index 79882a3b..17389148 100755
--- a/others/generic/generic.SlackBuild
+++ b/others/generic/generic.SlackBuild
@@ -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