FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Sidey am 16 Februar 2024, 23:26:46

Titel: Modul IO::Socket::INET6
Beitrag von: Sidey am 16 Februar 2024, 23:26:46
Mir ist aufgefallen, das derzeit das oben genannte Modul noch von einigen Modulen verwendet wird:

34_ESPEasy.pm
TcpServerUtils.pm
HttpUtils.pm
Meta.pm
DevIO.pm
98_telnet.pm
fhem.pl

Folgenden Text habe ich von MetaCpan

WARNING!! IO-Socket-INET6 is deprecated.

IO-Socket-INET6 was now succeeded by Paul Evans' IO::Socket::IP . Please convert old code from IO-Socket-INET6 to IO-Socket-IP.


Wäre eine Migration möglich? Ich würde gerne mal veraltete Module aus dem Docker Image werfen um den Pflegeaufwand zu verringern :)

Grüße Sidey
Titel: Aw: Modul IO::Socket::INET6
Beitrag von: rudolfkoenig am 17 Februar 2024, 08:24:29
ZitatWäre eine Migration möglich?
Moeglich ist vieles, leider ist der Aufwand um Groessenordnungen hoeher, als der Pflegeaufwand fuer die Docker Images.
Habe den Umbau vor laengerer Zeit schon mal versucht, und bei der nicht blockierenden SSL Verbindung aufgegeben.
Titel: Aw: Modul IO::Socket::INET6
Beitrag von: Sidey am 19 Februar 2024, 20:49:58
Zitat von: rudolfkoenig am 17 Februar 2024, 08:24:29Habe den Umbau vor laengerer Zeit schon mal versucht, und bei der nicht blockierenden SSL Verbindung aufgegeben.

Schade dass es nicht mehr oder weniger ein 1:1 Ersatz ist.

Ich habe jetzt folgendes realisiert.
Vom SVN den aktuellen Stand auschecken.
Ein prereq scanner sucht vor dem build alle benötigt Perl packages zusammen und erstellt ein cpanfile.

Das war einfach. :)
Leider sind im cpanfile dann auch die Dinge enthalten die weder auf CPAN zu finden sind, noch dass es wirkliche packages sind.

Um alle FHEM Packages wieder zu entfernen habe ich mich PPI bedient. Das findet alle Packages die innerhalb FHEM definiert werden.
Übrig bleiben die "Module" die im Packages "main" residieren aber trotzdem mit use oder require eingebunden sind.

An dieser Stelle wäre ein übergreifender Namespace hilfreich gewesen, aber den haben wir ja nicht.
Habe also diverse Dateien manuell ausgeschlossen. :(

Das Resultat ist jetzt, dass die notwendigen Abhängigkeit automatisch gesucht und über CPAN installiert werden.
Solange neue Module auch ein eigenes Package was zum Dateinamen passt bekommen funktioniert dieser Prozess ohne Anpassungen.

Drittquellen von GitHub habe ich über eine einfache Suche nach einem "Tag" "FHEM" nach dem gleichen Vorgehen implementiert.

Solange keine neuen "Modul Dateien" im Packages Main aufgenommen werden ist diese Vorgehensweise wartungsarm.

Viele Grüße
Sidey