[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 06:49:14 CEST

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: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Aug 27 06:49:38 2004

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