From: Peter Michael Green Date: Wed, 19 Jun 2024 20:44:47 +0000 (+0000) Subject: Import dcmtk_3.6.7-13+rpi1.debian.tar.xz X-Git-Tag: archive/raspbian/3.6.8-6+rpi1~7^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=abefc47dadb03ee17f4963beaa63a418cbbce66b;p=dcmtk.git Import dcmtk_3.6.7-13+rpi1.debian.tar.xz [dgit import tarball dcmtk 3.6.7-13+rpi1 dcmtk_3.6.7-13+rpi1.debian.tar.xz] --- abefc47dadb03ee17f4963beaa63a418cbbce66b 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/NEWS b/NEWS new file mode 100644 index 00000000..e9f36334 --- /dev/null +++ b/NEWS @@ -0,0 +1,24 @@ +dcmtk (3.6.1~20150924-1) unstable; urgency=medium + + With this new snapshot upstream removed the wwwapps tools and + perl scripts that were developed for the CAR 1996 modality showcase, and + that are largely unused and unsupported. + + -- Gert Wollny Tue, 01 Dec 2015 02:46:03 +0100 + +dcmtk (3.6.1~20150629-2) unstable; urgency=medium + + Version 3.6.1 has compatible change of the index.dat format that is not + backward compatible, and the current dcmtk is trashing the memory (one + byte of) when using dcmqrscp. All files in + + /var/lib/dcmtk/*/index.dat + + that are create with version 3.6.0 or before will be corrupted and + users need to reconstruct the db. + + The interested user might like to inspect the upstream commit + + http://git.dcmtk.org/web?p=dcmtk.git;a=commitdiff;h=c8423ab1fcf0273061462697b8eca56f894984c7 + + -- Andreas Tille Thu, 08 Oct 2015 13:06:03 +0200 diff --git a/changelog b/changelog new file mode 100644 index 00000000..4e1dfb86 --- /dev/null +++ b/changelog @@ -0,0 +1,927 @@ +dcmtk (3.6.7-13+rpi1) trixie-staging; urgency=medium + + * Disable stack clash protection, it causes assembler errors on raspbian. + + -- Peter Michael Green Wed, 19 Jun 2024 20:44:47 +0000 + +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..cbb7fd57 --- /dev/null +++ b/control @@ -0,0 +1,101 @@ +Source: dcmtk +Maintainer: Debian Med Packaging Team +Uploaders: Gert Wollny , + Mathieu Malaterre +Section: science +Priority: optional +Build-Depends: dpkg-dev (>= 1.22.5), cmake, + debhelper-compat (= 13), + gettext, + help2man, + libpng-dev, + libsndfile1-dev, + libssl-dev, + libtiff-dev, + libwrap0-dev, + libnsl-dev, + libxml2-dev, + zlib1g-dev +Build-Depends-Indep: doxygen, + graphviz [!armhf !armel] +Standards-Version: 4.6.2 +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: libdcmtk17t64 +Provides: ${t64:Provides} +Architecture: any +Section: libs +Depends: ${misc:Depends}, + ${shlibs:Depends} +Breaks: libdcmtk17 (<< ${source:Version}), libdcmtk16 (= 3.6.7-1) +Replaces: libdcmtk17, libdcmtk16 (= 3.6.7-1) +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: libdcmtk17t64 (= ${binary:Version}), + libpng-dev, + libssl-dev, + libtiff-dev, + libwrap0-dev, + libnsl-dev, + libxml2-dev, + ${misc:Depends} +Suggests: dcmtk-doc +Provides: libdcmtk17-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: ${misc:Depends}, libjs-jquery +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-doc.doc-base b/dcmtk-doc.doc-base new file mode 100644 index 00000000..eb33f9e6 --- /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/html/index.html +Files: /usr/share/doc/dcmtk/dcmtk/html/* diff --git a/dcmtk-doc.docs b/dcmtk-doc.docs new file mode 100644 index 00000000..470bae5f --- /dev/null +++ b/dcmtk-doc.docs @@ -0,0 +1 @@ +usr/share/doc/dcmtk/ diff --git a/dcmtk.NEWS b/dcmtk.NEWS new file mode 100644 index 00000000..02975c66 --- /dev/null +++ b/dcmtk.NEWS @@ -0,0 +1,137 @@ +dcmtk (3.6.0-1) unstable; urgency=low + + Version 3.6.0 of the OFFIS DCMTK (DICOM ToolKit) software is now available for + public release. This release includes the following main changes over the + previous version 3.5.4: + + - DCMTK 3.6.0 now also builds correctly with GNU gcc 4.1 (and higher), Visual + Studio 2008 and 2010. + + - Tested with latest versions of the following operating systems/environments: + + - Linux on x86 and x86_64 + - FreeBSD on x86 and x86_64 + - MacOS X on x86_64 + - Windows on x86 and x86_64 + - Cygwin and MinGW/MSys on x86 + + For a complete list of tested systems and compilers, see the INSTALL file. + + - The CMake build system can now also be used with other operating systems than + Windows. However, GNU autoconf is still supported and should be preferred on + systems where the CMake project files fail. + + - New module oflog introduces a unified DCMTK-wide approach for logging based + on the log4cplus library. Direct output to console, file, syslog and event + log. All DCMTK command line tools now have the same set of logging options. + + - New module dcmjpls adds support for JPEG-LS compressed DICOM images based on + the CharLS library. The tools dcmcjpls and dcmdjpls allow for compressing + and decompressing DICOM images with JPEG-LS from the command line. + + - New tool img2dcm allows for converting JPEG and BMP images to various DICOM + image IODs, e.g. old and new Secondary Capture, Visible Light Photographic. + The underlying C++ class library can also be used separately. + + - New tool dcm2pdf allows for extracting PDF files from DICOM Encapsulated PDF + Storage SOP instances. + + - New tool dcml2pnm allows for converting JPEG-LS compressed DICOM images to + standard image formats like TIFF or BMP. + + - The tools dcmdump and storescu have new options for searching directories + recursively for DICOM files. + + - The tool dcmdump now also has a colored output of the textual dump. So far, + this option is available on non-Windows systems only (uses ANSI escape code). + + - The tool dcmodify now also supports reading the value of insert and modify + statements from a file. This is especially useful for large element values. + + - The tool dsr2html now also supports the output in HTML 4.01 and XHTML 1.1 + format. There are also new options that affect the rendering result. + + - The tool dump2dcm now also supports compressed pixel data. In addition, + the memory requirements for very large data elements have been reduced. + + - The tool xml2dcm can now also read binary data (e.g. pixel data) from a + separate file. The corresponding feature is not yet available in dcm2xml. + + - The tool storescp now has a new option that allows for accepting all + supported transfer syntaxes on a single association. + + - The tool wlmscpfs now supports multi-process mode both on Posix and Windows + platforms where a new child process is created for each incoming association. + + - Refactored code of the tool findscu into a C++ class. This facilitates + re-use of the findscu code in other applications. + + - Added further "switches" to the dcmdata module which allow one to better cope + with incorrectly encoded DICOM files or datasets. These switches are also + available as new options to the tools dcmdump and dcmconv. + + - The dcmdata module now also gives access to partial attribute values without + loading the complete attribute value into memory, if kept in file. + + - The write methods in dcmdata now handle large raw data elements without + loading everything into memory. This allows very large images to be sent + over a network connection or to be copied without ever being fully in memory. + + - The dcmdata module now has a common interface for the frame-wise access to + compressed and uncompressed pixel data without ever loading the complete + object into main memory. + + - The dcmimgle/dcmimage module makes use of the new partial access to pixel + data for processing large multi-frame images in a stepwise manner. + + - The dcmimgle/dcmimage module and related tools now also support a new + bilinear and a bicubic scaling algorithm for image magnification. + Furthermore, the sigmoid VOI LUT function has been implemented. + + - Added support for Colon CAD SR, Spectacle Prescription Report, Macular Grid + Thickness and Volume Report as well as Implantation Plan SR documents to the + dcmsr module. + + - Incorporated fixes to dcmsr module which were introduced by various + correction proposals. Added support for the new optional Preliminary Flag. + + - DICOMDIR tools and classes now support all new SOP classes and directory + record types. Also added a new operating mode that allows for updating + existing entries in a DICOMDIR. + + - Introduced general path syntax for accessing nested elements from command + line tools like findscu or dcmodify. + + - Added methods for checking the value representation (VR) and value + multiplicity (VM) of data elements for conformance with the DICOM standard. + + - Network tools now support transmission and receipt of JPEG-LS and MPEG2 + transfer syntaxes. + + - Added support for the extended negotiation of user identity to the dcmnet + module. The first tool that makes use of this new feature is storescu. + + - Introduced new experimental SCU and SCP classes that act as a C++ wrapper to + the still C-based dcmnet module. + + - Added new class OFFile that provides a simple encapsulation layer for file + based stream I/O and, in particular, provides large file support (LFS) if + available on the underlying operating system/platform through a single API. + + - Out of the box compilation with OpenSSL 1.0.0 is now supported. + + - Revised installation directory scheme in order to be more compliant with the + Filesystem Hierarchy Standard (FHS) and derived file system standards. + + - Added data dictionary including private ASTM tags from DICONDE (Digital + Imaging and Communication in Nondestructive Evaluation) standard. + + - The DICOM data dictionary as well as the list of SOP classes and transfer + syntaxes have been re-worked based on the latest edition of the DICOM + standard plus all additionally approved supplements and correction proposals + (as of 2010-11-30). Please note that there have been minor name changes! + + - Many bug fixes and minor improvements as usual - see the more than 12,000 + lines long CHANGES.360 file for more details. + + -- Mathieu Malaterre Tue, 08 Feb 2011 19:14:53 +0100 diff --git a/dcmtk.README.Debian b/dcmtk.README.Debian new file mode 100644 index 00000000..96859ec7 --- /dev/null +++ b/dcmtk.README.Debian @@ -0,0 +1,166 @@ +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/ + +--- + +DCMTK on Debian is either build using ICU or stdlibc (iconv) to support +CharacterSet in DICOM. However full support for CharacterSet is only +implemented in libiconv. Since Debian does not ship libiconv, user may get the +following error message for the non-supported CharacterSet (ISO 2022 IR 87 in +this case): + +E: DcmSpecificCharacterSet: 'ISO 2022 IR 87' is not supported by the utilized + character set conversion library 'ICU, Version 63.1.0' + +or + +E: DcmSpecificCharacterSet: 'ISO 2022 IR 87' is not supported by the utilized + character set conversion library 'GNU C library (iconv), version 2.28' + + -- Mathieu Malaterre Thu, 20 May 2021 11:36:10 +0200 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..ccf9d946 --- /dev/null +++ b/dcmtk.docs @@ -0,0 +1,3 @@ +FAQ +README +debian/NEWS diff --git a/dcmtk.examples b/dcmtk.examples new file mode 100644 index 00000000..2c44e66e --- /dev/null +++ b/dcmtk.examples @@ -0,0 +1,2 @@ +debian/tmp/usr/share/dcmtk/wlistdb +debian/tmp/usr/share/dcmtk/wlistqry diff --git a/dcmtk.install b/dcmtk.install new file mode 100644 index 00000000..9c2b398c --- /dev/null +++ b/dcmtk.install @@ -0,0 +1,7 @@ +etc/dcmtk/* +usr/bin/* +usr/share/dcmtk/*.css +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..9eefb317 --- /dev/null +++ b/dcmtk.maintscript @@ -0,0 +1,4 @@ +rm_conffile /etc/init.d/storescp +rm_conffile /etc/init.d/dcmqrscp +rm_conffile /etc/default/storescp +rm_conffile /etc/default/dcmqrscp 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..e6e70000 --- /dev/null +++ b/libdcmtk-dev.install @@ -0,0 +1,4 @@ +usr/include/dcmtk/* +usr/lib/*/*.so +usr/lib/*/cmake/ +usr/lib/*/pkgconfig \ No newline at end of file diff --git a/libdcmtk17t64.install b/libdcmtk17t64.install new file mode 100644 index 00000000..59844d52 --- /dev/null +++ b/libdcmtk17t64.install @@ -0,0 +1,2 @@ +usr/lib/*/*.so.* +usr/share/libdcmtk17/*.dic diff --git a/libdcmtk17t64.lintian-overrides b/libdcmtk17t64.lintian-overrides new file mode 100644 index 00000000..85e79be7 --- /dev/null +++ b/libdcmtk17t64.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 +libdcmtk17t64: package-name-doesnt-match-sonames +libdcmtk17t64: embedded-library +libdcmtk17t64: no-symbols-control-file 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/02_system_charls.patch b/patches/02_system_charls.patch new file mode 100644 index 00000000..fa562f71 --- /dev/null +++ b/patches/02_system_charls.patch @@ -0,0 +1,82 @@ +Description: Remove convenient copy of CharLS +Bug-Debian: https://bugs.debian.org/705923 +Forwarded: not-needed +Author: Mathieu Malaterre +--- a/dcmjpls/CMakeLists.txt ++++ b/dcmjpls/CMakeLists.txt +@@ -2,6 +2,6 @@ + project(dcmjpls) + + # recurse into subdirectories +-foreach(SUBDIR libsrc libcharls apps include) ++foreach(SUBDIR libsrc apps include) + add_subdirectory(${SUBDIR}) + endforeach() +--- a/dcmjpls/libsrc/djerror.h ++++ b/dcmjpls/libsrc/djerror.h +@@ -24,7 +24,7 @@ + + #include "dcmtk/config/osconfig.h" + #include "dcmtk/dcmjpls/djlsutil.h" /* For the OFCondition codes */ +-#include "intrface.h" /* CharLS include */ ++#include "CharLS/interface.h" /* CharLS include */ + + /** Helper class for converting between dcmjpls and CharLS error codes + */ +--- a/dcmjpls/libsrc/djcodecd.cc ++++ b/dcmjpls/libsrc/djcodecd.cc +@@ -37,7 +37,7 @@ + #include "djerror.h" /* for private class DJLSError */ + + // JPEG-LS library (CharLS) includes +-#include "intrface.h" ++#include "CharLS/interface.h" + + E_TransferSyntax DJLSLosslessDecoder::supportedTransferSyntax() const + { +--- a/dcmjpls/libsrc/djcodece.cc ++++ b/dcmjpls/libsrc/djcodece.cc +@@ -55,7 +55,7 @@ + #include "dcmtk/dcmimgle/dcmimage.h" /* for class DicomImage */ + + // JPEG-LS library (CharLS) includes +-#include "intrface.h" ++#include "CharLS/interface.h" + + BEGIN_EXTERN_C + #ifdef HAVE_FCNTL_H +@@ -664,7 +664,7 @@ + + size_t bytesWritten = 0; + +- JLS_ERROR err = JpegLsEncode(&buffer, &size, &bytesWritten, framePointer, frameSize, &jls_params); ++ JLS_ERROR err = JpegLsEncode(&buffer, size, &bytesWritten, framePointer, frameSize, &jls_params); + result = DJLSError::convert(err); + + if (result.good()) +@@ -1071,7 +1071,7 @@ + + size_t bytesWritten = 0; + +- JLS_ERROR err = JpegLsEncode(&compressed_buffer, &compressed_buffer_size, &bytesWritten, framePointer, buffer_size, &jls_params); ++ JLS_ERROR err = JpegLsEncode(&compressed_buffer, compressed_buffer_size, &bytesWritten, framePointer, buffer_size, &jls_params); + result = DJLSError::convert(err); + + if (result.good()) +--- a/dcmjpls/apps/CMakeLists.txt ++++ b/dcmjpls/apps/CMakeLists.txt +@@ -8,5 +8,5 @@ + + # make sure executables are linked to the corresponding libraries + foreach(PROGRAM dcmcjpls dcmdjpls dcml2pnm) +- DCMTK_TARGET_LINK_MODULES(${PROGRAM} dcmjpls charls dcmimage dcmimgle dcmdata oflog ofstd ofstd) ++ DCMTK_TARGET_LINK_MODULES(${PROGRAM} dcmjpls CharLS dcmimage dcmimgle dcmdata oflog ofstd ofstd) + endforeach() +--- a/dcmjpls/libsrc/CMakeLists.txt ++++ b/dcmjpls/libsrc/CMakeLists.txt +@@ -4,4 +4,4 @@ + # create library from source files + DCMTK_ADD_LIBRARY(dcmjpls djcparam djdecode djencode djrparam djcodecd djutils djcodece) + +-DCMTK_TARGET_LINK_MODULES(dcmjpls ofstd oflog dcmdata dcmimgle dcmimage charls) ++DCMTK_TARGET_LINK_MODULES(dcmjpls ofstd oflog dcmdata dcmimgle dcmimage CharLS) 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..cb6ccbe9 --- /dev/null +++ b/patches/07_dont_export_all_executables.patch @@ -0,0 +1,25 @@ +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 +--- a/CMake/dcmtkMacros.cmake ++++ b/CMake/dcmtkMacros.cmake +@@ -60,11 +60,11 @@ + 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/09_charls-2.0.patch b/patches/09_charls-2.0.patch new file mode 100644 index 00000000..384a17ff --- /dev/null +++ b/patches/09_charls-2.0.patch @@ -0,0 +1,326 @@ +Description: Fix build with charls-2.0 +Author: Gert Wollny + +diff -ru dcmtk/dcmjpls/libsrc/djcodecd.cc dcmtk-3.6.4.new/dcmjpls/libsrc/djcodecd.cc +--- dcmtk/dcmjpls/libsrc/djcodecd.cc 2019-01-12 16:13:14.012002607 +0100 ++++ dcmtk-3.6.4.new/dcmjpls/libsrc/djcodecd.cc 2019-01-12 15:48:40.936001789 +0100 +@@ -37,7 +37,7 @@ + #include "djerror.h" /* for private class DJLSError */ + + // JPEG-LS library (CharLS) includes +-#include "CharLS/interface.h" ++#include "CharLS/charls.h" + + E_TransferSyntax DJLSLosslessDecoder::supportedTransferSyntax() const + { +@@ -382,9 +382,8 @@ + if (result.good()) + { + JlsParameters params; +- JLS_ERROR err; + +- err = JpegLsReadHeader(jlsData, compressedSize, ¶ms); ++ auto err = JpegLsReadHeader(jlsData, compressedSize, ¶ms, NULL); + result = DJLSError::convert(err); + + if (result.good()) +@@ -392,8 +391,8 @@ + if (params.width != imageColumns) result = EC_JLSImageDataMismatch; + else if (params.height != imageRows) result = EC_JLSImageDataMismatch; + else if (params.components != imageSamplesPerPixel) result = EC_JLSImageDataMismatch; +- else if ((bytesPerSample == 1) && (params.bitspersample > 8)) result = EC_JLSImageDataMismatch; +- else if ((bytesPerSample == 2) && (params.bitspersample <= 8)) result = EC_JLSImageDataMismatch; ++ else if ((bytesPerSample == 1) && (params.bitsPerSample > 8)) result = EC_JLSImageDataMismatch; ++ else if ((bytesPerSample == 2) && (params.bitsPerSample <= 8)) result = EC_JLSImageDataMismatch; + } + + if (!result.good()) +@@ -402,13 +401,13 @@ + } + else + { +- err = JpegLsDecode(buffer, bufSize, jlsData, compressedSize, ¶ms); ++ err = JpegLsDecode(buffer, bufSize, jlsData, compressedSize, ¶ms, NULL); + result = DJLSError::convert(err); + delete[] jlsData; + + if (result.good() && imageSamplesPerPixel == 3) + { +- if (imagePlanarConfiguration == 1 && params.ilv != ILV_NONE) ++ if (imagePlanarConfiguration == 1 && params.interleaveMode != charls::InterleaveMode::None) + { + // The dataset says this should be planarConfiguration == 1, but + // it isn't -> convert it. +@@ -418,7 +417,8 @@ + else + result = createPlanarConfiguration1Word(OFreinterpret_cast(Uint16*, buffer), imageColumns, imageRows); + } +- else if (imagePlanarConfiguration == 0 && params.ilv != ILV_SAMPLE && params.ilv != ILV_LINE) ++ else if (imagePlanarConfiguration == 0 && params.interleaveMode != charls::InterleaveMode::Sample && ++ params.interleaveMode != charls::InterleaveMode::Line) + { + // The dataset says this should be planarConfiguration == 0, but + // it isn't -> convert it. +diff -ru dcmtk/dcmjpls/libsrc/djcodece.cc dcmtk-3.6.4.new/dcmjpls/libsrc/djcodece.cc +--- dcmtk/dcmjpls/libsrc/djcodece.cc 2019-01-12 16:13:14.012002607 +0100 ++++ dcmtk-3.6.4.new/dcmjpls/libsrc/djcodece.cc 2019-01-12 16:04:27.288002315 +0100 +@@ -55,7 +55,7 @@ + #include "dcmtk/dcmimgle/dcmimage.h" /* for class DicomImage */ + + // JPEG-LS library (CharLS) includes +-#include "CharLS/interface.h" ++#include "CharLS/charls.h" + + BEGIN_EXTERN_C + #ifdef HAVE_FCNTL_H +@@ -70,6 +70,15 @@ + END_EXTERN_C + + ++#ifndef BYTE ++using BYTE=unsigned char; ++#endif ++ ++using charls::ApiResult; ++using charls::InterleaveMode; ++using charls::ColorTransformation; ++ ++ + E_TransferSyntax DJLSLosslessEncoder::supportedTransferSyntax() const + { + return EXS_JPEGLSLossless; +@@ -568,13 +577,13 @@ + + // Set up the information structure for CharLS + OFBitmanipTemplate::zeroMem((char *) &jls_params, sizeof(jls_params)); +- jls_params.bitspersample = bitsAllocated; ++ jls_params.bitsPerSample = bitsAllocated; + jls_params.height = height; + jls_params.width = width; +- jls_params.allowedlossyerror = 0; // must be zero for raw mode ++ jls_params.allowedLossyError = 0; // must be zero for raw mode + jls_params.outputBgr = false; + // No idea what this one does, but I don't think DICOM says anything about it +- jls_params.colorTransform = 0; ++ jls_params.colorTransformation = ColorTransformation::None; + + // Unset: jls_params.jfif (thumbnail, dpi) + +@@ -596,15 +605,15 @@ + else + return EC_IllegalCall; + +- enum interleavemode ilv; ++ enum InterleaveMode ilv; + switch (planarConfiguration) + { + // ILV_LINE is not supported by DICOM + case 0: +- ilv = ILV_SAMPLE; ++ ilv = InterleaveMode::Sample; + break; + case 1: +- ilv = ILV_NONE; ++ ilv = InterleaveMode::None; + break; + default: + return EC_IllegalCall; +@@ -613,39 +622,39 @@ + switch (djcp->getJplsInterleaveMode()) + { + case DJLSCodecParameter::interleaveSample: +- jls_params.ilv = ILV_SAMPLE; ++ jls_params.interleaveMode = InterleaveMode::Sample; + break; + case DJLSCodecParameter::interleaveLine: +- jls_params.ilv = ILV_LINE; ++ jls_params.interleaveMode = InterleaveMode::Line; + break; + case DJLSCodecParameter::interleaveNone: +- jls_params.ilv = ILV_NONE; ++ jls_params.interleaveMode = InterleaveMode::None; + break; + case DJLSCodecParameter::interleaveDefault: + default: + // In default mode we just never convert the image to another + // interleave-mode. Instead, we use what is already there. +- jls_params.ilv = ilv; ++ jls_params.interleaveMode = ilv; + break; + } + +- // Special case: one component images are always ILV_NONE (Standard requires this) ++ // Special case: one component images are always InterleaveMode::None (Standard requires this) + if (jls_params.components == 1) + { +- jls_params.ilv = ILV_NONE; ++ jls_params.interleaveMode = InterleaveMode::None; + // Don't try to convert to another interleave mode, not necessary +- ilv = ILV_NONE; ++ ilv = InterleaveMode::None; + } + + // Do we have to convert the image to some other interleave mode? +- if ((jls_params.ilv == ILV_NONE && (ilv == ILV_SAMPLE || ilv == ILV_LINE)) || +- (ilv == ILV_NONE && (jls_params.ilv == ILV_SAMPLE || jls_params.ilv == ILV_LINE))) ++ if ((jls_params.interleaveMode == InterleaveMode::None && (ilv == InterleaveMode::Sample || ilv == InterleaveMode::Line)) || ++ (ilv == InterleaveMode::None && (jls_params.interleaveMode == InterleaveMode::Sample || jls_params.interleaveMode == InterleaveMode::Line))) + { +- DCMJPLS_DEBUG("Converting image from " << (ilv == ILV_NONE ? "color-by-plane" : "color-by-pixel") +- << " to " << (jls_params.ilv == ILV_NONE ? "color-by-plane" : "color-by-pixel")); ++ DCMJPLS_DEBUG("Converting image from " << (ilv == InterleaveMode::None ? "color-by-plane" : "color-by-pixel") ++ << " to " << (jls_params.interleaveMode == InterleaveMode::None ? "color-by-plane" : "color-by-pixel")); + + frameBuffer = new Uint8[frameSize]; +- if (jls_params.ilv == ILV_NONE) ++ if (jls_params.interleaveMode == InterleaveMode::None) + result = convertToUninterleaved(frameBuffer, framePointer, samplesPerPixel, width, height, bitsAllocated); + else + /* For CharLS, sample-interleaved and line-interleaved is both expected to +@@ -664,7 +673,7 @@ + + size_t bytesWritten = 0; + +- JLS_ERROR err = JpegLsEncode(&buffer, size, &bytesWritten, framePointer, frameSize, &jls_params); ++ auto err = JpegLsEncode(&buffer, size, &bytesWritten, framePointer, frameSize, &jls_params, NULL); + result = DJLSError::convert(err); + + if (result.good()) +@@ -997,11 +1006,11 @@ + OFBitmanipTemplate::zeroMem((char *) &jls_params, sizeof(jls_params)); + jls_params.height = height; + jls_params.width = width; +- jls_params.allowedlossyerror = nearLosslessDeviation; ++ jls_params.allowedLossyError = nearLosslessDeviation; + jls_params.outputBgr = false; +- jls_params.bitspersample = depth; ++ jls_params.bitsPerSample = depth; + // No idea what this one does, but I don't think DICOM says anything about it +- jls_params.colorTransform = 0; ++ jls_params.colorTransformation = ColorTransformation::None; + + // This was already checked for a sane value above + jls_params.components = samplesPerPixel; +@@ -1009,11 +1018,11 @@ + { + case EPR_Uint8: + case EPR_Sint8: +- jls_params.bitspersample = 8; ++ jls_params.bitsPerSample = 8; + break; + case EPR_Uint16: + case EPR_Sint16: +- jls_params.bitspersample = 16; ++ jls_params.bitsPerSample = 16; + break; + default: + // Everything else was already handled above and can't happen here +@@ -1033,37 +1042,37 @@ + switch (djcp->getJplsInterleaveMode()) + { + case DJLSCodecParameter::interleaveSample: +- jls_params.ilv = ILV_SAMPLE; ++ jls_params.interleaveMode = InterleaveMode::Sample; + break; + case DJLSCodecParameter::interleaveLine: +- jls_params.ilv = ILV_LINE; ++ jls_params.interleaveMode = InterleaveMode::Line; + break; + case DJLSCodecParameter::interleaveNone: +- jls_params.ilv = ILV_NONE; ++ jls_params.interleaveMode = InterleaveMode::None; + break; + case DJLSCodecParameter::interleaveDefault: + default: +- // Default for the cooked encoder is always ILV_LINE +- jls_params.ilv = ILV_LINE; ++ // Default for the cooked encoder is always InterleaveMode::LINE ++ jls_params.interleaveMode = InterleaveMode::Line; + break; + } + +- // Special case: one component images are always ILV_NONE (Standard requires this) ++ // Special case: one component images are always InterleaveMode::None (Standard requires this) + if (jls_params.components == 1) + { +- jls_params.ilv = ILV_NONE; ++ jls_params.interleaveMode = InterleaveMode::None; + } + + Uint8 *frameBuffer = NULL; + Uint8 *framePointer = buffer; + // Do we have to convert the image to color-by-plane now? +- if (jls_params.ilv == ILV_NONE && jls_params.components != 1) ++ if (jls_params.interleaveMode == InterleaveMode::None && jls_params.components != 1) + { + DCMJPLS_DEBUG("Converting image from color-by-pixel to color-by-plane"); + + frameBuffer = new Uint8[buffer_size]; + framePointer = frameBuffer; +- result = convertToUninterleaved(frameBuffer, buffer, samplesPerPixel, width, height, jls_params.bitspersample); ++ result = convertToUninterleaved(frameBuffer, buffer, samplesPerPixel, width, height, jls_params.bitsPerSample); + } + + size_t compressed_buffer_size = buffer_size + 1024; +@@ -1071,7 +1080,7 @@ + + size_t bytesWritten = 0; + +- JLS_ERROR err = JpegLsEncode(&compressed_buffer, compressed_buffer_size, &bytesWritten, framePointer, buffer_size, &jls_params); ++ auto err = JpegLsEncode(&compressed_buffer, compressed_buffer_size, &bytesWritten, framePointer, buffer_size, &jls_params, NULL); + result = DJLSError::convert(err); + + if (result.good()) +diff -ru dcmtk/dcmjpls/libsrc/djerror.h dcmtk-3.6.4.new/dcmjpls/libsrc/djerror.h +--- dcmtk/dcmjpls/libsrc/djerror.h 2019-01-12 16:13:14.012002607 +0100 ++++ dcmtk-3.6.4.new/dcmjpls/libsrc/djerror.h 2019-01-12 15:46:22.784001713 +0100 +@@ -24,7 +24,7 @@ + + #include "dcmtk/config/osconfig.h" + #include "dcmtk/dcmjpls/djlsutil.h" /* For the OFCondition codes */ +-#include "CharLS/interface.h" /* CharLS include */ ++#include "CharLS/charls.h" /* CharLS include */ + + /** Helper class for converting between dcmjpls and CharLS error codes + */ +@@ -40,29 +40,29 @@ + * @param error The CharLS error code + * @return The OFCondition + */ +- static const OFConditionConst& convert(JLS_ERROR error) ++ static const OFConditionConst& convert(CharlsApiResultType error) + { + switch (error) + { +- case OK: ++ case charls::ApiResult::OK: + return EC_Normal; +- case UncompressedBufferTooSmall: ++ case charls::ApiResult::UncompressedBufferTooSmall: + return EC_JLSUncompressedBufferTooSmall; +- case CompressedBufferTooSmall: ++ case charls::ApiResult::CompressedBufferTooSmall: + return EC_JLSCompressedBufferTooSmall; +- case ImageTypeNotSupported: ++ case charls::ApiResult::ImageTypeNotSupported: + return EC_JLSCodecUnsupportedImageType; +- case InvalidJlsParameters: ++ case charls::ApiResult::InvalidJlsParameters: + return EC_JLSCodecInvalidParameters; +- case ParameterValueNotSupported: ++ case charls::ApiResult::ParameterValueNotSupported: + return EC_JLSCodecUnsupportedValue; +- case InvalidCompressedData: ++ case charls::ApiResult::InvalidCompressedData: + return EC_JLSInvalidCompressedData; +- case UnsupportedBitDepthForTransform: ++ case charls::ApiResult::UnsupportedBitDepthForTransform: + return EC_JLSUnsupportedBitDepthForTransform; +- case UnsupportedColorTransform: ++ case charls::ApiResult::UnsupportedColorTransform: + return EC_JLSUnsupportedColorTransform; +- case TooMuchCompressedData: ++ case charls::ApiResult::TooMuchCompressedData: + return EC_JLSTooMuchCompressedData; + default: + return EC_IllegalParameter; diff --git a/patches/0cf6b12d8ea0b727f0fe2ab076b6f180100fbd30.patch b/patches/0cf6b12d8ea0b727f0fe2ab076b6f180100fbd30.patch new file mode 100644 index 00000000..c420e622 --- /dev/null +++ b/patches/0cf6b12d8ea0b727f0fe2ab076b6f180100fbd30.patch @@ -0,0 +1,178 @@ +From 0cf6b12d8ea0b727f0fe2ab076b6f180100fbd30 Mon Sep 17 00:00:00 2001 +From: Michael Onken +Date: Thu, 25 Nov 2021 11:59:16 +0100 +Subject: [PATCH] Remove some typos in the codebase. + + * Concatentation -> Concatenation + * intialized -> initialized + * "permits to" -> "permits one to" + * "allow to" -> "allow one to" + * "allows to" -> "allows one to" + * truely -> truly + * additonal -> additional + +Thanks to GitHub user "malaterre" for the report and suggested fix. +--- + dcmfg/libsrc/concatenationcreator.cc | 2 +- + dcmfg/libsrc/concatenationloader.cc | 6 +++--- + dcmfg/tests/t_concatenation_loader.cc | 12 ++++++------ + dcmjpeg/docs/dcmcjpeg.man | 2 +- + dcmpstat/apps/dcmpsmk.cc | 2 +- + dcmpstat/docs/dcmp2pgm.man | 2 +- + dcmpstat/docs/dcmprscp.man | 2 +- + dcmpstat/docs/dcmpsmk.man | 2 +- + dcmwlm/docs/wlmscpfs.man | 2 +- + 9 files changed, 16 insertions(+), 16 deletions(-) + +Index: dcmtk/dcmfg/libsrc/concatenationcreator.cc +=================================================================== +--- dcmtk.orig/dcmfg/libsrc/concatenationcreator.cc ++++ dcmtk/dcmfg/libsrc/concatenationcreator.cc +@@ -246,7 +246,7 @@ size_t ConcatenationCreator::getNumInsta + OFCondition result = configureCommon(); + if (result.bad()) + { +- DCMFG_ERROR("Unable to compute number of instances for Concatenation, maybe input not intialized?)"); ++ DCMFG_ERROR("Unable to compute number of instances for Concatenation, maybe input not initialized?)"); + return 0; + } + } +Index: dcmtk/dcmfg/libsrc/concatenationloader.cc +=================================================================== +--- dcmtk.orig/dcmfg/libsrc/concatenationloader.cc ++++ dcmtk/dcmfg/libsrc/concatenationloader.cc +@@ -445,7 +445,7 @@ OFCondition ConcatenationLoader::insertD + char buf[100]; + dcmGenerateUniqueIdentifier(buf, SITE_INSTANCE_UID_ROOT); + uid = buf; +- DCMFG_WARN("SOP Instance UID of Concatentation Source (0020,0242) not set, created new SOP Instance UID " ++ DCMFG_WARN("SOP Instance UID of Concatenation Source (0020,0242) not set, created new SOP Instance UID " + << uid); + } + OFCondition result = m_Result->putAndInsertOFStringArray(DCM_SOPInstanceUID, uid); +@@ -551,8 +551,8 @@ void ConcatenationLoader::Info::print(OF + { + out << "Concatenation UID* : " << m_ConcatenationUID << OFendl; + out << " SOP Class UID* : " << m_SOPClassUID << OFendl; +- out << " Concatentation Source UID* : " << m_SourceUID << OFendl; +- out << " Concatentation Source File : " << m_FileConatenationSource << OFendl; ++ out << " Concatenation Source UID* : " << m_SourceUID << OFendl; ++ out << " Concatenation Source File : " << m_FileConatenationSource << OFendl; + out << " Number of Frames (computed): " << m_NumTotalFrames << OFendl; + out << " In-conc. Total Number : " << m_inConcatTotalNumber << OFendl; + out << " Patient ID : " << m_PatientID << OFendl; +Index: dcmtk/dcmfg/tests/t_concatenation_loader.cc +=================================================================== +--- dcmtk.orig/dcmfg/tests/t_concatenation_loader.cc ++++ dcmtk/dcmfg/tests/t_concatenation_loader.cc +@@ -114,8 +114,8 @@ static void prepare_scan_dump() + { + SCAN_DUMP += "Concatenation UID* : 1.3.6.1.4.1.5962.1.7.70.2.1.1166562673.14401\n"; + SCAN_DUMP += " SOP Class UID* : 1.2.840.10008.5.1.4.1.1.2.1\n"; +- SCAN_DUMP += " Concatentation Source UID* : \n"; +- SCAN_DUMP += " Concatentation Source File : \n"; ++ SCAN_DUMP += " Concatenation Source UID* : \n"; ++ SCAN_DUMP += " Concatenation Source File : \n"; + SCAN_DUMP += " Number of Frames (computed): 60\n"; + SCAN_DUMP += " In-conc. Total Number : 6\n"; + SCAN_DUMP += " Patient ID : 0070\n"; +@@ -152,8 +152,8 @@ static void prepare_scan_dump() + SCAN_DUMP += "--------------------------------------------------------------\n"; + SCAN_DUMP += "Concatenation UID* : 1.3.6.1.4.1.5962.1.7.70.2.2.1166562673.14401\n"; + SCAN_DUMP += " SOP Class UID* : 1.2.840.10008.5.1.4.1.1.2.1\n"; +- SCAN_DUMP += " Concatentation Source UID* : \n"; +- SCAN_DUMP += " Concatentation Source File : \n"; ++ SCAN_DUMP += " Concatenation Source UID* : \n"; ++ SCAN_DUMP += " Concatenation Source File : \n"; + SCAN_DUMP += " Number of Frames (computed): 30\n"; + SCAN_DUMP += " In-conc. Total Number : 3\n"; + SCAN_DUMP += " Patient ID : 0070\n"; +@@ -178,8 +178,8 @@ static void prepare_scan_dump() + SCAN_DUMP += "--------------------------------------------------------------\n"; + SCAN_DUMP += "Concatenation UID* : 1.3.6.1.4.1.5962.1.7.70.2.3.1166562673.14401\n"; + SCAN_DUMP += " SOP Class UID* : 1.2.840.10008.5.1.4.1.1.2.1\n"; +- SCAN_DUMP += " Concatentation Source UID* : \n"; +- SCAN_DUMP += " Concatentation Source File : \n"; ++ SCAN_DUMP += " Concatenation Source UID* : \n"; ++ SCAN_DUMP += " Concatenation Source File : \n"; + SCAN_DUMP += " Number of Frames (computed): 30\n"; + SCAN_DUMP += " In-conc. Total Number : 3\n"; + SCAN_DUMP += " Patient ID : 0070\n"; +Index: dcmtk/dcmjpeg/docs/dcmcjpeg.man +=================================================================== +--- dcmtk.orig/dcmjpeg/docs/dcmcjpeg.man ++++ dcmtk/dcmjpeg/docs/dcmcjpeg.man +@@ -148,7 +148,7 @@ lossless JPEG codec selection: + +tl --true-lossless + true lossless codec (default) + +- # This option selects an encoder, that guarantees truely lossless ++ # This option selects an encoder, that guarantees truly lossless + # image compression. See NOTES for further information. + + +pl --pseudo-lossless +Index: dcmtk/dcmpstat/apps/dcmpsmk.cc +=================================================================== +--- dcmtk.orig/dcmpstat/apps/dcmpsmk.cc ++++ dcmtk/dcmpstat/apps/dcmpsmk.cc +@@ -311,7 +311,7 @@ int main(int argc, char *argv[]) + /* add additional image references to pstate */ + if (cmd.getParamCount() > 2) + { +- OFLOG_INFO(dcmpsmkLogger, "adding additonal image reference(s)"); ++ OFLOG_INFO(dcmpsmkLogger, "adding additional image reference(s)"); + const int count = cmd.getParamCount(); + for (int i = 2; i < count; i++) + { +Index: dcmtk/dcmpstat/docs/dcmp2pgm.man +=================================================================== +--- dcmtk.orig/dcmpstat/docs/dcmp2pgm.man ++++ dcmtk/dcmpstat/docs/dcmp2pgm.man +@@ -19,7 +19,7 @@ a grayscale softcopy presentation state + with 8 bits/pixel. The bitmap is stored either as "Portable Gray Map" (PGM) + or as a DICOM secondary capture image object. If no presentation state is + read from file, a default presentation state is created. The utility allows +-to read a configuration file of the Softcopy Presentation State Viewer upon ++one to read a configuration file of the Softcopy Presentation State Viewer upon + startup. In this case, the settings from the configuration file affecting + the rendering of the presentation state are used, e.g. a correction of the + gray scale range according to Barten's model (DICOM part 14) can be +Index: dcmtk/dcmpstat/docs/dcmprscp.man +=================================================================== +--- dcmtk.orig/dcmpstat/docs/dcmprscp.man ++++ dcmtk/dcmpstat/docs/dcmprscp.man +@@ -22,7 +22,7 @@ The \b dcmprscp utility accepts print jo + not create real hardcopies but stores print jobs in the local DICOMscope + database as a set of Stored Print objects (one per page) and Hardcopy + Grayscale images (one per film box N-SET). The DICOMscope application allows +-to load a Stored Print object created by \b dcmprscp and to render a screen ++one to load a Stored Print object created by \b dcmprscp and to render a screen + preview of the hardcopy. The \b dcmprscp utility reads the characteristics of + the printer to be emulated from the configuration file. + +Index: dcmtk/dcmpstat/docs/dcmpsmk.man +=================================================================== +--- dcmtk.orig/dcmpstat/docs/dcmpsmk.man ++++ dcmtk/dcmpstat/docs/dcmpsmk.man +@@ -17,7 +17,7 @@ dcmpsmk [options] dcmfile-in dcmfile-out + The \b dcmpsmk utility reads a DICOM image file and creates a grayscale + softcopy presentation state object according to Supplement 33. The + presentation state object is written back to file. A number of command line +-options allow to specify how certain constructs that might be present in ++options allow one to specify how certain constructs that might be present in + the image file should be referenced or activated in the presentation state. + The newly created presentation state references the source image and + contains values that should allow for a "reasonable" display of the image +Index: dcmtk/dcmwlm/docs/wlmscpfs.man +=================================================================== +--- dcmtk.orig/dcmwlm/docs/wlmscpfs.man ++++ dcmtk/dcmwlm/docs/wlmscpfs.man +@@ -263,7 +263,7 @@ within the given directory. By default, + This should work as a default for most applications that would like to use + request files and want to ensure unique file names. If it is desired to change + this naming scheme, the option \e --request-file-format can be used. It +-permits to specify the file naming pattern used by \e --request-file-path. ++permits one to specify the file naming pattern used by \e --request-file-path. + + For flexibility, the following placeholders can be used in the pattern provided + for \e --request-file-format: diff --git a/patches/1c8cca4bf6f7c92fc16f9e66faf49409c891a2b0.patch b/patches/1c8cca4bf6f7c92fc16f9e66faf49409c891a2b0.patch new file mode 100644 index 00000000..cba4aa65 --- /dev/null +++ b/patches/1c8cca4bf6f7c92fc16f9e66faf49409c891a2b0.patch @@ -0,0 +1,90 @@ +From 1c8cca4bf6f7c92fc16f9e66faf49409c891a2b0 Mon Sep 17 00:00:00 2001 +From: Marco Eichelberg +Date: Fri, 5 Feb 2021 17:50:44 +0100 +Subject: [PATCH] Adjusted the number of digits printed for FL and FD. + +Adjusted the number of digits printed for FL elements to FLT_DECIMAL_DIG +(9) instead of 8, to make sure that the printed values can be converted +back to FL without loss. Fixed comment for FD, where the values was +already correct. + +Thanks to Mathieu Malaterre for pointing +out the issue. +--- + dcmdata/libsrc/dcvrfd.cc | 8 ++++---- + dcmdata/libsrc/dcvrfl.cc | 8 ++++---- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/dcmdata/libsrc/dcvrfd.cc b/dcmdata/libsrc/dcvrfd.cc +index 72d9dd5f8..3fabe0a7f 100644 +--- a/dcmdata/libsrc/dcvrfd.cc ++++ b/dcmdata/libsrc/dcvrfd.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 1994-2020, OFFIS e.V. ++ * Copyright (C) 1994-2021, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -190,11 +190,11 @@ void DcmFloatingPointDouble::print(STD_NAMESPACE ostream &out, + { + /* check whether first value is printed (omit delimiter) */ + if (i == 0) +- OFStandard::ftoa(buffer, sizeof(buffer), *doubleVals, 0, 0, 17 /* DBL_DIG + 2 for DICOM FD */); ++ OFStandard::ftoa(buffer, sizeof(buffer), *doubleVals, 0, 0, 17 /* DBL_DECIMAL_DIG for DICOM FD */); + else + { + buffer[0] = '\\'; +- OFStandard::ftoa(buffer + 1, sizeof(buffer) - 1, *doubleVals, 0, 0, 17 /* DBL_DIG + 2 for DICOM FD */); ++ OFStandard::ftoa(buffer + 1, sizeof(buffer) - 1, *doubleVals, 0, 0, 17 /* DBL_DECIMAL_DIG for DICOM FD */); + } + /* check whether current value sticks to the length limit */ + newLength = printedLength + OFstatic_cast(unsigned long, strlen(buffer)); +@@ -273,7 +273,7 @@ OFCondition DcmFloatingPointDouble::getOFString(OFString &stringVal, + { + /* ... and convert it to a character string */ + char buffer[64]; +- OFStandard::ftoa(buffer, sizeof(buffer), doubleVal, 0, 0, 17 /* DBL_DIG + 2 for DICOM FD */); ++ OFStandard::ftoa(buffer, sizeof(buffer), doubleVal, 0, 0, 17 /* DBL_DECIMAL_DIG for DICOM FD */); + /* assign result */ + stringVal = buffer; + } +diff --git a/dcmdata/libsrc/dcvrfl.cc b/dcmdata/libsrc/dcvrfl.cc +index 5eb83fafc..0934af4f1 100644 +--- a/dcmdata/libsrc/dcvrfl.cc ++++ b/dcmdata/libsrc/dcvrfl.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 1994-2020, OFFIS e.V. ++ * Copyright (C) 1994-2021, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -192,11 +192,11 @@ void DcmFloatingPointSingle::print(STD_NAMESPACE ostream &out, + { + /* check whether first value is printed (omit delimiter) */ + if (i == 0) +- OFStandard::ftoa(buffer, sizeof(buffer), *floatVals, 0, 0, 8 /* FLT_DIG + 2 for DICOM FL */); ++ OFStandard::ftoa(buffer, sizeof(buffer), *floatVals, 0, 0, 9 /* FLT_DECIMAL_DIG for DICOM FL */); + else + { + buffer[0] = '\\'; +- OFStandard::ftoa(buffer + 1, sizeof(buffer) - 1, *floatVals, 0, 0, 8 /* FLT_DIG + 2 for DICOM FL */); ++ OFStandard::ftoa(buffer + 1, sizeof(buffer) - 1, *floatVals, 0, 0, 9 /* FLT_DECIMAL_DIG for DICOM FL */); + } + /* check whether current value sticks to the length limit */ + newLength = printedLength + OFstatic_cast(unsigned long, strlen(buffer)); +@@ -275,7 +275,7 @@ OFCondition DcmFloatingPointSingle::getOFString(OFString &value, + { + /* ... and convert it to a character string */ + char buffer[64]; +- OFStandard::ftoa(buffer, sizeof(buffer), floatVal, 0, 0, 8 /* FLT_DIG + 2 for DICOM FL */); ++ OFStandard::ftoa(buffer, sizeof(buffer), floatVal, 0, 0, 9 /* FLT_DECIMAL_DIG for DICOM FL */); + /* assign result */ + value = buffer; + } +-- +2.30.2 + diff --git a/patches/3ae202ee9d8f27054ad0c463a6799d8b10b4864b.patch b/patches/3ae202ee9d8f27054ad0c463a6799d8b10b4864b.patch new file mode 100644 index 00000000..4459999c --- /dev/null +++ b/patches/3ae202ee9d8f27054ad0c463a6799d8b10b4864b.patch @@ -0,0 +1,138 @@ +From 3ae202ee9d8f27054ad0c463a6799d8b10b4864b Mon Sep 17 00:00:00 2001 +From: Joerg Riesmeier +Date: Thu, 30 Sep 2021 13:48:42 +0200 +Subject: [PATCH] Converted non-ASCII characters to ASCII. + +Thanks to GitHub user "malaterre" for the report and suggested fix. +--- + dcmect/libsrc/enhanced_ct.cc | 4 ++-- + dcmfg/libsrc/concatenationloader.cc | 4 ++-- + dcmiod/include/dcmtk/dcmiod/modsopcommon.h | 6 +++--- + dcmseg/include/dcmtk/dcmseg/segment.h | 6 +++--- + dcmtls/include/dcmtk/dcmtls/tlsciphr.h | 6 +++--- + 5 files changed, 13 insertions(+), 13 deletions(-) + +diff --git a/dcmect/libsrc/enhanced_ct.cc b/dcmect/libsrc/enhanced_ct.cc +index 007cb8813..619374290 100644 +--- a/dcmect/libsrc/enhanced_ct.cc ++++ b/dcmect/libsrc/enhanced_ct.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2019, Open Connections GmbH ++ * Copyright (C) 2019-2021, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by +@@ -480,7 +480,7 @@ OFCondition EctEnhancedCT::loadDataset(DcmDataset& dataset, EctEnhancedCT*& ct) + else + { + DCMECT_ERROR("Invalid SOP Class: " +- << sopClass << ", only Enhanced CT Image Storage (1.2.840.10008.5.1.4.1.1.2.1​) supported"); ++ << sopClass << ", only Enhanced CT Image Storage (1.2.840.10008.5.1.4.1.1.2.1) supported"); + return ECT_InvalidSOPClass; + } + } +diff --git a/dcmfg/libsrc/concatenationloader.cc b/dcmfg/libsrc/concatenationloader.cc +index 3833ddc4f..aad76f69f 100644 +--- a/dcmfg/libsrc/concatenationloader.cc ++++ b/dcmfg/libsrc/concatenationloader.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2019-2020, Open Connections GmbH ++ * Copyright (C) 2019-2021, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by +@@ -445,7 +445,7 @@ OFCondition ConcatenationLoader::insertDestinationAttributes() + char buf[100]; + dcmGenerateUniqueIdentifier(buf, SITE_INSTANCE_UID_ROOT); + uid = buf; +- DCMFG_WARN("SOP Instance UID of Concatentation Source (0020,0242)​ not set, created new SOP Instance UID " ++ DCMFG_WARN("SOP Instance UID of Concatentation Source (0020,0242) not set, created new SOP Instance UID " + << uid); + } + OFCondition result = m_Result->putAndInsertOFStringArray(DCM_SOPInstanceUID, uid); +diff --git a/dcmiod/include/dcmtk/dcmiod/modsopcommon.h b/dcmiod/include/dcmtk/dcmiod/modsopcommon.h +index fab033e3f..27f433ad2 100644 +--- a/dcmiod/include/dcmtk/dcmiod/modsopcommon.h ++++ b/dcmiod/include/dcmtk/dcmiod/modsopcommon.h +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2015-2019, Open Connections GmbH ++ * Copyright (C) 2015-2021, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by +@@ -177,8 +177,8 @@ public: + + /** Set Timezone Offset From UTC + * @param value Value to be set (single value only) or "" for no value. +- * Encoded as an ASCII string in the format “&ZZXX”. The components of this +- * string, from left to right, are & = “+” or “-”, and ZZ = Hours and ++ * Encoded as an ASCII string in the format "&ZZXX". The components of this ++ * string, from left to right, are & = "+" or "-", and ZZ = Hours and + * XX = Minutes of offset. + * @param checkValue Check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise +diff --git a/dcmseg/include/dcmtk/dcmseg/segment.h b/dcmseg/include/dcmtk/dcmseg/segment.h +index f7987c0c9..8c887a531 100644 +--- a/dcmseg/include/dcmtk/dcmseg/segment.h ++++ b/dcmseg/include/dcmtk/dcmseg/segment.h +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2015-2019, Open Connections GmbH ++ * Copyright (C) 2015-2021, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by +@@ -58,10 +58,10 @@ public: + * successful; memory is allocated by the function + * @param segmentLabel Free text label for the segment + * @param segmentedPropertyCategory The segmented property category. +- * Baseline CID 7150 “Segmentation Property Categories” should be ++ * Baseline CID 7150 "Segmentation Property Categories" should be + * used. + * @param segmentedPropertyType The segmented property type. Baseline CID +- * 7151 “Segmentation Property Types” ++ * 7151 "Segmentation Property Types" + * @param algoType The algorithm type used for segmenting this segment + * @param algoName Algorithm name (required if algoType is not MANUAL) + * @return EC_Normal if creation was successful, error otherwise +diff --git a/dcmtls/include/dcmtk/dcmtls/tlsciphr.h b/dcmtls/include/dcmtk/dcmtls/tlsciphr.h +index 6ffd4a962..c3ad28794 100644 +--- a/dcmtls/include/dcmtk/dcmtls/tlsciphr.h ++++ b/dcmtls/include/dcmtk/dcmtls/tlsciphr.h +@@ -132,7 +132,7 @@ enum DcmTLSCipherKeyExchange + /// Static RSA key exchange + TKE_RSA, + +- /// Elliptic Curve Diffie–Hellman ++ /// Elliptic Curve Diffie-Hellman + TKE_ECDH, + + /// Fixed ECDH with ECDSA-signed certificates +@@ -141,7 +141,7 @@ enum DcmTLSCipherKeyExchange + /// Fixed ECDH with RSA signatures + TKE_ECDH_RSA, + +- /// Diffie–Hellman key exchange ++ /// Diffie-Hellman key exchange + TKE_DH + + }; +@@ -157,7 +157,7 @@ enum DcmTLSCipherAuthentication + /// Digital Signature Standard + TCA_DSS, + +- /// Elliptic Curve Diffie–Hellman ++ /// Elliptic Curve Diffie-Hellman + TCA_ECDH, + + /// Elliptic Curve Digital Signature Algorithm +-- +2.30.2 + diff --git a/patches/ab61e8577ff0974efcfae2907c48baf6023c1160.patch b/patches/ab61e8577ff0974efcfae2907c48baf6023c1160.patch new file mode 100644 index 00000000..753437a8 --- /dev/null +++ b/patches/ab61e8577ff0974efcfae2907c48baf6023c1160.patch @@ -0,0 +1,25 @@ +From ab61e8577ff0974efcfae2907c48baf6023c1160 Mon Sep 17 00:00:00 2001 +From: Joerg Riesmeier +Date: Thu, 30 Sep 2021 13:08:23 +0200 +Subject: [PATCH] Replaced German umlaut by its transliteration. + +Replaced German umlaut in code meaning by its transliteration. + +Thanks to GitHub user "malaterre" for the report. +--- + dcmsr/include/dcmtk/dcmsr/codes/dcm.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Index: dcmtk/dcmsr/include/dcmtk/dcmsr/codes/dcm.h +=================================================================== +--- dcmtk.orig/dcmsr/include/dcmtk/dcmsr/codes/dcm.h ++++ dcmtk/dcmsr/include/dcmtk/dcmsr/codes/dcm.h +@@ -1630,7 +1630,7 @@ + #define CODE_DCM_Generic3DPlanning DSRBasicCodedEntry("112341", "DCM", "Generic 3D Planning") + #define CODE_DCM_GenericPlanningForHipReplacement DSRBasicCodedEntry("112342", "DCM", "Generic Planning for Hip Replacement") + #define CODE_DCM_GenericPlanningForKneeReplacement DSRBasicCodedEntry("112343", "DCM", "Generic Planning for Knee Replacement") +-#define CODE_DCM_MuellerMethodPlanningForHipReplacement DSRBasicCodedEntry("112344", "DCM", "Müller Method Planning for Hip Replacement") ++#define CODE_DCM_MuellerMethodPlanningForHipReplacement DSRBasicCodedEntry("112344", "DCM", "Mueller Method Planning for Hip Replacement") + #define CODE_DCM_ImplantationPlan DSRBasicCodedEntry("112345", "DCM", "Implantation Plan") + #define CODE_DCM_SelectedImplantComponent DSRBasicCodedEntry("112346", "DCM", "Selected Implant Component") + #define CODE_DCM_ComponentID DSRBasicCodedEntry("112347", "DCM", "Component ID") diff --git a/patches/bigendian.patch b/patches/bigendian.patch new file mode 100644 index 00000000..007020e7 --- /dev/null +++ b/patches/bigendian.patch @@ -0,0 +1,102 @@ +Author: Mathieu Malaterre +Description: Fix unit test suite on big endian machine + Concatenation of upstream commits: + . + - b499d89e769feffce03c5d7cefa1cb06d33a2b5b + - 9e8434a2952ae39d1f9d0914173b5cc5b1b32175 + - 4df0f42790b9952aa75c7242fbcc47a348922bc6 +Forwarded: not-needed + +Index: dcmtk/dcmect/tests/t_roundtrip.cc +=================================================================== +--- dcmtk.orig/dcmect/tests/t_roundtrip.cc ++++ dcmtk/dcmect/tests/t_roundtrip.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2019-2020, OFFIS e.V. ++ * Copyright (C) 2019-2021, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -28,6 +28,9 @@ + + #include "dcmtk/dcmect/enhanced_ct.h" + ++#include "dcmtk/dcmdata/dcxfer.h" ++#include "dcmtk/dcmdata/dcswap.h" ++ + #include "dcmtk/dcmfg/concatenationcreator.h" + #include "dcmtk/dcmfg/concatenationloader.h" + #include "dcmtk/dcmfg/fgctacquisitiondetails.h" +@@ -295,7 +298,6 @@ static void addSharedFGs(EctEnhancedCT* + OFCHECK(exp_item->setCTDIVol(0.1).good()); + CodeSequenceMacro* phantom_item = new CodeSequenceMacro("113682", "DCM", "ACR Accreditation Phantom - CT"); + exp_item->getCTDIPhantomTypeCodeSequence().push_back(phantom_item); +- OFCHECK(exp_item->setEstimatedDoseSaving(0.2).good()); + OFCHECK(exp_item->setExposureInMas(0.3).good()); + OFCHECK(exp_item->setExposureModulationType("WEIRD").good()); + OFCHECK(exp_item->setExposureTimeInMs(0.4).good()); +@@ -619,6 +621,7 @@ static void checkConcatenationInstance(s + // Check that all pixels are set to their original source instances frame number (starting from 1) + for (size_t pix = 0; pix < NUM_PIXELS_PER_FRAME; pix++) + { ++ swapIfNecessary(gLocalByteOrder, EBO_LittleEndian, &frame[pix], 2, sizeof(Uint16)); + OFCHECK(frame[pix] == numInstance + 1); + } + delete concat; +@@ -658,7 +661,11 @@ static void prepareExpectedDump() + { + EXPECTED_DUMP += "\n"; + EXPECTED_DUMP += "# Dicom-Data-Set\n"; +- EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n"; ++ // DcmDataset.print() produces dumps in local endianess, so make sure the dump reflects the current machine ++ if (gLocalByteOrder == EBO_LittleEndian) ++ EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n"; ++ else ++ EXPECTED_DUMP += "# Used TransferSyntax: Big Endian Explicit\n"; + EXPECTED_DUMP += "(0008,0008) CS [ORIGINAL\\PRIMARY\\VOLUME\\MAXIMUM] # 32, 4 ImageType\n"; + EXPECTED_DUMP += "(0008,0016) UI =EnhancedCTImageStorage # 28, 1 SOPClassUID\n"; + EXPECTED_DUMP +@@ -789,7 +796,7 @@ static void prepareExpectedDump() + EXPECTED_DUMP += " (fffe,e00d) na (ItemDelimitationItem for re-encoding) # 0, 0 ItemDelimitationItem\n"; + EXPECTED_DUMP += " (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) # 0, 0 SequenceDelimitationItem\n"; + EXPECTED_DUMP += " (0018,9321) SQ (Sequence with explicit length #=1) # 0, 1 CTExposureSequence\n"; +- EXPECTED_DUMP += " (fffe,e000) na (Item with explicit length #=10) # 0, 1 Item\n"; ++ EXPECTED_DUMP += " (fffe,e000) na (Item with explicit length #=9) # 0, 1 Item\n"; + EXPECTED_DUMP += " (0018,115e) DS [0.5] # 4, 1 " + "ImageAndFluoroscopyAreaDoseProduct\n"; + EXPECTED_DUMP +@@ -807,7 +814,6 @@ static void prepareExpectedDump() + += " (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) # 0, 0 SequenceDelimitationItem\n"; + EXPECTED_DUMP + += " (0018,9323) CS [WEIRD] # 6, 1 ExposureModulationType\n"; +- EXPECTED_DUMP += " (0018,9324) FD 0.2 # 8, 1 EstimatedDoseSaving\n"; + EXPECTED_DUMP += " (0018,9328) FD 0.4 # 8, 1 ExposureTimeInms\n"; + EXPECTED_DUMP += " (0018,9330) FD 0.7 # 8, 1 XRayTubeCurrentInmA\n"; + EXPECTED_DUMP += " (0018,9332) FD 0.3 # 8, 1 ExposureInmAs\n"; +Index: dcmtk/dcmseg/tests/troundtrip.cc +=================================================================== +--- dcmtk.orig/dcmseg/tests/troundtrip.cc ++++ dcmtk/dcmseg/tests/troundtrip.cc +@@ -31,6 +31,7 @@ + #include "dcmtk/dcmfg/fgplanpo.h" + #include "dcmtk/dcmfg/fgseg.h" + #include "dcmtk/dcmiod/iodmacro.h" ++#include "dcmtk/dcmdata/dcxfer.h" + #include "dcmtk/ofstd/ofmem.h" + #include "dcmtk/ofstd/ofstrutl.h" + #include "dcmtk/ofstd/oftempf.h" +@@ -406,7 +407,11 @@ static void prepareExpectedDump() + { + EXPECTED_DUMP = "\n"; + EXPECTED_DUMP += "# Dicom-Data-Set\n"; +- EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n"; ++ // DcmDataset.print() produces dumps in local endianess, so make sure the dump reflects the current machine ++ if (gLocalByteOrder == EBO_LittleEndian) ++ EXPECTED_DUMP += "# Used TransferSyntax: Little Endian Explicit\n"; ++ else ++ EXPECTED_DUMP += "# Used TransferSyntax: Big Endian Explicit\n"; + EXPECTED_DUMP += "(0008,0008) CS [DERIVED\\PRIMARY] # 16, 2 ImageType\n"; + EXPECTED_DUMP += "(0008,0016) UI =SegmentationStorage # 28, 1 SOPClassUID\n"; + EXPECTED_DUMP diff --git a/patches/bug1000220.patch b/patches/bug1000220.patch new file mode 100644 index 00000000..68c27ac5 --- /dev/null +++ b/patches/bug1000220.patch @@ -0,0 +1,44 @@ +From 8f6c9ba05eb146310a6325fb8ab18dfb14c1a291 Mon Sep 17 00:00:00 2001 +From: Joerg Riesmeier +Date: Mon, 22 Nov 2021 18:54:35 +0100 +Subject: [PATCH] Replaced OFListIterator by OFListConstIterator. + +Replaced type of iterator variable to OFListConstIterator to avoid +compiler errors reported by gcc when compiling DICOMscope with STL +and C++14 support enabled. + +Thanks to GitHub user "malaterre" for the report and suggested fix. +--- + dcmsr/include/dcmtk/dcmsr/dsrtlist.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/dcmsr/include/dcmtk/dcmsr/dsrtlist.h b/dcmsr/include/dcmtk/dcmsr/dsrtlist.h +index 5ec109aca..31759b851 100644 +--- a/dcmsr/include/dcmtk/dcmsr/dsrtlist.h ++++ b/dcmsr/include/dcmtk/dcmsr/dsrtlist.h +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2000-2018, OFFIS e.V. ++ * Copyright (C) 2000-2021, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -282,7 +282,7 @@ template class DSRListOfItems + ItemList.push_back(item); + result = EC_Normal; + } else { +- OFLIST_TYPENAME OFListIterator(T) iterator = ItemList.begin(); ++ OFLIST_TYPENAME OFListConstIterator(T) iterator = ItemList.begin(); + if (gotoItemPos(idx, iterator)) + { + ItemList.insert(iterator, 1, item); +@@ -299,7 +299,7 @@ template class DSRListOfItems + OFCondition removeItem(const size_t idx) + { + OFCondition result = EC_IllegalParameter; +- OFLIST_TYPENAME OFListIterator(T) iterator = ItemList.begin(); ++ OFLIST_TYPENAME OFListConstIterator(T) iterator = ItemList.begin(); + if (gotoItemPos(idx, iterator)) + { + ItemList.erase(iterator); diff --git a/patches/c34f4e46e672ad21accf04da0dc085e43be6f5e1.patch b/patches/c34f4e46e672ad21accf04da0dc085e43be6f5e1.patch new file mode 100644 index 00000000..975b9714 --- /dev/null +++ b/patches/c34f4e46e672ad21accf04da0dc085e43be6f5e1.patch @@ -0,0 +1,55 @@ +From c34f4e46e672ad21accf04da0dc085e43be6f5e1 Mon Sep 17 00:00:00 2001 +From: Marco Eichelberg +Date: Thu, 9 Jun 2022 10:03:38 +0200 +Subject: [PATCH] Fixed memory leak in single process mode. + +Fixed a memory leak in dcmqrscp's single process mode. + +Thanks to for the bug report and test data. +--- + dcmqrdb/libsrc/dcmqrsrv.cc | 24 ++++++++++-------------- + 1 file changed, 10 insertions(+), 14 deletions(-) + +diff --git a/dcmqrdb/libsrc/dcmqrsrv.cc b/dcmqrdb/libsrc/dcmqrsrv.cc +index 157e6c022..f5f9df661 100644 +--- a/dcmqrdb/libsrc/dcmqrsrv.cc ++++ b/dcmqrdb/libsrc/dcmqrsrv.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 1993-2021, OFFIS e.V. ++ * Copyright (C) 1993-2022, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -1126,21 +1126,17 @@ OFCondition DcmQueryRetrieveSCP::waitForAssociation(T_ASC_Network * theNet) + #endif + } + +- // cleanup code ++ // clean-up association + OFCondition oldcond = cond; /* store condition flag for later use */ +- if (!options_.singleProcess_ && (cond != ASC_SHUTDOWNAPPLICATION)) ++ cond = ASC_dropAssociation(assoc); ++ if (cond.bad()) + { +- /* the child will handle the association, we can drop it */ +- cond = ASC_dropAssociation(assoc); +- if (cond.bad()) +- { +- DCMQRDB_ERROR("Cannot Drop Association: " << DimseCondition::dump(temp_str, cond)); +- } +- cond = ASC_destroyAssociation(&assoc); +- if (cond.bad()) +- { +- DCMQRDB_ERROR("Cannot Destroy Association: " << DimseCondition::dump(temp_str, cond)); +- } ++ DCMQRDB_ERROR("Cannot Drop Association: " << DimseCondition::dump(temp_str, cond)); ++ } ++ cond = ASC_destroyAssociation(&assoc); ++ if (cond.bad()) ++ { ++ DCMQRDB_ERROR("Cannot Destroy Association: " << DimseCondition::dump(temp_str, cond)); + } + + if (oldcond == ASC_SHUTDOWNAPPLICATION) cond = oldcond; /* abort flag is reported to top-level wait loop */ diff --git a/patches/f06a867513524664a1b03dfcf812d8b60fdd02cc.patch b/patches/f06a867513524664a1b03dfcf812d8b60fdd02cc.patch new file mode 100644 index 00000000..f0f0d5e9 --- /dev/null +++ b/patches/f06a867513524664a1b03dfcf812d8b60fdd02cc.patch @@ -0,0 +1,252 @@ +From f06a867513524664a1b03dfcf812d8b60fdd02cc Mon Sep 17 00:00:00 2001 +From: Marco Eichelberg +Date: Fri, 6 May 2022 17:30:02 +0200 +Subject: [PATCH] Fixed path traversal vulnerability. + +Thanks to Sharon Brizinov >sharon.b@claroty.com> and Noam Moshe from +Claroty Research for the bug report and sample files. + +This closes DCMTK issue #1021. +--- + dcmnet/apps/movescu.cc | 3 ++- + dcmnet/apps/storescp.cc | 8 +++++-- + dcmnet/libsrc/dstorscp.cc | 5 ++++- + dcmnet/libsrc/scu.cc | 1 + + ofstd/include/dcmtk/ofstd/ofstd.h | 18 +++++++++++++++- + ofstd/libsrc/offname.cc | 19 ++++++++++------- + ofstd/libsrc/ofstd.cc | 35 ++++++++++++++++++++++++++++++- + 7 files changed, 76 insertions(+), 13 deletions(-) + +diff --git a/dcmnet/apps/movescu.cc b/dcmnet/apps/movescu.cc +index 40f41674c..7e444d46b 100644 +--- a/dcmnet/apps/movescu.cc ++++ b/dcmnet/apps/movescu.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 1994-2021, OFFIS e.V. ++ * Copyright (C) 1994-2022, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -1425,6 +1425,7 @@ static OFCondition storeSCP( + sprintf(imageFileName, "%s.%s", + dcmSOPClassUIDToModality(req->AffectedSOPClassUID), + req->AffectedSOPInstanceUID); ++ OFStandard::sanitizeFilename(imageFileName); + } + + OFString temp_str; +diff --git a/dcmnet/apps/storescp.cc b/dcmnet/apps/storescp.cc +index ee53f2887..68b7b4e97 100644 +--- a/dcmnet/apps/storescp.cc ++++ b/dcmnet/apps/storescp.cc +@@ -1853,12 +1853,14 @@ storeSCPCallback( + if (!subdirectoryName.empty()) + subdirectoryName += '_'; + subdirectoryName += currentStudyInstanceUID; ++ OFStandard::sanitizeFilename(subdirectoryName); + break; + case ESM_PatientName: + // pattern: "[Patient's Name]_[YYYYMMDD]_[HHMMSSMMM]" + subdirectoryName = currentPatientName; + subdirectoryName += '_'; + subdirectoryName += timestamp; ++ OFStandard::sanitizeFilename(subdirectoryName); + break; + case ESM_None: + break; +@@ -2065,9 +2067,11 @@ static OFCondition storeSCP( + } + else + { +- // don't create new UID, use the study instance UID as found in object ++ // Use the SOP instance UID as found in the C-STORE request message as part of the filename ++ OFString uid = req->AffectedSOPInstanceUID; ++ OFStandard::sanitizeFilename(uid); + sprintf(imageFileName, "%s%c%s.%s%s", opt_outputDirectory.c_str(), PATH_SEPARATOR, dcmSOPClassUIDToModality(req->AffectedSOPClassUID, "UNKNOWN"), +- req->AffectedSOPInstanceUID, opt_fileNameExtension.c_str()); ++ uid.c_str(), opt_fileNameExtension.c_str()); + } + } + +diff --git a/dcmnet/libsrc/dstorscp.cc b/dcmnet/libsrc/dstorscp.cc +index e491ae5ea..1811846a2 100644 +--- a/dcmnet/libsrc/dstorscp.cc ++++ b/dcmnet/libsrc/dstorscp.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2013-2021, OFFIS e.V. ++ * Copyright (C) 2013-2022, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -425,6 +425,7 @@ OFCondition DcmStorageSCP::generateDirAndFilename(OFString &filename, + generatedFileName = tmpString; + OFSTRINGSTREAM_FREESTR(tmpString); + // combine the generated file name with the directory name ++ OFStandard::sanitizeFilename(generatedFileName); + OFStandard::combineDirAndFilename(filename, directoryName, generatedFileName); + } + break; +@@ -441,6 +442,7 @@ OFCondition DcmStorageSCP::generateDirAndFilename(OFString &filename, + generatedFileName = tmpString; + OFSTRINGSTREAM_FREESTR(tmpString); + // combine the generated file name with the directory name ++ OFStandard::sanitizeFilename(generatedFileName); + OFStandard::combineDirAndFilename(filename, directoryName, generatedFileName); + break; + } +@@ -469,6 +471,7 @@ OFCondition DcmStorageSCP::generateDirAndFilename(OFString &filename, + generatedFileName = tmpString; + OFSTRINGSTREAM_FREESTR(tmpString); + // combine the generated file name ++ OFStandard::sanitizeFilename(generatedFileName); + OFStandard::combineDirAndFilename(filename, directoryName, generatedFileName); + } else + status = EC_CouldNotGenerateFilename; +diff --git a/dcmnet/libsrc/scu.cc b/dcmnet/libsrc/scu.cc +index 34b252553..1cc9c3a46 100644 +--- a/dcmnet/libsrc/scu.cc ++++ b/dcmnet/libsrc/scu.cc +@@ -1418,6 +1418,7 @@ OFString DcmSCU::createStorageFilename(DcmDataset* dataset) + OFString name = dcmSOPClassUIDToModality(sopClassUID.c_str(), "UNKNOWN"); + name += "."; + name += sopInstanceUID; ++ OFStandard::sanitizeFilename(name); + OFString returnStr; + OFStandard::combineDirAndFilename(returnStr, m_storageDir, name, OFTrue); + return returnStr; +diff --git a/ofstd/include/dcmtk/ofstd/ofstd.h b/ofstd/include/dcmtk/ofstd/ofstd.h +index 1548e26d0..56054ccb0 100644 +--- a/ofstd/include/dcmtk/ofstd/ofstd.h ++++ b/ofstd/include/dcmtk/ofstd/ofstd.h +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2000-2021, OFFIS e.V. ++ * Copyright (C) 2000-2022, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -1165,6 +1165,22 @@ class DCMTK_OFSTD_EXPORT OFStandard + */ + static void forceSleep(Uint32 seconds); + ++ /** sanitize a filename (NOT a path name!) by replacing all path ++ * separators with underscores. This avoids possible path traversal ++ * vulnerabilities if malformed data read from file or received over ++ * a network is used as part of a filename. ++ * @param fname filename to be sanitized ++ */ ++ static void sanitizeFilename(OFString& fname); ++ ++ /** sanitize a filename (NOT a path name!) by replacing all path ++ * separators with underscores. This avoids possible path traversal ++ * vulnerabilities if malformed data read from file or received over ++ * a network is used as part of a filename. ++ * @param fname filename to be sanitized ++ */ ++ static void sanitizeFilename(char *fname); ++ + private: + + /** private implementation of strlcpy. Called when strlcpy +diff --git a/ofstd/libsrc/offname.cc b/ofstd/libsrc/offname.cc +index 832376189..a56a7e1b5 100644 +--- a/ofstd/libsrc/offname.cc ++++ b/ofstd/libsrc/offname.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 1997-2021, OFFIS e.V. ++ * Copyright (C) 1997-2022, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -73,18 +73,23 @@ OFBool OFFilenameCreator::makeFilename(unsigned int &seed, const char *dir, cons + { + // create filename + filename.clear(); +- if (dir) +- { +- filename = dir; +- filename += PATH_SEPARATOR; +- } +- if (prefix) filename += prefix; ++ if (prefix) filename = prefix; + addLongToString(creation_time, filename); + // on some systems OFrand_r may produce only 16-bit random numbers. + // To be on the safe side, we use two random numbers for the upper and the lower 16 bits. + addLongToString((((OFrand_r(seed) & 0xFFFF) << 16) | (OFrand_r(seed) & 0xFFFF)), filename); + if (postfix) filename += postfix; + ++ OFStandard::sanitizeFilename(filename); ++ ++ if (dir) ++ { ++ OFString dirname = dir; ++ dirname += PATH_SEPARATOR; ++ dirname += filename; ++ filename = dirname; ++ } ++ + // check if filename exists + stat_result = stat(filename.c_str(), &stat_buf); + if (stat_result == 0) +diff --git a/ofstd/libsrc/ofstd.cc b/ofstd/libsrc/ofstd.cc +index ae1466a9f..33ecd7954 100644 +--- a/ofstd/libsrc/ofstd.cc ++++ b/ofstd/libsrc/ofstd.cc +@@ -1,6 +1,6 @@ + /* + * +- * Copyright (C) 2001-2021, OFFIS e.V. ++ * Copyright (C) 2001-2022, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by +@@ -3245,6 +3245,39 @@ void OFStandard::forceSleep(Uint32 seconds) + } + } + ++ ++void OFStandard::sanitizeFilename(OFString& fname) ++{ ++ size_t len = fname.length(); ++ for (size_t i=0; i +Description: Fix random failure of unit test + Concatenation of upstream commits: + . + - cfbdf2748a9291d4d6170518b43d1d4258f8b272 + - 21eda2341946527f2f01e2be2b8a3a8e66a415f6 + - 0832266a6522214d191dc12771ff865ee9d07251 +Forwarded: not-needed + +Index: dcmtk/dcmtls/tests/tscuscptls.cc +=================================================================== +--- dcmtk.orig/dcmtls/tests/tscuscptls.cc ++++ dcmtk/dcmtls/tests/tscuscptls.cc +@@ -17,7 +17,7 @@ + * + * Purpose: TLS test for classes DcmSCP and DcmSCPPool + * +- * Note: This test will fail after 2029-02-25 due to certificate expiry. ++ * Note: This test will fail after 2029-02-25 due to certificate expiry. + * The keys embedded in this file should be replaced then (see below). + * + */ +@@ -28,6 +28,7 @@ + #include "dcmtk/ofstd/ofstdinc.h" + #include "dcmtk/ofstd/oftest.h" + #include "dcmtk/ofstd/oftimer.h" ++#include "dcmtk/ofstd/ofrand.h" + #include "dcmtk/oflog/consap.h" + #include "dcmtk/dcmnet/scp.h" + #include "dcmtk/dcmnet/scu.h" +@@ -37,6 +38,11 @@ + + #ifdef WITH_THREADS + ++#define BAILOUT(msg) do { \ ++ OFCHECK_FAIL(msg); \ ++ return; \ ++} while (0) ++ + /** Method that ensures that the current thread is actually sleeping for the + * defined number of seconds (at least). + * The problem with the regular sleep() function called from OFStandard::sleep +@@ -72,7 +78,8 @@ struct TestSCP: DcmSCP, OFThread + DcmSCP(), + m_listen_result(EC_NotYetImplemented), // value indicating "not set" + m_set_stop_after_assoc(OFFalse), +- m_set_stop_after_timeout(OFFalse) ++ m_set_stop_after_timeout(OFFalse), ++ m_is_running(OFFalse) + { + } + +@@ -83,6 +90,7 @@ struct TestSCP: DcmSCP, OFThread + m_listen_result = EC_NotYetImplemented; + m_set_stop_after_assoc = OFFalse; + m_set_stop_after_timeout = OFFalse; ++ m_is_running = OFFalse; + } + + /** Overwrite method from DcmSCP in order to test feature to stop after current +@@ -109,12 +117,16 @@ struct TestSCP: DcmSCP, OFThread + OFBool m_set_stop_after_assoc; + /// If set, the SCP should stop after TCP timeout occurred in non-blocking mode + OFBool m_set_stop_after_timeout; ++ /// indicates whether the thread is currently running ++ volatile OFBool m_is_running; + + /** Method called by OFThread to start SCP operation. Starts listen() loop of DcmSCP. + */ + virtual void run() + { ++ m_is_running = OFTrue; + m_listen_result = listen(); ++ m_is_running = OFFalse; + } + + }; +@@ -123,11 +135,22 @@ struct TestSCP: DcmSCP, OFThread + + struct TestPool : DcmSCPPool<>, OFThread + { +- OFCondition result; ++ OFCondition m_listen_result; ++ volatile OFBool m_is_running; ++ ++ TestPool() ++ : DcmSCPPool<>() ++ , OFThread() ++ , m_listen_result(EC_NotYetImplemented) ++ , m_is_running(OFFalse) ++ { } ++ + protected: + void run() + { +- result = listen(); ++ m_is_running = OFTrue; ++ m_listen_result = listen(); ++ m_is_running = OFFalse; + } + }; + +@@ -300,9 +323,9 @@ OFTEST_FLAGS(dcmtls_scp_tls, EF_None) + scpTlsLayer.setCertificateVerification(DCV_ignoreCertificate); + + /// Init and run Scp server with tls ++ OFRandom rnd; + TestSCP scp; + DcmSCPConfig& config = scp.getConfig(); +- config.setPort(11112); + config.setAETitle("ACCEPTOR"); + config.setACSETimeout(30); + config.setConnectionTimeout(1); +@@ -315,10 +338,24 @@ OFTEST_FLAGS(dcmtls_scp_tls, EF_None) + OFCHECK(config.addPresentationContext(UID_VerificationSOPClass, xfers, ASC_SC_ROLE_SCP).good()); + + config.setTransportLayer(&scpTlsLayer); +- scp.start(); + + // Ensure server is up and listening +- force_sleep(1); ++ int i = 0; ++ Uint16 port_number = 0; ++ OFMutex memory_barrier; ++ do ++ { ++ // generate a random port number between 61440 (0xF000) and 65535 ++ port_number = 0xF000 + (rnd.getRND16() & 0xFFF); ++ config.setPort(port_number); ++ scp.start(); ++ force_sleep(2); // wait 2 seconds for the SCP process to start ++ memory_barrier.lock(); ++ memory_barrier.unlock(); ++ } ++ while ((i++ < 5) && (! scp.m_is_running)); // try up to 5 port numbers before giving up ++ ++ if (! scp.m_is_running) BAILOUT("Start of the SCP thread failed: " << scp.m_listen_result.text()); + + // Configure SCU and run it against SCP + DcmTLSSCU scu; +@@ -329,7 +366,7 @@ OFTEST_FLAGS(dcmtls_scp_tls, EF_None) + scu.setPeerAETitle("ACCEPTOR"); + scu.setAETitle("REQUESTOR"); + scu.setPeerHostName("localhost"); +- scu.setPeerPort(11112); ++ scu.setPeerPort(port_number); + + scu.enableAuthentication(PRIVATE_KEY_FILENAME, PUBLIC_SELFSIGNED_CERT_FILENAME, PRIVATE_KEY_PWD, DCF_Filetype_PEM, DCF_Filetype_PEM); + scu.setPeerCertVerification(DCV_ignoreCertificate); +@@ -368,9 +405,9 @@ OFTEST_FLAGS(dcmtls_scp_pool_tls, EF_Non + scpTlsLayer.setCertificateVerification(DCV_ignoreCertificate); + + /// Init and run Scp server with tls ++ OFRandom rnd; + TestPool pool; + DcmSCPConfig& config = pool.getConfig(); +- config.setPort(11112); + config.setAETitle("ACCEPTOR"); + config.setACSETimeout(30); + config.setConnectionTimeout(1); +@@ -383,10 +420,23 @@ OFTEST_FLAGS(dcmtls_scp_pool_tls, EF_Non + OFCHECK(config.addPresentationContext(UID_VerificationSOPClass, xfers, ASC_SC_ROLE_DEFAULT).good()); + config.setTransportLayer(&scpTlsLayer); + pool.setMaxThreads(20); +- pool.start(); + + // Ensure server is up and listening +- force_sleep(1); ++ int i = 0; ++ Uint16 port_number = 0; ++ OFMutex memory_barrier; ++ do ++ { ++ // generate a random port number between 61440 (0xF000) and 65535 ++ port_number = 0xF000 + (rnd.getRND16() & 0xFFF); ++ config.setPort(port_number); ++ pool.start(); ++ force_sleep(2); // wait 2 seconds for the SCP process to start ++ memory_barrier.lock(); ++ memory_barrier.unlock(); ++ } ++ while ((i++ < 5) && (! pool.m_is_running)); // try up to 5 port numbers before giving up ++ if (! pool.m_is_running) BAILOUT("Start of the SCP thread ppol failed: " << pool.m_listen_result.text()); + + OFVector scus(20); + OFVector scuTlsLayers; +@@ -400,7 +450,7 @@ OFTEST_FLAGS(dcmtls_scp_pool_tls, EF_Non + (*it1)->setPeerAETitle("ACCEPTOR"); + (*it1)->setAETitle("REQUESTOR"); + (*it1)->setPeerHostName("localhost"); +- (*it1)->setPeerPort(11112); ++ (*it1)->setPeerPort(port_number); + (*it1)->enableAuthentication(PRIVATE_KEY_FILENAME, PUBLIC_SELFSIGNED_CERT_FILENAME, PRIVATE_KEY_PWD, DCF_Filetype_PEM, DCF_Filetype_PEM); + (*it1)->setPeerCertVerification(DCV_ignoreCertificate); + diff --git a/rules b/rules new file mode 100755 index 00000000..cb59c5a0 --- /dev/null +++ b/rules @@ -0,0 +1,93 @@ +#!/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 + +# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1001703 +export DEB_CXXFLAGS_MAINT_APPEND=-DENABLE_DCMJPLS_INTERLEAVE_NONE + +# 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 + +# SKIP_RPATH=OFF to run test suite: +# see #701231 +CMAKE_EXTRA_FLAGS += -DCMAKE_BUILD_TYPE:STRING=None \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + -DDCMTK_WITH_OPENSSL:BOOL=ON \ + -DDCMTK_ENABLE_PRIVATE_TAGS:BOOL=ON \ + -DDCMTK_WITH_XML:BOOL=ON \ + -DDCMTK_WITH_DOXYGEN:BOOL=$(BUILDDOC) \ + -DDCMTK_WITH_TIFF:BOOL=ON \ + -DDCMTK_WITH_ZLIB:BOOL=ON \ + -DDCMTK_WITH_ICONV:BOOL=OFF \ + -DDCMTK_WITH_ICU:BOOL=OFF \ + -DUSE_COMPILER_HIDDEN_VISIBILITY:BOOL=ON \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_INSTALL_DATADIC:STRING=share/libdcmtk17 \ + -DCMAKE_SKIP_RPATH:BOOL=OFF \ + -DDCMTK_ENABLE_STL:BOOL=ON \ + -DCMAKE_CXX_STANDARD:STRING=17 + +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 + +# Let's be smart with building doc +override_dh_auto_build-indep: + $(MAKE) -C obj-* DOXYGEN + +# 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 $(MAKE) -C obj-*/doxygen install + DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C obj-*/dcmwlm/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 + #remove test binaries + rm ./debian/dcmtk/usr/bin/*_tests + rm ./debian/dcmtk/usr/bin/drttest + rm ./debian/dcmtk/usr/bin/mkreport + rm ./debian/dcmtk/usr/bin/msgserv + rm ./debian/dcmtk/usr/bin/wltest + rm ./debian/tmp/usr/share/dcmtk/SC.dump + rm ./debian/tmp/usr/share/dcmtk/VLP.dump + + +.PHONY: get-orig-source diff --git a/salsa-ci.yml b/salsa-ci.yml new file mode 100644 index 00000000..3122a171 --- /dev/null +++ b/salsa-ci.yml @@ -0,0 +1,16 @@ +image: debian:sid + +build: + stage: build + before_script: + - apt-get update && apt-get -y install devscripts git-buildpackage + - mk-build-deps --tool "apt -y -o Debug::pkgProblemResolver=yes --no-install-recommends" --install -r debian/control + - rm *.buildinfo *.changes + script: + - git checkout pristine-tar + - git pull + - git checkout master + - git pull + # silence build to not exceed build log size of gitlab-ci + - gbp buildpackage -uc -us 2>&1 >../build.log && exit 0 || tail -n 100 ../build.log && exit -1 + 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..71db9e6c --- /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..5ed6c1f7 --- /dev/null +++ b/tests/run-unit-test @@ -0,0 +1,139 @@ +#!/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/libdcmtk17/dicom.dic "${AUTOPKGTEST_TMP}" + + +export DCMDICTPATH=${AUTOPKGTEST_TMP}/dicom.dic + +cd "${AUTOPKGTEST_TMP}" + +echo "15e7e2a11cdeabac32e1134674beda6b 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" + +dcmodify -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