summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/fltk.scm3
-rw-r--r--gnu/packages/patches/fltk-xfont-on-demand.patch45
3 files changed, 48 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 3cdf5e45ed..80017ea354 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -477,6 +477,7 @@ dist_patch_DATA =						\
   gnu/packages/patches/flashrom-use-libftdi1.patch		\
   gnu/packages/patches/flint-ldconfig.patch			\
   gnu/packages/patches/fltk-shared-lib-defines.patch		\
+  gnu/packages/patches/fltk-xfont-on-demand.patch		\
   gnu/packages/patches/fontforge-svg-modtime.patch		\
   gnu/packages/patches/freeimage-CVE-2015-0852.patch		\
   gnu/packages/patches/gawk-fts-test.patch			\
diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm
index a0180c0432..bc6b4ab5e6 100644
--- a/gnu/packages/fltk.scm
+++ b/gnu/packages/fltk.scm
@@ -47,7 +47,8 @@
       (sha256
        (base32
         "15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq"))
-      (patches (search-patches "fltk-shared-lib-defines.patch"))))
+      (patches (search-patches "fltk-shared-lib-defines.patch"
+                               "fltk-xfont-on-demand.patch"))))
    (build-system gnu-build-system)
    (inputs
     `(("libjpeg" ,libjpeg-8)     ;jpeg_read_header argument error in libjpeg-9
diff --git a/gnu/packages/patches/fltk-xfont-on-demand.patch b/gnu/packages/patches/fltk-xfont-on-demand.patch
new file mode 100644
index 0000000000..cdcdd9af05
--- /dev/null
+++ b/gnu/packages/patches/fltk-xfont-on-demand.patch
@@ -0,0 +1,45 @@
+Fixes undefined reference to `Fl_XFont_On_Demand::value()'.
+From <http://www.fltk.org/str.php?L3156+P0+S0+C0+I0+E0+V1+QOn_Demand>.
+
+Index: src/fl_font.cxx
+===================================================================
+--- fltk-1.3.3/src/fl_font.cxx	(revision 10503)
++++ fltk-1.3.3/src/fl_font.cxx	(revision 10504)
+@@ -55,6 +55,12 @@
+ #  include "fl_font_x.cxx"
+ #endif // WIN32
+ 
++#if ! (defined(WIN32) || defined(__APPLE__))
++XFontStruct *fl_X_core_font()
++{
++  return fl_xfont.value();
++}
++#endif
+ 
+ double fl_width(const char* c) {
+   if (c) return fl_width(c, (int) strlen(c));
+Index: src/gl_draw.cxx
+===================================================================
+--- fltk-1.3.3/src/gl_draw.cxx	(revision 10503)
++++ fltk-1.3.3/src/gl_draw.cxx	(revision 10504)
+@@ -81,7 +81,7 @@
+  * then sorting through them at draw time (for normal X rendering) to find which one can
+  * render the current glyph... But for now, just use the first font in the list for GL...
+  */
+-    XFontStruct *font = fl_xfont;
++    XFontStruct *font = fl_X_core_font();
+     int base = font->min_char_or_byte2;
+     int count = font->max_char_or_byte2-base+1;
+     fl_fontsize->listbase = glGenLists(256);
+Index: FL/x.H
+===================================================================
+--- fltk-1.3.3/FL/x.H	(revision 10503)
++++ fltk-1.3.3/FL/x.H	(revision 10504)
+@@ -132,6 +132,7 @@
+   XFontStruct *ptr;
+ };
+ extern FL_EXPORT Fl_XFont_On_Demand fl_xfont;
++extern FL_EXPORT XFontStruct* fl_X_core_font();
+ 
+ // this object contains all X-specific stuff about a window:
+ // Warning: this object is highly subject to change!