Date: Mon, 19 Nov 2012 08:57:37 +0100 From: olli hauer <ohauer@gmx.de> To: freebsd-ports@freebsd.org Subject: Re: Let's talk about subversion/svn Message-ID: <50A9E671.6060205@gmx.de> In-Reply-To: <20121119071607.GA58307@icarus.home.lan> References: <20121119071607.GA58307@icarus.home.lan>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2012-11-19 08:16, Jeremy Chadwick wrote: > Given the incessant focus on everything using Subversion now (please do > not get me started, it will be like arguing with a brick wall), I'd like > to know what the plan is for minimising the number of dependencies. > > The present subversion **package** on the official FTP servers is for > subversion-1.7.6: > > root@icarus:~ # ftp ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/ > ... > ftp> dir subversion*.tbz > 229 Entering Extended Passive Mode (|||10279|). > 150 Here comes the directory listing. > lrwxr-xr-x 1 967 100 32 Oct 14 14:53 subversion-java.tbz -> ../All/subversion-java-1.7.6.tbz > lrwxr-xr-x 1 967 100 27 Oct 13 13:24 subversion.tbz -> ../All/subversion-1.7.6.tbz > lrwxr-xr-x 1 967 100 28 Oct 14 01:54 subversion16.tbz -> ../All/subversion-1.6.18.tbz > 226 Directory send OK. > > And this is partially what it pulls down dependency-wise: > > root@icarus:~ # pkg_add -r -n subversion > Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/subversion.tbz... Done. > Package dependency sqlite3-3.7.14.1 for ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/subversion.tbz not found! > Package dependency gdbm-1.9.1 for ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/subversion.tbz not found! > Package dependency db42-4.2.52_5 for ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/subversion.tbz not found! > Package dependency neon29-0.29.6_4 for ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9-stable/Latest/subversion.tbz not found! > > I say partially because due to use of -n, some of those packages weren't > downloaded, thus the recursive dependency nature is lost (I consider > this mostly a bug with -n when used with a remote package, but it could > also be deemed a feature). > > However, GDBM and Oracle/Sleepycat DB aren't (by default) enabled > in 1.7.7 which is what's in ports currently: > > root@icarus:/usr/ports/devel/subversion # make run-depends-list > /usr/ports/databases/sqlite3 > /usr/ports/devel/apr1 > /usr/ports/devel/gettext > /usr/ports/textproc/expat2 > /usr/ports/www/neon29 > > So GDBM and Oracle/Sleepycat DB are now disabled by default (good!), > but now we have the following (and I will describe each of them for > readers so they know what they're for): > > - SQLite -- which I believe is used for data storage for commits/etc. > and tends to work well for that, so I'm okay with it. > - gettext -- needed for NLS, which I've learned to accept although I'd > rather everything today just use UTF-8 universally (idealistic me). > However, there are many people who are heavy WITHOUT_NLS advocates, > and I used to be one, so they should be honoured (IMO). > - APR -- have yet to figure this out. All I can think of is "svn is > an Apache project and we like injecting all our crap into everything, > so enjoy!". > - expat2 -- XML parsing library, which I also have yet to figure out > the need for. What VCS uses XML and why? Is this really *needed*? > - neon -- OPTIONS description labels this as "WebDAV/DAV support", > but in reality what this provides that's most important is HTTPS/SSL > support. I found this out the hard way when building svn for a > customer 4-5 months ago. NEON_DESC should really become this: > > NEON_DESC=WebDAV/Delta-V access module + HTTPS/SSL support > > I want people reading this to remember olden days, because it seems > we've taken a step backwards when it comes to applying minimalistic > approaches and KISS principle. I want people to remember the days of > this command: > > pkg_add -r cvsup-without-gui > For most ports you can find the answer of dependency directly in the source. Example subversion: $> cd devel/subversion $> make extract $> less work/subversion-1.7.7/INSTALL Subversion also depends on the following third-party libraries: * SQLite (REQUIRED for client and server) * libz (REQUIRED for client and server) * libapr and libapr-util (REQUIRED for client and server) * libserf or libneon (OPTIONAL for client) ... Hope this helps for all your other dependency related questions.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50A9E671.6060205>