development/gnulib: Added (GNU portability library).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
B. Watson 2015-05-20 20:16:50 +07:00 committed by Willy Sudiarto Raharjo
parent 724146644c
commit eec1412f00
7 changed files with 361 additions and 0 deletions

View file

@ -0,0 +1,5 @@
gnulib (GNU portability library)
The GNU portability library is a macro system and C declarations
and definitions for commonly-used API elements and abstracted system
behaviors.

View file

@ -0,0 +1,7 @@
if ! grep "(gnulib)" usr/info/dir 1>/dev/null 2>/dev/null; then
cat << EOF >> usr/info/dir
Miscellaneous
* Gnulib: (gnulib). The GNU Portability Library.
EOF
fi

View file

@ -0,0 +1,105 @@
#!/bin/sh
# Slackware build script for gnulib
# Written by B. Watson (yalhcru@gmail.com)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# Heavily based on Debian's package:
# https://packages.debian.org/sid/gnulib
# According to the gnulib docs at http://www.gnu.org/software/gnulib/,
# this build shouldn't exist: "there is no distribution tarball;
# the idea is to copy files from Gnulib into your own source tree."
# However, Debian packages it, and some projects that use it expect it
# to be installed system-wide (notably, lbzip2 does this). For practical
# reasons, I'm going to package this. Hopefully this saves someone else
# some work in the future.
PRGNAM=gnulib
VERSION=${VERSION:-20140202}
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/+/-}-stable
tar xvf $CWD/${PRGNAM}_$VERSION+stable.orig.tar.gz
cd $PRGNAM-${VERSION/+/-}-stable
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 {} \;
find . \( -name '.git*' -o -name '.cvs*' \) -print0 | xargs -0 rm -rf
# does the same as Debian's 02-shebang.patch
sed -i '1s,#!/usr/local/bin,#!/usr/bin,' lib/uniname/gen-uninames.lisp
make -C doc info
make -C doc html
# Debian does this, is it really necessary?
chmod 755 tests/*.in.sh lib/config.charset
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mv doc/*html COPYING ChangeLog DEPENDENCIES README NEWS* users.txt STATUS* \
$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKG/usr/info
gzip -9c < doc/$PRGNAM.info > $PKG/usr/info/$PRGNAM.info.gz
rm -f doc/$PRGNAM.info
mkdir -p $PKG/usr/share/$PRGNAM
cp -a * $PKG/usr/share/$PRGNAM
mkdir -p $PKG/usr/bin
ln -s ../share/$PRGNAM/check-module $PKG/usr/bin/check-module
ln -s ../share/$PRGNAM/gnulib-tool $PKG/usr/bin/gnulib-tool
# man pages lifted straight from the Debian package
mkdir -p $PKG/usr/man/man1
for i in $CWD/manpages/*.1; do
gzip -9c < $i > $PKG/usr/man/man1/$( basename $i ).gz
done
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="gnulib"
VERSION="20140202"
HOMEPAGE="https://www.gnu.org/software/gnulib/"
DOWNLOAD="http://http.debian.net/debian/pool/main/g/gnulib/gnulib_20140202+stable.orig.tar.gz"
MD5SUM="5fc03f07046c2349449db963602b9522"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"

View file

@ -0,0 +1,33 @@
.TH CHECK-MODULE 1 "2006-06-01" "0.0.20060601" "GNU Portability Library"
.SH NAME
check-module \- program to check gnulib modules.
.SH SYNOPSIS
.B check-module [OPTIONS] FILE...
.SH DESCRIPTION
The GNU portability library is a macro system and C declarations and definitions for commonly-used API elements and abstracted system behaviors. It can be used to improve portability and other functionality in your programs.
.PP
.B check-module
reads a module description file and derives the set of files included directly by any .c or .h file listed in the `Files:' section. First, it takes the union of all such sets for any dependent modules. Then, it compares that set with the set derived from the names listed in the various Files: sections.
.PP
.SH OPTIONS
.TP
.B \-h, \-\-help
Show summary of options.
.TP
.B \-v, \-\-version
Show version of program.
.SH BUGS
Report bugs to <bug-gnulib@gnu.org>.
.SH SEE ALSO
.BR gnulib (1).
.SH AUTHOR
check-module was written by the Free Software Foundation and others (sources of various origins).
.PP
This manual page was written by Daniel Baumann <daniel@debian.org>, for the Debian project (but may be used by others).

View file

@ -0,0 +1,182 @@
.TH GNULIB\-TOOL 1 "2006-06-01" "0.0.20060601" "GNU Portability Library"
.SH NAME
gnulib\-tool \- program for authors or maintainers which want to import modules
from gnulib into their packages.
.SH SYNOPSIS
.B gnulib\-tool
\-\-list
.PP
.B gnulib\-tool
\-\-import [module1 ... moduleN]
.PP
.B gnulib\-tool
\-\-update
.PP
.B gnulib\-tool
\-\-create-testdir \-\-dir=directory module1 ... moduleN
.PP
.B gnulib\-tool
\-\-create-megatestdir \-\-dir=directory [module1 ... moduleN]
.PP
.B gnulib\-tool
\-\-test \-\-dir=directory module1 ... moduleN
.PP
.B gnulib\-tool
\-\-megatest \-\-dir=directory [module1 ... moduleN]
.PP
.B gnulib\-tool
\-\-extract-description module
.PP
.B gnulib\-tool
\-\-extract-filelist module
.PP
.B gnulib\-tool
\-\-extract-dependencies module
.PP
.B gnulib\-tool
\-\-extract-autoconf-snippet module
.PP
.B gnulib\-tool
\-\-extract-automake-snippet module
.PP
.B gnulib\-tool
\-\-extract-include-directive module
.PP
.B gnulib\-tool
\-\-extract-license module
.PP
.B gnulib\-tool
\-\-extract-maintainer module
.PP
.B gnulib\-tool
\-\-extract-tests-module module
.SH DESCRIPTION
The GNU portability library is a macro system and C declarations and definitions
for commonly-used API elements and abstracted system behaviors. It can be used
to improve portability and other functionality in your programs.
.PP
.SH OPTIONS
Operation modes:
.TP
.B \-\-list
print the available module names.
.TP
.B \-\-import
import the given modules into the current package; if no modules are specified,
update the current package from the current gnulib.
.TP
.B \-\-update
update the current package, restore files omitted from CVS.
.TP
.B \-\-create-testdir
create a scratch package with the given modules.
.TP
.B \-\-create-megatestdir
create a mega scratch package with the given modules one by one and all
together.
.TP
.B \-\-test
test the combination of the given modules (recommended to use CC="gcc \-Wall"
here).
.TP
.B \-\-megatest
test the given modules one by one and all together (recommended to use CC="gcc
\-Wall" here).
.TP
.B \-\-extract-description
extract the description.
.TP
.B \-\-extract-filelist
extract the list of files.
.TP
.B \-\-extract-dependencies
extract the dependencies.
.TP
.B \-\-extract-autoconf-snippet
extract the snippet for configure.ac.
.TP
.B \-\-extract-automake-snippet
extract the snippet for lib/Makefile.am.
.TP
.B \-\-extract-include-directive
extract the #include directive.
.TP
.B \-\-extract-license
report the license terms of the source files under lib/.
.TP
.B \-\-extract-maintainer
report the maintainer(s) inside gnulib.
.TP
.B \-\-extract-tests-module
report the unit test module, if it exists.
.PP
Options:
.TP
.B \-\-dir=DIRECTORY
specify the target directory. For \-\-import, this specifies where your
configure.ac can be found. Defaults to current directory.
.TP
.B \-\-lib=LIBRARY
Specify the library name. Defaults to 'libgnu'.
.TP
.B \-\-source-base=DIRECTORY
Directory relative \-\-dir where source code is placed (default "lib"), for
\-\-import.
.TP
.B \-\-m4-base=DIRECTORY
Directory relative \-\-dir where *.m4 macros are placed (default "m4"), for
\-\-import.
.TP
.B \-\-tests-base=DIRECTORY
Directory relative \-\-dir where unit tests are placed (default "tests"), for
\-\-import.
.TP
.B \-\-aux-dir=DIRECTORY
Directory relative \-\-dir where auxiliary build tools are placed (default
"build-aux").
.TP
.B \-\-with-tests
Include unit tests for the included modules.
.TP
.B \-\-avoid=MODULE
Avoid including the given MODULE. Useful if you have code that provides
equivalent functionality. This option can be repeated.
.TP
.B \-\-lgpl
Abort if modules aren't available under the LGPL. Also modify license template
from GPL to LGPL.
.TP
.B \-\-libtool
Use libtool rules, for \-\-import.
.TP
.B \-\-macro-prefix=PREFIX
Specify the prefix of the macros 'gl_EARLY' and 'gl_INIT'. Default is 'gl'.
.TP
.B \-\-no-changelog
don't update or create ChangeLog files.
.TP
.B \-\-dry-run
For \-\-import, only print what would have been done.
.TP
.B -s, \-\-symbolic, \-\-symlink
Make symbolic links instead of copying files.
.PP
.TP
.B \-h, \-\-help
Show summary of options.
.SH BUGS
Report bugs to <bug-gnulib@gnu.org>.
.SH SEE ALSO
.BR check-module (1).
.SH AUTHOR
gnulib was written by the Free Software Foundation and others (sources of various origins).
.PP
This manual page was written by Daniel Baumann <daniel@debian.org>, for the Debian project (but may be used by others).

View file

@ -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------------------------------------------------------|
gnulib: gnulib (GNU portability library)
gnulib:
gnulib: The GNU portability library is a macro system and C declarations
gnulib: and definitions for commonly-used API elements and abstracted system
gnulib: behaviors.
gnulib:
gnulib:
gnulib:
gnulib:
gnulib:
gnulib: