Shelly, az Arch Linux önálló csomagkezelője kiadta a 3.1-es verziót, amely jelentősen bővíti az AUR-kezelést: mostantól közvetlenül PKGBUILD-ekből tud Arch csomagokat építeni, makepkg használata nélkül.
Akik még nem ismerik: a Shelly nem egy újabb wrapper a pacman körül. Önálló csomagkezelő, amely a libalpm-re épül, ugyanarra az alaprendszerre, amit maga a pacman is használ. A Shelly önállóan kezeli a csomagtranzakciókat, a függőségek feloldását, a tárolók csomagjait és az AUR-folyamatokat, és elérhető parancssoros felületen, valamint GTK-s alkalmazásként is.
Eddig az AUR-folyamat egy fontos része még egy külső Arch eszköztől függött. A Shelly fel tudta deríteni az AUR-csomagokat, megoldotta a függőségeket, megmutatta a felhasználónak átnézésre, és kezelte a telepítést, de magát a PKGBUILD futtatását átadta a makepkg-nek. A Shelly 3.1-től ez megváltozik.
Az új kiadás egy natív csomagépitőt vezet be a Shelly csomagkezelő könyvtárának részeként. A Shelly mostantól a teljes buildfolyamatot maga viszi végig, a PKGBUILD átnézésétől a kész, pacman-kompatibilis csomagarchívum elkészítéséig.
Az új funkció a shelly build paranccsal érhető el. Elég lefuttatni egy PKGBUILD-et tartalmazó könyvtárban, és indul az építés: shelly build. Emellett a felhasználók megadhatnak egy máshol lévő PKGBUILD-et is: shelly build /path/to/PKGBUILD.
Ha hiányoznak a függőségek, az új --sync-deps kapcsolóval a Shelly a build előtt fel tudja oldani és telepíteni őket: shelly build --sync-deps /path/to/PKGBUILD.
Belső működésében a Shelly mostantól maga kezeli a szokásos PKGBUILD-életciklust. Feldolgozza az építési utasításokat, átnézi a kapcsolódó fájlokat, letölti és ellenőrzi a forrásokat, lefuttatja az olyan buildfázisokat, mint a prepare(), build(), check() és package(), előállítja a szükséges metaadatokat, létrehozza a csomagarchívumot, és igény szerint alá is írja. A végeredmény továbbra is szabványos Arch Linux csomag.
Az építő kezeli a split csomagokat, az architektúrafüggő függőségeket és forrásokat, a Git forrásokat, az ellenőrzőösszegeket, a csomagaláírásokat, a dinamikus csomagverziókat, az átnevezett forrásokat, és sok más, az AUR-ban gyakran előforduló PKGBUILD-funkciót.
Hasznos újdonság, hogy a Shelly a PKGBUILD-et még azelőtt átnézi, hogy bármilyen, a csomag által vezérelt kód lefutna. A csomagkezelő megmutatja a PKGBUILD-et és a kapcsolódó fájlokat a felhasználónak, és jelzi a gyanús parancsokat, a nem biztonságos helyi forrásokat, a megtévesztő karaktereket, valamint azokat a parancsokat, amelyek az építés során futnának le.
A Shelly 3.1 opcionális, Landlock-alapú fájlrendszer-sandboxot is hoz a PKGBUILD-ek futtatásához. Ha bekapcsoljuk, a csomagépítő scriptek elérik az építési könyvtárat és a szükséges rendszerútvonalakat, de nem férnek hozzá szabadon a felhasználó home könyvtárának többi részéhez. Ez a funkció opcionális, és alapértelmezés szerint ki van kapcsolva.
A függőségkezelés terén is történt fejlesztés. A --sync-deps kapcsolóval a Shelly csomagkezelője most már maga oldja meg a hiányzó függőségeket, ahelyett hogy továbbpasszolná őket a pacman számára. Így a Shelly képes telepíteni a csomagokat a szokásos Arch tárolókból, és felkutatni, illetve felépíteni azokat a függőségeket is, amelyek csak az AUR-ból érhetők el.
Az új csomagépítőn túl a kiadás bevezeti a run0-t egy újabb, támogatott jogosultságnövelő backendként, és fejlesztéseket tartalmaz a tranzakciójelentésben, a shell-kiegészítésben, a csomagcache helyreállításában, a hookok kezelésében, a HTTP-kezelésben, a TLS inicializálásban és a AppImage támogatásában.
További részletekért nézd meg a Shelly 3.1 változásnaplóját.

