unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Leo Famulari <leo@famulari.name>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: rennes@openmailbox.org, 22049@debbugs.gnu.org
Subject: bug#22049: libreoffice compile error
Date: Tue, 1 Mar 2016 13:01:48 -0500	[thread overview]
Message-ID: <20160301180148.GB5055@jasmine> (raw)
In-Reply-To: <20160301172445.GB6052@jasmine>

[-- Attachment #1: Type: text/plain, Size: 1433 bytes --]

On Tue, Mar 01, 2016 at 12:24:45PM -0500, Leo Famulari wrote:
> On Tue, Mar 01, 2016 at 02:36:24PM +0100, Ludovic Courtès wrote:
> > Leo Famulari <leo@famulari.name> skribis:
> > 
> > > From bf1f2a1c3621ba93ec99711ec78a79663acb6e82 Mon Sep 17 00:00:00 2001
> > > Message-Id: <bf1f2a1c3621ba93ec99711ec78a79663acb6e82.1456734966.git.leo@famulari.name>
> > > From: Leo Famulari <leo@famulari.name>
> > > Date: Mon, 29 Feb 2016 02:23:43 -0500
> > > Subject: [PATCH 1/1] gnu: ilmbase: Add patches to fix build on i686.
> > >
> > > Fixes <http://bugs.gnu.org/22049>.
> > >
> > > * gnu/packages/patches/ilmbase-testBox.patch,
> > > gnu/packages/patches/ilmbase-testBoxAlgo.patch: New files.
> > > * gnu-system.am (dist_patch_DATA): Add them.
> > > * gnu/packages/graphics.scm (ilmbase)[native-inputs]: Add patch/testBox
> > > and patch/testBoxAlgo.
> > > [arguments]: Add 'patch-for-i686' phase.
> > 
> > Cool!
> > 
> > I think it’d be reasonable to squash both patches in one file, and to
> > apply it unconditionally.  WDYT?
> 
> Sure, I'll send an updated patch.

Attached.

> 
> I'm wondering — does the current patch handle the conditional
> application of the patch properly? Just looking for some feedback on the
> approach...
> 
> > 
> > So I gather upgrading to IlmBase 2.0.1 is not an option?
> 
> 2.0.1 would be a downgrade for us; we are on 2.2.0. I did try it without
> success.
> 
> > 
> > Thanks,
> > Ludo’.
> 
> 
> 

[-- Attachment #2: 0001-gnu-ilmbase-Add-patch-to-fix-build-on-i686.patch --]
[-- Type: text/x-diff, Size: 6893 bytes --]

From 2f895108a3f476038b82e03645ee7f51e4ee1675 Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Mon, 29 Feb 2016 02:23:43 -0500
Subject: [PATCH] gnu: ilmbase: Add patch to fix build on i686.

Fixes <http://bugs.gnu.org/22049>.

* gnu/packages/patches/ilmbase-fix-tests.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/graphics.scm (ilmbase)[source]: Add patch.
---
 gnu-system.am                                |   1 +
 gnu/packages/graphics.scm                    |   4 +-
 gnu/packages/patches/ilmbase-fix-tests.patch | 149 +++++++++++++++++++++++++++
 3 files changed, 153 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/ilmbase-fix-tests.patch

diff --git a/gnu-system.am b/gnu-system.am
index 7cfc485..5e2be0b 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -529,6 +529,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/icu4c-CVE-2014-6585.patch		\
   gnu/packages/patches/icu4c-CVE-2015-1270.patch		\
   gnu/packages/patches/icu4c-CVE-2015-4760.patch		\
+  gnu/packages/patches/ilmbase-fix-texts.patch			\
   gnu/packages/patches/imagemagick-test-segv.patch		\
   gnu/packages/patches/irrlicht-mesa-10.patch			\
   gnu/packages/patches/jasper-CVE-2007-2721.patch		\
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 560febe..3fdf07d 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -89,7 +90,8 @@ many more.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c"))))
+                "1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c"))
+              (patches (map search-patch '("ilmbase-fix-tests.patch")))))
     (build-system gnu-build-system)
     (home-page "http://www.openexr.com/")
     (synopsis "Utility C++ libraries for threads, maths, and exceptions")
diff --git a/gnu/packages/patches/ilmbase-fix-tests.patch b/gnu/packages/patches/ilmbase-fix-tests.patch
new file mode 100644
index 0000000..fcaa37d
--- /dev/null
+++ b/gnu/packages/patches/ilmbase-fix-tests.patch
@@ -0,0 +1,149 @@
+Fix FTBFS on i686-linux due to rounding issue (see references).
+
+Fixes Guix bug #22049 (see below).
+
+Copied from Debian.
+
+Source:
+https://sources.debian.net/src/ilmbase/2.2.0-11/debian/patches/testBoxAlgo.patch/
+https://sources.debian.net/src/ilmbase/2.2.0-11/debian/patches/testBox.patch/
+
+References:
+https://lists.nongnu.org/archive/html/openexr-devel/2015-12/msg00001.html
+https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22049
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815712
+https://anonscm.debian.org/cgit/pkg-phototools/ilmbase.git/commit/?id=ab28bb45cdad8adc32e345b777ab8e692b1d9a9c
+
+---
+
+Subject: testBoxAlgo: allow fuzzy match of b12 == b2
+From: Steven Chamberlain <steven@pyro.eu.org>
+Date: Wed, 24 Feb 2016 01:04:11 +0000
+
+Also fix a pre-existing typo.
+
+Index: ilmbase/ImathTest/testBoxAlgo.cpp
+===================================================================
+--- ilmbase.orig/ImathTest/testBoxAlgo.cpp
++++ ilmbase/ImathTest/testBoxAlgo.cpp
+@@ -886,10 +886,11 @@ boxMatrixTransform ()
+ 
+     assert (approximatelyEqual (b2.min, b4.min, e));
+     assert (approximatelyEqual (b2.max, b4.max, e));
+-    assert (approximatelyEqual (b3.max, b4.max, e));
++    assert (approximatelyEqual (b3.min, b4.min, e));
+     assert (approximatelyEqual (b3.max, b4.max, e));
+ 
+-    assert (b21 == b2);
++    assert (approximatelyEqual (b2.min, b21.min, e));
++    assert (approximatelyEqual (b2.max, b21.max, e));
+     assert (b31 == b3);
+ 
+     M[0][3] = 1;
+
+---
+
+Subject: testBox: allow fuzzy comparison of floats, doubles
+From: Steven Chamberlain <steven@pyro.eu.org>
+Date: Wed, 24 Feb 2016 01:10:11 +0000
+
+Allow for inexact values, as long as the error is smaller than the
+epsilon of the data type.
+
+On 32-bit x86, allow even greater discrepency at double
+precision, due to possible double-rounding.  See
+https://lists.nongnu.org/archive/html/openexr-devel/2015-12/msg00001.html
+
+Index: ilmbase/ImathTest/testBox.cpp
+===================================================================
+--- ilmbase.orig/ImathTest/testBox.cpp
++++ ilmbase/ImathTest/testBox.cpp
+@@ -47,6 +47,58 @@ using namespace IMATH_INTERNAL_NAMESPACE
+ 
+ namespace {
+ 
++template <class T>
++bool
++approximatelyEqual (const T &p1, const T &p2)
++{
++	/* int and short should be exact */
++	return (p1 == p2);
++}
++
++bool
++approximatelyEqual (const Vec2<float> &p1, const Vec2<float> &p2)
++{
++    float e = limits<float>::epsilon();
++    float m = 0;
++
++    for (int i = 0; i < 2; ++i)
++    {
++	m = max (m, abs (p1[i]));
++	m = max (m, abs (p2[i]));
++    }
++
++    for (int i = 0; i < 2; ++i)
++	if (!equalWithAbsError (p1[i], p2[i], m * e))
++	    return false;
++
++    return true;
++}
++
++bool
++approximatelyEqual (const Vec2<double> &p1, const Vec2<double> &p2)
++{
++#if defined(__i386__) || defined(_M_IX86)
++    /* double-rounding on 32-bit x86 may cause larger error:
++       use epsilon of float rather than double */
++    double e = limits<float>::epsilon();
++#else
++    double e = limits<double>::epsilon();
++#endif
++    double m = 0;
++
++    for (int i = 0; i < 2; ++i)
++    {
++	m = max (m, abs (p1[i]));
++	m = max (m, abs (p2[i]));
++    }
++
++    for (int i = 0; i < 2; ++i)
++	if (!equalWithAbsError (p1[i], p2[i], m * e))
++	    return false;
++
++    return true;
++}
++
+ //
+ // Test case generation utility - create a vector of IMATH_INTERNAL_NAMESPACE::Vec{2,3,4}
+ // with all permutations of integers 1..T::dimensions().
+@@ -250,7 +302,8 @@ testExtendByPoint(const char *type)
+                               
+         IMATH_INTERNAL_NAMESPACE::Box<T> b;
+         b.extendBy(p);
+-        assert(b.min == p && b.max == p);
++        assert (approximatelyEqual (b.min, p));
++        assert (approximatelyEqual (b.max, p));
+     }
+ 
+     //
+@@ -283,7 +336,8 @@ testExtendByPoint(const char *type)
+ 
+             b.extendBy(p);
+ 
+-            assert(b.min == min && b.max == max);
++            assert (approximatelyEqual (b.min, min));
++            assert (approximatelyEqual (b.max, max));
+         }
+     }
+ }
+@@ -358,7 +412,8 @@ testExtendByBox(const char *type)
+             }
+             b.extendBy(IMATH_INTERNAL_NAMESPACE::Box<T>(p0, p1));
+ 
+-            assert(b.min == min && b.max == max);
++            assert (approximatelyEqual (b.min, min));
++            assert (approximatelyEqual (b.max, max));
+         }
+     }
+ }
-- 
2.7.1


  reply	other threads:[~2016-03-01 18:02 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-29  3:42 bug#22049: libreoffice compile error rennes
2015-11-29 15:02 ` Ludovic Courtès
2015-11-29 16:50   ` rennes
2015-11-30 19:56     ` Leo Famulari
2015-11-30 20:14       ` Ludovic Courtès
2015-12-01  5:58         ` Leo Famulari
2015-12-03 20:01           ` Leo Famulari
2015-12-04 11:59             ` Ludovic Courtès
2016-02-28 18:06       ` Ludovic Courtès
2016-02-29  8:35         ` Leo Famulari
2016-02-29  8:37           ` Leo Famulari
2016-03-01 13:36             ` Ludovic Courtès
2016-03-01 17:24               ` Leo Famulari
2016-03-01 18:01                 ` Leo Famulari [this message]
2016-03-01 20:36                   ` Ludovic Courtès
2016-03-02  0:20                     ` Leo Famulari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160301180148.GB5055@jasmine \
    --to=leo@famulari.name \
    --cc=22049@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    --cc=rennes@openmailbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).