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
This commit is contained in:
Stanislav Brabec 2020-03-05 03:54:10 +00:00 committed by Git OBS Bridge
parent 9addb59370
commit cebe1578f5
5 changed files with 172 additions and 7 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:51269bcafc4d95679354b796685c3f0a41b44b78443cbe360cda4a2d72f32acb
size 13825860

3
Argyll_V2.1.2_src.zip Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be378ca836b17b8684db05e9feaab138d711835ef00a04a76ac0ceacd386a3e3
size 13837056

View File

@ -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)

View File

@ -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 <stefan.bruens@rwth-aachen.de>

View File

@ -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.*}