summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrançois-Xavier Carton <fx.carton91@gmail.com>2022-05-16 17:41:43 +0200
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2022-06-21 11:57:16 +0200
commit7d7c53ec31479a88eeee0249a831ec0f82d269bd (patch)
tree701ad16237207da1e87d48740457419b33b4112f /sci-libs/dcmtk
parentapp-office/texmacs: update HOMEPAGE, SRC_URI (diff)
downloadgentoo-7d7c53ec31479a88eeee0249a831ec0f82d269bd.tar.gz
gentoo-7d7c53ec31479a88eeee0249a831ec0f82d269bd.tar.bz2
gentoo-7d7c53ec31479a88eeee0249a831ec0f82d269bd.zip
sci-libs/dcmtk: rename bundled charls to avoid conflicts
Using upstream patch [1]. Note: both Debian [2] and Fedora [3] have given up unbundling charls as the newer charls 2.0 is incompatible with charls 1.0 used by dcmtk and causes regressions. [1] https://git.dcmtk.org/?p=dcmtk.git;a=commitdiff;h=09afb527bb889932f919c28f47b08c84fe19ab32 [2] https://salsa.debian.org/med-team/dcmtk/-/commit/12aad369f3e5a6a4eac78b206a940cad80608bc7 [3] https://src.fedoraproject.org/rpms/dcmtk/c/d9cff801c2e4e2928e247a8c973b7118ec589ed5?branch=rawhide Closes: https://bugs.gentoo.org/832453 Signed-off-by: François-Xavier Carton <fx.carton91@gmail.com> Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Diffstat (limited to 'sci-libs/dcmtk')
-rw-r--r--sci-libs/dcmtk/dcmtk-3.6.5-r1.ebuild90
-rw-r--r--sci-libs/dcmtk/files/dcmtk-3.6.5-rename-bundled-charls.patch70
2 files changed, 160 insertions, 0 deletions
diff --git a/sci-libs/dcmtk/dcmtk-3.6.5-r1.ebuild b/sci-libs/dcmtk/dcmtk-3.6.5-r1.ebuild
new file mode 100644
index 000000000000..d151996f1e2e
--- /dev/null
+++ b/sci-libs/dcmtk/dcmtk-3.6.5-r1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="The DICOM Toolkit"
+HOMEPAGE="https://dicom.offis.de/dcmtk.php.en"
+SRC_URI="https://dicom.offis.de/download/dcmtk/release/${P}.tar.gz"
+
+LICENSE="OFFIS"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+SLOT="0"
+IUSE="doc png ssl tcpd tiff +threads xml zlib"
+
+RDEPEND="
+ dev-libs/icu:=
+ virtual/jpeg:0
+ png? ( media-libs/libpng:* )
+ ssl? ( dev-libs/openssl:0= )
+ tcpd? ( sys-apps/tcp-wrappers )
+ tiff? ( media-libs/tiff:0 )
+ xml? ( dev-libs/libxml2:2 )
+ zlib? ( sys-libs/zlib )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( app-doc/doxygen )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-rename-bundled-charls.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ sed -e "s:share/doc/dcmtk:&-${PV}:" \
+ -e "s:DIR \"/:DIR \"/usr/:" \
+ -e "s:usr/etc:etc:" \
+ -e "s:/lib\":/$(get_libdir)\":" \
+ -e "s:COPYRIGHT::" \
+ -i CMakeLists.txt || die
+ sed -e 's:${CMAKE_INSTALL_PREFIX}/::' \
+ -i dcmwlm/data/CMakeLists.txt doxygen/CMakeLists.txt || die
+ # Temporary workaround: docs are not built with CMake
+ sed -i -e '/include/d' doxygen/Makefile.in || die
+
+ # fix -D deprecation warnings
+ sed -i -e "s|_BSD_SOURCE|_DEFAULT_SOURCE|g" \
+ "${S}"/config/configure.in \
+ "${S}"/CMakeLists.txt || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+ -DDCMTK_WITH_ICU=ON
+ -DDCMTK_WITH_TIFF=$(usex tiff)
+ -DDCMTK_WITH_PNG=$(usex png)
+ -DDCMTK_WITH_XML=$(usex xml)
+ -DDCMTK_WITH_ZLIB=$(usex zlib)
+ -DDCMTK_WITH_OPENSSL=$(usex ssl)
+ -DDCMTK_WITH_DOXYGEN=$(usex doc)
+ -DDCMTK_WITH_THREADS=$(usex threads)
+ )
+
+ cmake_src_configure
+
+ if use doc; then
+ cd "${S}"/doxygen || die
+ econf
+ fi
+}
+
+src_compile() {
+ cmake_src_compile
+
+ if use doc; then
+ emake -C "${S}"/doxygen
+ fi
+}
+
+src_install() {
+ doman doxygen/manpages/man1/*
+
+ if use doc; then
+ local HTML_DOCS=( "${S}"/doxygen/htmldocs/. )
+ fi
+ cmake_src_install
+}
diff --git a/sci-libs/dcmtk/files/dcmtk-3.6.5-rename-bundled-charls.patch b/sci-libs/dcmtk/files/dcmtk-3.6.5-rename-bundled-charls.patch
new file mode 100644
index 000000000000..5bb51fdc3273
--- /dev/null
+++ b/sci-libs/dcmtk/files/dcmtk-3.6.5-rename-bundled-charls.patch
@@ -0,0 +1,70 @@
+Upstream: https://git.dcmtk.org/?p=dcmtk.git;a=commitdiff;h=09afb527bb889932f919c28f47b08c84fe19ab32
+
+From 46b4b4c2d48612b60f27969db142599f56042a47 Mon Sep 17 00:00:00 2001
+From: Marco Eichelberg <dicom@offis.de>
+Date: Tue, 10 Nov 2020 12:31:00 +0100
+Subject: [PATCH] Renamed libcharls to libdcmtkcharls.
+
+Renamed the CharLS JPEG-LS library that is built into DCMTK from
+"charls" to "dcmtkcharls" to avoid a naming conflict with another
+installation of the CharLS library when building shared libraries.
+
+Thanks to Mathieu Malaterre <malat@debian.org> for the suggestion
+and the patch.
+---
+ dcmjpls/apps/CMakeLists.txt | 2 +-
+ dcmjpls/libcharls/CMakeLists.txt | 4 ++--
+ dcmjpls/libcharls/intrface.h | 2 +-
+ dcmjpls/libsrc/CMakeLists.txt | 2 +-
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/dcmjpls/apps/CMakeLists.txt b/dcmjpls/apps/CMakeLists.txt
+index 2a9a452..0cb3f53 100644
+--- a/dcmjpls/apps/CMakeLists.txt
++++ b/dcmjpls/apps/CMakeLists.txt
+@@ -8,5 +8,5 @@ endforeach()
+
+ # make sure executables are linked to the corresponding libraries
+ foreach(PROGRAM dcmcjpls dcmdjpls dcml2pnm)
+- DCMTK_TARGET_LINK_MODULES(${PROGRAM} dcmjpls charls dcmimage dcmimgle dcmdata oflog ofstd ofstd)
++ DCMTK_TARGET_LINK_MODULES(${PROGRAM} dcmjpls dcmtkcharls dcmimage dcmimgle dcmdata oflog ofstd ofstd)
+ endforeach()
+diff --git a/dcmjpls/libcharls/CMakeLists.txt b/dcmjpls/libcharls/CMakeLists.txt
+index 0c5b143..ae0c017 100644
+--- a/dcmjpls/libcharls/CMakeLists.txt
++++ b/dcmjpls/libcharls/CMakeLists.txt
+@@ -2,6 +2,6 @@
+ include_directories("${dcmjpls_SOURCE_DIR}/libcharls" "${ofstd_SOURCE_DIR}/include")
+
+ # create library from source files
+-DCMTK_ADD_LIBRARY(charls header intrface jpegls)
++DCMTK_ADD_LIBRARY(dcmtkcharls header intrface jpegls)
+
+-DCMTK_TARGET_LINK_MODULES(charls ofstd oflog)
++DCMTK_TARGET_LINK_MODULES(dcmtkcharls ofstd oflog)
+diff --git a/dcmjpls/libcharls/intrface.h b/dcmjpls/libcharls/intrface.h
+index c8fdaa9..3aa27fd 100644
+--- a/dcmjpls/libcharls/intrface.h
++++ b/dcmjpls/libcharls/intrface.h
+@@ -10,7 +10,7 @@
+ #include "dcmtk/ofstd/ofstd.h" /* for size_t */
+ #include "dcmtk/ofstd/ofdefine.h" /* for DCMTK_DECL_EXPORT */
+
+-#ifdef charls_EXPORTS
++#ifdef dcmtkcharls_EXPORTS
+ #define DCMTK_CHARLS_EXPORT DCMTK_DECL_EXPORT
+ #else
+ #define DCMTK_CHARLS_EXPORT DCMTK_DECL_IMPORT
+diff --git a/dcmjpls/libsrc/CMakeLists.txt b/dcmjpls/libsrc/CMakeLists.txt
+index 314face..bd928f8 100644
+--- a/dcmjpls/libsrc/CMakeLists.txt
++++ b/dcmjpls/libsrc/CMakeLists.txt
+@@ -4,4 +4,4 @@ include_directories("${dcmjpls_SOURCE_DIR}/include" "${ofstd_SOURCE_DIR}/include
+ # create library from source files
+ DCMTK_ADD_LIBRARY(dcmjpls djcparam djdecode djencode djrparam djcodecd djutils djcodece)
+
+-DCMTK_TARGET_LINK_MODULES(dcmjpls ofstd oflog dcmdata dcmimgle dcmimage charls)
++DCMTK_TARGET_LINK_MODULES(dcmjpls ofstd oflog dcmdata dcmimgle dcmimage dcmtkcharls)
+--
+2.1.4
+