# HG changeset patch # User PhilHolmes # Date 1442057184 -3600 # Node ID 8834398b489d36a9bc54b7fe96e762e511f67c1a # Parent 53af4d0a94166b92da2a6d15194e0b82a98a8303# Parent 1eee89983a4ab866742edb4a0dfb83b85b872d7f Merge pull request #20 from trueroad/fonts-urw-and-pango-1.36 Updates to URW fonts and Pango diff -r 53af4d0a9416 -r 8834398b489d gub/misc.py --- a/gub/misc.py Tue Aug 25 15:54:07 2015 +0100 +++ b/gub/misc.py Sat Sep 12 12:26:24 2015 +0100 @@ -164,7 +164,7 @@ # FIXME: do this properly, by identifying different flavours: # .deb, tar.gz, cygwin -[build].tar.bz2 etc and have simple # named rules for them. - return re.match ('^(.*?)[-_]([0-9].*(-[0-9]+)?)([._][a-z]+[0-9]*)?(\.tar\.(bz2|gz)|\.gu[bp]|\.deb|\.tgz|\.zip)$', s) + return re.match ('^(.*?)[-_]([0-9].*(-[0-9]+)?)([._][a-z]+[0-9]*)?(\.tar\.(bz2|gz|xz|lzma)|\.gu[bp]|\.deb|\.tgz|\.txz|\.tlz|\.zip)$', s) def split_ball (s): p = s.rfind ('/') diff -r 53af4d0a9416 -r 8834398b489d gub/specs/fontconfig.py --- a/gub/specs/fontconfig.py Tue Aug 25 15:54:07 2015 +0100 +++ b/gub/specs/fontconfig.py Sat Sep 12 12:26:24 2015 +0100 @@ -23,6 +23,7 @@ source = 'http://fontconfig.org/release/fontconfig-2.11.1.tar.bz2' patches = [ + 'fontconfig-2.11.1-conf-relative-symlink.patch', # This patch will be unnecessary from fontconfig-2.11.91. 'fontconfig-2.11.1-texgyre-aliases.patch', # This patch will be unnecessary from fontconfig-2.11.91. @@ -154,7 +155,8 @@ class Fontconfig__tools (tools.AutoBuild): # FIXME: use mi to get to source? #source = 'git://anongit.freedesktop.org/git/fontconfig?revision=' + version - source = 'http://fontconfig.org/release/fontconfig-2.11.1.tar.bz2' + source = Fontconfig.source + patches = Fontconfig.patches def patch (self): self.dump ('\nAC_SUBST(LT_AGE)', '%(srcdir)s/configure.in', mode='a', permissions=octal.o755) tools.AutoBuild.patch (self) diff -r 53af4d0a9416 -r 8834398b489d gub/specs/fonts-gnufreefont.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gub/specs/fonts-gnufreefont.py Sat Sep 12 12:26:24 2015 +0100 @@ -0,0 +1,13 @@ +from gub import tools +from gub import build + +class Fonts_gnufreefont (build.BinaryBuild): + source = 'http://ftp.gnu.org/gnu/freefont/freefont-otf-20120503.tar.gz' + def install (self): + self.system ('mkdir -p %(install_prefix)s/share/fonts/opentype/gnufreefont') + self.system ('cp %(srcdir)s/*.otf %(install_prefix)s/share/fonts/opentype/gnufreefont/') + def package (self): + build.AutoBuild.package (self) + +class Fonts_gnufreefont__tools (tools.AutoBuild, Fonts_gnufreefont): + pass diff -r 53af4d0a9416 -r 8834398b489d gub/specs/fonts-urw-core35.py --- a/gub/specs/fonts-urw-core35.py Tue Aug 25 15:54:07 2015 +0100 +++ b/gub/specs/fonts-urw-core35.py Sat Sep 12 12:26:24 2015 +0100 @@ -2,7 +2,9 @@ from gub import build class Fonts_urw_core35 (build.BinaryBuild): - source = 'git://git.ghostscript.com/urw-core35-fonts.git' + # http://git.ghostscript.com/?p=urw-core35-fonts.git;a=commit;h=c983ed400dc278dcf20bdff68252fad6d9db7af9 + revision = 'c983ed400dc278dcf20bdff68252fad6d9db7af9' + source = 'git://git.ghostscript.com/urw-core35-fonts.git&revision=' + revision def install (self): self.system ('mkdir -p %(install_prefix)s/share/fonts/type1/urw-core35') self.system ('cp %(srcdir)s/*.afm %(install_prefix)s/share/fonts/type1/urw-core35/') diff -r 53af4d0a9416 -r 8834398b489d gub/specs/glib.py --- a/gub/specs/glib.py Tue Aug 25 15:54:07 2015 +0100 +++ b/gub/specs/glib.py Sat Sep 12 12:26:24 2015 +0100 @@ -2,84 +2,70 @@ from gub import misc from gub import tools from gub import target -from gub import w32 class Glib (target.AutoBuild): - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.27/2.27.91/sources/glib-2.21.5.tar.gz' - ##source = 'http://ftp.gnome.org/pub/GNOME/platform/2.25/2.25.5/sources/glib-2.19.5.tar.gz' - dependencies = ['tools::glib', 'tools::libtool', 'gettext-devel'] + source = 'http://ftp.gnome.org/pub/GNOME/sources/glib/2.44/glib-2.44.1.tar.xz' + dependencies = ['tools::glib', 'tools::libtool', 'tools::xzutils', 'gettext-devel', 'zlib-devel', 'libffi-devel', ] config_cache_overrides = target.AutoBuild.config_cache_overrides + ''' glib_cv_stack_grows=${glib_cv_stack_grows=no} ''' - if 'stat' in misc.librestrict (): # stats for /USR/include/glib/... - install_flags = (target.AutoBuild.install_flags - + ' LD_PRELOAD=%(tools_prefix)s/lib/librestrict-open.so') - def patch (self): - target.AutoBuild.patch (self) - self.file_sub ([('GIO_MODULE_DIR', 'getenv ("GIO_MODULE_DIR")')], - '%(srcdir)s/gio/giomodule.c', must_succeed=True) - def update_libtool (self): # linux-x86, linux-ppc, freebsd-x86 - target.AutoBuild.update_libtool (self) - self.map_locate (w32.libtool_disable_relink, '%(builddir)s', 'libtool') - #URGME, 2.19.5: relinking libgio is broken, /usr/lib is inserted - '''root/usr/lib/usr/lib -L/usr/lib -lgobject-2.0 -L/home/janneke/vc/gub/target/linux-ppc/install/glib-2.19.5-root/usr/lib/home/janneke/vc/gub/target/linux-ppc/build/glib-2.19.5/gmodule/.libs -lgmodule-2.0 -ldl -lglib-2.0 -Wl,-soname -Wl,libgio-2.0.so.0 -Wl,-version-script -Wl,.libs/libgio-2.0.ver -o .libs/libgio-2.0.so.0.1905.0 -/home/janneke/vc/gub/target/linux-ppc/root/usr/cross/bin/powerpc-linux-ld: skipping incompatible /usr/lib/libgobject-2.0.so when searching for -lgobject-2.0 -/home/janneke/vc/gub/target/linux-ppc/root/usr/cross/bin/powerpc-linux-ld: skipping incompatible /usr/lib/libgobject-2.0.a when searching for -lgobject-2.0 -/home/janneke/vc/gub/target/linux-ppc/root/usr/cross/bin/powerpc-linux-ld: cannot find -lgobject-2.0 -collect2: ld returned 1 exit status -libtool: install: error: relink `libgio-2.0.la' with the above command before installing it -make[5]: *** [install-libLTLIBRARIES] Error 1 -''' def install (self): target.AutoBuild.install (self) self.system ('rm -f %(install_prefix)s/lib/charset.alias') class Glib__darwin (Glib): + # Darwin 8 SDK (Mac OS X 10.4) can not compile glib 2.45.3+. + # It needs OS X 10.9. + patches = Glib.patches + ['glib-2.44.1-darwin-in.patch'] def configure (self): Glib.configure (self) - self.file_sub ([('nmedit', '%(target_architecture)s-nmedit')], - '%(builddir)s/libtool') + self.file_sub ([('-Werror=format=2', '')], + '%(builddir)s/glib/Makefile') + self.file_sub ([('-Werror=declaration-after-statement', '')], + '%(builddir)s/gio/Makefile') class Glib__darwin__x86 (Glib__darwin): - # LIBS bugfix from: - # https://bugzilla.gnome.org/show_bug.cgi?id=586150 - configure_variables = Glib.configure_variables + ' LIBS=-lresolv' - def compile (self): - self.file_sub ([('(SUBDIRS = .*) tests', r'\1'), - (r'GTESTER = \$.*', ''), - ('(am__EXEEXT(_[0-9])? = )gtester.*', r'\1'), - ('(am__append(_[0-9])? = )gtester', r'\1')], - '%(builddir)s/glib/Makefile', must_succeed=True) - Glib__darwin.compile (self) - + patches = Glib__darwin.patches + [ + 'glib-2.44.1-darwin-x86-lib-depend.patch', + 'glib-2.44.1-darwin-x86-zlib.patch', + ] + def patch (self): + Glib__darwin.patch (self) + # darwin-x86 inline asm seems broken. + self.file_sub ([('#define USE_ASM_GOTO 1', '')], + '%(srcdir)s/glib/gbitlock.c') + class Glib__mingw (Glib): + patches = Glib.patches + [ + 'glib-2.44.1-mingw-w64-if_nametoindex.patch', + ] dependencies = Glib.dependencies + ['libiconv-devel'] - def update_libtool (self): # linux-x86, linux-ppc, freebsd-x86 - target.AutoBuild.update_libtool (self) - self.map_locate (w32.libtool_disable_relink, '%(builddir)s', 'libtool') + def configure (self): + Glib.configure (self) + self.file_sub ([('-Werror=format=2', ''), + ('-Werror=format-extra-args', ''),], + '%(builddir)s/glib/Makefile') + self.file_sub ([('-Werror=format=2', ''), + ('-Werror=format-extra-args', ''),], + '%(builddir)s/gobject/Makefile') + self.file_sub ([('-Werror=format=2', ''), + ('-Werror=format-extra-args', ''),], + '%(builddir)s/gio/Makefile') class Glib__freebsd (Glib): dependencies = Glib.dependencies + ['libiconv-devel'] - configure_variables = Glib.configure_variables + ' CFLAGS=-pthread' - -class Glib__freebsd__x86 (Glib__freebsd): - # Must include -pthread in lib flags, because our most beloved - # libtool (2.2.6a) thinks it knows best and blondly strips -pthread - # if it thinks it's a compile flag. - # FIXME: should add fixup to update_libtool () - make_flags = ' G_THREAD_LIBS=-pthread G_THREAD_LIBS_FOR_GTHREAD=-pthread ' + # FreeBSD 6 can not compile glib 2.40.0+. It needs FreeBSD 8.1. + source = 'http://ftp.gnome.org/pub/GNOME/sources/glib/2.38/glib-2.38.2.tar.xz' class Glib__tools (tools.AutoBuild, Glib): dependencies = [ 'gettext', 'libtool', 'pkg-config', + 'zlib', + 'libffi', + 'xzutils', ] - configure_flags = (tools.AutoBuild.configure_flags - + ' --build=%(build_architecture)s' - + ' --host=%(build_architecture)s' - + ' --target=%(build_architecture)s' - ) def install (self): tools.AutoBuild.install (self) self.system ('rm -f %(install_root)s%(packaging_suffix_dir)s%(prefix_dir)s/lib/charset.alias') diff -r 53af4d0a9416 -r 8834398b489d gub/specs/harfbuzz.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gub/specs/harfbuzz.py Sat Sep 12 12:26:24 2015 +0100 @@ -0,0 +1,15 @@ +from gub import target +from gub import tools + +class Harfbuzz (target.AutoBuild): + source = 'http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-1.0.2.tar.bz2' + dependencies = [ + 'tools::bzip2', + 'freetype-devel', + 'glib-devel', + ] + configure_flags = (target.AutoBuild.configure_flags + + ' --without-cairo' ) + +class Harfbuzz__tools (tools.AutoBuild, Harfbuzz): + pass diff -r 53af4d0a9416 -r 8834398b489d gub/specs/libffi.py --- a/gub/specs/libffi.py Tue Aug 25 15:54:07 2015 +0100 +++ b/gub/specs/libffi.py Sat Sep 12 12:26:24 2015 +0100 @@ -1,7 +1,8 @@ from gub import target +from gub import tools class Libffi (target.AutoBuild): - source = 'ftp://sourceware.org/pub/libffi/libffi-3.0.9.tar.gz' + source = 'ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz' dependencies = [ 'tools::automake', 'tools::libtool', @@ -12,6 +13,16 @@ + """ includesdir='$(includedir)' """ ) def install (self): target.AutoBuild.install (self) - self.system ('cd %(install_prefix)s && mv lib/libffi-3.0.9/include .') - self.system ('cd %(install_prefix)s && rm -rf lib/libffi-3.0.9') - + self.system ('cd %(install_prefix)s && mv lib/libffi-3.2.1/include .') + self.system ('cd %(install_prefix)s && rm -rf lib/libffi-3.2.1') + +class Libffi__darwin__x86 (Libffi): + # darwin-x86 can not compile libffi 3.1, 3.2.1. + source = 'ftp://sourceware.org/pub/libffi/libffi-3.0.13.tar.gz' + def install (self): + target.AutoBuild.install (self) + self.system ('cd %(install_prefix)s && mv lib/libffi-3.0.13/include .') + self.system ('cd %(install_prefix)s && rm -rf lib/libffi-3.0.13') + +class Libffi__tools (tools.AutoBuild, Libffi): + pass diff -r 53af4d0a9416 -r 8834398b489d gub/specs/lilypond-doc.py --- a/gub/specs/lilypond-doc.py Tue Aug 25 15:54:07 2015 +0100 +++ b/gub/specs/lilypond-doc.py Sat Sep 12 12:26:24 2015 +0100 @@ -20,6 +20,7 @@ 'tools::fonts-urw-core35', 'tools::fonts-luximono', 'tools::fonts-ipafont', + 'tools::fonts-gnufreefont', 'system::makeinfo', 'system::zip', ]) diff -r 53af4d0a9416 -r 8834398b489d gub/specs/lilypond-test.py --- a/gub/specs/lilypond-test.py Tue Aug 25 15:54:07 2015 +0100 +++ b/gub/specs/lilypond-test.py Sat Sep 12 12:26:24 2015 +0100 @@ -7,6 +7,7 @@ class LilyPond_test (lilypond.LilyPond_base): dependencies = (lilypond.LilyPond_base.dependencies + [ + 'tools::netpbm', 'tools::fonts-dejavu', 'tools::fonts-libertine', 'tools::fonts-bitstream-charter', @@ -15,6 +16,7 @@ 'tools::fonts-urw-core35', 'tools::fonts-luximono', 'tools::fonts-ipafont', + 'tools::fonts-gnufreefont', ]) @context.subst_method def test_ball (self): diff -r 53af4d0a9416 -r 8834398b489d gub/specs/pango.py --- a/gub/specs/pango.py Tue Aug 25 15:54:07 2015 +0100 +++ b/gub/specs/pango.py Sat Sep 12 12:26:24 2015 +0100 @@ -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) diff -r 53af4d0a9416 -r 8834398b489d patches/fontconfig-2.11.1-conf-relative-symlink.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/fontconfig-2.11.1-conf-relative-symlink.patch Sat Sep 12 12:26:24 2015 +0100 @@ -0,0 +1,14 @@ +--- fontconfig-2.11.1/conf.d/Makefile.in.org 2014-03-24 15:04:15.000000000 +0900 ++++ fontconfig-2.11.1/conf.d/Makefile.in 2015-09-06 02:48:55.862653400 +0900 +@@ -633,9 +633,9 @@ + @(echo cd $(DESTDIR)$(configdir); \ + cd $(DESTDIR)$(configdir); \ + for i in $(CONF_LINKS); do \ +- echo $(RM) $$i";" ln -s $(templatedir)/$$i .; \ ++ echo $(RM) $$i";" ln -sr $(DESTDIR)$(templatedir)/$$i .; \ + $(RM) $$i; \ +- ln -s $(templatedir)/$$i .; \ ++ ln -sr $(DESTDIR)/$(templatedir)/$$i .; \ + done) + uninstall-local: + @(echo cd $(DESTDIR)$(configdir); \ diff -r 53af4d0a9416 -r 8834398b489d patches/glib-2.44.1-darwin-in.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/glib-2.44.1-darwin-in.patch Sat Sep 12 12:26:24 2015 +0100 @@ -0,0 +1,66 @@ +--- glib-2.44.1/gio/gdummyfile.c.org 2014-12-20 06:49:48.000000000 +0900 ++++ glib-2.44.1/gio/gdummyfile.c 2015-08-30 11:55:32.577794900 +0900 +@@ -441,7 +441,7 @@ + const gchar *escaped_string_end, + const gchar *illegal_characters) + { +- const gchar *in; ++ const gchar *in_dummy; + gchar *out, *result; + gint character; + +@@ -454,19 +454,19 @@ + result = g_malloc (escaped_string_end - escaped_string + 1); + + out = result; +- for (in = escaped_string; in < escaped_string_end; in++) ++ for (in_dummy = escaped_string; in_dummy < escaped_string_end; in_dummy++) + { +- character = *in; +- if (*in == '%') ++ character = *in_dummy; ++ if (*in_dummy == '%') + { +- in++; +- if (escaped_string_end - in < 2) ++ in_dummy++; ++ if (escaped_string_end - in_dummy < 2) + { + g_free (result); + return NULL; + } + +- character = unescape_character (in); ++ character = unescape_character (in_dummy); + + /* Check for an illegal character. We consider '\0' illegal here. */ + if (character <= 0 || +@@ -476,7 +476,7 @@ + g_free (result); + return NULL; + } +- in++; /* The other char will be eaten in the loop header */ ++ in_dummy++; /* The other char will be eaten in the loop header */ + } + *out++ = (char)character; + } +@@ -516,7 +516,7 @@ + _g_decode_uri (const char *uri) + { + GDecodedUri *decoded; +- const char *p, *in, *hier_part_start, *hier_part_end, *query_start, *fragment_start; ++ const char *p, *in_dummy, *hier_part_start, *hier_part_end, *query_start, *fragment_start; + char *out; + char c; + +@@ -551,8 +551,8 @@ + + decoded->scheme = g_malloc (p - uri); + out = decoded->scheme; +- for (in = uri; in < p - 1; in++) +- *out++ = g_ascii_tolower (*in); ++ for (in_dummy = uri; in_dummy < p - 1; in_dummy++) ++ *out++ = g_ascii_tolower (*in_dummy); + *out = 0; + + hier_part_start = p; diff -r 53af4d0a9416 -r 8834398b489d patches/glib-2.44.1-darwin-x86-lib-depend.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/glib-2.44.1-darwin-x86-lib-depend.patch Sat Sep 12 12:26:24 2015 +0100 @@ -0,0 +1,41 @@ +--- glib-2.44.1/gio/Makefile.in.org 2015-05-13 11:50:40.000000000 +0900 ++++ glib-2.44.1/gio/Makefile.in 2015-08-30 12:01:11.975858800 +0900 +@@ -1731,6 +1731,7 @@ + glib_compile_resources_LDADD = libgio-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ + $(top_builddir)/glib/libglib-2.0.la \ ++ xdgmime/libxdgmime.la \ + $(NULL) + + glib_compile_resources_SOURCES = \ +@@ -1757,6 +1758,7 @@ + gsettings_LDADD = libgio-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ + $(top_builddir)/glib/libglib-2.0.la \ ++ xdgmime/libxdgmime.la \ + $(NULL) + + gsettings_SOURCES = gsettings-tool.c +@@ -1766,12 +1768,14 @@ + gdbus_LDADD = libgio-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ + $(top_builddir)/glib/libglib-2.0.la \ ++ xdgmime/libxdgmime.la \ + $(NULL) + + @OS_UNIX_TRUE@gapplication_SOURCES = gapplication-tool.c + @OS_UNIX_TRUE@gapplication_LDADD = libgio-2.0.la \ + @OS_UNIX_TRUE@ $(top_builddir)/gobject/libgobject-2.0.la \ + @OS_UNIX_TRUE@ $(top_builddir)/glib/libglib-2.0.la \ ++@OS_UNIX_TRUE@ xdgmime/libxdgmime.la \ + @OS_UNIX_TRUE@ $(NULL) + + completiondir = $(datadir)/bash-completion/completions +@@ -1786,6 +1790,7 @@ + gresource_LDADD = libgio-2.0.la \ + $(top_builddir)/gobject/libgobject-2.0.la \ + $(top_builddir)/glib/libglib-2.0.la \ ++ xdgmime/libxdgmime.la \ + $(LIBELF_LIBS) + + all: $(BUILT_SOURCES) diff -r 53af4d0a9416 -r 8834398b489d patches/glib-2.44.1-darwin-x86-zlib.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/glib-2.44.1-darwin-x86-zlib.patch Sat Sep 12 12:26:24 2015 +0100 @@ -0,0 +1,22 @@ +--- glib-2.44.1/gio/gzlibcompressor.c.org 2014-12-20 06:49:48.000000000 +0900 ++++ glib-2.44.1/gio/gzlibcompressor.c 2015-08-30 12:07:36.581817200 +0900 +@@ -71,7 +71,7 @@ + g_zlib_compressor_set_gzheader (GZlibCompressor *compressor) + { + /* On win32, these functions were not exported before 1.2.4 */ +-#if !defined (G_OS_WIN32) || ZLIB_VERNUM >= 0x1240 ++#if 0 + const gchar *filename; + + if (compressor->format != G_ZLIB_COMPRESSOR_FORMAT_GZIP || +--- glib-2.44.1/gio/gzlibdecompressor.c.org 2014-12-20 06:49:48.000000000 +0900 ++++ glib-2.44.1/gio/gzlibdecompressor.c 2015-08-30 12:07:36.597442900 +0900 +@@ -74,7 +74,7 @@ + g_zlib_decompressor_set_gzheader (GZlibDecompressor *decompressor) + { + /* On win32, these functions were not exported before 1.2.4 */ +-#if !defined (G_OS_WIN32) || ZLIB_VERNUM >= 0x1240 ++#if 0 + if (decompressor->format != G_ZLIB_COMPRESSOR_FORMAT_GZIP) + return; + diff -r 53af4d0a9416 -r 8834398b489d patches/glib-2.44.1-mingw-w64-if_nametoindex.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/glib-2.44.1-mingw-w64-if_nametoindex.patch Sat Sep 12 12:26:24 2015 +0100 @@ -0,0 +1,44 @@ +--- glib-2.44.1/gio/gsocket.c.org 2015-03-23 03:19:51.000000000 +0900 ++++ glib-2.44.1/gio/gsocket.c 2015-08-30 12:11:11.394997300 +0900 +@@ -1939,7 +1939,7 @@ + + #if !defined(HAVE_IF_NAMETOINDEX) && defined(G_OS_WIN32) + static guint +-if_nametoindex (const gchar *iface) ++if_nametoindex_wrap (const gchar *iface) + { + PIP_ADAPTER_ADDRESSES addresses = NULL, p; + gulong addresses_len = 0; +@@ -1992,6 +1992,8 @@ + } + + #define HAVE_IF_NAMETOINDEX 1 ++#else ++#define if_nametoindex_wrap if_nametoindex + #endif + + static gboolean +@@ -2026,12 +2028,12 @@ + + #ifdef HAVE_IP_MREQN + if (iface) +- mc_req.imr_ifindex = if_nametoindex (iface); ++ mc_req.imr_ifindex = if_nametoindex_wrap (iface); + else + mc_req.imr_ifindex = 0; /* Pick any. */ + #elif defined(G_OS_WIN32) + if (iface) +- mc_req.imr_interface.s_addr = g_htonl (if_nametoindex (iface)); ++ mc_req.imr_interface.s_addr = g_htonl (if_nametoindex_wrap (iface)); + else + mc_req.imr_interface.s_addr = g_htonl (INADDR_ANY); + #else +@@ -2064,7 +2066,7 @@ + memcpy (&mc_req_ipv6.ipv6mr_multiaddr, native_addr, sizeof (struct in6_addr)); + #ifdef HAVE_IF_NAMETOINDEX + if (iface) +- mc_req_ipv6.ipv6mr_interface = if_nametoindex (iface); ++ mc_req_ipv6.ipv6mr_interface = if_nametoindex_wrap (iface); + else + #endif + mc_req_ipv6.ipv6mr_interface = 0; diff -r 53af4d0a9416 -r 8834398b489d patches/pango-1.20-substitute-env.patch --- a/patches/pango-1.20-substitute-env.patch Tue Aug 25 15:54:07 2015 +0100 +++ /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 -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 - #include - #include -+#include - - #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 - diff -r 53af4d0a9416 -r 8834398b489d patches/pango-1.36.8-substitute-env.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pango-1.36.8-substitute-env.patch Sat Sep 12 12:26:24 2015 +0100 @@ -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 + #include + #include ++#include + + #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; diff -r 53af4d0a9416 -r 8834398b489d patches/pango-1.36.8-test-without-cairo.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pango-1.36.8-test-without-cairo.patch Sat Sep 12 12:26:24 2015 +0100 @@ -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 diff -r 53af4d0a9416 -r 8834398b489d sourcefiles/pango.modules --- a/sourcefiles/pango.modules Tue Aug 25 15:54:07 2015 +0100 +++ b/sourcefiles/pango.modules Sat Sep 12 12:26:24 2015 +0100 @@ -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:* +