jump to navigation

Compilare Solang su Ubuntu

In Facili, o quasi :), Guide il 17/06/09 @ 23:34 trackback

SolangAggiornata al 04/07/09.

Solang è un nuovo gestore di fotografie per GNOME che nasce con l’intento percepito – più o meno esplicito – di fornire un’alternativa a G-Spot ahem… F-Spot.

Ieri avevo segnalato che era impossibile compilare la prima versione appena uscita su Ubuntu Jaunty, per problemi di compatibilità con la versione di libexiv. Pare che le cose cambieranno per la versione 0.2, anzi se scarichiamo i sorci vivi direttamente da git la compilazione va a buon fine già adesso, come fa notare david (grazie!). So che già vi prudono le mani: pur essendo un progetto giovanissimo e ancora incompleto, armiamoci di shell e via a compilare.

Requisiti

Bisogna ovviamente installare un po’ di dipendenze di compilazione. Dovrebbe bastare questo comando per soddisfarle tutte, fatemi sapere se manca qualcosa anche perché man mano che l’app cresce aumentano le funzionalità e anche le dipendenze su nuove librerie (grazie barra!):

$: sudo apt-get install build-essential checkinstall libcairomm-1.0-dev 
libexiv2-dev libgdamm3.0-dev libgda3-sqlite libgdl-1-dev libglade2-dev 
libgphoto2-dev libgtkimageview-dev libgtkmm-2.4-dev libmagick++-dev 
libflickcurl-dev libsoup2.4-dev libwebkit-dev libcurl4-openssl-dev

Ovviamente nessuno vi vieta di installare questi pacchetti da comoda interfaccia grafica. Una volta completata questa operazione, passiamo a compilare.

Compilare e installare

Ecco i comandi per scaricare, compilare e installare Solang:

$: git clone git://git.sv.gnu.org/solang.git
$: mv solang solang-0.1+git
$: cd solang-0.1+git
$: ./autogen.sh  --prefix=/usr/ --sysconfdir=/etc/
$: make
$: sudo checkinstall

Questo creerà un finto pacchetto deb che potrete rimuovere in qualsiasi momento senza lasciare tracce sparse. Certo, se volete essere proprio più precisini ci sarebbe l’opzione di creare un vero pacchetto debian, per quello basta seguire la mia sempre-valida “Compilare con Ubuntu: 4) Creare pacchetti Debian con dh_make“, oppure aspettare che il torrenziale Dktrkrantz sforni puntuale un pacchetto di ottima qualità per Debian/Ubuntu ;)

Gioire ma non troppo (ancora)

Per essere una versione 0.1 e cocci c’è abbastanza da gioire… funzionano essenzialmente l’importazione, la navigazione e la visualizzazione delle foto (ma va?). Per avviarlo bisogna digitare il comando “solang” in un terminale, in quanto il piccolino non ha ancora messo i dent il file .desktop.

Solang - Pollycoke :)


Non va ancora l’etichettatura ma il lavoro in quella direzione sembra già sulla buona strada. Per il resto l’interfaccia, complici anche le pochissime funzioni, è estremamente sensata e giusta. È possibile visualizzare le immagini in senso cronologio, per etichette o una per una per intero, of course:

Solang - Pollycoke :)

Molto interessante per un giro di ricognizione, insomma. Sicuramente una volta installato vi verrà la voglia di seguirne lo sviluppo e dare ogni tanto un:

$: git pull

Per controllare che aggiornamenti ci sono. Non aspettatevi dunque di essere in grado di sostituire il vostro Gthumb o men che meno il vostro Picasa con Solang. Non ancora ;)

Disinstallare

Se per qualsiasi motivo voleste disinstallare Solang e tutte le dipendenze installate per compilarlo, basterà un solo comando:

$: sudo apt-get --purge remove solang libcairomm-1.0-dev libexiv2-dev exiv2 
libexiv2-5 libgdamm3.0-dev libgda3-3 libgda3-bin libgda3-common libgda3-dev 
libgdamm3.0-10  libglibmm-2.4-dev libsigc++-2.0-dev libxslt1-dev libgda3-sqlite 
libgdl-1-dev libgdl-1-0 libgdl-1-common libglade2-dev libgphoto2-dev libexif-dev 
libgphoto2-2-dev libusb-dev libgtkimageview-dev libgtkimageview0 libgtkmm-2.4-dev 
libpangomm-1.4-dev  libmagick++-dev libbz2-dev libdjvulibre-dev libgraphviz-dev 
libilmbase-dev libjasper-dev  liblcms1-dev libmagick++-dev libmagick++1 
libmagickcore-dev libmagickwand-dev libopenexr-dev libtiff4-dev libtiffxx0c2 
libwmf-dev libxt-dev libflickcurl-dev libsoup2.4-dev libwebkit-dev libcurl4-openssl-dev 
comerr-dev libcurl4-openssl-dev libidn11-dev libkadm55 libkrb5-dev libldap2-dev libssl-dev

Io però non ho alcuna intenzione di disinstallarlo e semmai continuerò ad aggiornarlo e a seguirne gli sviluppi.

Pagine forse correlate:

Etichette: , ,

Commenti »

1. Stefano Bandini - 17/06/09 @ 22:56

correggete il primo comando con: build-essential

2. felipe - 17/06/09 @ 22:58

oops corretto io, grazie ;)

3. Stefano Bandini - 17/06/09 @ 23:03

figurati, it's a pleasure.

4. Alessandro Bruni - 17/06/09 @ 23:19

Perchè si ostinano a scrivere software in c++ quando c'è vala? con una sintassi simile a c#, col garbage collector ma senza la maledetta virtual machine; compila in codice nativo c compatibile con gnome senza wrapper (gtkmm).

Per attrarre sviluppatori dovrebbero promuovere quello a mio avviso, soprattutto per prenderli dal bacino dei seguaci di mono.

5. smaramba - 17/06/09 @ 23:47

dovrebbe chi? perché non cominci tu?
e poi ognuno programmi nel linguaggio che gli pare.

6. Ottaviano - 18/06/09 @ 0:00

Uuh così tanto per dirne una, la “tecnologia” del garbage collector non dipende da una virtual machine (o viceversa), quindi be careful =)

E ad ogni modo come smaramba ha detto (un nome più complicato, no? :P) ognuno programma con quel cappero che gli pare.

7. bLax - 18/06/09 @ 1:48

magari fosse un altrenativa al g-spot hehehe :)

8. ice - 18/06/09 @ 3:15

…aspetto che ci sia un motivo valido…

9. elias - 18/06/09 @ 7:48

w il g-spot!!

10. aytin - 18/06/09 @ 7:49

Grazie Felipe, lo provo subito su una macchina virtuale e stasera sul piccoletto a casa :)

11. Vito Fasano - 18/06/09 @ 7:57

grazie felipe…..
potresti aggiungere quali comandi servono oltre a “git pull” per aggiornarlo?
grazie

12. Davide Capodaglio - 18/06/09 @ 8:01

Ma qual è lo stato degli IDE per programmare con Vala?
Parlando di feature per essere veramente produttivi, quali autocompletamento, debugger integrato, ecc

13. VP - 18/06/09 @ 8:08

Vala mi sembra interessante, qualcuno mi da qualche info?

14. Maramax - 18/06/09 @ 9:14

Installato e provato.

Conclusioni: al momento Solang è 1000 volte meglio di Solange (il sensitivo-pagliaccio) ma 1000 volte peggio di Solange (Knowles, cantante, modella, attrice e sorella della più famosa Beyocé).

15. canton - 18/06/09 @ 9:52

cioè, tu attacchi spudoratamente f-spot perchè scritto in c#( e non per le qualità in sè visto che è assolutamente un signor gestore di foto) e poi dici:
“Per controllare che aggiornamenti ci sono. Non aspettatevi dunque di essere in grado di sostituire il vostro Gthumb o men che meno il vostro Picasa con Solang. Non ancora ;)”
il vostro picasa? approvi picasa che è un software chiusissimo per attaccare f-spot che invece è SOFTWARE LIBERO?

16. Sergej - 18/06/09 @ 10:53

Non mi piace farel'avvocato difensore di felipe, ma mi piace ragionare con logica.
Quella frase vuole dire semplicemente che le funzioni di Solang non sono ancora all'altezza di altri programmi diffusi, come gthumb o picasa (o vogliamo fare finta che non esista?).
Dedurre da questo che si APPROVA picasa mi pare veramente un azzardo.
Sembra che quando si scrive qualcosa lo sport nazionale sia andare a vedere ogni minima cosa da cui possa scaturire una bella discussione (e, se mi permetti, ormai ridondante) discussione su cose di cui si è parlato mille volte…

17. felipe - 18/06/09 @ 11:13

Nessuno. basta git pull nella dir dei sorgenti :)

18. felipe - 18/06/09 @ 11:16

Come fa notare Sergej la tua deduzione è totalmente arbitraria. Rilancio:
https://pollycoke.net/2006/05/28/picasa-ottimo-a...
https://pollycoke.net/2006/05/26/picasa-per-linu...

19. aNoNiMo - 18/06/09 @ 11:29

sai che nulla vieta di usare un garbage collector in C++ vero?

20. DktrKranz - 18/06/09 @ 16:00

Pacchetti di preview per Karmic disponibili sul mio PPA:
http://ppa.launchpad.net/dktrkranz/ppa/ubuntu/p...

21. ildani - 18/06/09 @ 18:20

g-spot :D che caxxone… :P
quella dei denti m'è piaciuta di meno

22. Vito Fasano - 18/06/09 @ 19:54

e poi nn dovro' ricompilare?

23. Luca Vinci - 21/06/09 @ 17:24

certo, ma sarebbe stato inutile ripete i comandi già citati ;)

24. DktrKranz - 22/06/09 @ 16:47

Non più necessari, appena accettato in Karmic, i binari saranno disponibili nei mirror fra qualche ora. Nel frattempo, rimuovo i pacchetti dal PPA.

25. Alessandro Bruni - 25/06/09 @ 16:24

Dovrebbe la gnome foundation promuovere le proprie tecnologie! Io sarei più interessato a kde, quindi lascio a gnome quel che è di gnome.
Il mio commento voleva suggerire che la scelta del linguaggio e delle tecnologie da adottare per lo sviluppo di una piattaforma – poi per gli applicativi stand-alone ognuno può fare le sue scelte – deve essere abbastanza rigorosa: scegliere di dipendere da python+pygtk oltre che dalle gtk stesse è secondo me accettabile, ma portarsi dietro decine di bindings e linguaggi diversi diventa pesante sia dal lato della manutenibilità dell'ambiente sia dalla parte dell'esperienza dell'utente.
Dato che questo progetto è nato come alternativa ad un altro progetto proprio per il motivo che quest'ultimo necessita di mono mi sembra incoerente scrivere un programma in c++ e non con le “batterie incluse” in gnome. Se vuole in qualche modo competere con f-spot per l'ingresso nella distribuzione di gnome la scelta tecnologica è rilevante eccome!
Vala è un ottimo compromesso secondo me tra le “batterie incluse” (compila in c e crea classi e librerie compatibili con le glib2) l'esperienza lato utente (praticamente nessuna differenza percepita rispetto alle applicazioni c di gnome) ed il comfort nella programmazione.

26. Alessandro Bruni - 25/06/09 @ 16:29

Qui c'è una nota dolente per i puristi: la prima IDE con buon supporto per Vala è: MonoDevelop! :D
A parte tutto, credo che monodevelop sia un'ide molto valida e che quindi sia da tenere in seria considerazione.

27. Alessandro Bruni - 25/06/09 @ 16:41

Sì beh, un garbage collector non è altro che un thread che sfruttando tecniche di reference counting libera la memoria inutilizzata, detto a grandi linee. Nulla vieta di averlo in qualsiasi linguaggio di programmazione che permetta, direttamente o non, di avere i thread e reference counting.

La questione è un'altra: che se progetti come questi vogliono competere per l'inclusione in gnome, il loro punto di forza dev'essere la convenienza tecnologica rispetto a mono, oltre che un numero di features accettabile e una buona esperienza utente.

A livello tecnico le gtkmm sostituiscono il sistema di eventi di gnome (glib event loop) con libsigc++, perdendo così la compatibilità all'indietro, nel senso di riutilizzo di codice o di plug-in per altri progetti gnome che volessero rimanere in c; ad esempio non si potrebbe ottenere facilmente un'ipotetica integrazione con nautilus.
Vala invece ha delle ottime features e mantiene completa compatibilità con le glib2, che secondo me è il grande vantaggio rispetto a tutte le alternative per gnome.

My 2 cents

28. Solang Photo Manager for GNOME/Ubuntu | Kabatology ~ Open Source, Linux - 26/06/09 @ 14:55

[...] [PollyCoke] | Solang… Also Read Skype: Get Growl-like Notifications with Skype-Notify ScriptUbuntu [...]

29. calimero - 29/06/09 @ 13:31

a me da questo errore quando provo a dare ./autogen.sh –prefix=/usr/ –sysconfdir=/etc/

shift: 364: can't shift that many

30. Barra - 3/07/09 @ 8:50

Per installarlo ho dovuto mettere su anche queste dipendenze:

libflickcurl-dev
libsoup2.4-dev
libwebkit-dev

31. Sys - 3/07/09 @ 15:59

A me non da nessun errore durante la compilazione ma quando provo ad eseguirlo dice:

Implementation missing: database_constraints_update_list() in gda-dict-database.c line 1214
Error:photos: Riferimenti ad oggetti della query SELECT non descritti nel dizionario

** (solang:27136): WARNING **: SQlite SQL: SELECT FROM photos AS t1 ORDER BY mod_year, mod_month, mod_day, picture_taken_time (REMAIN:SELECT FROM photos AS t1 ORDER BY mod_year, mod_month, mod_day, picture_taken_time)

** (solang:27136): WARNING **: SQlite SQL: SELECT FROM photo_tags AS t1 (REMAIN:SELECT FROM photo_tags AS t1 )

** (solang:27136): WARNING **: SQlite SQL: SELECT FROM tags AS t1 (REMAIN:SELECT FROM tags AS t1 )

Lookin' for:tags

(solang:27136): Gtk-CRITICAL **: gtk_action_connect_proxy: assertion `GTK_IS_ACTIVATABLE (proxy)' failed

(solang:27136): Gtk-CRITICAL **: gtk_action_connect_proxy: assertion `GTK_IS_ACTIVATABLE (proxy)' failed

** (solang:27136): WARNING **: SQlite SQL: SELECT DISTINCT FROM photos AS t1, photo_tags AS t2 WHERE t2.photoid=t1.photoid ORDER BY mod_year, mod_month, mod_day, picture_taken_time (REMAIN:SELECT DISTINCT FROM photos AS t1, photo_tags AS t2 WHERE t2.photoid=t1.photoid ORDER BY mod_year, mod_month, mod_day, picture_taken_time)

(solang:27136): Gdl-CRITICAL **: gdl_dock_object_freeze: assertion `object != NULL' failed

(solang:27136): Gdl-CRITICAL **: gdl_dock_object_bind: assertion `object != NULL && master != NULL' failed

(solang:27136): Gtk-CRITICAL **: gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed

(solang:27136): Gtk-CRITICAL **: gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed

(solang:27136): Gtk-CRITICAL **: gtk_container_add: assertion `GTK_IS_WIDGET (widget)' failed

(solang:27136): Gtk-CRITICAL **: gtk_widget_show: assertion `GTK_IS_WIDGET (widget)' failed

(solang:27136): Gdl-CRITICAL **: gdl_dock_object_thaw: assertion `object != NULL' failed

(solang:27136): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'

(solang:27136): GLib-GObject-CRITICAL **: g_signal_handlers_destroy: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(solang:27136): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'

(solang:27136): GLib-GObject-CRITICAL **: g_signal_handlers_destroy: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
Segmentation fault

che tipo di problema c'è?

32. Sys - 4/07/09 @ 9:19

A nessuno compare questo errore?

33. elcamilo - 10/07/09 @ 14:44

oppure:

https://edge.launchpad.net/~warp10/+archive/ppa

34. Solang : New Linux User - Linux Tips – Information for Using Linux - 1/11/09 @ 5:53

[...] It looks interesting especially with the screenshots on this blog entry about compiling Solang in Ubuntu. [...]

35. Philippe - 3/02/10 @ 8:16

.deb quick !