# $Id: Portfile 120108 2014-05-15 18:04:37Z dluke@macports.org $

PortSystem 1.0

name			subversion
version			1.8.9
categories		devel
platforms		darwin
maintainers		geeklair.net:dluke blair
description		subversion (svn) -- a version control system designed to be a better cvs
license			Apache-2

long_description	Subversion (svn) is a version control system designed to be \
			as similar to cvs(1) as possible, while fixing many \
			outstanding problems with cvs(1).

homepage		http://subversion.apache.org/
master_sites		apache:subversion
use_bzip2		yes
checksums	md5	bd495517a760ddd764ce449a891971db \
		sha1	424ee12708f39a126efd905886666083dcc4eeaf \
		rmd160	768752414673988b23b8257c5d13e889daaa229d

depends_lib		port:expat \
			port:apr port:apr-util \
			port:db46 port:sqlite3 \
			port:gettext port:libiconv \
			port:serf1 port:cyrus-sasl2 \
			port:libmagic port:libcomerr \
			port:zlib

depends_run		path:share/curl/curl-ca-bundle.crt:curl-ca-bundle

test.run		yes
test.target		check
test.env		CLEANUP=true

patchfiles		config_impl.h.patch

post-patch {		reinplace "s|__PREFIX__|${prefix}|" ${worksrcpath}/subversion/libsvn_subr/config_impl.h
			}

configure.args		--with-berkeley-db=:${prefix}/include/db46:${prefix}/lib/db46:db-4.6 \
			--with-apr=${prefix}/bin/apr-1-config \
			--with-apr-util=${prefix}/bin/apu-1-config --without-apxs \
			--mandir=\\\${prefix}/share/man \
			--with-serf=${prefix} \
			--with-sasl=${prefix} \
			--with-libmagic=${prefix} \
			--without-gnome-keyring

use_parallel_build	yes
build.target		all tools
destroot.target-append install-tools

pre-test {		set x {}
			fs-traverse dir ${worksrcpath}/subversion {
				if {[file tail ${dir}] == ".libs" && [file isdirectory ${dir}]} {
					lappend x ${dir}
					continue
					}
				}

			test.env-append DYLD_LIBRARY_PATH=[join ${x} ":"]
			}

pre-configure {		reinplace "s|hardcode_direct=yes|hardcode_direct=no|g" \
				${worksrcpath}/configure
			}

post-configure {	reinplace "s|need_relink=yes|need_relink=no|g" \
				${worksrcpath}/libtool
			}

post-destroot {		# install global config file so curl-ca-bundle certs are used
			xinstall -d ${destroot}${prefix}/etc/subversion
			xinstall -m 644 ${filespath}/servers.default ${destroot}${prefix}/etc/subversion
			# install bash completion file
			xinstall -d ${destroot}${prefix}/etc/bash_completion.d
			copy ${worksrcpath}/tools/client-side/bash_completion ${destroot}${prefix}/etc/bash_completion.d/subversion
			}

post-activate {		if {![file exists ${prefix}/etc/subversion/servers]} {
				copy ${prefix}/etc/subversion/servers.default ${prefix}/etc/subversion/servers
				}
			}

variant mod_dav_svn 	description {Install the subversion apache module (mod_dav_svn)} {
			depends_build path:apache2/bin/apxs:apache2
			configure.args-append \
				--with-apxs=${prefix}/apache2/bin/apxs \
				--disable-mod-activation
			configure.args-delete --without-apxs

			destroot.violate_mtree yes
			}

variant no_bdb		description {Build without support for BerkeleyDB repositories} {
			depends_lib-delete	port:db46
			configure.args-delete	--with-berkeley-db=:${prefix}/include/db46:${prefix}/lib/db46:db-4.6
			configure.args-append	--without-berkeley-db
			}

variant mac_os_x_server_mod_dav_svn 	description {Unsupported - attempt to build the subversion apache module with apple supplied apache2} {
					configure.args-append \
						--with-apxs=/opt/apache2/bin/apxs \
						--disable-mod-activation
					configure.args-delete --without-apxs

					destroot.violate_mtree yes

					post-install {
							ui_warn "This variant (+mac_os_x_server_mod_dav_svn) builds against the Apple-supplied apache2 in /opt/apache2 and thus may have problems that the normal variant (+mod_dav_svn) which builds against the macports supplied apache2 will not have."
					}
					}

variant tools 		description {Install some optional extra subversion tools} {
			post-destroot {
				xinstall -d -m 755 ${destroot}${prefix}/share/${name}
				delete ${worksrcpath}/tools/diff/
				delete ${worksrcpath}/tools/server-side/mod_dontdothat
				eval delete [glob ${worksrcpath}/tools/server-side/*{.o,.lo,.c}]
				delete ${worksrcpath}/tools/server-side/fsfs-stats
				delete ${worksrcpath}/tools/server-side/svn-populate-node-origins-index
				delete ${worksrcpath}/tools/server-side/svn-rep-sharing-stats
				delete ${worksrcpath}/tools/server-side/svnauthz-validate
				copy ${worksrcpath}/tools ${destroot}${prefix}/share/${name}/tools
				}
			}

# see http://subversion.tigris.org/issues/show_bug.cgi?id=2464
variant unicode_path	description {Installs a hack to workaround Mac OS X unicode path issues} {
			patchfiles-append patch-osx_unicode_precomp.diff
			post-install {
				ui_warn "This variant (+unicode_path) implements a hack to deal with composed/decomposed unicode handling on Mac OS X which is different from linux and windows. It is an implementation of solution 1 from http://svn.apache.org/repos/asf/subversion/trunk/notes/unicode-composition-for-filenames which _WILL_ break some setups. Please be sure you understand what you are asking for when you install this variant."
				}
			}

variant disable_keychain	description {Disables support for the Mac OS X Keychain} {
					configure.args-append --disable-keychain
				}

# CarbonCore/MacTypes.h: No such file or directory
platform puredarwin {		configure.args-append \
					--disable-keychain
				}

livecheck.type	regex
livecheck.url	http://svn.apache.org/repos/asf/subversion/tags/
livecheck.regex	"(\\d+\\.\\d+\\.\\d+)/"
