Mercurial > gub
view gub/specs/pango.py @ 6433:a3a0085299f5
Update pango to 1.36.8
author | Masamichi Hosoda <trueroad@trueroad.jp> |
---|---|
date | Sat, 29 Aug 2015 15:44:07 +0900 |
parents | 754346b9dc1d |
children | b747a4949dae |
line wrap: on
line source
import re # from gub import misc from gub import loggedos from gub import target pango_module_version_regexes = [ (r'^1\.14', '1.5.0'), (r'^1\.20', '1.6.0'), (r'^1\.22', '1.6.0'), (r'^1\.24', '1.6.0'), (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.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-cairo ''')) def module_version (self): result = None version = self.version() for regex, candidate in pango_module_version_regexes: if re.match(regex, version): result = candidate break assert result return result def install (self): target.AutoBuild.install (self) self.create_config_files () self.fix_config_files () def create_config_files (self, prefix='/usr'): pango_module_version = self.module_version () etc = self.expand ('%(install_root)s/%(prefix)s/etc/pango', locals ()) self.dump ('''[Pango] ModuleFiles = $PANGO_PREFIX/etc/pango/pango.modules ModulesPath = $PANGO_PREFIX/lib/pango/%(pango_module_version)s/modules ''' % locals (), etc + '/pangorc') self.dump (''' setfile PANGO_RC_FILE=$INSTALLER_PREFIX/etc/pango/pangorc setdir PANGO_PREFIX=$INSTALLER_PREFIX/ set PANGO_MODULE_VERSION=%(pango_module_version)s ''', '%(install_prefix)s/etc/relocate/pango.reloc', env=locals ()) self.copy ('%(sourcefiledir)s/pango.modules', etc) def fix_config_files (self, prefix='/usr'): etc = self.expand ('%(install_root)s/%(prefix)s/etc/pango', locals ()) self.system ('mkdir -p %(etc)s' , locals ()) def fix_prefix (logger, file_name): loggedos.file_sub (logger, [('/' + prefix + '/', '$PANGO_PREFIX/')], file_name) self.map_locate (fix_prefix, etc, '*') class Pango__freebsd (Pango): dependencies = Pango.dependencies + ['libiconv-devel'] class Pango__darwin (Pango): 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')