Zwei Wochen OpenBSD Ports maintenance: LLVM 22 Fallout, SDR Stack Expansion, und Ruby Housekeeping

Hinter mir liegen wieder mal zwei Wochen im OpenBSD Ports Tree. Zwischen größeren Toolchain-Updates im Base-System, die bei mir für einiges an Fallout gesorgt haben, dem Ausbau des Software Defined Radio (SDR) Ökosystems, Updates für mein Repository an GNUstep App Wrappern, einem Major-Update von wpscan sowie einem überfälligen Update von whatweb inklusive dem nötigen Dependency-Maze gab es für mich jede Menge zu tun.
Hier ist ein Breakdown aller Updates, neuen Imports und Maintenance-Arbeiten der letzten 14 Tage.
Das LLVM 22 Upgrade & der GNUstep Fallout
Das Update von LLVM auf Version 22 im OpenBSD Base-System war ein großartiger Meilenstein, aber wie das bei großen Compiler-Sprüngen eben so ist: Es brachte eine ganze Welle strengerer Kompilier-Regeln und Deprecations mit sich. Als Maintainer eines beträchtlichen Teils unseres GNUstep-Ökosystems durfte ich also zusehen, wie die Build-Infrastruktur reihenweise mit Fehlern aufleuchtete.
Das Ganze zu fixen hat einiges an Zeit in Anspruch genommen. Mein Workflow dabei sah im Grunde immer gleich aus: Zuerst die eigentliche Ursache analysieren und untersuchen, woran der Build scheitert. Danach prüfen, ob upstream bereits Fixes existieren – falls ja, habe ich diese direkt übernommen; falls nein, musste ich eine eigene Lösung finden und diese anschließend upstream einreichen.
Fixed und Upstreamed
Für etliche Ports wurden die Patches, die ich gegen die LLVM 22 Build-Fehler geschrieben habe, bereits erfolgreich im jeweiligen Upstream gemergt, oder meine PRs warten gerade noch auf Review:
x11/gnustep/gworkspace- GNUstep workspace managerx11/gnustep/lapispuzzle- tetris like puzzle gamex11/gnustep/netclasses- asynchronous networking framework for GNUstepx11/gnustep/examples- GNUstep example applications
Lokale Port-Fixes
Bei anderen Ports habe ich die Fixes entweder direkt von Upstream übernommen oder sie waren es schlicht nicht wert, extra upstream eingereicht zu werden:
x11/gnustep/base— GNUstep base libraryx11/gnustep/gui— GNUstep gui libraryx11/gnustep/pantomime— framework to major mail protocolsx11/gnustep/paje— GNUstep based trace visualization toolx11/gnustep/gmastermind— GNUstep mastermind gamex11/gnustep/renaissance— GNUstep layer to write portable GUIs
Rescuing Gomoku
Eine ganz besondere Challenge wartete bei x11/gnustep/gomoku. Als ich mich daran setzen wollte, das Ganze zu patchen, stellte ich fest, dass das ursprüngliche Upstream-Repository aus dem Internet verschwunden war. Bevor ich den Port sterben lasse, habe ich mich kurzerhand mit dem Maintainer des GAP (The GNUstep Application Project) kurzgeschlossen. Wir haben Gomoku direkt in das GAP-Projekt importiert und so seine langfristige Zukunft und ein neues Upstream-Zuhause gesichert.
Jede Menge neue GNUstep App Wrapper im Repository
Um die Fixes im Kern-Ökosystem abzurunden und dafür zu sorgen, dass sich auch Nicht-GNUstep Desktop-Anwendungen nahtlos in eine saubere Workstation im GNUstep Desktop einfügen, habe ich meine Sammlung von GNUstep App Wrappers erweitert.
Diese Wrapper erlauben es, ganz normale grafische Apps nativ in GWorkspace oder mein GNUstep-Dock zu integrieren. Meine komplette Collection ist auf GitHub gehostet.
Neu hinzugekommen sind Wrapper-Konfigurationen für folgende Programme:
audacity— Audio editing suitecubicsdr— Spectrum visualizer (passt direkt zu den neuen SDR-Ports weiter unten!)ghidra— NSA’s reverse engineering frameworkgimp— GNU Image Manipulation Programluanti— The voxel game engine (ehemals bekannt als Minetest)prusaslicer— 3D printing slicer suiterocview— Rocrail train control system UIspdrs60— SpdrS60 railway interlocking simulatorxclicker— X11 fast auto-clickerxtrkcad— CAD program for designing model railroad layouts
Expanding the Software Defined Radio (SDR) Ecosystem
Das Thema Software Defined Radio auf OpenBSD hat einen massiven Push bekommen. Mein primäres Ziel dieser Aktion war es, mächtige SDR-Anwendungen wie CubicSDR und Gqrx samt der dafür notwendigen Runtime-Infrastruktur komplett zu portieren.
Das Herzstück dieses Ökosystems ist SoapySDR, das als herstellerunabhängige Hardware-Abstraktionsschicht dient. Indem ich SoapySDR zusammen mit den einzelnen Hardware-Modulen portiert habe, bietet OpenBSD nun eine einheitliche API. Jede App, die gegen SoapySDR geschrieben wurde, kann sauber mit den unterschiedlichsten Funkgeräten kommunizieren – ganz ohne spezielle, individuelle Treiber. Vorerst gilt das zumindest erstmal für RTL-SDR- sowie HackRF One- und HackRF Pro-Geräte.
Neue Imports
comms/cubicsdr: A beautiful cross-platform Software-Defined Radio application built using wxWidgets.comms/soapysdr: The vendor-neutral SDR data abstraction library.comms/soapy-rtlsdr: Wrapper to bring RTL-SDR dongle support to SoapySDR.comms/soapy-hackrf: Wrapper enabling HackRF hardware under the Soapy framework.
Updates und neue Zuständigkeiten
comms/hackrf: Aktualisiert, um neueste Firmware und Runtime-Anforderungen zu unterstützen, allem voran mit Support für das HackRF Pro.comms/dump1090: Update für den beliebten ADS-B Flugzeugtracker. Weil ich gerade eh schon unter der Haube zugange war, habe ich gleich Nägel mit Köpfen gemacht und mich als offizieller MAINTAINER eingetragen, um den Port auch in Zukunft gut zu versorgen.
Awaiting Review auf ports@
Um meinen SDR-Rundumschlag komplett zu machen, habe ich noch drei wichtige Frontend-Erweiterungen auf die Mailingliste geworfen:
comms/gqrx: A powerful AM/FM/SSB software-defined radio receiver graphical user interface.comms/gr-osmosdr: The GNU Radio block for various radio hardware.comms/sdrpp: bloat-free SDR software with a focus on performance
Wenn du ein SDR-Setup unter OpenBSD betreibst, mit HackRF oder RTL-SDR: Schau auf ports@ und teste, Feedback welcome ;)
Passend zum Thema SDR sei auch auf meinen früheren Artikel verwiesen: Spaß mit RTL-SDR auf OpenBSD: Von Flugzeugen, Funk-Thermometern und Radio
Webscanner & Ruby-Dependency-Frühjahrsputz
Das Aktualisieren einer komplexen Ruby-Applikation gleicht oft einem Domino-Spiel. Mein Einpflegen eines Major-Updates für wpscan und das längst überfällige Update von whatweb zog mich tief in ein ordentliches Dependency-Rabbit-Hole. Aber am Ende gab es Licht und alles war aufgeräumt: Altes wurde gelöscht und der Rest auf den neuesten Stand gebracht.
WPScan Revamp & Kahlschlag
Das Major-Update von security/wpscan erforderte einen Wechsel bei der Interaktion mit Headless-Browsern. Das gab mir die perfekte Gelegenheit, ein Alt-Framework über Bord zu werfen und die Dependency-Kette deutlich zu verfeinern:
www/ruby-ferrum: NEUER Port, um High-Level Chrome/Chromium-Automatisierung bereitzustellen.security/ruby-cms_scanner: GELÖSCHT (wurde nur noch von der alten wpscan-Version genutzt).devel/ruby-opt_parse_validator: GELÖSCHT (verwaist nach dem Rauswurf vonruby-cms_scanner).
Kaskadierende Ruby-Dependency-Updates
Um die Anforderungen der neuen wpscan Version zu erfüllen, musste, bzw. konnte ich dann endlich auch mal, diverse andere Ruby-Bibliotheken updaten:
devel/ruby-activesupport— Updatednet/ruby-public_suffix— Updatednet/ruby-connection_pool— Updatedwww/ruby-addressable— Updatedwww/ruby-xmlrpc— Updated
Übernahme von WhatWeb
net/whatweb: Den Webscanner habe dabei auch auf die neueste Version gehievt. Während ich mich durch die Updates gewühlt habe, habe ich auch hier direkt den MAINTAINER übernommen, um den Port auf OpenBSD künftig auf der Überholspur zu halten.
Diverse Updates & ein bisschen Spaß für die Kids
Um meine letzten zwei Wochen rundzumachen, bekamen noch ein paar unabhängige Komponenten im Tree etwas Liebe von mir ab:
Infrastructure- & Anwendungs-Bumps
net/ruby-msgpack&www/ruby-faraday-net_http: Updated (beides kritische Dependencies füropenvox).textproc/py-commonmark: Updated (Dependency fürpuppetboard).archivers/ruby-rubyzip: Auf die neueste stabile Version angehoben.audio/qsynth: Update für das fluidsynth GUI-Frontend.security/exploitdb: Updated, damit die lokalen Exploit-Payload-Definitionen wieder frisch mit den öffentlichen Archiven synchron sind.
Just For Fun: XClicker
Zu guter Letzt habe ich noch einen neuen Port zur Überprüfung an ports@ geschickt:
x11/xclicker: Ein schneller, feature-reicher grafischer Autoclicker für X11.
Wozu? Nun ja, die Kids von heute spielen diese albernen Clicker-Games am Rechner und jammern ständig, dass ihnen die Finger wehtun. Ab jetzt können sie effizient und vollkommen nativ unter OpenBSD schummeln. 😉
Wrapping Up
Zwei Wochen, dutzende gebaute Pakete, Compiler-Zickereien elegant umschifft, ein robuster neuer SDR-Stack und maßgeschneiderte App-Wrapper für einen runderen Desktop-Workflow.
Wenn du auf -snapshots unterwegs bist, mach einfach ein Update und probier die neuen SDR-Sachen aus. Falls du einen GNUstep-basierten Desktop nutzt, schau dir mein App-Wrapper-Repository an, um dein Setup zu vervollständigen. Und wie immer gilt: Feedback und Testergebnisse für die Ports, die auf ports@ auf ihr Review warten, sind extrem gerne gesehen.
Happy porting!