cryptopp: 5.6.5 -> 8.2.0

+ add c0bw3b as maintainer
This commit is contained in:
c0bw3b 2019-10-28 22:10:05 +01:00 committed by Jon
parent 57c922972a
commit c36d92f165
3 changed files with 26 additions and 71 deletions

View File

@ -1,15 +0,0 @@
diff --git a/GNUmakefile b/GNUmakefile
index 4de9d10..ff4789a 100755
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -271,8 +271,8 @@ endif # OpenMP
endif # IS_LINUX
ifneq ($(IS_DARWIN),0)
-AR = libtool
-ARFLAGS = -static -o
+AR = ar
+ARFLAGS = cru
CXX ?= c++
ifeq ($(IS_GCC_29),1)
CXXFLAGS += -fno-coalesce-templates -fno-coalesce-static-vtables

View File

@ -1,49 +1,47 @@
{ fetchFromGitHub, stdenv }: { stdenv, fetchFromGitHub, nasm, which }:
with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "crypto++"; pname = "crypto++";
majorVersion = "5.6"; version = "8.2.0";
version = "${majorVersion}.5"; underscoredVersion = strings.replaceStrings ["."] ["_"] version;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "weidai11"; owner = "weidai11";
repo = "cryptopp"; repo = "cryptopp";
rev = "CRYPTOPP_5_6_5"; rev = "CRYPTOPP_${underscoredVersion}";
sha256 = "1yk7jyf4va9425cg05llskpls2jm7n3jwy2hj5jm74zkr4mwpvl7"; sha256 = "01zrrzjn14yhkb9fzzl57vmh7ig9a6n6fka45f8za0gf7jpcq3mj";
}; };
patches = stdenv.lib.concatLists [ postPatch = ''
(stdenv.lib.optional (stdenv.hostPlatform.system != "i686-cygwin") ./dll.patch) substituteInPlace GNUmakefile \
(stdenv.lib.optional stdenv.hostPlatform.isDarwin ./GNUmakefile-darwin.patch) --replace "AR = libtool" "AR = ar" \
]; --replace "ARFLAGS = -static -o" "ARFLAGS = -cru"
configurePhase = ''
sed -i GNUmakefile \
-e 's|-march=native|-fPIC|g' \
-e '/^CXXFLAGS =/s|-g ||'
''; '';
nativeBuildInputs = optionals stdenv.hostPlatform.isx86 [ nasm which ];
preBuild = optionalString stdenv.hostPlatform.isx86 "${stdenv.shell} rdrand-nasm.sh";
makeFlags = [ "PREFIX=${placeholder "out"}" ];
buildFlags = [ "shared" "libcryptopp.pc" ];
enableParallelBuilding = true; enableParallelBuilding = true;
makeFlags = [ "PREFIX=$(out)" ];
buildFlags = [ "libcryptopp.so" ];
installFlags = [ "LDCONF=true" ];
doCheck = true; doCheck = true;
checkPhase = "LD_LIBRARY_PATH=`pwd` make test";
# prefer -fPIC and .so to .a; cryptotest.exe seems superfluous preInstall = "rm libcryptopp.a"; # built for checks but we don't install static lib into the nix store
postInstall = '' installTargets = "install-lib";
rm "$out"/lib/*.a -r "$out/bin" installFlags = [ "LDCONF=true" ];
ln -sf "$out"/lib/libcryptopp.so.${version} "$out"/lib/libcryptopp.so.${majorVersion} postInstall = optionalString (!stdenv.hostPlatform.isDarwin) ''
ln -sr $out/lib/libcryptopp.so.${version} $out/lib/libcryptopp.so.${versions.majorMinor version}
ln -sr $out/lib/libcryptopp.so.${version} $out/lib/libcryptopp.so.${versions.major version}
''; '';
meta = with stdenv.lib; { meta = {
description = "Crypto++, a free C++ class library of cryptographic schemes"; description = "Crypto++, a free C++ class library of cryptographic schemes";
homepage = http://cryptopp.com/; homepage = "https://cryptopp.com/";
license = licenses.boost; changelog = "https://raw.githubusercontent.com/weidai11/cryptopp/CRYPTOPP_${underscoredVersion}/History.txt";
license = with licenses; [ boost publicDomain ];
platforms = platforms.all; platforms = platforms.all;
maintainers = [ ]; maintainers = with maintainers; [ c0bw3b ];
}; };
} }

View File

@ -1,28 +0,0 @@
Get rid of Windows-specific stuff.
diff --git a/GNUmakefile b/GNUmakefile
index 4de9d10..ff4789a 100755
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -656,7 +656,7 @@ nolib: $(OBJS)
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/dll.cpp b/dll.cpp
index 72dade9..b5097ab 100644
--- a/dll.cpp
+++ b/dll.cpp
@@ -48,7 +48,7 @@ NAMESPACE_END
#endif
-#ifdef CRYPTOPP_EXPORTS
+#if defined CRYPTOPP_EXPORTS && defined _MSC_VER
USING_NAMESPACE(CryptoPP)