diff --git a/devel/cbang/Makefile b/devel/cbang/Makefile index 47dde6ce3bdb..4ac7414c420c 100644 --- a/devel/cbang/Makefile +++ b/devel/cbang/Makefile @@ -1,74 +1,74 @@ PORTNAME= cbang -PORTVERSION= 1.7.0 +PORTVERSION= 1.7.1 CATEGORIES= devel MAINTAINER= thierry@FreeBSD.org COMMENT= C! (cbang) is a library of cross-platform C++ utilities WWW= https://cbang.org/ LICENSE= LGPL21 BUILD_DEPENDS= boost-libs>0:devel/boost-libs LIB_DEPENDS= libv8.so:lang/v8 \ libre2.so:devel/re2 \ liblz4.so:archivers/liblz4 \ libevent.so:devel/libevent \ libexpat.so:textproc/expat2 \ libyaml.so:textproc/libyaml \ libsnappy.so:archivers/snappy \ libsysinfo.so:devel/libsysinfo \ libleveldb.so:databases/leveldb USE_GITHUB= yes GH_ACCOUNT= CauldronDevelopmentLLC -USES= compiler:c++14-lang localbase mysql:client python:test scons \ +USES= compiler:c++17-lang localbase mysql:client python:test scons \ sqlite ssl USE_LDCONFIG= yes OPTIONS_DEFINE= DEBUG DOCS DEBUG_BUILD_DEPENDS= gnulibiberty>0:devel/gnulibiberty DEBUG_LIB_DEPENDS= libbfd.so:devel/libbfd MAKE_ARGS+= cc="${CC}" \ cxx="${CXX}" \ cxxstd="c++17" \ ccflags="${CCFLAGS}" \ cxxflags="${CXXFLAGS}" \ libpath="${LIBPATH}" \ sharedlib=1 \ prefix="${STAGEDIR}${PREFIX}" \ compiler="${CHOSEN_COMPILER_TYPE:C/gcc/gnu/}" \ disable_local="zlib bzip2 lz4 sqlite3 expat libevent re2 libyaml" # With boost in disable_local, libcbang-boost.a is not built # disable_local="zlib bzip2 lz4 sqlite3 expat boost libevent re2 libyaml" MAKE_ENV+= LIBPATH="${LIBPATH}" \ LIBRARY_PATH="${LIBPATH}:${LIBPATH}/mysql" LIBVER= 1.7.0 PLIST_SUB= VER=${LIBVER} TEST_WRKSRC= ${WRKSRC}/tests DO_MAKE_TEST= ${SETENV} ${TEST_ENV} ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${TEST_ARGS} pre-configure: ${REINPLACE_CMD} -e 's|%%PYTHON_CMD%%|${PYTHON_CMD}|' \ ${TEST_WRKSRC}/testHarness post-install: cd ${STAGEDIR}${PREFIX}/lib && \ ${LN} -sf libcbang0.so.${LIBVER} libcbang0.so && \ ${LN} -sf libcbang0.so.${LIBVER} libcbang0.so.1 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libcbang0.so.${LIBVER} # Needed to build CAMotics ${INSTALL_DATA} ${WRKSRC}/include/cbang/config.h \ ${STAGEDIR}${PREFIX}/include/cbang/ ${INSTALL_DATA} ${WRKSRC}/lib/libcbang-boost.a \ ${STAGEDIR}${PREFIX}/lib ${MKDIR} ${STAGEDIR}${DATADIR} cd ${WRKSRC} && ${COPYTREE_SHARE} config ${STAGEDIR}${DATADIR} ${RM} ${STAGEDIR}${DATADIR}/config/cbang/__init__.py.orig do-test: (cd ${TEST_WRKSRC} && ${DO_MAKE_TEST} && ./testHarness) .include diff --git a/devel/cbang/distinfo b/devel/cbang/distinfo index 41b6d6c20c4a..3e503cc02cac 100644 --- a/devel/cbang/distinfo +++ b/devel/cbang/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1664451834 -SHA256 (CauldronDevelopmentLLC-cbang-1.7.0_GH0.tar.gz) = 2f467928f949e27aa28a4355b9c3019a3b3c727f98e75fee88b5524dfdb7c868 -SIZE (CauldronDevelopmentLLC-cbang-1.7.0_GH0.tar.gz) = 4800847 +TIMESTAMP = 1664634579 +SHA256 (CauldronDevelopmentLLC-cbang-1.7.1_GH0.tar.gz) = 7bde42ededfe3294688f6c9ba673d3e10b4b46ba5eea9c3125cc56c4f540448e +SIZE (CauldronDevelopmentLLC-cbang-1.7.1_GH0.tar.gz) = 4801398 diff --git a/devel/cbang/files/patch-src_cbang_openssl_BigNum.h b/devel/cbang/files/patch-src_cbang_openssl_BigNum.h deleted file mode 100644 index e7667d6a6a34..000000000000 --- a/devel/cbang/files/patch-src_cbang_openssl_BigNum.h +++ /dev/null @@ -1,10 +0,0 @@ ---- src/cbang/openssl/BigNum.h.orig 2022-09-17 22:00:36 UTC -+++ src/cbang/openssl/BigNum.h -@@ -48,6 +48,7 @@ namespace cb { - ~BigNum(); - - BIGNUM *get() const {return bn;} -+ BIGNUM *adopt() {deallocate = false; return bn;} - bool isNull() const {return !bn;} - unsigned size() const; - std::string toBinString() const; diff --git a/devel/cbang/files/patch-src_cbang_openssl_KeyContext.cpp b/devel/cbang/files/patch-src_cbang_openssl_KeyContext.cpp deleted file mode 100644 index cb151817d4fb..000000000000 --- a/devel/cbang/files/patch-src_cbang_openssl_KeyContext.cpp +++ /dev/null @@ -1,22 +0,0 @@ ---- src/cbang/openssl/KeyContext.cpp.orig 2022-09-17 22:00:36 UTC -+++ src/cbang/openssl/KeyContext.cpp -@@ -121,8 +121,18 @@ void KeyContext::setRSAPubExp(uint64_t exp) { - BigNum num; - num.set(exp); - -- if (EVP_PKEY_CTX_set1_rsa_keygen_pubexp(ctx, num.get()) <= 0) -+#if OPENSSL_VERSION_NUMBER < 0x3000000fL -+ int ret = EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, num.get()); -+#else -+ int ret = EVP_PKEY_CTX_set1_rsa_keygen_pubexp(ctx, num.get()); -+#endif -+ -+ if (ret <= 0) - THROW("Failed to set RSA public exponent: " << SSL::getErrorStr()); -+ -+#if OPENSSL_VERSION_NUMBER < 0x3000000fL -+ num.adopt(); // Don't deallocate -+#endif - } - - diff --git a/devel/cbang/files/patch-src_cbang_openssl_KeyPair.cpp b/devel/cbang/files/patch-src_cbang_openssl_KeyPair.cpp deleted file mode 100644 index 3475015186bd..000000000000 --- a/devel/cbang/files/patch-src_cbang_openssl_KeyPair.cpp +++ /dev/null @@ -1,142 +0,0 @@ ---- src/cbang/openssl/KeyPair.cpp.orig 2022-09-17 22:00:36 UTC -+++ src/cbang/openssl/KeyPair.cpp -@@ -54,7 +54,10 @@ - #include - #include - #include -+ -+#if 0x3000000fL <= OPENSSL_VERSION_NUMBER - #include -+#endif - - #include - -@@ -127,21 +130,44 @@ BigNum KeyPair::getParam(const char *id) const { - - - BigNum KeyPair::getParam(const char *id) const { -+#if 0x3000000fL <= OPENSSL_VERSION_NUMBER - BIGNUM *param = 0; - EVP_PKEY_get_bn_param(key, id, ¶m); - return BigNum(param, true); -+ -+#else -+ THROW(__func__ << "() not supported with OpenSSL < v3.0"); -+#endif - } - - - BigNum KeyPair::getRSA_E() const { - if (!isRSA()) THROW("Not an RSA key"); -+ -+#if 0x3000000fL <= OPENSSL_VERSION_NUMBER - return getParam(OSSL_PKEY_PARAM_RSA_E); -+ -+#else -+ const BIGNUM *e; -+ RSA_get0_key(EVP_PKEY_get0_RSA(key), 0, &e, 0); -+ if (!e) THROW("RSA E not set"); -+ return BigNum(e); -+#endif - } - - - BigNum KeyPair::getRSA_N() const { - if (!isRSA()) THROW("Not an RSA key"); -+ -+#if 0x3000000fL <= OPENSSL_VERSION_NUMBER - return getParam(OSSL_PKEY_PARAM_RSA_N); -+ -+#else -+ const BIGNUM *n; -+ RSA_get0_key(EVP_PKEY_get0_RSA(key), &n, 0, 0); -+ if (!n) THROW("RSA N not set"); -+ return BigNum(n); -+#endif - } - - -@@ -154,14 +180,36 @@ BigNum KeyPair::getPublic() const { - case EVP_PKEY_EC: return EC_KEY_get0_public_key(key->pkey.ec); - } - --#else // OPENSSL_VERSION_NUMBER < 0x1010000fL -+#elif OPENSSL_VERSION_NUMBER < 0x3000000fL -+ const BIGNUM *n = 0; -+ - switch (EVP_PKEY_base_id(key)) { -+ case EVP_PKEY_RSA: RSA_get0_key(EVP_PKEY_get0_RSA(key), 0, &n, 0); return n; -+ case EVP_PKEY_DSA: DSA_get0_key(EVP_PKEY_get0_DSA(key), &n, 0); return n; -+ case EVP_PKEY_DH: DH_get0_key(EVP_PKEY_get0_DH(key), &n, 0); return n; -+ case EVP_PKEY_EC: { -+ const EC_KEY *ec = EVP_PKEY_get0_EC_KEY(key); -+ const EC_POINT *pt = EC_KEY_get0_public_key(ec); -+ const EC_GROUP *group = EC_KEY_get0_group(ec); -+ point_conversion_form_t form = EC_KEY_get_conv_form(ec); -+ -+ if (pt && group) { -+ BIGNUM *n = BN_new(); -+ EC_POINT_point2bn(group, pt, form, n, 0); -+ return BigNum(n, true); -+ } -+ return n; -+ } -+ } -+ -+#else -+ switch (EVP_PKEY_base_id(key)) { - case EVP_PKEY_RSA: return getParam(OSSL_PKEY_PARAM_RSA_E); - case EVP_PKEY_DSA: - case EVP_PKEY_DH: return getParam(OSSL_PKEY_PARAM_PUB_KEY); - case EVP_PKEY_EC: break; // Cannot get EC pub key as a BigNum - } --#endif // OPENSSL_VERSION_NUMBER < 0x1010000fL -+#endif - - THROW("Invalid key type"); - } -@@ -176,14 +224,24 @@ BigNum KeyPair::getPrivate() const { - case EVP_PKEY_EC: return EC_KEY_get0_private_key(key->pkey.ec); - } - --#else // OPENSSL_VERSION_NUMBER < 0x1010000fL -+#elif OPENSSL_VERSION_NUMBER < 0x3000000fL -+ const BIGNUM *n = 0; -+ - switch (EVP_PKEY_base_id(key)) { -+ case EVP_PKEY_RSA: RSA_get0_key(EVP_PKEY_get0_RSA(key), 0, 0, &n); return n; -+ case EVP_PKEY_DSA: DSA_get0_key(EVP_PKEY_get0_DSA(key), 0, &n); return n; -+ case EVP_PKEY_DH: DH_get0_key(EVP_PKEY_get0_DH(key), 0, &n); return n; -+ case EVP_PKEY_EC: return EC_KEY_get0_private_key(EVP_PKEY_get0_EC_KEY(key)); -+ } -+ -+#else -+ switch (EVP_PKEY_base_id(key)) { - case EVP_PKEY_RSA: return getParam(OSSL_PKEY_PARAM_RSA_D); - case EVP_PKEY_DSA: - case EVP_PKEY_DH: - case EVP_PKEY_EC: return getParam(OSSL_PKEY_PARAM_PRIV_KEY); - } --#endif // OPENSSL_VERSION_NUMBER < 0x1010000fL -+#endif - - THROW("Invalid key type"); - } -@@ -197,8 +255,15 @@ bool KeyPair::match(const KeyPair &o) const { - - - bool KeyPair::match(const KeyPair &o) const { -- switch (EVP_PKEY_eq(key, o.key)) { -- case 0: case -1: return false; -+#if 0x3000000fL <= OPENSSL_VERSION_NUMBER -+ int ret = EVP_PKEY_eq(key, o.key); -+ if (ret == -1) ret = 0; -+#else -+ int ret = EVP_PKEY_cmp(key, o.key); -+#endif -+ -+ switch (ret) { -+ case 0: return false; - case 1: return true; - default: THROW("Error comparing keys: " << SSL::getErrorStr()); - }