gnu: fltk: Fix undefined symbol errors for shared libraries.
authorEric Bavier <bavier@member.fsf.org>
Tue, 5 May 2015 05:38:59 +0000 (00:38 -0500)
committerEric Bavier <bavier@member.fsf.org>
Tue, 5 May 2015 05:52:53 +0000 (00:52 -0500)
* gnu/packages/patches/fltk-shared-lib-defines.patch: New patch.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/fltk.scm (source)[patches]: New field.

gnu-system.am
gnu/packages/fltk.scm
gnu/packages/patches/fltk-shared-lib-defines.patch [new file with mode: 0644]

index 0644a64..798188f 100644 (file)
@@ -418,6 +418,7 @@ dist_patch_DATA =                                           \
   gnu/packages/patches/findutils-absolute-paths.patch          \
   gnu/packages/patches/flashrom-use-libftdi1.patch             \
   gnu/packages/patches/flex-bison-tests.patch                  \
+  gnu/packages/patches/fltk-shared-lib-defines.patch           \
   gnu/packages/patches/gawk-shell.patch                                \
   gnu/packages/patches/gcc-arm-link-spec-fix.patch             \
   gnu/packages/patches/gcc-cross-environment-variables.patch   \
index 1ac1f25..cbd9d00 100644 (file)
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
+;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,6 +19,7 @@
 
 (define-module (gnu packages fltk)
   #:use-module (guix licenses)
+  #:use-module (gnu packages)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages gl)
   #:use-module (guix packages)
@@ -35,7 +37,8 @@
                           "/fltk-" version "-source.tar.gz"))
       (sha256
        (base32
-        "15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq"))))
+        "15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq"))
+      (patches (list (search-patch "fltk-shared-lib-defines.patch")))))
    (build-system gnu-build-system)
     (inputs
       `(("libx11" ,libx11)
diff --git a/gnu/packages/patches/fltk-shared-lib-defines.patch b/gnu/packages/patches/fltk-shared-lib-defines.patch
new file mode 100644 (file)
index 0000000..d36a50f
--- /dev/null
@@ -0,0 +1,51 @@
+This patch from upstream revision 10588.
+
+--- fltk-1.3.3/src/Xutf8.h
++++ fltk-1.3.3/src/Xutf8.h
+@@ -25,6 +25,7 @@
+ #include <X11/Xlib.h>
+ #include <X11/Xlocale.h>
+ #include <X11/Xutil.h>
++#include <FL/Fl_Export.H>
+ typedef struct {
+       int nb_font;
+@@ -98,8 +99,8 @@
+       XUtf8FontStruct  *font_set,
+       unsigned int            ucs);
+-int
+-XGetUtf8FontAndGlyph(
++FL_EXPORT int
++fl_XGetUtf8FontAndGlyph(
+         XUtf8FontStruct  *font_set,
+         unsigned int            ucs,
+         XFontStruct     **fnt,
+--- fltk-1.3.3/src/gl_draw.cxx
++++ fltk-1.3.3/src/gl_draw.cxx
+@@ -114,7 +114,7 @@
+   for (int i = 0; i < 0x400; i++) {
+     XFontStruct *font = NULL;
+     unsigned short id;
+-    XGetUtf8FontAndGlyph(gl_fontsize->font, ii, &font, &id);
++    fl_XGetUtf8FontAndGlyph(gl_fontsize->font, ii, &font, &id);
+     if (font) glXUseXFont(font->fid, id, 1, gl_fontsize->listbase+ii);
+     ii++;
+    }
+--- fltk-1.3.3/src/xutf8/utf8Wrap.c
++++ fltk-1.3.3/src/xutf8/utf8Wrap.c
+@@ -816,10 +816,10 @@
+ /**  get the X font and glyph ID of a UCS char                              **/
+ /*****************************************************************************/
+ int
+-XGetUtf8FontAndGlyph(XUtf8FontStruct  *font_set,
+-                   unsigned int     ucs,
+-                   XFontStruct      **fnt,
+-                   unsigned short   *id) {
++fl_XGetUtf8FontAndGlyph(XUtf8FontStruct  *font_set,
++                      unsigned int     ucs,
++                      XFontStruct      **fnt,
++                      unsigned short   *id) {
+   /* int             x; */
+   int             *encodings; /* encodings array */