[med-svn] r20050 - in trunk/packages/dcmtk/trunk/debian: . patches

Andreas Tille tille at moszumanska.debian.org
Fri Sep 11 19:39:56 UTC 2015


Author: tille
Date: 2015-09-11 19:39:55 +0000 (Fri, 11 Sep 2015)
New Revision: 20050

Added:
   trunk/packages/dcmtk/trunk/debian/dcmtk-doc.docs
   trunk/packages/dcmtk/trunk/debian/dcmtk.install
   trunk/packages/dcmtk/trunk/debian/dcmtk.manpages
   trunk/packages/dcmtk/trunk/debian/libdcmtk4-dev.install
   trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.dirs
   trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.install
   trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.lintian-overrides
   trunk/packages/dcmtk/trunk/debian/patches/0001-Fixed-OFoptional-by-introducing-OFalign.patch
   trunk/packages/dcmtk/trunk/debian/patches/datadic_install.patch
   trunk/packages/dcmtk/trunk/debian/patches/debian_iconv.patch
   trunk/packages/dcmtk/trunk/debian/patches/ofstd_markup_6.patch
   trunk/packages/dcmtk/trunk/debian/patches/removemd5.patch
   trunk/packages/dcmtk/trunk/debian/patches/sparc_align.patch
   trunk/packages/dcmtk/trunk/debian/patches/spelling.patch
   trunk/packages/dcmtk/trunk/debian/patches/system_charls.patch
   trunk/packages/dcmtk/trunk/debian/patches/warn_unused_result.patch
   trunk/packages/dcmtk/trunk/debian/source.lintian-overrides
Modified:
   trunk/packages/dcmtk/trunk/debian/changelog
   trunk/packages/dcmtk/trunk/debian/control
Log:
Do gcc-5 transition on new version (and commit not yet commited changes from experimental)


Modified: trunk/packages/dcmtk/trunk/debian/changelog
===================================================================
--- trunk/packages/dcmtk/trunk/debian/changelog	2015-09-11 19:32:23 UTC (rev 20049)
+++ trunk/packages/dcmtk/trunk/debian/changelog	2015-09-11 19:39:55 UTC (rev 20050)
@@ -4,6 +4,7 @@
   * cme fix dpkg-control
   * libdcmtk4-dev conflicts libdcmtk2-dev
     Closes: #769151
+  * Do gcc-5 transition on new version
 
  -- Andreas Tille <tille at debian.org>  Fri, 11 Sep 2015 21:23:03 +0200
 

Modified: trunk/packages/dcmtk/trunk/debian/control
===================================================================
--- trunk/packages/dcmtk/trunk/debian/control	2015-09-11 19:32:23 UTC (rev 20049)
+++ trunk/packages/dcmtk/trunk/debian/control	2015-09-11 19:39:55 UTC (rev 20050)
@@ -38,7 +38,7 @@
  .
  Note: This version was compiled with libssl support.
 
-Package: libdcmtk4
+Package: libdcmtk4v5
 Architecture: any
 Section: libs
 Depends: ${misc:Depends},
@@ -57,7 +57,7 @@
 Package: libdcmtk4-dev
 Architecture: any
 Section: libdevel
-Depends: libdcmtk4 (= ${binary:Version}),
+Depends: libdcmtk4v5 (= ${binary:Version}),
          ${misc:Depends}
 Suggests: dcmtk-doc
 Conflicts: libdcmtk2-dev
@@ -108,11 +108,11 @@
  This package contains the on-line documentation for the DCMTK libraries
  and utilities in HTML format.
 
-Package: libdcmtk4-dbg
+Package: libdcmtk4v5-dbg
 Architecture: any
 Section: debug
 Priority: extra
-Depends: libdcmtk4 (= ${binary:Version}),
+Depends: libdcmtk4v5 (= ${binary:Version}),
          ${misc:Depends}
 Description: OFFIS DICOM toolkit library debugging symbols
  DCMTK includes a collection of libraries and applications for examining,
@@ -120,4 +120,4 @@
  sending and receiving images over a network connection, as well as
  demonstrative image storage and worklist servers.
  .
- This package contains the debugging symbols for libdcmtk4.
+ This package contains the debugging symbols for libdcmtk4v5.

Added: trunk/packages/dcmtk/trunk/debian/dcmtk-doc.docs
===================================================================
--- trunk/packages/dcmtk/trunk/debian/dcmtk-doc.docs	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/dcmtk-doc.docs	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1 @@
+debian/tmp/usr/share/doc/dcmtk/html

Added: trunk/packages/dcmtk/trunk/debian/dcmtk.install
===================================================================
--- trunk/packages/dcmtk/trunk/debian/dcmtk.install	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/dcmtk.install	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,10 @@
+usr/bin/*
+etc/dcmtk/*
+usr/share/dcmtk/*.css
+usr/share/dcmtk/*.dump
+usr/share/dcmtk/*.lut
+usr/share/dcmtk/dcm2xml.dtd
+usr/share/dcmtk/dsr2xml.xsd
+usr/share/dcmtk/dumppat.txt
+usr/share/dcmtk/wlistdb
+usr/share/dcmtk/wlistqry

Added: trunk/packages/dcmtk/trunk/debian/dcmtk.manpages
===================================================================
--- trunk/packages/dcmtk/trunk/debian/dcmtk.manpages	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/dcmtk.manpages	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1 @@
+doxygen/manpages/man1/*.1

Added: trunk/packages/dcmtk/trunk/debian/libdcmtk4-dev.install
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk4-dev.install	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk4-dev.install	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,3 @@
+usr/include/dcmtk/*
+usr/lib/*.so
+usr/lib/cmake/

Added: trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.dirs
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.dirs	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.dirs	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1 @@
+usr/lib

Added: trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.install
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.install	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.install	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,2 @@
+usr/lib/*.so.*
+usr/share/libdcmtk4/*.dic

Added: trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.lintian-overrides
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.lintian-overrides	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.lintian-overrides	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,4 @@
+# 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
+libdcmtk4: package-name-doesnt-match-sonames
+libdcmtk4: embedded-library

Added: trunk/packages/dcmtk/trunk/debian/patches/0001-Fixed-OFoptional-by-introducing-OFalign.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/0001-Fixed-OFoptional-by-introducing-OFalign.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/0001-Fixed-OFoptional-by-introducing-OFalign.patch	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,1044 @@
+From 21142a1d3354b5d4e97a2e160221ae391362e8c1 Mon Sep 17 00:00:00 2001
+From: Jan Schlamelcher <dicom at offis.de>
+Date: Fri, 4 Jul 2014 12:02:51 +0200
+Subject: [PATCH] Fixed OFoptional by introducing OFalign?
+
+---
+ CMake/GenerateDCMTKConfigure.cmake        |   29 +++
+ CMake/osconfig.h.in                       |   12 +
+ config/aclocal.m4                         |   41 +++
+ config/configure                          |   60 +++++
+ config/configure.in                       |    2 +
+ config/include/dcmtk/config/osconfig.h.in |    6 +
+ ofstd/include/dcmtk/ofstd/ofalign.h       |  190 ++++++++++++++
+ ofstd/include/dcmtk/ofstd/ofoption.h      |  390 +++++++++++++++++++----------
+ ofstd/include/dcmtk/ofstd/oftraits.h      |    4 +-
+ ofstd/tests/toption.cc                    |    8 +
+ 10 files changed, 610 insertions(+), 132 deletions(-)
+ create mode 100644 ofstd/include/dcmtk/ofstd/ofalign.h
+
+Index: dcmtk-3.6.1~20140617/CMake/GenerateDCMTKConfigure.cmake
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/CMake/GenerateDCMTKConfigure.cmake	2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/CMake/GenerateDCMTKConfigure.cmake	2014-07-07 09:04:24.029706532 +0200
+@@ -687,3 +687,32 @@
+ }
+ ")
+ ENDIF(WIN32)
++
++# Check for alignment query / specifier support
++DCMTK_TRY_COMPILE(HAVE_GNU_ALIGNOF "__alignof__ is supported"
++    "int main()
++{
++    char c[__alignof__(int)];
++    return 0;
++}")
++
++DCMTK_TRY_COMPILE(HAVE_MS_ALIGNOF "__alignof is supported"
++    "int main()
++{
++    char c[__alignof(int)];
++    return 0;
++}")
++
++DCMTK_TRY_COMPILE(HAVE_ATTRIBUTE_ALIGNED "__attribute__((aligned)) is supported"
++    "int main()
++{
++    __attribute__((aligned(4))) char c[16];
++    return 0;
++}")
++
++DCMTK_TRY_COMPILE(HAVE_DECLSPEC_ALIGN "__declspec(align) is supported"
++    "int main()
++{
++    __declspec(align(4)) char c[16];
++    return 0;
++}")
+Index: dcmtk-3.6.1~20140617/CMake/osconfig.h.in
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/CMake/osconfig.h.in	2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/CMake/osconfig.h.in	2014-07-07 09:04:24.033706533 +0200
+@@ -1054,4 +1054,16 @@
+  for building with C++11 features.
+ #endif
+ 
++/* Define if the compiler supports __alignof__ */
++#cmakedefine HAVE_GNU_ALIGNOF
++
++/* Define if the compiler supports __alignof */
++#cmakedefine HAVE_MS_ALIGNOF
++
++/* Define if the compiler supports __attribute__(aligned) */
++#cmakedefine HAVE_ATTRIBUTE_ALIGNED
++
++/* Define if the compiler supports __declspec(align) */
++#cmakedefine HAVE_DECLSPEC_ALIGN
++
+ #endif /* !OSCONFIG_H*/
+Index: dcmtk-3.6.1~20140617/config/aclocal.m4
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/config/aclocal.m4	2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/config/aclocal.m4	2014-07-07 09:04:24.033706533 +0200
+@@ -1819,6 +1819,47 @@
+     fi
+ ])
+ 
++AC_DEFUN([AC_CHECK_ALIGNOF],
++[
++    AC_MSG_CHECKING([for __alignof__])
++    AC_LINK_IFELSE(
++    [
++        AC_LANG_SOURCE(
++        [
++            int main(){char c[__alignof__(int)];return 0;}
++        ])
++    ],
++    [dcmtk_have_alignof=[yes]],
++    [dcmtk_have_alignof=[no]]
++    )
++    if test "$dcmtk_have_alignof" = yes; then
++        AC_MSG_RESULT([yes])
++        AC_DEFINE($1,[1],[Define if __alignof__ is available])
++    else
++        AC_MSG_RESULT([no])
++    fi
++])
++
++AC_DEFUN([AC_CHECK_ATTRIBUTE_ALIGNED],
++[
++    AC_MSG_CHECKING([for __attribute__((aligned))])
++    AC_LINK_IFELSE(
++    [
++        AC_LANG_SOURCE(
++        [
++            int main(){__attribute__((aligned(4))) char c[16];return 0;}
++        ])
++    ],
++    [dcmtk_have_attribute_aligned=[yes]],
++    [dcmtk_have_attribute_aligned=[no]]
++    )
++    if test "$dcmtk_have_attribute_aligned" = yes; then
++        AC_MSG_RESULT([yes])
++        AC_DEFINE($1,[1],[Define if __attribute__((aligned)) is available])
++    else
++        AC_MSG_RESULT([no])
++    fi
++])
+ 
+ dnl
+ dnl This macro checks if a given preprocessor symbol exists and is a string
+Index: dcmtk-3.6.1~20140617/config/configure
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/config/configure	2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/config/configure	2014-07-07 09:04:24.041706533 +0200
+@@ -14369,6 +14369,66 @@
+     fi
+ 
+ 
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __alignof__" >&5
++$as_echo_n "checking for __alignof__... " >&6; }
++    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++
++            int main(){char c__alignof__(int);return 0;}
++
++
++_ACEOF
++if ac_fn_cxx_try_link "$LINENO"; then :
++  dcmtk_have_alignof=yes
++else
++  dcmtk_have_alignof=no
++
++fi
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++    if test "$dcmtk_have_alignof" = yes; then
++        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++
++$as_echo "#define HAVE_GNU_ALIGNOF 1" >>confdefs.h
++
++    else
++        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++    fi
++
++
++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__((aligned))" >&5
++$as_echo_n "checking for __attribute__((aligned))... " >&6; }
++    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++
++            int main(){__attribute__((aligned(4))) char c16;return 0;}
++
++
++_ACEOF
++if ac_fn_cxx_try_link "$LINENO"; then :
++  dcmtk_have_attribute_aligned=yes
++else
++  dcmtk_have_attribute_aligned=no
++
++fi
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++    if test "$dcmtk_have_attribute_aligned" = yes; then
++        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++
++$as_echo "#define HAVE_ATTRIBUTE_ALIGNED 1" >>confdefs.h
++
++    else
++        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++    fi
++
++
+ CFLAGS="$DEBUGCFLAGS $CFLAGS"
+ CXXFLAGS="$DEBUGCXXFLAGS $CXXFLAGS"
+ 
+Index: dcmtk-3.6.1~20140617/config/configure.in
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/config/configure.in	2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/config/configure.in	2014-07-07 09:04:24.041706533 +0200
+@@ -1236,6 +1236,8 @@
+ 
+ AC_CHECK_SYNC_FN([__sync_add_and_fetch],[HAVE_SYNC_ADD_AND_FETCH])
+ AC_CHECK_SYNC_FN([__sync_sub_and_fetch],[HAVE_SYNC_SUB_AND_FETCH])
++AC_CHECK_ALIGNOF([HAVE_GNU_ALIGNOF])
++AC_CHECK_ATTRIBUTE_ALIGNED([HAVE_ATTRIBUTE_ALIGNED])
+ 
+ dnl -------------------------------------------------------
+ dnl Set optimizer and debug compiler flags
+Index: dcmtk-3.6.1~20140617/config/include/dcmtk/config/osconfig.h.in
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/config/include/dcmtk/config/osconfig.h.in	2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/config/include/dcmtk/config/osconfig.h.in	2014-07-07 09:04:24.041706533 +0200
+@@ -72,6 +72,9 @@
+ /* Define to 1 if you have the <assert.h> header file. */
+ #undef HAVE_ASSERT_H
+ 
++/* Define if __attribute__((aligned)) is available */
++#undef HAVE_ATTRIBUTE_ALIGNED
++
+ /* Define to 1 if you have the `bcmp' function. */
+ #undef HAVE_BCMP
+ 
+@@ -252,6 +255,9 @@
+ /* Define to 1 if you have the `gmtime_r' function. */
+ #undef HAVE_GMTIME_R
+ 
++/* Define if __alignof__ is available */
++#undef HAVE_GNU_ALIGNOF
++
+ /* Define to 1 if you have the <grp.h> header file. */
+ #undef HAVE_GRP_H
+ 
+Index: dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofalign.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofalign.h	2014-07-07 09:04:24.045706533 +0200
+@@ -0,0 +1,190 @@
++/*
++ *
++ *  Copyright (C) 2014, OFFIS e.V.
++ *  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
++ *
++ *
++ *  Module:  ofstd
++ *
++ *  Author:  Jan Schlamelcher
++ *
++ *  Purpose: Implement alignment specifiers / query operators
++ *           similar to C++11's alignas and alignof.
++ *
++ */
++
++#ifndef OFALIGN_H
++#define OFALIGN_H
++
++#include "dcmtk/config/osconfig.h"
++#include "dcmtk/ofstd/oftypes.h"
++
++// use native functionality if C++11 is supported
++#ifdef DCMTK_ENABLE_CXX11
++
++#define OFalignof alignof
++#define OFalignas alignas
++
++#elif !defined(DOXYGEN) // fallback implementations
++
++// alignof
++#ifdef HAVE_GNU_ALIGNOF
++#define OFalignof __alignof__
++#elif defined(HAVE_MS_ALIGNOF)
++#define OFalignof __alignof
++#endif
++
++// these helper templates automatically resolve the alignment
++// if a type is given and pass-through any numeric constant
++template<size_t Size>
++struct OFalignas_size_helper { Uint8 size[Size]; };
++template<typename T>
++OFalignas_size_helper
++<
++#ifdef OFalignof
++    OFalignof(T)
++#else // use sizeof instead
++    sizeof(T)
++#endif
++> OFalignof_or_identity() {}
++template<size_t Size>
++OFalignas_size_helper<Size> OFalignof_or_identity() {}
++
++// alignas
++#ifdef HAVE_ATTRIBUTE_ALIGNED
++
++#define OFalignas(A) __attribute__((aligned(sizeof(OFalignof_or_identity<A>()))))
++
++#elif defined(HAVE_DECLSPEC_ALIGN)
++
++// Microsoft workaround: align + align_like
++// __declspec(align) does not understand integral expressions
++// but instead requires an integral literal, Microsoft says:
++// "Valid entries are integer powers of two from 1 to 8192 (bytes),
++// such as 2, 4, 8, 16, 32, or 64."
++// So this is fundamentally different to the real alignment specifiers
++// from GNU and C++11.
++#define OFalign(T,A) OFdeclspec_align<T>::template as<sizeof(OFalignof_or_identity<A>())>::type
++
++// The trick / hack: specialize a template for every valid
++// integral expression and use an appropriate integral literal to
++// define the desired type. At least Microsoft allows us to
++// typedef this stuff, but the API is still fundamentally different
++// to the favored "OFalignas".
++// This also requires a specialization for arrays, since making
++// an array from an aligned type is not the same as making an
++// aligned array.
++#define DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( N )\
++template<typename T>\
++struct make_type<T,N> { typedef __declspec(align(N)) T type; };\
++template<typename T,size_t S>\
++struct make_type<T[S],N> { typedef __declspec(align(N)) T type[S]; }
++
++template<typename X>
++class OFdeclspec_align
++{
++    template<typename T,size_t>
++    struct make_type { typedef T type; };
++    template<typename T,size_t S,size_t A>
++    struct make_type<T[S],A> { typedef T type[S]; };
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 1 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 2 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 4 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 8 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 16 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 32 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 64 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 128 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 256 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 512 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 1024 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 2048 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 4096 );
++    DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 8192 );
++
++public:
++    template<size_t A>
++    struct as { typedef OFTypename make_type<X,A>::type type; };
++};
++#endif
++
++#else // DOXYGEN
++
++/** @file ofalign.h
++ *  Implements platform independent alignment, if possible similar to
++ *  C++11's alignof / alignas functionality.
++ */
++
++/** Determine the alignment of a type T.
++ *  @note OFalignof may not be available on your platform / compiler combination.
++ *    Use <kbd>#ifdef OFalignof</kbd> to query availability.
++ *  @details OFalignof behaves similar to
++ *  <a href="http://en.cppreference.com/w/cpp/language/alignof">C++11's alignof</a>
++ *  when it's supported.
++ */
++#define OFalignof <unspecified>
++
++/** Align object or class like another type or as specified by an integral expression.
++ *  @note OFalignas may not be available on your platform / compiler combination.
++ *    Use <kbd>#ifdef OFalignas</kbd> to query availability. See OFalign for an alternative
++ *    with limited functionality that supports more platforms in return.
++ *  @details OFalignas behaves similar to
++ *  <a href="http://en.cppreference.com/w/cpp/language/alignas">C++11's alignas</a>
++ *  when it's supported.
++ */
++#define OFalignas <unspecified>
++
++/** Determine a type with modified alignment for a given type T.
++ *  @note OFalign may not be available on your platform / compiler combination.
++ *    Use <kbd>#ifdef OFalign</kbd> to query availability.
++ *  @details
++ *  OFalign can be though of as the least common denominator of the alignment capabilities
++ *  available on different platform / compiler combinations. Given a type T and an integral
++ *  expression I, <kbd>OFalign(T,I)</kbd> evaluates to an appropriately aligned type corresponding
++ *  to T.<br>
++ *  You may also use another type to specify the desired alignment, e.g. <kbd>OFalign(T,int)</kbd>.
++ *  OFalign will then calculate the alignment using <i>OFalignof</i> (if available) or use
++ *  <i>sizeof()</i> as approximation.<br>
++ *  To align arrays via OFalign, simply pass the array's extents within the parameter, e.g.
++ *  <kbd>OFalign(char[12],float)</kbd> to align an array containing <i>12</i> chars like a float.<br>
++ *  When using OFalign inside a dependant scope (i.e. inside templates), you may need
++ *  to use OFTypename in conjunction with OFalign, e.g.
++ *  @code typedef OFTypename OFalign(T,16) value_type; @endcode
++ *  OFalign should support alignments as any power of two <= 8192 (examine your compiler's manual
++ *  when in doubt).
++ *  Other alignments may also be supported, but may not be available on every platform.
++ *  OFalign may simply ignore your request if you specify an unsupported aligment
++ *  (won't output an error). You may want to check the alignment via <i>OFalignof</i> in case
++ *  it is likely to fail. Using another type as alignment specifier should always work,
++ *  as the required alignment is obviously supported in that case
++ *  (at least when OFalignof is available).
++ */
++#define OFalign <unspecified>
++
++#endif // C++11
++
++#if defined(OFalignas) && !defined(DOXYGEN)
++// OFalign based on OFalignas, so this is "platform-independent".
++#define OFalign(T,A) OFalignas_align<T>::template as<sizeof(OFalignof_or_identity<A>())>::type
++template<typename T>
++struct OFalignas_align
++{
++    template<size_t A>
++    struct as { typedef OFalignas(A) T type; };
++};
++template<typename T,size_t S>
++struct OFalignas_align<T[S]>
++{
++    template<size_t A>
++    struct as { typedef OFalignas(A) T type[S]; };
++};
++#endif
++
++#endif // OFALIGN_H
+Index: dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofoption.h
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/ofstd/include/dcmtk/ofstd/ofoption.h	2014-07-07 09:04:02.545705242 +0200
++++ dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofoption.h	2014-07-07 09:04:24.045706533 +0200
+@@ -29,6 +29,7 @@
+ #include "dcmtk/ofstd/ofstream.h"
+ #include "dcmtk/ofstd/ofdefine.h"
+ #include "dcmtk/ofstd/oftraits.h"
++#include "dcmtk/ofstd/ofalign.h"
+ 
+ // include <type_traits> for "std::is_default_constructible"
+ // to recover from compiler insanity (Visual Studio 12+).
+@@ -81,6 +82,210 @@
+ OFnullpt_t OFnullopt;
+ #endif // DOXYGEN
+ 
++/** Default storage traits of OFoptional<T>.
++ *  OFdefault_optional_traits manages the state and storage of the contained
++ *  object in a portable manner. You may use this class as base when defining
++ *  custom traits for a specific type T, so you won't have to re-implement
++ *  this functionality entirely.
++ *  @relates OFoptional
++ *  @tparam T the content type of the respective OFoptional instance.
++ *  @sa OFoptional
++ *  @sa OFoptional_traits
++ *  @details
++ *  <h2>@anchor ofoptional_trait_override Example</h2>
++ *  This example shows how to override the <i>is_default_constructible</i>
++ *  attribute of <kbd>OFoptional_traits</kbd> for the custom class <i>Test</i>.
++ *  @code
++ *  // Note: Test's default constructor is private
++ *  //   which leads to errors when being used within
++ *  //   OFoptional, since a default constructor exists
++ *  //   but can't be accessed.
++ *  class Test
++ *  {
++ *      Test() {}
++ *  public:
++ *      static OFoptional<T> instance();
++ *           .
++ *           .
++ *           .
++ *  };
++ *
++ *  // Override OFoptional's behavior to fix this problem
++ *  template<>
++ *  struct OFoptional_traits<Test>
++ *  : OFdefault_optional_traits<Test> // derived from default traits
++ *  {
++ *      // Tell OFoptional that it can't default-construct
++ *      // a Test object.
++ *      typedef OFfalse_type is_default_constructible;
++ *  };
++ *  @endcode
++ */
++template<typename T>
++class OFdefault_optional_traits
++{
++#ifndef DOXYGEN
++    // types for detecting T's default constructibility via sfinae
++    struct no_type {};
++    struct yes_type {double d;};
++#ifndef _MSC_VER
++    // helper class to create an argument out of size_t
++    template<size_t>
++    struct consume{};
++    // sfinae overload working for default constructible Xs
++    template<typename X>
++    static yes_type sfinae(consume<sizeof *new X>*);
++#elif _MSC_VER < 1700
++    // Workaround bug in Visual Studio.
++    // On these broken compilers, the argument is not evaluated
++    // unless we require them to evaluate it for choosing which
++    // specialization should be instantiated.
++    template<size_t,size_t>
++    struct consume{};
++    template<size_t X>
++    struct consume<X,X> { typedef void type; };
++    // sfinae overload working for value-initializable Xs, that's as
++    // close as we get on these broken compilers
++    template<typename X>
++    static yes_type sfinae(typename consume<sizeof X(),sizeof X()>::type*);
++#else
++    // Visual Stuio 2012 is completely broken, but it has std::is_defaul_constructible
++    // Note: this tests constructibility, but not if WE can construct this.
++    template<typename X>
++    static yes_type sfinae(typename OFenable_if<std::is_default_constructible<X>::value>::type*);
++#endif
++    // most general sfinae overload, chosen only if everything else fails
++    template<typename X>
++    static no_type sfinae(...);
++
++public:
++    struct is_default_constructible
++    : OFintegral_constant<OFBool,sizeof(sfinae<T>(OFnullptr)) == sizeof(yes_type)> {};
++
++#ifdef DCMTK_USE_CXX11_STL
++
++    template<typename... Args>
++    void construct( Args&&... args )
++    { new (content()) T( std::forward<Args>( args )... ); m_State = OFTrue; }
++
++#else // C++11
++
++#ifdef OFalign
++    void construct() { new (content()) T; m_State = OFTrue; }
++    template<typename X>
++    void construct( const X& x ) { new (content()) T( x ); m_State = OFTrue; }
++#else
++    void construct() { m_pContent = new T; }
++    template<typename X>
++    void construct( const X& x ) { m_pContent = new T( x ); }
++#endif
++
++#endif // NOT C++11
++
++#ifdef OFalign
++    // State and content are stored in the same data-array to
++    // optimize alignment and so on. Mutable, since the content
++    // itself can be modified even if it cant be (re-)assigned.
++    OFdefault_optional_traits() : m_State( OFFalse ) {}
++    void destroy() { OFstatic_cast( T*, content() )->~T(); m_State = OFFalse; }
++    OFBool state() const { return m_State; }
++    void* content() const { return m_Content; }
++    mutable OFTypename OFalign(Uint8[sizeof(T)],T) m_Content;
++    OFBool m_State;
++#else
++    // Allocate content on the heap.
++    OFdefault_optional_traits() : m_pContent( OFnullptr ) {}
++    void destroy() { delete m_pContent; m_pContent = OFnullptr; }
++    OFBool state() const { return m_pContent; }
++    void* content() const { return m_pContent; }
++    T* m_pContent;
++#endif
++
++#endif // NOT DOXYGEN
++};
++
++/** Manages storage and state of the object contained in OFoptional<T>.
++ *  OFoptional_traits is a customization point for OFoptional that enables you to define a custom storage management policy for
++ *  individual types T. If you don't want to implement everything from scratch, use OFdefault_optional_traits as base class for
++ *  your implementation.
++ *  @relates OFoptional
++ *  @tparam the content type of the respective OFoptional instance.
++ *  @sa OFoptional
++ *  @sa OFdefault_optional_traits
++ *  @details
++ *  <h2>Example</h2>
++ *  The following example shows how to implement custom OFoptional_traits for an enum that already contains a specific element
++ *  to denote an invalid state.
++ *  @code
++ *  enum FILE_ACCESS
++ *  {
++ *    NONE  = 0000,
++ *    READ  = 0400,
++ *    WRITE = 0200,
++ *        . . .
++ *    INVALID_ACCESS_CODE = 01000
++ *  };
++ *
++ *  template<>
++ *  struct OFoptional_traits<FILE_ACCESS>
++ *  {
++ *    // Tell OFoptional that this is default-constructible
++ *    typedef OFtrue_type is_default_constructible;
++ *    // Initialize storage to the invalid state during construction
++ *    OFoptional_traits() : access( INVALID_ACCESS_CODE ) {}
++ *    // Constructors
++ *    void construct()                 { access = NONE; }
++ *    void construct( FILE_ACCESS fa ) { access = fa; }
++ *    // There is nothing to destroy, just set the state to "disengaged"
++ *    void destroy()                   { access = INVALID_ACCESS_CODE; }
++ *    // Tell OFoptional how to distinguish "engaged" and "disengaged" FILE_ACCESS objects
++ *    OFBool state() const             { return access != INVALID_ACCESS_CODE; }
++ *    // Just return a pointer to the underlying object
++ *    void* content() const            { return &access; }
++ *    // The actual object
++ *    mutable FILE_ACCESS access;
++ *  };
++ *
++ *  COUT << "This should now be the same: " << sizeof( FILE_ACCESS ) << ' ' << sizeof( OFoptional<FILE_ACCESS> ) << OFendl;
++ *  @endcode
++ */
++template<typename T>
++struct OFoptional_traits
++#ifndef DOXYGEN
++: OFdefault_optional_traits<T>
++#endif
++{
++#ifdef DOXYGEN
++    /** <b>Required</b>: default construction policy.
++     *  You need to define an appropriate integral constant as "is_default_constructible"
++     *  that denotes if OFoptional<T> may attempt to default construct the underlying object
++     *  under certain circumstances. You may use <kbd>OFdefault_optional_traits<T>::is_default_constructible</kbd>
++     *  to specify this member, which uses SFINAE mechanisms to query a type's default constructibility.
++     */
++    <unspecified> is_default_constructible;
++
++    /// <b>Requried</b>: default constructor, must initialize the state to "disengaged".
++    OFoptional_traits();
++
++    /** <b>Required</b>: type constructors, construct the contained object.
++     *  You need to define at least one method of this kind, that takes appropriate
++     *  parameter(s) to construct the underlying object. Must set the state to "engaged".
++     *  If <kbd>is_default_constructible</kbd> evaluates to <i>OFTrue</i>, an overload
++     *  taking zero arguments is also required.
++     */
++    void construct(...);
++
++    /// <b>Required</b>: type destructor, destroys the underlying object and must set the state to "disengaged".
++    void destroy();
++
++    /// <b>Required</b>: state query, must return <i>OFTrue</i> when "engaged" and <i>OFFalse</i> otherwhise.
++    OFBool state() const;
++
++    /// <b>Required</b>: content access, must return a pointer to the contained object.
++    void* content() const;
++#endif
++};
++
+ /** The class template OFoptional manages an optional contained value, i.e.\ a value tagged with a state that reports its validity.
+  *  A common use case for OFoptional is the return value of a function that may fail. OFoptional handles expensive to construct
+  *  objects well and is more readable, as the intent is expressed explicitly.
+@@ -90,8 +295,10 @@
+  *  @tparam T the type of the value to manage initialization state for. The type's destructor must be accessible by OFoptional<T>.
+  *  @note There exists a sufficient specialization for reference types (T&) that behaves exactly like a pointer (T*) but allows
+  *    OFoptional to be used in a generic context (when it's unknown if T is a reference or not).
++ *  @sa OFoptional_traits
++ *  @sa OFdefault_optional_traits
+  *  @details
+- *  ### @anchor optional_syntax %OFoptional Syntax ###
++ *  <h2>@anchor optional_syntax %OFoptional Syntax</h2>
+  *  OFoptional can be used like a pointer to the contained value, except OFoptional also manages the contained value's storage.
+  *  Several operators have been overloaded to simplify the usage of OFoptional. Instead of looking at every overload's specification,
+  *  it is more appropriate to describe the possible syntax in a general manner. Therefore we declare the following symbols that are
+@@ -147,7 +354,8 @@
+  *        @note Detecting if T is default constructible within OFoptional<T> does not work correctly on all
+  *          compilers. Especially all versions of Microsoft Visual Studio are impaired. For example a private
+  *          default constructor of T might be detected as <i>not accessible</i> although OFoptional<T>
+- *          was declared a friend of T.
++ *          was declared a friend of T. Specialize <kbd>OFoptional_traits</kbd> for a particular type T to
++ *          override constructibility detection as required. See @ref ofoptional_trait_override "this example".
+  *      </td>
+  *    </tr>
+  *    <tr>
+@@ -285,40 +493,11 @@
+  */
+ template<typename T>
+ class OFoptional
+-{
+ #ifndef DOXYGEN
+-    // types for detecting T's default constructibility via sfinae
+-    struct no_type {};
+-    struct yes_type {double d;};
+-#ifndef _MSC_VER
+-    // helper class to create an argument out of size_t
+-    template<size_t>
+-    struct consume{};
+-    // sfinae overload working for default constructible Xs
+-    template<typename X>
+-    static yes_type sfinae(consume<sizeof *new X>*);
+-#elif _MSC_VER < 1700
+-    // Workaround bug in Visual Studio.
+-    // On these broken compilers, the argument is not evaluated
+-    // unless we require them to evaluate it for choosing which
+-    // specialization should be instantiated.
+-    template<size_t,size_t>
+-    struct consume{};
+-    template<size_t X>
+-    struct consume<X,X> { typedef void type; };
+-    // sfinae overload working for value-initializable Xs, that's as
+-    // close as we get on these broken compilers
+-    template<typename X>
+-    static yes_type sfinae(typename consume<sizeof X(),sizeof X()>::type*);
+-#else
+-    // Visual Stuio 2012 is completely broken, but it has std::is_defaul_constructible
+-    // Note: this tests constructibility, but not if WE can construct this.
+-    template<typename X>
+-    static yes_type sfinae(typename OFenable_if<std::is_default_constructible<X>::value>::type*);
++: OFoptional_traits<T>
+ #endif
+-    // most general sfinae overload, chosen only if everything else fails
+-    template<typename X>
+-    static no_type sfinae(...);
++{
++#ifndef DOXYGEN
+     // create a matching istream type if condition is OFTrue
+     template<typename Char,typename Traits,OFBool>
+     struct if_istream{ typedef STD_NAMESPACE basic_istream<Char,Traits>& type; };
+@@ -327,15 +506,9 @@
+     struct if_istream<Char,Traits,OFFalse> {};
+     // use sfinae etc. to enable / disable the respective istream operator overloads
+     template<typename Char,typename Traits>
+-    struct if_constructible : if_istream<Char,Traits,sizeof(sfinae<T>(OFnullptr)) == sizeof(yes_type)> {};
++    struct if_constructible : if_istream<Char,Traits,OFoptional_traits<T>::is_default_constructible::value> {};
+     template<typename Char,typename Traits>
+-    struct if_not_constructible : if_istream<Char,Traits,sizeof(sfinae<T>(OFnullptr)) == sizeof(no_type)> {};
+-
+-// implement "construct" when "emplace" is not supported
+-// needed for the istream operator
+-#ifndef DCMTK_USE_CXX11_STL
+-    void construct() { state() = 1; new (content()) T; }
+-#endif // C++11
++    struct if_not_constructible : if_istream<Char,Traits,!OFoptional_traits<T>::is_default_constructible::value> {};
+ 
+ public:
+     // generic output stream operator overload
+@@ -354,11 +527,7 @@
+     {
+         if( !opt )
+         {
+-#ifdef DCMTK_USE_CXX11_STL
+-            opt.emplace();
+-#else // C++11
+             opt.construct();
+-#endif // NOT C++11
+             if( (is >> *opt).fail() )
+                 opt = OFnullopt;
+             return is;
+@@ -539,14 +708,14 @@
+ 
+     // Default construct an OFoptional object in the disengaged state.
+     OFconstexpr OFoptional()
+-    : m_Content()
++    : OFoptional_traits<T>()
+     {
+ 
+     }
+ 
+     // Explicitly construct a disengaged OFoptional object.
+     OFconstexpr OFoptional( OFnullopt_t )
+-    : m_Content()
++    : OFoptional_traits<T>()
+     {
+ 
+     }
+@@ -561,44 +730,39 @@
+ 
+     }
+ #else // C++11
+-    : m_Content()
++    : OFoptional_traits<T>()
+     {
+-        state() = rhs.state();
+-        if( state() )
+-            new (content()) T( *rhs );
++        if( rhs.state() )
++            OFoptional_traits<T>::construct( *rhs );
+     }
+ #endif // NOT C++11
+ 
+     // Copy the engaged state from rhs and its contents if rhs is engaged.
+     OFoptional( const OFoptional& rhs )
+-    : m_Content()
++    : OFoptional_traits<T>()
+     {
+-        state() = rhs.state();
+-        if( state() )
+-            new (content()) T( *rhs );
++        if( rhs.state() )
++            OFoptional_traits<T>::construct( *rhs );
+     }
+ 
+ #ifdef DCMTK_USE_CXX11_STL
+     // Move constructor, kills rhs if it was engaged before.
+     OFoptional( OFoptional&& rhs )
+-    : m_Content{}
++    : OFoptional_traits<T>()
+     {
+-        state() = rhs.state();
+-        if( state() )
++        if( rhs.state() )
+         {
+-            new (content()) T( std::move( *rhs ) );
+-            rhs.state() = 0;
+-            rhs->~T();
++            OFoptional_traits<T>::construct( std::move( *rhs ) );
++            rhs.destroy();
+         }
+     }
+ 
+     // Variadic constructor that emplaces the content
+     template<typename... Args>
+     OFoptional( Args&&... args )
+-    : m_Content{}
++    : OFoptional_traits<T>()
+     {
+-        state() = 1;
+-        new (content()) T( std::forward<Args>( args )... );
++        OFoptional_traits<T>::construct( std::forward<Args>( args )... );
+     }
+ 
+     // Move assignment
+@@ -609,25 +773,22 @@
+         {
+             // if both objects are engaged, move content
+             // and kill rhs
+-            if( state() == rhs.state() )
++            if( OFoptional_traits<T>::state() == rhs.state() )
+             {
+-                if( state() )
++                if( OFoptional_traits<T>::state() )
+                 {
+                     (**this) = std::move( *rhs );
+-                    rhs.state() = 0;
+-                    rhs->~T();
++                    rhs.destroy();
+                 }
+             }
+-            else if( state() ) // suicide if engaged and rhs isn't
++            else if( OFoptional_traits<T>::state() ) // suicide if engaged and rhs isn't
+             {
+-                state() = 0;
+-                (*this)->~T();
++                OFoptional_traits<T>::destroy();
+             }
+             else // if rhs is engaged and we aren't, swap states, move contents and kill rhs.
+             {
+-                OFswap( state(), rhs.state() );
+-                new (content()) T( std::move( *rhs ) );
+-                rhs->~T();
++                OFoptional_traits<T>::construct( std::move( *rhs ) );
++                rhs.destroy();
+             }
+         }
+         return *this;
+@@ -638,34 +799,27 @@
+     OFoptional& emplace( Args&&... args )
+     {
+         // emplace construct if we are disengaged
+-        if( !state() )
+-        {
+-            state() = 1;
+-            new (content()) T( std::forward<Args>( args )... );
+-        }
+-        else (**this) = T( std::forward<Args>( args )... ); // only emplace new content
++        if( !OFoptional_traits<T>::state() )
++            OFoptional_traits<T>::construct( std::forward<Args>( args )... );
++        else
++            (**this) = T( std::forward<Args>( args )... ); // only emplace new content
+         return *this;
+     }
+ #else // C++11
+     // Construct an engaged OFoptional object containing a copy of x.
+     template<typename X>
+     OFoptional( const X& x )
+-    : m_Content()
++    : OFoptional_traits<T>()
+     {
+-        state() = 1;
+-        new (content()) T( x );
++        OFoptional_traits<T>::construct( x );
+     }
+ #endif // NOT C++11
+ 
+     // Destroy the contained object if engaged, otherwise do nothing.
+     ~OFoptional()
+     {
+-        if( state() )
+-#ifndef _MSC_VER
+-            (*this)->~T();
+-#else // Workaround bug in Microsoft compilers
+-            operator->()->~T();
+-#endif
++        if( OFoptional_traits<T>::state() )
++            OFoptional_traits<T>::destroy();
+     }
+ 
+     // False friend of the assignment operator to prevent wrong behavior
+@@ -682,23 +836,17 @@
+         if( &rhs != this )
+         {
+             // if both objects are engaged, copy content
+-            if( state() == rhs.state() )
++            if( OFoptional_traits<T>::state() == rhs.state() )
+             {
+-                if( state() ) (**this) = *rhs;
++                if( OFoptional_traits<T>::state() ) (**this) = *rhs;
+             }
+-            else if( state() ) // suicide if engaged and rhs isn't
++            else if( OFoptional_traits<T>::state() ) // suicide if engaged and rhs isn't
+             {
+-                state() = 0;
+-#ifndef _MSC_VER
+-                (*this)->~T();
+-#else // Workaround bug in Microsoft compilers
+-                operator->()->~T();
+-#endif
++                OFoptional_traits<T>::destroy();
+             }
+             else // if rhs is engaged and we aren't, copy-construct from rhs.
+             {
+-                state() = 1;
+-                new (content()) T( *rhs );
++                OFoptional_traits<T>::construct( *rhs );
+             }
+         }
+         return *this;
+@@ -712,66 +860,48 @@
+ #endif // C++11
+     operator OFBool() const
+     {
+-        return state() != 0;
++        return OFoptional_traits<T>::state();
+     }
+ 
+     OFBool operator!() const
+     {
+-        return !state();
++        return !OFoptional_traits<T>::state();
+     }
+ 
+     T& operator*() const
+     {
+-        return *static_cast<T*>( content() );
++        return *OFstatic_cast( T*, OFoptional_traits<T>::content() );
+     }
+ 
+     T* operator->() const
+     {
+-        return static_cast<T*>( content() );
++        return OFstatic_cast( T*, OFoptional_traits<T>::content() );
+     }
+ 
+     // Swap the contents with another OFoptional object.
+     void swap( OFoptional& rhs )
+     {
+         // if both objects are engaged, the contents are swapped.
+-        if( state() == rhs.state() )
++        if( OFoptional_traits<T>::state() == rhs.state() )
+         {
+-            if( state() ) OFswap( **this, *rhs );
++            if( OFoptional_traits<T>::state() ) OFswap( **this, *rhs );
+         }
+         else
+         {
+             // if we are engaged and rhs isn't, move assign
+             // our contents to rhs.
+-            if( state() )
++            if( OFoptional_traits<T>::state() )
+             {
+-                new (rhs.content()) T( OFmove( **this ) );
+-#ifndef _MSC_VER
+-                (*this)->~T();
+-#else // Workaround bug in Microsoft compilers
+-                operator->()->~T();
+-#endif
++                rhs.construct( OFmove( **this ) );
++                OFoptional_traits<T>::destroy();
+             }
+             else // else move assign rhs' contents to us
+             {
+-                new (content()) T( OFmove( *rhs ) );
+-#ifndef _MSC_VER
+-                rhs->~T();
+-#else // Workaround bug in Microsoft compilers
+-                rhs.operator->()->~T();
+-#endif
++                OFoptional_traits<T>::construct( OFmove( *rhs ) );
++                rhs.destroy();
+             }
+-            // finally, swap the states
+-            OFswap( state(), rhs.state() );
+         }
+     }
+-
+-private:
+-    // State and content are stored in the same data-array to
+-    // optimize alignment and so on. Mutable, since the content
+-    // itself can be modified even if it cant be (re-)assigned.
+-    void* content() const { return m_Content; }
+-    Uint8& state() const { return m_Content[sizeof(T)]; }
+-    mutable Uint8 m_Content[sizeof(T)+1];
+ #endif // NOT DOXYGEN
+ };
+ 
+Index: dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/oftraits.h
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/ofstd/include/dcmtk/ofstd/oftraits.h	2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/oftraits.h	2014-07-07 09:04:24.045706533 +0200
+@@ -37,8 +37,8 @@
+ template<bool B,typename... ARGS>
+ using OFconditional = std::conditional<B,ARGS...>;
+ 
+-template<typename... ARGS>
+-using OFintegral_constant = std::integral_constant<ARGS...>;
++template<typename T,T Value>
++using OFintegral_constant = std::integral_constant<T,Value>;
+ 
+ template<typename... ARGS>
+ using OFis_signed = std::is_signed<ARGS...>;
+Index: dcmtk-3.6.1~20140617/ofstd/tests/toption.cc
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/ofstd/tests/toption.cc	2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/ofstd/tests/toption.cc	2014-07-07 09:04:24.045706533 +0200
+@@ -10,8 +10,16 @@
+ 
+ OFTEST(ofstd_optional)
+ {
++    OFCHECK( OFoptional_traits<int>::is_default_constructible::value );
++    OFCHECK( !OFoptional_traits<test>::is_default_constructible::value );
++
+     OFoptional<int> o0( 3 ), o1, o2( OFnullopt );
+ 
++    COUT << OFalignof(OFoptional<char>) << ' ' << sizeof(OFoptional<char>) << OFendl;
++    COUT << OFalignof(OFoptional<short>) << ' ' << sizeof(OFoptional<short>) << OFendl;
++    COUT << OFalignof(OFoptional<float>) << ' ' << sizeof(OFoptional<float>) << OFendl;
++    COUT << OFalignof(long) << ' ' << sizeof(long) << ' ' << OFalignof(OFoptional<long>) << ' ' << sizeof(OFoptional<long>) << OFendl;
++
+     OFCHECK( o0 && *o0 == 3 );
+ 
+     OFCHECK( !o1 && !o2 );

Added: trunk/packages/dcmtk/trunk/debian/patches/datadic_install.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/datadic_install.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/datadic_install.patch	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,14 @@
+Description: Install dict to versioned dir
+Author: Mathieu Malaterre <malat at debian.org>
+Bug-Debian: http://bugs.debian.org/709123
+Forwarded: no
+
+Index: dcmtk-3.6.1_20140617/dcmdata/data/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20140617.orig/dcmdata/data/CMakeLists.txt	2014-06-18 08:40:12.718534303 +0200
++++ dcmtk-3.6.1_20140617/dcmdata/data/CMakeLists.txt	2014-06-18 08:40:46.010533856 +0200
+@@ -1,2 +1,3 @@
+ # declare installation files
+-INSTALL(FILES dicom.dic acrnema.dic private.dic diconde.dic dcm2xml.dtd dumppat.txt SC.dump VLP.dump DESTINATION ${DCMTK_INSTALL_DATDIR} COMPONENT data)
++INSTALL(FILES dcm2xml.dtd dumppat.txt SC.dump VLP.dump DESTINATION ${DCMTK_INSTALL_DATDIR} COMPONENT data)
++INSTALL(FILES dicom.dic acrnema.dic private.dic diconde.dic DESTINATION ${DCMTK_INSTALL_DATDIC} COMPONENT data)

Added: trunk/packages/dcmtk/trunk/debian/patches/debian_iconv.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/debian_iconv.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/debian_iconv.patch	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,89 @@
+Description: Upstream needs libiconv and libcharset
+ Debian does not ship either of them, so instead use
+ iconv support from eglibc
+ and use libcharset support from gettext
+ We removed the tests since iconv does not work
+Author: Mathieu Malaterre <malat at debian.org>
+Origin: vendor
+Bug-Debian: http://bugs.debian.org/701802
+Forwarded: yes
+
+Index: dcmtk-3.6.1_20131114/CMake/FindICONV.cmake
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/CMake/FindICONV.cmake	2013-11-14 15:08:01.000000000 +0100
++++ dcmtk-3.6.1_20131114/CMake/FindICONV.cmake	2013-11-22 19:56:09.278241875 +0100
+@@ -14,11 +14,12 @@
+ MARK_AS_ADVANCED(LIBICONV_INCLUDE_DIR)
+ 
+ # Look for the library
+-SET(LIBICONV_LIBS iconv)
+-FIND_LIBRARY(LIBICONV_LIBRARY NAMES ${LIBICONV_LIBS})
+-MARK_AS_ADVANCED(LIBICONV_LIBRARY)
++#SET(LIBICONV_LIBS iconv)
++#FIND_LIBRARY(LIBICONV_LIBRARY NAMES ${LIBICONV_LIBS})
++#MARK_AS_ADVANCED(LIBICONV_LIBRARY)
+ 
+-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBICONV REQUIRED_VARS LIBICONV_LIBRARY LIBICONV_INCLUDE_DIR)
++#FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBICONV REQUIRED_VARS LIBICONV_LIBRARY LIBICONV_INCLUDE_DIR)
++SET(LIBICONV_FOUND TRUE)
+ 
+ # Copy the result to output variables
+ IF(LIBICONV_FOUND)
+Index: dcmtk-3.6.1_20131114/CMake/FindCharset.cmake
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/CMake/FindCharset.cmake	2013-11-14 15:08:01.000000000 +0100
++++ dcmtk-3.6.1_20131114/CMake/FindCharset.cmake	2013-11-22 19:56:09.278241875 +0100
+@@ -7,10 +7,14 @@
+ INCLUDE(FindPackageHandleStandardArgs)
+ 
+ # Look for the header file
+-FIND_PATH(LIBCHARSET_INCLUDE_DIR NAMES localcharset.h)
++FIND_PATH(LIBCHARSET_INCLUDE_DIR localcharset.h
++/usr/share/gettext/intl/
++)
+ MARK_AS_ADVANCED(LIBCHARSET_INCLUDE_DIR)
+ 
+-SET(LIBCHARSET_LIBS charset)
++SET(LIBCHARSET_LIBS 
++gettextlib
++)
+ FIND_LIBRARY(LIBCHARSET_LIBRARY NAMES ${LIBCHARSET_LIBS})
+ MARK_AS_ADVANCED(LIBCHARSET_LIBRARY)
+ 
+Index: dcmtk-3.6.1_20131114/ofstd/libsrc/ofchrenc.cc
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/ofstd/libsrc/ofchrenc.cc	2013-11-14 15:08:01.000000000 +0100
++++ dcmtk-3.6.1_20131114/ofstd/libsrc/ofchrenc.cc	2013-11-22 19:56:09.278241875 +0100
+@@ -28,6 +28,9 @@
+ #ifdef WITH_LIBICONV
+ #include <iconv.h>
+ #include <localcharset.h>
++// The following #define is important this way it turns on/off iconv support in DCMTK
++// debian/iconv.h does not define this variable
++//#define _LIBICONV_VERSION 0x010E
+ #endif
+ 
+ BEGIN_EXTERN_C
+@@ -469,6 +472,7 @@
+     OFString versionStr = "LIBICONV, Version ";
+     char buf[10];
+     // extract major and minor version number
++    int _libiconv_version = 0;
+     sprintf(buf, "%i.%i", (_libiconv_version >> 8), (_libiconv_version & 0xff));
+     versionStr.append(buf);
+     return versionStr;
+Index: dcmtk-3.6.1_20131114/dcmdata/libsrc/dcspchrs.cc
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmdata/libsrc/dcspchrs.cc	2013-11-14 15:08:01.000000000 +0100
++++ dcmtk-3.6.1_20131114/dcmdata/libsrc/dcspchrs.cc	2013-11-22 19:56:09.278241875 +0100
+@@ -710,8 +710,9 @@
+ 
+ OFBool DcmSpecificCharacterSet::isConversionLibraryAvailable()
+ {
++  return OFFalse;
+     // just call the appropriate function from the underlying class
+-    return OFCharacterEncoding::isLibraryAvailable();
++//    return OFCharacterEncoding::isLibraryAvailable();
+ }
+ 
+ 

Added: trunk/packages/dcmtk/trunk/debian/patches/ofstd_markup_6.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/ofstd_markup_6.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/ofstd_markup_6.patch	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,24 @@
+From: Joerg Riesmeier <dicom at jriesmeier.com>
+Date: Tue, 26 Nov 2013 17:57:46 +0000 (+0100)
+Subject: Fixed issue with test "ofstd_markup_6" (Win32).
+X-Git-Url: http://git.dcmtk.org/web?p=dcmtk.git;a=commitdiff_plain;h=94ae6b50c738e64d8cefa8e07a10fc8ddd75418f
+
+Fixed issue with test "ofstd_markup_6" (Win32).
+
+Fixed issue with test "ofstd_markup_6" not running successfully on Windows
+systems (due to an incorrect length of the input string value).
+---
+
+Index: dcmtk-3.6.1~20131114/ofstd/tests/tmarkup.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/ofstd/tests/tmarkup.cc	2013-12-10 14:55:22.278290390 +0100
++++ dcmtk-3.6.1~20131114/ofstd/tests/tmarkup.cc	2013-12-10 14:56:31.698289462 +0100
+@@ -114,7 +114,7 @@
+ OFTEST(ofstd_markup_6)
+ {
+     OFString resultStr;
+-    const size_t sourceLen = 37;
++    const size_t sourceLen = 34;
+     // XML: source string contains a NULL byte!
+     const OFString sourceStr(("This is a test\0, with a NULL byte."), sourceLen);
+     const OFString markupStr = "This is a test, with a NULL byte.";

Added: trunk/packages/dcmtk/trunk/debian/patches/removemd5.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/removemd5.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/removemd5.patch	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,15 @@
+Description: Remove md5 files. They only serves as internal bookeeping mecanism
+ for doxygen
+Author: Mathieu Malaterre <malat at debian.org>
+
+--- dcmtk-3.6.1~20140617.orig/doxygen/CMakeLists.txt
++++ dcmtk-3.6.1~20140617/doxygen/CMakeLists.txt
+@@ -40,7 +40,7 @@ IF(DCMTK_WITH_DOXYGEN)
+   ENDIF(NOT WIN32)
+ 
+   # install html docs and manpages
+-  INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/htmldocs/ DESTINATION ${DCMTK_INSTALL_HTMDIR} COMPONENT html PATTERN "CVS" EXCLUDE)
++  INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/htmldocs/ DESTINATION ${DCMTK_INSTALL_HTMDIR} COMPONENT html PATTERN "*.md5" EXCLUDE)
+   IF(DCMTK_GENERATE_DOXYGEN_TAGFILE)
+     INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DOXYGEN_TAGFILE} DESTINATION ${DCMTK_INSTALL_DOCDIR} COMPONENT html OPTIONAL)
+   ENDIF(DCMTK_GENERATE_DOXYGEN_TAGFILE)

Added: trunk/packages/dcmtk/trunk/debian/patches/sparc_align.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/sparc_align.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/sparc_align.patch	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,18 @@
+Description: Fix a SIGSEGV on sparc due to alignement issue
+Author: Jan Schlamelcher <dicom at offis.de>
+Origin: upstream
+Reviewed-By: Mathieu Malaterre <malat at debian.org>
+
+--- dcmtk-3.6.1~20140617.orig/ofstd/include/dcmtk/ofstd/ofoption.h
++++ dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofoption.h
+@@ -770,8 +770,8 @@ private:
+     // optimize alignment and so on. Mutable, since the content
+     // itself can be modified even if it cant be (re-)assigned.
+     void* content() const { return m_Content; }
+-    Uint8& state() const { return m_Content[sizeof(T)]; }
+-    mutable Uint8 m_Content[sizeof(T)+1];
++    Uint64& state() const { return m_Content[sizeof(T)]; }
++    mutable Uint64 m_Content[sizeof(T)+1];
+ #endif // NOT DOXYGEN
+ };
+ 

Added: trunk/packages/dcmtk/trunk/debian/patches/spelling.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/spelling.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/spelling.patch	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,815 @@
+Description: spelling error reported by lintian
+Author: Mathieu Malaterre <malat at debian.org>
+Bug-Debian: http://bugs.debian.org/730635
+
+Index: dcmtk-3.6.1~20131114/dcmimage/docs/dcmquant.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimage/docs/dcmquant.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmimage/docs/dcmquant.man	2013-11-27 15:36:37.000000000 +0100
+@@ -258,7 +258,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmimage/docs/dcmscale.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimage/docs/dcmscale.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmimage/docs/dcmscale.man	2013-11-27 15:36:37.000000000 +0100
+@@ -243,7 +243,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmimage/docs/dcm2pnm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimage/docs/dcm2pnm.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmimage/docs/dcm2pnm.man	2013-11-27 15:36:37.000000000 +0100
+@@ -464,7 +464,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmsign/docs/dcmsign.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsign/docs/dcmsign.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsign/docs/dcmsign.man	2013-11-27 15:36:37.000000000 +0100
+@@ -224,7 +224,7 @@
+ standard.
+ 
+ Private Keys are expected in PEM or DER encoding. PEM is recommended (and
+-default) because this allows to keep private keys in encrypted form. Command
++default) because this allows one to keep private keys in encrypted form. Command
+ line options control the behaviour of \b dcmsign when an encrypted PEM key is
+ opened (see above).  In general it is not recommended to specify the encryption
+ password in the command line because the command line may be visible to other
+@@ -306,7 +306,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/getscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/getscu.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/getscu.man	2013-11-27 15:36:37.000000000 +0100
+@@ -505,7 +505,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/dcmsend.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/dcmsend.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/dcmsend.man	2013-11-27 15:36:37.000000000 +0100
+@@ -345,7 +345,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/dcmrecv.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/dcmrecv.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/dcmrecv.man	2013-11-27 15:36:37.000000000 +0100
+@@ -292,7 +292,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/storescp.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/storescp.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/storescp.man	2013-11-27 15:36:37.000000000 +0100
+@@ -459,7 +459,7 @@
+ filenames created by \e --rename-on-eostudy to maintain the length of 8
+ characters.
+ 
+-Option \e --exec-on-reception allows to execute a certain command line after
++Option \e --exec-on-reception allows one to execute a certain command line after
+ having received and processed one DICOM object (through a C-STORE-RQ message).
+ The command line to be executed is passed to this option as a parameter.  The
+ specified command line may contain a number of placeholders which will be
+@@ -479,7 +479,7 @@
+ execution of \b storescp will not be held back.  This behavior can be influenced
+ with the \e --exec-sync option.
+ 
+-Option \e --exec-on-eostudy allows to execute a certain command line when all
++Option \e --exec-on-eostudy allows one to execute a certain command line when all
+ DICOM objects that belong to one study have been received by \b storescp.
+ The same placeholders as with \e --exec-on-reception may be used, except for
+ '\#f', which is not supported.  A study is considered complete by \b storescp
+@@ -794,7 +794,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/termscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/termscu.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/termscu.man	2013-11-27 15:36:37.000000000 +0100
+@@ -121,7 +121,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/echoscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/echoscu.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/echoscu.man	2013-11-27 15:36:37.000000000 +0100
+@@ -220,7 +220,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/storescu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/storescu.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/storescu.man	2013-11-27 15:36:37.000000000 +0100
+@@ -491,7 +491,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/findscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/findscu.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/findscu.man	2013-11-27 15:36:37.000000000 +0100
+@@ -367,7 +367,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/movescu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/movescu.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/movescu.man	2013-11-27 15:36:37.000000000 +0100
+@@ -656,7 +656,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmjpls/docs/dcmcjpls.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpls/docs/dcmcjpls.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpls/docs/dcmcjpls.man	2013-11-27 15:36:37.000000000 +0100
+@@ -288,7 +288,7 @@
+ 
+ The user is responsible for making sure that the compressed images he creates
+ are compliant with the DICOM standard.  If in question, the \b dcmcjpls utility
+-allows to convert an image to secondary capture - this SOP class does not pose
++allows one to convert an image to secondary capture - this SOP class does not pose
+ restrictions as the ones mentioned above.
+ 
+ \section transfer_syntaxes TRANSFER SYNTAXES
+@@ -350,7 +350,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmjpls/docs/dcmdjpls.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpls/docs/dcmdjpls.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpls/docs/dcmdjpls.man	2013-11-27 15:36:37.000000000 +0100
+@@ -69,7 +69,7 @@
+   -f   --read-dataset
+          read data set without file meta information
+ 
+-  # This option allows to decompress JPEG-LS compressed DICOM objects that have
++  # This option allows one to decompress JPEG-LS compressed DICOM objects that have
+   # been stored as dataset without meta-header. Such a thing should not exist
+   # since the transfer syntax cannot be reliably determined without meta-header,
+   # but unfortunately it does.
+@@ -249,7 +249,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmjpls/docs/dcml2pnm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpls/docs/dcml2pnm.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpls/docs/dcml2pnm.man	2013-11-27 15:36:37.000000000 +0100
+@@ -465,7 +465,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmsr/docs/dsrdump.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsr/docs/dsrdump.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsr/docs/dsrdump.man	2013-11-27 15:36:37.000000000 +0100
+@@ -249,7 +249,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmsr/docs/xml2dsr.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsr/docs/xml2dsr.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsr/docs/xml2dsr.man	2013-11-27 15:36:37.000000000 +0100
+@@ -271,7 +271,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmsr/docs/dsr2html.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsr/docs/dsr2html.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsr/docs/dsr2html.man	2013-11-27 15:36:37.000000000 +0100
+@@ -307,7 +307,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmsr/docs/dsr2xml.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsr/docs/dsr2xml.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsr/docs/dsr2xml.man	2013-11-27 15:36:37.000000000 +0100
+@@ -263,7 +263,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmcrle.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmcrle.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmcrle.man	2013-11-27 15:36:37.000000000 +0100
+@@ -221,7 +221,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmdrle.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmdrle.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmdrle.man	2013-11-27 15:36:37.000000000 +0100
+@@ -70,7 +70,7 @@
+   -f   --read-dataset
+          read data set without file meta information
+ 
+-  # This option allows to decompress RLE compressed DICOM objects that have
++  # This option allows one to decompress RLE compressed DICOM objects that have
+   # been stored as dataset without meta-header. Such a thing should not exist
+   # since the transfer syntax cannot be reliably determined without meta-header,
+   # but unfortunately it does.
+@@ -94,7 +94,7 @@
+   +br  --byte-order-reverse
+          least significant byte first
+ 
+-  # This option allows to decompress RLE compressed DICOM files in which the
++  # This option allows one to decompress RLE compressed DICOM files in which the
+   # order of byte segments is encoded in incorrect order. This only affects
+   # images with more than one byte per sample.
+ \endverbatim
+@@ -221,7 +221,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmodify.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmodify.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmodify.man	2013-11-27 15:36:37.000000000 +0100
+@@ -14,7 +14,7 @@
+ 
+ \section description DESCRIPTION
+ 
+-\b dcmodify is a tool that allows to modify, insert and delete tags and items
++\b dcmodify is a tool that allows one to modify, insert and delete tags and items
+ in DICOM files.  Sequences and tags with a value multiplicity > 1 are also
+ supported.  Metaheader information and the tag's VR can not be modified
+ directly by \b dcmodify at this time.  In addition to tag modifications,
+@@ -560,7 +560,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/pdf2dcm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/pdf2dcm.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/pdf2dcm.man	2013-11-27 15:36:37.000000000 +0100
+@@ -149,7 +149,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dump2dcm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dump2dcm.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dump2dcm.man	2013-11-27 15:36:37.000000000 +0100
+@@ -286,7 +286,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/xml2dcm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/xml2dcm.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/xml2dcm.man	2013-11-27 15:36:37.000000000 +0100
+@@ -308,7 +308,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcm2xml.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcm2xml.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcm2xml.man	2013-11-27 15:36:37.000000000 +0100
+@@ -351,7 +351,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmconv.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmconv.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmconv.man	2013-11-27 15:36:37.000000000 +0100
+@@ -332,7 +332,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmgpdir.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmgpdir.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmgpdir.man	2013-11-27 15:36:37.000000000 +0100
+@@ -204,7 +204,7 @@
+ A \e DICOMDIR file will only be constructed if all files have passed initial
+ tests.
+ 
+-The \b dcmgpdir utility also allows to append new entries to and to update
++The \b dcmgpdir utility also allows one to append new entries to and to update
+ existing entries in a \e DICOMDIR file.  Using option \e +A new entries are
+ only appended to the DICOMDIR, i.e. existing records like the ones for PATIENT
+ information are not updated.  Using option \e +U also existing records are
+@@ -264,7 +264,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmdump.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmdump.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmdump.man	2013-11-27 15:36:37.000000000 +0100
+@@ -366,7 +366,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcm2pdf.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcm2pdf.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcm2pdf.man	2013-11-27 15:36:37.000000000 +0100
+@@ -180,7 +180,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/img2dcm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/img2dcm.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/img2dcm.man	2013-11-27 15:36:37.000000000 +0100
+@@ -458,7 +458,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmimgle/docs/dcmdspfn.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimgle/docs/dcmdspfn.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmimgle/docs/dcmdspfn.man	2013-11-27 15:36:37.000000000 +0100
+@@ -179,7 +179,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmwlm/docs/wlmscpfs.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmwlm/docs/wlmscpfs.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmwlm/docs/wlmscpfs.man	2013-11-27 15:36:37.000000000 +0100
+@@ -417,7 +417,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqrti.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/docs/dcmqrti.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqrti.man	2013-11-27 15:36:37.000000000 +0100
+@@ -411,7 +411,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqrscp.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/docs/dcmqrscp.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqrscp.man	2013-11-27 15:36:37.000000000 +0100
+@@ -924,7 +924,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqridx.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/docs/dcmqridx.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqridx.man	2013-11-27 15:37:07.000000000 +0100
+@@ -14,7 +14,7 @@
+ 
+ \section description DESCRIPTION
+ 
+-The \b dcmqridx ulility registers DICOM image files in the database index file
++The \b dcmqridx utility registers DICOM image files in the database index file
+ used by the \b dcmqrscp and \b dcmqrti applications.  No image files are copied.
+ \b dcmqridx can also list the contents of the database index file.
+ 
+@@ -105,7 +105,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmrt/docs/drtdump.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmrt/docs/drtdump.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmrt/docs/drtdump.man	2013-11-27 15:36:37.000000000 +0100
+@@ -155,7 +155,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmdjpeg.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpeg/docs/dcmdjpeg.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmdjpeg.man	2013-11-27 15:36:37.000000000 +0100
+@@ -70,7 +70,7 @@
+   -f    --read-dataset
+           read data set without file meta information
+ 
+-  # This option allows to decompress JPEG compressed DICOM objects that
++  # This option allows one to decompress JPEG compressed DICOM objects that
+   # have been stored as dataset without meta-header. Such a thing should
+   # not exist since the transfer syntax cannot be reliably determined,
+   # without meta-header but unfortunately it does.
+@@ -297,7 +297,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmj2pnm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpeg/docs/dcmj2pnm.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmj2pnm.man	2013-11-27 15:36:37.000000000 +0100
+@@ -509,7 +509,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmcjpeg.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpeg/docs/dcmcjpeg.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmcjpeg.man	2013-11-27 15:36:37.000000000 +0100
+@@ -546,7 +546,7 @@
+ 
+ The user is responsible for making sure that the compressed images he creates
+ are compliant with the DICOM standard.  If in question, the \b dcmcjpeg utility
+-allows to convert an image to secondary capture - this SOP class does not pose
++allows one to convert an image to secondary capture - this SOP class does not pose
+ restrictions as the ones mentioned above.
+ 
+ With version DCMTK 3.5.4 a new encoder for truely lossless JPEG compression was
+@@ -642,7 +642,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmmkdir.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpeg/docs/dcmmkdir.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmmkdir.man	2013-11-27 15:36:37.000000000 +0100
+@@ -362,7 +362,7 @@
+ A \e DICOMDIR file will only be constructed if all files have passed initial
+ tests.
+ 
+-The \b dcmmkdir utility also allows to append new entries to and to update
++The \b dcmmkdir utility also allows one to append new entries to and to update
+ existing entries in a \e DICOMDIR file.  Using option \e +A new entries are
+ only appended to the DICOMDIR, i.e. existing records like the ones for PATIENT
+ information are not updated.  Using option \e +U also existing records are
+@@ -427,7 +427,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsrcv.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpsrcv.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsrcv.man	2013-11-27 15:36:37.000000000 +0100
+@@ -100,7 +100,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpschk.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpschk.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpschk.man	2013-11-27 15:36:37.000000000 +0100
+@@ -110,7 +110,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmprscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmprscu.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmprscu.man	2013-11-27 15:36:37.000000000 +0100
+@@ -171,7 +171,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpssnd.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpssnd.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpssnd.man	2013-11-27 15:36:37.000000000 +0100
+@@ -108,7 +108,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsprt.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpsprt.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsprt.man	2013-11-27 15:36:37.000000000 +0100
+@@ -282,7 +282,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmmklut.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmmklut.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmmklut.man	2013-11-27 15:36:37.000000000 +0100
+@@ -14,7 +14,7 @@
+ 
+ \section description DESCRIPTION
+ 
+-The \b dcmmklut utility allows to create a variety of DICOM Modality,
++The \b dcmmklut utility allows one to create a variety of DICOM Modality,
+ Presentation and VOI look-up tables (LUT) and is intended for the creation
+ of test images.  The utility is able to read an existing DICOM image file,
+ create a look up table according to the command line options, and write
+@@ -222,7 +222,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmprscp.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmprscp.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmprscp.man	2013-11-27 15:36:37.000000000 +0100
+@@ -111,7 +111,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmp2pgm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmp2pgm.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmp2pgm.man	2013-11-27 15:36:37.000000000 +0100
+@@ -128,7 +128,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmmkcrv.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmmkcrv.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmmkcrv.man	2013-11-27 15:36:37.000000000 +0100
+@@ -14,7 +14,7 @@
+ 
+ \section description DESCRIPTION
+ 
+-The \b dcmmkcrv utility allows to create DICOM images containing curve data.
++The \b dcmmkcrv utility allows one to create DICOM images containing curve data.
+ Since curve data is hardly used by vendors today, this is intended as a
+ means to test implementations that can read curve data.  The utility reads an
+ existing DICOM image and a text file containing the curve data in textual
+@@ -156,7 +156,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsmk.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpsmk.man	2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsmk.man	2013-11-27 15:36:37.000000000 +0100
+@@ -223,7 +223,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation.  Please note that a command
+ file cannot contain another command file.  This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+ 

Added: trunk/packages/dcmtk/trunk/debian/patches/system_charls.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/system_charls.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/system_charls.patch	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,92 @@
+Description: Remove convenient copy of CharLS
+Author: Mathieu Malaterre <malat at debian.org>
+Bug-Debian: http://bugs.debian.org/705923
+Forwarded: no
+
+Index: dcmtk-3.6.1_20131114/dcmjpls/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/CMakeLists.txt	2013-11-22 19:57:00.498241184 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/CMakeLists.txt	2013-11-22 19:59:31.318239164 +0100
+@@ -2,6 +2,6 @@
+ PROJECT(dcmjpls)
+ 
+ # recurse into subdirectories
+-FOREACH(SUBDIR libsrc libcharls apps include)
++FOREACH(SUBDIR libsrc apps include)
+   ADD_SUBDIRECTORY(${SUBDIR})
+ ENDFOREACH(SUBDIR)
+Index: dcmtk-3.6.1_20131114/dcmjpls/libsrc/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libsrc/CMakeLists.txt	2013-11-22 19:57:00.526241188 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libsrc/CMakeLists.txt	2013-11-22 19:59:31.318239164 +0100
+@@ -1,7 +1,7 @@
+ # declare additional include directories
+-INCLUDE_DIRECTORIES(${dcmjpls_SOURCE_DIR}/include ${ofstd_SOURCE_DIR}/include ${oflog_SOURCE_DIR}/include ${dcmdata_SOURCE_DIR}/include ${dcmimgle_SOURCE_DIR}/include ${dcmimage_SOURCE_DIR}/include ${dcmjpls_SOURCE_DIR}/libcharls ${ZLIB_INCDIR})
++INCLUDE_DIRECTORIES(${dcmjpls_SOURCE_DIR}/include ${ofstd_SOURCE_DIR}/include ${oflog_SOURCE_DIR}/include ${dcmdata_SOURCE_DIR}/include ${dcmimgle_SOURCE_DIR}/include ${dcmimage_SOURCE_DIR}/include ${ZLIB_INCDIR})
+ 
+ # 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)
+Index: dcmtk-3.6.1_20131114/dcmjpls/libsrc/djerror.h
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libsrc/djerror.h	2013-11-22 19:57:00.538241184 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libsrc/djerror.h	2013-11-22 19:59:31.318239164 +0100
+@@ -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
+  */
+Index: dcmtk-3.6.1_20131114/dcmjpls/libsrc/djcodecd.cc
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libsrc/djcodecd.cc	2013-11-22 19:57:00.522241190 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libsrc/djcodecd.cc	2013-11-22 19:59:31.318239164 +0100
+@@ -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
+ {
+Index: dcmtk-3.6.1_20131114/dcmjpls/libsrc/djcodece.cc
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libsrc/djcodece.cc	2013-11-22 19:57:00.514241190 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libsrc/djcodece.cc	2013-11-22 19:59:31.318239164 +0100
+@@ -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
+Index: dcmtk-3.6.1_20131114/dcmjpls/apps/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/apps/CMakeLists.txt	2013-11-22 20:01:11.434237827 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/apps/CMakeLists.txt	2013-11-22 20:01:30.242237573 +0100
+@@ -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(PROGRAM)
+Index: dcmtk-3.6.1_20131114/dcmjpls/libcharls/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libcharls/CMakeLists.txt	2013-11-22 20:01:36.862237482 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libcharls/CMakeLists.txt	2013-11-22 20:01:42.314237411 +0100
+@@ -1,5 +1,5 @@
+ # declare additional include directories
+-INCLUDE_DIRECTORIES(${dcmjpls_SOURCE_DIR}/libcharls ${ofstd_SOURCE_DIR}/include)
++INCLUDE_DIRECTORIES(${ofstd_SOURCE_DIR}/include)
+ 
+ # create library from source files
+ DCMTK_ADD_LIBRARY(charls header intrface jpegls)

Added: trunk/packages/dcmtk/trunk/debian/patches/warn_unused_result.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/warn_unused_result.patch	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/warn_unused_result.patch	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,263 @@
+Description: Fix all issues with -Wunused-result
+ Eg:
+ dcmqrcnf.cc:294:43: warning: ignoring return value of 'char* fgets(char*, int,
+ FILE*)', declared with attribute warn_unused_result [-Wunused-result]
+Author: Mathieu Malaterre <malat at debian.org>
+Bug-Debian: http://bugs.debian.org/731434
+Forwarded: no
+
+Index: dcmtk-3.6.1~20131114/dcmimage/libsrc/dicoimg.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimage/libsrc/dicoimg.cc	2013-12-10 14:55:18.658290442 +0100
++++ dcmtk-3.6.1~20131114/dcmimage/libsrc/dicoimg.cc	2013-12-10 14:56:36.194289404 +0100
+@@ -680,8 +680,9 @@
+             if ((OutputData != NULL) && (OutputData->getData() != NULL))
+             {
+                 fprintf(stream, "P6\n%u %u\n%lu\n", Columns, Rows, DicomImageClass::maxval(bits));
+-                fwrite(OutputData->getData(), OFstatic_cast(size_t, OutputData->getCount()), OutputData->getItemSize(), stream);
+-                return 1;
++                size_t tobewritten = OutputData->getItemSize();
++                size_t written = fwrite(OutputData->getData(), OFstatic_cast(size_t, OutputData->getCount()), OutputData->getItemSize(), stream);
++                if( written == tobewritten) return 1;
+             }
+         }
+     }
+Index: dcmtk-3.6.1~20131114/dcmsign/libsrc/simaccon.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsign/libsrc/simaccon.cc	2013-12-10 14:55:18.634290445 +0100
++++ dcmtk-3.6.1~20131114/dcmsign/libsrc/simaccon.cc	2013-12-10 14:56:36.194289404 +0100
+@@ -61,8 +61,15 @@
+   stream.flushBuffer(bufptr, bufLen);
+   if (bufLen > 0)
+   {
+-    if (dumpFile) fwrite(bufptr, 1, (size_t)bufLen, dumpFile);
+-    result = mac.digest((unsigned char *)bufptr, (unsigned long)bufLen);
++    size_t written = (size_t)bufLen;
++    if (dumpFile)
++      {
++      written = fwrite(bufptr, 1, (size_t)bufLen, dumpFile);
++      }
++    if( written == (size_t)bufLen )
++      result = mac.digest((unsigned char *)bufptr, (unsigned long)bufLen);
++    else
++      result = EC_DirectoryNotWritable;
+   }
+   return result;
+ }
+Index: dcmtk-3.6.1~20131114/dcmdata/libsrc/dcvrobow.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/libsrc/dcvrobow.cc	2013-12-10 14:55:18.686290438 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/libsrc/dcvrobow.cc	2013-12-10 14:56:36.198289404 +0100
+@@ -214,13 +214,21 @@
+                     {
+                         swapIfNecessary(EBO_LittleEndian, gLocalByteOrder, data, getLengthField(), sizeof(Uint16));
+                         setByteOrder(EBO_LittleEndian);
+-                        fwrite(data, sizeof(Uint16), OFstatic_cast(size_t, getLengthField() / sizeof(Uint16)), file);
++                        size_t tobewritten = OFstatic_cast(size_t, getLengthField() / sizeof(Uint16));
++                        size_t written = fwrite(data, sizeof(Uint16), tobewritten, file);
++                        if( written != tobewritten )
++                          DCMDATA_WARN("DcmOtherByteOtherWord: Some bytes were not written: " << (tobewritten - written) );
+                     }
+                 } else {
+                     Uint8 *data = NULL;
+                     getUint8Array(data);
+                     if (data != NULL)
+-                        fwrite(data, sizeof(Uint8), OFstatic_cast(size_t, getLengthField()), file);
++                      {
++                      size_t tobewritten = OFstatic_cast(size_t, getLengthField());
++                      size_t written = fwrite(data, sizeof(Uint8), tobewritten, file);
++                      if( written != tobewritten )
++                        DCMDATA_WARN("DcmOtherByteOtherWord: Some bytes were not written: " << (tobewritten - written) );
++                      }
+                 }
+                 fclose(file);
+             } else {
+Index: dcmtk-3.6.1~20131114/dcmimgle/libsrc/diimage.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimgle/libsrc/diimage.cc	2013-12-10 14:55:18.694290443 +0100
++++ dcmtk-3.6.1~20131114/dcmimgle/libsrc/diimage.cc	2013-12-10 14:56:36.198289404 +0100
+@@ -809,31 +809,40 @@
+                     swapBytes(OFreinterpret_cast(Uint8 *, palette), 256 * 4 /*byteLength*/, 4 /*valWidth*/);
+             }
+             /* write bitmap file header: do not write the struct because of 32-bit alignment */
+-            fwrite(&fileHeader.bfType, sizeof(fileHeader.bfType), 1, stream);
+-            fwrite(&fileHeader.bfSize, sizeof(fileHeader.bfSize), 1, stream);
+-            fwrite(&fileHeader.bfReserved1, sizeof(fileHeader.bfReserved1), 1, stream);
+-            fwrite(&fileHeader.bfReserved2, sizeof(fileHeader.bfReserved2), 1, stream);
+-            fwrite(&fileHeader.bfOffBits, sizeof(fileHeader.bfOffBits), 1, stream);
++            size_t singleitem; // should always be equal to 1 in the following:
++            singleitem = fwrite(&fileHeader.bfType, sizeof(fileHeader.bfType), 1, stream);
++            singleitem = singleitem && fwrite(&fileHeader.bfSize, sizeof(fileHeader.bfSize), 1, stream);
++            singleitem = singleitem && fwrite(&fileHeader.bfReserved1, sizeof(fileHeader.bfReserved1), 1, stream);
++            singleitem = singleitem && fwrite(&fileHeader.bfReserved2, sizeof(fileHeader.bfReserved2), 1, stream);
++            singleitem = singleitem && fwrite(&fileHeader.bfOffBits, sizeof(fileHeader.bfOffBits), 1, stream);
+             /* write bitmap info header: do not write the struct because of 32-bit alignment  */
+-            fwrite(&infoHeader.biSize, sizeof(infoHeader.biSize), 1, stream);
+-            fwrite(&infoHeader.biWidth, sizeof(infoHeader.biWidth), 1, stream);
+-            fwrite(&infoHeader.biHeight, sizeof(infoHeader.biHeight), 1, stream);
+-            fwrite(&infoHeader.biPlanes, sizeof(infoHeader.biPlanes), 1, stream);
+-            fwrite(&infoHeader.biBitCount, sizeof(infoHeader.biBitCount), 1, stream);
+-            fwrite(&infoHeader.biCompression, sizeof(infoHeader.biCompression), 1, stream);
+-            fwrite(&infoHeader.biSizeImage, sizeof(infoHeader.biSizeImage), 1, stream);
+-            fwrite(&infoHeader.biXPelsPerMeter, sizeof(infoHeader.biXPelsPerMeter), 1, stream);
+-            fwrite(&infoHeader.biYPelsPerMeter, sizeof(infoHeader.biYPelsPerMeter), 1, stream);
+-            fwrite(&infoHeader.biClrUsed, sizeof(infoHeader.biClrUsed), 1, stream);
+-            fwrite(&infoHeader.biClrImportant, sizeof(infoHeader.biClrImportant), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biSize, sizeof(infoHeader.biSize), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biWidth, sizeof(infoHeader.biWidth), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biHeight, sizeof(infoHeader.biHeight), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biPlanes, sizeof(infoHeader.biPlanes), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biBitCount, sizeof(infoHeader.biBitCount), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biCompression, sizeof(infoHeader.biCompression), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biSizeImage, sizeof(infoHeader.biSizeImage), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biXPelsPerMeter, sizeof(infoHeader.biXPelsPerMeter), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biYPelsPerMeter, sizeof(infoHeader.biYPelsPerMeter), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biClrUsed, sizeof(infoHeader.biClrUsed), 1, stream);
++            singleitem = singleitem && fwrite(&infoHeader.biClrImportant, sizeof(infoHeader.biClrImportant), 1, stream);
+             /* write color palette (if applicable) */
+-            if (palette != NULL)
+-                fwrite(palette, 4, 256, stream);
++            if (singleitem && palette != NULL)
++              {
++              size_t paletteitems = fwrite(palette, 4, 256, stream);
++              if( paletteitems != 256 ) singleitem = 0;
++              }
+             /* write pixel data */
+-            fwrite(data, 1, OFstatic_cast(size_t, bytes), stream);
++            if( singleitem )
++              {
++              size_t pddata = fwrite(data, 1, OFstatic_cast(size_t, bytes), stream);
++              if( pddata != OFstatic_cast(size_t, bytes)) singleitem = 0;
++              }
+             /* delete color palette */
+             delete[] palette;
+-            result = 1;
++            if( singleitem )
++              result = 1;
+         }
+         /* delete pixel data */
+         delete OFstatic_cast(char *, data);     // type cast necessary to avoid compiler warnings using gcc >2.95
+Index: dcmtk-3.6.1~20131114/dcmimgle/libsrc/dimoimg.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimgle/libsrc/dimoimg.cc	2013-12-10 14:55:18.706290444 +0100
++++ dcmtk-3.6.1~20131114/dcmimgle/libsrc/dimoimg.cc	2013-12-10 14:56:36.198289404 +0100
+@@ -2143,9 +2143,10 @@
+                 fprintf(stream, "P6\n%u %u\n255\n", Columns, Rows);
+             else
+                 fprintf(stream, "P5\n%u %u\n%lu\n", Columns, Rows, DicomImageClass::maxval(bits));
+-            fwrite(OutputData->getData(), OFstatic_cast(size_t, OutputData->getCount()), OutputData->getItemSize(), stream);
++            size_t tobewritten = OutputData->getItemSize();
++            size_t written = fwrite(OutputData->getData(), OFstatic_cast(size_t, OutputData->getCount()), OutputData->getItemSize(), stream);
+             deleteOutputData();
+-            return 1;
++            if( written == tobewritten ) return 1;
+         }
+     }
+     return 0;
+Index: dcmtk-3.6.1~20131114/dcmqrdb/libsrc/dcmqrcnf.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/libsrc/dcmqrcnf.cc	2013-12-10 14:55:18.674290443 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/libsrc/dcmqrcnf.cc	2013-12-10 14:56:36.198289404 +0100
+@@ -291,7 +291,12 @@
+    char *c;
+ 
+    while (!feof(cnffp)) {
+-      fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++      char *ret = fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++      if( !ret )
++        {
++        error = 1;
++        break;
++        }
+       lineno++;
+       if (feof(cnffp)) continue;
+       if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13)
+@@ -413,7 +418,12 @@
+    DcmQueryRetrieveConfigHostEntry *helpentry;
+ 
+    while (!feof(cnffp)) {
+-      fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++      char *ret = fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++      if( !ret )
++        {
++        error = 1;
++        break;
++        }
+       (*lineno)++;
+       if (feof(cnffp)) continue;
+       if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13)
+@@ -469,7 +479,12 @@
+    DcmQueryRetrieveConfigHostEntry *helpentry;
+ 
+    while (!feof(cnffp)) {
+-      fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++      char * ret = fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++      if( !ret )
++        {
++        error = 1;
++        break;
++        }
+       (*lineno)++;
+       if (feof(cnffp)) continue;
+       if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13)
+@@ -525,7 +540,12 @@
+    DcmQueryRetrieveConfigAEEntry *helpentry;
+ 
+    while (!feof(cnffp)) {
+-      fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++      char * ret = fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++      if( !ret )
++        {
++        error = 1;
++        break;
++        }
+       (*lineno)++;
+       if (feof(cnffp)) continue;
+       if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13)
+Index: dcmtk-3.6.1~20131114/dcmqrdb/libsrc/dcmqrdbi.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/libsrc/dcmqrdbi.cc	2013-12-10 14:55:18.666290445 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/libsrc/dcmqrdbi.cc	2013-12-10 14:56:36.198289404 +0100
+@@ -3416,7 +3416,8 @@
+ 
+       record.hstat = DVIF_objectIsNotNew;
+       DB_lseek(handle_->pidx, OFstatic_cast(long, SIZEOF_STUDYDESC + idx * SIZEOF_IDXRECORD), SEEK_SET);
+-      write(handle_->pidx, OFreinterpret_cast(char *, &record), SIZEOF_IDXRECORD);
++      ssize_t written = write(handle_->pidx, OFreinterpret_cast(char *, &record), SIZEOF_IDXRECORD);
++      if( written != SIZEOF_IDXRECORD ) result = EC_DirectoryNotWritable;
+       DB_lseek(handle_->pidx, 0L, SEEK_SET);
+       DB_unlock();
+     }
+Index: dcmtk-3.6.1~20131114/dcmpstat/apps/dcmp2pgm.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/apps/dcmp2pgm.cc	2013-12-10 14:55:18.646290441 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/apps/dcmp2pgm.cc	2013-12-10 14:56:36.198289404 +0100
+@@ -363,9 +363,12 @@
+         if (ofile)
+         {
+            fprintf(ofile, "P5\n%d %d 255\n", overlayWidth, overlayHeight);
+-           fwrite(overlayData, overlayWidth, overlayHeight, ofile);
++           size_t written = fwrite(overlayData, overlayWidth, overlayHeight, ofile);
+            fclose(ofile);
+-           oss << " - written." << OFendl;
++           if( written == overlayHeight )
++             oss << " - written." << OFendl;
++           else
++             oss << " -write error-" << OFendl;
+         } else oss << " -write error-" << OFendl;
+       } else {
+         oss << "        unable to access overlay data!" << OFendl;
+@@ -546,8 +549,12 @@
+                 {
+                     OFLOG_DEBUG(dcmp2pgmLogger, "writing PGM file: " << opt_pgmName);
+                     fprintf(outfile, "P5\n%ld %ld 255\n", width, height);
+-                    fwrite(pixelData, (size_t)width, (size_t)height, outfile);
++                    size_t written = fwrite(pixelData, (size_t)width, (size_t)height, outfile);
+                     fclose(outfile);
++                    if( written != (size_t)height ) {
++                      OFLOG_FATAL(dcmp2pgmLogger, "Can't create output data.");
++                      return 10;
++                    }
+                 } else {
+                     OFLOG_FATAL(dcmp2pgmLogger, "Can't create output file.");
+                     return 10;

Added: trunk/packages/dcmtk/trunk/debian/source.lintian-overrides
===================================================================
--- trunk/packages/dcmtk/trunk/debian/source.lintian-overrides	                        (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/source.lintian-overrides	2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,3 @@
+# upstream provides two alternates build system: autotools and cmake
+# since we pick cmake, no need to take care of this check:
+dcmtk: outdated-autotools-helper-file




More information about the debian-med-commit mailing list