Libraw. Construire ART

Cette version est une béta, je ne vois pas pourquoi l’avoir utilisée !

Si vous avez installé une version antérieure de libraw, vérifiez quand vous installez (ou compilez) la toute dernière version, que le lien symbolique libraw.so dans /lib ou /usr/lib ne pointe toujours vers l’ancienne version.

Ceux qui sont sous Arch linux peuvent installer le dernier libraw à partir d’AUR (paquet libraw-git).

Edit : en compilant la branche master, je me retrouve avec une version libraw 0.23 dans (le lien symbolique libraw.so pointe vers libraw.so.23.0.0) mais la coompilation d’ART me dit qu’il trouve la version “libraw library 0.21.0-Snapshot202110”

Je crois qu’il faut aussi vérifier que la compilation installe les librairies au même endroit que là où ART les cherche… Par exemple si ART cherche libraw dans /lib mais que le dernier libraw fraîchement compilé est installé dans /usr/lib alors ART ne le trouvera pas

la version git ne s’installe pas, et la supression de libraw avant est impossible car elle casse une dépendance… !

image

sais tu où art cherche libraw ?

Je viens de chercher : je n’ai pas de libraw.so dans /usr/lib

Je crois justement que ART (ou cmake) cherche les librairies dans /usr/lib. Si tu as libraw.so installé dans /lib, essaye d’ajouter un lien symbolique dans usr/lib. Je pense la commande serait sudo ln -s /lib/libraw.so /usr/lib/libraw.so.

Si ça permet à ART de trouver libraw, par la suite idéalement il faudrait compiler libraw avec :

autoreconf --install
./configure --prefix=/usr/lib --disable-examples
make
sudo make install

En passant par l’utilitaire Bau (sur arch) j’ai pu installer la version git de Libraw en écrasant la version précédente…
Je recompile ART et OUFFF !!!

image

Ça fonctionne !!
J’ignore encore l’amélioration que ça va m’apporter cela dit… :thinking:

En principe le lien symbolique libraw.so pointe vers libraw.so.xx.x.x où les xxx donnent le numéro de version.

Tu peux faire la commande :

ls -l /usr/lib/libraw.so

Chez moi ça me donne en résultat :

lrwxrwxrwx 1 root root 16 23 Nov 16:35 /usr/lib/libraw.so -> libraw.so.23.0.0

Mais là, le “23” obtenu est étrange… Peut-être que ça équivaut unefuture version “0.23” ?

ok… chez moi aussi… bizarre ce n° de version…

rwxrwxrwx 1 root root 16 23 nov.  22:43 /usr/lib/libraw.so -> libraw.so.23.0.0

En tous cas chez moi en compilant ART avec cette version de libraw, ça fonctionne même si ART identifie une autre version (c’est la seule version installée sur mon ordi) :

AboutTHisBuild.txt :

Version: ba243e0bf
Branch: master
Commit: ba243e0bf
Commit date: 2022-11-23
Compiler: cc 12.2.0
Processor: x86_64
System: Linux
Bit depth: 64 bits
Gtkmm: 3.24.6
Lensfun: 0.3.3.0
Exiv2: 0.27.5
LCMS2: 2.13
LibRaw: 0.21.0-Snapshot202110
OpenColorIO: 2.1.2
Build type: release
Build flags:  -std=c++11 -ffp-contract=off -march=native -Werror=unused-label -fno-math-errno -flto -Wall -Wuninitialized -Wno-deprecated-declarations -Wno-unused-result -fopenmp -Werror=unknown-pragmas -O3 -DNDEBUG -ftree-vectorize
Link flags:  -march=native -flto
OpenMP support: ON
Mi-malloc: N/A
Build OS: Linux
Build date: 2022-11-23T20:38:16Z

Du coup quelle est la différence dans le traitement des images avec ou sans libraw ? Le “dérawtisage” de base à l’import est différent ?

libraw est davantage mis à jour je crois, et plus simple à maintenir/intégrer au niveau d’ART que be l’est dcraw.
Et par exemple libraw prend en charge certains formats raw (par exemple des CR3 de Canon) que dcraw ne prend toujours pas en charge (je crois).
Et si j’ai bien compris, le support de dcraw finira par être abandonné par Alberto.

1 « J'aime »

Je ne sais pas si c’est applicable pour linux, mais sous MSYS2, pour faire savoir où se trouve libraw compilé localement je fais:

#
LIBRAW=/d/programmes/librawsource/librawinstall
PKG_CONFIG_PATH="$LIBRAW""/lib/pkgconfig:"$PKG_CONFIG_PATH
#

Je n’ai pas libraw.so non plus dans /lib !

D’ailleurs dcraw n’est plus maintenu depuis quelques années.
Libraw est la seule alternative possible. Vrai aussi pour RawTherapee.

Et aussi en partie avec RawSpeed sous darktable. Mais je n’y ai pas de problème pour récupérer les CR3 !

Parfois certaines distributions installent les librairies compilées par l’utilisateur dans /usr/local/lib.

Après avoir compilé libraw (make), tu fais bien sudo make install ? Si oui, regarde ce qui est indiqué dans la console quand tu lances cette commande, ça doit t’indiquer dans quel dossier les librairies sont installées.

Toujours pas de libraw dans /usr/local/lib. Je ne l’ai pas compilé et j’ai utilisé le système d’install d’OpenSuse Tumbelweed.

Je me suis permis de créer un nouveau sujet dans la catégorie compilation car ce problème risque d’être récurrent
https://forum.artherapee.fr/t/compilation-de-libraw/1461

2 « J'aime »