summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2009-08-10 23:50:07 +0000
committerLudovic Courtès <ludo@gnu.org>2009-08-10 23:50:07 +0000
commit5a75fd214791d45a557677302564b0b01b624851 (patch)
tree61b351ad67da26bfefd9bf95e02cce26cd7c5ffa
parentf8b01c81dc38805010fb5167dd4c0c96eabee76e (diff)
downloadnixpkgs-5a75fd214791d45a557677302564b0b01b624851.tar
nixpkgs-5a75fd214791d45a557677302564b0b01b624851.tar.gz
nixpkgs-5a75fd214791d45a557677302564b0b01b624851.tar.bz2
nixpkgs-5a75fd214791d45a557677302564b0b01b624851.tar.lz
nixpkgs-5a75fd214791d45a557677302564b0b01b624851.tar.xz
nixpkgs-5a75fd214791d45a557677302564b0b01b624851.tar.zst
nixpkgs-5a75fd214791d45a557677302564b0b01b624851.zip
Crypto++ 5.6.0, with shared library and test suite.
svn path=/nixpkgs/trunk/; revision=16661
-rw-r--r--pkgs/development/libraries/crypto++/default.nix31
-rw-r--r--pkgs/development/libraries/crypto++/dll.patch24
-rw-r--r--pkgs/development/libraries/crypto++/pic.patch13
3 files changed, 62 insertions, 6 deletions
diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix
index 6ebd5d164db..2afc77f9777 100644
--- a/pkgs/development/libraries/crypto++/default.nix
+++ b/pkgs/development/libraries/crypto++/default.nix
@@ -1,13 +1,17 @@
 { fetchurl, stdenv, unzip }:
 
 stdenv.mkDerivation rec {
-  name = "crypto++-5.5.2";
+  name = "crypto++-5.6.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/cryptopp/cryptopp552.zip";
-    sha256 = "0nd783wk3gl36nfa9zmwxw6pn4n5p8mld7jf5dc1j9iy0gmqv3q7";
+    url = "mirror://sourceforge/cryptopp/cryptopp560.zip";
+    sha256 = "1icbk50mr1sqycqbxbqg703m8aamz23ajgl22ychxdahz2sz08mm";
   };
 
+  patches = [ ./pic.patch ]
+    ++ stdenv.lib.optional (builtins.currentSystem != "i686-cygwin") ./dll.patch;
+
+
   buildInputs = [ unzip ];
 
   # Unpack the thing in a subdirectory.
@@ -17,12 +21,27 @@ stdenv.mkDerivation rec {
     sourceRoot="$PWD/${name}"
   '';
 
-  buildPhase = ''make PREFIX="$out"'';
-  installPhase = ''mkdir "$out" && make install PREFIX="$out"'';
+  # Deal with one of the crappiest build system around there.
+  buildPhase = ''
+    # These guys forgot a file or something.
+    : > modexppc.cpp
+
+    make PREFIX="$out" all cryptopp.dll
+  '';
+
+  installPhase = ''
+    mkdir "$out"
+    make install PREFIX="$out"
+    cp -v cryptopp.dll "$out/lib/libcryptopp.so"
+  '';
+
+  doCheck = true;
+  checkPhase = "make test";
 
   meta = {
     description = "Crypto++, a free C++ class library of cryptographic schemes";
     homepage = http://cryptopp.com/;
     license = "Public Domain";
+    maintainers = [ stdenv.lib.maintainers.ludo ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/libraries/crypto++/dll.patch b/pkgs/development/libraries/crypto++/dll.patch
new file mode 100644
index 00000000000..36a814e67c8
--- /dev/null
+++ b/pkgs/development/libraries/crypto++/dll.patch
@@ -0,0 +1,24 @@
+Get rid of Windows-specific stuff.
+
+--- crypto++/dll.cpp	2009-03-01 19:44:02.000000000 +0100
++++ crypto++/dll.cpp	2009-08-11 00:49:34.000000000 +0200
+@@ -39,7 +39,7 @@ NAMESPACE_END
+ 
+ #endif
+ 
+-#ifdef CRYPTOPP_EXPORTS
++#if defined CRYPTOPP_EXPORTS && defined _MSC_VER
+ 
+ USING_NAMESPACE(CryptoPP)
+ 
+--- crypto++/GNUmakefile	2009-03-15 02:48:02.000000000 +0100
++++ crypto++/GNUmakefile	2009-08-11 01:23:09.000000000 +0200
+@@ -136,7 +136,7 @@ nolib: $(OBJS)		# makes it faster to tes
+ dll: cryptest.import.exe dlltest.exe
+ 
+ cryptopp.dll: $(DLLOBJS)
+-	$(CXX) -shared -o $@ $(CXXFLAGS) $(DLLOBJS) $(LDFLAGS) $(LDLIBS) -Wl,--out-implib=libcryptopp.dll.a
++	$(CXX) -shared -o $@ $(CXXFLAGS) $(DLLOBJS) $(LDFLAGS) $(LDLIBS)
+ 
+ libcryptopp.import.a: $(LIBIMPORTOBJS)
+ 	$(AR) $(ARFLAGS) $@ $(LIBIMPORTOBJS)
diff --git a/pkgs/development/libraries/crypto++/pic.patch b/pkgs/development/libraries/crypto++/pic.patch
new file mode 100644
index 00000000000..d192c6a617e
--- /dev/null
+++ b/pkgs/development/libraries/crypto++/pic.patch
@@ -0,0 +1,13 @@
+Build position-independent code, for shared libraries.
+
+--- a/GNUmakefile	2009-03-15 02:48:02.000000000 +0100
++++ b/GNUmakefile	2009-08-11 00:13:43.000000000 +0200
+@@ -162,7 +162,7 @@ endif
+ 	$(CXX) $(CXXFLAGS) -DCRYPTOPP_IMPORTS -c $< -o $@
+ 
+ %.export.o : %.cpp
+-	$(CXX) $(CXXFLAGS) -DCRYPTOPP_EXPORTS -c $< -o $@
++	$(CXX) $(CXXFLAGS) -fPIC -DCRYPTOPP_EXPORTS -c $< -o $@
+ 
+ %.o : %.cpp
+ 	$(CXX) $(CXXFLAGS) -c $<