From owner-svn-ports-all@FreeBSD.ORG Thu Jun 4 14:07:38 2015 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3B117B50; Thu, 4 Jun 2015 14:07:38 +0000 (UTC) (envelope-from amdmi3@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 24E511E58; Thu, 4 Jun 2015 14:07:38 +0000 (UTC) (envelope-from amdmi3@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t54E7c8Q094069; Thu, 4 Jun 2015 14:07:38 GMT (envelope-from amdmi3@FreeBSD.org) Received: (from amdmi3@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t54E7WZu094033; Thu, 4 Jun 2015 14:07:32 GMT (envelope-from amdmi3@FreeBSD.org) Message-Id: <201506041407.t54E7WZu094033@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: amdmi3 set sender to amdmi3@FreeBSD.org using -f From: Dmitry Marakasov Date: Thu, 4 Jun 2015 14:07:32 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r388534 - in head: . science science/orthanc science/orthanc/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jun 2015 14:07:38 -0000 Author: amdmi3 Date: Thu Jun 4 14:07:31 2015 New Revision: 388534 URL: https://svnweb.freebsd.org/changeset/ports/388534 Log: - Add science/orthanc 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 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 lets its users focus on the content of the DICOM files, hiding the complexity of the DICOM format and of the DICOM protocol. WWW: http://www.orthanc-server.com/ PR: 199146 Submitted by: mp39590@gmail.com Added: head/science/orthanc/ head/science/orthanc/Makefile (contents, props changed) head/science/orthanc/distinfo (contents, props changed) head/science/orthanc/files/ head/science/orthanc/files/orthanc.in (contents, props changed) head/science/orthanc/files/patch-CMakeLists.txt (contents, props changed) head/science/orthanc/files/patch-Core_Compression_HierarchicalZipWriter.cpp (contents, props changed) head/science/orthanc/files/patch-Core_ImageFormats_ImageProcessing.cpp (contents, props changed) head/science/orthanc/files/patch-Core_MultiThreading_Mutex.cpp (contents, props changed) head/science/orthanc/files/patch-Core_MultiThreading_ThreadedCommandProcessor.cpp (contents, props changed) head/science/orthanc/files/patch-Core_Toolbox.cpp (contents, props changed) head/science/orthanc/files/patch-OrthancServer_Internals_StoreScp.cpp (contents, props changed) head/science/orthanc/files/patch-Plugins_Engine_PluginsManager.cpp (contents, props changed) head/science/orthanc/files/patch-Plugins_Engine_SharedLibrary.cpp (contents, props changed) head/science/orthanc/files/patch-Resources_CMake_AutoGeneratedCode.cmake (contents, props changed) head/science/orthanc/files/patch-Resources_CMake_BoostConfiguration.cmake (contents, props changed) head/science/orthanc/files/patch-Resources_CMake_Compiler.cmake (contents, props changed) head/science/orthanc/files/patch-Resources_CMake_SQLiteConfiguration.cmake (contents, props changed) head/science/orthanc/files/patch-Resources_Configuration.json (contents, props changed) head/science/orthanc/pkg-descr (contents, props changed) head/science/orthanc/pkg-plist (contents, props changed) Modified: head/GIDs head/UIDs head/science/Makefile Modified: head/GIDs ============================================================================== --- head/GIDs Thu Jun 4 13:29:44 2015 (r388533) +++ head/GIDs Thu Jun 4 14:07:31 2015 (r388534) @@ -159,6 +159,7 @@ backuppc:*:300: _sphinx:*:312: dkfilter:*:325: smfs:*:326: +orthanc:*:330: daapd:*:337: murmur:*:338: wildfire:*:340: Modified: head/UIDs ============================================================================== --- head/UIDs Thu Jun 4 13:29:44 2015 (r388533) +++ head/UIDs Thu Jun 4 14:07:31 2015 (r388534) @@ -165,6 +165,7 @@ backuppc:*:300:300::0:0:BackupPC pseudo- _sphinx:*:312:312::0:0:Sphinxsearch Owner:/nonexistent:/usr/sbin/nologin dkfilter:*:325:325::0:0:DK Filter Owner:/nonexistent:/usr/sbin/nologin smfs:*:326:326::0:0:SMFSAV Owner:/nonexistent:/usr/sbin/nologin +orthanc:*:330:330::0:0:Orthanc Daemon:/nonexistent:/usr/sbin/nologin _pma:*:336:80::0:0:phpMyAdmin Owner:/nonexistent:/usr/sbin/nologin daapd:*:337:337::0:0:daapd User:/nonexistent:/usr/sbin/nologin murmur:*:338:338::0:0:& User:/nonexistent:/usr/sbin/nologin Modified: head/science/Makefile ============================================================================== --- head/science/Makefile Thu Jun 4 13:29:44 2015 (r388533) +++ head/science/Makefile Thu Jun 4 14:07:31 2015 (r388534) @@ -97,6 +97,7 @@ SUBDIR += nifticlib SUBDIR += openbabel SUBDIR += openkim + SUBDIR += orthanc SUBDIR += p5-Algorithm-SVMLight SUBDIR += p5-Chemistry-3DBuilder SUBDIR += p5-Chemistry-Bond-Find Added: head/science/orthanc/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/Makefile Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,63 @@ +# Created by: mp39590@gmail.com +# $FreeBSD$ + +PORTNAME= orthanc +PORTVERSION= 0.8.6 +CATEGORIES= science graphics net +MASTER_SITES= SF/orthancserver/:main \ + http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/:mongoose +DISTFILES= Orthanc-${PORTVERSION}.tar.gz:main \ + mongoose-3.8.tgz:mongoose +DIST_SUBDIR= ${PORTNAME} + +MAINTAINER= mp39590@gmail.com +COMMENT= RESTful DICOM server for healthcare and medical research + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING + +LIB_DEPENDS= libcurl.so:${PORTSDIR}/ftp/curl \ + libjsoncpp.so:${PORTSDIR}/devel/jsoncpp \ + libuuid.so:${PORTSDIR}/misc/e2fsprogs-libuuid \ + libglog.so:${PORTSDIR}/devel/glog \ + libboost_filesystem.so:${PORTSDIR}/devel/boost-libs \ + libdcmimage.so:${PORTSDIR}/devel/dcmtk \ + libsqlite3.so:${PORTSDIR}/databases/sqlite3 \ + libpugixml.so:${PORTSDIR}/textproc/pugixml + +CMAKE_ARGS= -DDCMTK_LIBRARIES="dcmdsig;charls;dcmjpls" \ + -DDCMTK_DICTIONARY_DIR="${LOCALBASE}/share/dcmtk" \ + -DUSE_SYSTEM_MONGOOSE=OFF \ + -DBUILD_UNIT_TESTS=OFF + +USES= cmake:outsource python:build lua:51 dos2unix +DOS2UNIX_FILES= CMakeLists.txt +CFLAGS+= -I${LOCALBASE}/include -I${LOCALBASE}/include/jsoncpp +LDFLAGS+= -L${LOCALBASE}/lib +USE_LDCONFIG= yes +USE_OPENSSL= yes +USE_RC_SUBR= orthanc +WRKSRC= ${WRKDIR}/Orthanc-${PORTVERSION} +USERS= orthanc +GROUPS= orthanc + +# This is mongoose sources, downloaded from Orthanc author homepage. Orthanc +# requires mongoose webserver, but after version 3.8, mongoose developers has +# changed the license from MIT to GPLv2 only. This action made illegal to +# combine new mongoose versions with GPLv3 only Orthanc. +# We download sources manually and pass USE_SYSTEM_MONGOOSE=OFF to Orthanc +# cmake variables to tell that mongoose is not presented on the host OS and +# should be build together with the software instead. +# https://www.mail-archive.com/mongoose-users@googlegroups.com/msg00625.html +post-extract: + ${MKDIR} ${WRKSRC}/ThirdPartyDownloads + ${CP} ${DISTDIR}/${DIST_SUBDIR}/mongoose-3.8.tgz ${WRKSRC}/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' \ + ${WRKSRC}/Resources/Configuration.json > ${STAGEDIR}${ETCDIR}/orthanc.json.sample + +.include Added: head/science/orthanc/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/distinfo Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,4 @@ +SHA256 (orthanc/Orthanc-0.8.6.tar.gz) = 0668e23dbdf4aa12bf417cf22bfb7b50379797fc6b1132a582789289d1728e69 +SIZE (orthanc/Orthanc-0.8.6.tar.gz) = 716036 +SHA256 (orthanc/mongoose-3.8.tgz) = 6afc2c377614a01a24b78560a62d1316b29372afe08eae3715b56c877be71c6e +SIZE (orthanc/mongoose-3.8.tgz) = 1577314 Added: head/science/orthanc/files/orthanc.in ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/orthanc.in Thu Jun 4 14:07:31 2015 (r388534) @@ -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" Added: head/science/orthanc/files/patch-CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-CMakeLists.txt Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,61 @@ +--- CMakeLists.txt.orig 2015-02-12 13:47:38 UTC ++++ CMakeLists.txt +@@ -20,6 +20,7 @@ SET(ALLOW_DOWNLOADS OFF CACHE BOOL "Allo + SET(UNIT_TESTS_WITH_HTTP_CONNEXIONS ON CACHE BOOL "Allow unit tests to make HTTP requests") + SET(ENABLE_JPEG ON CACHE BOOL "Enable JPEG decompression") + SET(ENABLE_JPEG_LOSSLESS ON CACHE BOOL "Enable JPEG-LS (Lossless) decompression") ++SET(BUILD_UNIT_TESTS ON CACHE BOOL "Build UnitTests binary") + + # Advanced parameters to fine-tune linking against system libraries + SET(USE_SYSTEM_JSONCPP ON CACHE BOOL "Use the system version of JsonCpp") +@@ -359,22 +360,24 @@ install( + ## Build the unit tests + ##################################################################### + +-if (UNIT_TESTS_WITH_HTTP_CONNEXIONS) +- add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=1) +-else() +- add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=0) +-endif() +- +-add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1) +-include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) +-add_executable(UnitTests +- ${GTEST_SOURCES} +- ${ORTHANC_UNIT_TESTS_SOURCES} +- ) +-target_link_libraries(UnitTests ServerLibrary CoreLibrary ${STATIC_LUA} ${STATIC_GOOGLE_LOG}) +- +-if (${OPENSSL_SOURCES_LENGTH} GREATER 0) +- target_link_libraries(UnitTests OpenSSL) ++if (BUILD_UNIT_TESTS) ++ if (UNIT_TESTS_WITH_HTTP_CONNEXIONS) ++ add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=1) ++ else() ++ add_definitions(-DUNIT_TESTS_WITH_HTTP_CONNEXIONS=0) ++ endif() ++ ++ add_definitions(-DORTHANC_BUILD_UNIT_TESTS=1) ++ include(${CMAKE_SOURCE_DIR}/Resources/CMake/GoogleTestConfiguration.cmake) ++ add_executable(UnitTests ++ ${GTEST_SOURCES} ++ ${ORTHANC_UNIT_TESTS_SOURCES} ++ ) ++ target_link_libraries(UnitTests ServerLibrary CoreLibrary ${STATIC_LUA} ${STATIC_GOOGLE_LOG}) ++ ++ if (${OPENSSL_SOURCES_LENGTH} GREATER 0) ++ target_link_libraries(UnitTests OpenSSL) ++ endif() + endif() + + +@@ -443,7 +446,8 @@ if (BUILD_CLIENT_LIBRARY) + ) + endif() + +- elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") ++ elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR ++ ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") + # TODO + target_link_libraries(OrthancClient pthread) + Added: head/science/orthanc/files/patch-Core_Compression_HierarchicalZipWriter.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Core_Compression_HierarchicalZipWriter.cpp Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,11 @@ +--- Core/Compression/HierarchicalZipWriter.cpp.orig 2015-02-12 13:47:38 UTC ++++ Core/Compression/HierarchicalZipWriter.cpp +@@ -53,7 +53,7 @@ namespace Orthanc + if (c == '^') + c = ' '; + +- if (c < 128 && ++ if (c <= 127 && + c >= 0) + { + if (isspace(c)) Added: head/science/orthanc/files/patch-Core_ImageFormats_ImageProcessing.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Core_ImageFormats_ImageProcessing.cpp Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,11 @@ +--- Core/ImageFormats/ImageProcessing.cpp.orig 2015-02-12 13:47:38 UTC ++++ Core/ImageFormats/ImageProcessing.cpp +@@ -209,7 +209,7 @@ namespace Orthanc + void MultiplyConstantInternal(ImageAccessor& image, + float factor) + { +- if (abs(factor - 1.0f) <= std::numeric_limits::epsilon()) ++ if (std::abs(factor - 1.0f) <= std::numeric_limits::epsilon()) + { + return; + } Added: head/science/orthanc/files/patch-Core_MultiThreading_Mutex.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Core_MultiThreading_Mutex.cpp Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,20 @@ +--- Core/MultiThreading/Mutex.cpp.orig 2015-02-12 13:47:38 UTC ++++ Core/MultiThreading/Mutex.cpp +@@ -37,7 +37,7 @@ + + #if defined(_WIN32) + #include +-#elif defined(__linux) || defined(__FreeBSD_kernel__) || defined(__APPLE__) ++#elif defined(__linux) || defined(__FreeBSD_kernel__) || defined(__APPLE__) || defined(__FreeBSD__) + #include + #else + #error Support your platform here +@@ -75,7 +75,7 @@ namespace Orthanc + } + + +-#elif defined(__linux) || defined(__FreeBSD_kernel__) || defined(__APPLE__) ++#elif defined(__linux) || defined(__FreeBSD_kernel__) || defined(__APPLE__) || defined(__FreeBSD__) + + struct Mutex::PImpl + { Added: head/science/orthanc/files/patch-Core_MultiThreading_ThreadedCommandProcessor.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Core_MultiThreading_ThreadedCommandProcessor.cpp Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,11 @@ +--- Core/MultiThreading/ThreadedCommandProcessor.cpp.orig 2015-02-12 13:47:38 UTC ++++ Core/MultiThreading/ThreadedCommandProcessor.cpp +@@ -175,7 +175,7 @@ namespace Orthanc + { + boost::mutex::scoped_lock lock(mutex_); + +- while (!remainingCommands_ == 0) ++ while (remainingCommands_ != 0) + { + processedCommand_.wait(lock); + } Added: head/science/orthanc/files/patch-Core_Toolbox.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Core_Toolbox.cpp Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,38 @@ +--- Core/Toolbox.cpp.orig 2015-02-12 13:47:38 UTC ++++ Core/Toolbox.cpp +@@ -59,7 +59,7 @@ + #include /* PATH_MAX */ + #endif + +-#if defined(__linux) || defined(__FreeBSD_kernel__) ++#if defined(__linux) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) + #include /* PATH_MAX */ + #include + #include +@@ -116,7 +116,7 @@ namespace Orthanc + { + #if defined(_WIN32) + ::Sleep(static_cast(microSeconds / static_cast(1000))); +-#elif defined(__linux) || defined(__APPLE__) || defined(__FreeBSD_kernel__) ++#elif defined(__linux) || defined(__APPLE__) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) + usleep(microSeconds); + #else + #error Support your platform here +@@ -503,7 +503,7 @@ namespace Orthanc + return std::string(&buffer[0]); + } + +-#elif defined(__linux) || defined(__FreeBSD_kernel__) ++#elif defined(__linux) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) + static std::string GetPathToExecutableInternal() + { + std::vector buffer(PATH_MAX + 1); +@@ -633,7 +633,7 @@ namespace Orthanc + result.reserve(source.size() + 1); + for (size_t i = 0; i < source.size(); i++) + { +- if (source[i] < 128 && source[i] >= 0 && !iscntrl(source[i])) ++ if (source[i] <= 127 && source[i] >= 0 && !iscntrl(source[i])) + { + result.push_back(source[i]); + } Added: head/science/orthanc/files/patch-OrthancServer_Internals_StoreScp.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-OrthancServer_Internals_StoreScp.cpp Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,11 @@ +--- OrthancServer/Internals/StoreScp.cpp.orig 2015-02-12 13:47:38 UTC ++++ OrthancServer/Internals/StoreScp.cpp +@@ -182,7 +182,7 @@ namespace Orthanc + + // check the image to make sure it is consistent, i.e. that its sopClass and sopInstance correspond + // to those mentioned in the request. If not, set the status in the response message variable. +- if ((rsp->DimseStatus == STATUS_Success)) ++ if (rsp->DimseStatus == STATUS_Success) + { + // which SOP class and SOP instance ? + if (!DU_findSOPClassAndInstanceInDataSet(*imageDataSet, sopClass, sopInstance, /*opt_correctUIDPadding*/ OFFalse)) Added: head/science/orthanc/files/patch-Plugins_Engine_PluginsManager.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Plugins_Engine_PluginsManager.cpp Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,11 @@ +--- Plugins/Engine/PluginsManager.cpp.orig 2015-02-12 13:47:38 UTC ++++ Plugins/Engine/PluginsManager.cpp +@@ -42,7 +42,7 @@ + + #ifdef WIN32 + #define PLUGIN_EXTENSION ".dll" +-#elif defined(__linux) || defined(__FreeBSD_kernel__) ++#elif defined(__linux) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) + #define PLUGIN_EXTENSION ".so" + #elif defined(__APPLE__) && defined(__MACH__) + #define PLUGIN_EXTENSION ".dylib" Added: head/science/orthanc/files/patch-Plugins_Engine_SharedLibrary.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Plugins_Engine_SharedLibrary.cpp Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,38 @@ +--- Plugins/Engine/SharedLibrary.cpp.orig 2015-02-12 13:47:38 UTC ++++ Plugins/Engine/SharedLibrary.cpp +@@ -36,7 +36,7 @@ + + #if defined(_WIN32) + #include +-#elif defined(__linux) || (defined(__APPLE__) && defined(__MACH__)) || defined(__FreeBSD_kernel__) ++#elif defined(__linux) || (defined(__APPLE__) && defined(__MACH__)) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) + #include + #else + #error Support your platform here +@@ -58,7 +58,7 @@ namespace Orthanc + throw OrthancException(ErrorCode_SharedLibrary); + } + +-#elif defined(__linux) || (defined(__APPLE__) && defined(__MACH__)) || defined(__FreeBSD_kernel__) ++#elif defined(__linux) || (defined(__APPLE__) && defined(__MACH__)) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) + handle_ = ::dlopen(path.c_str(), RTLD_NOW); + if (handle_ == NULL) + { +@@ -84,7 +84,7 @@ namespace Orthanc + { + #if defined(_WIN32) + ::FreeLibrary((HMODULE)handle_); +-#elif defined(__linux) || (defined(__APPLE__) && defined(__MACH__)) || defined(__FreeBSD_kernel__) ++#elif defined(__linux) || (defined(__APPLE__) && defined(__MACH__)) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) + ::dlclose(handle_); + #else + #error Support your platform here +@@ -102,7 +102,7 @@ namespace Orthanc + + #if defined(_WIN32) + return ::GetProcAddress((HMODULE)handle_, name.c_str()); +-#elif defined(__linux) || (defined(__APPLE__) && defined(__MACH__)) || defined(__FreeBSD_kernel__) ++#elif defined(__linux) || (defined(__APPLE__) && defined(__MACH__)) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) + return ::dlsym(handle_, name.c_str()); + #else + #error Support your platform here Added: head/science/orthanc/files/patch-Resources_CMake_AutoGeneratedCode.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Resources_CMake_AutoGeneratedCode.cmake Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,19 @@ +--- Resources/CMake/AutoGeneratedCode.cmake.orig 2015-02-12 13:47:38 UTC ++++ Resources/CMake/AutoGeneratedCode.cmake +@@ -3,6 +3,7 @@ set(AUTOGENERATED_SOURCES) + + file(MAKE_DIRECTORY ${AUTOGENERATED_DIR}) + include_directories(${AUTOGENERATED_DIR}) ++include(FindPythonInterp) + + macro(EmbedResources) + # Convert a semicolon separated list to a whitespace separated string +@@ -26,7 +27,7 @@ macro(EmbedResources) + "${TARGET_BASE}.h" + "${TARGET_BASE}.cpp" + COMMAND +- python ++ ${PYTHON_EXECUTABLE} + "${CMAKE_CURRENT_SOURCE_DIR}/Resources/EmbedResources.py" + "${AUTOGENERATED_DIR}/EmbeddedResources" + ${SCRIPT_ARGUMENTS} Added: head/science/orthanc/files/patch-Resources_CMake_BoostConfiguration.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Resources_CMake_BoostConfiguration.cmake Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,10 @@ +--- Resources/CMake/BoostConfiguration.cmake.orig 2015-02-12 13:47:38 UTC ++++ Resources/CMake/BoostConfiguration.cmake +@@ -56,6 +56,7 @@ if (BOOST_STATIC) + + if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR + ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR ++ ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR + ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD") + list(APPEND BOOST_SOURCES + ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/once.cpp Added: head/science/orthanc/files/patch-Resources_CMake_Compiler.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Resources_CMake_Compiler.cmake Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,21 @@ +--- Resources/CMake/Compiler.cmake.orig 2015-02-12 13:47:38 UTC ++++ Resources/CMake/Compiler.cmake +@@ -4,7 +4,8 @@ if (${CMAKE_COMPILER_IS_GNUCXX}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-long-long -Wno-implicit-function-declaration") + # --std=c99 makes libcurl not to compile + # -pedantic gives a lot of warnings on OpenSSL +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wno-long-long -Wno-variadic-macros") ++ # with -pedantic we failing to build headers from boost, which have comma at the end of enum's ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -Wno-variadic-macros") + + if (CMAKE_CROSSCOMPILING) + # http://stackoverflow.com/a/3543845/881731 +@@ -79,6 +80,8 @@ elseif (${CMAKE_SYSTEM_NAME} STREQUAL "D + ) + link_libraries(iconv) + ++elseif (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") ++ link_libraries(uuid pthread) + endif() + + Added: head/science/orthanc/files/patch-Resources_CMake_SQLiteConfiguration.cmake ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Resources_CMake_SQLiteConfiguration.cmake Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,15 @@ +--- Resources/CMake/SQLiteConfiguration.cmake.orig 2015-02-12 13:47:38 UTC ++++ Resources/CMake/SQLiteConfiguration.cmake +@@ -28,8 +28,11 @@ else() + message(FATAL_ERROR "Please install the libsqlite3-dev package") + endif() + ++ find_path(SQLITE_INCLUDE_DIR sqlite3.h) ++ message("SQLite include dir: ${SQLITE_INCLUDE_DIR}") ++ + # Autodetection of the version of SQLite +- file(STRINGS "/usr/include/sqlite3.h" SQLITE_VERSION_NUMBER1 REGEX "#define SQLITE_VERSION_NUMBER.*$") ++ file(STRINGS "${SQLITE_INCLUDE_DIR}/sqlite3.h" SQLITE_VERSION_NUMBER1 REGEX "#define SQLITE_VERSION_NUMBER.*$") + string(REGEX REPLACE "#define SQLITE_VERSION_NUMBER(.*)$" "\\1" SQLITE_VERSION_NUMBER ${SQLITE_VERSION_NUMBER1}) + + message("Detected version of SQLite: ${SQLITE_VERSION_NUMBER}") Added: head/science/orthanc/files/patch-Resources_Configuration.json ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/files/patch-Resources_Configuration.json Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,25 @@ +--- Resources/Configuration.json.orig 2015-02-12 13:47:38 UTC ++++ Resources/Configuration.json +@@ -9,12 +9,12 @@ + + // Path to the directory that holds the heavyweight files + // (i.e. the raw DICOM instances) +- "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", + + // Enable the transparent compression of the DICOM instances + "StorageCompression" : false, +@@ -39,6 +39,7 @@ + // folders, in which case they will be scanned non-recursively to + // find shared libraries. + "Plugins" : [ ++ "%%PREFIX%%/share/orthanc/plugins/" + ], + + Added: head/science/orthanc/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/pkg-descr Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,20 @@ +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 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 lets its users focus on the content of the DICOM files, hiding +the complexity of the DICOM format and of the DICOM protocol. + +WWW: http://www.orthanc-server.com/ Added: head/science/orthanc/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/science/orthanc/pkg-plist Thu Jun 4 14:07:31 2015 (r388534) @@ -0,0 +1,12 @@ +@dir(orthanc,orthanc,700) %%DATADIR%%/plugins +@dir(orthanc,orthanc,700) /var/db/orthanc/db/db-v5 +@dir(orthanc,orthanc,700) /var/db/orthanc/db +@dir(orthanc,orthanc,700) /var/db/orthanc +@sample(orthanc,orthanc,600) %%ETCDIR%%/orthanc.json.sample +include/orthanc/OrthancCDatabasePlugin.h +include/orthanc/OrthancCPlugin.h +include/orthanc/OrthancCppClient.h +include/orthanc/OrthancCppDatabasePlugin.h +lib/libOrthancClient.so +lib/libOrthancClient.so.0.8 +sbin/Orthanc