summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorZ572 <873216071@qq.com>2023-03-06 13:57:35 +0800
committer宋文武 <iyzsong@member.fsf.org>2023-03-17 18:33:38 +0800
commit84a70d7c15314f01149ddc0728195c7b9f6309c7 (patch)
tree4797cf6602f6683950b16915d1e24f5ae3faf382 /gnu/packages
parentbf2c66b44e17c9749bbc1ef5e0330caf4c91ef4c (diff)
downloadguix-84a70d7c15314f01149ddc0728195c7b9f6309c7.tar.gz
gnu: m17n-lib: Fix cross-compile.
* gnu/packages/emacs.scm (m17n-lib)
[source]: Add m17n-lib-1.8.0-use-pkg-config-for-freetype.patch.
[native-inputs]: When cross-compile add pkg-config, libtool, gettext-minimal,
autoconf, automake.
[arguments]: When cross-compile, add phase to fix rpl_malloc undefined references.
* gnu/packages/patches/m17n-lib-1.8.0-use-pkg-config-for-freetype.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/emacs.scm25
-rw-r--r--gnu/packages/patches/m17n-lib-1.8.0-use-pkg-config-for-freetype.patch125
2 files changed, 148 insertions, 2 deletions
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index e0574f5726..a27b364a05 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -664,8 +664,16 @@ This package contains the library database.")
                            version ".tar.gz"))
        (sha256
         (base32
-         "0jp61y09xqj10mclpip48qlfhniw8gwy8b28cbzxy8hq8pkwmfkq"))))
+         "0jp61y09xqj10mclpip48qlfhniw8gwy8b28cbzxy8hq8pkwmfkq"))
+       (patches (search-patches "m17n-lib-1.8.0-use-pkg-config-for-freetype.patch"))))
     (build-system gnu-build-system)
+    (native-inputs
+     (if (%current-target-system)
+         (list pkg-config
+               libtool
+               gettext-minimal
+               autoconf automake)
+         '()))
     (inputs
      (list fribidi
            gd
@@ -674,7 +682,20 @@ This package contains the library database.")
            libxml2
            m17n-db))
     (arguments
-     `(#:parallel-build? #f))
+     `(#:parallel-build? #f
+       ,@(if (%current-target-system)
+             '(#:phases
+               (modify-phases %standard-phases
+                 ;; AC_FUNC_MALLOC and AC_FUNC_REALLOC usually unneeded
+                 ;; see https://lists.gnu.org/archive/html/autoconf/2003-02/msg00017.html
+                 (add-after 'unpack 'fix-rpl_malloc
+                   (lambda _
+                     (substitute* "configure.ac"
+                       (("AC_FUNC_MALLOC") "")
+                       (("AC_FUNC_REALLOC") ""))
+                     ;; let bootstrap phase run.
+                     (delete-file "./configure")))))
+             '())))
     ;; With `guix lint' the home-page URI returns a small page saying
     ;; that your browser does not handle frames. This triggers the "URI
     ;; returns suspiciously small file" warning.
diff --git a/gnu/packages/patches/m17n-lib-1.8.0-use-pkg-config-for-freetype.patch b/gnu/packages/patches/m17n-lib-1.8.0-use-pkg-config-for-freetype.patch
new file mode 100644
index 0000000000..38c311bee5
--- /dev/null
+++ b/gnu/packages/patches/m17n-lib-1.8.0-use-pkg-config-for-freetype.patch
@@ -0,0 +1,125 @@
+backport from upstream.
+
+From b468fc95150b7ca0e766e7c385a60879e65322d4 Mon Sep 17 00:00:00 2001
+From: "K. Handa" <handa@gnu.org>
+Date: Tue, 23 Oct 2018 00:05:46 +0900
+Subject: Use pkg-config for freetype, use %p to print a pointer
+
+---
+ ChangeLog     |  5 +++++
+ configure.ac  | 48 +++++++++++++++++++-----------------------------
+ src/ChangeLog |  5 +++++
+ src/chartab.c |  4 ++--
+ 4 files changed, 31 insertions(+), 31 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index b069d89..9dfc0b0 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,8 @@
++2018-10-22  K. Handa  <handa@gnu.org>
++
++	* configure.ac: Do not use the program freetype-config, use
++	PKG_CHECK_MODULES for checking freetype2.
++
+ 2018-02-08  K. Handa  <handa@gnu.org>
+ 
+ 	Version 1.8.0 released.
+diff --git a/configure.ac b/configure.ac
+index 7f8b08e..3516bad 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -204,36 +204,26 @@ fi
+ AC_SUBST(OTF_LD_FLAGS)
+ 
+ dnl Check for Freetype2 usability.
+-AC_CHECK_PROG(HAVE_FREETYPE_CONFIG, freetype-config, yes)
+-if test "x$HAVE_FREETYPE_CONFIG" = "xyes"; then
+-  FREETYPE_INC=`freetype-config --cflags`
+-  save_CPPFLAGS="$CPPFLAGS"
+-  CPPFLAGS="$CPPFLAGS $FREETYPE_INC"
+-  AC_CHECK_HEADER(ft2build.h, HAVE_FREETYPE=yes,
+-  			      HAVE_FREETYPE=no CPPFLAGS="$save_CPPFLAGS")
+-  if test "x$HAVE_FREETYPE" = "xyes" ; then
+-    save_LIBS="$LIBS"
+-    LIBS="$LIBS `freetype-config --libs`"
+-    AC_CHECK_LIB(freetype, FT_Init_FreeType, HAVE_FREETYPE=yes,
+-    			   		     HAVE_FREETYPE=no)
+-    LIBS="$save_LIBS"
+-    if test "x$HAVE_FREETYPE" = "xyes"; then
+-      FREETYPE_LD_FLAGS=`freetype-config --libs`
+-      AC_DEFINE(HAVE_FREETYPE, 1, 
+-		[Define to 1 if you have FreeType library and header file.])
+-      M17N_EXT_LIBS="$M17N_EXT_LIBS freetype"
+-      AC_CHECK_HEADER(freetype/ftbdf.h, HAVE_FTBDF_H=yes, HAVE_FTBDF_H=no,
+-		      [#include <ft2build.h>
++PKG_CHECK_MODULES([FREETYPE], [freetype2], [HAVE_FREETYPE=yes],
++                                           [HAVE_FREETYPE=no])
++AS_IF([test "x$HAVE_FREETYPE" = "xyes"],
++  [CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS";
++   FREETYPE_LD_FLAGS=FREETYPE_LIBS;
++   AC_DEFINE([HAVE_FREETYPE], [1],
++             [Define to 1 if you have FreeType library and header file.])
++   M17N_EXT_LIBS="$M17N_EXT_LIBS freetype";
++   AC_CHECK_HEADER([freetype/ftbdf.h], [HAVE_FTBDF_H=yes], [HAVE_FTBDF_H=no],
++                   [#include <ft2build.h>
+ #include FT_FREETYPE_H])
+-      if test "x$HAVE_FTBDF_H" = "xyes"; then
+-        AC_DEFINE(HAVE_FTBDF_H, 1,
+-		  [Define to 1 if you have freetype/ftbdf.h.])
+-      fi
+-      CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
+-    fi
+-  fi
+-fi
+-AC_SUBST(FREETYPE_LD_FLAGS)
++   AS_IF([test "x$HAVE_FTBDF_H" = "xyes"],
++     [AC_DEFINE([HAVE_FTBDF_H], [1],
++                [Define to 1 if you have freetype/ftbdf.h.])],
++     [])
++   CONFIG_FLAGS="$CONFIG_FLAGS -DHAVE_FREETYPE"
++  ],
++  []
++  )
++AC_SUBST([FREETYPE_LD_FLAGS])
+ 
+ dnl Check for Xft2 usability.
+ save_CPPFLAGS="$CPPFLAGS"
+diff --git a/src/ChangeLog b/src/ChangeLog
+index ee28ea6..8cb91c1 100644
+--- a/src/ChangeLog
++++ b/src/ChangeLog
+@@ -1,3 +1,8 @@
++2018-10-22  K. Handa  <handa@gnu.org>
++
++	* chartab.c (dump_sub_chartab): Use %p directive to print a
++	pointer value.
++
+ 2018-02-08  K. Handa  <handa@gnu.org>
+ 
+ 	Version 1.8.0 released.
+diff --git a/src/chartab.c b/src/chartab.c
+index d58aa65..8aeb6d7 100644
+--- a/src/chartab.c
++++ b/src/chartab.c
+@@ -558,7 +558,7 @@ dump_sub_chartab (MSubCharTable *table, void *default_value,
+ 	fprintf (mdebug__output, "(default nil)");
+     }
+   else
+-    fprintf (mdebug__output, "(default #x%X)", (unsigned) table->default_value);
++    fprintf (mdebug__output, "(default #x%p)", table->default_value);
+ 
+   default_value = table->default_value;
+   if (table->contents.tables)
+@@ -589,7 +589,7 @@ dump_sub_chartab (MSubCharTable *table, void *default_value,
+ 		  fprintf (mdebug__output, "nil)");
+ 	      }
+ 	    else
+-	      fprintf (mdebug__output, " #xx%X)", (unsigned) default_value);
++	      fprintf (mdebug__output, " #x%p)", default_value);
+ 	  }
+     }
+   fprintf (mdebug__output, ")");
+-- 
+cgit v1.1
+