Pygit2 + ssh + windows Abhängigkeit richtig händeln ...

Probleme bei der Installation?
Antworten
HBerger
User
Beiträge: 8
Registriert: Montag 23. August 2021, 13:29

Hallo miteinander,

Ich habe folgendes "Problem":

Ein Tool von mir verwendet pygit2 und braucht ssh als protokoll.
Leider wird bei pygit2 im pip - windows wheel eine git2.dll ausgeliefert, die ohne ssh support gebaut wurde.
Eine funktionierende git2.dll mit ssh support erstellen ist kein problem, funktioniert auch.

Solange ich das tool selber nutze, hab ich kein problem die dll auszutauschen (im side-packages/pygit2 ordner) auch wenn ich dafür vielleicht in die Hölle komme.

Nun wollen aber andere auch das nutzen, und ich hätte gern einen besseren / komfortableren weg ...
Ich kenn mich aber mit dem Setup Möglichkeiten da nicht so gut aus ... und will auch nicht unbedingt der Python Package Experte werden

Was könnte für das Problem der richtige weg sein ... wie gesagt momentan verwende ich pip
Aber ein Package in einem privaten package repo so überschreiben ist sicher nicht die beste methode ...
Ich hab mal miniconda versucht ... da war das Ergebnis irgendwie nicht konstant hab pygit2 von conda-forge installiert, in einer älten version (3.7x) war ssh support drin (keine ahnung wieso) in einer neueren nicht ...

Hat jemand das problem irgendwie elegant gelöst, oder sehe ich die richtige Lösung nur nicht ?

Danke schon mal ...

Ciao.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@HBerger,
Nun wollen aber andere auch das nutzen, und ich hätte gern einen besseren / komfortableren weg ...
hast du mal hier geschaut ob die gewünschte git2.dll dabei ist?
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygit2

Die kann man sich ja runterladen und mit pip installieren.
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

Es gibt da anscheinend ein Issue für SSH-Support unter Windows: https://github.com/libgit2/pygit2/issues/994

Wenn ich das richtig verstehe, ist da der Blocker, die `git2.dll` mit SSH-Support zu bauen. Anscheinend hast du das Problem gelöst? Dann würde ich das mal in dem Issue beschreiben, dann kann das offizielle Wheel repariert werden.
HBerger
User
Beiträge: 8
Registriert: Montag 23. August 2021, 13:29

Danke für die Antworten ...
Wenn ich das richtig verstehe, ist da der Blocker, die `git2.dll` mit SSH-Support zu bauen.
Der Blocker ist nicht wirklich die Dll zu bauen, sondern das einem abgeraten wird, OpenSSH mit zu packen. Zu viele sicherheits-kritische Updates, die man sich mit ins boot holen würde ....
Von C / C++ Seite her das ding automatisch zu bauen, ist nicht so das problem. Glaub auch das der Maintainer von pygit2 das hinkriegen würde.
Aber seine eigene Update Mechanik von den OpenSSH fixes abhängig machen, da könnt ich auch nicht helfen ....
Unter windows bringen die meisten tools(git for windows, tortoise git) ihre eigenen nicht mit der normalen libgit2 kompatiblen versionen mit.
Keine Ahnung ob die Sicherheitsprobleme so schlimm sind bei openSSH, die update intervalle sehen aber ned so schlimm aus :-)

Ciao.
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

HBerger hat geschrieben: Montag 23. August 2021, 17:45 Glaub auch das der Maintainer von pygit2 das hinkriegen würde.
Anscheinend nicht: https://github.com/libgit2/pygit2/issue ... -614471486 und https://github.com/libgit2/pygit2/issue ... -619104560. `libssh2` im Wheel zu bundlen macht denen anscheinend auch nichts aus.
HBerger
User
Beiträge: 8
Registriert: Montag 23. August 2021, 13:29

Sorry my fault, openssl ist die lib (Abhängigkeit) ... und natürlich auch libssh2

Das bauen von git2.dll mit den Abhängigkeiten geht aber ohne Probleme, so wie es in den readme's von den libs steht. Hab sowohl handig runtergeladen und gebaut .... als auch mit nem conan build.
geht alles zumindest auf meiner platform (win10 mit msvc 2017 / 2019). Also glaub ich nicht das sie ein technisches Problem haben, wenn dann eher ein zeitliches.

tdm-gcc / llvm könnt ich mal testen, ob deren problem von da kommt ....

ansonsten kenn mich halt nicht gut mit python und den setuptools aus, als das ich da helfen könnt, glaub ich ...
HBerger
User
Beiträge: 8
Registriert: Montag 23. August 2021, 13:29

> tdm-gcc / llvm
Ok, vielleicht ist genau das das problem :-)
So einfach wie es mit dem msvc war, so zickig isses mit mingw / tdm-gcc
und das conan receipe from conan-center failt in einer dependency loop (msys2) wenn man versucht nicht mit msvc zu bauen

Ohje ....
Antworten