15
0

- Add patch support-new-pytest-asyncio.patch:

* Support changes required by pytest-asyncio 1.0.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-vdirsyncer?expand=0&rev=47
This commit is contained in:
2025-07-22 04:29:58 +00:00
committed by Git OBS Bridge
commit ce8252b5c1
10 changed files with 544 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

View File

@@ -0,0 +1,20 @@
From 3eb9ce5ae4320d52e6c876874511ff96a8a45f51 Mon Sep 17 00:00:00 2001
From: Hugo Osvaldo Barrera <hugo@barrera.io>
Date: Tue, 9 Jun 2020 14:45:02 +0200
Subject: [PATCH] Add compatibility with latest click
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/setup.py
+++ b/setup.py
@@ -10,7 +10,7 @@ from setuptools import setup
requirements = [
# https://github.com/mitsuhiko/click/issues/200
- "click>=5.0,<9.0",
+ "click>=5.0",
"click-log>=0.3.0, <0.5.0",
"requests >=2.20.0",
# https://github.com/sigmavirus24/requests-toolbelt/pull/28

309
python-vdirsyncer.changes Normal file
View File

@@ -0,0 +1,309 @@
-------------------------------------------------------------------
Tue Jul 22 04:29:15 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
- Add patch support-new-pytest-asyncio.patch:
* Support changes required by pytest-asyncio 1.0.
-------------------------------------------------------------------
Tue Dec 17 00:59:32 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 0.19.3:
* Added a no_delete option to the storage configuration. :gh:`1090`
* Fix crash when running vdirsyncer repair on a collection. :gh:`1019`
* Add an option to request vCard v4.0. :gh:`1066`
* Require matching BEGIN and END lines in vobjects. :gh:`1103`
* Implement digest auth. :gh:`1137`
* Add filter_hook parameter to :storage:`http`. :gh:`1136`
- Drop patch 3eb9ce5ae4320d52e6c876874511ff96a8a45f51.patch, included.
- Switch to pyproject macros.
- Stop skipping so many tests.
-------------------------------------------------------------------
Fri Dec 8 16:14:31 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 0.19.2:
* Improve the performance of ``SingleFileStorage``. :gh:`818`
* Properly document some caveats of the Google Contacts
storage.
* Fix crash when using auth certs. :gh:`1033`
* The ``filesystem`` storage can be specified with ``type =
* "filesystem/icalendar"`` or ``type = "filesystem/vcard"``.
This has not functional impact, and is merely for forward
compatibility with the Rust implementation of vdirsyncer.
* Python 3.10 and 3.11 are officially supported.
* Instructions for integrating with Google CalDav/CardDav have
changed.
* Applications now need to be registered as "Desktop
applications". Using "Web application" no longer works due
to changes on Google's side.
* Fixed crash when operating on Google Contacts. :gh:`994`
* The ``HTTP_PROXY`` and ``HTTPS_PROXY`` are now respected.
* Instructions for integrating with Google CalDav/CardDav have
changed.
* Applications now need to be registered as "Web Application".
* Various documentation updates.
-------------------------------------------------------------------
Thu Jul 27 14:34:41 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Add missing dependency
-------------------------------------------------------------------
Thu May 4 23:56:08 UTC 2023 - Dirk Müller <dmueller@suse.com>
- fix and reenable tests
-------------------------------------------------------------------
Sun Dec 18 22:01:01 UTC 2022 - Matej Cepl <mcepl@suse.com>
- Update to 0.19.0:
- Add "shell" password fetch strategy to pass command string to
a shell.
- Add "description" and "order" as metadata.
These fetch the CalDAV: calendar-description,
``CardDAV:addressbook-description`` and
``apple-ns:calendar-order`` properties respectively.
- Add a new ``showconfig`` status. This prints *some*
configuration values as JSON. This is intended to be used by
external tools and helpers that interact with ``vdirsyncer``,
and considered experimental.
- Update TLS-related tests that were failing due to weak MDs.
- ``pytest-httpserver`` and ``trustme`` are now required for
tests.
- ``pytest-localserver`` is no longer required for tests.
- Multithreaded support has been dropped. The
``"--max-workers`` has been removed.
- A new ``asyncio`` backend is now used. So far, this shows
substantial speed improvements in ``discovery`` and
``metasync``, but little change in `sync`. This will likely
continue improving over time. :gh:`906`
- The ``google`` storage types no longer
require ``requests-oauthlib``, but require
``python-aiohttp-oauthlib`` instead.
- Vdirsyncer no longer includes experimental support for
`EteSync <https://www.etesync.com/>`_. The existing
integration had not been supported for a long time and
no longer worked. Support for external storages may be
added if anyone is interested in maintaining an EteSync
plugin. EteSync users should consider using `etesync-dav`_.
- The ``plist`` for macOS has been dropped. It was broken and
homebrew generates their own based on package metadata. macOS
users are encouraged to use that as a reference.
- Changes to SSL configuration:
- Support for ``md5`` and ``sha1`` certificate fingerprints
has been dropped. If you're validating certificate
fingerprints, use ``sha256`` instead.
- When using a custom ``verify_fingerprint``, CA validation
is always disabled.
- If ``verify_fingerprint`` is unset, CA verification is
always active. Disabling both features is insecure and no
longer supported.
- The ``verify`` parameter no longer takes boolean values, it
is now optional and only takes a string to a custom CA for
verification.
- The ``verify`` and ``verify_fingerprint`` will likely be
merged into a single parameter in future.
-------------------------------------------------------------------
Sat Jul 10 11:56:11 UTC 2021 - Matej Cepl <mcepl@suse.com>
- Update to 0.18.0:
This release is a maintenance-focused one and mostly addresses
compatibility with newer Python versions and newer dependencies.
Note: Version 0.17 has some alpha releases but ultimately was never finalised.
0.18 actually continues where 0.16 left off.
- Support for Python 3.5 and 3.6 has been dropped. This release mostly focuses
on keeping vdirsyncer compatible with newer environments.
- Python 3.9 is now supported.
- click 8 and click-threading 0.5.0 are now required.
- For those using `pipsi`, we now recommend using `pipx`, it's successor.
- Our Debian/Ubuntu build scripts have been updated. New versions should be
pushed to those repositories soon.
- Remove obsolete patches:
- python-vdirsyncer-shift-deadline.patch
- deprecated_getiterator.patch
- Temporarily switch off tests (gh#pimutils/vdirsyncer#654).
-------------------------------------------------------------------
Mon May 31 15:07:46 UTC 2021 - Matej Cepl <mcepl@suse.com>
- Add deprecated_getiterator.patch (.getiterator() in
etree.Element is obsolete, use just plain iter())
gh#pimutils/vdirsyncer#880
-------------------------------------------------------------------
Tue Apr 12 06:56:05 UTC 2021 - Steve Kowalik <steven.kowalik@suse.com>
- Remove ifpython3 macro guarding the Provides/Obsoletes
-------------------------------------------------------------------
Fri Mar 12 19:57:06 UTC 2021 - Matej Cepl <mcepl@suse.com>
- Set up update-alternatives for systemd unit files.
-------------------------------------------------------------------
Sun Feb 28 22:24:56 UTC 2021 - Hans-Peter Jansen <hpj@urpla.net>
- Fix source references
-------------------------------------------------------------------
Tue Sep 1 15:11:22 UTC 2020 - Michal Hrusecky <michal.hrusecky@opensuse.org>
-fix compatibility with latest click - patch taken directly from upstream git
* 3eb9ce5ae4320d52e6c876874511ff96a8a45f51.patch
-------------------------------------------------------------------
Thu Jul 23 09:16:29 UTC 2020 - Marketa Calabkova <mcalabkova@suse.com>
- Update to 0.16.8
* Support Python 3.7 and 3.8.
* Vdirsyncer will now warn if there's a string without quotes in your config.
- Drop python-vdirsyncer-fix-tests.patch
-------------------------------------------------------------------
Sun Jun 7 21:35:23 UTC 2020 - Matej Cepl <mcepl@suse.com>
- Add missing BR python-atomicwrites
-------------------------------------------------------------------
Mon May 18 09:10:46 UTC 2020 - Petr Gajdos <pgajdos@suse.com>
- %python3_only -> %python_alternative
-------------------------------------------------------------------
Wed Apr 29 12:51:49 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- Skip failing test due to changed quoting in click:
* test_verbosity
-------------------------------------------------------------------
Mon Feb 3 15:57:42 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
- BuildRequire pkgconfig(systemd) instead of systemd: allow OBS to
shortcut through the -mini flavors.
-------------------------------------------------------------------
Wed Jun 5 07:15:52 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Make the deadline for tests even larger, on slow obs bots
it takes 1300:
* python-vdirsyncer-shift-deadline.patch
-------------------------------------------------------------------
Thu May 16 22:35:41 UTC 2019 - ranand@suse.com
- Skip flaky test test_legacy_status
-------------------------------------------------------------------
Tue May 7 05:47:52 UTC 2019 - pgajdos@suse.com
- added patches
default deadline (200ms) is too short for obs
+ python-vdirsyncer-shift-deadline.patch
-------------------------------------------------------------------
Mon May 6 13:36:29 UTC 2019 - pgajdos@suse.com
- fix tests again https://github.com/pimutils/vdirsyncer/issues/793
- modified patches
% python-vdirsyncer-fix-tests.patch (extended)
-------------------------------------------------------------------
Sat Apr 6 22:18:22 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Use noun phrase in summary. Wrap description.
-------------------------------------------------------------------
Fri Mar 29 13:31:30 UTC 2019 - pgajdos@suse.com
- version update to 0.16.7
Fixes for Python 3.7
- added patches
https://github.com/pimutils/vdirsyncer/pull/779
+ python-vdirsyncer-fix-tests.patch
-------------------------------------------------------------------
Wed Jul 18 08:05:01 UTC 2018 - mimi.vx@gmail.com
- fix vdirsyncer.timer service
-------------------------------------------------------------------
Wed Jul 4 06:23:48 UTC 2018 - dmacvicar@suse.de
- Add systemd unit and timer from upstream git
- Make package python3 only
- Update to version 0.16.6
* Documentation building no longer needs a working installation
of vdirsyncer.
- Changes from version 0.16.5
* click-log 0.3 is required.
* All output will now happen on stderr (because of the upgrade of ``click-log``).
- Changes from version 0.16.4
* Fix tests for new Hypothesis version. (Literally no other change included)
- Changes from version 0.16.3
* First version with custom Debian and Ubuntu packages. See :gh:`663`.
* Remove invalid ASCII control characters from server responses. See :gh:`626`.
* Python 3.3 is no longer supported. See :ghpr:`674`.
- Changes from version 0.16.2
* Fix crash when using daterange or item_type filters in
:storage:`google_calendar`, see :gh:`657`.
* Fixes for new version ``0.2.0`` of ``click-log``. The version
requirements for the dependency ``click-log`` changed.
- Changes from version 0.16.1
* Removed remoteStorage support, see :gh:`647`.
* Fixed test failures caused by latest requests version, see :gh:`660`.
-------------------------------------------------------------------
Tue Jul 4 12:30:14 UTC 2017 - aloisio@gmx.com
- Update to version 0.16.0
* Strip METHOD:PUBLISH added by some calendar providers, see
:gh:`502`.
* Fix crash of Google storages when saving token file.
* Make DAV discovery more RFC-conformant, see :ghpr:`585`.
* Vdirsyncer is now tested against Xandikos, see :ghpr:`601`.
* Subfolders with a leading dot are now ignored during
discover for filesystem storage. This makes it easier to combine
it with version control.
* Statuses are now stored in a sqlite database. Old data is
automatically migrated. Users with really large datasets should
encounter performance improvements. This means that sqlite3 is
now a dependency of vdirsyncer.
* Vdirsyncer is now licensed under the 3-clause BSD license,
see :gh:`610`.
* Vdirsyncer now includes experimental support for EteSync,
see :ghpr:`614`.
* Vdirsyncer now uses more filesystem metadata for determining
whether an item changed. You will notice a possibly heavy CPU/IO
spike on the first sync after upgrading.
* Packagers: Reference systemd.service and systemd.timer unit
files are provided. It is recommended to install these as
documentation if your distribution is systemd-based.
- Provides vdirsyncer only for python3.
-------------------------------------------------------------------
Fri Jun 30 16:34:31 UTC 2017 - aloisio@gmx.com
- Update to 0.15.0 (see changelog.rst)
- Renamed to python-vdirsyncer
- Converted to single-spec
-------------------------------------------------------------------
Fri Feb 26 13:16:42 UTC 2016 - tbechtold@suse.com
- Require python-python-dateutil. package was renamed
-------------------------------------------------------------------
Wed Nov 5 09:40:34 UTC 2014 - seiler@b1-systems.de
- added needed python-requests-toolbelt dependency
-------------------------------------------------------------------
Tue Nov 4 14:24:36 UTC 2014 - seiler@b1-systems.de
- initial commit

121
python-vdirsyncer.spec Normal file
View File

@@ -0,0 +1,121 @@
#
# spec file for package python-vdirsyncer
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: python-vdirsyncer
Version: 0.19.3
Release: 0
Summary: CalDAV and CardDAV synchronization module
License: BSD-3-Clause
URL: https://github.com/pimutils/vdirsyncer
Source0: https://files.pythonhosted.org/packages/source/v/vdirsyncer/vdirsyncer-%{version}.tar.gz
Source1: vdirsyncer.service
Source2: vdirsyncer.timer
# PATCH-FIX-OPENSUSE Support pytest-asyncio 1.0 changes.
Patch0: support-new-pytest-asyncio.patch
BuildRequires: %{python_module atomicwrites}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: systemd-rpm-macros
BuildRequires: pkgconfig(systemd)
Requires: python-aiohttp
Requires: python-aiostream
Requires: python-atomicwrites >= 0.1.7
Requires: python-click >= 5.0
Requires: python-click-log >= 0.3
Requires: python-requests >= 2.20.0
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends: python-requests-oauthlib
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module aiohttp}
BuildRequires: %{python_module aioresponses}
BuildRequires: %{python_module aiostream}
BuildRequires: %{python_module click-log >= 0.3}
BuildRequires: %{python_module hypothesis >= 5.0.0}
BuildRequires: %{python_module pytest-asyncio}
BuildRequires: %{python_module pytest-cov}
BuildRequires: %{python_module pytest-localserver}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module requests >= 2.20.0}
BuildRequires: %{python_module trustme}
BuildRequires: %{python_module urllib3}
# /SECTION
Provides: vdirsyncer = %{version}
Obsoletes: vdirsyncer < %{version}
%python_subpackages
%description
Vdirsyncer synchronizes calendars and addressbooks between two
storages. The supported storages are CalDAV, CardDAV, arbitrary HTTP
resources, vdir and some more. It aims to be for CalDAV and CardDAV
what OfflineIMAP is for IMAP.
%prep
%autosetup -p1 -n vdirsyncer-%{version}
rm -rf vdirsyncer.egg-info
%build
%pyproject_wheel
%install
%pyproject_install
%python_clone -a %{buildroot}%{_bindir}/vdirsyncer
mkdir -p %{buildroot}%{_userunitdir}
%{python_expand \
install -Dpm 0644 %{SOURCE1} %{buildroot}%{_userunitdir}/vdirsyncer-%{$python_bin_suffix}.service
install -Dpm 0644 %{SOURCE2} %{buildroot}%{_userunitdir}/vdirsyncer-%{$python_bin_suffix}.timer
%fdupes %{buildroot}/%{$python_sitelib}
}
%prepare_alternative -t %{_userunitdir}/vdirsyncer.service vdirsyncer.service
%prepare_alternative -t %{_userunitdir}/vdirsyncer.timer vdirsyncer.timer
%check
export DETERMINISTIC_TESTS=true
# request_ssl - requires network
# TestVobjectMachine -- broken upstream
%pytest -k 'not (request_ssl or TestVobjectMachine)'
%post
update-alternatives --install %{_bindir}/vdirsyncer vdirsyncer %{_bindir}/vdirsyncer-%{python_bin_suffix} %{python_version_nodots} \
--slave %{_userunitdir}/vdirsyncer.service vdirsyncer.service %{_userunitdir}/vdirsyncer-%{python_bin_suffix}.service \
--slave %{_userunitdir}/vdirsyncer.timer vdirsyncer.timer %{_userunitdir}/vdirsyncer-%{python_bin_suffix}.timer
update-alternatives --auto vdirsyncer
%postun
%python_uninstall_alternative vdirsyncer
%files %{python_files}
%doc README.rst
%license LICENSE
%python_alternative %{_bindir}/vdirsyncer
%{python_sitelib}/vdirsyncer-%{version}.dist-info
%{python_sitelib}/vdirsyncer
%{_userunitdir}/vdirsyncer-%{python_bin_suffix}.service
%{_userunitdir}/vdirsyncer-%{python_bin_suffix}.timer
%{_userunitdir}/vdirsyncer.service
%{_userunitdir}/vdirsyncer.timer
%ghost %{_sysconfdir}/alternatives/vdirsyncer*
%changelog

View File

@@ -0,0 +1,47 @@
Index: vdirsyncer-0.19.3/tests/conftest.py
===================================================================
--- vdirsyncer-0.19.3.orig/tests/conftest.py
+++ vdirsyncer-0.19.3/tests/conftest.py
@@ -59,12 +59,12 @@ else:
@pytest_asyncio.fixture
-async def aio_session(event_loop):
+async def aio_session():
async with aiohttp.ClientSession() as session:
yield session
@pytest_asyncio.fixture
-async def aio_connector(event_loop):
+async def aio_connector():
async with aiohttp.TCPConnector(limit_per_host=16) as conn:
yield conn
Index: vdirsyncer-0.19.3/tests/unit/test_metasync.py
===================================================================
--- vdirsyncer-0.19.3.orig/tests/unit/test_metasync.py
+++ vdirsyncer-0.19.3/tests/unit/test_metasync.py
@@ -1,4 +1,5 @@
from __future__ import annotations
+import asyncio
import hypothesis.strategies as st
import pytest
@@ -57,7 +58,7 @@ async def test_basic(monkeypatch):
@pytest_asyncio.fixture
@pytest.mark.asyncio
-async def conflict_state(request, event_loop):
+async def conflict_state(request):
a = MemoryStorage()
b = MemoryStorage()
status = {}
@@ -70,7 +71,7 @@ async def conflict_state(request, event_
assert await b.get_meta("foo") == "baz"
assert not status
- event_loop.run_until_complete(do_cleanup())
+ asyncio.new_event_loop().run_until_complete(do_cleanup())
request.addfinalizer(cleanup)

3
vdirsyncer-0.19.2.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fd058ceeab8293459a0466cd9b0e4ab3b39462c6e089a0f0ac37c307420d82ba
size 123389

3
vdirsyncer-0.19.3.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e437851feb985dec3544654f8f9cf6dd109b0b03f7e19956086603092ffeb28f
size 125478

7
vdirsyncer.service Normal file
View File

@@ -0,0 +1,7 @@
[Unit]
Description=Synchronize calendars and contacts
Documentation=https://vdirsyncer.readthedocs.org/
[Service]
ExecStart=/usr/bin/vdirsyncer sync
Type=oneshot

10
vdirsyncer.timer Normal file
View File

@@ -0,0 +1,10 @@
[Unit]
Description=Synchronize vdirs
[Timer]
OnBootSec=5m
OnUnitActiveSec=15m
AccuracySec=5m
[Install]
WantedBy=timers.target