Installare Pixeluvo su Ubuntu 22.04 e derivate (errore Auto configuration failed)

by pinguinipercaso on

Per chi non lo conoscesse, Pixeluvo è un programma di photoediting non FOSS (proprietario e a pagamento, con trial di 30 giorni), per il quale da anni non sono rilasciate nuove versioni. A dirla tutta, l’ultima versione è disponibile solo per sistemi Windows, anche se una precedente per Linux è ancora disponibile al download tramite link diretto. Perché quindi ne sto parlando? Innanzitutto perché anche se Pixeluvo a prima vista potrebbe sembrare datato, è ancora interessante perché è abbastanza intuitivo (a differenza di altri editor per Linux) e soprattutto “funziona bene” (per chi volesse approfondire consiglio questo video sul canale YouTube di Morrolinux). In secondo luogo ieri, dovendo reinstallarlo su Ubuntu 22.04 LTS, mi sono accorto di errori nell’avvio dell’applicazione. Una cosa non proprio bella, soprattutto per chi il software l’aveva acquistato con regolare licenza, ma che ci si può aspettare perché parliamo di un programma ormai vecchio di alcuni anni.
In circostanze come questa, però, non bisogna perdersi d’animo: spesso la soluzione si può trovare con un minimo di ricerca in rete. Di seguito vediamo come installare Pixeluvo su Ubuntu 22.04 e derivate con pochi semplici comandi di terminale.

Innanzitutto scarichiamolo dal sito e installiamolo:
wget http://www.pixeluvo.com/downloads/pixeluvo_1.6.0-2_amd64.deb
sudo dpkg -i pixeluvo_1.6.0-2_amd64.deb

Per sicurezza andiamo anche ad aggiungere eventuali dipendenze e librerie necessarie:
sudo apt -f install
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module

Se provassimo ora ad avviare il programma dal menu delle applicazioni non si aprirebbe la relativa finestra. Facendo la stessa operazione da terminale otterremmo un errore simile al seguente:

$ pixeluvo
Using Pixeluvo Shipped Qt Libraries
Auto configuration failed
140537429485504:error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library:dso_dlfcn.c:187:filename(libproviders.so): libproviders.so: cannot open shared object file: No such file or directory
140537429485504:error:25070067:DSO support routines:DSO_load:could not load the shared library:dso_lib.c:244:
140537429485504:error:0E07506E:configuration file routines:MODULE_LOAD_DSO:error loading dso:conf_mod.c:285:module=providers, path=providers
140537429485504:error:0E076071:configuration file routines:MODULE_RUN:unknown module name:conf_mod.c:222:module=providers

Il workaround è molto semplice. Creiamo una copia di backup del file /usr/bin/pixeluvo:
sudo cp /usr/bin/pixeluvo /usr/bin/pixeluvo.bak
Poi apriamo il suddetto file con un editor (per comodità userò nano):
sudo nano /usr/bin/pixeluvo

Cancelliamo tutto e copiamo il seguente testo:

#!/bin/bash

if [ $(getconf LONG_BIT) = "64" ]
then
    LIBS=/opt/pixeluvo/libs64
    BIN=/opt/pixeluvo/bin/Pixeluvo64
else
    LIBS=/opt/pixeluvo/libs32
    BIN=/opt/pixeluvo/bin/Pixeluvo32
fi

# Check if the system has Qt Libraries installed
if (( $(ldconfig -p | grep QtDeclarative -i -c) > 0 )) && (( $(ldconfig -p | grep QtSvg -i -c) > 0 ))
then
    echo "Using System Qt Libraries"
else
    echo "Using Pixeluvo Shipped Qt Libraries"
    export QT_PLUGIN_PATH=""
    export LD_LIBRARY_PATH=$LIBS:"$LD_LIBRARY_PATH"
    if [ -z ${OPENSSL_CONF+x} ];
    then
        export OPENSSL_CONF=/dev/null
    fi
fi

# Run Pixeluvo
$BIN "$@"

Salviamo e chiudiamo. Adesso Pixeluvo si avvierà regolarmente e potrete editare le vostre foto:

Enjoy!

Leggi il contenuto originale su Pinguini per caso

Written by: pinguinipercaso