Aiutanti di un pacchetto

Esistono degli insiemi di script che vengono utilizzati per creare i pacchetti di Trisquel. Si trovano in http://bzr.trisquel.info/package-helpers/ , e noi li chiamiamo aiutanti (o helpers). Li usiamo per modificare e compilare quei pacchetti che vengono in upstream da Ubuntu che ne hanno bisogno. Può rendersi necessario perché essi contengono materiale non libero, riferimenti a Ubuntu che devono essere cambiati, o perché vogliamo che quel pacchetto funzioni a modo nostro.

Questi aiutanti sono simili a quelli nel builder di gNewSense; da essi abbiamo preso qualche idea e anche qualche riga di codice. Se state pianificando di creare la vostra derivata di Ubuntu personalizzata, vi suggeriamo di usare il builder e non gli questi aiutanti.

Tutti i pacchetti in questa lista sono nell'appropriata blacklist nell'updater del repository, quindi non entrano mai nel repository dall'upstream ma hanno bisogno di essere compilati con questi aiutanti per poi essere inseriti tramite reprepro.

Questi aiutanti hanno anche bisogni di essere eseguiti a mano (e i risultati di essere testati) ogni volta che il watchdog del repository avverte riguardo qualche aggiornamento pendente dall'upstream.

Per aggiungere un pacchetto alla lista, copiatene semplicemente uno (make-apache2 è un buon esempio per provare) e rinominatelo in make-nomedelpacchettodelcodicesorgente. Per mandarci indietro il file, o per includere qualche modifica negli script attuali, usate "bzr diff" e mandate l'output come allegato a trisquel-devel@listas.trisquel.info. Per mandare messaggi a questo indirizzo avrete bisogno di iscrivervi alla mailing list.

Alcune raccomandazioni

  • Fate attenzione a utilizzare il giusto nomedelpacchettodelcodicesorgente, molti pacchetti con il codice sorgente producono vari pacchetti binari. "apt-cache showsrc binary-package" può aiutarvi.
  • Se possibile, utilizzate sed per sostituire le catene nel sorgente in upstream senza bisogno di file esterni o di patch. Se avete proprio bisogno di includere un file, posizionatelo nella directory DATA/sourcePackageName
  • Non sostituite *tutti* i riferimenti a Ubuntu nel pacchetto, solo quelli che verrebbero effettivamente mostrati all'utente. Evitate di sostituite le dichiarazioni del copyright!
  • Provate a scrivere le vostre modifiche in maniera che possano funzionare nelle versioni future del pacchetto in upstream. Dei regexps e sed ben scritti vi aiuteranno in questo.

Compilare pacchetti con gli aiutanti

Per prima cosa, procuratevi una copia degli aiutanti e degli script di gestione usando bazaar:

bzr branch http://bzr.trisquel.info/package-helpers/trunk
e installate il gestore di repository reprepro:
sudo apt-get install reprepro
Dopodiché, per compilare un pacchetto, procedete come in questo esempio:
sudo sh makepackage linux lucid
Lo script makepackage creerà e configurerà le jail per la compilazione, oltre al repository di output.

N.B.: Dovreste eseguire tutto questo su un computer a 64 bit, altrimenti potetrete compilare soltanto pacchetti per architetture a 32 bit (dopo aver modificato makepackage per rimuovere i passaggi relativi ai pacchetti amd64).

Scrivere nuovi aiutanti

= Lista delle variabili disponivili all'interno degli script aiutanti

  • CODENAME=dagda
    • Il nome in codice della relase di Trisquel corrente
  • REVISION=5.0
    • Il numero di versione per la release corrente di Trisquel
  • UPSTREAM=natty
    • Il nome in codice per la release in upstream
  • EXTERNAL="deb-src http://sample.repo.foo/ current main"
    • Rende i codici sorgenti in quel repository disponibili per la compilazione
    • Sarà usato solo se Ubuntu non fornisce il pacchetto e se la sua versione è inferiore
  • $DATA/
    • Directory contenente file per l'aiutante
    • Put the files in helpers/$RELEASE/DATA/$PACKAGE
    • Usage example: cp $DATA/file.txt debian/patches
  • VERSION=1
    • Versione di Trisquel da apporre (come in 2.4-1ubuntu4+5.0trisquel1)
    • Noi apponiamo "+5.0trisquel1", che sarebbe +${REVISION}trisquel${VERSION}
    • È da aumentare ogni qualvolta l'aiutante è aggiornato
  • COMPONENT=main
    • Indica al sistema di compilazione che il pacchetto viene da main, quindi le traduzioni dovrebbero essere scartate
    • Usatelo solo quando cambiare i loghi e i marchi non coinvolge anche i pacchetti i pacchetti in locale!
  • FAKEROOT=true
  • Indica al sistema di compilazione di usare un ambiente di root fittizio e di compilare come utente "nobody"
  • PARALLEL=true
    • Non compilare con -j$NUM_PROCESSORS, è richiesto da alcuni pacchetti come samba

Revisioni

03/01/2012 - 01:01
fabio
03/01/2012 - 10:45
Matsetes