# $Id: Portfile 106653 2013-06-03 13:54:35Z dluke@macports.org $

PortSystem 1.0

name			subversion
version			1.7.10
revision		1
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	4088a77e14232876c9b4ff1541e6e200 \
		sha1	a4f3de0a13b034b0eab4d35512c6c91a4abcf4f5 \
		rmd160	1919161092ef6014cdfcbf52e22a576744468fd2

depends_lib		port:expat port:neon \
			port:apr port:apr-util \
			port:db46 port:sqlite3 \
			port:gettext port:libiconv \
			port:serf1 port:cyrus-sasl2 \
			port:file port:libcomerr
depends_run		port:curl-ca-bundle

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

patchfiles		patch-Makefile.in.diff 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-neon=${prefix} --with-apr=${prefix}/bin/apr-1-config \
			--with-apr-util=${prefix}/bin/apu-1-config --without-apxs \
			--mandir=\\\${prefix}/share/man \
			--disable-neon-version-check --with-serf=${prefix} \
			--with-sasl=${prefix} \
			--with-libmagic=${prefix}

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
			set completions_path ${destroot}${prefix}/share/bash-completion/completions 
			xinstall -d ${completions_path} 
			xinstall -m 644 ${worksrcpath}/tools/client-side/bash_completion ${completions_path}/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_neon 	description {Build without neon (http/https support)} {
			depends_lib-delete	port:neon
			configure.args-append	--without-neon
			configure.args-delete	--with-neon=${prefix}
			}

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/client-side/svnmucc/
				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/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.collab.net/repos/svn/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+)/"
