diff options
Diffstat (limited to 'trunk/mkbuild')
-rw-r--r-- | trunk/mkbuild/generic.mkSlackBuild.new | 270 | ||||
-rw-r--r-- | trunk/mkbuild/sample-Pyrex-large.mkbuild | 156 | ||||
-rw-r--r-- | trunk/mkbuild/sample-Pyrex-small.mkbuild | 43 |
3 files changed, 469 insertions, 0 deletions
diff --git a/trunk/mkbuild/generic.mkSlackBuild.new b/trunk/mkbuild/generic.mkSlackBuild.new new file mode 100644 index 0000000..7c8620c --- /dev/null +++ b/trunk/mkbuild/generic.mkSlackBuild.new @@ -0,0 +1,270 @@ +################################################### +## Generic template for SlackBuilds +## +## Version 0.8.1 - Luis ( luis at riseup d0t net) +## +################################################### +<head> all +#!/bin/bash +# +# [[PROGRAM NAME]].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. +# +# [[PROGRAM NAME]].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. +# +# 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 [[PROGRAM NAME]], by [[SLACKBUILD AUTHOR]] +# requires: [[REQUIRES]] +# tested: [[PROGRAM NAME]]-[[VERSION]] +# +</head> + +<slackbuildrc> off +# Look for slackbuildrc +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi +</slackbuildrc> + +<set_variables> all +# Set variables +CWD="$(pwd)" +SRC_NAME="[[SOURCE NAME]]" +PKG_NAME="[[PACKAGE NAME]]" +ARCH=${ARCH:=[[ARCH]]} +SRC_VERSION=${VERSION:=[[VERSION]]} +PKG_VERSION="$(echo "$SRC_VERSION" | tr '[[:blank:]-]' '_')" +BUILD=${BUILD:=1[[SLACKBUILD AUTHOR INITIALS]]} +SRC_DIR=${SRC_DIR:=$CWD}/$PKG_NAME +TMP=${TMP:=/tmp} +PKG=${PKG:=$TMP/package-$PKG_NAME} +REPOS=${REPOS:=$TMP} +PREFIX=${PREFIX:=[[PREFIX]]} +PKG_SRC="$TMP/$SRC_NAME-$SRC_VERSION" +CONF_OPTIONS=${CONF_OPTIONS:="[[OTHER CONFIGURE ARGS]]"} +NUMJOBS=${NUMJOBS:="[[NUMBER OF JOBS]]"} +</set_variables> + +<slkflags> all +# Set system libraries' path and optmization flags based on $ARCH +LIBDIR="$PREFIX/lib" + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mcpu=i686" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" + LIBDIR="$PREFIX/lib64" +fi +</slkflags> + +<error_codes> off +# 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 +</error_codes> + +<start_structure> all +# 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 +</start_structure> + +<download_source> off +# Dowload source if necessary +SRC="[[SOURCE NAME CONSTRUCTION STRING]]" +URL="[[DOWNLOAD FOLDER URL]]/$SRC" + +if [ ! -s "$SRC_DIR/$SRC" ] || ! [[DECOMPRESSOR]] [[DECOMPRESSOR TEST FLAG]] "$SRC_DIR/$SRC" 2> /dev/null; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET +fi +</download_source> + +<md5sum_download_and_check_0> off +MD5SUM_SRC="$(md5sum "$SRC_DIR/$SRC" | cut -d " " -f 1)" +MD5SUM_URL="[[MD5SUM CODE]]" + +[ "$MD5SUM_SRC" == "$MD5SUM_URL" ] || exit $ERROR_MD5 +</md5sum_download_and_check_0> + +<md5sum_download_and_check_1> off +# Download source's MD5 checksum if necessary and check it +if [ ! -s "$SRC_DIR/$SRC.[[MD5SUM EXTENSION]]" ]; then + wget "$URL.[[MD5SUM EXTENSION]]" -O "$SRC_DIR/$SRC.[[MD5SUM EXTENSION]]" || exit $ERROR_WGET +fi + +MD5SUM_SRC="$(md5sum "$SRC_DIR/$SRC" | cut -d " " -f 1)" +MD5SUM_URL="$(grep "$SRC[ \t]*$" "$SRC_DIR/$SRC.[[MD5SUM EXTENSION]]" | cut -d " " -f 1)" + +[ "$MD5SUM_SRC" == "$MD5SUM_URL" ] || exit $ERROR_MD5 +</md5sum_download_and_check_1> + +<gpg_signature_check> off +# Import minimized signing key from +# [[SIGNING KEY URL]] +gpg --import << EOKEY || exit $ERROR_GPG +[[SIGNING KEY]] +EOKEY + +# Dowload source's signature if necessary and check it +if [ ! -s "$SRC_DIR/$SRC.sig" ]; then + wget "$URL.sig" -O "$SRC_DIR/$SRC.sig" || exit $ERROR_WGET +fi + +gpg --verify "$SRC_DIR/$SRC.sig" "$SRC_DIR/$SRC" || exit $ERROR_GPG +</gpg_signature_check> + +<untar_source> all +# Untar +cd "$TMP" +tar --no-same-owner --no-same-permissions -xvf "$SRC_DIR/$SRC" || exit $ERROR_TAR +cd "$PKG_SRC" +</untar_source> + +<path_source> off +# Patch source +patches="[[PATCH FILES]] + $PKG_NAME.diff $PKG_NAME-$PKG_VERSION.diff + $PKG_NAME-$PKG_VERSION-$ARCH.diff $PKG_NAME-$ARCH.diff" +for patch in $patches; do + if [ -f "$CWD/$patch" ]; then + patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < "$CWD/$patch" || exit $ERROR_PATCH + elif [ -f "$CWD/patches/$patch" ]; then + patch -Np[[NUMBER OF PREFIX SLASHES TO STRIP]] < "$CWD/patches/$patch" || exit $ERROR_PATCH + fi +done +</path_source> + +<configure> off +# Configure +CFLAGS="$SLKCFLAGS" \ + CXXFLAGS="$SLKCFLAGS" \ + ./configure \ + --prefix="$PREFIX" --libdir="$LIBDIR" $CONF_OPTIONS || exit $ERROR_CONF +</configure> + +<make_package> all +# Compile +make $NUMJOBS || exit $ERROR_MAKE +</make_package> + +<install_package> all +# Install +make install DESTDIR="$PKG" || exit $ERROR_INSTALL +</install_package> + +<strip_binaries> off +# 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 +) +</strip_binaries> + +<compress_manpages> off +# 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 + ln -s $( readlink $eachpage ).gz $eachpage.gz + rm $eachpage + done + gzip -9 *.? + ) + done + ) +fi +</compress_manpages> + +<compress_info_files> off +# Compress info files +if [ -d "$PKG/$PREFIX/info" ]; then + ( cd "$PKG/$PREFIX/info" + rm -f dir + gzip -9 * + ) +fi +</compress_info_files> + +<install_documentation> off +# Install documentation +DOCS="[[DOCUMENTATION FILES]]" +mkdir -p "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" || exit $ERROR_MKDIR +cp -a $DOCS "$PKG/usr/doc/$PKG_NAME-$PKG_VERSION" +</install_documentation> + +<slackdesc> off +# 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 ':'. + + |-----handy-ruler------------------------------------------------------| +[[SLACK-DESC]] +EODESC +</slackdesc> + +<postinstall_script> off +# Add a post-installation script (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 +</postinstall_script> + +<build_package> all +# Build the package +cd "$PKG" +makepkg -l y -c n "$REPOS/$PKG_NAME-$PKG_VERSION-$ARCH-$BUILD.tgz" || exit $ERROR_MKPKG +</build_package> + +<clean_builds> off +# Delete source and build directories if requested +if [ "$CLEANUP" == "yes" ]; then + rm -rf "$PKG_SRC" "$PKG" +fi +</clean_builds> diff --git a/trunk/mkbuild/sample-Pyrex-large.mkbuild b/trunk/mkbuild/sample-Pyrex-large.mkbuild new file mode 100644 index 0000000..e052eb3 --- /dev/null +++ b/trunk/mkbuild/sample-Pyrex-large.mkbuild @@ -0,0 +1,156 @@ +#-------------------- +# Personal variables +#-------------------- +# Author name +[[SLACKBUILD AUTHOR]]="Rudson R. Alves" + +# Initials author name +[[SLACKBUILD AUTHOR INITIALS]]="rra" + +#------------------------ +# Construction Variables +#------------------------ +# +# Source base name. if different from package name. Null ("") to default value. +# Auto-set, get SRC_NAME from URL: http://.../$SRC_NAME-$VERSION.tar.$EXTENSION' +[[SOURCE NAME]]="Pyrex" + +# Package name. Null ("") to auto-set +# Auto-set, get PKG_NAME from URL downcase(SRC_NAME): http://.../$SRC_NAME-$VERSION.tar.$EXTENSION' +[[PACKAGE NAME]]="" + +# +# Source Name construction string +# Default value is: $SRC_NAME-$VERSION.tar.$EXTENSION +#[[SOURCE NAME CONSTRUCTION STRING]]="SOURCE NAME CONSTRUCTION STRING" +[[SOURCE NAME CONSTRUCTION STRING]]="$SRC_NAME-$VERSION.tar.$EXTENSION" + +# +# Complete URL address or URL base address ( without $SRC_NAME-$VERSION... ) +#[[DOWNLOAD FOLDER URL]]="http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/Pyrex-0.9.5.1a.tar.gz" +[[DOWNLOAD FOLDER URL]]="http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/" + +# +# Package version. Null ("") to auto-set. +# Auto-set, get VERSION from URL: http://.../$SRC_NAME-$VERSION.tar.$EXTENSION' +[[VERSION]]="0.9.5.1a" + +# +# Package extension. Null ("") to auto-set +# Auto-set, get EXTENSION from URL: http://.../$SRC_NAME-$VERSION.tar.$EXTENSION' +[[EXTENSION]]="gz" + +# +# Dependency list input +# Enter string: "dependency_1 [condiction_1] [versio_1]: dependency_2 [condiction_2] [versio_2]" +# Example: +[[SLACK REQUIRED]]="dep1 >= 1.1.1: dep2 >= 2.2.2:dep3:dep4:dep5 = 1.0" +#[[SLACK_REQUIRED]]="" + +# +# Decompress program +# gz, tgz, bz2, set null ("") to auto-set +# Auto-set, get DECOMPRESSOR from URL EXTENSION: http://.../$SRC_NAME-$VERSION.tar.$EXTENSION' +[[DECOMPRESSOR]]="" + +# +# Decompress check flag +# gz, tgz, bz2, set null ("") to auto-set +[[DECOMPRESSOR TEST FLAG]]="" + +# +# Documentation files. Null ("") to auto-set commom doc-files: +# NEWS TODO README AUTHORS INSTALL ChangeLog MAINTAINERS COPYING readme.* +[[DOCUMENTATION FILES]]="" + +# +# ./configure options +[[OTHER CONFIGURE ARGS]]="" + +# +# PREFIX. Default /usr +[[PREFIX]]="/usr" + +# +# Number of jobs +[[NUMBER OF JOBS]]="-j7" + +#--------------------- +# Others changes +#--------------------- +#[[PATCH FILES]]="" +[[MD5SUM CODE]]="5a1bb7c76162a987a1d5040ea2d1f670" +#[[MD5SUM EXTENSION]]="" +#[[SIGNING KEY]]="" +#[[SIGNING KEY URL]]="" +#[[PATCH FILES]]="" + +# SlackBuild model +[[SLACKBUILD MODEL]]="generic.mkSlackBuild" + +# SlackBuild PATH in Slack.Sarava tree +[[SLACKBUILD PATH]]="dev/python/pyrex" + +#--------------------- +# SlackBuild Sections +#--------------------- +# Default enable sections: +# head, set_variables, slkflags, start_structure, untar_source, +# make_package, install_package, build_package +# Warning: don't remove '#>>' and "#<<" tags. +#>> Start SlackBuild Sections: +#all: head + on: slackbuildrc +#all: set_variables + on: slkflags + on: error_codes +#all: start_structure + on: download_source + on: md5sum_download_and_check_0 +#off: md5sum_download_and_check_1 +#off: gpg_signature_check +#all: untar_source +#off: path_source + on: configure +#all: make_package +#all: install_package + on: strip_binaries +#off: compress_manpages +#off: compress_info_files + on: install_documentation + on: slackdesc +#off: postinstall_script +#all: build_package + on: clean_builds +#<< End SlackBuild Sections + +#------------------ +# Sections changes +#------------------ +#>slackdesc +pyrex: Pyrex by Slack.Sarava +pyrex: +pyrex: Pyrex is a language specially designed for writing Python extension +pyrex: modules. Its designed to bridge the gap between the nice, high-level, +pyrex: easy-to-use world of Python and the messy, low-level world of C. +pyrex: +pyrex: +pyrex: +pyrex: +pyrex: +pyrex: +#<slackdesc + +#------------ test section: untar_source ----------------- +#>untar_source +# Untar program + +# Change to temp dir +cd "$TMP" + +# Uncompress e untar source +gunzip "$SRC_DIR/$SRC" | tar --no-same-owner --no-same-permissions -xvf || exit $ERROR_TAR + +# Change to source dir +cd "$PKG_SRC" +#<untar_source diff --git a/trunk/mkbuild/sample-Pyrex-small.mkbuild b/trunk/mkbuild/sample-Pyrex-small.mkbuild new file mode 100644 index 0000000..953f67b --- /dev/null +++ b/trunk/mkbuild/sample-Pyrex-small.mkbuild @@ -0,0 +1,43 @@ +#-------------------- +# Personal variables +#-------------------- +# Author name +[[SLACKBUILD AUTHOR]]="Adalberto Simão Nader" + +# +# Complete URL address or URL base address ( without $SRC_NAME-$VERSION... ) +[[DOWNLOAD FOLDER URL]]="http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/Pyrex-0.9.5.1a.tar.gz" + +# +# Default enable sections: +# head, set_variables, slkflags, start_structure, untar_source, +# make_package, install_package, build_package +# Warning: don't remove '#>>' and "#<<" tags. +#>> Start SlackBuild Sections: + on: slackbuildrc + on: slkflags + on: error_codes + on: download_source + on: configure + on: strip_binaries + on: install_documentation + on: slackdesc + on: clean_builds +#<< End SlackBuild Sections + +#------------------ +# Sections changes +#------------------ +#>slackdesc +pyrex: Pyrex by Slack.Sarava +pyrex: +pyrex: Pyrex is a language specially designed for writing Python extension +pyrex: modules. Its designed to bridge the gap between the nice, high-level, +pyrex: easy-to-use world of Python and the messy, low-level world of C. +pyrex: +pyrex: +pyrex: +pyrex: +pyrex: +pyrex: +#<slackdesc |