VCS package guidelines (Italiano)

From ArchWiki
Revision as of 11:23, 7 February 2012 by 4javier (Talk | contribs) (Prototipi)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

Linee guida per la creazione di PKGBUILDs relativi a software amministrati tramite Sistemi di Controllo di Versione

Prototipi

Il pacchetto abs fornisce prototipi per PKGBUILDs relativi a software prelevabile da repository svn, git, mercurial, e darcs. Una volta installato il pacchetto abs, è possibile reperirli all'interno della directory /usr/share/pacman. Oppure navigare la directory prototypes nel repository Git di ABS

Linee guida

  • Apporre il suffisso appropriato al pkgname scegliendo tra -cvs, -svn, -hg, -darcs, -bzr or -git. Se il pacchetto fa riferimento ad un ramo in sviluppo, dovrebbe essergli aggiunto un suffisso. Se il pacchetto scarica i sorgenti da un tag VCS, non si dovrebbe aggiungere nulla. Utilizzare questa regola comportamentale: se la riuscita del pacchetto dipende dalla data di compilazione, aggiungere un suffisso; altrimenti non farlo.
  • Quando makepkg viene eseguito, di default controllerà la presenza di nuove revisioni ed aggiornerà il valore di pkgver all'interno del PKGBUILD. Consultare --holdver in man makepkg se si vuole imporre un comportamento differente. --holdver funziona solo per repository CVS ed SVN, che consentono l'utilizzo di sorgenti di revisioni precedenti.
  • Verificare i conflitti del pacchetto. Per esempio fluxbox-svn andrà in conflitto con fluxbox. In questo caso sarà necessario utilizzare conflicts=('fluxbox').
  • Utilizzare il campo provides in modo che le dipendenze dei pacchetti che richiedono la presenza della versione non-CVS del pacchetto da generare risultino soddisfatte (provides=('fluxbox')).
  • Bisognerebbe cercare di evitare, ove possibile, l'utilizzo di replaces=..., in quanto genera facilmente problemi che sarebbe meglio evitare.
  • Quando si definisce la root CVS, utilizzare anonymous:@ piuttosto che anonymous@ per evitare la richiesta di password e l'obbligo di inserire una password vuota, O utilizzare anonymous:password@ nel caso una password sia necessaria.
  • Nonostante non sarebbe necessario utilizzare il campo pkgrel quando si compila da repo CVS/SVN/GIT (in quanto i cambiamenti ai sorgenti sono frequenti, e saranno automaticamente notificati nel campo pkgver), makepkg lo richiede obbligatoriamente.
  • Non dimenticare di includere il tool VCS appropriato (cvs, subversion, git, ...) all'interno dell'array makedepends=....
  • Per preservare l'integrità del codice originale scaricato, prendere in considerazione di copiare la directory di compilazione, se si presenta la necessità di effettuare modifiche al sorgente. Ad esempio, considerando di aver effettuato il check out dal repo in src/$_cvsmod da $startdir, ci si può comportare in questo modo
mkdir src/$_cvsmod-build

cd src/$_cvsmod-build
../$_cvsmod/configure

o:

cp -r src/$_cvsmod src/$_cvsmod-build
cd src/$_cvsmod-build
  • Con l'introduzione di AUR, è importante evitare l'esecuzione degli apici inversi per la creazione di variabili del pacchetto. Makepkg aggiornerà automaticamente il campo pkgver in ogni caso durante la compilazione del pacchetto ( a meno che non venga utilizzato --holdver)

Suggerimenti

  • Bisognerebbe accertarsi che non vengano lasciate directory proprie del VCS all'interno del pacchetto. Nel caso risultassero presenti, si potrebbe modificare la sezione package() del PKGBUILD aggiungendole in fondo una riga simile a questa per rimuoverle.
rm -rf `find "$pkgdir" -type d -name ".svn"`
  • Utilizzando GIT, è possibile velocizzare le operazioni di clonazione tramite il parametro --depth=1. In questo modo viene effettuata una copia superficiale, che contiene solo l'ultima parte della cronologia dei cambiamenti - dato che la precedente è solitamente inutili ai fini della compilazione.
 git clone git://hostname.dom/project.git --depth=1
  • È possibile creare il pacchetto anche da un branch diverso dal master. Per farlo basta aggiungere un --branch nome_branch dopo il primo git clone, in questo modo:
 git clone "$_gitroot" "$_gitname" --branch nome_branch

Ricordarsi di rinominare il pacchetto in pacchetto-branch-git per evitare confusione con l'eventuale pacchetto dal branch master.