From e33ef45a804325adef56f5d514998a3d33d16be9 Mon Sep 17 00:00:00 2001 From: Christoph Willing Date: Wed, 2 Jan 2013 21:53:35 +0100 Subject: misclibraries/libslack: Added (General programmers' utilities). Signed-off-by: Matteo Bernardini --- libraries/libslack/README | 33 ++++++++++ libraries/libslack/libslack.SlackBuild | 113 +++++++++++++++++++++++++++++++ libraries/libslack/libslack.info | 12 ++++ libraries/libslack/notwanted.patch | 117 +++++++++++++++++++++++++++++++++ libraries/libslack/slack-desc | 19 ++++++ 5 files changed, 294 insertions(+) create mode 100644 libraries/libslack/README create mode 100644 libraries/libslack/libslack.SlackBuild create mode 100644 libraries/libslack/libslack.info create mode 100644 libraries/libslack/notwanted.patch create mode 100644 libraries/libslack/slack-desc diff --git a/libraries/libslack/README b/libraries/libslack/README new file mode 100644 index 0000000000..1aa0665d04 --- /dev/null +++ b/libraries/libslack/README @@ -0,0 +1,33 @@ +Libslack is a library of general utilities designed to make +UNIX/C programming a bit easier on the eye. + +It's a small library with lots of functionality, accurately +documented and thoroughly tested. +Good library naming conventions are not rigorously observed +on the principle that common operations should always be easy +to write and code should always be easy to read. + +Libslack contains the following modules: + +agent - agent oriented programming +coproc - coprocess using pipes or pseudo terminals +daemon - becoming a daemon +err - message/error/debug/verbosity/alert messaging +fio - fifo and file control and some I/O +getopt - GNU getopt_long() for systems that don't have it +hsort - generic heap sort +lim - POSIX.1 limits convenience functions +link - abstract linked lists with optional growable free lists +list - list (growable pointer array) data type +locker - abstract locking and reader/writer lock implementation +map - map (hash table) data type +mem - memory helper functions, secure memory, memory pools +msg - message handling and syslog helper functions +net - network functions (clients/servers, expect/send, pack/unpack, mail) +prog - program framework and flexible command line option handling +prop - program properties files +pseudo - pseudo terminals +sig - ISO C compliant signal handling +snprintf - safe sprintf for systems that don't have it +str - string data type (tr, regex, regsub, fmt, trim, lc, uc, ...) +vsscanf - sscanf() with va_list argument for systems that don't have it diff --git a/libraries/libslack/libslack.SlackBuild b/libraries/libslack/libslack.SlackBuild new file mode 100644 index 0000000000..31cb856e6c --- /dev/null +++ b/libraries/libslack/libslack.SlackBuild @@ -0,0 +1,113 @@ +#!/bin/sh + +# Slackware build script for libslack + +# Copyright 2012 Christoph Willing, Australia +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS 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 AUTHOR 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. + +PRGNAM=libslack +VERSION=${VERSION:-0.6} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +tar xvf $CWD/$PRGNAM-$VERSION.html.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Strip update, download and uninstall capabilities from libslack-config +patch -p1 < $CWD/notwanted.patch + +# Set our CFLAGS +sed -i "s|-O3|$SLKCFLAGS|" conf/linux Makefile + +./configure +make + +# "make install" is badly broken (thanks XGizzmo), so manual install +mkdir -p $PKG/usr/bin $PKG/usr/lib$LIBDIRSUFFIX $PKG/usr/include/slack + +install -m 0755 $PRGNAM.a $PKG/usr/lib$LIBDIRSUFFIX/$PRGNAM-$VERSION.a +( cd $PKG/usr/lib$LIBDIRSUFFIX ; ln -s $PRGNAM-$VERSION.a $PRGNAM.a ) + +install -m 0644 *.h $PKG/usr/include/slack/ + +sed \ + -e "s|@@URL@@|http://$PRGNAM.org/|" \ + -e "s|@@NAME@@|$PRGNAM|" \ + -e "s|@@VERSION@@|$VERSION|" \ + -e "s|@@PREFIX@@|/usr|" \ + -e "s|@@CFLAGS@@|-DHAVE_GETOPT_LONG=1 -DHAVE_SNPRINTF=1 -DHAVE_VSSCANF=1 -DHAVE_PTHREAD_RWLOCK=1|" \ + -e "s|@@LIBS@@|-lslack -lpthread -lutil|" \ + $PRGNAM-config.t > $PKG/usr/bin/$PRGNAM-config +chmod 0755 $PKG/usr/bin/$PRGNAM-config + +# Man pages overwrite stuff (thanks XGizzmo), so we ignore them +# and install only the html documentation +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html +cp -a README LICENSE \ + $PKG/usr/doc/$PRGNAM-$VERSION +cp -a *.html \ + $PKG/usr/doc/$PRGNAM-$VERSION/html/ +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/libraries/libslack/libslack.info b/libraries/libslack/libslack.info new file mode 100644 index 0000000000..aab2917153 --- /dev/null +++ b/libraries/libslack/libslack.info @@ -0,0 +1,12 @@ +PRGNAM="libslack" +VERSION="0.6" +HOMEPAGE="http://libslack.org" +DOWNLOAD="http://libslack.org/download/libslack-0.6.tar.gz \ + http://libslack.org/download/libslack-0.6.html.tar.gz" +MD5SUM="0e22e1d38865be2d94372027e5c42b58 \ + 8687e661c8e3cf591bc33231a9aff553" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Christoph Willing" +EMAIL="c.willing@uq.edu.au" diff --git a/libraries/libslack/notwanted.patch b/libraries/libslack/notwanted.patch new file mode 100644 index 0000000000..b07c391619 --- /dev/null +++ b/libraries/libslack/notwanted.patch @@ -0,0 +1,117 @@ +diff -Naur libslack-0.6.orig/libslack-config.pod libslack-0.6/libslack-config.pod +--- libslack-0.6.orig/libslack-config.pod 2010-06-12 15:37:00.000000000 +0200 ++++ libslack-0.6/libslack-config.pod 2013-01-02 20:36:02.802707880 +0100 +@@ -32,13 +32,10 @@ + -h, --help - Print this help and exit + -v, --version - Print the version of the currently installed libslack + -L, --latest - Print the latest version of libslack (uses wget) +- -D, --download - Download the latest version of libslack (uses wget) +- -U, --upgrade - Upgrade to the latest version of libslack (uses wget) + -p, --prefix - Print the prefix directory of the libslack installation + -c, --cflags - Print CFLAGS needed to compile clients of libslack + -l, --libs - Print LDFLAGS needed to link against libslack + -l, --ldflags - Identical to --libs +- -u, --uninstall - Uninstall libslack + + Note: The dashes are optional for long option names + +@@ -75,19 +72,6 @@ + Print the latest version of I available at + C. + +-=item C<-D>, C<--download> +- +-Download the latest version of I from +-C. +- +-=item C<-U>, C<--upgrade> +- +-Upgrade to the latest version of I from +-C. This downloads the latest +-version, configures it, compiles it, uninstalls the currently installed +-version and then installs the new version wherever the current version +-was installed. +- + =item C<-p>, C<--prefix> + + Print the prefix directory under which I was installed. +@@ -100,10 +84,6 @@ + + Print the linker flags needed to link code against I. + +-=item C<-u>, C<--uninstall> +- +-Uninstall I. +- + =back + + =head1 SEE ALSO +diff -Naur libslack-0.6.orig/libslack-config.t libslack-0.6/libslack-config.t +--- libslack-0.6.orig/libslack-config.t 2010-06-12 15:37:00.000000000 +0200 ++++ libslack-0.6/libslack-config.t 2013-01-02 19:55:45.772706368 +0100 +@@ -45,13 +45,10 @@ + -h, --help - Print this help and exit + -v, --version - Print the version of the currently installed libslack + -L, --latest - Print the latest version of libslack (uses wget) +- -D, --download - Download the latest version of libslack (uses wget) +- -U, --upgrade - Upgrade to the latest version of libslack (uses wget) + -p, --prefix - Print the prefix directory of the libslack installation + -c, --cflags - Print CFLAGS needed to compile clients of libslack + -l, --libs - Print LDFLAGS needed to link against libslack + -l, --ldflags - Identical to --libs +- -u, --uninstall - Uninstall libslack + + Note: the dashes are optional for long option names + +@@ -102,37 +99,6 @@ + ' + } + +-download() +-{ +- latest="`latest 2>&1`" +- test "$latest" = "No versions found at ${url}download" && die "$latest" +- file="`echo $latest | sed 's/^.*\///'`" +- test -f "$file" && die "The file $file already exists" +- wget "$latest" +-} +- +-upgrade() +-{ +- latest="`latest 2>&1`" +- test "$latest" = "No versions found at ${url}/download" && die "$latest" +- file="`echo $latest | sed 's/^.*\///'`" +- dir="`echo $file | sed 's/\.tar\.gz$//'`" +- test -f "$file" || wget "$latest" +- test -s "$file" || die "Failed to download $latest" +- tar xzf "$file" || die "Failed to untar $file" +- cd "$dir" || die "Failed to cd $dir" +- ./configure || die "Failed to configure $dir" +- make || die "Failed to make $dir" +- uninstall || die "Failed to uninstall current version" +- make PREFIX="$prefix" install || die "Failed to install $dir into $prefix" +- cd .. && rm -rf "$dir" +-} +- +-uninstall() +-{ +-@@UNINSTALL@@ +-} +- + test $# -eq 0 && usage 1 1>&2 + + while test $# -gt 0 +@@ -141,13 +107,10 @@ + -h|--help|help) usage 0;; + -v|--version|version) echo "$version";; + -L|--latest|latest) latest;; +- -D|--download|download) download;; +- -U|--upgrade|upgrade) upgrade;; + -p|--prefix|prefix) echo "$prefix";; + -c|--cflags|cflags) echo "$cflags";; + -l|--libs|libs) echo "$libs";; + -l|--ldflags|ldflags) echo "$libs";; +- -u|--uninstall|uninstall) uninstall;; + *) usage 1 >&2;; + esac + shift diff --git a/libraries/libslack/slack-desc b/libraries/libslack/slack-desc new file mode 100644 index 0000000000..6c4de18788 --- /dev/null +++ b/libraries/libslack/slack-desc @@ -0,0 +1,19 @@ +# 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 ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +libslack: libslack (General programmers' utilities) +libslack: +libslack: Libslack is a library of general utilities designed to make UNIX/C +libslack: programming a bit easier on the eye. It is a seemingly random +libslack: collection of commonly useful modules and functions. +libslack: It was originally implemented as part of the daemon program +libslack: (although some of the code dates back much further). +libslack: +libslack: homepage: http://libslack.org +libslack: +libslack: -- cgit v1.2.3