commit:     a1b87a4250380f9fbc024147fa32eb679bd76848
Author:     Virgil Dupras <vdupras <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 21 01:10:18 2018 +0000
Commit:     Virgil Dupras <vdupras <AT> gentoo <DOT> org>
CommitDate: Fri Dec 21 01:10:18 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a1b87a42

app-text/mupdf: fix build errors on big endian arches

Closes: https://bugs.gentoo.org/672998
Signed-off-by: Virgil Dupras <vdupras <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11

 .../mupdf/files/mupdf-1.14-fix-big-endian.patch    | 125 +++++++++++++++++++++
 app-text/mupdf/mupdf-1.14.0-r2.ebuild              |   2 +
 2 files changed, 127 insertions(+)

diff --git a/app-text/mupdf/files/mupdf-1.14-fix-big-endian.patch 
b/app-text/mupdf/files/mupdf-1.14-fix-big-endian.patch
new file mode 100644
index 00000000000..dc472153ca6
--- /dev/null
+++ b/app-text/mupdf/files/mupdf-1.14-fix-big-endian.patch
@@ -0,0 +1,125 @@
+vdupras note: exact same patch as in
+https://bugs.ghostscript.com/show_bug.cgi?id=699395 except for tweaked
+diff paths.
+From 5fb79e6ccb805b3d94c8bb8eb0990d9944ae7602 Mon Sep 17 00:00:00 2001
+Message-Id: 
<5fb79e6ccb805b3d94c8bb8eb0990d9944ae7602.1528041417.git....@fedoraproject.org>
+From: Michael J Gruber <m...@fedoraproject.org>
+Date: Sun, 3 Jun 2018 17:55:46 +0200
+Subject: [PATCH] fix build on big endian
+
+0dc1153 ("Spread of context into all procedures and removal from
+structures", 2017-04-26) missed a few spots that are relevant on big
+endian only.
+
+Add the missing ContextIDs in the call chain so that the build succeeds
+again.
+
+Signed-off-by: Michael J Gruber <m...@fedoraproject.org>
+---
+ src/cmsmd5.c | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/src/cmsmd5.c b/src/cmsmd5.c
+index 4b8f7f9..dd0925a 100644
+--- a/thirdparty/lcms2/src/cmsmd5.c
++++ b/thirdparty/lcms2/src/cmsmd5.c
+@@ -29,7 +29,7 @@
+ #ifdef CMS_USE_BIG_ENDIAN
+ 
+ static
+-void byteReverse(cmsUInt8Number * buf, cmsUInt32Number longs)
++void byteReverse(cmsContext ContextID, cmsUInt8Number * buf, cmsUInt32Number 
longs)
+ {
+     do {
+ 
+@@ -42,7 +42,7 @@ void byteReverse(cmsUInt8Number * buf, cmsUInt32Number longs)
+ }
+ 
+ #else
+-#define byteReverse(buf, len)
++#define byteReverse(ContextID, buf, len)
+ #endif
+ 
+ 
+@@ -172,7 +172,7 @@ cmsHANDLE  MD5alloc(cmsContext ContextID)
+ 
+ 
+ static
+-void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, cmsUInt32Number len)
++void MD5add(cmsContext ContextID, cmsHANDLE Handle, cmsUInt8Number* buf, 
cmsUInt32Number len)
+ {
+     _cmsMD5* ctx = (_cmsMD5*) Handle;
+     cmsUInt32Number t;
+@@ -196,7 +196,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, 
cmsUInt32Number len)
+         }
+ 
+         memmove(p, buf, t);
+-        byteReverse(ctx->in, 16);
++        byteReverse(ContextID, ctx->in, 16);
+ 
+         MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in);
+         buf += t;
+@@ -205,7 +205,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, 
cmsUInt32Number len)
+ 
+     while (len >= 64) {
+         memmove(ctx->in, buf, 64);
+-        byteReverse(ctx->in, 16);
++        byteReverse(ContextID, ctx->in, 16);
+         MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in);
+         buf += 64;
+         len -= 64;
+@@ -216,7 +216,7 @@ void MD5add(cmsHANDLE Handle, cmsUInt8Number* buf, 
cmsUInt32Number len)
+ 
+ // Destroy the object and return the checksum
+ static
+-void MD5finish(cmsProfileID* ProfileID,  cmsHANDLE Handle)
++void MD5finish(cmsContext ContextID, cmsProfileID* ProfileID,  cmsHANDLE 
Handle)
+ {
+     _cmsMD5* ctx = (_cmsMD5*) Handle;
+     cmsUInt32Number count;
+@@ -232,21 +232,21 @@ void MD5finish(cmsProfileID* ProfileID,  cmsHANDLE 
Handle)
+     if (count < 8) {
+ 
+         memset(p, 0, count);
+-        byteReverse(ctx->in, 16);
++        byteReverse(ContextID, ctx->in, 16);
+         MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in);
+ 
+         memset(ctx->in, 0, 56);
+     } else {
+         memset(p, 0, count - 8);
+     }
+-    byteReverse(ctx->in, 14);
++    byteReverse(ContextID, ctx->in, 14);
+ 
+     ((cmsUInt32Number *) ctx->in)[14] = ctx->bits[0];
+     ((cmsUInt32Number *) ctx->in)[15] = ctx->bits[1];
+ 
+     MD5_Transform(ctx->buf, (cmsUInt32Number *) ctx->in);
+ 
+-    byteReverse((cmsUInt8Number *) ctx->buf, 4);
++    byteReverse(ContextID, (cmsUInt8Number *) ctx->buf, 4);
+     memmove(ProfileID ->ID8, ctx->buf, 16);
+ 
+     _cmsFree(ctx ->ContextID, ctx);
+@@ -291,7 +291,7 @@ cmsBool CMSEXPORT cmsMD5computeID(cmsContext ContextID, 
cmsHPROFILE hProfile)
+     if (MD5 == NULL) goto Error;
+ 
+     // Add all bytes
+-    MD5add(MD5, Mem, BytesNeeded);
++    MD5add(ContextID,MD5, Mem, BytesNeeded);
+ 
+     // Temp storage is no longer needed
+     _cmsFree(ContextID, Mem);
+@@ -300,7 +300,7 @@ cmsBool CMSEXPORT cmsMD5computeID(cmsContext ContextID, 
cmsHPROFILE hProfile)
+     memmove(Icc, &Keep, sizeof(_cmsICCPROFILE));
+ 
+     // And store the ID
+-    MD5finish(&Icc ->ProfileID,  MD5);
++    MD5finish(ContextID, &Icc ->ProfileID,  MD5);
+     return TRUE;
+ 
+ Error:
+-- 
+2.18.0.rc0.294.g786209a621
+

diff --git a/app-text/mupdf/mupdf-1.14.0-r2.ebuild 
b/app-text/mupdf/mupdf-1.14.0-r2.ebuild
index 74cadb6f860..d6f2331ad66 100644
--- a/app-text/mupdf/mupdf-1.14.0-r2.ebuild
+++ b/app-text/mupdf/mupdf-1.14.0-r2.ebuild
@@ -45,6 +45,8 @@ PATCHES=(
        "${FILESDIR}"/${PN}-1.10a-add-desktop-pc-xpm-files.patch
        # See bug #662352
        "${FILESDIR}"/${PN}-1.14-openssl-curl-x11.patch
+       # bug #672998
+       "${FILESDIR}"/${PN}-1.14-fix-big-endian.patch
 )
 
 src_prepare() {

Reply via email to