From 42bf34298eec19b37e276e49074113f29c494aed Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sun, 31 Jul 2016 18:16:25 +0200 Subject: [PATCH] gnu: rapicorn: Add patch to handle isnan. * gnu/packages/patches/rapicorn-isnan.patch: New file. * gnu/packages/graphics.scm (rapicorn)[source]: Add patch. * gnu/local.mk (dist_patch_DATA): Register patch. --- gnu/local.mk | 1 + gnu/packages/graphics.scm | 4 +- gnu/packages/patches/rapicorn-isnan.patch | 87 +++++++++++++++++++++++ 3 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/rapicorn-isnan.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0ee096ad8a..b91a925def 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -749,6 +749,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-paste-remove-timing-test.patch \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ %D%/packages/patches/qt4-ldflags.patch \ + %D%/packages/patches/rapicorn-isnan.patch \ %D%/packages/patches/ratpoison-shell.patch \ %D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/ripperx-missing-file.patch \ diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index f6298ce394..d0df83072e 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 Andreas Enge ;;; ;;; This file is part of GNU Guix. ;;; @@ -300,7 +301,8 @@ visual effects work for film.") "rapicorn-" version ".tar.xz")) (sha256 (base32 - "1y51yjrpsihas1jy905m9p3r8iiyhq6bwi2690c564i5dnix1f9d")))) + "1y51yjrpsihas1jy905m9p3r8iiyhq6bwi2690c564i5dnix1f9d")) + (patches (search-patches "rapicorn-isnan.patch")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/rapicorn-isnan.patch b/gnu/packages/patches/rapicorn-isnan.patch new file mode 100644 index 0000000000..b0e7819e64 --- /dev/null +++ b/gnu/packages/patches/rapicorn-isnan.patch @@ -0,0 +1,87 @@ +From e0c8341b3e4e13778bcde00d477e461ea8e94306 Mon Sep 17 00:00:00 2001 +From: Stefan Westerfeld +Date: Fri, 22 Apr 2016 18:03:37 +0200 +Subject: [PATCH 031/176] RCORE: compile fixes for KUbuntu 16.04/gcc + 5.3.1-14ubuntu2 + +Rapicorn uses isnan(...) and isinf(...) from cmath.h, however on KUbuntu 16.04 +it should use std::isnan(...) and std::isinf(...) instead. Patch below. + +Acked-by: Tim Janik +--- + rcore/strings.cc | 10 +++++----- + rcore/tests/benchrcore.cc | 4 ++-- + rcore/tests/strings.cc | 4 ++-- + 3 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/rcore/strings.cc b/rcore/strings.cc +index d5b0216..8b3bc3f 100644 +--- a/rcore/strings.cc ++++ b/rcore/strings.cc +@@ -437,7 +437,7 @@ static long double + libc_strtold (const char *nptr, char **endptr) + { + const long double result = strtold (nptr, endptr); +- if (isnan (result) && std::signbit (result) == 0) ++ if (std::isnan (result) && std::signbit (result) == 0) + { + const char *p = nptr; + while (isspace (*p)) +@@ -500,9 +500,9 @@ string_to_double (const char *dblstring, const char **endptr) + String + string_from_float (float value) + { +- if (isnan (value)) ++ if (std::isnan (value)) + return std::signbit (value) ? "-NaN" : "+NaN"; +- if (isinf (value)) ++ if (std::isinf (value)) + return std::signbit (value) ? "-Infinity" : "+Infinity"; + return string_format ("%.7g", value); + } +@@ -511,9 +511,9 @@ string_from_float (float value) + String + string_from_double (double value) + { +- if (isnan (value)) ++ if (std::isnan (value)) + return std::signbit (value) ? "-NaN" : "+NaN"; +- if (isinf (value)) ++ if (std::isinf (value)) + return std::signbit (value) ? "-Infinity" : "+Infinity"; + return string_format ("%.17g", value); + } +diff --git a/rcore/tests/benchrcore.cc b/rcore/tests/benchrcore.cc +index 3899a08..12fde16 100644 +--- a/rcore/tests/benchrcore.cc ++++ b/rcore/tests/benchrcore.cc +@@ -188,8 +188,8 @@ test_random_numbers() + const double rf = random_frange (989617512, 9876547656); + TASSERT (rf >= 989617512 && rf < 9876547656); + } +- TASSERT (isnan (random_frange (NAN, 1))); +- TASSERT (isnan (random_frange (0, NAN))); ++ TASSERT (std::isnan (random_frange (NAN, 1))); ++ TASSERT (std::isnan (random_frange (0, NAN))); + #if 0 // example penalty paid in random_int64() + size_t i, j = 0; + for (i = 0; i < 100; i++) +diff --git a/rcore/tests/strings.cc b/rcore/tests/strings.cc +index 468a6e6..dae3e3d 100644 +--- a/rcore/tests/strings.cc ++++ b/rcore/tests/strings.cc +@@ -311,9 +311,9 @@ string_conversions (void) + TCMP (string_to_double ("-0.5"), ==, -0.5); + double tfloat; + tfloat = string_to_double ("+NAN"); +- assert (isnan (tfloat) && std::signbit (tfloat) == 0); ++ assert (std::isnan (tfloat) && std::signbit (tfloat) == 0); + tfloat = string_to_double ("-NAN"); +- assert (isnan (tfloat) && std::signbit (tfloat) == 1); ++ assert (std::isnan (tfloat) && std::signbit (tfloat) == 1); + TCMP (string_capitalize ("fOO bar"), ==, "Foo Bar"); + TCMP (string_capitalize ("foo BAR BAZ", 2), ==, "Foo Bar BAZ"); + } +-- +2.9.1 +