Libre WD-40 néven érkezik a „Rozsdamentesített” Git fork

Nem, nem írtam el a címet, tényleg így hívják a projektet: a készítők egy olyan Git-forkot adtak ki, amelyből már eltávolították a Rustban írt részeket. A WD-40 név egy közismert aeroszolos kenőanyagra utal, amelyet sokan rozsdás felületeknél is használnak, a szóvicc pedig innen jön: a Libre WD-40 fork a Git Rust nélküli, „rozsdamentes” kiadásaként hivatkozik magára. A vicces név mögött azonban egy ismerős vita húzódik: A Git 3.0-tól egyre valószínűbb, hogy a build folyamatban a Rust kötelező elemmé válhat, ami a kevésbé elterjedt platformokon, illetve a szűkebb fejlesztői eszköztárral karbantartott rendszereken komoly akadályt jelenthet.

Erre a helyzetre válaszként indult el az XLibre vezető fejlesztőjéhez kötött fork, amely saját célkitűzése szerint a lehető legszélesebb fordíthatóságot és a minimális külső függőséget próbálja megőrizni.

Libre WD-40 néven érkezik a „Rozsdamentesített” Git fork

Szinte borítékolható reakció a Libre WD-40 megjelenése Git 3.0 körüli változásokra

A Git 3.0 felé közeledve egyre jobban látszik, hogy több platformon gyakorlati fordíthatósági korlátot jelenthet a változás bevezetése: sok csomagoló, valamint régebbi vagy szűkebb eszközkészlettel karbantartott rendszerek esetén ez a változás konkrét akadályt jelent. A változásokat összefoglaló hivatalos leírás szerint a Rust-komponensek a Git 2.53-tól alapértelmezetten aktívak mind a Meson-, mind a Makefile-alapú buildben, a Git 3.0-tól pedig a kapcsolók kivezetésével a Rust a fordításhoz kötelezően szükséges elemmé válik.

A Libre WD-40 hírére elég gyorsan reagált Bryan Lunduke Linux vlogger is:

XLibre Dev Creates de-Rusted Git Fork

A vita gyakorlati oldala

A Libre WD-40 alkotói számára itt az a kulcskérdés, hogy a Git forrásból fordítása mennyire marad egyszerű és kiszámítható a különböző platformokon. A BSD rendszereknél ez azért kényes téma, mert a Rust támogatása rendszerenként és architektúránként is eltér. FreeBSD-n x86_64-en többnyire még kezelhető a helyzet, más BSD változatoknál viszont már nem ennyire egyértelmű, hogy a toolchain és a hozzá tartozó csomagok ugyanilyen stabilan és ugyanilyen könnyen elérhetők. NetBSD alatt pedig különösen problémás ez: az előre csomagolt, egyszerűen telepíthető Rust-eszközök főleg x86_64-en adottak, más architektúráknál viszont gyakrabban kell kerülőutakat választani, amit a kötelező Rust függőség még inkább megnehezítene az eredeti Git projekt fordítása esetén.

Enrico Weigelt, a fork megálmodója indoklásában az alábbiakat fogalmazta meg:

"

„A cél az, hogy a Git bármilyen platformon és CPU-architektúrán továbbra is működjön, és megbízható, stabil maradjon, ne csak néhány architektúrára korlátozódjon, illetve ne függjön egy olyan, nem megbízhatónak tartott fordítótól, amelyet bootstrapelni sem lehet valamilyen, szintén nem megbízható bináris nélkül.”

Régebbi vállalati Unixokon mint például az IBM AIX, gyakran nem adott a Rust toolchain a disztribúció alapcsomagjaiban, esetleg csak korlátozottan érhető el, ezért a Git fordításához külön csomagolást kell alkalmazni, esetleg külső forrást vagy saját buildláncot kell bevezetni. Ugyanez igaz olyan karbantartási modelleknél is, ahol szándékosan kevés függőséggel dolgoznak, ami több karbantartási munkát és több hibalehetőséget hoz