Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python313 for openSUSE:Factory 
checked in at 2024-08-08 10:58:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python313 (Old)
 and      /work/SRC/openSUSE:Factory/.python313.new.7232 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python313"

Thu Aug  8 10:58:35 2024 rev:4 rq:1192376 version:3.13.0~rc1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python313/python313.changes      2024-07-25 
16:00:13.093893554 +0200
+++ /work/SRC/openSUSE:Factory/.python313.new.7232/python313.changes    
2024-08-08 10:59:07.821425586 +0200
@@ -1,0 +2,97 @@
+Wed Aug  7 13:40:44 UTC 2024 - Matej Cepl <mc...@cepl.eu>
+
+- Add CVE-2024-6923-email-hdr-inject.patch to prevent email
+  header injection due to unquoted newlines (bsc#1228780,
+  CVE-2024-6923).
+- Adding bso1227999-reproducible-builds.patch fixing bsc#1227999
+  adding reproducibility patches from gh#python/cpython!121872
+  and gh#python/cpython!121883.
+- Add skip_test_abort_clients.patch (gh#python/cpython#122136)
+  skip not yet fixed failing test
+- %{profileopt} variable is set according to the variable
+  %{do_profiling} (bsc#1227999)
+- Update bluez-devel-vendor.tar.xz
+
+-------------------------------------------------------------------
+Thu Aug  1 10:35:25 UTC 2024 - Matej Cepl <mc...@cepl.eu>
+
+- Update to 3.13.0~rc1:
+  - Tests
+    - gh-59022: Add tests for pkgutil.extend_path(). Patch by
+      Andreas Stocker.
+    - gh-99242: os.getloadavg() may throw OSError when
+      running regression tests under certain conditions (e.g.
+      chroot). This error is now caught and ignored, since
+      reporting load average is optional.
+  - Security
+    - gh-122133: Authenticate the socket connection for the
+      socket.socketpair() fallback on platforms where AF_UNIX is
+      not available like Windows.
+    - Patch by Gregory P. Smith <g...@krypto.org> and Seth Larson
+      <s...@python.org>. Reported by Ellie <e...@horse64.org>
+    - gh-121957: Fixed missing audit events around interactive
+      use of Python, now also properly firing for python -i, as
+      well as for python -m asyncio. The events in question are
+      cpython.run_stdin and cpython.run_startup.
+  - Library
+    - gh-122400: Handle ValueErrors raised by os.stat() in
+      filecmp.dircmp and filecmp.cmpfiles(). Patch by Bénédikt
+      Tran.
+    - gh-122311: Fix some error messages in pickle.
+    - gh-122332: Fixed segfault with asyncio.Task.get_coro() when
+      using an eager task factory.
+    - gh-105733: ctypes.ARRAY() is now soft deprecated: it no
+      longer emits deprecation warnings and is not scheduled for
+      removal.
+    - gh-122087: Restore inspect.ismethoddescriptor() and
+      inspect.isroutine() returning False for functools.partial
+      objects.
+    - gh-122170: Handle ValueErrors raised by os.stat() in
+      linecache. Patch by Bénédikt Tran.
+    - gh-82951: Serializing objects with complex __qualname__
+      (such as unbound methods and nested classes) by name no
+      longer involves serializing parent objects by value in
+      pickle protocols < 4.
+    - gh-113785: csv now correctly parses numeric fields (when
+      used with csv.QUOTE_NONNUMERIC or csv.QUOTE_STRINGS) which
+      start with an escape character.
+    - gh-122088: @warnings.deprecated now copies the
+      coroutine status of functions and methods so that
+      inspect.iscoroutinefunction() returns the correct result.
+    - gh-120930: Fixed a bug introduced by gh-92081 that added an
+      incorrect extra blank to encoded words occurring in wrapped
+      headers.
+    - gh-121474: Fix missing sanity check for parties arg in
+      threading.Barrier constructor. Patch by Clinton Christian
+      (pygeek).
+    - gh-120289: Fixed the use-after-free issue in cProfile by
+      disallowing disable() and clear() in external timers.
+  - IDLE
+    - gh-122482: Change About IDLE to direct users to
+      discuss.python.org instead of the now unused idle-dev email
+      and mailing list.
+  - Core and Builtins
+    - gh-116090: Fix an issue in JIT builds that prevented some
+      for loops from correctly firing RAISE monitoring events.
+    - gh-122208: Dictionary watchers now only deliver the
+      PyDict_EVENT_ADDED event when the insertion is in a known
+      good state to succeed.
+    - gh-122300: Preserve AST nodes for f-string with
+      single-element format specifiers. Patch by Pablo Galindo
+    - gh-122029: Emit c_call events in sys.setprofile() when a
+      PyMethodObject pointing to a PyCFunction is called.
+    - gh-122026: Fix a bug that caused the tokenizer to not
+      correctly identify mismatched parentheses inside f-strings
+      in some situations. Patch by Pablo Galindo
+    - gh-118934: Make PyEval_GetLocals return borrowed reference
+  - C API
+    - gh-116622: Make PyObject_Print work around a bug in Android
+      and OpenBSD which prevented it from throwing an exception
+      when trying to write to a read-only stream.
+    - gh-121489: Export private _PyBytes_Join() again.
+  - Build
+    - gh-120522: Added a --with-app-store-compliance option to
+      patch out known issues with macOS/iOS App Store review
+      processes.
+
+-------------------------------------------------------------------
@@ -151,0 +249 @@
+- Update bluez-devel-vendor.tar.xz vendored files.

Old:
----
  Python-3.13.0b4.tar.xz
  Python-3.13.0b4.tar.xz.asc

New:
----
  CVE-2024-6923-email-hdr-inject.patch
  Python-3.13.0rc1.tar.xz
  Python-3.13.0rc1.tar.xz.asc
  bso1227999-reproducible-builds.patch
  skip_test_abort_clients.patch

BETA DEBUG BEGIN:
  New:
- Add CVE-2024-6923-email-hdr-inject.patch to prevent email
  header injection due to unquoted newlines (bsc#1228780,
  New:  CVE-2024-6923).
- Adding bso1227999-reproducible-builds.patch fixing bsc#1227999
  adding reproducibility patches from gh#python/cpython!121872
  New:  and gh#python/cpython!121883.
- Add skip_test_abort_clients.patch (gh#python/cpython#122136)
  skip not yet fixed failing test
BETA DEBUG END:

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

Other differences:
------------------
++++++ python313.spec ++++++
--- /var/tmp/diff_new_pack.RqF8KQ/_old  2024-08-08 10:59:08.669460448 +0200
+++ /var/tmp/diff_new_pack.RqF8KQ/_new  2024-08-08 10:59:08.669460448 +0200
@@ -36,6 +36,12 @@
 %bcond_without general
 %endif
 
+%if 0%{?do_profiling}
+%bcond_without profileopt
+%else
+%bcond_with profileopt
+%endif
+
 # Currently supported architectures
 # https://peps.python.org/pep-0744/#support
 %ifarch %{x86_64} aarch64
@@ -110,10 +116,9 @@
 # pyexpat.cpython-35m-armv7-linux-gnueabihf
 # _md5.cpython-38m-x86_64-linux-gnu.so
 %define dynlib() 
%{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so
-%bcond_without profileopt
 Name:           %{python_pkg_name}%{psuffix}
-Version:        3.13.0~b4
-%define         tarversion 3.13.0b4
+Version:        3.13.0~rc1
+%define         tarversion 3.13.0rc1
 %define         tarname    Python-%{tarversion}
 Release:        0
 Summary:        Python 3 Interpreter
@@ -172,6 +177,15 @@
 # PATCH-FIX-SLE fix_configure_rst.patch bpo#43774 mc...@suse.com
 # remove duplicate link targets and make documentation with old Sphinx in SLE
 Patch10:        fix_configure_rst.patch
+# PATCH-FIX-UPSTREAM skip_test_abort_clients.patch gh#python/cpython#122136 
mc...@suse.com
+# Not yet fixed failing test
+Patch11:        skip_test_abort_clients.patch
+# PATCH-FIX-UPSTREAM CVE-2024-6923-email-hdr-inject.patch bsc#1228780 
mc...@suse.com
+# prevent email header injection, patch from gh#python/cpython!122608
+Patch12:        CVE-2024-6923-email-hdr-inject.patch
+# PATCH-FIX-UPSTREAM bso1227999-reproducible-builds.patch bsc#1227999 
mc...@suse.com
+# reproducibility patches
+Patch13:        bso1227999-reproducible-builds.patch
 BuildRequires:  autoconf-archive
 BuildRequires:  automake
 BuildRequires:  fdupes

++++++ CVE-2024-6923-email-hdr-inject.patch ++++++
>From a590277e980eaa8a08204b79ed6c62a763701c8b Mon Sep 17 00:00:00 2001
From: Petr Viktorin <encu...@gmail.com>
Date: Wed, 31 Jul 2024 00:19:48 +0200
Subject: [PATCH] gh-121650: Encode newlines in headers, and verify headers are
 sound (GH-122233)

GH-GH- Encode header parts that contain newlines

Per RFC 2047:

> [...] these encoding schemes allow the
> encoding of arbitrary octet values, mail readers that implement this
> decoding should also ensure that display of the decoded data on the
> recipient's terminal will not cause unwanted side-effects

It seems that the "quoted-word" scheme is a valid way to include
a newline character in a header value, just like we already allow
undecodable bytes or control characters.
They do need to be properly quoted when serialized to text, though.

GH-GH- Verify that email headers are well-formed

This should fail for custom fold() implementations that aren't careful
about newlines.

(cherry picked from commit 097633981879b3c9de9a1dd120d3aa585ecc2384)

Co-authored-by: Petr Viktorin <encu...@gmail.com>
Co-authored-by: Bas Bloemsaat <b...@bloemsaat.org>
Co-authored-by: Serhiy Storchaka <storch...@gmail.com>
---
 Doc/library/email.errors.rst                  |  7 +++
 Doc/library/email.policy.rst                  | 18 ++++++
 Doc/whatsnew/3.13.rst                         |  9 +++
 Lib/email/_header_value_parser.py             | 12 +++-
 Lib/email/_policybase.py                      |  8 +++
 Lib/email/errors.py                           |  4 ++
 Lib/email/generator.py                        | 13 +++-
 Lib/test/test_email/test_generator.py         | 62 +++++++++++++++++++
 Lib/test/test_email/test_policy.py            | 26 ++++++++
 ...-07-27-16-10-41.gh-issue-121650.nf6oc9.rst |  5 ++
 10 files changed, 160 insertions(+), 4 deletions(-)
 create mode 100644 
Misc/NEWS.d/next/Library/2024-07-27-16-10-41.gh-issue-121650.nf6oc9.rst

diff --git a/Doc/library/email.errors.rst b/Doc/library/email.errors.rst
index 33ab4265116178..f8f43d82a3df2e 100644
--- a/Doc/library/email.errors.rst
+++ b/Doc/library/email.errors.rst
@@ -58,6 +58,13 @@ The following exception classes are defined in the 
:mod:`email.errors` module:
    :class:`~email.mime.nonmultipart.MIMENonMultipart` (e.g.
    :class:`~email.mime.image.MIMEImage`).
 
+
+.. exception:: HeaderWriteError()
+
+   Raised when an error occurs when the :mod:`~email.generator` outputs
+   headers.
+
+
 .. exception:: MessageDefect()
 
    This is the base class for all defects found when parsing email messages.
diff --git a/Doc/library/email.policy.rst b/Doc/library/email.policy.rst
index 83feedf728351e..314767d0802a08 100644
--- a/Doc/library/email.policy.rst
+++ b/Doc/library/email.policy.rst
@@ -229,6 +229,24 @@ added matters.  To illustrate::
 
       .. versionadded:: 3.6
 
+
+   .. attribute:: verify_generated_headers
+
+      If ``True`` (the default), the generator will raise
+      :exc:`~email.errors.HeaderWriteError` instead of writing a header
+      that is improperly folded or delimited, such that it would
+      be parsed as multiple headers or joined with adjacent data.
+      Such headers can be generated by custom header classes or bugs
+      in the ``email`` module.
+
+      As it's a security feature, this defaults to ``True`` even in the
+      :class:`~email.policy.Compat32` policy.
+      For backwards compatible, but unsafe, behavior, it must be set to
+      ``False`` explicitly.
+
+      .. versionadded:: 3.13
+
+
    The following :class:`Policy` method is intended to be called by code using
    the email library to create policy instances with custom settings:
 
diff --git a/Doc/whatsnew/3.13.rst b/Doc/whatsnew/3.13.rst
index b53f419a59f062..35b808a4dd00a4 100644
--- a/Doc/whatsnew/3.13.rst
+++ b/Doc/whatsnew/3.13.rst
@@ -724,6 +724,15 @@ doctest
 email
 -----
 
+* Headers with embedded newlines are now quoted on output.
+
+  The :mod:`~email.generator` will now refuse to serialize (write) headers
+  that are improperly folded or delimited, such that they would be parsed as
+  multiple headers or joined with adjacent data.
+  If you need to turn this safety feature off,
+  set :attr:`~email.policy.Policy.verify_generated_headers`.
+  (Contributed by Bas Bloemsaat and Petr Viktorin in :gh:`121650`.)
+
 * :func:`email.utils.getaddresses` and :func:`email.utils.parseaddr` now return
   ``('', '')`` 2-tuples in more situations where invalid email addresses are
   encountered instead of potentially inaccurate values. Add optional *strict*
diff --git a/Lib/email/_header_value_parser.py 
b/Lib/email/_header_value_parser.py
index 7da1bbaf8a80d7..ec2215a5e5f33c 100644
--- a/Lib/email/_header_value_parser.py
+++ b/Lib/email/_header_value_parser.py
@@ -92,6 +92,8 @@
 ASPECIALS = TSPECIALS | set("*'%")
 ATTRIBUTE_ENDS = ASPECIALS | WSP
 EXTENDED_ATTRIBUTE_ENDS = ATTRIBUTE_ENDS - set('%')
+NLSET = {'\n', '\r'}
+SPECIALSNL = SPECIALS | NLSET
 
 def quote_string(value):
     return '"'+str(value).replace('\\', '\\\\').replace('"', r'\"')+'"'
@@ -2802,9 +2804,13 @@ def _refold_parse_tree(parse_tree, *, policy):
             wrap_as_ew_blocked -= 1
             continue
         tstr = str(part)
-        if part.token_type == 'ptext' and set(tstr) & SPECIALS:
-            # Encode if tstr contains special characters.
-            want_encoding = True
+        if not want_encoding:
+            if part.token_type == 'ptext':
+                # Encode if tstr contains special characters.
+                want_encoding = not SPECIALSNL.isdisjoint(tstr)
+            else:
+                # Encode if tstr contains newlines.
+                want_encoding = not NLSET.isdisjoint(tstr)
         try:
             tstr.encode(encoding)
             charset = encoding
diff --git a/Lib/email/_policybase.py b/Lib/email/_policybase.py
index 2ec54fbabae83c..5f9aa9fb091fa2 100644
--- a/Lib/email/_policybase.py
+++ b/Lib/email/_policybase.py
@@ -157,6 +157,13 @@ class Policy(_PolicyBase, metaclass=abc.ABCMeta):
     message_factory     -- the class to use to create new message objects.
                            If the value is None, the default is Message.
 
+    verify_generated_headers
+                        -- if true, the generator verifies that each header
+                           they are properly folded, so that a parser won't
+                           treat it as multiple headers, start-of-body, or
+                           part of another header.
+                           This is a check against custom Header & fold()
+                           implementations.
     """
 
     raise_on_defect = False
@@ -165,6 +172,7 @@ class Policy(_PolicyBase, metaclass=abc.ABCMeta):
     max_line_length = 78
     mangle_from_ = False
     message_factory = None
+    verify_generated_headers = True
 
     def handle_defect(self, obj, defect):
         """Based on policy, either raise defect or call register_defect.
diff --git a/Lib/email/errors.py b/Lib/email/errors.py
index 3ad00565549968..02aa5eced6ae46 100644
--- a/Lib/email/errors.py
+++ b/Lib/email/errors.py
@@ -29,6 +29,10 @@ class CharsetError(MessageError):
     """An illegal charset was given."""
 
 
+class HeaderWriteError(MessageError):
+    """Error while writing headers."""
+
+
 # These are parsing defects which the parser was able to work around.
 class MessageDefect(ValueError):
     """Base class for a message defect."""
diff --git a/Lib/email/generator.py b/Lib/email/generator.py
index c8056ad47baa0f..47b9df8f4e6090 100644
--- a/Lib/email/generator.py
+++ b/Lib/email/generator.py
@@ -14,12 +14,14 @@
 from copy import deepcopy
 from io import StringIO, BytesIO
 from email.utils import _has_surrogates
+from email.errors import HeaderWriteError
 
 UNDERSCORE = '_'
 NL = '\n'  # XXX: no longer used by the code below.
 
 NLCRE = re.compile(r'\r\n|\r|\n')
 fcre = re.compile(r'^From ', re.MULTILINE)
+NEWLINE_WITHOUT_FWSP = re.compile(r'\r\n[^ \t]|\r[^ \n\t]|\n[^ \t]')
 
 
 class Generator:
@@ -222,7 +224,16 @@ def _dispatch(self, msg):
 
     def _write_headers(self, msg):
         for h, v in msg.raw_items():
-            self.write(self.policy.fold(h, v))
+            folded = self.policy.fold(h, v)
+            if self.policy.verify_generated_headers:
+                linesep = self.policy.linesep
+                if not folded.endswith(self.policy.linesep):
+                    raise HeaderWriteError(
+                        f'folded header does not end with {linesep!r}: 
{folded!r}')
+                if NEWLINE_WITHOUT_FWSP.search(folded.removesuffix(linesep)):
+                    raise HeaderWriteError(
+                        f'folded header contains newline: {folded!r}')
+            self.write(folded)
         # A blank line always separates headers from body
         self.write(self._NL)
 
diff --git a/Lib/test/test_email/test_generator.py 
b/Lib/test/test_email/test_generator.py
index bc6f734d4fd0a9..c75a842c33578e 100644
--- a/Lib/test/test_email/test_generator.py
+++ b/Lib/test/test_email/test_generator.py
@@ -6,6 +6,7 @@
 from email.generator import Generator, BytesGenerator
 from email.headerregistry import Address
 from email import policy
+import email.errors
 from test.test_email import TestEmailBase, parameterize
 
 
@@ -249,6 +250,44 @@ def 
test_rfc2231_wrapping_switches_to_default_len_if_too_narrow(self):
         g.flatten(msg)
         self.assertEqual(s.getvalue(), self.typ(expected))
 
+    def test_keep_encoded_newlines(self):
+        msg = self.msgmaker(self.typ(textwrap.dedent("""\
+            To: nobody
+            Subject: Bad subject=?UTF-8?Q?=0A?=Bcc: inject...@example.com
+
+            None
+            """)))
+        expected = textwrap.dedent("""\
+            To: nobody
+            Subject: Bad subject=?UTF-8?Q?=0A?=Bcc: inject...@example.com
+
+            None
+            """)
+        s = self.ioclass()
+        g = self.genclass(s, policy=self.policy.clone(max_line_length=80))
+        g.flatten(msg)
+        self.assertEqual(s.getvalue(), self.typ(expected))
+
+    def test_keep_long_encoded_newlines(self):
+        msg = self.msgmaker(self.typ(textwrap.dedent("""\
+            To: nobody
+            Subject: Bad subject=?UTF-8?Q?=0A?=Bcc: inject...@example.com
+
+            None
+            """)))
+        expected = textwrap.dedent("""\
+            To: nobody
+            Subject: Bad subject
+             =?utf-8?q?=0A?=Bcc:
+             inject...@example.com
+
+            None
+            """)
+        s = self.ioclass()
+        g = self.genclass(s, policy=self.policy.clone(max_line_length=30))
+        g.flatten(msg)
+        self.assertEqual(s.getvalue(), self.typ(expected))
+
 
 class TestGenerator(TestGeneratorBase, TestEmailBase):
 
@@ -273,6 +312,29 @@ def test_flatten_unicode_linesep(self):
         g.flatten(msg)
         self.assertEqual(s.getvalue(), self.typ(expected))
 
+    def test_verify_generated_headers(self):
+        """gh-121650: by default the generator prevents header injection"""
+        class LiteralHeader(str):
+            name = 'Header'
+            def fold(self, **kwargs):
+                return self
+
+        for text in (
+            'Value\r\nBad Injection\r\n',
+            'NoNewLine'
+        ):
+            with self.subTest(text=text):
+                message = message_from_string(
+                    "Header: Value\r\n\r\nBody",
+                    policy=self.policy,
+                )
+
+                del message['Header']
+                message['Header'] = LiteralHeader(text)
+
+                with self.assertRaises(email.errors.HeaderWriteError):
+                    message.as_string()
+
 
 class TestBytesGenerator(TestGeneratorBase, TestEmailBase):
 
diff --git a/Lib/test/test_email/test_policy.py 
b/Lib/test/test_email/test_policy.py
index c6b9c80efe1b54..baa35fd68e49c5 100644
--- a/Lib/test/test_email/test_policy.py
+++ b/Lib/test/test_email/test_policy.py
@@ -26,6 +26,7 @@ class PolicyAPITests(unittest.TestCase):
         'raise_on_defect':          False,
         'mangle_from_':             True,
         'message_factory':          None,
+        'verify_generated_headers': True,
         }
     # These default values are the ones set on email.policy.default.
     # If any of these defaults change, the docs must be updated.
@@ -294,6 +295,31 @@ def test_short_maxlen_error(self):
                 with self.assertRaises(email.errors.HeaderParseError):
                     policy.fold("Subject", subject)
 
+    def test_verify_generated_headers(self):
+        """Turning protection off allows header injection"""
+        policy = email.policy.default.clone(verify_generated_headers=False)
+        for text in (
+            'Header: Value\r\nBad: Injection\r\n',
+            'Header: NoNewLine'
+        ):
+            with self.subTest(text=text):
+                message = email.message_from_string(
+                    "Header: Value\r\n\r\nBody",
+                    policy=policy,
+                )
+                class LiteralHeader(str):
+                    name = 'Header'
+                    def fold(self, **kwargs):
+                        return self
+
+                del message['Header']
+                message['Header'] = LiteralHeader(text)
+
+                self.assertEqual(
+                    message.as_string(),
+                    f"{text}\nBody",
+                )
+
     # XXX: Need subclassing tests.
     # For adding subclassed objects, make sure the usual rules apply (subclass
     # wins), but that the order still works (right overrides left).
diff --git 
a/Misc/NEWS.d/next/Library/2024-07-27-16-10-41.gh-issue-121650.nf6oc9.rst 
b/Misc/NEWS.d/next/Library/2024-07-27-16-10-41.gh-issue-121650.nf6oc9.rst
new file mode 100644
index 00000000000000..83dd28d4ac575b
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-07-27-16-10-41.gh-issue-121650.nf6oc9.rst
@@ -0,0 +1,5 @@
+:mod:`email` headers with embedded newlines are now quoted on output. The
+:mod:`~email.generator` will now refuse to serialize (write) headers that
+are unsafely folded or delimited; see
+:attr:`~email.policy.Policy.verify_generated_headers`. (Contributed by Bas
+Bloemsaat and Petr Viktorin in :gh:`121650`.)

++++++ bluez-devel-vendor.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Vendor/bluetooth/bluetooth.h 
new/Vendor/bluetooth/bluetooth.h
--- old/Vendor/bluetooth/bluetooth.h    2023-10-02 19:07:44.953002185 +0200
+++ new/Vendor/bluetooth/bluetooth.h    2024-08-07 15:40:00.319405460 +0200
@@ -174,7 +174,7 @@
 struct bt_iso_bcast_qos {
        uint8_t  big;
        uint8_t  bis;
-       uint8_t  sync_interval;
+       uint8_t  sync_factor;
        uint8_t  packing;
        uint8_t  framing;
        struct bt_iso_io_qos in;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Vendor/bluetooth/sdp_lib.h 
new/Vendor/bluetooth/sdp_lib.h
--- old/Vendor/bluetooth/sdp_lib.h      2023-10-02 19:07:44.956335545 +0200
+++ new/Vendor/bluetooth/sdp_lib.h      2024-08-07 15:40:00.322738820 +0200
@@ -141,7 +141,8 @@
 
 /* flexible extraction of basic attributes - Jean II */
 int sdp_get_int_attr(const sdp_record_t *rec, uint16_t attr, int *value);
-int sdp_get_string_attr(const sdp_record_t *rec, uint16_t attr, char *value, 
int valuelen);
+int sdp_get_string_attr(const sdp_record_t *rec, uint16_t attr, char *value,
+                                                       size_t valuelen);
 
 /*
  * Basic sdp data functions
@@ -543,32 +544,38 @@
 int sdp_get_service_ttl(const sdp_record_t *rec, uint32_t *svcTTLInfo);
 int sdp_get_database_state(const sdp_record_t *rec, uint32_t *svcDBState);
 
-static inline int sdp_get_service_name(const sdp_record_t *rec, char *str, int 
len)
+static inline int sdp_get_service_name(const sdp_record_t *rec, char *str,
+                                                               size_t len)
 {
        return sdp_get_string_attr(rec, SDP_ATTR_SVCNAME_PRIMARY, str, len);
 }
 
-static inline int sdp_get_service_desc(const sdp_record_t *rec, char *str, int 
len)
+static inline int sdp_get_service_desc(const sdp_record_t *rec, char *str,
+                                                               size_t len)
 {
        return sdp_get_string_attr(rec, SDP_ATTR_SVCDESC_PRIMARY, str, len);
 }
 
-static inline int sdp_get_provider_name(const sdp_record_t *rec, char *str, 
int len)
+static inline int sdp_get_provider_name(const sdp_record_t *rec, char *str,
+                                                               size_t len)
 {
        return sdp_get_string_attr(rec, SDP_ATTR_PROVNAME_PRIMARY, str, len);
 }
 
-static inline int sdp_get_doc_url(const sdp_record_t *rec, char *str, int len)
+static inline int sdp_get_doc_url(const sdp_record_t *rec, char *str,
+                                                               size_t len)
 {
        return sdp_get_string_attr(rec, SDP_ATTR_DOC_URL, str, len);
 }
 
-static inline int sdp_get_clnt_exec_url(const sdp_record_t *rec, char *str, 
int len)
+static inline int sdp_get_clnt_exec_url(const sdp_record_t *rec, char *str,
+                                                               size_t len)
 {
        return sdp_get_string_attr(rec, SDP_ATTR_CLNT_EXEC_URL, str, len);
 }
 
-static inline int sdp_get_icon_url(const sdp_record_t *rec, char *str, int len)
+static inline int sdp_get_icon_url(const sdp_record_t *rec, char *str,
+                                                               size_t len)
 {
        return sdp_get_string_attr(rec, SDP_ATTR_ICON_URL, str, len);
 }

++++++ bpo-31046_ensurepip_honours_prefix.patch ++++++
--- /var/tmp/diff_new_pack.RqF8KQ/_old  2024-08-08 10:59:08.841467519 +0200
+++ /var/tmp/diff_new_pack.RqF8KQ/_new  2024-08-08 10:59:08.849467848 +0200
@@ -139,7 +139,7 @@
  
 --- a/Makefile.pre.in
 +++ b/Makefile.pre.in
-@@ -2144,7 +2144,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL
+@@ -2157,7 +2157,7 @@ install: @FRAMEWORKINSTALLFIRST@ @INSTAL
                        install|*) ensurepip="" ;; \
                esac; \
                $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
@@ -148,7 +148,7 @@
        fi
  
  .PHONY: altinstall
-@@ -2155,7 +2155,7 @@ altinstall: commoninstall
+@@ -2168,7 +2168,7 @@ altinstall: commoninstall
                        install|*) ensurepip="--altinstall" ;; \
                esac; \
                $(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \

++++++ bso1227999-reproducible-builds.patch ++++++
>From ac2b8869724d7a57d9b5efbdce2f20423214e8bb Mon Sep 17 00:00:00 2001
From: "Bernhard M. Wiedemann" <bwiedem...@suse.de>
Date: Tue, 16 Jul 2024 21:39:33 +0200
Subject: [PATCH] Allow to override build date with SOURCE_DATE_EPOCH

to make builds reproducible.
See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.
---
 Doc/library/functions.rst |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/Doc/library/functions.rst
+++ b/Doc/library/functions.rst
@@ -1502,7 +1502,7 @@ are always available.  They are listed h
    (where :func:`open` is declared), :mod:`os`, :mod:`os.path`, 
:mod:`tempfile`,
    and :mod:`shutil`.
 
-   .. audit-event:: open file,mode,flags open
+   .. audit-event:: open path,mode,flags open
 
    The ``mode`` and ``flags`` arguments may have been modified or inferred from
    the original call.

++++++ fix_configure_rst.patch ++++++
--- /var/tmp/diff_new_pack.RqF8KQ/_old  2024-08-08 10:59:08.889469492 +0200
+++ /var/tmp/diff_new_pack.RqF8KQ/_new  2024-08-08 10:59:08.893469657 +0200
@@ -4,7 +4,7 @@
 
 --- a/Misc/NEWS
 +++ b/Misc/NEWS
-@@ -17527,7 +17527,7 @@ C API
+@@ -17647,7 +17647,7 @@ C API
  - bpo-40939: Removed documentation for the removed ``PyParser_*`` C API.
  
  - bpo-43795: The list in :ref:`limited-api-list` now shows the public name

++++++ python-3.3.0b1-fix_date_time_compiler.patch ++++++
--- /var/tmp/diff_new_pack.RqF8KQ/_old  2024-08-08 10:59:08.969472781 +0200
+++ /var/tmp/diff_new_pack.RqF8KQ/_new  2024-08-08 10:59:08.969472781 +0200
@@ -4,7 +4,7 @@
 
 --- a/Makefile.pre.in
 +++ b/Makefile.pre.in
-@@ -1666,11 +1666,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
+@@ -1679,11 +1679,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
                $(DTRACE_OBJS) \
                $(srcdir)/Modules/getbuildinfo.c
        $(CC) -c $(PY_CORE_CFLAGS) \


++++++ skip_test_abort_clients.patch ++++++
---
 Lib/test/test_asyncio/test_server.py |    1 +
 1 file changed, 1 insertion(+)

Index: Python-3.13.0rc1/Lib/test/test_asyncio/test_server.py
===================================================================
--- Python-3.13.0rc1.orig/Lib/test/test_asyncio/test_server.py
+++ Python-3.13.0rc1/Lib/test/test_asyncio/test_server.py
@@ -212,6 +212,7 @@ class TestServer2(unittest.IsolatedAsync
         await asyncio.sleep(0)
         self.assertTrue(task.done())
 
+    @unittest.skip('Failing test gh#python/cpython#122136')
     async def test_abort_clients(self):
         async def serve(rd, wr):
             fut.set_result((rd, wr))

Reply via email to