Differences between revisions 5 and 6
Revision 5 as of 2013-12-25 15:39:00
Size: 6759
Comment: sync with English master
Revision 6 as of 2015-01-24 12:11:53
Size: 6792
Comment: sync with English master + minor fixes
Deletions are marked like this. Additions are marked like this.
Line 13: Line 13:
 * si possono memorizzare le informazioni della struttura nelle proprietà di subversion della directory debian/
 * memorizzare le seguenti informazioni nelle informazioni della struttura (attraverso le proprietà svn-bp:* della directory debian)
 * si possono memorizzare le informazioni della struttura nelle proprietà di Subversion della directory debian/
 * memorizzare le seguenti informazioni nelle informazioni della struttura (attraverso le proprietà {{{svn-bp:*}}} della directory debian)
Line 55: Line 55:
 * controllare l'albero in cui è contenuto il materiale su cui si collabora:  * fare il checkout dell'albero in cui è contenuto il materiale su cui si collabora:
Line 78: Line 78:
 * Nell'esempio si è lavorato al pacchetto {{{jmol}}}. Il primo passo è stato recuperare la sua più recente versione originale a monte. Perciò ci si è spostati nella sottodirectory jmol dell'albero mantenuto dal Team e si è usato {{{uscan}}} per ottenere la versione più recente:  * Nell'esempio si è lavorato al pacchetto {{{jmol}}}. Il primo passo è stato recuperare la sua più recente versione originale a monte. Perciò ci si è spostati con {{{cd}}} nella sottodirectory {{{jmol}}} dell'albero mantenuto dal Team e si è usato {{{uscan}}} per ottenere la versione più recente:

Traduzioni: English - Italiano


svn-buildpackage è uno strumento che aiuta nel mantenimento dei pacchetti con Subversion.

HowTo sulla manutenzione di gruppo

Regole:

  • si possono memorizzare le informazioni della struttura nelle proprietà di Subversion della directory debian/
  • memorizzare le seguenti informazioni nelle informazioni della struttura (attraverso le proprietà svn-bp:* della directory debian)

    • tarball a monte - informazione della struttura origUrl (questo permetterà un flusso di lavoro come quello descritto nel processo di compilazione dello sviluppo di giochi)

    • impostare tutti i campi URL:
      • trunkUrl
      • tagsUrl (usa URI per gli utenti autenticati)
      • branchesUrl
  • specificare le informazioni della struttura utilizzando percorsi relativi

Esempi

specifiche origUrl:

eddy@bounty ~/usr/src/games/trunk/wormux $ svn pl debian/ | grep svn-bp
  svn-bp:origUrl
eddy@bounty ~/usr/src/games/trunk/wormux $ svn pg svn-bp:origUrl debian/
http://pkg-games.alioth.debian.org/tarballs/wormux_0.7.9.orig.tar.gz

Informazioni relative:

origDir=..
trunkDir=.
buildArea=../build-area

Introduzione per un principiante, usando debichem

Queste righe sono state scritte quando l'autore di questa sezione si è unito al Team Debichem.

Percorsi

Ognuno ha abitudini particolari: l'autore gestiva tutti i suoi pacchetti in directory del tipo ${HOME}/development/$PACCHETTO

Per esempio, il pacchetto "units-filter" era gestito all'interno di ${HOME}/development/units-filter, e questa directory conteneva i file come development/units-filter/units-filter_3.5.orig.tar.gz

Da qui in avanti, la directory ${HOME}/development sarà chiamata ${devroot}.

Ottenere il materiale di lavoro del Team nel proprio computer

  • Dato che svn-buildpackage ha senso con un gruppo, prima ci si deve unire ad un Team che usa questo strumento, e ottenere un account sul suo repository SVN
  • fare il checkout dell'albero in cui è contenuto il materiale su cui si collabora:

cd ${devroot}
svn checkout svn+ssh://svn://svn.debian.org/blends/projects/debichem/trunk/debichem
  • Questo crea una directory ${devroot}/debichem con tutto il lavoro del Team, di cui SVN terrà traccia.

  • I dati in questa directory possono essere aggiornati con il comando seguente:

cd ${devroot}/debichem
svn update

Configurazione

  • È stato poi creato un file di configurazione ~/.svn-buildpackage.conf contenente queste righe:

svn-override=origDir=${devroot}/$PACKAGE
svn-override=buildArea=${devroot}/$PACKAGE
  • Attenzione: ${devroot} deve essere sostituito con l'effettivo percorso delle directory dei pacchetti; $PACKAGE va scritto verbatim.

Lavorare sul pacchetto jmol

  • Nell'esempio si è lavorato al pacchetto jmol. Il primo passo è stato recuperare la sua più recente versione originale a monte. Perciò ci si è spostati con cd nella sottodirectory jmol dell'albero mantenuto dal Team e si è usato uscan per ottenere la versione più recente:

cd ${devroot}/debichem/unstable/jmol
mkdir ${devroot}/jmol
uscan --force-download --devroot ${devroot}/jmol
  • Dopo avere aspettato un po' si è ottenuto come risultato questo feedback:

jmol: Version (13.2.3) available on remote site:
  http://qa.debian.org/watch/sf.php/jmol/Jmol-13.2.3-full.tar.gz
  (local version is 13.0.15+dfsg, mangled local version number 13.0.15)
jmol: Successfully downloaded updated package Jmol-13.2.3-full.tar.gz
    and symlinked jmol_13.2.3.orig.tar.gz to it
+ UPSTREAM_VERSION=13.2.3
+ ORIG_TARBALL= ...
... [ many other lines ] ...
+ exit 0
  • Il file ${devroot}/jmol/jmol_13.2.3+dfsg.orig.tar.gz è stato creato con successo.

Ulteriori suggerimenti da Daniel Leidert

- Per applicare patch o controllare la compilazione si può usare `svn-do`. Nel percorso risultante si possono creare o modificare patch. Usare `exit` e tutte le modifiche saranno copiate nell'albero subversion (incluso i file patch modificati o aggiunti). Usare `exit 1` o qualcosa di simile e tutte le modifiche verranno abbandonate.

Trucchi

Solo l'etichetta, senza controlli sulle dipendenze

svn-buildpackage --svn-tag-only -d

Come ottenere il pacchetto sorgente decompresso senza compilare

svn-buildpackage -d --svn-export

oppure

svn-buildpackage -d --svn-builder echo

Modificare facilmente i pacchetti che sono importati parzialmente (sorgenti che hanno l'opzione mergeWithUpstream impostata)

Tutti i seguenti comandi utilizzano il wrapper svn-do presente in /usr/bin/svn-do (nelle vecchie versioni svn-do era in /usr/share/svn-buildpackage/contrib/svn-do)

# pulisce l'albero (utile se richiede l'albero sorgente completo)
% svn-do debclean
I: Exporting source tree via svn-buildpackage...
[...]
I: Running command: debclean
[...]
I: Copying back the debian/ tree...
`debian/control' ->
`/home/lool/svn/debian/pkg-gnome/desktop/unstable/nautilus-cd-burner/debian/control'

# usa quilt per aggiornare una patch
% QUILT_PATCHES=debian/patches svn-do \
     sh -c "quilt push 002_static-linking-dont-build-perf.patch; quilt refresh"
[...]
I: Copying back the debian/ tree...
[...]
`debian/patches/002_static-linking-dont-build-perf.patch' ->
`/home/lool/svn/debian/pkg-gnome/desktop/experimental/gtk+2.0/debian/patches/002_static-linking-dont-build-perf.patch'

# inizia una sessione di modifica sorgenti e poi decide di non copiare l'albero debian/
% svn-do $SHELL
[...]
I: Running command: /bin/zsh
% exit 1
E: comando terminato con 1; albero debian/ non copiato.

# modifica una patch in un pacchetto basato su simple-patchsys del sistema CDBS
% svn-do cdbs-edit-patch 02_pmount.patch
[...]

Sviluppo

svn-buildpackage è attualmente mantenuto come parte del repository collab-maint. Per unirsi al team di sviluppo gli si può dare un'occhiata, entrare nel canale #debian-svn-bp su OFTC, iscriversi al sistema tracciamento pacchetti su http://packages.qa.debian.org/s/svn-buildpackage.html. Ci sono alcuni miglioramenti potenziali che potrebbero essere fatti.

L'attuale svn-buildpackage è ottenibile tramite il seguente comando:

debcheckout svn-buildpackage

oppure con l'accesso autorizzato (richiede un account su Alioth):

debcheckout -a svn-buildpackage