svn - but smaller?

Ben Morrow ben at morrow.me.uk
Thu Jan 24 09:35:16 UTC 2013


Quoth 'Jeremy Chadwick' <jdc at koitsu.org>:
> 
> Regarding your "svn-lite" theory of having that added to src/contrib/,
> let me introduce you to Subversion's actual dependencies, and I'll
> explain why these would have to remain enabled (for a "base system"
> Subversion) as well:
> 
> * SQLite3 (used for bits/pieces in .svn/ directories)
>   -- License: http://www.sqlite.org/copyright.html
>   -- Not in the base system

It is in HEAD, because the new Heimdal needs it. (The library is
currently called libheimsqlite, and is built under kerberos5/lib, but
both of those could be changed if necessary.)

> * APR (used for HTTP fetching (not necessarily HTTPS))
>   -- License: http://www.apache.org/licenses/LICENSE-2.0.html
>   -- Not in the base system
> 
> * Expat 2.x (XML parsing/generation library
>   -- License: http://en.wikipedia.org/wiki/MIT_License
>   -- Not in the base system

So these could potentially be brought in? I'm not sure if the Apache
license is considered sufficiently BSDish?

> * Neon or Serf (used for HTTPS fetching)

This could be considered optional, for a base-system svn, as long as the
repository is available over HTTP. If necessary the binary could be
renamed to bsdsvn so as not to conflict with a full-featured svn
installed from ports. (Of course, HTTPS would be *nice*.)

> * gettext and libintl (used for character set support)
>   -- gettext license: GPL (not sure what version)
>   -- libintl license: LGPL (not sure what version)
>   -- Neither are in the base system

Don't know about these, but I'd be surprised if it wasn't possible to
build svn without them. That means losing i18n, but I'm fairly sure csup
didn't have i18n either.

> * libiconv (used for character set conversion)
>   -- License: LGPL (not sure what version)
>   -- Not in the base system

There is a BSD-licensed libiconv in HEAD, though it currently isn't
built by default.

So, it looks to me as though it would be possible, in principle, to
bring svn into the base. I'm not at all sure I think that would be a
good idea (in particular, bringing in both APR and Expat just to
download a few files seems excessive), but it could perhaps be provided
as a make.conf option for those who are concerned.

(Personally I would not willingly use svn again for any reason, so I'm
keeping my source up-to-date using the github mirror. I wonder whether a
BSD-licensed checkout-only git client would be easier to write than
svnsup? I'm certain the wire protocol is more efficient.)

Ben



More information about the freebsd-stable mailing list