Ammunition Explosion Injures Nine at Czech Republic Training Ground
#CzechRepublic #Libau #AmmunitionExplosion #MilitaryTraining #EmergencyResponse #RescueOperation #MilitaryPolice #Investigation #Accident #Injured #ExplosionIncident #TrainingArea #SafetyFirst #MilitaryAccident #EmergencyServices #DefenseNews #BreakingNews #CzechMilitary #Libav #ArmyTraining
Ammunition Explosion Injures Nine at Czech Republic Training Ground
#CzechRepublic #Libau #AmmunitionExplosion #MilitaryTraining #EmergencyResponse #RescueOperation #MilitaryPolice #Investigation #Accident #Injured #ExplosionIncident #TrainingArea #SafetyFirst #MilitaryAccident #EmergencyServices #DefenseNews #BreakingNews #CzechMilitary #Libav #ArmyTraining
Powspominajmy #LibAV, fork FFmpega. Nie będę wchodził w szczegóły powstania projektu, bo czytałem kilka wersji i nie jestem obiektywny.
W czasie swojej świetności, LibAV borykał się z trzema problemami. Po pierwsze, #FFmpeg stanowił "markę" — definiował to, czego oczekiwali użytkownicy, zbierał większość dotacji i wkładu w kod. Po drugie, LibAV starał się poprawić jakość kodu. Oznaczało to, że FFmpeg mógł łatwo kopiować poprawki z LibAV (i to robiono), natomiast nie wszystko nadawało się do kopiowania w drugą stronę. Po trzecie, LibAV starało się usuwać stare API, wskutek czego istniejące aplikacje były z nim mniej zgodne.
Koniec końców, praca przy LibAV obejmowała zarówno utrzymanie kompletności funkcjonalności z FFmpeg, jak i łatanie oprogramowania dla zgodności z ichnim API. Czasem było to oprogramowanie, które nie było już rozwijane, i tym samym wymagało utrzymania łatek na stałe. Czasem autorzy byli wrogo nastawieni, więc łatki trzeba było regularnie aktualizować. Najbardziej chyba widocznym tego przykładem był odtwarzacz #mpv, którego autor najpierw porzucił wsparcie FFmpega na rzecz LibAV, a potem zmienił zdanie i usunął wsparcie LibAV.
Na dodatek, oba komplety bibliotek nie były ze sobą zgodne pod względem ABI, więc było to wszystko-albo-nic. Użytkownicy #Gentoo przypadkowo zmuszani byli do przebudowania wszystkiego, kiedy nowowybrana paczka albo nowa wersja programu wymagała zmiany. Dystrybucje binarne miały jeszcze gorzej. Koniec końców, Debian wrócił do FFmpega w 2015, Gentoo usunęło LibAV w 2020, a sam projekt zarzucono w 2022.
A skąd te wspominki? Z wiadomości o korporacyjnym przejęciu nginksa, i forku do FreeNginx. Nie pierwszy taki przypadek, z pewnością nie ostatni — może to kolejny wariant obsrania świata IT. OpenOffice z sukcesem został zastąpiony przez LibreOffice. BerkeleyDB jest zarzucany przez programy po przejęciu przez Oracle. LibreSSL wciąż żyje równolegle z OpenSSL, choć nie jest szeroko wspierane.
Let's reminisce on #LibAV, the #FFmpeg fork. I won't get into the details why it was forked because I've heard multiple versions and I'm biased.
During its primetime, LibAV was facing three difficulties. Firstly, FFmpeg held "the brand" — it defined what the users expected, it received the bulk of the donations and the contributions. Secondly, LibAV aimed to improve the code quality. This roughly meant that FFmpeg could easily merge improvements back (and they did) but not everything was fit to be merged the other way around. Thirdly, LibAV tried hard to clean stuff up and deprecate old API, effectively facing more backwards compatibility issues.
In the end, LibAV-related work would involve both keeping feature parity with FFmpeg, and patching software to support its API. Sometimes this meant dead software, for which you'd have to maintain patchsets forever. Sometimes it meant hostile upstreams, which involved maintaining and rebasing patchsets forever. Perhaps the most prominent example was the #mpv media player, that would first give LibAV a push by removing FFmpeg support and requiring LibAV, and then change their mind and remove LibAV support.
On top of that, the two library sets weren't ABI-compatible, so it was all-or-nothing. #Gentoo users would have to randomly rebuild all packages when a newly selected package or a version bump forced a switch. Binary distros have had it even worst. Debian eventually switched back to FFmpeg in 2015, Gentoo removed it in 2020, and LibAV itself was discontinued in 2022.
What brought this about? The news of corporate takeover of nginx, followed by its fork to FreeNginx. Not the first such a case, and certainly not the last — perhaps it's another variant of enshittification. OpenOffice was successfully forked into LibreOffice. BerkeleyDB is being phased out after its takeover by Oracle. LibreSSL is still alive alongside OpenSSL, thought it's not supported widely.