1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00

Update security/cryptopp to 7.0.0

We now install a pkgconfig file which will allow ports to check whether
cryptopp was built with assembly instructions enabled or not. There are
a few functions that will be undefined if built without assembly and
-DCRYPTOPP_DISABLE_ASM needs to be passed to the compiler in that case
to avoid build failures. This is not new, but the pkgconf file should
make it easier to determine if the flag is needed or not.

Fix several ports due to API changes and to use the new pkgconf file
to determine cryptopp location and build flags. Special cases below.

deskutils/cdcat
- Use cryptopp shared library instead of static, detect with pkgconf

devel/xeus
- Fix dependencies and remove header-only libraries from RUN_DEPENDS
- Rework to use the cryptopp pkgconf file
- net/cppzmq CMake files were fixed in r477649, remove hacks for that
  as they were seemingly causing devel/xeus-cling to link to cryptopp
  unnecessarily
- Remove C++17 code from cryptopp checks for compatibility

devel/xeus-cling
- Fix dependencies
- Remove hacks for previously broken cppzmq CMake files and no longer
  needed cryptopp dependency

Changes:	https://www.cryptopp.com/#news
PR:		230579 (original patch, not used)
Submitted by:	yuri
This commit is contained in:
Jason E. Hale 2018-08-24 17:22:01 +00:00
parent d0dff0b145
commit edf512ca2e
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=477967
23 changed files with 234 additions and 199 deletions

View File

@ -2,6 +2,7 @@
PORTNAME= urbackup-client
DISTVERSION= 2.2.6
PORTREVISION= 1
CATEGORIES= archivers
MASTER_SITES= https://hndl.urbackup.org/Client/${DISTVERSION}/
@ -13,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libcryptopp.so:security/cryptopp
USES= gettext dos2unix localbase
USES= dos2unix gettext localbase pkgconfig
USE_RC_SUBR= urbackup_client
USERS= urbackup
@ -21,6 +22,7 @@ GROUPS= urbackup
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --disable-clientupdate
CXXFLAGS+= `pkgconf --cflags-only-other libcryptopp`
SUB_FILES= pkg-message urbackupclient.conf.sample-daemon
@ -48,6 +50,19 @@ XPMFILES= backup-bad.xpm \
backup-no-server.xpm \
backup-progress-pause.xpm
post-patch:
@(cd ${WRKSRC} && ${REINPLACE_CMD} -E -e 's|[[:<:]]byte[[:>:]]|CryptoPP::byte|g' \
cryptoplugin/AESDecryption.cpp \
cryptoplugin/AESEncryption.cpp \
cryptoplugin/AESGCMDecryption.cpp \
cryptoplugin/AESGCMEncryption.cpp \
cryptoplugin/CryptoFactory.cpp \
cryptoplugin/ECDHKeyExchange.cpp \
cryptoplugin/ZlibCompression.cpp \
cryptoplugin/ZlibDecompression.cpp \
md5.h \
)
do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/share/urbackup/scripts
${MKDIR} ${STAGEDIR}${PREFIX}/etc/urbackup

View File

@ -2,7 +2,7 @@
PORTNAME= urbackup-server
DISTVERSION= 2.2.11
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= archivers
MASTER_SITES= https://hndl.urbackup.org/Server/${DISTVERSION}/
@ -13,20 +13,33 @@ LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/server-license.txt
LIB_DEPENDS= libcryptopp.so:security/cryptopp \
libcurl.so:ftp/curl
libcurl.so:ftp/curl
USES+= fakeroot
USES= fakeroot pkgconfig
USE_RC_SUBR= urbackup_server
USERS= urbackup
GROUPS= urbackup
GNU_CONFIGURE= YES
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-packaging
USE_RC_SUBR= urbackup_server
CXXFLAGS+= `pkgconf --cflags-only-other libcryptopp`
SUB_FILES= pkg-message urbackupsrv.conf.sample-daemon
post-patch:
@(cd ${WRKSRC} && ${REINPLACE_CMD} -E -e 's|[[:<:]]byte[[:>:]]|CryptoPP::byte|g' \
cryptoplugin/AESDecryption.cpp \
cryptoplugin/AESEncryption.cpp \
cryptoplugin/AESGCMDecryption.cpp \
cryptoplugin/AESGCMEncryption.cpp \
cryptoplugin/CryptoFactory.cpp \
cryptoplugin/ECDHKeyExchange.cpp \
cryptoplugin/ZlibCompression.cpp \
cryptoplugin/ZlibDecompression.cpp \
md5.h \
)
post-install:
${MKDIR} ${STAGEDIR}${PREFIX}/etc/urbackup
${INSTALL_DATA} ${WRKDIR}/urbackupsrv.conf.sample-daemon \

View File

@ -5,7 +5,7 @@ PORTNAME= clementine
DISTVERSIONPREFIX= v
DISTVERSION= 1.3.1-441
DISTVERSIONSUFFIX= -gc01b7bc
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= audio
PKGNAMESUFFIX= -player
@ -80,16 +80,7 @@ CFLAGS+= -Wno-inconsistent-missing-override \
CMAKE_ARGS+= -DCMAKE_LIBRARY_PATH:PATH="${LOCALBASE}/lib:${PREFIX}/lib" \
-DENABLE_DBUS=ON \
-DENABLE_SPOTIFY_BLOB=OFF \
-DCRYPTOPP_LIBS=${LOCALBASE}/lib/libcryptopp.so \
-DCRYPTOPP_INCLUDEDIR=${LOCALBASE}/include/cryptopp \
-DCRYPTOPP_LIBDIR=${LOCALBASE}/lib \
-DCRYPTOPP_LDFLAGS=-lcryptopp \
-DCRYPTOPP_LIBRARIES=cryptopp \
-DCRYPTOPP_LIBRARY_DIRS=${LOCALBASE}/lib \
-DCRYPTOPP_cryptopp_INCLUDEDIR=${LOCALBASE}/include/cryptopp \
-DCRYPTOPP_cryptopp_LIBDIR=${LOCALBASE}/lib \
-DCRYPTOPP_FOUND=1
-DENABLE_SPOTIFY_BLOB=OFF
OPTIONS_DEFINE= AMAZON \
AUDIOCD \

View File

@ -0,0 +1,11 @@
--- CMakeLists.txt.orig 2018-08-17 05:31:45 UTC
+++ CMakeLists.txt
@@ -59,7 +59,7 @@ find_library(PROTOBUF_STATIC_LIBRARY libprotobuf.a lib
pkg_check_modules(CDIO libcdio)
pkg_check_modules(CHROMAPRINT REQUIRED libchromaprint)
-pkg_search_module(CRYPTOPP cryptopp libcrypto++)
+pkg_check_modules(CRYPTOPP libcryptopp)
pkg_check_modules(GIO gio-2.0)
pkg_check_modules(GLIB REQUIRED glib-2.0)
pkg_check_modules(GOBJECT REQUIRED gobject-2.0)

View File

@ -1,6 +1,14 @@
--- src/CMakeLists.txt.orig 2016-04-19 15:08:35 UTC
--- src/CMakeLists.txt.orig 2018-05-23 13:23:53 UTC
+++ src/CMakeLists.txt
@@ -1388,6 +1388,7 @@ add_executable(clementine
@@ -1295,6 +1295,7 @@ if(HAVE_BREAKPAD)
endif(HAVE_BREAKPAD)
if(HAVE_SPOTIFY_DOWNLOADER)
+ add_definitions(${CRYPTOPP_CFLAGS_OTHER})
target_link_libraries(clementine_lib
${CRYPTOPP_LIBRARIES}
)
@@ -1380,6 +1381,7 @@ add_executable(clementine
if (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
target_link_libraries(clementine execinfo)

View File

@ -3,7 +3,7 @@
PORTNAME= cdcat
PORTVERSION= 2.3.1
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= deskutils
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION}
@ -13,19 +13,20 @@ COMMENT= Qt based tool for offline CD/DVD/disk catalogs
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= cryptopp>0:security/cryptopp
LIB_DEPENDS= libtar.so:devel/libtar \
libexif.so:graphics/libexif \
libmediainfo.so:multimedia/libmediainfo \
libzen.so:multimedia/libzen
libzen.so:multimedia/libzen \
libcryptopp.so:security/cryptopp
CONFIGURE_WRKSRC= ${WRKSRC}/src
BUILD_WRKSRC= ${CONFIGURE_WRKSRC}
USES= libtool qmake:norecursive qt:4 tar:bzip2
USES= libtool pkgconfig qmake:norecursive qt:4 tar:bzip2
USE_QT= corelib gui xml linguisttools_build moc_build uic_build
QMAKE_ARGS= LIBS+="${LOCALBASE}/lib/libcryptopp.a" \
LIBS+="-lz -lbz2 -ltar -lexif -lmediainfo -lzen" \
QMAKE_ARGS= LIBS+="-lz -lbz2 -ltar -lexif -lmediainfo -lzen" \
CONFIG+="link_pkgconfig" \
PKGCONFIG+="libcryptopp" \
DEFINES+="MEDIAINFO_STATIC" \
DEFINES+="MEDIAINFO_UNICODE" \
DEFINES+="USE_LIBEXIF"

View File

@ -0,0 +1,14 @@
byte was moved into the CryptoPP namespace in version 6.0.0
https://www.cryptopp.com/wiki/Std::byte
--- src/wdbfile.h.orig 2018-08-13 23:12:09 UTC
+++ src/wdbfile.h
@@ -31,7 +31,7 @@ static CryptoPP::AutoSeededRandomPool prng;
static CryptoPP::SecByteBlock crypto_key(CryptoPP::Blowfish::BLOCKSIZE);
-static byte iv[CryptoPP::Blowfish::BLOCKSIZE];
+static CryptoPP::byte iv[CryptoPP::Blowfish::BLOCKSIZE];
int generate_cryptokey(QString password);

View File

@ -2,7 +2,7 @@
PORTNAME= xeus-cling
DISTVERSION= 0.4.6
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org
@ -13,10 +13,10 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= cppzmq>0:net/cppzmq \
cxxopts>0:devel/cxxopts \
czmq>0:net/czmq \
llvm-config:lang/cling
llvm-config:lang/cling \
nlohmann-json>0:devel/nlohmann-json \
xtl-quant-stack>0:devel/xtl-quant-stack
LIB_DEPENDS= libclingInterpreter.so:lang/cling \
libcryptopp.so:security/cryptopp \
libpugixml.so:textproc/pugixml \
libuuid.so:misc/e2fsprogs-libuuid \
libxeus.so:devel/xeus \

View File

@ -1,20 +1,7 @@
--- CMakeLists.txt.orig 2018-08-15 11:38:48 UTC
--- CMakeLists.txt.orig 2018-08-19 15:08:49 UTC
+++ CMakeLists.txt
@@ -11,6 +11,8 @@ project(xeus-cling)
set(XCPP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
+link_directories(${CMAKE_INSTALL_PREFIX}/lib)
+
# Versionning
# ===========
@@ -102,10 +104,10 @@ add_definitions(-DLLVM_DIR="${LLVM_BINAR
################
find_package(xeus 0.13 REQUIRED)
-find_package(cppzmq 4.2.3 REQUIRED)
+#find_package(cppzmq 4.2.3 REQUIRED)
@@ -105,7 +105,7 @@ find_package(xeus 0.13 REQUIRED)
find_package(cppzmq 4.2.3 REQUIRED)
find_package(pugixml REQUIRED)
-find_package(Clang REQUIRED)
@ -22,12 +9,12 @@
find_package(Cling REQUIRED)
find_package(cxxopts REQUIRED)
@@ -305,6 +307,8 @@ set(XCPP_TAGCONFS_DIR ${CMAKE_CURRENT_SO
install(DIRECTORY ${XCPP_TAGCONFS_DIR}
DESTINATION ${XCPP_CONF_DIR})
@@ -177,7 +177,7 @@ set (XCPP_HEADERS
)
+target_link_libraries(xeus-cling -lclangAST -lLLVMSupport -lzmq)
+
# Add definitions for the kernel to find tagfiles.
add_definitions(-DXCPP_TAGFILES_DIR="${CMAKE_INSTALL_PREFIX}/${XCPP_DATA_DIR}/tagfiles")
add_definitions(-DXCPP_TAGCONFS_DIR="${CMAKE_INSTALL_PREFIX}/${XCPP_CONF_DIR}/tags.d")
set(LLVM_NO_DEAD_STRIP 1)
-set(LIBS clingInterpreter clingMetaProcessor clingUtils xeus pugixml cxxopts::cxxopts)
+set(LIBS clingInterpreter clingMetaProcessor clingUtils xeus pugixml cxxopts::cxxopts -lclangAST -lLLVMSupport)
set(XEUSCLING_TARGET xeus-cling)
add_executable(${XEUSCLING_TARGET} ${XEUSCLING_SRC})
set_target_properties(${XEUSCLING_TARGET} PROPERTIES ENABLE_EXPORTS 1)

View File

@ -2,7 +2,7 @@
PORTNAME= xeus
DISTVERSION= 0.13.0
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= devel
MAINTAINER= yuri@FreeBSD.org
@ -15,10 +15,8 @@ BUILD_DEPENDS= cppzmq>0:net/cppzmq \
nlohmann-json>0:devel/nlohmann-json \
xtl-quant-stack>0:devel/xtl-quant-stack
LIB_DEPENDS= libcryptopp.so:security/cryptopp \
libuuid.so:misc/e2fsprogs-libuuid
RUN_DEPENDS= cppzmq>0:net/cppzmq \
nlohmann-json>0:devel/nlohmann-json \
xtl-quant-stack>0:devel/xtl-quant-stack
libuuid.so:misc/e2fsprogs-libuuid \
libzmq.so:net/libzmq4
USES= cmake:outsource compiler:c++14-lang localbase:ldflags pkgconfig
USE_GITHUB= yes

View File

@ -1,6 +1,6 @@
--- CMakeLists.txt.orig 2018-07-01 17:59:23 UTC
+++ CMakeLists.txt
@@ -46,11 +46,12 @@ message(STATUS "xeus binary version: v${
@@ -46,11 +46,12 @@ message(STATUS "xeus binary version: v${XEUS_BINARY_VE
# Dependencies
# ============
@ -8,38 +8,44 @@
find_package(nlohmann_json 3.1.1 REQUIRED)
find_package(xtl 0.4 REQUIRED)
-find_package(ZeroMQ 4.2.3 REQUIRED)
-find_package(cppzmq 4.2.3 REQUIRED)
-find_package(cryptopp REQUIRED)
+pkg_check_modules(ZeroMQ libzmq>=4.2.3 REQUIRED)
+#find_package(cppzmq 4.2.3 REQUIRED)
+#find_package(cryptopp REQUIRED)
find_package(cppzmq 4.2.3 REQUIRED)
-find_package(cryptopp REQUIRED)
+pkg_check_modules(cryptopp libcryptopp REQUIRED)
# Source files
# ============
@@ -108,10 +109,9 @@ add_library(xeus SHARED ${XEUS_SOURCES}
target_include_directories(xeus PUBLIC $<BUILD_INTERFACE:${XEUS_INCLUDE_DIR}>
$<INSTALL_INTERFACE:include>)
target_link_libraries(xeus
- PUBLIC cppzmq
@@ -111,7 +112,7 @@ target_link_libraries(xeus
PUBLIC cppzmq
PUBLIC nlohmann_json
PUBLIC xtl
- PRIVATE cryptopp-static)
+ -lcryptopp)
+ PRIVATE cryptopp)
if(NOT MSVC)
if(APPLE)
@@ -139,10 +139,10 @@ include(CMakePushCheckState)
@@ -139,14 +140,12 @@ include(CMakePushCheckState)
cmake_push_check_state()
# HAVE_CRYPTOPP_BYTE_T
-get_target_property(cryptopp_INCLUDE_DIR cryptopp-static INTERFACE_INCLUDE_DIRECTORIES)
-get_target_property(cryptopp_LIBRARY cryptopp-static LOCATION)
-set(CMAKE_REQUIRED_LIBRARIES ${cryptopp_LIBRARY})
-set(CMAKE_REQUIRED_INCLUDES ${cryptopp_INCLUDE_DIR})
+#get_target_property(cryptopp_INCLUDE_DIR cryptopp INTERFACE_INCLUDE_DIRECTORIES)
+#get_target_property(cryptopp_LIBRARY cryptopp LOCATION)
+set(CMAKE_REQUIRED_LIBRARIES -lcryptopp)
+set(CMAKE_REQUIRED_INCLUDES -I/usr/local/include)
set(CMAKE_REQUIRED_LIBRARIES ${cryptopp_LIBRARY})
set(CMAKE_REQUIRED_INCLUDES ${cryptopp_INCLUDE_DIR})
check_cxx_source_compiles("
#include \"cryptopp/config.h\"
int main(){
- [[maybe_unused]] CryptoPP::byte b = CryptoPP::byte{0x36};
+ CryptoPP::byte b = (CryptoPP::byte){0x36};
}" HAVE_CRYPTOPP_BYTE_T)
cmake_pop_check_state()
@@ -206,7 +205,7 @@ if(MSVC)
elseif(APPLE)
target_compile_definitions(xeus PUBLIC -DGUID_CFUUID)
else()
- target_compile_definitions(xeus PUBLIC -DGUID_LIBUUID)
+ target_compile_definitions(xeus PUBLIC -DGUID_LIBUUID ${cryptopp_CFLAGS_OTHER})
endif()
# Examples

View File

@ -1,6 +1,6 @@
--- xeusConfig.cmake.in.orig 2018-08-17 22:53:12 UTC
--- xeusConfig.cmake.in.orig 2018-07-01 17:59:23 UTC
+++ xeusConfig.cmake.in
@@ -20,11 +20,12 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_L
@@ -20,10 +20,11 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR};${CMA
@XEUS_CONFIG_CODE@
include(CMakeFindDependencyMacro)
@ -9,9 +9,7 @@
find_dependency(nlohmann_json 3.1.1)
find_dependency(xtl 0.4)
-find_dependency(ZeroMQ 4.2.3)
-find_dependency(cppzmq 4.2.3)
+pkg_check_modules(ZeroMQ libzmq>=4.2.3 REQUIRED)
+#find_dependency(cppzmq 4.2.3)
find_dependency(cppzmq 4.2.3)
if(UNIX AND NOT APPLE)
find_dependency(LibUUID)
endif()

View File

@ -3,6 +3,7 @@
PORTNAME= amule
PORTVERSION= 10998
PORTREVISION= 1
CATEGORIES= net-p2p
MASTER_SITES= http://amule.sourceforge.net/tarballs/
PKGNAMESUFFIX= -devel
@ -31,6 +32,7 @@ CONFIGURE_ENV= LEX="${FLEX}" PKG_CONFIG="${PKG_CONFIG}" \
docdir='$${prefix}/${DOCSDIR_REL}'
CPPFLAGS+= -I${LOCALBASE}/include
CXXFLAGS+= `pkgconf --cflags-only-other libcryptopp`
LDFLAGS+= -lpthread -L${LOCALBASE}/lib
OPTIONS_DEFINE= ALC ALCC AMULECMD AMULEDAEMON AMULEGUI CAS DEBUG DOCS ED2K \
@ -109,10 +111,6 @@ XAS_USE= PERL5+=run
.include <bsd.port.options.mk>
.if ${ARCH} == "i386" && ( ${OSVERSION} >= 1000024 || ${CXX:T} == "clang++" )
CPPFLAGS+= -DCRYPTOPP_DISABLE_ASM
.endif
.if ${PORT_OPTIONS:MED2K}
CONFLICTS+= ed2k-hash*
.endif

View File

@ -3,7 +3,7 @@
PORTNAME= amule
PORTVERSION= 2.3.2
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= net-p2p
MASTER_SITES= SF/${PORTNAME}/aMule/${PORTVERSION}
DISTNAME= aMule-${PORTVERSION}
@ -29,6 +29,7 @@ CONFIGURE_ENV= LEX="${FLEX}" PKG_CONFIG="${PKG_CONFIG}" \
docdir='$${prefix}/${DOCSDIR_REL}'
CPPFLAGS+= -I${LOCALBASE}/include
CXXFLAGS+= `pkgconf --cflags-only-other libcryptopp`
LDFLAGS+= -lpthread -L${LOCALBASE}/lib
OPTIONS_DEFINE= ALC ALCC AMULECMD AMULEDAEMON AMULEGUI CAS DEBUG DOCS ED2K \
@ -106,10 +107,6 @@ XAS_USE= PERL5+=run
.include <bsd.port.options.mk>
.if ${ARCH} == "i386"
CPPFLAGS+= -DCRYPTOPP_DISABLE_ASM
.endif
.if ${PORT_OPTIONS:MED2K}
CONFLICTS+= ed2k-hash*
.endif

View File

@ -0,0 +1,16 @@
From 27c13f3e622b8a3eaaa05bb62b0149604bdcc9e8 Mon Sep 17 00:00:00 2001
From: Tommy Jerry Mairo <tommy.mairo@gmail.com>
Date: Wed, 21 Mar 2018 19:56:28 +0100
Subject: [PATCH] Bugfix: API mismatch with crypto++ 6.0.0
--- src/ClientCreditsList.cpp.orig 2016-09-16 07:55:06 UTC
+++ src/ClientCreditsList.cpp
@@ -312,7 +312,7 @@ void CClientCreditsList::InitalizeCrypting()
// calculate and store public key
CryptoPP::RSASSA_PKCS1v15_SHA_Verifier pubkey(*static_cast<CryptoPP::RSASSA_PKCS1v15_SHA_Signer *>(m_pSignkey));
CryptoPP::ArraySink asink(m_abyMyPublicKey, 80);
- pubkey.DEREncode(asink);
+ pubkey.GetMaterial().Save(asink);
m_nMyPublicKeyLen = asink.TotalPutLength();
asink.MessageEnd();
} catch (const CryptoPP::Exception& e) {

View File

@ -1,13 +1,8 @@
# Created by: George Reid <greid@ukug.uk.freebsd.org>
# $FreeBSD$
# Minor version bumps may not be ABI compatible and deskutils/cdcat
# links to the static library, so bump PORTREVISION of dependent
# ports when appropriate.
PORTNAME= cryptopp
PORTVERSION= 5.6.5
PORTREVISION= 5
PORTVERSION= 7.0.0
CATEGORIES= security
MASTER_SITES= http://www.cryptopp.com/
DISTNAME= cryptopp${PORTVERSION:S/.//g}
@ -30,7 +25,7 @@ NO_WRKSUBDIR= yes
CXXFLAGS+= -Wno-deprecated-declarations -fPIC
MAKEFILE= GNUmakefile
ALL_TARGET= static shared
ALL_TARGET= static shared libcryptopp.pc
SOVERSION= ${PORTVERSION:R:R}
PLIST_SUB+= SOVERSION=${SOVERSION} \
@ -61,30 +56,18 @@ THREADS_LDFLAGS= -lpthread
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MSIMD}
. if ${MACHINE_CPU:Msse2}
USES+= compiler:c++14-lang
CXXFLAGS+= -msse2
. else
. if !${MACHINE_CPU:Msse2}
CXXFLAGS+= -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_SSE2
. endif
. if ${MACHINE_CPU:Msse3} && ${MACHINE_CPU:Mssse3}
CXXFLAGS+= -msse3 -mssse3
. else
CXXFLAGS+= -DCRYPTOPP_DISABLE_SSE3
. if !${MACHINE_CPU:Mssse3}
CXXFLAGS+= -DCRYPTOPP_DISABLE_SSSE3
. endif
. if ${MACHINE_CPU:Msse41} && ${MACHINE_CPU:Msse42}
CXXFLAGS+= -msse4.1 -msse4.2
. else
. if !${MACHINE_CPU:Msse41}
CXXFLAGS+= -DCRYPTOPP_DISABLE_SSE4
. endif
.else
CXXFLAGS+= -DCRYPTOPP_DISABLE_ASM
.endif
.include <bsd.port.pre.mk>
.if ${PORT_OPTIONS:MSIMD} && ${MACHINE_CPU:Msse2} && ${CHOSEN_COMPILER_TYPE} == gcc
USE_GCC= yes
CXXFLAGS+= -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_SSE2 \
-DCRYPTOPP_DISABLE_SSSE3 -DCRYPTOPP_DISABLE_SSE4
.endif
pre-configure-FULL_DEBUG-on:
@ -105,6 +88,7 @@ do-install:
${INSTALL_LIB} ${WRKSRC}/libcryptopp.so ${STAGEDIR}${PREFIX}/lib/libcryptopp.so.${PORTVERSION}
${LN} -fs libcryptopp.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libcryptopp.so.${SOVERSION}
${LN} -fs libcryptopp.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libcryptopp.so
${INSTALL_DATA} ${WRKSRC}/libcryptopp.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig
@${MKDIR} ${STAGEDIR}${PREFIX}/include/cryptopp
(for i in `${FIND} ${WRKSRC}/ -name '*.h' \
-and -not -name 'dll.h' \
@ -121,4 +105,4 @@ do-install-TOOLS-on:
${INSTALL_PROGRAM} ${WRKSRC}/cryptest.exe ${STAGEDIR}${PREFIX}/bin/cryptest
${INSTALL_DATA} ${WRKSRC}/TestData/usage.dat ${STAGEDIR}${DATADIR}/TestData
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1480818667
SHA256 (cryptopp565.zip) = a75ef486fe3128008bbb201efee3dcdcffbe791120952910883b26337ec32c34
SIZE (cryptopp565.zip) = 4220843
TIMESTAMP = 1534123149
SHA256 (cryptopp700.zip) = a4bc939910edd3d29fb819a6fc0dfdc293f686fa62326f61c56d72d0a366ceb0
SIZE (cryptopp700.zip) = 7296665

View File

@ -1,40 +1,24 @@
--- GNUmakefile.orig 2016-10-10 23:49:54 UTC
We need to export the CRYPTOPP_DISABLE_ASM flag if cryptopp was not built
with SIMD support. Certain functions prototypes are guarded by this
flag and build failures will arise in other ports if not set appropriately.
--- GNUmakefile.orig 2018-04-08 08:47:12 UTC
+++ GNUmakefile
@@ -41,7 +41,7 @@ SUNCC_511_OR_LATER := $(shell $(CXX) -V
SUNCC_512_OR_LATER := $(shell $(CXX) -V 2>&1 | $(EGREP) -c "CC: (Sun|Studio) .* (5\.1[2-9]|5\.[2-9]|6\.)")
SUNCC_513_OR_LATER := $(shell $(CXX) -V 2>&1 | $(EGREP) -c "CC: (Sun|Studio) .* (5\.1[3-9]|5\.[2-9]|6\.)")
@@ -90,7 +90,7 @@ SUNCC_512_OR_LATER := $(shell echo "$(SUNCC_VERSION)"
SUNCC_513_OR_LATER := $(shell echo "$(SUNCC_VERSION)" | $(GREP) -i -c -E "CC: (Sun|Studio) .* (5\.1[3-9]|5\.[2-9]|6\.)")
# Enable shared object versioning for Linux
-HAS_SOLIB_VERSION := $(IS_LINUX)
+HAS_SOLIB_VERSION := 1
# Fixup SunOS
ifeq ($(IS_SUN),1)
@@ -126,11 +126,6 @@ ifeq ($(IS_X86)$(IS_X32)$(IS_CYGWIN)$(IS
endif
# Guard use of -march=native
-ifeq ($(GCC42_OR_LATER)$(IS_NETBSD),10)
- CXXFLAGS += -march=native
-else ifneq ($(CLANG_COMPILER)$(INTEL_COMPILER),00)
- CXXFLAGS += -march=native
-else
# GCC 3.3 and "unknown option -march="
# Ubuntu GCC 4.1 compiler crash with -march=native
# NetBSD GCC 4.8 compiler and "bad value (native) for -march= switch"
@@ -140,7 +135,6 @@ else
else ifeq ($(SUN_COMPILER)$(IS_X86),01)
CXXFLAGS += -m32
endif # X86/X32/X64
-endif
# Aligned access required for -O3 and above due to vectorization
UNALIGNED_ACCESS := $(shell $(EGREP) -c "^[[:space:]]*//[[:space:]]*\#[[:space:]]*define[[:space:]]*CRYPTOPP_NO_UNALIGNED_DATA_ACCESS" config.h)
@@ -404,7 +398,7 @@ ifeq ($(HAS_SOLIB_VERSION),1)
# Full version suffix for shared library
SOLIB_VERSION_SUFFIX=.$(LIB_MAJOR).$(LIB_MINOR).$(LIB_PATCH)
# Different patchlevels are compatible, minor versions are not
-SOLIB_COMPAT_SUFFIX=.$(LIB_MAJOR).$(LIB_MINOR)
+SOLIB_COMPAT_SUFFIX=.$(LIB_MAJOR)
SOLIB_FLAGS=-Wl,-soname,libcryptopp.so$(SOLIB_COMPAT_SUFFIX)
endif # HAS_SOLIB_VERSION
@@ -957,7 +957,7 @@ libcryptopp.pc:
@echo 'Version: 7.0' >> libcryptopp.pc
@echo 'URL: https://cryptopp.com/' >> libcryptopp.pc
@echo '' >> libcryptopp.pc
- @echo 'Cflags: -I$${includedir}' >> libcryptopp.pc
+ @echo 'Cflags: -I$${includedir} $(findstring -DCRYPTOPP_DISABLE_ASM,$(CXXFLAGS))' >> libcryptopp.pc
@echo 'Libs: -L$${libdir} -lcryptopp' >> libcryptopp.pc
# This recipe prepares the distro files

View File

@ -1,33 +0,0 @@
The definition of CRYPTOPP_BOOL_ALIGN16_ENABLED was incorrect for i386.
For NetBSD, this resulted in the inability to build cryptopp on i386.
On FreeBSD, it built, but deskutils/cdcat choked on it while building on
FreeBSD 10/i386 and FreeBSD 11/i386. (PR: 192199)
--- config.h.orig 2016-10-10 23:49:54 UTC
+++ config.h
@@ -534,12 +534,6 @@ NAMESPACE_END
# endif
#endif
-#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE || CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE)
- #define CRYPTOPP_BOOL_ALIGN16 1
-#else
- #define CRYPTOPP_BOOL_ALIGN16 0
-#endif
-
// how to allocate 16-byte aligned memory (for SSE2)
#if defined(CRYPTOPP_MSVC6PP_OR_LATER)
#define CRYPTOPP_MM_MALLOC_AVAILABLE
@@ -553,6 +547,12 @@ NAMESPACE_END
#define CRYPTOPP_NO_ALIGNED_ALLOC
#endif
+#if CRYPTOPP_BOOL_SSE2_INTRINSICS_AVAILABLE || CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || CRYPTOPP_BOOL_NEON_INTRINSICS_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE) || !defined(CPRYPTO_NO_ALIGNED_ALLOC)
+ #define CRYPTOPP_BOOL_ALIGN16 1
+#else
+ #define CRYPTOPP_BOOL_ALIGN16 0
+#endif
+
// Apple always provides 16-byte aligned, and tells us to use calloc
// http://developer.apple.com/library/mac/documentation/Performance/Conceptual/ManagingMemory/Articles/MemoryAlloc.html

View File

@ -0,0 +1,17 @@
Fix build with SIMD on FreeBSD 10.x
--- cpu.h.orig 2018-04-08 08:47:11 UTC
+++ cpu.h
@@ -614,7 +614,12 @@ inline int GetCacheLineSize()
#define GNU_AS2(x, y) #x ", " #y ";" NEW_LINE
#define GNU_AS3(x, y, z) #x ", " #y ", " #z ";" NEW_LINE
#define GNU_ASL(x) "\n" #x ":" NEW_LINE
+ // clang 5.0.0 and apple clang 9.0.0 don't support numerical backward jumps
+#if (CRYPTOPP_LLVM_CLANG_VERSION >= 30000) || (CRYPTOPP_APPLE_CLANG_VERSION >= 90000)
+ #define GNU_ASJ(x, y, z) ATT_PREFIX ";" NEW_LINE #x " " #y #z ";" NEW_LINE INTEL_PREFIX ";" NEW_LINE
+#else
#define GNU_ASJ(x, y, z) #x " " #y #z ";" NEW_LINE
+#endif
#define AS1(x) GNU_AS1(x)
#define AS2(x, y) GNU_AS2(x, y)
#define AS3(x, y, z) GNU_AS3(x, y, z)

View File

@ -2,12 +2,12 @@ This fixes a warning triggered by testing an unsigned parameter
against 0. The patch solves this by creating a different template
for signed case. (PR: 178827)
--- misc.h.orig 2016-10-10 23:49:54 UTC
--- misc.h.orig 2018-04-08 08:47:11 UTC
+++ misc.h
@@ -529,8 +529,10 @@ inline bool SafeConvert(T1 from, T2 &to)
//! \param value the value to convert
//! \param base the base to use during the conversion
//! \returns the string representation of value in base.
@@ -572,8 +572,10 @@ inline bool SafeConvert(T1 from, T2 &to)
/// \param value the value to convert
/// \param base the base to use during the conversion
/// \returns the string representation of value in base.
+template<bool> struct IsUnsigned {};
+
template <class T>
@ -16,7 +16,7 @@ for signed case. (PR: 178827)
{
// Hack... set the high bit for uppercase.
static const unsigned int HIGH_BIT = (1U << 31);
@@ -541,12 +543,6 @@ std::string IntToString(T value, unsigne
@@ -584,12 +586,6 @@ std::string IntToString(T value, unsigned int base = 1
if (value == 0)
return "0";
@ -29,7 +29,7 @@ for signed case. (PR: 178827)
std::string result;
while (value > 0)
{
@@ -554,11 +550,30 @@ std::string IntToString(T value, unsigne
@@ -597,9 +593,28 @@ std::string IntToString(T value, unsigned int base = 1
result = char((digit < 10 ? '0' : (CH - 10)) + digit) + result;
value /= base;
}
@ -49,14 +49,12 @@ for signed case. (PR: 178827)
if (negate)
result = "-" + result;
return result;
}
+}
+
+template <class T>
+std::string IntToString(T value, unsigned int base = 10)
+{
+ return IntToStringImpl(value, base, IsUnsigned<(static_cast<T>(-1) > 0)>());
+}
+
//! \brief Converts an unsigned value to a string
//! \param value the value to convert
//! \param base the base to use during the conversion
}
/// \brief Converts an unsigned value to a string

View File

@ -0,0 +1,13 @@
Fix build without SIMD on FreeBSD 10.x
--- sse-simd.cpp.orig 2018-04-08 08:47:12 UTC
+++ sse-simd.cpp
@@ -23,7 +23,7 @@
#endif
// Needed by SunCC and MSVC
-#if (CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64)
+#if (CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64) && defined(CRYPTOPP_SSE2_ASM_AVAILABLE)
# include <emmintrin.h>
#endif

View File

@ -1,11 +1,13 @@
%%TOOLS%%bin/cryptest
include/cryptopp/3way.h
include/cryptopp/adler32.h
include/cryptopp/adv-simd.h
include/cryptopp/aes.h
include/cryptopp/algebra.h
include/cryptopp/algparam.h
include/cryptopp/arc4.h
include/cryptopp/argnames.h
include/cryptopp/aria.h
include/cryptopp/asn.h
include/cryptopp/authenc.h
include/cryptopp/base32.h
@ -31,11 +33,13 @@ include/cryptopp/des.h
include/cryptopp/dh.h
include/cryptopp/dh2.h
include/cryptopp/dmac.h
include/cryptopp/drbg.h
include/cryptopp/dsa.h
include/cryptopp/eax.h
include/cryptopp/ec2n.h
include/cryptopp/eccrypto.h
include/cryptopp/ecp.h
include/cryptopp/ecpoint.h
include/cryptopp/elgamal.h
include/cryptopp/emsa2.h
include/cryptopp/eprecomp.h
@ -53,6 +57,7 @@ include/cryptopp/gf2n.h
include/cryptopp/gfpcrypt.h
include/cryptopp/gost.h
include/cryptopp/gzip.h
include/cryptopp/hashfwd.h
include/cryptopp/hex.h
include/cryptopp/hkdf.h
include/cryptopp/hmac.h
@ -62,6 +67,7 @@ include/cryptopp/ida.h
include/cryptopp/idea.h
include/cryptopp/integer.h
include/cryptopp/iterhash.h
include/cryptopp/kalyna.h
include/cryptopp/keccak.h
include/cryptopp/lubyrack.h
include/cryptopp/luc.h
@ -77,6 +83,7 @@ include/cryptopp/modes.h
include/cryptopp/modexppc.h
include/cryptopp/mqueue.h
include/cryptopp/mqv.h
include/cryptopp/naclite.h
include/cryptopp/nbtheory.h
include/cryptopp/network.h
include/cryptopp/nr.h
@ -84,10 +91,13 @@ include/cryptopp/oaep.h
include/cryptopp/oids.h
include/cryptopp/osrng.h
include/cryptopp/ossig.h
include/cryptopp/padlkrng.h
include/cryptopp/panama.h
include/cryptopp/pch.h
include/cryptopp/pkcspad.h
include/cryptopp/poly1305.h
include/cryptopp/polynomi.h
include/cryptopp/ppc-simd.h
include/cryptopp/pssr.h
include/cryptopp/pubkey.h
include/cryptopp/pwdbased.h
@ -105,6 +115,7 @@ include/cryptopp/rsa.h
include/cryptopp/rw.h
include/cryptopp/safer.h
include/cryptopp/salsa.h
include/cryptopp/scrypt.h
include/cryptopp/seal.h
include/cryptopp/secblock.h
include/cryptopp/seckey.h
@ -115,20 +126,27 @@ include/cryptopp/sha.h
include/cryptopp/sha3.h
include/cryptopp/shacal2.h
include/cryptopp/shark.h
include/cryptopp/simon.h
include/cryptopp/simple.h
include/cryptopp/siphash.h
include/cryptopp/skipjack.h
include/cryptopp/sm3.h
include/cryptopp/sm4.h
include/cryptopp/smartptr.h
include/cryptopp/socketft.h
include/cryptopp/sosemanuk.h
include/cryptopp/speck.h
include/cryptopp/square.h
include/cryptopp/stdcpp.h
include/cryptopp/strciphr.h
include/cryptopp/tea.h
include/cryptopp/threefish.h
include/cryptopp/tiger.h
include/cryptopp/trap.h
include/cryptopp/trdlocal.h
include/cryptopp/trunhash.h
include/cryptopp/ttmac.h
include/cryptopp/tweetnacl.h
include/cryptopp/twofish.h
include/cryptopp/validate.h
include/cryptopp/vmac.h
@ -146,5 +164,6 @@ lib/libcryptopp.a
lib/libcryptopp.so
lib/libcryptopp.so.%%SOVERSION%%
lib/libcryptopp.so.%%PORTVERSION%%
libdata/pkgconfig/libcryptopp.pc
%%TOOLS%%%%DATADIR%%/TestData/usage.dat
%%PORTDOCS%%%%DOCSDIR%%/README