Debianizzare un programma Python


La guida completa alla realizzazione di un pacchetto deb secondo gli standard Debian, dalla pacchettizzazione fino all’accettazione nei repository ufficiali Debian.

  1. The Wise Dj
    21 settembre 2010 alle 10:08

    Nella parte del file ‘rules’ devo fare una precisazione, così come è fa fallire la pacchettizzazione se il percorso del file presenta spazi.

    • 21 settembre 2010 alle 11:38

      il percorso di quale file?
      dei files da installare se ne occupa distutils, se provoca errori questo significherebbe che c’è un bug in debhelper?

      puoi postare un caso concreto?

  2. The Wise Dj
    21 settembre 2010 alle 13:02

    Pardon, effettivamente l’ho omesso.

    Se la cartella ‘programma_versione’ che si vuole ‘compilare’ si trova in un persorso con spazi (es. /home/nome/Scrivania/programma gespeaker/gespeaker-0.7), il file rules spezza tale percorso in più parti, generando errore.

    • 21 settembre 2010 alle 13:47

      ma questo non c’entra con rules.
      se il percorso contiene spazi devi scriverlo come se lo scrivessi nella shell:
      /home/nome/Scrivania/programma\ gespeaker/gespeaker-0.7

  3. The Wise Dj
    21 settembre 2010 alle 19:31

    Io non ho omesso nessuno spazio, io ho aperto il terminale direttamente nella cartella, il problema è in fase di compilazione, perché in rules c’é un comando che si prende il percorso e ci aggiunge ‘–install….’ (percorso con spazi –comando –install…), il problema è che lui invece di leggere un solo comando ne legge 2 o 3.

    • 21 settembre 2010 alle 19:58

      scusa ma davvero non capisco di cosa stai parlando.

      la guida alla sezione rules e` questa:
      https://ubuntrucchi.wordpress.com/2010/06/18/debianizzare-un-programma-python-12/

      non c’e` nessuno spazio e nessun riferimento alla cartella di origine del programma.
      spiegati per bene, quello che tu vedi in questo tutorial e` sicuro al 100%, i pacchetti che trovi in debian e ubuntu sono fatti in questa maniera e li ho fatto io personalmente.

      se hai cambiato qualcosa nell’uso dovresti spiegarlo.
      se hai un problema apri un topic e allega il log COMPLETO della compilazione, comando che hai eseguito incluso.

  4. The Wise Dj
    21 settembre 2010 alle 20:22

    La guida l’ho seguita alla lettera, tanto che la versione 1 del programma che ho fatto non ha dato problemi, ed era sulla scrivania, la seconda compilazione ha dato:

    Adding cdbs dependencies to debian/eclipx.substvars
    dh_installdirs -peclipx
    cd . && python setup.py install –root=/home/thewisedj/Scrivania/Progetti in elaborazione/Scripts/Eclip-X/Work/eclipx-0.7.2/debian/eclipx/ \
    –install-purelib=/usr/lib/python2.6/site-packages/ –prefix=/usr –no-compile -O0 –install-lib=/usr/share/eclipx
    usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]
    or: setup.py –help [cmd1 cmd2 …]
    or: setup.py –help-commands
    or: setup.py cmd –help

    error: invalid command ‘in’
    make: *** [install/eclipx] Errore 1
    dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2

    Riconosce ‘in’ come un comando e quindi interrompe, la riga totale è quella che è scritta come ultima nel rules, infatti alla fine ha l’install che dicevo.

    La guida funziona al 100%, ma da qualche parte manca un qualcosa che aggreghi i percorsi se con spazi.

    • 21 settembre 2010 alle 20:42

      quell’errore non riguarda in nessun modo il file rules ne` il pacchetto, l’errore e` su python-distutils.

      difetto gia` noto ma pare non ancora corretto
      http://psf.upfronthosting.co.za/roundup/tracker/issue4508
      https://bugs.launchpad.net/python-distutils-extra/+bug/586795

    • 21 settembre 2010 alle 21:02

      se vuoi puoi correggerlo da solo:
      gksudo gedit /usr/share/cdbs/1/class/python-distutils.mk
      cerca il testo python-install-py e subito sotto troverai

      cd $(DEB_SRCDIR) && $(call cdbs_python_binary,python$(cdbs_python_compile_version)) $(DEB_PYTHON_SETUP_CMD) install –root=$(DEB_DESTDIR) $(DEB_PYTHON_INSTALL_ARGS_ALL)

      racchiudi il $(DEB_DESTDIR) tra virgolette e dovrebbe funzionare tutto da se` (non copiarlo da qui, wordpress incasina alcuni caratteri).

      pare sia un difetto noto e che non sarà risolto, sta proprio nella documentazione ufficiale di cdbs:
      http://build-common.alioth.debian.org/cdbs-doc.html

      CDBS does not work if the name of the current directory contains spaces or some other special characters such as quotation marks. This situation is very hard to handle in make, so it is best to stick to “sane” directory names.

      nella documentazione aggiornata hanno corretto la frase cosi`:
      http://cdbs-doc.duckcorp.org/en/cdbs-doc.xhtml

      Beware your working directory MUST NOT have spaces or CDBS would probably fail; see #306941

      tecnicamente dovresti ignorare la mia modifica a python-distutils, forse potrebbe creare altri problemi, anche se non credo.
      il loro suggerimento e` di sistemare i percorsi senza spazi.

  5. The Wise Dj
    21 settembre 2010 alle 22:29

    Perfetto, ti ringrazio, comunque, più che altro, era una segnalazione per la guida😉

  1. No trackbacks yet.
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: