Seite 2 von 5

Re: OneDrive Backup Modul

Verfasst: Mo Aug 07, 2023 5:57 am
von LutzB
Ich kann das Problem auf meinem Testsystem zumindest nachstellen. Bei der Installation der MSAL wird auch das Python Paket "cryptography" benötigt. Anscheinend gibt es das jedoch über "pip" nicht prebuild, sodass versucht wird, es lokal zu kompilieren. Das scheitert dann daran, dass kein Rust Compiler installiert ist.

Was ich jetzt erfolglos probiert habe:
  • "python-cryptography" über apt installiert; ist jedoch eine ganz andere Versionsnummer 3.3.2
  • wie in der Fehlermeldung vorgeschlagen "pip install --upgrade pip"; pip wird von Version 20.3.4 auf 23.2.1 aktualisiert, das Problem bleibt aber
Anhand der Meldungen kann ich mir ehrlich gesagt nicht vorstellen, dass es beim RC2 Image einfach so funktioniert hat. Einzige Möglichkeit wäre, dass inzwischen die MSAL Bibliothek aktualisiert wurde und neue Abhängigkeiten besitzt.

Re: OneDrive Backup Modul

Verfasst: Mo Aug 07, 2023 6:30 am
von Meth
Was ich gemacht habe war wie in einem Post geschrieben bevor man den Branch von RC auf Master wechselst das System mit Apt-Upgrade auf den neuesten Stand gebracht .
Ich konnte mit dem Modul mich mit OneDrive Anmelden wie beschrieben und ich habe Manuell ein Backup Angestartet .
Das funktionierte auch .

Re: OneDrive Backup Modul

Verfasst: Mo Aug 07, 2023 6:44 am
von mrinas
LutzB hat geschrieben: Mo Aug 07, 2023 5:57 am Ich kann das Problem auf meinem Testsystem zumindest nachstellen. Bei der Installation der MSAL wird auch das Python Paket "cryptography" benötigt. Anscheinend gibt es das jedoch über "pip" nicht prebuild, sodass versucht wird, es lokal zu kompilieren. Das scheitert dann daran, dass kein Rust Compiler installiert ist.

Was ich jetzt erfolglos probiert habe:
  • "python-cryptography" über apt installiert; ist jedoch eine ganz andere Versionsnummer 3.3.2
  • wie in der Fehlermeldung vorgeschlagen "pip install --upgrade pip"; pip wird von Version 20.3.4 auf 23.2.1 aktualisiert, das Problem bleibt aber
Anhand der Meldungen kann ich mir ehrlich gesagt nicht vorstellen, dass es beim RC2 Image einfach so funktioniert hat. Einzige Möglichkeit wäre, dass inzwischen die MSAL Bibliothek aktualisiert wurde und neue Abhängigkeiten besitzt.
spannend. ich hab' bei mir msal 1.22.0 installiert, die 1.23.0 ist aktuell. Auf den ersten Blick kann ich hier keine relevanten Änderungen, z.b. bei den Abhängigkeiten, entdecken.
https://github.com/AzureAD/microsoft-au ... 0...1.23.0

Code: Alles auswählen

openwb@openwb2:~ $ pip show msal
Name: msal
Version: 1.22.0
Summary: The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect.
Home-page: https://github.com/AzureAD/microsoft-authentication-library-for-python
Author: Microsoft Corporation
Author-email: nugetaad@microsoft.com
License: MIT
Location: /home/openwb/.local/lib/python3.9/site-packages
Requires: requests, cryptography, PyJWT
Required-by:
einen rust compiler habe ich ebenfalls nicht

Code: Alles auswählen

openwb@openwb2:~ $ rustc -v
-bash: rustc: command not found
openwb@openwb2:~ $

Re: OneDrive Backup Modul

Verfasst: Mo Aug 07, 2023 6:49 am
von LutzB
Welche Version der Cryptography Bibliothek wurde da installiert?

In meiner X64 VM wird ein bereits kompiliertes Modul installiert, da gibt es die Probleme ebenfalls nicht. Für den Pi mit "armvl7" wird das jedoch nicht angeboten?

Re: OneDrive Backup Modul

Verfasst: Mo Aug 07, 2023 6:52 am
von mrinas

Code: Alles auswählen

openwb@openwb2:~ $ pip show cryptography
Name: cryptography
Version: 40.0.1
Summary: cryptography is a package which provides cryptographic recipes and primitives to Python developers.
Home-page: https://github.com/pyca/cryptography
Author: The Python Cryptographic Authority and individual contributors
Author-email: cryptography-dev@python.org
License: (Apache-2.0 OR BSD-3-Clause) AND PSF-2.0
Location: /home/openwb/.local/lib/python3.9/site-packages
Requires: cffi
Required-by: skodaconnect, msal
openwb@openwb2:~ $
auf einem Raspberry Pi 3 Model B Rev 1.2

Code: Alles auswählen

openwb@openwb2:~ $ pip -V
pip 20.3.4 from /usr/lib/python3/dist-packages/pip (python 3.9)

Re: OneDrive Backup Modul

Verfasst: Mo Aug 07, 2023 7:24 am
von LutzB
"pip" versucht ohne weitere Angaben die Version 41.0.3 zu installieren. Dazu gibt es anscheinend noch kein binary Build (wheel). Wenn ich die Version 40.0.1 installiere, läuft es ohne kompilieren durch.

Code: Alles auswählen

~ $ pip install cryptography==40.0.1
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting cryptography==40.0.1
  Downloading https://www.piwheels.org/simple/cryptography/cryptography-40.0.1-cp39-cp39-linux_armv7l.whl (1.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5/1.5 MB 3.6 MB/s eta 0:00:00
Collecting cffi>=1.12 (from cryptography==40.0.1)
  Using cached https://www.piwheels.org/simple/cffi/cffi-1.15.1-cp39-cp39-linux_armv7l.whl (364 kB)
Collecting pycparser (from cffi>=1.12->cryptography==40.0.1)
  Using cached https://www.piwheels.org/simple/pycparser/pycparser-2.21-py2.py3-none-any.whl (119 kB)
Installing collected packages: pycparser, cffi, cryptography
Successfully installed cffi-1.15.1 cryptography-40.0.1 pycparser-2.21
Danach kann auch msal installiert werden:

Code: Alles auswählen

~ $ pip install msal==1.22.0
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting msal==1.22.0
  Using cached https://www.piwheels.org/simple/msal/msal-1.22.0-py2.py3-none-any.whl (90 kB)
Requirement already satisfied: requests<3,>=2.0.0 in /usr/lib/python3/dist-packages (from msal==1.22.0) (2.25.1)
Requirement already satisfied: PyJWT[crypto]<3,>=1.0.0 in ./.local/lib/python3.9/site-packages (from msal==1.22.0) (2.6.0)
Requirement already satisfied: cryptography<43,>=0.6 in ./.local/lib/python3.9/site-packages (from msal==1.22.0) (40.0.1)
Requirement already satisfied: cffi>=1.12 in ./.local/lib/python3.9/site-packages (from cryptography<43,>=0.6->msal==1.22.0) (1.15.1)
Requirement already satisfied: pycparser in ./.local/lib/python3.9/site-packages (from cffi>=1.12->cryptography<43,>=0.6->msal==1.22.0) (2.21)
Installing collected packages: msal
Successfully installed msal-1.22.0
Anscheinend wird die Reihenfolge in der requirements.txt beachtet, sodass die cryptography Bibliothek in Version 40.0.1 vor der msal eingetragen werden kann.

Ein ähnliches Problem hatten wir schon beim Skoda SoC Modul, welches das Python Paket "Skodaconnect" hinzugefügt hat. Da kam es ebenfalls wegen einem Fehler bei der Installation dazu, dass der openWB Dienst nicht mehr gestartet wurde. Wir sollten das Problem also irgendwie grundlegend lösen, sodass ein Fehler nicht die komplette Wallbox bricked.

Re: OneDrive Backup Modul

Verfasst: Mo Aug 07, 2023 7:28 am
von mrinas
super, danke Lutz! Dann stelle ich dafür doch gleich mal einen PR ein.


Mein virtuelles Testsystem auf Arm mit qemu läuft inzwischen auch, allerdings ist die Netzwerkanbindung mit dem user-mode Treiber unterirdisch langsam, bin mir nicht sicher ob ich hier brauchbare Testergebnisse erzeugen kann.

Re: OneDrive Backup Modul

Verfasst: Mo Aug 07, 2023 8:00 am
von mrinas
PR ist erstellt.

Mit der cryptography==40.0.1 in der requirements.txt lief das nun durch.

Code: Alles auswählen

no factory reset pending, normal startup
atreboot.sh started
checking init in /boot/config.txt...
watchdog for atreboot.sh on pid 3337 started, waiting for 900s
already up to date
Group membership...
Final group membership: openwb : openwb adm dialout cdrom sudo audio video plugdev games users input render netdev spi i2c gpio
Network...
Wait for connection...
my primary IP: 10.0.2.15
my primary interface: eth0
running as primary, enabling plug'n'play network
apt configuration already up to date
install required packages with 'apt-get'...
OK:1 http://raspbian.raspberrypi.org/raspbian bullseye InRelease
OK:2 http://archive.raspberrypi.org/debian bullseye InRelease
Paketlisten werden gelesen…
Paketlisten werden gelesen…
Abhängigkeitsbaum wird aufgebaut…
Statusinformationen werden eingelesen…
accountsservice ist schon die neueste Version (0.6.55-3).
apache2 ist schon die neueste Version (2.4.56-1~deb11u2).
bc ist schon die neueste Version (1.07.1-2+b1).
chromium ist schon die neueste Version (106.0.5249.119-1~deb11u1).
chromium-l10n ist schon die neueste Version (106.0.5249.119-1~deb11u1).
git ist schon die neueste Version (1:2.30.2-1+deb11u2).
jq ist schon die neueste Version (1.6-2.1).
libapache2-mod-php ist schon die neueste Version (2:7.4+76).
lightdm-autologin-greeter ist schon die neueste Version (1.0-3).
mmc-utils ist schon die neueste Version (0+git20180327.b4fe0c8c-1).
mosquitto ist schon die neueste Version (2.0.11-1).
mosquitto-clients ist schon die neueste Version (2.0.11-1).
openbox-lxde-session ist schon die neueste Version (0.99.2-4).
php ist schon die neueste Version (2:7.4+76).
php-curl ist schon die neueste Version (2:7.4+76).
php-gd ist schon die neueste Version (2:7.4+76).
php-json ist schon die neueste Version (2:7.4+76).
php-xml ist schon die neueste Version (2:7.4+76).
socat ist schon die neueste Version (1.7.4.1-3).
sshpass ist schon die neueste Version (1.09-1).
ssl-cert ist schon die neueste Version (1.1.0+nmu1).
sudo ist schon die neueste Version (1.9.5p2-3+deb11u1).
vim ist schon die neueste Version (2:8.2.2434-3+deb11u1).
x11-xserver-utils ist schon die neueste Version (7.7+8).
xserver-xorg ist schon die neueste Version (1:7.7+22).
lightdm ist schon die neueste Version (1.26.0-7+rpt1).
python3-pip ist schon die neueste Version (20.3.4-4+rpt1+deb11u1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
done
openwb.cron already up to date
openwb2.service already up to date
openwbRemoteSupport.service already up to date
no restore pending, normal startup
cleaning obsolete python cache folders...
python cache cleanup done
display setup...
autologin configured
mouse cursor configured
lxde session autostart already configured
apache default site...
...ok
checking required apache modules...
headers (enabled by site administrator)
headers already enabled
ssl (enabled by site administrator)
ssl already enabled
proxy_wstunnel (enabled by site administrator)
proxy_wstunnel already enabled
check mosquitto installation...
mosquitto.conf already up to date
mosquitto openwb.conf already up to date
mosquitto_local.conf already up to date
mosquitto openwb_local.conf already up to date
mosquitto done
install required python packages with 'pip3'...
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: jq==1.1.3 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 1)) (1.1.3)
Requirement already satisfied: paho_mqtt==1.6.1 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 2)) (1.6.1)
Requirement already satisfied: pymodbus==2.5.2 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 3)) (2.5.2)
Requirement already satisfied: pytest==6.2.5 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 4)) (6.2.5)
Requirement already satisfied: requests_mock==1.9.3 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 5)) (1.9.3)
Requirement already satisfied: lxml==4.9.1 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 6)) (4.9.1)
Requirement already satisfied: aiohttp==3.7.4 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 7)) (3.7.4)
Requirement already satisfied: schedule==1.1.0 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 8)) (1.1.0)
Requirement already satisfied: PyJWT==2.6.0 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 9)) (2.6.0)
Requirement already satisfied: ipparser==0.3.8 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 10)) (0.3.8)
Requirement already satisfied: bs4==0.0.1 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 11)) (0.0.1)
Requirement already satisfied: pkce==1.0.3 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 12)) (1.0.3)
Requirement already satisfied: evdev==1.5.0 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 14)) (1.5.0)
Requirement already satisfied: python-dateutil==2.8.2 in /home/openwb/.local/lib/python3.9/site-packages (from -r /var/www/html/openWB/requirements.txt (line 16)) (2.8.2)
Collecting cryptography==40.0.1
  Downloading https://www.piwheels.org/simple/cryptography/cryptography-40.0.1-cp39-cp39-linux_armv7l.whl (1.5 MB)
Collecting msal==1.22.0
  Downloading https://www.piwheels.org/simple/msal/msal-1.22.0-py2.py3-none-any.whl (90 kB)
Requirement already satisfied: chardet<4.0,>=2.0 in /home/openwb/.local/lib/python3.9/site-packages (from aiohttp==3.7.4->-r /var/www/html/openWB/requirements.txt (line 7)) (3.0.4)
Requirement already satisfied: yarl<2.0,>=1.0 in /home/openwb/.local/lib/python3.9/site-packages (from aiohttp==3.7.4->-r /var/www/html/openWB/requirements.txt (line 7)) (1.8.1)
Requirement already satisfied: typing-extensions>=3.6.5 in /home/openwb/.local/lib/python3.9/site-packages (from aiohttp==3.7.4->-r /var/www/html/openWB/requirements.txt (line 7)) (4.4.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /home/openwb/.local/lib/python3.9/site-packages (from aiohttp==3.7.4->-r /var/www/html/openWB/requirements.txt (line 7)) (6.0.2)
Requirement already satisfied: attrs>=17.3.0 in /home/openwb/.local/lib/python3.9/site-packages (from aiohttp==3.7.4->-r /var/www/html/openWB/requirements.txt (line 7)) (22.1.0)
Requirement already satisfied: async-timeout<4.0,>=3.0 in /home/openwb/.local/lib/python3.9/site-packages (from aiohttp==3.7.4->-r /var/www/html/openWB/requirements.txt (line 7)) (3.0.1)
Requirement already satisfied: beautifulsoup4 in /home/openwb/.local/lib/python3.9/site-packages (from bs4==0.0.1->-r /var/www/html/openWB/requirements.txt (line 11)) (4.11.1)
Collecting cffi>=1.12
  Downloading https://www.piwheels.org/simple/cffi/cffi-1.15.1-cp39-cp39-linux_armv7l.whl (364 kB)
Requirement already satisfied: dnspython in /home/openwb/.local/lib/python3.9/site-packages (from ipparser==0.3.8->-r /var/www/html/openWB/requirements.txt (line 10)) (2.3.0)
Requirement already satisfied: requests<3,>=2.0.0 in /usr/lib/python3/dist-packages (from msal==1.22.0->-r /var/www/html/openWB/requirements.txt (line 18)) (2.25.1)
Requirement already satisfied: pyserial>=3.4 in /home/openwb/.local/lib/python3.9/site-packages (from pymodbus==2.5.2->-r /var/www/html/openWB/requirements.txt (line 3)) (3.5)
Requirement already satisfied: six>=1.15.0 in /usr/lib/python3/dist-packages (from pymodbus==2.5.2->-r /var/www/html/openWB/requirements.txt (line 3)) (1.16.0)
Requirement already satisfied: toml in /usr/lib/python3/dist-packages (from pytest==6.2.5->-r /var/www/html/openWB/requirements.txt (line 4)) (0.10.1)
Requirement already satisfied: pluggy<2.0,>=0.12 in /home/openwb/.local/lib/python3.9/site-packages (from pytest==6.2.5->-r /var/www/html/openWB/requirements.txt (line 4)) (1.0.0)
Requirement already satisfied: packaging in /home/openwb/.local/lib/python3.9/site-packages (from pytest==6.2.5->-r /var/www/html/openWB/requirements.txt (line 4)) (21.3)
Requirement already satisfied: iniconfig in /home/openwb/.local/lib/python3.9/site-packages (from pytest==6.2.5->-r /var/www/html/openWB/requirements.txt (line 4)) (1.1.1)
Requirement already satisfied: py>=1.8.2 in /home/openwb/.local/lib/python3.9/site-packages (from pytest==6.2.5->-r /var/www/html/openWB/requirements.txt (line 4)) (1.11.0)
Collecting pycparser
  Downloading https://www.piwheels.org/simple/pycparser/pycparser-2.21-py2.py3-none-any.whl (119 kB)
Requirement already satisfied: idna>=2.0 in /usr/lib/python3/dist-packages (from yarl<2.0,>=1.0->aiohttp==3.7.4->-r /var/www/html/openWB/requirements.txt (line 7)) (2.10)
Requirement already satisfied: soupsieve>1.2 in /home/openwb/.local/lib/python3.9/site-packages (from beautifulsoup4->bs4==0.0.1->-r /var/www/html/openWB/requirements.txt (line 11)) (2.3.2.post1)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /home/openwb/.local/lib/python3.9/site-packages (from packaging->pytest==6.2.5->-r /var/www/html/openWB/requirements.txt (line 4)) (3.0.9)
Installing collected packages: pycparser, cffi, cryptography, msal
Successfully installed cffi-1.15.1 cryptography-40.0.1 msal-1.22.0 pycparser-2.21
done
load versions...
chgrp: Zugriff auf '/var/www/html/openWB/data/restore/*' nicht möglich: Datei oder Verzeichnis nicht gefunden
chgrp: Zugriff auf '/var/www/html/openWB/data/data_migration/*' nicht möglich: Datei oder Verzeichnis nicht gefunden
chmod: Zugriff auf '/var/www/html/openWB/data/restore/*' nicht möglich: Datei oder Verzeichnis nicht gefunden
chmod: Zugriff auf '/var/www/html/openWB/data/data_migration/*' nicht möglich: Datei oder Verzeichnis nicht gefunden
2023-08-07 09:54:32: boot done :-)

openwb@openwb-2:/var/www/html/openWB/runs $ cat /proc/cpuinfo
processor       : 0
BogoMIPS        : 125.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 1
BogoMIPS        : 125.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 2
BogoMIPS        : 125.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 3
BogoMIPS        : 125.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

Hardware        : BCM2835
Model           : Raspberry Pi 3 Model B
openwb@openwb-2:/var/www/html/openWB/runs $

Re: OneDrive Backup Modul

Verfasst: Mo Aug 07, 2023 9:04 am
von mrinas
LutzB hat geschrieben: Mo Aug 07, 2023 7:24 am Ein ähnliches Problem hatten wir schon beim Skoda SoC Modul, welches das Python Paket "Skodaconnect" hinzugefügt hat. Da kam es ebenfalls wegen einem Fehler bei der Installation dazu, dass der openWB Dienst nicht mehr gestartet wurde. Wir sollten das Problem also irgendwie grundlegend lösen, sodass ein Fehler nicht die komplette Wallbox bricked.
Jup, da bin ich dabei. Sowohl test coverage als auch die eine mittel/langfristige Lösung.
Für die Test Coverage gibts wohl sowas hier, damit könnte man die checks in GitHub direkt auf der Arm platform durchführen um solche Probleme in Zukunft besser erkennen zu können. https://github.com/marketplace/actions/ ... chitecture
Vielleicht geht das ja in die richtige Richtung.

Re: OneDrive Backup Modul

Verfasst: Do Aug 10, 2023 9:24 am
von Meth
Kommt das bzw. wann kommt das dann in den Release ?