Compilare un programma in Linux

Posted on Oct 7, 2021

In questo articolo descrivo l’esperienza di compilare un programma partendo dai sorgenti su Linux, in particolare su Ubuntu.

L’articolo ha due scopi:

  1. documentare i passaggi per la compilazione e installazione del player musicale Pragha,
  2. documentare più in generale la compilazione di un programma su Linux.

Pragha

Pragha è un player musicale per ambienti GTK+3 sviluppato in C. Il suo obiettivo è la leggerezza e la minimalità dell’interfaccia. L’applicazione è sviluppata e gestita dal suo creatore.

L’ho scoperta per puro caso mentre ero alla ricerca di un’alternativa più leggera a Rhythmbox. Utilizzo il player musicale solamente per ascoltare i file musicali presenti sul mio server DLNA casalingo. Pragha sembrava fare al caso mio grazie a un suo plugin ufficiale.

Ho già avuto problema con Rythmbox nel gestire musica proveniente da un server DLNA (maggiori dettagli qui) e trovare la soluzione è stata una lenta ricerca in rete, così ho pensato che un’alternativa più indipendente e non legata strettamente all’ambiente Gnome poteva fare più al caso mio.

Pragha è presente nei repository universe di Ubuntu 20.04 in una versione piuttosto aggiornata (la 1.3.4, quindi la penultima a disposizione), ma purtroppo senza plugin. Ho trovato un personal repository che metteva a disposizione l’ultima versione (la 1.3.99), ma non ho potuto provarla in quanto il gestore non ha più aggiornato i pacchetti dopo Ubuntu 18.10.

Così, per provarla, non mi è restata che la strada di installare l’applicazione direttamente dai sorgenti.

Come procedere

I seguenti passi di installazione si riferiscono a Ubuntu 20.04.

ATTEZIONE: ho utilizzato per l’installazione l’archivio messo a disposizione per la distribuzione dei sorgenti, quindi con all’interno già presenti lo script configure e il Makefile per la compilazione. Ho provato a partire dal sorgente presente sul master del repository e creare da me questi file necessari con autoreconf ma mi sono bloccatto nel processo per alcuni errori che non sono riuscito al momento a risolvere.

Installare i pacchetti di distribuzione che generalmente servono per compilare programmi su Ubuntu

sudo apt-get install build-essential intltool pkg-config

Scaricare la versione dei sorgenti disponibile dal repository Github del progetto.

wget https://github.com/pragha-music-player/pragha/releases/download/v1.3.99.1/pragha-1.3.99.1.tar.bz2

Scompattare l’archivio

tar xf pragha-1.3.99.1.tar.bz2

Installare alcune dipendenze necessarie per la compilazione del progetto

sudo apt-get install libgstreamer1.0-dev  libgtk-3-dev libtagc0-dev libsqlite3-dev 

Lanciare il comando ./configure per controllare di avere soddisfare i requisiti necessari all’installazione.

Una schermata del risultato del momento:

Screen pragha 1

Installare altre dipendenze opzionali (ma necessarie a raggiungere il mio obiettivo)

sudo apt-get install libpeas-dev  # necessario per utilizzare i plugins
sudo apt-get install libgrilo-0.3-dev # necessario per client e server DLNA
sudo apt-get install libgstreamer-plugins-base1.0-dev # controllo del volume migliorato

Schermata dopo aver lanciato nuovamente ./configure

Screen pragha 2

A questo punto lanciamo un’ultima volta il comando di configurazione con alcune opzioni utili. Ho deciso di abilitare il debug con l’opzione --enable-debug per vedere un po' di messaggi in più (visto che sono in fase di studio dell’applicazione) e d' installare l’applicazione in una cartella specifica con --prefix=PATH_FOLDER per facilitarne lo spostamento

il comando che ho utilizzato

./configure --enable-debug --prefix=/opt/pragha

Tempo di compilare ed installare applicazione

make
sudo make install

Proviamo ad eseguire l’applicazione

/opt/pragha/bin/pragha

Ecco l’applicazione in azione con la possibilità di leggere la musica da un server DLNA.

Screen pragha 3