Mercurial > gub
changeset 5591:8c4c67e75cab
Grand rpath, configure_flags, configure_variables, cross_compiling hack.
line wrap: on
line diff
--- a/TODO Tue Sep 22 11:09:24 2009 +0200 +++ b/TODO Tue Sep 22 20:33:14 2009 +0200 @@ -25,10 +25,16 @@ * Promote specific solutions into general ones [PROMOTEME] this cleans up existing packages, and increases chances of adding new packages without any changes. -** config_variables, makeflags_for_build, cross_compiling -** rpath_for_build () instead of %(rpath)s -Wl,-rpath -Wl,%(system_prefix)s -** enabling LDFLAGS=..%(rpath)s... configure automagically for tools and target -** enable wrap_executables () for eg compiling on FreeBSD/MacOS ? + +* Auto-detection +** If we'd use Source/Repository for the first two build stages + download + untar + and only *then* instantiate the build class, we could use the + actual source tree to automatically/generically + determine the package version + determine the build class + determine the dependencies * Fix Fedora glibc problem, remove workaround in gub/specs/glibc.py, or add a build_platform == Fedora test. [selinux?] @@ -80,8 +86,9 @@ - *every* work-dir in target/*/src/ is a GIT checkout - in the work-dir, GIT can be used to create and maintain patches -* Why don't we use tarfile.TarFile? It seems that subprocess/read_pipe - in gub/gup.py on tar -tzf is real inefficient (set buffering?) +* Why don't we use tarfile.TarFile? + It seems that subprocess/read_pipe in gub/gup.py on tar -tzf is + real inefficient (set buffering?) FIXED. * It seems that the removal of LD_LIBRARY_PATH as per @@ -125,20 +132,12 @@ * use of member functions vs class variables/static functions: - get_build_dependencies () -> class.build_dependencies = [] - - def force_sequential_build () -> class.sequential_build = True + DONE def force_sequential_build () -> class.parallel_build_broken - def force_autoupdate () -> class.force_autoupdate = True ** also, why are these functions ? - def compile_command () -> class.compile_command - def install_command () -> class.install_command etc - - de ellende met klutserige taal als pieton is natuurlijk dat - je niet kunt - class.makeflags = if Foo.bar: 3 else: 4; - --> hah, kan in python2.5, maar we willen 2.4 supporten? - [nouja, je kunt met idiote list comprehension alles, maar clien is anders] - [x for x in [3, 4] if Foo.bar and x == 3 or not Foo.bar and x == 4][0] - dus we moeten wel uitkijken wat we doen... - - need_source_tree ? * junk use of /usr in code, use *_prefix) or %(prefix_dir)s
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/gupdate Tue Sep 22 20:33:14 2009 +0200 @@ -0,0 +1,72 @@ +#! /usr/bin/env python + +""" + Copyright (c) 2005--2009 + Jan Nieuwenhuizen <janneke@gnu.org> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +""" + +def argv0_relocation (): + import os, sys + bindir = os.path.dirname (sys.argv[0]) + prefix = os.path.dirname (bindir) + if not prefix: + prefix = bindir + '/..' + sys.path.insert (0, prefix) + +argv0_relocation () + +import optparse +import re +import sys +# +from gub import misc +from gub.syntax import printf + +def parse_command_line (): + p = optparse.OptionParser () + p.description = 'Grand Unified Builder - update spec urls.' + p.usage = 'gupdate [OPTION]... SPEC...' + p.add_option ('--replace', default=False, help='replace old urls.') + (options, files) = p.parse_args () + if not files: + p.print_help () + return (options, files) + +def do_spec (file_name, options): + s = open (file_name).read () + m = re.search ('''source = ['"](http://[^'"]+[.]tar.(?:gz|bz2))['"]''', s) + if not m: + printf ('%(file_name)s: cannot find ball' % locals ()) + return + url = m.group (1) + name, version_tuple, format = misc.split_ball (url) + url_dir = url[:url.rfind ('/')+1] + latest = misc.latest_url (url_dir, name) + if url != latest: + if options.replace: + printf ('%(file_name)s: updating to: %(latest)s' % locals ()) + misc.file_sub ([(url, latest)], file_name) + else: + printf ('%(file_name)s: new ball: %(latest)s' % locals ()) + +def main (): + (options, files) = parse_command_line () + for f in files: + do_spec (f, options) + +if __name__ == '__main__': + main ()
--- a/gub/build.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/build.py Tue Sep 22 20:33:14 2009 +0200 @@ -22,7 +22,10 @@ source = '' branch = '' patches = [] + build_dependencies = [] install_after_build = True + parallel_build_broken = False + srcdir_build_broken = False def __init__ (self, settings, source): context.RunnableContext.__init__ (self, settings) @@ -35,6 +38,19 @@ self.source.connect_logger (runner.logger) return context.RunnableContext.connect_command_runner (self, runner) + @staticmethod + def gnome_platform (name, version='2.25.5'): + major, minor, micro = '.'.split (version) + url = 'http://ftp.gnome.org/pub/GNOME/platform/%(major)s.%(minor)s/%(version)s/sources/' % locals () + raw_version_file = 'gnome-%(version)s' % locals + if not os.path.isfile (raw_version_file): + misc.download_url (url, 'downloads', raw_version_file) + s = open (raw_version_file).read () + m = re.search ('(%(name)s-[.0-9]+tar.gz)' % locals (), s) + if not m: + raise 'barf' + return url + m.group (1) + @context.subst_method def checksum_file (self): return '%(packages)s/%(name)s%(vc_branch_suffix)s.checksum' @@ -86,9 +102,10 @@ msg = self.expand ('''This compile has previously been interrupted. To ensure a repeatable build, this will not be packaged. -Do +Run with - rm %(stamp_file)s + --fresh # or issue + rm %(stamp_file)s to force a full package rebuild, or @@ -111,7 +128,7 @@ self.set_done (stage) def get_build_dependencies (self): - return [] + return self.build_dependencies def with_platform (self, name): if 'BOOTSTRAP' in os.environ.keys (): @@ -170,12 +187,19 @@ @context.subst_method def LD_PRELOAD (self): - return '%(tools_prefix)s/lib/librestrict.so' + return '' + + @context.subst_method + def libs (self): + return '' + + @context.subst_method + def so_extension (self): + return '.so' @context.subst_method def rpath (self): -# return r'-Wl,-rpath -Wl,\$$ORIGIN/../lib -Wl,-rpath -Wl,\$$ORIGIN/../../lib' - return r'-Wl,-rpath -Wl,\$$ORIGIN/../lib' + return r'-Wl,-rpath -Wl,\$$ORIGIN/../lib -Wl,-rpath -Wl,%(system_prefix)s/lib' def get_substitution_dict (self, env={}): dict = { @@ -211,10 +235,6 @@ # FIMXE: '' always depends on runtime? return {'': [], 'devel': [], 'doc': [], 'runtime': [], 'x11': []} - def force_sequential_build (self): - """Set to true if package can't handle make -jX """ - return False - @context.subst_method def source_checksum (self): return self.source.checksum () @@ -284,6 +304,10 @@ return '%(installdir)s/%(name)s-%(version)s-root' @context.subst_method + def configure_prefix (self): + return '%(prefix_dir)s' + + @context.subst_method def install_prefix (self): return '%(install_root)s%(prefix_dir)s' @@ -304,27 +328,29 @@ @context.subst_method def configure_command (self): - return ' sh %(configure_binary)s --prefix=%(install_prefix)s' + return ' sh %(configure_binary)s %(configure_flags)s %(configure_variables)s' + + @context.subst_method + def configure_flags (self): + return ' --prefix=%(configure_prefix)s' + + @context.subst_method + def configure_variables (self): + return '' @context.subst_method def compile_command (self): - return 'make %(makeflags)s ' + return 'make %(job_spec)s %(makeflags)s ' - # what the heck is this? Why would we not want to use - # -j x with multiple cpu's (compiling is often io bound) - # and why not when cross compiling (think icecc?). @context.subst_method def native_compile_command (self): - c = 'make' + return 'make %(job_spec)s %(makeflags)s ' - job_spec = ' ' - if (not self.force_sequential_build () - and self.settings.cpu_count_str != '1'): - - job_spec += ' -j%s ' % self.settings.cpu_count_str - - c += job_spec - return c + @context.subst_method + def job_spec (self): + if not self.parallel_build_broken: + return '-j' + str (2 * int (self.settings.cpu_count_str)) + return '' @context.subst_method def src_package_ball (self): @@ -383,6 +409,8 @@ self.dump (str, self.cache_file (), permissions=octal.o755) def configure (self): + if self.srcdir_build_broken: + self.shadow () self.config_cache () self.system (''' mkdir -p %(builddir)s || true @@ -424,10 +452,8 @@ sub = self.expand ('%(system_prefix)s/share/libtool/config/config.sub') for file in guess, sub: self.system ('cp -pv %(file)s %(autodir)s', locals ()) - def update_libtool (self): self.map_locate (lambda logger, file: libtool_update (logger, self.expand ('%(system_prefix)s/bin/libtool'), file), '%(builddir)s', 'libtool') - def pre_install (self): pass def install (self):
--- a/gub/cross.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/cross.py Tue Sep 22 20:33:14 2009 +0200 @@ -27,13 +27,6 @@ dict.update (env) d = build.AutoBuild.get_substitution_dict (self, dict).copy () return d - def LD_PRELOAD (self): - # Makes no sense for cross. Be it /usr/bin/gcc or tools::gcc, - # it needs to read /usr/include/stdlib.h etc. How to, or why - # restrict reading other files from /? - # See LIBRESTRICT_IGNORE below, it would need to include every - # binary in system_prefix :-) - return '' def configure_command (self): return ( # BOOTSTRAP -- do we need this? @@ -76,6 +69,7 @@ # 'tools::binutils', # 'tools::gcc', 'tools::make', + 'tools::libtool', 'tools::file', ]
--- a/gub/cygwin.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/cygwin.py Tue Sep 22 20:33:14 2009 +0200 @@ -318,7 +318,6 @@ if not os.path.exists (file): misc.download_url (url, self.settings.downloads, local=['file://%s' % self.settings.downloads], - ) # arg # self.file_sub ([('\':"', "':'")], file)
--- a/gub/darwin.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/darwin.py Tue Sep 22 20:33:14 2009 +0200 @@ -138,11 +138,24 @@ (['zlib', 'zlib-devel'],)) @context.subst_method def rpath (foo): - # ld has no -rpath on darwin [at least not darwin-ppc] - # FIXME: some equivalent here? return '' package.rpath = misc.MethodOverrider (package.nop, rpath) + @context.subst_method + def so_extension (foo): + return '.dylib' + package.so_extension = misc.MethodOverrider (package.nop, so_extension) + + def autoupdate (foo): + # somehow retriggers autoconf?!? + # for i in ['configure.ac', 'configure']: + for i in ['configure']: + package.file_sub ([('-fpascal-strings ', ''), + ('-I(/Developer/Headers/FlatCarbon)', + r'-I%(system_root)s\1'), + ], '%(srcdir)s/' + i) + package.autoupdate = misc.MethodOverrider (package.autoupdate, autoupdate) + build.change_dict (package, { ## We get a lot of /usr/lib/ -> @executable_path/../lib/
--- a/gub/dependency.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/dependency.py Tue Sep 22 20:33:14 2009 +0200 @@ -132,6 +132,8 @@ x, parameters = misc.dissect_url (self._url) if parameters.get ('patch'): self._cls.patches = parameters['patch'] + if parameters.get ('dependency'): + self._cls.build_dependencies = parameters['dependency'] return self._url def name (self): return self._name
--- a/gub/freebsd.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/freebsd.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,4 +1,6 @@ +from gub import context from gub import cross +from gub import misc def get_cross_build_dependencies (settings): return ['cross/gcc', 'freebsd-runtime'] @@ -6,6 +8,11 @@ def change_target_package (package): cross.change_target_package (package) + @context.subst_method + def rpath (foo): + return '' + package.rpath = misc.MethodOverrider (package.nop, rpath) + # FIXME: download from sane place; or rather download only kernel # headers and build full toolchain from source? def get_sdk ():
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gub/gnome.py Tue Sep 22 20:33:14 2009 +0200 @@ -0,0 +1,10 @@ +from gub import misc + +#VERSION='2.25.5' +VERSION='2.26.3' + +def platform_url (name, version=VERSION): + major, minor, micro = version.split ('.') + url = 'http://ftp.gnome.org/pub/GNOME/platform/%(major)s.%(minor)s/%(version)s/sources/' % locals () + raw_version_file = 'downloads/gnome-%(version)s.index' % locals () + return misc.latest_url (url, name, raw_version_file)
--- a/gub/mirrors.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/mirrors.py Tue Sep 22 20:33:14 2009 +0200 @@ -9,7 +9,7 @@ gnome_222 ='http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.0/sources/%(name)s-%(version)s.tar.%(format)s' -gnubase = 'ftp://ftp.gnu.org/pub/gnu' +gnubase = 'http://ftp.gnu.org/pub/gnu' # FIXME: find complete GNU mirror # base = 'ftp://dl.xs4all.nl/pub/mirror/gnu' # base = 'ftp://sunsite.dk/pub/gnu' @@ -21,7 +21,7 @@ alpha = alphabase + '/%(name)s/%(name)s-%(version)s.tar.%(format)s' nongnu_savannah = 'http://download.savannah.nongnu.org/releases/%(name)s/%(name)s-%(version)s.tar.%(format)s' -nongnu = 'ftp://ftp.gnu.org/pub/gnu/non-gnu/%(name)s/%(name)s-%(version)s.tar.%(format)s' +nongnu = 'http://ftp.gnu.org/pub/gnu/non-gnu/%(name)s/%(name)s-%(version)s.tar.%(format)s' freetype = 'http://download.savannah.gnu.org/releases/freetype/%(name)s-%(version)s.tar.%(format)s'
--- a/gub/misc.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/misc.py Tue Sep 22 20:33:14 2009 +0200 @@ -132,7 +132,9 @@ return default_version def version_to_string (t): - return '%s-%s' % ('.'.join (map (string, t[:-1])), t[-1]) + if t[-1]: + return '%s-%s' % ('.'.join (map (str, t[:-1])), t[-1]) + return '.'.join (map (str, t[:-1])) def split_version (s): m = re.match ('^(([0-9].*)-([0-9]+))$', s) @@ -165,6 +167,9 @@ return (s, (0, 0), '') return (m.group (1), string_to_version ('-'.join (split_version (m.group (2)))), m.group (6)) +def assemble_ball (t): + return t[0] + '-' + version_to_string (t[1]) + '.tar.' + t[2] + def name_from_url (url): url, params = dissect_url (url) name = os.path.basename (url) @@ -283,6 +288,7 @@ # FIXME: read settings.rc, local, fallback should be a user-definable list def download_url (original_url, dest_dir, + dest_name='', local=[], cache=[os.environ.get ('GUB_DOWNLOAD_CACHE', '')], fallback=['http://lilypond.org/download/gub-sources'], @@ -307,13 +313,13 @@ result = 'no valid urls' for url in candidate_urls: - result = _download_url (url, dest_dir, progress) + result = _download_url (url, dest_dir, dest_name, progress) if type (result) == type (0): return raise Exception ('Download failed', result) -def _download_url (url, dest_dir, progress=None): - progress ('downloading %(url)s -> %(dest_dir)s\n' % locals ()) +def _download_url (url, dest_dir, dest_name='', progress=None): + progress ('downloading %(url)s -> %(dest_dir)s/%(dest_name)s\n' % locals ()) if not os.path.isdir (dest_dir): raise Exception ('not a dir', dest_dir) @@ -347,9 +353,11 @@ if progress: progress ('\n') - file_name = os.path.basename (url) + if not dest_name: + dest_name = os.path.basename (url) if size: - os.rename (tmpfile, os.path.join (dest_dir, file_name)) + print 'renaming:', tmpfile, os.path.join (dest_dir, dest_name) + os.rename (tmpfile, os.path.join (dest_dir, dest_name)) if progress: progress ('done (%(size)s)\n' % locals ()) else: @@ -695,6 +703,18 @@ return list (sorted (os.environ.get ('LIBRESTRICT', 'open').replace (':', ' ').split (' '))) +def latest_url (url, name, raw_version_file=None): + if not raw_version_file: + raw_version_file = 'downloads/%(name)s.index' % locals () + if not os.path.isfile (raw_version_file): + download_url (url, 'downloads', os.path.basename (raw_version_file)) + s = open (raw_version_file).read () + inert_name = name.replace ('+', '[+]') + m = re.findall ('(%(inert_name)s-[.0-9]+tar.gz)' % locals (), s) + if len (m) == 1: + return m[0] + return url + assemble_ball (sorted (map (split_ball, m))[-1]) + start = 0 def timing (): global start
--- a/gub/sources.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/sources.py Tue Sep 22 20:33:14 2009 +0200 @@ -13,7 +13,7 @@ from os.path import join from gub import mirrors -gnu = 'ftp://ftp.gnu.org/pub/gnu' +gnu = 'http://ftp.gnu.org/pub/gnu' nongnu = 'http://download.savannah.nongnu.org/releases' sf = 'http://surfnet.dl.sourceforge.net/sourceforge' gub = 'http://lilypond.org/download/gub-sources' @@ -23,7 +23,7 @@ ltool = mirrors.gnu % { 'name': 'libtool', 'version': '1.5.22', 'format': 'gz'} libtool = join (gnu, 'libtool/libtool-1.5.22.tar.gz') -# libtool = 'ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.5.22.tar.gz' +# libtool = 'http://ftp.gnu.org/pub/gnu/libtool/libtool-1.5.22.tar.gz' # foo__PLATFORM should also work here
--- a/gub/specs/alien.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/alien.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,17 +1,12 @@ +from gub import tools -## untested. -if 0: - Alien (settings).with_template (version="8.60", - mirror="http://www.kitenet.net/programs/alien/alien_8.60.tar.gz", - format="gz"), - - -class Alien (AutoBuild): +class Alien (tools.AutoBuild): + source = "http://www.kitenet.net/programs/alien/alien_8.60.tar.gz", + srcdir_build_broken = True def srcdir (self): return '%(allsrcdir)s/alien' def configure (self): - self.shadow () - AutoBuild.configure (self) + tools.AutoBuild.configure (self) self.system ('cd %(srcdir)s && patch -p0 < %(patchdir)s/alien.patch') def configure_command (self): return 'perl Makefile.PL'
--- a/gub/specs/atk.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/atk.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,23 +1,14 @@ -from gub import context +from gub import gnome from gub import target class Atk (target.AutoBuild): - source = 'ftp://ftp.gnome.org/pub/GNOME/sources/atk/1.25/atk-1.25.2.tar.gz' - def _get_build_dependencies (self): + #source = 'ftp://ftp.gnome.org/pub/GNOME/sources/atk/1.25/atk-1.25.2.tar.gz' + #source = 'ftp://ftp.gnome.org/pub/GNOME/sources/atk/1.25/atk-1.25.2.tar.gz&dependency=tools::libtool&dependency=glib-devel' + source = gnome.platform_url ('atk') + build_dependencies = ['tools::libtool', 'glib-devel'] + def XX_get_build_dependencies (self): return ['tools::libtool', 'glib-devel'] - def configure_command (self): - # FIXME: use cross_compiling=yes from gtk+.patch ()? - # UGH. glib-2.0.m4's configure snippet compiles and runs a - # program linked against glib; so it needs LD_LIBRARY_PATH (or - # a configure-time-only -Wl,-rpath, -Wl,%(system_prefix)s/lib - return (target.AutoBuild.configure_command (self) - + ''' LDFLAGS='%(rpath)s -Wl,-rpath -Wl,%(system_prefix)s/lib' ''') class Atk__mingw (Atk): def patch (self): self.file_sub ([('\$\(srcdir\)/atk.def', 'atk.def')], '%(srcdir)s/atk/Makefile.in', must_succeed=True) - -class Atk__darwin (Atk): - def configure_command (self): - # no rpath on darwin - return target.AutoBuild.configure_command (self)
--- a/gub/specs/autoconf.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/autoconf.py Tue Sep 22 20:33:14 2009 +0200 @@ -4,15 +4,10 @@ from gub import tools class Autoconf__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.63.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.63.tar.gz' + parallel_build_broken = True def _get_build_dependencies (self): return [ 'm4', 'perl', ] - def force_sequential_build (self): - return True - def makeflags (self): - return ('PERL5LIB=%(tools_prefix)s/lib/perl5/5.10.0' - + ':%(tools_prefix)s/lib/perl5/5.10.0/%(build_architecture)s' - + misc.append_path (os.environ.get ('PERL5LIB', '')))
--- a/gub/specs/automake.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/automake.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,13 +1,13 @@ from gub import tools class Automake__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/automake/automake-1.10.1.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/automake/automake-1.10.1.tar.gz' def _get_build_dependencies (self): return ['autoconf'] - def configure_command (self): - return ('AUTOM4TE=%(tools_prefix)s/bin/autom4te ' - + 'autom4te_perllibdir=%(tools_prefix)s/share/autoconf ' - + 'AC_MACRODIR=%(tools_prefix)s/share/autoconf ' - + 'M4PATH=%(tools_prefix)s/share/autoconf ' - + 'AUTOM4TE_CFG=%(tools_prefix)s/share/autoconf/autom4te.cfg ' - + tools.AutoBuild.configure_command (self)) + def configure_variables (self): + return (tools.AutoBuild.configure_variables (self) + + ' AUTOM4TE=%(tools_prefix)s/bin/autom4te' + + ' autom4te_perllibdir=%(tools_prefix)s/share/autoconf' + + ' AC_MACRODIR=%(tools_prefix)s/share/autoconf' + + ' M4PATH=%(tools_prefix)s/share/autoconf' + + ' AUTOM4TE_CFG=%(tools_prefix)s/share/autoconf/autom4te.cfg')
--- a/gub/specs/base-passwd.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/base-passwd.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,11 +2,9 @@ class Base_passwd (target.AutoBuild): source = 'ftp://ftp.nl.debian.org/debian/pool/main/b/base-passwd/base-passwd_3.5.11.tar.gz' + srcdir_build_broken = True def get_subpackage_names (self): return [''] - def configure (self): - self.shadow () - target.AutoBuild.configure (self) def configure_command (self): return (target.AutoBuild.configure_command (self) .replace ('--config-cache', '--cache-file=%(builddir)s/config.cache'))
--- a/gub/specs/bash.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/bash.py Tue Sep 22 20:33:14 2009 +0200 @@ -20,13 +20,9 @@ no_patch = True # let's not use patch in a bootstrap package class Bash__tools (tools.AutoBuild, Bash): patches = ['bash-3.2-librestrict.patch'] + parallel_build_broken = True if no_patch: patches = [] - def force_sequential_build (self): - return True - @context.subst_method - def LDFLAGS (self): - return '%(rpath)' def patch (self): if no_patch: self.file_sub ([('^ (check_dev_tty [(][)];)', r' /* \1 */')], @@ -36,6 +32,3 @@ def install (self): tools.AutoBuild.install (self) self.system ('cd %(install_prefix)s/bin && ln -s bash sh') - def wrap_executables (self): - # using rpath - pass
--- a/gub/specs/bison.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/bison.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,4 +1,4 @@ from gub import tools class Bison__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/bison/bison-2.3.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/bison/bison-2.3.tar.gz'
--- a/gub/specs/busybox.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/busybox.py Tue Sep 22 20:33:14 2009 +0200 @@ -7,6 +7,7 @@ class Busybox (target.AutoBuild): source = 'http://busybox.net/downloads/busybox-1.5.1.tar.bz2' + srcdir_build_broken = True def get_subpackage_names (self): return [''] def configure_command (self): @@ -15,7 +16,6 @@ def autoconf_h (self): return 'autoconf.h' def configure (self): - self.shadow () target.AutoBuild.configure (self) self.file_sub ([('^# CONFIG_FEATURE_SH_IS_ASH is not set', 'CONFIG_FEATURE_SH_IS_ASH=y'), ('^CONFIG_FEATURE_SH_IS_NONE=y', '# CONFIG_FEATURE_SH_IS_NONE is not set'), @@ -47,13 +47,13 @@ class Busybox__tools (tools.AutoBuild, Busybox): source = 'http://busybox.net/downloads/busybox-1.13.2.tar.gz' + srcdir_build_broken = True def configure_command (self): return 'make -f %(srcdir)s/Makefile defconfig' @context.subst_method def autoconf_h (self): return 'autoconf.h' def configure (self): - self.shadow () # tools.AutoBuild.configure (self) self.system ('cd %(builddir)s && %(configure_command)s') self.file_sub ([
--- a/gub/specs/bzip2.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/bzip2.py Tue Sep 22 20:33:14 2009 +0200 @@ -12,6 +12,3 @@ def install (self): tools.MakeBuild.install (self) self.system ('cp -pv %(builddir)s/libbz2.so* %(install_prefix)s/lib') - def wrap_executables (self): - # no dynamic executables - pass
--- a/gub/specs/coreutils.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/coreutils.py Tue Sep 22 20:33:14 2009 +0200 @@ -10,7 +10,7 @@ no_patch = True # let's not use patch in a bootstrap package class Coreutils__tools (tools.AutoBuild): -# source = 'ftp://ftp.gnu.org/pub/gnu/coreutils/coreutils-6.12.tar.gz' +# source = 'http://ftp.gnu.org/pub/gnu/coreutils/coreutils-6.12.tar.gz' source = 'http://ftp.gnu.org/pub/gnu/coreutils/coreutils-7.4.tar.gz' if 'BOOTSTRAP' in os.environ.keys (): patches = ['coreutils-6.12-shared-autoconf.patch'] @@ -59,6 +59,3 @@ if 'BOOTSTRAP' in os.environ.keys () or no_patch: self.system ('mkdir -p %(install_prefix)s/lib') self.system ('cp -pv %(builddir)s/lib/libcoreutils* %(install_prefix)s/lib') - def wrap_executables (self): - # using rpath - pass
--- a/gub/specs/cross/gcc-core.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/cross/gcc-core.py Tue Sep 22 20:33:14 2009 +0200 @@ -3,7 +3,7 @@ from gub import misc class Gcc_core (gcc.Gcc__from__source): - source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2' + source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2' def _get_build_dependencies (self): return gcc.Gcc._get_build_dependencies (self) def get_subpackage_names (self):
--- a/gub/specs/cross/gcc.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/cross/gcc.py Tue Sep 22 20:33:14 2009 +0200 @@ -96,7 +96,7 @@ Gcc__linux = Gcc__from__source class Gcc__mingw (Gcc): - source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2' + source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2' def _get_build_dependencies (self): return (Gcc._get_build_dependencies (self) + ['mingw-runtime', 'w32api'] @@ -160,7 +160,7 @@ # Untar stage is gone, use plain gcc + cygwin patch #class Gcc__cygwin (Gcc): class Gcc__cygwin (Gcc): - source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-3.4.4/gcc-3.4.4.tar.bz2' + source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-3.4.4/gcc-3.4.4.tar.bz2' patches = ['gcc-3.4.4-cygwin-3.patch'] def xuntar (self): ball = self.source._file_name ()
--- a/gub/specs/curl.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/curl.py Tue Sep 22 20:33:14 2009 +0200 @@ -6,9 +6,6 @@ source = 'http://curl.haxx.se/download/curl-7.19.0.tar.gz' def _get_build_dependencies (self): return ['tools::libtool'] - def configure_command (self): - return (target.AutoBuild.configure_command (self) - + ''' LDFLAGS='%(rpath)s -Wl,-rpath -Wl,%(system_prefix)s/lib' ''') def install (self): target.AutoBuild.install (self) self.system ('mkdir -p %(install_prefix)s%(cross_dir)s/bin') @@ -22,6 +19,3 @@ class Curl__tools (tools.AutoBuild, Curl): def _get_build_dependencies (self): return ['libtool'] - def configure_command (self): - return (tools.AutoBuild.configure_command (self) - + ''' LDFLAGS='-L%(system_prefix)s/lib %(rpath)s -Wl,-rpath -Wl,%(system_prefix)s/lib' ''')
--- a/gub/specs/cygwin/cross/binutils.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/cygwin/cross/binutils.py Tue Sep 22 20:33:14 2009 +0200 @@ -4,7 +4,7 @@ # FIXME: setting binutil's tooldir and/or gcc's gcc_tooldir may fix # -luser32 (ie -L .../w32api/) problem without having to set LDFLAGS. class Binutils__cygwin (cross_binutils.Binutils): - source = 'ftp://ftp.gnu.org/pub/gnu/binutils/binutils-2.17.tar.bz2' + source = 'http://ftp.gnu.org/pub/gnu/binutils/binutils-2.17.tar.bz2' def makeflags (self): from gub import misc return misc.join_lines ('''
--- a/gub/specs/dash.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/dash.py Tue Sep 22 20:33:14 2009 +0200 @@ -12,5 +12,3 @@ return (tools.AutoBuild.configure_command (self) # dash takes --enable-static to mean: --disable-shared .replace ('--enable-static', '')) - def wrap_executables (self): - pass
--- a/gub/specs/db.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/db.py Tue Sep 22 20:33:14 2009 +0200 @@ -4,6 +4,7 @@ class Db (target.AutoBuild): source = 'http://download.oracle.com/berkeley-db/db-4.7.25.tar.gz' + srcdir_build_broken = True def cache_file (self): return '%(builddir)s/build_unix/config.cache' def configure_command (self): @@ -15,7 +16,6 @@ def makeflags (self): return '-C build_unix' def configure (self): - self.shadow () self.system ('mkdir -p %(builddir)s/build_unix') target.AutoBuild.configure (self) self.file_sub ([('\(prefix\)docs', '\(prefix\)/share/doc/db'), @@ -74,12 +74,12 @@ self.system ('cd %(install_prefix)s/lib && mv libdb-4.7.la libdb-4.7.la-') class Db__tools (tools.AutoBuild, Db): + srcdir_build_broken = True def _get_build_dependencies (self): return ['libtool'] def configure_command (self): return 'cd build_unix && ../' + tools.AutoBuild.configure_command (self) def configure (self): - self.shadow () self.system ('mkdir -p %(builddir)s/build_unix') tools.AutoBuild.configure (self) self.file_sub ([('\(prefix\)docs', '\(prefix\)/share/doc/db'), @@ -90,5 +90,3 @@ def install (self): tools.AutoBuild.install (self) self.system ('cd %(install_prefix)s/lib && ln -s libdb-*.la libdb.la') - def wrap_executables (self): - pass
--- a/gub/specs/debian/cross/gcc.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/debian/cross/gcc.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,7 +2,7 @@ from gub import debian class Gcc__debian (gcc.Gcc): - source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-' + debian.gcc_version + '/gcc-' + debian.gcc_version + '.tar.bz2' + source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-' + debian.gcc_version + '/gcc-' + debian.gcc_version + '.tar.bz2' def _get_build_dependencies (self): return ['cross/binutils', 'libc6', 'libc6-dev', 'linux-kernel-headers'] ## TODO: should detect whether libc supports TLS @@ -10,6 +10,6 @@ return gcc.Gcc.configure_command (self) + ' --disable-tls ' class Gcc__debian__arm (Gcc__debian): - source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-3.4.6/gcc-3.4.6.tar.bz2' + source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-3.4.6/gcc-3.4.6.tar.bz2'
--- a/gub/specs/dhcp.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/dhcp.py Tue Sep 22 20:33:14 2009 +0200 @@ -3,13 +3,11 @@ class Dhcp (target.AutoBuild): #source = 'http://ftp.isc.org/isc/dhcp/dhcp-4.1.0a2.tar.gz' source = 'http://ftp.isc.org/isc/dhcp/dhcp-3.0.7.tar.gz&strip=2' + srcdir_build_broken = True def get_subpackage_names (self): return [''] def configure_command (self): return '%(srcdir)s/configure linux-2.2' - def configure (self): - self.shadow () - target.AutoBuild.configure (self) def makeflags (self): from gub import misc return misc.join_lines ('''
--- a/gub/specs/diff.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/diff.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,6 +2,3 @@ class Diff__tools (tools.AutoBuild): source = 'http://ftp.gnu.org/pub/gnu/diffutils/diffutils-2.8.1.tar.gz' - def wrap_executables (self): - # no dynamic executables [other than /lib:libc] - pass
--- a/gub/specs/fakechroot.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/fakechroot.py Tue Sep 22 20:33:14 2009 +0200 @@ -7,13 +7,13 @@ 'libtool', 'util-linux', # fakeroot script uses /usr/bin/getopt ] - def configure_command (self): - return (tools.AutoBuild.configure_command (self) - + ''' LDFLAGS='-L%(system_prefix)s/lib %(rpath)s -ldl' ''' + def libs (self): + return '-ldl' + def configure_variables (self): + return (tools.AutoBuild.configure_variables (self) + ' CC=%(system_prefix)s/bin/%(toolchain_prefix)sgcc' + ' CCLD=%(system_prefix)s/bin/%(toolchain_prefix)sgcc' - + ' CXX=%(system_prefix)s/bin/%(toolchain_prefix)sg++' - ) + + ' CXX=%(system_prefix)s/bin/%(toolchain_prefix)sg++') def compile (self): tools.AutoBuild.compile (self) self.file_sub ([('BINDIR=.*', 'BINDIR=%(system_prefix)s/bin'),
--- a/gub/specs/fakeroot-ng.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/fakeroot-ng.py Tue Sep 22 20:33:14 2009 +0200 @@ -7,13 +7,11 @@ 'fakeroot-ng-srcdir.patch', 'fakeroot-ng-linux-2.4.patch' ] - def configure_command (self): - return (tools.AutoBuild.configure_command (self) - + ''' LDFLAGS='-L%(system_prefix)s/lib64 -L%(system_prefix)s/lib %(rpath)s %(rpath)s64 -ldl' ''' - + ' CFLAGS=-I%(builddir)s' + srcdir_build_broken = True + def libs (self): + return '-ldl' + def configure_variables (self): + return (tools.AutoBuild.configure_variables (self) + ' CC=%(system_prefix)s/bin/%(toolchain_prefix)sgcc' - + ' CXX=%(system_prefix)s/bin/%(toolchain_prefix)sg++' - ) - def configure (self): - self.shadow () - tools.AutoBuild.configure (self) + + ' CCLD=%(system_prefix)s/bin/%(toolchain_prefix)sgcc' + + ' CXX=%(system_prefix)s/bin/%(toolchain_prefix)sg++')
--- a/gub/specs/fakeroot.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/fakeroot.py Tue Sep 22 20:33:14 2009 +0200 @@ -7,13 +7,13 @@ 'libtool', 'util-linux', # fakeroot script uses /usr/bin/getopt ] - def configure_command (self): - return (tools.AutoBuild.configure_command (self) - + ''' LDFLAGS='-L%(system_prefix)s/lib %(rpath)s -ldl' ''' + def libs (self): + return '-ldl' + def configure_variables (self): + return (tools.AutoBuild.configure_variables (self) + ' CC=%(system_prefix)s/bin/%(toolchain_prefix)sgcc' + ' CCLD=%(system_prefix)s/bin/%(toolchain_prefix)sgcc' - + ' CXX=%(system_prefix)s/bin/%(toolchain_prefix)sg++' - ) + + ' CXX=%(system_prefix)s/bin/%(toolchain_prefix)sg++') def compile (self): tools.AutoBuild.compile (self) self.file_sub ([('BINDIR=.*', 'BINDIR=%(system_prefix)s/bin'),
--- a/gub/specs/file.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/file.py Tue Sep 22 20:33:14 2009 +0200 @@ -9,6 +9,3 @@ 'libtool', 'zlib', ] - def configure_command (self): - return (tools.AutoBuild.configure_command (self) - + ''' LDFLAGS='-L%(system_prefix)s/lib %(rpath)s -Wl,-rpath -Wl,%(system_prefix)s/lib' ''')
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gub/specs/flex-old.py Tue Sep 22 20:33:14 2009 +0200 @@ -0,0 +1,9 @@ +from gub import tools + +class Flex_old__tools (tools.AutoBuild): + source = 'http://surfnet.dl.sourceforge.net/sourceforge/flex/flex-2.5.4a.tar.gz' + patches = ['flex-2.5.4a-FC4.patch'] + def _get_build_dependencies (self): + return ['bison'] + def install_command (self): + return self.broken_install_command (self)
--- a/gub/specs/flex.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/flex.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,11 +2,3 @@ class Flex__tools (tools.AutoBuild): source = 'http://surfnet.dl.sourceforge.net/sourceforge/flex/flex-2.5.33.tar.gz' - -class Flex_old__tools (tools.AutoBuild): - source = 'http://surfnet.dl.sourceforge.net/sourceforge/flex/flex-2.5.4a.tar.gz' - patches = ['flex-2.5.4a-FC4.patch'] - def _get_build_dependencies (self): - return ['bison'] - def install_command (self): - return self.broken_install_command (self)
--- a/gub/specs/fontconfig.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/fontconfig.py Tue Sep 22 20:33:14 2009 +0200 @@ -31,11 +31,6 @@ def patch (self): self.dump ('\nAC_SUBST(LT_AGE)', '%(srcdir)s/configure.in', mode='a', permissions=octal.o755) target.AutoBuild.patch (self) - def autoupdate (self): - target.AutoBuild.autoupdate (self) - # FIXME: PROMOTEME to target.py? -- yes, but in/after autoupdate stage - self.file_sub ([('cross_compiling=(maybe|no)', 'cross_compiling=yes')], - '%(srcdir)s/configure') @context.subst_method def freetype_cflags (self): # this is shady: we're using the flags from the tools version
--- a/gub/specs/fontforge.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/fontforge.py Tue Sep 22 20:33:14 2009 +0200 @@ -4,10 +4,10 @@ class Fontforge__tools (tools.AutoBuild): source = 'http://lilypond.org/download/gub-sources/fontforge_full-20080927.tar.bz2' patches = ['fontforge-20080927-noxml2.patch'] + parallel_build_broken = True + srcdir_build_broken = True def _get_build_dependencies (self): return ['freetype', 'libpng', 'libjpeg', 'libxml2'] - def force_sequential_build (self): - return True def srcdir (self): return tools.AutoBuild.srcdir (self).replace ('_full', '') def patch (self): @@ -41,12 +41,3 @@ # let's ignore python (and its dynamic link intracies # for now). + ' --without-python') - @context.subst_method - def LDFLAGS (self): - return '%(rpath)' - def configure (self): - self.shadow () - tools.AutoBuild.configure (self) - def wrap_executables (self): - # using rpath - pass
--- a/gub/specs/freebsd/cross/gcc.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/freebsd/cross/gcc.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,9 +2,9 @@ from gub import misc class Gcc__freebsd (cross_gcc.Gcc): - #source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2' - #source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2' - source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.3.2/gcc-4.3.2.tar.bz2' + #source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2' + #source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2' + source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-4.3.2/gcc-4.3.2.tar.bz2' def _get_build_dependencies (self): return cross_gcc.Gcc._get_build_dependencies (self) + ['tools::mpfr'] def configure_command (self):
--- a/gub/specs/gawk.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/gawk.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,4 +1,4 @@ from gub import tools class Gawk__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/gawk/gawk-3.1.6.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/gawk/gawk-3.1.6.tar.gz'
--- a/gub/specs/gettext.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/gettext.py Tue Sep 22 20:33:14 2009 +0200 @@ -3,7 +3,7 @@ class Gettext (target.AutoBuild): # 0.16.1 makes gcc barf on ICE. - source = 'ftp://ftp.gnu.org/pub/gnu/gettext/gettext-0.15.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/gettext/gettext-0.15.tar.gz' def _get_build_dependencies (self): return ['libtool'] def LD_PRELOAD (self): @@ -23,8 +23,9 @@ ''') def configure_command (self): return (target.AutoBuild.configure_command (self) - + ' --disable-threads --disable-csharp --disable-java ' - + ''' LDFLAGS='%(rpath)s' ''' + + ' --disable-threads' + + ' --disable-csharp' + + ' --disable-java' ) def configure (self): target.AutoBuild.configure (self) @@ -91,5 +92,4 @@ '%(builddir)s/gettext-tools/Makefile') def configure_command (self): return (tools.AutoBuild.configure_command (self) - + ' --disable-libasprintf' - + ''' LDFLAGS='%(rpath)s' ''') + + ' --disable-libasprintf')
--- a/gub/specs/ghostscript.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/ghostscript.py Tue Sep 22 20:33:14 2009 +0200 @@ -24,6 +24,7 @@ # HEAD - need to load TTF fonts on fedora without crashing. revision = 'b35333cf3579e85725bd7d8d39eacc9640515eb8' source = 'git://git.infradead.org/ghostscript.git?branch=refs/remotes/git-svn&revision=' + revision + parallel_build_broken = True def __init__ (self, settings, source): target.AutoBuild.__init__ (self, settings, source) if (isinstance (source, repository.Repository) @@ -40,30 +41,21 @@ except: pass return '0.0' - def force_sequential_build (self): - return True - def _get_build_dependencies (self): return ['libjpeg-devel', 'libpng-devel'] - def get_subpackage_names (self): return ['doc', ''] - def srcdir (self): return re.sub ('-source', '', target.AutoBuild.srcdir (self)) - def builddir (self): return re.sub ('-source', '', target.AutoBuild.builddir (self)) - def name (self): return 'ghostscript' - # FIXME: C&P. def ghostscript_version (self): return '.'.join (self.ball_version.split ('.')[0:2]) - def autoupdate (self): # generate Makefile.in self.system ('cd %(srcdir)s && sh ./autogen.sh --help') @@ -73,7 +65,6 @@ 'bjc200', 'cdeskjet', 'faxg3', 'cljet5'])) self.file_sub ([(disable_re, r'#\1= -DISABLED- \2 ')], '%(srcdir)s/Makefile.in') - def fixup_arch (self): # FIXME: wow, this is broken, cross-compile-wise. Use a compiled # c program to determine the size of basic types *after* an @@ -369,10 +360,9 @@ return {'base': 'The GPL Ghostscript PostScript interpreter - transitional package\nThis is an empty package to streamline the upgrade.'} class Ghostscript__tools (tools.AutoBuild, Ghostscript): + parallel_build_broken = True def _get_build_dependencies (self): return ['libjpeg', 'libpng'] - def force_sequential_build (self): - return True def configure_flags (self): return (tools.AutoBuild.configure_flags (self) + Ghostscript.configure_flags (self)) @@ -398,6 +388,3 @@ + ' docdir=%(prefix_dir)s/share/doc/ghostscript/doc ' + ' exdir=%(prefix_dir)s/share/doc/ghostscript/examples ' ) - def wrap_executables (self): - # using rpath - pass
--- a/gub/specs/git.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/git.py Tue Sep 22 20:33:14 2009 +0200 @@ -7,9 +7,7 @@ 'git-1.5.2-templatedir.patch', #'git-1.5-shell-anality.patch' ] - def configure (self): - self.shadow () - target.AutoBuild.configure (self) + srcdir_build_broken = True def get_subpackage_names (self): return [''] def _get_build_dependencies (self): @@ -29,6 +27,7 @@ class Git__mingw (Git): patches = [] + srcdir_build_broken = True def __init__ (self, settings, source): Git.__init__ (self, settings, source) self.target_gcc_flags = ' -mms-bitfields ' @@ -80,9 +79,6 @@ self.file_sub ([('\t\\$\\(QUIET_SUBDIR0\\)perl[^\n]+\n', ''), ('SCRIPT_PERL = ', 'SCRIPT_PERL_X = ')], '%(srcdir)s/Makefile') - def configure (self): - self.shadow () - tools.AutoBuild.configure (self) def configure_command (self): return (tools.AutoBuild.configure_command (self) + ' --without-openssl') @@ -91,8 +87,3 @@ if 'freebsd' in self.settings.build_architecture: flags += ' CFLAGS="-O2 -Duintmax_t=unsigned -Dstrtoumax=strtoul"' return flags - def wrap_executables (self): - # using rpath - # Besides: GIT executables use ancient unix style smart - # name-based functionality switching. - pass
--- a/gub/specs/glib.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/glib.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,12 +1,12 @@ +from gub import gnome from gub import misc from gub import tools from gub import target from gub import w32 class Glib (target.AutoBuild): - ## 2.12.4 : see bug http://bugzilla.gnome.org/show_bug.cgi?id=362918 - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.22/2.22.0/sources/glib-2.16.1.tar.bz2' - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.25/2.25.5/sources/glib-2.19.5.tar.gz' + #source = 'http://ftp.gnome.org/pub/GNOME/platform/2.25/2.25.5/sources/glib-2.19.5.tar.gz' + source = gnome.platform_url ('glib') def _get_build_dependencies (self): if 'stat' in misc.librestrict (): return ['tools::glib', 'gettext-devel', 'libtool'] @@ -38,7 +38,6 @@ '%(builddir)s/libtool') class Glib__darwin__x86 (Glib__darwin): - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.26/2.26.3/sources/glib-2.20.4.tar.gz' def compile (self): self.file_sub ([('(SUBDIRS = .*) tests', r'\1'), (r'GTESTER = \$.*', ''), @@ -48,7 +47,6 @@ Glib__darwin.compile (self) class Glib__mingw (Glib): - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.26/2.26.3/sources/glib-2.20.4.tar.gz' def _get_build_dependencies (self): return Glib._get_build_dependencies (self) + ['libiconv-devel'] @@ -66,16 +64,10 @@ # FIXME: should add fixup to update_libtool () return ' G_THREAD_LIBS=-pthread G_THREAD_LIBS_FOR_GTHREAD=-pthread ' -class Glib__linux__64 (Glib): - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.26/2.26.3/sources/glib-2.20.4.tar.gz' - class Glib__tools (tools.AutoBuild, Glib): def install (self): tools.AutoBuild.install (self) self.system ('rm -f %(install_root)s%(packaging_suffix_dir)s%(prefix_dir)s/lib/charset.alias') - def configure_command (self): - return (tools.AutoBuild.configure_command (self) - + ''' LDFLAGS='-L%(system_prefix)s/lib %(rpath)s -Wl,-rpath -Wl,%(system_prefix)s/lib' ''') def _get_build_dependencies (self): return [ 'gettext',
--- a/gub/specs/glibc.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/glibc.py Tue Sep 22 20:33:14 2009 +0200 @@ -77,7 +77,7 @@ + add_ons) def linuxthreads (self): return repository.get_repository_proxy (self.settings.downloads, - self.expand ('ftp://ftp.gnu.org/pub/gnu/glibc/glibc-linuxthreads-%(version)s.tar.bz2&strip_components=0')) + self.expand ('http://ftp.gnu.org/pub/gnu/glibc/glibc-linuxthreads-%(version)s.tar.bz2&strip_components=0')) def download (self): target.AutoBuild.download (self) if self.version () == '2.3.6':
--- a/gub/specs/gmp.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/gmp.py Tue Sep 22 20:33:14 2009 +0200 @@ -6,7 +6,7 @@ from gub import tools class Gmp (target.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/gmp/gmp-4.2.1.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/gmp/gmp-4.2.1.tar.gz' def __init__ (self, settings, source): target.AutoBuild.__init__ (self, settings, source) if not self.settings.platform.startswith ('darwin'): @@ -43,10 +43,10 @@ '%(install_prefix)s/include/gmp.h') class Gmp__darwin__x86 (Gmp__darwin): - source = 'ftp://ftp.gnu.org/pub/gnu/gmp/gmp-4.2.4.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/gmp/gmp-4.2.4.tar.gz' class Gmp__cygwin (Gmp): - source = 'ftp://ftp.gnu.org/pub/gnu/gmp/gmp-4.1.4.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/gmp/gmp-4.1.4.tar.gz' patches = ['gmp-4.1.4-1.patch'] class Gmp__mingw (Gmp): @@ -62,7 +62,7 @@ ''') class Gmp__freebsd (Gmp): - source = 'ftp://ftp.gnu.org/pub/gnu/gmp/gmp-4.2.4.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/gmp/gmp-4.2.4.tar.gz' class Gmp__tools (tools.AutoBuild, Gmp): def _get_build_dependencies (self):
--- a/gub/specs/grep.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/grep.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,4 +1,4 @@ from gub import tools class Grep__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/grep/grep-2.5.4.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/grep/grep-2.5.4.tar.gz'
--- a/gub/specs/gtk+.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/gtk+.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,17 +2,9 @@ from gub import target class Gtk_x_ (target.AutoBuild): - # crashes inkscape - # source = 'http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.15/gtk+-2.15.2.tar.gz' - #source = 'http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.15/gtk+-2.15.0.tar.gz' - source = 'http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.15/gtk+-2.15.3.tar.gz' + #source = 'http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.15/gtk+-2.15.3.tar.gz' + source = gnome.platform ('gtk+') patches = ['gtk+-2.15.3-substitute-env.patch'] - # patches = ['gtk+-2.15.3-configure.in-gio-can-sniff-png.patch'] - # def config_cache_overrides (self, string): - # return string + '\ngtk_cv_gio_can_sniff_png=yes\n' -# Requested 'glib-2.0 >= 2.17.6' but version of GLib is 2.16.1 -# FIXME: should bump GNOME deps -# source = 'http://ftp.acc.umu.se/pub/GNOME/sources/gtk+/2.14/gtk+-2.14.7.tar.gz' def _get_build_dependencies (self): return ['libtool', 'atk-devel', @@ -26,13 +18,6 @@ #, 'libxinerama-devel', 'libxfixes-devel', ] - @context.subst_method - def LDFLAGS (self): - # FIXME: See what happens when using the cross_compiling=yes - # UGH. glib-2.0.m4's configure snippet compiles and runs a - # program linked against glib; so it needs LD_LIBRARY_PATH (or - # a configure-time-only -Wl,-rpath, -Wl,%(system_prefix)s/lib - return '-Wl,-rpath -Wl,%(system_prefix)s/lib %(rpath)s' def patch (self): target.AutoBuild.patch (self) self.file_sub ([ @@ -42,19 +27,15 @@ def configure_command (self): return (' export gio_can_sniff=yes; ' + target.AutoBuild.configure_command (self) - + ''' LDFLAGS='%(rpath)s -Wl,-rpath -Wl,%(system_prefix)s/lib' ''' + ' --without-libjasper' + ' --disable-cups') - @context.subst_method - def gtk_so_extension (self): - return '.so' #FIXME! def create_config_files (self, prefix='/usr'): gtk_module_version = '2.10.0' #FIXME! etc = self.expand ('%(install_root)s/%(prefix)s/etc/gtk-2.0', locals ()) self.dump (''' setdir GTK_PREFIX=$INSTALLER_PREFIX set GTK_MODULE_VERSION=%(gtk_module_version)s -set GTK_SO_EXTENSION=%(gtk_so_extension)s +set GTK_SO_EXTENSION=%(so_extension)s ''', '%(install_prefix)s/etc/relocate/gtk+.reloc', env=locals ()) self.copy ('%(sourcefiledir)s/gdk-pixbuf.loaders', etc) def install (self): @@ -70,53 +51,16 @@ patches = Gtk_x___freebsd.patches + ['gtk+-2.15.3-configure.in-have-iswalnum.patch'] class Gtk_x_without_X11 (Gtk_x_): - #source = 'http://ftp.acc.umu.se/pub/GNOME/sources/gtk+/2.14/gtk+-2.14.7.tar.gz' - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.26/2.26.3/sources/gtk+-2.16.4.tar.gz' def _get_build_dependencies (self): return [x for x in Gtk_x_._get_build_dependencies (self) if 'libx' not in x] class Gtk_x___mingw (Gtk_x_without_X11): - def LDFLAGS (self): - return '-Wl,-rpath -Wl,%(system_prefix)s/lib %(rpath)s' - def gtk_so_extension (self): - return '.dll' #FIXME! def patch (self): Gtk_x_.patch (self) - ###self.file_sub ([('gailutil.def', '$(srcdir)/gailutil.def')], '%(srcdir)s/modules/other/gail/libgail-util/Makefile.in', must_succeed=True) - -''' 2.15.3 does not build for mingw -if /bin/bash ../libtool --mode=compile i686-mingw32-gcc -mwindows -mms-bitfields -DHAVE_CONFIG_H -I. -I/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk -I.. -DG_LOG_DOMAIN=\"Gtk\" -DGTK_LIBDIR=\"/usr/lib\" -DGTK_DATADIR=\"/usr/share\" -DGTK_DATA_PREFIX=\"/usr\" -DGTK_SYSCONFDIR=\"/usr/etc\" -DGTK_VERSION=\"2.15.3\" -DGTK_BINARY_VERSION=\"2.10.0\" -DGTK_HOST=\"i686-pc-mingw32\" -DGTK_COMPILATION -DGTK_PRINT_BACKENDS=\"file,lpr\" -DGTK_PRINT_PREVIEW_COMMAND=\""evince --unlink-tempfile --preview --print-settings %s %f"\" -I.. -I../gtk -I/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3 -I../gdk -I/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gdk -I/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gdk-pixbuf -I../gdk-pixbuf -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGTK_FILE_SYSTEM_ENABLE_UNSUPPORTED -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED -DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES -mms-bitfields -I/home/janneke/vc/gub/target/mingw/root/usr/include/glib-2.0 -I/home/janneke/vc/gub/target/mingw/root/usr/lib/glib-2.0/include -I/home/janneke/vc/gub/target/mingw/root/usr/include/pango-1.0 -I/home/janneke/vc/gub/target/mingw/root/usr/include/cairo -I/home/janneke/vc/gub/target/mingw/root/usr/include/freetype2 -I/home/janneke/vc/gub/target/mingw/root/usr/include -I/home/janneke/vc/gub/target/mingw/root/usr/include/atk-1.0 -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_DEPRECATED -g -O2 -g -Wall -mms-bitfields -MT gtkstock.lo -MD -MP -MF ".deps/gtkstock.Tpo" \ - -c -o gtkstock.lo `test -f '/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk/gtkstock.c' || echo '/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk/'`/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk/gtkstock.c; \ - then mv -f ".deps/gtkstock.Tpo" ".deps/gtkstock.Plo"; \ - else rm -f ".deps/gtkstock.Tpo"; exit 1; \ - fi -/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk/gtkstatusicon.c: In function 'wndproc': -/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk/gtkstatusicon.c:710: error: 'WM_XBUTTONDOWN' undeclared (first use in this function) -/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk/gtkstatusicon.c:710: error: (Each undeclared identifier is reported only once -/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk/gtkstatusicon.c:710: error: for each function it appears in.) -/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk/gtkstatusicon.c:711: error: 'XBUTTON1' undeclared (first use in this function) -/home/janneke/vc/gub/target/mingw/src/gtk+-2.15.3/gtk/gtkstatusicon.c:736: error: 'WM_XBUTTONUP' undeclared (first use in this function) -''' - -class Gtk_x___linux__64 (Gtk_x_): - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.26/2.26.3/sources/gtk+-2.16.4.tar.gz' - def patch (self): - Gtk_x_.patch (self) - # FIXME: PROMOTEME to target.py? -- yes, but in/after autoupdate stage - self.file_sub ([('cross_compiling=(maybe|no)', 'cross_compiling=yes')], - '%(srcdir)s/configure') - def configure_command (self): - return (Gtk_x_.configure_command (self) - + ' --disable-glibtest' - + ' --disable-test-print-backend') class Gtk_x___darwin (Gtk_x_without_X11): - def LDFLAGS (self): - return '' def configure_command (self): return (Gtk_x_without_X11.configure_command (self) - .replace (''' LDFLAGS='%(rpath)s -Wl,-rpath -Wl,%(system_prefix)s/lib' ''', '') + ' --with-gdktarget=quartz' ) -
--- a/gub/specs/guile.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/guile.py Tue Sep 22 20:33:14 2009 +0200 @@ -61,7 +61,8 @@ --enable-rpath ''') def configure_variables (self): - return misc.join_lines (''' + return (target.AutoBuild.configure_variables (self) + + misc.join_lines (''' CC_FOR_BUILD=" C_INCLUDE_PATH= CPPFLAGS= @@ -73,14 +74,11 @@ -I%(builddir)s/libguile -I. -I%(srcdir)s/libguile" -''') +''')) def configure_command (self): return ('GUILE_FOR_BUILD=%(tools_prefix)s/bin/guile ' - + 'LD_LIBRARY_PATH=%(system_prefix)s/lib:${LD_LIBRARY_PATH-/foe} ' + target.AutoBuild.configure_command (self) + self.configure_flags ()) - def makeflags (self): - return '''LDFLAGS='%(rpath)s' ''' def compile_command (self): return ('preinstguile=%(tools_prefix)s/bin/guile ' + target.AutoBuild.compile_command (self)) @@ -174,9 +172,6 @@ class Guile__linux (Guile): def compile_command (self): - # FIXME: when not x-building, guile runs guile without - # setting the proper LD_LIBRARY_PATH. - # FIXME: try removing this and using cross_compiling=yes fix return ('export LD_LIBRARY_PATH=%(builddir)s/libguile/.libs:$LD_LIBRARY_PATH;' + Guile.compile_command (self)) @@ -349,6 +344,3 @@ # Ugh: remove development stuff from tools # Make sure no tool GUILE headers can interfere with compile. self.system ("rm -rf %(install_root)s%(packaging_suffix_dir)s%(prefix_dir)s/include/ %(install_root)s%(packaging_suffix_dir)s%(prefix_dir)s/bin/guile-config ") - def wrap_executables (self): - # using rpath - pass
--- a/gub/specs/icoutils.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/icoutils.py Tue Sep 22 20:33:14 2009 +0200 @@ -9,9 +9,7 @@ + misc.join_lines (''' --with-libintl-prefix=%(system_prefix)s --disable-nls -''') - # PROMOTEME: rpath - + ''' LDFLAGS='-L%(system_prefix)s/lib %(rpath)s -Wl,-rpath -Wl,%(system_prefix)s/lib' ''') +''')) class Icoutils__darwin (tools.AutoBuild): def patch (self):
--- a/gub/specs/imagemagick.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/imagemagick.py Tue Sep 22 20:33:14 2009 +0200 @@ -5,10 +5,8 @@ class ImageMagick__tools (tools.AutoBuild): source = 'http://ftp.surfnet.nl/pub/ImageMagick/ImageMagick-6.4.5-4.tar.gz' -# source = 'http://ftp.surfnet.nl/pub/ImageMagick/ImageMagick-6.3.7-9.tar.gz' def _get_build_dependencies (self): return [ -# 'system::g++', 'automake', 'bzip2', 'fontconfig', @@ -18,8 +16,7 @@ 'libtiff', 'libxml2', 'libtool', -# 'perl-extutils-makemaker', - 'perl', # extutils-makemaker is now in perl-5.10.0? Weird. + 'perl', 'zlib', ] def configure_flags (self): @@ -28,23 +25,8 @@ --without-magick-plus-plus --without-perl ''')) - @context.subst_method - def LDFLAGS (self): - return '%(rpath)' - def configure (self): - # do *not* update libtool, GUB's 1.5.x is too old :-( - build.AutoBuild.configure (self) - def wrap_executables (self): - # using rpath - pass class ImageMagick__tools__autoupdate (ImageMagick__tools): - def XXforce_autoupdate (self): - # this does not work, ImageMagick adds cruft of its own in ./ltdl - # and somehow *needs* ./ltdl (1.5.22 will make ./libltdl) - return True - def XXaclocal_path (self): - return ['m4'] + tools.AutoBuild.aclocal_path (self) def autoupdate (self): self.system (''' cd %(autodir)s && libtoolize --copy --force --automake --ltdl
--- a/gub/specs/inkscape.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/inkscape.py Tue Sep 22 20:33:14 2009 +0200 @@ -50,11 +50,7 @@ def configure_command (self): return (target.AutoBuild.configure_command (self) + ' --enable-lcms' -# + ' --disable-poppler-cairo' + ' --enable-binreloc=yes' -# + ''' CXXFLAGS='-static-libgcc -lstdc++' ''' -# + ''' CXXLD='$(CC)' ''' - + ''' LDFLAGS='%(rpath)s' ''' + ' CXXFLAGS=-fpermissive' ) @@ -67,21 +63,6 @@ return (Inkscape.configure_command (self) + ' --disable-poppler-cairo') -''' poppler does not build for mingw - i686-mingw32-g++ -mwindows -mms-bitfields -DHAVE_CONFIG_H -I. -I/home/janneke/vc/gub/target/mingw/src/poppler-0.10.3/poppler -I.. -I/home/janneke/vc/gub/target/mingw/src/poppler-0.10.3 -I/home/janneke/vc/gub/target/mingw/src/poppler-0.10.3/goo -I/home/janneke/vc/gub/target/mingw/root/usr/include/cairo -I/home/janneke/vc/gub/target/mingw/root/usr/include/libxml2 -I/home/janneke/vc/gub/target/mingw/root/usr/include/freetype2 -I/home/janneke/vc/gub/target/mingw/root/usr/include -Wall -Wno-write-strings -g -O2 -MT SplashOutputDev.lo -MD -MP -MF .deps/SplashOutputDev.Tpo -c /home/janneke/vc/gub/target/mingw/src/poppler-0.10.3/poppler/SplashOutputDev.cc -DDLL_EXPORT -DPIC -o .libs/SplashOutputDev.o -In file included from /home/janneke/vc/gub/target/mingw/src/poppler-0.10.3/poppler/GlobalParams.h:35, - from /home/janneke/vc/gub/target/mingw/src/poppler-0.10.3/poppler/SplashOutputDev.cc:37: -/home/janneke/vc/gub/target/mingw/src/poppler-0.10.3/poppler/poppler-config.h:80:1: warning: "CDECL" redefined -In file included from /home/janneke/vc/gub/target/mingw/root/usr/include/windows.h:48, - from /home/janneke/vc/gub/target/mingw/src/poppler-0.10.3/goo/gfile.h:37, - from /home/janneke/vc/gub/target/mingw/src/poppler-0.10.3/poppler/SplashOutputDev.cc:36: -/home/janneke/vc/gub/target/mingw/root/usr/include/windef.h:111:1: warning: this is the location of the previous definition -/home/janneke/vc/gub/target/mingw/root/usr/include/jmorecfg.h:161: error: conflicting declaration 'typedef long int INT32' -/home/janneke/vc/gub/target/mingw/root/usr/include/basetsd.h:52: error: 'INT32' has a previous declaration as 'typedef int INT32' -/home/janneke/vc/gub/target/mingw/root/usr/include/jmorecfg.h:227: error: conflicting declaration 'typedef int boolean' -/home/janneke/vc/gub/target/mingw/root/usr/include/rpcndr.h:52: error: 'boolean' has a previous declaration as 'typedef unsigned char boolean' -''' - class Inkscape__freebsd (Inkscape): def configure_command (self): return (Inkscape.configure_command (self)
--- a/gub/specs/jade.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/jade.py Tue Sep 22 20:33:14 2009 +0200 @@ -5,6 +5,7 @@ class Jade__tools (tools.AutoBuild): source = 'ftp://ftp.jclark.com/pub/jade/jade-1.2.1.tar.gz' + srcdir_build_broken = True def _get_build_dependencies (self): return ['tools::autoconf', 'tools::libtool'] def autoupdate (self): @@ -21,7 +22,6 @@ def configure_binary (self): return '%(builddir)s/configure' def configure (self): - self.shadow () tools.AutoBuild.configure (self) self.system ('cd %(builddir)s; for i in $(ls -1dF * |grep /); do make -C $i -f ../Makefile.lib Makefile.lt; done || :') def makeflags (self):
--- a/gub/specs/libgcrypt.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/libgcrypt.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,4 +2,4 @@ # hmmrg, no libgcrypt.so in here... class Libgcrypt (target.AutoBuild): - source = 'ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.9.tar.bz2' + source = 'http://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.9.tar.bz2'
--- a/gub/specs/libgphoto2.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/libgphoto2.py Tue Sep 22 20:33:14 2009 +0200 @@ -39,5 +39,5 @@ return ('PATH=%(srcdir)s:$PATH ' + target.AutoBuild.configure_command (self)) def makeflags (self): - return """ libgphoto2_port_la_DEPENDENCIES='$(top_srcdir)/gphoto2/gphoto2-port-version.h $(top_srcdir)/gphoto2/gphoto2-port-library.h $(srcdir)/libgphoto2_port.sym' libgphoto2_la_DEPENDENCIES='$(top_srcdir)/gphoto2/gphoto2-version.h $(srcdir)/libgphoto2.sym' LDFLAGS='%(rpath)s'""" + return """ libgphoto2_port_la_DEPENDENCIES='$(top_srcdir)/gphoto2/gphoto2-port-version.h $(top_srcdir)/gphoto2/gphoto2-port-library.h $(srcdir)/libgphoto2_port.sym' libgphoto2_la_DEPENDENCIES='$(top_srcdir)/gphoto2/gphoto2-version.h $(srcdir)/libgphoto2.sym'"""
--- a/gub/specs/libiconv.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/libiconv.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,15 +1,12 @@ from gub import target class Libiconv (target.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.tar.gz' - def force_sequential_build (self): - return True + source = 'http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.tar.gz' + parallel_build_broken = True def _get_build_dependencies (self): return ['gettext-devel', 'libtool'] def patch (self): target.AutoBuild.patch (self) - #self.file_sub ([(' [*][)]', ' foobar)')], - # '%(srcdir)s/src/Makefile.in') self.file_sub ([('$(DESTDIR)$(libdir)/libiconv.la', '../lib/libiconv.la')], '%(srcdir)s/src/Makefile.in', use_re=False) def install (self): target.AutoBuild.install (self)
--- a/gub/specs/liblpsolve.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/liblpsolve.py Tue Sep 22 20:33:14 2009 +0200 @@ -3,14 +3,13 @@ class Liblpsolve (target.AutoBuild): source = 'http://surfnet.dl.sourceforge.net/lpsolve/lp_solve_5.5.0.13_source.tar.gz' - def force_sequential_build (self): - return True + parallel_build_broken = True + srcdir_build_broken = True def _get_build_dependencies (self): return ['tools::automake'] def autoupdate (self): # install install-sh self.system ('cd %(srcdir)s && automake --add-missing --copy --force --foreign || :') - self.shadow () def makeflags (self): return misc.join_lines (''' AR=%(toolchain_prefix)sar
--- a/gub/specs/libsamplerate.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/libsamplerate.py Tue Sep 22 20:33:14 2009 +0200 @@ -4,15 +4,3 @@ source = 'http://www.mega-nerd.com/SRC/libsamplerate-0.1.7.tar.gz' def _get_build_dependencies (self): return ['tools::automake', 'tools::pkg-config',] - -class Libsamplerate__darwin__x86 (Libsamplerate): - # FIXME: PROMOTEME to build.py/target.py [or for darwin_x86 only?] - def patch (self): - Libsamplerate.patch (self) - # somehow retriggers autoconf?!? -# for i in ('configure.ac', 'configure'): - for i in ['configure']: - self.file_sub ([('-fpascal-strings ', ''), - ('-I(/Developer/Headers/FlatCarbon)', - r'-I%(system_root)s\1'), - ], '%(srcdir)s/' + i)
--- a/gub/specs/libsndfile.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/libsndfile.py Tue Sep 22 20:33:14 2009 +0200 @@ -4,15 +4,3 @@ source = 'http://www.mega-nerd.com/libsndfile/libsndfile-1.0.20.tar.gz' def _get_build_dependencies (self): return ['tools::automake', 'tools::pkg-config', 'libtool'] - -class Libsndfile__darwin__x86 (Libsndfile): - # FIXME: PROMOTEME to build.py/target.py [or for darwin_x86 only?] - def patch (self): - Libsndfile.patch (self) - # somehow retriggers autoconf?!? -# for i in ('configure.ac', 'configure'): - for i in ['configure']: - self.file_sub ([('-fpascal-strings ', ''), - ('-I(/Developer/Headers/FlatCarbon)', - r'-I%(system_root)s\1'), - ], '%(srcdir)s/' + i)
--- a/gub/specs/libt1.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/libt1.py Tue Sep 22 20:33:14 2009 +0200 @@ -3,23 +3,19 @@ class Libt1 (target.AutoBuild): source = 'ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-5.1.2.tar.gz' + parallel_build_broken = True + srcdir_build_broken = True def _get_build_dependencies (self): return [ 'tools::libtool', ] - def force_sequential_build (self): - return True - def configure (self): - self.shadow () - tools.AutoBuild.configure (self) def makeflags (self): return ''' without_doc 'VPATH:=$(srcdir)' ''' class Libt1__tools (tools.AutoBuild, Libt1): + parallel_build_broken = True + srcdir_build_broken = True def _get_build_dependencies (self): return [ 'libtool', ] - def configure (self): - self.shadow () - tools.AutoBuild.configure (self)
--- a/gub/specs/libtool.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/libtool.py Tue Sep 22 20:33:14 2009 +0200 @@ -7,7 +7,7 @@ from gub import tools class Libtool (target.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/libtool/libtool-2.2.6a.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/libtool/libtool-2.2.6a.tar.gz' #source = 'git://git.sv.gnu.org/libtool.git?branch=master&revision=77e114998457cb6170ad84b360cb5b9be90f2191' def __init__ (self, settings, source): target.AutoBuild.__init__ (self, settings, source) @@ -90,8 +90,7 @@ def __init__ (self, settings, source): tools.AutoBuild.__init__ (self, settings, source) Libtool.set_sover (self) - def update_libtool (self): - pass + update_libtool = tools.AutoBuild.nop def install (self): tools.AutoBuild.install (self) # FIXME: urg. Are we doing something wrong? Why does libtool @@ -99,7 +98,3 @@ self.file_sub ([(' (/usr/lib/*[" ])', r' %(system_prefix)s/lib \1'), ('((-L| )/usr/lib/../lib/* )', r'\2%(system_prefix)s/lib \1')], '%(install_prefix)s/bin/libtool') - def wrap_executables (self): - # The libtool script calls the cross compilers, and moreover, - # it is copied. Two reasons why it cannot be wrapped. - pass
--- a/gub/specs/libxcb.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/libxcb.py Tue Sep 22 20:33:14 2009 +0200 @@ -21,16 +21,10 @@ class Libxcb__freebsd (Libxcb): patches = Libxcb.patches + ['libxcb-0.9.93-freebsd.patch'] - def force_sequential_build (self): - return True + parallel_build_broken = True def configure_command (self): return (Libxcb.configure_command (self) + ' LDFLAGS=-pthread') -# def install (self): -# Libxcb.install (self) -# FIXME: why doesn't libtool pick this up? -# self.file_sub ([("""(dependency_libs=.*)'""", r"""\1 -pthread '""")], -# '%(install_prefix)s/lib/libxcb-xlib.la') class Libxcb__mingw (Libxcb): patches = []
--- a/gub/specs/libxml2.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/libxml2.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,10 +1,11 @@ from gub import context +from gub import gnome from gub import misc from gub import target from gub import tools class Libxml2 (target.AutoBuild): - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.18/2.18.1/sources/libxml2-2.6.27.tar.gz' + source = gnome.platform_url ('libxml2', '2.18.1') def _get_build_dependencies (self): return ['zlib'] def configure_command (self):
--- a/gub/specs/lilypond.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/lilypond.py Tue Sep 22 20:33:14 2009 +0200 @@ -10,6 +10,7 @@ class LilyPond (target.AutoBuild): source = 'git://git.sv.gnu.org/lilypond.git' branch = 'master' + parallel_build_broken = True '''A program for printing sheet music LilyPond lets you create music notation. It produces @@ -417,33 +418,6 @@ MALLOC_CHECK_=2 LD_LIBRARY_PATH=%(tools_prefix)s/lib:%(system_prefix)s/lib:${LD_LIBRARY_PATH-/foe} ''') - def force_sequential_build (self): - ''' -Writing snippets... -All snippets are up to date...lilypond-book.py (GNU LilyPond) 2.12.3 -Traceback (most recent call last): - File "/home/janneke/vc/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypo -nd.git-master/scripts/lilypond-book.py", line 2107, in ? - main () - File "/home/janneke/vc/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypo -nd.git-master/scripts/lilypond-book.py", line 2089, in main - chunks = do_file (files[0]) - File "/home/janneke/vc/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypo -nd.git-master/scripts/lilypond-book.py", line 1993, in do_file - do_process_cmd (chunks, input_fullname, global_options) - File "/home/janneke/vc/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypo -nd.git-master/scripts/lilypond-book.py", line 1844, in do_process_cmd - options.output_dir) - File "/home/janneke/vc/gub/target/linux-64/src/lilypond-git.sv.gnu.org--lilypo -nd.git-master/scripts/lilypond-book.py", line 1278, in link_all_output_files - os.makedirs (dst_path) - File "/home/janneke/vc/gub/target/tools/root/usr/lib/python2.4/os.py", line 15 -9, in makedirs - mkdir(name, mode) -OSError: [Errno 17] File exists: '/home/janneke/vc/gub/target/linux-64/build/lil -ypond-git.sv.gnu.org--lilypond.git-master/Documentation/user/out/6a' -''' - return True def compile_command (self): return ('%(doc_limits)s ' '&& %(doc_relocation)s ' @@ -465,3 +439,9 @@ Lilypond__freebsd = LilyPond__freebsd Lilypond__mingw = LilyPond__mingw Lilypond__mipsel = LilyPond__debian + +VERSION='v2.13' +def url (version=VERSION): + url = 'http://lilypond.org/download/source/%(version)s/' % locals () + raw_version_file = 'downloads/lilypond-%(version)s.index' % locals () + return misc.latest_url (url, 'lilypond', raw_version_file)
--- a/gub/specs/lilypondcairo.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/lilypondcairo.py Tue Sep 22 20:33:14 2009 +0200 @@ -6,7 +6,7 @@ # in. Hmm. class Lilypondcairo (lilypond.Lilypond): - source = 'http://lilypond.org/download/source/v2.13/lilypond-2.13.3.tar.gz' + source = lilypond.url () def _get_build_dependencies (self): return [x.replace ('pango', 'pangocairo') for x in lilypond.Lilypond._get_build_dependencies (self)]
--- a/gub/specs/linux-arm-softfloat/cross/gcc-core.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/linux-arm-softfloat/cross/gcc-core.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,7 +2,7 @@ gcc = misc.load_spec ('cross/gcc-core') class Gcc_core (gcc.Gcc_core): - source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-3.4.6/gcc-3.4.6.tar.bz2' + source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-3.4.6/gcc-3.4.6.tar.bz2' def patch (self): gcc.Gcc_core.patch (self) self.system ('''
--- a/gub/specs/linux-arm-softfloat/cross/gcc.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/linux-arm-softfloat/cross/gcc.py Tue Sep 22 20:33:14 2009 +0200 @@ -3,7 +3,7 @@ from gub import misc class Gcc (cross_gcc.Gcc_from_source): - source = 'ftp://ftp.gnu.org/pub/gnu/gcc/gcc-3.4.6/gcc-3.4.6.tar.bz2' + source = 'http://ftp.gnu.org/pub/gnu/gcc/gcc-3.4.6/gcc-3.4.6.tar.bz2' def patch (self): cross_gcc.Gcc_from_source.patch (self) self.system ('''
--- a/gub/specs/m4.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/m4.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,12 +2,9 @@ from gub import tools class M4__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/m4/m4-1.4.12.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/m4/m4-1.4.12.tar.gz' def config_cache_settings (self): return self.config_cache_overrides ('') def config_cache_overrides (self, string): # avoid using stray libsigsegv return string + '\ngl_cv_lib_sigsegv=${gl_cv_lib_sigsegv=no}\n' - def wrap_executables (self): - # no dynamic executables [other than /lib:libc] - pass
--- a/gub/specs/make.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/make.py Tue Sep 22 20:33:14 2009 +0200 @@ -4,7 +4,7 @@ if 'BOOTSTRAP' in os.environ.keys (): from gub import target as tools class Make_make__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/make/make-3.81.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/make/make-3.81.tar.gz' def __init__ (self, settings, source): tools.AutoBuild.__init__ (self, settings, source) self.source._unpack = self.source._unpack_promise_well_behaved @@ -18,9 +18,6 @@ def _get_build_dependencies (self): #return [self.librestrict_name ()] return ['librestrict'] - def wrap_executables (self): - # no dynamic executables [other than /lib:libc] - pass class Make_build_sh__tools (Make_make__tools): def compile_command (self):
--- a/gub/specs/ncurses.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/ncurses.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,7 +2,7 @@ from gub import tools class Ncurses (target.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.5.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.5.tar.gz' patches = ['ncurses-5.5-mkhashsize.sh.patch'] def _get_build_dependencies (self): return [
--- a/gub/specs/netpbm.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/netpbm.py Tue Sep 22 20:33:14 2009 +0200 @@ -5,14 +5,13 @@ # source='svn:https://svn.sourceforge.net/svnroot/netpbm/stable&revision=172' source='http://lilypond.org/download/gub-sources/netpbm-patched-10.35.tar.bz2' patches = ['netpbm-10.35-glibc-2.10.1-name-conflict.patch'] + parallel_build_broken = True def _get_build_dependencies (self): return ['flex', 'libjpeg', 'libpng', 'libtiff', 'zlib'] #libxml2? libx11-dev def configure (self): self.shadow () self.dump ('\n'*3 + 'static\n' + '\n'*18, '%(builddir)s/answers') - self.system ('cd %(builddir)s && %(srcdir)s/configure < answers') - def force_sequential_build (self): - return True + self.system ('cd %(builddir)s && sh %(srcdir)s/configure < answers') def makeflags (self): ''' libpbm3.c:116: note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts
--- a/gub/specs/openoffice.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/openoffice.py Tue Sep 22 20:33:14 2009 +0200 @@ -801,10 +801,6 @@ ('(LD_LIBRARY_PATH=.*)', self.expand (r'\1:%(system_prefix)s/lib')) ], file) self.map_locate (add_CFLAGS_LDFLAGS_already, '%(builddir)s', '*Env.Set.sh') - def wrap_executables (self): - # using rpath, and also openoffice has data files in bin/, - # such as types.rdb. - pass Openoffice = OpenOffice Openoffice__mingw = OpenOffice__mingw
--- a/gub/specs/pango.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/pango.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,5 +1,6 @@ import re # +from gub import gnome from gub import misc from gub import loggedos from gub import target @@ -12,7 +13,7 @@ ] class Pango (target.AutoBuild): - source = 'http://ftp.gnome.org/pub/GNOME/sources/pango/1.24/pango-1.24.2.tar.bz2' + source = gnome.platform_url ('pango') patches = ['pango-1.20-substitute-env.patch'] def _get_build_dependencies (self): return [ @@ -90,7 +91,7 @@ def install (self): Pango.install (self) self.dump (''' -set PANGO_SO_EXTENSION=.so +set PANGO_SO_EXTENSION=%(so_extension)s ''', '%(install_prefix)s/etc/relocate/pango.reloc', env=locals (), mode='a') class Pango__mingw (Pango):
--- a/gub/specs/pangocairo.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/pangocairo.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,8 +1,8 @@ +from gub import gnome from gub.specs import pango class Pangocairo (pango.Pango): - #source = 'http://ftp.acc.umu.se/pub/GNOME/platform/2.25/2.25.5/sources/pango-1.22.4.tar.gz' - source = 'http://ftp.gnome.org/pub/GNOME/platform/2.26/2.26.3/sources/pango-1.24.4.tar.gz' + source = gnome.platform_url ('pango') def _get_build_dependencies (self): return pango.Pango._get_build_dependencies (self) + ['cairo-devel'] def get_conflict_dict (self):
--- a/gub/specs/patch.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/patch.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,7 +1,7 @@ from gub import tools class Patch__tools (tools.AutoBuild): -# source = 'ftp://ftp.gnu.org/pub/gnu/patch/patch-2.5.4.tar.gz' +# source = 'http://ftp.gnu.org/pub/gnu/patch/patch-2.5.4.tar.gz' # source = 'ftp://alpha.gnu.org/pub/gnu/diffutils/patch-2.5.9.tar.gz' # ugh, openoffice the ooo-build flavour needs the latest patch with # additional [SUSE] patches to not barf on all CRLF problems. @@ -16,6 +16,3 @@ '%(builddir)s/config.h') def install_command (self): return self.broken_install_command () - def wrap_executables (self): - # no dynamic executables [other than /lib:libc] - pass
--- a/gub/specs/perl.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/perl.py Tue Sep 22 20:33:14 2009 +0200 @@ -9,6 +9,7 @@ # So why doesn't anyone fix configuring/compiling it? Shees. class Perl__tools (tools.AutoBuild): source = 'http://www.cpan.org/src/perl-5.10.0.tar.gz' + srcdir_build_broken = True def patch (self): tools.AutoBuild.patch (self) self.file_sub ([('-c (/dev/null)', r'-e \1')], '%(srcdir)s/Configure') @@ -45,7 +46,6 @@ -Aldflags='%(rpath)s -lm -lrt -ldl' ''') def configure (self): - self.shadow () tools.AutoBuild.configure (self) for i in ['%(builddir)s/makefile', '%(builddir)s/x2p/makefile']: # Ugh, missing some command?
--- a/gub/specs/pic.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/pic.py Tue Sep 22 20:33:14 2009 +0200 @@ -9,9 +9,6 @@ class Pic (target.AutoBuild): def get_subpackage_names (self): return [''] - def force_sequential_build (self): - ## upnpAllegro is broken - return True def get_build_dependencies (self): #debian neon_debian = ['comerr-dev', 'libcomerr2',
--- a/gub/specs/pjproject.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/pjproject.py Tue Sep 22 20:33:14 2009 +0200 @@ -2,16 +2,13 @@ class Pjproject (target.AutoBuild): source = 'http://www.pjsip.org/release/0.5.10.1/pjproject-0.5.10.1.tar.gz' - def force_sequential_build (self): - return True + parallel_build_broken = True + srcdir_build_broken = True def patch (self): self.system ('cd %(srcdir)s && patch -p0 < %(patchdir)s/pjproject-install.patch') def configure_command (self): return (target.AutoBuild.configure_command (self).replace ('%(srcdir)s/configure', './aconfigure') + ' --disable-sound') - def configure (self): - self.shadow () - target.AutoBuild.configure (self) def install_command (self): return (target.AutoBuild.install_command (self) + ' prefix=%(prefix_dir)s')
--- a/gub/specs/python.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/python.py Tue Sep 22 20:33:14 2009 +0200 @@ -46,17 +46,14 @@ target.AutoBuild.patch (self) self.file_sub ([('@CC@', '@CC@ -I$(shell pwd)')], '%(srcdir)s/Makefile.pre.in') - def force_autoupdate (self): return True - def autoupdate (self): target.AutoBuild.autoupdate (self) - # FIXME: PROMOTEME to target.py? + # FIXME: REMOVEME/PROMOTEME to target.py? if self.settings.build_platform == self.settings.target_platform: - self.file_sub ([('cross_compiling=(maybe|yes)', 'cross_compiling=no')], - '%(srcdir)s/configure') - + self.file_sub ([('cross_compiling=(maybe|no|yes)', + 'cross_compiling=no')], '%(srcdir)s/configure') def makeflags (self): return misc.join_lines (r''' BLDLIBRARY='%(rpath)s -L. -lpython$(VERSION)' @@ -67,15 +64,12 @@ relax = 'LIBRESTRICT_ALLOW=/usr/lib/python2.4/lib-dynload:${LIBRESTRICT_ALLOW-/foo} ' return (relax + target.AutoBuild.install_command (self)) - @context.subst_method - def SO_EXTENSION (self): - return '.so' #FIXME! def install (self): target.AutoBuild.install (self) misc.dump_python_config (self) def assert_fine (logger): dynload_dir = self.expand ('%(install_prefix)s/lib/python%(python_version)s/lib-dynload') - so = self.SO_EXTENSION () + so = self.expand ('%(so_extension)s') all = [x.replace (dynload_dir + '/', '') for x in misc.find_files (dynload_dir, '.*' + so)] failed = [x.replace (dynload_dir + '/', '') for x in misc.find_files (dynload_dir, '.*failed' + so)] if failed: @@ -142,9 +136,6 @@ ac_cv_sizeof_pthread_t=12 ''') ##$(eval echo $((echo $ac_cv_sizeof_int + $ac_cv_sizeof_void_p))) - @context.subst_method - def SO_EXTENSION (self): - return '.dll' #FIXME! def install (self): Python.install (self) self.file_sub ([('extra = ""', 'extra = "-L%(system_prefix)s/bin -L%(system_prefix)s/lib -lpython2.4 -lpthread"')], @@ -181,9 +172,6 @@ relax = 'LIBRESTRICT_ALLOW=/usr/lib/python2.4/lib-dynload:${LIBRESTRICT_ALLOW-/foo} ' return (relax + tools.AutoBuild.install_command (self)) - def wrap_executables (self): - # using rpath - pass def patch (self): tools.AutoBuild.patch (self) Python.patch (self)
--- a/gub/specs/sed.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/sed.py Tue Sep 22 20:33:14 2009 +0200 @@ -3,4 +3,4 @@ if 'BOOTSTRAP' in os.environ.keys (): from gub import target as tools class Sed__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/sed/sed-4.1.5.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/sed/sed-4.1.5.tar.gz'
--- a/gub/specs/tar.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/tar.py Tue Sep 22 20:33:14 2009 +0200 @@ -3,10 +3,7 @@ if 'BOOTSTRAP' in os.environ.keys (): from gub import target as tools class Tar__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/tar/tar-1.20.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/tar/tar-1.20.tar.gz' def __init__ (self, settings, source): tools.AutoBuild.__init__ (self, settings, source) self.source._unpack = self.source._unpack_promise_well_behaved - def wrap_executables (self): - # no dynamic executables [other than /lib:libc] - pass
--- a/gub/specs/tcltk.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/tcltk.py Tue Sep 22 20:33:14 2009 +0200 @@ -3,10 +3,9 @@ class Tcltk (target.AutoBuild): source = 'http://lilypond.org/download/gub-sources/tcltk-8.4.14.tar.gz' + parallel_build_broken = True def license_files (self): return ['%(srcdir)s/tcl/license.terms'] - def force_sequential_build (self): - return True def configure (self): self.system ('''cd %(srcdir)s/tcl && ./unix/configure --prefix=%(install_prefix)s cd %(srcdir)s/tk/ && ./unix/configure --prefix=%(install_prefix)s
--- a/gub/specs/texinfo.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/texinfo.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,7 +1,7 @@ from gub import tools class Texinfo__tools (tools.AutoBuild): - source = 'ftp://ftp.gnu.org/pub/gnu/texinfo/texinfo-4.13a.tar.gz' + source = 'http://ftp.gnu.org/pub/gnu/texinfo/texinfo-4.13a.tar.gz' def patch (self): tools.AutoBuild.patch (self) # Drop ncurses dependency
--- a/gub/specs/texlive.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/texlive.py Tue Sep 22 20:33:14 2009 +0200 @@ -90,7 +90,7 @@ # ugh. if self.source.have_client (): loggedos.download_url (logging.default_logger, - license_url, self.source._checkout_dir ()) + license_url, self.source._checkout_dir ()) def untar (self): target.AutoBuild.untar (self) def defer (logger): @@ -269,9 +269,6 @@ 't1utils', 'zlib', ] - @context.subst_method - def LDFLAGS (self): - return '%(rpath)' def configure_command (self): SHELL = ' SHELL=/bin/bash' if 'stat' in misc.librestrict (): @@ -282,7 +279,6 @@ + misc.join_lines (''' --without-x ''') - + ''' LDFLAGS='-L%(system_prefix)s/lib %(rpath)s -Wl,-rpath -Wl,%(system_prefix)s/lib' ''' + SHELL) def install (self): tools.AutoBuild.install (self)
--- a/gub/specs/xerces-c.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/xerces-c.py Tue Sep 22 20:33:14 2009 +0200 @@ -4,6 +4,7 @@ class Xerces_c (target.AutoBuild): source = 'http://www.apache.org/dist/xerces/c/2/sources/xerces-c-src_2_8_0.tar.gz' + parallel_build_broken = True def _get_build_dependencies (self): return ['tools::autoconf'] def __init__ (self, settings, source): @@ -21,8 +22,6 @@ 'CXXFLAGS': ' -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_DEPRECATED_DOM -DPROJ_VALIDATORS -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET ', } build.change_dict (self, self.compile_dict) - def force_sequential_build (self): - return True def autodir (self): return '%(srcdir)s/src/xercesc' def configure_command (self):
--- a/gub/specs/zlib.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/specs/zlib.py Tue Sep 22 20:33:14 2009 +0200 @@ -7,11 +7,9 @@ class Zlib (target.AutoBuild): source = 'http://heanet.dl.sourceforge.net/sourceforge/libpng/zlib-1.2.3.tar.gz' patches = ['zlib-1.2.3.patch'] + srcdir_build_broken = True def _get_build_dependencies (self): return ['tools::autoconf'] - def configure (self): - self.shadow () - target.AutoBuild.configure (self) def compile_command (self): return target.AutoBuild.compile_command (self) + ' ARFLAGS=r ' def configure_command (self): @@ -63,14 +61,9 @@ ''' class Zlib__tools (tools.AutoBuild, Zlib): -# FIXME: tools not the same as target: asking for trouble -# source = 'http://heanet.dl.sourceforge.net/sourceforge/libpng/zlib-1.2.3.3.tar.gz' -# FIXME: where lives 1.2.3.3 with gzopen64? + srcdir_build_broken = True def _get_build_dependencies (self): return ['autoconf'] - def configure (self): - self.shadow () - tools.AutoBuild.configure (self) def install_command (self): return tools.AutoBuild.broken_install_command (self) def configure_command (self):
--- a/gub/target.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/target.py Tue Sep 22 20:33:14 2009 +0200 @@ -10,16 +10,19 @@ class AutoBuild (build.AutoBuild): def __init__ (self, settings, source): build.AutoBuild.__init__ (self, settings, source) - @context.subst_method def configure_command_native (self): return build.AutoBuild.configure_command (self) - - def configure_command (self): - SHELL = '' - if 'stat' in misc.librestrict (): - SHELL = ' SHELL=%(tools_prefix)s/bin/sh' - return (misc.join_lines ('''%(configure_binary)s + @context.subst_method + def LD_PRELOAD (self): + return '%(tools_prefix)s/lib/librestrict.so' + def autoupdate (self): + build.AutoBuild.autoupdate (self) + self.file_sub ([('cross_compiling=(maybe|no|yes)', + 'cross_compiling=yes')], '%(configure_binary)s') + def configure_flags (self): + return (build.AutoBuild.configure_flags (self) + + misc.join_lines (''' --config-cache --enable-shared --disable-static @@ -33,9 +36,12 @@ --infodir=%(prefix_dir)s/share/info --mandir=%(prefix_dir)s/share/man --libdir=%(prefix_dir)s/lib -''') -# --with-slibdir=%(prefix)s/slib - + SHELL) +''')) + def configure_variables (self): + if 'stat' in misc.librestrict (): + return (build.AutoBuild.configure_variables (self) + + ' SHELL=%(tools_prefix)s/bin/sh') + return build.AutoBuild.configure_variables (self) def configure (self): build.AutoBuild.configure (self) @@ -63,7 +69,7 @@ ('^includedir=/usr/include/*\s*$', 'includedir=%(system_prefix)s/include'), ('^libdir=/usr/lib/*\s*$', 'libdir=%(system_prefix)s/lib'),], '%(install_prefix)s%(cross_dir)s/bin/%(config_script)s', - must_succeed=1) + must_succeed=self.settings.target_platform != 'tools') def pre_install_libtool_fixup (self): ## Workaround for libtool bug. libtool inserts -L/usr/lib @@ -94,18 +100,11 @@ @context.subst_method def compile_command_native (self): - return 'make %(makeflags_native)s ' + return 'make %(job_spec)s %(makeflags_native)s ' @context.subst_method def makeflags_native (self): return '' - - def compile_command (self): - c = build.AutoBuild.compile_command (self) - if (not self.force_sequential_build () and self.settings.cpu_count_str): - c = re.sub (r'\bmake\b', - 'make -j%s '% self.settings.cpu_count_str, c) - return c def get_substitution_dict_native (self): return build.AutoBuild.get_substitution_dict
--- a/gub/tools.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/tools.py Tue Sep 22 20:33:14 2009 +0200 @@ -59,47 +59,30 @@ #AutoBuild = target.AutoBuild class AutoBuild (build.AutoBuild): - def configure_command (self): - return (build.AutoBuild.configure_command (self) - + self.configure_flags () - + self.configure_variables ()) - @context.subst_method def configure_prefix (self): if 'BOOTSTRAP' in os.environ.keys (): return '%(prefix_dir)s' return '%(system_prefix)s' - def LD_PRELOAD (self): - # Makes no sense for tools. Be it /usr/bin/gcc or tools::gcc, - # it needs to read /usr/include/stdlib.h etc. How to, or why - # restrict reading other files from /? - # See LIBRESTRICT_IGNORE below, it would need to include every - # binary in system_prefix :-) - return '' - # FIXME: promoteme to build.py? Most Fragile operation... def configure_flags (self): config_cache = '' if self.config_cache_settings (): - config_cache = '\n--config-cache' - return misc.join_lines (''' ---prefix=%(configure_prefix)s + config_cache = ' --config-cache' + return (build.AutoBuild.configure_flags (self) + + misc.join_lines (''' --enable-shared --enable-static --disable-silent-rules -''' + config_cache) - # FIXME: promoteme to build.py? Most Fragile operation... - # BOOTSTRAP -- do we need this? - # LDFLAGS='-L%(system_prefix)s/lib -Wl,--as-needed' +''') + + config_cache) def configure_variables (self): - return misc.join_lines (''' + return (build.AutoBuild.configure_variables (self) + + misc.join_lines (''' CFLAGS=-I%(system_prefix)s/include -LDFLAGS=-L%(system_prefix)s/lib -''') - +LDFLAGS='-L%(system_prefix)s/lib %(rpath)s %(libs)s' +''')) ## ugh: prefix= will trigger libtool relinks. def install_command (self): return '''make %(makeflags)s DESTDIR=%(install_root)s install''' -# Hmm, weird, this breaks? -# return self.compile_command () + ' DESTDIR=%(install_root)s install ' def broken_install_command (self): # FIXME: use sysconfdir=%(install_PREFIX)s/etc? If @@ -119,11 +102,10 @@ sysconfdir=%(install_prefix)s/etc tooldir=%(install_prefix)s ''') - - def install (self): - build.AutoBuild.install (self) - # conditional on use of rpath, depending on shared libs? - if 0: + def post_install (self): + build.AutoBuild.post_install (self) + if not self.expand ('rpath'): + # and not if no shared libs? self.wrap_executables () @context.subst_method
--- a/gub/w32.py Tue Sep 22 11:09:24 2009 +0200 +++ b/gub/w32.py Tue Sep 22 20:33:14 2009 +0200 @@ -1,4 +1,5 @@ from gub import build +from gub import context from gub import cross from gub import loggedos from gub import misc @@ -21,6 +22,11 @@ package.post_install_smurf_exe () package.install = misc.MethodOverrider (package.install, install) + @context.subst_method + def so_extension (foo): + return '.dll' + package.so_extension = misc.MethodOverrider (package.nop, so_extension) + # FIXME (cygwin): [why] do cross packages get here too? if isinstance (package, cross.AutoBuild): return