GNUnet 0.9.0.

svn path=/nixpkgs/trunk/; revision=30725
This commit is contained in:
Ludovic Courtès 2011-12-04 13:49:03 +00:00
parent fa135fc655
commit dccc3f83b3
3 changed files with 79 additions and 86 deletions

View File

@ -1,30 +1,25 @@
{ stdenv, fetchsvn, libextractor, libmicrohttpd, libgcrypt { stdenv, fetchurl, libextractor, libmicrohttpd, libgcrypt
, zlib, gmp, curl, libtool, adns, sqlite, pkgconfig , zlib, gmp, curl, libtool, guile, adns, sqlite, pkgconfig
, libxml2, ncurses, gettext, findutils , libxml2, ncurses, gettext, findutils
, autoconf, automake
, gtkSupport ? false, gtk ? null, libglade ? null , gtkSupport ? false, gtk ? null, libglade ? null
, makeWrapper }: , makeWrapper }:
assert gtkSupport -> (gtk != null) && (libglade != null); assert gtkSupport -> (gtk != null) && (libglade != null);
let let version = "0.8.1b";
rev = "17000";
version = "0.9-svn-${rev}";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "gnunet-${version}"; name = "gnunet-${version}";
src = fetchsvn { src = fetchurl {
url = "https://gnunet.org/svn/gnunet"; url = "mirror://gnu/gnunet/GNUnet-${version}.tar.gz";
sha256 = "17nkvykg3xb5m1y86i9lahgsic9jpj6h0nr73ywzpxpp7ql45cm4"; sha256 = "0k6nrsxz5s52z6hlahb7d3sj1z0gidm79n04pf9j2ngfylp4v1bw";
inherit rev;
}; };
buildInputs = [ buildInputs = [
libextractor libmicrohttpd libgcrypt gmp curl libtool libextractor libmicrohttpd libgcrypt gmp curl libtool
zlib adns sqlite libxml2 ncurses zlib guile adns sqlite libxml2 ncurses
pkgconfig gettext findutils pkgconfig gettext findutils
autoconf automake
makeWrapper makeWrapper
] ++ (if gtkSupport then [ gtk libglade ] else []); ] ++ (if gtkSupport then [ gtk libglade ] else []);
@ -47,8 +42,19 @@ in
echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..." echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..."
substituteInPlace "$i" --replace "/tmp" "$TMPDIR" substituteInPlace "$i" --replace "/tmp" "$TMPDIR"
done done
'';
autoreconf -vfi doCheck = false;
# 1. Run tests have once GNUnet is installed.
# 2. Help programs find the numerous modules that sit under
# `$out/lib/GNUnet'.
# FIXME: `src/transports/test_udp' hangs forever.
postInstall = ''
#GNUNET_PREFIX="$out" make check
wrapProgram "$out/bin/gnunetd" \
--prefix LTDL_LIBRARY_PATH ":" "$out/lib/GNUnet"
''; '';
meta = { meta = {

View File

@ -1,85 +1,72 @@
{ stdenv, fetchurl, libextractor, libmicrohttpd, libgcrypt { stdenv, fetchurl, libextractor, libmicrohttpd, libgcrypt
, zlib, gmp, curl, libtool, guile, adns, sqlite, pkgconfig , zlib, gmp, curl, libtool, adns, sqlite, pkgconfig
, libxml2, ncurses, gettext, findutils , libxml2, ncurses, gettext
, gtkSupport ? false, gtk ? null, libglade ? null , gtkSupport ? false, gtk ? null, libglade ? null
, makeWrapper }: , makeWrapper }:
assert gtkSupport -> (gtk != null) && (libglade != null); assert gtkSupport -> (gtk != null) && (libglade != null);
let version = "0.8.1b"; stdenv.mkDerivation rec {
in name = "gnunet-0.9.0";
stdenv.mkDerivation {
name = "gnunet-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/gnunet/GNUnet-${version}.tar.gz"; url = "mirror://gnu/gnunet/${name}.tar.gz";
sha256 = "0k6nrsxz5s52z6hlahb7d3sj1z0gidm79n04pf9j2ngfylp4v1bw"; sha256 = "1a0faq2j20dxhpdq0lpi8mjhddwmscbaa1bsxk460p5mj8n55i3p";
}; };
buildInputs = [ buildInputs = [
libextractor libmicrohttpd libgcrypt gmp curl libtool libextractor libmicrohttpd libgcrypt gmp curl libtool
zlib guile adns sqlite libxml2 ncurses zlib adns sqlite libxml2 ncurses
pkgconfig gettext findutils pkgconfig gettext makeWrapper
makeWrapper ] ++ (if gtkSupport then [ gtk libglade ] else []);
] ++ (if gtkSupport then [ gtk libglade ] else []);
preConfigure = '' preConfigure = ''
# Brute force: since nix-worker chroots don't provide # Brute force: since nix-worker chroots don't provide
# /etc/{resolv.conf,hosts}, replace all references to `localhost' # /etc/{resolv.conf,hosts}, replace all references to `localhost'
# by their IPv4 equivalent. # by their IPv4 equivalent.
for i in $(find . \( -name \*.c -or -name \*.conf \) \ for i in $(find . \( -name \*.c -or -name \*.conf \) \
-exec grep -l localhost {} \;) -exec grep -l '\<localhost\>' {} \;)
do do
echo "$i: substituting \`127.0.0.1' to \`localhost'..." echo "$i: substituting \`127.0.0.1' to \`localhost'..."
substituteInPlace "$i" --replace "localhost" "127.0.0.1" sed -i "$i" -e's/\<localhost\>/127.0.0.1/g'
done done
# Make sure the tests don't rely on `/tmp', for the sake of chroot # Make sure the tests don't rely on `/tmp', for the sake of chroot
# builds. # builds.
for i in $(find . \( -iname \*test\*.c -or -name \*.conf \) \ for i in $(find . \( -iname \*test\*.c -or -name \*.conf \) \
-exec grep -l /tmp {} \;) -exec grep -l /tmp {} \;)
do do
echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..." echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..."
substituteInPlace "$i" --replace "/tmp" "$TMPDIR" substituteInPlace "$i" --replace "/tmp" "$TMPDIR"
done done
'';
# XXX: There are several test failures, forwarded to bug-gnunet@gnu.org.
doCheck = false;
meta = {
description = "GNUnet, GNU's decentralized anonymous and censorship-resistant P2P framework";
longDescription = ''
GNUnet is a framework for secure peer-to-peer networking that
does not use any centralized or otherwise trusted services. A
first service implemented on top of the networking layer
allows anonymous censorship-resistant file-sharing. Anonymity
is provided by making messages originating from a peer
indistinguishable from messages that the peer is routing. All
peers act as routers and use link-encrypted connections with
stable bandwidth utilization to communicate with each other.
GNUnet uses a simple, excess-based economic model to allocate
resources. Peers in GNUnet monitor each others behavior with
respect to resource usage; peers that contribute to the
network are rewarded with better service.
''; '';
doCheck = false; homepage = http://gnunet.org/;
# 1. Run tests have once GNUnet is installed. license = "GPLv2+";
# 2. Help programs find the numerous modules that sit under
# `$out/lib/GNUnet'.
# FIXME: `src/transports/test_udp' hangs forever. maintainers = [ stdenv.lib.maintainers.ludo ];
postInstall = '' platforms = stdenv.lib.platforms.gnu;
#GNUNET_PREFIX="$out" make check };
wrapProgram "$out/bin/gnunetd" \ }
--prefix LTDL_LIBRARY_PATH ":" "$out/lib/GNUnet"
'';
meta = {
description = "GNUnet, GNU's decentralized anonymous and censorship-resistant P2P framework";
longDescription = ''
GNUnet is a framework for secure peer-to-peer networking that
does not use any centralized or otherwise trusted services. A
first service implemented on top of the networking layer
allows anonymous censorship-resistant file-sharing. Anonymity
is provided by making messages originating from a peer
indistinguishable from messages that the peer is routing. All
peers act as routers and use link-encrypted connections with
stable bandwidth utilization to communicate with each other.
GNUnet uses a simple, excess-based economic model to allocate
resources. Peers in GNUnet monitor each others behavior with
respect to resource usage; peers that contribute to the
network are rewarded with better service.
'';
homepage = http://gnunet.org/;
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
platforms = stdenv.lib.platforms.gnu;
};
}

View File

@ -6773,13 +6773,13 @@ let
inherit (gnome) GConf; inherit (gnome) GConf;
}; };
gnunet = callPackage ../applications/networking/p2p/gnunet { gnunet08 = callPackage ../applications/networking/p2p/gnunet/0.8.nix {
inherit (gnome) gtk libglade; inherit (gnome) gtk libglade;
guile = guile_1_8; guile = guile_1_8;
gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true; gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
}; };
gnunet09 = lowPrio (callPackage ../applications/networking/p2p/gnunet/0.9.nix { }); gnunet = callPackage ../applications/networking/p2p/gnunet { };
gocr = callPackage ../applications/graphics/gocr { }; gocr = callPackage ../applications/graphics/gocr { };