CVS HOWTO per crux-it maintainers

 




Prima di iniziare

Collezioni

I ports di crux-it sono divisi per "collezioni tematiche" (ad esempio come avviene nei sistemi BSD), le collezioni tematiche sono:
devel/    gnome/    multimedia/    office/    system/    games/    kde/    network/    science/    x11/
ogni collezione è un modulo sul cvs, quindi la divisione in collezioni non avviene per tag ma per moduli ("directory"). I moduli hanno gli stessi nomi delle collezioni.

Tag

I tag vengono usati per specificare a quale architettura e versione di crux sono destinati i ports: i tag sono del tipo architettura-versione (esempio i686-2_0 PPC-2_0).


Per iniziare

Esportare la chiave pubblica ssh

Per evitare di dover digitare la propria password ogni qual volta si acceda al cvs e' necessario esportarla nella propria /home/~ del server cvs.
Per prima cosa generiamo le chiavi ssh (senza immettere passphrase):

ssh-keygen -t rsa -f ~/.ssh/id_rsa

poi si potrà esportare la propria chiave pubblica come authorizad_keys nella propria home del server cvs .
Si crei ~/.ssh su khazad-dum.orson.it e poi si copi la chiave con:

cat ~/.ssh/id_rsa.pub | ssh khazad-dum.orson.it 'cat - >> ~/.ssh/authorized_keys'

Configurazioni preliminari

L'accesso al CVS di crux-it avviene tramite ssh, quindi bisogna settare in modo corretto la variabile CVS_RSH (di solito basta che contenga il valore ssh). 'E possibile settare il valore di questa variabile prima di cominciare la sessione di lavoro con CVS, o più comodamente si può fare in modo che venga settata automaticamente all'avvio di bash (se si sta usando bash), aggiungendo, ad esempio, in ~/.bashrc la riga:

export CVS_RSH='ssh'

Iniziare con il checkout

Prima di poter apportare modifiche ai ports, è necessario ottenere il tree aggiornato. È possibile mettere il tree in qualsiasi posto del proprio filesystem (è comodo eseguire il checkout sempre nella stessa dir), ad esempio si può mettere in $HOME/crux-it ; quindi bisogna eseguire i seguenti comandi:

cd $HOME/crux-it/cvs
cvs -d username@khazad-dum.orson.it:/home/cvs co modulo


Ovviamente è necessario sostituire "username", col proprio username e "modulo" con il modulo (la collezione) su cui si deve lavorare.


Aggiungere un nuovo port

Prima di aggiungere un nuovo port bisogna decidere in quale collezione inserirlo, quindi eseguire il checkout del modulo, raggiungere la directory che contiene il modulo, ed eseguire i seguenti comandi (nell'esempio il nuovo port per x86 che si vuole aggiungere si chiama "anarchia" e si trova nella dir $HOME/ports , e verrà aggiunto al modulo "utopie"):

cd $HOME/crux-it
cvs co utopie
cd utopie
cp -r $HOME/ports/anarchia .
cvs add anarchia
cd anarchia
cvs add Pkgfile .footprint .md5sum
cvs commit -m "anarchia: Initial release"
cvs tag i686-2_0

Se il port ha qualche altro file, come ad esempio un README, una patch od uno script post-install (o pre-install) bisogna aggiungere anche quelli, è importante non aggiungere i sorgenti che invece devono essere scaricati dai relativi siti, o altri file che si trovano nella dir del port ma che non fanno parte del port.
Bisogna commentare il commit in modo che anche gli altri maintainers possano intuire velocemente le modifiche fatte ai ports, il commento deve contenere il nome del port modificato (o aggiunto), e le operazioni compiute su di esso.

Aggiornare o modificare un port

Per modificare un port, dopo il checkout bisogna raggiungere la dir che contiene il port, in questo caso $HOME/crux-it/utopie/anarchia , fare le dovute modifiche, eseguire il commit dei cambiamenti e muovere il tag in modo che punti all'ultima versione:

cd $HOME/crux-it/utopie/anarchia
(dovute modifiche)
cvs commit -m "anarchia: descrizione delle modifiche"
cvs tag -c -F i686-2_0

Rimuovere un port

Per rimuovere un port si deve rimuovere il tag, quindi usare "cvs delete" per cancellarlo definitivamente:

cd $HOME/crux-it/utopie/anarchia
cvs tag -d i686-2_0
cd ..
cvs delete -R -f anarchia
cvs commit -m "anarchia: cancellato"
cvs update -P

Rimuovere un singolo file

Per rimuovere un singolo file da un port (ad esempio una patch che non serve più), bisogna eseguire alcuni comandi, come cancellare il tag dal file, cancellare il file dal cvs e fare il commit:

cd $HOME/crux-it/utopie/anarchia
cvs tag -d i686-2_0 anarchia-1.0.patch
cvs delete -f anarchia-1.0.patch
cvs commit -m "anarchia: cancellato anarchia-1.0.patch"

Cambiare la collezione

Per spostare un port da una collezione ad un'altra bisogna cancellare il port dalla collezione precedente e aggiungerlo nella nuova, ad esempio:

cd $HOME/crux-it/utopie/anarchia
cvs tag -d i686-2_0
cd ..
cvs delete -R -f anarchia
cvs commit -m "anarchia: cancellato"
cvs update -P
cvs co possibilita
cd possibilita
cp -r $HOME/ports/anarchia .
cvs add anarchia
cd anarchia
cvs add Pkgfile .footprint .md5sum
cvs commit -m "anarchia: spostato da utopie in possibilita"
cvs tag i686-2_0