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