Linee guida per la conformità e il packaging di MeeGo
Sintesi della procedura
Questi sono in breve i passaggi da seguire.
- Introduzione
- Conformità 3.1.1 - Denominazione
- Conformità 3.1.2 - Dipendenze
- Conformità 3.1.3 - Integrazione con l'RPM
- Conformità 3.1.4 - Layout del file system
- Conformità 3.1.5 - Integrazione del desktop
- Conformità 3.2.1 - File eseguibili dell'applicazione conformi
- Conformità 3.2.2 - Uso di set di istruzioni dipendenti dall'applicazione
- Conclusioni
Introduzione
Prima di iniziare con quest'articolo, si consiglia di leggere la pagina sulla qualità e la conformità MeeGo. In questa sezione sono descritti dettagliatamente gli standard di conformità per le applicazioni e i dispositivi. Descrive inoltre come installare gli strumenti di conformità che servono per testare le applicazioni prima di inviarle allo store Intel AppUp.
Quest'articolo descrive la procedura di creazione di un pacchetto RPM che sia conforme con MeeGo e pronto per l'invio allo store Intel AppUp.
Qui di seguito sono riportati i punti salienti della conformità. Per maggiori informazioni occorre consultare il documento effettivo che regola la conformità.
Specifica di conformità 3.1.1 - Denominazione
Il nome del pacchetto di un'applicazione deve iniziare con il nome di dominio completo di uno dei proprietari in minuscolo e in ordine inverso e terminare con il nome dell'applicazione (ad esempio, com.nomeazienda.nomeapp).
Questo requisito consente di evitare conflitti nei nomi delle applicazioni e assicura che ciascun utente che invia un'applicazione allo store Intel AppUp abbia un nome riconoscibile e commercializzabile per il file di installazione.
Specifica di conformità 3.1.2 - Dipendenze
Nei pacchetti di un'applicazione DEVONO essere inclusi, usando l'opzione “require” dell'RPM, tutti i componenti di sistema necessari per eseguire l'applicazione. Le dipendenze opzionali POSSONO essere omesse se, così facendo, non si compromette la capacità dell'applicazione di operare in modo intuitivo per l'utente, in altre parole l'omissione della dipendenza non deve ad esempio permettere di installare l'applicazione senza problemi, ma poi creare problemi di funzionalità. I pacchetti dell'applicazione NON POSSONO dipendere da funzionalità esterne a questa specifica, perché ciò impedirebbe l'installazione dell'applicazione.
Le dipendenze da componenti del sistema sono consentite in termini del nome del pacchetto o in termini di funzioni.
Il pacchetto RPM consente a chi lo crea di specificare altri pacchetti RPM come dipendenze per l'installazione. Questo requisito dichiara semplicemente che se l'applicazione per poter funzionare ha bisogno che siano installati altri pacchetti, allora bisogna richiederli. La penultima frase è molto importante. Vediamola di nuovo.
I pacchetti dell'applicazione NON POSSONO dipendere da funzionalità esterne a questa specifica (vale da dire le specifiche di conformità), perché ciò impedirebbe l'installazione dell'applicazione.
Questo significa che, se esistono dipendenze per l'installazione, è necessario sapere se fanno o meno parte dei pacchetti definiti dalle specifiche di conformità MeeGo. Se fanno parte delle specifiche, significa che saranno presenti in qualsiasi dispositivo conforme con MeeGo e li si può semplicemente richiedere nell'RPM. Se un pacchetto di terze parti che è necessario all'applicazione non è definito nelle specifiche di conformità, allora bisogna integrarlo. Questo significa anche che alle applicazioni conformi con MeeGo non è consentito l'uso di archivi di terze parti. Invece di usare gli archivi di terze parti, scaricare le librerie e integrarle nell'RPM.
Specifica di conformità 3.1.3 - Integrazione con l'RPM
Il pacchetto dell'applicazione deve essere creato in modo che il sistema di gestione dei pacchetti sappia quali file sono installati. Le query relative ai pacchetti installati devono funzionare come previsto usando gli strumenti standard per la gestione dei pacchetti.
I pacchetti che installano tutti i file con uno script di post-installazione non sono conformi. L'applicazione deve disinstallarsi in modo corretto, lasciando il sistema nello stato in cui si trovava prima dell'installazione (ad eccezione degli eventuali file o configurazioni creati dall'utente).
Ciò significa semplicemente che l'installazione e la disinstallazione devono essere eseguite in base alle modalità consuete degli RPM e che, quando si esegue la disinstallazione, tutto ciò che è stato installato deve essere rimosso.
Ecco alcuni esempi di come l'RPM dovrebbe utilizzare i file di installazione.
Esempi:
- Trovare il pacchetto a cui appartiene il file: $ rpm –q –-file nomefile
- Elencare tutti i file installati nel pacchetto: $ rpm –ql nomepacchetto
Specifica di conformità 3.1.4 - Layout del file system
L'applicazione deve essere installata nella directory /opt/nomepacchetto/ e, all'occorrenza, nelle directory /etc/opt/nomepacchetto/ e /var/opt/nomepacchetto/. Per funzionare correttamente, i file di configurazione di tutto il sistema devono essere inseriti nella directory /etc/opt/nomepacchetto. I dati variabili di un pacchetto, come i file di blocco, i file nella cache e così via, devono essere inseriti nella directory /var/opt/nomepacchetto e non direttamente in /var, a meno che l'applicazione o il sistema, per funzionare correttamente, non richieda che siano inseriti in una posizione specifica. I file specifici dell'utente devono essere inseriti nella directory ~/.config/nomepacchetto. La logica sottostante a queste regole è evitare che i nomi dei file dei pacchetti siano in conflitto all'interno dei pacchetti delle applicazioni e con i file di sistema, e ciò è realizzato con la definizione di porzioni del file system che siano sicuramente univoche dell'applicazione.
Questi requisiti stabiliscono semplicemente che i file binari, i file di configurazione del sistema, i file come i file di blocco e i file nella cache, e i file specifici dell'utente abbiano tutti delle directory proprie.
Specifica di conformità 3.1.5 - Integrazione del desktop
Un file .desktop deve essere installato in /usr/share/applications e deve contenere i valori per almeno i campi seguenti: Name, Comment, [Exec o Link], Icon, Type e Categories. Il file di immagine specificato nel campo Icon del file .desktop deve avere il formato SVG o PNG. Nel caso del formato PNG, devono essere fornite le seguenti dimensioni: 16x16, 32x32, 64x64 e 128x128.
La prima parte del requisito dichiara che è obbligatorio creare un file .desktop per l'applicazione. Il file .desktop contiene le informazioni su come l'applicazione deve essere avviata, come il nome dell'applicazione, le variabili d'ambiente, la posizione delle icone e altro. La Specifica Desktop Entry è mantenuta da freedesktop.org.
Ecco un esempio di file .desktop, in questo caso un file .desktop per l'applicazione MeeGo-help:
[Desktop Entry]
Version=1.0
Name=MeeGo Help
Comment=Applicazione della Guida di MeeGo
Type=Application
Icon=moblin-logo-icon
Terminal=false
Exec=MeeGo-help
Categories=Utility;
La seconda parte del requisito definisce le dimensioni delle icone che devono essere fornite con l'applicazione.
Specifica di conformità 3.2.1 - File eseguibili dell'applicazione conformi
Tutti i file eseguibili binari e le librerie condivise conformi con MeeGo devono avere il formato ELF, come descritto nella sezione 2.4.1. Possono importare interfacce esterne solo dalle seguenti origini:
- librerie condivise fornite insieme al pacchetto dell'applicazione
- librerie condivise MeeGo di base, se l'interfaccia fa parte delle interfacce pubbliche della libreria
Gli eseguibili potrebbero inoltre usare interfacce pubbliche da librerie condivise specifiche del profilo MeeGo e, in questo caso, l'applicazione sarà conforme solo con quel profilo.
Se l'eseguibile è un plug-in per un componente del sistema MeeGo potrebbe importare interfacce da un eseguibile del componente del sistema e da librerie condivise caricate in quanto facenti parte di quell'eseguibile.
Questa specifica enfatizza ulteriormente il concetto che un'applicazione compatibile con MeeGo può collegarsi solo con librerie condivise MeeGo di base. Questo perché tali librerie sono già installate su ogni dispositivo compatibile con MeeGo.
La dichiarazione che gli eseguibili devono essere in formato ELF si riferisce solo ai file binari dell'applicazione. I linguaggi di scripting come Python, Perl, Ruby e così via, sono certamente accettabili.
I profili MeeGo, talvolta chiamati "Verticals", sono una combinazione dei pacchetti di installazione MeeGo di base e dei pacchetti di installazione di un profilo particolare. Attualmente i profili sono MeeGo Netbook, MeeGo Tablet, MeeGo IVI (per l'intrattenimento per veicoli) e MeeGo Handset. Se ad esempio un'applicazione usa delle API che sono fornite dal profilo MeeGo Tablet, allora l'applicazione sarà compatibile con i tablet e non con gli altri profili.
L'ultima frase della sezione 3.2.1 indica che se un'applicazione è compilata usando dei componenti, allora il collegamento a tali componenti è consentito dalle linee guida per la conformità MeeGo.
Specifica di conformità 3.2.2 - Uso di set di istruzioni dipendenti dall'applicazione
Il file binario o la libreria condivisa di un'applicazione PUÒ usare le estensioni dell'architettura della CPU e funzioni specifiche dell'implementazione durante la creazione dei file binari. Se questo tipo di utilizzo dovesse limitare la portabilità dell'applicazione, l'applicazione deve di conseguenza identificare chiaramente i limiti imposti e gli archivi/store devono essere in grado di riconoscere ed escludere i dispositivi che non sono applicabili. Il meccanismo per farlo non è specificato.
Se si usano set di istruzioni specifiche della CPU, allora è necessario dichiarare le restrizioni dell'applicazione.
Conclusioni
In questo articolo abbiamo osservato più da vicino le linee guida per la conformità MeeGo per le applicazioni e cercato di chiarire alcuni aspetti. Per ulteriori domande sulle linee guida per la conformità, consultare le seguenti risorse.
- La pagina Wiki sulla qualità e la conformità MeeGo
- Una sessione del seminario sulla conformità MeeGo nel 2010
- I forum di MeeGo
Vi sono ulteriori raccomandazioni in merito alla gestione dell'alimentazione degli ultimi dispositivi tablet MeeGo. Per maggiori informazioni sulla gestione dell'alimentazione e sulle modifiche da apportare al file .desktop per conformarsi con questa raccomandazione, fare riferimento ai link riportati qui di seguito.
Domande ricorrenti sulla gestione dell'alimentazione
Gestione dell'alimentazione - voce file desktop