summaryrefslogtreecommitdiff
path: root/development/splint
diff options
context:
space:
mode:
Diffstat (limited to 'development/splint')
-rw-r--r--development/splint/README18
-rw-r--r--development/splint/doinst.sh7
-rw-r--r--development/splint/slack-desc11
-rw-r--r--development/splint/splint.SlackBuild74
-rw-r--r--development/splint/splint.info8
5 files changed, 118 insertions, 0 deletions
diff --git a/development/splint/README b/development/splint/README
new file mode 100644
index 0000000000..ff6b7c4a30
--- /dev/null
+++ b/development/splint/README
@@ -0,0 +1,18 @@
+splint is a tool for statically checking C programs for security vulnerabilities
+and programming mistakes. Splint does many of the traditional lint checks
+including unused declarations, type inconsistencies, use before definition,
+unreachable code, ignored return values, execution paths with no return,
+likely infinite loops, and fall through cases.
+
+More powerful checks are made possible by additional information given
+in source code annotations. Annotations are stylized comments that
+document assumptions about functions, variables, parameters and types.
+In addition to the checks specifically enabled by annotations, many
+of the traditional lint checks are improved by exploiting this additional
+information.
+
+As more effort is put into annotating programs, better checking results.
+Splint is designed to be flexible and allow programmers to select
+appropriate points on the effort-benefit curve for particular projects.
+As different checks are turned on and more information is given in code
+annotations the number of bugs that can be detected increases dramatically.
diff --git a/development/splint/doinst.sh b/development/splint/doinst.sh
new file mode 100644
index 0000000000..15d8003421
--- /dev/null
+++ b/development/splint/doinst.sh
@@ -0,0 +1,7 @@
+# If we do not have a lint already:
+if ! command -v lint 1> /dev/null 2> /dev/null ; then
+ # Make this the default
+ ( cd /usr/bin ; ln -sf splint lint )
+ ( cd /usr/man/man1 ; ln -sf splint.1.gz lint.1.gz )
+fi
+
diff --git a/development/splint/slack-desc b/development/splint/slack-desc
new file mode 100644
index 0000000000..bb409aa212
--- /dev/null
+++ b/development/splint/slack-desc
@@ -0,0 +1,11 @@
+splint: Splint (Secure Programming Lint)
+splint:
+splint: Splint is a tool for statically checking C programs for security
+splint: vulnerabilities and coding mistakes. With minimal effort, Splint
+splint: can be used as a better lint. If additional effort is invested
+splint: adding annotations to programs, Splint can perform stronger checking
+splint: than can be done by any standard lint.
+splint:
+splint: Splint is developed and maintained by the Secure Programming Group
+splint: at the University of Virginia Department of Computer Science. David
+splint: Evans is the project leader and the primary developer of Splint.
diff --git a/development/splint/splint.SlackBuild b/development/splint/splint.SlackBuild
new file mode 100644
index 0000000000..09490ffa01
--- /dev/null
+++ b/development/splint/splint.SlackBuild
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+# Slackware build script for splint
+# Written by Menno E. Duursma <druiloor@zonnet.nl>
+# Modified by the SlackBuilds.org project
+
+PRGNAM=splint
+VERSION=3.1.1
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+CWD=`pwd`
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xzvf $CWD/$PRGNAM-$VERSION.src.tgz || exit 1
+cd $PRGNAM-$VERSION || exit 1
+chown -R root:root .
+chmod -R u+w,go+r-w,a-s .
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ || exit 1
+
+make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+( 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
+)
+
+if [ -d $PKG/usr/man ]; then
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+)
+fi
+
+if [ -d $PKG/usr/info ]; then
+ gzip -9 $PKG/usr/info/*.info
+ rm -f $PKG/usr/info/dir
+fi
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp README $PKG/usr/doc/$PRGNAM-$VERSION
+cd doc
+cp manual.pdf $PKG/usr/doc/$PRGNAM-$VERSION
+cd html
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html
+cp *.htm *.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
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
diff --git a/development/splint/splint.info b/development/splint/splint.info
new file mode 100644
index 0000000000..b3a48f8961
--- /dev/null
+++ b/development/splint/splint.info
@@ -0,0 +1,8 @@
+PRGNAM="splint"
+VERSION="3.1.1"
+HOMEPAGE="http://www.splint.org/"
+DOWNLOAD="http://www.splint.org/downloads/splint-3.1.1.src.tgz"
+MD5SUM="91635d98644312302f6f16abe73c2474"
+MAINTAINER="Menno E. Duursma"
+EMAIL="druiloor@zonnet.nl"
+APPROVED="elohim"