--- science/orthanc/Makefile (nonexistent) +++ science/orthanc/Makefile (working copy) @@ -0,0 +1,71 @@ +# Created by: maintainer.freebsd@xpoundit.com +# $FreeBSD$ + +PORTNAME= orthanc +PORTVERSION= 1.7.2 +CATEGORIES= science +MASTER_SITES= http://orthanc-server.com/downloads/get.php?path=/orthanc/:main \ + http://orthanc.osimis.io/ThirdPartyDownloads/:thirdparty +DISTFILES= Orthanc-${PORTVERSION}.tar.gz:main \ + civetweb-1.12-fixed.tar.gz:thirdparty \ + e2fsprogs-1.44.5.tar.gz:thirdparty +DIST_SUBDIR= ${PORTNAME} +EXTRACT_ONLY= Orthanc-${PORTVERSION}.tar.gz + +MAINTAINER= maintainer.freebsd@xpoundit.com +COMMENT= Orthanc is a DICOM server for healthcare and medical research + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING + +LIB_DEPENDS= libboost_atomic.so:devel/boost-libs \ + libcharls.so:graphics/dcmtk \ + libcurl.so:ftp/curl \ + libgtest.so:devel/googletest \ + libicudata.so:devel/icu \ + libjbig.so:graphics/jbigkit \ + libjpeg.so:graphics/jpeg-turbo \ + libjsoncpp.so:devel/jsoncpp \ + libnghttp2.so:www/libnghttp2 \ + libpng16.so:graphics/png \ + libpugixml.so:textproc/pugixml \ + libsqlite3.so:databases/sqlite3 \ + libtiff.so:graphics/tiff \ + libuuid.so:misc/e2fsprogs-libuuid \ + libxml2.so:textproc/libxml2 + +USES= cmake dos2unix iconv jpeg lua python:build ssl + +WRKSRC= ${WRKDIR}/Orthanc-${PORTVERSION} +CMAKE_SOURCE_PATH= ${WRKSRC}/OrthancServer +CMAKE_ARGS= -DDCMTK_LIBRARIES="dcmdsig;charls;dcmjpls" \ + -DDCMTK_DIR="${LOCALBASE}" \ + -DDCMTK_DICTIONARY_DIR="${LOCALBASE}/share/dcmtk" \ + -DUSE_SYSTEM_CIVETWEB=OFF \ + -DUSE_SYSTEM_UUID=OFF \ + -DUNIT_TESTS_WITH_HTTP_CONNEXIONS=OFF \ + -DBUILD_CONNECTIVITY_CHECKS=OFF +CFLAGS+= -I${LOCALBASE}/include \ + -DNDEBUG +CXXFLAGS+= -DNDEBUG +DOS2UNIX_FILES= ${WRKSRC}/OrthancServer/CMakeLists.txt +USE_LDCONFIG= yes +USE_RC_SUBR= orthanc +USERS= orthanc +GROUPS= orthanc +PLIST_SUB+= PORTVERSION=${PORTVERSION} + +post-patch: + ${MKDIR} ${CMAKE_SOURCE_PATH}/ThirdPartyDownloads + ${MKDIR} ${CMAKE_SOURCE_PATH}/Plugins/Samples/ConnectivityChecks/ThirdPartyDownloads + ${CP} ${DISTDIR}/${DIST_SUBDIR}/civetweb-1.12-fixed.tar.gz ${CMAKE_SOURCE_PATH}/ThirdPartyDownloads + ${CP} ${DISTDIR}/${DIST_SUBDIR}/e2fsprogs-1.44.5.tar.gz ${CMAKE_SOURCE_PATH}/ThirdPartyDownloads + +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 --- science/orthanc/distinfo (nonexistent) +++ science/orthanc/distinfo (working copy) @@ -0,0 +1,7 @@ +TIMESTAMP = 1596543829 +SHA256 (orthanc/Orthanc-1.7.2.tar.gz) = ea167b4688db7cd8855a1758f289b21d490e7d97afcc405f12d881b22bf17e9b +SIZE (orthanc/Orthanc-1.7.2.tar.gz) = 1644200 +SHA256 (orthanc/civetweb-1.12-fixed.tar.gz) = 0e81fc252166302a33abd68e98936fb24d9b008b5816fe50edd6b12256768e41 +SIZE (orthanc/civetweb-1.12-fixed.tar.gz) = 3035855 +SHA256 (orthanc/e2fsprogs-1.44.5.tar.gz) = 2e211fae27ef74d5af4a4e40b10b8df7f87c655933bd171aab4889bfc4e6d1cc +SIZE (orthanc/e2fsprogs-1.44.5.tar.gz) = 7619237 --- science/orthanc/files/orthanc.in (nonexistent) +++ science/orthanc/files/orthanc.in (working copy) @@ -0,0 +1,40 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: orthanc +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add these lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# orthanc_enable (bool): Set to NO by default. +# Set it to YES to enable Orthanc. +# orthanc_flags (str): Set to %%ETCDIR%%/orthanc.json +# by default. + +. /etc/rc.subr + +name=orthanc +rcvar=orthanc_enable +desc="RESTful DICOM server for healthcare and medical research" + +load_rc_config $name + +: ${orthanc_enable:=NO} +: ${orthanc_flags="%%ETCDIR%%/orthanc.json"} + +start_precmd=orthanc_prestart +pidfile=/var/run/orthanc.pid +procname=%%PREFIX%%/sbin/Orthanc +command=/usr/sbin/daemon +command_args=" -f -p ${pidfile} -u orthanc ${procname} ${orthanc_flags}" + +orthanc_prestart() +{ + # Have to empty rc_flags so they don't get passed to daemon(8) + rc_flags="" +} + +run_rc_command "$1" --- science/orthanc/files/patch-OrthancServer_CMakeLists.txt (nonexistent) +++ science/orthanc/files/patch-OrthancServer_CMakeLists.txt (working copy) @@ -0,0 +1,13 @@ +--- OrthancServer/CMakeLists.txt.orig 2020-07-08 09:50:26 UTC ++++ OrthancServer/CMakeLists.txt +@@ -574,8 +574,8 @@ if (ENABLE_PLUGINS AND BUILD_CONNECTIVITY_CHECKS) + list(GET CMAKE_FIND_LIBRARY_PREFIXES 0 Prefix) + list(GET CMAKE_FIND_LIBRARY_SUFFIXES 0 Suffix) + install(FILES +- ${CMAKE_CURRENT_BINARY_DIR}/${Prefix}ConnectivityChecks${Suffix} +- ${CMAKE_CURRENT_BINARY_DIR}/${Prefix}ConnectivityChecks${Suffix}.${ORTHANC_VERSION} ++ ${CMAKE_CURRENT_BINARY_DIR}/ConnectivityChecks-build/${Prefix}ConnectivityChecks${Suffix} ++ ${CMAKE_CURRENT_BINARY_DIR}/ConnectivityChecks-build/${Prefix}ConnectivityChecks${Suffix}.${ORTHANC_VERSION} + DESTINATION "share/orthanc/plugins") + endif() + endif() --- science/orthanc/files/patch-OrthancServer_Resources_Configuration.json (nonexistent) +++ science/orthanc/files/patch-OrthancServer_Resources_Configuration.json (working copy) @@ -0,0 +1,25 @@ +--- OrthancServer/Resources/Configuration.json.orig 2020-07-08 09:50:26 UTC ++++ OrthancServer/Resources/Configuration.json +@@ -10,12 +10,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 if +@@ -53,6 +53,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 --- science/orthanc/pkg-descr (nonexistent) +++ science/orthanc/pkg-descr (working copy) @@ -0,0 +1,23 @@ +Orthanc aims at providing a simple, yet powerful standalone DICOM server. It +is designed to improve the DICOM flows in hospitals and to support research +about the automated analysis of medical images. Orthanc lets its users focus +on the content of the DICOM files, hiding the complexity of the DICOM format +and of the DICOM protocol. + +Orthanc can turn any computer running Windows, Linux, FreeBSD or OS X into a +DICOM store (in other words, a mini-PACS system). Its architecture is +lightweight and standalone, meaning that no complex database administration +is required, nor the installation of third-party dependencies. + +What makes Orthanc unique is the fact that it provides a RESTful API. Thanks +to this major feature, it is possible to drive Orthanc from any computer +language. The DICOM tags of the stored medical images can be downloaded in +the JSON file format. Furthermore, standard PNG images can be generated +on-the-fly from the DICOM instances by Orthanc. + +Orthanc also features a plugin mechanism to add new modules that extends the +core capabilities of its REST API. A Web viewer, a PostgreSQL database +back-end, a MySQL database back-end, and a reference implementation of +DICOMweb are currently freely available as plugins. + +WWW: https://www.orthanc-server.com/ --- science/orthanc/pkg-plist (nonexistent) +++ science/orthanc/pkg-plist (working copy) @@ -0,0 +1,18 @@ +@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 +include/orthanc/OrthancCDatabasePlugin.h +include/orthanc/OrthancCPlugin.h +bin/OrthancRecoverCompressedFile +sbin/Orthanc +%%DATADIR%%/plugins/%%LUA_LIBDIR%%ModalityWorklists.so +%%DATADIR%%/plugins/%%LUA_LIBDIR%%ModalityWorklists.so.%%PORTVERSION%% +%%DATADIR%%/plugins/%%LUA_LIBDIR%%ServeFolders.so +%%DATADIR%%/plugins/%%LUA_LIBDIR%%ServeFolders.so.%%PORTVERSION%%