Subversion 1.5 ebuild rescued to local repo
git-svn-id: svn+ssh://svnintern.kmrc.de/projects/gentoo/iwm-overlay@10569 cbe59ace-07ea-0310-918e-868702b5370d
This commit is contained in:
		
							parent
							
								
									1925e73db7
								
							
						
					
					
						commit
						558d07dccb
					
				
							
								
								
									
										10
									
								
								dev-util/subversion/Manifest
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								dev-util/subversion/Manifest
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
AUX 1.5.0/70svn-gentoo.el 443 RMD160 300189eea80dfefa0f2a8479f67d255b39fd2adb SHA1 245b5ed611755276016bc76de2eabdc117e2c511 SHA256 23aa9effa5aea7ae73d14ae4df1a9269135137a5e483b4ff2a501dc130d7d1be
 | 
			
		||||
AUX 1.5.0/80subversion-extras 62 RMD160 c334b15a86eaf19129afa5b62558dd47504a4e3d SHA1 ba05e978e7ff7b047ec99225e4d932036c340d26 SHA256 758d07cf161fff5e0afef5791dca641d3af58192ad1e4874c5f5c2c285c1149d
 | 
			
		||||
AUX 1.5.0/disable-unneeded-linking.patch 2409 RMD160 0d7c34cc83eff7d08369128762ed714fabcd1dde SHA1 92b80f6cb30fe569f79368aea66027a6da022c53 SHA256 2ef8fcd9fabfd1a71bdd50e1156cb9d421a7008fccd73b7ae3536e9a30886231
 | 
			
		||||
AUX svnserve.confd 323 RMD160 cbf4d810d9f41bac1611004741170d1047cbeef0 SHA1 39e922bc777ba847eb85d421d92f560f84b895b5 SHA256 90d3e2532715a6230ebf65023566a6591eed4b3fc12abbca0d2fb7949e146006
 | 
			
		||||
AUX svnserve.confd2 320 RMD160 dc1e74d06d9bd3eeb1a8dfd20aacebecd8378abb SHA1 557191219c3afa90126b8a2bfe7dd62b8a09eb82 SHA256 c70655c073dc06f538c5acdbcd49e216f4be2c859ce395bdf78757a1eeccab00
 | 
			
		||||
AUX svnserve.initd 817 RMD160 59f4e8e983d4595b7c27615889a9c0809d015a18 SHA1 483b47512fb444c0f752ad4eb6c3252f659a967e SHA256 6b483e211b5c311079605e246fca9228c7e5762d27a023fa4c4529fdaa766b08
 | 
			
		||||
AUX svnserve.xinetd 332 RMD160 c2fc4eb02da7e7405756fce650b8897f0a9da7f7 SHA1 d7d478fc257a40626888f9b12ee218df55dac570 SHA256 267f30c78ef6428aeeb97d3c64c06b9acfba4bc624766fc3c6a6d2c4133799a2
 | 
			
		||||
AUX vc-svn.el 16847 RMD160 8665b9a34c8fd9acae40e18aac33026aff3a39d7 SHA1 4d1a5a9331ff96e943244a6d5538e4f0abeac9e7 SHA256 b4979d5df9fba02dbc8ad71d813229222e95ee1e8e89dec3060611d2d6be87aa
 | 
			
		||||
DIST subversion-1.5.6.tar.bz2 4946600 RMD160 5883f925e19e719c8656b5488ed9b00c0f7c3a79 SHA1 774b6dbd4245c36e86289393e651e36dedf17018 SHA256 f701fe75fecc43d9aecf717260ca18661469128a2f28a57c7e6672f3f64f46c2
 | 
			
		||||
EBUILD subversion-1.5.6.ebuild 13395 RMD160 825eba60cfd542901cb956e16b51c0b46158daa0 SHA1 15da1740fe1a5ad200399687c8acc29142dbfc2a SHA256 266bba838afc7f6084492ef4764979b0662ab742cd036d23bc2033f65a92752b
 | 
			
		||||
							
								
								
									
										13
									
								
								dev-util/subversion/files/1.5.0/70svn-gentoo.el
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								dev-util/subversion/files/1.5.0/70svn-gentoo.el
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
 | 
			
		||||
;;; subversion site-lisp configuration
 | 
			
		||||
 | 
			
		||||
(add-to-list 'load-path "@SITELISP@")
 | 
			
		||||
(and (< emacs-major-version 22)
 | 
			
		||||
     (add-to-list 'load-path "@SITELISP@/compat"))
 | 
			
		||||
(add-to-list 'vc-handled-backends 'SVN)
 | 
			
		||||
 | 
			
		||||
(defalias 'svn-examine 'svn-status)
 | 
			
		||||
(autoload 'svn-status "dsvn" "Run `svn status'." t)
 | 
			
		||||
(autoload 'svn-update "dsvn" "Run `svn update'." t)
 | 
			
		||||
(autoload 'svn-status "psvn"
 | 
			
		||||
  "Examine the status of Subversion working copy in directory DIR." t)
 | 
			
		||||
							
								
								
									
										2
									
								
								dev-util/subversion/files/1.5.0/80subversion-extras
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								dev-util/subversion/files/1.5.0/80subversion-extras
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
ROOTPATH=/usr/lib/subversion/bin
 | 
			
		||||
PATH=/usr/lib/subversion/bin
 | 
			
		||||
@ -0,0 +1,81 @@
 | 
			
		||||
--- configure.ac
 | 
			
		||||
+++ configure.ac
 | 
			
		||||
@@ -234,6 +234,8 @@
 | 
			
		||||
 AC_DEFINE_UNQUOTED(SVN_FS_WANT_DB_PATCH, $SVN_FS_WANT_DB_PATCH,
 | 
			
		||||
                    [The desired patch version for the Berkeley DB])
 | 
			
		||||
 
 | 
			
		||||
+AC_SUBST(SVN_DB_LIBS)
 | 
			
		||||
+
 | 
			
		||||
 SVN_LIB_SASL
 | 
			
		||||
 
 | 
			
		||||
 if test "$svn_lib_sasl" = "yes"; then
 | 
			
		||||
--- Makefile.in
 | 
			
		||||
+++ Makefile.in
 | 
			
		||||
@@ -40,9 +40,10 @@
 | 
			
		||||
 NEON_LIBS = @NEON_LIBS@
 | 
			
		||||
 SVN_APR_LIBS = @SVN_APR_LIBS@
 | 
			
		||||
 SVN_APRUTIL_LIBS = @SVN_APRUTIL_LIBS@
 | 
			
		||||
-SVN_DB_LIBS =
 | 
			
		||||
-SVN_SERF_LIBS = @SVN_SERF_LIBS@
 | 
			
		||||
+SVN_DB_LIBS = @SVN_DB_LIBS@
 | 
			
		||||
 SVN_SASL_LIBS = @SVN_SASL_LIBS@
 | 
			
		||||
+SVN_SERF_LIBS = @SVN_SERF_LIBS@
 | 
			
		||||
+SVN_XML_LIBS = -lexpat
 | 
			
		||||
 SVN_ZLIB_LIBS = @SVN_ZLIB_LIBS@
 | 
			
		||||
 
 | 
			
		||||
 LIBS = @LIBS@
 | 
			
		||||
--- build/ac-macros/aprutil.m4
 | 
			
		||||
+++ build/ac-macros/aprutil.m4
 | 
			
		||||
@@ -72,16 +72,14 @@
 | 
			
		||||
     AC_MSG_ERROR([apu-config --includes failed])
 | 
			
		||||
   fi
 | 
			
		||||
 
 | 
			
		||||
-  dnl When APR stores the dependent libs in the .la file, we don't need
 | 
			
		||||
-  dnl --libs.
 | 
			
		||||
-  SVN_APRUTIL_LIBS="`$apu_config --link-libtool --libs`"
 | 
			
		||||
+  SVN_APRUTIL_LIBS="`$apu_config --link-libtool`"
 | 
			
		||||
   if test $? -ne 0; then
 | 
			
		||||
-    AC_MSG_ERROR([apu-config --link-libtool --libs failed])
 | 
			
		||||
+    AC_MSG_ERROR([apu-config --link-libtool failed])
 | 
			
		||||
   fi
 | 
			
		||||
 
 | 
			
		||||
-  SVN_APRUTIL_EXPORT_LIBS="`$apu_config --link-ld --libs`"
 | 
			
		||||
+  SVN_APRUTIL_EXPORT_LIBS="`$apu_config --link-ld`"
 | 
			
		||||
   if test $? -ne 0; then
 | 
			
		||||
-    AC_MSG_ERROR([apu-config --link-ld --libs failed])
 | 
			
		||||
+    AC_MSG_ERROR([apu-config --link-ld failed])
 | 
			
		||||
   fi
 | 
			
		||||
 
 | 
			
		||||
   AC_SUBST(SVN_APRUTIL_INCLUDES)
 | 
			
		||||
--- build/ac-macros/apr.m4
 | 
			
		||||
+++ build/ac-macros/apr.m4
 | 
			
		||||
@@ -74,16 +74,14 @@
 | 
			
		||||
     AC_MSG_ERROR([apr-config --prefix failed])
 | 
			
		||||
   fi
 | 
			
		||||
 
 | 
			
		||||
-  dnl When APR stores the dependent libs in the .la file, we don't need 
 | 
			
		||||
-  dnl --libs.
 | 
			
		||||
-  SVN_APR_LIBS="`$apr_config --link-libtool --libs`"
 | 
			
		||||
+  SVN_APR_LIBS="`$apr_config --link-libtool`"
 | 
			
		||||
   if test $? -ne 0; then
 | 
			
		||||
-    AC_MSG_ERROR([apr-config --link-libtool --libs failed])
 | 
			
		||||
+    AC_MSG_ERROR([apr-config --link-libtool failed])
 | 
			
		||||
   fi
 | 
			
		||||
 
 | 
			
		||||
-  SVN_APR_EXPORT_LIBS="`$apr_config --link-ld --libs`"
 | 
			
		||||
+  SVN_APR_EXPORT_LIBS="`$apr_config --link-ld`"
 | 
			
		||||
   if test $? -ne 0; then
 | 
			
		||||
-    AC_MSG_ERROR([apr-config --link-ld --libs failed])
 | 
			
		||||
+    AC_MSG_ERROR([apr-config --link-ld failed])
 | 
			
		||||
   fi
 | 
			
		||||
 
 | 
			
		||||
   SVN_APR_SHLIB_PATH_VAR="`$apr_config --shlib-path-var`"
 | 
			
		||||
--- build/ac-macros/berkeley-db.m4
 | 
			
		||||
+++ build/ac-macros/berkeley-db.m4
 | 
			
		||||
@@ -218,5 +218,6 @@
 | 
			
		||||
 
 | 
			
		||||
   CPPFLAGS="$svn_lib_berkeley_db_try_save_cppflags"
 | 
			
		||||
   LIBS="$svn_lib_berkeley_db_try_save_libs"
 | 
			
		||||
+  SVN_DB_LIBS="$svn_apu_bdb_lib"
 | 
			
		||||
   ]
 | 
			
		||||
 )
 | 
			
		||||
							
								
								
									
										10
									
								
								dev-util/subversion/files/svnserve.confd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								dev-util/subversion/files/svnserve.confd
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
# The commented variables in this file are the defaults that are used
 | 
			
		||||
# in the init-script.  You don't need to uncomment them except to
 | 
			
		||||
# customize them to different values.
 | 
			
		||||
 | 
			
		||||
# Options for svnserve
 | 
			
		||||
#SVNSERVE_OPTS="--root=/var/svn"
 | 
			
		||||
 | 
			
		||||
# User and group as which to run svnserve
 | 
			
		||||
#SVNSERVE_USER="apache"
 | 
			
		||||
#SVNSERVE_GROUP="apache"
 | 
			
		||||
							
								
								
									
										10
									
								
								dev-util/subversion/files/svnserve.confd2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								dev-util/subversion/files/svnserve.confd2
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
			
		||||
# The commented variables in this file are the defaults that are used
 | 
			
		||||
# in the init-script.  You don't need to uncomment them except to
 | 
			
		||||
# customize them to different values.
 | 
			
		||||
 | 
			
		||||
# Options for svnserve
 | 
			
		||||
#SVNSERVE_OPTS="--root=/var/svn"
 | 
			
		||||
 | 
			
		||||
# User and group as which to run svnserve
 | 
			
		||||
SVNSERVE_USER="svn"
 | 
			
		||||
SVNSERVE_GROUP="svnusers"
 | 
			
		||||
							
								
								
									
										26
									
								
								dev-util/subversion/files/svnserve.initd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								dev-util/subversion/files/svnserve.initd
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
			
		||||
#!/sbin/runscript
 | 
			
		||||
# Copyright 2004 Gentoo Foundation
 | 
			
		||||
# Distributed under the terms of the GNU General Public License, v2 or later
 | 
			
		||||
# $Header: /var/cvsroot/gentoo-x86/dev-util/subversion/files/svnserve.initd,v 1.2 2005/08/25 13:59:48 pauldv Exp $
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	need net
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start() {
 | 
			
		||||
	ebegin "Starting svnserve"
 | 
			
		||||
	# Ensure that we run from a readable working dir, and that we do not
 | 
			
		||||
	# lock filesystems when being run from such a location.
 | 
			
		||||
	cd /
 | 
			
		||||
	start-stop-daemon --start --quiet --background --make-pidfile \
 | 
			
		||||
		--pidfile /var/run/svnserve.pid --exec /usr/bin/svnserve \
 | 
			
		||||
		--chuid ${SVNSERVE_USER:-apache}:${SVNSERVE_GROUP:-apache} -- \
 | 
			
		||||
		--foreground --daemon ${SVNSERVE_OPTS:---root=/var/svn}
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop() {
 | 
			
		||||
	ebegin "Stopping svnserve"
 | 
			
		||||
	start-stop-daemon --stop --quiet --pidfile /var/run/svnserve.pid
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								dev-util/subversion/files/svnserve.xinetd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								dev-util/subversion/files/svnserve.xinetd
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
service svn
 | 
			
		||||
{
 | 
			
		||||
    socket_type     = stream
 | 
			
		||||
    wait            = no
 | 
			
		||||
    user            = apache
 | 
			
		||||
    group           = apache
 | 
			
		||||
    umask           = 002
 | 
			
		||||
    protocol        = tcp
 | 
			
		||||
    log_on_failure += USERID HOST
 | 
			
		||||
    port            = 3690
 | 
			
		||||
    server          = /usr/bin/svnserve
 | 
			
		||||
    server_args     = -i
 | 
			
		||||
    disable         = yes
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										414
									
								
								dev-util/subversion/files/vc-svn.el
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										414
									
								
								dev-util/subversion/files/vc-svn.el
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,414 @@
 | 
			
		||||
;;;; vc-svn.el --- a VC backend for Subversion
 | 
			
		||||
;;;; Jim Blandy <jimb@red-bean.com> --- July 2002
 | 
			
		||||
 | 
			
		||||
;;; Writing this back end has shown up some problems in VC: bugs,
 | 
			
		||||
;;; shortcomings in the back end interface, and so on.  But I want to
 | 
			
		||||
;;; first produce code that Subversion users can use with an already
 | 
			
		||||
;;; released Emacs distribution.
 | 
			
		||||
;;;
 | 
			
		||||
;;; So for now we're working within the limitations of the released
 | 
			
		||||
;;; VC; once we've got something functional, then we can start writing
 | 
			
		||||
;;; VC patches.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; To make this file load on demand, put this file into a directory
 | 
			
		||||
;;; in `load-path', and add this line to a startup file:
 | 
			
		||||
;;;
 | 
			
		||||
;;;     (add-to-list 'vc-handled-backends 'SVN)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; To do here:
 | 
			
		||||
;;; Provide more of the optional VC backend functions: 
 | 
			
		||||
;;; - dir-state
 | 
			
		||||
;;; - merge across arbitrary revisions
 | 
			
		||||
;;;
 | 
			
		||||
;;; Maybe we want more info in mode-line-string.  Status of props?  Status 
 | 
			
		||||
;;; compared to what's in the repository (svn st -u) ? 
 | 
			
		||||
;;;
 | 
			
		||||
;;; VC passes the vc-svn-register function a COMMENT argument, which
 | 
			
		||||
;;; is like the file description in CVS and RCS.  Could we store the
 | 
			
		||||
;;; COMMENT as a Subversion property?  Would that show up in fancy DAV
 | 
			
		||||
;;; web folder displays, or would it just languish in obscurity, the
 | 
			
		||||
;;; way CVS and RCS descriptions do?
 | 
			
		||||
;;;
 | 
			
		||||
;;; After manual merging, need some way to run `svn resolved'.  Perhaps
 | 
			
		||||
;;; we should just prompt for approval when somebody tries to commit a
 | 
			
		||||
;;; conflicted file?
 | 
			
		||||
;;;
 | 
			
		||||
;;; vc-svn ought to handle more gracefully an attempted commit that
 | 
			
		||||
;;; fails with "Transaction is out of date".  Probably the best
 | 
			
		||||
;;; approach is to ask "file is not up-to-date; do you want to merge
 | 
			
		||||
;;; now?"  I think vc-cvs does this.
 | 
			
		||||
;;;
 | 
			
		||||
;;; Perhaps show the "conflicted" marker in the modeline?
 | 
			
		||||
;;;
 | 
			
		||||
;;; If conflicted, before committing or merging, ask the user if they
 | 
			
		||||
;;; want to mark the file as resolved.
 | 
			
		||||
;;;
 | 
			
		||||
;;; Won't searching for strings in svn output cause trouble if the
 | 
			
		||||
;;; locale language is not English?
 | 
			
		||||
;;;
 | 
			
		||||
;;; After merging news, need to recheck our idea of which workfile
 | 
			
		||||
;;; version we have.  Reverting the file does this but we need to
 | 
			
		||||
;;; force it.  Note that this can be necessary even if the file has
 | 
			
		||||
;;; not changed.
 | 
			
		||||
;;;
 | 
			
		||||
;;; Does everything work properly if we're rolled back to an old
 | 
			
		||||
;;; revision?
 | 
			
		||||
;;;
 | 
			
		||||
;;; Perhaps need to implement vc-svn-latest-on-branch-p?
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; To do in VC:
 | 
			
		||||
;;;
 | 
			
		||||
;;; Make sure vc's documentation for `workfile-unchanged-p' default
 | 
			
		||||
;;; function mentions that it must not run asynchronously, and the
 | 
			
		||||
;;; symptoms if it does.
 | 
			
		||||
;;; 
 | 
			
		||||
;;; Fix logic for finding log entries.
 | 
			
		||||
;;;
 | 
			
		||||
;;; Allow historical diff to choose an appropriate default previous
 | 
			
		||||
;;; revision number.  I think this entails moving vc-previous-revision
 | 
			
		||||
;;; et al into the back end.
 | 
			
		||||
;;;
 | 
			
		||||
;;; Should vc-BACKEND-checkout really have to set the workfile version
 | 
			
		||||
;;; itself?
 | 
			
		||||
;;;
 | 
			
		||||
;;; Fix smerge for svn conflict markers.
 | 
			
		||||
;;;
 | 
			
		||||
;;; We can have files which are not editable for reasons other than
 | 
			
		||||
;;; needing to be checked out.  For example, they might be a read-only
 | 
			
		||||
;;; view of an old revision opened with [C-x v ~].  (See vc-merge)
 | 
			
		||||
;;;
 | 
			
		||||
;;; Would be nice if there was a way to mark a file as
 | 
			
		||||
;;; just-checked-out, aside from updating the checkout-time property
 | 
			
		||||
;;; which in theory is not to be changed by backends.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(add-to-list 'vc-handled-backends 'SVN)
 | 
			
		||||
 | 
			
		||||
(defcustom vc-svn-program-name "svn"
 | 
			
		||||
  "*Name of Subversion client program, for use by Emacs's VC package."
 | 
			
		||||
  :type 'string
 | 
			
		||||
  :group 'vc
 | 
			
		||||
  :version "21.2.90.2")
 | 
			
		||||
 | 
			
		||||
(defcustom vc-svn-diff-switches nil
 | 
			
		||||
  "*A string or list of strings specifying extra switches for `svn diff' under VC."
 | 
			
		||||
  :type '(repeat string)
 | 
			
		||||
  :group 'vc
 | 
			
		||||
  :version "21.2.90.2")
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-registered (file)
 | 
			
		||||
  "Return true if FILE is registered under Subversion."
 | 
			
		||||
  ;; First, a quick false positive test: is there a `.svn/entries' file?
 | 
			
		||||
  (and (file-exists-p (expand-file-name ".svn/entries"
 | 
			
		||||
                                        (file-name-directory file)))
 | 
			
		||||
       (not (null (vc-svn-run-status file)))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(put 'vc-svn-with-output-buffer 'lisp-indent-function 0)
 | 
			
		||||
(defmacro vc-svn-with-output-buffer (&rest body)
 | 
			
		||||
  "Save excursion, switch to buffer ` *Subversion Output*', and erase it."
 | 
			
		||||
  `(save-excursion
 | 
			
		||||
     ;; Let's not delete this buffer when we're done --- leave
 | 
			
		||||
     ;; it around for debugging.
 | 
			
		||||
     (set-buffer (get-buffer-create " *Subversion Output*"))
 | 
			
		||||
     (erase-buffer)
 | 
			
		||||
     ,@body))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-pop-up-error (&rest args)
 | 
			
		||||
  "Pop up the Subversion output buffer, and raise an error with ARGS."
 | 
			
		||||
  (pop-to-buffer " *Subversion Output*")
 | 
			
		||||
  (goto-char (point-min))
 | 
			
		||||
  (shrink-window-if-larger-than-buffer)
 | 
			
		||||
  (apply 'error args))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-run-status (file &optional update)
 | 
			
		||||
  "Run `svn status -v' on FILE, and return the result.
 | 
			
		||||
If optional arg UPDATE is true, pass the `-u' flag to check against
 | 
			
		||||
the repository, across the network.
 | 
			
		||||
See `vc-svn-parse-status' for a description of the result."
 | 
			
		||||
  (vc-svn-with-output-buffer
 | 
			
		||||
 | 
			
		||||
    ;; We should call vc-do-command here, but Subversion exits with an
 | 
			
		||||
    ;; error status if FILE isn't under its control, and we want to
 | 
			
		||||
    ;; return that as nil, not display it to the user.  We can tell
 | 
			
		||||
    ;; vc-do-command to
 | 
			
		||||
    
 | 
			
		||||
    (let ((status (apply 'call-process vc-svn-program-name nil t nil
 | 
			
		||||
                         (append '("status" "-v")
 | 
			
		||||
                                 (if update '("-u") '())
 | 
			
		||||
                                 (list file)))))
 | 
			
		||||
      (goto-char (point-min))
 | 
			
		||||
      (if (not (equal 0 status)) ; not zerop; status can be a string
 | 
			
		||||
          ;; If you ask for the status of a file that isn't even in a
 | 
			
		||||
          ;; Subversion-controlled directory, then Subversion exits with
 | 
			
		||||
          ;; this error.
 | 
			
		||||
          (if (or (looking-at "\\(.*\n\\)*.*is not a working copy")
 | 
			
		||||
                  (looking-at "\\(.*\n\\)*.*is not a versioned resource")
 | 
			
		||||
                  (looking-at "\\(.*\n\\)*.*: No such file or directory"))
 | 
			
		||||
              nil
 | 
			
		||||
            ;; Other errors we should actually report to the user.
 | 
			
		||||
            (vc-svn-pop-up-error
 | 
			
		||||
             "Error running Subversion to check status of `%s'"
 | 
			
		||||
             (file-name-nondirectory file)))
 | 
			
		||||
 | 
			
		||||
        ;; Otherwise, we've got valid status output in the buffer, so
 | 
			
		||||
        ;; just parse that.
 | 
			
		||||
        (vc-svn-parse-status)))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-parse-status ()
 | 
			
		||||
  "Parse the output from `svn status -v' at point.
 | 
			
		||||
We return nil for a file not under Subversion's control,
 | 
			
		||||
or (STATE LOCAL CHANGED) for files that are, where:
 | 
			
		||||
STATE is the file's VC state (see the documentation for `vc-state'),
 | 
			
		||||
LOCAL is the base revision in the working copy, and
 | 
			
		||||
CHANGED is the last revision in which it was changed.
 | 
			
		||||
Both LOCAL and CHANGED are strings, not numbers.
 | 
			
		||||
If we passed `svn status' the `-u' flag, then CHANGED could be a later
 | 
			
		||||
revision than LOCAL.
 | 
			
		||||
If the file is newly added, LOCAL is \"0\" and CHANGED is nil."
 | 
			
		||||
  (let ((state (vc-svn-parse-state-only)))
 | 
			
		||||
    (cond
 | 
			
		||||
     ((not state) nil)
 | 
			
		||||
     ;; A newly added file has no revision.
 | 
			
		||||
     ((looking-at "....\\s-+\\(\\*\\s-+\\)?[-0]\\s-+\\?")
 | 
			
		||||
      (list state "0" nil))
 | 
			
		||||
     ((looking-at "....\\s-+\\(\\*\\s-+\\)?\\([0-9]+\\)\\s-+\\([0-9]+\\)")
 | 
			
		||||
      (list state
 | 
			
		||||
            (match-string 2)
 | 
			
		||||
            (match-string 3)))
 | 
			
		||||
     ((looking-at "^I +") nil)       ;; An ignored file
 | 
			
		||||
     ((looking-at " \\{40\\}") nil)  ;; A file that is not in the wc nor svn?
 | 
			
		||||
     (t (error "Couldn't parse output from `svn status -v'")))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-parse-state-only ()
 | 
			
		||||
  "Parse the output from `svn status -v' at point, and return a state.
 | 
			
		||||
The documentation for the function `vc-state' describes the possible values."
 | 
			
		||||
  (cond
 | 
			
		||||
   ;; Be careful --- some of the later clauses here could yield false
 | 
			
		||||
   ;; positives, if the clauses preceding them didn't screen those
 | 
			
		||||
   ;; out.  Making a pattern more selective could break something.
 | 
			
		||||
 | 
			
		||||
   ;; nil                 The given file is not under version control,
 | 
			
		||||
   ;;                     or does not exist.
 | 
			
		||||
   ((looking-at "\\?\\|^$") nil)
 | 
			
		||||
 | 
			
		||||
   ;; 'needs-patch        The file has not been edited by the
 | 
			
		||||
   ;;                     user, but there is a more recent version
 | 
			
		||||
   ;;                     on the current branch stored in the
 | 
			
		||||
   ;;                     master file.
 | 
			
		||||
   ((looking-at "  ..\\s-+\\*") 'needs-patch)
 | 
			
		||||
 | 
			
		||||
   ;; 'up-to-date         The working file is unmodified with
 | 
			
		||||
   ;;                     respect to the latest version on the
 | 
			
		||||
   ;;                     current branch, and not locked.
 | 
			
		||||
   ;;
 | 
			
		||||
   ;;                     This is also returned for files which do not
 | 
			
		||||
   ;;                     exist, as will be the case when finding a
 | 
			
		||||
   ;;                     new file in a svn-controlled directory.  That
 | 
			
		||||
   ;;                     case is handled in vc-svn-parse-status.
 | 
			
		||||
   ((looking-at "  ") 'up-to-date)
 | 
			
		||||
 | 
			
		||||
   ;; 'needs-merge        The file has been edited by the user,
 | 
			
		||||
   ;;                     and there is also a more recent version
 | 
			
		||||
   ;;                     on the current branch stored in the
 | 
			
		||||
   ;;                     master file.  This state can only occur
 | 
			
		||||
   ;;                     if locking is not used for the file.
 | 
			
		||||
   ((looking-at "\\S-+\\s-+\\*") 'needs-merge)
 | 
			
		||||
 | 
			
		||||
   ;; 'edited             The working file has been edited by the
 | 
			
		||||
   ;;                     user.  If locking is used for the file,
 | 
			
		||||
   ;;                     this state means that the current
 | 
			
		||||
   ;;                     version is locked by the calling user.
 | 
			
		||||
   (t 'edited)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;; Is it really safe not to check for updates?  I haven't seen any
 | 
			
		||||
;;; cases where failing to check causes a problem that is not caught
 | 
			
		||||
;;; in some other way.  However, there *are* cases where checking
 | 
			
		||||
;;; needlessly causes network delay, such as C-x v v.  The common case
 | 
			
		||||
;;; is for the commit to be OK; we can handle errors if they occur. -- mbp
 | 
			
		||||
(defun vc-svn-state (file)
 | 
			
		||||
  "Return the current version control state of FILE.
 | 
			
		||||
For a list of possible return values, see `vc-state'.
 | 
			
		||||
 | 
			
		||||
This function should do a full and reliable state computation; it is
 | 
			
		||||
usually called immediately after `C-x v v'.  `vc-svn-state-heuristic'
 | 
			
		||||
provides a faster heuristic when visiting a file.
 | 
			
		||||
 | 
			
		||||
For svn this does *not* check for updates in the repository, because
 | 
			
		||||
that needlessly slows down vc when the repository is remote.  Instead,
 | 
			
		||||
we rely on Subversion to trap situations such as needing a merge
 | 
			
		||||
before commit."
 | 
			
		||||
  (car (vc-svn-run-status file)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-state-heuristic (file)
 | 
			
		||||
  "Estimate the version control state of FILE at visiting time.
 | 
			
		||||
For a list of possible values, see the doc string of `vc-state'.
 | 
			
		||||
This is supposed to be considerably faster than `vc-svn-state'.  It
 | 
			
		||||
just runs `svn status -v', without the `-u' flag, so it's a strictly
 | 
			
		||||
local operation."
 | 
			
		||||
  (car (vc-svn-run-status file)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-workfile-version (file)
 | 
			
		||||
  "Return the current workfile version of FILE."
 | 
			
		||||
  (cadr (vc-svn-run-status file)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-checkout-model (file)
 | 
			
		||||
  'implicit)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-register (file &optional rev comment)
 | 
			
		||||
  "Register FILE with Subversion.
 | 
			
		||||
REV is an initial revision; Subversion ignores it.
 | 
			
		||||
COMMENT is an initial description of the file; currently this is ignored."
 | 
			
		||||
  (vc-svn-with-output-buffer
 | 
			
		||||
    (let ((status (call-process vc-svn-program-name nil t nil "add" file)))
 | 
			
		||||
      (or (equal 0 status) ; not zerop; status can be a string
 | 
			
		||||
          (vc-svn-pop-up-error "Error running Subversion to add `%s'"
 | 
			
		||||
                               (file-name-nondirectory file))))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-checkin (file rev comment)
 | 
			
		||||
  (apply 'vc-do-command nil 0 vc-svn-program-name file 
 | 
			
		||||
         "commit" (if comment (list "-m" comment) '())))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-checkout (file &optional editable rev destfile)
 | 
			
		||||
  "Check out revision REV of FILE into the working area.
 | 
			
		||||
The EDITABLE argument must be non-nil, since Subversion doesn't
 | 
			
		||||
support locking.
 | 
			
		||||
If REV is non-nil, that is the revision to check out (default is
 | 
			
		||||
current workfile version).  If REV is the empty string, that means to
 | 
			
		||||
check out the head of the trunk.  For Subversion, that's equivalent to
 | 
			
		||||
passing nil.
 | 
			
		||||
If optional arg DESTFILE is given, it is an alternate filename to
 | 
			
		||||
write the contents to; we raise an error."
 | 
			
		||||
  (unless editable
 | 
			
		||||
    (error "VC asked Subversion to check out a read-only copy of file"))
 | 
			
		||||
  (when destfile
 | 
			
		||||
    (error "VC asked Subversion to check out a file under another name"))
 | 
			
		||||
  (when (equal rev "")
 | 
			
		||||
    (setq rev nil))
 | 
			
		||||
  (apply 'vc-do-command nil 0 vc-svn-program-name file
 | 
			
		||||
         "update" (if rev (list "-r" rev) '()))
 | 
			
		||||
  (vc-file-setprop file 'vc-workfile-version nil))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-revert (file &optional contents-done)
 | 
			
		||||
  "Revert FILE back to the current workfile version.
 | 
			
		||||
If optional arg CONTENTS-DONE is non-nil, then the contents of FILE
 | 
			
		||||
have already been reverted from a version backup, and this function
 | 
			
		||||
only needs to update the status of FILE within the backend.  This
 | 
			
		||||
function ignores the CONTENTS-DONE argument."
 | 
			
		||||
  (vc-do-command nil 0 vc-svn-program-name file "revert"))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-merge-news (file)
 | 
			
		||||
  "Merge recent changes into FILE.
 | 
			
		||||
 | 
			
		||||
This calls `svn update'.  In the case of conflicts, Subversion puts
 | 
			
		||||
conflict markers into the file and leaves additional temporary files
 | 
			
		||||
containing the `ancestor', `mine', and `other' files.
 | 
			
		||||
 | 
			
		||||
You may need to run `svn resolved' by hand once these conflicts have
 | 
			
		||||
been resolved.  
 | 
			
		||||
 | 
			
		||||
Returns a vc status, which is used to determine whether conflicts need
 | 
			
		||||
to be merged."
 | 
			
		||||
  (prog1
 | 
			
		||||
      (vc-do-command nil 0 vc-svn-program-name file "update")
 | 
			
		||||
    
 | 
			
		||||
    ;; This file may not have changed in the revisions which were
 | 
			
		||||
    ;; merged, which means that its mtime on disk will not have been
 | 
			
		||||
    ;; updated.  However, the workfile version may still have been
 | 
			
		||||
    ;; updated, and we want that to be shown correctly in the
 | 
			
		||||
    ;; modeline.
 | 
			
		||||
 | 
			
		||||
    ;; vc-cvs does something like this
 | 
			
		||||
    (vc-file-setprop file 'vc-checkout-time 0)
 | 
			
		||||
    (vc-file-setprop file 'vc-workfile-version
 | 
			
		||||
                     (vc-svn-workfile-version file))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-print-log (file)
 | 
			
		||||
  "Insert the revision log of FILE into the *vc* buffer."
 | 
			
		||||
  (vc-do-command nil 'async vc-svn-program-name file "log"))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-show-log-entry (version)
 | 
			
		||||
  "Search the log entry for VERSION in the current buffer.
 | 
			
		||||
Make sure it is displayed in the buffer's window."
 | 
			
		||||
  (when (re-search-forward (concat "^-+\n\\(rev\\) "
 | 
			
		||||
                                   (regexp-quote version)
 | 
			
		||||
                                   ":[^|]+|[^|]+| [0-9]+ lines?"))
 | 
			
		||||
    (goto-char (match-beginning 1))
 | 
			
		||||
    (recenter 1)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-diff (file &optional rev1 rev2)
 | 
			
		||||
  "Insert the diff for FILE into the *vc-diff* buffer.
 | 
			
		||||
If REV1 and REV2 are non-nil, report differences from REV1 to REV2.
 | 
			
		||||
If REV1 is nil, use the current workfile version (as found in the
 | 
			
		||||
repository) as the older version; if REV2 is nil, use the current
 | 
			
		||||
workfile contents as the newer version.
 | 
			
		||||
This function returns a status of either 0 (no differences found), or
 | 
			
		||||
1 (either non-empty diff or the diff is run asynchronously)."
 | 
			
		||||
  (let* ((diff-switches-list
 | 
			
		||||
          ;; In Emacs 21.3.50 or so, the `vc-diff-switches-list' macro
 | 
			
		||||
          ;; started requiring its symbol argument to be quoted.
 | 
			
		||||
          (condition-case nil
 | 
			
		||||
              (vc-diff-switches-list svn)
 | 
			
		||||
            (void-variable (vc-diff-switches-list 'SVN))))
 | 
			
		||||
         (status (vc-svn-run-status file))
 | 
			
		||||
         (local (elt status 1))
 | 
			
		||||
         (changed (elt status 2))
 | 
			
		||||
         
 | 
			
		||||
         ;; If rev1 is the default (the base revision) set it to nil.
 | 
			
		||||
         ;; This is nice because it lets us recognize when the diff
 | 
			
		||||
         ;; will run locally, and thus when we shouldn't bother to run
 | 
			
		||||
         ;; it asynchronously.  But it's also necessary, since a diff
 | 
			
		||||
         ;; for vc-default-workfile-unchanged-p *must* run
 | 
			
		||||
         ;; synchronously, or else you'll end up with two diffs in the
 | 
			
		||||
         ;; *vc-diff* buffer.  `vc-diff-workfile-unchanged-p' passes
 | 
			
		||||
         ;; the base revision explicitly, but this kludge lets us
 | 
			
		||||
         ;; recognize that we can run the diff synchronously anyway.
 | 
			
		||||
         ;; Fragile, no?
 | 
			
		||||
         (rev1 (if (and rev1 (not (equal rev1 local))) rev1))
 | 
			
		||||
 | 
			
		||||
         (rev-switches-list
 | 
			
		||||
          (cond
 | 
			
		||||
           ;; Given base rev against given rev.
 | 
			
		||||
           ((and rev1 rev2) (list "-r" (format "%s:%s" rev1 rev2)))
 | 
			
		||||
           ;; Given base rev against working copy.
 | 
			
		||||
           (rev1 (list "-r" rev1))
 | 
			
		||||
           ;; Working copy base against given rev.
 | 
			
		||||
           (rev2 (list "-r" (format "%s:%s" local rev2)))
 | 
			
		||||
           ;; Working copy base against working copy.
 | 
			
		||||
           (t '())))
 | 
			
		||||
 | 
			
		||||
         ;; Run diff asynchronously if we're going to have to go
 | 
			
		||||
         ;; across the network.
 | 
			
		||||
         (async (or rev1 rev2)))
 | 
			
		||||
 | 
			
		||||
    (let ((status (apply 'vc-do-command "*vc-diff*" (if async 'async 0)
 | 
			
		||||
                         vc-svn-program-name file
 | 
			
		||||
                         (append '("diff") rev-switches-list))))
 | 
			
		||||
      (if (or async (> (buffer-size (get-buffer "*vc-diff*")) 0))
 | 
			
		||||
          1 0))))
 | 
			
		||||
 | 
			
		||||
(defun vc-svn-find-version (file rev buffer)
 | 
			
		||||
  (vc-do-command buffer 0 vc-svn-program-name file 
 | 
			
		||||
         "cat" "-r" rev))
 | 
			
		||||
 | 
			
		||||
(provide 'vc-svn)
 | 
			
		||||
							
								
								
									
										414
									
								
								dev-util/subversion/subversion-1.5.6.ebuild
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										414
									
								
								dev-util/subversion/subversion-1.5.6.ebuild
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,414 @@
 | 
			
		||||
# Copyright 1999-2009 Gentoo Foundation
 | 
			
		||||
# Distributed under the terms of the GNU General Public License v2
 | 
			
		||||
# $Header: /var/cvsroot/gentoo-x86/dev-util/subversion/subversion-1.5.6.ebuild,v 1.8 2009/08/05 19:48:53 arfrever Exp $
 | 
			
		||||
 | 
			
		||||
EAPI="1"
 | 
			
		||||
WANT_AUTOMAKE="none"
 | 
			
		||||
 | 
			
		||||
inherit autotools bash-completion confutils depend.apache elisp-common eutils flag-o-matic java-pkg-opt-2 libtool multilib perl-module python
 | 
			
		||||
 | 
			
		||||
DESCRIPTION="Advanced version control system"
 | 
			
		||||
HOMEPAGE="http://subversion.tigris.org/"
 | 
			
		||||
SRC_URI="http://subversion.tigris.org/downloads/${P/_/-}.tar.bz2"
 | 
			
		||||
 | 
			
		||||
LICENSE="Subversion"
 | 
			
		||||
SLOT="0"
 | 
			
		||||
KEYWORDS="~mips ~sparc-fbsd ~amd64"
 | 
			
		||||
IUSE="apache2 berkdb debug doc +dso emacs extras java nls perl python ruby sasl vim-syntax +webdav-neon webdav-serf"
 | 
			
		||||
RESTRICT="test"
 | 
			
		||||
 | 
			
		||||
CDEPEND=">=dev-libs/apr-1.2.8
 | 
			
		||||
	>=dev-libs/apr-util-1.2.8
 | 
			
		||||
	dev-libs/expat
 | 
			
		||||
	sys-libs/zlib
 | 
			
		||||
	berkdb? ( =sys-libs/db-4* )
 | 
			
		||||
	emacs? ( virtual/emacs )
 | 
			
		||||
	ruby? ( >=dev-lang/ruby-1.8.2 )
 | 
			
		||||
	sasl? ( dev-libs/cyrus-sasl )
 | 
			
		||||
	webdav-neon? ( >=net-misc/neon-0.28 )
 | 
			
		||||
	webdav-serf? ( net-libs/serf )"
 | 
			
		||||
 | 
			
		||||
RDEPEND="${CDEPEND}
 | 
			
		||||
	java? ( >=virtual/jre-1.5 )
 | 
			
		||||
	nls? ( virtual/libintl )
 | 
			
		||||
	perl? ( dev-perl/URI )"
 | 
			
		||||
 | 
			
		||||
DEPEND="${CDEPEND}
 | 
			
		||||
	doc? ( app-doc/doxygen )
 | 
			
		||||
	java? ( >=virtual/jdk-1.5 )
 | 
			
		||||
	nls? ( sys-devel/gettext )"
 | 
			
		||||
 | 
			
		||||
want_apache
 | 
			
		||||
 | 
			
		||||
S="${WORKDIR}"/${P/_/-}
 | 
			
		||||
 | 
			
		||||
# Allow for custom repository locations.
 | 
			
		||||
# This can't be in pkg_setup because the variable needs to be available to
 | 
			
		||||
# pkg_config.
 | 
			
		||||
: ${SVN_REPOS_LOC:=/var/svn}
 | 
			
		||||
 | 
			
		||||
pkg_setup() {
 | 
			
		||||
	depend.apache_pkg_setup
 | 
			
		||||
	confutils_use_depend_built_with_all berkdb dev-libs/apr-util berkdb
 | 
			
		||||
	java-pkg-opt-2_pkg_setup
 | 
			
		||||
 | 
			
		||||
	if ! use webdav-neon && ! use webdav-serf; then
 | 
			
		||||
		ewarn
 | 
			
		||||
		ewarn "WebDAV support is disabled. You need WebDAV to"
 | 
			
		||||
		ewarn "access repositories through the HTTP protocol."
 | 
			
		||||
		ewarn
 | 
			
		||||
		ewarn "WebDAV support needs one of the following USE flags enabled:"
 | 
			
		||||
		ewarn "  webdav-neon webdav-serf"
 | 
			
		||||
		ewarn
 | 
			
		||||
		ewarn "You can do this by enabling one of these flags in /etc/portage/package.use:"
 | 
			
		||||
		ewarn "    =${CATEGORY}/${PF} webdav-neon webdav-serf"
 | 
			
		||||
		ewarn
 | 
			
		||||
		ebeep
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_unpack() {
 | 
			
		||||
	unpack ${A}
 | 
			
		||||
	cd "${S}"
 | 
			
		||||
 | 
			
		||||
	epatch "${FILESDIR}"/1.5.0/disable-unneeded-linking.patch
 | 
			
		||||
 | 
			
		||||
	sed -i \
 | 
			
		||||
		-e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
 | 
			
		||||
		-e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
 | 
			
		||||
 | 
			
		||||
	sed -e 's:@bindir@/svn-contrib:@libdir@/subversion/bin:' \
 | 
			
		||||
		-e 's:@bindir@/svn-tools:@libdir@/subversion/bin:' \
 | 
			
		||||
		-i Makefile.in
 | 
			
		||||
 | 
			
		||||
	eautoconf
 | 
			
		||||
	elibtoolize
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_compile() {
 | 
			
		||||
	local myconf
 | 
			
		||||
 | 
			
		||||
	if use python || use perl || use ruby; then
 | 
			
		||||
		myconf="${myconf} --with-swig"
 | 
			
		||||
	else
 | 
			
		||||
		myconf="${myconf} --without-swig"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use debug; then
 | 
			
		||||
		append-cppflags -DSVN_DEBUG -DAP_DEBUG
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	append-flags -fno-strict-aliasing
 | 
			
		||||
 | 
			
		||||
	econf ${myconf} \
 | 
			
		||||
		$(use_with apache2 apxs "${APXS}") \
 | 
			
		||||
		$(use_with berkdb berkeley-db) \
 | 
			
		||||
		$(use_enable dso runtime-module-search) \
 | 
			
		||||
		$(use_enable java javahl) \
 | 
			
		||||
		$(use_with java jdk "${JAVA_HOME}") \
 | 
			
		||||
		$(use_enable nls) \
 | 
			
		||||
		$(use_with sasl) \
 | 
			
		||||
		$(use_with webdav-neon neon /usr) \
 | 
			
		||||
		$(use_with webdav-serf serf /usr) \
 | 
			
		||||
		--with-apr=/usr/bin/apr-1-config \
 | 
			
		||||
		--with-apr-util=/usr/bin/apu-1-config \
 | 
			
		||||
		--disable-experimental-libtool \
 | 
			
		||||
		--without-jikes \
 | 
			
		||||
		--without-junit \
 | 
			
		||||
		--disable-mod-activation \
 | 
			
		||||
		--disable-neon-version-check
 | 
			
		||||
 | 
			
		||||
	emake local-all || die "Building of core Subversion failed"
 | 
			
		||||
 | 
			
		||||
	if use python; then
 | 
			
		||||
		emake swig-py || die "Building of Subversion Python bindings failed"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use perl; then
 | 
			
		||||
		emake -j1 swig-pl || die "Building of Subversion Perl bindings failed"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use ruby; then
 | 
			
		||||
		emake swig-rb || die "Building of Subversion Ruby bindings failed"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use java; then
 | 
			
		||||
		make JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl \
 | 
			
		||||
			|| die "Building of Subversion JavaHL library failed"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use emacs; then
 | 
			
		||||
		elisp-compile contrib/client-side/emacs/{dsvn,psvn,vc-svn}.el \
 | 
			
		||||
			doc/svn-doc.el doc/tools/svnbook.el \
 | 
			
		||||
			|| die "Compilation of Emacs modules failed"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use extras; then
 | 
			
		||||
		emake contrib || die "Building of contrib failed"
 | 
			
		||||
		emake tools || die "Building of tools failed"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use doc; then
 | 
			
		||||
		doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
 | 
			
		||||
 | 
			
		||||
		if use java; then
 | 
			
		||||
			emake doc-javahl || die "Building of Subversion JavaHL library HTML documentation failed"
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
src_install() {
 | 
			
		||||
	python_version
 | 
			
		||||
	PYTHON_DIR=/usr/$(get_libdir)/python${PYVER}
 | 
			
		||||
 | 
			
		||||
	emake -j1 DESTDIR="${D}" local-install || die "Installation of core of Subversion failed"
 | 
			
		||||
 | 
			
		||||
	if use python; then
 | 
			
		||||
		emake -j1 DESTDIR="${D}" DISTUTIL_PARAM="--prefix=${D}" LD_LIBRARY_PATH="-L${D}/usr/$(get_libdir)" install-swig-py \
 | 
			
		||||
			|| die "Installation of Subversion Python bindings failed"
 | 
			
		||||
 | 
			
		||||
		# Move Python bindings.
 | 
			
		||||
		dodir "${PYTHON_DIR}/site-packages"
 | 
			
		||||
		mv "${D}"/usr/$(get_libdir)/svn-python/svn "${D}${PYTHON_DIR}/site-packages"
 | 
			
		||||
		mv "${D}"/usr/$(get_libdir)/svn-python/libsvn "${D}${PYTHON_DIR}/site-packages"
 | 
			
		||||
		rm -Rf "${D}"/usr/$(get_libdir)/svn-python
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use perl; then
 | 
			
		||||
		emake -j1 DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl || die "Installation of Subversion Perl bindings failed"
 | 
			
		||||
		fixlocalpod
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use ruby; then
 | 
			
		||||
		emake -j1 DESTDIR="${D}" install-swig-rb || die "Installation of Subversion Ruby bindings failed"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use java; then
 | 
			
		||||
		emake -j1 DESTDIR="${D}" install-javahl || die "Installation of Subversion JavaHL library failed"
 | 
			
		||||
		java-pkg_regso "${D}"/usr/$(get_libdir)/libsvnjavahl*.so
 | 
			
		||||
		java-pkg_dojar "${D}"/usr/$(get_libdir)/svn-javahl/svn-javahl.jar
 | 
			
		||||
		rm -Rf "${D}"/usr/$(get_libdir)/svn-javahl/*.jar
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Install Apache module configuration.
 | 
			
		||||
	if use apache2; then
 | 
			
		||||
		dodir "${APACHE_MODULES_CONFDIR}"
 | 
			
		||||
		cat <<EOF >"${D}/${APACHE_MODULES_CONFDIR}"/47_mod_dav_svn.conf
 | 
			
		||||
<IfDefine SVN>
 | 
			
		||||
LoadModule dav_svn_module modules/mod_dav_svn.so
 | 
			
		||||
<IfDefine SVN_AUTHZ>
 | 
			
		||||
LoadModule authz_svn_module modules/mod_authz_svn.so
 | 
			
		||||
</IfDefine>
 | 
			
		||||
 | 
			
		||||
# Example configuration:
 | 
			
		||||
#<Location /svn/repos>
 | 
			
		||||
#	DAV svn
 | 
			
		||||
#	SVNPath ${SVN_REPOS_LOC}/repos
 | 
			
		||||
#	AuthType Basic
 | 
			
		||||
#	AuthName "Subversion repository"
 | 
			
		||||
#	AuthUserFile ${SVN_REPOS_LOC}/conf/svnusers
 | 
			
		||||
#	Require valid-user
 | 
			
		||||
#</Location>
 | 
			
		||||
</IfDefine>
 | 
			
		||||
EOF
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	# Install Bash Completion, bug 43179.
 | 
			
		||||
	dobashcompletion tools/client-side/bash_completion subversion
 | 
			
		||||
	rm -f tools/client-side/bash_completion
 | 
			
		||||
 | 
			
		||||
	# Install hot backup script, bug 54304.
 | 
			
		||||
	newbin tools/backup/hot-backup.py svn-hot-backup
 | 
			
		||||
	rm -fr tools/backup
 | 
			
		||||
 | 
			
		||||
	# Install svn_load_dirs.pl.
 | 
			
		||||
	if use perl; then
 | 
			
		||||
		newbin contrib/client-side/svn_load_dirs/svn_load_dirs.pl svn-load-dirs
 | 
			
		||||
	fi
 | 
			
		||||
	rm -f contrib/client-side/svn_load_dirs/svn_load_dirs.pl
 | 
			
		||||
 | 
			
		||||
	# Install svnserve init-script and xinet.d snippet, bug 43245.
 | 
			
		||||
	newinitd "${FILESDIR}"/svnserve.initd svnserve
 | 
			
		||||
	if use apache2; then
 | 
			
		||||
		newconfd "${FILESDIR}"/svnserve.confd svnserve
 | 
			
		||||
	else
 | 
			
		||||
		newconfd "${FILESDIR}"/svnserve.confd2 svnserve
 | 
			
		||||
	fi
 | 
			
		||||
	insinto /etc/xinetd.d
 | 
			
		||||
	newins "${FILESDIR}"/svnserve.xinetd svnserve
 | 
			
		||||
 | 
			
		||||
	# Install documentation.
 | 
			
		||||
	dodoc CHANGES COMMITTERS README
 | 
			
		||||
	dohtml www/hacking.html
 | 
			
		||||
	dodoc tools/xslt/svnindex.{css,xsl}
 | 
			
		||||
	rm -fr tools/xslt
 | 
			
		||||
 | 
			
		||||
	# Install Vim syntax files.
 | 
			
		||||
	if use vim-syntax; then
 | 
			
		||||
		insinto /usr/share/vim/vimfiles/syntax
 | 
			
		||||
		doins contrib/client-side/vim/svn.vim
 | 
			
		||||
	fi
 | 
			
		||||
	rm -f contrib/client-side/vim/svn.vim
 | 
			
		||||
 | 
			
		||||
	# Install Emacs Lisps.
 | 
			
		||||
	if use emacs; then
 | 
			
		||||
		elisp-install ${PN} contrib/client-side/emacs/{dsvn,psvn}.{el,elc} \
 | 
			
		||||
			doc/svn-doc.{el,elc} doc/tools/svnbook.{el,elc} \
 | 
			
		||||
			|| die "Installation of Emacs modules failed"
 | 
			
		||||
		elisp-install ${PN}/compat contrib/client-side/emacs/vc-svn.{el,elc} \
 | 
			
		||||
			|| die "Installation of Emacs modules failed"
 | 
			
		||||
		touch "${D}${SITELISP}/${PN}/compat/.nosearch"
 | 
			
		||||
		elisp-site-file-install "${FILESDIR}"/1.5.0/70svn-gentoo.el \
 | 
			
		||||
			|| die "Installation of Emacs site-init file failed"
 | 
			
		||||
	fi
 | 
			
		||||
	rm -fr contrib/client-side/emacs
 | 
			
		||||
 | 
			
		||||
	# Install extra files.
 | 
			
		||||
	if use extras; then
 | 
			
		||||
		doenvd "${FILESDIR}"/1.5.0/80subversion-extras
 | 
			
		||||
 | 
			
		||||
		emake DESTDIR="${D}" install-contrib || die "Installation of contrib failed"
 | 
			
		||||
		emake DESTDIR="${D}" install-tools || die "Installation of tools failed"
 | 
			
		||||
 | 
			
		||||
		find contrib tools '(' -name "*.bat" -o -name "*.in" -o -name ".libs" ')' -print0 | xargs -0 rm -fr
 | 
			
		||||
		rm -fr contrib/client-side/{svn-push,svnmucc}
 | 
			
		||||
		rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}*
 | 
			
		||||
		rm -fr tools/{buildbot,dev,diff,po}
 | 
			
		||||
 | 
			
		||||
		insinto /usr/share/${PN}
 | 
			
		||||
		doins -r contrib tools
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	if use doc; then
 | 
			
		||||
		dohtml doc/doxygen/html/*
 | 
			
		||||
 | 
			
		||||
		insinto /usr/share/doc/${PF}
 | 
			
		||||
		doins -r notes
 | 
			
		||||
		ecompressdir /usr/share/doc/${PF}/notes
 | 
			
		||||
 | 
			
		||||
		if use java; then
 | 
			
		||||
			java-pkg_dojavadoc doc/javadoc
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pkg_preinst() {
 | 
			
		||||
	# Compare versions of Berkeley DB, bug 122877.
 | 
			
		||||
	if use berkdb && [[ -f "${ROOT}usr/bin/svn" ]] ; then
 | 
			
		||||
		OLD_BDB_VERSION="$(scanelf -nq "${ROOT}usr/$(get_libdir)/libsvn_subr-1.so.0" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
 | 
			
		||||
		NEW_BDB_VERSION="$(scanelf -nq "${D}usr/$(get_libdir)/libsvn_subr-1.so.0" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
 | 
			
		||||
		if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]] ; then
 | 
			
		||||
			CHANGED_BDB_VERSION=1
 | 
			
		||||
		fi
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pkg_postinst() {
 | 
			
		||||
	use emacs && elisp-site-regen
 | 
			
		||||
	use perl && perl-module_pkg_postinst
 | 
			
		||||
 | 
			
		||||
	elog "Subversion Server Notes"
 | 
			
		||||
	elog "-----------------------"
 | 
			
		||||
	elog
 | 
			
		||||
	elog "If you intend to run a server, a repository needs to be created using"
 | 
			
		||||
	elog "svnadmin (see man svnadmin) or the following command to create it in"
 | 
			
		||||
	elog "${SVN_REPOS_LOC}:"
 | 
			
		||||
	elog
 | 
			
		||||
	elog "    emerge --config =${CATEGORY}/${PF}"
 | 
			
		||||
	elog
 | 
			
		||||
	elog "Subversion has multiple server types, take your pick:"
 | 
			
		||||
	elog
 | 
			
		||||
	elog " - svnserve daemon: "
 | 
			
		||||
	elog "   1. Edit /etc/conf.d/svnserve"
 | 
			
		||||
	elog "   2. Fix the repository permissions (see \"Fixing the repository permissions\")"
 | 
			
		||||
	elog "   3. Start daemon: /etc/init.d/svnserve start"
 | 
			
		||||
	elog "   4. Make persistent: rc-update add svnserve default"
 | 
			
		||||
	elog
 | 
			
		||||
	elog " - svnserve via xinetd:"
 | 
			
		||||
	elog "   1. Edit /etc/xinetd.d/svnserve (remove disable line)"
 | 
			
		||||
	elog "   2. Fix the repository permissions (see \"Fixing the repository permissions\")"
 | 
			
		||||
	elog "   3. Restart xinetd.d: /etc/init.d/xinetd restart"
 | 
			
		||||
	elog
 | 
			
		||||
	elog " - svn over ssh:"
 | 
			
		||||
	elog "   1. Fix the repository permissions (see \"Fixing the repository permissions\")"
 | 
			
		||||
	elog "      Additionally run:"
 | 
			
		||||
	elog "        groupadd svnusers"
 | 
			
		||||
	elog "        chown -R root:svnusers ${SVN_REPOS_LOC}/repos"
 | 
			
		||||
	elog "   2. Create an svnserve wrapper in /usr/local/bin to set the umask you"
 | 
			
		||||
	elog "      want, for example:"
 | 
			
		||||
	elog "         #!/bin/bash"
 | 
			
		||||
	elog "         . /etc/conf.d/svnserve"
 | 
			
		||||
	elog "         umask 007"
 | 
			
		||||
	elog "         exec /usr/bin/svnserve \${SVNSERVE_OPTS} \"\$@\""
 | 
			
		||||
	elog
 | 
			
		||||
 | 
			
		||||
	if use apache2; then
 | 
			
		||||
		elog " - http-based server:"
 | 
			
		||||
		elog "   1. Edit /etc/conf.d/apache2 to include both \"-D DAV\" and \"-D SVN\""
 | 
			
		||||
		elog "   2. Create an htpasswd file:"
 | 
			
		||||
		elog "      htpasswd2 -m -c ${SVN_REPOS_LOC}/conf/svnusers USERNAME"
 | 
			
		||||
		elog "   3. Fix the repository permissions (see \"Fixing the repository permissions\")"
 | 
			
		||||
		elog "   4. Restart Apache: /etc/init.d/apache2 restart"
 | 
			
		||||
		elog
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	elog "   Fixing the repository permissions:"
 | 
			
		||||
	elog "        chmod -Rf go-rwx ${SVN_REPOS_LOC}/conf"
 | 
			
		||||
	elog "        chmod -Rf g-w,o-rwx ${SVN_REPOS_LOC}/repos"
 | 
			
		||||
	elog "        chmod -Rf g+rw ${SVN_REPOS_LOC}/repos/db"
 | 
			
		||||
	elog "        chmod -Rf g+rw ${SVN_REPOS_LOC}/repos/locks"
 | 
			
		||||
	elog
 | 
			
		||||
 | 
			
		||||
	elog "If you intend to use svn-hot-backup, you can specify the number of"
 | 
			
		||||
	elog "backups to keep per repository by specifying an environment variable."
 | 
			
		||||
	elog "If you want to keep e.g. 2 backups, do the following:"
 | 
			
		||||
	elog "echo '# hot-backup: Keep that many repository backups around' > /etc/env.d/80subversion"
 | 
			
		||||
	elog "echo 'SVN_HOTBACKUP_BACKUPS_NUMBER=2' >> /etc/env.d/80subversion"
 | 
			
		||||
	elog
 | 
			
		||||
 | 
			
		||||
	if [[ -n "${CHANGED_BDB_VERSION}" ]] ; then
 | 
			
		||||
		ewarn "You upgraded from an older version of Berkeley DB and may experience"
 | 
			
		||||
		ewarn "problems with your repository. Run the following commands as root to fix it:"
 | 
			
		||||
		ewarn "    db4_recover -h ${SVN_REPOS_LOC}/repos"
 | 
			
		||||
		ewarn "    chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pkg_postrm() {
 | 
			
		||||
	use emacs && elisp-site-regen
 | 
			
		||||
	use perl && perl-module_pkg_postrm
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pkg_config() {
 | 
			
		||||
	if [[ ! -x "${ROOT}usr/bin/svnadmin" ]] ; then
 | 
			
		||||
		die "You seem to only have built the Subversion client"
 | 
			
		||||
	fi
 | 
			
		||||
 | 
			
		||||
	einfo ">>> Initializing the database in ${ROOT}${SVN_REPOS_LOC} ..."
 | 
			
		||||
	if [[ -e "${ROOT}${SVN_REPOS_LOC}/repos" ]] ; then
 | 
			
		||||
		echo "A Subversion repository already exists and I will not overwrite it."
 | 
			
		||||
		echo "Delete \"${ROOT}${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
 | 
			
		||||
	else
 | 
			
		||||
		mkdir -p "${ROOT}${SVN_REPOS_LOC}/conf"
 | 
			
		||||
 | 
			
		||||
		einfo ">>> Populating repository directory ..."
 | 
			
		||||
		# Create initial repository.
 | 
			
		||||
		"${ROOT}usr/bin/svnadmin" create "${ROOT}${SVN_REPOS_LOC}/repos"
 | 
			
		||||
 | 
			
		||||
		einfo ">>> Setting repository permissions ..."
 | 
			
		||||
		SVNSERVE_USER="$(. "${ROOT}etc/conf.d/svnserve" ; echo "${SVNSERVE_USER}")"
 | 
			
		||||
		SVNSERVE_GROUP="$(. "${ROOT}etc/conf.d/svnserve" ; echo "${SVNSERVE_GROUP}")"
 | 
			
		||||
		if use apache2 ; then
 | 
			
		||||
			[[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
 | 
			
		||||
			[[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
 | 
			
		||||
		else
 | 
			
		||||
			[[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
 | 
			
		||||
			[[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
 | 
			
		||||
			enewgroup "${SVNSERVE_GROUP}"
 | 
			
		||||
			enewuser "${SVNSERVE_USER}" -1 -1 "${SVN_REPOS_LOC}" "${SVNSERVE_GROUP}"
 | 
			
		||||
		fi
 | 
			
		||||
		chown -Rf "${SVNSERVE_USER}:${SVNSERVE_GROUP}" "${ROOT}${SVN_REPOS_LOC}/repos"
 | 
			
		||||
		chmod -Rf go-rwx "${ROOT}${SVN_REPOS_LOC}/conf"
 | 
			
		||||
		chmod -Rf o-rwx "${ROOT}${SVN_REPOS_LOC}/repos"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user