changeset 6433:a3a0085299f5

Update pango to 1.36.8
author Masamichi Hosoda <trueroad@trueroad.jp>
date Sat, 29 Aug 2015 15:44:07 +0900
parents 56f798696a60
children f8589f34cf76
files gub/specs/pango.py patches/pango-1.20-substitute-env.patch patches/pango-1.36.8-substitute-env.patch patches/pango-1.36.8-test-without-cairo.patch sourcefiles/pango.modules
diffstat 5 files changed, 181 insertions(+), 200 deletions(-) [+]
line wrap: on
line diff
--- a/gub/specs/pango.py	Sun Aug 30 19:50:35 2015 +0900
+++ b/gub/specs/pango.py	Sat Aug 29 15:44:07 2015 +0900
@@ -1,6 +1,5 @@
 import re
 #
-from gub import gnome
 from gub import misc
 from gub import loggedos
 from gub import target
@@ -13,23 +12,34 @@
     (r'^1\.26', '1.6.0'),
     (r'^1\.27', '1.6.0'),
     (r'^1\.28', '1.6.0'),
+    (r'^1\.29', '1.6.0'),
+    (r'^1\.30', '1.6.0'),
+    (r'^1\.31', '1.8.0'),
+    (r'^1\.32', '1.8.0'),
+    (r'^1\.33', '1.8.0'),
+    (r'^1\.34', '1.8.0'),
+    (r'^1\.35', '1.8.0'),
+    (r'^1\.36', '1.8.0'),
     ]
 
 class Pango (target.AutoBuild):
-    source = 'http://ftp.gnome.org/pub/GNOME/sources/pango/1.28/pango-1.28.3.tar.gz'
-    patches = ['pango-1.20-substitute-env.patch']
+    source = 'http://ftp.gnome.org/pub/GNOME/sources/pango/1.36/pango-1.36.8.tar.xz'
+    patches = [
+        'pango-1.36.8-substitute-env.patch',
+        'pango-1.36.8-test-without-cairo.patch',
+    ]
     dependencies = [
             'tools::glib', 
             'freetype-devel',
             'fontconfig-devel',
             'glib-devel',
+            'harfbuzz-devel',
             'libtool'
             ]
     def get_conflict_dict (self):
         return {'': ['pangocairo', 'pangocairo-devel', 'pangocairo-doc'], 'devel': ['pangocairo', 'pangocairo-devel', 'pangocairo-doc'], 'doc': ['pangocairo', 'pangocairo-devel', 'pangocairo-doc'], 'runtime': ['pangocairo', 'pangocairo-devel', 'pangocairo-doc']}
     configure_flags = (target.AutoBuild.configure_flags
                 + misc.join_lines ('''
---without-x
 --without-cairo
 '''))
     def module_version (self):
@@ -66,36 +76,13 @@
                                file_name)
         self.map_locate (fix_prefix, etc, '*')
 
-class Pango__linux (Pango):
-    def untar (self):
-        Pango.untar (self)
-        # FIXME: --without-cairo switch is removed in 1.10.1,
-        # pango only compiles without cairo if cairo is not
-        # installed linkably on the build system.  UGH.
-        self.file_sub ([('(have_cairo[_a-z0-9]*)=true', '\\1=false'),
-                        ('(cairo[_a-z0-9]*)=yes', '\\1=no')],
-                       '%(srcdir)s/configure')
-
-class Pango__freebsd (Pango__linux):
-    dependencies = Pango__linux.dependencies + ['libiconv-devel']
+class Pango__freebsd (Pango):
+    dependencies = Pango.dependencies + ['libiconv-devel']
 
 class Pango__darwin (Pango):
-    def configure (self):
-        Pango.configure (self)
-        self.file_sub ([('nmedit', '%(target_architecture)s-nmedit')],
-                       '%(builddir)s/libtool')
     def install (self):
         Pango.install (self)                
         # FIXME: PANGO needs .so, NOT .dylib?
         self.dump ('''
 set PANGO_SO_EXTENSION=.so
 ''', '%(install_prefix)s/etc/relocate/pango.reloc', env=locals (), mode='a')
-
-class Pango__mingw (Pango):
-    def create_config_files (self, prefix='/usr'):
-        Pango.create_config_files (self, prefix)
-        etc = self.expand ('%(install_root)s/%(prefix)s/etc/pango', locals ())
-        self.dump ('''
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSIOn}/modules/pango-basic-win32${PANGO_SO_EXTENSION} BasicScriptEngineWin32 PangoEngineShape PangoRenderWin32 common:
-''', '%(etc)s/pango.modules', env=locals (), mode='a')
-        Pango.fix_config_files (self, prefix)
--- a/patches/pango-1.20-substitute-env.patch	Sun Aug 30 19:50:35 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-From abeddd7a12b1493f2db7ea4b60f0a198991d18a4 Mon Sep 17 00:00:00 2001
-From: Han-Wen Nienhuys <hanwen@lilypond.org>
-Date: Sat, 22 Mar 2008 17:27:52 -0300
-Subject: [PATCH] Pango 1.20 patch for subst env.
-
----
- pango/pango-utils.c |  102 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 102 insertions(+), 0 deletions(-)
-
-diff --git a/pango/pango-utils.c b/pango/pango-utils.c
-index d2e4992..c2c49d5 100644
---- a/pango/pango-utils.c
-+++ b/pango/pango-utils.c
-@@ -25,6 +25,7 @@
- #include <stdlib.h>
- #include <math.h>
- #include <locale.h>
-+#include <ctype.h>
- 
- #include "pango-font.h"
- #include "pango-features.h"
-@@ -171,6 +172,89 @@ pango_trim_string (const char *str)
-   return g_strndup (str, len);
- }
- 
-+
-+/** 
-+  g_string_substitute_environment()
-+  @orig: a string
-+
-+  Replaces environment variables of the form ${FOO} or $FOO.
-+
-+  Return value: A newly-allocated string, that must be freed with
-+  g_string_free()
-+ */
-+GString *
-+g_string_substitute_environment (GString *orig)
-+{
-+  GString * out = g_string_new ("");
-+  char *ptr = NULL;
-+  
-+  ptr = orig->str;
-+  while (ptr  < orig->str + orig->len)
-+    {
-+      char *dollar = strchr (ptr, '$');
-+      
-+      if (dollar != NULL)
-+	{
-+	  char *start_var = dollar + 1;
-+	  char *end_var = start_var;
-+	  char *start_next = end_var;
-+	  
-+	  g_string_append_len (out, ptr, dollar - ptr);
-+	  ptr = dollar;
-+
-+	  if (*start_var == '{')
-+	    {
-+	      start_var ++;
-+	      
-+	      end_var = strchr (start_var, '}');
-+	      
-+	      if (end_var == NULL)
-+		{
-+		  end_var = orig->str + orig->len;
-+		  start_next = end_var;
-+		}
-+	      else
-+		{
-+		  start_next = end_var + 1; 
-+		}
-+	    }
-+	  else 
-+	    {
-+	      /*
-+		Hmm. what to do for $1 , $~ etc.?
-+	       */
-+	      do
-+		{
-+		  end_var ++;
-+		}
-+	      while (isalnum (*end_var) || *end_var == '_');
-+	      start_next = end_var;
-+	    }
-+
-+	  if (start_var < end_var)
-+	    {
-+	      GString *var_name = g_string_new_len (start_var, end_var - start_var);
-+	      const char *value = g_getenv (var_name->str);
-+	      if (value != NULL)
-+		g_string_append (out, value);
-+	      g_string_free (var_name, TRUE);
-+
-+
-+	      ptr = start_next;
-+	    }
-+	}
-+      else
-+	break;
-+
-+    }
-+
-+  g_string_append (out, ptr);
-+
-+  return out;
-+}
-+
-+
-+
- /**
-  * pango_split_file_list:
-  * @str: a %G_SEARCHPATH_SEPARATOR separated list of filenames
-@@ -225,6 +309,16 @@ pango_split_file_list (const char *str)
- 	  file = g_strdup (g_get_home_dir());
- 	}
- #endif
-+
-+      {
-+	GString *file_as_gs = g_string_new (file);
-+	GString *substituted = g_string_substitute_environment (file_as_gs);
-+	g_free (file);
-+	file = substituted->str;
-+	g_string_free (substituted, FALSE);
-+	g_string_free (file_as_gs, TRUE);
-+      }
-+      
-       g_free (files[i]);
-       files[i] = file;
- 
-@@ -407,6 +501,7 @@ pango_scan_word (const char **pos, GString *out)
-   return TRUE;
- }
- 
-+
- /**
-  * pango_scan_string:
-  * @pos: in/out string position
-@@ -492,6 +587,13 @@ pango_scan_string (const char **pos, GString *out)
- 	}
-     }
- 
-+
-+  {
-+    GString *subbed = g_string_substitute_environment (out);
-+    g_string_assign (out, subbed->str);
-+    g_string_free (subbed, TRUE);
-+  }
-+  
-   *pos = p;
- 
-   return TRUE;
--- 
-1.5.4.1
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pango-1.36.8-substitute-env.patch	Sat Aug 29 15:44:07 2015 +0900
@@ -0,0 +1,139 @@
+--- pango-1.36.8/pango/pango-utils.c.orig	2014-08-31 02:02:57.000000000 +0900
++++ pango-1.36.8/pango/pango-utils.c	2015-08-30 21:31:27.361804200 +0900
+@@ -43,6 +43,7 @@
+ #include <stdlib.h>
+ #include <math.h>
+ #include <locale.h>
++#include <ctype.h>
+ 
+ #include "pango-font.h"
+ #include "pango-features.h"
+@@ -177,6 +178,89 @@
+   return g_strndup (str, len);
+ }
+ 
++
++/** 
++  g_string_substitute_environment()
++  @orig: a string
++
++  Replaces environment variables of the form ${FOO} or $FOO.
++
++  Return value: A newly-allocated string, that must be freed with
++  g_string_free()
++ */
++GString *
++g_string_substitute_environment (GString *orig)
++{
++  GString * out = g_string_new ("");
++  char *ptr = NULL;
++  
++  ptr = orig->str;
++  while (ptr  < orig->str + orig->len)
++    {
++      char *dollar = strchr (ptr, '$');
++      
++      if (dollar != NULL)
++	{
++	  char *start_var = dollar + 1;
++	  char *end_var = start_var;
++	  char *start_next = end_var;
++	  
++	  g_string_append_len (out, ptr, dollar - ptr);
++	  ptr = dollar;
++
++	  if (*start_var == '{')
++	    {
++	      start_var ++;
++	      
++	      end_var = strchr (start_var, '}');
++	      
++	      if (end_var == NULL)
++		{
++		  end_var = orig->str + orig->len;
++		  start_next = end_var;
++		}
++	      else
++		{
++		  start_next = end_var + 1; 
++		}
++	    }
++	  else 
++	    {
++	      /*
++		Hmm. what to do for $1 , $~ etc.?
++	       */
++	      do
++		{
++		  end_var ++;
++		}
++	      while (isalnum (*end_var) || *end_var == '_');
++	      start_next = end_var;
++	    }
++
++	  if (start_var < end_var)
++	    {
++	      GString *var_name = g_string_new_len (start_var, end_var - start_var);
++	      const char *value = g_getenv (var_name->str);
++	      if (value != NULL)
++		g_string_append (out, value);
++	      g_string_free (var_name, TRUE);
++
++
++	      ptr = start_next;
++	    }
++	}
++      else
++	break;
++
++    }
++
++  g_string_append (out, ptr);
++
++  return out;
++}
++
++
++
+ /**
+  * pango_split_file_list:
+  * @str: a %G_SEARCHPATH_SEPARATOR separated list of filenames
+@@ -232,6 +316,16 @@
+ 	  file = g_strdup (g_get_home_dir());
+ 	}
+ #endif
++
++      {
++	GString *file_as_gs = g_string_new (file);
++	GString *substituted = g_string_substitute_environment (file_as_gs);
++	g_free (file);
++	file = substituted->str;
++	g_string_free (substituted, FALSE);
++	g_string_free (file_as_gs, TRUE);
++      }
++      
+       g_free (files[i]);
+       files[i] = file;
+ 
+@@ -414,6 +508,7 @@
+   return TRUE;
+ }
+ 
++
+ /**
+  * pango_scan_string:
+  * @pos: (inout): in/out string position
+@@ -499,6 +594,13 @@
+ 	}
+     }
+ 
++
++  {
++    GString *subbed = g_string_substitute_environment (out);
++    g_string_assign (out, subbed->str);
++    g_string_free (subbed, TRUE);
++  }
++  
+   *pos = p;
+ 
+   return TRUE;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pango-1.36.8-test-without-cairo.patch	Sat Aug 29 15:44:07 2015 +0900
@@ -0,0 +1,13 @@
+--- pango-1.36.8/tests/Makefile.in.org	2014-09-23 03:30:19.000000000 +0900
++++ pango-1.36.8/tests/Makefile.in	2015-08-30 13:36:48.925365600 +0900
+@@ -84,8 +84,8 @@
+ @HAVE_WIN32_TRUE@am__append_3 = -DHAVE_WIN32
+ @CROSS_COMPILING_FALSE@TESTS = $(check_PROGRAMS)
+ check_PROGRAMS = testboundaries$(EXEEXT) testboundaries_ucd$(EXEEXT) \
+-	testcolor$(EXEEXT) testscript$(EXEEXT) markup-parse$(EXEEXT) \
+-	test-layout$(EXEEXT) test-font$(EXEEXT) $(am__EXEEXT_1) \
++	testcolor$(EXEEXT) testscript$(EXEEXT) \
++	$(am__EXEEXT_1) \
+ 	$(am__EXEEXT_2) $(am__EXEEXT_3)
+ @HAVE_CAIRO_TRUE@am__append_4 = testiter test-pangocairo-threads
+ @HAVE_FREETYPE_TRUE@am__append_5 = test-ot-tags
--- a/sourcefiles/pango.modules	Sun Aug 30 19:50:35 2015 +0900
+++ b/sourcefiles/pango.modules	Sat Aug 29 15:44:07 2015 +0900
@@ -3,21 +3,16 @@
 #
 # ModulesPath = ${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules
 #
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-arabic-fc${PANGO_SO_EXTENSION} ArabicScriptEngineFc PangoEngineShape PangoRenderFc arabic:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-basic-fc${PANGO_SO_EXTENSION} BasicScriptEngineFc PangoEngineShape PangoRenderFc armenian:* bopomofo:* cherokee:* coptic:* cyrillic:* deseret:* ethiopic:* georgian:* gothic:* greek:* han:* hiragana:* katakana:* latin:* ogham:* old-italic:* runic:* canadian-aboriginal:* yi:* braille:* cypriot:* limbu:* osmanya:* shavian:* linear-b:* ugaritic:* common:
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-hangul-fc${PANGO_SO_EXTENSION} HangulScriptEngineFc PangoEngineShape PangoRenderFc hangul:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-hebrew-fc${PANGO_SO_EXTENSION} HebrewScriptEngineFc PangoEngineShape PangoRenderFc hebrew:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} devaScriptEngineFc PangoEngineShape PangoRenderFc devanagari:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} bengScriptEngineFc PangoEngineShape PangoRenderFc bengali:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} guruScriptEngineFc PangoEngineShape PangoRenderFc gurmukhi:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} gujrScriptEngineFc PangoEngineShape PangoRenderFc gujarati:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} oryaScriptEngineFc PangoEngineShape PangoRenderFc oriya:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} tamlScriptEngineFc PangoEngineShape PangoRenderFc tamil:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} teluScriptEngineFc PangoEngineShape PangoRenderFc telugu:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} kndaScriptEngineFc PangoEngineShape PangoRenderFc kannada:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} mlymScriptEngineFc PangoEngineShape PangoRenderFc malayalam:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-fc${PANGO_SO_EXTENSION} sinhScriptEngineFc PangoEngineShape PangoRenderFc sinhala:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-khmer-fc${PANGO_SO_EXTENSION} KhmerScriptEngineFc PangoEngineShape PangoRenderFc khmer:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-syriac-fc${PANGO_SO_EXTENSION} SyriacScriptEngineFc PangoEngineShape PangoRenderFc syriac:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-thai-fc${PANGO_SO_EXTENSION} ThaiScriptEngineFc PangoEngineShape PangoRenderFc thai:* lao:*
-${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-tibetan-fc${PANGO_SO_EXTENSION} TibetanScriptEngineFc PangoEngineShape PangoRenderFc tibetan:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-arabic-lang${PANGO_SO_EXTENSION} ArabicScriptEngineLang PangoEngineLang PangoRenderNone arabic:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-basic-fc${PANGO_SO_EXTENSION} BasicScriptEngineFc PangoEngineShape PangoRenderFc common:
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} devaIndicScriptEngineLang PangoEngineLang PangoRenderNone devanagari:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} bengIndicScriptEngineLang PangoEngineLang PangoRenderNone bengali:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} guruIndicScriptEngineLang PangoEngineLang PangoRenderNone gurmukhi:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} gujrIndicScriptEngineLang PangoEngineLang PangoRenderNone gujarati:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} oryaIndicScriptEngineLang PangoEngineLang PangoRenderNone oriya:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} tamlIndicScriptEngineLang PangoEngineLang PangoRenderNone tamil:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} teluIndicScriptEngineLang PangoEngineLang PangoRenderNone telugu:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} kndaIndicScriptEngineLang PangoEngineLang PangoRenderNone kannada:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} mlymIndicScriptEngineLang PangoEngineLang PangoRenderNone malayalam:*
+${PANGO_PREFIX}/lib/pango/${PANGO_MODULE_VERSION}/modules/pango-indic-lang${PANGO_SO_EXTENSION} sinhIndicScriptEngineLang PangoEngineLang PangoRenderNone sinhala:*
+