TCP Wrappers: Use the Debian patches.

It has the following side effects (among others):

  * Fix compilation on x86_64.  We now only install the shared
    library and one of the Debian patches makes sure its objects
    are compiled with `-fPIC'.

  * Provide IPv6 support.

  * Fix man pages.

  * Fix `linux' makefile target.


svn path=/nixpkgs/trunk/; revision=14255
This commit is contained in:
Ludovic Courtès 2009-02-26 09:53:31 +00:00
parent a54392bc53
commit e221d7ce61
2 changed files with 58 additions and 32 deletions

View File

@ -1,37 +1,39 @@
source "$stdenv/setup" || exit 1 source "$stdenv/setup" || exit 1
# Unpack # Unpack
unpackPhase && \ unpackPhase
cd "$sourceRoot/upstream/tarballs" && \ cd "$sourceRoot/upstream/tarballs"
tar xzvf * && \ tar xzvf *
cd tcp_wrappers_7.6 && \ cd tcp_wrappers_7.6
\
# Patch # Patch
patchPhase
for patch in debian/patches/*
do
echo "applying Debian patch \`$(basename $patch)'..."
patch -p1 < $patch
done
substituteInPlace "Makefile" --replace \ substituteInPlace "Makefile" --replace \
"REAL_DAEMON_DIR=/usr/sbin" "REAL_DAEMON_DIR=$out/sbin" \ "REAL_DAEMON_DIR=/usr/sbin" "REAL_DAEMON_DIR=$out/sbin" \
--replace "/tmp" '$$TMPDIR' && \ --replace "/tmp" '$$TMPDIR'
substituteInPlace "scaffold.c" --replace \
'extern char *malloc();' " " && \ echo "building..."
substituteInPlace "environ.c" --replace \ make REAL_DAEMON_DIR="$out/sbin" linux
'extern char *malloc();' " " && \
\
# The `linux' target doesn't work on Linux...
echo building... && \
make REAL_DAEMON_DIR="$out/sbin" freebsd && \
\
# Install # Install
ensureDir "$out/sbin" && \ ensureDir "$out/sbin"
cp safe_finger tcpd tcpdchk tcpdmatch try-from "$out/sbin" && \ cp -v safe_finger tcpd tcpdchk tcpdmatch try-from "$out/sbin"
\
ensureDir "$out/lib" && \ ensureDir "$out/lib"
cp lib*.a "$out/lib" && \ cp -v shared/lib*.so* "$out/lib"
\
ensureDir "$out/include" && \ ensureDir "$out/include"
cp *.h "$out/include" && \ cp -v *.h "$out/include"
\
ensureDir "$out/man" && \ ensureDir "$out/man"
for i in 3 5 8; \ for i in 3 5 8;
do \ do
ensureDir "$out/man/man$i" && \ ensureDir "$out/man/man$i"
cp *.$i "$out/man/man$i" ; \ cp *.$i "$out/man/man$i" ;
done \ done

View File

@ -7,8 +7,32 @@ stdenv.mkDerivation {
url = mirror://debian/pool/main/t/tcp-wrappers/tcp-wrappers_7.6.dbs.orig.tar.gz; url = mirror://debian/pool/main/t/tcp-wrappers/tcp-wrappers_7.6.dbs.orig.tar.gz;
sha256 = "0k68ziinx6biwar5lcb9jvv0rp6b3vmj6861n75bvrz4w1piwkdp"; sha256 = "0k68ziinx6biwar5lcb9jvv0rp6b3vmj6861n75bvrz4w1piwkdp";
}; };
patches = [
(fetchurl {
url = mirror://debian/pool/main/t/tcp-wrappers/tcp-wrappers_7.6.dbs-13.diff.gz;
sha256 = "071ir20rh8ckhgrc0y99wgnlbqjgkprf0qwbv84lqw5i6qajbcnh";
})
];
builder = ./builder.sh; builder = ./builder.sh;
# meta = ... meta = {
description = "TCP Wrappers, a network logger, also known as TCPD or LOG_TCP";
longDescription = ''
Wietse Venema's network logger, also known as TCPD or LOG_TCP.
These programs log the client host name of incoming telnet, ftp,
rsh, rlogin, finger etc. requests. Security options are: access
control per host, domain and/or service; detection of host name
spoofing or host address spoofing; booby traps to implement an
early-warning system. The current version supports the System
V.4 TLI network programming interface (Solaris, DG/UX) in
addition to the traditional BSD sockets.
'';
homepage = ftp://ftp.porcupine.org/pub/security/index.html;
license = "BSD-style";
};
} }