lug
01

Debianizzare un programma Python #25

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#25 Alla ricerca di uno sponsor – PAPT e PMPT

Esistono due gruppi chiamati Python Applications Packaging Team (PAPT) e Python Modules Packaging Team (PMPT) che si occupano rispettivamente di applicazioni e moduli Python.

Se si sta impacchettando un software indipendente il primo gruppo è quello a cui rivolgersi; se si sviluppa invece un modulo per Python ad uso di altri programmatori, il secondo gruppo è quello giusto.

Ulteriori informazioni e istruzioni del gruppo PAPT sono disponibili su:
http://wiki.debian.org/Teams/PythonAppsPackagingTeam
http://python-apps.alioth.debian.org/policy.html
http://alioth.debian.org/projects/python-apps/

Per il gruppo PMPT invece:
http://wiki.debian.org/Teams/PythonModulesTeam
http://python-modules.alioth.debian.org/
http://python-modules.alioth.debian.org/python-modules-policy.html
http://alioth.debian.org/projects/python-modules/

Il sito alioth.debian.org contiene un certificato emesso autonomamente per cui in caso di accesso a pagine crittografate (https) potrà essere segnalato un problema di sicurezza del certificato. E’ necessario accettare il certificato ed aggiungere un’eccezione in modo da consentire la navigazione.

L’ingresso in uno di questi gruppi segue questo percorso:

  1. Lettura del regolamento del gruppo alla pagina policy (PAPT e PMPT)
  2. Registrazione di un nuovo account su alioth o accesso nel caso se ne possegga già uno
  3. Invio di una richiesta di accesso al gruppo attraverso la pagina del progetto (PAPT e PMPT) compilando il modulo di richiesta, fornendo le motivazioni per cui si desidera partecipare al progetto
  4. Attendere l’approvazione da parte di un moderatore
  5. Accedere al canale #debian-python sul server IRC irc.oftc.net e osservare il funzionamento. Al suo interno si possono trovare anche i moderatori del gruppo che potranno autorizzare l’ingresso nel gruppo
  6. Modifica del pacchetto includendo il gruppo scelto tra i maintainers o gli uploaders nel file control
  7. Caricamento del pacchetto sul server SVN come spiegato sia nella policy sia nell’HowTo
  8. Richiedere sul canale IRC #debian-python ad un DM o a un DD la revisione del pacchetto e l’eventuale adozione.
    Se nessun DD dovesse essere disponibile è possibile aggiungere il nome del pacchetto e la versione (es. gespeaker 0.7-1) sul titolo del canale, nello spazio apposito dopo PAPT o PMPT
  9. Chiedere aiuto nel canale per eventuali dubbi su come operare

In merito al punto 6 riporto qui il nuovo file control aggiornato:

Source: gespeaker
Section: sound
Priority: optional
Maintainer: Fabio Castelli <muflone@XXXXXX.net>
Uploaders: Python Applications Packaging Team <python-apps-team@lists.alioth.debian.org>
Standards-Version: 3.8.4
Build-Depends: cdbs (>= 0.4.49), python (>= 2.5), debhelper (>= 7)
Build-Depends-Indep: python-support (>=0.6)
Homepage: http://code.google.com/p/gespeaker/
Vcs-Svn: svn://svn.debian.org/svn/python-apps/packages/gespeaker/trunk/
Vcs-Browser: http://svn.debian.org/viewsvn/python-apps/packages/gespeaker/trunk/

Package: gespeaker
Architecture: all
Depends: espeak, espeak-data, python-gtk2, python-glade2, python-gobject,
  alsa-utils | pulseaudio-utils, ${python:Depends}, ${misc:Depends}
Suggests: mbrola
Description: GTK+ front-end for eSpeak and mbrola
 Gespeaker is a GTK+ frontend for eSpeak and mbrola.
 It allows to play a text in many languages with settings
 for voice, pitch, volume, speed and word gap.
 .
 Since version 0.6 it can use mbrola package and voices to
 obtain a more realistic text reading experience.

Ogni singola modifica apportata al pacchetto deve essere inviata al server SVN in modo che sia visibile, siano visibili le modifiche eseguite e chiunque nel gruppo possa partecipare allo sviluppo del pacchetto.
Chiunque non si trovi a suo agio con i comandi SVN può utilizzare uno strumento grafico come rapidsvn.

Per entrambi i gruppi è disponibile anche il newsgroup linux.debian.maint.python

I miei pacchetti (finora 4) sono stati tutti approvati attraverso il gruppo PAPT che ringrazio profondamente.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

lug
01

Manovrare le finestre da terminale con wmectrl

 

Si tratta di un nuovo progetto che ho realizzato in un solo giorno, il suo nome è wmectrl (Window Manager Enhanced Control), uno strumento a riga di comando (ispirato a wmctrl che svolge un lavoro simile ma più limitato) che consente di manovrare le finestre del window manager ed eseguire numerose operazioni su di esse.

In tutte le finestre:

  • Elencare le finestre aperte (–list-windows)
  • Ridurre tutte le icone e mostrare il desktop (–show-desktop)
  • Ottenere informazioni sul loro stato (–show-information)

Per la scelta di schermo, spazio di lavoro e finestra:

  • Scegliere lo schermo (–screen)
  • Scegliere l’area di lavoro (–workspace)
  • Scegliere la finestra (–window)
  • Usare il titolo esatto nella scelta della finestra (–exact-title)
  • Usare il PID nella scelta della finestra (–exact-pid)
  • Usare il titolo dell’applicazione per la scelta della finestra (–exact-app-title)

Per gli spazi di lavoro (desktop virtuali):

  • Modificare il numero di spazi di lavoro (–set-workspaces-count)
  • Modificare il nome di un’area di lavoro (–set-workspace-name)
  • Cambiare l’area di lavoro attiva (–set-workspace-active)

Per controllare una finestra specifica:

  • Spostarla su un altra area di lavoro (–move-to)
  • Renderla attiva in primo piano (–activate)
  • Chiuderla senza chiudere il processo (–close)
  • Renderla visibile su tutte le aree di lavoro o solo su una (–pin)
  • Nasconderla dal selettore aree di lavoro (–skip-pager)
  • Nasconderla dalla barra delle applicazioni (–skip-tasklist)
  • Comprimerla (–shade)
  • Fissare la sua posizione (–sticky)

Riguardo la posizione di una finestra specifica:

  • Imporla sempre in primo piano (–above)
  • Importa sempre in ultimo piano (–below)
  • Avviare lo spostamento manuale (–manual-move)
  • Modificare la posizione (–left e –top)

Riguardo la dimensione di una finestra specifica:

  • Minimizzarla e deminimizzarla (–minimized)
  • Massimizzarla e demassimizzarla (–maximized)
  • Massimizzarla e demassimizzarla orizzontalmente (–horizontally)
  • Massimizzarla e demassimizzarla verticalmente (–vertically)
  • Modificare la dimensione (–width e –height)
  • Impostarla a schermo intero (–fullscreen)
  • Avviare il ridimensionamento manuale (–manual-resize)

Tutti i comandi sono disponibili eseguendo:

wmectrl --help

Esempi di utilizzo

Per elencare tutte le finestre con loro PID e titolo:

wmectrl --list-windows
5300 Pannello di bordo espanso inferiore
5300 Pannello di bordo espanso superiore
5301 x-nautilus-desktop
5518 Posta in arrivo - Cartelle locali - Mozilla Thunderbird
5489 Add New Post ‹ Ubuntu Trucchi — WordPress - Shiretoko
5520 Liferea
5301 wmectrl - Esplorazione file
5318 stjerm

Per ottenere informazioni sulla finestra attiva:

wmectrl -I
screen number:          0
screen size:            1024x768
WM name:                Metacity
showing desktop:        False
windows count:          10
selected window:        stjerm (5318)
window position:        112,344
window size:            800x400
window client position: 112,344
window client size:     800x400
window active:          True
window above:           True
window below:           False
window fullscreen:      False
window minimized:       False
window maximized:       False
window maximized H:     False
window maximized V:     False
window pinned:          True
window shaded:          False
window sticky:          True
window skip pager:      True
window skip tasklist:   True
window in workspace:    True
window in viewport:     True
window needs attention: False
window application:     stjerm (5318)
workspaces count:       6
selected workspace:     0 (Principale)
workspace size:         1024x768
workspace layout:       0x0
workspace viewport:     0x0
workspace virtual:      False

Per scegliere una finestra da una parte di titolo:

wmectrl -I -w Life
...
selected window:        Liferea (5520)
window application:     Liferea (5520)

Per scegliere una finestra col titolo esatto:

wmectrl -I --exact-title -w "wmectrl - Esplorazione file"
...
selected window:        wmectrl - Esplorazione file (5301)
window application:     File Manager (5301)

Per scegliere una finestra dal suo PID:

wmectrl -I --exact-pid -w 5518
...
selected window:        Posta in arrivo - Cartelle locali - Mozilla Thunderbird (5518)
window application:     Thunderbird-3.0 (5518)

Per scegliere una finestra dal nome dell’applicazione:

wmectrl -I --exact-app-title -w Thunderbird-3.0
...
selected window:        Posta in arrivo - Cartelle locali - Mozilla Thunderbird (5518)
window application:     Thunderbird-3.0 (5518)

Per ridurre a icona la finestra scelta:

wmectrl -w Thunderbird --minimize=true

Per annullare la minimizzazione:

wmectrl -w Thunderbird --minimize=false

Per massimizzare la finestra:

wmectrl -w Thunderbird --maximize=true

Per ripristinare la finestra:

wmectrl -w Thunderbird --maximize=false

Per cambiare posizione e dimensione della finestra:

wmectrl -w Thunderbird --left=100 --top=40 --width=500 --height=340

Per nasconderla dall’elenco delle finestre:

wmectrl -w Thunderbird --skip-tasklist=true

Per spostarla sulla terza area di lavoro:

wmectrl -w Thunderbird --workspace=2 --move-to

Per chiudere la finestra:

wmectrl -w Thunderbird --close

E così via, le combinazioni sono tante ed è possibile unirle tra loro per regolare con un solo comando il comportamento delle finestra voluta.

Il pacchetto wmectrl è disponibile nel Repository di Ubuntu Trucchi e sulla pagina del progetto ufficiale su Google Code.

Liferea (5520)

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
30

Debianizzare un programma Python #24

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#24 Alla ricerca di uno sponsor – Debian Mentors

Debian Mentors (http://mentors.debian.net/cgi-bin/welcome) è un servizio non ufficiale utilizzato per sponsorizzazioni di vari pacchetti, non solo Python.

Completata l’iscrizione sul sito seguite le indicazioni di Introduction for maintainers e dopo aver caricato il proprio pacchetto automaticamente sarà inviata un’email del genere:

Your upload of the package  gespeaker  to mentors.debian.net was
successful. Sponsors can now download it. The URL of your package is:

http://mentors.debian.net/debian/pool/main/g/gespeaker

The respective dsc file can be found at:

http://mentors.debian.net/debian/pool/main/g/gespeaker/gespeaker_0.7-1.dsc

-------------------------
Processing your upload took 5.0 seconds.
-------------------------

If you do not yet have a sponsor for your package you may want to go to

http://mentors.debian.net/cgi-bin/maintainer-packages?action=details;package=gespeaker

and set the "Seeking a sponsor" option to hilight your package on the
welcome page.

You can also send an RFS (request for sponsorship) to the debian-mentors
mailing list. Your package page will give your suggestions on how to
send that mail.

Good luck finding a sponsor! And thanks for using mentors.debian.net

The mentors.debian.net team

Debian Mentors è dotato sempre dell’ultimissima versione di Lintian per cui potrebbero essere presentati errori che nel test iniziale non erano stati segnalati, assicurarsi quindi di risolverli tutti prima di presentare richiesta di adozione.
Se il pacchetto dovesse contenere degli errori rilevati da Lintian essi saranno riportati anche nell’email.

All’interno del messaggio sarà riportato anche l’indirizzo dove risiede il pacchetto, aprendo la pagina sarà possibile scegliere l’opzione Seeking a sponsor per segnalare il pacchetto come necessario di sponsor.

Oltre questo, sempre dal sito mentors sarà possibile preparare una richiesta di adozione (RFS = Request for sponsor) alla mailing list degli sponsor, semplicemente seguendo le indicazioni riportate nella pagina del pacchetto.

Il messaggio generato andrà compilato con alcune informazioni, segue un esempio per questo progetto:

Dear mentors,

I am looking for a sponsor for my package "gespeaker".

* Package name    : gespeaker
  Version         : 0.7-1
  Upstream Author : Fabio Castelli <muflone@XXXXXX.net>
* URL             : http://code.google.com/p/gespeaker/
* License         : GPL
  Section         : sound
  Programming lang: Python

It builds these binary packages:
gespeaker  - A GTK+ frontend for eSpeak and mbrola

The package appears to be lintian clean.

The upload would fix these bugs: 559684

My motivation for maintaining this package is: I'm the upstream author and I'll
be glad if people could use my application.
This tool simplifies the use of eSpeak and mbrola in GTK+ desktop environments,
it could be both amusing and useful.
It's actually translated in english, french, italian and spanish languages with
gettext.
The non-free packages mbrola and mbrola-* are not required for the usage but
they will be used if they're installed.

The package can be found on mentors.debian.net:
- URL: http://mentors.debian.net/debian/pool/main/g/gespeaker
- Source repository: deb-src http://mentors.debian.net/debian unstable main contrib non-free
- dget http://mentors.debian.net/debian/pool/main/g/gespeaker/gespeaker_0.7-1.dsc

I would be glad if someone uploaded this package for me.

Kind regards
Fabio Castelli

La RFS andrà inviata alla mailing list debian-mentors@lists.debian.org
Il gruppo è raggiungibile anche sul newsgroup linux.debian.devel.mentors
Ulteriori informazioni su Debian Mentors sono disponibili su:
http://mentors.debian.net/cgi-bin/welcome
http://wiki.debian.org/DebianMentorsNet

Contemporaneamente è consigliabile anche fare un salto sul server irc.oftc.net nel canale #debian-mentors (serve un client IRC come XChat o Pidgin) e richiedere l’aiuto di un maintainer (Debian Maintainer = DM) che possa controllare il pacchetto o l’adozione da parte di uno sponsor (Debian Developer = DD).

Assicurarsi di fornire l’indirizzo del pacchetto sorgente dsc che è indicato sia sul sito mentors sia nelle varie email che vengono inviate o preparate.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
29

Debianizzare un programma Python #23

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#23 Alla ricerca di uno sponsor – Introduzione

Qui inizia la parte più lunga e difficile di questo percorso, la ricerca di uno sponsor che voglia prendersi carico del nostro pacchetto. Infatti soltanto gli sviluppatori ufficiali Debian (DD) hanno il permesso di prendere un pacchetto sorgente e caricarlo sui server Debian.

E’ quindi assolutamente necessario trovare qualcuno che abbia tale privilegio e possa controllare il pacchetto, richiedere/effettuare eventuali modifiche e infine approvarlo o scartarlo.

Non esiste una procedura universale sempre valida, la sponsorizzazione è un’attività volontaria dei DD quindi non è da escludersi la possibilità che il software non interessi a nessuno e non venga mai sponsorizzato. E’ quindi necessario armarsi di pazienza e seguire tutte le strade possibili per trovare uno sponsor.

Attualmente esistono vari canali non ufficiali per la ricerca di sponsor:

  1. Debian Mentors
  2. PAPT un gruppo dedicato alla pacchettizzazione di applicazioni python
  3. PMPT un gruppo dedicato alla pacchettizzazione di moduli python

Se non si riuscisse a trovare un DD che voglia sponsorizzare il pacchetto è possibile chiedere aiuto ad altri maintainers che possono segnalare cosa c’è di non idoneo nel pacchetto e aiutare a sistemarlo, dando maggiori possibilità di trovare uno sponsor.

Qualunque canale si scelga tenere sempre a mente che si tratta di servizi volontari e di rispettare la netiquette, non inondare i canali e le mailing list di richieste ma aspettare pazientemente una risposta anche una settimana.

La lingua da usare per tutte le comunicazioni è sempre l’inglese.
Data la complessità della questione si consiglia di affrontarla su tutti i fronti contemporaneamente.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
28

Debianizzare un programma Python #22

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#22 Compilazione definitiva del pacchetto (II)

Ottenuta una chiave crittografica sarà adesso possibile firmare in maniera definitiva il pacchetto semplicemente ricompiilandolo nuovamente con:

dpkg-buildpackage

Il risultato sarà il medesimo del precedente fatta eccezione per le ultime righe:

dpkg-deb: building package `gespeaker' in `../gespeaker_0.7-1_all.deb'.
 signfile gespeaker_0.7-1.dsc

You need a passphrase to unlock the secret key for
user: "Fabio Castelli <muflone@XXXXXX.net>"
1024-bit DSA key, ID 880415CF, created 2010-06-05

 dpkg-genchanges  >../gespeaker_0.7-1_i386.changes
dpkg-genchanges: including full source code in upload
 signfile gespeaker_0.7-1_i386.changes

You need a passphrase to unlock the secret key for
user: "Fabio Castelli <muflone@XXXXXX.net>"
1024-bit DSA key, ID 880415CF, created 2010-06-05

dpkg-buildpackage: full upload (original source is included)

Verrà richiesta la password scelta nella creazione della chiave e infine saranno firmati sia il file .dsc sia il file .changes.

Quest’ultimo passaggio in realtà è stato una forzatura: non è strettamente necessario ricompilare il pacchetto per avere i due files firmati, è possibile firmarli separatamente senza ricompilare ma è una buona pratica da seguire.

I nuovi files si presenteranno differenti rispetto quelli non crittografati presentati al diciottesimo passaggio. Questo è il nuovo file dsc:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.0
Source: gespeaker
Binary: gespeaker
Architecture: all
Version: 0.7-1
Maintainer: Fabio Castelli <muflone@XXXXXX.net>
Homepage: http://code.google.com/p/gespeaker/
Standards-Version: 3.8.4
Build-Depends: cdbs (>= 0.4.49), python (>= 2.5), debhelper (>= 7)
Build-Depends-Indep: python-support (>= 0.6)
Checksums-Sha1:
 28c87cbc057f6636adac542ee7f56bff3d9c59f7 96103 gespeaker_0.7.orig.tar.gz
 640f556dace1fcb7b4e7350f55798b978b990953 1485 gespeaker_0.7-1.diff.gz
Checksums-Sha256:
 98f5cb86342c32648dad5d0a780d0766d36dae473e84bdc70b16c377c3adc24c 96103 gespeaker_0.7.orig.tar.gz
 1dfc16c6aaac566cd8c5154f211e11e506ebcf5405bd038a981adc838fd607f5 1485 gespeaker_0.7-1.diff.gz
Files:
 56e815db5338e4e6f9618a90d9fa05e9 96103 gespeaker_0.7.orig.tar.gz
 09e4b87ad3423e983c7b005c839668e4 1485 gespeaker_0.7-1.diff.gz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkwKOMYACgkQ83vHrIgEFc9vJACgqOKJzfy2GxiC4T/JgjLldJLQ
vyYAn00XDCCGU3vXadrzVQBlKfoXN/7X
=NDcN
-----END PGP SIGNATURE-----

Questo il nuovo file changes:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sun, 20 Dec 2009 19:59:25 +0100
Source: gespeaker
Binary: gespeaker
Architecture: source all
Version: 0.7-1
Distribution: unstable
Urgency: low
Maintainer: Fabio Castelli <muflone@XXXXXX.net>
Changed-By: Fabio Castelli <muflone@XXXXXX.net>
Description:
 gespeaker  - GTK+ front-end for eSpeak and mbrola
Closes: 559684
Changes:
 gespeaker (0.7-1) unstable; urgency=low
 .
 * Initial release (Closes: #559684)
Checksums-Sha1:
 73354fd66dca0a1d4872fa7174cb84018f175ae0 1070 gespeaker_0.7-1.dsc
 28c87cbc057f6636adac542ee7f56bff3d9c59f7 96103 gespeaker_0.7.orig.tar.gz
 640f556dace1fcb7b4e7350f55798b978b990953 1485 gespeaker_0.7-1.diff.gz
 24e127b2d4409391f9072cead21d55aa7d37c136 92094 gespeaker_0.7-1_all.deb
Checksums-Sha256:
 76fe46e84a245b341a7693783703e0308d1444da91267d7bb54f53b6dee48700 1070 gespeaker_0.7-1.dsc
 98f5cb86342c32648dad5d0a780d0766d36dae473e84bdc70b16c377c3adc24c 96103 gespeaker_0.7.orig.tar.gz
 1dfc16c6aaac566cd8c5154f211e11e506ebcf5405bd038a981adc838fd607f5 1485 gespeaker_0.7-1.diff.gz
 ccc614b14ab47761f11751a0079adc966179546e4fa7aa36c443e6158810f710 92094 gespeaker_0.7-1_all.deb
Files:
 7f5694b24ff63dae68c7c0f4d5cfca40 1070 sound optional gespeaker_0.7-1.dsc
 56e815db5338e4e6f9618a90d9fa05e9 96103 sound optional gespeaker_0.7.orig.tar.gz
 09e4b87ad3423e983c7b005c839668e4 1485 sound optional gespeaker_0.7-1.diff.gz
 9f23c8063e3d55e6833157ccb9f8f3da 92094 sound optional gespeaker_0.7-1_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkwKOMoACgkQ83vHrIgEFc8aXwCfVi7c9PaFCz+aEDPF5LqzRDTU
dzYAnjRF3gMcM/jrVm9XRn4b7ApU2KG0
=ldyz
-----END PGP SIGNATURE-----

Eseguire un’ultima verifica con lintian come indicato in precedenza e siamo pronti a sottoporre il nostro pacchetto ad un DD (Debian Developer) che potrà approvarlo, scartarlo o richiedere ulteriori cambiamenti.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
27

Debianizzare un programma Python #21

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#21 Creazione di una chiave crittografica

Se non si possiede una chiave crittografica per le informazioni usate nella compilazione del pacchetto è possibile crearne una gratuitamente e con semplicità con:

gpg --gen-key

Verranno poste una serie di domande sul tipo di chiave da creare:

gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
 (1) DSA and Elgamal (default)
 (2) DSA (sign only)
 (5) RSA (sign only)
Your selection? 1

Innanzitutto il tipo di chiave, tutte vanno bene per questo scopo ma il tipo 1 (DSA and Elgamal) consente anche di crittografare files oltre che di firmarli.

DSA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits

La dimensione della chiave crittografica da creare deve essere un numero compreso tra 1024 e 4096 bit, il valore predefinito è 2048. Inserire la dimensione voluta e premere enter.

Please specify how long the key should be valid.
 0 = key does not expire
 <n>  = key expires in n days
 <n>w = key expires in n weeks
 <n>m = key expires in n months
 <n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all

Sarà quindi richiesta la durata della chiave, è possibile indicare una durata in giorni, settimane, mesi, anni o infinita. Terminato il periodo di validità della chiave essa sarà ritenuta non valida alla crittografia.

Is this correct? (y/N) y

Confermare le scelta con y.

A questo punto saranno richieste le informazioni personali da inserire nella chiave, esse dovranno corrispondere a quelle usate nella compilazione del pacchetto.

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
 "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

La chiave finita sarà formata dalla combinazione di nome, cognome, commento e indirizzo email in questa forma:

Nome Cognome (Commento) <indirizzo@email>

Nell’esempio del pacchetto finora costruito la firma è stata: Fabio Castelli <muflone@XXXXXX.net>.
Ciò significa che non si dovrà inserire nessun commento. Naturalmente ciò è a discrezione del maintainer ma deve corrispondere tra pacchetto e chiave.

Real name: Fabio Castelli
Email address: muflone@XXXXXX.net
Comment:
You selected this USER-ID:
 "Fabio Castelli <muflone@XXXXXX.net>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

Controllare lo USER-ID e se corrispondente a quello usato nel pacchetto confermare con O.

You need a Passphrase to protect your secret key.

gpg: problem with the agent - disabling agent use

Sarà quindi richiesta una password per proteggere questa chiave dagli utilizzi. Nel momento in cui verrà utilizzata per firmare sarà richiesta nuovamente questa password.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
++++++++++.+++++++++++++++.+++++...+++++++++++++++..+++++++++++++++..++++++++++++
++++++++.++++++++++++++++++++..+++++.+++++++++++++++.+++++++++++++++........+++++

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 151 more bytes)

A questo punto sarà generata la chiave sulla base di dati casuali. Per assicurare la corretta generazione di dati sufficientemente casuali è necessario eseguire attività varie sul computer come muovere il mouse a caso, aprire e chiudere programmi, sfogliare cartelle, insomma qualsiasi attività che faccia utilizzare la memoria e il disco.

Il messaggio sopra indicato sarà ripetuto fino a che non saranno trovati abbastanza dati casuali da generare una chiave sicura. Il procedimento può richiedere qualche minuto.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
.+++++.+++++++++++++++..+++++++++++++++..+++++++++++++++++++++++++.++++++++++....+
+++++++++.+++++++++++++++..++++++++++.+++++.+++++++++++++++++++++++++....++++++++
++>++++++++++>+++++...............................+++++^^^
gpg: key 880415CF marked as ultimately trusted
public and secret key created and signed.

Questo conferma l’avvenuta creazione della chiave, non sarà più necessario eseguire attività casuali nel sistema.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   1024D/880415CF 2010-06-05
 Key fingerprint = D9FC C8FF 7446 0F98 EEC7  AA49 F37B C7AC 8804 15CF
uid                  Fabio Castelli <muflone@XXXXXX.net>
sub   2048g/FC0D8451 2010-06-05

Sarà infine presentato un resoconto della nuova chiave creata.

Gli utenti GNOME possono utilizzare lo strumento seahorse presente nel menu Accessori col nome Password e chiavi di cifratura per creare una nuova chiave personale. Il procedimento è pressoché identico ma guidato da interfaccia grafica.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
26

Debianizzare un programma Python #20

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#20 Compilazione definitiva del pacchetto (I)

Al momento della costruzione del pacchetto abbiamo indicato di non firmare né il file dsc né il file changes. Prima di portare avanti il pacchetto è necessario che esso venga firmato con la propria chiave privata, ricompiliamo quindi il pacchetto in maniera definitiva con:

dpkg-buildpackage

Il risultato sarà il medesimo del precedente fatta eccezione per le ultime righe:

dpkg-deb: building package `gespeaker' in `../gespeaker_0.7-1_all.deb'.
 signfile gespeaker_0.7-1.dsc
gpg: skipped "Fabio Castelli <muflone@XXXXXX.net>": secret key not available
gpg: [stdin]: clearsign failed: secret key not available

 dpkg-genchanges  >../gespeaker_0.7-1_i386.changes
dpkg-genchanges: including full source code in upload
dpkg-buildpackage: full upload (original source is included)
dpkg-buildpackage: warning: Failed to sign .dsc and .changes file

gpg segnala l’assenza della chiave segreta per il nome e indirizzo email usato all’interno del pacchetto. Ciò significa due cose differenti:

  1. Il nome e cognome e l’indirizzo email usati per la realizzazione del pacchetto devono corrispondere con quelli della chiave gpg; pertanto se possediamo già una chiave gpg valida è necessario che i dati del pacchetto corrispondano a quelli della chiave.
  2. Se non possediamo una chiave gpg è necessario crearne una nuova sulla base dei dati usati nel pacchetto prima di procedere alla ricompilazione definitiva.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
25

Debianizzare un programma Python #19

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#19 Verifica dei pacchetti

Superata la pacchettizzazione, prima di sottoporre i pacchetti binario (deb) e sorgente (.dsc) ad uno sviluppatore Debian è obbligatorio controllare la loro congruenza per evitare l’immediato scarto a causa di errori formali.

Per il controllo ci viene in aiuto lintian che dispone di tantissimi controlli sugli errori formali più comuni. Il suo utilizzo è estremamente semplice.

Per controllare il pacchetto binario:

lintian gespeaker_0.7-1_all.deb

Per controllare il pacchetto sorgente:

lintian gespeaker_0.7-1.dsc

Per controllare entrambi contemporaneamente:

lintian gespeaker_0.7-1_i386.changes

Per ogni errore rilevato lintian riporta un avviso composto di una riga.
Se abbiamo seguito tutti i procedimenti correttamente ovviamente non sarà riportato nessun errore.

Un esempio degli errori che si potrebbero incontrare:

W: gespeaker: binary-without-manpage usr/bin/gespeaker
W: gespeaker: description-synopsis-might-not-be-phrased-properly
W: gespeaker: spelling-error-in-description GTK GTK+
W: gespeaker: new-package-should-close-itp-bug

Se il messaggio di errore non dovesse risultare sufficientemente esplicativo è possibile aggiungere il parametro -i:

lintian -i gespeaker_0.7-1_all.deb

E verrà riportato un risultato molto più prolisso e con spiegazioni generali sull’errore e un giudizio sul tipo (Severity) e probabilità dell’errore (Certainty):

W: gespeaker: binary-without-manpage usr/bin/gespeaker
N:
N:    Each binary in /usr/bin, /usr/sbin, /bin, /sbin or /usr/games should
N:    have a manual page
N:    
N:    Note that though the man program has the capability to check for several
N:    program names in the NAMES section, each of these programs should have
N:    its own manual page (a symbolic link to the appropriate manual page is
N:    sufficient) because other manual page viewers such as xman or tkman
N:    don t support this.
N:    
N:    If the name of the man page differs from the binary by case, man may be
N:    able to find it anyway; however, it is still best practice to make the
N:    case of the man page match the case of the binary.
N:    
N:    If the man pages are provided by another package on which this package
N:    depends, lintian may not be able to determine that man pages are
N:    available. In this case, after confirming that all binaries do have man
N:    pages after this package and its dependencies are installed, please add
N:    a lintian override.
N:    
N:    Refer to Debian Policy Manual section 12.1 (Manual pages) for details.
N:    
N:    Severity: normal, Certainty: possible
N:

Il primo errore avvisa quindi dell’assenza di una manpage per l’eseguibile /usr/bin/gespeaker.

Se il software originale non possedeva una manpage è ruolo del pacchettizzatore produrne una o spingere il programmatore a farla.

W: gespeaker: description-synopsis-might-not-be-phrased-properly
N:
N:    The synopsis (first line in the package "Description:" field, the short
N:    description) ends with a full stop "." character. This is not necessary,
N:    as the synopsis doesn t need to be a full sentence. It is recommended
N:    that a descriptive phrase is used instead.
N:    
N:    Note also that the synopsis is not part of the rest of the
N:    "Description:" field.
N:    
N:    Refer to Debian Policy Manual section 3.4.1 (The single line synopsis)
N:    for details.
N:    
N:    Severity: normal, Certainty: possible
N:

La descrizione del pacchetto potrebbe essere errata e termina con un punto alla fine.

W: gespeaker: spelling-error-in-description GTK GTK+
N:
N:    Lintian found a spelling or capitalization error in the package
N:    description. Lintian has a list of common misspellings that it looks
N:    for. It does not have a dictionary like a spelling checker does. It is
N:    particularly picky about spelling and capitalization in package
N:    descriptions since they re very visible to end users.
N:    
N:    Severity: normal, Certainty: certain
N:

Nella descrizione del pacchetto c’è un errore ortografico, è indicato GTK invece di GTK+.

W: gespeaker: new-package-should-close-itp-bug
N:
N:    This package appears to be the first packaging of a new upstream
N:    software package (there is only one changelog entry and the Debian
N:    revision is 1), but it does not close any bugs. The initial upload of a
N:    new package should close the corresponding ITP bug for that package.
N:    
N:    This warning can be ignored if the package is not intended for Debian or
N:    if it is a split of an existing Debian package.
N:    
N:    Refer to Debian Developer s Reference section 5.1 (New packages) for
N:    details.
N:    
N:    Severity: normal, Certainty: certain
N:

Si tratta di un pacchetto nuovo in quanto il changelog ha soltanto una voce ma non è indicato il bug ITP da chiudere (vedi terzo e quarto passaggio e chiudere il bug come indicato nel nono passaggio).

Gli errori possono essere molti altri, è necessario risolverli tutti.

Quando lintian non riporterà più nessun errore sia sul pacchetto binario (.deb) sia su quello sorgente (.dsc) rieseguire i test pedanti con:

lintian -i --pedantic gespeaker_0.7-1_i386.changes

Si tratta di test aggiuntivi molto più approfonditi e pignoli che potrebbero risultare persino falsi. Potrebbero essere presentati errori aggiuntivi che se corrispondenti alla realtà andranno ovviamente corretti.

E’ fortemente raccomandato di non ignorare gli avvisi riportati da lintian, soprattutto quelli non pedanti. Il pacchetto potrebbe venire immediatamente scartato senza neanche valutazione a causa degli errori.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
24

Debianizzare un programma Python #18

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#18 Visione dei files ottenuti

Al di fuori della directory del programma sorgente si troveranno alcune novità:

  • gespeaker_0.7.orig.tar.gz contenente il sorgente originale creato al settimo passaggio
  • gespeaker_0.7-1.diff.gz contenente un file diff con tutte le modifiche apportate rispetto l’orig.tar.gz, se abbiamo fatto tutto correttamente, saranno soltanto le modifiche alla directory debian
  • gespeaker_0.7-1.dsc contenente le informazioni sui due files precedenti. Questo costituisce il pacchetto sorgente nonché il file che verrà richiesto dagli sviluppatori debian al momento del controllo
  • gespeaker_0.7-1_all.deb il pacchetto deb finito e compilato, pronto da installare
  • gespeaker_0.7-1_i386.changes contenente le informazioni su tutti i files precedenti

Il file dsc si presenta in questa maniera:

Format: 1.0
Source: gespeaker
Binary: gespeaker
Architecture: all
Version: 0.7-1
Maintainer: Fabio Castelli <muflone@XXXXXX.net>
Homepage: http://code.google.com/p/gespeaker/
Standards-Version: 3.8.4
Build-Depends: cdbs (>= 0.4.49), python (>= 2.5), debhelper (>= 7)
Build-Depends-Indep: python-support (>= 0.6)
Checksums-Sha1:
 b1942b945fff13f8b46922fd4e62ec0756295262 96093 gespeaker_0.7.orig.tar.gz
 ccfc3233825dd831e117fb786fefa1e6226066c5 1488 gespeaker_0.7-1.diff.gz
Checksums-Sha256:
 9723eff5ddfe79a5a6df24f76bff7911f067dbfe9685d4b3812c093012a7ef17 96093 gespeaker_0.7.orig.tar.gz
 b8448b79045b5d883dcb2f7bb51a19c7af1572c846d592bcaccb2049d9431f41 1488 gespeaker_0.7-1.diff.gz
Files:
 dd2d98431002f58d7a87df164b14d047 96093 gespeaker_0.7.orig.tar.gz
 d834512d16969486068aead81b9e0586 1488 gespeaker_0.7-1.diff.gz

Il file changes si presenta in questa maniera:

Format: 1.8
Date: Sun, 20 Dec 2009 19:59:25 +0100
Source: gespeaker
Binary: gespeaker
Architecture: source all
Version: 0.7-1
Distribution: unstable
Urgency: low
Maintainer: Fabio Castelli <muflone@XXXXXX.net>
Changed-By: Fabio Castelli <muflone@XXXXXX.net>
Description:
 gespeaker  - GTK+ front-end for eSpeak and mbrola
Closes: 559684
Changes:
 gespeaker (0.7-1) unstable; urgency=low
 .
 * Initial release (Closes: #559684)
Checksums-Sha1:
 3256075a361c537d6e072180606e12b807c8d58a 825 gespeaker_0.7-1.dsc
 b1942b945fff13f8b46922fd4e62ec0756295262 96093 gespeaker_0.7.orig.tar.gz
 ccfc3233825dd831e117fb786fefa1e6226066c5 1488 gespeaker_0.7-1.diff.gz
 b092df764a99498628eb3c3af397e2ad24942b83 92084 gespeaker_0.7-1_all.deb
Checksums-Sha256:
 e150adf6b77344352e046d4a3ab4cf1abab882fc2cb8d5a94f1e1d5562044954 825 gespeaker_0.7-1.dsc
 9723eff5ddfe79a5a6df24f76bff7911f067dbfe9685d4b3812c093012a7ef17 96093 gespeaker_0.7.orig.tar.gz
 b8448b79045b5d883dcb2f7bb51a19c7af1572c846d592bcaccb2049d9431f41 1488 gespeaker_0.7-1.diff.gz
 c2aed6bf26e50625b9210020d34b57dc5bb8e6c49392cce3767d846e7b49ff56 92084 gespeaker_0.7-1_all.deb
Files:
 506026dd60c747546c8ff6b5e439e16f 825 sound optional gespeaker_0.7-1.dsc
 dd2d98431002f58d7a87df164b14d047 96093 sound optional gespeaker_0.7.orig.tar.gz
 d834512d16969486068aead81b9e0586 1488 sound optional gespeaker_0.7-1.diff.gz
 862802e675286f53307781a32a44217e 92084 sound optional gespeaker_0.7-1_all.deb

Entrambi contengono i checksum in vari formati per verificare che i files non siano stati modificati dopo la compilazione.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
23

Debianizzare un programma Python #17

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#17 Compilazione iniziale del pacchetto

Completati tutti i passaggi di configurazione del pacchetto è finalmente possibile compilare il pacchetto con:

dpkg-buildpackage -us -uc

Il parametro -us indica di non firmare il file sorgente mentre il parametro -uc indica di non firmare il file dei cambiamenti (.changes). Essendo la prima compilazione inizialmente non è necessario firmare questi files, potranno esserci errori o avvisi e quindi può essere necessario compilarlo più volte.

Quello che segue è il risultato di una compilazione andata a buon fine senza nessun errore.

dpkg-buildpackage: set CFLAGS to default value: -g -O2
dpkg-buildpackage: set CPPFLAGS to default value:
dpkg-buildpackage: set LDFLAGS to default value:
dpkg-buildpackage: set FFLAGS to default value: -g -O2
dpkg-buildpackage: set CXXFLAGS to default value: -g -O2
dpkg-buildpackage: source package gespeaker
dpkg-buildpackage: source version 0.7-1
dpkg-buildpackage: source changed by Fabio Castelli <muflone@XXXXXX.net>
dpkg-buildpackage: host architecture i386
 fakeroot debian/rules clean
pyversions: missing XS-Python-Version in control file, fall back to debian/pyversions
test -x debian/rules
dh_testroot
dh_clean
cd . && python setup.py clean -a
running clean
'build/lib' does not exist -- can't clean it
'build/bdist.linux-i686' does not exist -- can't clean it
'build/scripts-2.5' does not exist -- can't clean it
rm -f python-build-stamp-*
find . -name '*.pyc' -exec rm '{}' ';'
rm -rf build/
 dpkg-source -b gespeaker-0.7
dpkg-source: info: using source format `1.0'
dpkg-source: info: building gespeaker using existing gespeaker_0.7.orig.tar.gz
dpkg-source: info: building gespeaker in gespeaker_0.7-1.diff.gz
dpkg-source: info: building gespeaker in gespeaker_0.7-1.dsc
 debian/rules build
pyversions: missing XS-Python-Version in control file, fall back to debian/pyversions
test -x debian/rules
mkdir -p "."
cd . && python setup.py build --build-base="/home/muflone/gespeaker-0.7/./build"
running build
running build_scripts
creating /home/muflone/gespeaker-0.7/build
creating /home/muflone/gespeaker-0.7/build/scripts-2.5
copying gespeaker -> /home/muflone/gespeaker-0.7/./build/scripts-2.5
changing mode of /home/muflone/gespeaker-0.7/./build/scripts-2.5/gespeaker from 744 to 755
touch python-build-stamp-2.5
 fakeroot debian/rules binary
pyversions: missing XS-Python-Version in control file, fall back to debian/pyversions
test -x debian/rules
dh_testroot
dh_clean -k
dh_installdirs -A
mkdir -p "."

Fino a questo punto è stato soltanto preparato il pacchetto.

Quello che segue è il log delle attività di setup.py visto in precedenza, che si occuperà di copiare i files al posto giusto e compilare i files della lingua.

cd . && python setup.py install --root=/home/muflone/gespeaker-0.7/debian/gespeaker/ --no-compile -O0 --install-lib=/usr/share/gespeaker
running install
running build
running build_scripts
running install_scripts
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/bin
copying build/scripts-2.5/gespeaker -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/bin
changing mode of /home/muflone/gespeaker-0.7/debian/gespeaker/usr/bin/gespeaker to 755
running install_data
creating build/mo/en_US
compiling po/en_US.po -> build/mo/en_US/gespeaker.mo
creating build/mo/fr
compiling po/fr.po -> build/mo/fr/gespeaker.mo
creating build/mo/it
compiling po/it.po -> build/mo/it/gespeaker.mo
creating build/mo/es
compiling po/es.po -> build/mo/es/gespeaker.mo
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/applications
copying data/gespeaker.desktop -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/applications
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/man
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/man/man1
copying man/gespeaker.1 -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/man/man1
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/doc
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/doc/gespeaker
copying doc/README -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/doc/gespeaker
copying doc/changelog -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/doc/gespeaker
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/data
copying data/testing.wav -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/data
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/data/icons
copying data/icons/palogo.png -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/data/icons
copying data/icons/alsalogo.png -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/data/icons
copying data/icons/gespeaker.svg -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/data/icons
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/data/ui
copying data/ui/preferences.glade -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/data/ui
copying data/ui/gespeaker.glade -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/data/ui
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/DialogAbout.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/SubprocessWrapper.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/PreferencesWindow.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/gespeaker.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/DialogYesNo.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/gespeakerUI.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/pygtkutils.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/TempfileWrapper.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/DialogSimpleMessages.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/Settings.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/gespeaker_dbus_service.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/EspeakFrontend.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/handlepaths.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
copying src/DialogFileOpenSave.py -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/src
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/en_US
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/en_US/LC_MESSAGES
copying build/mo/en_US/gespeaker.mo -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/en_US/LC_MESSAGES
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/fr
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/fr/LC_MESSAGES
copying build/mo/fr/gespeaker.mo -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/fr/LC_MESSAGES
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/it
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/it/LC_MESSAGES
copying build/mo/it/gespeaker.mo -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/it/LC_MESSAGES
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/es
creating /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/es/LC_MESSAGES
copying build/mo/es/gespeaker.mo -> /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/locale/es/LC_MESSAGES
running install_egg_info
Writing /home/muflone/gespeaker-0.7/debian/gespeaker/usr/share/gespeaker/Gespeaker-0.8.egg-info

Quindi continua la normale compilazione del pacchetto con i nuovi files generati dentro debian/gespeaker:

dh_installdirs -pgespeaker
dh_installdocs -pgespeaker   
dh_installexamples -pgespeaker
dh_installman -pgespeaker  
dh_installinfo -pgespeaker  
dh_installmenu -pgespeaker
dh_installcron -pgespeaker
dh_installinit -pgespeaker   
dh_installdebconf -pgespeaker
dh_installemacsen -pgespeaker   
dh_installcatalogs -pgespeaker
dh_installpam -pgespeaker
dh_installlogrotate -pgespeaker
dh_installlogcheck -pgespeaker
dh_installchangelogs -pgespeaker   
dh_installudev -pgespeaker
dh_lintian -pgespeaker
dh_install -pgespeaker  
dh_link -pgespeaker  
dh_installmime -pgespeaker
dh_pysupport -pgespeaker
dh_python -pgespeaker   
dh_python: Doing nothing since dh_pycompat exists; dh_pysupport or dh_pycentral should do the work. You can remove dh_python from your rules file.
dh_strip -pgespeaker  
dh_compress -pgespeaker  
dh_fixperms -pgespeaker  
dh_makeshlibs -pgespeaker  
dh_installdeb -pgespeaker
dh_perl -pgespeaker
dh_shlibdeps -pgespeaker    
dh_gencontrol -pgespeaker  
dh_md5sums -pgespeaker
dh_builddeb -pgespeaker
dpkg-deb: costruisco il pacchetto `gespeaker' in `../gespeaker_0.7-1_all.deb'.
dpkg-genchanges  >../gespeaker_0.7-1_i386.changes
dpkg-genchanges: including full source code in upload
dpkg-buildpackage: full upload (original source is included)

Le ultime righe del log sono fondamentali:

dpkg-deb: costruisco il pacchetto `gespeaker' in `../gespeaker_0.7-1_all.deb'.
dpkg-genchanges  >../gespeaker_0.7-1_i386.changes
dpkg-genchanges: including full source code in upload
dpkg-buildpackage: full upload (original source is included)

La prima indica l’avvenuta compilazione del pacchetto e la creazione del file deb. La seconda e terza riga mostrano la creazione del file changes mentre infine l’ultima indica l’avvenuta costruzione di un pacchetto completo di sorgente originale, cambiamenti, differenze.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
22

Debianizzare un programma Python #16

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#16 Configurazione della directory debian (file pyversions)

Tutti i files indicati in precedenza dovranno essere compilati nella maniera corretta per consentire la creazione del file deb, li analizzeremo uno per volta.

pyversions
Questo file viene usato da python-support per indicare la compatibilità di Python con l’applicazione.

Sostituisce la specifica XS-Python-Versions usata da python-central. Qualora il file pyversions non esistesse, python-support userà la specifica XS-Python-Versions.

Il file pyversions segue questa sintassi:

  • X-Y indica tutte le versioni comprese tra X e Y (compresi)
    Ad esempio 2.4-2.6 sarà compatibile con Python 2.4, 2.5 e 2.6, non sarà compatibile con Python 2.7
  • X- indica la compatibilità minima con versione indicata e tutte le versioni successive
    Ad esempio 2-5- indica la compatibilità con Python 2.5 e tutte le versioni successive
  • -X indica la compatibilità massima con la versione indicata e tutte le versioni precedenti
    Ad esempio -2.4 indica la compatibilità fino alla versione di Python 2.4
  • X,Y,Z indica la compatibilità con le versioni indicate e nessun’altra
    Ad esempio 2.4,2.5,2.6 indica la compatibilità con le sole versioni 2.4, 2.5 e 2.6. Il programma non sarà compatibile né con Python 2.3 né con Python 2.7 e successive.

Questo progetto è compatibile con Python 2.4 e successivi per cui il file pyversions conterrà:

2.4-

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
21

Debianizzare un programma Python #15

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#15 Configurazione della directory debian (file pycompat)

Tutti i files indicati in precedenza dovranno essere compilati nella maniera corretta per consentire la creazione del file deb, li analizzeremo uno per volta.

pycompat
Il file pycompat indica il livello di compatibilità di dh_python usato da python-central per la ricompilazione dei moduli python.

Considerato che python-central man mano verrà sostituito da python-support, in linea generale questo file non è più necessario se si utilizza python-support.

Tuttavia la transizione da python-central a python-support non è ancora definitiva e talvolta diventa necessario ripiegare su python-central, per questo motivo il file pycompat viene ancora compilato, anche se esso non è effettivamente usato.

C’è una discussione aperta sul bug di cdbs che comunque ricreerà il file anche se esso verrà omesso ed il workaround consiste nell’eliminare il file pycompat con una regola inserita nel file rules come spiegato nel commento #20.

Attualmente l’ultima versione è la 2 per cui il file conterrà soltanto:

2

Archiviato in:Dai forum, Debian, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
20

Debianizzare un programma Python #14

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#14 Configurazione della directory debian (file watch)

Tutti i files indicati in precedenza dovranno essere compilati nella maniera corretta per consentire la creazione del file deb, li analizzeremo uno per volta.

watch
Il file watch non è obbligatorio ma fortemente raccomandato in quanto è utilizzato da uscan e da altri sistemi Debian per rilevare quando sono disponibili nuove versioni del pacchetto di origine.

Si tratta di un file contenente espressioni regolari (regex) per la ricerca online dei pacchetti originali (upstream) contenenti le nuove versioni dell’applicazione, in modo da notificare la presenza di una nuova versione dell’applicazione.

La sua sintassi è abbastanza articolata, per una migliore descrizione si rimanda alla manpage di uscan.
In linea generale contiene una prima riga con la versione da utilizzare (attualmente 3) e la seconda riga contiene la regex che indica dove si trovano i pacchetti sorgente originali dell’applicazione.

Se i files sono direttamente accessibili (ad esempio in una directory via ftp) è possibile indicare l’indirizzo direttamente con:

http://URL/PACCHETTO_(.*)_all.tar.gz

Qualora i files non fossero direttamente accessibili ma fosse necessario accedere prima a una pagina web e recuperare i links da lì è possibile indicare prima la pagina da aprire e poi la regex da usare per la ricerca degli indirizzi nella pagina con:

http://URL/pagina http://URL/PACCHETTO_(.*)_all.tar.gz

Naturalmente la regex da utilizzare dipende da come sono forniti i pacchetti di origine. Una riga eccessivamente lunga può essere interrotta andando a capo col simbolo .

Nel mio caso i pacchetti si trovano ospitati su Google Code e l’elenco dei download è accessibile mediante la pagina http://code.google.com/p/gespeaker/downloads/list che conterrà al suo interno i links ai singoli files col nome gespeaker_VERSIONE_all.tar.gz.

Per questo scopo il mio watch file sarà il seguente:

# watch control file for uscan
version=3

http://code.google.com/p/gespeaker/downloads/list

http://gespeaker.googlecode.com/files/gespeaker_(.*)_all.tar.gz

Ricordare che il punto ha un significato preciso nelle regex e se si vuol indicare il punto nell’indirizzo è necessario precederlo da (così .)

Aggiornamento: Google Code ha aggiornato il suo sito, alterando anche i collegamenti ai files. Il nuovo file watch sarà il seguente:

# watch control file for uscan
version=3
opts=downloadurlmangle=s#.*(gespeaker-([d.]+).tar.gz).*#

http://gespeaker.googlecode.com/files/$1#,

filenamemangle=s#.*(gespeaker_([d.]+)_all.tar.gz).*#$1# 

http://code.google.com/p/gespeaker/downloads/list

 ^.*detail?name=gespeaker_([d.]+)_all.tar.gz.*

E’ disponibile anche un nuovo servizio Debian: http://googlecode.debian.net:

# watch control file for uscan
version=3

http://googlecode.debian.net/p/gespeaker

 /p/gespeaker/gespeaker_(.*)_all.tar.gz

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
19

Debianizzare un programma Python #13

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#13 Configurazione della directory debian (file compat)

Tutti i files indicati in precedenza dovranno essere compilati nella maniera corretta per consentire la creazione del file deb, li analizzeremo uno per volta.

compat
Il file compat indica il livello di compatibilità con debhelper e dovrà contenere sempre l’ultima versione disponibile di debhelper.
Attualmente l’ultima versione è la 7 per cui il file conterrà soltanto:

7

Archiviato in:Dai forum, Debian, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
18

Debianizzare un programma Python #12

 

Questa guida a puntate riporterà i passaggi necessari dalla pacchettizzazione fino all’inclusione ufficiale di un software scritto in Python (Gespeaker) su Debian e più avanti su Ubuntu. Ogni giorno per circa un mese sarà descritto un passaggio da seguire per poter debianizzare così un proprio software.

#12 Configurazione della directory debian (file rules)

Tutti i files indicati in precedenza dovranno essere compilati nella maniera corretta per consentire la creazione del file deb, li analizzeremo uno per volta.

rules
Il file rules definisce le azioni da eseguire nella compilazione del nostro pacchetto, generalmente dovrebbe contenere tutti i comandi eseguiti fino a generare il pacchetto desiderato.

Avendo invece deciso di usare cdbs con debhelper durante il dh_make e distutils per il setup.py, gran parte delle azioni sono comandate da questo, basterà aggiungere i riferimenti a debhelper e a python-distutils.

Questo è il contenuto del file rules:

#!/usr/bin/make -f

DEB_PYTHON_SYSTEM=pysupport

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/python-distutils.mk

DEB_PYTHON_INSTALL_ARGS_ALL += --install-lib=/usr/share/gespeaker

clean::
        rm -rf build/

Rispetto l’originale è stato aggiunta la seconda riga che indica di utilizzare il sistema python-support (pysupport) per la compilazione dei moduli python, esso si preoccuperà totalmente della compilazione dei moduli in base alla versione di python installata.

E’ stata sostituito il riferimento al file makefile.mk con python-distutils.mk che richiamerà il nostro setup.py per eseguire le operazioni di installazione come la compilazione dei files della lingua.

La riga successiva definisce dove installare il pacchetto, ovvero su /usr/share/gespeaker.

In fondo è stata infine aggiunta una regola clean corrispondente alla pulizia, essa viene eseguita ogni volta che si ricompila il pacchetto. Ciò assicura di trovarsi sempre files nuovi e non vengano riutilizzati files precedenti.

Importante: ciascun comando per quella regola dovrà essere rientrato da una tabulazione, non da spazi.

Archiviato in:Dai forum, Debian, Debianizzazione, Gnome, Guide, Linux, LQH, Pacchetti, Ubuntu Tagged: deb, mentors, package, python

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

top