Commit db08974e88509bd718d8f32dea9a94b1784b27e2

Authored by Jay Berkenbilt
1 parent bc9c80db

Release notes for 10.0.2

ChangeLog
... ... @@ -112,6 +112,12 @@
112 112 newer version of gcc and MSVC toolchains. Add several cosmetic
113 113 improvements to build output in CI.
114 114  
  115 + * Added LL_FMT to config.h.in. This is populated automatically by
  116 + autoconf, but if build with your own build system, you may need to
  117 + define it as whatever the format string needed by printf for long
  118 + long is. Usually this is "%lld", but it can be "%I64d" for some
  119 + older Windows-based compilers.
  120 +
115 121 2020-04-29 Jay Berkenbilt <ejb@ql.org>
116 122  
117 123 * Bug fix: qpdf --check was writing errors and warnings reported
... ...
manual/qpdf-manual.xml
... ... @@ -5,8 +5,8 @@
5 5 <!ENTITY mdash "&#x2014;">
6 6 <!ENTITY ndash "&#x2013;">
7 7 <!ENTITY nbsp "&#xA0;">
8   -<!ENTITY swversion "10.0.1">
9   -<!ENTITY lastreleased "April 9, 2020">
  8 +<!ENTITY swversion "10.0.2">
  9 +<!ENTITY lastreleased "October 27, 2020">
10 10 ]>
11 11 <book>
12 12 <bookinfo>
... ... @@ -4806,6 +4806,193 @@ print &quot;\n&quot;;
4806 4806 </varlistentry>
4807 4807 -->
4808 4808 <varlistentry>
  4809 + <term>10.0.2: October 27, 2020</term>
  4810 + <listitem>
  4811 + <itemizedlist>
  4812 + <listitem>
  4813 + <para>
  4814 + Bug Fixes
  4815 + </para>
  4816 + <itemizedlist>
  4817 + <listitem>
  4818 + <para>
  4819 + When concatenating content streams, as with
  4820 + <option>--coalesce-contents</option>, there were cases in
  4821 + which qpdf would merge two lexical tokens together, creating
  4822 + invalid results. A newline is now inserted between
  4823 + merged content streams if one is not already present.
  4824 + </para>
  4825 + </listitem>
  4826 + <listitem>
  4827 + <para>
  4828 + Fix an internal error that could occur when copying foreign
  4829 + streams whose stream data had been replaced using a stream
  4830 + data provider if those streams had indirect filters or
  4831 + decode parameters. This is a rare corner case.
  4832 + </para>
  4833 + </listitem>
  4834 + <listitem>
  4835 + <para>
  4836 + Ensure that the caller's locale settings do not change the
  4837 + results of numeric conversions performed internally by the
  4838 + qpdf library. Note that the problem here could only be
  4839 + caused when the qpdf library was used programmatically.
  4840 + Using the qpdf CLI already ignored the user's locale for
  4841 + numeric conversion.
  4842 + </para>
  4843 + </listitem>
  4844 + <listitem>
  4845 + <para>
  4846 + Fix several instances in which warnings were not suppressed
  4847 + in spite of <option>--no-warn</option> and/or errors or
  4848 + warnings were written to standard output rather than
  4849 + standard error.
  4850 + </para>
  4851 + </listitem>
  4852 + <listitem>
  4853 + <para>
  4854 + Fixed a memory leak that could occur under specific
  4855 + circumstances when
  4856 + <option>--object-streams=generate</option> was used.
  4857 + </para>
  4858 + </listitem>
  4859 + <listitem>
  4860 + <para>
  4861 + Fix various integer overflows and similar conditions found
  4862 + by the OSS-Fuzz project.
  4863 + </para>
  4864 + </listitem>
  4865 + </itemizedlist>
  4866 + </listitem>
  4867 + <listitem>
  4868 + <para>
  4869 + Enhancements
  4870 + </para>
  4871 + <itemizedlist>
  4872 + <listitem>
  4873 + <para>
  4874 + New option <option>--warning-exit-0</option> causes qpdf to
  4875 + exit with a status of <literal>0</literal> rather than
  4876 + <literal>3</literal> if there are warnings but no errors.
  4877 + Combine with <option>--no-warn</option> to completely ignore
  4878 + warnings.
  4879 + </para>
  4880 + </listitem>
  4881 + <listitem>
  4882 + <para>
  4883 + Performance improvements have been made to
  4884 + <function>QPDF::processMemoryFile</function>.
  4885 + </para>
  4886 + </listitem>
  4887 + <listitem>
  4888 + <para>
  4889 + The OpenSSL crypto provider produces more detailed error
  4890 + messages.
  4891 + </para>
  4892 + </listitem>
  4893 + </itemizedlist>
  4894 + </listitem>
  4895 + <listitem>
  4896 + <para>
  4897 + Build Changes
  4898 + </para>
  4899 + <itemizedlist>
  4900 + <listitem>
  4901 + <para>
  4902 + The option <option>--disable-rpath</option> is now supported
  4903 + by qpdf's <command>./configure</command> script. Some
  4904 + distributions' packaging standards recommended the use of
  4905 + this option.
  4906 + </para>
  4907 + </listitem>
  4908 + <listitem>
  4909 + <para>
  4910 + Selection of a printf format string for <type>long
  4911 + long</type> has been moved from <literal>ifdefs</literal> to
  4912 + an autoconf test. If you are using your own build system,
  4913 + you will need to provide a value for
  4914 + <literal>LL_FMT</literal> in
  4915 + <filename>libqpdf/qpdf/qpdf-config.h</filename>, which would
  4916 + typically be <literal>&quot;%lld&quot;</literal> or, for
  4917 + some Windows compilers, <literal>&quot;%I64d&quot;</literal>.
  4918 + </para>
  4919 + </listitem>
  4920 + <listitem>
  4921 + <para>
  4922 + Several improvements were made to build-time configuration
  4923 + of the OpenSSL crypto provider.
  4924 + </para>
  4925 + </listitem>
  4926 + <listitem>
  4927 + <para>
  4928 + A nearly stand-alone Linux binary zip file is now included
  4929 + with the qpdf release. This is built on an older (but
  4930 + supported) Ubuntu LTS release, but would work on most
  4931 + reasonably recent Linux distributions. It contains only the
  4932 + executables and required shared libraries that would not be
  4933 + present on a minimal system. It can be used for including
  4934 + qpdf in a minimal environment, such as a docker container.
  4935 + The zip file is also known to work as a layer in AWS Lambda.
  4936 + </para>
  4937 + </listitem>
  4938 + <listitem>
  4939 + <para>
  4940 + QPDF's automated build has been migrated from Azure
  4941 + Pipelines to GitHub Actions.
  4942 + </para>
  4943 + </listitem>
  4944 + </itemizedlist>
  4945 + </listitem>
  4946 + <listitem>
  4947 + <para>
  4948 + Windows-specific Changes
  4949 + </para>
  4950 + <itemizedlist>
  4951 + <listitem>
  4952 + <para>
  4953 + The Windows executables distributed with qpdf releases now
  4954 + use the OpenSSL crypto provider by default. The native
  4955 + crypto provider is also compiled in and can be selected at
  4956 + runtime with the <literal>QPDF_CRYPTO_PROVIDER</literal>
  4957 + environment variable.
  4958 + </para>
  4959 + </listitem>
  4960 + <listitem>
  4961 + <para>
  4962 + Improvements have been made to how a cryptographic provider
  4963 + is obtained in the native Windows crypto implementation.
  4964 + However mostly this is shadowed by OpenSSL being used by
  4965 + default.
  4966 + </para>
  4967 + </listitem>
  4968 + </itemizedlist>
  4969 + </listitem>
  4970 + <listitem>
  4971 + <para>
  4972 + Notice of upcoming API change
  4973 + </para>
  4974 + <itemizedlist>
  4975 + <listitem>
  4976 + <para>
  4977 + The method <function>InputSource::unreadCh(unsigned
  4978 + char)</function> is deprecated and will be removed in qpdf
  4979 + 11. It has never worked properly to pass a character to
  4980 + <function>unreadCh</function> other than the most recently
  4981 + read character. If you happen to be deriving a class from
  4982 + <type>InputSource</type>, just implement
  4983 + <function>unreadCh</function> to seek backward by one
  4984 + character if the current position is greater than 0. If you
  4985 + are calling this in your own code, replacing with
  4986 + <literal>seek(-1, SEEK_CUR)</literal> should work in all
  4987 + cases.
  4988 + </para>
  4989 + </listitem>
  4990 + </itemizedlist>
  4991 + </listitem>
  4992 + </itemizedlist>
  4993 + </listitem>
  4994 + </varlistentry>
  4995 + <varlistentry>
4809 4996 <term>10.0.1: April 9, 2020</term>
4810 4997 <listitem>
4811 4998 <itemizedlist>
... ...