fix lcms2art build on big endian
The bundled Artifex version of lcms2 did not build on big endian due to their incomplete addition of a context call chain. Fix it.
This commit is contained in:
parent
e18ba2a4be
commit
c7a5946e7f
|
@ -0,0 +1,122 @@
|
|||
From 5fb79e6ccb805b3d94c8bb8eb0990d9944ae7602 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <5fb79e6ccb805b3d94c8bb8eb0990d9944ae7602.1528041417.git.mjg@fedoraproject.org>
|
||||
From: Michael J Gruber <mjg@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 <mjg@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/src/cmsmd5.c
|
||||
+++ b/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
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
Name: mupdf
|
||||
Version: 1.13.0
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
Summary: A lightweight PDF viewer and toolkit
|
||||
Group: Applications/Publishing
|
||||
License: GPLv3
|
||||
|
@ -17,8 +17,9 @@ BuildRequires: mesa-libGL-devel mesa-libGLU-devel libXi-devel libXrandr-devel
|
|||
# to integrate Artifex's changes.
|
||||
Provides: bundled(lcms2-devel) = 2.9
|
||||
# We need to build against the Artifex fork of freeglut so that we are unicode safe.
|
||||
Provides: bundled(freeglut)-devel) = 3.0.0
|
||||
Provides: bundled(freeglut)-devel) = 3.0.0
|
||||
Patch0: %{name}-1.13-openjpeg.patch
|
||||
Patch1: 0001-fix-build-on-big-endian.patch
|
||||
|
||||
%description
|
||||
MuPDF is a lightweight PDF viewer and toolkit written in portable C.
|
||||
|
@ -52,6 +53,7 @@ do
|
|||
rm -rf thirdparty/$d
|
||||
done
|
||||
%patch0 -p1
|
||||
%patch1 -p1 -d thirdparty/lcms2
|
||||
|
||||
%build
|
||||
export XCFLAGS="%{optflags} -fPIC -DJBIG_NO_MEMENTO -DTOFU -DTOFU_CJK"
|
||||
|
@ -90,6 +92,9 @@ update-desktop-database &> /dev/null || :
|
|||
%{_libdir}/lib%{name}*.a
|
||||
|
||||
%changelog
|
||||
* Sun Jun 03 2018 Michael J Gruber <mjg@fedoraproject.org> - 1.13.0-6
|
||||
- fix lcms2art build on big endian
|
||||
|
||||
* Fri May 18 2018 Michael J Gruber <mjg@fedoraproject.org> - 1.13.0-5
|
||||
- fix BR (pulled in by freeglut-devel before)
|
||||
|
||||
|
|
Loading…
Reference in New Issue