Commit b3c91f64bb79264e6ec2e5b1f5133d9afe3ee2ed

Authored by Jay Berkenbilt
1 parent 4fa7b1eb

Change release notes order

Showing 1 changed file with 116 additions and 109 deletions
manual/qpdf-manual.xml
@@ -4416,111 +4416,32 @@ print "\n"; @@ -4416,111 +4416,32 @@ print "\n";
4416 </listitem> 4416 </listitem>
4417 <listitem> 4417 <listitem>
4418 <para> 4418 <para>
4419 - Bug Fixes  
4420 - </para>  
4421 - <itemizedlist>  
4422 - <listitem>  
4423 - <para>  
4424 - A small handful of memory issues, assertion failures, and  
4425 - unhandled exceptions that could occur on badly mangled input  
4426 - files have been fixed. Most of these problems were found by  
4427 - Google's OSS-Fuzz project.  
4428 - </para>  
4429 - </listitem>  
4430 - <listitem>  
4431 - <para>  
4432 - When <command>qpdf --check</command> or <command>qpdf  
4433 - --check-linearization</command> encounters a file with  
4434 - linearization warnings but not errors, it now properly exits  
4435 - with exit code 3 instead of 2.  
4436 - </para>  
4437 - </listitem>  
4438 - <listitem>  
4439 - <para>  
4440 - The <option>--completion-bash</option> and  
4441 - <option>--completion-zsh</option> options now work properly  
4442 - when qpdf is invoked as an AppImage.  
4443 - </para>  
4444 - </listitem>  
4445 - <listitem>  
4446 - <para>  
4447 - Calling  
4448 - <function>QPDFWriter::set*EncryptionParameters</function> on  
4449 - a <classname>QPDFWriter</classname> object whose output  
4450 - filename has not yet been set no longer produces a  
4451 - segmentation fault.  
4452 - </para>  
4453 - </listitem>  
4454 - <listitem>  
4455 - <para>  
4456 - When reading encrypted files, follow the spec more closely  
4457 - regarding encryption key length. This allows qpdf to open  
4458 - encrypted files in most cases when they have invalid or  
4459 - missing /Length keys in the encryption dictionary.  
4460 - </para>  
4461 - </listitem>  
4462 - <listitem>  
4463 - <para>  
4464 - When <command>qpdf --check</command> or <command>qpdf  
4465 - --check-linearization</command> encounters a file with  
4466 - linearization warnings but not errors, it now properly exits  
4467 - with exit code 3 instead of 2.  
4468 - </para>  
4469 - </listitem>  
4470 - </itemizedlist>  
4471 - </listitem>  
4472 - <listitem>  
4473 - <para>  
4474 - Build Changes 4419 + CLI Enhancements
4475 </para> 4420 </para>
4476 <itemizedlist> 4421 <itemizedlist>
4477 <listitem> 4422 <listitem>
4478 <para> 4423 <para>
4479 - On platforms that support it, qpdf now builds with  
4480 - <option>-fvisibility=hidden</option>. If you build qpdf with  
4481 - your own build system, this is now safe to use. This  
4482 - prevents methods that are not part of the public API from  
4483 - being exported by the shared library, and makes qpdf's ELF  
4484 - shared libraries (used on Linux, MacOS, and most other UNIX  
4485 - flavors) behave more like the Windows DLL. Since the DLL  
4486 - already behaves in much this way, it is unlikely that there  
4487 - are any methods that were accidentally not exported.  
4488 - However, with ELF shared libraries, typeinfo for some  
4489 - classes has to be explicitly exported. If there are problems  
4490 - in dynamically linked code catching exceptions or  
4491 - subclassing, this could be the reason. If you see this,  
4492 - please report a bug at <ulink  
4493 - url="https://github.com/qpdf/qpdf/issues/">pikepdf</ulink>.  
4494 - </para>  
4495 - </listitem>  
4496 - <listitem>  
4497 - <para>  
4498 - QPDF is now compiled with integer conversion and sign  
4499 - conversion warnings enabled. Numerous changes were made to  
4500 - the library to make this safe.  
4501 - </para>  
4502 - </listitem>  
4503 - <listitem>  
4504 - <para>  
4505 - QPDF's <command>make install</command> target explicitly  
4506 - specifies the mode to use when installing files instead of  
4507 - relying the user's umask. It was previously doing this for  
4508 - some files but not others. 4424 + The <option>--recompress-flate</option> instructs
  4425 + <command>qpdf</command> to recompress streams that are
  4426 + already compressed with <literal>/FlateDecode</literal>.
  4427 + Useful with <option>--compression-level</option>.
4509 </para> 4428 </para>
4510 </listitem> 4429 </listitem>
4511 <listitem> 4430 <listitem>
4512 <para> 4431 <para>
4513 - If <command>pkg-config</command> is available, use it to  
4514 - locate <filename>libjpeg</filename> and  
4515 - <filename>zlib</filename> dependencies, falling back on old  
4516 - behavior if unsuccessful. 4432 + the
  4433 + <option>--compression-level=<replaceable>level</replaceable></option>
  4434 + sets the zlib compression level used for any streams
  4435 + compressed by <literal>/FlateDecode</literal>. Most
  4436 + effective when combined with
  4437 + <option>--recompress-flate</option>.
4517 </para> 4438 </para>
4518 </listitem> 4439 </listitem>
4519 </itemizedlist> 4440 </itemizedlist>
4520 </listitem> 4441 </listitem>
4521 <listitem> 4442 <listitem>
4522 <para> 4443 <para>
4523 - Library and CLI Enhancements 4444 + Library Enhancements
4524 </para> 4445 </para>
4525 <itemizedlist> 4446 <itemizedlist>
4526 <listitem> 4447 <listitem>
@@ -4609,24 +4530,6 @@ print &quot;\n&quot;; @@ -4609,24 +4530,6 @@ print &quot;\n&quot;;
4609 </listitem> 4530 </listitem>
4610 <listitem> 4531 <listitem>
4611 <para> 4532 <para>
4612 - CLI enhancement: the <option>--recompress-flate</option>  
4613 - instructs <command>qpdf</command> to recompress streams that  
4614 - are already compressed with <literal>/FlateDecode</literal>.  
4615 - Useful with <option>--compression-level</option>.  
4616 - </para>  
4617 - </listitem>  
4618 - <listitem>  
4619 - <para>  
4620 - CLI enhancement: the  
4621 - <option>--compression-level=<replaceable>level</replaceable></option>  
4622 - sets the zlib compression level used for any streams  
4623 - compressed by <literal>/FlateDecode</literal>. Most  
4624 - effective when combined with  
4625 - <option>--recompress-flate</option>.  
4626 - </para>  
4627 - </listitem>  
4628 - <listitem>  
4629 - <para>  
4630 The underlying implementation of QPDF arrays has been 4533 The underlying implementation of QPDF arrays has been
4631 enhanced to be much more memory efficient when dealing with 4534 enhanced to be much more memory efficient when dealing with
4632 arrays with lots of nulls. This enables qpdf to use 4535 arrays with lots of nulls. This enables qpdf to use
@@ -4668,6 +4571,110 @@ print &quot;\n&quot;; @@ -4668,6 +4571,110 @@ print &quot;\n&quot;;
4668 </listitem> 4571 </listitem>
4669 <listitem> 4572 <listitem>
4670 <para> 4573 <para>
  4574 + Bug Fixes
  4575 + </para>
  4576 + <itemizedlist>
  4577 + <listitem>
  4578 + <para>
  4579 + A small handful of memory issues, assertion failures, and
  4580 + unhandled exceptions that could occur on badly mangled input
  4581 + files have been fixed. Most of these problems were found by
  4582 + Google's OSS-Fuzz project.
  4583 + </para>
  4584 + </listitem>
  4585 + <listitem>
  4586 + <para>
  4587 + When <command>qpdf --check</command> or <command>qpdf
  4588 + --check-linearization</command> encounters a file with
  4589 + linearization warnings but not errors, it now properly exits
  4590 + with exit code 3 instead of 2.
  4591 + </para>
  4592 + </listitem>
  4593 + <listitem>
  4594 + <para>
  4595 + The <option>--completion-bash</option> and
  4596 + <option>--completion-zsh</option> options now work properly
  4597 + when qpdf is invoked as an AppImage.
  4598 + </para>
  4599 + </listitem>
  4600 + <listitem>
  4601 + <para>
  4602 + Calling
  4603 + <function>QPDFWriter::set*EncryptionParameters</function> on
  4604 + a <classname>QPDFWriter</classname> object whose output
  4605 + filename has not yet been set no longer produces a
  4606 + segmentation fault.
  4607 + </para>
  4608 + </listitem>
  4609 + <listitem>
  4610 + <para>
  4611 + When reading encrypted files, follow the spec more closely
  4612 + regarding encryption key length. This allows qpdf to open
  4613 + encrypted files in most cases when they have invalid or
  4614 + missing /Length keys in the encryption dictionary.
  4615 + </para>
  4616 + </listitem>
  4617 + <listitem>
  4618 + <para>
  4619 + When <command>qpdf --check</command> or <command>qpdf
  4620 + --check-linearization</command> encounters a file with
  4621 + linearization warnings but not errors, it now properly exits
  4622 + with exit code 3 instead of 2.
  4623 + </para>
  4624 + </listitem>
  4625 + </itemizedlist>
  4626 + </listitem>
  4627 + <listitem>
  4628 + <para>
  4629 + Build Changes
  4630 + </para>
  4631 + <itemizedlist>
  4632 + <listitem>
  4633 + <para>
  4634 + On platforms that support it, qpdf now builds with
  4635 + <option>-fvisibility=hidden</option>. If you build qpdf with
  4636 + your own build system, this is now safe to use. This
  4637 + prevents methods that are not part of the public API from
  4638 + being exported by the shared library, and makes qpdf's ELF
  4639 + shared libraries (used on Linux, MacOS, and most other UNIX
  4640 + flavors) behave more like the Windows DLL. Since the DLL
  4641 + already behaves in much this way, it is unlikely that there
  4642 + are any methods that were accidentally not exported.
  4643 + However, with ELF shared libraries, typeinfo for some
  4644 + classes has to be explicitly exported. If there are problems
  4645 + in dynamically linked code catching exceptions or
  4646 + subclassing, this could be the reason. If you see this,
  4647 + please report a bug at <ulink
  4648 + url="https://github.com/qpdf/qpdf/issues/">pikepdf</ulink>.
  4649 + </para>
  4650 + </listitem>
  4651 + <listitem>
  4652 + <para>
  4653 + QPDF is now compiled with integer conversion and sign
  4654 + conversion warnings enabled. Numerous changes were made to
  4655 + the library to make this safe.
  4656 + </para>
  4657 + </listitem>
  4658 + <listitem>
  4659 + <para>
  4660 + QPDF's <command>make install</command> target explicitly
  4661 + specifies the mode to use when installing files instead of
  4662 + relying the user's umask. It was previously doing this for
  4663 + some files but not others.
  4664 + </para>
  4665 + </listitem>
  4666 + <listitem>
  4667 + <para>
  4668 + If <command>pkg-config</command> is available, use it to
  4669 + locate <filename>libjpeg</filename> and
  4670 + <filename>zlib</filename> dependencies, falling back on old
  4671 + behavior if unsuccessful.
  4672 + </para>
  4673 + </listitem>
  4674 + </itemizedlist>
  4675 + </listitem>
  4676 + <listitem>
  4677 + <para>
4671 Other Notes 4678 Other Notes
4672 </para> 4679 </para>
4673 <itemizedlist> 4680 <itemizedlist>