Import dcmtk_3.6.9-5.debian.tar.xz
authorMathieu Malaterre <malat@debian.org>
Fri, 21 Mar 2025 11:45:44 +0000 (12:45 +0100)
committerMathieu Malaterre <malat@debian.org>
Fri, 21 Mar 2025 11:45:44 +0000 (12:45 +0100)
[dgit import tarball dcmtk 3.6.9-5 dcmtk_3.6.9-5.debian.tar.xz]

40 files changed:
.directory [new file with mode: 0644]
changelog [new file with mode: 0644]
control [new file with mode: 0644]
copyright [new file with mode: 0644]
dcmqrscp.default [new file with mode: 0644]
dcmqrscp.init [new file with mode: 0644]
dcmtk-data.install [new file with mode: 0644]
dcmtk-doc.doc-base [new file with mode: 0644]
dcmtk-doc.docs [new file with mode: 0644]
dcmtk.README.Debian [new file with mode: 0644]
dcmtk.dirs [new file with mode: 0644]
dcmtk.docs [new file with mode: 0644]
dcmtk.examples [new file with mode: 0644]
dcmtk.install [new file with mode: 0644]
dcmtk.maintscript [new file with mode: 0644]
dcmtk.manpages [new file with mode: 0644]
dcmtk.postinst [new file with mode: 0644]
dcmtk.postrm [new file with mode: 0644]
dcmtk.preinst [new file with mode: 0644]
dcmtk.prerm [new file with mode: 0644]
libdcmtk-dev.install [new file with mode: 0644]
libdcmtk19.install [new file with mode: 0644]
libdcmtk19.lintian-overrides [new file with mode: 0644]
patches/0007-CVE-2024-47796.patch [new file with mode: 0644]
patches/0008-CVE-2024-52333.patch [new file with mode: 0644]
patches/0009-CVE-2025-25475.patch [new file with mode: 0644]
patches/0010-CVE-2025-25474.patch [new file with mode: 0644]
patches/0011-CVE-2025-25472.patch [new file with mode: 0644]
patches/0012-CVE-2025-2357.patch [new file with mode: 0644]
patches/01_dcmtk_3.6.0-1.patch [new file with mode: 0644]
patches/03_datadic_install.patch [new file with mode: 0644]
patches/07_dont_export_all_executables.patch [new file with mode: 0644]
patches/remove_version.patch [new file with mode: 0644]
patches/series [new file with mode: 0644]
rules [new file with mode: 0755]
source/format [new file with mode: 0644]
tests/control [new file with mode: 0644]
tests/run-unit-test [new file with mode: 0644]
upstream/metadata [new file with mode: 0644]
watch [new file with mode: 0644]

diff --git a/.directory b/.directory
new file mode 100644 (file)
index 0000000..8fa2f8f
--- /dev/null
@@ -0,0 +1,2 @@
+[URL properties]
+ViewMode=fsview_part
diff --git a/changelog b/changelog
new file mode 100644 (file)
index 0000000..68b4d6f
--- /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 <malat@debian.org>  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 <emollier@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <emollier@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <sanvila@debian.org>  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 <sanvila@debian.org>  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 <crusoe@debian.org>  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 <crusoe@debian.org>  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 <s.jodogne@gmail.com>  Tue, 19 Mar 2024 11:54:38 +0100
+
+dcmtk (3.6.7-10) unreleased; urgency=medium
+
+  * Fix build on armel.  Closes: #1060104
+
+ -- Sebastien Jodogne <s.jodogne@gmail.com>  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 <mwhudson@debian.org>  Wed, 28 Feb 2024 01:17:02 +0000
+
+dcmtk (3.6.7-9) unstable; urgency=medium
+
+  * Team upload.
+  * Fix postrm
+    Closes: #1038776
+
+ -- Andreas Tille <tille@debian.org>  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 <malat@debian.org>  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 <tille@debian.org>  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 <malat@debian.org>  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 <tille@debian.org>  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 <tille@debian.org>  Tue, 07 Jun 2022 09:05:06 +0200
+
+dcmtk (3.6.7-3) unstable; urgency=medium
+
+  * Source-only upload
+  * Breaks+Replaces: libdcmtk16
+
+ -- Andreas Tille <tille@debian.org>  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 <tille@debian.org>  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 <tille@debian.org>  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 <LQi254@protonmail.com>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <malat@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gewo@debian.org>  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 <gw.fossdev@gmail.com>  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 <gw.fossdev@gmail.com>  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 <gw.fossdev@gmail.com>  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 <gw.fossdev@gmail.com>  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 <gw.fossdev@gmail.com>  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 <gw.fossdev@gmail.com>  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 <gw.fossdev@gmail.com>  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 <gw.fossdev@gmail.com>  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 <gw.fossdev@gmail.com>  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 <gw.fossdev@gmail.com>  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 <tille@debian.org>  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 <tille@debian.org>  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
+    <kenhys@gmail.com>)
+    Closes:  #779700
+  * Apply patch to fix performance problem (thanks for the patch to
+    Sebastien Jodogne <s.jodogne@chu.ulg.ac.be>)
+    Closes: #785400)
+  * Enable reproducible build (Thanks for the patch to Maria Valentina Marin
+    <marivalenm@gmail.com>)
+    Closes: #790133
+
+ -- Andreas Tille <tille@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  Fri, 20 Dec 2013 11:02:48 +0100
+
+dcmtk (3.6.1~20131114-4) experimental; urgency=low
+
+  * Import patch from git (upstream)
+
+ -- Mathieu Malaterre <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <malat@debian.org>  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 <mathieu.malaterre@gmail.com>  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 <mathieu.malaterre@gmail.com>  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 <mathieu.malaterre@gmail.com>  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 <mathieu.malaterre@gmail.com>  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 <mathieu.malaterre@gmail.com>  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 <mathieu.malaterre@gmail.com>  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 <mathieu.malaterre@gmail.com>  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 <mathieu.malaterre@gmail.com>  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 <mathieu.malaterre@gmail.com>  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 <tille@debian.org>  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 <tille@debian.org>  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
+    <mmiller3@iupui.edu>)
+    Closes: #429041
+  * debian/dcmtk.prerm: Stop dcmqrscp/imagectn more sanely
+  * debian/control: Replace ${Source-Version} by ${binary:Version}
+
+ -- Juergen Salk <jsa@debian.org>  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 <liw@iki.fi>)
+    Closes: #353288
+  * debian/control: Removed 'Uploaders: field.
+    | From: Pablo Sau <psau@cadpet.es>
+    | Subject: Re: dcmtk
+    | Date: Thu, 19 Jan 2006 16:41:06 +0100
+    | To: Juergen Salk <jsa@debian.org>
+    | 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 <jsa@debian.org>  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 <jsa@debian.org>  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 <juergen.salk@gmx.de>  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 <juergen.salk@gmx.de>  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 <he@debian.org>)
+  * 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 <juergen.salk@gmx.de>  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 <Roland.Rutschmann@psychologie.uni-regensburg.de>)
+  * Added debian/dcmtk.postinst script to create dcmtk system user/group
+  * Added debian/imagectn.init and debian/imagectn.default
+    (suggested by  R.M. Rutschmann <Roland.Rutschmann@psychologie.uni-regensburg.de>)
+  * Updated debian/README.Debian
+  * Removed stale lintian override file
+  * Swapped 'Maintainer:' and 'Uploaders:' field
+    | From: Pablo Sau <psau@cadpet.es>
+    | 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 <juergen.salk@gmx.de>  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 <juergen.salk@gmx.de>  Sat, 30 Oct 2004 11:02:48 +0200
diff --git a/control b/control
new file mode 100644 (file)
index 0000000..fa8eaed
--- /dev/null
+++ b/control
@@ -0,0 +1,104 @@
+Source: dcmtk
+Maintainer: Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org>
+Uploaders: Gert Wollny <gewo@debian.org>, Mathieu Malaterre <malat@debian.org>
+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 (file)
index 0000000..4e05b0a
--- /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 <info@dcmtk.org>
+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 <Todd.Miller(at)courtesan.com>
+    1988 Regents of the University of California
+    1999 Bob Withers <bwit@pobox.com>
+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 <bkoz@redhat.com>
+ 2012 Zack Weinberg <zackw@panix.com>
+ 2013 Roy Stogner <roystgnr@ices.utexas.edu>
+ 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
+ 2015 Paul Norman <penorman@mac.com>
+ 2015 Moritz Klammler <moritz@klammler.eu>
+ 2016 Krzesimir Nowak <qdlacz@gmail.com>
+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
+ <http://www.gnu.org/licenses/>.
+ .
+ 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 <juergen.salk@gmx.de> on
+           2011-2014 Mathieu Malaterre <malat@debian.org>
+    2014-2015 Andreas Tille <tille@debian.org>
+    2015-2018 Gert Wollny <gw.fossdev@gmail.com>
+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 <copyright holder> 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 (file)
index 0000000..03a6699
--- /dev/null
@@ -0,0 +1,3 @@
+# Run dcmqrscp at startup ?
+DCMQRSCP_ENABLE=No
+
diff --git a/dcmqrscp.init b/dcmqrscp.init
new file mode 100644 (file)
index 0000000..c7a0816
--- /dev/null
@@ -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 <rudi@debian.org>
+#        and Juergen Salk <juergen.salk@gmx.de>
+# 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 (file)
index 0000000..7045a55
--- /dev/null
@@ -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 (file)
index 0000000..fa774a4
--- /dev/null
@@ -0,0 +1,12 @@
+Document: dcmtk-doc
+Title: Documentation of DCMTK
+Author: OFFIS DICOM Team <dicom@offis.de>
+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 (file)
index 0000000..9c1434e
--- /dev/null
@@ -0,0 +1 @@
+usr/share/doc/dcmtk-*/
diff --git a/dcmtk.README.Debian b/dcmtk.README.Debian
new file mode 100644 (file)
index 0000000..cfb3e38
--- /dev/null
@@ -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 <malat@debian.org>  Fri, 21 Mar 2025 12:42:50 +0100
diff --git a/dcmtk.dirs b/dcmtk.dirs
new file mode 100644 (file)
index 0000000..716b8d8
--- /dev/null
@@ -0,0 +1 @@
+/var/lib/dcmtk/db
diff --git a/dcmtk.docs b/dcmtk.docs
new file mode 100644 (file)
index 0000000..45b0503
--- /dev/null
@@ -0,0 +1,2 @@
+FAQ
+README
diff --git a/dcmtk.examples b/dcmtk.examples
new file mode 100644 (file)
index 0000000..2531570
--- /dev/null
@@ -0,0 +1,2 @@
+usr/share/dcmtk/wlistdb
+usr/share/dcmtk/wlistqry
diff --git a/dcmtk.install b/dcmtk.install
new file mode 100644 (file)
index 0000000..3867465
--- /dev/null
@@ -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 (file)
index 0000000..f3ed6f5
--- /dev/null
@@ -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 (file)
index 0000000..5ed5bcf
--- /dev/null
@@ -0,0 +1 @@
+usr/share/man/man1/*.1
diff --git a/dcmtk.postinst b/dcmtk.postinst
new file mode 100644 (file)
index 0000000..525636d
--- /dev/null
@@ -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/imagectn.dpkg-old >/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 (file)
index 0000000..b8efc7e
--- /dev/null
@@ -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 (file)
index 0000000..9f84376
--- /dev/null
@@ -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 (file)
index 0000000..15e7e01
--- /dev/null
@@ -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 (file)
index 0000000..c6ffc6e
--- /dev/null
@@ -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 (file)
index 0000000..3de3b10
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/*/*.so.*
diff --git a/libdcmtk19.lintian-overrides b/libdcmtk19.lintian-overrides
new file mode 100644 (file)
index 0000000..d55e514
--- /dev/null
@@ -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 (file)
index 0000000..eda6129
--- /dev/null
@@ -0,0 +1,32 @@
+Author: Joerg Riesmeier <dicom@jriesmeier.com>
+Forwarded: https://git.dcmtk.org/?p=dcmtk.git;a=commit;h=89a6e399f1e17d08a8bc8cdaa05b2ac9a50cd4f6
+Bug-Debian: https://bugs.debian.org/1093043
+Reviewed-By: Étienne Mollier <emollier@debian.org>
+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
+ <vulndiscovery@external.cisco.com> 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<T3>::zeroMem(this->Data + this->InputCount, this->Count - this->InputCount);
++                OFBitmanipTemplate<T3>::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 (file)
index 0000000..774f6be
--- /dev/null
@@ -0,0 +1,48 @@
+Author: Joerg Riesmeier <dicom@jriesmeier.com>
+Forwarded: https://git.dcmtk.org/?p=dcmtk.git;a=commit;h=03e851b0586d05057c3268988e180ffb426b2e03
+Bug-Debian: https://bugs.debian.org/1093047
+Reviewed-By: Étienne Mollier <emollier@debian.org>
+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
+ <vulndiscovery@external.cisco.com> 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 (file)
index 0000000..8f2ff86
--- /dev/null
@@ -0,0 +1,35 @@
+commit bffa3e9116abb7038b432443f16b1bd390e80245
+Author: Marco Eichelberg <eichelberg@offis.de>
+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 <xiaozheng.ding399@gmail.com> 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 (file)
index 0000000..b58b520
--- /dev/null
@@ -0,0 +1,34 @@
+commit 1d205bcd307164c99e0d4bbf412110372658d847
+Author: Joerg Riesmeier <dicom@jriesmeier.com>
+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 <xiaozheng.ding399@gmail.com> 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 (file)
index 0000000..90d710a
--- /dev/null
@@ -0,0 +1,49 @@
+commit 410ffe2019b9db6a8f4036daac742a6f5e4d36c2
+Author: Joerg Riesmeier <dicom@jriesmeier.com>
+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 <xiaozheng.ding399@gmail.com> 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<T3>::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<T3>::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<T3>::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 (file)
index 0000000..067e30d
--- /dev/null
@@ -0,0 +1,512 @@
+From: Marco Eichelberg <eichelberg@offis.de>
+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 <xiaozheng.ding399@gmail.com> 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<signed char> rgquant10Ll;
+ extern OFVector<signed char> rgquant12Ll;
+ extern OFVector<signed char> 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<LONG, LONG> 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<LONG, LONG> paircode = CreateEncodedValue(k, merrval);
+@@ -364,7 +364,7 @@ inlinehint void JlsCodec<TRAITS,STRATEGY>::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<TRAITS,STRATEGY>::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<TRAITS,STRATEGY>::EncodeMappedValue(LONG k, LONG mapped
+ template<class TRAITS, class STRATEGY>
+ void JlsCodec<TRAITS,STRATEGY>::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<class TRAITS, class STRATEGY>
+ LONG JlsCodec<TRAITS,STRATEGY>::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<TRAITS,STRATEGY>::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<TRAITS,STRATEGY>::EncodeRIError(CContextRunMode& ctx, LONG Errval)
+ template<class TRAITS, class STRATEGY>
+ Triplet<OFTypename TRAITS::SAMPLE> JlsCodec<TRAITS,STRATEGY>::DecodeRIPixel(Triplet<SAMPLE> Ra, Triplet<SAMPLE> Rb)
+-{ 
++{
+       LONG Errval1 = DecodeRIError(_contextRunmode[0]);
+       LONG Errval2 = DecodeRIError(_contextRunmode[0]);
+       LONG Errval3 = DecodeRIError(_contextRunmode[0]);
+@@ -513,18 +513,18 @@ Triplet<OFTypename TRAITS::SAMPLE> JlsCodec<TRAITS,STRATEGY>::EncodeRIPixel(Trip
+ template<class TRAITS, class STRATEGY>
+ void JlsCodec<TRAITS,STRATEGY>::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<TRAITS,STRATEGY>::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<TRAITS,STRATEGY>::DecodeRunPixels(PIXEL Ra, PIXEL* startPos, LONG
+       for (LONG i = 0; i < index; ++i)
+       {
+               startPos[i] = Ra;
+-      }       
++      }
+       return index;
+ }
+@@ -582,7 +582,7 @@ LONG JlsCodec<TRAITS,STRATEGY>::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<TRAITS,STRATEGY>::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<TRAITS,STRATEGY>::DoLine(SAMPLE*)
+               {
+                       index += DoRunMode(index, (STRATEGY*)(NULL));
+                       Rb = _previousLine[index-1];
+-                      Rd = _previousLine[index];      
+-              }                               
++                      Rd = _previousLine[index];
++              }
+       }
+ }
+@@ -661,7 +671,7 @@ void JlsCodec<TRAITS,STRATEGY>::DoLine(Triplet<SAMPLE>*)
+ {
+       LONG index = 0;
+       while(index < _width)
+-      {               
++      {
+               Triplet<SAMPLE> Ra = _currentLine[index -1];
+               Triplet<SAMPLE> Rc = _previousLine[index-1];
+               Triplet<SAMPLE> Rb = _previousLine[index];
+@@ -671,7 +681,7 @@ void JlsCodec<TRAITS,STRATEGY>::DoLine(Triplet<SAMPLE>*)
+               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<TRAITS,STRATEGY>::DoLine(Triplet<SAMPLE>*)
+                       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<class TRAITS, class STRATEGY>
+ void JlsCodec<TRAITS,STRATEGY>::DoScan(BYTE **ptr, size_t *size, size_t offset)
+-{             
++{
+       _width = Info().width;
+       STRATEGY::Init(ptr, size, offset);
+@@ -706,11 +716,11 @@ void JlsCodec<TRAITS,STRATEGY>::DoScan(BYTE **ptr, size_t *size, size_t offset)
+       OFVector<PIXEL> vectmp(2 * components * pixelstride);
+       OFVector<LONG> 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<TRAITS,STRATEGY>::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<TRAITS,STRATEGY>::CreateProcess(void* pvoidOut)
+               return new PostProcesSingleComponent(pvoidOut, Info(), sizeof(typename TRAITS::PIXEL));
+       if (Info().colorTransform == 0)
+-              return new ProcessTransformed<TransformNone<OFTypename TRAITS::SAMPLE> >(pvoidOut, Info(), TransformNone<SAMPLE>()); 
++              return new ProcessTransformed<TransformNone<OFTypename TRAITS::SAMPLE> >(pvoidOut, Info(), TransformNone<SAMPLE>());
+       if (Info().bitspersample == sizeof(SAMPLE)*8)
+       {
+@@ -765,7 +775,7 @@ ProcessLine* JlsCodec<TRAITS,STRATEGY>::CreateProcess(void* pvoidOut)
+                       case COLORXFORM_HP3 : return new ProcessTransformed<TransformHp3<SAMPLE> >(pvoidOut, Info(), TransformHp3<SAMPLE>()); break;
+                       default: throw JlsException(UnsupportedColorTransform);
+               }
+-      } 
++      }
+       else if (Info().bitspersample > 8)
+       {
+               int shift = 16 - Info().bitspersample;
+@@ -796,7 +806,7 @@ size_t JlsCodec<TRAITS,STRATEGY>::EncodeScan(const void* rawData, BYTE **ptr, si
+       }
+       DoScan(ptr, size, offset);
+-      
++
+       return  STRATEGY::GetLength();
+ }
+@@ -827,7 +837,7 @@ size_t JlsCodec<TRAITS,STRATEGY>::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 (file)
index 0000000..199bb78
--- /dev/null
@@ -0,0 +1,81 @@
+Author: Jürgen Salk <jsa@debian.org>
+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      = <not used>
+-# GroupName     = <not used>
++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 (file)
index 0000000..b0fa0af
--- /dev/null
@@ -0,0 +1,69 @@
+Description: Install dict to versioned dir
+Bug-Debian: https://bugs.debian.org/709123
+Forwarded: not-needed
+Author: Mathieu Malaterre <malat@debian.org>
+--- 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 (file)
index 0000000..dac3a5e
--- /dev/null
@@ -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 <gw.fossdev@gmail.com>
+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 (file)
index 0000000..05faf03
--- /dev/null
@@ -0,0 +1,22 @@
+Description: Remove version
+Author: Mathieu Malaterre <malat@debian.org>
+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 (file)
index 0000000..ec39176
--- /dev/null
@@ -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 (executable)
index 0000000..a33f37f
--- /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 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/tests/control b/tests/control
new file mode 100644 (file)
index 0000000..06cec71
--- /dev/null
@@ -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 (file)
index 0000000..97dcb12
--- /dev/null
@@ -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 <<EOT >> 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 (file)
index 0000000..b5a6e26
--- /dev/null
@@ -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 (file)
index 0000000..09f6a97
--- /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