Commit b3c91f64bb79264e6ec2e5b1f5133d9afe3ee2ed
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 | 4416 | </listitem> |
| 4417 | 4417 | <listitem> |
| 4418 | 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 | 4420 | </para> |
| 4476 | 4421 | <itemizedlist> |
| 4477 | 4422 | <listitem> |
| 4478 | 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 | 4428 | </para> |
| 4510 | 4429 | </listitem> |
| 4511 | 4430 | <listitem> |
| 4512 | 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 | 4438 | </para> |
| 4518 | 4439 | </listitem> |
| 4519 | 4440 | </itemizedlist> |
| 4520 | 4441 | </listitem> |
| 4521 | 4442 | <listitem> |
| 4522 | 4443 | <para> |
| 4523 | - Library and CLI Enhancements | |
| 4444 | + Library Enhancements | |
| 4524 | 4445 | </para> |
| 4525 | 4446 | <itemizedlist> |
| 4526 | 4447 | <listitem> |
| ... | ... | @@ -4609,24 +4530,6 @@ print "\n"; |
| 4609 | 4530 | </listitem> |
| 4610 | 4531 | <listitem> |
| 4611 | 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 | 4533 | The underlying implementation of QPDF arrays has been |
| 4631 | 4534 | enhanced to be much more memory efficient when dealing with |
| 4632 | 4535 | arrays with lots of nulls. This enables qpdf to use |
| ... | ... | @@ -4668,6 +4571,110 @@ print "\n"; |
| 4668 | 4571 | </listitem> |
| 4669 | 4572 | <listitem> |
| 4670 | 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 | 4678 | Other Notes |
| 4672 | 4679 | </para> |
| 4673 | 4680 | <itemizedlist> | ... | ... |