GNUnet 0.8.1.

svn path=/nixpkgs/trunk/; revision=19219
This commit is contained in:
Ludovic Courtès 2010-01-05 11:16:42 +00:00
parent eaf1e51ab7
commit bfb476c7d6
3 changed files with 23 additions and 202 deletions

View file

@ -6,20 +6,16 @@
assert gtkSupport -> (gtk != null) && (libglade != null);
let version = "0.8.0b";
let version = "0.8.1";
in
stdenv.mkDerivation {
name = "gnunet-${version}";
src = fetchurl {
url = "http://gnunet.org/download/GNUnet-${version}.tar.bz2";
sha256 = "1d1abnfqbd1f8pjzq9p0za7jyy2lay7k8l09xadk83k8d96abwcs";
url = "mirror://gnu/gnunet/GNUnet-${version}.tar.gz";
sha256 = "0makh52fsrsxg2qgfi1n68sh2hllqxj453g335m05wk05d7minl4";
};
configureFlags = ''
--without-included-ltdl --disable-ltdl-install --with-ltdl-include=${libtool}/include --with-ltdl-lib=${libtool}/lib
'';
buildInputs = [
libextractor libmicrohttpd libgcrypt gmp curl libtool
zlib guile adns sqlite libxml2 ncurses
@ -27,14 +23,19 @@ in
makeWrapper
] ++ (if gtkSupport then [ gtk libglade ] else []);
patches = [
./tmpdir.patch
./disable-http-tests.patch
];
preConfigure = ''
# Brute force: make sure the tests don't rely on `/tmp', for
# the sake of chroot builds.
# 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 localhost {} \;)
do
echo "$i: substituting \`127.0.0.1' to \`localhost'..."
substituteInPlace "$i" --replace "localhost" "127.0.0.1"
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
@ -43,16 +44,15 @@ in
done
'';
# Tests have to be run xonce it's installed.
# FIXME: Re-enable tests when they are less broken.
#postInstall = ''
# GNUNET_PREFIX="$out" make check
#'';
doCheck = false;
# Help programs find the numerous modules that sit under `$out/lib/GNUnet'.
# 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"
'';
@ -78,5 +78,7 @@ in
homepage = http://gnunet.org/;
license = "GPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
};
}

View file

@ -1,88 +0,0 @@
Disable HTTP tests as they seem to deadlock when building in a chroot on NixOS.
diff --git a/src/transports/Makefile.in b/src/transports/Makefile.in
index b0b76a2..30a0bb5 100644
--- a/src/transports/Makefile.in
+++ b/src/transports/Makefile.in
@@ -38,8 +38,8 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_triplet = @host@
check_PROGRAMS = test_udp$(EXEEXT) test_tcp$(EXEEXT) \
- test_http$(EXEEXT) testrepeat_udp$(EXEEXT) \
- testrepeat_tcp$(EXEEXT) testrepeat_http$(EXEEXT)
+ testrepeat_udp$(EXEEXT) \
+ testrepeat_tcp$(EXEEXT)
subdir = src/transports
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
diff --git a/src/applications/session/Makefile.in b/src/applications/session/Makefile.in
index b2717f9..a048d21 100644
--- a/src/applications/session/Makefile.in
+++ b/src/applications/session/Makefile.in
@@ -38,7 +38,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_triplet = @host@
check_PROGRAMS = sessiontest_tcp$(EXEEXT) sessiontest_udp$(EXEEXT) \
- sessiontest_nat$(EXEEXT) $(am__EXEEXT_1)
+ sessiontest_nat$(EXEEXT)
subdir = src/applications/session
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
diff --git a/src/applications/tbench/Makefile.in b/src/applications/tbench/Makefile.in
index ea061bc..c6ee8f8 100644
--- a/src/applications/tbench/Makefile.in
+++ b/src/applications/tbench/Makefile.in
@@ -39,8 +39,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_triplet = @host@
bin_PROGRAMS = gnunet-tbench$(EXEEXT)
-check_PROGRAMS = tbenchtest_tcp$(EXEEXT) tbenchtest_udp$(EXEEXT) \
- $(am__EXEEXT_1)
+check_PROGRAMS = tbenchtest_tcp$(EXEEXT) tbenchtest_udp$(EXEEXT)
subdir = src/applications/tbench
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
diff --git a/src/applications/advertising/Makefile.in b/src/applications/advertising/Makefile.in
index 454fa63..af7aefb 100644
--- a/src/applications/advertising/Makefile.in
+++ b/src/applications/advertising/Makefile.in
@@ -38,7 +38,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
host_triplet = @host@
check_PROGRAMS = advertisingtest_tcp$(EXEEXT) \
- advertisingtest_udp$(EXEEXT) $(am__EXEEXT_1)
+ advertisingtest_udp$(EXEEXT)
subdir = src/applications/advertising
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
diff --git a/src/applications/bootstrap_http/Makefile.in b/src/applications/bootstrap_http/Makefile.in
index 29800af..ad5c6a1 100644
--- a/src/applications/bootstrap_http/Makefile.in
+++ b/src/applications/bootstrap_http/Makefile.in
@@ -37,7 +37,7 @@ NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_triplet = @host@
-check_PROGRAMS = httptest$(EXEEXT)
+check_PROGRAMS =
subdir = src/applications/bootstrap_http
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
diff --git a/src/applications/hostlist/Makefile.in b/src/applications/hostlist/Makefile.in
index 126df5e..2317c60 100644
--- a/src/applications/hostlist/Makefile.in
+++ b/src/applications/hostlist/Makefile.in
@@ -37,7 +37,7 @@ NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_triplet = @host@
-check_PROGRAMS = hostlisttest$(EXEEXT)
+check_PROGRAMS =
subdir = src/applications/hostlist
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4

View file

@ -1,93 +0,0 @@
Make sure the core libraries used by the tests honor $TMPDIR.
diff --git a/src/applications/dstore_sqlite/dstore.c b/src/applications/dstore_sqlite/dstore.c
index cdcae81..4bb45a3 100644
--- a/src/applications/dstore_sqlite/dstore.c
+++ b/src/applications/dstore_sqlite/dstore.c
@@ -129,6 +129,7 @@ db_reset ()
int fd;
sqlite3 *dbh;
char *tmpl;
+ const char *tmpdir;
if (fn != NULL)
{
@@ -136,7 +137,15 @@ db_reset ()
GNUNET_free (fn);
}
payload = 0;
- tmpl = "/tmp/dstoreXXXXXX";
+
+ tmpdir = getenv ("TMPDIR");
+ tmpdir = tmpdir ? tmpdir : "/tmp";
+
+#define TEMPLATE "/gnunet-dstoreXXXXXX"
+ tmpl = alloca (strlen (tmpdir) + sizeof (TEMPLATE) + 1);
+ strcpy (tmpl, tmpdir);
+ strcat (tmpl, TEMPLATE);
+#undef TEMPLATE
#ifdef MINGW
fn = (char *) GNUNET_malloc (MAX_PATH + 1);
diff --git a/src/applications/fs/collection/collection.c b/src/applications/fs/collection/collection.c
index 5671cb3..da2b605 100644
--- a/src/applications/fs/collection/collection.c
+++ b/src/applications/fs/collection/collection.c
@@ -487,6 +487,7 @@ GNUNET_CO_collection_publish_now ()
char *dirData;
char this_revision_string[128];
char next_revision_string[128];
+ const char *tmpdir;
GNUNET_mutex_lock (lock);
if ((collectionData == NULL) ||
@@ -495,7 +496,17 @@ GNUNET_CO_collection_publish_now ()
GNUNET_mutex_unlock (lock);
return;
}
- tmpName = GNUNET_strdup ("/tmp/gnunet-collectionXXXXXX");
+
+ tmpdir = getenv ("TMPDIR");
+ tmpdir = tmpdir ? tmpdir : "/tmp";
+
+#define TEMPLATE "/gnunet-collectionXXXXXX"
+ tmpName = alloca (strlen (tmpdir) + sizeof (TEMPLATE) + 1);
+ strcpy (tmpName, tmpdir);
+ strcat (tmpName, TEMPLATE);
+#undef TEMPLATE
+
+ tmpName = GNUNET_strdup (tmpName);
fd = mkstemp (tmpName);
if (fd == -1)
{
diff --git a/src/applications/fs/fsui/upload.c b/src/applications/fs/fsui/upload.c
index dc683a5..46a04af 100644
--- a/src/applications/fs/fsui/upload.c
+++ b/src/applications/fs/fsui/upload.c
@@ -159,6 +159,7 @@ createDirectoryHelper (struct GNUNET_GE_Context *ectx,
int handle;
struct GNUNET_GE_Memory *mem;
struct GNUNET_GE_Context *ee;
+ const char *tmpdir;
fis = NULL;
size = 0;
@@ -208,7 +209,17 @@ createDirectoryHelper (struct GNUNET_GE_Context *ectx,
pos = pos->next;
}
GNUNET_GE_memory_reset (mem);
- tempName = GNUNET_strdup ("/tmp/gnunet-upload-dir.XXXXXX");
+
+ tmpdir = getenv ("TMPDIR");
+ tmpdir = tmpdir ? tmpdir : "/tmp";
+
+#define TEMPLATE "/gnunet-upload-dirXXXXXX"
+ tempName = alloca (strlen (tmpdir) + sizeof (TEMPLATE) + 1);
+ strcpy (tempName, tmpdir);
+ strcat (tempName, TEMPLATE);
+#undef TEMPLATE
+
+ tempName = GNUNET_strdup (tempName);
handle = mkstemp (tempName);
if (handle == -1)
{