-
Replace the old msys, mingw-w64, ActiveState perl setup with MSYS2. This greatly simplifies the Windows build. This was facilitated by the need to incorporate JPEG.
-
Also update maintainer documentation on binary compatibility testing.
-
For non-encrypted files, determinstic ID generation uses file contents instead of timestamp and file name. At a small runtime cost, this enables generation of the same /ID if the same inputs are converted in the same way multiple times.
-
There have been a few enhancements requested that only affect the qpdf command line tool and that should be relatively quick to implement. Work out the details and acknowledge these publicly in the TODO file.
-
Pushing inherited objects to pages and getting all pages were both prone to stack overflow infinite loops if there were loops in the Pages dictionary. There is a general weakness in the code in that any part of the code that traverses the Pages structure would be prone to this and would have to implement its own loop detection. A more robust fix may provide some general method for handling the Pages structure, but it's probably not worth doing. Note: addition of *Internal2 private functions was done rather than changing signatures of existing methods to avoid breaking compatibility.
-
Also remove some trivial, non-functional code.
-
If not available, give an error. The user may also configure qpdf to use an insecure random number generator.
-
4.2.0 was binary incompatible in spite of there being no deletions or changes to any public methods. As such, we have to bump the ABI and are fixing some API breakage while we're at it. Previous 4.3.0 target is now 5.1.0.
-
Bug fixes for 4.2.0 force additional interfaces, so move most of the 4.2.0 items to 4.3.0.
-
When copying dlls, make sure to only consider DLLs whose type matches the type of what is loading them.
-
Prepare update for TODO for publication since there is useful information there for people looking at the repository.
-
These object types are to facilitate content stream parsing.