.TH AUTOSPEC "9" "@date_my@" "@package@ @version@" "User Commands" .SH NOME \fB@package@\fR - frontend per la creazione e l'aggiornamento e la verifica di pacchetti rpm. .br \fBconfig-getvar\fR - plugin per visualizzare le variabili presenti nei file di configurazione. .br \fBpck-extract\fR - plugin per l'estrazione di file da archivi srpm. .br \fBpck-update\fR - plugin per l'aggiornamento di archivi rpm. .br \fBspec-create\fR - plugin per la creazione di archivi rpm. .br \fB@pck_lib@\fR - libreria di funzioni per l'analisi degli specfile. .B \fBlibapse.lib\fR - libreria del motore di ricerca 'Autospec Package Search Engine'. .br \fBlibcfg.lib\fR - libreria per il caricamento dei file di configurazione. .br \fBlibmsgmng.lib\fR - libreria per gestire i messaggi di debug/warning/errore. .br \fBlibnetwork.lib\fR - libreria per la gestione delle operazioni di rete. .br \fBlibtest.lib\fR - libreria con le funzioni del framework di test. .SH VERSIONE Questo documento e' aggiornato alla versione 1.16.5 di .B @package@. .SH DESCRIZIONE .B @package@ e' costituito da un frontend (lo script autospec propriamente detto) e da una suite di script che permetteno di \fIvelocizzare\fP ed \fIautomatizzare\fP una parte importante delle operazioni necessarie alla creazione, al mantenimento (aggiornamento) dei pacchetti rpm di una intera distribuzione ed al controllo di comuni errori e vulnerabilita'. .B @package@ e' modulare ed altamente \fIconfigurabile\fP e quindi facilmente adattabile alle particolarita' specifiche di ogni distribuzione basata su pacchetti rpm. .B @package@ fornisce inoltre la libreria \fB@pck_lib@\fR, utilizzabile anche da script di shell esterni per ricavare in modo semplice informazioni su un qualsiasi specfile dato in input. .B Le restanti librerie non sono state concepite per essere utilizzate da script esterni ma piuttosto come ulteriore modularizzazione del codice. .B @package@ e' stato utilizzato con successo dagli sviluppatori della distribuzione .B openmamba (\fIhttps://openmamba.org\fP), permettendo la creazione di specfile standard e l'aggiornamento (semi)automatico dei pacchetti. E' utilizzato attualmente nello sviluppo di .B openmamba GNU/Linux (\fIhttp://www.openmamba.org\fP) per creare specfile, per aggiornare i pacchetti dei branch di sviluppo e dei contributors e per effettuare il porting (amche in cross-compilazione) dei pacchetti in architetture diverse. .SH FILE DI CONFIGURAZIONE .B @package@ legge all'avvio i file globali \fI@sysconfdir@/@package@.conf\fR e \fI@sysconfdir@/@package@.d/*.conf\fR e quindi i file privati dell'utente: \fI~/.@package@\fR e/o \fI~/.@package@.d/*.conf\fR. E' buona norma non modificare direttamente i file globali. Utilizzare i file privati per ridefinire variabili oppure modularizzare la configurazione. .TP Qui di seguito e' presentato un esempio di file di configurazione utente per \fB@package@\fR che potra' essere utilizzato da un contributore come fac-simile per creare il proprio file di configurazione personale. .if t .sp 0.5 .if n .sp 1 .RS .PD 0 .TP [~/.@package@] .TP # [configuration file for `@package@'] .TP proxy= .TP proxy_user= .TP packager_fullname="" .TP packager_email="@openmamba.org" .TP ftp_rw_user[1]="" .TP ftp_rw_passwd[1]="" .TP arch_list=(i586 arm x86_64 aarch64) .TP curl_opts_netlink="--connect-timeout 15 --retry 3 --limit-rate 250k" .PD .RE .TP Ecco un esempio di modularizzazione possibile: .if t .sp 0.5 .if n .sp 1 .RS .PD 0 .TP ~/.@package@.d/00-devel.conf .TP ~/.@package@.d/01-devel-my.conf .TP ~/.@package@.d/02-devel-kde4.conf .TP ~/.@package@.d/03-devel-makedist.conf .TP ~/.@package@.d/04-devel-autodist.conf .TP ~/.@package@.d/05-devel-future.conf .PD .RE .TP In ogni file vi sono le informazioni di connessione al \fIrepository\fP specificato dal nome del file. Ad esempio (repository in sola lettura): .if t .sp 0.5 .if n .sp 1 .RS .PD 0 .TP $ cat ~/.@package@.d/05-devel-autodist.conf .TP ftp_alias[5]="autodist" .TP ftpurl_ro_rpms[5]="http://www.openmamba.org/pub/openmamba/devel-autodist/RPMS.@arch@" .TP ftpurl_ro_srpms[5]="http://www.openmamba.org/pub/openmamba/devel-autodist/SRPMS.base" .TP ftp_enable[5]="1" .PD .RE .TP e (repository personale in lettura e scrittura): .if t .sp 0.5 .if n .sp 1 .RS .PD 0 .TP $ cat ~/.@package@.d/01-devel-my.conf .TP ftp_alias[2]="\fI\fP" .TP ftpurl_ro_rpms[2]="http://www.openmamba.org/pub/openmamba/devel-\fI\fP/RPMS.@arch@" .TP ftpurl_ro_srpms[2]="http://www.openmamba.org/pub/openmamba/devel-\fI\fP/SRPMS.base" .TP ftp_rw_server[2]="ftp://ftpaccounts.openmamba.org" .TP ftp_rw_passive_mode[2]=on .TP ftp_rw_user[2]="\fI\fP" .TP ftp_rw_passwd[2]="\fI\fP" .TP ftp_rw_rpms_dir[2]="/RPMS.@arch@" .TP ftp_rw_srpms_dir[2]="/SRPMS.base" .TP arch_list[2]="i586" .TP arch_noarch_upload[2]="@arch@" .TP ftp_enable[2]="1" .PD .RE .SH SINTASSI \fB@package@\fR e' lo script principale ed ha funzione di \fIfrontend\fP per una serie di script e librerie specializzate. Per questo motivo sono possibili differenti modalita' distinte di utilizzo. Si ricorda che le opzioni indicate tra parentesi quadre sono opzionali. .SS "Creazione di specfile" \fB@package@\fR \ \fB\-s\fR \fIarchivio\fR \ [\fB\-n\fR \fIname\fR] \ [\fB\-v\fR \fIver\fR] \ [\fB\-t\fR \fItype\fR] \ [\fB\-o\fR \fIoutfile\fR] \ [\fB\--changelog\fR \fI"messaggio"\fR] \ [\fB\\fR] \ [\fB\-\-packager-fullname\fR \fI"Nome Completo"\fR] \ [\fB\-\-packager-email\fR \fI""\fR] .TP \fB\-s\fR, \fB\-\-source\fR cerca di creare uno specfile per l'\fIarchivio\fR indicato .TP \fB\-n\fR, \fB\-\-pck\-name\fR nome del pacchetto (default: ricavato dal nome dell'archivio) .TP \fB\-v\fR, \fB\-\-pck\-version\fR versione del pacchetto (default: ricavato dal nome dell'archivio) .TP \fB\-t\fR, \fB\-\-type\fR categoria dello specfile da generare: .br \fIstandard\fR : specfile standard (default) .br \fIgnome\fR : specfile per pacchetti gnome .br \fIkde5\fR : specfile per pacchetti kde5 .br \fIlibrary\fR : specfile per librerie .br \fIocaml-libs\fR : specfile per librerie OCaml .br \fIperl\fR : specfile per singoli moduli perl .br \fIpython\fR : specfile per moduli python .br \fIstandard-daemon\fR : specfile per servizi di sistema/rete .br \fIweb\fR : specfile per applicazioni web .TP \fB\-o\fR, \fB\-\-output\fR redirige lo standard output sul file \fIoutfile\fR .TP \fB\-\-changelog\fR permette di scegliere un messaggio di ChangeLog diverso da quello di default .TP \fB\fR .br \fB\-\-git\-branch\fR : specifica un branch git .br \fB\-\-preserve\-dot\-git\fR : non rimuove i file git .TP \fB\-\-packager-fullname\fR \fI"Nome Completo"\fR ridefinisce il nome completo del packager .TP \fB\-\-packager-email\fR \fI""\fR 'indirizzo mail del packager .TP \fIEsempi\fR .TP .PD 0 \fB@package@\fR \fB\-s\fR ~/software/@package@-@version@.tar.bz2 \fB\-t\fR standard \fB\-o\fR @package@.spec .TP \fB@package@\fR \fB\-s\fR ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2.tar.gz .TP \fB@package@\fR \fB\-s\fR \\ .TP http://ovh.dl.sourceforge.net/sourceforge/avifile/avifile-0.7-0.7.45.tar.bz2 \\ \fB\-t\fR library \fB\-n\fR libavifile \fB\-v\fR 0.7.45 \\ \fB\-o\fR /usr/src/RPM/SPECS/libavifile.spec .TP \fB@package@\fR \fB\-s\fR @package@-@version@.tar.bz2 \fB\-\-changelog\fR "First build" .TP \fB@package@\fR \fB\-s\fR git://anongit.freedesktop.org/gstreamer/gst-omx \\ \fB\-\-git-branch\fR="raspberry" \fB\-\-preserve-dot-git\fR \fB\-o\fR gst-omx.spec .TP \fB@package@\fR \fB\-s\fR \fB\-\-help\fR .PD .RE .SS "Aggiornamento di pacchetti rpm" \fB@package@\fR \ \fB\-u\fR \fIpck\fR \fB\-a\fR \fIazioni\fR [\fIver\fR] [\fIrel\fR] \ [\fB\-d\fR \fIv1=r1\fR[,\fIv2=r2\fR,...]] \ [\fB\-\-server\-download\fR \fIint\fR] \ [\fB\-\-server\-upload\fR \fIint\fR] \ [\fB\-l\fR \fIutente\fR:\fIpasswd\fR] \ [\fB\-S\fR \fIspecfile\fR] \ [\fB\-A\fR \fIarch\fR] \ [\fB\-\-changelog\fR "\fImsg\fR" ] \ [\fB\-\-nosrpm\fR|\fB\-\-norpm\fR] \ [\fB\-\-force-update\fR] [\fB\-\-force-build\fR] [\fB\-\-force-install\fR] \ [\fB\-\-ignore-test \fIt1\fR[,\fIt2\fR,...]\fR] \ [\fB\-c\fR] [\fB\-f\fR] [\fB\-L\fR] [\fB\-R\fR] \ [\fB\-\-packager-fullname\fR \fI"Nome Completo"\fR] \ [\fB\-\-packager-email\fR \fI""\fR] .TP \fB\-u\fR, \fB\-\-update\fR aggiorna il pacchetto \fIpck\fR, versione \fIver\fR, release \fIrel\fR .TP \fB\-a\fR, \fB\-\-action\fR Esegue la lista di azioni separate da virgole \fIazioni\fR: .br \fI0\fR. indica le versioni del pacchetto disponibili nei repository .br \fI1\fR. download ed installazione del pacchetto srpm .br \fI2\fR. controlla se e' disponibile un aggiornamento .br \fI3\fR. download dei nuovi file sorgente .br \fI4\fR. aggiornamento e controllo dello specfile .br \fI5\fR. creazione dei pacchetti rpm e srpm .br \fI6\fR. creazione della lista dei build requirement .br \fI7\fR. simulazione dell'installazione dei pacchetti rpm .br \fI8\fR. esecuzione dei test di qualita' e sicurezza .br \fI9\fR. calcolo dei valori di hashing md5 e sha1 .br \fI10\fR. upload dei nuovi pacchetti sul sito ftp, rimozione dei vecchi pacchetti dal sito ftp (backup in `$ftp_rw_old_dir', se la variabile e' definita) .br \fI11\fR. installazione dei nuovi pacchetti rpm .TP \fB\-\-force-update\fR forza l'aggiornamento dei pacchetti rpm e srpm .TP \fB\-\-force-build\fR ricrea comunque i pacchetti rpm e srpm .TP \fB\-\-force-install\fR installa i nuovi pacchetti anche in caso di errori rpm .TP \fB\-\-force\-download scarica i file sorgente anche se presenti in SOURCE .TP \fB\-\-force\fR cerca di eseguire comunque le azioni specificate .TP \fB\-\-ignore-test non esegue i test indicati (\fIt1\fR, \fIt2\fR,...) .TP \fB\-d\fR, \fB\-\-define\fR assegna alle variabili \fIv1\fR, \fIv2\fR,... i valori \fIr1\fR, \fIr2\fR,... .TP \fB\-\-server\-download\fR server da utilizzare nel download dei pacchetti .TP \fB\-\-server-upload\fR server dove effettuare l'upload dei pacchetti .TP \fB\-\-server\fR server per l'upload e il download dei pacchetti .TP \fB\-l\fR, \fB\-\-login\fR user \fIutente\fR e password \fIpasswd\fR per effettuare l'upload sul sito FTP .TP \fB\-S\fR, \fB\-\-specfile\fR nome dello specfile (default: \fIname\fR.spec) .TP \fB\-A\fR, \fB\-\-arch\fR forza un valore per l'architettura .TP \fB\-\-changelog\fR scrive il messaggio \fImsg\fR nel changelog del pacchetto (utilizzare `\en' come terminatore di linea in caso di messaggi multilinea) .TP \fB\-\-nosrpm\fR crea soltanto i pacchetti rpm (azione 5) .br non effettua l'upload del pacchetto srpm (azione 10) .TP \fB\-\-norpm\fR crea soltanto il pacchetto srpm (azione 5) .br non effettua l'upload dei pacchetti rpm (azione 10) .TP \fB\-\-list-check\fR esegue un controllo dei file non pacchettizzati (azione 5) .TP \fB\-b\fR, \fB\-\-update\-autobuildreq\fR aggiorna il blocco AUTOBUILDREQ-BEGIN .. AUTOBUILDREQ-END .TP \fB\-c\fR, \fB\-\-clear\fR rimuove tutti i file temporanei .TP \fB\-f\fR, \fB\-\-format\fR abilita la riformattazione dello specfile .TP \fB\-L\fR, \fB\-\-log\fR abilita il log su file (nella directory: `$logging_dir') .TP \fB\-R\fR, \fB\-\-rebuild\fR attiva modalita' ed impostazioni di rebuild (azione 4) .TP \fB\-\-root\fR definisce una root directory alternativa per rpm .TP \fB\-\-packager-fullname\fR \fI"Nome Completo"\fR ridefinisce il nome completo del packager .TP \fB\-\-packager-email\fR \fI""\fR ridefinisce l'indirizzo mail del packager .TP \fIEsempi\fR .TP .PD 0 # scarica il pacchetto srpm dal repository 'devel' .TP \fB@package@\fR \fB\-u\fR @package@ \fB\-a\fR1 \fB\-\-server\fR=devel .TP # aggiorna lo specfile alla versione @version@ definendo un messaggio di changelog... .TP \fB@package@\fR \fB\-u\fR @package@ @version@ \fB\-a\fR4 \fB\-\-changelog\fR "update to @version@" .TP # ...oppure aggiorna lo specfile incrementando soltanto il numero di release .TP \fB@package@\fR \fB\-u\fR @package@ \fB\-a\fR4 \fB\-\-rebuild\fR .TP # esegue le azioni 5,6,7,8,9 definendo la variabile rpm 'addons_ver' .TP # ed abilitando il logging su file .TP \fB@package@\fR \fB\-u\fR @package@ \fB\-\-log\fR \fB\-a\fR5,6:9 \fB\-\-define\fR addons_ver=0.9 .TP # forza il rebuild dei pacchetti rpm e srpm (necessario se i pacchetti esistono gia') .TP \fB@package@\fR \fB\-u\fR @package@ \fB\-r\fR \fB\-a\fR5 \fB\-\-force-build\fR .TP # scarica l'srpm, ricompila i pacchetti incrementando la release e indicando una architettura .TP \fB@package@\fR \fB\-u\fR @package@ \fB\-a\fR1,4,5,8 \fB\-\-arch\fR=noarch \fB\-\-rebuild\fR .TP # crea la lista dei build requirement .TP \fB@package@\fR \fB\-u\fR @package@ \fB\-a\fR6 .TP # esegue i test su specfile e pacchetti rpm alla ricerca di problemi tipici .TP \fB@package@\fR \fB\-u\fR @package@ \fB\-a\fR8 .TP # effettua l'upload dei pacchetti srpm e rpm su uno specifico server (vedi 'ftp_alias') .TP \fB@package@\fR \fB\-u\fR \fB\-c\fR \fB\-l\fR usr:pswd @package@ @version@ \fB\-a\fR10 \fB--server-upload\fR=0 .TP \fB@package@\fR \fB\-u\fR @package@ @version@ \fB\-a\fR10 \fB--server-upload\fR=myrepos .TP # effettua l'upload del solo file srpm utilizzando i dati di /var/tmp/specs/@package@.spec .TP \fB@package@\fR \fB\-u\fR @package@ \fB\-a\fR10 \fB\-\-norpm\fR \fB\-S\fR /var/tmp/specs/@package@.spec .TP # forza l'installazione dei pacchetti .TP \fB@package@\fR \fB\-u\fR @package@ \fB\-a\fR11 \fB\-\-force\fR .TP \fB@package@\fR \fB\-u\fR \fB\-\-help\fR .PD .RE .SS "Estrazione di file da pacchetti srpm" \fB@package@\fR \ \fB\-x\fR \fB\-F\fR \fIfile(s)\fR [\fB\-\-destdir\fR=\fIdir\fR] \fIsrpm_pck\fR .TP \fB\-x\fR, \fB\-\-extract\fR estrae dal pacchetto srpm \fIsrpm_pck\fR... .TP \fB\-F\fR, \fB\-\-files\fR \&...il file o la lista di file \fIfile(s)\fR .TP \fB\-\-destdir\fR salva i file estratti nella cartella \fIdir\fR .TP \fIEsempi\fR .TP .PD 0 \fB@package@\fR \fB\-x\fR @package@\-@version@\-1mamba.src.rpm \fB\-\-destdir=\fR/tmp/ .TP \fB@package@\fR \fB\-x\fR @package@\-@version@\-1mamba.src.rpm \fB\-F\fR \e*.spec \fB\-\-destdir=\fR/tmp/ .TP \fB@package@\fR \fB\-x\fR \fB\-\-help\fR .PD .RE .SS "Richiesta del valore di variabili presenti nei file di configurazione" \fB@package@\fR \ [\fB\-C\fR \fIconf_file\fR] \fB\-\-eval\fR=\fIvar\fR .TP \fB\-C\fR, \fB\-\-config\fR utilizza un file di configurazione alternativo \fIconf_file\fR .br file di default: vedere alla sezione \fBFILE DI CONFIGURAZIONE\fR .TP \fB\-\-eval\fR stampa il valore che \fIvar\fR assume nei file di configurazione .TP \fIEsempi\fR .TP .PD 0 \fB@package@\fR \fB\-q\fR \fB\-\-eval\fR="logging_dir" .TP \fB@package@\fR -C /etc/@package@.d/02-specfile-rpm-groups.conf \fB\-\-eval\fR=rpm_allowed_groups .TP \fB@package@\fR \fB\-\-eval\fR \fB\-\-help\fR .PD .RE .SS "Modalita' operative" Sono inoltre disponibili alcune opzioni standard ed alcune opzioni di uso generale che influenzano il tipo di output generato. .TP \fB\-h\fR, \fB\-\-help\fR stampa una schermata di aiuto e termina il programma .TP \fB\-V\fR, \fB\-\-version\fR stampa il numero di versione e termina il programma .TP \fB\-q\fR, \fB\-\-quiet\fR non stampa alcun dettaglio delle operazioni in esecuzione .TP \fB\-\-colors\fR \fI\fR abilita l'output colorato descritto dal tema \fI\fR. .br I temi disponibili sono: \fIterminal-dark\fR, \fIterminal-white\fR e \fIweb\fR. .br Altri temi possono essere aggiunti dagli utenti, ad esempio il tema \fIterminal-custom\fR, creando il file: .br \fI~/.@package@.d/color-theme.terminal-custom\fR .br Si vedano come esempio i file /etc/@package@.d/color-theme.* .TP \fB\-D\fR, \fB\-\-debug\fR attiva la modalita' di debugging (output prolisso) .SH AUTORI Davide Madrisan .br Creatore e sviluppatore principale di @package@ (frontend, plugin, libspec.lib, documentazione). Stefano Cotta Ramusino (whitone) .br Patch varie. Controllo delle licenze indicati negli specfile. Modulo \fIAPSE\fR (Autospec Package Search Engine). Modularizzare dei file di configurazione personali di @package@. Silvan Calarco .br Diverse patch, attivita' diffusa di beta testing. Codice per la generazione automatica della lista dei build requirements. Mofiche per permettere l'utilizzo di autospec in multi-architettura. .SH "BACHI" Inviare patch, segnalazioni di bachi, richieste di funzionalita' a . .br Nel caso di bachi riscontrati, effettuarne una descrizione accurata e possibilmente un modo per riprodurli. Per il debugging di un problema e' spesso utile il log completo dell'esecuzione di \fBautospec\fR con l'opzione \fB\-\-debug\fR, disattivando anche la traduzione dei messaggi, cioe' eseguendo: \fBLC_ALL=C autospec\fR ... .SH COPYRIGHT Copyright (C) 2004\-2014 Davide Madrisan .br .br Questo e' software libero. E' possibile redistribuirlo e/o modificarlo nei termini della GNU General Public License versione 2 cosi' come pubblicata dalla Free Software Foundation. Non e' fornita ALCUNA garanzia, neppure di NEGOZIABILITA' o di APPLICABILITA' PER UN PARTICOLARE SCOPO.