Bug-fixing mit Downgrade, auch eine Lösung…

Der Umstieg von FreeBSD 12.2 auf 13.0 ist geschafft. Gleichzeitig habe ich eine neue Workstation in Betrieb genommen. Diese Schritte waren nicht einfach, aber dafür lehrreich. eine anleitung für ein Upgrade kann man auf der Release-Informationsseite von FreeBSD unter https://www.freebsd.org/releases/13.0R/installation/ finden.

Natürlich ist mit Version 13.0-RELEASE auch die Software aktualisiert worden. Das dies diesmal nicht von Vorteil war habe ich gemerkt, wie ich meine Radio-Sendung vorbereiten wollte und hier den Uplink zum Streamingserver getestet habe.

Zum Einsatz kommt hier die ganz gut gelungene Software Mixx (https://mixxx.org/), die zwar eigentlich für DJs entwickelt wurde, aber ohne weiteres auch für einen Online-Radio-Betrieb geeignet ist.

Bei dem Verbindungsaufbau zum Streaming-Server habe ich die Meldung im Mixxx bekommen, dass der Benutzernamen oder das Passwort leer oder falsch sind. Der Blick in die .log-Datei des Icecast-Servers war hier nicht sehr aussagekräftig.

[2021-05-01  00:28:38] INFO connection/_handle_source_request Source logging in at mountpoint "/stream" from 192.168.88.62
[2021-05-01  00:28:38] INFO connection/_handle_source_request Source (/stream) attempted to login with invalid or missing pas
sword
[2021-05-01  00:28:38] DBUG fserve/fserve_add_client Adding client to file serving engine
[2021-05-01  00:28:38] INFO connection/_handle_source_request Source logging in at mountpoint "/stream" from 192.168.88.62
[2021-05-01  00:28:38] INFO connection/_handle_source_request Source (/stream) attempted to login with invalid or missing pas
sword
[2021-05-01  00:28:38] DBUG fserve/fserve_add_client Adding client to file serving engine
[2021-05-01  00:28:38] INFO connection/_handle_source_request Source logging in at mountpoint "/stream" from 192.168.88.62
[2021-05-01  00:28:38] INFO connection/_handle_source_request Source (/stream) attempted to login with invalid or missing pas
sword

Da es aber unter FreeBSD 12.2-RELEASE mit diesen Einstellungen geklappt hat und diese Einstellungen nicht verändert wurden, konnte also nur ein Fehler in der Software verantwortlich sein.

Die Frage war jetzt wo?

Ich habe die Einstellungen mehrmals verändert, mal ohne Passwort, das Password auf Zahlen und Buchstaben reduziert und auch keinen Benutzernamen verwendet, alles half nicht, die Verbindung konnte nicht aufgebaut werden.

Der nächste Schritt war nun, von einer anderen Plattform zu testen. Ich habe kurzer Hand Mixxx auf dem Linux-Laptop installiert und schwuppdiwupp konnte der Uplink mit der originalen Konfiguration aufgebaut werden.

Nach längerer Recherche im Internet konnte ich feststellen, dass Mixxx die Library libshout für den Aufbau der IceCast-Verbindung verwendet.

Die Version auf dem Linux Laptop war 2.4.3, die auf FreeBSD war 2.4.5. Die eigentlich Lösung, das Problem gefixt zu bekommen ging nur über den Weg den Maintainer per Mail zu schreiben.

Das Problem für mich war aber, dass eigentlich eine Radio-Sendung anstand. Was also tun?

Noch einmal durch google gewühlt bin ich auf eine Seite gestoßen, auf der beschrieben wurde, wie man den Source-Tree von FreeBSD über git aktualisieren kann. Die Frage die sich mir dann stelle, kann man auch den Ports-Tree über git aktualisieren? Ja, das geht!!!

Mittlerweile ist FreeBSD auf git umgestiegen und somit sollte, nachdem man den Ports-Tree bereits auf seinem System installiert hat, ein Upgrade. bzw ein Wechseln auf das letzte Quartal die vorherige Version bereit stellen können. Ist der Ports-Tree nicht installiert, so kann man diesen mit dem folgenden Befehl herunterladen.

cd /usr
rm -R ports
git clone https://git.freebsd.org/ports.git /usr/ports

Wenn man die aktuelle Konfiguration des Ports libshout ansieht, dann hat man die Version 2.4.5

Mit folgenden Befehl kann man nun die Ports wechseln.

cd /usr/ports
git -C /usr/ports switch 2021Q1

Schaut man anschließend die Konfiguration von libshout an, sieht man, dass nun die Version 2.4.4 in den Ports liegt.

Nun kann man diesen Port installieren

make install clean

Anschließend sollte man den Port erste einmal vor ungewollten Update sperren, indem man dem Port locked.

Der nächste Test mit Mixxx brachte endlich den Uplink zum IceCast-Server zurück und ich konnte wieder auf Sendung gehen.

Eine schnelle Lösung, die mich flexibler vor Ausfällen des Systems macht, weil ich vorüber gehende Lösungen umsetzen kann.

ABER, ACHTUNG! Ein Downgrade eines Ports kann auch dazu führen, dass die Software nicht mehr geht, weil abhängige Pakete vielleicht nicht mehr kompatibel sind. Dieser Schritt sollte also als „möglicher“, aber nicht als einziger und vor allem richtiger Weg angesehen werden.

Die Meldung des Bugs an die Entwickler sollte auf alle Fälle aufgenommen werden, damit das Problem in der neuen Version gefixt werden kann.

Nicht vergessen, man sollte nun die Ports wieder auf den aktuellen Standbringen

cd /usr/ports
git -C /usr/ports switch 2021Q2

Ist der Bug behoben, kann man den Port wieder entsperren und die Software aktualisieren.

Robert Friemer

Robert Friemer, mittlerweile 49, arbeitet mit Windows seit Version 3.11, mit Linux seit Version 2.0 und mit FreeBSD seit Version 3.8. Er hat schon so einige Irrungen und Wirrungen in der IT mit erlebt und ist seit einigen Jahren (fast) Windows-los. Dank Pinguin und vor allem dank Beastie.

More Posts - Website