qpdf-announce Mailing List for QPDF
PDF transformation/manipulation program + library
Brought to you by:
jay_berkenbilt
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(1) |
Oct
(2) |
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(1) |
2014 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
2018 |
Jan
(1) |
Feb
(2) |
Mar
(3) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
(1) |
Nov
(3) |
Dec
|
2020 |
Jan
(1) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
2021 |
Jan
(1) |
Feb
(2) |
Mar
(2) |
Apr
|
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(1) |
2022 |
Jan
|
Feb
(4) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
(1) |
Nov
(1) |
Dec
|
2023 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
(3) |
Oct
(4) |
Nov
|
Dec
(2) |
2024 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Jay B. <ej...@ql...> - 2024-02-24 22:36:16
|
I have released qpdf 11.9.0. This release includes some performance optimizations and reliability enhancements to JSON support, an enhanced command-line syntax for --pages in preparation for future options, support for multiple overlay and underlay specifications, and a few minor fixes and improvements to new features from qpdf 11.8.0. As usual: • release: https://github.com/qpdf/qpdf/releases • release notes: https://qpdf.readthedocs.io/en/stable/release-notes.html This release includes a bit more progress on the pages work, but I ran out of focused time on that, so it will take some time to get most of the exciting features in. There are a number of other items on the backlog. For anyone interested in following the progress of qpdf 12, see this github discussion: https://github.com/qpdf/qpdf/discussions/785. The list of proposed changes is subject to change, but that issue covers most of what we're thinking. The remaining pages work will probably done after the release of qpdf 12. Other items on the roadmap for after qpdf 12 include support for incremental updates and some kind of support for digital signatures, though don't expect qpdf to replace services that handle the user interaction side of digital signature. I'm afraid it will take some time before these features appear in qpdf, but they are on my radar. --Jay |
From: Jay B. <ej...@ql...> - 2024-01-08 19:15:00
|
(See note about pages epic <https://github.com/qpdf/qpdf/discussions/1104> it the paragraph after the main release announcement!) I have released qpdf 11.8.0. This release includes a few enhancements and bug fixes related to page splitting and merging operations. It is in preparation for more substantial changes in this area -- see below. This includes more flexible collation, more flexible page range specification, the ability to set page labels, and one bug fix related to hyperlinks when flattening annotations. Release: https://github.com/qpdf/qpdf/releases/ Release notes: https://qpdf.readthedocs.io/en/stable/release-notes.html If you're interested in the "pages epic" work, please read on. Since qpdf first supported page splitting and merging, it has had robust handling for page-level data, but document-level data has been more lacking. For a while, qpdf has preserved page labels and form fields, but lots of other things get lost when splitting and merging. For example, bookmarks (outlines) are maintained only with the primary file, hyperlinks can be broken, and various other problems can occur. After years of tracking, I'm finally doing real work on this category of problems. If you'd like to follow this work or make comments or suggestions, please visit https://github.com/qpdf/qpdf/discussions/1104. If you build software that uses qpdf and does any page-related operations, I encourage you to weigh in. It will take some time to build all the features, so I plan to roll them out gradually. I will aim to be as transparent as possible about my roadmap. I would welcome any input from the community. --Jay |
From: Jay B. <ej...@ql...> - 2023-12-24 22:16:21
|
I have released qpdf 11.7.0. This is a collection of various bug fixes and enhancements. Notable changes: • qpdf's test suite now passes with alternative zlib implementations and is tested in CI with zlib-ng as well as zlib • A new, alternative --encrypt syntax makes it possible to have passwords that start with "-" • A few qpdf JSON bugs were fixed • The --remove-restrictions option fully disables digital signatures • Windows installers offer to set PATH • A UNIX man page is generated from the command-line docs Release notes: https://qpdf.readthedocs.io/en/stable/release-notes.html Release: https://github.com/qpdf/qpdf/releases |
From: Jay B. <ej...@ql...> - 2023-12-10 19:01:23
|
I have released qpdf version 11.6.4. There are no code changes 11.6.3. This release contains two build fixes: inclusion of cmake files with `cmake --install --component dev` component and rebuilding the Linux binary release with older libraries so it will work in AWS Lambda again. Release notes: https://qpdf.readthedocs.io/en/stable/release-notes.html Releases: https://github.com/qpdf/qpdf/releases --Jay |
From: Jay B. <ej...@ql...> - 2023-10-17 11:40:55
|
I am attaching to this message a patch that applies cleanly to 11.3.0. This version also applies cleanly to 11.0.0. I haven't tested all intermediate versions, but I suspect one of the two patches should apply to all versions from 11.0.0 to 11.6.2. I'm re-attaching the previous patch to this message for convenience. On Tue, Oct 17, 2023, at 7:10 AM, Jay Berkenbilt wrote: > The recent release of qpdf 11.6.3 included an important fix to a bug that could result in loss of data. If you are a packager of qpdf and have a stable version between 11.0.0 and 11.6.2, the attached patch is a minimal patch to fix this bug. It will apply cleanly (with -p1) to recent qpdf releases. Because of other reorganization of QPDFTokenizer.cc, it won't directly apply to 11.0.0, but the changes are very small and can easily be applied manually to the QPDFTokenizer::inCharCode function. If possible, I would encourage packagers to either upgrade to 11.6.3 or apply this patch to any version >= 11.0.0 and <= 11.6.2. Versions 10.6.3 and below are not affected by this bug. The patch is excerpted from https://github.com/qpdf/qpdf/commit/1ecc6bb29e24a4f89470ff91b2682b46e0576ad4. It includes the critical code change without the ChangeLog entry or test cases. > > --Jay > > > *Attachments:* > • qpdf-1ecc6bb2.patch |
From: Jay B. <ej...@ql...> - 2023-10-17 11:12:06
|
The recent release of qpdf 11.6.3 included an important fix to a bug that could result in loss of data. If you are a packager of qpdf and have a stable version between 11.0.0 and 11.6.2, the attached patch is a minimal patch to fix this bug. It will apply cleanly (with -p1) to recent qpdf releases. Because of other reorganization of QPDFTokenizer.cc, it won't directly apply to 11.0.0, but the changes are very small and can easily be applied manually to the QPDFTokenizer::inCharCode function. If possible, I would encourage packagers to either upgrade to 11.6.3 or apply this patch to any version >= 11.0.0 and <= 11.6.2. Versions 10.6.3 and below are not affected by this bug. The patch is excerpted from https://github.com/qpdf/qpdf/commit/1ecc6bb29e24a4f89470ff91b2682b46e0576ad4. It includes the critical code change without the ChangeLog entry or test cases. --Jay |
From: Jay B. <ej...@ql...> - 2023-10-15 20:31:00
|
I have released qpdf 11.6.3 with two bug fixes. One is a fix to a serious but rare bug in which qpdf could discard a character in a string in certain conditions. This is described in the release notes. The other is a fix to a problem that prevented some files that were between 2 and 4 GB to not linearize properly. Release: https://github.com/qpdf/qpdf/releases Release notes: https://qpdf.readthedocs.io/en/stable/release-notes.html |
From: Jay B. <ej...@ql...> - 2023-10-07 22:50:16
|
I have released qpdf 11.6.2. It contains just one change: a fix to a very old bug that could cause qpdf to call openssl or gnutls incorrectly for certain malformed files as part of error recovery. The release is at https://github.com/qpdf/qpdf/releases. The release notes are at https://qpdf.readthedocs.io/en/stable/release-notes.html --Jay |
From: Jay B. <ej...@ql...> - 2023-09-05 18:56:10
|
qpdf 11.6.1 is out. It contains a fix to a logic error introduced in qpdf 11.6.0. * Release notes: https://qpdf.readthedocs.io/en/stable/release-notes.html * Release download: https://github.com/qpdf/qpdf/releases |
From: Jay B. <ej...@ql...> - 2023-09-05 16:40:16
|
There is a serious bug in qpdf 11.6.0. Please skip that release. I'll get 11.6.1 out soon. |
From: Jay B. <ej...@ql...> - 2023-09-03 19:41:01
|
I have released qpdf 11.6.0. This release only contains bug fixes from 11.5.0. As usual: * Release notes: https://qpdf.readthedocs.io/en/stable/release-notes.html * Release download: https://github.com/qpdf/qpdf/releases I have been buried alive in "real life" and "day job" activities, but I am hoping over the next few months to get a decent chunk of qpdf time. My first priority is to address the many issues related to the interaction page splitting and merging with document-level features such as outlines (bookmarks) and links as well as to offer more flexibility about splitting pages, overlay, underlay, and other related options. I have tagged most of the relevant issues with the "page" tag in github. If anyone here has wish-list items, please feel free to create an issue or discussion topic in github. When I'm ready to start, I will create a discussion topic around the feature and plan on doing more of planning out in the open. --Jay |
From: Jay B. <ej...@ql...> - 2023-07-09 15:41:02
|
I have released qpdf 11.5.0. The only user-visible change in this release is a fix to a bug that caused annotations to be shared across pages when the same page was copied more than once in a --pages operation. Otherwise, this release includes the deprecation of implicit copy and assignment of Buffer objects, a new "FUTURE" build option for helping developers test against proposed changes to qpdf's API, and numerous changes to internal APIs, code tidying, refactoring, and performance improvements. All the non-trivial work for this release was done by M. Holger. Release can be downloaded from the usual place: https://github.com/qpdf/qpdf/releases. Release notes can be found here: https://qpdf.readthedocs.io/en/stable/release-notes.html. |
From: Jay B. <ej...@ql...> - 2023-05-21 22:46:56
|
I have released qpdf 11.4.0. This is a minor updates with a few fixes and enhancements and some performance improvements. Here are a few highlights: • Fix to annotation flattening to avoid losing some form field annotations in technically incorrect PDF files that could still be interpreted unambiguously • Enhancement to --optimize-images so that it traverses into form XObjects • Correction of packaging error introduced in 11.0.0 so that the MinGW DLLs that are once again about the same size as the MSVC DLLs For full release notes, see https://qpdf.readthedocs.io/en/stable/release-notes.html Release can be downloaded at https://github.com/qpdf/qpdf/releases as usual. |
From: Jay B. <ej...@ql...> - 2023-02-25 23:01:15
|
I have released qpdf version 11.3.0. The main feature of this release is more substantial performance improvements from M. Holger. This release may run as much as 30% faster than 11.2.0 and also uses less RAM. A new flag, --remove-restrictions, has been added to invalidate digital signatures and associated restrictions to make a signed file editable (invalidating the signature, of course). There are also a few minor fixes and enhancements. For a full list of changes from previous releases, please see the release notes <https://qpdf.readthedocs.io/en/stable/release-notes.html>. The release can be download from the usual location: https://github.com/qpdf/qpdf/releases. --Jay |
From: Jay B. <ej...@ql...> - 2022-11-20 23:41:01
|
I have released qpdf 11.2.0. This release includes a few minor bug fixes and API enhancements as well as a significant performance fix for builds that use the openssl 3.x crypto provider. This includes the official Windows binaries, which perform many times faster than in recent releases. Releases are available from the usual location: https://github.com/qpdf/qpdf/releases. Release notes are at https://qpdf.readthedocs.io/en/stable/release-notes.html. --Jay |
From: Jay B. <ej...@ql...> - 2022-10-01 19:00:48
|
I have released qpdf 11.1.1. This is a bug-fix release which contains a few minor fixes and a few performance enhancements. As always, releases are at https://github.com/qpdf/qpdf/releases, and release notes are at https://qpdf.readthedocs.io/en/stable/release-notes.html. This is expected to be the last qpdf release to be buildable with C++-14. Starting with 11.2, C++-17 will be required. Most C++ compilers released in the last 3 or 4 years have good support for C++-17, and it has been the default with MSVC, clang, and g++ for a while. There are a few performance improvements and enhancement requests that will be much more practical with C++-17. --Jay |
From: Jay B. <ej...@ql...> - 2022-09-15 11:10:53
|
I have released qpdf 11.1.0. This is a small bug-fix release. Other than one small fix to an error message, all the remaining changes are related to packaging and installation. I had to increment the minor version because one change was exporting a few symbols that were missing from the Windows DLL. On non-Windows platforms, there are no ABI changes relative to 11.0. For a full list of changes from previous releases, please see the release notes at https://qpdf.readthedocs.io/en/stable/release-notes.html. The release is available as always from https://github.com/qpdf/qpdf/releases/. Note that starting with qpdf 11.0.0, I have changed the tagging convention for releases on github to vX.Y.Z, so this version is tagged v11.1.0. If you have automation around the old tagging structure (which was release-qpdf-X.Y.Z), you will have to update your code. I have no intention of changing this again in the foreseeable future. Why did I make this change? My old tagging convention was an ancient relic from a time when I used to release multiple packages from the same subversion repository and used to have other tags than "release", so I had a <package>-<action>-<version> tagging convention. There's no reason for this now, so I decided it was time to adopt the more common convention of vX.Y.Z, particularly as some systems automatically recognize these as releases. I apologize for the inconvenience, but I figured this was the best time given the number of changes in qpdf 11. --Jay |
From: Jay B. <ej...@ql...> - 2022-09-10 21:14:40
|
Following up on my qpdf 11.0.0 announcement -- if you package qpdf for a distribution of some sort, please note that the manual includes detailed information about migrating your build from the old autoconf-based system to cmake. A link appears in the release notes. Feel free to reach out via github if you run into any trouble. On Sat, Sep 10, 2022, at 4:57 PM, Jay Berkenbilt wrote: > I am happy to announce the release of qpdf 11.0.0. This is the most significant release for qpdf in a long time. The list of changes is too large to include here, so please the release notes at https://qpdf.readthedocs.io/en/stable/release-notes.html for a full list. Downloads are available at https://github.com/qpdf/qpdf/releases/tag/v11.0.0. > > Here are some highlights: > * qpdf JSON v2 -- a complete, unambiguous representation of PDF file contents using JSON with bidirectional conversion between PDF and JSON. > * A new build with cmake replaces the autoconf + home-grown Makefile-based build. > * All shared pointers are now standard library shared pointers instead of qpdf's own (now deprecated) PointerHolder. A backward-compatible PointerHolder is provided along with detailed information about migrating your code. > * Significant performance improvements mostly thanks to major refactoring work done by M. Holger. The QPDF lexical and parsing layers have been largely rewritten. There has also be a major refactoring of the internal QPDF Object representation which contributes not only to increased performance but has also made it possible to detect when a QPDFObjectHandle is associated with a QPDF object that has been destroyed. > * A new logging facility makes it possible for library users to have better control over where messages go. There should be no more cases of error or warning messages or other types of output sneaking past attempts to redirect or capture output. > This list doesn't even mention some of the changes, so be sure to check out the release notes. > > _______________________________________________ > Qpdf-announce mailing list > Qpd...@li... > https://lists.sourceforge.net/lists/listinfo/qpdf-announce > |
From: Jay B. <ej...@ql...> - 2022-09-10 20:58:18
|
I am happy to announce the release of qpdf 11.0.0. This is the most significant release for qpdf in a long time. The list of changes is too large to include here, so please the release notes at https://qpdf.readthedocs.io/en/stable/release-notes.html for a full list. Downloads are available at https://github.com/qpdf/qpdf/releases/tag/v11.0.0. Here are some highlights: * qpdf JSON v2 -- a complete, unambiguous representation of PDF file contents using JSON with bidirectional conversion between PDF and JSON. * A new build with cmake replaces the autoconf + home-grown Makefile-based build. * All shared pointers are now standard library shared pointers instead of qpdf's own (now deprecated) PointerHolder. A backward-compatible PointerHolder is provided along with detailed information about migrating your code. * Significant performance improvements mostly thanks to major refactoring work done by M. Holger. The QPDF lexical and parsing layers have been largely rewritten. There has also be a major refactoring of the internal QPDF Object representation which contributes not only to increased performance but has also made it possible to detect when a QPDFObjectHandle is associated with a QPDF object that has been destroyed. * A new logging facility makes it possible for library users to have better control over where messages go. There should be no more cases of error or warning messages or other types of output sneaking past attempts to redirect or capture output. This list doesn't even mention some of the changes, so be sure to check out the release notes. |
From: Jay B. <ej...@ql...> - 2022-03-19 12:31:20
|
I have made a *prerelease* version of qpdf with cmake. When built, this version is identical to 10.6.3. If you are just a "user" of qpdf, you can ignore this release unless you want to try out the new Windows installers which are now available in addition to zip files. This release is for packagers, developers, and other people who care about building or packaging qpdf. If you use the qpdf DLL from Windows at runtime, you might want to test this out as well. The new DLL should be binary compatible, but cmake may use more updated compiler flags or do other things that will improve compatibility compared to the old build. Also, cmake handles "rpath" differently, so hopefully this puts an end to issues on rpm-based platforms with rpath containing build paths. You can find the pre-release here: https://github.com/qpdf/qpdf/releases/tag/release-qpdf-10.6.3.0cmake1 If you are a packager, I would be interested to know if you are successful switching over to cmake. You can email me or mention it in https://github.com/qpdf/qpdf/discussions/676. If you package qpdf for a distribution, this version is not intended for distribution, but you can use it to work out changes to your packaging and, if you have an experimental channel or something like that, you could release it there. I have uploaded debian package to "experimental" to ensure that the new packages go through the build cycle properly on all platforms. For the debian package, I have also enabled "autopkgtest", which are runtime tests on the installed package. I have included the test scripts in the source tree. You can find details in the pkg-test directory in the source distribution. If you find problems with this release, such as errors in the documentation or problems building on your platform, please create an issue: https://github.com/qpdf/qpdf/issues If you just want to let me know that you have successfully updated the packaging for your distribution (which I would appreciate knowing) or you have an opinion about how I did something or a suggestion for doing it differently, feel free to contribute to the release discussion here: https://github.com/qpdf/qpdf/discussions/676 Rather than repeating the details here, I would refer you to the release page where I have described the changes. Release notes specific to this prerelease can be found at https://qpdf.readthedocs.io/en/release-qpdf-10.6.3.0cmake1/release-notes.html. The TODO file in the source distribution has some notes about additional changes I intend to make before qpdf 11. I couldn't make those changes yet because the change the ABI. I will make those changes very early in the qpdf 11 release cycle. I have not made a release on sourceforge for this version, so you have to get it from github. I don't expect to release qpdf 11 for several weeks. --Jay |
From: Jay B. <ej...@ql...> - 2022-03-12 14:20:20
|
I have released qpdf 10.6.3. This is a small, bug-fix only release that corrects one additional character encoding issue (native UTF8 as specified in the PDF 2.0 spec) and one case with appearance stream generation. ** NOTE ** -- qpdf 11 will be built with cmake. I will send out a later email with a reference to a github discussion ticket about the cmake migration. I will be particularly interested in feedback from Windows developers and people who package qpdf for distributions and will provide a way for people to do early testing. The cmake conversion will happen early in the qpdf 11 release cycle so there will ample time for people to test and update their environments. Releases: https://github.com/qpdf/qpdf/releases Release notes: https://qpdf.readthedocs.io/en/stable/release-notes.html --Jay |
From: Jay B. <ej...@ql...> - 2022-02-16 19:57:11
|
10.6.2 is out -- hopefully the last in the flurry. This fixes a few more character encoding issues. Distributions: if you are blocked on qpdf 10.6 because of pikepdf "regressions", be aware that a new pikepdf is also being released. We have worked together to ensure that we are back in sync. The pikepdf tests are very thorough and were able to uncover a few subtle cases in the way qpdf was handling encoding. As always, releases are at https://github.com/qpdf/qpdf/releases, and release notes are at https://qpdf.readthedocs.io/en/stable/release-notes.html. --Jay |
From: Jay B. <ej...@ql...> - 2022-02-11 15:55:46
|
I have released qpdf 10.6.1. The only significant change is correction of an error in test_driver.cc that was causing compilation failure on some platforms. Usual boilerplate: * Releases are at https://github.com/qpdf/qpdf/releases * Relase notes are at https://qpdf.readthedocs.io/en/stable/release-notes.html --Jay |
From: Jay B. <ej...@ql...> - 2022-02-11 13:36:14
|
An incorrect use of abs() in test_driver.cc is causing compilation failures on some platforms. I plan to release 10.6.1 later today. If you are a packager and are running into this failure, feel free to sit tight for 10.6.1. |
From: Jay B. <ej...@ql...> - 2022-02-09 16:06:11
|
qpdf 10.6.0 is out. This release includes the largest refactoring of qpdf's code to date with moving all of the qpdf CLI's functionality into the library and exposing it through a new QPDFJob object. This includes a fluent interface as well as a way for library users to pass in an argv array or a JSON format that is equivalent to the command-line syntax. If you are writing code that uses qpdf, you may want to start preparing for qpdf 11, which will replace PointerHolder with std::shared_ptr wherever it appears in qpdf's API. A backward-compatible PointerHolder that is interchangeable with std::shared_ptr will be provided. This may be adequate for most applications, but certain cases such as containers of PointerHolders, will most likely need to be changed. For detailed information on what to expect and how to prepare, see Smart Pointers <https://qpdf.readthedocs.io/en/10.6/design.html#smart-pointers>. See also comments in PointerHolder.hh <https://github.com/qpdf/qpdf/blob/235c89e037d6d9925cf201cadfa9e0df1771212c/include/qpdf/PointerHolder.hh#L25>. No changes are required for 10.6, but you will have to perform some steps before qpdf 11 in order to avoid compiler warnings. I am not expecting to release qpdf 11 for a few months. Other release features: * Several new interfaces in QPDFObjectHandle, also exposed to the C API, for an alternative and more type-safe way of retrieving values from QPDFObjectHandle * Completely revamped qpdf --help and rewrite of the Running qpdf <https://qpdf.readthedocs.io/en/10.6/cli.html> section of the manual. As always, you can download from https://github.com/qpdf/qpdf/releases and view release notes at https://qpdf.readthedocs.io/en/stable/release-notes.html. |