From e00b5781eb65dce21fd529416f0ce143548eae2b Mon Sep 17 00:00:00 2001 From: Mathieu Malaterre Date: Fri, 21 Mar 2025 12:45:44 +0100 Subject: [PATCH] Import dcmtk_3.6.9-5.debian.tar.xz [dgit import tarball dcmtk 3.6.9-5 dcmtk_3.6.9-5.debian.tar.xz] --- .directory | 2 + changelog | 1021 ++++++++++++++++++ control | 104 ++ copyright | 566 ++++++++++ dcmqrscp.default | 3 + dcmqrscp.init | 89 ++ dcmtk-data.install | 3 + dcmtk-doc.doc-base | 12 + dcmtk-doc.docs | 1 + dcmtk.README.Debian | 150 +++ dcmtk.dirs | 1 + dcmtk.docs | 2 + dcmtk.examples | 2 + dcmtk.install | 8 + dcmtk.maintscript | 4 + dcmtk.manpages | 1 + dcmtk.postinst | 69 ++ dcmtk.postrm | 29 + dcmtk.preinst | 40 + dcmtk.prerm | 23 + libdcmtk-dev.install | 4 + libdcmtk19.install | 1 + libdcmtk19.lintian-overrides | 5 + patches/0007-CVE-2024-47796.patch | 32 + patches/0008-CVE-2024-52333.patch | 48 + patches/0009-CVE-2025-25475.patch | 35 + patches/0010-CVE-2025-25474.patch | 34 + patches/0011-CVE-2025-25472.patch | 49 + patches/0012-CVE-2025-2357.patch | 512 +++++++++ patches/01_dcmtk_3.6.0-1.patch | 81 ++ patches/03_datadic_install.patch | 69 ++ patches/07_dont_export_all_executables.patch | 27 + patches/remove_version.patch | 22 + patches/series | 10 + rules | 101 ++ source/format | 1 + tests/control | 3 + tests/run-unit-test | 142 +++ upstream/metadata | 15 + watch | 4 + 40 files changed, 3325 insertions(+) create mode 100644 .directory create mode 100644 changelog create mode 100644 control create mode 100644 copyright create mode 100644 dcmqrscp.default create mode 100644 dcmqrscp.init create mode 100644 dcmtk-data.install create mode 100644 dcmtk-doc.doc-base create mode 100644 dcmtk-doc.docs create mode 100644 dcmtk.README.Debian create mode 100644 dcmtk.dirs create mode 100644 dcmtk.docs create mode 100644 dcmtk.examples create mode 100644 dcmtk.install create mode 100644 dcmtk.maintscript create mode 100644 dcmtk.manpages create mode 100644 dcmtk.postinst create mode 100644 dcmtk.postrm create mode 100644 dcmtk.preinst create mode 100644 dcmtk.prerm create mode 100644 libdcmtk-dev.install create mode 100644 libdcmtk19.install create mode 100644 libdcmtk19.lintian-overrides create mode 100644 patches/0007-CVE-2024-47796.patch create mode 100644 patches/0008-CVE-2024-52333.patch create mode 100644 patches/0009-CVE-2025-25475.patch create mode 100644 patches/0010-CVE-2025-25474.patch create mode 100644 patches/0011-CVE-2025-25472.patch create mode 100644 patches/0012-CVE-2025-2357.patch create mode 100644 patches/01_dcmtk_3.6.0-1.patch create mode 100644 patches/03_datadic_install.patch create mode 100644 patches/07_dont_export_all_executables.patch create mode 100644 patches/remove_version.patch create mode 100644 patches/series create mode 100755 rules create mode 100644 source/format create mode 100644 tests/control create mode 100644 tests/run-unit-test create mode 100644 upstream/metadata create mode 100644 watch diff --git a/.directory b/.directory new file mode 100644 index 00000000..8fa2f8fd --- /dev/null +++ b/.directory @@ -0,0 +1,2 @@ +[URL properties] +ViewMode=fsview_part diff --git a/changelog b/changelog new file mode 100644 index 00000000..68b4d6f7 --- /dev/null +++ b/changelog @@ -0,0 +1,1021 @@ +dcmtk (3.6.9-5) unstable; urgency=medium + + * d/control: relax dependency on dcmtk-data. Closes: #1098944 + * 0012-CVE-2025-2357.patch: new: fix CVE-2025-2357. (Closes: #1100724) + * documentation: Spring cleanups. Closes: #1095639 + + -- Mathieu Malaterre Fri, 21 Mar 2025 12:45:44 +0100 + +dcmtk (3.6.9-4) unstable; urgency=medium + + * Team upload. + * Reinstate 0007-CVE-2024-47796.patch and 0008-CVE-2024-52333.patch. + These were not part of dcmtk 3.6.9 upstream and still apply. + Thanks to Salvatore Bonaccorso + * 0009-CVE-2025-25475.patch: new: fix CVE-2025-25475. (Closes: #1098373) + * 0010-CVE-2025-25474.patch: new: fix CVE-2025-25474. (Closes: #1098374) + * 0011-CVE-2025-25472.patch: new: fix CVE-2025-25472. + + -- Étienne Mollier Wed, 19 Feb 2025 22:30:57 +0100 + +dcmtk (3.6.9-3) unstable; urgency=medium + + * d/patches: Remove old unused patches + * d/doc: Make sure to reference 3.6.9 path + * d/watch: Properly watch upstream on github + + -- Mathieu Malaterre Tue, 18 Feb 2025 12:05:41 +0100 + +dcmtk (3.6.9-2) experimental; urgency=medium + + * d/t/run-unit-test: Adapt to new installation + + -- Mathieu Malaterre Tue, 11 Feb 2025 08:12:50 +0100 + +dcmtk (3.6.9-1) experimental; urgency=medium + + * New upstream version 3.6.9 + * d/install: Migrate to new SOVERSION + * d/patches: Refresh patches + + -- Mathieu Malaterre Thu, 30 Jan 2025 13:16:59 +0100 + +dcmtk (3.6.8-7) unstable; urgency=medium + + * Team upload. + * 0001-Fixed-unchecked-typecasts-of-DcmItem-search-results.patch. + Patch refreshed. + * 0004-Fixed-two-segmentation-faults.patch: unfuzz. + * 0007-CVE-2024-47796.patch: new. + This patch addresses CVE-2024-47796. (Closes: #1093043) + * 0008-CVE-2024-52333.patch: new. + This patch addresses CVE-2024-52333. (Closes: #1093047) + + -- Étienne Mollier Sat, 18 Jan 2025 16:30:29 +0100 + +dcmtk (3.6.8-6) unstable; urgency=medium + + * d/t/run-unit-test: Fix unit-test for new release. Closes: #1075917 + * d/patches: Fixed possible overflows when allocating memory. Closes: #1074483 + + -- Mathieu Malaterre Mon, 08 Jul 2024 13:31:04 +0200 + +dcmtk (3.6.8-5) unstable; urgency=medium + + * Upload 3.6.8 to unstable + * d/control: Bump Std-Vers to 4.7.0 no changes needed + + -- Mathieu Malaterre Fri, 05 Jul 2024 11:24:00 +0200 + +dcmtk (3.6.8-4) experimental; urgency=medium + + * d/rules: Add dcmtk-data package + * d/control: Add missing dependency on libjs-jquery. Closes: #989108 + * d/control: Reduce number of dependencies for -dev package + * New upstream version 3.6.8 + + -- Mathieu Malaterre Mon, 24 Jun 2024 20:43:54 +0200 + +dcmtk (3.6.7-15) unstable; urgency=medium + + * Team upload. + [ Adrian Bunk ] + * Update two of the previously applied patches to avoid breaking the ABI. + Closes: #1070207. + + -- Santiago Vila Mon, 24 Jun 2024 12:30:00 +0200 + +dcmtk (3.6.7-14) unstable; urgency=medium + + * Team upload. + [ Emanuele Rocca ] + * Do not drop graphviz from build-depends-indep for armhf and armel. + [ Adrian Bunk ] + * CVE-2024-28130: Segmentation faults due to incorrect typecast + (Closes: #1070207) + * CVE-2024-34508: Segmentation fault via invalid DIMSE message + * CVE-2024-34509: Segmentation fault via invalid DIMSE message + + -- Santiago Vila Wed, 05 Jun 2024 14:30:00 +0200 + +dcmtk (3.6.7-13) unstable; urgency=medium + + * Team upload. + * Marked Debian-specific patches as not needing forwarding to + upstream. + * d/control: add explicit dependency on libnsl-dev. Closes: #1066422. + + -- Michael R. Crusoe Tue, 19 Mar 2024 15:24:15 +0100 + +dcmtk (3.6.7-12) unstable; urgency=medium + + * Team upload. + + [ Emanuele Rocca ] + * Do not build-depend on graphviz on armhf and armel. The package is + currently not installable on those arches due to the ongoing t64 + transition. Closes: #1067147 + + -- Michael R. Crusoe Tue, 19 Mar 2024 12:30:03 +0100 + +dcmtk (3.6.7-11) unstable; urgency=medium + + * Fix typo in target distribution during upload. + + -- Sebastien Jodogne Tue, 19 Mar 2024 11:54:38 +0100 + +dcmtk (3.6.7-10) unreleased; urgency=medium + + * Fix build on armel. Closes: #1060104 + + -- Sebastien Jodogne Tue, 19 Mar 2024 11:03:28 +0100 + +dcmtk (3.6.7-9.1) unstable; urgency=medium + + * Non-maintainer upload. + * Rename libraries for 64-bit time_t transition. Closes: #1062022 + + -- Michael Hudson-Doyle Wed, 28 Feb 2024 01:17:02 +0000 + +dcmtk (3.6.7-9) unstable; urgency=medium + + * Team upload. + * Fix postrm + Closes: #1038776 + + -- Andreas Tille Thu, 22 Jun 2023 09:53:48 +0200 + +dcmtk (3.6.7-8) unstable; urgency=medium + + * d/patches: Fix CVE-2022-43272. Closes: #1027165 + * d/control: Bump Std-Vers to 4.6.2 no changes needed + + -- Mathieu Malaterre Wed, 04 Jan 2023 11:15:13 +0100 + +dcmtk (3.6.7-7) unstable; urgency=medium + + [ Andreas Tille ] + * Team upload. + * Prevent bashism in run-unit-test + * Enable running run-unit-test from any directory + * Add maintscript to remove outdated conffiles + Closes: #990134 + * On purge remove /var/lib/dcmtk/db/STORESCP if exists + Closes: #990135 + + [ Mathieu Malaterre ] + * d/control: Add missing dependency on libjs-jquery. Closes: #989108 + + -- Andreas Tille Tue, 06 Dec 2022 11:52:52 +0100 + +dcmtk (3.6.7-6) unstable; urgency=medium + + [ Mathieu Malaterre ] + * Team upload. + * d/control: libdcmtk4 is not present in o-o-stable + * d/postrm: Fix possible-bashism-in-maintainer-script + * d/patches: CVE-2022-2119 CVE-2022-2120. Closes: #1017743 + + [ Mohammed Bilal ] + * Add autopkgtests + * Bump Standards-Version to 4.6.1 (no changes needed) + + -- Mathieu Malaterre Mon, 22 Aug 2022 17:02:26 +0200 + +dcmtk (3.6.7-5) unstable; urgency=medium + + [ Gregory C. Sharp ] + * Change CMAKE_INSTALL_DATADIC to CMAKE_INSTALL_DATADIR in an attempt + to fix dictionary load failure + + -- Andreas Tille Fri, 17 Jun 2022 21:41:44 +0200 + +dcmtk (3.6.7-4) unstable; urgency=medium + + * Team upload. + * Fix install dir of dictionaries + Closes: #1012417 + + -- Andreas Tille Tue, 07 Jun 2022 09:05:06 +0200 + +dcmtk (3.6.7-3) unstable; urgency=medium + + * Source-only upload + * Breaks+Replaces: libdcmtk16 + + -- Andreas Tille Mon, 06 Jun 2022 19:39:49 +0200 + +dcmtk (3.6.7-2) unstable; urgency=medium + + * Team upload. + * Upstream has bumped SONAME thus rename binary package for shared + library + Closes: #1010536 + + -- Andreas Tille Wed, 04 May 2022 09:08:00 +0200 + +dcmtk (3.6.7-1) unstable; urgency=medium + + * Team upload. + * New upstream version + Closes: #1010474 + * Point watch file to Github + * Drop useless get-orig-source target (routine-update) + * Remove trailing whitespace in debian/changelog (routine-update) + * Remove trailing whitespace in debian/rules (routine-update) + * Drop debian/gbp.conf + * Install pkgconfig file + * Review d/copyright + * Drop unneeded lintian-override + + -- Andreas Tille Tue, 03 May 2022 10:28:02 +0200 + +dcmtk (3.6.6-6) UNRELEASED; urgency=medium + + * d/dcmtk.postrm: Added check to remove dcmtk user (Closes: #987972) + * d/dcmtk.postinst: Change dcmtk user shell to nologin + + -- Lance Lin Wed, 13 Apr 2022 19:36:57 +0700 + +dcmtk (3.6.6-5) unstable; urgency=medium + + * d/rules: Re-exposed --interleave-none option. Closes: #1001703 + * d/rules: Start using c++17 since default for GCC-11 + + -- Mathieu Malaterre Thu, 06 Jan 2022 16:33:20 +0100 + +dcmtk (3.6.6-4) unstable; urgency=medium + + * d/u/metadata: Add publication about DCMTK + * d/patches: Add new patch to fix random unit test failures + * d/control: Bump Std-Vers to 4.6.0, no changes needed + * d/watch: Update to latest uscan version + * d/rules: Remove as-needed-linker-flag + * d/control: Add missing Rules-Requires-Root: no + * d/patches: Import bug-fixes from git/master + + -- Mathieu Malaterre Wed, 08 Dec 2021 10:27:21 +0100 + +dcmtk (3.6.6-3) unstable; urgency=medium + + * d/patches: Fix compilation of dicomscope. Closes: #1000220 + * d/control: Add myself as Uploader + + -- Mathieu Malaterre Tue, 23 Nov 2021 08:15:20 +0100 + +dcmtk (3.6.6-2) unstable; urgency=medium + + * Team upload. + * d/patches: Fix unit test suite on big endian machine + + -- Mathieu Malaterre Thu, 18 Nov 2021 08:44:13 +0100 + +dcmtk (3.6.6-1) unstable; urgency=medium + + [ Andreas Tille ] + * Team upload. + * Remove patches thanks to a hint by Jörg Riesmeier (see #981326) + * Rename debian/.gitlab-ci.yml to debian/salsa-ci.yml to use a unique + name in all Debian Med packages + + [ Mathieu Malaterre ] + * d/rules: Set ICONV to OFF + * d/rules: Remove bogus setting of c++11 in d/rules + * d/rules: Prefer stdlibc (iconv) setting over ICU. Closes: #988417 + * d/rules: Prefer STL over DCMTK convenient copy + * d/rules: DCMTK_ENABLE_CHARSET_CONVERSION is an internal variable + * d/patches: Properly install dcm2xml.dtd/dumppat.txt. Closes: #993025 + + -- Mathieu Malaterre Wed, 17 Nov 2021 11:07:39 +0100 + +dcmtk (3.6.6-1~ext1) experimental; urgency=medium + + * d/ci: delete some generated files + * New upstream version 3.6.6 + * d/: Update so-version + * d/copyright: Add new files with specific copyright + + -- Gert Wollny Sun, 11 Apr 2021 17:24:39 +0200 + +dcmtk (3.6.5-1) unstable; urgency=medium + + * debian/control: switch to comat level 10 + * d/rules: don't install libcharls.so Closes: #971433 + Closes: #971412 + * d/control: cme fix dpkg + * d/compat: remove obsolete file + + -- Gert Wollny Tue, 10 Nov 2020 15:08:59 +0100 + +dcmtk (3.6.5-1~exp1) experimental; urgency=medium + + [ Andreas Tille ] + * Remove myself as Uploader + + [ Gert Wollny ] + * New upstream version 3.6.5 + * d/p: Update patches and remove 08 (applied upstream) + * Update SO version to 15 + * d/copyright: all-over year and new files + + -- Gert Wollny Fri, 20 Dec 2019 21:31:03 +0100 + +dcmtk (3.6.4-2.1) unstable; urgency=medium + + * Non-maintainer upload. + * Revert to convenient charls copy for now. Closes: #923433 + + -- Mathieu Malaterre Tue, 28 May 2019 21:39:19 +0200 + +dcmtk (3.6.4-2) unstable; urgency=medium + + * d/rules,d/p/03: Fix DATADIC path, Closes: #913304 + + -- Gert Wollny Sat, 19 Jan 2019 10:36:10 +0100 + +dcmtk (3.6.4-1) unstable; urgency=medium + + * d/p/09: Fix build with CharLS 2.0 + * Upload to unstable + + -- Gert Wollny Sat, 12 Jan 2019 16:10:06 +0100 + +dcmtk (3.6.4-1~exp1) experimental; urgency=medium + + [ Jelmer Vernooij ] + * Move source package lintian overrides to debian/source. + * Trim trailing whitespace. + + [ Gert Wollny ] + * New upstream version 3.6.4 + * d/p: Update patches for new release and remove old patches + * d/control: Update lib package name + * d/rules: Change dict install directory to new lib name + * d/dcmtk.postinst: Disable running chown recursively + * d/copyright: Add new libcmr files with non-OFFICE copyright + + -- Gert Wollny Sun, 23 Dec 2018 10:43:41 +0100 + +dcmtk (3.6.3-1~exp1) experimental; urgency=medium + + * d/* correct by running 'git fix dpkg' + * d/watch: update link (thanks Pedro Fernando Arizpe Gómez) + * New upstream version 3.6.3 + * d/patches: Update patches to apply to new version + * d/ .gitlab-ci.yml: Add this CI file + * p/d/03: Set DATDIC in CMakeLists.txt + * d/ Update SO version to 13 + * d/p/03: Correct install path + * d/copyright: Update for added and moved files + + -- Gert Wollny Sat, 11 Aug 2018 09:35:25 +0200 + +dcmtk (3.6.2-3) unstable; urgency=medium + + * d/control: Remove Juergen Salk from uploaders, Closes: #846787 + * d/p/08: set CANONICAL_HOST_TYPE from cmake, Closes: #859203 + * d/p/09: Fix format errors, Closes: #865418 + * d/p/10:Add fix for possible string overflow + + -- Gert Wollny Wed, 06 Sep 2017 10:09:08 +0000 + +dcmtk (3.6.2-2) unstable; urgency=medium + + * d/rules: install examples in arch-indep build to fix -A build + + -- Gert Wollny Tue, 22 Aug 2017 12:46:09 +0000 + +dcmtk (3.6.2-1) unstable; urgency=medium + + * Upload to unstable + * d/control: Standards version 4.1.0 (no changes needed) + + -- Gert Wollny Tue, 22 Aug 2017 10:05:31 +0000 + +dcmtk (3.6.2-1~exp1) experimental; urgency=medium + + * Update d/watch + * New upstream version 3.6.2 Closes: #868867 + * d/p/* refresh patches + * drop d/p/09_ because it was applied upstream + * s/* update SO version + * d/copyright: add new files to copyright + * d/rules: drop more test programs and add manpage for msgserv + * d/rules enable use of C++11 features + * d/control: Add build dependency on help2man + + -- Gert Wollny Wed, 02 Aug 2017 13:48:47 +0000 + +dcmtk (3.6.1~20170228-2) unstable; urgency=medium + + * d/p/09: Improve numerical stability by rounding the time to + the six decimal digits supported by dicom. Closes: #859204 + #865452 + * d/control: Correct dependency on libssl-dev for libdcmtk-dev + * d/control: Update standards version (no action needed) + * d/control: cme fix dpkg-control + + -- Gert Wollny Thu, 22 Jun 2017 07:55:04 +0000 + +dcmtk (3.6.1~20170228-1) unstable; urgency=medium + + * Upload to unstable Closes: #747167 + * d/rules: correctly enabling private tags, Closes: #859201 + * d/rules: enable C++11 build + + -- Gert Wollny Tue, 20 Jun 2017 18:58:39 +0000 + +dcmtk (3.6.1~20170228-1~exp1) experimental; urgency=medium + + [ Gert Wollny ] + * Set dependency to libssl-dev, Closes: #851083 + * Update patches to new upstream + * d/p/02: correct calls to JpegLsEncode because system CharLS + interface of the bundled version differs from Debian version + * New upstream version 3.6.1~20170228 + * Change to libdcmtk11 because of soname change + * Remove d/p/09 patch + * d/* Update package names and build rules to new SO-version + * d/copyright: mention Frank Vanden Berghen and his AFPL license + Thanks for spotting this: Thorsten Alteholz + * d/control: update self e-mail address in uploaders + * d/copyright: Add copyright information for new files + + [ Mathieu Malaterre ] + * d/control: Remove self from Uploaders + + -- Gert Wollny Mon, 20 Feb 2017 13:15:40 +0100 + +dcmtk (3.6.1~20160216-2) unstable; urgency=medium + + * d/p/08: remove SYSTEM_PROCESSOR usage for reproducible builds + * d/p/09: add patch to enable compileing against openssl-1.1 + Closes: #828281 + * d/p/04: update patch to remove duplicate entries + * d/rules: add hardening flags + * d/control: change conflict with libinsighttoolkit4-dev to breaks + + -- Gert Wollny Sun, 03 Jul 2016 13:58:34 +0000 + +dcmtk (3.6.1~20160216-1) experimental; urgency=medium + + [ Gert Wollny ] + * New upstream version + * d/p/*: rebase patches + * d/p/06: Update patch to use ABI version as part of the library name + * d/*: Update files to correspond to new soversion 8. + Jumping from 5 to 8 because upstream uses 8. + * d/copyright: Update copyright information + * d/control: update standards version to 3.9.8 + * d/control + d/rules: drop dbg package in favour of antomatic ones + + [ Mattia Rizzolo ] + * d/control: Use secure URIs (https) in Vcs-Git. + * d/libdcmtk5.dirs: removed as useless. + * d/dcmtk.preinst: 'set -e' in the script instead of the shebang, + fixes lintian's maintainer-script-without-set-e + + -- Gert Wollny Sun, 08 May 2016 21:59:06 +0000 + +dcmtk (3.6.1~20150924-5) unstable; urgency=medium + + * d/libdcmtk-dev revert last change since ITK-4.9 now supports + properly the dcmtk*.cmake files. + * d/control: conflict with older versions of libinsighttoolkit-dev + + -- Gert Wollny Sat, 30 Jan 2016 23:11:21 +0100 + +dcmtk (3.6.1~20150924-4) unstable; urgency=medium + + * Do not install DCMTK*.cmake files, they break things. + cmake's FindDCMTK handles this case better without these files. + + -- Gert Wollny Tue, 05 Jan 2016 21:42:56 +0100 + +dcmtk (3.6.1~20150924-2) unstable; urgency=medium + + * Update internal use of DCMDICT path Closes: #807691 + * Correct Apache-2.0 copyright + + -- Gert Wollny Fri, 11 Dec 2015 17:42:45 +0100 + +dcmtk (3.6.1~20150924-1) unstable; urgency=medium + + * New upstream version + * Move vcs to git + * Remove dcmtk-www, because it is no longer provided by upstream + * Because of ABI change rename library package to libdcmtk5 + * Add libcharls-dev to libdcmtk-dev dependencies (reason: see below) + + -- Gert Wollny Tue, 01 Dec 2015 02:46:03 +0100 + +dcmtk (3.6.1~20150629-7) unstable; urgency=medium + + * d/control: Add more dependencies to libdcmtk-dev, because the + cmake based build system creates a cmake use file that pulls in + these libraries for linking. + + -- Gert Wollny Sun, 29 Nov 2015 21:16:37 +0100 + +dcmtk (3.6.1~20150629-6) unstable; urgency=medium + + * Change Provides:libdcmtk-dev to Provides:libdcmtk2-dev Closes: #805718 + + -- Gert Wollny Sat, 21 Nov 2015 13:58:54 +0100 + +dcmtk (3.6.1~20150629-5) unstable; urgency=medium + + * d/control: Add conflict/replace for libdcmtk4-dev + + -- Gert Wollny Thu, 12 Nov 2015 13:30:12 +0100 + +dcmtk (3.6.1~20150629-4) unstable; urgency=medium + + * Add patch soversion_abi.patch to change not only the library file + name but also in the cmake related files. + * Add patch dont_export.. to not export all executables for cmake + Closes: #803304 + * d/rules: remove code to add abi-suffix to libraries on install + * Add Gert Wollny to uploaders + + -- Gert Wollny Thu, 29 Oct 2015 11:51:54 +0100 + +dcmtk (3.6.1~20150629-3) unstable; urgency=medium + + * Adapt prerm script for dash + Closes: #803008 + * small DEP5 fixes + + -- Andreas Tille Mon, 26 Oct 2015 12:11:22 +0100 + +dcmtk (3.6.1~20150629-2) unstable; urgency=medium + + * debian/copyright: DEP5 + * unversioned -dev package + Closes: #800481 + * Inform users about non-backward compatible changes in dcmtk database + when using dcmqrscp + Closes: #799039 + * suppress lintian warnings no-symbols-control-file + * create empty dir /var/lib/dcmtk/db in package + Closes: #801735 + + -- Andreas Tille Fri, 23 Oct 2015 23:29:57 +0200 + +dcmtk (3.6.1~20150629-1) unstable; urgency=medium + + * New upstream version + * cme fix dpkg-control + * libdcmtk4-dev conflicts libdcmtk2-dev + Closes: #769151 + * Do gcc-5 transition on new version + * Conflicts/Replaces: libdcmtk3 + Closes: #754583 + * Do not hardcode path to invoke-rc.d in maintainer scripts + * Fix apache configuration (thanks for the patch to HAYASHI Kentaro + ) + Closes: #779700 + * Apply patch to fix performance problem (thanks for the patch to + Sebastien Jodogne ) + Closes: #785400) + * Enable reproducible build (Thanks for the patch to Maria Valentina Marin + ) + Closes: #790133 + + -- Andreas Tille Sun, 13 Sep 2015 20:31:57 +0200 + +dcmtk (3.6.1~20140617-3) experimental; urgency=low + + * Fix building/running on sparc. + * Really remove md5 files from doxygen HTML output + + -- Mathieu Malaterre Mon, 07 Jul 2014 09:09:49 +0200 + +dcmtk (3.6.1~20140617-2) experimental; urgency=low + + * Fix SIGSEGV on sparc + * Fix removal of md5 files on buildds + + -- Mathieu Malaterre Tue, 01 Jul 2014 11:15:54 +0200 + +dcmtk (3.6.1~20140617-1) experimental; urgency=low + + * New snapshot. Use ABI=4 as per upstream + * Refreshed patches, removed applied upstream + + -- Mathieu Malaterre Wed, 18 Jun 2014 08:44:51 +0200 + +dcmtk (3.6.1~20131114-7) experimental; urgency=low + + * Bump Std-Vers to 3.9.5, no changes needed + * Fix failing SCP test. Closes: #740342 + + -- Mathieu Malaterre Fri, 28 Feb 2014 13:19:20 +0100 + +dcmtk (3.6.1~20131114-6) experimental; urgency=low + + * Remove non-ASCII char. Closes: #732673 + * Fix setuid return value. Closes: #731434 + * Update old copyright. Closes: #732672 + + -- Mathieu Malaterre Thu, 27 Feb 2014 17:33:18 +0100 + +dcmtk (3.6.1~20131114-5) experimental; urgency=low + + * Increase timeout a little to fix issue on s390x + + d/p/timeout.patch + + -- Mathieu Malaterre Fri, 20 Dec 2013 11:02:48 +0100 + +dcmtk (3.6.1~20131114-4) experimental; urgency=low + + * Import patch from git (upstream) + + -- Mathieu Malaterre Thu, 19 Dec 2013 17:33:18 +0100 + +dcmtk (3.6.1~20131114-3) experimental; urgency=low + + * Another round of compilation fixes. Closes: #731434 + * Fix installation. Closes: #731752 + * Another attempt at fixing test. Closes: #730582 + + -- Mathieu Malaterre Tue, 10 Dec 2013 15:15:52 +0100 + +dcmtk (3.6.1~20131114-2) experimental; urgency=low + + * Fix failing test (ofstd_markup_6). Closes: #730582 + * Remove some spelling error in man pages. Closes: #730635 + * Remove CMake overriding our compilation flags. Closes: #730636 + + -- Mathieu Malaterre Thu, 05 Dec 2013 12:50:28 +0100 + +dcmtk (3.6.1~20131114-1) experimental; urgency=low + + * New snapshot. Closes: #723091, #715039 + * Refresh patches + + -- Mathieu Malaterre Fri, 22 Nov 2013 19:55:25 +0100 + +dcmtk (3.6.1~20121102-5) experimental; urgency=low + + * Fix jquery.js removal when executing build-indep + + -- Mathieu Malaterre Wed, 04 Sep 2013 09:08:29 +0200 + +dcmtk (3.6.1~20121102-4) experimental; urgency=low + + * Fix buffer overflow in StudyInstanceUID. Closes: #715011 + * Fix apache 2.4 transition. Closes: #669740 + * Fix -doc installation. Closes: #717968 + + -- Mathieu Malaterre Mon, 02 Sep 2013 11:13:46 +0200 + +dcmtk (3.6.1~20121102-3) experimental; urgency=low + + * fix lintian warning about jquery.js (doxygen generated) + * remove internal tests suite from dcmtk package + * cope with cmake and #701231 + * Update patch d/p/bug706062.patch. Closes: #706062 + * Upgrade for apache 2.4. Closes: #669740 + + -- Mathieu Malaterre Wed, 19 Jun 2013 13:51:22 +0200 + +dcmtk (3.6.1~20121102-2) experimental; urgency=low + + * Install *.dic to versioned dir (See #709123) + * Add preliminary work to get iconv support + + -- Mathieu Malaterre Fri, 31 May 2013 17:39:30 +0200 + +dcmtk (3.6.1~20121102-1) experimental; urgency=low + + * Use new dh syntax + * Run w-a-s. Use B-D-I for doxygen + * Switch to cmake build system (allows parallel builds). Closes: #701801 + * Use system CharLS. Closes: #705923 + * Use SOP class uid with option. Closes: #706062 + + -- Mathieu Malaterre Wed, 15 May 2013 10:34:58 +0200 + +dcmtk (3.6.0-13) unstable; urgency=low + + * Remove d/README.source, since source-format 3.0 + * Update dcmtk-www README for install instructions + * Remove obsolete DMUA flag + * Bump Std-Vers to 3.9.4, no changes needed + * Provide a debug package. Closes: #690733 + * Fix SIGSEGV. Closes: #703716 + + -- Mathieu Malaterre Wed, 15 May 2013 10:10:29 +0200 + +dcmtk (3.6.0-12) unstable; urgency=low + + [ Andrey Rahmatullin ] + * Fix underlinked libraries. Closes: #677721 + - debian/patches/underlink.patch + + -- Mathieu Malaterre Thu, 20 Dec 2012 13:20:45 +0100 + +dcmtk (3.6.0-11) unstable; urgency=low + + * Fix compilation with gcc 4.7. Closes: #674361 + - debian/patches/bug674361.patch + * Make sure to link against libxml2. Closes: #510120 + * Fix some underlinking. Closes: #674586 + - debian/patches/underlink.patch + + -- Mathieu Malaterre Thu, 31 May 2012 11:31:16 +0200 + +dcmtk (3.6.0-10) unstable; urgency=low + + [ Andreas Tille ] + * debian/dcmtk.prerm: when purging dirs in /var/lib need to be + removed in advance. Closes: #660346 + + [ Mathieu Malaterre ] + * Use libpng-dev. Closes: #662296 + * Use libtiff-dev for transition to tiff5 + * Bump Std-Vers to 3.9.3. No changes needed + + -- Mathieu Malaterre Tue, 06 Mar 2012 23:01:59 +0100 + +dcmtk (3.6.0-9) unstable; urgency=low + + * Remove dot wrapper, not required anymore. + * Generate doc using svg instead of png to save disk space + * Fix compilation. Thanks to Bhavani Shankar. Closes: #646316 + * Fix VCS URLs + + -- Mathieu Malaterre Wed, 23 Nov 2011 16:31:18 +0100 + +dcmtk (3.6.0-8) unstable; urgency=low + + * Adding a storescp daemon + * Remove convenient copy of CharLS. Closes: #631100 + + -- Mathieu Malaterre Tue, 19 Jul 2011 17:08:19 +0200 + +dcmtk (3.6.0-7) unstable; urgency=low + + * Add a patch (from current git/master) to fix a regression. Closes: #630781 + * Another fix to remove symlink only if exists + * Remove deprecated lintian override + + -- Mathieu Malaterre Fri, 17 Jun 2011 14:43:37 +0200 + +dcmtk (3.6.0-6) unstable; urgency=low + + * Make sure OFFIS_DCMTK_VERSION_NUMBER is really a number. Closes: #628168 + * Update Standard Version to 3.9.2. No changes needed + * Fix some lintian errors in control file + * Fix piuparts reports on remaining dcmtk apache configuration file + + -- Mathieu Malaterre Tue, 31 May 2011 23:28:12 +0200 + +dcmtk (3.6.0-5) unstable; urgency=low + + * Fix invalid dep. to apache with apache2 + * Remove explicit `invoke-rc.d dcmqrscp stop` since it makes package + un-removable. Let dh_installinit handles it + + -- Mathieu Malaterre Mon, 28 Mar 2011 15:33:06 +0200 + +dcmtk (3.6.0-4) unstable; urgency=low + + * new release fixes segfault. Closes: #615977 + * Update README. Closes: #618686 + * 3.6.0 is already packaged. Closes: #610855 + * Update postrm script. Closes: #618688 + + -- Mathieu Malaterre Thu, 17 Mar 2011 17:32:48 +0100 + +dcmtk (3.6.0-3) unstable; urgency=low + + * Properly conflict with dcmtk 3.5.4 and libdcmtk2 + * Remove reference to issue with UNIX FHS + + -- Mathieu Malaterre Tue, 08 Mar 2011 17:14:24 +0100 + +dcmtk (3.6.0-2) experimental; urgency=low + + * Update copyright to reflects 3.6.0 changes + * Update dcmtk.NEWS to reflects 3.6.0 news + * Minor update to dcmtk.README.Debian for build instructions + * Minor cosmetic changes to the patch series + + -- Mathieu Malaterre Tue, 08 Feb 2011 19:20:13 +0100 + +dcmtk (3.6.0-1) experimental; urgency=low + + [ Mathieu Malaterre ] + * New upstream: 3.6.0 + * Update SONAME to 2.0.0 because of change in log4cplus::Logger::addAppender + * Fix lintian errors on misc:Depends + * Fix lintian errors on init.d script + * Add a patch to link wth png/tiff libraries + * Update perl path patch + * debian/control: Update standards-version to 3.9.1 + * Fix new naming convention for this release + * Add get-orig-source target in rules file + * Fix CHANGES numbering into something more flexible for later revs. + * Move *.dic file to the libdcmtk2 package + * Switch to dpkg-source 3.0 (quilt) format + + [ Andreas Tille ] + * make sure *.dic file shwo up only in libdcmtk2 package + * Add -f to rm statement in clean target + + -- Andreas Tille Fri, 04 Feb 2011 22:24:40 +0100 + +dcmtk (3.5.4-4) unstable; urgency=low + + [Andreas Tille] + * Group maintenance according to Debian Med group policy + * Added myself as Uploader + * VCS fields + * Standards-Version: 3.8.3 (Added README.source) + * debhelper >= 7 + * Add passive mode to watch file + * make use of dh_install + * debian/patches/05_no_www_docs.patch: Just do not install those + files we do not need in the docs of the package in the first + place instead of removing them later + * Removed some lintian warnings + * debian/patches/06_old_patches_from_diff_gz.patch: Move changes + from diff.gz to quilt patches + * Remove unused config files from previous versions according to + http://wiki.debian.org/DpkgConffileHandling + (The former handling in preinst triggered a lintian error) + * debian/dcmtk.NEWS: Reformating according to developers reference + 6.3.4. Supplementing changelogs with NEWS.Debian files + * debian/{01_buildsystem_changes,01_fix_perl_script_path,02_dcmtk_3.5.4-3}.patch + split up patches of former maintainer into maintainable pieces + * Build-Depends: graphviz + * debian/dot: Hack to enable png:gd graphics in doxygen which was + told to be more compact and readable. The hack contains also + working code to create SVG, but I failed to patch the HTML files + to render SVG files + * debian/libdcmtk1.lintian-overrides: we bundle more than + one library in this package so the warning is void + * debian/rules: Try to make backups of original files in config + but failed for two remaining files (no idea why) + * Move all files of dcmtk-www to /usr/lib/dcmtk/cgi-bin and + provide apache configuration which enable easy access via + http://localhost/dcmtk_wlm/ + Closes: #553495 + + [Mathieu Malaterre] + * debian/rules would not honor DEB_BUILD_OPTIONS=nostrip, since + original Makefiles would hardcode call to `strip` directly + instead rely on dh_strip instead and remove direct call to + `strip` from Makefiles. + Closes: #511668, #436758 + + -- Andreas Tille Wed, 02 Dec 2009 09:54:56 +0100 + +dcmtk (3.5.4-3) unstable; urgency=low + + * debian/control: Update standards-version to 3.7.2 + * debian/dcmqrscp.init: Add LSB keyword section + * dcmnet/apps/{findscu,movescu}.cc: Apply patches in order + to fix --add-override-key bug (reported by Mike Miller + ) + Closes: #429041 + * debian/dcmtk.prerm: Stop dcmqrscp/imagectn more sanely + * debian/control: Replace ${Source-Version} by ${binary:Version} + + -- Juergen Salk Sun, 22 Jul 2007 20:41:22 +0200 + +dcmtk (3.5.4-2) unstable; urgency=low + + * debian/control: Added build dependency on autotools-dev + * debian/rules: Modified clean target to put config.{sub,guess} below ./config + * dcmdata/libsrc/Makefile.in: Modified distclean target to delete dicom.tmp as well + * debian/rules: Fixed installation path for include files + * debian/dcmtk.postinst: Fixed add{user,group} options to reveal possible error msgs + (reported by Lars Wirzenius ) + Closes: #353288 + * debian/control: Removed 'Uploaders: field. + | From: Pablo Sau + | Subject: Re: dcmtk + | Date: Thu, 19 Jan 2006 16:41:06 +0100 + | To: Juergen Salk + | Hi Juergen: + | > I am still keeping you as an active co-maintainer for the Debian + | > dcmtk packages in the debian/control file. Would you mind, if I + | > drop your name from the control file in one of the next releases? + | > + | Of course, you must do it! + | Thanks for your support of dcmtk and best regards. + | Pablo + + -- Juergen Salk Sun, 15 Jan 2006 17:31:38 +0000 + +dcmtk (3.5.4-1) unstable; urgency=low + + * New upstream release + * debian/dcmtk.NEWS: Added + * debian/copyright: Updated according to upstream's COPYRIGHT file + * debian/control: Unversioned build-dependency on libssl (now uses + OPENSSL_VERSION_NUMBER macro) + * debian/rules: Incremented SONAME version number (DcmFileFormat::loadFile changed) + * debian/rules: Changed dh_installinit --name argument to dcmqrscp + * debian/README.debian: Updated to reflect imagectn -> dcmqrscp transition + * debian/dcmtk.postinst: Added code for imagectn -> dcmqrscp transition + * debian/dcmtk.preinst: Created to handle imagectn -> dcmqrscp transition + * debian/dcmtk.postrm: Created to handle imagectn -> dcmqrscp transition + * debian/imagectn.init: Replaced by dcmqrscp.init + * debian/imagectn.default: Replaced by dcmqrscp.default + * debian/dcmtk.postinst: Added code to handle dcmtk user/group creation more sanely + * debian/control: Adjusted 'Maintainer:' field + * config/Makefile.def: Adjusted datadir and docdir + * dcmdata/libsrc/Makefile.in: Fixed bug for dicom.dic installation path + * dcmdata/apps/Makefile.in: Adjusted dcm2xml.dtd and dumppat.txt install paths + * dcmsr/apps/Makefile.in: Adjusted dsr2xml.xsd install path + * dcmwlm/perl/*.p[lh]: Adjusted perl hashbangs in CGI scripts + * dcmwlm/perl/prefs.ph: Adjusted cgi_path, html_path and data_path + * dcmqrdb/etc/dcmqrscp.cfg: Added UserName/GroupName config parameters + * dcmqrdb/etc/dcmqrscp.cfg: Commented out and adjusted example configuration + * dcmqrdb/docs/dcmqrcnf.txt: Adjusted UserName/GroupName examples + * dcmwlm/wlistdb/OFFIS: Added newline to prevent lintian "zero-bye" warning + + -- Juergen Salk Tue, 20 Dec 2005 20:29:15 +0000 + +dcmtk (3.5.3-5) unstable; urgency=low + + * ./dcmsign/libsrc/sicert.cc: Constified d2i_X509 argument to fix build + problems with libssl-0.9.8 + Closes: #335399 + * debian/control: Versioned build-depend on libssl (>= 0.9.8-1) + * ./dcmnet/etc/storescp.cfg: Added missing Verification SOP Class + + -- Juergen Salk Mon, 24 Oct 2005 20:16:56 +0000 + +dcmtk (3.5.3-4) unstable; urgency=low + + * debian/control: Added dependency on adduser for dcmtk package + * debian/control: Update Standards-Version to 3.6.2 + * debian/{control,rules}: Renamed libdcmtk0 to libdcmtk0c2 (gcc/g++-4.0 transition) + * debian/control: Added Conflicts/Replaces with previous non-c2 version + * config/{configure.in,aclocal.m4,include/cfunix.h.in}, + ofstd/libsrc/ofthread.cc: Backport HAVE_POINTER_TYPE_PTHREAD_T patch + from CVS version to fix build problems with gcc/g++-4.0 + + -- Juergen Salk Sun, 22 May 2005 22:02:31 +0200 + +dcmtk (3.5.3-3) unstable; urgency=low + + * debian/rules: Utilized binary-indep target for -doc package + (suggested by Marc 'HE' Brockschmidt ) + * debian/rules: Introduced {build,install}-{indep,arch} targets + * debian/rules: Removed unneeded dh_* calls from binary-arch target + * Removed stale debian/*.install files + + -- Juergen Salk Mon, 25 Apr 2005 20:13:09 +0200 + +dcmtk (3.5.3-2) unstable; urgency=medium + + * Added imagectn UserName/GroupName security patch + * Modified imagectn.cfg to reflect imagectn patch + * Modified debian/rules to create imagectn storage area + * Updated imagectn/docs/ctnconf.txt + * Fixed parser bug in CNF_readConfigLines() + (reported by R.M. Rutschmann ) + * Added debian/dcmtk.postinst script to create dcmtk system user/group + * Added debian/imagectn.init and debian/imagectn.default + (suggested by R.M. Rutschmann ) + * Updated debian/README.Debian + * Removed stale lintian override file + * Swapped 'Maintainer:' and 'Uploaders:' field + | From: Pablo Sau + | Subject: Re: New (inofficial) dcmtk packages available + | Date: Thu, 31 Mar 2005 16:44:50 +0200 + | > >> Why is Juergen "not official"? + | > > Historical reasons. It was Pablo who has filed the ITP for dcmtk + | > > initially. That's why we assigned maintainership to him for the + | > > first release. + | > If I understand Pablo right than he agreed that you will be put + | > in the Maintainer field. Pablo, correct me if I'm wrong. + | Yes of course,I filed the ITP for dcmtk initially but absolutely all + | work has been made by Juergen, so I think he must to be in the + | Maintainer field. + | Thanks Juergen for your great work and best regards to all of you. + + -- Juergen Salk Sat, 19 Mar 2005 22:58:21 +0100 + +dcmtk (3.5.3-1) unstable; urgency=low + + * Initial Release. + Closes: #278914 + * Adjusted toplevel Makefile and config/Makefile.def.in to fix $DESTDIR problems + * Fixed bug in config/configure.in for DCM_DICT_DEFAULT_PATH + * Modified dcmdata/libsrc/Makefile.in to adjust dicom.dic install path + * Modified dcmdata/apps/Makefile.in to adjust dcm2xml.dtd and dumppat.txt install paths + * Modified dcmsr/apps/Makefile.in to adjust dsr2xml.xsd install path + * Modified dcmwlm/Makefile.in to prevent wwwapps from being installed in ${bindir}. + * Set GENERATE_HTMLHELP = NO in doxygen/htmldocs to avoid index.hh?.gz cruft + * Adjusted hashbangs in dcmwlm/perl CGI scripts + * Adjusted cgi_path, html_path and data_path in dcmwlm/perl/prefs.ph + * Added newline in dcmwlm/wlistdb/OFFIS to prevent lintian "zero-bye" warning + + -- Juergen Salk Sat, 30 Oct 2004 11:02:48 +0200 diff --git a/control b/control new file mode 100644 index 00000000..fa8eaed3 --- /dev/null +++ b/control @@ -0,0 +1,104 @@ +Source: dcmtk +Maintainer: Debian Med Packaging Team +Uploaders: Gert Wollny , Mathieu Malaterre +Section: science +Priority: optional +Build-Depends: cmake, + debhelper-compat (= 13), + dpkg-dev (>= 1.22.5), + gettext, + help2man, + libnsl-dev, + libpng-dev, + libsndfile1-dev, + libssl-dev, + libtiff-dev, + libwrap0-dev, + libxml2-dev, + xxd, + zlib1g-dev +Build-Depends-Indep: doxygen, graphviz +Standards-Version: 4.7.0 +Vcs-Browser: https://salsa.debian.org/med-team/dcmtk +Vcs-Git: https://salsa.debian.org/med-team/dcmtk.git +Homepage: https://dicom.offis.de/dcmtk +Rules-Requires-Root: no + +Package: dcmtk +Architecture: any +Depends: adduser, ${misc:Depends}, ${shlibs:Depends} +Description: OFFIS DICOM toolkit command line utilities + DCMTK includes a collection of libraries and applications for examining, + constructing and converting DICOM image files, handling offline media, + sending and receiving images over a network connection, as well as + demonstrative image storage and worklist servers. + . + This package contains the DCMTK utility applications. + . + Note: This version was compiled with libssl support. + +Package: dcmtk-data +Architecture: all +Multi-Arch: foreign +Depends: ${misc:Depends} +Description: OFFIS DICOM toolkit data files + DCMTK includes a collection of libraries and applications for examining, + constructing and converting DICOM image files, handling offline media, + sending and receiving images over a network connection, as well as + demonstrative image storage and worklist servers. + . + This package contains the DCMTK data files. + +Package: libdcmtk19 +Architecture: any +Section: libs +Depends: dcmtk-data (>= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} +Multi-Arch: same +Description: OFFIS DICOM toolkit runtime libraries + DCMTK includes a collection of libraries and applications for examining, + constructing and converting DICOM image files, handling offline media, + sending and receiving images over a network connection, as well as + demonstrative image storage and worklist servers. + . + This package contains the runtime libraries for the DCMTK utility + applications. + . + Note: This version was compiled with libssl support. + +Package: libdcmtk-dev +Architecture: any +Section: libdevel +Depends: libdcmtk19 (= ${binary:Version}), + libnsl-dev, + libwrap0-dev, + libxml2-dev, + libz-dev, + ${misc:Depends} +Suggests: dcmtk-doc +Provides: libdcmtk19-dev +Description: OFFIS DICOM toolkit development libraries and headers + DCMTK includes a collection of libraries and applications for examining, + constructing and converting DICOM image files, handling offline media, + sending and receiving images over a network connection, as well as + demonstrative image storage and worklist servers. + . + This package contains development libraries and headers for DCMTK. You + only need to install this if you are developing programs that use the + DCMTK libraries. + . + Note: This version was compiled with libssl support. + +Package: dcmtk-doc +Architecture: all +Section: doc +Depends: libjs-jquery, ${misc:Depends} +Suggests: dcmtk, libdcmtk-dev +Multi-Arch: foreign +Description: OFFIS DICOM toolkit documentation + DCMTK includes a collection of libraries and applications for examining, + constructing and converting DICOM image files, handling offline media, + sending and receiving images over a network connection, as well as + demonstrative image storage and worklist servers. + . + This package contains the on-line documentation for the DCMTK libraries + and utilities in HTML format. diff --git a/copyright b/copyright new file mode 100644 index 00000000..4e05b0a9 --- /dev/null +++ b/copyright @@ -0,0 +1,566 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: DCMTK +Upstream-Contact: DCMTK Team +Source: https://github.com/commontk/DCMTK + +Files: * +Copyright: 1994-2019, OFFIS e.V. +License: OFFISeV + +Files: dcmnet/include/dcmtk/dcmnet/dimse.h + dcmnet/include/dcmtk/dcmnet/assoc.h + dcmnet/include/dcmtk/dcmnet/dicom.h + dcmnet/include/dcmtk/dcmnet/dcompat.h + dcmnet/include/dcmtk/dcmnet/diutil.h + dcmnet/libsrc/dimstore.cc + dcmnet/libsrc/assoc.cc + dcmnet/libsrc/dulextra.cc + dcmnet/libsrc/dcompat.cc + dcmnet/libsrc/diutil.cc + dcmnet/libsrc/dimcmd.h + dcmnet/libsrc/dimfind.cc + dcmnet/libsrc/dimse.cc + dcmnet/libsrc/dimcmd.cc + dcmnet/libsrc/dimcancl.cc + dcmnet/libsrc/dimecho.cc + dcmnet/libsrc/dimmove.cc +Copyright: 1993/1994, OFFIS, Oldenburg University and CERIUM +License: OFFIS + This software and supporting documentation were + developed by + . + Institut OFFIS + Bereich Kommunikationssysteme + Westerstr. 10-12 + 26121 Oldenburg, Germany + . + Fachbereich Informatik + Abteilung Prozessinformatik + Carl von Ossietzky Universitaet Oldenburg + Ammerlaender Heerstr. 114-118 + 26111 Oldenburg, Germany + . + CERIUM + Laboratoire SIM + Faculte de Medecine + 2 Avenue du Pr. Leon Bernard + 35043 Rennes Cedex, France + . + for CEN/TC251/WG4 as a contribution to the Radiological + Society of North America (RSNA) 1993 Digital Imaging and + Communications in Medicine (DICOM) Demonstration. + . + THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER OFFIS, + OLDENBURG UNIVERSITY NOR CERIUM MAKE ANY WARRANTY REGARDING + THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR + FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER + DISEASES OR ITS CONFORMITY TO ANY SPECIFICATION. THE + ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF THE SOFTWARE + IS WITH THE USER. + . + Copyright of the software and supporting documentation + is, unless otherwise stated, jointly owned by OFFIS, + Oldenburg University and CERIUM and free access is hereby + granted as a license to use this software, copy this + software and prepare derivative works based upon this + software. However, any distribution of this software + source code or supporting documentation or derivative + works (source code and supporting documentation) must + include the three paragraphs of this copyright notice. + +Files: dcmnet/include/dcmtk/dcmnet/dul.h + dcmnet/include/dcmtk/dcmnet/dulstruc.h + dcmnet/libsrc/dul.cc + dcmnet/libsrc/dulconst.cc + dcmnet/libsrc/dulpriv.h + dcmnet/libsrc/dulpres.cc + dcmnet/libsrc/dulfsm.h + dcmnet/libsrc/dulfsm.cc + dcmnet/libsrc/dulparse.cc +Copyright: 1993, 1994 RSNA and Washington University + 1994-2021, OFFIS e.V. +License: RSNA + The software and supporting documentation for the Radiological + Society of North America (RSNA) 1993, 1994 Digital Imaging and + Communications in Medicine (DICOM) Demonstration were developed + at the + Electronic Radiology Laboratory + Mallinckrodt Institute of Radiology + Washington University School of Medicine + 510 S. Kingshighway Blvd. + St. Louis, MO 63110 + as part of the 1993 DICOM Central Test Node project for, and + under contract with, the Radiological Society of North America. + . + THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR + WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS + PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR + USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY + SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF + THE SOFTWARE IS WITH THE USER. + . + Copyright of the software and supporting documentation is + jointly owned by RSNA and Washington University, and free access + is hereby granted as a license to use this software, copy this + software and prepare derivative works based upon this software. + However, any distribution of this software source code or + supporting documentation or derivative works (source code and + supporting documentation) must include the three paragraphs of + the copyright notice. + +Files: dcmjpeg/libijg8/* + dcmjpeg/libijg12/* + dcmjpeg/libijg16/* +Copyright: 1991-1998, Thomas G. Lane. +License: JPEG + The authors make NO WARRANTY or representation, either express or implied, + with respect to this software, its quality, accuracy, merchantability, or + fitness for a particular purpose. This software is provided "AS IS", and you, + its user, assume the entire risk as to its quality and accuracy. + . + Permission is hereby granted to use, copy, modify, and distribute this + software (or portions thereof) for any purpose, without fee, subject to these + conditions: + (1) If any part of the source code for this software is distributed, then this + README file must be included, with this copyright and no-warranty notice + unaltered; and any additions, deletions, or changes to the original files + must be clearly indicated in accompanying documentation. + (2) If only executable code is distributed, then the accompanying + documentation must state that "this software is based in part on the work of + the Independent JPEG Group". + (3) Permission for use of this software is granted only if the user accepts + full responsibility for any undesirable consequences; the authors accept + NO LIABILITY for damages of any kind. + . + These conditions apply to any software derived from or based on the IJG code, + not just to the unmodified library. If you use our work, you ought to + acknowledge us. + . + Permission is NOT granted for the use of any IJG author's name or company name + in advertising or publicity relating to this software or products derived from + it. This software may be referred to only as "the Independent JPEG Group's + software". + . + We specifically permit and encourage the use of this software as the basis of + commercial products, provided that all warranty or liability claims are + assumed by the product vendor. + +Files: dcmimage/include/dcmtk/dcmimage/diqtpix.h +Copyright: 1991 by Jef Poskanzer. +License: pbmplus + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, provided + that the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. This software is provided "as is" without express or + implied warranty. +Comment: The code for the interpolatePixel() image scaling algorithm in module + dcmimgle has been derived from code written by Jef Poskanzer for the + "Extended Portable Bitmap Toolkit" (pbmplus10dec91) + +Files: ofstd/libsrc/ofstd.cc +Copyright: 2001-2017 OFFIS e.V. + 1998 Todd C. Miller + 1988 Regents of the University of California + 1999 Bob Withers +License: OFFISeV + +Files: oflog/* +Copyright: 1999-2009 Contributors to log4cplus project. +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without modifica- + tion, are permitted provided that the following conditions are met: + . + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- + DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: oflog/include/dcmtk/oflog/config/macosx.h +Copyright: 2003-2010 Christopher R. Bailey +License: Apache-2.0 + +Files: oflog/include/dcmtk/oflog/windebap.h + oflog/libsrc/windebap.cc +Copyright: 2003-2010 Eduardo Francos, Odalio SARL +License: Apache-2.0 + +Files: oflog/libsrc/clogger.cc + oflog/include/dcmtk/oflog/clogger.h +Copyright: 2011 Jens Rehsack and Tad E. Smith +License: Apache-2.0 + +Files: oflog/include/dcmtk/oflog/ntelogap.h + oflog/libsrc/ntelogap.cc +Copyright: 2003-2010 Michael CATANZARITI +License: Apache-2.0 + +Files: oflog/include/dcmtk/oflog/log4judp.h + oflog/libsrc/log4judp.cc +Copyright: 2012 Siva Chandran P +License: Apache-2.0 + +Files: config/stdcxx.m4 +Copyright: 2008 Benjamin Kosnik + 2012 Zack Weinberg + 2013 Roy Stogner + 2014, 2015 Google Inc.; contributed by Alexey Sokolov + 2015 Paul Norman + 2015 Moritz Klammler + 2016 Krzesimir Nowak +License: stdcxx-m4 + Copying and distribution of this file, with or without modification, are + permitted in any medium without royalty provided the copyright notice + and this notice are preserved. This file is offered as-is, without any + warranty. + +Files: oflog/include/dcmtk/oflog/appender.h + oflog/include/dcmtk/oflog/config/win32.h + oflog/include/dcmtk/oflog/configrt.h + oflog/include/dcmtk/oflog/consap.h + oflog/include/dcmtk/oflog/fileap.h + oflog/include/dcmtk/oflog/fstreams.h + oflog/include/dcmtk/oflog/helpers/apndimpl.h + oflog/include/dcmtk/oflog/helpers/lloguser.h + oflog/include/dcmtk/oflog/helpers/loglog.h + oflog/include/dcmtk/oflog/helpers/pointer.h + oflog/include/dcmtk/oflog/helpers/property.h + oflog/include/dcmtk/oflog/helpers/sleep.h + oflog/include/dcmtk/oflog/helpers/sockbuff.h + oflog/include/dcmtk/oflog/helpers/socket.h + oflog/include/dcmtk/oflog/helpers/strhelp.h + oflog/include/dcmtk/oflog/helpers/threadcf.h + oflog/include/dcmtk/oflog/helpers/timehelp.h + oflog/include/dcmtk/oflog/hierarchy.h + oflog/include/dcmtk/oflog/hierlock.h + oflog/include/dcmtk/oflog/layout.h + oflog/include/dcmtk/oflog/logger.h + oflog/include/dcmtk/oflog/loglevel.h + oflog/include/dcmtk/oflog/logmacro.h + oflog/include/dcmtk/oflog/ndc.h + oflog/include/dcmtk/oflog/nullap.h + oflog/include/dcmtk/oflog/socketap.h + oflog/include/dcmtk/oflog/spi/apndatch.h + oflog/include/dcmtk/oflog/spi/factory.h + oflog/include/dcmtk/oflog/spi/filter.h + oflog/include/dcmtk/oflog/spi/logevent.h + oflog/include/dcmtk/oflog/spi/logfact.h + oflog/include/dcmtk/oflog/spi/logimpl.h + oflog/include/dcmtk/oflog/spi/objreg.h + oflog/include/dcmtk/oflog/spi/rootlog.h + oflog/include/dcmtk/oflog/streams.h + oflog/include/dcmtk/oflog/syslogap.h + oflog/include/dcmtk/oflog/thread/impl/thredimp.h + oflog/include/dcmtk/oflog/thread/threads.h + oflog/include/dcmtk/oflog/tstring.h + oflog/libsrc/apndimpl.cc + oflog/libsrc/appender.cc + oflog/libsrc/config.cc + oflog/libsrc/consap.cc + oflog/libsrc/factory.cc + oflog/libsrc/fileap.cc + oflog/libsrc/filter.cc + oflog/libsrc/globinit.cc + oflog/libsrc/hierarchy.cc + oflog/libsrc/hierlock.cc + oflog/libsrc/layout.cc + oflog/libsrc/lloguser.cc + oflog/libsrc/logevent.cc + oflog/libsrc/logger.cc + oflog/libsrc/logimpl.cc + oflog/libsrc/loglevel.cc + oflog/libsrc/loglog.cc + oflog/libsrc/ndc.cc + oflog/libsrc/nullap.cc + oflog/libsrc/objreg.cc + oflog/libsrc/patlay.cc + oflog/libsrc/pointer.cc + oflog/libsrc/property.cc + oflog/libsrc/rootlog.cc + oflog/libsrc/sleep.cc + oflog/libsrc/sockbuff.cc + oflog/libsrc/socket.cc + oflog/libsrc/socketap.cc + oflog/libsrc/strhelp.cc + oflog/libsrc/syslogap.cc + oflog/libsrc/threads.cc + oflog/libsrc/timehelp.cc + oflog/libsrc/unixsock.cc + oflog/libsrc/winsock.cc +Copyright: 2001-2010 Tad E. Smith +License: Apache-2.0 + +Files: oflog/include/dcmtk/oflog/tracelog.h + oflog/libsrc/logmacro.cc +Copyright: 2010 Vaclav Haisman +License: Apache-2.0 + +Files: dcmjpls/libcharls/* +Copyright: 2007-2010, Jan de Vaan +License: BSD-3-clause + +Files: ofstd/tests/tstring.cc +Copyright: 1997-2011, OFFIS e.V. + 1994 Free Software Foundation +License: GPL-2.0+ + All rights reserved. See COPYRIGHT file for details. + . + This software and supporting documentation were developed by + . + OFFIS e.V. + R&D Division Health + Escherweg 2 + D-26121 Oldenburg, Germany + . + This file is part of the GNU ANSI C++ Library. This library is free + software; you can redistribute it and/or modify it under the terms of + the GNU General Public License as published by the Free Software + Foundation; either version 2, or (at your option) any later version. + . + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this library; see the file COPYING, if not, see + . + . + On Debian systems, the complete text of the GNU General Public License + version 2 can be found in "/usr/share/common-licenses/GPL-2". + +Files: debian/* +Copyright: 2005-2011 Juergen Salk on + 2011-2014 Mathieu Malaterre + 2014-2015 Andreas Tille + 2015-2018 Gert Wollny +License: BSD-3-clause + +Files: ofstd/include/dcmtk/ofstd/ofxml.h + ofstd/libsrc/ofxml.cc +Copyright: 2002, Frank Vanden Berghen +License: dcmtk-or-AFPL + The following license terms apply to projects that are in some way related to + the "DCMTK project", including applications + using "DCMTK project" and tools developed + for enhancing "DCMTK project". All other projects + (not related to "DCMTK project") have to use this + code under the Aladdin Free Public License (AFPL) + See the file "AFPL-license.txt" for more information about the AFPL license. + (see http://www.artifex.com/downloads/doc/Public.htm for detailed AFPL terms) + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Frank Vanden Berghen nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + THIS SOFTWARE IS PROVIDED BY Frank Vanden Berghen ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: dcmrt/* +Copyright: 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + 2013-2021, J. Riesmeier, Oldenburg, Germany +License: BSD-3-clause-Riesmeier + +Files: dcmsr/include/dcmtk/dcmsr/dsrdncsr.h + dcmsr/include/dcmtk/dcmsr/dsrsaecc.h + dcmsr/libsrc/dsrdncsr.cc + dcmsr/libsrc/dsrsaecc.cc + dcmsr/include/dcmtk/dcmsr/cmr/tid1419m.h + dcmsr/include/dcmtk/dcmsr/cmr/tid1501.h + dcmsr/include/dcmtk/dcmsr/cmr/tid15def.h + dcmsr/include/dcmtk/dcmsr/cmr/tid300.h + dcmsr/include/dcmtk/dcmsr/dsrdnflt.h + dcmsr/include/dcmtk/dcmsr/dsritcsr.h + dcmsr/include/dcmtk/dcmsr/dsrprdcc.h + dcmsr/include/dcmtk/dcmsr/dsrpficc.h + dcmsr/libsrc/dsrpficc.cc + dcmsr/libsrc/dsrplicc.cc + dcmsr/libcmr/tid1419m.cc + dcmsr/libcmr/tid1501.cc + dcmsr/libcmr/tid15def.cc + dcmsr/libsrc/dsrdnflt.cc + dcmsr/libsrc/dsritcsr.cc + dcmsr/libsrc/dsrprdcc.cc +Copyright: 2016-2021, J. Riesmeier, Oldenburg, Germany +License: OFFISeV + +Files: dcmect/include/dcmtk/dcmect/def.h + dcmect/include/dcmtk/dcmect/enhanced_ct.h + dcmect/include/dcmtk/dcmect/types.h + dcmect/libsrc/enhanced_ct.cc + dcmect/libsrc/types.cc +Copyright: 2019 Open Connections GmbH +License: OFFISeV + +Files: dcmrt/include/dcmtk/dcmrt/drttypes.h + dcmrt/libsrc/drttypes.cc + dcmrt/libsrc/drtbvcps.cc + dcmrt/libsrc/drtmas.cc +Copyright: 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + 2013-2019, J. Riesmeier, Oldenburg, Germany +License: BSD-3-clause-Riesmeier + + +Files: dcmrt/include/dcmtk/dcmrt/drmdose.h + dcmrt/include/dcmtk/dcmrt/drmsrch.h + dcmrt/include/dcmtk/dcmrt/drmstrct.h + dcmrt/include/dcmtk/dcmrt/drmplan.h + dcmrt/libsrc/drmimage.cc + dcmrt/libsrc/drmplan.cc + dcmrt/libsrc/drmstrct.cc + dcmrt/tests/tsearch.cc +Copyright: 2012, OFFIS e.V. +License: OFFISeV + +Files: dcmrt/libsrc/drmdose.cc +Copyright: 2012-2015, OFFIS e.V. +License: OFFISeV + +Files: dcmrt/include/dcmtk/dcmrt/drmimage.h + dcmrt/tests/tests.cc +Copyright: 2012-2016, OFFIS e.V. +License: OFFISeV + +Files: dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h + dcmfg/include/dcmtk/dcmfg/fgpixeltransform.h + dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h + dcmfg/libsrc/fgframeanatomy.cc + dcmfg/libsrc/fgpixeltransform.cc + dcmfg/libsrc/fgparametricmapframetype.cc + dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h + dcmiod/include/dcmtk/dcmiod/iodreferences.h + dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h + dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h + dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h + dcmiod/libsrc/iodcontentitemmacro.cc + dcmiod/libsrc/iodreferences.cc + dcmiod/libsrc/modfloatingpointimagepixel.cc + dcmiod/libsrc/modimagepixelbase.cc + dcmdata/tests/tnewdcme.cc +Copyright: Copyright (C) 2017, Open Connections GmbH +License: OFFISeV + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian GNU/Linux systems you can find this license under + /usr/share/common-licenses/Apache-2.0 + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + * + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: BSD-3-clause-Riesmeier + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + . + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + . + * Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +License: OFFISeV + This software and supporting documentation were developed by + . + OFFIS e.V. + R&D Division Health + Escherweg 2 + 26121 Oldenburg, Germany + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + - Neither the name of OFFIS nor the names of its contributors may be + used to endorse or promote products derived from this software + without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/dcmqrscp.default b/dcmqrscp.default new file mode 100644 index 00000000..03a66998 --- /dev/null +++ b/dcmqrscp.default @@ -0,0 +1,3 @@ +# Run dcmqrscp at startup ? +DCMQRSCP_ENABLE=No + diff --git a/dcmqrscp.init b/dcmqrscp.init new file mode 100644 index 00000000..c7a08164 --- /dev/null +++ b/dcmqrscp.init @@ -0,0 +1,89 @@ +#! /bin/sh +# +# Start script for dcmqrscp from dcmtk-package +# Adapted from skeleton +# @(#)skeleton 2.85-23 28-Jul-2004 miquels@cistron.nl +# by Roland Marcus Rutschmann +# and Juergen Salk +# Version 0.2 Sun, 22 Jul 2007 21:32:42 +0200 +### BEGIN INIT INFO +# Provides: dcmqrscp +# Required-Start: $network $local_fs $remote_fs +# Required-Stop: $network $local_fs $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Init-Script for DCMTK Central Test Node dcmqrscp +### END INIT INFO + + +set -e + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DESC="DCMTK Central Test Node" +NAME=dcmqrscp +DAEMON=/usr/bin/$NAME +PIDFILE=/var/run/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME +DCMQRSCP_CFG="/etc/dcmtk/dcmqrscp.cfg" + +# Gracefully exit if the package has been removed. +test -x $DAEMON || exit 0 + +# Read config file if it is present. +if [ -r /etc/default/$NAME ] +then + . /etc/default/$NAME +fi + +case "$DCMQRSCP_ENABLE" in + [Nn]*) + exit 0 + ;; +esac + + +# +# Function that starts the daemon/service. +# +d_start() { + start-stop-daemon --start --quiet --background \ + --make-pidfile --pidfile $PIDFILE \ + --exec $DAEMON -- +ac -c $DCMQRSCP_CFG +} + +# +# Function that stops the daemon/service. +# +d_stop() { + start-stop-daemon --stop --quiet --pidfile $PIDFILE \ + --name $NAME +} + +case "$1" in + start) + echo -n "Starting $DESC: $NAME" + d_start + echo "." + ;; + stop) + echo -n "Stopping $DESC: $NAME" + d_stop + echo "." + ;; + reload) + exit 0 + ;; + restart|force-reload) + echo -n "Restarting $DESC: $NAME" + d_stop + sleep 1 + d_start + echo "." + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/dcmtk-data.install b/dcmtk-data.install new file mode 100644 index 00000000..7045a559 --- /dev/null +++ b/dcmtk-data.install @@ -0,0 +1,3 @@ +usr/share/dcmtk/*.dic +usr/share/dcmtk/csmapper/ +usr/share/dcmtk/esdb/ diff --git a/dcmtk-doc.doc-base b/dcmtk-doc.doc-base new file mode 100644 index 00000000..fa774a4b --- /dev/null +++ b/dcmtk-doc.doc-base @@ -0,0 +1,12 @@ +Document: dcmtk-doc +Title: Documentation of DCMTK +Author: OFFIS DICOM Team +Abstract: This manual comprises the complete on-line documentation for the + DICOM ToolKit (DCMTK) packages. It covers the end user applications as well + as the development library interfaces including a wide variety of coding + examples. +Section: Science/Medicine + +Format: HTML +Index: /usr/share/doc/dcmtk/dcmtk-3.6.9/html/index.html +Files: /usr/share/doc/dcmtk/dcmtk-3.6.9/html/* diff --git a/dcmtk-doc.docs b/dcmtk-doc.docs new file mode 100644 index 00000000..9c1434e7 --- /dev/null +++ b/dcmtk-doc.docs @@ -0,0 +1 @@ +usr/share/doc/dcmtk-*/ diff --git a/dcmtk.README.Debian b/dcmtk.README.Debian new file mode 100644 index 00000000..cfb3e384 --- /dev/null +++ b/dcmtk.README.Debian @@ -0,0 +1,150 @@ +DCMTK - The OFFIS DICOM ToolKit for Debian +========================================== + +General notes: + +DCMTK is a collection of libraries and applications implementing large +parts the DICOM standard. It includes software for examining, +constructing and converting DICOM image files, handling offline media, +sending and receiving images over a network connection, as well as +demonstrative image storage and worklist servers. DCMTK is written +in a mixture of ANSI C and C++. It comes in complete source code and +is made available as "open source" software under BSD like license +terms. For additional information about DCMTK have a look at the +OFFIS web page: + + http://dicom.offis.de/dcmtk.php.en + +DCMTK has been used at numerous DICOM demonstrations to provide +central, vendor-independent image storage and worklist servers (CTNs - +Central Test Nodes). It is used by hospitals and companies all over +the world for a wide variety of purposes ranging from being a tool for +product testing to being a building block for research projects, +prototypes and commercial products. + +DCMTK optionally supports some of the DICOM security extensions and +relies on the free OpenSSL toolkit for the underlying cryptographic +routines and the TLS protocol implementation. The Debian DCMTK package +has been built with OpenSSL support enabled. + +More information about using the DCMTK network applications for secure +DICOM communication can be found in + + /usr/share/docs/dcmtk/ciphers.txt + /usr/share/docs/dcmtk/randseed.txt + +DCMTK optionally supports Wietse Venema's TCP wrappers library +(libwrap) which is freely available for most Unix platforms and part +of the default installation of most recent Linux distributions. This +library allows one to enforce host-based access control via the +"/etc/hosts_deny" and "/etc/hosts_allow" configuration files. The +Debian DCMTK package has been compiled with TCP wrapper support +enabled. See hosts_access(5) man page for details. + +You can use the dcmnet applications for testing DICOM connectivity. A +brief description can be found in + + /usr/share/docs/dcmtk/testing.txt + + +The DCMTK dcmqrscp application implements a DICOM image +storage/query/retrieve SCP which has been designed primarily as an +independent framework for cooperative tests and demonstrations of +DICOM connectivity by medical imaging vendors. If you want to set up +dcmqrdb as a DICOM image storage server please read both the dcmqrscp +manual pages and the supplemental documentation in + + /usr/share/doc/dcmtk/dcmqrcnf.txt + /usr/share/doc/dcmtk/dcmqrset.txt + +The dcmqrscp application can be invoked as a daemon process at boot +time by setting DCMQRSCP_ENABLE=Yes in /etc/defaults/dcmqrscp. You will +have to adjust the system wide configuration file +/etc/dcmtk/dcmqrscp.cfg to suit your needs. This configuration file +provides optional UserName/GroupName keywords in the "Global +Parameter" section (see note in dcmqrcnf.txt). Running dcmqrscp with +root privileges is strongly discouraged. A dedicated system +user/group dcmtk/dcmtk is automatically added during the installation +of the Debian DCMTK package. It is important to note that dcmqrscp is +primarily intended to be used as a demonstration server rather than a +real "PACS replacement". Scalability is quite limited, both in terms +of number of images/studies and in number of parallel clients. If you +want to set up a real large database, you might be better off in using +an SQL based archive (such as the Mallinckrodt CTN). + + +DCMTK supports the Modality Worklist Management SOP Class as a SCP, which +allows modalities to query and retrieve worklist information from hospital +information systems. An example worklist database along with a set of +example queries can be found in + + /usr/share/doc/dcmtk/examples/wlistdb + +and + + /usr/share/doc/dcmtk/examples/wlistqry. + +Here is a brief instruction about how to make this work (based on a post +of Thomas Wilkens in comp.protocols.dicom): + +1. Use dump2dcm to convert all "*.dump" files in examples/wlistdb/OFFIS +to "*.wl" files (DICOM format): + + $ for f in *.dump; do dump2dcm "$f" "${f%.dump}".wl; done + +Note that these files have to have the extension "*.wl", otherwise wlmscpfs +will not find these files. These files represent your worklist database. +2. Use dump2dcm to convert all "*.dump" files in examples/wlistqry to +"*.dcm" files (DICOM format): + + $ for f in *.dump; do dump2dcm "$f" "${f%.dump}".dcm; done + +These files represent possible queries that can be used to query the worklist +database. +3. In one shell run the following command to start the worklist management SCP: + + $ wlmscpfs -v -dfp examples/wlistdb 1234 + +4. In another shell run the following command to send a certain query to the +WLM SCP: + + $ findscu -v --call OFFIS localhost 1234 examples/wlistqry/wlistqry0.dcm + +Step 3 will start the worklist management SCP which will listen on port 1234 +for incoming C-FIND RQ messages. The "-dfp examples/wlistdb" option +specifies that the worklist database can be found in folder "examples/wlistdb". +Note that the worklist database can be organized in different storage areas. +Subfolder "OFFIS" below "examples/wlistdb" is one (the only one in this case) +storage area. In an incoming C-FIND RQ, an SCU has to tell wlmscpfs which +storage area shall be queried; this is done by sending a certain "called AE title" +to wlmscpfs. + +Step 4 will send the query in file "examples/wlistqry/wlistqry0.dcm" +using a C-FIND-RQ message to the wlmscpfs application (which is running on +"localhost" and listening on port "1234"). Option "--call OFFIS" specifies +that the called AE title is "OFFIS" which in turn tells the wlmscpfs +application to query the storage area "OFFIS" in its worklist database. + +The two programs should then dump information that shows their internal +processings (C-FIND RQ - C-FIND RSP). You can also use a different query +file in folder "examples/wlistqry" for querying the worklist database. + +As the wlmscpfs is not a hospital information system, worklist entries +must be created, updated and deleted manually. The Debian dcmtk-www +package contains a cgi-based WWW server application which provides an easy +to use web interface for managing worklist entries from any workstation +in the network. More information about the DCMTK worklist web interface can +be found in + + /usr/share/doc/dcmtk-www/wwwapp.txt + + +For more information please visit the DCMTK homepage and the user forum at + + http://dicom.offis.de/dcmtk.php.en + +and + + http://forum.dcmtk.org/ + + -- Mathieu Malaterre Fri, 21 Mar 2025 12:42:50 +0100 diff --git a/dcmtk.dirs b/dcmtk.dirs new file mode 100644 index 00000000..716b8d83 --- /dev/null +++ b/dcmtk.dirs @@ -0,0 +1 @@ +/var/lib/dcmtk/db diff --git a/dcmtk.docs b/dcmtk.docs new file mode 100644 index 00000000..45b05038 --- /dev/null +++ b/dcmtk.docs @@ -0,0 +1,2 @@ +FAQ +README diff --git a/dcmtk.examples b/dcmtk.examples new file mode 100644 index 00000000..25315700 --- /dev/null +++ b/dcmtk.examples @@ -0,0 +1,2 @@ +usr/share/dcmtk/wlistdb +usr/share/dcmtk/wlistqry diff --git a/dcmtk.install b/dcmtk.install new file mode 100644 index 00000000..3867465e --- /dev/null +++ b/dcmtk.install @@ -0,0 +1,8 @@ +etc/dcmtk/* +usr/bin/* +usr/share/dcmtk/*.css +usr/share/dcmtk/*.dump +usr/share/dcmtk/*.lut +usr/share/dcmtk/dcm2xml.dtd +usr/share/dcmtk/dsr2xml.xsd +usr/share/dcmtk/dumppat.txt diff --git a/dcmtk.maintscript b/dcmtk.maintscript new file mode 100644 index 00000000..f3ed6f5a --- /dev/null +++ b/dcmtk.maintscript @@ -0,0 +1,4 @@ +rm_conffile /etc/default/dcmqrscp +rm_conffile /etc/default/storescp +rm_conffile /etc/init.d/dcmqrscp +rm_conffile /etc/init.d/storescp diff --git a/dcmtk.manpages b/dcmtk.manpages new file mode 100644 index 00000000..5ed5bcf0 --- /dev/null +++ b/dcmtk.manpages @@ -0,0 +1 @@ +usr/share/man/man1/*.1 diff --git a/dcmtk.postinst b/dcmtk.postinst new file mode 100644 index 00000000..525636d9 --- /dev/null +++ b/dcmtk.postinst @@ -0,0 +1,69 @@ +#!/bin/sh + +set -e + +# Create dcmtk user and group + +if ! getent passwd dcmtk >/dev/null 2>&1; then + if ! getent group dcmtk > /dev/null 2>&1; then + echo "Adding \`dcmtk' group to system ..." + addgroup --quiet --system dcmtk || true + fi + echo "Adding \`dcmtk' user to system ..." + adduser --quiet --system --ingroup dcmtk --home /var/lib/dcmtk/db \ + --shell /usr/sbin/nologin dcmtk || true +fi + +# work around possible adduser bug, see #119366 +[ -d /var/lib/dcmtk/db ] || mkdir -p /var/lib/dcmtk/db +chmod 755 /var/lib/dcmtk/db +chown -h dcmtk:dcmtk /var/lib/dcmtk/db || true + + +# Handle imagectn -> dcmqrdb transition in (3.5.3 -> 3.5.4) + + +LASTVERSION=3.5.3-5 + +case "$1" in +configure) + if dpkg --compare-versions "$2" le "$LASTVERSION"; then + + if [ -e "/etc/dcmtk/imagectn.cfg" ]; then + echo + echo "Configuration file /etc/dcmtk/imagectn.cfg has been modified by user." + echo "This file will be renamed to /etc/dcmtk/dcmqrscp.cfg." + echo "The package default version can be found in /etc/dcmtk/dcmqrscp.cfg.dpkg-new." + echo + mv -f /etc/dcmtk/dcmqrscp.cfg /etc/dcmtk/dcmqrscp.cfg.dpkg-new + mv -f /etc/dcmtk/imagectn.cfg /etc/dcmtk/dcmqrscp.cfg + fi + + if [ -e "/etc/default/imagectn" ]; then + echo "Configuration file /etc/default/imagectn has been modified by user." + echo "This file will be converted to and replaced by /etc/default/dcmqrscp." + echo "The user's old version can be found in /etc/default/imagectn.dpkg-old." + echo "The package default version can be found in /etc/default/dcmqrscp.dpkg-new." + echo + mv -f /etc/default/imagectn /etc/default/imagectn.dpkg-old + mv -f /etc/default/dcmqrscp /etc/default/dcmqrscp.dpkg-new + sed -e 's/IMAGECTN_ENABLE/DCMQRSCP_ENABLE/g' -e 's/imagectn/dcmqrscp/g' \ + /etc/default/dcmqrscp + fi + + if [ -e "/etc/init.d/imagectn" ]; then + echo "Configuration file /etc/init.d/imagectn has been modified by user." + echo "This file will be replaced by /etc/init.d/dcmqrscp." + echo "The user's old version can be found in /etc/init.d/imagectn.dpkg-old" + echo + mv -f /etc/init.d/imagectn /etc/init.d/imagectn.dpkg-old + fi + # Remove (dangling) symlinks in /etc/rcN.d + update-rc.d imagectn remove >/dev/null + fi +esac + + + +#DEBHELPER# + diff --git a/dcmtk.postrm b/dcmtk.postrm new file mode 100644 index 00000000..b8efc7e4 --- /dev/null +++ b/dcmtk.postrm @@ -0,0 +1,29 @@ +#!/bin/sh + +set -e + +# Remove possible leftovers of imagectn -> dcmqrscp transition + +if [ "$1" = "purge" ] ; then + + if [ -e /etc/default/imagectn.dpkg-old ]; then + rm -f /etc/default/imagectn.dpkg-old + fi + + if [ -e /etc/init.d/imagectn.dpkg-old ]; then + rm -f /etc/init.d/imagectn.dpkg-old + fi + + if [ -d /var/lib/dcmtk/db/STORESCP ]; then + rm -rf /var/lib/dcmtk/db/STORESCP + fi +fi + +# Remove dcmtk user/group if they exist on cleanup +if id -u "dcmtk" > /dev/null 2>&1; then + echo "Removing \`dcmtk' user and group from the system..." + userdel dcmtk +fi + +#DEBHELPER# + diff --git a/dcmtk.preinst b/dcmtk.preinst new file mode 100644 index 00000000..9f84376f --- /dev/null +++ b/dcmtk.preinst @@ -0,0 +1,40 @@ +#!/bin/sh + +set -e + +# Prepare to handle imagectn -> dcmqrdb (3.5.3 -> 3.5.4) transition +# without triggering a dpkg question +# # Adapted from http://wiki.debian.org/DpkgConffileHandling + +PKGNAME=dcmtk + +# Remove a no-longer used conffile +rm_conffile() { + CONFFILE="$1" + if [ -e "$CONFFILE" ]; then + md5sum="`md5sum \"$CONFFILE\" | sed -e \"s/ .*//\"`" + old_md5sum="`dpkg-query -W -f='${Conffiles}' $PKGNAME | sed -n -e \"\\\\' $CONFFILE '{s/ obsolete$//;s/.* //p}\"`" + if [ "$md5sum" != "$old_md5sum" ]; then + echo "Obsolete conffile $CONFFILE has been modified by you." + echo "Saving as $CONFFILE.dpkg-bak ..." + mv -f "$CONFFILE" "$CONFFILE".dpkg-bak + else + echo "Removing obsolete conffile $CONFFILE ..." + rm -f "$CONFFILE" + fi + fi +} + +LASTVERSION=3.5.3-5 + +case "$1" in +install|upgrade) + if dpkg --compare-versions "$2" le "$LASTVERSION"; then + rm_conffile "/etc/dcmtk/imagectn.cfg" + rm_conffile "/etc/default/imagectn" + rm_conffile "/etc/init.d/imagectn" + fi +esac + +#DEBHELPER# + diff --git a/dcmtk.prerm b/dcmtk.prerm new file mode 100644 index 00000000..15e7e018 --- /dev/null +++ b/dcmtk.prerm @@ -0,0 +1,23 @@ +#!/bin/sh +set -e + +# This is in case we upgrade from dcmtk version < 3.5.4 +if [ -x "/etc/init.d/imagectn" ]; then + if which invoke-rc.d ; then + invoke-rc.d --quiet imagectn stop + else + /etc/init.d/imagectn stop + fi +fi + +if [ -x "/etc/init.d/dcmqrscp" ]; then + if which invoke-rc.d ; then + invoke-rc.d --quiet dcmqrscp stop + else + /etc/init.d/dcmqrscp stop + fi +fi + +#DEBHELPER# + +exit 0 diff --git a/libdcmtk-dev.install b/libdcmtk-dev.install new file mode 100644 index 00000000..c6ffc6e6 --- /dev/null +++ b/libdcmtk-dev.install @@ -0,0 +1,4 @@ +usr/include/dcmtk/* +usr/lib/*/*.so +usr/lib/*/cmake/ +usr/lib/*/pkgconfig diff --git a/libdcmtk19.install b/libdcmtk19.install new file mode 100644 index 00000000..3de3b10a --- /dev/null +++ b/libdcmtk19.install @@ -0,0 +1 @@ +usr/lib/*/*.so.* diff --git a/libdcmtk19.lintian-overrides b/libdcmtk19.lintian-overrides new file mode 100644 index 00000000..d55e514d --- /dev/null +++ b/libdcmtk19.lintian-overrides @@ -0,0 +1,5 @@ +# There is more than one library in one package bundles which makes perfectly +# sense in this application but does not enable naming the library package apropriately +libdcmtk19: package-name-doesnt-match-sonames +libdcmtk19: embedded-library +libdcmtk19: no-symbols-control-file diff --git a/patches/0007-CVE-2024-47796.patch b/patches/0007-CVE-2024-47796.patch new file mode 100644 index 00000000..eda61292 --- /dev/null +++ b/patches/0007-CVE-2024-47796.patch @@ -0,0 +1,32 @@ +Author: Joerg Riesmeier +Forwarded: https://git.dcmtk.org/?p=dcmtk.git;a=commit;h=89a6e399f1e17d08a8bc8cdaa05b2ac9a50cd4f6 +Bug-Debian: https://bugs.debian.org/1093043 +Reviewed-By: Étienne Mollier +Last-Update: 2025-01-18 +Description: Fixed issue rendering invalid monochrome image. + Fixed issue when rendering an invalid monochrome DICOM image where the + number of pixels stored does not match the expected number of pixels. + If the stored number is less than the expected number, the rest of the + pixel matrix for the intermediate representation was always filled with + the value 0. Under certain, very rare conditions, this could result in + memory problems reported by an Address Sanitizer (ASAN). Now, the rest + of the matrix is filled with the smallest possible value for the image. + . + Thanks to Emmanuel Tacheau from the Cisco Talos team + for the original report, the sample + file (PoC) and further details. See TALOS-2024-2122 and CVE-2024-47796. + +--- dcmtk.orig/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h ++++ dcmtk/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h +@@ -72,9 +72,9 @@ + rescale(pixel); // "copy" or reference pixel data + this->determineMinMax(OFstatic_cast(T3, this->Modality->getMinValue()), OFstatic_cast(T3, this->Modality->getMaxValue())); + } +- /* erase empty part of the buffer (= blacken the background) */ ++ /* erase empty part of the buffer (= fill the background with the smallest possible value) */ + if ((this->Data != NULL) && (this->InputCount < this->Count)) +- OFBitmanipTemplate::zeroMem(this->Data + this->InputCount, this->Count - this->InputCount); ++ OFBitmanipTemplate::setMem(this->Data + this->InputCount, OFstatic_cast(T3, this->Modality->getAbsMinimum()), this->Count - this->InputCount); + } + } + diff --git a/patches/0008-CVE-2024-52333.patch b/patches/0008-CVE-2024-52333.patch new file mode 100644 index 00000000..774f6bea --- /dev/null +++ b/patches/0008-CVE-2024-52333.patch @@ -0,0 +1,48 @@ +Author: Joerg Riesmeier +Forwarded: https://git.dcmtk.org/?p=dcmtk.git;a=commit;h=03e851b0586d05057c3268988e180ffb426b2e03 +Bug-Debian: https://bugs.debian.org/1093047 +Reviewed-By: Étienne Mollier +Last-Update: 2025-01-18 +Description: Added check to make sure: HighBit < BitsAllocated. + Added check to the image preprocessing to make sure that the value of + HighBit is always less than the value of BitsAllocated. Before, this + missing check could lead to memory corruption if an invalid combination + of values was retrieved from a malformed DICOM dataset. + . + Thanks to Emmanuel Tacheau from the Cisco Talos team + for the report, sample file (PoC) + and detailed analysis. See TALOS-2024-2121 and CVE-2024-52333. + +--- dcmtk.orig/dcmimgle/libsrc/diimage.cc ++++ dcmtk/dcmimgle/libsrc/diimage.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 1996-2024, OFFIS e.V. ++ * Copyright (C) 1996-2025, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -549,12 +549,18 @@ + { + const unsigned long fsize = OFstatic_cast(unsigned long, Rows) * OFstatic_cast(unsigned long, Columns) * + OFstatic_cast(unsigned long, SamplesPerPixel); +- if ((BitsAllocated < 1) || (BitsStored < 1) || (BitsAllocated < BitsStored) || +- (BitsStored > OFstatic_cast(Uint16, HighBit + 1))) ++ if ((BitsAllocated < 1) || (BitsStored < 1)) + { + ImageStatus = EIS_InvalidValue; +- DCMIMGLE_ERROR("invalid values for 'BitsAllocated' (" << BitsAllocated << "), " +- << "'BitsStored' (" << BitsStored << ") and/or 'HighBit' (" << HighBit << ")"); ++ DCMIMGLE_ERROR("invalid value(s) for 'BitsAllocated' (" << BitsAllocated << "), " ++ << "and/or 'BitsStored' (" << BitsStored << ")"); ++ return; ++ } ++ else if ((BitsAllocated < BitsStored) || (BitsAllocated <= HighBit) || ((BitsStored - 1) > HighBit)) ++ { ++ ImageStatus = EIS_InvalidValue; ++ DCMIMGLE_ERROR("invalid combination of values for 'BitsAllocated' (" << BitsAllocated << "), " ++ << "'BitsStored' (" << BitsStored << ") and 'HighBit' (" << HighBit << ")"); + return; + } + else if ((evr == EVR_OB) && (BitsStored <= 8)) diff --git a/patches/0009-CVE-2025-25475.patch b/patches/0009-CVE-2025-25475.patch new file mode 100644 index 00000000..8f2ff86f --- /dev/null +++ b/patches/0009-CVE-2025-25475.patch @@ -0,0 +1,35 @@ +commit bffa3e9116abb7038b432443f16b1bd390e80245 +Author: Marco Eichelberg +Date: Thu Jan 23 15:51:21 2025 +0100 + + Fixed issue with invalid RLE compressed DICOM images. + + Fixed issue when processing an RLE compressed image where the RLE header + contains an invalid stripe size. + + Thanks to Ding zhengzheng for the report + and the sample file (PoC). + +--- dcmtk.orig/dcmdata/libsrc/dcrleccd.cc ++++ dcmtk/dcmdata/libsrc/dcrleccd.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2002-2024, OFFIS e.V. ++ * Copyright (C) 2002-2025, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -348,6 +348,12 @@ + } /* while */ + + // last fragment for this RLE stripe ++ if (inputBytes + byteOffset > fragmentLength) ++ { ++ DCMDATA_ERROR("stream size in RLE header is wrong"); ++ inputBytes = fragmentLength-byteOffset; ++ } ++ + result = rledecoder.decompress(rleData + byteOffset, OFstatic_cast(size_t, inputBytes)); + + // special handling for zero pad byte at the end of the RLE stream diff --git a/patches/0010-CVE-2025-25474.patch b/patches/0010-CVE-2025-25474.patch new file mode 100644 index 00000000..b58b520b --- /dev/null +++ b/patches/0010-CVE-2025-25474.patch @@ -0,0 +1,34 @@ +commit 1d205bcd307164c99e0d4bbf412110372658d847 +Author: Joerg Riesmeier +Date: Tue Jan 21 11:12:28 2025 +0100 + + Fixed another issue with invalid DICOM images. + + Fixed issue when processing an invalid DICOM image where the number of + pixels stored does not match the expected number of pixels (too less) + and the combination of BitsAllocated and BitsStored is really unusual + (e.g. 1 bit stored, but 52 bits allocated). In cases where the last + pixel (e.g. a single bit) does not fit into the buffer of the input + pixel data, a buffer overflow occurred on the heap. Now, the last entry + of the buffer is filled with the smallest possible value (e.g. 0 in case + of unsigned data). + + Thanks to Ding zhengzheng for the report + and the sample file (PoC). + +--- dcmtk.orig/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h ++++ dcmtk/dcmimgle/include/dcmtk/dcmimgle/diinpxt.h +@@ -643,6 +643,13 @@ + skip -= times * bitsof_T1; + } + } ++ /* fill the remaining entry (if any) with the smallest value that is possible */ ++ if (q < Data + Count) ++ { ++ DCMIMGLE_TRACE("not enough data, filling last entry of input buffer with value = " << getAbsMinimum()); ++ *q = OFstatic_cast(T2, getAbsMinimum()); ++ } ++ + } + } else + DCMIMGLE_DEBUG("cannot allocate memory buffer for 'Data' in DiInputPixelTemplate::convert()"); diff --git a/patches/0011-CVE-2025-25472.patch b/patches/0011-CVE-2025-25472.patch new file mode 100644 index 00000000..90d710ab --- /dev/null +++ b/patches/0011-CVE-2025-25472.patch @@ -0,0 +1,49 @@ +commit 410ffe2019b9db6a8f4036daac742a6f5e4d36c2 +Author: Joerg Riesmeier +Date: Fri Jan 17 17:53:50 2025 +0100 + + Fixed another issue with invalid mono images. + + Fixed issue when rendering an invalid monochrome DICOM image where the + number of pixels stored does not match the expected number of pixels. + In this case, only a single pixel is processed, but the pixel matrix is + much larger. Filling the rest of the pixel matrix with the smallest + possible value for the image is not working because of an optimized + memory usage (value would be out of range). Now, the pixel value to be + used is double-checked before it is actually filled into the "background" + of the image. + + Thanks to Ding zhengzheng for the report + and the sample file (PoC). + +diff --git a/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h b/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h +index 50389a540..f67967310 100644 +--- a/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h ++++ b/dcmimgle/include/dcmtk/dcmimgle/dimoipxt.h +@@ -28,6 +28,7 @@ + #include "dcmtk/ofstd/ofbmanip.h" + #include "dcmtk/ofstd/ofcast.h" + #include "dcmtk/ofstd/ofdiag.h" /* for DCMTK_DIAGNOSTIC macros */ ++#include "dcmtk/ofstd/oflimits.h" /* for OFnumeric_limits<> */ + + #include "dcmtk/dcmimgle/dimopxt.h" + #include "dcmtk/dcmimgle/diinpx.h" +@@ -72,9 +73,16 @@ class DiMonoInputPixelTemplate + rescale(pixel); // "copy" or reference pixel data + this->determineMinMax(OFstatic_cast(T3, this->Modality->getMinValue()), OFstatic_cast(T3, this->Modality->getMaxValue())); + } +- /* erase empty part of the buffer (= fill the background with the smallest possible value) */ ++ /* erase empty part of the buffer */ + if ((this->Data != NULL) && (this->InputCount < this->Count)) +- OFBitmanipTemplate::setMem(this->Data + this->InputCount, OFstatic_cast(T3, this->Modality->getAbsMinimum()), this->Count - this->InputCount); ++ { ++ /* that means, fill the background with the smallest value that is possible */ ++ const T3 minOut = OFnumeric_limits::min(); ++ const T3 background = (this->Modality->getAbsMinimum() < OFstatic_cast(double, minOut)) ? minOut : OFstatic_cast(T3, this->Modality->getAbsMinimum()); ++ const size_t count = (this->Count - this->InputCount); ++ DCMIMGLE_DEBUG("filing empty part of the intermediate pixel data (" << count << " pixels) with value = " << OFstatic_cast(double, background)); ++ OFBitmanipTemplate::setMem(this->Data + this->InputCount, background, count); ++ } + } + } + diff --git a/patches/0012-CVE-2025-2357.patch b/patches/0012-CVE-2025-2357.patch new file mode 100644 index 00000000..067e30d3 --- /dev/null +++ b/patches/0012-CVE-2025-2357.patch @@ -0,0 +1,512 @@ +From: Marco Eichelberg +Date: Mon, 3 Mar 2025 11:33:18 +0000 (+0100) +Subject: Fixed segfault in JPEG-LS decoder. +X-Git-Url: http://git.dcmtk.org/?p=dcmtk.git;a=commitdiff_plain;h=3239a791542e1ea433d23aaa9e0a05a532ffabff;hp=92fc86e9e8d0808880bcc82e25982b2a61323cb8 + +Fixed segfault in JPEG-LS decoder. + +Fixed a bug in the JPEG-LS decoder that led to a segmentation fault if invalid +input data was processed, due to insufficient validation of input data. + +Thanks to Ding zhengzheng for the report +and the sample file (PoC). + +This closes DCMTK issue #1155. +--- + +diff --git a/dcmjpls/libcharls/scan.h b/dcmjpls/libcharls/scan.h +index b4dea20d8..f13098104 100644 +--- a/dcmjpls/libcharls/scan.h ++++ b/dcmjpls/libcharls/scan.h +@@ -1,6 +1,6 @@ +-// +-// (C) Jan de Vaan 2007-2010, all rights reserved. See the accompanying "License.txt" for licensed use. +-// ++// ++// (C) Jan de Vaan 2007-2010, all rights reserved. See the accompanying "License.txt" for licensed use. ++// + + #ifndef CHARLS_SCAN + #define CHARLS_SCAN +@@ -11,7 +11,7 @@ + + #include "lokuptbl.h" + +-// This file contains the code for handling a "scan". Usually an image is encoded as a single scan. ++// This file contains the code for handling a "scan". Usually an image is encoded as a single scan. + + #include DCMTK_DIAGNOSTIC_IGNORE_CONST_EXPRESSION_WARNING + +@@ -21,10 +21,10 @@ extern OFVector rgquant10Ll; + extern OFVector rgquant12Ll; + extern OFVector rgquant16Ll; + // +-// Apply ++// Apply + // + inlinehint LONG ApplySign(LONG i, LONG sign) +-{ return (sign ^ i) - sign; } ++{ return (sign ^ i) - sign; } + + + +@@ -58,20 +58,20 @@ inlinehint LONG GetPredictedValue(LONG Ra, LONG Rb, LONG Rc) + + inlinehint LONG GetPredictedValue(LONG Ra, LONG Rb, LONG Rc) + { +- // sign trick reduces the number of if statements (branches) ++ // sign trick reduces the number of if statements (branches) + LONG sgn = BitWiseSign(Rb - Ra); + +- // is Ra between Rc and Rb? ++ // is Ra between Rc and Rb? + if ((sgn ^ (Rc - Ra)) < 0) + { + return Rb; +- } ++ } + else if ((sgn ^ (Rb - Rc)) < 0) + { + return Ra; + } + +- // default case, valid if Rc element of [Ra,Rb] ++ // default case, valid if Rc element of [Ra,Rb] + return Ra + Rb - Rc; + } + +@@ -110,7 +110,7 @@ public: + + public: + +- JlsCodec(const TRAITS& inTraits, const JlsParameters& info) : STRATEGY(info), ++ JlsCodec(const TRAITS& inTraits, const JlsParameters& info) : STRATEGY(info), + traits(inTraits), + _rect(), + _width(0), +@@ -120,13 +120,13 @@ public: + _RUNindex(0), + _pquant(0), + _bCompare(0) +- ++ + { + if (Info().ilv == ILV_NONE) + { + Info().components = 1; + } +- } ++ } + + + void SetPresets(const JlsCustomParameters& presets) +@@ -135,9 +135,9 @@ public: + + InitParams(presets.T1 != 0 ? presets.T1 : presetDefault.T1, + presets.T2 != 0 ? presets.T2 : presetDefault.T2, +- presets.T3 != 0 ? presets.T3 : presetDefault.T3, ++ presets.T3 != 0 ? presets.T3 : presetDefault.T3, + presets.RESET != 0 ? presets.RESET : presetDefault.RESET); +- } ++ } + + + bool IsInterleaved() +@@ -155,13 +155,13 @@ public: + + signed char QuantizeGratientOrg(LONG Di); + inlinehint LONG QuantizeGratient(LONG Di) +- { ++ { + ASSERT(QuantizeGratientOrg(Di) == *(_pquant + Di)); +- return *(_pquant + Di); ++ return *(_pquant + Di); + } + + void InitQuantizationLUT(); +- ++ + LONG DecodeValue(LONG k, LONG limit, LONG qbpp); + inlinehint void EncodeMappedValue(LONG k, LONG mappedError, LONG limit); + +@@ -216,27 +216,27 @@ public: + { + LONG sign = BitWiseSign(Qs); + JlsContext& ctx = _contexts[ApplySign(Qs, sign)]; +- LONG k = ctx.GetGolomb(); +- LONG Px = traits.CorrectPrediction(pred + ApplySign(ctx.C, sign)); ++ LONG k = ctx.GetGolomb(); ++ LONG Px = traits.CorrectPrediction(pred + ApplySign(ctx.C, sign)); + + LONG ErrVal; + const Code& code = decodingTables[k].Get(STRATEGY::PeekByte()); + if (code.GetLength() != 0) + { + STRATEGY::Skip(code.GetLength()); +- ErrVal = code.GetValue(); ++ ErrVal = code.GetValue(); + ASSERT(ABS(ErrVal) < 65535); + } + else + { +- ErrVal = UnMapErrVal(DecodeValue(k, traits.LIMIT, traits.qbpp)); ++ ErrVal = UnMapErrVal(DecodeValue(k, traits.LIMIT, traits.qbpp)); + if (ABS(ErrVal) > 65535) + throw JlsException(InvalidCompressedData); +- } ++ } + ErrVal = ErrVal ^ ((traits.NEAR == 0) ? ctx.GetErrorCorrection(k) : 0); +- ctx.UpdateVariables(ErrVal, traits.NEAR, traits.RESET); ++ ctx.UpdateVariables(ErrVal, traits.NEAR, traits.RESET); + ErrVal = ApplySign(ErrVal, sign); +- return traits.ComputeReconstructedSample(Px, ErrVal); ++ return traits.ComputeReconstructedSample(Px, ErrVal); + } + + +@@ -245,7 +245,7 @@ public: + LONG sign = BitWiseSign(Qs); + JlsContext& ctx = _contexts[ApplySign(Qs, sign)]; + LONG k = ctx.GetGolomb(); +- LONG Px = traits.CorrectPrediction(pred + ApplySign(ctx.C, sign)); ++ LONG Px = traits.CorrectPrediction(pred + ApplySign(ctx.C, sign)); + + LONG ErrVal = traits.ComputeErrVal(ApplySign(x - Px, sign)); + +@@ -270,16 +270,16 @@ public: + size_t DecodeScan(void* rawData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCompare); + + protected: +- // codec parameters ++ // codec parameters + TRAITS traits; + JlsRect _rect; + int _width; +- LONG T1; ++ LONG T1; + LONG T2; +- LONG T3; ++ LONG T3; + + // compression context +- JlsContext _contexts[365]; ++ JlsContext _contexts[365]; + CContextRunMode _contextRunmode[2]; + LONG _RUNindex; + PIXEL* _previousLine; // previous line ptr +@@ -309,7 +309,7 @@ CTable InitTable(LONG k) + CTable table; + short nerr; + for (nerr = 0; ; nerr++) +- { ++ { + // Q is not used when k != 0 + LONG merrval = GetMappedErrVal(nerr);//, k, -1); + OFPair paircode = CreateEncodedValue(k, merrval); +@@ -321,7 +321,7 @@ CTable InitTable(LONG k) + } + + for (nerr = -1; ; nerr--) +- { ++ { + // Q is not used when k != 0 + LONG merrval = GetMappedErrVal(nerr);//, k, -1); + OFPair paircode = CreateEncodedValue(k, merrval); +@@ -364,7 +364,7 @@ inlinehint void JlsCodec::EncodeMappedValue(LONG k, LONG mapped + if (highbits + 1 > 31) + { + STRATEGY::AppendToBitStream(0, highbits / 2); +- highbits = highbits - highbits / 2; ++ highbits = highbits - highbits / 2; + } + STRATEGY::AppendToBitStream(1, highbits + 1); + STRATEGY::AppendToBitStream((mappedError & ((1 << k) - 1)), k); +@@ -374,11 +374,11 @@ inlinehint void JlsCodec::EncodeMappedValue(LONG k, LONG mapped + if (limit - traits.qbpp > 31) + { + STRATEGY::AppendToBitStream(0, 31); +- STRATEGY::AppendToBitStream(1, limit - traits.qbpp - 31); ++ STRATEGY::AppendToBitStream(1, limit - traits.qbpp - 31); + } + else + { +- STRATEGY::AppendToBitStream(1, limit - traits.qbpp); ++ STRATEGY::AppendToBitStream(1, limit - traits.qbpp); + } + STRATEGY::AppendToBitStream((mappedError - 1) & ((1 << traits.qbpp) - 1), traits.qbpp); + } +@@ -389,33 +389,33 @@ inlinehint void JlsCodec::EncodeMappedValue(LONG k, LONG mapped + template + void JlsCodec::InitQuantizationLUT() + { +- // for lossless mode with default parameters, we have precomputed te luts for bitcounts 8,10,12 and 16 ++ // for lossless mode with default parameters, we have precomputed te luts for bitcounts 8,10,12 and 16 + if (traits.NEAR == 0 && traits.MAXVAL == (1 << traits.bpp) - 1) + { + JlsCustomParameters presets = ComputeDefault(traits.MAXVAL, traits.NEAR); + if (presets.T1 == T1 && presets.T2 == T2 && presets.T3 == T3) + { +- if (traits.bpp == 8) ++ if (traits.bpp == 8) + { +- _pquant = &rgquant8Ll[rgquant8Ll.size() / 2 ]; ++ _pquant = &rgquant8Ll[rgquant8Ll.size() / 2 ]; + return; + } +- if (traits.bpp == 10) ++ if (traits.bpp == 10) + { +- _pquant = &rgquant10Ll[rgquant10Ll.size() / 2 ]; ++ _pquant = &rgquant10Ll[rgquant10Ll.size() / 2 ]; + return; +- } +- if (traits.bpp == 12) ++ } ++ if (traits.bpp == 12) + { +- _pquant = &rgquant12Ll[rgquant12Ll.size() / 2 ]; ++ _pquant = &rgquant12Ll[rgquant12Ll.size() / 2 ]; + return; +- } +- if (traits.bpp == 16) ++ } ++ if (traits.bpp == 16) + { +- _pquant = &rgquant16Ll[rgquant16Ll.size() / 2 ]; ++ _pquant = &rgquant16Ll[rgquant16Ll.size() / 2 ]; + return; +- } +- } ++ } ++ } + } + + LONG RANGE = 1 << traits.bpp; +@@ -453,7 +453,7 @@ template + LONG JlsCodec::DecodeRIError(CContextRunMode& ctx) + { + LONG k = ctx.GetGolomb(); +- LONG EMErrval = DecodeValue(k, traits.LIMIT - J[_RUNindex]-1, traits.qbpp); ++ LONG EMErrval = DecodeValue(k, traits.LIMIT - J[_RUNindex]-1, traits.qbpp); + LONG Errval = ctx.ComputeErrVal(EMErrval + ctx._nRItype, k); + ctx.UpdateVariables(Errval, EMErrval); + return Errval; +@@ -466,7 +466,7 @@ void JlsCodec::EncodeRIError(CContextRunMode& ctx, LONG Errval) + { + LONG k = ctx.GetGolomb(); + bool map = ctx.ComputeMap(Errval, k); +- LONG EMErrval = 2 * ABS(Errval) - ctx._nRItype - map; ++ LONG EMErrval = 2 * ABS(Errval) - ctx._nRItype - map; + + ASSERT(Errval == ctx.ComputeErrVal(EMErrval + ctx._nRItype, k)); + EncodeMappedValue(k, EMErrval, traits.LIMIT-J[_RUNindex]-1); +@@ -476,7 +476,7 @@ void JlsCodec::EncodeRIError(CContextRunMode& ctx, LONG Errval) + + template + Triplet JlsCodec::DecodeRIPixel(Triplet Ra, Triplet Rb) +-{ ++{ + LONG Errval1 = DecodeRIError(_contextRunmode[0]); + LONG Errval2 = DecodeRIError(_contextRunmode[0]); + LONG Errval3 = DecodeRIError(_contextRunmode[0]); +@@ -513,18 +513,18 @@ Triplet JlsCodec::EncodeRIPixel(Trip + template + void JlsCodec::EncodeRunPixels(LONG runLength, bool endOfLine) + { +- while (runLength >= LONG(1 << J[_RUNindex])) ++ while (runLength >= LONG(1 << J[_RUNindex])) + { + STRATEGY::AppendOnesToBitStream(1); + runLength = runLength - LONG(1 << J[_RUNindex]); + IncrementRunIndex(); + } + +- if (endOfLine) ++ if (endOfLine) + { +- if (runLength != 0) ++ if (runLength != 0) + { +- STRATEGY::AppendOnesToBitStream(1); ++ STRATEGY::AppendOnesToBitStream(1); + } + } + else +@@ -556,7 +556,7 @@ LONG JlsCodec::DecodeRunPixels(PIXEL Ra, PIXEL* startPos, LONG + + if (index != cpixelMac) + { +- // incomplete run ++ // incomplete run + index += (J[_RUNindex] > 0) ? STRATEGY::ReadValue(J[_RUNindex]) : 0; + } + +@@ -566,7 +566,7 @@ LONG JlsCodec::DecodeRunPixels(PIXEL Ra, PIXEL* startPos, LONG + for (LONG i = 0; i < index; ++i) + { + startPos[i] = Ra; +- } ++ } + + return index; + } +@@ -582,7 +582,7 @@ LONG JlsCodec::DoRunMode(LONG index, EncoderStrategy*) + + LONG runLength = 0; + +- while (traits.IsNear(ptypeCurX[runLength],Ra)) ++ while (traits.IsNear(ptypeCurX[runLength],Ra)) + { + ptypeCurX[runLength] = Ra; + runLength++; +@@ -629,14 +629,24 @@ void JlsCodec::DoLine(SAMPLE*) + LONG index = 0; + LONG Rb = _previousLine[index-1]; + LONG Rd = _previousLine[index]; ++ LONG RANGE_UPPER = 1 << traits.bpp; ++ LONG RANGE_LOWER = - RANGE_UPPER; + + while(index < _width) +- { ++ { + LONG Ra = _currentLine[index -1]; + LONG Rc = Rb; + Rb = Rd; + Rd = _previousLine[index + 1]; + ++ // make sure that values are not out of range ++ if ( (Rd - Rb < RANGE_LOWER) || (Rd - Rb > RANGE_UPPER) ++ || (Rb - Rc < RANGE_LOWER) || (Rb - Rc > RANGE_UPPER) ++ || (Rc - Ra < RANGE_LOWER) || (Rc - Ra > RANGE_UPPER)) ++ { ++ throw JlsException(InvalidCompressedData); ++ } ++ + LONG Qs = ComputeContextID(QuantizeGratient(Rd - Rb), QuantizeGratient(Rb - Rc), QuantizeGratient(Rc - Ra)); + + if (Qs != 0) +@@ -648,8 +658,8 @@ void JlsCodec::DoLine(SAMPLE*) + { + index += DoRunMode(index, (STRATEGY*)(NULL)); + Rb = _previousLine[index-1]; +- Rd = _previousLine[index]; +- } ++ Rd = _previousLine[index]; ++ } + } + } + +@@ -661,7 +671,7 @@ void JlsCodec::DoLine(Triplet*) + { + LONG index = 0; + while(index < _width) +- { ++ { + Triplet Ra = _currentLine[index -1]; + Triplet Rc = _previousLine[index-1]; + Triplet Rb = _previousLine[index]; +@@ -671,7 +681,7 @@ void JlsCodec::DoLine(Triplet*) + LONG Qs2 = ComputeContextID(QuantizeGratient(Rd.v2 - Rb.v2), QuantizeGratient(Rb.v2 - Rc.v2), QuantizeGratient(Rc.v2 - Ra.v2)); + LONG Qs3 = ComputeContextID(QuantizeGratient(Rd.v3 - Rb.v3), QuantizeGratient(Rb.v3 - Rc.v3), QuantizeGratient(Rc.v3 - Ra.v3)); + +- ++ + if (Qs1 == 0 && Qs2 == 0 && Qs3 == 0) + { + index += DoRunMode(index, (STRATEGY*)(NULL)); +@@ -684,19 +694,19 @@ void JlsCodec::DoLine(Triplet*) + Rx.v3 = DoRegular(Qs3, _currentLine[index].v3, GetPredictedValue(Ra.v3, Rb.v3, Rc.v3), (STRATEGY*)(NULL)); + _currentLine[index] = Rx; + index++; +- } ++ } + } + } + + +-// DoScan: Encodes or decodes a scan. ++// DoScan: Encodes or decodes a scan. + // In ILV_SAMPLE mode, multiple components are handled in DoLine + // In ILV_LINE mode, a call do DoLine is made for every component +-// In ILV_NONE mode, DoScan is called for each component ++// In ILV_NONE mode, DoScan is called for each component + + template + void JlsCodec::DoScan(BYTE **ptr, size_t *size, size_t offset) +-{ ++{ + _width = Info().width; + + STRATEGY::Init(ptr, size, offset); +@@ -706,11 +716,11 @@ void JlsCodec::DoScan(BYTE **ptr, size_t *size, size_t offset) + + OFVector vectmp(2 * components * pixelstride); + OFVector rgRUNindex(components); +- ++ + for (LONG line = 0; line < Info().height; ++line) + { +- _previousLine = &vectmp[1]; +- _currentLine = &vectmp[1 + components * pixelstride]; ++ _previousLine = &vectmp[1]; ++ _currentLine = &vectmp[1 + components * pixelstride]; + if ((line & 1) == 1) + { + PIXEL *tmp = _previousLine; +@@ -724,17 +734,17 @@ void JlsCodec::DoScan(BYTE **ptr, size_t *size, size_t offset) + for (int component = 0; component < components; ++component) + { + _RUNindex = rgRUNindex[component]; +- ++ + // initialize edge pixels used for prediction + _previousLine[_width] = _previousLine[_width - 1]; + _currentLine[-1] = _previousLine[0]; + DoLine((PIXEL*) NULL); // dummy arg for overload resolution +- ++ + rgRUNindex[component] = _RUNindex; + _previousLine += pixelstride; + _currentLine += pixelstride; + } +- ++ + if (_rect.Y <= line && line < _rect.Y + _rect.Height) + { + STRATEGY::OnLineEnd(_rect.Width, _currentLine + _rect.X - (components * pixelstride), pixelstride); +@@ -754,7 +764,7 @@ ProcessLine* JlsCodec::CreateProcess(void* pvoidOut) + return new PostProcesSingleComponent(pvoidOut, Info(), sizeof(typename TRAITS::PIXEL)); + + if (Info().colorTransform == 0) +- return new ProcessTransformed >(pvoidOut, Info(), TransformNone()); ++ return new ProcessTransformed >(pvoidOut, Info(), TransformNone()); + + if (Info().bitspersample == sizeof(SAMPLE)*8) + { +@@ -765,7 +775,7 @@ ProcessLine* JlsCodec::CreateProcess(void* pvoidOut) + case COLORXFORM_HP3 : return new ProcessTransformed >(pvoidOut, Info(), TransformHp3()); break; + default: throw JlsException(UnsupportedColorTransform); + } +- } ++ } + else if (Info().bitspersample > 8) + { + int shift = 16 - Info().bitspersample; +@@ -796,7 +806,7 @@ size_t JlsCodec::EncodeScan(const void* rawData, BYTE **ptr, si + } + + DoScan(ptr, size, offset); +- ++ + return STRATEGY::GetLength(); + + } +@@ -827,7 +837,7 @@ size_t JlsCodec::DecodeScan(void* rawData, const JlsRect& rect, + _rect = rect; + + DoScan(ptr, size, offset + readBytes); +- ++ + return STRATEGY::GetCurBytePos() - (*ptr + offset); + } + diff --git a/patches/01_dcmtk_3.6.0-1.patch b/patches/01_dcmtk_3.6.0-1.patch new file mode 100644 index 00000000..199bb782 --- /dev/null +++ b/patches/01_dcmtk_3.6.0-1.patch @@ -0,0 +1,81 @@ +Author: Jürgen Salk +Description: The original maintainer Jürgen Salk applied + a set of patches to the original code. This file contains + changes to C++ code +Forwarded: not-needed + +--- a/dcmqrdb/etc/dcmqrscp.cfg ++++ b/dcmqrdb/etc/dcmqrscp.cfg +@@ -21,8 +21,8 @@ + # SpecificCharacterSet = "ISO_IR 192", override, discard, transliterate + + # +-# UserName = +-# GroupName = ++UserName = dcmtk ++GroupName = dcmtk + + HostTable BEGIN + # +@@ -38,12 +38,13 @@ + # NOTE: in the current implementation you cannot substitute an IP address + # for a hostname. + # +-acme1 = (ACME1, acmehost1, 5678) +-acme2 = (ACME2, acmehost2, 5678) +-acmeCTcompany = acme1, acme2 +-united1 = (UNITED1, unitedhost1, 104) +-united2 = (UNITED2, unitedhost2, 104) +-unitedMRcompany = united1, united2 ++# Example: ++#acme1 = (ACME1, acmehost1, 5678) ++#acme2 = (ACME2, acmehost2, 5678) ++#acmeCTcompany = acme1, acme2 ++#united1 = (UNITED1, unitedhost1, 104) ++#united2 = (UNITED2, unitedhost2, 104) ++#unitedMRcompany = united1, united2 + # + HostTable END + +@@ -61,8 +62,9 @@ + # VendorName = SymbolicName + # The symbolic name should be defined in the HostTable. + # +-"Acme CT Company" = acmeCTcompany +-"United MR Company" = unitedMRcompany ++# Example: ++#"Acme CT Company" = acmeCTcompany ++#"United MR Company" = unitedMRcompany + # + VendorTable END + +@@ -80,8 +82,13 @@ + # Entry in HostTable | + # ANY + # +-COMMON /home/dicom/db/COMMON R (200, 1024mb) ANY +-ACME_STORE /home/dicom/db/ACME_STORE RW (9, 1024mb) acmeCTcompany +-UNITED_STORE /home/dicom/db/UNITED_STORE RW (9, 1024mb) unitedMRcompany ++# Example: ++# ++#ACME_STORE /var/lib/dcmtk/db/ACME_STORE RW (9, 1024mb) acmeCTcompany ++#UNITED_STORE /var/lib/dcmtk/db/UNITED_STORE RW (9, 1024mb) unitedMRcompany ++# ++# Uncomment and adjust the following lines for a common r/rw storage area: ++#READWRITE /var/lib/dcmtk/db/READWRITE RW (10, 1024mb) ANY ++#READ /var/lib/dcmtk/db/READ R (200, 1024mb) ANY + # + AETable END +--- a/dcmqrdb/docs/dcmqrcnf.txt ++++ b/dcmqrdb/docs/dcmqrcnf.txt +@@ -46,8 +46,8 @@ + MaxPDUSize = 8192 + MaxAssociations = 20 + SpecificCharacterSet = fallback +-UserName = (do not change user) +-GroupName = (do not change group) ++UserName = dcmtk ++GroupName = dcmtk + + Available options for specific character sets are: + diff --git a/patches/03_datadic_install.patch b/patches/03_datadic_install.patch new file mode 100644 index 00000000..b0fa0af3 --- /dev/null +++ b/patches/03_datadic_install.patch @@ -0,0 +1,69 @@ +Description: Install dict to versioned dir +Bug-Debian: https://bugs.debian.org/709123 +Forwarded: not-needed +Author: Mathieu Malaterre +--- a/CMake/GenerateDCMTKConfigure.cmake ++++ b/CMake/GenerateDCMTKConfigure.cmake +@@ -118,23 +118,8 @@ endif() + + # Configure file + +-# Windows being windows, it lies about its processor type to 32 bit binaries +-set(SYSTEM_PROCESSOR "$ENV{PROCESSOR_ARCHITEW6432}") +-if(NOT SYSTEM_PROCESSOR) +- if(WIN32 AND NOT CYGWIN) +- if(CMAKE_GENERATOR_PLATFORM) +- set(SYSTEM_PROCESSOR "${CMAKE_GENERATOR_PLATFORM}") +- elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) +- set(SYSTEM_PROCESSOR "x64") +- elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) +- set(SYSTEM_PROCESSOR "Win32") +- endif() +- else() +- set(SYSTEM_PROCESSOR "${CMAKE_SYSTEM_PROCESSOR}") +- endif() +-endif() + # CMake doesn't provide a configure-style system type string +-set(CANONICAL_HOST_TYPE "${SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}") ++set(CANONICAL_HOST_TYPE "Debian") + DCMTK_UNSET(SYSTEM_PROCESSOR) + + # Configure dictionary path and install prefix +@@ -147,10 +132,10 @@ if(WIN32 AND NOT CYGWIN) + set(ENVIRONMENT_PATH_SEPARATOR ";") + # Set dictionary path to the data dir inside install main dir (prefix) + if(DCMTK_DEFAULT_DICT STREQUAL "external") +- set(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dcmtk\\\\dicom.dic") ++ set(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dicom.dic") + # If private dictionary should be utilized, add it to default dictionary path. + if(ENABLE_PRIVATE_TAGS) +- set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH};${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dcmtk\\\\private.dic") ++ set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH};${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\private.dic") + endif() + # Again, for Windows strip all / from path and replace it with \\. + string(REGEX REPLACE "/" "\\\\\\\\" DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH}") +@@ -168,10 +153,10 @@ else() + set(ENVIRONMENT_PATH_SEPARATOR ":") + # Set dictionary path to the data dir inside install main dir (prefix). + if(DCMTK_DEFAULT_DICT STREQUAL "external") +- set(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIR}/dcmtk/dicom.dic") ++ set(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIC}/dicom.dic") + # If private dictionary should be utilized, add it to default dictionary path. + if(ENABLE_PRIVATE_TAGS) +- set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH}:${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIR}/dcmtk/private.dic") ++ set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH}:${DCMTK_PREFIX}/${CMAKE_INSTALL_DATADIC}/private.dic") + endif() + else() + set(DCM_DICT_DEFAULT_PATH "") +--- a/dcmdata/data/CMakeLists.txt ++++ b/dcmdata/data/CMakeLists.txt +@@ -1,5 +1,8 @@ + # declare installation files +-install(FILES dicom.dic acrnema.dic private.dic diconde.dic dcm2xml.dtd dumppat.txt SC.dump VLP.dump DESTINATION "${CMAKE_INSTALL_DATADIR}/dcmtk" COMPONENT data) ++set(DCMTK_INSTALL_DATDIR "share/libdcmtk${DCMTK_ABI_VERSION}") ++ ++install(FILES dcm2xml.dtd dumppat.txt SC.dump VLP.dump DESTINATION "${CMAKE_INSTALL_DATADIR}/dcmtk" COMPONENT data) ++install(FILES dicom.dic acrnema.dic private.dic diconde.dic DESTINATION ${CMAKE_INSTALL_DATADIC} COMPONENT data) + + # add paths to the dictionaries to a CMake variable for being used by the unit tests + set(DCMTK_DICOM_DICTIONARIES diff --git a/patches/07_dont_export_all_executables.patch b/patches/07_dont_export_all_executables.patch new file mode 100644 index 00000000..dac3a5e0 --- /dev/null +++ b/patches/07_dont_export_all_executables.patch @@ -0,0 +1,27 @@ +Description: Don't add executables to cmake exports + CMake exports are used by other packages that compile + and link against dcmtk. Because Debian moves some of + these executables and also dosn't install the test + executables, this import may fail leading to failure + to configure the according package. +Bug-Debian: https://bugs.debian.org/803304 +Author: Gert Wollny +Forwarded: not-needed +Index: dcmtk/CMake/dcmtkMacros.cmake +=================================================================== +--- dcmtk.orig/CMake/dcmtkMacros.cmake ++++ dcmtk/CMake/dcmtkMacros.cmake +@@ -59,11 +59,11 @@ macro(DCMTK_ADD_EXECUTABLE PROGRAM) + endif() + + # Collect executable as part of global DCMTK_EXECUTABLE_TARGETS property +- set_property(GLOBAL APPEND PROPERTY DCMTK_EXECUTABLE_TARGETS ${PROGRAM}) ++ #set_property(GLOBAL APPEND PROPERTY DCMTK_EXECUTABLE_TARGETS ${PROGRAM}) + + # declare installation files, also export DCMTKTargets.cmake + install(TARGETS ${PROGRAM} +- EXPORT DCMTKTargets ++ # EXPORT DCMTKTargets + COMPONENT bin + DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() diff --git a/patches/remove_version.patch b/patches/remove_version.patch new file mode 100644 index 00000000..05faf03a --- /dev/null +++ b/patches/remove_version.patch @@ -0,0 +1,22 @@ +Description: Remove version +Author: Mathieu Malaterre +Forwarded: not-needed +Bug-Debian: https://bugs.debian.org/1098944 +Last-Update: 2025-03-21 + + +Index: dcmtk/CMake/GenerateDCMTKConfigure.cmake +=================================================================== +--- dcmtk.orig/CMake/GenerateDCMTKConfigure.cmake ++++ dcmtk/CMake/GenerateDCMTKConfigure.cmake +@@ -195,8 +195,8 @@ else() + + # Modify the installation paths for configuration files, data files and documents + # by adding a subdirectory with the DCMTK name and version number +- set(CMAKE_INSTALL_SYSCONFDIR "${CMAKE_INSTALL_SYSCONFDIR}/dcmtk-${DCMTK_COMPLETE_PACKAGE_VERSION}") +- set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/dcmtk-${DCMTK_COMPLETE_PACKAGE_VERSION}") ++ set(CMAKE_INSTALL_SYSCONFDIR "${CMAKE_INSTALL_SYSCONFDIR}/dcmtk") ++ set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/dcmtk") + set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DOCDIR}-${DCMTK_COMPLETE_PACKAGE_VERSION}") + + # These variables are defined as macros in osconfig.h and must end with a path separator diff --git a/patches/series b/patches/series new file mode 100644 index 00000000..ec391766 --- /dev/null +++ b/patches/series @@ -0,0 +1,10 @@ +01_dcmtk_3.6.0-1.patch +#03_datadic_install.patch +07_dont_export_all_executables.patch +remove_version.patch +0007-CVE-2024-47796.patch +0008-CVE-2024-52333.patch +0009-CVE-2025-25475.patch +0010-CVE-2025-25474.patch +0011-CVE-2025-25472.patch +0012-CVE-2025-2357.patch diff --git a/rules b/rules new file mode 100755 index 00000000..a33f37f1 --- /dev/null +++ b/rules @@ -0,0 +1,101 @@ +#!/usr/bin/make -f +#export DH_VERBOSE=1 + +# export DEB_BUILD_MAINT_OPTIONS = hardening=+pie +ifeq ($(DEB_TARGET_ARCH),armel) + # https://lists.debian.org/debian-arm/2024/01/msg00031.html + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1060104 + export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-stackclash optimize=+lto +else + export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=+lto +endif + +# needed for the tests +export DCMDICTPATH=$(CURDIR)/dcmdata/data/dicom.dic + +# deduce documentation option (build-indep target) +ifeq "" "$(filter %-doc,$(shell dh_listpackages))" + BUILDDOC = OFF +else + BUILDDOC = ON +endif + +ifeq ($(DEB_HOST_ARCH_CPU),i386) + DEB_CXXFLAGS_MAINT_APPEND += -fexcess-precision=fast +endif + +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1001703 +DEB_CXXFLAGS_MAINT_APPEND += -DENABLE_DCMJPLS_INTERLEAVE_NONE +export DEB_CXXFLAGS_MAINT_APPEND + +# when BUILDDOC==OFF, convenient copies of doxygen man pages are used +# when BUILDDOC==ON, doxygen man pages are being regenerated, this may leads to +# improper md5sum... + +%: + dh $@ --buildsystem=cmake + +CMAKE_EXTRA_FLAGS += \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + -DCMAKE_BUILD_TYPE:STRING=None \ + -DCMAKE_CXX_EXTENSIONS:BOOL=OFF \ + -DCMAKE_CXX_STANDARD:STRING=17 \ + -DCMAKE_INSTALL_DATADIC:STRING=share/libdcmtk18 \ + -DCMAKE_SKIP_RPATH:BOOL=ON \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DDCMTK_ENABLE_PRIVATE_TAGS:BOOL=ON \ + -DDCMTK_ENABLE_STL:BOOL=ON \ + -DDCMTK_WITH_DOXYGEN:BOOL=$(BUILDDOC) \ + -DDCMTK_WITH_ICONV:BOOL=OFF \ + -DDCMTK_WITH_ICU:BOOL=OFF \ + -DDCMTK_WITH_OPENSSL:BOOL=ON \ + -DDCMTK_WITH_STDLIBC_ICONV:BOOL=OFF \ + -DDCMTK_WITH_TIFF:BOOL=ON \ + -DDCMTK_WITH_XML:BOOL=ON \ + -DDCMTK_WITH_ZLIB:BOOL=ON \ + -DUSE_COMPILER_HIDDEN_VISIBILITY:BOOL=ON \ + +ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + CMAKE_EXTRA_FLAGS += -DBUILD_TESTING:BOOL=OFF +endif + +override_dh_auto_configure: + dh_auto_configure -- $(CMAKE_EXTRA_FLAGS) + +override_dh_auto_build-arch: + # need man page in -arch packages: + #$(MAKE) -C obj-* man + dh_auto_build + sed -i 's% -ffile-prefix-map=[^ ]* % %' obj-*/CMakeFiles/DCMTKConfig.cmake + +# Let's be smart with building doc +override_dh_auto_build-indep: + $(MAKE) -C obj-* DOXYGEN + +override_dh_auto_test-arch: + LD_LIBRARY_PATH=$(wildcard $(CURDIR)/obj-*/lib):$(LD_LIBRARY_PATH) dh_auto_test + +# No tests needed for docs +override_dh_auto_test-indep: + +override_dh_auto_install-arch: + dh_auto_install + +override_dh_auto_install-indep: + # DESTDIR=$(CURDIR)/debian/tmp cmake --install obj-* --component data + DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C obj-*/doxygen install + DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C obj-*/dcmwlm/data install + DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C obj-*/dcmdata/data install + DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C obj-*/oficonv/data install + + +override_dh_installdocs: + dh_installdocs + # do the doxygen / jquery fix: + dh_link -pdcmtk-doc usr/share/javascript/jquery/jquery.js usr/share/doc/dcmtk-doc/html/jquery.js + +override_dh_install-arch: + dh_install # --list-missing + + +.PHONY: get-orig-source diff --git a/source/format b/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/tests/control b/tests/control new file mode 100644 index 00000000..06cec718 --- /dev/null +++ b/tests/control @@ -0,0 +1,3 @@ +Tests: run-unit-test +Depends: python3-pydicom, @ +Restrictions: allow-stderr diff --git a/tests/run-unit-test b/tests/run-unit-test new file mode 100644 index 00000000..97dcb126 --- /dev/null +++ b/tests/run-unit-test @@ -0,0 +1,142 @@ +#!/bin/sh +set -e + +pkg=dcmtk + +CUR_DIR=`pwd` + + +export LC_ALL=C.UTF-8 +if [ "${AUTOPKGTEST_TMP}" = "" ] ; then + AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX) + trap "rm -rf ${AUTOPKGTEST_TMP}" 0 INT QUIT ABRT PIPE TERM +fi + +cp -a /usr/lib/python3/dist-packages/pydicom/data/test_files/CT_small.dcm "${AUTOPKGTEST_TMP}" +cp -a /usr/share/dcmtk/dicom.dic "${AUTOPKGTEST_TMP}" + + +export DCMDICTPATH=${AUTOPKGTEST_TMP}/dicom.dic + +cd "${AUTOPKGTEST_TMP}" + +echo "896048a80ff192ca8b6d9a1ba29d64fd CT_small.dcm" >> checksums + +echo "Running Tests" + +echo "Test 1" + +dcm2json CT_small.dcm dcm2json.json + +echo "Test 2" + +dcm2xml CT_small.dcm dcm2xml.xml + +echo "Test 3" + +dcmconv --convert-to-latin1 CT_small.dcm dcmconv.out + +echo "Test 4" + +dcmcrle CT_small.dcm dcmcrle.out + +echo "Test 5" + +dcmdrle dcmcrle.out dcmdrle.out + +echo "Test 6" + +dcmdump CT_small.dcm > dcmdump.out + +echo "Test 7" + +dump2dcm dcmdump.out dump2dcm.dcm + +echo "Test 8" + +dcmftest CT_small.dcm + +echo "Test 9" + +# only write the dataset so that the file meta information +# does not change and we can keep the same md5sum + +dcmodify --write-dataset -e "(0008,0031)" CT_small.dcm + +echo "Test 10" + +dcm2pnm +Rtd CT_small.dcm dcm2pnm.png + +echo "Test 11" + +dcmscale +Sxf 2.0 CT_small.dcm dcmscale.out + +echo "Test 12" + +dcmcjpls CT_small.dcm dcmcjpls.out + +echo "Test 13" + +dcmdjpls dcmcjpls.out dcmdjpls.out + +echo "Test 14" + +dcml2pnm CT_small.dcm dcml2pnm.png + +echo "Test 15" + +cat <> crv.txt + 256.451947 1.000000 + 477.689863 128.822080 + 128.822080 477.689863 + 35.310137 128.822080 + 256.451947 1.000000 +EOT + +dcmmkcrv CT_small.dcm crv.txt dcmmkcrv.out + +echo "Test 16" + +dcmmklut dcmmklut.out + +echo "Test 17" + +dcmp2pgm CT_small.dcm dcmp2pgm.out + +echo "Test 18" +dcmpsmk CT_small.dcm dcmpsmk.out + +echo "Test 19" +mkdir dcmqridx + +dcmqridx dcmqridx/ CT_small.dcm + +echo "Test 20" +dcmsign -q CT_small.dcm + +if [ -f dcmqridx/index.dat ] && \ + [ -f dcmpsmk.out ] && \ + [ -f dcmmklut.out ] && \ + [ -f dcm2json.json ] && \ + [ -f dcm2xml.xml ] && \ + [ -f dcmconv.out ] && \ + [ -f dcmcrle.out ] && \ + [ -f dcmdrle.out ] && \ + [ -f dcmdump.out ] && \ + [ -f dump2dcm.dcm ] && \ + [ -f dcm2pnm.png ] && \ + [ -f dcmscale.out ] && \ + [ -f dcmcjpls.out ] && \ + [ -f dcmdjpls.out ] && \ + [ -f dcml2pnm.png ] && \ + [ -f dcmmkcrv.out ] && \ + [ -f dcmp2pgm.out ] && \ + md5sum --check checksums; then + + echo "PASS" + +else + echo "FAIL" + +fi + diff --git a/upstream/metadata b/upstream/metadata new file mode 100644 index 00000000..b5a6e26c --- /dev/null +++ b/upstream/metadata @@ -0,0 +1,15 @@ +Repository: https://git.dcmtk.org/?p=dcmtk.git +Repository-Browse: https://git.dcmtk.org/?p=dcmtk.git +Bug-Database: https://support.dcmtk.org/redmine/issues/ +Reference: + Author: > + Lien, Chung-Yueh and Onken, Michael and Eichelberg, Marco and + Kao, Tsair and Hein, Andreas + Title: Open Source Tools for Standardized Privacy Protection of Medical Images + Journal: Progress in Biomedical Optics and Imaging - Proceedings of SPIE + Year: 2011 + Volume: 7967 + Pages: 79670M-79670M + DOI: 10.1117/12.877989 + URL: https://www.researchgate.net/publication/234046268_Open_Source_Tools_for_Standardized_Privacy_Protection_of_Medical_Images + eprint: https://www.researchgate.net/publication/234046268_Open_Source_Tools_for_Standardized_Privacy_Protection_of_Medical_Images diff --git a/watch b/watch new file mode 100644 index 00000000..09f6a971 --- /dev/null +++ b/watch @@ -0,0 +1,4 @@ +version=4 + +opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%@PACKAGE@-$1.tar.gz%" \ + https://github.com/DCMTK/dcmtk/tags (?:.*?/)?DCMTK-(\d[\d.]*)\.tar\.gz -- 2.30.2