etesync / etesync-dav

This is a CalDAV and CardDAV adapter for EteSync
https://www.etesync.com
GNU General Public License v3.0
295 stars 49 forks source link

etesync-dav does not work anymore due to an update of radicale #129

Closed ysooqe closed 4 years ago

ysooqe commented 4 years ago

Hi there. Today, there was an update of the radicale package, new version 3.0.0. This seems to have broken etesync-dav. Doing systemctl --user status etesync-dav.service, I get the following output:

status.log

I am running Arch Linux, using the latest version of etesync-dav that is available on the AUR. If there is any additional information needed, please let me know so I can try provide it.

tasn commented 4 years ago

Grrrrrrrrr, from the Radicale changelog:

Custom plugins:

  • auth and web plugins require minor adjustments
  • rights plugins must be adapted to the new permission model
  • storage plugins require major changes

So essentially EteSync-DAV needs to be rewritten. I hope the plugin API is at least better, because it used to be absolutely terrible. I'll try to get to it asap.

Temporary workarounds: either use the prebuilt binaries in the release page, downgrade the radicale Arch package, or install it in a python virtualenv. In the meanwhile, I also updated the AUR etesync-dav package to require radicale older than 3.0.0.

tasn commented 4 years ago

I've tried reaching out to the Radicale people and no comment. I guess I'll have to reimplement some stuff again because they are not really reviewing PRs nor replying when I reach out. I'll try again, hopefully I'll hear back.

tasn commented 4 years ago

Hey everyone!

Sorry for the delay, are you able to test the new radicale3 branch to see if it fixes things for you?

~Branch: https://github.com/etesync/etesync-dav/tree/radicale3~ It's now in master.

Thanks!

ChasNelson1990 commented 4 years ago

Hi,

I'm running Arch Linux. I have uninstalled the AUR package (but left all the dependencies installed) and used python setup.py build; sudo python setup.py install to build and install the radicale3 branch. I get the following error.

[2020-06-02 10:23:24 +0100] [62036] [INFO] Loaded default config
[2020-06-02 10:23:24 +0100] [62036] [INFO] Loaded config file '/etc/radicale/config'
[2020-06-02 10:23:24 +0100] [62036] [INFO] Skipped missing config file '/home/chas/.config/radicale/config'
[2020-06-02 10:23:24 +0100] [62036] [INFO] Loaded arguments
[2020-06-02 10:23:24 +0100] [62036] [INFO] Starting Radicale
[2020-06-02 10:23:24 +0100] [62036] [INFO] auth type is 'radicale.auth.htpasswd'
[2020-06-02 10:23:24 +0100] [62036] [INFO] storage type is 'etesync_dav.radicale.storage'
[2020-06-02 10:23:24 +0100] [62036] [INFO] rights type is 'etesync_dav.radicale.rights'
[2020-06-02 10:23:24 +0100] [62036] [INFO] web type is 'etesync_dav.radicale.web'
[2020-06-02 10:23:24 +0100] [62036] [CRITICAL] An exception occurred during server startup: 'etesync_dav/radicale/web'
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/etesync_dav-0.17.1-py3.8.egg/etesync_dav/radicale_main/__init__.py", line 152, in run
    server.serve(configuration, shutdown_socket_out)
  File "/usr/lib/python3.8/site-packages/etesync_dav-0.17.1-py3.8.egg/etesync_dav/radicale_main/server.py", line 223, in serve
    application = MyApplication(configuration)
  File "/usr/lib/python3.8/site-packages/radicale/app/__init__.py", line 83, in __init__
    self._web = web.load(configuration)
  File "/usr/lib/python3.8/site-packages/radicale/web/__init__.py", line 31, in load
    return utils.load_plugin(INTERNAL_TYPES, "web", "Web", configuration)
  File "/usr/lib/python3.8/site-packages/radicale/utils.py", line 39, in load_plugin
    return class_(configuration)
  File "/usr/lib/python3.8/site-packages/etesync_dav-0.17.1-py3.8.egg/etesync_dav/radicale/web.py", line 26, in __init__
    self.folder = pkg_resources.resource_filename(__name__, "web")
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1145, in resource_filename
    return get_provider(package_or_requirement).get_resource_filename(
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1746, in get_resource_filename
    return self._extract_resource(manager, zip_path)
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1767, in _extract_resource
    timestamp, size = self._get_date_and_size(self.zipinfo[zip_path])
KeyError: 'etesync_dav/radicale/web'
tasn commented 4 years ago

Thanks for taking a look! I'm not sure what the problem is, though if I had to guess it's something with the installation. Could you maybe try in a virtualenv, or potentially in the normal env and use pip install . inside the branch's directory?

ChasNelson1990 commented 4 years ago

sudo python -m pip install . seems to work fine.

tasn commented 4 years ago

Great. :)

What about viewing all of your data? Add/edit/delete? Refreshing the collection? All works for you? It works here, but I want to make sure it works for others too...

ChasNelson1990 commented 4 years ago

Yep, I changed a calendar event and synced and it updated correctly on my phone.

tasn commented 4 years ago

Great, thanks! I was already very confident based on my tests, and this adds even more.

If someone else could test a few things too that would be great, though I plan on releasing a new version later today maybe tomorrow.

tasn commented 4 years ago

I'm repoening this because it's not actually fixed, but the code is now in master.

tasn commented 4 years ago

I made a new release with the fixes, and updated the AUR package. It should now be fixed.

ChasNelson1990 commented 4 years ago

Installed and working - thanks!

tasn commented 4 years ago

Great! :)