Differenze tra le versioni di "Autospec"

Da Wiki :: openmamba.
Jump to navigation Jump to search
Riga 1: Riga 1:
 
== Pre-requisiti ==
 
== Pre-requisiti ==
  
* l'utente che utilizza autospec deve fare parte del '''packager'''. Normalmente l'utente creato durante l'installazione di openmamba fa già parte di questo gruppo.
+
* l'utente che utilizza autospec deve fare parte del gruppo '''packager'''. Normalmente l'utente creato durante l'installazione di openmamba fa già parte di questo gruppo.
  
 
== Installazione ==
 
== Installazione ==

Versione delle 18:30, 6 gen 2008

Pre-requisiti

  • l'utente che utilizza autospec deve fare parte del gruppo packager. Normalmente l'utente creato durante l'installazione di openmamba fa già parte di questo gruppo.

Installazione

Installare il pacchetto denominato autospec utilizzando synaptic oppure con il seguente comando:

sudo apt-get install autospec

Configurazione

Nella propria home creare un file denominato

.autospec

con contenuto simile al seguente:

# [configuration file for `autospec']

DISTRO="openmamba"
VENDOR="openmamba"

packager_fullname="<inserisci il tuo nome e cognome>"
packager_email="<inserisci il tuo indirizzo e-mail>"

ftpurl_ro_rpms[0]="http://www.openmamba.org/pub/openmamba/devel/RPMS.@arch@"
ftpurl_ro_srpms[0]="http://www.openmamba.org/pub/openmamba/devel/SRPMS.base"
ftpurl_ro_rpms[1]="http://www.openmamba.org/pub/openmamba/devel-games/RPMS.@arch@"
ftpurl_ro_srpms[1]="http://www.openmamba.org/pub/openmamba/devel-games/SRPMS.base"

ftp_rw_server[0]=""
ftp_rw_port[0]=
ftp_rw_passive_mode[0]=on
ftp_rw_user[0]=
ftp_rw_passwd[0]=""
ftp_rw_rpms_dir[0]="/RPMS.@arch@"
ftp_rw_srpms_dir[0]="/SRPMS.base"

ftp_rw_server[0]=""
ftp_rw_port[0]=
ftp_rw_passive_mode[0]=on
ftp_rw_user[0]=
ftp_rw_passwd[0]=""
ftp_rw_rpms_dir[0]="/RPMS.@arch@"
ftp_rw_srpms_dir[0]="/SRPMS.base"

arch_list[0]="i586"
arch_list[1]="i586"

arch_noarch_upload[0]="${arch_list[0]}"
arch_noarch_upload[1]="${arch_list[0]}"

ftp_rw_server_num_default=0

ftpdir_rw_old[0]="/old"
ftpdir_rw_old[1]="/old"

format_description_width=0

Questa configurazione fornisce l'accesso in sola lettura ai repository devel e devel-games.

Creazione di un nuovo pacchetto RPM

Partendo dalle seguenti informazioni:

  • url archivio sorgente: l'indirizzo internet da cui è possibile scaricare l'archivio
  • nome pacchetto: il nome del pacchetto, solitamente la prima parte del nome dell'<url archivio sorgente>

digitare il seguente comando:

autospec -s <url archivio sorgente> -o <nome pacchetto>.spec

Se non ci sono stati problemi viene creato il seguente file anche denomianto specfile:

/usr/src/RPM/SPEC/<nome pacchetto>.spec

prima di procedere occorre editare questo file occorre ed immettere alcune informazioni quali:

  • Summary: una descrizione breve del componente software
  • Group: un gruppo tra quelli definiti in openmamba
  • URL: l'indirizzo internet della pagina principale che descrive questo componente software
  • License: la licenza con cui viene rilasciato il componente software

Aggiornamento di un pacchetto RPM

autospec permette l'aggiornamento semi-automatico di un pacchetto software, ricavando automaticamente per molti di questi il numero dell'ultima versione disponibile.

Digitare il seguente comando:

autospec -u <nome pacchetto> -a1:4

Se non viene identificato il nuovo numero di versione, oppure è stata individuata una versione instabile, si può specificare manualmente la versione a cui aggiornare con il comando:

autospec -u <nome pacchetto> -a1,3,4 <numero nuova versione>

Compilazione e pacchettizzazione

Per effettuare la compilazione del componente software e creare i pacchetti RPM binari digitare il comando:

autospec -u <nome pacchetto> -a5

Se l'operazione è andata a buon fine nella directory

/usr/src/RPM/RPMS/i586

oppure

/usr/SRC/RPM/RPMS/noarch

saranno disponibili i pacchetti installabili, mentre il pacchetto sorgente sarà in:

/usr/SRC/RPM/SRPMS

Problemi di compilazione e/o pacchettizzazione

Questa è la fase più complessa di tutto il procedimento, si tratta di una situazione equivalente al ``centro della partita`` nel gioco degli scacchi, è il momento in cui occorre applicare doti quali l'ingegno, l'esperienza, l'intuito, l'estro ecc. per giungere al risultato desiderato!

Normalmente la prima cosa da fare è cercare, tra i molti messaggi che compaiono a video, qual è stato l'errore che ha causato la terminazione del processo. Normalmente in presenza di molti errori è sufficiente iniziare a considerare soltanto il primo, perché i successivi potrebbero esserne una conseguenza.

Solitamente occorre effettuare modifiche nello ``specfile`` e/o applicare delle patch al codice sorgente.

In ogni caso ci sono diverse possibilità per agire ed arrivare ad un risultato funzionante, ed è buona norma scegliere il metodo che tenga in considazione il più possibile i seguenti aspetti:

  • il modo in cui il software viene sviluppato e mantenuto dai suoi sviluppatori. Poiché saranno disponibili nuove versioni che occorrerà aggiornare in openmamba è bene applicare modifiche che si può presumere che funzioneranno anche nelle versioni successive
  • che ciò che è stato fatto sia chiaro ad altri manutentori del pacchetto
  • in nessun caso rimuovere da uno specfile qualcosa se non si è chiaro di cosa faccia e perchè lo faccia
  • evitare di introdurre problemi di regressione delle funzionalità del componente software: dopo un aggiornamento la nuova versione del pacchetto deve mantenere almeno le stesse funzionalità della versione precedente

Verifica dei build requirements

Dopo che i pacchetti sono stati creati con successo, occorre verificare che siano stati specificati tutti i build requirements necessari. autospec permette di identicare automaticamente la maggior parte dei build requirements con il comando:

autospec -u <nome pacchetto> -a6

ad esempio:

[silvan@openmamba SPECS]$ autospec -u mediawiki -a6
aggiornamento del pacchetto mediawiki alla versione [?]...
[step 6] -- creazione della lista dei build requirement
 * /usr/src/RPM/RPMS/noarch/mediawiki-1.10.2-3mamba.noarch.rpm
 * /usr/src/RPM/RPMS/noarch/mediawiki-theme-openmamba-1.10.2-3mamba.noarch.rpm
## AUTOBUILDREQ-BEGIN
BuildRequires: apache-mod_php
BuildRequires: bash
BuildRequires: diffutils
BuildRequires: ImageMagick-devel
BuildRequires: mysql
BuildRequires: php-apc
BuildRequires: php-devel
BuildRequires: php-mysql
## AUTOBUILDREQ-END

Copiare o modificare il testo compreso tra ##AUTOBUILDREQ-BEGIN e ##AUTOBUILDREQ-END (comprese queste due righe) nello specfile ed aggiungere eventuali altri build requirements mancanti noti.

Non è necessario effettuare il build ma basta ricreare il pacchetto sorgente con il comando:

autospec -u <nome pacchetto> -a5 --norpm