From f086e811c45095cce7365dad66e6b8149490bd50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sat, 18 Oct 2014 09:46:11 +0200 Subject: New maintainer, new upstream release, some bugs --- debian/changelog | 41 +- debian/control | 49 +-- debian/copyright | 186 ++++++++- debian/patches/desktop_file.patch | 34 ++ debian/patches/lcms2.patch | 350 ---------------- debian/patches/lcms2_configure.patch | 744 +++++++++++++++++++++++++++++++++ debian/patches/series | 6 +- debian/patches/typo.patch | 41 ++ debian/patches/typo_manpage.patch | 57 +++ debian/patches/xsane-0.999-lcms2.patch | 371 ++++++++++++++++ debian/rules | 4 + debian/watch | 2 +- debian/xsane-common.install | 2 +- debian/xsane.desktop | 17 - debian/xsane.install | 2 +- 15 files changed, 1488 insertions(+), 418 deletions(-) create mode 100644 debian/patches/desktop_file.patch delete mode 100644 debian/patches/lcms2.patch create mode 100644 debian/patches/lcms2_configure.patch create mode 100644 debian/patches/typo.patch create mode 100644 debian/patches/typo_manpage.patch create mode 100644 debian/patches/xsane-0.999-lcms2.patch delete mode 100644 debian/xsane.desktop (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 08e1f32..9e1a6da 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,16 +1,35 @@ -xsane (0.999-1) UNRELEASED; urgency=medium +xsane (0.999-1) unstable; urgency=medium - * [23337be] Imported Upstream version 0.999 + * New Maintainer. (Closes: #688542) + * New upstream release. * debian/control: - + [b27d2a6] bump Standards-Version to 3.9.6, no changes needed. - + [6424c96] fix duplicate-short-description lintian tag. - + [11f9507] debian/control: add Vcs-* fields. - + [bd33c8a] wrap-and-sort maintenance. - * [f3a24cb] debian/watch: add - * [c92f446] debian/copyright: rewrite using DEP-5 - * [1cf0e7a] debian/patches/lcms2.patch: add (Closes: #745524) - - -- Mattia Rizzolo Tue, 14 Oct 2014 21:24:22 +0200 + - Add myself as maintainer. + - Bump Standards-Version to 3.9.6 (no changes required). + - Change short short description of xsane-common. + - Change Build-Depends from libjpeg-dev to + libjpeg62-turbo-dev by reason of the jpeg-turbo + transition. + * debian/copyright: + - Rewrite into DEP-5 format. + - Add myself to the list of authors for debian/*. + - Change the license of debian/* to GPL-3+. + * New debian/watchfile. + * debian/patches: + - New xsane-0.999-lcms2.patch: + + Add support for lcms2. (Closes: #745524). + Thanks to Nils Philippsen . + - New lcms2_configure.patch: + + patch configure direct because autoreconf is broken. + Thanks to Nils Philippsen + - New typo.patch and typo_manpage.patch: + + Correct some typos. + - New desktop_file.patch: + + Move tags from debian/xsane.desktop to scr/xsane.desktop. + * Remove debian/xsane.desktop + * debian/rules: + - Enable hardening. + + -- Jörg Frings-Fürst Fri, 17 Oct 2014 20:24:49 +0200 xsane (0.998-6) unstable; urgency=medium diff --git a/debian/control b/debian/control index cda6ab6..0effc91 100644 --- a/debian/control +++ b/debian/control @@ -1,34 +1,29 @@ Source: xsane Section: graphics Priority: optional -Maintainer: Debian QA Group +Maintainer: Jörg Frings-Fürst Standards-Version: 3.9.6 -Build-Depends: autotools-dev, - debhelper (>= 9~), - gettext, - libgimp2.0-dev (>= 2.0.0), - libgtk2.0-dev, - libjpeg-dev, - liblcms2-dev, - libpng-dev, - libsane-dev (>= 1.0.11-3), - libtiff-dev, - zlib1g-dev -Homepage: http://www.xsane.org +Build-Depends: + autotools-dev, + debhelper (>= 9~), + gettext, + libgimp2.0-dev (>= 2.0.0), + libgtk2.0-dev, + libjpeg62-turbo-dev, + liblcms2-dev, + libpng-dev, + libsane-dev (>= 1.0.11-3), + libtiff-dev, + zlib1g-dev +Homepage: http://www.xsane.org/ Vcs-Git: git://anonscm.debian.org/collab-maint/xsane.git Vcs-Browser: http://anonscm.debian.org/cgit/collab-maint/xsane.git Package: xsane Architecture: any -Depends: xsane-common (= ${source:Version}), - ${misc:Depends}, - ${shlibs:Depends} -Recommends: cups-client, - iceweasel | www-browser -Suggests: gimp, - gocr, - gv, - hylafax-client | mgetty-fax +Depends: xsane-common (= ${source:Version}), ${shlibs:Depends}, ${misc:Depends} +Recommends: iceweasel | www-browser, cups-client +Suggests: gimp, hylafax-client | mgetty-fax, gv, gocr Description: featureful graphical frontend for SANE (Scanner Access Now Easy) xsane can be run as a stand-alone program or through the GIMP image manipulation program. In stand-alone mode, xsane can save an image @@ -50,11 +45,11 @@ Architecture: all Depends: ${misc:Depends} Replaces: xsane Recommends: xsane -Description: featureful graphical frontend for SANE - common files - xsane can be run as a stand-alone program or through the GIMP image - manipulation program. In stand-alone mode, xsane can save an image - to a file in a variety of image formats, serve as a frontend to a - fax program, or send an image to a printer. +Description: xsane architecture independent files + xsane can be run as a stand-alone program or through the GIMP image + manipulation program. In stand-alone mode, xsane can save an image + to a file in a variety of image formats, serve as a frontend to a + fax program, or send an image to a printer. . This package contains architecture-independent files needed by xsane (locales, help). diff --git a/debian/copyright b/debian/copyright index 58cc9ce..a71ef56 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,23 +1,191 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: xsane Upstream-Contact: Oliver Rauch -Source: http://xsane.org/download/ +Source: http://www.xsane.org/ Files: * -Copyright: 1998-2005 Oliver Rauch + po/de.po +Copyright: 1998-2014 Oliver Rauch License: GPL-2+ -Files: debian/* -Copyright: 1999-2002 Kevin Dalley - 2002-2011 Julien Blache - 2002-2007 Aurélien Jarno - 2013 Frank Lichtenheld +Files: intl/* + po/* + lib/getopt.c + lib/getopt1.c + lib/md5.c + lib/strdup.c + lib/strndup.c + lib/strsep.c + lib/usleep.c +Copyright: 1987-2006 Free Software Foundation, Inc. +License: GPL-2+ + +Files: lib/snprintf.c +Copyright: 1988-1997 Patrick Powell, San Diego, CA +License: Artistic-1.0 + +Files: po/da.po +Copyright: 2002 Mogens Jæger +License: GPL-2+ + +Files: po/fi.po +Copyright: 2006 Canonical Ltd, and Rosetta Contributors +License: GPL-2+ + +Files: po/fr.po +Copyright: 1999-2000 Laurent Grawet +License: GPL-2+ + +Files: po/ja.po +Copyright: 2002 Kimizuka Tomokazu +License: GPL-2+ + +Files: po/pl.po +Copyright: 2002-2003 Piotr Gogolewski +License: GPL-2+ + +Files: po/pt.po + po/pt_BR.po +Copyright: 2002-2004 Yujo Rodrigues +License: GPL-2+ + +Files: po/sv.po +Copyright: 1999-2003 Johan Bengtsson +License: GPL-2+ + +Files: po/vi.po +Copyright: 2002-2003 Trinh Minh Thanh +License: GPL-2+ + +Files: po/zh.po + po/zh_CN.po +Copyright: 2004 leolarrel License: GPL-2+ +Files: debian/* +Copyright: 1999-2002 Oliver Rauch + 2002-2011 Julien BLACHE + 2014 Jörg Frings-Fürst +License: GPL-3+ + +Files: lib/alloca.c +Copyright: D A Gwyn +License: public-domain + (Mostly) portable public-domain implementation + +License: Artistic-1.0 + Preamble + . + The intent of this document is to state the conditions under which a Package + may be copied, such that the Copyright Holder maintains some semblance of + artistic control over the development of the package, while giving the users + of the package the right to use and distribute the Package in a more-or-less + customary fashion, plus the right to make reasonable modifications. + . + Definitions: + . + "Package" refers to the collection of files distributed by the Copyright + Holder, and derivatives of that collection of files created through textual + modification. + . + "Standard Version" refers to such a Package if it has not been modified, or + has been modified in accordance with the wishes of the Copyright Holder. + . + "Copyright Holder" is whoever is named in the copyright or copyrights for the + package. + . + "You" is you, if you're thinking about copying or distributing this Package. + . + "Reasonable copying fee" is whatever you can justify on the basis of media + cost, duplication charges, time of people involved, and so on. (You will not + be required to justify it to the Copyright Holder, but only to the computing + community at large as a market that must bear the fee.) + . + "Freely Available" means that no fee is charged for the item itself, though + there may be fees involved in handling the item. It also means that recipients + of the item may redistribute it under the same conditions they received it. + . + 1. You may make and give away verbatim copies of the source form of the + Standard Version of this Package without restriction, provided that you + duplicate all of the original copyright notices and associated disclaimers. + . + 2. You may apply bug fixes, portability fixes and other modifications derived + from the Public Domain or from the Copyright Holder. A Package modified in + such a way shall still be considered the Standard Version. + . + 3. You may otherwise modify your copy of this Package in any way, provided that + you insert a prominent notice in each changed file stating how and when you + changed that file, and provided that you do at least ONE of the following: + . + a) place your modifications in the Public Domain or otherwise make them Freely + Available, such as by posting said modifications to Usenet or an equivalent + medium, or placing the modifications on a major archive site such as + ftp.uu.net, or by allowing the Copyright Holder to include your modifications + in the Standard Version of the Package. + b) use the modified Package only within your corporation or organization. + c) rename any non-standard executables so the names do not conflict with + standard executables, which must also be provided, and provide a separate + manual page for each non-standard executable that clearly documents how it + differs from the Standard Version. + d) make other distribution arrangements with the Copyright Holder. + . + 4. You may distribute the programs of this Package in object code or + executable form, provided that you do at least ONE of the following: + . + a) distribute a Standard Version of the executables and library files, + together with instructions (in the manual page or equivalent) on where to + get the Standard Version. + b) accompany the distribution with the machine-readable source of the Package + with your modifications. + c) accompany any non-standard executables with their corresponding Standard + Version executables, giving the non-standard executables non-standard names, + and clearly documenting the differences in manual pages (or equivalent), + together with instructions on where to get the Standard Version. + d) make other distribution arrangements with the Copyright Holder. + . + 5. You may charge a reasonable copying fee for any distribution of this + Package. You may charge any fee you choose for support of this Package. You + may not charge a fee for this Package itself. However, you may distribute this + Package in aggregate with other (possibly commercial) programs as part of a + larger (possibly commercial) software distribution provided that you do not + advertise this Package as a product of your own. + . + 6. The scripts and library files supplied as input to or produced as output + from the programs of this Package do not automatically fall under the + copyright of this Package, but belong to whomever generated them, and may be + sold commercially, and may be aggregated with this Package. + . + 7. C or perl subroutines supplied by you and linked into this Package shall + not be considered part of this Package. + . + 8. The name of the Copyright Holder may not be used to endorse or promote + products derived from this software without specific prior written permission. + . + 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + License: GPL-2+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + . + The complete text of the GNU General Public License + can be found in /usr/share/common-licenses/GPL-2 file. + +License: GPL-3+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, @@ -29,4 +197,4 @@ License: GPL-2+ along with this program. If not, see . On Debian systems, the complete text of the GNU General - Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". + Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". diff --git a/debian/patches/desktop_file.patch b/debian/patches/desktop_file.patch new file mode 100644 index 0000000..43e57bd --- /dev/null +++ b/debian/patches/desktop_file.patch @@ -0,0 +1,34 @@ +Description: insert missing tag Keywords and some other changes +Author: Jörg Frings-Fürst +Forwarded: not-needed +Last-Update: 2014-10-17 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/src/xsane.desktop +=================================================================== +--- trunk.orig/src/xsane.desktop ++++ trunk/src/xsane.desktop +@@ -1,9 +1,19 @@ + [Desktop Entry] +-Encoding=UTF-8 +-Name=XSane - Scanning +-Comment=Acquire images from a scanner ++Name=XSane Image scanning program ++Name[ru]=Программа для сканирования изображений ++Name[ca]=Programa d'escaneig d'imatges XSane ++Name[es]=Programa de escaneo de imágenes XSane ++Name[fr]=Programme d'acquisition d'images XSane ++Comment=A program to work with scanner. Can be used as a scanning, copier, OCR, fax tools. ++Comment[ru]=Программа для работы со сканером. Может быть использована в качестве копировального аппарата, факса, и др. ++Comment[ca]=Un programa per a treballar amb escànners. Es pot utilitzar com una eina d'escanejat, copiat, OCR i fax. ++Comment[es]=Un programa para trabajar con escáners. Se puede utilizar como una herramienta para escanear, copiar, OCR y fax. ++Comment[fr]=Un programme d'acquisition d'images pour votre scanner. Peut également photocopier, faxer ou faire de la reconnaissance de caractères. + Exec=xsane + Icon=xsane + Terminal=false + Type=Application +-Categories=Application;Graphics ++Categories=Application;Graphics;GTK;RasterGraphics;Scanning;OCR;2DGraphics; ++Keywords=scannerfrontend ++StartupNotify=true ++ diff --git a/debian/patches/lcms2.patch b/debian/patches/lcms2.patch deleted file mode 100644 index 497fccb..0000000 --- a/debian/patches/lcms2.patch +++ /dev/null @@ -1,350 +0,0 @@ -Subject: Add support for lcms 2 -Author: Nils Philippsen -Bug-Debian: https://bugs.debian.org/745524 -Last-Update: Mon, 23 Sep 2013 16:11:31 +0200 - ---- - configure.in | 22 ++++++++++++++---- - include/config.h.in | 8 ++++++- - src/xsane-preview.c | 6 +++-- - src/xsane-save.c | 38 ++++++++++++++++++++++++++----- - src/xsane-viewer.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++--- - src/xsane.h | 8 ++++++- - 6 files changed, 130 insertions(+), 17 deletions(-) - ---- a/configure.in -+++ b/configure.in -@@ -130,7 +130,17 @@ - fi - - if test "${USE_LCMS}" = "yes"; then -- AC_CHECK_LIB(lcms, cmsOpenProfileFromFile) -+ AC_SEARCH_LIBS(cmsOpenProfileFromFile, [lcms2 lcms]) -+ if test "${ac_cv_search_cmsOpenProfileFromFile}" != "no"; then -+ AC_DEFINE(HAVE_LIBLCMS, 1, [Define if LCMS is to be used.]) -+ fi -+ if test "${ac_cv_search_cmsOpenProfileFromFile}" == "-llcms2"; then -+ AC_DEFINE(HAVE_LIBLCMS2, 1, [Define if you have liblcms2.]) -+ else -+ if test "${ac_cv_search_cmsOpenProfileFromFile}" == "-llcms"; then -+ AC_DEFINE(HAVE_LIBLCMS1, 1, [Define if you have liblcms.]) -+ fi -+ fi - fi - - dnl Checks for library functions. -@@ -294,10 +304,14 @@ - echo "* - PNG support deactivated *" - fi - --if test "${ac_cv_lib_lcms_cmsOpenProfileFromFile}" = "yes"; then -- echo "* - LCMS (color management) support activated *" -+if test "${ac_cv_search_cmsOpenProfileFromFile}" = "-llcms2"; then -+ echo "* - LCMS (color management) support activated (lcms2) *" - else -- echo "* - LCMS (color management) support deactivated *" -+ if test "${ac_cv_search_cmsOpenProfileFromFile}" = "-llcms"; then -+ echo "* - LCMS (color management) support activated (lcms) *" -+ else -+ echo "* - LCMS (color management) support deactivated *" -+ fi - fi - - echo "* *" ---- a/include/config.h.in -+++ b/include/config.h.in -@@ -290,9 +290,15 @@ - /* Define if you have libtiff. */ - #undef HAVE_LIBTIFF - --/* Define if you have liblcms. */ -+/* Define if LCMS is to be used. */ - #undef HAVE_LIBLCMS - -+/* Define if you have liblcms. */ -+#undef HAVE_LIBLCMS1 -+ -+/* Define if you have liblcms2. */ -+#undef HAVE_LIBLCMS2 -+ - #ifndef HAVE_STRNCASECMP - /* OS/2 needs this */ - # define strncasecmp(a, b, c) strnicmp(a, b, c) ---- a/src/xsane-preview.c -+++ b/src/xsane-preview.c -@@ -6346,8 +6346,8 @@ - cmsHPROFILE hOutProfile = NULL; - cmsHPROFILE hProofProfile = NULL; - cmsHTRANSFORM hTransform = NULL; -- DWORD input_format, output_format; -- DWORD cms_flags = 0; -+ cmsUInt32Number input_format, output_format; -+ cmsUInt32Number cms_flags = 0; - int proof = 0; - char *cms_proof_icm_profile = NULL; - int linesize = 0; -@@ -6355,7 +6355,9 @@ - - DBG(DBG_proc, "preview_do_color_correction\n"); - -+#ifdef HAVE_LIBLCMS1 - cmsErrorAction(LCMS_ERROR_SHOW); -+#endif - - if (preferences.cms_bpc) - { ---- a/src/xsane-save.c -+++ b/src/xsane-save.c -@@ -832,9 +832,9 @@ - cmsHPROFILE hInProfile = NULL; - cmsHPROFILE hOutProfile = NULL; - cmsHTRANSFORM hTransform = NULL; -- DWORD cms_input_format; -- DWORD cms_output_format; -- DWORD cms_flags = 0; -+ cmsUInt32Number cms_input_format; -+ cmsUInt32Number cms_output_format; -+ cmsUInt32Number cms_flags = 0; - - if (cms_function == XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) - { -@@ -843,7 +843,9 @@ - - DBG(DBG_info, "Prepare CMS transform\n"); - -+#ifdef HAVE_LIBLCMS1 - cmsErrorAction(LCMS_ERROR_SHOW); -+#endif - - if (cms_bpc) - { -@@ -890,10 +892,18 @@ - if (image_info->channels == 1) /* == 1 (grayscale) */ - { - #if 1 /* xxx oli */ -+# ifdef HAVE_LIBLCMS2 -+ cmsToneCurve *Gamma = cmsBuildGamma(NULL, 2.2); -+# else - LPGAMMATABLE Gamma = cmsBuildGamma(256, 2.2); -+# endif - - hOutProfile = cmsCreateGrayProfile(cmsD50_xyY(), Gamma); -+# ifdef HAVE_LIBLCMS2 -+ cmsFreeToneCurve(Gamma); -+# else - cmsFreeGamma(Gamma); -+# endif - #endif - } - else -@@ -2904,7 +2914,11 @@ - return -1; - } - -+#ifdef HAVE_LIBLCMS2 -+ n = cmsGetPostScriptCSA(NULL, hProfile, intent, 0, NULL, 0); -+#else - n = cmsGetPostScriptCSA(hProfile, intent, NULL, 0); -+#endif - if (n == 0) - { - return -2; -@@ -2916,7 +2930,11 @@ - return -3; - } - -+#ifdef HAVE_LIBLCMS2 -+ cmsGetPostScriptCSA(NULL, hProfile, intent, 0, buffer, n); -+#else - cmsGetPostScriptCSA(hProfile, intent, buffer, n); -+#endif - buffer[n] = 0; - - fprintf(outfile, "%s", buffer); -@@ -2935,7 +2953,7 @@ - cmsHPROFILE hProfile; - size_t n; - char* buffer; -- DWORD flags = cmsFLAGS_NODEFAULTRESOURCEDEF; -+ cmsUInt32Number flags = cmsFLAGS_NODEFAULTRESOURCEDEF; - - hProfile = cmsOpenProfileFromFile(output_profile, "r"); - if (!hProfile) -@@ -2948,7 +2966,11 @@ - flags |= cmsFLAGS_BLACKPOINTCOMPENSATION; - } - -+#ifdef HAVE_LIBLCMS2 -+ n = cmsGetPostScriptCRD(NULL, hProfile, intent, flags, NULL, 0); -+#else - n = cmsGetPostScriptCRDEx(hProfile, intent, flags, NULL, 0); -+#endif - if (n == 0) - { - return -2; -@@ -2960,7 +2982,11 @@ - return -3; - } - -+#ifdef HAVE_LIBLCMS2 -+ cmsGetPostScriptCRD(NULL, hProfile, intent, flags, buffer, n); -+#else - cmsGetPostScriptCRDEx(hProfile, intent, flags, buffer, n); -+#endif - buffer[n] = 0; - - fprintf(outfile, "%s", buffer); -@@ -4352,7 +4378,7 @@ - { - FILE *icm_profile; - size_t size, embed_len; -- LPBYTE embed_buffer; -+ cmsUInt8Number *embed_buffer; - - DBG(DBG_proc, "xsane_jpeg_embed_scanner_icm_profile(%s)\n", icm_filename); - -@@ -4366,7 +4392,7 @@ - size = ftell(icm_profile); - fseek(icm_profile, 0, SEEK_SET); - -- embed_buffer = (LPBYTE) malloc(size + 1); -+ embed_buffer = (cmsUInt8Number *) malloc(size + 1); - if (embed_buffer) - { - embed_len = fread(embed_buffer, 1, size, icm_profile); ---- a/src/xsane-viewer.c -+++ b/src/xsane-viewer.c -@@ -1795,6 +1795,9 @@ - { - Viewer *v = (Viewer *) data; - int val; -+#ifdef HAVE_LIBLCMS2 -+ cmsUInt16Number alarm_codes[cmsMAXCHANNELS]; -+#endif - - g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); - g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); -@@ -1811,6 +1814,49 @@ - v->cms_gamut_alarm_color = val; - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_gamut_alarm_color_widget[v->cms_gamut_alarm_color]), TRUE); - -+#ifdef HAVE_LIBLCMS2 -+ switch(v->cms_gamut_alarm_color) -+ { -+ default: -+ case 0: /* black */ -+ alarm_codes[0] = (cmsUInt16Number) 0; -+ alarm_codes[1] = (cmsUInt16Number) 0; -+ alarm_codes[2] = (cmsUInt16Number) 0; -+ break; -+ -+ case 1: /* gray */ -+ alarm_codes[0] = (cmsUInt16Number) 128; -+ alarm_codes[1] = (cmsUInt16Number) 128; -+ alarm_codes[2] = (cmsUInt16Number) 128; -+ break; -+ -+ case 2: /* white */ -+ alarm_codes[0] = (cmsUInt16Number) 255; -+ alarm_codes[1] = (cmsUInt16Number) 255; -+ alarm_codes[2] = (cmsUInt16Number) 255; -+ break; -+ -+ case 3: /* red */ -+ alarm_codes[0] = (cmsUInt16Number) 255; -+ alarm_codes[1] = (cmsUInt16Number) 0; -+ alarm_codes[2] = (cmsUInt16Number) 0; -+ break; -+ -+ case 4: /* green */ -+ alarm_codes[0] = (cmsUInt16Number) 0; -+ alarm_codes[1] = (cmsUInt16Number) 255; -+ alarm_codes[2] = (cmsUInt16Number) 0; -+ break; -+ -+ case 5: /* blue */ -+ alarm_codes[0] = (cmsUInt16Number) 0; -+ alarm_codes[1] = (cmsUInt16Number) 0; -+ alarm_codes[2] = (cmsUInt16Number) 255; -+ break; -+ } -+ -+ cmsSetAlarmCodes(alarm_codes); -+#else - switch(v->cms_gamut_alarm_color) - { - default: -@@ -1838,6 +1884,7 @@ - cmsSetAlarmCodes(0, 0, 255); - break; - } -+#endif - - g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); - g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); -@@ -2172,9 +2219,9 @@ - cmsHTRANSFORM hTransform = NULL; - int proof = 0; - char *cms_proof_icm_profile = NULL; -- DWORD cms_input_format; -- DWORD cms_output_format; -- DWORD cms_flags = 0; -+ cmsUInt32Number cms_input_format; -+ cmsUInt32Number cms_output_format; -+ cmsUInt32Number cms_flags = 0; - #endif - - /* open imagefile */ -@@ -2203,7 +2250,9 @@ - - if ((v->enable_color_management) && (v->cms_enable)) - { -+#ifdef HAVE_LIBLCMS1 - cmsErrorAction(LCMS_ERROR_SHOW); -+#endif - - if (v->cms_bpc) - { -@@ -2801,6 +2850,9 @@ - GtkWidget *scrolled_window; - GtkWidget *zoom_option_menu, *zoom_menu, *zoom_menu_item; - int i, selection; -+#ifdef HAVE_LIBLCMS2 -+ cmsUInt16Number alarm_codes[cmsMAXCHANNELS]; -+#endif - - DBG(DBG_proc, "viewer_new(%s)\n", filename); - -@@ -2830,8 +2882,15 @@ - v->cms_proofing_intent = INTENT_ABSOLUTE_COLORIMETRIC; - v->cms_gamut_check = 0; - v->cms_gamut_alarm_color = 3; /* red */ -+#ifdef HAVE_LIBLCMS2 -+ alarm_codes[0] = (cmsUInt16Number) 255; -+ alarm_codes[1] = (cmsUInt16Number) 0; -+ alarm_codes[2] = (cmsUInt16Number) 0; -+ cmsSetAlarmCodes(alarm_codes); -+#else - cmsSetAlarmCodes(255, 0, 0); - #endif -+#endif - if (selection_filetype) - { - v->selection_filetype = strdup(selection_filetype); ---- a/src/xsane.h -+++ b/src/xsane.h -@@ -70,7 +70,13 @@ - #include - - #ifdef HAVE_LIBLCMS --# include "lcms.h" -+# ifdef HAVE_LIBLCMS2 -+# include "lcms2.h" -+# else -+# include "lcms.h" -+typedef BYTE cmsUInt8Number; -+typedef DWORD cmsUInt32Number; -+# endif - #else - # define cmsHTRANSFORM void * - #endif diff --git a/debian/patches/lcms2_configure.patch b/debian/patches/lcms2_configure.patch new file mode 100644 index 0000000..66612c8 --- /dev/null +++ b/debian/patches/lcms2_configure.patch @@ -0,0 +1,744 @@ +Description: patch confgure becase broken autoreconf +Author: Nils Philippsen +Last-Update: 2014-10-17 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/configure +=================================================================== +--- trunk.orig/configure ++++ trunk/configure +@@ -1,11 +1,9 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.68. ++# Generated by GNU Autoconf 2.69. + # + # +-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +-# Foundation, Inc. ++# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. + # + # + # This configure script is free software; the Free Software Foundation +@@ -134,6 +132,31 @@ export LANGUAGE + # CDPATH. + (unset CDPATH) >/dev/null 2>&1 && unset CDPATH + ++# Use a proper internal environment variable to ensure we don't fall ++ # into an infinite loop, continuously re-executing ourselves. ++ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then ++ _as_can_reexec=no; export _as_can_reexec; ++ # We cannot yet assume a decent shell, so we have to provide a ++# neutralization value for shells without unset; and this also ++# works around shells that cannot unset nonexistent variables. ++# Preserve -v and -x to the replacement shell. ++BASH_ENV=/dev/null ++ENV=/dev/null ++(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV ++case $- in # (((( ++ *v*x* | *x*v* ) as_opts=-vx ;; ++ *v* ) as_opts=-v ;; ++ *x* ) as_opts=-x ;; ++ * ) as_opts= ;; ++esac ++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} ++# Admittedly, this is quite paranoid, since all the known shells bail ++# out after a failed `exec'. ++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 ++as_fn_exit 255 ++ fi ++ # We don't want this to propagate to other subprocesses. ++ { _as_can_reexec=; unset _as_can_reexec;} + if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh +@@ -167,7 +190,8 @@ if ( set x; as_fn_ret_success y && test + else + exitcode=1; echo positional parameters were not saved. + fi +-test x\$exitcode = x0 || exit 1" ++test x\$exitcode = x0 || exit 1 ++test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && +@@ -212,6 +236,7 @@ IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : ++ export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. +@@ -219,14 +244,17 @@ IFS=$as_save_IFS + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +- export CONFIG_SHELL + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac +- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} ++exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} ++# Admittedly, this is quite paranoid, since all the known shells bail ++# out after a failed `exec'. ++$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 ++exit 255 + fi + + if test x$as_have_required = xno; then : +@@ -328,6 +356,14 @@ $as_echo X"$as_dir" | + + + } # as_fn_mkdir_p ++ ++# as_fn_executable_p FILE ++# ----------------------- ++# Test if FILE is an executable regular file. ++as_fn_executable_p () ++{ ++ test -f "$1" && test -x "$1" ++} # as_fn_executable_p + # as_fn_append VAR VALUE + # ---------------------- + # Append the text in VALUE to the end of the definition contained in VAR. Take +@@ -449,6 +485,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + ++ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have ++ # already done that, so ensure we don't try to do so again and fall ++ # in an infinite loop. This has already happened in practice. ++ _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). +@@ -483,16 +523,16 @@ if (echo >conf$$.file) 2>/dev/null; then + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. +- # In both cases, we have to default to `cp -p'. ++ # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + fi + else +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + fi + rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file + rmdir conf$$.dir 2>/dev/null +@@ -504,28 +544,8 @@ else + as_mkdir_p=false + fi + +-if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +-else +- if ls -dL / >/dev/null 2>&1; then +- as_ls_L_option=L +- else +- as_ls_L_option= +- fi +- as_test_x=' +- eval sh -c '\'' +- if test -d "$1"; then +- test -d "$1/."; +- else +- case $1 in #( +- -*)set "./$1";; +- esac; +- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( +- ???[sx]*):;;*)false;;esac;fi +- '\'' sh +- ' +-fi +-as_executable_p=$as_test_x ++as_executable_p=as_fn_executable_p + + # Sed expression to map a string onto a valid CPP name. + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +@@ -1192,8 +1212,6 @@ target=$target_alias + if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe +- $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. +- If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +@@ -1451,9 +1469,9 @@ test -n "$ac_init_help" && exit $ac_stat + if $ac_init_version; then + cat <<\_ACEOF + configure +-generated by GNU Autoconf 2.68 ++generated by GNU Autoconf 2.69 + +-Copyright (C) 2010 Free Software Foundation, Inc. ++Copyright (C) 2012 Free Software Foundation, Inc. + This configure script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it. + _ACEOF +@@ -1726,7 +1744,7 @@ $as_echo "$ac_try_echo"; } >&5 + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || +- $as_test_x conftest$ac_exeext ++ test -x conftest$ac_exeext + }; then : + ac_retval=0 + else +@@ -1870,7 +1888,7 @@ This file contains any messages produced + running configure, to aid debugging if configure makes a mistake. + + It was created by $as_me, which was +-generated by GNU Autoconf 2.68. Invocation command line was ++generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +@@ -2377,7 +2395,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -2417,7 +2435,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -2470,7 +2488,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -2511,7 +2529,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue +@@ -2569,7 +2587,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -2613,7 +2631,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3059,8 +3077,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ + /* end confdefs.h. */ + #include + #include +-#include +-#include ++struct stat; + /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ + struct buf { int x; }; + FILE * (*rcsopen) (struct buf *, struct stat *, int); +@@ -3300,7 +3317,7 @@ do + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" +- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue ++ as_fn_executable_p "$ac_path_GREP" || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP + case `"$ac_path_GREP" --version 2>&1` in +@@ -3366,7 +3383,7 @@ do + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" +- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue ++ as_fn_executable_p "$ac_path_EGREP" || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP + case `"$ac_path_EGREP" --version 2>&1` in +@@ -3684,7 +3701,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3724,7 +3741,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3777,7 +3794,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3818,7 +3835,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue +@@ -3876,7 +3893,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -3920,7 +3937,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -4116,8 +4133,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ + /* end confdefs.h. */ + #include + #include +-#include +-#include ++struct stat; + /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ + struct buf { int x; }; + FILE * (*rcsopen) (struct buf *, struct stat *, int); +@@ -4271,7 +4287,7 @@ case $as_dir/ in #(( + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. +@@ -4732,11 +4748,11 @@ else + int + main () + { +-/* FIXME: Include the comments suggested by Paul. */ ++ + #ifndef __cplusplus +- /* Ultrix mips cc rejects this. */ ++ /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; +- const charset cs; ++ const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; +@@ -4753,8 +4769,9 @@ main () + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; +- { /* SCO 3.2v4 cc rejects this. */ +- char *t; ++ { /* SCO 3.2v4 cc rejects this sort of thing. */ ++ char tx; ++ char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; +@@ -4770,10 +4787,10 @@ main () + iptr p = 0; + ++p; + } +- { /* AIX XL C 1.02.0.0 rejects this saying ++ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ +- struct s { int j; const int *ap[3]; }; +- struct s *b; b->j = 5; ++ struct s { int j; const int *ap[3]; } bx; ++ struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; +@@ -5132,13 +5149,12 @@ fi + fi + + if test "${USE_LCMS}" = "yes"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cmsOpenProfileFromFile in -llcms" >&5 +-$as_echo_n "checking for cmsOpenProfileFromFile in -llcms... " >&6; } +-if ${ac_cv_lib_lcms_cmsOpenProfileFromFile+:} false; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing cmsOpenProfileFromFile" >&5 ++$as_echo_n "checking for library containing cmsOpenProfileFromFile... " >&6; } ++if ${ac_cv_search_cmsOpenProfileFromFile+:} false; then : + $as_echo_n "(cached) " >&6 + else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-llcms $LIBS" ++ ac_func_search_save_LIBS=$LIBS + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +@@ -5157,26 +5173,54 @@ return cmsOpenProfileFromFile (); + return 0; + } + _ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_lcms_cmsOpenProfileFromFile=yes ++for ac_lib in '' lcms2 lcms; do ++ if test -z "$ac_lib"; then ++ ac_res="none required" + else +- ac_cv_lib_lcms_cmsOpenProfileFromFile=no ++ ac_res=-l$ac_lib ++ LIBS="-l$ac_lib $ac_func_search_save_LIBS" ++ fi ++ if ac_fn_c_try_link "$LINENO"; then : ++ ac_cv_search_cmsOpenProfileFromFile=$ac_res + fi + rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS ++ conftest$ac_exeext ++ if ${ac_cv_search_cmsOpenProfileFromFile+:} false; then : ++ break + fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lcms_cmsOpenProfileFromFile" >&5 +-$as_echo "$ac_cv_lib_lcms_cmsOpenProfileFromFile" >&6; } +-if test "x$ac_cv_lib_lcms_cmsOpenProfileFromFile" = xyes; then : +- cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBLCMS 1 +-_ACEOF ++done ++if ${ac_cv_search_cmsOpenProfileFromFile+:} false; then : ++ ++else ++ ac_cv_search_cmsOpenProfileFromFile=no ++fi ++rm conftest.$ac_ext ++LIBS=$ac_func_search_save_LIBS ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_cmsOpenProfileFromFile" >&5 ++$as_echo "$ac_cv_search_cmsOpenProfileFromFile" >&6; } ++ac_res=$ac_cv_search_cmsOpenProfileFromFile ++if test "$ac_res" != no; then : ++ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +- LIBS="-llcms $LIBS" ++fi ++ ++ if test "${ac_cv_search_cmsOpenProfileFromFile}" != "no"; then ++ ++$as_echo "#define HAVE_LIBLCMS 1" >>confdefs.h + + fi ++ if test "${ac_cv_search_cmsOpenProfileFromFile}" == "-llcms2"; then + ++$as_echo "#define HAVE_LIBLCMS2 1" >>confdefs.h ++ ++ else ++ if test "${ac_cv_search_cmsOpenProfileFromFile}" == "-llcms"; then ++ ++$as_echo "#define HAVE_LIBLCMS1 1" >>confdefs.h ++ ++fi ++ fi + fi + + # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works +@@ -5330,23 +5374,20 @@ else + /* end confdefs.h. */ + $ac_includes_default + int +-find_stack_direction () +-{ +- static char *addr = 0; +- auto char dummy; +- if (addr == 0) ++find_stack_direction (int *addr, int depth) + { ++ int dir, dummy = 0; ++ if (! addr) + addr = &dummy; +- return find_stack_direction (); +- } +- else +- return (&dummy > addr) ? 1 : -1; ++ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; ++ dir = depth ? find_stack_direction (addr, depth - 1) : 0; ++ return dir + dummy; + } + + int +-main () ++main (int argc, char **argv) + { +- return find_stack_direction () < 0; ++ return find_stack_direction (0, argc + !argv + 20) < 0; + } + _ACEOF + if ac_fn_c_try_run "$LINENO"; then : +@@ -5599,7 +5640,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -5639,7 +5680,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -5971,7 +6012,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -6136,7 +6177,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GENCAT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -6177,7 +6218,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -6350,7 +6391,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -6574,7 +6615,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_SANE_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -6795,7 +6836,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -7058,7 +7099,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -7346,7 +7387,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GTK_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -7616,7 +7657,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GIMP_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -7670,7 +7711,7 @@ do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GIMP_TOOL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 +@@ -8496,16 +8537,16 @@ if (echo >conf$$.file) 2>/dev/null; then + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. +- # In both cases, we have to default to `cp -p'. ++ # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + fi + else +- as_ln_s='cp -p' ++ as_ln_s='cp -pR' + fi + rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file + rmdir conf$$.dir 2>/dev/null +@@ -8565,28 +8606,16 @@ else + as_mkdir_p=false + fi + +-if test -x / >/dev/null 2>&1; then ++ ++# as_fn_executable_p FILE ++# ----------------------- ++# Test if FILE is an executable regular file. ++as_fn_executable_p () ++{ ++ test -f "$1" && test -x "$1" ++} # as_fn_executable_p + as_test_x='test -x' +-else +- if ls -dL / >/dev/null 2>&1; then +- as_ls_L_option=L +- else +- as_ls_L_option= +- fi +- as_test_x=' +- eval sh -c '\'' +- if test -d "$1"; then +- test -d "$1/."; +- else +- case $1 in #( +- -*)set "./$1";; +- esac; +- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( +- ???[sx]*):;;*)false;;esac;fi +- '\'' sh +- ' +-fi +-as_executable_p=$as_test_x ++as_executable_p=as_fn_executable_p + + # Sed expression to map a string onto a valid CPP name. + as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +@@ -8608,7 +8637,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri + # values after options handling. + ac_log=" + This file was extended by $as_me, which was +-generated by GNU Autoconf 2.68. Invocation command line was ++generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +@@ -8674,10 +8703,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ + ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + ac_cs_version="\\ + config.status +-configured by $0, generated by GNU Autoconf 2.68, ++configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +-Copyright (C) 2010 Free Software Foundation, Inc. ++Copyright (C) 2012 Free Software Foundation, Inc. + This config.status script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it." + +@@ -8766,7 +8795,7 @@ fi + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + if \$ac_cs_recheck; then +- set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion ++ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' +@@ -9463,11 +9492,15 @@ else + echo "* - PNG support deactivated *" + fi + +-if test "${ac_cv_lib_lcms_cmsOpenProfileFromFile}" = "yes"; then +- echo "* - LCMS (color management) support activated *" ++if test "${ac_cv_search_cmsOpenProfileFromFile}" = "-llcms2"; then ++ echo "* - LCMS (color management) support activated (lcms2) *" ++else ++ if test "${ac_cv_search_cmsOpenProfileFromFile}" = "-llcms"; then ++ echo "* - LCMS (color management) support activated (lcms) *" + else + echo "* - LCMS (color management) support deactivated *" + fi ++fi + + echo "* *" + echo "****************************************************************" +@@ -9481,4 +9514,4 @@ echo "* -------------------------------- + echo "* ... PLEASE READ SANE DOCUMENTATION BEFORE STARTING XSANE ... *" + echo "* ------------------------------------------------------------ *" + echo "****************************************************************" +-cat xsane.NEWS ++cat ${srcdir}/xsane.NEWS diff --git a/debian/patches/series b/debian/patches/series index ee4fd81..1b35186 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,6 @@ +desktop_file.patch +typo.patch +typo_manpage.patch deb_printing_defaults.patch deb_docviewer.patch deb_gimp_acquire_menu.patch @@ -14,4 +17,5 @@ fix_spin_button_pagesize.patch fix_tighten_default_umask.patch fix_png15.patch deb_non_working_help_menu.patch -lcms2.patch +xsane-0.999-lcms2.patch +lcms2_configure.patch diff --git a/debian/patches/typo.patch b/debian/patches/typo.patch new file mode 100644 index 0000000..8864cd7 --- /dev/null +++ b/debian/patches/typo.patch @@ -0,0 +1,41 @@ +Description: correct some typos in source +Author: Jörg Frings-Fürst +Forwarded: not-needed +Last-Update: 2014-10-17 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/src/xsane-text.h +=================================================================== +--- trunk.orig/src/xsane-text.h ++++ trunk/src/xsane-text.h +@@ -854,7 +854,7 @@ The format of [DEVICE] is backendname:de + -n, --no-mode-selection disable menu for XSane mode selection\n\ + \n\ + -F, --Fixed fixed main window size (overwrite preferences value)\n\ +- -R, --Resizeable resizable, scrolled main window (overwrite preferences value)\n\ ++ -R, --Resizable resizable, scrolled main window (overwrite preferences value)\n\ + \n\ + -p, --print-filenames print image filenames created by XSane\n\ + -N, --force-filename name force filename and disable user filename selection\n\ +Index: trunk/src/xsane.c +=================================================================== +--- trunk.orig/src/xsane.c ++++ trunk/src/xsane.c +@@ -67,7 +67,7 @@ struct option long_options[] = + #endif + {"no-mode-selection", no_argument, 0, 'n'}, + {"Fixed", no_argument, 0, 'F'}, +- {"Resizeable", no_argument, 0, 'R'}, ++ {"Resizable", no_argument, 0, 'R'}, + {"print-filenames", no_argument, 0, 'p'}, + {"force-filename", required_argument, 0, 'N'}, + {0, } +@@ -5787,7 +5787,7 @@ static int xsane_init(int argc, char **a + xsane.main_window_fixed = 1; + break; + +- case 'R': /* --Resizeable */ ++ case 'R': /* --Resizable */ + xsane.main_window_fixed = 0; + break; + diff --git a/debian/patches/typo_manpage.patch b/debian/patches/typo_manpage.patch new file mode 100644 index 0000000..371d675 --- /dev/null +++ b/debian/patches/typo_manpage.patch @@ -0,0 +1,57 @@ +Description: correct some typos in man page +Author: Jörg Frings-Fürst +Forwarded: not-needed +Last-Update: 2014-10-17 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: trunk/doc/xsane.man +=================================================================== +--- trunk.orig/doc/xsane.man ++++ trunk/doc/xsane.man +@@ -57,38 +57,38 @@ To run + under the + .BR gimp (1), + you should at first make sure that xsane is +-compiled with gimp support by entering "xsane -v" on a shell. ++compiled with gimp support by entering "xsane \-v" on a shell. + If xsane is compiled with gimp support then simply set a + symbolic link from the xsane-binary to one of the + .BR gimp (1) +-plug-ins directories. For example, for gimp-1.0.x the command ++plug-ins directories. For example, for gimp\-1.0.x the command + .PP + .RS +-ln -s @BINDIR@/xsane ~/.gimp/plug-ins/ ++ln \-s @BINDIR@/xsane ~/.gimp/plug\-ins/ + .RE + .PP + for gimp 1.2.x the command: + .PP + .RS +-ln -s @BINDIR@/xsane ~/.gimp-1.2/plug-ins/ ++ln \-s @BINDIR@/xsane ~/.gimp\-1.2/plug\-ins/ + .RE + .PP + and for gimp 2.0.x the command: + .PP + .RS +-ln -s @BINDIR@/xsane ~/.gimp-2.0/plug-ins/ ++ln \-s @BINDIR@/xsane ~/.gimp\-2.0/plug\-ins/ + .RE + .PP + adds a symlink for the + .B xsane +-binary to the user's plug-ins directory. After creating this symlink, ++binary to the user's plug\-ins directory. After creating this symlink, + .B xsane + will be queried by + .BR gimp (1) + the next time it's invoked. From then on, + .B xsane +-can be invoked through "Xtns->XSane->Device dialog..." (gimp-1.0.x) or through +-"File->Acquire->XSane->Device dialog..." (gimp-1.2.x and 2.0.x) menu entry. ++can be invoked through "Xtns->XSane->Device dialog..." (gimp\-1.0.x) or through ++"File->Acquire->XSane->Device dialog..." (gimp\-1.2.x and 2.0.x) menu entry. + + You'll also find that the "Xtns->XSane" or "File->Acquire->XSane" menu contains + short-cuts to the SANE devices that were available at the time the diff --git a/debian/patches/xsane-0.999-lcms2.patch b/debian/patches/xsane-0.999-lcms2.patch new file mode 100644 index 0000000..f18709c --- /dev/null +++ b/debian/patches/xsane-0.999-lcms2.patch @@ -0,0 +1,371 @@ +From 30af0e2edbf061b71bed9536d826894449f0390d Mon Sep 17 00:00:00 2001 +From: Nils Philippsen +Date: Mon, 23 Sep 2013 16:11:31 +0200 +Subject: [PATCH] patch: lcms2 + +Squashed commit of the following: + +commit f975accf7e1a08438b63580ea848457d373200f5 +Author: Nils Philippsen +Date: Mon Sep 23 14:53:45 2013 +0200 + + Add support for lcms 2.x. +--- + configure.in | 22 ++++++++++++++---- + include/config.h.in | 8 ++++++- + src/xsane-preview.c | 6 +++-- + src/xsane-save.c | 38 ++++++++++++++++++++++++++----- + src/xsane-viewer.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++--- + src/xsane.h | 8 ++++++- + 6 files changed, 130 insertions(+), 17 deletions(-) + +diff --git a/configure.in b/configure.in +index df7b114..3659c97 100644 +--- a/configure.in ++++ b/configure.in +@@ -130,7 +130,17 @@ if test "${USE_TIFF}" = "yes"; then + fi + + if test "${USE_LCMS}" = "yes"; then +- AC_CHECK_LIB(lcms, cmsOpenProfileFromFile) ++ AC_SEARCH_LIBS(cmsOpenProfileFromFile, [lcms2 lcms]) ++ if test "${ac_cv_search_cmsOpenProfileFromFile}" != "no"; then ++ AC_DEFINE(HAVE_LIBLCMS, 1, [Define if LCMS is to be used.]) ++ fi ++ if test "${ac_cv_search_cmsOpenProfileFromFile}" == "-llcms2"; then ++ AC_DEFINE(HAVE_LIBLCMS2, 1, [Define if you have liblcms2.]) ++ else ++ if test "${ac_cv_search_cmsOpenProfileFromFile}" == "-llcms"; then ++ AC_DEFINE(HAVE_LIBLCMS1, 1, [Define if you have liblcms.]) ++ fi ++ fi + fi + + dnl Checks for library functions. +@@ -294,10 +304,14 @@ else + echo "* - PNG support deactivated *" + fi + +-if test "${ac_cv_lib_lcms_cmsOpenProfileFromFile}" = "yes"; then +- echo "* - LCMS (color management) support activated *" ++if test "${ac_cv_search_cmsOpenProfileFromFile}" = "-llcms2"; then ++ echo "* - LCMS (color management) support activated (lcms2) *" + else +- echo "* - LCMS (color management) support deactivated *" ++ if test "${ac_cv_search_cmsOpenProfileFromFile}" = "-llcms"; then ++ echo "* - LCMS (color management) support activated (lcms) *" ++ else ++ echo "* - LCMS (color management) support deactivated *" ++ fi + fi + + echo "* *" +diff --git a/include/config.h.in b/include/config.h.in +index ecc9637..f9a3e40 100755 +--- a/include/config.h.in ++++ b/include/config.h.in +@@ -290,9 +290,15 @@ + /* Define if you have libtiff. */ + #undef HAVE_LIBTIFF + +-/* Define if you have liblcms. */ ++/* Define if LCMS is to be used. */ + #undef HAVE_LIBLCMS + ++/* Define if you have liblcms. */ ++#undef HAVE_LIBLCMS1 ++ ++/* Define if you have liblcms2. */ ++#undef HAVE_LIBLCMS2 ++ + #ifndef HAVE_STRNCASECMP + /* OS/2 needs this */ + # define strncasecmp(a, b, c) strnicmp(a, b, c) +diff --git a/src/xsane-preview.c b/src/xsane-preview.c +index 6327ca7..6eaf687 100644 +--- a/src/xsane-preview.c ++++ b/src/xsane-preview.c +@@ -6346,8 +6346,8 @@ int preview_do_color_correction(Preview *p) + cmsHPROFILE hOutProfile = NULL; + cmsHPROFILE hProofProfile = NULL; + cmsHTRANSFORM hTransform = NULL; +- DWORD input_format, output_format; +- DWORD cms_flags = 0; ++ cmsUInt32Number input_format, output_format; ++ cmsUInt32Number cms_flags = 0; + int proof = 0; + char *cms_proof_icm_profile = NULL; + int linesize = 0; +@@ -6355,7 +6355,9 @@ int preview_do_color_correction(Preview *p) + + DBG(DBG_proc, "preview_do_color_correction\n"); + ++#ifdef HAVE_LIBLCMS1 + cmsErrorAction(LCMS_ERROR_SHOW); ++#endif + + if (preferences.cms_bpc) + { +diff --git a/src/xsane-save.c b/src/xsane-save.c +index 75e0a63..2d0e44b 100644 +--- a/src/xsane-save.c ++++ b/src/xsane-save.c +@@ -832,9 +832,9 @@ cmsHTRANSFORM xsane_create_cms_transform(Image_info *image_info, int cms_functio + cmsHPROFILE hInProfile = NULL; + cmsHPROFILE hOutProfile = NULL; + cmsHTRANSFORM hTransform = NULL; +- DWORD cms_input_format; +- DWORD cms_output_format; +- DWORD cms_flags = 0; ++ cmsUInt32Number cms_input_format; ++ cmsUInt32Number cms_output_format; ++ cmsUInt32Number cms_flags = 0; + + if (cms_function == XSANE_CMS_FUNCTION_EMBED_SCANNER_ICM_PROFILE) + { +@@ -843,7 +843,9 @@ cmsHTRANSFORM xsane_create_cms_transform(Image_info *image_info, int cms_functio + + DBG(DBG_info, "Prepare CMS transform\n"); + ++#ifdef HAVE_LIBLCMS1 + cmsErrorAction(LCMS_ERROR_SHOW); ++#endif + + if (cms_bpc) + { +@@ -890,10 +892,18 @@ cmsHTRANSFORM xsane_create_cms_transform(Image_info *image_info, int cms_functio + if (image_info->channels == 1) /* == 1 (grayscale) */ + { + #if 1 /* xxx oli */ ++# ifdef HAVE_LIBLCMS2 ++ cmsToneCurve *Gamma = cmsBuildGamma(NULL, 2.2); ++# else + LPGAMMATABLE Gamma = cmsBuildGamma(256, 2.2); ++# endif + + hOutProfile = cmsCreateGrayProfile(cmsD50_xyY(), Gamma); ++# ifdef HAVE_LIBLCMS2 ++ cmsFreeToneCurve(Gamma); ++# else + cmsFreeGamma(Gamma); ++# endif + #endif + } + else +@@ -2896,7 +2906,11 @@ static int xsane_write_CSA(FILE *outfile, char *input_profile, int intent) + return -1; + } + ++#ifdef HAVE_LIBLCMS2 ++ n = cmsGetPostScriptCSA(NULL, hProfile, intent, 0, NULL, 0); ++#else + n = cmsGetPostScriptCSA(hProfile, intent, NULL, 0); ++#endif + if (n == 0) + { + return -2; +@@ -2908,7 +2922,11 @@ static int xsane_write_CSA(FILE *outfile, char *input_profile, int intent) + return -3; + } + ++#ifdef HAVE_LIBLCMS2 ++ cmsGetPostScriptCSA(NULL, hProfile, intent, 0, buffer, n); ++#else + cmsGetPostScriptCSA(hProfile, intent, buffer, n); ++#endif + buffer[n] = 0; + + fprintf(outfile, "%s", buffer); +@@ -2927,7 +2945,7 @@ static int xsane_write_CRD(FILE *outfile, char *output_profile, int intent, int + cmsHPROFILE hProfile; + size_t n; + char* buffer; +- DWORD flags = cmsFLAGS_NODEFAULTRESOURCEDEF; ++ cmsUInt32Number flags = cmsFLAGS_NODEFAULTRESOURCEDEF; + + hProfile = cmsOpenProfileFromFile(output_profile, "r"); + if (!hProfile) +@@ -2940,7 +2958,11 @@ static int xsane_write_CRD(FILE *outfile, char *output_profile, int intent, int + flags |= cmsFLAGS_BLACKPOINTCOMPENSATION; + } + ++#ifdef HAVE_LIBLCMS2 ++ n = cmsGetPostScriptCRD(NULL, hProfile, intent, flags, NULL, 0); ++#else + n = cmsGetPostScriptCRDEx(hProfile, intent, flags, NULL, 0); ++#endif + if (n == 0) + { + return -2; +@@ -2952,7 +2974,11 @@ static int xsane_write_CRD(FILE *outfile, char *output_profile, int intent, int + return -3; + } + ++#ifdef HAVE_LIBLCMS2 ++ cmsGetPostScriptCRD(NULL, hProfile, intent, flags, buffer, n); ++#else + cmsGetPostScriptCRDEx(hProfile, intent, flags, buffer, n); ++#endif + buffer[n] = 0; + + fprintf(outfile, "%s", buffer); +@@ -4349,7 +4375,7 @@ static void xsane_jpeg_embed_scanner_icm_profile(j_compress_ptr cinfo_ptr, const + { + FILE *icm_profile; + size_t size, embed_len; +- LPBYTE embed_buffer; ++ cmsUInt8Number *embed_buffer; + + DBG(DBG_proc, "xsane_jpeg_embed_scanner_icm_profile(%s)\n", icm_filename); + +@@ -4363,7 +4389,7 @@ static void xsane_jpeg_embed_scanner_icm_profile(j_compress_ptr cinfo_ptr, const + size = ftell(icm_profile); + fseek(icm_profile, 0, SEEK_SET); + +- embed_buffer = (LPBYTE) malloc(size + 1); ++ embed_buffer = (cmsUInt8Number *) malloc(size + 1); + if (embed_buffer) + { + embed_len = fread(embed_buffer, 1, size, icm_profile); +diff --git a/src/xsane-viewer.c b/src/xsane-viewer.c +index 69a444d..844c077 100644 +--- a/src/xsane-viewer.c ++++ b/src/xsane-viewer.c +@@ -1795,6 +1795,9 @@ static void xsane_viewer_set_cms_gamut_alarm_color_callback(GtkWidget *widget, g + { + Viewer *v = (Viewer *) data; + int val; ++#ifdef HAVE_LIBLCMS2 ++ cmsUInt16Number alarm_codes[cmsMAXCHANNELS]; ++#endif + + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_block_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); +@@ -1811,6 +1814,49 @@ static void xsane_viewer_set_cms_gamut_alarm_color_callback(GtkWidget *widget, g + v->cms_gamut_alarm_color = val; + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(v->cms_gamut_alarm_color_widget[v->cms_gamut_alarm_color]), TRUE); + ++#ifdef HAVE_LIBLCMS2 ++ switch(v->cms_gamut_alarm_color) ++ { ++ default: ++ case 0: /* black */ ++ alarm_codes[0] = (cmsUInt16Number) 0; ++ alarm_codes[1] = (cmsUInt16Number) 0; ++ alarm_codes[2] = (cmsUInt16Number) 0; ++ break; ++ ++ case 1: /* gray */ ++ alarm_codes[0] = (cmsUInt16Number) 128; ++ alarm_codes[1] = (cmsUInt16Number) 128; ++ alarm_codes[2] = (cmsUInt16Number) 128; ++ break; ++ ++ case 2: /* white */ ++ alarm_codes[0] = (cmsUInt16Number) 255; ++ alarm_codes[1] = (cmsUInt16Number) 255; ++ alarm_codes[2] = (cmsUInt16Number) 255; ++ break; ++ ++ case 3: /* red */ ++ alarm_codes[0] = (cmsUInt16Number) 255; ++ alarm_codes[1] = (cmsUInt16Number) 0; ++ alarm_codes[2] = (cmsUInt16Number) 0; ++ break; ++ ++ case 4: /* green */ ++ alarm_codes[0] = (cmsUInt16Number) 0; ++ alarm_codes[1] = (cmsUInt16Number) 255; ++ alarm_codes[2] = (cmsUInt16Number) 0; ++ break; ++ ++ case 5: /* blue */ ++ alarm_codes[0] = (cmsUInt16Number) 0; ++ alarm_codes[1] = (cmsUInt16Number) 0; ++ alarm_codes[2] = (cmsUInt16Number) 255; ++ break; ++ } ++ ++ cmsSetAlarmCodes(alarm_codes); ++#else + switch(v->cms_gamut_alarm_color) + { + default: +@@ -1838,6 +1884,7 @@ static void xsane_viewer_set_cms_gamut_alarm_color_callback(GtkWidget *widget, g + cmsSetAlarmCodes(0, 0, 255); + break; + } ++#endif + + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[0]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); + g_signal_handlers_unblock_by_func(GTK_OBJECT(v->cms_gamut_alarm_color_widget[1]), (GtkSignalFunc) xsane_viewer_set_cms_gamut_alarm_color_callback, v); +@@ -2172,9 +2219,9 @@ static int xsane_viewer_read_image(Viewer *v) + cmsHTRANSFORM hTransform = NULL; + int proof = 0; + char *cms_proof_icm_profile = NULL; +- DWORD cms_input_format; +- DWORD cms_output_format; +- DWORD cms_flags = 0; ++ cmsUInt32Number cms_input_format; ++ cmsUInt32Number cms_output_format; ++ cmsUInt32Number cms_flags = 0; + #endif + + /* open imagefile */ +@@ -2203,7 +2250,9 @@ static int xsane_viewer_read_image(Viewer *v) + + if ((v->enable_color_management) && (v->cms_enable)) + { ++#ifdef HAVE_LIBLCMS1 + cmsErrorAction(LCMS_ERROR_SHOW); ++#endif + + if (v->cms_bpc) + { +@@ -2801,6 +2850,9 @@ Viewer *xsane_viewer_new(char *filename, char *selection_filetype, int allow_red + GtkWidget *scrolled_window; + GtkWidget *zoom_option_menu, *zoom_menu, *zoom_menu_item; + int i, selection; ++#ifdef HAVE_LIBLCMS2 ++ cmsUInt16Number alarm_codes[cmsMAXCHANNELS]; ++#endif + + DBG(DBG_proc, "viewer_new(%s)\n", filename); + +@@ -2830,8 +2882,15 @@ Viewer *xsane_viewer_new(char *filename, char *selection_filetype, int allow_red + v->cms_proofing_intent = INTENT_ABSOLUTE_COLORIMETRIC; + v->cms_gamut_check = 0; + v->cms_gamut_alarm_color = 3; /* red */ ++#ifdef HAVE_LIBLCMS2 ++ alarm_codes[0] = (cmsUInt16Number) 255; ++ alarm_codes[1] = (cmsUInt16Number) 0; ++ alarm_codes[2] = (cmsUInt16Number) 0; ++ cmsSetAlarmCodes(alarm_codes); ++#else + cmsSetAlarmCodes(255, 0, 0); + #endif ++#endif + if (selection_filetype) + { + v->selection_filetype = strdup(selection_filetype); +diff --git a/src/xsane.h b/src/xsane.h +index 4067d61..adcc0ed 100644 +--- a/src/xsane.h ++++ b/src/xsane.h +@@ -70,7 +70,13 @@ + #include + + #ifdef HAVE_LIBLCMS +-# include "lcms.h" ++# ifdef HAVE_LIBLCMS2 ++# include "lcms2.h" ++# else ++# include "lcms.h" ++typedef BYTE cmsUInt8Number; ++typedef DWORD cmsUInt32Number; ++# endif + #else + # define cmsHTRANSFORM void * + #endif +-- +1.8.3.1 diff --git a/debian/rules b/debian/rules index d6fe262..9b9327c 100755 --- a/debian/rules +++ b/debian/rules @@ -1,4 +1,8 @@ #!/usr/bin/make -f +#export DH_VERBOSE=1 + + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ --with autotools_dev diff --git a/debian/watch b/debian/watch index 03cefce..fc20d43 100644 --- a/debian/watch +++ b/debian/watch @@ -1,3 +1,3 @@ version=3 -http://xsane.org/download xsane-(.+)\.(?:zip|tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) +http://xsane.org/download xsane-(.+)\.(?:tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz))) diff --git a/debian/xsane-common.install b/debian/xsane-common.install index 9c222b8..d18bbb8 100644 --- a/debian/xsane-common.install +++ b/debian/xsane-common.install @@ -1,2 +1,2 @@ -usr/share/locale usr/share/sane/xsane +usr/share/locale diff --git a/debian/xsane.desktop b/debian/xsane.desktop deleted file mode 100644 index 604b022..0000000 --- a/debian/xsane.desktop +++ /dev/null @@ -1,17 +0,0 @@ -[Desktop Entry] -Name=XSane Image scanning program -Name[ru]=Программа для сканирования изображений -Name[ca]=Programa d'escaneig d'imatges XSane -Name[es]=Programa de escaneo de imágenes XSane -Name[fr]=Programme d'acquisition d'images XSane -Comment=A program to work with scanner. Can be used as a scanning, copier, OCR, fax tools. -Comment[ru]=Программа для работы со сканером. Может быть использована в качестве копировального аппарата, факса, и др. -Comment[ca]=Un programa per a treballar amb escànners. Es pot utilitzar com una eina d'escanejat, copiat, OCR i fax. -Comment[es]=Un programa para trabajar con escáners. Se puede utilizar como una herramienta para escanear, copiar, OCR y fax. -Comment[fr]=Un programme d'acquisition d'images pour votre scanner. Peut également photocopier, faxer ou faire de la reconnaissance de caractères. -Exec=xsane -Icon=xsane -Terminal=false -Type=Application -Categories=GTK;Graphics;RasterGraphics;Scanning;OCR;2DGraphics; -StartupNotify=true diff --git a/debian/xsane.install b/debian/xsane.install index da5aa1d..a5366dc 100644 --- a/debian/xsane.install +++ b/debian/xsane.install @@ -1,4 +1,4 @@ -debian/xsane.desktop usr/share/applications +src/xsane.desktop usr/share/applications debian/xsane.png usr/share/icons/hicolor/256x256/apps usr/bin usr/share/man -- cgit v1.2.3