[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Build perl (ruby, pyhon, javahl) bindings with SYSTEM (installed) SVN libraries?

From: Daniel J. Luke <dluke_at_geeklair.net>
Date: Wed, 30 Jan 2008 19:18:07 -0500

Yes, it would (provided I update the portfiles). That would be great.

Can I get a ping from someone once it gets committed?

Thanks.

On Jan 30, 2008, at 6:28 PM, David Glasser wrote:
> Ooh. Would this allow MacPorts to not have to build Subversion from
> scratch for each binding you want to install? (MacPorts maintainer
> cc'd.)
>
> --dave
>
> On Jan 30, 2008 2:34 PM, Eric Gillespie <epg_at_pretzelnet.org> wrote:
>> Lev Serebryakov <lev_at_serebryakov.spb.ru> writes:
>>
>>> Hello, Subversion.
>>>
>>> It is possible to build any bindings with INSTALLED subversion
>>> libraries, without rebuilding them from source tree?
>>> I.e. I have subversion without bindings already installed (on
>>> UNIX-like system), with all headers, etc. And I want to ADD bindings
>>> to this installation. If I unpack & configure sources and then run:
>>
>> I maintain Subversion for pkgsrc (similar to FreeBSD ports, and
>> originally a derivation thereof), and have a patch to gen-make to
>> make this possible. I've intended to post it here and hopefully
>> commit it forever, but I just haven't gotten around to it.
>> Guess you're finally forcing me into it :)
>>
>> You do this ot build against installed libs:
>>
>> ./gen-make.py [--release] --installed-libs
>> libsvn_client
>> ,libsvn_delta
>> ,libsvn_diff,libsvn_fs,libsvn_ra,libsvn_repos,libsvn_subr,libsvn_wc
>>
>> This is all against 1.4. If I can get a +1 from another
>> committer, I'll update it to trunk, write a log message, commit
>> it, and backport to the shiny new 1.5 branch.
>>
>> (Ignore the INSTALLDIRS part of the Makefile.in patch)
>>
>> $NetBSD: patch-ad,v 1.13 2006/09/11 04:14:31 epg Exp $
>>
>> --- Makefile.in.orig 2006-01-24 21:57:24.000000000 -0500
>> +++ Makefile.in
>> @@ -627,10 +627,9 @@ $(SWIG_PL_DIR)/native/Makefile.PL: $(SWI
>> ./config.status subversion/bindings/swig/perl/native/
>> Makefile.PL
>>
>> $(SWIG_PL_DIR)/native/Makefile: $(SWIG_PL_DIR)/native/Makefile.PL
>> - cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
>> + cd $(SWIG_PL_DIR)/native; $(PERL) Makefile.PL
>> INSTALLDIRS=vendor
>>
>> -swig-pl_DEPS = autogen-swig-pl libsvn_client libsvn_delta
>> libsvn_diff \
>> - libsvn_fs libsvn_ra libsvn_repos libsvn_subr libsvn_wc
>> libsvn_swig_perl \
>> +swig-pl_DEPS = autogen-swig-pl libsvn_swig_perl \
>> $(SWIG_PL_DIR)/native/Makefile
>> swig-pl: $(swig-pl_DEPS)
>> if test "$(SWIG_PL_DIR)" != "$(SWIG_PL_SRC_DIR)"; then \
>>
>> $NetBSD: patch-ag,v 1.9 2006/09/11 04:14:31 epg Exp $
>>
>> --- subversion/bindings/swig/perl/native/Makefile.PL.in.orig
>> 2005-11-16 09:19:09.000000000 -0500
>> +++ subversion/bindings/swig/perl/native/Makefile.PL.in
>> @@ -44,7 +44,7 @@ my %config = (
>> " -I$svnlib_builddir",
>> " -I$swig_srcdir -g"),
>> OBJECT => q/$(O_FILES)/,
>> - LIBS => [join(' ', $apr_ldflags,
>> + LIBS => [join(' ', $ENV{'LDFLAGS'}, $apr_ldflags,
>> (map {$_ = abs_path($_); "-L$_"} @ldpaths),
>> @ldmodules, '-lsvn_swig_perl-1',
>> `$swig -perl -ldflags`)],
>>
>> $NetBSD: patch-ah,v 1.4 2006/09/11 04:14:31 epg Exp $
>>
>> --- build/generator/gen_make.py.orig 2006-04-05
>> 12:12:48.000000000 -0400
>> +++ build/generator/gen_make.py
>> @@ -5,6 +5,7 @@
>> import os
>> import sys
>> import string
>> +import ConfigParser
>>
>> import gen_base
>> import generator.swig.header_wrappers
>> @@ -53,6 +54,13 @@ class Generator(gen_base.GeneratorBase):
>> install_deps = self.graph.get_deps(gen_base.DT_INSTALL)
>> install_sources = self.graph.get_all_sources(gen_base.DT_INSTALL)
>>
>> + cp = ConfigParser.ConfigParser()
>> + cp.read('gen-make.opts')
>> + if cp.has_option('options', '--installed-libs'):
>> + self.installed_libs = cp.get('options', '--installed-
>> libs').split(',')
>> + else:
>> + self.installed_libs = []
>> +
>> # ensure consistency between runs
>> install_deps.sort()
>> install_sources.sort(lambda s1, s2: cmp(s1.name, s2.name))
>> @@ -68,11 +76,17 @@ class Generator(gen_base.GeneratorBase):
>>
>> # construct a list of the other .la libs to link against
>> retreat = build_path_retreat(target.path)
>> - deps = [ target.filename ]
>> - link = [ build_path_join(retreat, target.filename) ]
>> + if target.name in self.installed_libs:
>> + deps = []
>> + link = [ '-l%s-%s' % (target.name[3:], self.version) ]
>> + else:
>> + deps = [ target.filename ]
>> + link = [ build_path_join(retreat, target.filename) ]
>> for source in self.graph.get_sources(gen_base.DT_LINK,
>> target.name):
>> if not isinstance(source, gen_base.TargetLib) or
>> source.external_lib:
>> continue
>> + elif source.name in self.installed_libs:
>> + continue
>> deps.append(source.filename)
>> link.append(build_path_join(retreat, source.filename))
>>
>> @@ -216,6 +230,8 @@ class Generator(gen_base.GeneratorBase):
>> # expeditiously. It is of questionable validity for a
>> build
>> # node to have external_project but not have
>> external_lib.
>> pass
>> + elif link_dep.name in self.installed_libs:
>> + libs.append('-l%s-%s' % (link_dep.name[3:],
>> self.version))
>> else:
>> # append the output of the target to our stated
>> dependencies
>> if not self.assume_shared_libs:
>>
>> $NetBSD: patch-ai,v 1.4 2006/09/11 04:14:31 epg Exp $
>>
>> --- gen-make.py.orig 2006-04-16 06:26:16.000000000 -0400
>> +++ gen-make.py
>> @@ -91,6 +91,13 @@ def _usage_exit():
>> print " increase the speed of frequent rebuilds."
>> print " *** Do not use unless you understand the
>> consequences. ***"
>> print
>> + print " UNIX-specific options:"
>> + print
>> + print " --installed-libs"
>> + print " Comma-separated list of Subversion libraries
>> to find"
>> + print " pre-installed instead of building (probably
>> only"
>> + print " useful for packagers)"
>> + print
>> print " Windows-specific options:"
>> print
>> print " --with-apr=DIR"
>> @@ -195,6 +202,7 @@ if __name__ == '__main__':
>> 'enable-quantify',
>> 'enable-nls',
>> 'enable-bdb-in-apr-util',
>> + 'installed-libs=',
>> 'vsnet-version=',
>> ])
>> if len(args) > 1:

--
Daniel J. Luke
+========================================================+
| *---------------- dluke_at_geeklair.net ----------------* |
| *-------------- http://www.geeklair.net -------------* |
+========================================================+
|   Opinions expressed are mine and do not necessarily   |
|          reflect the opinions of my employer.          |
+========================================================+

Received on 2008-01-31 01:27:34 CET

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.