Lähtekoodi pakk

Allikas: Pingviini viki

Lähtekoodi pakk (tarball, source distribution package jne) on distrote üldistele standarditele vastavalt vormistatud iseseisev lähtekoodi üksus. Lähtekoodi pakk sisaldab enamasti kompileerimisjuhiseid, muudatuste logi, autorite nimekirja ja vaba tarkvara puhul kindlasti märkusi lähtekoodi joaks kasutatud litsentside kohta. Enamasti nõuavad distrod vaidluste vältimiseks, et ka lähtekoodi iga faili päises oleks viide koodi litsentsile.

Lähtekoodi pakkide soovituslikud omadused on kujunenud vaba tarkvaraga kaasnevast arendusmudelist ja selle parimatest praktikatest. Lähtekoodi pakendus peegeldab ühtlasi tarkvara arendusmudeli läbimõeldust. Ideaalsel vaba tarkvara projektil on peaaegu paratamatult ideaalsed lähtekoodi pakid, lähekoodi pakettide puudulikkus aga on sageli indikaatoriks projekti koodi kasutamisega kaasneda võivatest turvariskidest jms.

Juhiseid tarballide tegemiseks ja haldamiseks

  • Tarballid peaksid olema saadaval soovitatavalt tar.bz2, tar.xz või tar.gz kujul. Kõigi nende sisu peab olema sama versiooni märgistuse korral identne. Soovitatavalt jääb juba avalikuks tehtud tarball täpselt samale URL-ile kättesaadavaks mõistlikult pikaks ajaks.
  • Tarballi nimi peab olema unikaalne, koosnedes projekti nimest, versiooninumbrist ning pakkemeetodi laiendist, nt projekt-4.2.13.tar.xz.
  • Tarballide sisemine (kataloogi)struktuur peaks püsima läbi eri versioonide sama märkimisväärse stabiilsusega. Muudatused struktuuris tekitavad alati probleeme pakendajatele ja neist tuleks hoiduda.
  • Kuna vaba tarkvara puhul on määrava tähtsusega, et kood oleks vaba ja jääks vabaks, siis on oluline pöörata tähelepanu koodi litsentsile. Iga koodifaili puhul peaks olema päises märgitud koodi autor või allikas ja kasutatud litsents. See lihtsustab koodi päritolu kontrollimist ja ennetab vaidlusi autoriõiguse rikkumiste osas.
  • Tarballi sees peaks olema alati üldjuhised (README) ja märkused kasutatud litsentside kohta (COPYING), eraldi tuuakse ära muudatuste logi (ChangeLog või NEWS) ja/või autorite nimekiri (AUTHORS) ning paigaldusjuhised (INSTALL) jms.
  • Muude kataloogide osas sisaldavad tarballid tavaliselt juurkataloogis kompileerimiseks/haldamiseks vajalikke faile (CMakeLists.txt, configure jne), rakenduse põhiosa moodustav lähtekood on tavaliselt kataloogis (src), eraldi alamkataloogides aga tõlkeid (nt po gettexti puhul), dokumentatsiooni (nt docs), testiplaane/juhte (test), juhendeid (man) jm nagu ikoonid, käivitajad ja mis kõik veel.
  • Kui tarball on tehtud avalikult kättesaadavaks, siis tohi selle sisu enam muutuda. Distributsiooni jaoks tähendab kontrollsumma või suuruse muutus, et kräkkerid on faili muutnud ja midagi on pahasti. Sageli avaldatakse koos koodipakkidega eraldi kanalite kaudu ka kontrollsummad või allkirjad, et allalaadijad saaks veenduda, et nad saavad rikkumata koodi.
  • Hea kui ei muudeta nö vanade tarballide paiknemise alamkataloogi kuskile "old/" või "vanad/" alla. Tavaliselt on selle põhjuseks ülemkataloogi failide üleküllus, millisel juhul võiks ettenägelikult juba alguses paigutada eri (alam)projektide tarballid eraldi kataloogidesse ning vajadusel veel versiooni põhinumbrite järgi alamkataloogidesse. Hea näide: http://download.gnome.org/sources/gnome-shell/3.4 ja selle ülemkataloogid --- iga projekt (tarballi nime osa) on oma alamkataloogis ja eraldi peamise versiooni numbri järgi jaotatud, nii et distributsioonid saavad automaatselt versiooni järgi asukoha kätte (http://põhiaadress/sources/pakinimi/ver_major.ver_minor/pakinimi-ver_major.ver_minor.ver_micro.tar.xz)

Välislingid