etesync / server

The Etebase server (so you can run your own)
https://www.etesync.com
GNU Affero General Public License v3.0
1.53k stars 75 forks source link

Cannot install dependencies in OSMC (Debian 11) #187

Open AlanSanchezP opened 4 weeks ago

AlanSanchezP commented 4 weeks ago

I'm using a raspberry pi3 running OSMC and recently upgraded the OS version from running a Debian10-based OSMC to debian11-based.

After doing this, my etebase server stopped working and I got 502 errors from nginx. Today I was finally able to check what was causing that and it seems that uvicorn was not installed and in general my python dependencies were missing.

As my installation was running on a very old etebase commit (43d5af32d72d5f59de7f31698076becf2430ccaa), I decided to not even try running etebase in this upgraded OS (assumed that there would likely be some incompatibilities) so I pulled the commits and used the latest release (https://github.com/etesync/server/releases/tag/v0.14.2)

I reinstalled virtualenv and followed the installation guide, but I'm unable to even install the dependencies, pip throws some error when trying to install orjson. I tried upgrading pip itself but the error persists

pip3 install -r requirements.txt

Collecting aiofiles==23.2.1
  Using cached aiofiles-23.2.1-py3-none-any.whl (15 kB)
Collecting annotated-types==0.7.0
  Using cached annotated_types-0.7.0-py3-none-any.whl (13 kB)
Collecting anyio==4.4.0
  Downloading anyio-4.4.0-py3-none-any.whl (86 kB)
     |████████████████████████████████| 86 kB 722 kB/s 
Collecting asgiref==3.8.1
  Using cached asgiref-3.8.1-py3-none-any.whl (23 kB)
Collecting certifi==2024.6.2
  Using cached certifi-2024.6.2-py3-none-any.whl (164 kB)
Collecting cffi==1.16.0
  Using cached cffi-1.16.0.tar.gz (512 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting click==8.1.7
  Downloading click-8.1.7-py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 1.3 MB/s 
Collecting django==4.2.14
  Using cached Django-4.2.14-py3-none-any.whl (8.0 MB)
Collecting dnspython==2.6.1
  Using cached dnspython-2.6.1-py3-none-any.whl (307 kB)
Collecting email-validator==2.1.1
  Using cached email_validator-2.1.1-py3-none-any.whl (30 kB)
Collecting fastapi==0.111.0
  Using cached fastapi-0.111.0-py3-none-any.whl (91 kB)
Collecting fastapi-cli==0.0.4
  Using cached fastapi_cli-0.0.4-py3-none-any.whl (9.5 kB)
Collecting h11==0.14.0
  Downloading h11-0.14.0-py3-none-any.whl (58 kB)
     |████████████████████████████████| 58 kB 1.1 MB/s 
Collecting httpcore==1.0.5
  Using cached httpcore-1.0.5-py3-none-any.whl (77 kB)
Collecting httptools==0.6.1
  Using cached httptools-0.6.1-cp39-cp39-linux_armv7l.whl
Collecting httpx==0.27.0
  Using cached httpx-0.27.0-py3-none-any.whl (75 kB)
Collecting idna==3.7
  Using cached idna-3.7-py3-none-any.whl (66 kB)
Collecting jinja2==3.1.4
  Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)
Collecting markdown-it-py==3.0.0
  Using cached markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
Collecting markupsafe==2.1.5
  Using cached MarkupSafe-2.1.5.tar.gz (19 kB)
Collecting mdurl==0.1.2
  Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Collecting msgpack==1.0.8
  Downloading msgpack-1.0.8.tar.gz (167 kB)
     |████████████████████████████████| 167 kB 5.2 kB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
wCollecting orjson==3.10.3
  Downloading orjson-3.10.3.tar.gz (4.9 MB)
     |████████████████████████████████| 4.9 MB 5.9 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... error
    ERROR: Command errored out with exit status 1:
     command: /home/osmc/.etebase/.venv/bin/python /tmp/tmpzqw9dnbf_in_process.py prepare_metadata_for_build_wheel /tmp/tmpqsunwfgm
         cwd: /tmp/pip-install-hrmib5_r/orjson_81c092f1262b4c4083269762b3646350
    Complete output (6 lines):

    Cargo, the Rust package manager, is not installed or is not on PATH.
    This package requires Rust and Cargo to compile extensions. Install it through
    the system's package manager or via https://rustup.rs/

    Checking for Rust toolchain....
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/f8/16/c10c42b69beeebe8bd136ee28b76762837479462787be57f11e0ab5d6f5d/orjson-3.10.3.tar.gz#sha256=2b166507acae7ba2f7c315dcf185a9111ad5e992ac81f2d507aac39193c2c818 (from https://pypi.org/simple/orjson/) (requires-python:>=3.8). Command errored out with exit status 1: /home/osmc/.etebase/.venv/bin/python /tmp/tmpzqw9dnbf_in_process.py prepare_metadata_for_build_wheel /tmp/tmpqsunwfgm Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement orjson==3.10.3
ERROR: No matching distribution found for orjson==3.10.3

Environment:

- OS: Debian GNU/Linux 11 (bullseye)
- Python:  3.9.2
- pip: 20.3.4
- virtualenv: 20.4.0+ds

After a couple hours of frustration, I ended up using the exact same commit I was already using (it worked lol), as I don't know what's the latest commit that will work for me :(

daftaupe commented 3 weeks ago

Hi, you might be interested by https://github.com/etesync/server/issues/178 You can give a try to using the latest git commit (not a release). I guess it should work if you use Python 3.9.2. Sorry, I read too fast, the message is Cargo, the Rust package manager, is not installed or is not on PATH., so you probably should install cargo with apt install cargo probably ? (not using Debian), and run that command again. It's required in you case because it's trying to compile orjson for some reason.