Versionare un pacchetto per il caricamento su PPA

Ho un pacchetto chiamato Artha che distribuisco come sorgente e binari (deb) per architetture x86 e x86_64, cioè ho l’esperienza di creare file deb. Ho ricevuto alcune richieste per la creazione di un PPA. Pensavo di farlo per la prossima versione. Artha nel repository di Ubuntu è della versione 1.0.2 e sto cercando di creare un PPA per Artha 1.0.3.

Ho letto i documenti di Personal Package Archive di Launchpad e il PPA è ora configurato, ma questa pagina su versioning dice che per un pacchetto come Artha che è già presente nei artha-1.0.2-1ubuntu1 Ubuntu, chiamato artha-1.0.2-1ubuntu1 la versione PPA dovrebbe essere artha-1.0.3-1ubuntu1ppa1 , in modo che quando il artha-1.0.3-1ubuntu1ppa1 Ubuntu si aggiorna a 1.0.3 di Artha, sostituisce il pacchetto del mio PPA.

Quando di solito faccio il mio pacchetto .deb, ottengo questi file

  • artha_1.0.3.orig.tar.bz2
  • artha_1.0.3-1.debian.tar.gz
  • artha_1.0.3-1.dsc
  • artha_1.0.3-1_amd64.build
  • artha_1.0.3-1_amd64.changes
  • artha_1.0.3-1_amd64.deb

e i loro equivalenti per i386. Questa pagina sul caricamento su un PPA dice che i file .dsc, .changes e .debian.tar.gz saranno caricati.

Ecco la mia confusione. Come ho fatto questi file hanno la versione di cui sopra? cioè con il suffisso “ppa”? Sicuramente, ritengo che la ridenominazione manuale del codice sorgente del pacchetto sorgente di Artha non sia la scelta giusta.

Dovrei anche debuild -S -sd o debuild -S -sa ? La pagina Launchpad dice che la versione alternativa di un pacchetto esistente dovrebbe usare la prima. Questo suona ambiguo per me. Cosa significa questo? Una versione aggiornata conta come una versione alternativa?

Ci sono molte pagine dettagliate sulla creazione di un PPA. Ma sono pronti per essere configurati una sola volta, mentre i PPA forniscono aggiornamenti su un particolare pacchetto più velocemente e la manutenibilità è molto importante, sarei fantastico se qualcuno mi indicasse un documento di questo tipo che parla di aggiornamenti, ecc. cioè su cose che accadono a un PPA dopo il caricamento iniziale.

La versione del pacchetto risultante viene dal numero di versione fornito in debian/changelog Quindi è necessario avere la versione appropriata lì.

1.0.3-1 sostituirà un solo caricamento di Ubuntu versione 1.0.3-0ubuntu1

 $ dpkg --compare-versions 1.0.3-1 le 1.0.3-0ubuntu1 || echo "False" False 

Ma non sostituirà una versione originata da Debian con modifiche Ubuntu, cioè 1.0.3-1ubuntu1

 $ dpkg --compare-versions 1.0.3-1 le 1.0.3-1ubuntu1 || echo "False" $ 

Il carattere tilda ( ~ ) ha un significato speciale nei numeri di versione. Per esempio:

 $ dpkg --compare-versions 1.0.3-1 le 1.0.3-1~ppa1 || echo "False" False 

Dato che il tuo pacchetto non è originario di Debian, vado con un numero di versione come 1.0.3-0~ppa1 Ciò garantisce che è inferiore a una versione sincronizzata direttamente da Debian o introdotta in Ubuntu,

Quindi il tuo registro delle modifiche dovrebbe essere simile a:

 artha (1.0.3-0~ppa1) quantal; urgency=low * New upstream release. -- Your Name  Sun, 07 Oct 2012 13:06:56 -0400 

Se usare debuild -S -sd o debuild -S -sa è davvero una domanda diversa, ma ecco una breve risposta.

-sa assicura che il file .orig.tar.bz2 sarà caricato. Se non hai ancora fatto un upload di questa versione upstream, usa questo.

-sd fa esplicitamente in modo che vengano caricati solo debian.tar.gz o diff.tar.gz Questo è per quando si sta apportando una modifica a una versione upstream che è già disponibile nell’archivio di destinazione o PPA. Questo perché il tarball originale dovrebbe già essere presente lì.