2011-09-01 5 views
14

Come follow-up a How do I write a setup.py for a twistd/twisted plugin that works with setuptools, distribute, etc?, come si fa a fare un pacchetto debian per un plugin twistato?Come posso creare un pacchetto ubuntu/debian per un plugin twistd/twisted?

Supponendo che setup.py sia scritto correttamente, usare cdbs/python-central/dh_python2 dovrebbe funzionare, ma finora non ho avuto molta fortuna.

Il trucco con questi strumenti è che fondamentalmente eseguono "python setup.py install --root =" e quindi impacchettano ciò che finisce in "", quindi forse una volta che la domanda precedente ha risposto correttamente, allora questa domanda diventa Moot?

Chiunque ha inserito correttamente un plugin twistato per debian?

risposta

1

Argh, ho provato a farlo e ho fallito. Penso che sia possibile, a seconda di quale Debian/Ubuntu rilascia si desidera raggiungere, e quanti sforzi si vuole mettere in

Ci sono due approcci:.

  1. avere il vostro pacchetto di bastone il file plugin in twisted/plugins/ nell'albero contorto. Questo è un problema perché Twisted è confezionato utilizzando diversi metodi in versioni diverse (python-support in Lucid vs dh_python2 in Natty IIRC) e (approssimativamente) il pacchetto deve essere impacchettato nello stesso modo in cui Twisted fa funzionare.
  2. Avere una directory twisted/plugins/ installata insieme al codice. Quindi, IIRC, il problema diventa avere la foresta di collegamenti simbolici che viene creata include la directory contorta (in quanto non è un pacchetto).
+0

Non capisco queste opzioni terribilmente bene. Puoi offrire maggiori dettagli tecnici su come un pacchetto "incolla" il file plugin in "the twisted tree"? Come si fa a sapere dove si trova l'albero contorto, dati i diversi luoghi in cui Twisted potrebbe essere installato da versioni diverse? – Glyph

3

A quanto pare il problema è con 'python-support', che è rotto quando si tratta di plugin twistati.

This message from Ubuntu's Matthias Klose spiega il problema e offre una soluzione:

confezionamento di plugin intrecciati con python-support è interrotta da disegno. Anche la politica python menziona esplicitamente che è necessario utilizzare lo stesso helper di packaging per i pacchetti che condividono lo stesso spazio dei nomi python.

Si dovrebbe usare dh_python2 per quello, o (deprecato) build con dh_pycentral usando `include-links '.

- Matthias Klose

+2

La tua prima frase è in qualche modo fuorviante; python-support è "semplicemente rotto quando si tratta di plugin twistati" perché i pacchetti Twisted usano dh_python2, non a causa di alcune limitazioni intrinseche del supporto python. Più in generale, se si installano i moduli python nello spazio dei nomi di un altro pacchetto, è necessario utilizzare lo stesso helper di packaging utilizzato dal pacchetto, altrimenti i file non finiranno nel posto giusto. – mithrandi

+0

Questo vale sia per Debian che per Ubuntu? Quali versioni di ciascuno? – Glyph