From 47ae1d2bb29704877533d51cfa1c4d82dca95e82 Mon Sep 17 00:00:00 2001 From: David Seifert Date: Mon, 10 Nov 2025 10:33:14 +0100 Subject: [PATCH] media-gfx/xsane: fix gcc 15 build Closes: https://bugs.gentoo.org/946837 Signed-off-by: David Seifert --- media-gfx/xsane/Manifest | 2 +- .../files/xsane-0.999-configure-clang16.patch | 12 - media-gfx/xsane/files/xsane-0.999-lcms2.patch | 372 ------------------ media-gfx/xsane/xsane-0.999-r6.ebuild | 10 +- 4 files changed, 4 insertions(+), 392 deletions(-) delete mode 100644 media-gfx/xsane/files/xsane-0.999-configure-clang16.patch delete mode 100644 media-gfx/xsane/files/xsane-0.999-lcms2.patch diff --git a/media-gfx/xsane/Manifest b/media-gfx/xsane/Manifest index 9a07937bd68d..30cd5e5d75df 100644 --- a/media-gfx/xsane/Manifest +++ b/media-gfx/xsane/Manifest @@ -1,3 +1,3 @@ -DIST xsane-0.998-patches-3.tar.xz 54480 BLAKE2B 8c77bf0304e60114fa964e337640b61e7c353a6b6f9ad5bc3c87fd5324440b27e58a45aef7df2f16d5faa63692b9f8b22cca7d5dbf21dd6a1cac8572e668cf65 SHA512 e0a85e536502fef66526f12d7607381d07a2a53953f200b298afd1225f85657dfa3550f37b1ee7827739cb2b00333ab926a146c6424ec2543b691f0945300b68 +DIST xsane-0.999-patches-4.tar.xz 57040 BLAKE2B 477b15b32cd5d56b501660414e268debed7d561bd2ac3b417686ad66566c67edc5caefb9e57cd0ed5bf5b37bbb364f8542d039b61688252baeed47b7e5c5839b SHA512 1f1d8c0c4ee03a5e11eaba1528c166f58e673e308cdb7d84d1d725142c79b1df56b2ea5696784b94ce31b3422086735dbb34c70d230251347cd9382d9a7c1be9 DIST xsane-0.999.tar.gz 2950621 BLAKE2B a8490981b7da497934f0334874fb65d2d3f2a7d9153825544672a39780bd8c4bfabee6bda134bd7b37b07947d1f01f283fb7242552b0e6342cab5a70484a5488 SHA512 73ec961fce1a86b5d6f5bac0995d222785eb4b077dc8e72492b092d2bf4500455426e80e4d27233721cd38ec84f77fb9f92190a6afe45bdaf7ffd1ee50b431ed DIST xsane-256x256.png 18478 BLAKE2B 5661d68fab2c5f7219f0de9e2c2c811ef5fba6f5472e85d98f6f3a10bb058c1d26597d15c2aa8ab59c52060a62b571aafc2daafcef4bb8edd0445cf875ec0ca3 SHA512 7bd63a701a4776b395689799ad98b7619917a9b40367c980bebaa116e6c5c2bfeffb8b996a8295b07f3483aa689c9040d8a68bb21376af65b1c0e8f69294f2e5 diff --git a/media-gfx/xsane/files/xsane-0.999-configure-clang16.patch b/media-gfx/xsane/files/xsane-0.999-configure-clang16.patch deleted file mode 100644 index 0e0ee342a3de..000000000000 --- a/media-gfx/xsane/files/xsane-0.999-configure-clang16.patch +++ /dev/null @@ -1,12 +0,0 @@ -https://bugs.gentoo.org/885311 -https://bugs.gentoo.org/899806 ---- a/m4/sane.m4 -+++ b/m4/sane.m4 -@@ -44,6 +44,7 @@ dnl - AC_TRY_RUN([ - #include - #include -+#include - - int - main () diff --git a/media-gfx/xsane/files/xsane-0.999-lcms2.patch b/media-gfx/xsane/files/xsane-0.999-lcms2.patch deleted file mode 100644 index 0a98bc8122bb..000000000000 --- a/media-gfx/xsane/files/xsane-0.999-lcms2.patch +++ /dev/null @@ -1,372 +0,0 @@ -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/media-gfx/xsane/xsane-0.999-r6.ebuild b/media-gfx/xsane/xsane-0.999-r6.ebuild index 0ac33bcfab6e..6de3dbbd4f83 100644 --- a/media-gfx/xsane/xsane-0.999-r6.ebuild +++ b/media-gfx/xsane/xsane-0.999-r6.ebuild @@ -9,7 +9,7 @@ DESCRIPTION="Graphical scanning frontend" HOMEPAGE="http://www.xsane.org/" SRC_URI=" http://www.xsane.org/download/${P}.tar.gz - https://dev.gentoo.org/~soap/distfiles/${PN}-0.998-patches-3.tar.xz + https://dev.gentoo.org/~soap/distfiles/${PN}-0.999-patches-4.tar.xz https://dev.gentoo.org/~pacho/${PN}/${PN}-256x256.png " @@ -34,12 +34,8 @@ RDEPEND="${DEPEND}" BDEPEND="virtual/pkgconfig" PATCHES=( - # Apply multiple fixes from different distributions - "${WORKDIR}"/${PN}-0.998-patches-3 - # Add support for lcms-2 (from Fedora) - "${FILESDIR}"/${PN}-0.999-lcms2.patch - # See bug #885311 and bug #899806 - "${FILESDIR}"/${PN}-0.999-configure-clang16.patch + # Apply multiple fixes from different distributions, incl. Gentoo + "${WORKDIR}"/${PN}-0.999-patches-4 ) src_prepare() {