DisplayCal & Python3

Alouette Membre non connecté
-
- Voir le profil du membre Alouette
- Inscrit le : 13/03/2019
- Groupes :
Un nouveau développeur, Ignace72, a intégré Python3 dans DisplayCal. Je n’ai pas testé .
Plus d’information sur le forum darktable.fr : https://forums.darktable.fr/showthread.php?tid=6062

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :

Bon je vais tâcher de caractériser le problème:
En photo, pour réaliser des développements fidèles, par exemple avec DarkTable, nous avons besoin de calibrer nos écrans. Jusqu'alors avec Linux, l'outil utilisé était DisplayCal; il s'avère que ce dernier a été développé en Python 2 et donc, de ce fait, DisplayCal a disparu de notre distribution favorite.
Le gros problème, c'est qu'il n'y a pas d'alternative à ce logiciel pour calibrer un écran pour Linux.
Le développeur originel de DisplayCal a jeté l'éponge. Il s'avère que le développement a récemment repris, et qu'on peut trouver ici un descriptif de l'état d'avancement du projet:
https://ignace72.eu/displaycal-en-python-3.html
Le projet en lui-même est ici:
https://github.com/eoyilmaz/displaycal-py3
Alors il serait vraiment utile de disposer de DisplayCal dans notre distrib, même si actuellement c'est probablement instable, car il n'existe pas d'alternative en terme de logiciel.
La seule solution actuellement, c'est flatpack, mais cette dernière ne peut que temporairement dépanner, et ça ne peut être considéré comme une solution pérenne:
https://flathub.org/apps/details/net.displaycal.DisplayCAL
Peut-on envisager voir à nouveau un package Display Cal pour notre distribution favorite?
Merci par avance pour vos avis et commentaires.

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
Pour avoir plus de réponse, le mieux est de faire la demande sur https://bugs.mageia.org.
Le Flatpak fonctionne-t-il correctement ?

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Oui, il est possible que le logiciel revienne, en moins dans cauldron, et potentiellement en Mageia 8.
@ Yuusha : le flatpak embarque un Python2, donc ce n'est pas la référence à suivre.
Yves

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :
Yuusha :
Bonjour,
Pour avoir plus de réponse, le mieux est de faire la demande sur https://bugs.mageia.org.
Le Flatpak fonctionne-t-il correctement ?
Pour avoir plus de réponse, le mieux est de faire la demande sur https://bugs.mageia.org.
Le Flatpak fonctionne-t-il correctement ?
Le flatpak
** (process:502524): WARNING **: 17:09:42.614: Error writing credentials to socket: Error sending message: Broken pipe
Finalement, c'est effectivement embêtant de ne plus l'avoir (Excuses pour avoir dit des bêtises précédemment).
Édité par holly76 Le 09/05/2022 à 17h14

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
J'essaie de le réactiver.
J'arrive à le construire dans cauldron, mais pas dans Mageia 8. J'ai une erreur de compilation, peut-être vient-elle de bibliothèques en versions différentes ?
Code TEXT :
DisplayCAL/RealDisplaySizeMM.c: In function 'get_displays': DisplayCAL/RealDisplaySizeMM.c:838:25: warning: implicit declaration of function 'error'; did you mean 'perror'? [-Wimplicit-function-declaration] 838 | error("Unable to intern atom '%s'",desc1); | ^~~~~ | perror
Pour les aventureux, voici le fichier spec:
Code TEXT :
%define up_name DisplayCAL Name: displaycal Version: 3.9.3 Release: %mkrel 1 Summary: A graphical user interface for the Argyll CMS display calibration utilities Group: Graphics/Utilities License: GPLv3 URL: https://github.com/eoyilmaz/displaycal-py3 Source0: https://github.com/eoyilmaz/displaycal-py3/releases/download/%{version}/DisplayCAL-%{version}.tar.gz Patch0: displaycal-3.9.3-udev-dir.patch BuildRequires: python3dist(setuptools) BuildRequires: python3dist(wxpython) BuildRequires: pkgconfig(xxf86vm) BuildRequires: pkgconfig(xinerama) BuildRequires: pkgconfig(xrandr) BuildRequires: pkgconfig(python3) Requires: argyllcms Requires: python3dist(setuptools) Requires: python3dist(pygobject) Requires: python3dist(numpy) Requires: python3dist(wxpython) Provides: %{up_name} = %{version}-%{release} Provides: dispcalGUI = %{version}-%{release} %description A graphical user interface for the Argyll CMS display calibration utilities. %files %doc %{_docdir}/%{up_name}-%{version}/LICENSE.txt %doc %{_docdir}/%{up_name}-%{version}/CHANGES*.html %doc %{_docdir}/%{up_name}-%{version}/README*.html %doc %{_docdir}/%{up_name}-%{version}/screenshots %doc %{_docdir}/%{up_name}-%{version}/theme %{_udevrulesdir}/55-Argyll.rules %{_bindir}/* %{_datadir}/%{up_name}/ %{_iconsdir}/hicolor/*/* %{_datadir}/applications/*.desktop %{_datadir}/metainfo/net.displaycal.%{up_name}.appdata.xml %{_sysconfdir}/xdg/autostart/z-displaycal-apply-profiles.desktop %{python3_sitearch}/%{up_name}/ %{python3_sitearch}/%{up_name}-%{version}-py%{python3_version}.egg-info %{_mandir}/man1/* #-------------------------------------------------------------------- %prep %setup -q -n %{up_name}-%{version} %autopatch -p1 %build %py3_build %install %py3_install -- --no-compile --prefix=%{_prefix} --skip-postinstall
et le patch qui va avec :
Code TEXT :
diff -ruN DisplayCAL-3.9.3/DisplayCAL/setup.py DisplayCAL-3.9.3-new/DisplayCAL/setup.py --- DisplayCAL-3.9.3/DisplayCAL/setup.py 2022-04-30 13:17:33.000000000 +0200 +++ DisplayCAL-3.9.3-new/DisplayCAL/setup.py 2022-05-13 13:14:54.617154160 +0200 @@ -748,13 +748,13 @@ ) else: devconf_files = [] - if os.path.isdir("/etc/udev/rules.d"): + if os.path.isdir("/usr/lib/udev/rules.d"): if safe_glob("/dev/bus/usb/*/*"): # USB and serial instruments using udev, where udev # already creates /dev/bus/usb/00X/00X devices devconf_files.append( ( - "/etc/udev/rules.d", + "/usr/lib/udev/rules.d", [ os.path.join( pydir, "..", "misc", "55-Argyll.rules" @@ -767,10 +767,10 @@ # devices devconf_files.append( ( - "/etc/udev/rules.d", + "/usr/lib/udev/rules.d", [ os.path.join( - pydir, "..", "misc", "45-Argyll.rules" + pydir, "..", "misc", "55-Argyll.rules" ) ], )
Yves

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
EN Mageia 8, en fait l'erreur est plutôt là :
Code TEXT :
gcc -pthread -shared -Wl,--as-needed -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables build/temp.linux-x86_64-3.8/DisplayCAL/RealDisplaySizeMM.o -L/usr/lib64 -lX11 -lXinerama -lXrandr -lXxf86vm -lpython3.8 -o build/lib.linux-x86_64-3.8/DisplayCAL/lib64/python38/RealDisplaySizeMM.cpython-38-x86_64-linux-gnu.so /usr/bin/ld: build/temp.linux-x86_64-3.8/DisplayCAL/RealDisplaySizeMM.o: in function `get_displays': /builddir/build/BUILD/DisplayCAL-3.9.3/DisplayCAL/RealDisplaySizeMM.c:557: undefined reference to `dlopen' /usr/bin/ld: /builddir/build/BUILD/DisplayCAL-3.9.3/DisplayCAL/RealDisplaySizeMM.c:558: undefined reference to `dlsym' /usr/bin/ld: /builddir/build/BUILD/DisplayCAL-3.9.3/DisplayCAL/RealDisplaySizeMM.c:559: undefined reference to `dlsym'
Yves

nic80 Membre non connecté
-
- Voir le profil du membre nic80
- Inscrit le : 06/08/2018
- Groupes :
-
Modérateur
C' est exactement ce que j' ai vu quand j'ai fait un rpmbuild -ba.
Le fichier .c fait appel au fichier dlfcn.h ( qui contient les entêtes correspondantes). Cependant, bien que glibc-devel soit installé le fichier n' est pas utilisé. Dans le fichier .c l' appel au fichier est inclus dans un ifdef UNIX et ! _APPLE_ . Qui défini cette variable ? Python au travers du setup.py ?
edit: je doute que ce soit Python qui fixe ça ( peut être plus le pré processeur gcc, mais aussi bien sous Mageia 8 que sous Cauldron, un:
touch a.c
gcc -dM -E a.c | grep -i unix
ne reporte pas de UNIX ( elle n' est donc la macro/variable n' est pas défini par le préprocesseur visiblement.
Édité par nic80 Le 14/05/2022 à 10h55

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
LDFLAGS="-ldl $LDFLAGS"
avant le %py3_build
Yves

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :
Pour l'actuelle version, ce serait tout simplement le bonheur

Un grand merci à vous pour cette prise en compte.
Édité par holly76 Le 15/05/2022 à 08h17

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Yves

holly76 Membre non connecté
-
- Voir le profil du membre holly76
- Inscrit le : 03/09/2011
- Groupes :
Papoteur :
Voilà, il est dans cauldron maintenant.
Super, merci


Alouette Membre non connecté
-
- Voir le profil du membre Alouette
- Inscrit le : 13/03/2019
- Groupes :

Je sais pourquoi j’utilise Mageia !
Bravo pour la réactivité

ignace72 Membre non connecté
-
- Voir le profil du membre ignace72
- Inscrit le : 21/05/2022
- Site internet
Je suis l’auteur de l’article cité : https://ignace72.eu/displaycal-en-python-3.html et je voulais rectifier une erreur :
Je ne suis pas un développeur et encore moins le développeur de DisplayCAL pour Python 3 (comme il est dit dans le premier message d’Alouette). Je suis juste un photographe amateur qui connaît l’importance d’avoir un écran calibré pour une utilisation en photo numérique.
Je regrettais que le seul logiciel graphique de calibration d’écrans ne soit plus développé et le rende indisponible sous la majorité des distributions GNU/Linux.
C’est donc avec enthousiasme que j’ai appris que Erkan Ozgur Yilmaz avait porté le logiciel sous Python 3.
C’est pour ça que j’en fais la promotion et que j’essaye d’aider ceux qui veulent utiliser cette version sur leurs distributions. C’était l’objectif de la création de mon article sur mon site internet.
Voilà, ce message, c’était juste une démarche pour rentre justice à Erkan Ozgur Yilmaz.
Merci.
Ignace.
Édité par ignace72 Le 21/05/2022 à 17h04
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie