summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2015-05-05 00:38:59 -0500
committerEric Bavier <bavier@member.fsf.org>2015-05-05 00:52:53 -0500
commit401f9a8b15b126dc6b8a357474f89ae7cb915601 (patch)
tree0dd539ec0e95cda39bca68b5e76120d627d05838
parent21481a284af7b7e9ad33fe072fde9d2ee3274017 (diff)
downloadguix-401f9a8b15b126dc6b8a357474f89ae7cb915601.tar.gz
gnu: fltk: Fix undefined symbol errors for shared libraries.
* 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.
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/fltk.scm5
-rw-r--r--gnu/packages/patches/fltk-shared-lib-defines.patch51
3 files changed, 56 insertions, 1 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 0644a649a3..798188f7e7 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -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	\
diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm
index 1ac1f2507e..cbd9d00e8c 100644
--- a/gnu/packages/fltk.scm
+++ b/gnu/packages/fltk.scm
@@ -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
index 0000000000..d36a50ff5e
--- /dev/null
+++ b/gnu/packages/patches/fltk-shared-lib-defines.patch
@@ -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 */