openSUSE:Zypper sviluppo

Primi passi per compilare il proprio ZYpp.

Codice sorgente

Il codice sorgente di Zypper è mantenuto in un repository GIT su GitHub. Puoi ottenere la più recente copia di zypper lanciando il comando seguente:

Questo creerà una copia locale del repository di sviluppo in una directory chiamata zypper nella directory corrente di lavoro.


Contattare gli sviluppatori

  • Puoi raggiungere gli sviluppatori di Zypper sul canale IRC #zypp sul server irc.freenode.net (cerca gli utenti jniq, duncanmv, mvidner, o jreidinger) oppure contattarli tramite la mailing list:
  • zypp-devel@opensuse.org - Mailing list di sviluppo di Zypp.
    Iscriviti - Elimina iscrizione - Aiuto - Archivi

Documentazione

Zypper ha una dettagliata pagina di manuale, doc/zypper.8. Per favore tienila aggiornata eventualmente dovessi cambiare qualcosa, sia nell'interfaccia a linea di comando o nel comportamento.

Se sei scoraggiato dall'uso del linguaggio di markup groff, semplicemente scrivi il testo normale e noi lo abbelliremo successivamente.


Rami di sviluppo

I rami di sviluppo di Zypper dovrebbero essere generalmente gli stessi di libzypp, ma ci possono essere delle eccezioni. In generale, lo sviluppo principale viene portato avanti sul trunk. I rami sono principalmente necessari internamente agli sviluppatori di SUSE per manutenzione o sviluppo di particolari versioni di Zypper rilasciate con speicifici prodotti.


Compilare Zypper

Per compilare zypper, avrai bisogno di installare i seguenti pacchetti:

libzypp-devel, augeas-devel, cmake, gcc-c++, pkg-config, boost-devel, gettext-devel, and readline-devel.

Per procedere, crea una directory di compilazione (o _build all'interno dei sorgenti di zypper o in un'altra directory esterna) ed eseguici i comandi cmake e make in questo modo:

mkdir <build_dir>
cd <build_dir>
cmake <zypper_src_dir>
make

Eventualmente, puoi usare make install per installare zypper nella directory /usr. Se vuoi usare un differente prefisso di installazione quando lavori su zypper, diglielo a cmake usando un comando di questo genere:

cmake -DCMAKE_INSTALL_PREFIX=/my/devel/usr <zypper_src_dir>

e continua a compilarlo con make come al solito.

Dopo aver compilato con successo, i tuoi eseguibili di zypper li troverai nella directory <build_dir>/src. Puoi eseguire questi binary direttamente o usare make install per installarli nella directory bin/ sotto uno specifico prefisso di installazione (vedi sopra)

Per compilare i sorgenti tarball, usa

make srcpackage

o

make srcpackage_local

Il primo controllo i cambiamenti non committati nell'albero dei sorgenti, il secondo salta questo controllo. I tarball generati verranno posti in <build_dir>/package insieme con il file zypper.spec.

Altre variabili di cmake

  • ZYPP_PREFIX - usa questa variabile per specificare il prefisso di installazione di libzypp in caso vuoi installarla in una directory non-standard;
  • SYSCONFDIR - specifica la tua directory /etc per l'installazione di logrotate.d/zypper.lr
  • MANDIR - specifica la directory di installazione per la tua propria pagina di manuale.

Stile

Tab contro Spazi e Indentazione

Nel codice sorgente viene usata l'indentazione a due caratteri. Puoi mescolare tab e spazi per indentare il tuo codice ma assicurati che il tuo editor sia configurato per mostrare i caratteri di tabulazione su colonne larghe 8 caratteri. Nell'editor vim, questo può essere fatto invocando il comando:

set tabstop=8 shiftwidth=2 softtabstop=2

Quando configurato in questo modo, non importa se dici all'editor di inserire spazi invece di caratteri di tabulazione quando premi il tasto tab. Non tutti gli editor supportano questa funzionalità, comunque, ma almeno vim, emacs, cream, e recentemente anche Eclipse CDT lo fanno.


Piani futuri

Dai un'occhiata a questa roadmap e alla pagina TODO per una lista di idee e di lavori pianificati. Se stai cercando qualcosa da fare, puoi semplicemente prenderne uno e aiutarci a svilupparlo Contattaci e dicci cosa intendi fare (o semplicemente inviaci una patch :O ). Dai un'occhiata anche a questi bug disponibili per l'adozione.