Package: argyll
Version: 1.8.3+repack-2
Severity: wishlist
Tags: upstream patch

dispcal includes a simple plugin-like mechanism to integrate
with the system colord ICC store.

It currently simply calls dlopen("libcolordcompat.so", ...),
requiring the plugin to be in the system library resolution
paths.

The attached patch makes dispcal look for libcolordcompat.so
in /usr/lib/argyll/.



-- System Information:
Debian Release: stretch/sid
  APT prefers yakkety
  APT policy: (500, 'yakkety')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.7+bcachefs-1.git20160828--generic (SMP w/8 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages argyll depends on:
ii  argyll-ref    1.8.3+repack-2build1
ii  dpkg          1.18.10ubuntu1
ii  libc6         2.24-0ubuntu1
ii  libjpeg8      8c-2ubuntu8
ii  libpng16-16   1.6.24-2
ii  libssl1.0.0   1.0.2g-1ubuntu8
ii  libtiff5      4.0.6-2
ii  libx11-6      2:1.6.3-1ubuntu3
ii  libxext6      2:1.3.3-1
ii  libxinerama1  2:1.1.3-1
ii  libxrandr2    2:1.5.0-1
ii  libxss1       1:1.2.2-1
ii  libxxf86vm1   1:1.1.4-1

Versions of packages argyll recommends:
ii  libpam-systemd  231-5
ii  udev            231-5

Versions of packages argyll suggests:
pn  argyll-doc            <none>
ii  colord                1.3.2-1
pn  gir1.2-colordgtk-1.0  <none>

-- no debconf information
Index: argyll-1.8.3+repack/spectro/dispwin.c
===================================================================
--- argyll-1.8.3+repack.orig/spectro/dispwin.c	2016-09-04 12:17:35.000000000 +1000
+++ argyll-1.8.3+repack/spectro/dispwin.c	2016-09-04 12:49:15.892851404 +1000
@@ -2341,7 +2341,10 @@
 
 	cd_found = NULL;
 
-	if ((cd_found = dlopen("libcolordcompat.so", RTLD_LAZY)) != NULL) {
+	/* Load from private library path. Load from /usr/lib/argyll under the assumption that
+	 * dispcal isn't going to be foreign-arch.
+	 */
+	if ((cd_found = dlopen("/usr/lib/argyll/libcolordcompat.so", RTLD_LAZY)) != NULL) {
 
 		cd_edid_install_profile = dlsym(cd_found, "cd_edid_install_profile");
 		cd_edid_remove_profile = dlsym(cd_found, "cd_edid_remove_profile");

Reply via email to