Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pikepdf for openSUSE:Factory 
checked in at 2026-11-10 14:39:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pikepdf (Old)
 and      /work/SRC/openSUSE:Factory/.python-pikepdf.new.3759290 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pikepdf"

Tue Nov 10 14:39:32 2026 rev:39 rq:1396405 version:10.18.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pikepdf/python-pikepdf.changes    
2026-11-05 18:21:27.240553682 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-pikepdf.new.3759290/python-pikepdf.changes   
    2026-11-10 14:40:20.905384881 +0100
@@ -1,0 +2,163 @@
+Sun Nov  8 07:44:08 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to version 10.18.0
+  * {meth}pikepdf.Pdf.add_pages_from now carries layers (optional
+    content) with the pages it copies. The optional content groups
+    that the copied pages depend on are listed in the destination's
+    /OCProperties, with the default visibility, place in the layer
+    list, lock, radio button groups and automatic states that the
+    source's default configuration gave them. Previously the groups
+    were copied but not listed, so viewers ignored them: the layer
+    list was empty and content hidden in the source was shown.
+    {issue}118
+  * {meth}pikepdf.Pdf.add_pages_from now carries bookmarks. Outline
+    items of the source that lead to a copied page are appended to
+    the destination's outline, keeping their hierarchy, titles and
+    style; items that lead to pages that were not copied are
+    dropped. {issue}281
+  * Both are on by default, which changes what existing callers of
+    add_pages_from get: the destination may gain an /OCProperties
+    and outline items it did not gain before. Pass layers='ignore'
+    or outlines='ignore' for the previous behaviour, for example
+    if you build the merged outline yourself.
+     {class}pikepdf.PageCopyResult reports layers_added,
+    outline_items_added and outline_items_dropped.
+  * {meth}pikepdf.Pdf.check_pdf_syntax now performs the same checks
+    as qpdf --check and reports the same problems. It checks the
+    linearization data and hint tables of linearized files, which
+    previously required a separate call to
+    {meth}pikepdf.Pdf.check_linearization, and checks the
+    interactive form, embedded files, page labels and outlines. A
+    document with no pages is reported as ERROR: file does not
+    contain any pages, and a page whose content stream cannot be
+    read is reported as ERROR: page N: ...  along with the other
+    problems found, where it previously raised
+    {class}pikepdf.PdfError. {issue}515
+  * Inserting a {class}pikepdf.Dictionary or {class}pikepdf.Array
+    that refers to another Pdf into a Pdf now raises
+    {exc}pikepdf.ForeignObjectError, naming the key or index where
+    the foreign object was found, and leaves the target unchanged.
+    This covers an indirect object of another Pdf held anywhere in
+    the value, such as pdf3.Root.X = Dictionary(P=pdf1.Root.Y), and
+    a direct dictionary or array that another Pdf already contains.
+    Previously the value was accepted: the first kind made the Pdf
+    impossible to save, failing part way through writing, and the
+    second left two documents sharing one object. It applies to
+    every way of inserting a value, including
+    {meth}pikepdf.Pdf.make_indirect,
+    {meth}pikepdf.Page.add_resource, adding a page built from a
+    dictionary, name and number trees, and stream dictionaries. Use
+    {meth}pikepdf.Pdf.copy_foreign to bring the foreign object over
+    first.
+  * A password containing a NUL character now raises
+    {exc}ValueError, both when opening a PDF and when encrypting
+    one. Previously the password was silently cut short at the NUL,
+    so a wrong password could open a file, and an encrypted file
+    could be written with a shorter password than requested.
+    PDF passwords may not contain NUL. {issue}756
+  * Fixed threads interfering with each other inside one Pdf on
+    GIL-enabled builds, which could cause an object to be read as
+    None. The per-Pdf lock is now in force on every build, and
+    {meth}pikepdf.Pdf.lock works on GIL-enabled builds too.
+    {commit}7c761d23
+  * Methods implemented in Python that change a Pdf in several
+    steps, such as {meth}pikepdf.Page.add_overlay,
+    {meth}pikepdf.Pdf.add_pages_from and the {mod}pikepdf.sanitize
+    functions, now hold its lock until they finish. The thread
+    safety section of the architecture notes now says which calls
+    are atomic. {commit}0872a6e8, {commit}b10671c3
+  * Two threads that each hold the lock of one Pdf and then need
+    the other's no longer deadlock; one of them gets a
+    {exc}RuntimeError instead. What a callback such as a
+    {class}pikepdf.TokenFilter may do is now documented:
+    see {ref}callback-restrictions. {commit}11ef776b
+  * Fixed a crash, a native stack overflow that no Python except
+    can catch, when reading, saving or checking a PDF in which a
+    JBIG2 image's /JBIG2Globals stream is itself JBIG2-encoded and
+    leads back to the image, directly or through other streams.
+    Such an image is now reported as unfilterable, as JBIG2-encoded
+    globals without a cycle already were: reading it raises
+    {exc}~pikepdf.exceptions.PdfError, extracting it raises
+    {exc}~pikepdf.exceptions.UnsupportedImageTypeError, and saving
+    writes it unchanged with a warning. {issue}753
+  * A JBIG2 image's /JBIG2Globals are now read only when the image
+    is being JBIG2-decoded, rather than every time qpdf checks
+    whether the image can be decoded, which included every save.
+  * Reading the label of a page whose page label style is
+    an unknown name, such as /S /Z, now warns and keeps the label
+    prefix, as an invalid non-name style already did. Previously it
+    raised KeyError.
+  * Reading the label of a page whose number cannot be written in
+    its page label style, such as /S /R /St 0 or a Roman numeral
+    above 5000, now warns and writes the number in decimal digits.
+    Previously it raised ValueError.
+  * Extracting an image whose /CalGray or /CalRGB colour space
+    array lacks its parameter dictionary now decodes it as the
+    corresponding device space, without an ICC profile, as a
+    missing /WhitePoint already did. Previously it raised
+    IndexError.
+  * An ICCBased image whose profile stream omits the required /N,
+    or gives one that is not an integer, now takes its mode and
+    default /Decode from the profile's colour space. Previously its
+    mode raised KeyError.
+  * Fixed {meth}pikepdf.form.SignatureField.stamp_overlay stamping
+    the overlay twice when the signature widget names its page with
+    /P.
+  * Fixed a Pdf returned by {meth}pikepdf.Job.create_pdf not being
+    set up like other Pdf objects: setting its conversion_mode
+    raised {class}pikepdf.PdfError, and on free-threaded Python
+    none of its methods were protected by a lock.
+  * Matrix.__array__(copy=False) now raises ValueError, as numpy
+    expects of an object that cannot share its memory. The check
+    for this was written in a way that never fired.
+  * A progress argument to {meth}pikepdf.Pdf.save that is not
+    callable is now rejected with TypeError before anything is
+    written. Previously the error was raised part of the way
+    through writing the file.
+  * Fixed a small memory leak each time
+    {meth}pikepdf.AcroForm.get_fields_with_qualified_name or
+    {meth}pikepdf.AcroForm.fix_copied_annotations returned a field.
+  * Iterating over a {class}pikepdf.NameTree or
+    {class}pikepdf.NumberTree now iterates over the keys it had
+    when the iteration began. Previously the tree was read as the
+    iteration went on, so changing it meanwhile gave undefined results.
+  * Putting an object that belongs to another Pdf in a
+    {class}pikepdf.NameTree or {class}pikepdf.NumberTree now raises
+    {class}pikepdf.ForeignObjectError at once, as it does for a
+    dictionary or an array. Previously the error was not raised
+    until the Pdf was saved.
+  * x in tree is now False for an x that cannot be a key of a
+    {class}pikepdf.NameTree, such as an int, and for None in a
+    {class}pikepdf.NumberTree. Previously these raised TypeError.
+  * Corrected the documentation and type hints of
+    {class}pikepdf.NameTree, which said that names are bytes. Names
+    are, and have always been, str: qpdf reads each name as a PDF
+    text string and compares names by that text.
+  Free-threaded Python fixes
+  * Many crashes and data races that occurred when several threads
+    used the same Pdf at once have been fixed. The test suite now
+    runs under ThreadSanitizer in continuous integration, which is
+    how most of them were found ({commit}4831f6fc).
+  * Every binding that reads or changes a Pdf now takes that Pdf's
+    lock, and the lock of any other Pdf among its arguments,
+    enforced at compile time. Many bindings previously did not,
+    notably most methods of {class}pikepdf.NameTree,
+    {class}pikepdf.NumberTree, attachments, annotations and
+    {class}pikepdf.AcroForm. {commit}3c5b2bc4
+  * Fixed crashes and data races in {class}pikepdf.Page methods,
+    content stream parsing, adding pages from one Pdf to another,
+    and dropping the last reference to a Pdf while another thread
+    used one of its objects. {commit}04999faf
+  * A {class}pikepdf.Dictionary or {class}pikepdf.Array that
+    belongs to no Pdf is now protected by a lock shared by all such
+    objects. Threads that each build objects of their own contend
+    for it, so add a Dictionary or Array to its Pdf as soon as it
+    is created rather than building large structures before adding
+    them. {commit}5e11a240, {commit}b10671c3
+  * Fixed "dictionary changed size during iteration" when several
+    threads opened a Pdf's metadata for the first time at once.
+    {commit}d52a9a11
+  * Threads that take turns using the same Pdf are no longer slowed
+    to a crawl when every CPU is busy. {commit}a3e2b882
+
+-------------------------------------------------------------------

Old:
----
  pikepdf-10.17.0.tar.gz

New:
----
  pikepdf-10.18.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pikepdf.spec ++++++
--- /var/tmp/diff_new_pack.l5D6Yz/_old  2026-11-10 14:40:23.885509724 +0100
+++ /var/tmp/diff_new_pack.l5D6Yz/_new  2026-11-10 14:40:23.890509933 +0100
@@ -18,7 +18,7 @@
 
 
 Name:           python-pikepdf
-Version:        10.17.0
+Version:        10.18.0
 Release:        0
 Summary:        Read and write PDFs with Python, powered by qpdf
 License:        MPL-2.0

++++++ pikepdf-10.17.0.tar.gz -> pikepdf-10.18.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-pikepdf/pikepdf-10.17.0.tar.gz 
/work/SRC/openSUSE:Factory/.python-pikepdf.new.3759290/pikepdf-10.18.0.tar.gz 
differ: char 23, line 1

Reply via email to