diff --git a/science/orthanc/Makefile b/science/orthanc/Makefile index b0cd900fab01..e9d47eca5359 100644 --- a/science/orthanc/Makefile +++ b/science/orthanc/Makefile @@ -1,63 +1,62 @@ PORTNAME= orthanc -DISTVERSION= 1.12.3 -PORTREVISION= 11 +DISTVERSION= 1.12.6 CATEGORIES= science MASTER_SITES= https://orthanc.uclouvain.be/downloads/sources/orthanc/ DISTNAME= Orthanc-${PORTVERSION} MAINTAINER= maintainer.freebsd@xpoundit.com COMMENT= Lightweight DICOM server for healthcare and medical research WWW= https://www.orthanc-server.com/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING -BROKEN= fails to build with boost-1.86+ - BUILD_DEPENDS= protoc:devel/protobuf LIB_DEPENDS= libboost_atomic.so:devel/boost-libs \ libcivetweb.so:www/civetweb \ libcurl.so:ftp/curl \ libdcmtkcharls.so:graphics/dcmtk \ libgtest.so:devel/googletest \ libicuuc.so:devel/icu \ libjsoncpp.so:devel/jsoncpp \ libpng16.so:graphics/png \ libprotobuf.so:devel/protobuf \ libpugixml.so:textproc/pugixml \ libtiff.so:graphics/tiff \ - libuuid.so:misc/e2fsprogs-libuuid \ + libuuid.so:misc/e2fsprogs-libuuid USES= cmake gnome iconv jpeg lua python:build sqlite ssl USE_GNOME= libxml2 USE_LDCONFIG= yes USE_RC_SUBR= orthanc +CMAKE_ARGS= -DDCMTK_DICTIONARY_DIR:STRING=/usr/local/share/dcmtk-3.6.9 CMAKE_ON= USE_SYSTEM_BOOST USE_SYSTEM_CIVETWEB USE_SYSTEM_DCMTK \ USE_SYSTEM_GOOGLE_TEST USE_SYSTEM_JSONCPP USE_SYSTEM_LIBICONV \ USE_SYSTEM_LIBJPEG USE_SYSTEM_LIBPNG USE_SYSTEM_LUA \ USE_SYSTEM_OPENSSL USE_SYSTEM_PUGIXML USE_SYSTEM_SQLITE \ USE_SYSTEM_UUID USE_SYSTEM_ZLIB CMAKE_OFF= BUILD_CONNECTIVITY_CHECKS UNIT_TESTS_WITH_HTTP_CONNEXIONS +# Keep in sync with graphics/dcmtk version CMAKE_SOURCE_PATH= ${WRKSRC}/OrthancServer CFLAGS+= -DNDEBUG CXXFLAGS+= -DNDEBUG WRKSRC= ${WRKDIR}/Orthanc-${PORTVERSION} USERS= orthanc GROUPS= orthanc PLIST_SUB+= DISTVERSION=${DISTVERSION} post-install: ${MKDIR} ${STAGEDIR}/var/db/orthanc/db/db-v5 ${MKDIR} ${STAGEDIR}${DATADIR}/plugins ${MKDIR} ${STAGEDIR}${ETCDIR} ${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${CMAKE_SOURCE_PATH}/Resources/Configuration.json ${CP} ${CMAKE_SOURCE_PATH}/Resources/Configuration.json ${STAGEDIR}${ETCDIR}/orthanc.json.sample .include diff --git a/science/orthanc/distinfo b/science/orthanc/distinfo index 66007b6a7195..2498469be620 100644 --- a/science/orthanc/distinfo +++ b/science/orthanc/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1714974143 -SHA256 (Orthanc-1.12.3.tar.gz) = 64b7ed7506a60e52f52121efb14961485b710fd092ab73d6c550fa25a01f516b -SIZE (Orthanc-1.12.3.tar.gz) = 2043176 +TIMESTAMP = 1739138261 +SHA256 (Orthanc-1.12.6.tar.gz) = aa5b6d6309965ed360625b5572e79068e6c501b603163e330629f2f0a56a0fe9 +SIZE (Orthanc-1.12.6.tar.gz) = 2089779 diff --git a/science/orthanc/files/patch-OrthancFramework_Resources_CMake_CivetwebConfiguration.cmake b/science/orthanc/files/patch-OrthancFramework_Resources_CMake_CivetwebConfiguration.cmake index e0ac6558feb7..a25fe8a1f1e2 100644 --- a/science/orthanc/files/patch-OrthancFramework_Resources_CMake_CivetwebConfiguration.cmake +++ b/science/orthanc/files/patch-OrthancFramework_Resources_CMake_CivetwebConfiguration.cmake @@ -1,64 +1,64 @@ ---- OrthancFramework/Resources/CMake/CivetwebConfiguration.cmake.orig 2023-07-04 14:39:31 UTC +--- OrthancFramework/Resources/CMake/CivetwebConfiguration.cmake.orig 2024-12-17 16:33:40 UTC +++ OrthancFramework/Resources/CMake/CivetwebConfiguration.cmake -@@ -110,32 +110,38 @@ else() +@@ -111,32 +111,38 @@ else() cmake_reset_check_state() set(CMAKE_REQUIRED_LIBRARIES dl pthread) - CHECK_LIBRARY_EXISTS(civetweb mg_start "" HAVE_CIVETWEB_LIB) - if (NOT HAVE_CIVETWEB_LIB) - message(FATAL_ERROR "Please install the libcivetweb-dev package") - endif() - link_libraries(civetweb) + find_library(CIVETWEB_LIB NAMES civetweb PATHS + /usr/lib + /usr/local/lib + ) - # Check whether the system distribution of civetweb contains the - # patch "../Patches/civetweb-1.13.patch" that allows to disable - # keep-alive on selected HTTP connections. This is useful to speed - # up multipart transfers, as encountered in DICOMweb. - CHECK_LIBRARY_EXISTS(civetweb mg_disable_keep_alive "" CIVETWEB_HAS_DISABLE_KEEP_ALIVE_1) # From "../Patches/civetweb-1.13.patch" - CHECK_LIBRARY_EXISTS(civetweb mg_disable_connection_keep_alive "" CIVETWEB_HAS_DISABLE_KEEP_ALIVE_2) # From civetweb >= 1.14 - if (CIVETWEB_HAS_DISABLE_KEEP_ALIVE_1 OR - CIVETWEB_HAS_DISABLE_KEEP_ALIVE_2) - add_definitions( - -DCIVETWEB_HAS_DISABLE_KEEP_ALIVE=1 - -DCIVETWEB_HAS_WEBDAV_WRITING=1 - ) - message("Performance: Your system-wide distribution of civetweb is configured for best performance") + if (CIVETWEB_LIB) + CHECK_LIBRARY_EXISTS(${CIVETWEB_LIB} mg_start "" HAVE_CIVETWEB_LIB) + if (NOT HAVE_CIVETWEB_LIB) + message(FATAL_ERROR "Unable to use mg_start from civetweb library") + endif() + + CHECK_LIBRARY_EXISTS(${CIVETWEB_LIB} mg_disable_connection_keep_alive "" CIVETWEB_HAS_DISABLE_KEEP_ALIVE) + if (CIVETWEB_HAS_DISABLE_KEEP_ALIVE) + add_definitions( + -DCIVETWEB_HAS_DISABLE_KEEP_ALIVE=1 + -DCIVETWEB_HAS_WEBDAV_WRITING=1 + ) + message("Performance: Your system-wide distribution of civetweb is configured for best performance") + else() + message(WARNING "Performance: Your system-wide distribution of civetweb does not feature the mg_disable_connection_keep_alive() function, and WebDAV will only be available for read-only access") + add_definitions( + -DCIVETWEB_HAS_DISABLE_KEEP_ALIVE=0 + -DCIVETWEB_HAS_WEBDAV_WRITING=0 + ) + endif() + + get_filename_component(CIVETWEB_LIB_PATH ${CIVETWEB_LIB} DIRECTORY) + link_directories(${CIVETWEB_LIB_PATH}) + link_libraries(civetweb) else() - message(WARNING "Performance: Your system-wide distribution of civetweb does not feature the mg_disable_keep_alive() function, and WebDAV will only be available for read-only access") - add_definitions( - -DCIVETWEB_HAS_DISABLE_KEEP_ALIVE=0 - -DCIVETWEB_HAS_WEBDAV_WRITING=0 - ) + message(FATAL_ERROR "Unable to find the civetweb library") endif() unset(CMAKE_REQUIRED_LIBRARIES) # This reset must be after "CHECK_LIBRARY_EXISTS" diff --git a/science/orthanc/files/patch-OrthancFramework_Resources_CMake_ProtobufConfiguration.cmake b/science/orthanc/files/patch-OrthancFramework_Resources_CMake_ProtobufConfiguration.cmake index e6d9c8ff88cf..b536e78062a6 100644 --- a/science/orthanc/files/patch-OrthancFramework_Resources_CMake_ProtobufConfiguration.cmake +++ b/science/orthanc/files/patch-OrthancFramework_Resources_CMake_ProtobufConfiguration.cmake @@ -1,37 +1,37 @@ ---- OrthancFramework/Resources/CMake/ProtobufConfiguration.cmake.orig 2023-12-05 11:17:50 UTC +--- OrthancFramework/Resources/CMake/ProtobufConfiguration.cmake.orig 2024-12-17 16:33:40 UTC +++ OrthancFramework/Resources/CMake/ProtobufConfiguration.cmake -@@ -64,22 +64,26 @@ else() +@@ -65,22 +65,26 @@ else() message(FATAL_ERROR "Please install the libprotobuf-dev package") endif() - set(CMAKE_REQUIRED_LIBRARIES "protobuf") + if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") + find_package(Protobuf REQUIRED) + else() + set(CMAKE_REQUIRED_LIBRARIES "protobuf") - include(CheckCXXSourceCompiles) - check_cxx_source_compiles( - " + include(CheckCXXSourceCompiles) + check_cxx_source_compiles( + " #include int main() { google::protobuf::FieldDescriptor::TypeName(google::protobuf::FieldDescriptor::TYPE_FLOAT); } " HAVE_PROTOBUF_LIB) - if (NOT HAVE_PROTOBUF_LIB) - message(FATAL_ERROR "Cannot find the protobuf library") + if (NOT HAVE_PROTOBUF_LIB) + message(FATAL_ERROR "Cannot find the protobuf library") + endif() + + unset(CMAKE_REQUIRED_LIBRARIES) endif() - - unset(CMAKE_REQUIRED_LIBRARIES) link_libraries(protobuf) endif() diff --git a/science/orthanc/files/patch-OrthancFramework_Sources_Images_JpegWriter.cpp b/science/orthanc/files/patch-OrthancFramework_Sources_Images_JpegWriter.cpp index 83ca26cff878..59b845085092 100644 --- a/science/orthanc/files/patch-OrthancFramework_Sources_Images_JpegWriter.cpp +++ b/science/orthanc/files/patch-OrthancFramework_Sources_Images_JpegWriter.cpp @@ -1,11 +1,11 @@ ---- OrthancFramework/Sources/Images/JpegWriter.cpp.orig 2024-08-01 21:59:25 UTC +--- OrthancFramework/Sources/Images/JpegWriter.cpp.orig 2024-12-17 16:33:40 UTC +++ OrthancFramework/Sources/Images/JpegWriter.cpp -@@ -177,7 +177,7 @@ namespace Orthanc - Internals::JpegErrorManager jerr; - - unsigned char* data = NULL; +@@ -187,7 +187,7 @@ namespace Orthanc + **/ + unsigned long size; + #else - size_t size; + unsigned long size; + #endif if (setjmp(jerr.GetJumpBuffer())) - { diff --git a/science/orthanc/files/patch-OrthancFramework_Sources_OrthancFramework.h b/science/orthanc/files/patch-OrthancFramework_Sources_OrthancFramework.h index f0a29d1d0fd2..7e673f45c092 100644 --- a/science/orthanc/files/patch-OrthancFramework_Sources_OrthancFramework.h +++ b/science/orthanc/files/patch-OrthancFramework_Sources_OrthancFramework.h @@ -1,10 +1,10 @@ ---- OrthancFramework/Sources/OrthancFramework.h.orig 2022-05-09 09:19:44 UTC +--- OrthancFramework/Sources/OrthancFramework.h.orig 2024-12-17 16:33:40 UTC +++ OrthancFramework/Sources/OrthancFramework.h -@@ -70,6 +70,7 @@ +@@ -71,6 +71,7 @@ #include +#include namespace Orthanc { diff --git a/science/orthanc/files/patch-OrthancFramework_Sources_SystemToolbox.cpp b/science/orthanc/files/patch-OrthancFramework_Sources_SystemToolbox.cpp deleted file mode 100644 index 3c60deb80e8b..000000000000 --- a/science/orthanc/files/patch-OrthancFramework_Sources_SystemToolbox.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- OrthancFramework/Sources/SystemToolbox.cpp.orig 2024-01-31 11:33:17 UTC -+++ OrthancFramework/Sources/SystemToolbox.cpp -@@ -774,7 +774,7 @@ namespace Orthanc - - MimeType SystemToolbox::AutodetectMimeType(const std::string& path) - { -- std::string extension = boost::filesystem::extension(path); -+ std::string extension = boost::filesystem::path(path).extension().string(); - Toolbox::ToLowerCase(extension); - - // http://en.wikipedia.org/wiki/Mime_types diff --git a/science/orthanc/files/patch-OrthancServer_Plugins_Engine_PluginsManager.cpp b/science/orthanc/files/patch-OrthancServer_Plugins_Engine_PluginsManager.cpp deleted file mode 100644 index 0a4f4176580d..000000000000 --- a/science/orthanc/files/patch-OrthancServer_Plugins_Engine_PluginsManager.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- OrthancServer/Plugins/Engine/PluginsManager.cpp.orig 2024-01-31 11:33:17 UTC -+++ OrthancServer/Plugins/Engine/PluginsManager.cpp -@@ -295,7 +295,7 @@ namespace Orthanc - } - else - { -- std::string extension = boost::filesystem::extension(it->path()); -+ std::string extension = it->path().extension().string(); - Toolbox::ToLowerCase(extension); - - if (extension == PLUGIN_EXTENSION) diff --git a/science/orthanc/files/patch-OrthancServer_Plugins_Samples_ModalityWorklists_Plugin.cpp b/science/orthanc/files/patch-OrthancServer_Plugins_Samples_ModalityWorklists_Plugin.cpp deleted file mode 100644 index ef8920eeef39..000000000000 --- a/science/orthanc/files/patch-OrthancServer_Plugins_Samples_ModalityWorklists_Plugin.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- OrthancServer/Plugins/Samples/ModalityWorklists/Plugin.cpp.orig 2024-01-31 11:33:17 UTC -+++ OrthancServer/Plugins/Samples/ModalityWorklists/Plugin.cpp -@@ -164,7 +164,7 @@ OrthancPluginErrorCode Callback(OrthancPluginWorklistA - if (type == fs::regular_file || - type == fs::reparse_file) // cf. BitBucket issue #11 - { -- std::string extension = fs::extension(it->path()); -+ std::string extension = it->path().extension().string(); - std::transform(extension.begin(), extension.end(), extension.begin(), tolower); // Convert to lowercase - - if (extension == ".wl") diff --git a/science/orthanc/files/patch-OrthancServer_Resources_Configuration.json b/science/orthanc/files/patch-OrthancServer_Resources_Configuration.json index 73c17f35620f..f6b4af632e2e 100644 --- a/science/orthanc/files/patch-OrthancServer_Resources_Configuration.json +++ b/science/orthanc/files/patch-OrthancServer_Resources_Configuration.json @@ -1,25 +1,25 @@ ---- OrthancServer/Resources/Configuration.json.orig 2023-07-04 14:39:31 UTC +--- OrthancServer/Resources/Configuration.json.orig 2024-12-17 16:33:40 UTC +++ OrthancServer/Resources/Configuration.json @@ -15,12 +15,12 @@ // Path to the directory that holds the heavyweight files (i.e. the // raw DICOM instances). Backslashes must be either escaped by // doubling them, or replaced by forward slashes "/". - "StorageDirectory" : "OrthancStorage", + "StorageDirectory" : "/var/db/orthanc/db-v5", // Path to the directory that holds the SQLite index (if unset, the // value of StorageDirectory is used). This index could be stored on // a RAM-drive or a SSD device for performance reasons. - "IndexDirectory" : "OrthancStorage", + "IndexDirectory" : "/var/db/orthanc/db-v5", // Path to the directory where Orthanc stores its large temporary // files. The content of this folder can be safely deleted once -@@ -83,6 +83,7 @@ +@@ -85,6 +85,7 @@ // find shared libraries. Backslashes must be either escaped by // doubling them, or replaced by forward slashes "/". "Plugins" : [ + "%%PREFIX%%/share/orthanc/plugins/" ], // Maximum number of processing jobs that are simultaneously running diff --git a/science/orthanc/files/patch-OrthancServer_Sources_OrthancConfiguration.cpp b/science/orthanc/files/patch-OrthancServer_Sources_OrthancConfiguration.cpp deleted file mode 100644 index 54696a0f7885..000000000000 --- a/science/orthanc/files/patch-OrthancServer_Sources_OrthancConfiguration.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- OrthancServer/Sources/OrthancConfiguration.cpp.orig 2024-01-31 11:33:17 UTC -+++ OrthancServer/Sources/OrthancConfiguration.cpp -@@ -114,7 +114,7 @@ namespace Orthanc - { - if (!is_directory(it->status())) - { -- std::string extension = boost::filesystem::extension(it->path()); -+ std::string extension = it->path().extension().string(); - Toolbox::ToLowerCase(extension); - - if (extension == ".json")