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

Re: complicated build, subversion client

From: Stefan Sperling <stsp_at_elego.de>
Date: Sun, 29 May 2011 20:16:32 +0200

On Sun, May 29, 2011 at 06:56:13AM -0700, rupert.thurner wrote:
> for some time i participate in a small group of people packaging
> subversion for solaris within the opencsw project. while we love to
> use subversion a lot because it easily scales to terabytes of data
> managed, we continue to have two problems building, for years now:
>
> 1. client build
> personally i find it particularly difficult to separate out a "common
> build", and "client build" and "server build" which both may depend on
> it.

Hi Rupert,

You could build all svn binaries and then package them separately into
client and server packages (with the mod_dav_svn Apache module depending
on the HTTPD package). This is what Linux distributions and BSD systems do.

> 2. comlicated build
> the build itself is so complicated that, since i can remember, we
> continually fail to package a current version of subversion.

Can you point out more specifically what problems you are running into?

If there is something concrete we could do in to improve the build system
we will consider it. Suggestions (and of course patches) are always welcome.

> what would be a good way to address this in your opinion? would it be
> possible to switch the build system to something easier to handle and
> introduce proper dependencies?

I don't think that smart handling of dependencies belongs into the
Subversion core build system because there are so many different ways
people manage dependencies on different systems.
It would be very hard to come up with something that works for everyone.

I am an svn upstream developer and also maintain the OpenBSD port of
Subversion as well as packages for OpenSUSE. I've never had problems
packaging Subversion for these systems.

For my svn development builds I've written a custom GNU Makefile that
wraps Subversion's build system, downloads required dependencies,
compiles them with debug symbols and installs everything in the user's
home directory. The requirements for this build are very different from
those of downstream packagers, of course. But it should work on any
UNIX-like system and is available in the Subversion repository for reference:
https://svn.apache.org/repos/asf/subversion/trunk/tools/dev/unix-build

For the OpenBSD port I rely on dependency management of the
ports/package infrastructure, which works quite well:
http://www.openbsd.org/cgi-bin/cvsweb/ports/devel/subversion

For OpenSUSE there is an RPM build that declares required dependencies
which are installed automatically before the package is built (see
the subversion.spec file):
https://build.opensuse.org/package/files?package=subversion&project=devel%3Atools%3Ascm%3Asvn

Note that both the above packages provide at least the mod_dav_svn
server module in a separate package. OpenSUSE even has svnserve in a
separate package. Both use the upstream build system to get the binaries
compiled and installed into a temporary directory, and then package
everything up into nice bundles in a separate step.

I don't know much about the packaging infrastructure that is available
on Solaris. Maybe your problems are rooted there rather than in the
upstream build system?
Received on 2011-05-29 20:17:07 CEST

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.