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

request for help with subversion 1.1.0-rc2 Debian packages

From: Faheem Mitha <faheem_at_email.unc.edu>
Date: 2004-08-27 17:54:07 CEST

Dear People,

I sent this to users, but then realised it was at least as relevant to
devel. Please cc me on any reply, I'm not subscribed to either list.
Thanks.

                                                             Faheem.

---------- Forwarded message ----------
Date: Fri, 27 Aug 2004 00:49:14 -0400 (EDT)
From: Faheem Mitha <faheem@email.unc.edu>
To: debian-mentors@lists.debian.org, users@subversion.tigris.org
Subject: request for help with subversion 1.1.0-rc2 Debian packages

Dear People,

I've tried my hand at building Subversion 1.1.0-rc2 packages. I've imitated the
packaging of the official Debian packages as far as possible. Whenever possible
I applied the Debian patches. However, since I don't understand exactly what I
am doing, I suppose some breakage was inevitable.

The main thing that failed were the swig bindings. So the python and perl
binding packages, namely python2.3-subversion and libsvn-core-perl packages are
empty. However, subversion itself passed all tests. I haven't done much with it
yet, but look forward to playing with it.

If anyone is willing to take a look I'd appreciate it. Since the only Debian
patch that did not apply cleanly was debian/paches/rpath.patch in the source
directory, this seems the most likely cause of the problem.

You can get my packages (binaries and source) by using the lines below.

   deb http://www.cbcb.duke.edu/~faheem/debian/ ./
   deb-src http://www.cbcb.duke.edu/~faheem/debian/ ./

I attach the patch rpath.path below. The comments are the original one by the
maintainer, David Kimdon.

Here is the relevant entry from the changelog.

* subversion/trunk/debian/patches/rpath.patch: Only change is in
   build/generator/gen_base.py, where I'm really just guessing. Other
  changes are just relocating the patch, and not significant.

I have a few further comments.

1) I realise that the official Debian packages will be out once the official
release has happened, but I thought it would be nice to encourage Debian users
to do some testing before the release. Like everyone else, I'm anxious to start
using fsfs. And I thought it would be good practice.

If I can get everything working properly I'll post an accouncement of this to
debian-user.

2) I think it would be a good idea if packages of subversion without the BDB
dependency could be created.

Would different versions of all the Debian packages have to be created in that
case? Ie. libapache2-svn, python2.3-subversion, subversion, libsvn0,
subversion, libsvn0-dev, subversion, subversion-tools, libsvn-core-perl.

3) I noticed all the tests that were run (as far as I could tell) were python
scripts. This may be a stupid question, but how did they work when the python
bindings were not built successfully?

                                                                Faheem.

   **********************************************************************
* subversion-1.0.2/Makefile.in (LINK) : Remove -rpath.
   (LINK_LIB) : New variable. This is what we use to link libraries.
   'libtool' keys off the '-rpath' argument to know that it should create a
   shared library. Removing the rpath parameter from the library link will
   cause libtool to produce a convenience library (a static archive) and no
   shared libs, that is not what we want. For any libraries in /usr/lib
   libtool knows not to actually put the rpath into the binary.
* subversion-1.0.2/build/generator/gen_base.py (TargetLinked) : Use the
   '$(LINK_LIB)' command by default.
   (TargetExe) : Executables should be linked with '$(LINK)' command so
   no rpath is put into the binary.
* subversion-1.0.2/build/generator/gen_make.py (Generator) : Fix the
   apache module link rule to explicitly link to the necessary subversion
   shared libraries.

--- subversion-1.0.2.orig/Makefile.in 2004-04-15 20:43:46.000000000 +0200
+++ subversion-1.0.2/Makefile.in 2004-04-25 20:47:08.000000000 +0200
@@ -134,7 +134,8 @@
  COMPILE_SWIG_JAVA = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS)
$(CFLAGS) $(SWIG_JAVA_INCLUDES) $(INCLUDES) -o $@ -c
  COMPILE_SWIG_PL = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CPPFLAGS)
$(CFLAGS) $(SWIG_PL_INCLUDES) $(INCLUDES) -o $@ -c

-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS)
$(LDFLAGS) -rpath $(libdir)
+LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS)
$(LDFLAGS)
+LINK_LIB = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS)
$(LDFLAGS) -rpath $(libdir)

  # special link rule for mod_dav_svn
  LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS)
$(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module
--- subversion-1.0.2.orig/build/generator/gen_base.py 2003-10-31
09:51:39.000000000 +0100
+++ subversion-1.0.2/build/generator/gen_base.py 2004-04-25
21:04:45.972682190 +0200
@@ -332,8 +332,8 @@
      self.install = options.get('install')
      self.compile_cmd = options.get('compile-cmd')
      self.sources = options.get('sources', '*.c')
- self.link_cmd = options.get('link-cmd', '$(LINK)')
-
+ #self.link_cmd = options.get('link-cmd', '$(LINK)')
+ self.link_cmd = '$(LINK_LIB)'
      self.external_lib = options.get('external-lib')
      self.external_project = options.get('external-project')
      self.msvc_libs = string.split(options.get('msvc-libs', ''))
@@ -382,7 +382,8 @@

      self.objext = extmap['exe', 'object']
      self.filename = build_path_join(self.path, name + extmap['exe', 'target'])
-
+ self.link_cmd = '$(LINK)'
+
      self.manpages = options.get('manpages', '')
      self.testing = options.get('testing')

--- subversion-1.1.0-rc2/build/generator/gen_make.py.old 2004-08-18
15:08:06.000000000 -0400
+++ subversion-1.1.0-rc2/build/generator/gen_make.py 2004-08-18
15:08:15.000000000 -0400
@@ -72,8 +72,16 @@
              # append the output of the target to our stated dependencies
              deps.append(source.filename)

- # link against the library
- libs.append(build_path_join(retreat, source.filename))
+ if isinstance(target_ob, gen_base.TargetApacheMod):
+ dirname, fname = os.path.split(source.filename)
+ libname = string.replace(fname, '.la', '')
+ libname = string.replace(libname, 'lib', '')
+ dirname = os.path.join(retreat, dirname, '.libs')
+ libs.append('-Wl,-L' + dirname)
+ libs.append('-Wl,-l' + libname)
+ else:
+ # link against the library
+ libs.append(build_path_join(retreat, source.filename))
          elif isinstance(source, gen_base.ObjectFile):
            # link in the object file
            objects.append(source.filename)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Aug 27 17:54:46 2004

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.