Skip to content

Commit

Permalink
devel/poco: Update to 1.12.4
Browse files Browse the repository at this point in the history
  • Loading branch information
HenryHu authored and Zirias committed Jul 16, 2023
1 parent 36ca9e3 commit bcfeb24
Show file tree
Hide file tree
Showing 5 changed files with 449 additions and 288 deletions.
82 changes: 61 additions & 21 deletions devel/poco/Makefile
@@ -1,5 +1,5 @@
PORTNAME= poco
DISTVERSION= 1.10.1
DISTVERSION= 1.12.4
DISTVERSIONSUFFIX= -all
CATEGORIES= devel net
MASTER_SITES= https://pocoproject.org/releases/${PORTNAME}-${PORTVERSION}/
Expand All @@ -11,7 +11,7 @@ WWW= https://pocoproject.org/
LICENSE= BSL
LICENSE_FILE= ${WRKSRC}/LICENSE

LIB_DEPENDS= libpcre.so:devel/pcre \
LIB_DEPENDS= libpcre2-8.so:devel/pcre2 \
libexpat.so:textproc/expat2

USES= cmake compiler:c++14-lang cpe localbase pkgconfig tar:bz2
Expand All @@ -22,38 +22,70 @@ CONFLICTS= poco-ssl
CPE_VENDOR= pocoproject

CMAKE_ARGS= -DPOCO_UNBUNDLED:BOOL=ON
SHLIB_MAJOR= 71
SHLIB_MAJOR= 94
PLIST_SUB= SHLIB_MAJOR=${SHLIB_MAJOR}

OPTIONS_DEFINE= MYSQL REDIS SQLITE SSL TEST
OPTIONS_DEFINE= ACTIVERECORD ENCODINGS JSON JWT MONGODB PAGECOMPILER \
PROMETHEUS REDIS SSL TEST XML ZIP
OPTIONS_RADIO= ODBC
OPTIONS_RADIO_ODBC= IODBC UNIXODBC
OPTIONS_DEFAULT= MYSQL REDIS SQLITE SSL
OPTIONS_GROUP= DB
OPTIONS_GROUP_DB= MYSQL PGSQL SQLITE
OPTIONS_DEFAULT= ACTIVERECORD ENCODINGS JSON JWT MYSQL MONGODB \
PAGECOMPILER PGSQL PROMETHEUS REDIS SQLITE SSL \
XML ZIP
OPTIONS_SUB= yes

# Database support
DB_DESC= Database support
MYSQL_USES= mysql
MYSQL_CMAKE_OFF= -DENABLE_DATA_MYSQL:BOOL=OFF
IODBC_LIB_DEPENDS= libiodbc.so:databases/libiodbc
IODBC_CMAKE_ON= -DODBC_INCLUDE_DIRECTORIES:PATH=${LOCALBASE}/include/libiodbc \
-DODBC_LIBRARIES:FILEPATH=${LOCALBASE}/lib/libiodbc.so
PGSQL_USES= pgsql
PGSQL_CMAKE_OFF= -DENABLE_DATA_POSTGRESQL:BOOL=OFF
SQLITE_USES= sqlite
SQLITE_CMAKE_OFF= -DENABLE_DATA_SQLITE:BOOL=OFF
SSL_USES= ssl
SSL_CMAKE_OFF= -DENABLE_CRYPTO:BOOL=OFF \
-DENABLE_NETSSL:BOOL=OFF
SSL_VARS= BROKEN_SSL="openssl30 openssl31" \
BROKEN_SSL_REASON="Do not build with OpenSSL 3.0 and later"
IODBC_LIB_DEPENDS= libiodbc.so:databases/libiodbc
IODBC_CMAKE_ON= -DODBC_INCLUDE_DIR:PATH=${LOCALBASE}/include/libiodbc \
-DODBC_LIBRARIES:FILEPATH=${LOCALBASE}/lib/libiodbc.so
UNIXODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC
UNIXODBC_CMAKE_ON= -DODBC_INCLUDE_DIRECTORIES:PATH=${LOCALBASE}/include \
UNIXODBC_CMAKE_ON= -DODBC_INCLUDE_DIR:PATH=${LOCALBASE}/include \
-DODBC_LIBRARIES:FILEPATH=${LOCALBASE}/lib/libodbc.so

# Key-value store support
MONGODB_DESC= Enable MongoDB support
MONGODB_CMAKE_OFF= -DENABLE_MONGODB:BOOL=OFF
REDIS_CMAKE_OFF= -DENABLE_REDIS:BOOL=OFF

# Components
ACTIVERECORD_IMPLIES= XML
ACTIVERECORD_CMAKE_OFF= -DENABLE_ACTIVERECORD:BOOL=OFF \
-DENABLE_ACTIVERECORD_COMPILER:BOOL=OFF
ACTIVERECORD_DESC= Enable ActiveRecord ORM and compiler
ENCODINGS_CMAKE_OFF= -DENABLE_ENCODINGS:BOOL=OFF
ENCODINGS_DESC= Enable Encodings component
JSON_CMAKE_OFF= -DENABLE_JSON:BOOL=OFF
JWT_CMAKE_OFF= -DENABLE_JWT:BOOL=OFF
JWT_DESC= Enable JWT (JSON Web Token) component
JWT_IMPLIES= JSON SSL
PAGECOMPILER_CMAKE_OFF= -DENABLE_PAGECOMPILER:BOOL=OFF \
-DENABLE_PAGECOMPILER_FILE2PAGE:BOOL=OFF
PAGECOMPILER_DESC= Enable PageCompiler and File2Page
PROMETHEUS_CMAKE_OFF= -DENABLE_PROMETHEUS:BOOL=OFF
PROMETHEUS_DESC= Enable Prometheus component
SSL_USES= ssl
SSL_CMAKE_OFF= -DENABLE_CRYPTO:BOOL=OFF \
-DENABLE_NETSSL:BOOL=OFF \
-DENABLE_JWT:BOOL=OFF
TEST_CMAKE_ON= -DENABLE_TESTS:BOOL=ON
TEST_IMPLIES= SQLITE SSL
TEST_IMPLIES= JSON SQLITE SSL XML
TEST_TEST_TARGET= test
REDIS_CMAKE_OFF= -DENABLE_REDIS:BOOL=OFF
XML_CMAKE_OFF= -DENABLE_XML:BOOL=OFF
ZIP_CMAKE_OFF= -DENABLE_ZIP:BOOL=OFF
ZIP_DESC= Enable Zip support

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MMYSQL} || ${PORT_OPTIONS:MSQLITE} || ${PORT_OPTIONS:MIODBC} || ${PORT_OPTIONS:MUNIXODBC}
.if ${PORT_OPTIONS:MACTIVERECORD} || ${PORT_OPTIONS:MMYSQL} || ${PORT_OPTIONS:MPGSQL} || ${PORT_OPTIONS:MSQLITE} || ${PORT_OPTIONS:MIODBC} || ${PORT_OPTIONS:MUNIXODBC}
PLIST_SUB+= DATA=""
.else
PLIST_SUB+= DATA="@comment "
Expand All @@ -66,11 +98,19 @@ CMAKE_ARGS+= -DENABLE_DATA_ODBC:BOOL=OFF
PLIST_SUB+= ODBC="@comment "
.endif

.for opt in ${_ALL_OPTIONS}
.if !${OPTIONS_DEFINE:M${opt}}
PLIST_SUB+= ${opt}="@comment "
.endif
.endfor

post-patch:
@${REINPLACE_CMD} -e \
's|-D_XOPEN_SOURCE=500 || ; \
s|_EPOLL|_POLL| ; \
s|CMAKE_DEBUG_POSTFIX "d"|CMAKE_DEBUG_POSTFIX ""| ; \
s|dl rt|rt|' ${WRKSRC}/cmake/DefinePlatformSpecifc.cmake
's|CMAKE_DEBUG_POSTFIX "d"|CMAKE_DEBUG_POSTFIX ""|' \
${WRKSRC}/cmake/DefinePlatformSpecifc.cmake

# Avoid conflict with archivers/arc
post-install-ACTIVERECORD-on:
@${MV} ${STAGEDIR}${PREFIX}/bin/arc ${STAGEDIR}${PREFIX}/bin/arc-poco

.include <bsd.port.mk>
6 changes: 3 additions & 3 deletions devel/poco/distinfo
@@ -1,3 +1,3 @@
TIMESTAMP = 1616964872
SHA256 (poco-1.10.1-all.tar.bz2) = 2cde4b50778013ab3b7a522aa59bccaa7e85a8ccfc654a354c4d9611b6ce1758
SIZE (poco-1.10.1-all.tar.bz2) = 5313561
TIMESTAMP = 1688499287
SHA256 (poco-1.12.4-all.tar.bz2) = 4e6ccc0df904596478414ef56a992cf885eb4b0ee695b23d307eb2ff91c36626
SIZE (poco-1.12.4-all.tar.bz2) = 5990710
10 changes: 10 additions & 0 deletions devel/poco/files/patch-Crypto_src_OpenSSLInitializer.cpp
@@ -0,0 +1,10 @@
--- Crypto/src/OpenSSLInitializer.cpp.orig 2023-07-04 22:23:04 UTC
+++ Crypto/src/OpenSSLInitializer.cpp
@@ -137,7 +137,6 @@ void OpenSSLInitializer::initialize()
if (!_legacyProvider)
{
_legacyProvider = OSSL_PROVIDER_load(NULL, "legacy");
- if (!_legacyProvider) throw CryptoException("Failed to load OpenSSL legacy provider");
}
#endif
}
49 changes: 49 additions & 0 deletions devel/poco/files/patch-Foundation_src_Thread__POSIX.cpp
@@ -0,0 +1,49 @@
--- Foundation/src/Thread_POSIX.cpp.orig 2022-10-31 17:44:32 UTC
+++ Foundation/src/Thread_POSIX.cpp
@@ -19,6 +19,13 @@
#include "Poco/Timespan.h"
#include "Poco/Timestamp.h"
#include <signal.h>
+
+#if POCO_OS == POCO_OS_FREE_BSD
+# include <sys/thr.h>
+# include <pthread_np.h>
+# include <osreldate.h>
+#endif
+
#if defined(__sun) && defined(__SVR4)
# if !defined(__EXTENSIONS__)
# define __EXTENSIONS__
@@ -65,7 +72,10 @@ void setThreadName(pthread_t thread, const std::string
namespace {
void setThreadName(pthread_t thread, const std::string& threadName)
{
-#if (POCO_OS == POCO_OS_MAC_OS_X)
+#if POCO_OS == POCO_OS_FREE_BSD && __FreeBSD_version < 1300000
+ pthread_set_name_np(pthread_self(), threadName.c_str());
+ return;
+#elif (POCO_OS == POCO_OS_MAC_OS_X)
pthread_setname_np(threadName.c_str()); // __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2)
#else
if (pthread_setname_np(thread, threadName.c_str()) == ERANGE && threadName.size() > 15)
@@ -273,11 +283,17 @@ long ThreadImpl::currentOsTidImpl()
long ThreadImpl::currentOsTidImpl()
{
#if POCO_OS == POCO_OS_LINUX
- return ::syscall(SYS_gettid);
+ return ::syscall(SYS_gettid);
#elif POCO_OS == POCO_OS_MAC_OS_X
- return ::pthread_mach_thread_np(::pthread_self());
+ return ::pthread_mach_thread_np(::pthread_self());
+#elif POCO_OS == POCO_OS_FREE_BSD
+ long id;
+ if(thr_self(&id) < 0) {
+ return 0;
+ }
+ return id;
#else
- return ::pthread_self();
+ return ::pthread_self();
#endif
}

0 comments on commit bcfeb24

Please sign in to comment.