From 90900ab6196caa01da6a7e825f3223893a92a0bb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dylan=20A=C3=AFssi?= <dylan.aissi@collabora.com>
Date: Tue, 25 Feb 2025 09:45:39 +0100
Subject: [PATCH 1/2] import-debian-package: stop using a PosixPath object as
 context manager
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is no longer supported since Python 3.13 and leads
to the following error:

Traceback (most recent call last):
  File "/builds/pkg/apertis-dev-tools/tests/import-debian-package/../../tools/import-debian-package", line 681, in <module>
    main(sys.argv)
    ~~~~^^^^^^^^^^
  File "/builds/pkg/apertis-dev-tools/tests/import-debian-package/../../tools/import-debian-package", line 666, in main
    do_import(args)
    ~~~~~~~~~^^^^^^
  File "/builds/pkg/apertis-dev-tools/tests/import-debian-package/../../tools/import-debian-package", line 396, in do_import
    with ensure_dir_or_none(args.cache_dir) or TemporaryDirectory() as downloaddir:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'PosixPath' object does not support the context manager protocol

Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com>
---
 tools/import-debian-package | 54 ++++++++++++++++++++-----------------
 1 file changed, 29 insertions(+), 25 deletions(-)

diff --git a/tools/import-debian-package b/tools/import-debian-package
index bad0725..eda6a47 100755
--- a/tools/import-debian-package
+++ b/tools/import-debian-package
@@ -19,7 +19,7 @@ import sys
 from functools import lru_cache
 from gettext import gettext as _
 from pathlib import Path
-from tempfile import TemporaryDirectory
+from tempfile import TemporaryDirectory, mkdtemp
 from typing import Mapping, Optional
 from urllib.error import HTTPError, URLError
 from urllib.parse import quote
@@ -393,32 +393,36 @@ def do_import(args):
     if parse_ref(apertis_tag):
         raise Abort(f"Apertis tag {apertis_tag} already exists, cannot continue")
 
-    with ensure_dir_or_none(args.cache_dir) or TemporaryDirectory() as downloaddir:
-        if args.import_local_dsc:
-            logging.info(f"Overlaying Apertis package version {version}")
-            downloaded = args.import_local_dsc.name
-        else:
-            logging.info("Fetching the package information")
+    downloaddir = (
+        ensure_dir_or_none(args.cache_dir)
+        if ensure_dir_or_none(args.cache_dir) is not None
+        else mkdtemp()
+    )
+    if args.import_local_dsc:
+        logging.info(f"Overlaying Apertis package version {version}")
+        downloaded = args.import_local_dsc.name
+    else:
+        logging.info("Fetching the package information")
 
-            cached_dsc = get_cached_dsc(package, version, args.cache_dir)
+        cached_dsc = get_cached_dsc(package, version, args.cache_dir)
 
-            try:
-                url = args.mirror.rstrip("/") + get_debian_dsc_path(package, version)
-            except KeyboardInterrupt:
-                raise
-            except (KeyError, HTTPError, URLError):
-                if not cached_dsc:
-                    raise Abort(
-                        f"Unable to download source package {package} version {version}"
-                    )
-                else:
-                    logging.warning(
-                        f"Unable to download source package {package} version {version}, but found cached .dsc"
-                    )
-                    url = cached_dsc
-
-            downloaded = fetch(package, version, url, downloaddir, cached_dsc)
-        import_debian_dsc(args, downloaded, upstream, downstream, version)
+        try:
+            url = args.mirror.rstrip("/") + get_debian_dsc_path(package, version)
+        except KeyboardInterrupt:
+            raise
+        except (KeyError, HTTPError, URLError):
+            if not cached_dsc:
+                raise Abort(
+                    f"Unable to download source package {package} version {version}"
+                )
+            else:
+                logging.warning(
+                    f"Unable to download source package {package} version {version}, but found cached .dsc"
+                )
+                url = cached_dsc
+
+        downloaded = fetch(package, version, url, downloaddir, cached_dsc)
+    import_debian_dsc(args, downloaded, upstream, downstream, version)
 
     if args.dsc:
         d = deb822.Dsc(args.dsc)
-- 
GitLab


From 16703947b09f3ff79ae256bb233810b12cda6a46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dylan=20A=C3=AFssi?= <dylan.aissi@collabora.com>
Date: Tue, 25 Feb 2025 09:48:50 +0100
Subject: [PATCH 2/2] Release apertis-dev-tools version 0.2026.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Dylan Aïssi <dylan.aissi@collabora.com>
---
 debian/changelog | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 577acc8..89e9125 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+apertis-dev-tools (0.2026.1) apertis; urgency=medium
+
+  * import-debian-package: stop using a PosixPath object as context manager.
+    This is no longer supported since Python 3.13 and triggers an error.
+
+ -- Dylan Aïssi <dylan.aissi@collabora.com>  Tue, 25 Feb 2025 09:47:11 +0100
+
 apertis-dev-tools (0.2026.0) apertis; urgency=medium
 
   * apertis-pkg-merge-upstream-to-downstreams:
-- 
GitLab