~ruther/guix-local

a34816ef6e0abc91530701afe9d112da54edd499 — Andreas Enge 11 years ago cc9b70d
gnu: chmlib: Patch for compilation on mips.

* gnu/packages/patches/chmlib-inttypes.patch: New file.
* gnu-system.am (dist_patch_DATA): Register patch.
* gnu/packages/ebook.scm (chmlib): Apply patch.
3 files changed, 66 insertions(+), 3 deletions(-)

M gnu-system.am
M gnu/packages/ebook.scm
A gnu/packages/patches/chmlib-inttypes.patch
M gnu-system.am => gnu-system.am +2 -1
@@ 1,6 1,6 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
# Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
# Copyright © 2013, 2014, 2015 Mark H Weaver <mhw@netris.org>
#
# This file is part of GNU Guix.


@@ 362,6 362,7 @@ dist_patch_DATA =						\
  gnu/packages/patches/binutils-ld-new-dtags.patch		\
  gnu/packages/patches/binutils-loongson-workaround.patch	\
  gnu/packages/patches/cdparanoia-fpic.patch			\
  gnu/packages/patches/chmlib-inttypes.patch			\
  gnu/packages/patches/clucene-pkgconfig.patch			\
  gnu/packages/patches/cmake-fix-tests.patch			\
  gnu/packages/patches/coreutils-dummy-man.patch		\

M gnu/packages/ebook.scm => gnu/packages/ebook.scm +4 -2
@@ 20,7 20,8 @@
  #:use-module ((guix licenses) #:select (lgpl2.1+))
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu))
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages))

(define-public chmlib
  (package


@@ 32,7 33,8 @@
                                 version ".tar.bz2"))
             (sha256
               (base32
                "18zzb4x3z0d7fjh1x5439bs62dmgsi4c1pg3qyr7h5gp1i5xcj9l"))))
                "18zzb4x3z0d7fjh1x5439bs62dmgsi4c1pg3qyr7h5gp1i5xcj9l"))
             (patches (list (search-patch "chmlib-inttypes.patch")))))
    (build-system gnu-build-system)
    (home-page "http://www.jedrea.com/chmlib/")
    (synopsis "Library for CHM files")

A gnu/packages/patches/chmlib-inttypes.patch => gnu/packages/patches/chmlib-inttypes.patch +60 -0
@@ 0,0 1,60 @@
Taken from Debian, necessary for compilation on mips.

Patch to fix integer types problem by Goswin von Brederlow
<brederlo@informatik.uni-tuebingen.de> (#258444)
--- chmlib-0.39.orig/src/chm_lib.c
+++ chmlib-0.39/src/chm_lib.c
@@ -56,6 +56,7 @@
 
 #include "lzx.h"
 
+#include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
 #ifdef CHM_DEBUG
@@ -149,22 +150,9 @@
 typedef __int64                 Int64;
 typedef unsigned __int64        UInt64;
 
-/* I386, 32-bit, non-Windows */
-/* Sparc        */
-/* MIPS         */
-/* PPC          */
-#elif __i386__ || __sun || __sgi || __ppc__
-typedef unsigned char           UChar;
-typedef short                   Int16;
-typedef unsigned short          UInt16;
-typedef long                    Int32;
-typedef unsigned long           UInt32;
-typedef long long               Int64;
-typedef unsigned long long      UInt64;
-
 /* x86-64 */
 /* Note that these may be appropriate for other 64-bit machines. */
-#elif __x86_64__ || __ia64__
+#elif defined(__LP64__)
 typedef unsigned char           UChar;
 typedef short                   Int16;
 typedef unsigned short          UInt16;
@@ -173,10 +161,18 @@
 typedef long                    Int64;
 typedef unsigned long           UInt64;
 
+/* I386, 32-bit, non-Windows */
+/* Sparc        */
+/* MIPS         */
+/* PPC          */
 #else
-
-/* yielding an error is preferable to yielding incorrect behavior */
-#error "Please define the sized types for your platform in chm_lib.c"
+typedef unsigned char           UChar;
+typedef short                   Int16;
+typedef unsigned short          UInt16;
+typedef long                    Int32;
+typedef unsigned long           UInt32;
+typedef long long               Int64;
+typedef unsigned long long      UInt64;
 #endif
 
 /* GCC */