mozilla-services / syncserver

Run-Your-Own Firefox Sync Server
Mozilla Public License 2.0
1.87k stars 145 forks source link

Requirements version not correct in install script #273

Open pmkohn opened 3 years ago

pmkohn commented 3 years ago

Hi i'm trying to install on Raspbian GNU/Linux 9.13 (stretch) with kernel 4.19.66-v7+.

sadly the following dependency conflicts occur:

ERROR: pip's legacy dependency resolver does not consider dependency conflicts when selecting packages. This behaviour is the source of the following dependency conflicts.
requests 2.20.0 requires idna<2.8,>=2.5, but you'll have idna 2.8 which is incompatible.
requests 2.20.0 requires urllib3<1.25,>=1.21.1, but you'll have urllib3 1.25.2 which is incompatible.
gevent 1.4.0 requires greenlet>=0.4.14; platform_python_implementation == "CPython", but you'll have greenlet 0.4.13 which is incompatible.
google-api-core 1.26.3 requires futures>=3.2.0; python_version < "3.2", but you'll have futures 3.0.0 which is incompatible.
tokenserver 1.5.11 requires configparser==3.7.4, but you'll have configparser 3.5.0 which is incompatible.
tokenserver 1.5.11 requires cornice==3.5.1, but you'll have cornice 0.16.2 which is incompatible.
tokenserver 1.5.11 requires gunicorn==19.10.0, but you'll have gunicorn 19.6.0 which is incompatible.
tokenserver 1.5.11 requires mozsvc==0.10, but you'll have mozsvc 0.9 which is incompatible.
tokenserver 1.5.11 requires pyramid==1.10.4, but you'll have pyramid 1.5.3 which is incompatible.
tokenserver 1.5.11 requires requests==2.22.0, but you'll have requests 2.20.0 which is incompatible.
tokenserver 1.5.11 requires WebOb==1.8.5, but you'll have webob 1.4.1 which is incompatible.

Helps the upgrade to Raspbian 10?

pmkohn commented 3 years ago

The upgrade to raspbian 10 also did not solved the issue.

DonPicciotto commented 3 years ago

I have the same issue, do you manage to solve somehow?

pmkohn commented 3 years ago

Sadly i did not solved it. Seems to work on ubuntu in the most cases, but this is not a solution for me.

Generally, i think the software structure is unnecessary complex and not feasible to be maintained in the future. I think its need to be totally rewritten in python3.

To be on the save side, i moved to syncing the passwords with nextcloud. I'm still in the evaluation phase, but it fulfils everything i need, and the software quality is better.

DonPicciotto commented 3 years ago

@pmkohn That's sad... I would have loved to sync my tabs and bookmarks with this. Thanks anyway for the answer

Saur0o0n commented 3 years ago

Same here with recent Debian, when I tried to update or install from scratch. And with FF 88 my old installation stopped working - so I'm on FF87 and thinking what to do next... Sadly this package is frustrating mess with abandoned up2date python upgrade and not yet (if ever) rust release :(

mhammond commented 3 years ago

Have you seen https://github.com/mozilla-services/syncstorage-rs?

Saur0o0n commented 3 years ago

Have you seen https://github.com/mozilla-services/syncstorage-rs?

Yes, and to my understanding this is just storage backend - it still requires syncserver and points to this python2 repo for it.

planetar commented 3 years ago

my old syncserver stopped working, logging 401 errors. It had been running fine since 2017 but then stopped. I tried to rebuild the server now but ended with the same errors. This is on debian 9.13

jrconlin commented 3 years ago

So, syncserver-rs is our production sync server. The initial focus was to get things working with a cloud based database, but it can talk to a local MySQL server. We would absolutely appreciate any help folks might be able to bring testing it locally, finding bugs, and otherwise making it ready for general use.

We're currently trying to wrap the TokenServer into syncserver-rs so that there aren't multiple failure points, like the ones you're hitting now.

Because of severely restricted resources, we're not really going to spend any time working or trying to fix this iteration of SyncServer. Instead, we're focused on getting Sync better, more reliable, and (frankly) far cheaper to operate. We also don't have the resources to test sync server in the many sorts of environments that folk have, so again, your help is greatly appreciated and welcomed.

Feel free to file issues for things. Feel even more free to take on issues for the Stand Alone service phase 1 or phase 2. If you're not a rust person, feel more free to help with updating documentation, or updating the docker profile or build steps so that others have an easier time than you did.

Much like the rest of mozilla, we're a very small team that relies on community effort. As always, thanks for helping us make the internet a bit better.

pmkohn commented 3 years ago

Hi jrconlin, thanks for the statement. that syncserver-rs is the new default was not clear to anybody i fear. May i ask you to put this statement in the readme of the old syncserver?

For the old one i put a pull request #277 with depending on the pull request #217 of tokenserver. With these two, it should build.

But i will have a look on syncserver-rs on the weekend, maybe a can help there a bit.

jrconlin commented 3 years ago

We did do that. Unfortunately, there were some significant bugs that didn't get detected so we had to revert things. That's one of the reasons we need community help here. (And before folks say we're lazy, we're a team of three engineers working and supporting 4+ large services. It's not that sync isn't important, it's just that it's as important as the other projects so we have to budget time.)

I'll look over the PRs today.

Saur0o0n commented 3 years ago

So, syncserver-rs is our production sync server. The initial focus was to get things working with a cloud based database, but it can talk to a local MySQL server. We would absolutely appreciate any help folks might be able to bring testing it locally, finding bugs, and otherwise making it ready for general use.

I don't get it - why are you still referring to syncstorage-rs as a syncserver-rs in the link above? And again, this is something I've mentioned before, in the documentation of syncstorage-rs there is reference to configure THIS (python based) syncserver for it to work locally. And this python based syncserver is not working anymore on any "not very old" environments (I wouldn't call them recent) and when it works, it doesn't work with recent Firefox - so no way out.

jrconlin commented 3 years ago

My apologies, you're correct. The repo is called "syncstorage-rs". Unfortunately, I get the two names confused at times.

The reason the document points back to this server is because "syncstorage-rs" still requires significant effort to set up as a stand-alone service, notably the TokenServer function is not yet available in syncstorage-rs. (Again, we'd love help with resolving those issues, and while we're working on them, we can't provide a definite delivery date.)

I also understand the problems with trying to run a python 2 application at this time. Libraries and dependencies change and are fairly fluid. I can say that I have found some success in running syncserver in a Docker image tied to python 2.7.7, and being exceptionally strict about which libraries I imported, but I'll admit that it's been months since I last built an image like that.

I'll also say that the stand alone server is not a priority for us at this time. We have limited time and resources and are dedicating them to other projects.