From 42701dece8db489fadee3f83657841815f8f6ab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Llu=C3=ADs=20Batlle=20i=20Rossell?= Date: Mon, 27 May 2013 23:33:51 +0200 Subject: [PATCH] Adding gnunet-svn and libgcrypt-git. gnunet-svn can't interoperate with gnunet. --- .../networking/p2p/gnunet/svn.nix | 89 +++++++++++++++++++ pkgs/development/libraries/libgcrypt/git.nix | 48 ++++++++++ pkgs/top-level/all-packages.nix | 6 ++ 3 files changed, 143 insertions(+) create mode 100644 pkgs/applications/networking/p2p/gnunet/svn.nix create mode 100644 pkgs/development/libraries/libgcrypt/git.nix diff --git a/pkgs/applications/networking/p2p/gnunet/svn.nix b/pkgs/applications/networking/p2p/gnunet/svn.nix new file mode 100644 index 000000000000..9335778d3d22 --- /dev/null +++ b/pkgs/applications/networking/p2p/gnunet/svn.nix @@ -0,0 +1,89 @@ +{ stdenv, fetchsvn, libextractor, libmicrohttpd, libgcrypt +, zlib, gmp, curl, libtool, adns, sqlite, pkgconfig +, libxml2, ncurses, gettext, libunistring, libidn +, makeWrapper, autoconf, automake }: + +let + rev = "27314"; +in +stdenv.mkDerivation rec { + name = "gnunet-svn-${rev}"; + + src = fetchsvn { + url = https://gnunet.org/svn/gnunet; + sha256 = "14b893y5dy84hp1klrmng06znbh2m2wk4f1kpbhzbwnvjyhk6kdq"; + }; + + buildInputs = [ + libextractor libmicrohttpd libgcrypt gmp curl libtool + zlib adns sqlite libxml2 ncurses libidn + pkgconfig gettext libunistring makeWrapper + autoconf automake + ]; + + preConfigure = '' + # Brute force: since nix-worker chroots don't provide + # /etc/{resolv.conf,hosts}, replace all references to `localhost' + # by their IPv4 equivalent. + for i in $(find . \( -name \*.c -or -name \*.conf \) \ + -exec grep -l '\' {} \;) + do + echo "$i: substituting \`127.0.0.1' to \`localhost'..." + sed -i "$i" -e's/\/127.0.0.1/g' + done + + # Make sure the tests don't rely on `/tmp', for the sake of chroot + # builds. + for i in $(find . \( -iname \*test\*.c -or -name \*.conf \) \ + -exec grep -l /tmp {} \;) + do + echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..." + substituteInPlace "$i" --replace "/tmp" "$TMPDIR" + done + + # Ensure NSS installation works fine + configureFlags="$configureFlags --with-nssdir=$out/lib" + patchShebangs src/gns/nss/install-nss-plugin.sh + + sh contrib/pogen.sh + sh bootstrap + ''; + + doCheck = false; + + /* FIXME: Tests must be run this way, but there are still a couple of + failures. + + postInstall = + '' export GNUNET_PREFIX="$out" + export PATH="$out/bin:$PATH" + make -k check + ''; + */ + + 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 = with stdenv.lib.maintainers; [ ludo viric ]; + platforms = stdenv.lib.platforms.gnu; + }; +} diff --git a/pkgs/development/libraries/libgcrypt/git.nix b/pkgs/development/libraries/libgcrypt/git.nix new file mode 100644 index 000000000000..bf917464343e --- /dev/null +++ b/pkgs/development/libraries/libgcrypt/git.nix @@ -0,0 +1,48 @@ +{ fetchgit, stdenv, libgpgerror, autoconf, automake, libtool, transfig, ghostscript, texinfo }: + +stdenv.mkDerivation rec { + name = "libgcrypt-git-20130524"; + + src = fetchgit { + url = git://git.gnupg.org/libgcrypt.git; + rev = "99b18aa53"; + sha256 = "1rhbpxqrkfszlv8jvw8s4apwklal07k8zxv5q555l7binc1j1j3z"; + }; + + nativeBuildInputs = [ autoconf automake libtool transfig ghostscript texinfo ]; + + propagatedBuildInputs = [ libgpgerror ]; + + preConfigure = '' + sh autogen.sh + ''; + + preBuild = '' + (cd doc; make stamp-vti) + ''; + + doCheck = true; + + # For some reason the tests don't find `libgpg-error.so'. + checkPhase = '' + LD_LIBRARY_PATH="${libgpgerror}/lib:$LD_LIBRARY_PATH" \ + make check + ''; + + meta = { + description = "GNU Libgcrypt, a general-pupose cryptographic library"; + + longDescription = '' + GNU Libgcrypt is a general purpose cryptographic library based on + the code from GnuPG. It provides functions for all + cryptographic building blocks: symmetric ciphers, hash + algorithms, MACs, public key algorithms, large integer + functions, random numbers and a lot of supporting functions. + ''; + + license = "LGPLv2+"; + + homepage = https://www.gnu.org/software/libgcrypt/; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 57dbbb0ec3c0..19de3664b816 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4339,6 +4339,8 @@ let libgcrypt = callPackage ../development/libraries/libgcrypt { }; + libgcrypt_git = lowPrio (callPackage ../development/libraries/libgcrypt/git.nix { }); + libgdiplus = callPackage ../development/libraries/libgdiplus { }; libgpgerror = callPackage ../development/libraries/libgpg-error { }; @@ -7293,6 +7295,10 @@ let gnunet = callPackage ../applications/networking/p2p/gnunet { }; + gnunet_svn = lowPrio (callPackage ../applications/networking/p2p/gnunet/svn.nix { + libgcrypt = libgcrypt_git; + }); + gocr = callPackage ../applications/graphics/gocr { }; gobby5 = callPackage ../applications/editors/gobby {