La creazione di un pacchetto aggiornato da una filiale bzr tende a differire in modo equo a seconda di chi gestisce le filiali o di come funziona il pacchetto in generale. Tuttavia, ecco alcune linee guida per un aggiornamento rapido e sporco di quasi tutti i pacchetti, da inviare a un PPA:
Ottieni la filiale:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head
Quindi passare ad esso e aggiornare il log delle modifiche:
dch -i
dch -i aprirà semplicemente una nuova voce in debian / changelog, aumentando la revisione della versione di uno. Se vuoi aggiungere una patch, è perfetto, ma se vuoi aggiornare a una versione più recente del software upstream, dovrai aggiornare il numero di versione prima del trattino (-). Ad esempio, una versione in 1.2-0ubuntu1 , se avvii dch -i cambierà in 1.2-0ubuntu2 , il che è buono per il patching ma se hai bisogno di una nuova versione probabilmente vorrai cambiarla in 1.3-0ubuntu1 .
Se hai bisogno di patch, ora è il momento di aggiungere le tue modifiche. Nei rami che hanno solo una directory debian / , puoi usare bzr bd-do (richiede il pacchetto bzr-builddeb) per passare ad un albero di lavoro in cui puoi fare cambiamenti, usare quilt o qualsiasi sistema di patch, quindi "esci da 0" per avere le modifiche copiate indietro.
Se desideri una nuova versione upstream, una volta modificato il log delle modifiche probabilmente eseguirai un comando simile a questo:
debian/rules get-orig-source
Questo di solito scaricherà il tarball giusto dall'editore a monte per iniziare. Se sono necessarie ulteriori modifiche, procedere come sopra per "patchare" o cambiare altri file nella directory debian / , altrimenti hai quasi finito:
bzr bd -S
bzr bd si occuperà della costruzione. Chiamarlo senza argomenti inizia a costruire sul tuo sistema, mentre chiamarlo con -S gli dice di preparare un pacchetto sorgente, che includerà un file ..._ source.changes che è quello che vuoi caricare sul tuo PPA (usa dput ppa: <nomeutente> / <nome del ppa> <modifica file> per farlo).
Per i pacchetti NetworkManager, è un po 'diverso. Diamo un'occhiata a openconnect in particolare:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect
Assicurati di avere anche tutte le dipendenze di compilazione: sudo get-build-deps
Con il ramo recuperato, questo leggerà il file debian / control e proverà a scaricare tutto il necessario per costruire network-manager-openconnect. Potrebbe essere necessario anche git. Una volta fatto, esegui get-orig-source per ottenere solo il tarball dell'ultima istantanea da git:
debian/rules get-orig-source
Vedrai volare il testo e apparirà un tarball con un numero di versione lungo. Questo è l'ultimo codice che potresti ottenere per nm-openconnect.
Sarà quindi necessario aggiornare il log delle modifiche con il numero di versione dal tarball, mantenendo intatto il suffisso -0ubuntu1 .
Oppure, cambia debian / changelog con il numero di versione specifico che desideri, quindi esegui: debian / rules get-current-source
Dato che i plugin non cambiano molto, dovresti essere in grado di compilare il pacchetto da lì, usando bzr bd come sopra. In caso contrario, applicare le modifiche necessarie come sopra.
Non dimenticare di bzr commit dopo aver apportato le modifiche.
Ho prima dimenticato di aggiungere, non esitare a utilizzare il sistema di proposta di unione ( Proponi di unire la pagina della tua filiale su LP) quando le modifiche che stai apportando potrebbero andare a vantaggio degli altri. Di solito puoi semplicemente proporre di unirti al ramo su cui si basa il tuo (ad esempio lp: ~ network-manager / network-manager / openconnect-ubuntu.head in questo caso).