1 |
commit: 98cddc12ba0bbc204444db2162389fa1b430a14e |
2 |
Author: Sam James <sam <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Feb 3 10:50:10 2022 +0000 |
4 |
Commit: Sam James <sam <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Feb 3 10:50:10 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=98cddc12 |
7 |
|
8 |
media-libs/lcms: backport grayscale regression fix |
9 |
|
10 |
Closes: https://bugs.gentoo.org/832520 |
11 |
Signed-off-by: Sam James <sam <AT> gentoo.org> |
12 |
|
13 |
.../files/lcms-2.13-grayscale-regression.patch | 38 ++++++++++++++++++++++ |
14 |
.../lcms/{lcms-2.13.ebuild => lcms-2.13-r1.ebuild} | 4 +++ |
15 |
2 files changed, 42 insertions(+) |
16 |
|
17 |
diff --git a/media-libs/lcms/files/lcms-2.13-grayscale-regression.patch b/media-libs/lcms/files/lcms-2.13-grayscale-regression.patch |
18 |
new file mode 100644 |
19 |
index 000000000000..d1ce0483ee6f |
20 |
--- /dev/null |
21 |
+++ b/media-libs/lcms/files/lcms-2.13-grayscale-regression.patch |
22 |
@@ -0,0 +1,38 @@ |
23 |
+https://github.com/mm2/Little-CMS/commit/fdbfb7694f9d7048d53674b79ddfc38068bfdaf7 |
24 |
+https://bugs.gentoo.org/832520 |
25 |
+ |
26 |
+From: Marti Maria <marti.maria@×××××××××.com> |
27 |
+Date: Sun, 30 Jan 2022 16:56:48 +0100 |
28 |
+Subject: [PATCH] Fix for optimisation error on grayscale |
29 |
+ |
30 |
+Thanks to Aaron Boxer for reporting this issue |
31 |
+--- a/src/cmsintrp.c |
32 |
++++ b/src/cmsintrp.c |
33 |
+@@ -278,10 +278,10 @@ void Eval1Input(CMSREGISTER const cmsUInt16Number Input[], |
34 |
+ // if last value... |
35 |
+ if (Input[0] == 0xffff || p16->Domain[0] == 0) { |
36 |
+ |
37 |
+- cmsUInt16Number y0 = LutTable[p16->Domain[0]]; |
38 |
+- |
39 |
++ cmsUInt32Number y0 = p16->Domain[0] * p16->opta[0]; |
40 |
++ |
41 |
+ for (OutChan = 0; OutChan < p16->nOutputs; OutChan++) { |
42 |
+- Output[OutChan] = y0; |
43 |
++ Output[OutChan] = LutTable[y0 + OutChan]; |
44 |
+ } |
45 |
+ } |
46 |
+ else |
47 |
+@@ -324,10 +324,10 @@ void Eval1InputFloat(const cmsFloat32Number Value[], |
48 |
+ // if last value... |
49 |
+ if (val2 == 1.0 || p->Domain[0] == 0) { |
50 |
+ |
51 |
+- y0 = LutTable[p->Domain[0]]; |
52 |
++ cmsUInt32Number start = p->Domain[0] * p->opta[0]; |
53 |
+ |
54 |
+ for (OutChan = 0; OutChan < p->nOutputs; OutChan++) { |
55 |
+- Output[OutChan] = y0; |
56 |
++ Output[OutChan] = LutTable[start + OutChan]; |
57 |
+ } |
58 |
+ } |
59 |
+ else |
60 |
+ |
61 |
|
62 |
diff --git a/media-libs/lcms/lcms-2.13.ebuild b/media-libs/lcms/lcms-2.13-r1.ebuild |
63 |
similarity index 95% |
64 |
rename from media-libs/lcms/lcms-2.13.ebuild |
65 |
rename to media-libs/lcms/lcms-2.13-r1.ebuild |
66 |
index 592a2703d159..5ffc35b8645b 100644 |
67 |
--- a/media-libs/lcms/lcms-2.13.ebuild |
68 |
+++ b/media-libs/lcms/lcms-2.13-r1.ebuild |
69 |
@@ -25,6 +25,10 @@ RDEPEND=" |
70 |
" |
71 |
DEPEND="${RDEPEND}" |
72 |
|
73 |
+PATCHES=( |
74 |
+ "${FILESDIR}"/${P}-grayscale-regression.patch |
75 |
+) |
76 |
+ |
77 |
src_prepare() { |
78 |
default |