Commit db08974e88509bd718d8f32dea9a94b1784b27e2

Authored by Jay Berkenbilt
1 parent bc9c80db

Release notes for 10.0.2

ChangeLog
@@ -112,6 +112,12 @@ @@ -112,6 +112,12 @@
112 newer version of gcc and MSVC toolchains. Add several cosmetic 112 newer version of gcc and MSVC toolchains. Add several cosmetic
113 improvements to build output in CI. 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 2020-04-29 Jay Berkenbilt <ejb@ql.org> 121 2020-04-29 Jay Berkenbilt <ejb@ql.org>
116 122
117 * Bug fix: qpdf --check was writing errors and warnings reported 123 * Bug fix: qpdf --check was writing errors and warnings reported
manual/qpdf-manual.xml
@@ -5,8 +5,8 @@ @@ -5,8 +5,8 @@
5 <!ENTITY mdash "&#x2014;"> 5 <!ENTITY mdash "&#x2014;">
6 <!ENTITY ndash "&#x2013;"> 6 <!ENTITY ndash "&#x2013;">
7 <!ENTITY nbsp "&#xA0;"> 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 <book> 11 <book>
12 <bookinfo> 12 <bookinfo>
@@ -4806,6 +4806,193 @@ print &quot;\n&quot;; @@ -4806,6 +4806,193 @@ print &quot;\n&quot;;
4806 </varlistentry> 4806 </varlistentry>
4807 --> 4807 -->
4808 <varlistentry> 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 <term>10.0.1: April 9, 2020</term> 4996 <term>10.0.1: April 9, 2020</term>
4810 <listitem> 4997 <listitem>
4811 <itemizedlist> 4998 <itemizedlist>