git: 40f7ab8393f2 - main - deskutils/py-vdirsyncer: Update to 0.20.0

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Sun, 07 Sep 2025 23:11:57 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=40f7ab8393f2c0c6b36c0bbc6146fa65b1f73761

commit 40f7ab8393f2c0c6b36c0bbc6146fa65b1f73761
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2025-09-07 22:35:38 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2025-09-07 23:03:34 +0000

    deskutils/py-vdirsyncer: Update to 0.20.0
    
    Changes:        https://github.com/pimutils/vdirsyncer/blob/main/CHANGELOG.rst
                    https://vdirsyncer.pimutils.org/en/stable/changelog.html
---
 deskutils/py-vdirsyncer/Makefile                   |   9 +-
 deskutils/py-vdirsyncer/distinfo                   |   6 +-
 deskutils/py-vdirsyncer/files/patch-atomicwrites   | 111 ---------------------
 deskutils/py-vdirsyncer/files/patch-pyproject.toml |  21 ++++
 deskutils/py-vdirsyncer/files/patch-setup.py       |  11 --
 5 files changed, 28 insertions(+), 130 deletions(-)

diff --git a/deskutils/py-vdirsyncer/Makefile b/deskutils/py-vdirsyncer/Makefile
index a186d20a78e4..cfcfb0248bbb 100644
--- a/deskutils/py-vdirsyncer/Makefile
+++ b/deskutils/py-vdirsyncer/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	vdirsyncer
-PORTVERSION=	0.19.3
-PORTREVISION=	1
+PORTVERSION=	0.20.0
 CATEGORIES=	deskutils python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
@@ -13,11 +12,11 @@ WWW=		https://vdirsyncer.pimutils.org/en/stable/ \
 LICENSE=	BSD3CLAUSE
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}setuptools>=61:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setuptools-scm>=8:devel/py-setuptools-scm@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}aiohttp>=3.8.0<4.0.0:www/py-aiohttp@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}aiostream>=0.4.3:www/py-aiostream@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}aiostream>=0.4.3<0.8.0:www/py-aiostream@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}click>=5.0<9.0:devel/py-click@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}click-log>=0.3.0<0.5.0:devel/py-click-log@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}requests>=2.20.0:www/py-requests@${PY_FLAVOR} \
diff --git a/deskutils/py-vdirsyncer/distinfo b/deskutils/py-vdirsyncer/distinfo
index f0fc3e36f838..9e8211b6a7f3 100644
--- a/deskutils/py-vdirsyncer/distinfo
+++ b/deskutils/py-vdirsyncer/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1726487338
-SHA256 (vdirsyncer-0.19.3.tar.gz) = e437851feb985dec3544654f8f9cf6dd109b0b03f7e19956086603092ffeb28f
-SIZE (vdirsyncer-0.19.3.tar.gz) = 125478
+TIMESTAMP = 1757120620
+SHA256 (vdirsyncer-0.20.0.tar.gz) = feb1a533500a95c14fd155733a1056fe359192553d82c07c6ba04fcbfc40b12d
+SIZE (vdirsyncer-0.20.0.tar.gz) = 126633
diff --git a/deskutils/py-vdirsyncer/files/patch-atomicwrites b/deskutils/py-vdirsyncer/files/patch-atomicwrites
deleted file mode 100644
index 3d0b9bb94616..000000000000
--- a/deskutils/py-vdirsyncer/files/patch-atomicwrites
+++ /dev/null
@@ -1,111 +0,0 @@
-Obtained from:	https://github.com/pimutils/vdirsyncer/commit/8b063c39cb3e26a2beef5b6beed7e99c9e9641ac
-
---- setup.py.orig	2024-09-11 15:26:58 UTC
-+++ setup.py
-@@ -16,8 +16,6 @@ requirements = [
-     "click>=5.0,<9.0",
-     "click-log>=0.3.0, <0.5.0",
-     "requests >=2.20.0",
--    # https://github.com/untitaker/python-atomicwrites/commit/4d12f23227b6a944ab1d99c507a69fdbc7c9ed6d  # noqa
--    "atomicwrites>=0.1.7",
-     "aiohttp>=3.8.0,<4.0.0",
-     "aiostream>=0.4.3,<0.5.0",
- ]
---- vdirsyncer/cli/utils.py.orig	2024-09-11 15:26:58 UTC
-+++ vdirsyncer/cli/utils.py
-@@ -10,7 +10,6 @@ import click
- 
- import aiohttp
- import click
--from atomicwrites import atomic_write
- 
- from .. import BUGTRACKER_HOME
- from .. import DOCS_HOME
-@@ -21,6 +20,7 @@ from ..sync.status import SqliteStatus
- from ..sync.exceptions import StorageEmpty
- from ..sync.exceptions import SyncConflict
- from ..sync.status import SqliteStatus
-+from ..utils import atomic_write
- from ..utils import expand_path
- from ..utils import get_storage_init_args
- from . import cli_logger
---- vdirsyncer/storage/filesystem.py.orig	2024-09-11 15:26:58 UTC
-+++ vdirsyncer/storage/filesystem.py
-@@ -5,9 +5,8 @@ import subprocess
- import os
- import subprocess
- 
--from atomicwrites import atomic_write
--
- from .. import exceptions
-+from ..utils import atomic_write
- from ..utils import checkdir
- from ..utils import expand_path
- from ..utils import generate_href
---- vdirsyncer/storage/google.py.orig	2024-09-11 15:26:58 UTC
-+++ vdirsyncer/storage/google.py
-@@ -11,9 +11,9 @@ import click
- 
- import aiohttp
- import click
--from atomicwrites import atomic_write
- 
- from .. import exceptions
-+from ..utils import atomic_write
- from ..utils import checkdir
- from ..utils import expand_path
- from ..utils import open_graphical_browser
---- vdirsyncer/storage/singlefile.py.orig	2024-09-11 15:26:58 UTC
-+++ vdirsyncer/storage/singlefile.py
-@@ -8,9 +8,8 @@ from typing import Iterable
- import os
- from typing import Iterable
- 
--from atomicwrites import atomic_write
--
- from .. import exceptions
-+from ..utils import atomic_write
- from ..utils import checkfile
- from ..utils import expand_path
- from ..utils import get_etag_from_file
---- vdirsyncer/utils.py.orig	2024-09-11 15:26:58 UTC
-+++ vdirsyncer/utils.py
-@@ -1,8 +1,10 @@ from __future__ import annotations
- from __future__ import annotations
- 
-+import contextlib
- import functools
- import os
- import sys
-+import tempfile
- import uuid
- from inspect import getfullargspec
- from typing import Callable
-@@ -220,3 +222,27 @@ def open_graphical_browser(url, new=0, autoraise=True)
-             return
- 
-     raise RuntimeError("No graphical browser found. Please open the URL " "manually.")
-+
-+
-+@contextlib.contextmanager
-+def atomic_write(dest, mode="wb", overwrite=False):
-+    if "w" not in mode:
-+        raise RuntimeError("`atomic_write` requires write access")
-+
-+    fd, src = tempfile.mkstemp(prefix=os.path.basename(dest), dir=os.path.dirname(dest))
-+    file = os.fdopen(fd, mode=mode)
-+
-+    try:
-+        yield file
-+    except Exception:
-+        os.unlink(src)
-+        raise
-+    else:
-+        file.flush()
-+        file.close()
-+
-+        if overwrite:
-+            os.rename(src, dest)
-+        else:
-+            os.link(src, dest)
-+            os.unlink(src)
diff --git a/deskutils/py-vdirsyncer/files/patch-pyproject.toml b/deskutils/py-vdirsyncer/files/patch-pyproject.toml
new file mode 100644
index 000000000000..5c3217b4eb53
--- /dev/null
+++ b/deskutils/py-vdirsyncer/files/patch-pyproject.toml
@@ -0,0 +1,21 @@
+--- pyproject.toml.orig	2025-08-28 20:57:38 UTC
++++ pyproject.toml
+@@ -4,7 +4,7 @@
+ # how to package vdirsyncer.
+ 
+ [build-system]
+-requires = ["setuptools>=64", "setuptools_scm>=8"]
++requires = ["setuptools>=61", "setuptools_scm>=8"]
+ build-backend = "setuptools.build_meta"
+ 
+ [project]
+@@ -16,8 +16,7 @@ keywords = ["todo", "task", "icalendar", "cli"]
+ readme = "README.rst"
+ requires-python = ">=3.8"
+ keywords = ["todo", "task", "icalendar", "cli"]
+-license = "BSD-3-Clause"
+-license-files = ["LICENSE"]
++license = { text = "BSD-3-Clause" }
+ classifiers = [
+     "Development Status :: 4 - Beta",
+     "Environment :: Console",
diff --git a/deskutils/py-vdirsyncer/files/patch-setup.py b/deskutils/py-vdirsyncer/files/patch-setup.py
deleted file mode 100644
index b44e3361296f..000000000000
--- a/deskutils/py-vdirsyncer/files/patch-setup.py
+++ /dev/null
@@ -1,11 +0,0 @@
---- setup.py.orig	2024-09-11 15:26:58 UTC
-+++ setup.py
-@@ -17,7 +17,7 @@ requirements = [
-     "click-log>=0.3.0, <0.5.0",
-     "requests >=2.20.0",
-     "aiohttp>=3.8.0,<4.0.0",
--    "aiostream>=0.4.3,<0.5.0",
-+    "aiostream>=0.4.3",
- ]
- 
-