diff --git a/science/orthanc/Makefile b/science/orthanc/Makefile index 3de0af855788..17b96314a9f5 100644 --- a/science/orthanc/Makefile +++ b/science/orthanc/Makefile @@ -1,58 +1,60 @@ PORTNAME= orthanc -DISTVERSION= 1.11.0 -PORTREVISION= 13 +DISTVERSION= 1.12.3 CATEGORIES= science -MASTER_SITES= https://www.orthanc-server.com/downloads/get.php?path=/orthanc/ +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 +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_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 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 f28286e4fad0..66007b6a7195 100644 --- a/science/orthanc/distinfo +++ b/science/orthanc/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1652266484 -SHA256 (Orthanc-1.11.0.tar.gz) = 23949a70562487fd6e79d6f3f13c71a0fc90aa25e492fb3a99575fee0722c5af -SIZE (Orthanc-1.11.0.tar.gz) = 1899829 +TIMESTAMP = 1714974143 +SHA256 (Orthanc-1.12.3.tar.gz) = 64b7ed7506a60e52f52121efb14961485b710fd092ab73d6c550fa25a01f516b +SIZE (Orthanc-1.12.3.tar.gz) = 2043176 diff --git a/science/orthanc/files/patch-OrthancFramework_Resources_CMake_CivetwebConfiguration.cmake b/science/orthanc/files/patch-OrthancFramework_Resources_CMake_CivetwebConfiguration.cmake index 0237ef13ed79..e0ac6558feb7 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 2021-08-30 20:14:33 UTC +--- OrthancFramework/Resources/CMake/CivetwebConfiguration.cmake.orig 2023-07-04 14:39:31 UTC +++ OrthancFramework/Resources/CMake/CivetwebConfiguration.cmake -@@ -109,32 +109,38 @@ else() +@@ -110,32 +110,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 new file mode 100644 index 000000000000..e6d9c8ff88cf --- /dev/null +++ b/science/orthanc/files/patch-OrthancFramework_Resources_CMake_ProtobufConfiguration.cmake @@ -0,0 +1,37 @@ +--- OrthancFramework/Resources/CMake/ProtobufConfiguration.cmake.orig 2023-12-05 11:17:50 UTC ++++ OrthancFramework/Resources/CMake/ProtobufConfiguration.cmake +@@ -64,22 +64,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-OrthancServer_Resources_Configuration.json b/science/orthanc/files/patch-OrthancServer_Resources_Configuration.json index 91f978822db2..73c17f35620f 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 2021-01-29 09:36:16 UTC +--- OrthancServer/Resources/Configuration.json.orig 2023-07-04 14:39:31 UTC +++ OrthancServer/Resources/Configuration.json -@@ -10,12 +10,12 @@ +@@ -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 -@@ -53,6 +53,7 @@ +@@ -83,6 +83,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/pkg-plist b/science/orthanc/pkg-plist index b44ca2376c94..293f39bc83d4 100644 --- a/science/orthanc/pkg-plist +++ b/science/orthanc/pkg-plist @@ -1,20 +1,25 @@ @owner orthanc @group orthanc @mode 700 @dir %%DATADIR%%/plugins @dir /var/db/orthanc/db/db-v5 @dir /var/db/orthanc/db @dir /var/db/orthanc @mode 600 @sample %%ETCDIR%%/orthanc.json.sample @mode bin/OrthancRecoverCompressedFile include/orthanc/OrthancCDatabasePlugin.h include/orthanc/OrthancCPlugin.h +include/orthanc/OrthancDatabasePlugin.proto sbin/Orthanc +%%DATADIR%%/plugins/libDelayedDeletion.so +%%DATADIR%%/plugins/libDelayedDeletion.so.%%DISTVERSION%% %%DATADIR%%/plugins/libHousekeeper.so %%DATADIR%%/plugins/libHousekeeper.so.%%DISTVERSION%% %%DATADIR%%/plugins/libModalityWorklists.so %%DATADIR%%/plugins/libModalityWorklists.so.%%DISTVERSION%% +%%DATADIR%%/plugins/libMultitenantDicom.so +%%DATADIR%%/plugins/libMultitenantDicom.so.%%DISTVERSION%% %%DATADIR%%/plugins/libServeFolders.so %%DATADIR%%/plugins/libServeFolders.so.%%DISTVERSION%%