From cebe1578f526101593670d9691b420e8dff1bf5343a90a8208a2556ad7b00cdf Mon Sep 17 00:00:00 2001 From: Stanislav Brabec Date: Thu, 5 Mar 2020 03:54:10 +0000 Subject: [PATCH] Accepting request 781708 from home:sbrabec:branches:new-gcc - Update to version 2.1.2... - Fix build with with -fno-common, which is the default in gcc-10 (bsc#1160256, argyllcms--gcc--fno-common.patch). OBS-URL: https://build.opensuse.org/request/show/781708 OBS-URL: https://build.opensuse.org/package/show/multimedia:color_management/argyllcms?expand=0&rev=46 --- Argyll_V2.1.1_src.zip | 3 - Argyll_V2.1.2_src.zip | 3 + argyllcms--gcc--fno-common.patch | 133 +++++++++++++++++++++++++++++++ argyllcms.changes | 30 +++++++ argyllcms.spec | 10 ++- 5 files changed, 172 insertions(+), 7 deletions(-) delete mode 100644 Argyll_V2.1.1_src.zip create mode 100644 Argyll_V2.1.2_src.zip create mode 100644 argyllcms--gcc--fno-common.patch diff --git a/Argyll_V2.1.1_src.zip b/Argyll_V2.1.1_src.zip deleted file mode 100644 index 018e708..0000000 --- a/Argyll_V2.1.1_src.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:51269bcafc4d95679354b796685c3f0a41b44b78443cbe360cda4a2d72f32acb -size 13825860 diff --git a/Argyll_V2.1.2_src.zip b/Argyll_V2.1.2_src.zip new file mode 100644 index 0000000..a62b07c --- /dev/null +++ b/Argyll_V2.1.2_src.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be378ca836b17b8684db05e9feaab138d711835ef00a04a76ac0ceacd386a3e3 +size 13837056 diff --git a/argyllcms--gcc--fno-common.patch b/argyllcms--gcc--fno-common.patch new file mode 100644 index 0000000..e3518d4 --- /dev/null +++ b/argyllcms--gcc--fno-common.patch @@ -0,0 +1,133 @@ +argyllcms: Fix compilation with GCC 10 + +A common mistake in C is omitting extern when declaring a global variable +in a header file. If the header is included by several files it results +in multiple definitions of the same variable. In previous GCC versions +this error is ignored. GCC 10 defaults to -fno-common, which means a +linker error will now be reported. To fix this, use extern in header +files when declaring global variables, and ensure each global is defined +in exactly one C file. As a workaround, legacy C code can be compiled +with -fcommon. + + int x; // tentative definition - avoid in header files + extern int y; // correct declaration in a header file + +References: +https://bugzilla.opensuse.org/show_bug.cgi?id=1160244 +https://bugzilla.opensuse.org/show_bug.cgi?id=1160256 + +In case of vinflate.c and inflate.c, both files define local variables +with the same name as global. It is no more possible with GCC 10. To +prevent sharing variables across files, add "static" to all local +variables. + +Index: Argyll_V2.1.2/gamut/gamut.h +=================================================================== +--- Argyll_V2.1.2.orig/gamut/gamut.h ++++ Argyll_V2.1.2/gamut/gamut.h +@@ -36,7 +36,7 @@ + #define MAXGAMN 10 /* Maximum gamut point neighbors returned */ + #define NSLOTS 6 /* Number of maximum direction slots */ + +-struct _vrml *wrl; /* Declared in vrml.h, which may be #included after this */ ++extern struct _vrml *wrl; /* Declared in vrml.h, which may be #included after this */ + + /* ------------------------------------ */ + #define NODE_STRUCT \ +Index: Argyll_V2.1.2/spectro/vinflate.c +=================================================================== +--- Argyll_V2.1.2.orig/spectro/vinflate.c ++++ Argyll_V2.1.2/spectro/vinflate.c +@@ -92,7 +92,7 @@ int vinflate(void); + */ + + #define WSIZE 0x8000 +-unsigned int wp; /* current position in slide */ ++static unsigned int wp; /* current position in slide */ + uch slide[32768]; + + static int vflush_output(unsigned int w) { +@@ -160,8 +160,8 @@ static ush cpdext[] = { /* Extra + the stream. + */ + +-ulg bb; /* bit buffer */ +-unsigned bk; /* bits in bit buffer */ ++static ulg bb; /* bit buffer */ ++static unsigned bk; /* bits in bit buffer */ + + ush vmask_bits[] = { + 0x0000, +@@ -230,8 +230,8 @@ ush vmask_bits[] = { + */ + + +-int vlbits = 9; /* bits in base literal/length lookup table */ +-int vdbits = 6; /* bits in base distance lookup table */ ++static int vlbits = 9; /* bits in base literal/length lookup table */ ++static int vdbits = 6; /* bits in base distance lookup table */ + + + /* If BMAX needs to be larger than 16, then h and x[] should be ulg. */ +@@ -239,7 +239,7 @@ int vdbits = 6; /* bits in base + #define N_MAX 288 /* maximum number of codes in any set */ + + +-unsigned hufts; /* track memory usage */ ++static unsigned hufts; /* track memory usage */ + + /* Given a list of code lengths and a maximum table size, make a set of + tables to decode that set of codes. Return zero on success, one if +Index: Argyll_V2.1.2/spectro/inflate.c +=================================================================== +--- Argyll_V2.1.2.orig/spectro/inflate.c ++++ Argyll_V2.1.2/spectro/inflate.c +@@ -49,7 +49,7 @@ typedef unsigned int ulg; + the next table, which codes e - 16 bits, and lastly e == 99 indicates + an unused code. If a code with e == 99 is looked up, this implies an + error in the data. */ +-struct huft { ++static struct huft { + uch e; /* number of extra bits or operation */ + uch b; /* number of bits in this code or subcode */ + union { +@@ -87,7 +87,7 @@ int inflate(void); + /* unsigned wp; current position in slide */ + + #define WSIZE 0x8000 +-unsigned int wp; /* current position in slide */ ++static unsigned int wp; /* current position in slide */ + uch slide[32768]; + + static int flush_output(unsigned int w) { +@@ -155,8 +155,8 @@ static ush cpdext[] = { /* Extra + the stream. + */ + +-ulg bb; /* bit buffer */ +-unsigned bk; /* bits in bit buffer */ ++static ulg bb; /* bit buffer */ ++static unsigned bk; /* bits in bit buffer */ + + ush mask_bits[] = { + 0x0000, +@@ -201,8 +201,8 @@ ush mask_bits[] = { + */ + + +-int lbits = 9; /* bits in base literal/length lookup table */ +-int dbits = 6; /* bits in base distance lookup table */ ++static int lbits = 9; /* bits in base literal/length lookup table */ ++static int dbits = 6; /* bits in base distance lookup table */ + + + /* If BMAX needs to be larger than 16, then h and x[] should be ulg. */ +@@ -210,7 +210,7 @@ int dbits = 6; /* bits in base + #define N_MAX 288 /* maximum number of codes in any set */ + + +-unsigned hufts; /* track memory usage */ ++static unsigned hufts; /* track memory usage */ + + + static int huft_build(b, n, s, d, e, t, m) diff --git a/argyllcms.changes b/argyllcms.changes index 72ce723..578b09d 100644 --- a/argyllcms.changes +++ b/argyllcms.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Thu Mar 5 02:49:25 CET 2020 - sbrabec@suse.com + +- Update to version 2.1.2: + * Added -d option to spotread to print out Density values. + * Many i1Pro2 fixes. + * Changed targen round down/up to 0%/100% to have a tighter + tollerance of 0.5% rather than 2%, so that -n values of + L* 1 and 99 are not rounded. + * Fix bug in xicclu -v2 option when operating on a .cal file. + * Added -M option to ccxxmake. + * Added -Yk flag to spectro/dispread. + * Fixed bug in xicc/xmatrix.c when creating input profile from + XYZ input data. + * Modified txt2ti3 to cope with files that don't have + SampleName/SampleID fields. + * Added instrument ambient mode (-a flag) to dispcal, dispread + and ccxxmake. + * Fixed latent data sensitivity problem with i1Pro and Munki + Spectro high res-mode. + * Added spotread -rw option. + * Added check in dispwin for sanity of calibration curves. + * Added spectral support to namedc/cxf parser. + * Fixed profile/txt2ti3.c to properly handle i1profiler + SPECTRAL_NMXXX format. + * Changed dispcal ADJ_THRESH mode MIN_THRESH value to 0.25 from + 0.05. +- Fix build with with -fno-common, which is the default in gcc-10 + (bsc#1160256, argyllcms--gcc--fno-common.patch). + ------------------------------------------------------------------- Sun Jan 5 02:53:35 UTC 2020 - Stefan BrĂ¼ns diff --git a/argyllcms.spec b/argyllcms.spec index 44d3829..b5a8a2b 100644 --- a/argyllcms.spec +++ b/argyllcms.spec @@ -1,7 +1,7 @@ # # spec file for package argyllcms # -# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define tarname Argyll Name: argyllcms -Version: 2.1.1 +Version: 2.1.2 Release: 0 Summary: ICC compatible color management system License: AGPL-3.0-only AND GPL-2.0-or-later AND MIT @@ -30,7 +30,8 @@ Source1: 19-color.fdi Source2: color-device-file.policy Source3: ajam-2.5.2-1.3.3.tgz Patch1: ajam-include.patch - +# PATCH-FIX-OPENSUSE argyllcms--gcc--fno-common.patch boo1160256 sbrabec@suse.com -- Fix build with GCC 10. +Patch2: argyllcms--gcc--fno-common.patch BuildRequires: libjpeg-devel BuildRequires: libtiff-devel BuildRequires: libtool @@ -72,8 +73,8 @@ viewer. %package doc Summary: Argyll CMS documentation -Group: System/X11/Utilities # Does not really make sense without Argyll CMS itself +Group: System/X11/Utilities Requires: %{name} = %{version} %description doc @@ -88,6 +89,7 @@ This package contains the Argyll color management system documentation. cd ajam-2.5.2-1.3.3 %patch1 -p1 -b .include cd .. +%patch2 -p1 # remove unused source code rm -fr usb/{*.inf,*.rtf,*.inf,*.cat,*.vcproj,*.sys,*.dsw,*.sln,*.dsp,*template*,WinCo*,winsub*,*kext*,KDRIVER_LICENSE,README_MSVC.txt,msvc,*.cmd,bin,driver,binfiles.*}