summaryrefslogtreecommitdiff
path: root/mail
diff options
context:
space:
mode:
authortriaxx <triaxx@pkgsrc.org>2021-02-26 13:17:36 +0000
committertriaxx <triaxx@pkgsrc.org>2021-02-26 13:17:36 +0000
commitbbaa9a66606698e891ae01c7bec0803ab36dc75e (patch)
tree8cc55c58922746aedbaa5e4677d4d1edae9263bc /mail
parentc858027956d6b3ccdf93afd49821769fedeb406e (diff)
downloadpkgsrc-bbaa9a66606698e891ae01c7bec0803ab36dc75e.tar.gz
roundcube-plugin-carddav: Update to 4.0.4
pkgsrc changes: --------------- * The main maintainer seems to have changed. The GitHub repository has been updated accordingly. * Since the vendor dependencies has been removed from the Github release, we use php-composer to resolve them. upstream changes: ----------------- Version 4.0.4 (to 4.0.3) o Fix #321: Boolean settings in presets caused errors when trying to store the preset's addressbooks to the database o Fix #322: The refresh time string from admin presets was not converted to seconds, causing errors or wrong values when storing the preset's addressbooks to the database o Fix #324: Changes not immediately visible with postgresql (delete contact, add/remove contact to/from group) o Fix: spurious error returned when creating VCard on Google Version 4.0.3 (to 4.0.2) o Allow release 1.0 of carddavclient in composer dependencies o No changes to the plugin itself Version 4.0.2 (to 4.0.1) o Fix #316: Incompatibility with Sabre/VObject version 4 preventing saving contacts using custom labels o Fix: Default refresh time set to 1 sec in settings Version 4.0.1 (to 4.0.0) o Fix: Plugin version was not shown in about window for tarball installations o Fix: Collation behavior was case-insensitive for MySQL (only). Now unified across the different supported DBMS. o Fix #306: With MySQL, sync failure could occur when several custom labels where used that only differed in case (effect of previous issue). o Fix #308: With SQLite, the initial sync after adding a new addressbook was not automatically triggered. Version 4.0.0 (to 3.0.3) This release contains changes to DB schema. The database will be migrated automatically upon login to roundcube. o All changes from 4.0.0-alpha1 o Fix: Deletion of empty CATEGORIES-type groups o Fix: Delete CATEGORIES-type groups from DB that become empty during a sync o Fix: Renaming of empty CATEGORIES-type groups o Fix: During deletion, do not rely on the DB's ON CASCADE DELETE because this is disabled by default for SQLite o Fix: It was not possible to discover multiple addressbooks for an admin preset because of a wrong UNIQUE constraint in MySQL o Fix: Catch exceptions thrown inside the plugin (avoid "white page" on error) o Increase the maximum lengths of password, email and url fields o Use transactions to synchronize concurrent operations on the same addressbook (data consistency issues may still occur with MySQL because of roundcube DB layer bug). For details, see DBSYNC.md. o Unified database indexes across the different database backends: Create indexes for foreign key columns (PostgreSQL, SQLite) o Fixed issues in the migration scripts and added SQL scripts showing the current DB schema o Update hungarian translation (thanks to @tsabi) Version 4.0.0-alpha1 (to 3.0.3) Note: The Changelog for this version is not complete This is an alpha release because I did not perform any tests on it. Nevertheless, it has many bugs fixed and I encourage you to upgrade and report issues as you find them. The last release 3.0.3 has many issues that have been fixed with in v4. I push this release early mainly because of the security issue reported. I'll continue working on remaining issues I want to fix (note: all of them are also present in 3.0.3) for v4 and I intend release a more tested version and a more detailed changelog within the next weeks. o Security issue: It was possible to read data from other user's addressbooks. Depending on the configuration, it might also have been possible to change data in their addressbooks. Thanks to @cnmicha for reporting this issue. This issue affects all previously released versions of RCMCardDAV using a database cache. o Many bugs you reported and several more I discovered during refactoring have been fixed. o The password scheme now defaults to encrypted (if you have not configured a password scheme, this will take effect automatically for newly stored password. If you don't want this, configure a password scheme in settings.php). o The URL is not changeable after creation of an addressbook anymore. It used to work in specific, but not all cases. As the behavior is potentially broken and not easy to fix, it is removed for now. o The two kinds of contact groups (VCard-based vs. CATEGORIES-based) are not transparently supported to the possible extent. The configuration switch is only meaningful concerning the type of group used when a new group is created from RCMCardDAV. See details here. o The CardDAV interaction is moved to a library. It is essentially a complete rewrite of the code communicating with the CardDAV servers and includes interoperability tests with many common servers, see here.
Diffstat (limited to 'mail')
-rw-r--r--mail/roundcube-plugin-carddav/Makefile29
-rw-r--r--mail/roundcube-plugin-carddav/PLIST444
-rw-r--r--mail/roundcube-plugin-carddav/distinfo12
-rw-r--r--mail/roundcube-plugin-carddav/patches/patch-carddav__common.php25
4 files changed, 332 insertions, 178 deletions
diff --git a/mail/roundcube-plugin-carddav/Makefile b/mail/roundcube-plugin-carddav/Makefile
index 9328fd51afd..7674bc13a93 100644
--- a/mail/roundcube-plugin-carddav/Makefile
+++ b/mail/roundcube-plugin-carddav/Makefile
@@ -1,12 +1,12 @@
-# $NetBSD: Makefile,v 1.1 2020/02/11 20:36:49 triaxx Exp $
+# $NetBSD: Makefile,v 1.2 2021/02/26 13:17:36 triaxx Exp $
-DISTNAME= carddav-3.0.3
-PKGNAME= ${PHP_PKG_PREFIX}-roundcube-plugin-${DISTNAME}
+DISTNAME= carddav-v4.0.4
+PKGNAME= ${PHP_PKG_PREFIX}-roundcube-plugin-${DISTNAME:S/-v/-/}
CATEGORIES= mail
-MASTER_SITES= ${MASTER_SITE_GITHUB:=blind-coder/}
+MASTER_SITES= ${MASTER_SITE_GITHUB:=mstilkerich/}
GITHUB_PROJECT= rcmcarddav
GITHUB_RELEASE= v${PKGVERSION_NOREV}
-EXTRACT_SUFX= .tar.bz2
+EXTRACT_SUFX= .tgz
HOMEPAGE= https://www.benjamin-schieder.de/carddav.html
MAINTAINER= triaxx@NetBSD.org
@@ -15,13 +15,17 @@ LICENSE= gnu-gpl-v2
.include "../../mk/bsd.prefs.mk"
+NO_CONFIGURE= yes
NO_BUILD= yes
+REPLACE_PHP= vendor/roundcube/plugin-installer/src/bin/rcubeinitdb.sh
+
+BUILD_DEPENDS+= ${PHP_PKG_PREFIX}-composer-[0-9]*:../../devel/php-composer
DEPENDS+= ${PHP_PKG_PREFIX}-roundcube>=1.0.0:../../mail/roundcube
WRKSRC= ${WRKDIR}/carddav
-DISTINFO_FILE= distinfo
+PHP_VERSIONS_ACCEPTED= 74 73
PKG_SYSCONFSUBDIR= roundcube
@@ -35,7 +39,7 @@ RCDIR= share/roundcube
CDDIR= ${RCDIR}/plugins/carddav
EGDIR= share/examples/roundcube/plugins/carddav
-CD_SUBDIRS= dbmigrations localization skins vendor
+CD_SUBDIRS= dbmigrations localization skins src vendor
.for d in ${CD_SUBDIRS}
INSTALLATION_DIRS+= ${CDDIR}/${d}
@@ -50,18 +54,13 @@ MESSAGE_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR}
SUBST_CLASSES+= cfg
SUBST_STAGE.cfg= pre-install
SUBST_MESSAGE.cfg= Fixing configuration files.
-SUBST_FILES.cfg= carddav_common.php
+SUBST_FILES.cfg= carddav.php
SUBST_VARS.cfg= PKG_SYSCONFDIR
do-install:
+ cd ${WRKSRC} && ${PREFIX}/bin/composer install --no-dev
${INSTALL_DATA} ${WRKSRC}/carddav.php \
${DESTDIR}${PREFIX}/${CDDIR}/carddav.php
- ${INSTALL_DATA} ${WRKSRC}/carddav_backend.php \
- ${DESTDIR}${PREFIX}/${CDDIR}/carddav_backend.php
- ${INSTALL_DATA} ${WRKSRC}/carddav_common.php \
- ${DESTDIR}${PREFIX}/${CDDIR}/carddav_common.php
- ${INSTALL_DATA} ${WRKSRC}/carddav_discovery.php \
- ${DESTDIR}${PREFIX}/${CDDIR}/carddav_discovery.php
.for i in ${CD_SUBDIRS}
cd ${WRKSRC}/${i} && ${FIND} . -type f -print | \
pax -rw ${DESTDIR}${PREFIX}/${CDDIR}/${i}
@@ -75,5 +74,5 @@ do-install:
${INSTALL_DATA} ${WRKSRC}/config.inc.php.dist \
${DESTDIR}${PREFIX}/${EGDIR}/config.inc.php
-.include "../../lang/php/phpversion.mk"
+.include "../../lang/php/replace.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/mail/roundcube-plugin-carddav/PLIST b/mail/roundcube-plugin-carddav/PLIST
index a43a09d3223..8366019d8d7 100644
--- a/mail/roundcube-plugin-carddav/PLIST
+++ b/mail/roundcube-plugin-carddav/PLIST
@@ -1,15 +1,9 @@
-@comment $NetBSD: PLIST,v 1.1 2020/02/11 20:36:49 triaxx Exp $
+@comment $NetBSD: PLIST,v 1.2 2021/02/26 13:17:36 triaxx Exp $
share/examples/roundcube/plugins/carddav/config.inc.php
share/roundcube/plugins/carddav/carddav.php
-share/roundcube/plugins/carddav/carddav_backend.php
-share/roundcube/plugins/carddav/carddav_common.php
-share/roundcube/plugins/carddav/carddav_discovery.php
share/roundcube/plugins/carddav/dbmigrations/0000-dbinit/mysql.sql
share/roundcube/plugins/carddav/dbmigrations/0000-dbinit/postgres.sql
share/roundcube/plugins/carddav/dbmigrations/0000-dbinit/sqlite3.sql
-share/roundcube/plugins/carddav/dbmigrations/0000-sample/mysql.sql
-share/roundcube/plugins/carddav/dbmigrations/0000-sample/postgres.sql
-share/roundcube/plugins/carddav/dbmigrations/0000-sample/sqlite3.sql
share/roundcube/plugins/carddav/dbmigrations/0001-categories/mysql.sql
share/roundcube/plugins/carddav/dbmigrations/0001-categories/postgres.sql
share/roundcube/plugins/carddav/dbmigrations/0001-categories/sqlite3.sql
@@ -26,6 +20,42 @@ share/roundcube/plugins/carddav/dbmigrations/0004-fixtimestampdefaultvalue/sqlit
share/roundcube/plugins/carddav/dbmigrations/0005-changemysqlut8toutf8mb4/mysql.sql
share/roundcube/plugins/carddav/dbmigrations/0005-changemysqlut8toutf8mb4/postgres.sql
share/roundcube/plugins/carddav/dbmigrations/0005-changemysqlut8toutf8mb4/sqlite3.sql
+share/roundcube/plugins/carddav/dbmigrations/0006-rmgroupsnotnull/README.md
+share/roundcube/plugins/carddav/dbmigrations/0006-rmgroupsnotnull/mysql.sql
+share/roundcube/plugins/carddav/dbmigrations/0006-rmgroupsnotnull/postgres.sql
+share/roundcube/plugins/carddav/dbmigrations/0006-rmgroupsnotnull/sqlite3.sql
+share/roundcube/plugins/carddav/dbmigrations/0007-replaceurlplaceholders/README.md
+share/roundcube/plugins/carddav/dbmigrations/0007-replaceurlplaceholders/migrate.php
+share/roundcube/plugins/carddav/dbmigrations/0008-unifyindexes/README.md
+share/roundcube/plugins/carddav/dbmigrations/0008-unifyindexes/mysql.sql
+share/roundcube/plugins/carddav/dbmigrations/0008-unifyindexes/postgres.sql
+share/roundcube/plugins/carddav/dbmigrations/0008-unifyindexes/sqlite3.sql
+share/roundcube/plugins/carddav/dbmigrations/0009-dropauthschemefield/README.md
+share/roundcube/plugins/carddav/dbmigrations/0009-dropauthschemefield/mysql.sql
+share/roundcube/plugins/carddav/dbmigrations/0009-dropauthschemefield/postgres.sql
+share/roundcube/plugins/carddav/dbmigrations/0009-dropauthschemefield/sqlite3.sql
+share/roundcube/plugins/carddav/dbmigrations/0010-increasetextfieldlengths/README.md
+share/roundcube/plugins/carddav/dbmigrations/0010-increasetextfieldlengths/mysql.sql
+share/roundcube/plugins/carddav/dbmigrations/0010-increasetextfieldlengths/postgres.sql
+share/roundcube/plugins/carddav/dbmigrations/0010-increasetextfieldlengths/sqlite3.sql
+share/roundcube/plugins/carddav/dbmigrations/0011-unifymigrationsidcolumn/README.md
+share/roundcube/plugins/carddav/dbmigrations/0011-unifymigrationsidcolumn/mysql.sql
+share/roundcube/plugins/carddav/dbmigrations/0011-unifymigrationsidcolumn/postgres.sql
+share/roundcube/plugins/carddav/dbmigrations/0011-unifymigrationsidcolumn/sqlite3.sql
+share/roundcube/plugins/carddav/dbmigrations/0012-fixmysqlconstraints/README.md
+share/roundcube/plugins/carddav/dbmigrations/0012-fixmysqlconstraints/mysql.sql
+share/roundcube/plugins/carddav/dbmigrations/0012-fixmysqlconstraints/postgres.sql
+share/roundcube/plugins/carddav/dbmigrations/0012-fixmysqlconstraints/sqlite3.sql
+share/roundcube/plugins/carddav/dbmigrations/0013-changemysqlcollationscasesensitive/mysql.sql
+share/roundcube/plugins/carddav/dbmigrations/0013-changemysqlcollationscasesensitive/postgres.sql
+share/roundcube/plugins/carddav/dbmigrations/0013-changemysqlcollationscasesensitive/sqlite3.sql
+share/roundcube/plugins/carddav/dbmigrations/0014-unifytimestampdefaultvalue/README.md
+share/roundcube/plugins/carddav/dbmigrations/0014-unifytimestampdefaultvalue/mysql.sql
+share/roundcube/plugins/carddav/dbmigrations/0014-unifytimestampdefaultvalue/postgres.sql
+share/roundcube/plugins/carddav/dbmigrations/0014-unifytimestampdefaultvalue/sqlite3.sql
+share/roundcube/plugins/carddav/dbmigrations/INIT-currentschema/mysql.sql
+share/roundcube/plugins/carddav/dbmigrations/INIT-currentschema/postgres.sql
+share/roundcube/plugins/carddav/dbmigrations/INIT-currentschema/sqlite3.sql
share/roundcube/plugins/carddav/localization/cs_CZ.inc
share/roundcube/plugins/carddav/localization/de_DE.inc
share/roundcube/plugins/carddav/localization/en_US.inc
@@ -41,60 +71,240 @@ share/roundcube/plugins/carddav/localization/uk_UK.inc
share/roundcube/plugins/carddav/skins/classic/carddav.css
share/roundcube/plugins/carddav/skins/elastic/carddav.css
share/roundcube/plugins/carddav/skins/larry/carddav.css
+share/roundcube/plugins/carddav/src/Addressbook.php
+share/roundcube/plugins/carddav/src/DBMigrationInterface.php
+share/roundcube/plugins/carddav/src/Database.php
+share/roundcube/plugins/carddav/src/DatabaseException.php
+share/roundcube/plugins/carddav/src/RoundcubeLogger.php
+share/roundcube/plugins/carddav/src/SyncHandlerRoundcube.php
share/roundcube/plugins/carddav/vendor/autoload.php
share/roundcube/plugins/carddav/vendor/composer/ClassLoader.php
+share/roundcube/plugins/carddav/vendor/composer/InstalledVersions.php
share/roundcube/plugins/carddav/vendor/composer/LICENSE
share/roundcube/plugins/carddav/vendor/composer/autoload_classmap.php
+share/roundcube/plugins/carddav/vendor/composer/autoload_files.php
share/roundcube/plugins/carddav/vendor/composer/autoload_namespaces.php
share/roundcube/plugins/carddav/vendor/composer/autoload_psr4.php
share/roundcube/plugins/carddav/vendor/composer/autoload_real.php
share/roundcube/plugins/carddav/vendor/composer/autoload_static.php
share/roundcube/plugins/carddav/vendor/composer/installed.json
-share/roundcube/plugins/carddav/vendor/nategood/httpful/.gitignore
-share/roundcube/plugins/carddav/vendor/nategood/httpful/.travis.yml
-share/roundcube/plugins/carddav/vendor/nategood/httpful/LICENSE.txt
-share/roundcube/plugins/carddav/vendor/nategood/httpful/README.md
-share/roundcube/plugins/carddav/vendor/nategood/httpful/bootstrap.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/build
-share/roundcube/plugins/carddav/vendor/nategood/httpful/composer.json
-share/roundcube/plugins/carddav/vendor/nategood/httpful/examples/freebase.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/examples/github.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/examples/override.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/examples/showclix.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Bootstrap.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Exception/ConnectionErrorException.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Handlers/CsvHandler.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Handlers/FormHandler.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Handlers/JsonHandler.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Handlers/MimeHandlerAdapter.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Handlers/README.md
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Handlers/XHtmlHandler.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Handlers/XmlHandler.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Http.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Httpful.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Mime.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Proxy.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Request.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Response.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/src/Httpful/Response/Headers.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/tests/Httpful/HttpfulTest.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/tests/Httpful/requestTest.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/tests/bootstrap-server.php
-share/roundcube/plugins/carddav/vendor/nategood/httpful/tests/phpunit.xml
-share/roundcube/plugins/carddav/vendor/nategood/httpful/tests/static/test.json
-share/roundcube/plugins/carddav/vendor/nategood/httpful/tests/test_image.jpg
-share/roundcube/plugins/carddav/vendor/sabre/vobject/.gitignore
-share/roundcube/plugins/carddav/vendor/sabre/vobject/.travis.yml
-share/roundcube/plugins/carddav/vendor/sabre/vobject/ChangeLog.md
+share/roundcube/plugins/carddav/vendor/composer/installed.php
+share/roundcube/plugins/carddav/vendor/composer/platform_check.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/CHANGELOG.md
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/LICENSE
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/README.md
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/UPGRADING.md
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/composer.json
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/BodySummarizer.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/BodySummarizerInterface.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Client.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/ClientInterface.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/ClientTrait.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Exception/ClientException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Exception/TransferException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/HandlerStack.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/MessageFormatter.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/MessageFormatterInterface.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Middleware.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Pool.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/RequestOptions.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/TransferStats.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/Utils.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/functions.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/guzzle/src/functions_include.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/.php_cs.dist
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/CHANGELOG.md
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/LICENSE
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/Makefile
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/README.md
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/composer.json
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/phpstan-baseline.neon
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/phpstan.neon.dist
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/psalm.xml
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/AggregateException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/CancellationException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/Coroutine.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/Create.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/Each.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/EachPromise.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/FulfilledPromise.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/Is.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/Promise.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/PromiseInterface.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/PromisorInterface.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/RejectedPromise.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/RejectionException.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/TaskQueue.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/TaskQueueInterface.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/Utils.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/functions.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/promises/src/functions_include.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/CHANGELOG.md
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/LICENSE
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/README.md
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/composer.json
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/AppendStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/BufferStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/CachingStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/DroppingStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/FnStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/Header.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/InflateStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/LazyOpenStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/LimitStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/Message.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/MessageTrait.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/MimeType.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/MultipartStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/NoSeekStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/PumpStream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/Query.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/Request.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/Response.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/Rfc7230.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/ServerRequest.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/Stream.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/StreamWrapper.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/UploadedFile.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/Uri.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/UriNormalizer.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/UriResolver.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/Utils.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/functions.php
+share/roundcube/plugins/carddav/vendor/guzzlehttp/psr7/src/functions_include.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/.gitignore
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/COPYING
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/Makefile
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/NOTES.md
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/README.md
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/composer.json
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/doc/Classes.drawio
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/doc/Classes.svg
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/doc/README.md
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/doc/SPNEGO.md
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/doc/quickstart.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/phpstan.neon
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/phpunit.xml
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/psalm.xml
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/Account.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/AddressbookCollection.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/CardDavClient.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/Config.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/Exception/ClientException.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/Exception/NetworkException.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/Exception/XmlParseException.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/HttpClientAdapter.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/HttpClientAdapterGuzzle.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/Services/Discovery.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/Services/Sync.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/Services/SyncHandler.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/Services/SyncResult.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/WebDavCollection.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/WebDavResource.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/XmlElements/Deserializers.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/XmlElements/ElementNames.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/XmlElements/Multistatus.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/XmlElements/Prop.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/XmlElements/Propstat.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/XmlElements/Response.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/XmlElements/ResponsePropstat.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/src/XmlElements/ResponseStatus.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/tests/AccountData.php.dist
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/tests/AccountTest.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/tests/AddressbookCollectionTest.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/tests/DiscoveryTest.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/tests/SyncTest.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/tests/SyncTestHandler.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/tests/TestUtils.php
+share/roundcube/plugins/carddav/vendor/mstilkerich/carddavclient/tests/autoload.php
+share/roundcube/plugins/carddav/vendor/psr/http-client/CHANGELOG.md
+share/roundcube/plugins/carddav/vendor/psr/http-client/LICENSE
+share/roundcube/plugins/carddav/vendor/psr/http-client/README.md
+share/roundcube/plugins/carddav/vendor/psr/http-client/composer.json
+share/roundcube/plugins/carddav/vendor/psr/http-client/src/ClientExceptionInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-client/src/ClientInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-client/src/NetworkExceptionInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-client/src/RequestExceptionInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-message/CHANGELOG.md
+share/roundcube/plugins/carddav/vendor/psr/http-message/LICENSE
+share/roundcube/plugins/carddav/vendor/psr/http-message/README.md
+share/roundcube/plugins/carddav/vendor/psr/http-message/composer.json
+share/roundcube/plugins/carddav/vendor/psr/http-message/src/MessageInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-message/src/RequestInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-message/src/ResponseInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-message/src/ServerRequestInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-message/src/StreamInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-message/src/UploadedFileInterface.php
+share/roundcube/plugins/carddav/vendor/psr/http-message/src/UriInterface.php
+share/roundcube/plugins/carddav/vendor/psr/log/LICENSE
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/AbstractLogger.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/InvalidArgumentException.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/LogLevel.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/LoggerInterface.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/LoggerTrait.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/NullLogger.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/Test/DummyTest.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
+share/roundcube/plugins/carddav/vendor/psr/log/Psr/Log/Test/TestLogger.php
+share/roundcube/plugins/carddav/vendor/psr/log/README.md
+share/roundcube/plugins/carddav/vendor/psr/log/composer.json
+share/roundcube/plugins/carddav/vendor/ralouphie/getallheaders/LICENSE
+share/roundcube/plugins/carddav/vendor/ralouphie/getallheaders/README.md
+share/roundcube/plugins/carddav/vendor/ralouphie/getallheaders/composer.json
+share/roundcube/plugins/carddav/vendor/ralouphie/getallheaders/src/getallheaders.php
+share/roundcube/plugins/carddav/vendor/roundcube/plugin-installer/.gitignore
+share/roundcube/plugins/carddav/vendor/roundcube/plugin-installer/README.md
+share/roundcube/plugins/carddav/vendor/roundcube/plugin-installer/composer.json
+share/roundcube/plugins/carddav/vendor/roundcube/plugin-installer/src/Roundcube/Composer/PluginInstaller.php
+share/roundcube/plugins/carddav/vendor/roundcube/plugin-installer/src/bin/rcubeinitdb.sh
+share/roundcube/plugins/carddav/vendor/sabre/uri/.gitattributes
+share/roundcube/plugins/carddav/vendor/sabre/uri/.gitignore
+share/roundcube/plugins/carddav/vendor/sabre/uri/.php_cs.dist
+share/roundcube/plugins/carddav/vendor/sabre/uri/LICENSE
+share/roundcube/plugins/carddav/vendor/sabre/uri/composer.json
+share/roundcube/plugins/carddav/vendor/sabre/uri/lib/InvalidUriException.php
+share/roundcube/plugins/carddav/vendor/sabre/uri/lib/Version.php
+share/roundcube/plugins/carddav/vendor/sabre/uri/lib/functions.php
+share/roundcube/plugins/carddav/vendor/sabre/uri/phpstan.neon
share/roundcube/plugins/carddav/vendor/sabre/vobject/LICENSE
share/roundcube/plugins/carddav/vendor/sabre/vobject/README.md
share/roundcube/plugins/carddav/vendor/sabre/vobject/bin/bench.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/bin/bench_freebusygenerator.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/bin/bench_manipulatevcard.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/bin/fetch_windows_zones.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/bin/generate_vcards
share/roundcube/plugins/carddav/vendor/sabre/vobject/bin/generateicalendardata.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/bin/mergeduplicates.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/bin/rrulebench.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/bin/vobject
share/roundcube/plugins/carddav/vendor/sabre/vobject/composer.json
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/BirthdayCalendarGenerator.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Cli.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Component.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Component/Available.php
@@ -111,17 +321,22 @@ share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/DateTimeParser.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Document.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/ElementList.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/EofException.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/FreeBusyData.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/FreeBusyGenerator.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/ITip/Broker.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/ITip/ITipException.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/ITip/Message.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/ITip/SameOrganizerForAllComponentsException.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/InvalidDataException.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Node.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/PHPUnitAssertions.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Parameter.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/ParseException.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Parser/Json.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Parser/MimeDir.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Parser/Parser.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Parser/XML.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Parser/XML/Element/KeyValue.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Property.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Property/Binary.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Property/Boolean.php
@@ -143,13 +358,15 @@ share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Property/VCard/Date.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Property/VCard/DateAndOrTime.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Property/VCard/DateTime.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Property/VCard/LanguageTag.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Property/VCard/PhoneNumber.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Property/VCard/TimeStamp.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Reader.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Recur/EventIterator.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Recur/MaxInstancesExceededException.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Recur/NoInstancesException.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Recur/RDateIterator.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/RecurrenceIterator.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Settings.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Splitter/ICalendar.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Splitter/SplitterInterface.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Splitter/VCard.php
@@ -158,96 +375,59 @@ share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/TimeZoneUtil.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/UUIDUtil.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/VCardConverter.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Version.php
+share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/Writer.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/timezonedata/exchangezones.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/timezonedata/lotuszones.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/timezonedata/php-bc.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/timezonedata/php-workaround.php
share/roundcube/plugins/carddav/vendor/sabre/vobject/lib/timezonedata/windowszones.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/AttachIssueTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/CliTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Component/VAlarmTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Component/VAvailabilityTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Component/VCalendarTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Component/VCardTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Component/VEventTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Component/VFreeBusyTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Component/VJournalTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Component/VTimeZoneTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Component/VTodoTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ComponentTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/DateTimeParserTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/DocumentTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ElementListTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/EmClientTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/EmptyParameterTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/EmptyValueIssueTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/FreeBusyGeneratorTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/GoogleColonEscapingTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ICalendar/AttachParseTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/BrokerAttendeeReplyTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/BrokerDeleteEventTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/BrokerNewEventTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/BrokerProcessMessageTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/BrokerProcessReplyTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/BrokerTester.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/BrokerTimezoneInParseEventInfoWithoutMasterTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/BrokerUpdateEventTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/EvolutionTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ITip/MessageTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Issue153Test.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Issue26Test.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Issue36WorkAroundTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Issue40Test.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Issue64Test.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Issue96Test.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/JCalTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/JCardTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/LineFoldingIssueTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ParameterTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Parser/JsonTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Parser/MimeDirTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Parser/QuotedPrintableTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/BinaryTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/BooleanTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/CompoundTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/FloatTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/ICalendar/CalAddressTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/ICalendar/DateTimeTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/ICalendar/DurationTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/ICalendar/RecurTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/TextTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/VCard/DateAndOrTimeTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Property/VCard/LanguageTagTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/PropertyTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/ReaderTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/ByMonthInDailyTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/BySetPosHangTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/ExpandFloatingTimesTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/FifthTuesdayProblemTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/IncorrectExpandTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/InfiniteLoopProblemTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/Issue48Test.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/Issue50Test.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/MainTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/MissingOverriddenTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/NoInstancesTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/OverrideFirstEventTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/EventIterator/SameDateForRecurringEventsTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/RDateIteratorTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Recur/RRuleIteratorTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/RecurrenceIterator/UntilRespectsTimezoneTest.ics
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/SlashRTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Splitter/ICalendarTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/Splitter/VCardTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/StringUtilTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/TestCase.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/TimeZoneUtilTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/UUIDUtilTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/VCard21Test.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/VCardConverterTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/VersionTest.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/issue153.vcf
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/VObject/issue64.vcf
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/bootstrap.php
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/phpcs/ruleset.xml
-share/roundcube/plugins/carddav/vendor/sabre/vobject/tests/phpunit.xml
+share/roundcube/plugins/carddav/vendor/sabre/vobject/resources/schema/xcal.rng
+share/roundcube/plugins/carddav/vendor/sabre/vobject/resources/schema/xcard.rng
+share/roundcube/plugins/carddav/vendor/sabre/xml/.gitignore
+share/roundcube/plugins/carddav/vendor/sabre/xml/.php_cs.dist
+share/roundcube/plugins/carddav/vendor/sabre/xml/.travis.yml
+share/roundcube/plugins/carddav/vendor/sabre/xml/CHANGELOG.md
+share/roundcube/plugins/carddav/vendor/sabre/xml/LICENSE
+share/roundcube/plugins/carddav/vendor/sabre/xml/README.md
+share/roundcube/plugins/carddav/vendor/sabre/xml/bin/.empty
+share/roundcube/plugins/carddav/vendor/sabre/xml/composer.json
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/ContextStackTrait.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Deserializer/functions.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Element.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Element/Base.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Element/Cdata.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Element/Elements.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Element/KeyValue.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Element/Uri.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Element/XmlFragment.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/LibXMLException.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/ParseException.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Reader.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Serializer/functions.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Service.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Version.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/Writer.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/XmlDeserializable.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/lib/XmlSerializable.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/phpstan.neon
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/ContextStackTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Deserializer/EnumTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Deserializer/FunctionCallerTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Deserializer/KeyValueTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Deserializer/MixedContentTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Deserializer/RepeatingElementsTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Deserializer/ValueObjectTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Element/CDataTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Element/Eater.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Element/ElementsTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Element/KeyValueTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Element/Mock.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Element/UriTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Element/XmlFragmentTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/InfiteLoopTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/ReaderTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Serializer/EnumTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/Serializer/RepeatingElementsTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/ServiceTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/Sabre/Xml/WriterTest.php
+share/roundcube/plugins/carddav/vendor/sabre/xml/tests/phpunit.xml
diff --git a/mail/roundcube-plugin-carddav/distinfo b/mail/roundcube-plugin-carddav/distinfo
index 6e3efee4678..a1f35d896c9 100644
--- a/mail/roundcube-plugin-carddav/distinfo
+++ b/mail/roundcube-plugin-carddav/distinfo
@@ -1,7 +1,7 @@
-$NetBSD: distinfo,v 1.1 2020/02/11 20:36:49 triaxx Exp $
+$NetBSD: distinfo,v 1.2 2021/02/26 13:17:36 triaxx Exp $
-SHA1 (carddav-3.0.3.tar.bz2) = 3e5174a179e8b2315474c16ba8917cc8c8eb2b9d
-RMD160 (carddav-3.0.3.tar.bz2) = c7ac76272cab475c34f15bf5182e6d22d363429d
-SHA512 (carddav-3.0.3.tar.bz2) = 718ff5c01c03f47c75262a407df1a1a7b73463f19ed89a32762bd16cceccd39247bb9ca03667fc38ab8c514d904550d2ce978f82d541c71b3ef6ffdf07390710
-Size (carddav-3.0.3.tar.bz2) = 710891 bytes
-SHA1 (patch-carddav__common.php) = 43566dabbcf53e59e62d43356b7a8b63eecf423c
+SHA1 (carddav-v4.0.4.tgz) = 7035a68b392c7e698f5dbcfe7be7eea1d7dff21a
+RMD160 (carddav-v4.0.4.tgz) = 9b3077fb513eb3c524b9e3ab445d0f56aed97118
+SHA512 (carddav-v4.0.4.tgz) = 73fd9cba53f8d59235447a90d86d764af3c5f1d5affb82d0ccd6c42a7f1fa4ffa081a1c767a698005cb1a0c62100711f8c8d567881f7b68be9fb3cb58be5c7e3
+Size (carddav-v4.0.4.tgz) = 69086 bytes
+SHA1 (patch-carddav.php) = a51378d0381ecc6fee3ac8b39a87925a5acbb7af
diff --git a/mail/roundcube-plugin-carddav/patches/patch-carddav__common.php b/mail/roundcube-plugin-carddav/patches/patch-carddav__common.php
deleted file mode 100644
index 7d2477118fa..00000000000
--- a/mail/roundcube-plugin-carddav/patches/patch-carddav__common.php
+++ /dev/null
@@ -1,25 +0,0 @@
-$NetBSD: patch-carddav__common.php,v 1.1 2020/02/11 20:36:49 triaxx Exp $
-
-* Fix issue with large CardDAV collection (Github #259).
-* Make pkgsrc-compliant the path of configuration file.
-
---- carddav_common.php.orig 2018-10-01 07:23:22.000000000 +0000
-+++ carddav_common.php
-@@ -114,7 +114,7 @@ class carddav_common
- if(!self::check_contenttype($reply['headers']['content-type'], ';(text|application)/xml;'))
- return false;
-
-- $xml = new SimpleXMLElement($reply['body']);
-+ $xml = simplexml_load_string($reply['body'], 'SimpleXMLElement', LIBXML_COMPACT | LIBXML_PARSEHUGE);
- $this->registerNamespaces($xml);
- return $xml;
- }
-@@ -373,7 +373,7 @@ class carddav_common
-
- $rcmail = rcmail::get_instance();
- $prefs = array();
-- $configfile = dirname(__FILE__)."/config.inc.php";
-+ $configfile = "@PKG_SYSCONFDIR@/config.inc.php";
- if (file_exists($configfile)){
- require("$configfile");
- }