The wikis are now using the new authentication system.
If you did not migrate your account yet, visit https://idp-portal-info.suse.com/

Java/Packaging/Overview


Panoramica sulla pacchettizzazione di Software Java

Qui è possibile trovare una panoramica dei passi da seguire per creare pacchetti software di applicazioni e librerie Java per openSUSE e le altre distribuzioni supportate dall'openSUSE Build Service.


Primo : Prepararsi

  • Trova un software che vuoi pacchettizzare! Se hai un progetto in mente o uno tuo da pacchettizzare, è perfetto! - Se stai cercando un progetto non ancora pacchettizzato, qui ci sono due idee per trovarlo:
    • visita la [en:Package_Wishlist Lista dei desideri dei Pacchetti (In Inglese)]
    • Vai nei siti di liste software come | OpenDesktop.org, cerca un programma che ti interessi, e vedi se è già stato pacchettizzato cercando su openSUSE Software Search. Se la ricerca non da risultati, puoi procedere!
  • Aggiungi i repository per i quali vuoi pacchettizzare il programma. Un buon punto di partenza è la versione corrente di openSUSE (e.g. openSUSE_11.2 ). Lascieremo la creazione di pacchetti cross-platform per una guida più avanzata.
  • Aggiungi un pacchetto nel Build Service per il software che vuoi pacchettizzare.
    • 'Name' è per il nome del pacchetto, e.g. "ultimatesoftware" (che produrrà il pacchetto "ultimatesoftware-VERSIONE-RILASCIO.ARCHITETTURA.rpm"
    • 'Title' è la descrizione corta visibile dalla lista pacchetti di YaST.
    • 'Description' è la descrizione lunga visibile separatamente.
    • Metti il tick nella casella 'Create RPM SPEC file template' per avere il file template SPEC, che potrai usare come punto di partenza in seguito.

Ottenere i file sorgenti e le patch

  • Scarica i codici sorgenti e cerca come compilare il programma da linea di comando. La maggior parte dei progetti Java usano ant come strumento di costruzione (e.g. i progetti creati con NetBeans IDE automaticamente vengono distribuiti con i file di configurazione di ant)
  • Aggiungi il tarball (pacchetto compresso) dei codici sorgenti usando [add file]. L'archivio può essere inviato dal computer locale o direttamente dalla pagina web tramite un indirizzo URI.

Lavorare sullo Specfile

Un file di template spec è già stato creato per te e aggiunto come <packagename>.spec al tuo progetto. Se già è presente un file spec, puoi usarlo semplicemente aggiungendolo ai file del progetto.

Pacchettizzazione

E' consigliabile fare prima una prova locale per vedere se tutto funziona correttamente. Puoi anche ottenere un feedback immediato se la costruzione fallisce (che di solito capita le prime volte). Una volta che il pacchetto è stato costruito localmente, puoi aggiornare il tuo progetto nella tua cartella con tutti i cambiamenti.

  • Costruzione Locale
osc build openSUSE_11.2 ARCH <packagename>.spec

una volta che è corretto, invia i cambiamenti alla cartella del tuo progetto con

osc commit

quindi vai nel sito web e marca i pacchetti per la ricostruzione. Ci sarà il feedback nella cartella del pacchetto se andrà bene.

Sun Java

Sun Java non è disponibile nei repository standard, quindi devi aggiungerlo in quello NonFree, che contiene il Sun JDK. Semplicemente scrivi

osc meta prj [your project] -e

e aggiungi il repository

<repository name="openSUSE_11.2">
    <path project="openSUSE:11.2" repository="standard"/>
    <!-- the NonFree repository -->
    <path project="openSUSE:11.2:NonFree" repository="standard"/>
...

Requisiti

  • java-devel - un'abbreviazione preferita. Nel Build Service questa abbreviazione viene di solito espansa in java-1_6_0-openjdk-devel, che è basata sui codici sorgenti java-1_6_0-sun-devel. Per le versioni più vecchie questa abbreviazione viene espansa come l'implementazione opensource di Java (ovvero il GCJ), che spesso richiede degli aggiustamenti del codice per funzionare correttamente.
  • java-1_6_0-sun-devel - un'esplicita richiesta del Sun JDK. Questa opzione produce meno errori perchè la maggioranza dei programmatori Java usa il JDK. Questa opzione ha bisogno dell'aggiunta del repository NonFree (vedi sopra)
  • java-1_6_0-openjdk - l'implementazione "OpenJDK Java" è disponibile per le versioni dalla 11.0 in poi; questa è la versione sotto licenza GNU GPL di Java della Sun.
  • java-1_7_0-icedtea - l'implementazione "IcedTea Java" è disponibile per le versioni 11.x.

Costruiamolo

Ora usiamo lo strumento da linea di comando osc per fare una build locale e correggere eventuali errori. Per fare più velocemente usare il parametro --noinit.

osc build openSUSE_11.1 x86_64 columba.spec

Una volta che il pacchetto è stato costruito, lo inviamo al Build Service con

osc commit

Link Utili

openSUSE Java Packaging Cookbook

Linee guida sulla pacchettizzazione per openSUSE

Macro RPM per i pacchetti Java