summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>2010-10-02 21:16:53 +0000
committerArfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>2010-10-02 21:16:53 +0000
commit985452a2a583814e58f8e73f089996d69088e6b4 (patch)
tree1ebdbe70e43727bff59242c99cb5a999f315c7aa /dev-vcs/subversion
parentVersion Bump (diff)
downloadgentoo-2-985452a2a583814e58f8e73f089996d69088e6b4.tar.gz
gentoo-2-985452a2a583814e58f8e73f089996d69088e6b4.tar.bz2
gentoo-2-985452a2a583814e58f8e73f089996d69088e6b4.zip
Delete older ebuild.
Diffstat (limited to 'dev-vcs/subversion')
-rw-r--r--dev-vcs/subversion/files/vc-svn.el414
-rw-r--r--dev-vcs/subversion/subversion-1.6.11.ebuild894
2 files changed, 0 insertions, 1308 deletions
diff --git a/dev-vcs/subversion/files/vc-svn.el b/dev-vcs/subversion/files/vc-svn.el
deleted file mode 100644
index e591820f3abf..000000000000
--- a/dev-vcs/subversion/files/vc-svn.el
+++ /dev/null
@@ -1,414 +0,0 @@
-;;;; 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)
diff --git a/dev-vcs/subversion/subversion-1.6.11.ebuild b/dev-vcs/subversion/subversion-1.6.11.ebuild
deleted file mode 100644
index f46dac680d68..000000000000
--- a/dev-vcs/subversion/subversion-1.6.11.ebuild
+++ /dev/null
@@ -1,894 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-vcs/subversion/subversion-1.6.11.ebuild,v 1.8 2010/07/11 19:34:41 ssuominen Exp $
-
-EAPI="3"
-SUPPORT_PYTHON_ABIS="1"
-WANT_AUTOMAKE="none"
-
-inherit autotools bash-completion db-use 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.apache.org/"
-SRC_URI="http://subversion.tigris.org/downloads/${P/_/-}.tar.bz2"
-
-LICENSE="Subversion"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
-IUSE="apache2 berkdb ctypes-python debug doc +dso emacs extras gnome-keyring java kde nls perl python ruby sasl test vim-syntax +webdav-neon webdav-serf"
-
-CDEPEND=">=dev-db/sqlite-3.4[threadsafe]
- >=dev-libs/apr-1.3:1
- >=dev-libs/apr-util-1.3:1
- dev-libs/expat
- sys-libs/zlib
- berkdb? ( =sys-libs/db-4* )
- ctypes-python? ( =dev-lang/python-2* )
- emacs? ( virtual/emacs )
- gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/gnome-keyring )
- kde? ( sys-apps/dbus x11-libs/qt-core x11-libs/qt-dbus x11-libs/qt-gui >=kde-base/kdelibs-4 )
- perl? ( dev-lang/perl )
- python? ( =dev-lang/python-2* )
- ruby? ( >=dev-lang/ruby-1.8.2 )
- sasl? ( dev-libs/cyrus-sasl )
- webdav-neon? ( >=net-libs/neon-0.28 )
- webdav-serf? ( =net-libs/serf-0.3* )"
-RDEPEND="${CDEPEND}
- apache2? ( www-servers/apache[apache2_modules_dav] )
- java? ( >=virtual/jre-1.5 )
- kde? ( kde-base/kwalletd )
- nls? ( virtual/libintl )
- perl? ( dev-perl/URI )"
-APACHE_TEST_DEPEND="|| (
- =www-servers/apache-2.4*[apache2_modules_auth_basic,apache2_modules_authn_core,apache2_modules_authn_file,apache2_modules_authz_core,apache2_modules_authz_user,apache2_modules_dav,apache2_modules_log_config,apache2_modules_unixd]
- =www-servers/apache-2.2*[apache2_modules_auth_basic,apache2_modules_authn_file,apache2_modules_dav,apache2_modules_log_config]
- )"
-DEPEND="${CDEPEND}
- >=sys-apps/sandbox-1.6
- ctypes-python? ( dev-python/ctypesgen )
- doc? ( app-doc/doxygen )
- gnome-keyring? ( dev-util/pkgconfig )
- java? ( >=virtual/jdk-1.5 )
- kde? ( dev-util/pkgconfig )
- nls? ( sys-devel/gettext )
- test? (
- =dev-lang/python-2*
- webdav-neon? ( ${APACHE_TEST_DEPEND} )
- webdav-serf? ( ${APACHE_TEST_DEPEND} )
- )
- webdav-neon? ( dev-util/pkgconfig )"
-RESTRICT_PYTHON_ABIS="3.*"
-
-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() {
- if use kde && ! use nls; then
- eerror "Support for KWallet (KDE) requires Native Language Support (NLS)."
- die "Enable \"nls\" USE flag"
- fi
-
- if use berkdb; then
- einfo
- if [[ -z "${SVN_BDB_VERSION}" ]]; then
- SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
- einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
- fi
- einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
- einfo
-
- local apu_bdb_version="$(scanelf -nq "${ROOT}usr/$(get_libdir)/libaprutil-1.so.0" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
- if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
- eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
- eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
- eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
- eerror "Aborting to avoid possible run-time crashes."
- die "Berkeley DB version mismatch"
- fi
- fi
-
- depend.apache_pkg_setup
-
- java-pkg-opt-2_pkg_setup
-
- if use ctypes-python || use python || use test; then
- python_pkg_setup
- fi
-
- 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}/${PN} webdav-neon webdav-serf"
- ewarn
- echo -ne "\a"
- fi
-
- if use test; then
- elog
- elog "\e[1;31m************************************************************************************************\e[0m"
- elog
- elog "NOTES ABOUT TESTS"
- elog
- elog "You can set the following variables to enable testing of some features and configure testing:"
- if use webdav-neon || use webdav-serf; then
- elog " SVN_TEST_APACHE_PORT=integer - Set Apache port number (Default value: 62208)"
- fi
- elog " SVN_TEST_SVNSERVE_PORT=integer - Set svnserve port number (Default value: 62209)"
- elog " SVN_TEST_FSFS_MEMCACHED=1 - Enable using of Memcached for FSFS repositories"
- elog " SVN_TEST_FSFS_MEMCACHED_PORT=integer - Set Memcached port number (Default value: 62210)"
- elog " SVN_TEST_FSFS_SHARDING=integer - Enable sharding of FSFS repositories and set default shard size for FSFS repositories"
- elog " SVN_TEST_FSFS_PACKING=1 - Enable packing of FSFS repositories"
- elog " (SVN_TEST_FSFS_PACKING requires SVN_TEST_FSFS_SHARDING)"
-# if use sasl; then
-# elog " SVN_TEST_SASL=1 - Enable SASL authentication"
-# fi
- if use ctypes-python || use java || use perl || use python || use ruby; then
- elog " SVN_TEST_BINDINGS=1 - Enable testing of bindings"
- fi
- if use java || use perl || use python || use ruby; then
- elog " (Testing of bindings requires ${CATEGORY}/${PF})"
- fi
- if use java; then
- elog " (Testing of JavaHL library requires dev-java/junit:4)"
- fi
- elog
- elog "\e[1;31m************************************************************************************************\e[0m"
- elog
-
- if ! use apache2 && { use webdav-neon || use webdav-serf; }; then
- eerror "Testing of libsvn_ra_neon / libsvn_ra_serf requires support for Apache."
- die "Enable \"apache2\" USE flag."
- fi
-
- if [[ -n "${SVN_TEST_APACHE_PORT}" ]] && ! ([[ "$((${SVN_TEST_APACHE_PORT}))" == "${SVN_TEST_APACHE_PORT}" ]]) &>/dev/null; then
- die "Value of SVN_TEST_APACHE_PORT must be an integer"
- fi
-
- if [[ -n "${SVN_TEST_SVNSERVE_PORT}" ]] && ! ([[ "$((${SVN_TEST_SVNSERVE_PORT}))" == "${SVN_TEST_SVNSERVE_PORT}" ]]) &>/dev/null; then
- die "Value of SVN_TEST_SVNSERVE_PORT must be an integer"
- fi
-
- if [[ -n "${SVN_TEST_FSFS_MEMCACHED}" ]] && ! has_version net-misc/memcached; then
- die "net-misc/memcached must be installed"
- fi
- if [[ -n "${SVN_TEST_FSFS_MEMCACHED_PORT}" ]] && ! ([[ "$((${SVN_TEST_FSFS_MEMCACHED_PORT}))" == "${SVN_TEST_FSFS_MEMCACHED_PORT}" ]]) &>/dev/null; then
- die "Value of SVN_TEST_FSFS_MEMCACHED_PORT must be an integer"
- fi
- if [[ -n "${SVN_TEST_FSFS_SHARDING}" ]] && ! ([[ "$((${SVN_TEST_FSFS_SHARDING}))" == "${SVN_TEST_FSFS_SHARDING}" ]]) &>/dev/null; then
- die "Value of SVN_TEST_FSFS_SHARDING must be an integer"
- fi
- if [[ -n "${SVN_TEST_FSFS_PACKING}" && -z "${SVN_TEST_FSFS_SHARDING}" ]]; then
- die "SVN_TEST_FSFS_PACKING requires SVN_TEST_FSFS_SHARDING"
- fi
-
- if [[ -n "${SVN_TEST_BINDINGS}" ]]; then
- if { use java || use perl || use python || use ruby; } && ! has_version "=${CATEGORY}/${PF}"; then
- die "${CATEGORY}/${PF} must be installed"
- fi
- if use java && ! has_version dev-java/junit:4; then
- die "dev-java/junit:4 must be installed"
- fi
- fi
- fi
-
- if use debug; then
- append-cppflags -DSVN_DEBUG -DAP_DEBUG
- fi
-}
-
-src_prepare() {
- epatch "${FILESDIR}/${PN}-1.6.0-disable_linking_against_unneeded_libraries.patch"
- epatch "${FILESDIR}/${PN}-1.6.2-local_library_preloading.patch"
- epatch "${FILESDIR}/${PN}-1.6.3-kwallet_window.patch"
- chmod +x build/transform_libtool_scripts.sh || die "chmod failed"
-
- if ! use test; then
- sed -i \
- -e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
- -e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
- fi
-
- sed -e "/SWIG_PY_INCLUDES=/s/\$ac_cv_python_includes/\\\\\$(PYTHON_INCLUDES)/" -i build/ac-macros/swig.m4 || die "sed failed"
-
- eautoconf
- elibtoolize
-
- sed -e "s/libsvn_swig_py-1\.la/libsvn_swig_py-\$(PYTHON_VERSION)-1.la/" -i build-outputs.mk || die "sed failed"
-}
-
-src_configure() {
- local myconf
-
- if use python || use perl || use ruby; then
- myconf+=" --with-swig"
- else
- myconf+=" --without-swig"
- fi
-
- if use java; then
- if use test && [[ -n "${SVN_TEST_BINDINGS}" ]]; then
- myconf+=" --with-junit=/usr/share/junit-4/lib/junit.jar"
- else
- myconf+=" --without-junit"
- fi
- fi
-
- econf --libdir="/usr/$(get_libdir)" \
- $(use_with apache2 apxs "${APXS}") \
- $(use_with berkdb berkeley-db "db.h:/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}") \
- $(use_with ctypes-python ctypesgen /usr) \
- $(use_enable dso runtime-module-search) \
- $(use_with gnome-keyring) \
- $(use_enable java javahl) \
- $(use_with java jdk "${JAVA_HOME}") \
- $(use_with kde kwallet) \
- $(use_enable nls) \
- $(use_with sasl) \
- $(use_with webdav-neon neon) \
- $(use_with webdav-serf serf /usr) \
- ${myconf} \
- --with-apr=/usr/bin/apr-1-config \
- --with-apr-util=/usr/bin/apu-1-config \
- --disable-experimental-libtool \
- --without-jikes \
- --enable-local-library-preloading \
- --disable-mod-activation \
- --disable-neon-version-check \
- --with-sqlite=/usr
-}
-
-src_compile() {
- einfo
- einfo "Building of core of Subversion"
- einfo
- emake local-all || die "Building of core of Subversion failed"
-
- if use ctypes-python; then
- einfo
- einfo "Building of Subversion Ctypes Python bindings"
- einfo
- python_copy_sources subversion/bindings/ctypes-python
- rm -fr subversion/bindings/ctypes-python
- ctypes_python_bindings_building() {
- rm -f subversion/bindings/ctypes-python
- ln -s ctypes-python-${PYTHON_ABI} subversion/bindings/ctypes-python
- emake ctypes-python
- }
- python_execute_function \
- --action-message 'Building of Subversion Ctypes Python bindings with $(python_get_implementation) $(python_get_version)' \
- --failure-message 'Building of Subversion Ctypes Python bindings failed with $(python_get_implementation) $(python_get_version)' \
- ctypes_python_bindings_building
- fi
-
- if use python; then
- einfo
- einfo "Building of Subversion SWIG Python bindings"
- einfo
- python_copy_sources subversion/bindings/swig/python
- rm -fr subversion/bindings/swig/python
- swig_python_bindings_building() {
- rm -f subversion/bindings/swig/python
- ln -s python-${PYTHON_ABI} subversion/bindings/swig/python
- emake \
- PYTHON_INCLUDES="-I$(python_get_includedir)" \
- PYTHON_VERSION="$(python_get_version)" \
- swig_pydir="$(python_get_sitedir)/libsvn" \
- swig_pydir_extra="$(python_get_sitedir)/svn" \
- swig-py
- }
- python_execute_function \
- --action-message 'Building of Subversion SWIG Python bindings with $(python_get_implementation) $(python_get_version)' \
- --failure-message 'Building of Subversion SWIG Python bindings failed with $(python_get_implementation) $(python_get_version)' \
- swig_python_bindings_building
- fi
-
- if use perl; then
- einfo
- einfo "Building of Subversion SWIG Perl bindings"
- einfo
- emake -j1 swig-pl || die "Building of Subversion SWIG Perl bindings failed"
- fi
-
- if use ruby; then
- einfo
- einfo "Building of Subversion SWIG Ruby bindings"
- einfo
- emake swig-rb || die "Building of Subversion SWIG Ruby bindings failed"
- fi
-
- if use java; then
- einfo
- einfo "Building of Subversion JavaHL library"
- einfo
- emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl || die "Building of Subversion JavaHL library failed"
- fi
-
- if use emacs; then
- einfo
- einfo "Compilation of Emacs modules"
- einfo
- 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
- einfo
- einfo "Building of contrib and tools"
- einfo
- emake contrib || die "Building of contrib failed"
- emake tools || die "Building of tools failed"
- fi
-
- if use doc; then
- einfo
- einfo "Building of Subversion HTML documentation"
- einfo
- doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
-
- if use java; then
- einfo
- einfo "Building of Subversion JavaHL library HTML documentation"
- einfo
- emake doc-javahl || die "Building of Subversion JavaHL library HTML documentation failed"
- fi
- fi
-}
-
-create_apache_tests_configuration() {
- get_loadmodule_directive() {
- if [[ "$("${APACHE_BIN}" -l)" != *"mod_$1.c"* ]]; then
- echo "LoadModule $1_module \"${APACHE_MODULESDIR}/mod_$1.so\""
- fi
- }
- get_loadmodule_directives() {
- if has_version "=www-servers/apache-2.4*"; then
- get_loadmodule_directive auth_basic
- get_loadmodule_directive authn_core
- get_loadmodule_directive authn_file
- get_loadmodule_directive authz_core
- get_loadmodule_directive authz_user
- get_loadmodule_directive dav
- get_loadmodule_directive log_config
- get_loadmodule_directive unixd
- else
- get_loadmodule_directive auth_basic
- get_loadmodule_directive authn_file
- get_loadmodule_directive dav
- get_loadmodule_directive log_config
- fi
- }
-
- mkdir -p "${T}/apache"
- cat << EOF > "${T}/apache/apache.conf"
-$(get_loadmodule_directives)
-LoadModule dav_svn_module "${S}/subversion/mod_dav_svn/.libs/mod_dav_svn.so"
-LoadModule authz_svn_module "${S}/subversion/mod_authz_svn/.libs/mod_authz_svn.so"
-
-User $(id -un)
-Group $(id -gn)
-Listen localhost:${SVN_TEST_APACHE_PORT}
-ServerName localhost
-ServerRoot "${T}"
-DocumentRoot "${T}"
-CoreDumpDirectory "${T}"
-PidFile "${T}/apache.pid"
-CustomLog "${T}/apache/access_log" "%h %l %u %{%Y-%m-%dT%H:%M:%S}t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""
-CustomLog "${T}/apache/svn_log" "%{%Y-%m-%dT%H:%M:%S}t %u %{SVN-REPOS-NAME}e %{SVN-ACTION}e" env=SVN-ACTION
-ErrorLog "${T}/apache/error_log"
-LogLevel Debug
-MaxRequestsPerChild 0
-
-<Directory />
- AllowOverride None
-</Directory>
-
-<Location /svn-test-work/repositories>
- DAV svn
- SVNParentPath "${S}/subversion/tests/cmdline/svn-test-work/repositories"
- AuthzSVNAccessFile "${S}/subversion/tests/cmdline/svn-test-work/authz"
- AuthType Basic
- AuthName "Subversion Repository"
- AuthUserFile "${T}/apache/users"
- Require valid-user
-</Location>
-
-<Location /svn-test-work/local_tmp/repos>
- DAV svn
- SVNPath "${S}/subversion/tests/cmdline/svn-test-work/local_tmp/repos"
- AuthzSVNAccessFile "${S}/subversion/tests/cmdline/svn-test-work/authz"
- AuthType Basic
- AuthName "Subversion Repository"
- AuthUserFile "${T}/apache/users"
- Require valid-user
-</Location>
-EOF
-
- cat << EOF > "${T}/apache/users"
-jrandom:xCGl35kV9oWCY
-jconstant:xCGl35kV9oWCY
-EOF
-}
-
-set_tests_variables() {
- if [[ "$1" == "local" ]]; then
- base_url="file://${S}/subversion/tests/cmdline"
- http_library=""
- fi
- if [[ "$1" == "svn" ]]; then
- base_url="svn://127.0.0.1:${SVN_TEST_SVNSERVE_PORT}"
- http_library=""
- fi
- if [[ "$1" == "neon" || "$1" == "serf" ]]; then
- base_url="http://127.0.0.1:${SVN_TEST_APACHE_PORT}"
- http_library="$1"
- fi
-}
-
-src_test() {
- if ! use test; then
- die "Invalid configuration"
- fi
-
- local fs_type fs_types ra_type ra_types options failed_tests
-
- fs_types="fsfs"
- use berkdb && fs_types+=" bdb"
-
- ra_types="local svn"
- use webdav-neon && ra_types+=" neon"
- use webdav-serf && ra_types+=" serf"
-
- local pid_file
- for pid_file in svnserve.pid apache.pid memcached.pid; do
- rm -f "${T}/${pid_file}"
- done
-
- termination() {
- local die="$1" pid_file
- if [[ -n "${die}" ]]; then
- echo -e "\n\e[1;31mKilling of child processes...\e[0m\a" > /dev/tty
- fi
- for pid_file in svnserve.pid apache.pid memcached.pid; do
- if [[ -f "${T}/${pid_file}" ]]; then
- kill "$(<"${T}/${pid_file}")"
- fi
- done
- if [[ -n "${die}" ]]; then
- sleep 6
- die "Termination"
- fi
- }
-
- trap 'termination 1 &' SIGINT SIGTERM
-
- SVN_TEST_SVNSERVE_PORT="${SVN_TEST_SVNSERVE_PORT:-62209}"
- LC_ALL="C" subversion/svnserve/svnserve -dr "subversion/tests/cmdline" --listen-port "${SVN_TEST_SVNSERVE_PORT}" --log-file "${T}/svnserve.log" --pid-file "${T}/svnserve.pid"
- if use webdav-neon || use webdav-serf; then
- SVN_TEST_APACHE_PORT="${SVN_TEST_APACHE_PORT:-62208}"
- create_apache_tests_configuration
- "${APACHE_BIN}" -f "${T}/apache/apache.conf"
- fi
- if [[ -n "${SVN_TEST_FSFS_MEMCACHED}" ]]; then
- SVN_TEST_FSFS_MEMCACHED_PORT="${SVN_TEST_FSFS_MEMCACHED_PORT:-62210}"
- sed -e "/\[memcached-servers\]/akey = 127.0.0.1:${SVN_TEST_FSFS_MEMCACHED_PORT}" -i subversion/tests/tests.conf
- memcached -dp "${SVN_TEST_FSFS_MEMCACHED_PORT}" -P "${T}/memcached.pid"
- fi
- if [[ -n "${SVN_TEST_FSFS_SHARDING}" ]]; then
- options+=" FSFS_SHARDING=${SVN_TEST_FSFS_SHARDING}"
- fi
- if [[ -n "${SVN_TEST_FSFS_PACKING}" ]]; then
- options+=" FSFS_PACKING=1"
- fi
-# if [[ -n "${SVN_TEST_SASL}" ]]; then
-# options+=" ENABLE_SASL=1"
-# fi
-
- sleep 6
-
- for ra_type in ${ra_types}; do
- for fs_type in ${fs_types}; do
- [[ "${ra_type}" == "local" && "${fs_type}" == "bdb" ]] && continue
- einfo
- einfo "\e[1;34mTesting of ra_${ra_type} + $(echo ${fs_type} | tr '[:lower:]' '[:upper:]')\e[0m"
- einfo
- set_tests_variables ${ra_type}
- time emake check FS_TYPE="${fs_type}" BASE_URL="${base_url}" HTTP_LIBRARY="${http_library}" CLEANUP="1" ${options} || failed_tests="1"
- mv tests.log "${T}/tests-ra_${ra_type}-${fs_type}.log"
- done
- done
- unset base_url http_library
- termination
- trap - SIGINT SIGTERM
-
- if [[ -n "${SVN_TEST_BINDINGS}" ]]; then
- local swig_lingua swig_linguas
- local -A linguas
-
- if use ctypes-python; then
- einfo
- einfo "\e[1;34mTesting of Subversion Ctypes Python bindings\e[0m"
- einfo
- ctypes_python_bindings_testing() {
- rm -f subversion/bindings/ctypes-python
- ln -s ctypes-python-${PYTHON_ABI} subversion/bindings/ctypes-python
- time emake check-ctypes-python || failed_tests="1"
- }
- python_execute_function \
- --action-message 'Testing of Subversion Ctypes Python bindings with $(python_get_implementation) $(python_get_version)' \
- --failure-message 'Testing of Subversion Ctypes Python bindings failed with $(python_get_implementation) $(python_get_version)' \
- ctypes_python_bindings_testing
- fi
-
- if use python; then
- einfo
- einfo "\e[1;34mTesting of Subversion SWIG Python bindings\e[0m"
- einfo
- swig_python_bindings_testing() {
- rm -f subversion/bindings/swig/python
- ln -s python-${PYTHON_ABI} subversion/bindings/swig/python
- time emake PYTHON_VERSION="$(python_get_version)" check-swig-py || failed_tests="1"
- }
- python_execute_function \
- --action-message 'Testing of Subversion SWIG Python bindings with $(python_get_implementation) $(python_get_version)' \
- --failure-message 'Testing of Subversion SWIG Python bindings failed with $(python_get_implementation) $(python_get_version)' \
- swig_python_bindings_testing
- fi
-
- use perl && swig_linguas+=" pl"
- use ruby && swig_linguas+=" rb"
-
- linguas[pl]="Perl"
- linguas[rb]="Ruby"
-
- for swig_lingua in ${swig_linguas}; do
- einfo
- einfo "\e[1;34mTesting of Subversion SWIG ${linguas[${swig_lingua}]} bindings\e[0m"
- einfo
- time emake check-swig-${swig_lingua} || failed_tests="1"
- done
-
- if use java; then
- einfo
- einfo "\e[1;34mTesting of Subversion JavaHL library\e[0m"
- einfo
- time emake check-javahl || failed_tests="1"
- fi
- fi
-
- if [[ -n "${failed_tests}" ]]; then
- ewarn
- ewarn "\e[1;31mTests failed\e[0m"
- ewarn
- fi
-}
-
-src_install() {
- einfo
- einfo "Installation of core of Subversion"
- einfo
- emake -j1 DESTDIR="${D}" local-install || die "Installation of core of Subversion failed"
-
- if use ctypes-python; then
- einfo
- einfo "Installation of Subversion Ctypes Python bindings"
- einfo
- ctypes_python_bindings_installation() {
- rm -f subversion/bindings/ctypes-python
- ln -s ctypes-python-${PYTHON_ABI} subversion/bindings/ctypes-python
- emake DESTDIR="${D}" install-ctypes-python
- }
- python_execute_function \
- --action-message 'Installation of Subversion Ctypes Python bindings with $(python_get_implementation) $(python_get_version)' \
- --failure-message 'Installation of Subversion Ctypes Python bindings failed with $(python_get_implementation) $(python_get_version)' \
- ctypes_python_bindings_installation
- fi
-
- if use python; then
- einfo
- einfo "Installation of Subversion SWIG Python bindings"
- einfo
- swig_python_bindings_installation() {
- rm -f subversion/bindings/swig/python
- ln -s python-${PYTHON_ABI} subversion/bindings/swig/python
- emake -j1 \
- DESTDIR="${D}" \
- PYTHON_VERSION="$(python_get_version)" \
- swig_pydir="$(python_get_sitedir)/libsvn" \
- swig_pydir_extra="$(python_get_sitedir)/svn" \
- install-swig-py
- }
- python_execute_function \
- --action-message 'Installation of Subversion SWIG Python bindings with $(python_get_implementation) $(python_get_version)' \
- --failure-message 'Installation of Subversion SWIG Python bindings failed with $(python_get_implementation) $(python_get_version)' \
- swig_python_bindings_installation
- fi
-
- if use ctypes-python || use python; then
- python_clean_installation_image -q
- fi
-
- if use perl; then
- einfo
- einfo "Installation of Subversion SWIG Perl bindings"
- einfo
- emake -j1 DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl || die "Installation of Subversion SWIG Perl bindings failed"
- fixlocalpod
- find "${D}" "(" -name .packlist -o -name "*.bs" ")" -print0 | xargs -0 rm -fr
- fi
-
- if use ruby; then
- einfo
- einfo "Installation of Subversion SWIG Ruby bindings"
- einfo
- emake -j1 DESTDIR="${D}" install-swig-rb || die "Installation of Subversion SWIG Ruby bindings failed"
- fi
-
- if use java; then
- einfo
- einfo "Installation of Subversion JavaHL library"
- einfo
- 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 -fr "${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
- dobin contrib/client-side/svn_load_dirs/svn_load_dirs.pl
- 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
- newconfd "${FILESDIR}"/svnserve.confd svnserve
- insinto /etc/xinetd.d
- newins "${FILESDIR}"/svnserve.xinetd svnserve
-
- # Install documentation.
- dodoc CHANGES COMMITTERS README
- 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}/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
- einfo
- einfo "Installation of contrib and tools"
- einfo
-
- cat << EOF > 80subversion-extras
-PATH="/usr/$(get_libdir)/subversion/bin"
-ROOTPATH="/usr/$(get_libdir)/subversion/bin"
-EOF
- doenvd 80subversion-extras
-
- emake DESTDIR="${D}" contribdir="/usr/$(get_libdir)/subversion/bin" install-contrib || die "Installation of contrib failed"
- emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" 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
- rm -fr contrib/server-side/svnstsw
- rm -fr tools/client-side/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
- einfo
- einfo "Installation of Subversion HTML documentation"
- einfo
- dohtml -r doc/doxygen/html/* || die "Installation of Subversion HTML documentation failed"
-
- insinto /usr/share/doc/${PF}
- doins -r notes
- ecompressdir /usr/share/doc/${PF}/notes
-
-# if use ruby; then
-# emake DESTDIR="${D}" install-swig-rb-doc
-# fi
-
- 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
-
- if use ctypes-python; then
- python_mod_optimize csvn
- fi
-
- if use python; then
- python_mod_optimize libsvn svn
- fi
-
- 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
-
- elog "Subversion contains support for the use of Memcached"
- elog "to cache data of FSFS repositories."
- elog "You should install \"net-misc/memcached\", start memcached"
- elog "and configure your FSFS repositories, if you want to use this feature."
- elog "See the documentation for details."
- 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
-
- if use ctypes-python; then
- python_mod_cleanup csvn
- fi
-
- if use python; then
- python_mod_cleanup libsvn svn
- fi
-}
-
-pkg_config() {
- 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
-}