From e86543bb5813e742955300da7e8b00bf8373bed1 Mon Sep 17 00:00:00 2001 From: mid-kid Date: Sat, 5 Aug 2017 22:46:29 +0700 Subject: [PATCH] misc/bsdmainutils: Added (collection of utilities). Signed-off-by: Willy Sudiarto Raharjo --- misc/bsdmainutils/README | 18 +++ misc/bsdmainutils/bsdmainutils.SlackBuild | 174 ++++++++++++++++++++++ misc/bsdmainutils/bsdmainutils.info | 12 ++ misc/bsdmainutils/slack-desc | 19 +++ 4 files changed, 223 insertions(+) create mode 100644 misc/bsdmainutils/README create mode 100644 misc/bsdmainutils/bsdmainutils.SlackBuild create mode 100644 misc/bsdmainutils/bsdmainutils.info create mode 100644 misc/bsdmainutils/slack-desc diff --git a/misc/bsdmainutils/README b/misc/bsdmainutils/README new file mode 100644 index 0000000000..b7bf2d7296 --- /dev/null +++ b/misc/bsdmainutils/README @@ -0,0 +1,18 @@ +This is the bsdmainutils package from Debian. It's a collection of common BSD +utilities, compiled from different sources, by the Debian folks. It includes +tools such as the classic 'calendar'. + +This SlackBuild uses the Debian sources to create a suitable package for +Slackware. Hdate (and it's python bindings) is a build-time dependency, that +is built in this same package, but not installed. Because it's a package for +Slackware, and not Debian, it bears the following differences from the +original Debian package: +- Utilities that conflict with Slackware's util-linux have been removed. +- /etc/cron.daily/bsdmainutils and /etc/default/bsdmainutils have been + installed in /usr/doc as cron.daily, and bsdmainutils.default, respectively. + Please verify that these scripts work on your machine before using them in + production. They were tailored for Debian, not Slackware! +- The postinst and prerm scripts aren't installed, because they're unnecessary + in the context of Slackware. +- Slight structure alterations to fit with the Slackware filesystem. See the + SlackBuild for more details. diff --git a/misc/bsdmainutils/bsdmainutils.SlackBuild b/misc/bsdmainutils/bsdmainutils.SlackBuild new file mode 100644 index 0000000000..d7c69884ee --- /dev/null +++ b/misc/bsdmainutils/bsdmainutils.SlackBuild @@ -0,0 +1,174 @@ +#!/bin/sh + +# Slackware build script for bsdmainutils + +# Copyright 2017 mid-kid +# 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=bsdmainutils +VERSION=${VERSION:-9.0.12+nmu1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +HDATE_PRGNAM=libhdate +HDATE_VERSION=${HDATE_VERSION:-1.6.02} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -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 + +# Build hdate with python bindings to be able to build the judaic calendar +( + cd $TMP + rm -rf $HDATE_PRGNAM-$HDATE_VERSION + tar xvf $CWD/$HDATE_PRGNAM-$HDATE_VERSION.tar.bz2 + cd $HDATE_PRGNAM-$HDATE_VERSION + chown -R root:root . + find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + + ./configure \ + --prefix=$PWD/install \ + --with-python-sitelib-dir=$PWD/install/lib/python2.7/dist-packages \ + --disable-fpc \ + --disable-gpc \ + --disable-ruby \ + --disable-php \ + --disable-perl + make + make install +) +# Set environment to find the libraries +export LD_LIBRARY_PATH=$TMP/$HDATE_PRGNAM-$HDATE_VERSION/install/lib:$LD_LIBRARY_PATH +export PYTHONPATH=$TMP/$HDATE_PRGNAM-$HDATE_VERSION/install/lib/python2.7/dist-packages:$PYTHONPATH + +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/${PRGNAM}_$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# Apply debian patches +cat debian/patches/series | xargs -I% patch -p1 -i debian/patches/% + +# Build +make + +# Build judaic calendar (as per debian/rules) +currentyear=2017 # Year of the latest entry in debian/changelog +year=`expr $currentyear + 5` +while [ ${year} -ne ${currentyear} ] ; do + year=`expr $year - 1` + python debian/calendarJudaic.py $year > debian/calendars/calendar.judaic.$year +done +( cd debian/calendars + [ -L calendar.judaic ] || ln -s calendar.judaic.$year calendar.judaic +) + +# Install the main programs +make DESTDIR=$PKG install + +# Install additional files +while IFS=$'\n' read -r entry; do + file="$(echo "$entry" | xargs | cut -d' ' -f1)" + dest="$(echo "$entry" | xargs | cut -d' ' -f2)" + if [ "$file" -a "$dest" ]; then + mkdir -p $PKG/$dest + cp -a $file $PKG/$dest + fi +done < debian/install + +# Move misplaced directories +mkdir -p $PKG/usr/doc +mv $PKG/usr/share/man $PKG/usr/man +mv $PKG/usr/share/doc/bsdmainutils $PKG/usr/doc/$PRGNAM-$VERSION +rmdir $PKG/usr/share/doc + +# Install additional documentation +while IFS=$'\n' read -r entry; do + cp -a $entry $PKG/usr/doc/$PRGNAM-$VERSION +done < debian/docs + +# Remove Debian-specific files +rm -rf $PKG/usr/share/lintian + +# Remove conflicting files (available in util-linux) +for prg in cal ul look hexdump col column colcrt colrm; do + rm -f $PKG/usr/bin/$prg $PKG/usr/man/man1/$prg.1 +done + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done + +cp -a \ + debian/changelog \ + debian/copyright \ + debian/cron.daily \ + debian/bsdmainutils.default \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +gzip -9 $PKG/usr/doc/$PRGNAM-$VERSION/calendarJudaic.py +gzip -9 $PKG/usr/doc/$PRGNAM-$VERSION/changelog +gzip -9 $PKG/usr/doc/$PRGNAM-$VERSION/source.data + +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/misc/bsdmainutils/bsdmainutils.info b/misc/bsdmainutils/bsdmainutils.info new file mode 100644 index 0000000000..623a5af9ca --- /dev/null +++ b/misc/bsdmainutils/bsdmainutils.info @@ -0,0 +1,12 @@ +PRGNAM="bsdmainutils" +VERSION="9.0.12+nmu1" +HOMEPAGE="https://packages.debian.org/sid/bsdmainutils" +DOWNLOAD="http://http.debian.net/debian/pool/main/b/bsdmainutils/bsdmainutils_9.0.12+nmu1.tar.gz + https://sourceforge.net/projects/libhdate/files/libhdate/libhdate-1.6.02/libhdate-1.6.02.tar.bz2" +MD5SUM="ff376305f04a77bf5d7faf53e8419eb7 + 0376b7ad2df71a093343d04f51b9b510" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="libbsd" +MAINTAINER="mid-kid" +EMAIL="esteve.varela@gmail.com" diff --git a/misc/bsdmainutils/slack-desc b/misc/bsdmainutils/slack-desc new file mode 100644 index 0000000000..684d8158c5 --- /dev/null +++ b/misc/bsdmainutils/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------------------------------------------------------| +bsdmainutils: bsdmainutils (collection of more utilities from FreeBSD) +bsdmainutils: +bsdmainutils: This package contains lots of small programs many people expect to +bsdmainutils: find when they use a BSD-style Unix system. +bsdmainutils: It provides banner (as printerbanner), calendar, from (as bsd-from), +bsdmainutils: lorder, and write (as bsd-write). +bsdmainutils: +bsdmainutils: Homepage: https://packages.debian.org/sid/bsdmainutils +bsdmainutils: +bsdmainutils: +bsdmainutils: