Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
1ffd880319 | ||
|
30b78cbd38 | ||
|
67de2a23a6 | ||
|
9ed68e6f0b | ||
|
e4d05ada55 | ||
|
d70e5cbaae | ||
|
7ad4c57b3e | ||
|
186f09165d | ||
|
677efb833a | ||
|
b890c23a06 | ||
|
6582f04ca6 | ||
|
7070cb2024 | ||
|
6f0019a636 |
0
.cvsignore → .gitignore
vendored
0
.cvsignore → .gitignore
vendored
22
Makefile
22
Makefile
@ -1,22 +0,0 @@
|
||||
# Makefile for source rpm: subversion
|
||||
# $Id: Makefile,v 1.3 2004/09/30 10:49:48 jorton Exp $
|
||||
NAME := subversion
|
||||
SPECFILE = $(firstword $(wildcard *.spec))
|
||||
UPSTREAM_CHECKS := asc
|
||||
|
||||
define find-makefile-common
|
||||
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||
|
||||
ifeq ($(MAKEFILE_COMMON),)
|
||||
# attempt a checkout
|
||||
define checkout-makefile-common
|
||||
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||
endef
|
||||
|
||||
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||
endif
|
||||
|
||||
include $(MAKEFILE_COMMON)
|
236
psvn.el
236
psvn.el
@ -1,8 +1,8 @@
|
||||
;;; psvn.el --- Subversion interface for emacs
|
||||
;; Copyright (C) 2002-2008 by Stefan Reichoer
|
||||
;; Copyright (C) 2002-2009 by Stefan Reichoer
|
||||
|
||||
;; Author: Stefan Reichoer <stefan@xsteve.at>
|
||||
;; $Id: psvn.el 33557 2008-10-08 20:01:12Z xsteve $
|
||||
;; $Id: psvn.el 40299 2009-10-29 19:38:54Z xsteve $
|
||||
|
||||
;; psvn.el is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
@ -22,7 +22,7 @@
|
||||
;;; Commentary
|
||||
|
||||
;; psvn.el is tested with GNU Emacs 21.3 on windows, debian linux,
|
||||
;; freebsd5, red hat el4, ubuntu edgy with svn 1.4.0
|
||||
;; freebsd5, red hat el4, ubuntu intrepid with svn 1.5.1
|
||||
|
||||
;; psvn.el needs at least svn 1.1.0
|
||||
;; if you upgrade to a higher version, you need to do a fresh checkout
|
||||
@ -73,6 +73,7 @@
|
||||
;; e - svn-status-toggle-edit-cmd-flag
|
||||
;; ? - svn-status-toggle-hide-unknown
|
||||
;; _ - svn-status-toggle-hide-unmodified
|
||||
;; z - svn-status-toggle-hide-externals
|
||||
;; m - svn-status-set-user-mark
|
||||
;; u - svn-status-unset-user-mark
|
||||
;; $ - svn-status-toggle-elide
|
||||
@ -103,6 +104,7 @@
|
||||
;; P i - svn-status-property-ignore-file
|
||||
;; P I - svn-status-property-ignore-file-extension
|
||||
;; P C-i - svn-status-property-edit-svn-ignore
|
||||
;; P X e - svn-status-property-edit-svn-externals
|
||||
;; P k - svn-status-property-set-keyword-list
|
||||
;; P K i - svn-status-property-set-keyword-id
|
||||
;; P K d - svn-status-property-set-keyword-date
|
||||
@ -245,6 +247,7 @@
|
||||
(eval-when-compile (require 'dired))
|
||||
(eval-when-compile (require 'ediff-util))
|
||||
(eval-when-compile (require 'ediff-wind))
|
||||
(eval-when-compile (require 'vc-hooks))
|
||||
(eval-when-compile (require 'elp))
|
||||
(eval-when-compile (require 'pp))
|
||||
|
||||
@ -253,7 +256,7 @@
|
||||
(require 'diff-mode))
|
||||
(error nil))
|
||||
|
||||
(defconst svn-psvn-revision "$Id: psvn.el 33557 2008-10-08 20:01:12Z xsteve $"
|
||||
(defconst svn-psvn-revision "$Id: psvn.el 40299 2009-10-29 19:38:54Z xsteve $"
|
||||
"The revision number of psvn.")
|
||||
|
||||
;;; user setable variables
|
||||
@ -302,6 +305,11 @@ This can be toggled with \\[svn-status-toggle-hide-unknown]."
|
||||
This can be toggled with \\[svn-status-toggle-hide-unmodified]."
|
||||
:type 'boolean
|
||||
:group 'psvn)
|
||||
(defcustom svn-status-hide-externals nil
|
||||
"*Hide external files in `svn-status-buffer-name' buffer.
|
||||
This can be toggled with \\[svn-status-toggle-hide-externals]."
|
||||
:type 'boolean
|
||||
:group 'psvn)
|
||||
(defcustom svn-status-sort-status-buffer t
|
||||
"*Whether to sort the `svn-status-buffer-name' buffer.
|
||||
|
||||
@ -414,6 +422,12 @@ Any non-nil value overrides that variable, with the same syntax."
|
||||
;; (put 'svn-browse-url-function 'risky-local-variable t)
|
||||
;; already implied by "-function" suffix
|
||||
|
||||
(defcustom svn-log-edit-header
|
||||
"## Lines starting with '## ' will be removed from the log message.\n"
|
||||
"*Header content of the *svn-log* buffer"
|
||||
:type 'string
|
||||
:group 'psvn)
|
||||
|
||||
(defcustom svn-status-window-alist
|
||||
'((diff "*svn-diff*") (log "*svn-log*") (info t) (blame t) (proplist t) (update t))
|
||||
"An alist to specify which windows should be used for svn command outputs.
|
||||
@ -562,7 +576,7 @@ These link handlers must be registered via `svn-log-register-link-handler'")
|
||||
;; (put 'svn-log-edit-done-hook 'risky-local-variable t)
|
||||
;; already implied by "-hook" suffix
|
||||
|
||||
(defvar svn-post-process-svn-output-hook nil "Hook that can be used to preprocess the output from svn.
|
||||
(defvar svn-post-process-svn-output-hook 'svn-fixup-tramp-output-maybe "Hook that can be used to preprocess the output from svn.
|
||||
The function `svn-status-remove-control-M' can be useful for that hook")
|
||||
|
||||
(when (eq system-type 'windows-nt)
|
||||
@ -936,7 +950,7 @@ If POS is nil, use current buffer location."
|
||||
(defun svn-substring-no-properties (string &optional from to)
|
||||
(if (fboundp 'substring-no-properties)
|
||||
(substring-no-properties string from to)
|
||||
(substring string from to)))
|
||||
(substring string (or from 0) to)))
|
||||
|
||||
; xemacs
|
||||
;; Evaluate the defsubst at compile time, so that the byte compiler
|
||||
@ -948,6 +962,14 @@ If POS is nil, use current buffer location."
|
||||
(defsubst svn-match-string-no-properties (match)
|
||||
(buffer-substring-no-properties (match-beginning match) (match-end match)))))
|
||||
|
||||
; XEmacs doesn't have a function `help-buffer'
|
||||
(eval-and-compile
|
||||
(if (fboundp 'help-buffer)
|
||||
(defalias 'svn-help-buffer 'help-buffer) ; FSF Emacs
|
||||
(defun svn-help-buffer ()
|
||||
(buffer-name (get-buffer-create (help-buffer-name "SVN")))))) ; XEmacs
|
||||
|
||||
|
||||
;; XEmacs 21.4.17 does not have an `alist' widget. Define a replacement.
|
||||
;; To find out whether the `alist' widget exists, we cannot check just
|
||||
;; (get 'alist 'widget-type), because GNU Emacs 21.4 defines it in
|
||||
@ -1010,7 +1032,8 @@ To bind this to a different key, customize `svn-status-prefix-key'.")
|
||||
(define-key svn-global-keymap (kbd "f r") 'svn-file-revert)
|
||||
(define-key svn-global-keymap (kbd "c") 'svn-status-commit)
|
||||
(define-key svn-global-keymap (kbd "S") 'svn-status-switch-to-status-buffer)
|
||||
(define-key svn-global-keymap (kbd "o") 'svn-status-pop-to-status-buffer))
|
||||
(define-key svn-global-keymap (kbd "o") 'svn-status-pop-to-status-buffer)
|
||||
(define-key svn-global-keymap (kbd "C-k") 'svn-process-kill))
|
||||
|
||||
(defvar svn-status-diff-mode-map ()
|
||||
"Keymap used in `svn-status-diff-mode' for additional commands that are not defined in diff-mode.")
|
||||
@ -1161,13 +1184,14 @@ If there is no .svn directory, examine if there is CVS and run
|
||||
(if arg "-u" "")))))
|
||||
(save-excursion
|
||||
(set-buffer status-buf)
|
||||
(buffer-disable-undo)
|
||||
(setq default-directory dir)
|
||||
(set-buffer proc-buf)
|
||||
(setq default-directory dir
|
||||
svn-status-remote (when arg t))
|
||||
(set-buffer cur-buf)
|
||||
(if want-edit
|
||||
(let (svn-status-edit-svn-command t)
|
||||
(let ((svn-status-edit-svn-command t))
|
||||
(svn-run t t 'status "status" svn-status-default-status-arguments status-option))
|
||||
(svn-run t t 'status "status" svn-status-default-status-arguments status-option)))))
|
||||
|
||||
@ -1196,6 +1220,19 @@ If there is no .svn directory, examine if there is CVS and run
|
||||
(defun svn-had-user-input-since-asynch-run ()
|
||||
(not (equal (recent-keys) svn-pre-run-asynch-recent-keys)))
|
||||
|
||||
(defun svn-expand-filename-for-remote-access (file-name)
|
||||
"Convert the given local part of a filename to a full file name to allow accessing remote files"
|
||||
;; when running svn on a remote host: expand local file names to get full names to access the file on the remote host via emacs
|
||||
(if (and (fboundp 'file-remote-p) (file-remote-p default-directory))
|
||||
(concat (file-remote-p default-directory) file-name)
|
||||
file-name))
|
||||
|
||||
(defun svn-local-filename-for-remote-access (file-name)
|
||||
"Convert a full file name to a local file name that can be used for a local svn invocation."
|
||||
(if (and (fboundp 'file-remote-p) (file-remote-p file-name))
|
||||
(tramp-file-name-localname (tramp-dissect-file-name file-name))
|
||||
file-name))
|
||||
|
||||
(defun svn-process-environment ()
|
||||
"Construct the environment for the svn process.
|
||||
It is a combination of `svn-status-svn-environment-var-list' and
|
||||
@ -1272,7 +1309,7 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
||||
(setq svn-status-last-commit-author nil)
|
||||
(setq svn-status-mode-line-process-status (format " running %s" cmdtype))
|
||||
(svn-status-update-mode-line)
|
||||
(sit-for 0.1)
|
||||
(save-excursion (sit-for 0.1))
|
||||
(ring-insert svn-last-cmd-ring (list (current-time-string) arglist default-directory))
|
||||
(if run-asynchron
|
||||
(progn
|
||||
@ -1320,8 +1357,8 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
||||
(replace-match "/")))))
|
||||
|
||||
(defun svn-process-sentinel (process event)
|
||||
"Called after a svn process has finished."
|
||||
;;(princ (format "Process: %s had the event `%s'" process event)))
|
||||
;;(save-excursion
|
||||
(let ((act-buf (current-buffer)))
|
||||
(when svn-pre-run-mode-line-process
|
||||
(with-current-buffer svn-status-pre-run-svn-buffer
|
||||
@ -1452,17 +1489,30 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
||||
(while (accept-process-output process 0 100))
|
||||
;; find last error message and show it.
|
||||
(goto-char (point-max))
|
||||
(if (re-search-backward "^svn: \\(.*\\)" nil t)
|
||||
(svn-process-handle-error (match-string 1))
|
||||
(if (re-search-backward "^svn: " nil t)
|
||||
(let ((error-strings)
|
||||
(beginning-of-buffer))
|
||||
(while (and (looking-at "^svn: ") (not beginning-of-buffer))
|
||||
(setq error-strings (append error-strings (list (buffer-substring-no-properties (+ 5 (svn-point-at-bol)) (svn-point-at-eol)))))
|
||||
(setq beginning-of-buffer (bobp))
|
||||
(forward-line -1))
|
||||
(svn-process-handle-error (mapconcat 'identity (reverse error-strings) "\n")))
|
||||
(message "svn failed: %s" event)))
|
||||
(t
|
||||
(message "svn process had unknown event: %s" event))
|
||||
(svn-status-show-process-output nil t))))
|
||||
|
||||
(defvar svn-process-handle-error-msg nil)
|
||||
(defvar svn-handle-error-function nil
|
||||
"A function that will be called with an error string received from the svn client.
|
||||
When this function resets `svn-process-handle-error-msg' to nil, the default error handling
|
||||
(just show the error message) is not executed.")
|
||||
(defun svn-process-handle-error (error-msg)
|
||||
(let ((svn-process-handle-error-msg error-msg))
|
||||
(electric-helpify 'svn-process-help-with-error-msg)))
|
||||
(when (functionp svn-handle-error-function)
|
||||
(funcall svn-handle-error-function error-msg))
|
||||
(when svn-process-handle-error-msg
|
||||
(electric-helpify 'svn-process-help-with-error-msg))))
|
||||
|
||||
(defun svn-process-help-with-error-msg ()
|
||||
(interactive)
|
||||
@ -1471,9 +1521,9 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
||||
"Please unmark all files and position point at the directory you would like to remove.\nThen run commit again."))))))
|
||||
(if help-msg
|
||||
(save-excursion
|
||||
(with-output-to-temp-buffer (help-buffer)
|
||||
(with-output-to-temp-buffer (svn-help-buffer)
|
||||
(princ (format "svn failed: %s\n\n%s" svn-process-handle-error-msg help-msg))))
|
||||
(message "svn failed: %s" svn-process-handle-error-msg))))
|
||||
(message "svn failed:\n%s" svn-process-handle-error-msg))))
|
||||
|
||||
|
||||
(defun svn-process-filter (process str)
|
||||
@ -1485,17 +1535,17 @@ The hook svn-pre-run-hook allows to monitor/modify the ARGLIST."
|
||||
(insert str)
|
||||
(save-excursion
|
||||
(goto-char (svn-point-at-bol))
|
||||
(when (looking-at "Password for '\\(.+\\)': ")
|
||||
(when (looking-at "Password for '\\(.*\\)': ")
|
||||
;(svn-status-show-process-buffer)
|
||||
(let ((passwd (read-passwd
|
||||
(format "Enter svn password for %s: " (match-string 1)))))
|
||||
(svn-process-send-string-and-newline passwd t)))
|
||||
(when (looking-at "Username: ")
|
||||
(let ((user-name (read-string "Username for svn operation: ")))
|
||||
(let ((user-name (with-local-quit (read-string "Username for svn operation: "))))
|
||||
(svn-process-send-string-and-newline user-name)))
|
||||
(when (looking-at "(R)eject, accept (t)emporarily or accept (p)ermanently")
|
||||
(svn-status-show-process-buffer)
|
||||
(let ((answer (read-string "(R)eject, accept (t)emporarily or accept (p)ermanently? ")))
|
||||
(let ((answer (with-local-quit (read-string "(R)eject, accept (t)emporarily or accept (p)ermanently? "))))
|
||||
(svn-process-send-string (substring answer 0 1)))))))
|
||||
|
||||
(defun svn-revert-some-buffers (&optional tree)
|
||||
@ -1696,7 +1746,7 @@ The results are used to build the `svn-status-info' variable."
|
||||
svn-property-mark (elt svn-marks 1) ; 2nd column - M,C (properties)
|
||||
svn-wc-locked-mark (elt svn-marks 2) ; 3rd column - L or blank
|
||||
svn-with-history-mark (elt svn-marks 3) ; 4th column - + or blank
|
||||
svn-switched-mark (elt svn-marks 4) ; 5th column - S or blank
|
||||
svn-switched-mark (elt svn-marks 4) ; 5th column - S,X or blank
|
||||
svn-repo-locked-mark (elt svn-marks 5)) ; 6th column - K,O,T,B or blank
|
||||
(when svn-status-remote
|
||||
(setq svn-update-mark (elt svn-marks 7))) ; 8th column - * or blank
|
||||
@ -1783,7 +1833,7 @@ The results are used to build the `svn-status-info' variable."
|
||||
(setq svn-status-info (sort svn-status-info 'svn-status-sort-predicate))))))
|
||||
|
||||
;;(string-lessp "." "%") => nil
|
||||
;(svn-status-sort-predicate '(t t t ".") '(t t t "%")) => t
|
||||
;;(svn-status-sort-predicate '(t t t ".") '(t t t "%")) => t
|
||||
(defun svn-status-sort-predicate (a b)
|
||||
"Return t if A should appear before B in the `svn-status-buffer-name' buffer.
|
||||
A and B must be line-info's."
|
||||
@ -1809,6 +1859,21 @@ A and B must be line-info's."
|
||||
(while (re-search-forward "\r$" (point-max) t)
|
||||
(replace-match "" nil nil))))))
|
||||
|
||||
(defun svn-fixup-tramp-exit ()
|
||||
"Helper function to handle tramp connections stopping with an exit output."
|
||||
(goto-char (point-max))
|
||||
(when (eq (svn-point-at-bol) (svn-point-at-eol))
|
||||
(forward-line -1))
|
||||
(beginning-of-line)
|
||||
(when (looking-at "exit")
|
||||
(delete-region (point) (svn-point-at-eol))))
|
||||
|
||||
(defun svn-fixup-tramp-output-maybe ()
|
||||
"Fixup leftover output when running via tramp"
|
||||
(when (fboundp 'file-remote-p)
|
||||
(when (file-remote-p default-directory)
|
||||
(svn-fixup-tramp-exit))))
|
||||
|
||||
(condition-case nil
|
||||
;;(easy-menu-add-item nil '("tools") ["SVN Status" svn-status t] "PCL-CVS")
|
||||
(easy-menu-add-item nil '("tools") ["SVN Status" svn-status t])
|
||||
@ -1888,6 +1953,7 @@ A and B must be line-info's."
|
||||
(define-key svn-status-mode-map (kbd "V") 'svn-status-svnversion)
|
||||
(define-key svn-status-mode-map (kbd "?") 'svn-status-toggle-hide-unknown)
|
||||
(define-key svn-status-mode-map (kbd "_") 'svn-status-toggle-hide-unmodified)
|
||||
(define-key svn-status-mode-map (kbd "z") 'svn-status-toggle-hide-externals)
|
||||
(define-key svn-status-mode-map (kbd "a") 'svn-status-add-file)
|
||||
(define-key svn-status-mode-map (kbd "A") 'svn-status-add-file-recursively)
|
||||
(define-key svn-status-mode-map (kbd "+") 'svn-status-make-directory)
|
||||
@ -1954,6 +2020,7 @@ A and B must be line-info's."
|
||||
;; reducing clutter in `where-is'.
|
||||
(define-key svn-status-mode-property-map [(control ?i)] 'svn-status-property-edit-svn-ignore)
|
||||
(define-key svn-status-mode-property-map (kbd "TAB") 'svn-status-property-edit-svn-ignore)
|
||||
(define-key svn-status-mode-property-map (kbd "Xe") 'svn-status-property-edit-svn-externals)
|
||||
(define-key svn-status-mode-property-map (kbd "k") 'svn-status-property-set-keyword-list)
|
||||
(define-key svn-status-mode-property-map (kbd "Ki") 'svn-status-property-set-keyword-id)
|
||||
(define-key svn-status-mode-property-map (kbd "Kd") 'svn-status-property-set-keyword-date)
|
||||
@ -2045,6 +2112,8 @@ A and B must be line-info's."
|
||||
["svn:ignore File Extension..." svn-status-property-ignore-file-extension t]
|
||||
["Edit svn:ignore Property" svn-status-property-edit-svn-ignore t]
|
||||
"---"
|
||||
["Edit svn:externals Property" svn-status-property-edit-svn-externals t]
|
||||
"---"
|
||||
["Edit svn:keywords List" svn-status-property-set-keyword-list t]
|
||||
["Add/Remove Id to/from svn:keywords" svn-status-property-set-keyword-id t]
|
||||
["Add/Remove Date to/from svn:keywords" svn-status-property-set-keyword-date t]
|
||||
@ -2100,6 +2169,8 @@ A and B must be line-info's."
|
||||
:style toggle :selected svn-status-hide-unknown]
|
||||
["Hide Unmodified" svn-status-toggle-hide-unmodified
|
||||
:style toggle :selected svn-status-hide-unmodified]
|
||||
["Hide Externals" svn-status-toggle-hide-externals
|
||||
:style toggle :selected svn-status-hide-externals]
|
||||
["Show Client versions" svn-status-version t]
|
||||
["Prepare bug report" svn-prepare-bug-report t]
|
||||
))
|
||||
@ -2145,7 +2216,7 @@ PREFIX is passed to `popup-menu'."
|
||||
(progn
|
||||
(setq o (make-overlay begin end))
|
||||
(overlay-put o 'face face)
|
||||
(sit-for 0)
|
||||
(save-excursion (sit-for 0))
|
||||
(popup-menu menu prefix))
|
||||
(delete-overlay o))))
|
||||
|
||||
@ -2332,7 +2403,7 @@ history, when it will be \"+\"."
|
||||
(defun svn-status-line-info->switched (line-info)
|
||||
"Return whether LINE-INFO is switched relative to its parent.
|
||||
This is column five of the output from `svn status'.
|
||||
The result will be nil or \"S\"."
|
||||
The result will be \"S\", \"X\" or nil."
|
||||
(nth 10 line-info))
|
||||
(defun svn-status-line-info->repo-locked (line-info)
|
||||
"Return whether LINE-INFO contains some locking information.
|
||||
@ -2349,6 +2420,7 @@ This list holds currently only one element:
|
||||
"Return whether the line is visible or not"
|
||||
(or (not (or (svn-status-line-info->hide-because-unknown line-info)
|
||||
(svn-status-line-info->hide-because-unmodified line-info)
|
||||
(svn-status-line-info->hide-because-externals line-info)
|
||||
(svn-status-line-info->hide-because-custom-hide-function line-info)
|
||||
(svn-status-line-info->hide-because-user-elide line-info)))
|
||||
(svn-status-line-info->update-available line-info) ;; show the line, if an update is available
|
||||
@ -2359,6 +2431,10 @@ This list holds currently only one element:
|
||||
(and svn-status-hide-unknown
|
||||
(eq (svn-status-line-info->filemark line-info) ??)))
|
||||
|
||||
(defun svn-status-line-info->hide-because-externals (line-info)
|
||||
(and svn-status-hide-externals
|
||||
(eq (svn-status-line-info->filemark line-info) ?X)))
|
||||
|
||||
(defun svn-status-line-info->hide-because-custom-hide-function (line-info)
|
||||
(and svn-status-custom-hide-function
|
||||
(apply svn-status-custom-hide-function (list line-info))))
|
||||
@ -2491,6 +2567,7 @@ When called with a prefix argument, toggle the hiding of all subdirectories for
|
||||
(len-test)
|
||||
(elided-list)
|
||||
(elide-mark))
|
||||
(when svn-status-elided-list
|
||||
(while st-info
|
||||
(setq fname (svn-status-line-info->filename (car st-info)))
|
||||
(setq len-fname (length fname))
|
||||
@ -2510,7 +2587,7 @@ When called with a prefix argument, toggle the hiding of all subdirectories for
|
||||
(setq elided-list (cdr elided-list)))
|
||||
;;(message "fname: %s elide-mark: %S" fname elide-mark)
|
||||
(setcar (nthcdr 1 (svn-status-line-info->ui-status (car st-info))) elide-mark)
|
||||
(setq st-info (cdr st-info))))
|
||||
(setq st-info (cdr st-info)))))
|
||||
(svn-status-update-buffer))
|
||||
|
||||
(defun svn-status-update-with-command-list (cmd-list)
|
||||
@ -2794,7 +2871,8 @@ Symbolic links to directories count as directories (see `file-directory-p')."
|
||||
(filename ;; <indentation>file or /path/to/file
|
||||
(concat
|
||||
(if (or svn-status-display-full-path
|
||||
svn-status-hide-unmodified)
|
||||
svn-status-hide-unmodified
|
||||
svn-status-hide-externals)
|
||||
(svn-add-face
|
||||
(let ((dir-name (file-name-as-directory
|
||||
(svn-status-line-info->directory-containing-line-info
|
||||
@ -2859,7 +2937,7 @@ Symbolic links to directories count as directories (see `file-directory-p')."
|
||||
((eq flag ?B) " [ REPO-LOCK-BROKEN ]")
|
||||
(t " [ REPO-LOCK-UNKNOWN ]")))
|
||||
'svn-status-locked-face)
|
||||
(svn-status-maybe-add-string (svn-status-line-info->switched line-info)
|
||||
(svn-status-maybe-add-string (eq (svn-status-line-info->switched line-info) ?S)
|
||||
" (switched)" 'svn-status-switched-face)
|
||||
elide-hint)
|
||||
'svn-status-marked-face)
|
||||
@ -2891,6 +2969,7 @@ Additionally clear the psvn-extra-info field in all line-info lists."
|
||||
(overlay)
|
||||
(unmodified-count 0) ;how many unmodified files are hidden
|
||||
(unknown-count 0) ;how many unknown files are hidden
|
||||
(externals-count 0) ;how many svn:externals files are hidden
|
||||
(custom-hide-count 0) ;how many files are hidden via svn-status-custom-hide-function
|
||||
(marked-count 0) ;how many files are elided
|
||||
(user-elide-count 0)
|
||||
@ -2920,12 +2999,15 @@ Additionally clear the psvn-extra-info field in all line-info lists."
|
||||
(setq unknown-count (1+ unknown-count)))
|
||||
((svn-status-line-info->hide-because-unmodified (car st-info))
|
||||
(setq unmodified-count (1+ unmodified-count)))
|
||||
((svn-status-line-info->hide-because-externals (car st-info))
|
||||
(setq externals-count (1+ externals-count)))
|
||||
(t
|
||||
(svn-insert-line-in-status-buffer (car st-info))))
|
||||
(when (svn-status-line-info->has-usermark (car st-info))
|
||||
(setq marked-count (+ marked-count 1)))
|
||||
(setq overlay (make-overlay start-pos (point)))
|
||||
(overlay-put overlay 'svn-info (car st-info))
|
||||
(overlay-put overlay 'evaporate t)
|
||||
(setq st-info (cdr st-info)))
|
||||
;; Insert status information at the buffer beginning
|
||||
(goto-char (point-min))
|
||||
@ -2949,6 +3031,10 @@ Additionally clear the psvn-extra-info field in all line-info lists."
|
||||
(insert
|
||||
(format "%d Unmodified file(s) are hidden - press `_' to toggle hiding\n"
|
||||
unmodified-count)))
|
||||
(when svn-status-hide-externals
|
||||
(insert
|
||||
(format "%d Externals file(s) are hidden - press `z' to toggle hiding\n"
|
||||
externals-count)))
|
||||
(when (> custom-hide-count 0)
|
||||
(insert
|
||||
(format "%d file(s) are hidden via the svn-status-custom-hide-function\n"
|
||||
@ -3188,7 +3274,7 @@ When called from a file buffer provide a structure that contains the filename."
|
||||
(cond ((eq major-mode 'svn-status-mode)
|
||||
(svn-status-get-line-information))
|
||||
(t
|
||||
;; a fake strukture that contains the buffername for the current buffer
|
||||
;; a fake structure that contains the buffername for the current buffer
|
||||
(svn-status-make-line-info (buffer-file-name (current-buffer))))))
|
||||
|
||||
(defun svn-status-select-line ()
|
||||
@ -3197,12 +3283,12 @@ When called from a file buffer provide a structure that contains the filename."
|
||||
(interactive)
|
||||
(let ((info (svn-status-get-line-information)))
|
||||
(if info
|
||||
(message "%S hide-because-unknown: %S hide-because-unmodified: %S" info
|
||||
(message "%S hide-because-unknown: %S hide-because-unmodified: %S hide-because-externals: %S" info
|
||||
(svn-status-line-info->hide-because-unknown info)
|
||||
(svn-status-line-info->hide-because-unmodified info))
|
||||
(svn-status-line-info->hide-because-unmodified info)
|
||||
(svn-status-line-info->hide-because-externals info))
|
||||
(message "No file on this line"))))
|
||||
|
||||
(defun svn-status-ensure-cursor-on-file ()
|
||||
(defun svn-status-ensure-cursor-on-file ()
|
||||
"Raise an error unless point is on a valid file."
|
||||
(unless (svn-status-get-line-information)
|
||||
(error "No file on the current line")))
|
||||
@ -3390,13 +3476,15 @@ This means we mark
|
||||
* all modified files
|
||||
* all files scheduled for addition
|
||||
* all files scheduled for deletion
|
||||
* all files with modified properties
|
||||
|
||||
The last two categories include all copied and moved files.
|
||||
If called with a prefix ARG, unmark all such files."
|
||||
(interactive "P")
|
||||
(svn-status-mark-added arg)
|
||||
(svn-status-mark-modified arg)
|
||||
(svn-status-mark-deleted arg))
|
||||
(svn-status-mark-deleted arg)
|
||||
(svn-status-mark-modified-properties arg))
|
||||
|
||||
(defun svn-status-unset-all-usermarks ()
|
||||
(interactive)
|
||||
@ -3455,6 +3543,11 @@ If the function is called with a prefix arg, unmark all these files."
|
||||
(setq svn-status-hide-unmodified (not svn-status-hide-unmodified))
|
||||
(svn-status-update-buffer))
|
||||
|
||||
(defun svn-status-toggle-hide-externals ()
|
||||
(interactive)
|
||||
(setq svn-status-hide-externals (not svn-status-hide-externals))
|
||||
(svn-status-update-buffer))
|
||||
|
||||
(defun svn-status-get-file-name-buffer-position (name)
|
||||
"Find the buffer position for a file.
|
||||
If the file is not found, return nil."
|
||||
@ -3551,6 +3644,10 @@ if no files have been marked."
|
||||
|
||||
|
||||
(defun svn-status-create-arg-file (file-name prefix file-info-list postfix)
|
||||
"Create an svn client argument file"
|
||||
;; create the arg file on the remote host when we will run svn on this host!
|
||||
(setq file-name (svn-expand-filename-for-remote-access file-name))
|
||||
;; (message "svn-status-create-arg-file %s: %s" default-directory file-name)
|
||||
(with-temp-file file-name
|
||||
(insert prefix)
|
||||
(let ((st-info file-info-list))
|
||||
@ -4099,22 +4196,29 @@ When called with a prefix argument, ask the user for the revision to update to.
|
||||
When called with a negative prefix argument, only update the selected files."
|
||||
(interactive "P")
|
||||
(let* ((selective-update (or (and (numberp arg) (< arg 0)) (eq arg '-)))
|
||||
(update-extra-arg)
|
||||
(rev (when arg (svn-status-read-revision-string
|
||||
(if selective-update
|
||||
(format "Selected entries: Run svn update -r ")
|
||||
(format "Directory: %s: Run svn update -r " default-directory))
|
||||
(if selective-update "HEAD" nil)))))
|
||||
(unless svn-client-version
|
||||
(svn-status-version))
|
||||
(if (and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 5))
|
||||
(setq update-extra-arg (list "--non-interactive")) ;; svn version < 1.5
|
||||
(setq update-extra-arg (list "--accept" "postpone"))) ;; svn version >= 1.5
|
||||
(if selective-update
|
||||
(progn
|
||||
(message "Running svn-update for %s" (svn-status-marked-file-names))
|
||||
(svn-run t t 'update "update"
|
||||
(when rev (list "-r" rev))
|
||||
(list "--non-interactive")
|
||||
update-extra-arg
|
||||
(svn-status-marked-file-names)))
|
||||
(message "Running svn-update for %s" default-directory)
|
||||
(svn-run t t 'update "update"
|
||||
(when rev (list "-r" rev))
|
||||
(list "--non-interactive") (expand-file-name default-directory)))))
|
||||
update-extra-arg
|
||||
(svn-local-filename-for-remote-access (expand-file-name default-directory))))))
|
||||
|
||||
(defun svn-status-commit ()
|
||||
"Commit selected files.
|
||||
@ -4332,7 +4436,11 @@ static char * data[] = {
|
||||
|
||||
(defsubst svn-status-in-vc-mode? ()
|
||||
"Is vc-svn active?"
|
||||
(and vc-mode (string-match "^ SVN" (svn-substring-no-properties vc-mode))))
|
||||
(cond
|
||||
((fboundp 'vc-backend)
|
||||
(eq 'SVN (vc-backend buffer-file-name)))
|
||||
((and (boundp 'vc-mode) vc-mode)
|
||||
(string-match "^ SVN" (svn-substring-no-properties vc-mode)))))
|
||||
|
||||
(when svn-status-fancy-file-state-in-modeline
|
||||
(defadvice vc-find-file-hook (after svn-status-vc-svn-find-file-hook activate)
|
||||
@ -4831,6 +4939,17 @@ When called with a prefix argument, it is possible to enter a new property."
|
||||
(message "Edit svn:ignore on %s" dir)))
|
||||
|
||||
|
||||
(defun svn-status-property-edit-svn-externals ()
|
||||
(interactive)
|
||||
(let* ((line-info (svn-status-get-line-information))
|
||||
(dir (if (svn-status-line-info->directory-p line-info)
|
||||
(svn-status-line-info->filename line-info)
|
||||
(svn-status-get-directory line-info))))
|
||||
(svn-status-property-edit
|
||||
(list (svn-status-find-info-for-file-name dir)) "svn:externals")
|
||||
(message "Edit svn:externals on %s" dir)))
|
||||
|
||||
|
||||
(defun svn-status-property-set-keyword-list ()
|
||||
"Edit the svn:keywords property on the marked files."
|
||||
(interactive)
|
||||
@ -4943,9 +5062,9 @@ Commands:
|
||||
(set-buffer (get-buffer "*svn-property-edit*"))
|
||||
(when (fboundp 'set-buffer-file-coding-system)
|
||||
(set-buffer-file-coding-system svn-status-svn-file-coding-system nil))
|
||||
(setq svn-status-temp-file-to-remove
|
||||
(concat svn-status-temp-dir "svn-prop-edit.txt" svn-temp-suffix))
|
||||
(write-region (point-min) (point-max) svn-status-temp-file-to-remove nil 1))
|
||||
(let ((svn-propedit-file-name (concat svn-status-temp-dir "svn-prop-edit.txt" svn-temp-suffix)))
|
||||
(setq svn-status-temp-file-to-remove (svn-expand-filename-for-remote-access svn-propedit-file-name))
|
||||
(write-region (point-min) (point-max) svn-status-temp-file-to-remove nil 1)
|
||||
(when svn-status-propedit-file-list ; there are files to change properties
|
||||
(svn-status-create-arg-file svn-status-temp-arg-file ""
|
||||
svn-status-propedit-file-list "")
|
||||
@ -4955,10 +5074,10 @@ Commands:
|
||||
"--targets" svn-status-temp-arg-file
|
||||
(when (eq svn-status-svn-file-coding-system 'utf-8)
|
||||
'("--encoding" "UTF-8"))
|
||||
"-F" (concat svn-status-temp-dir "svn-prop-edit.txt" svn-temp-suffix))
|
||||
"-F" svn-propedit-file-name)
|
||||
(unless async (svn-status-remove-temp-file-maybe)))
|
||||
(when svn-status-pre-propedit-window-configuration
|
||||
(set-window-configuration svn-status-pre-propedit-window-configuration)))
|
||||
(set-window-configuration svn-status-pre-propedit-window-configuration)))))
|
||||
|
||||
(defun svn-prop-edit-svn-diff (arg)
|
||||
(interactive "P")
|
||||
@ -5050,6 +5169,7 @@ Commands:
|
||||
"Finish editing the log message and run svn commit."
|
||||
(interactive)
|
||||
(svn-status-save-some-buffers)
|
||||
(let ((svn-logedit-file-name))
|
||||
(save-excursion
|
||||
(set-buffer (get-buffer svn-log-edit-buffer-name))
|
||||
(when svn-log-edit-insert-files-to-commit
|
||||
@ -5057,8 +5177,8 @@ Commands:
|
||||
(when (fboundp 'set-buffer-file-coding-system)
|
||||
(set-buffer-file-coding-system svn-status-svn-file-coding-system nil))
|
||||
(when (or svn-log-edit-update-log-entry svn-status-files-to-commit)
|
||||
(setq svn-status-temp-file-to-remove
|
||||
(concat svn-status-temp-dir "svn-log-edit.txt" svn-temp-suffix))
|
||||
(setq svn-log-edit-file-name (concat svn-status-temp-dir "svn-log-edit.txt" svn-temp-suffix))
|
||||
(setq svn-status-temp-file-to-remove (svn-expand-filename-for-remote-access svn-log-edit-file-name))
|
||||
(write-region (point-min) (point-max) svn-status-temp-file-to-remove nil 1))
|
||||
(bury-buffer))
|
||||
(if svn-log-edit-update-log-entry
|
||||
@ -5066,7 +5186,7 @@ Commands:
|
||||
;; svn propset svn:log --revprop -r11672 -F file
|
||||
(svn-run nil t 'propset "propset" "svn:log" "--revprop"
|
||||
(concat "-r" svn-log-edit-update-log-entry)
|
||||
"-F" svn-status-temp-file-to-remove)
|
||||
"-F" svn-log-edit-file-name)
|
||||
(save-excursion
|
||||
(set-buffer svn-process-buffer-name)
|
||||
(message "%s" (buffer-substring (point-min) (- (point-max) 1)))))
|
||||
@ -5074,17 +5194,16 @@ Commands:
|
||||
(setq svn-status-operated-on-dot
|
||||
(and (= 1 (length svn-status-files-to-commit))
|
||||
(string= "." (svn-status-line-info->filename (car svn-status-files-to-commit)))))
|
||||
(svn-status-create-arg-file svn-status-temp-arg-file ""
|
||||
svn-status-files-to-commit "")
|
||||
(svn-status-create-arg-file svn-status-temp-arg-file "" svn-status-files-to-commit "")
|
||||
(svn-run t t 'commit "commit"
|
||||
(unless svn-status-recursive-commit "--non-recursive")
|
||||
"--targets" svn-status-temp-arg-file
|
||||
"-F" svn-status-temp-file-to-remove
|
||||
"-F" svn-log-edit-file-name
|
||||
(when (eq svn-status-svn-file-coding-system 'utf-8)
|
||||
'("--encoding" "UTF-8"))
|
||||
svn-status-default-commit-arguments))
|
||||
(set-window-configuration svn-status-pre-commit-window-configuration)
|
||||
(message "svn-log editing done")))
|
||||
(message "svn-log editing done"))))
|
||||
|
||||
(defun svn-log-edit-svn-diff (arg)
|
||||
"Show the diff we are about to commit.
|
||||
@ -5136,7 +5255,7 @@ If ARG then show diff between some other version of the selected files."
|
||||
(let ((buf-size (- (point-max) (point-min))))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(insert "## Lines starting with '## ' will be removed from the log message.\n")
|
||||
(insert svn-log-edit-header)
|
||||
(insert "## File(s) to commit"
|
||||
(if svn-status-recursive-commit " recursively" "") ":\n")
|
||||
(let ((file-list svn-status-files-to-commit))
|
||||
@ -5359,7 +5478,8 @@ Commands:
|
||||
"Mark the revision at point to be used as diff against revision."
|
||||
(interactive)
|
||||
(let ((start-pos)
|
||||
(point-at-partner-rev))
|
||||
(point-at-partner-rev)
|
||||
(overlay))
|
||||
(dolist (ov (overlays-in (point-min) (point-max)))
|
||||
(when (overlay-get ov 'svn-log-partner-revision)
|
||||
(setq point-at-partner-rev (and (>= (point) (overlay-start ov))
|
||||
@ -5803,23 +5923,33 @@ The optional prefix argument ARG determines which switches are passed to `svn lo
|
||||
"Show statistics for the current blame buffer."
|
||||
(interactive)
|
||||
(let ((author-map (make-hash-table :test 'equal))
|
||||
(revision-map (make-hash-table :test 'equal))
|
||||
(rev-info)
|
||||
(author-list)
|
||||
(author))
|
||||
(author)
|
||||
(revision-list)
|
||||
(revision))
|
||||
(save-excursion
|
||||
(goto-char (point-min))
|
||||
(while (not (eobp))
|
||||
(dolist (ov (overlays-in (svn-point-at-bol) (line-end-position)))
|
||||
(when (overlay-get ov 'svn-blame-line-info)
|
||||
(setq author (cadr (overlay-get ov 'rev-info)))
|
||||
(svn-puthash author
|
||||
(+ (gethash author author-map 0) 1)
|
||||
author-map)))
|
||||
(setq rev-info (overlay-get ov 'rev-info))
|
||||
(setq author (cadr rev-info))
|
||||
(setq revision (string-to-number (car rev-info)))
|
||||
(svn-puthash author (+ (gethash author author-map 0) 1) author-map)
|
||||
(svn-puthash revision (+ (gethash revision revision-map 0) 1) revision-map)))
|
||||
(forward-line))
|
||||
(maphash '(lambda (key value) (add-to-list 'author-list (list key value))) author-map)
|
||||
(maphash '(lambda (key value) (add-to-list 'revision-list (list key value))) revision-map)
|
||||
(pop-to-buffer (get-buffer-create (replace-regexp-in-string "svn-blame:" "svn-blame-statistics:" (buffer-name))))
|
||||
(erase-buffer)
|
||||
(insert (propertize "Authors:\n" 'face 'font-lock-function-name-face))
|
||||
(dolist (line (sort author-list '(lambda (v1 v2) (> (cadr v1) (cadr v2)))))
|
||||
(insert (format "%s: %s line%s\n" (car line) (cadr line) (if (eq (cadr line) 1) "" "s"))))
|
||||
(insert (propertize "\nRevisions:\n" 'face 'font-lock-function-name-face))
|
||||
(dolist (line (sort revision-list '(lambda (v1 v2) (< (car v1) (car v2)))))
|
||||
(insert (format "%s: %s line%s\n" (car line) (cadr line) (if (eq (cadr line) 1) "" "s"))))
|
||||
(goto-char (point-min)))))
|
||||
|
||||
(defun svn-blame-highlight-author-field (ov)
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
32014fe70397357fa1e0ef8f937a0232 subversion-1.6.1.tar.gz
|
||||
75419159b50661092c4137449940b5cc subversion-1.6.11.tar.bz2
|
||||
|
@ -1,31 +0,0 @@
|
||||
|
||||
Libraries should be linked with -rpath $libdir but programs should not.
|
||||
Doing so for the latter means that a redundant RPATH entry of $libdir
|
||||
will end up in the binaries.
|
||||
|
||||
The redundant RPATH can also cause obscure build failures by causing
|
||||
in-build binaries to pick up libraries from the system environment,
|
||||
which libtool will otherwise avoid.
|
||||
|
||||
--- subversion-1.6.0/build/generator/gen_base.py.rpath
|
||||
+++ subversion-1.6.0/build/generator/gen_base.py
|
||||
@@ -455,6 +455,9 @@ class TargetLib(TargetLinked):
|
||||
self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
|
||||
self.msvc_export = options.get('msvc-export', '').split()
|
||||
|
||||
+ ### hmm. this is Makefile-specific
|
||||
+ self.link_cmd = '$(LINK_LIB)'
|
||||
+
|
||||
class TargetApacheMod(TargetLib):
|
||||
|
||||
def __init__(self, name, options, gen_obj):
|
||||
--- subversion-1.6.0/Makefile.in.rpath
|
||||
+++ subversion-1.6.0/Makefile.in
|
||||
@@ -184,6 +184,7 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF
|
||||
COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
|
||||
COMPILE_JAVAHL_JAVAH = $(JAVAH)
|
||||
|
||||
+LINK_LIB = $(LINK) -rpath $(libdir)
|
||||
LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
|
||||
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
|
||||
|
@ -1,28 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAknClnUACgkQCwOubk4kUXzzrwCeP6g1IJ5tC/dcTaSon+AFeH0V
|
||||
zNYAoKY0ZhzX0oLmSdNDeZb5IbE0/BMl
|
||||
=cV+A
|
||||
-----END PGP SIGNATURE-----
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (FreeBSD)
|
||||
|
||||
iEYEABECAAYFAknCqHAACgkQ/P1jBZgh97LYHQCdFFNSRiPWNFaHf00fzTUJRVHI
|
||||
ZdwAn0SIV4WEu2ek8PWYjY9Dfs1SOgEo
|
||||
=DXbN
|
||||
-----END PGP SIGNATURE-----
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAknCqzUACgkQokEGqRcG/W6M6wCcDH7uBuRCRRSp/MozjJJ+P1RZ
|
||||
l0sAn2pLD/nyYTKMofWAG1Ce5B6rAWMg
|
||||
=rhHR
|
||||
-----END PGP SIGNATURE-----
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAknDRyEACgkQvJ27E9sAokjuQACfSPnJdzy7XV9PuFTl7y9R4nCV
|
||||
fawAnjZdVWUBYwi6boWYlltmxHPDVk1O
|
||||
=LYDm
|
||||
-----END PGP SIGNATURE-----
|
54
subversion-1.6.1-rpath.patch
Normal file
54
subversion-1.6.1-rpath.patch
Normal file
@ -0,0 +1,54 @@
|
||||
|
||||
Libraries should be linked with -rpath $libdir but programs should not.
|
||||
Doing so for the latter means that a redundant RPATH entry of $libdir
|
||||
will end up in the binaries.
|
||||
|
||||
The redundant RPATH can also cause obscure build failures by causing
|
||||
in-build binaries to pick up libraries from the system environment,
|
||||
which libtool will otherwise avoid.
|
||||
|
||||
--- subversion-1.6.1/build.conf.rpath
|
||||
+++ subversion-1.6.1/build.conf
|
||||
@@ -472,7 +472,7 @@ type = swig_lib
|
||||
lang = python
|
||||
path = subversion/bindings/swig/python/libsvn_swig_py
|
||||
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr apriconv apr
|
||||
-link-cmd = $(LINK) $(SWIG_PY_LIBS)
|
||||
+link-cmd = $(LINK_LIB) $(SWIG_PY_LIBS)
|
||||
install = swig-py-lib
|
||||
# need special build rule to include -DSWIGPYTHON
|
||||
compile-cmd = $(COMPILE_SWIG_PY)
|
||||
@@ -495,7 +495,7 @@ type = swig_lib
|
||||
lang = ruby
|
||||
path = subversion/bindings/swig/ruby/libsvn_swig_ruby
|
||||
libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr
|
||||
-link-cmd = $(LINK) $(SWIG_RB_LIBS)
|
||||
+link-cmd = $(LINK_LIB) $(SWIG_RB_LIBS)
|
||||
install = swig-rb-lib
|
||||
# need special build rule to include
|
||||
compile-cmd = $(COMPILE_SWIG_RB)
|
||||
--- subversion-1.6.1/build/generator/gen_base.py.rpath
|
||||
+++ subversion-1.6.1/build/generator/gen_base.py
|
||||
@@ -455,6 +455,10 @@ class TargetLib(TargetLinked):
|
||||
self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
|
||||
self.msvc_export = options.get('msvc-export', '').split()
|
||||
|
||||
+ ### hmm. this is Makefile-specific
|
||||
+ if self.link_cmd == '$(LINK)':
|
||||
+ self.link_cmd = '$(LINK_LIB)'
|
||||
+
|
||||
class TargetApacheMod(TargetLib):
|
||||
|
||||
def __init__(self, name, options, gen_obj):
|
||||
--- subversion-1.6.1/Makefile.in.rpath
|
||||
+++ subversion-1.6.1/Makefile.in
|
||||
@@ -184,7 +184,8 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF
|
||||
COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS)
|
||||
COMPILE_JAVAHL_JAVAH = $(JAVAH)
|
||||
|
||||
-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
|
||||
+LINK_LIB = $(LINK) -rpath $(libdir)
|
||||
+LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
|
||||
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
|
||||
|
||||
# special link rule for mod_dav_svn
|
@ -1,28 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAknc50kACgkQCwOubk4kUXx2xACfUCx724/5r494oVGpnYpfg9nq
|
||||
Y/YAoIHPysjMeCwcWWiDs/S8VgTmgcxF
|
||||
=z1DJ
|
||||
-----END PGP SIGNATURE-----
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.11 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAkndpNYACgkQYM9qgQ/zOWNawQCeLMiNS/PHZ4MiS2wml5itHfTO
|
||||
MmkAoJ/3tWr/mFuX31ayPCsmRrGKMIv/
|
||||
=YCH0
|
||||
-----END PGP SIGNATURE-----
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAkndmZIACgkQ9o1G+2zNQDjclACcCaL6NxFd+QIJ7PwD8IRdc3Jy
|
||||
i4wAoJJ+M5COafJaw8xOhli8XVEJOr0I
|
||||
=4Vb5
|
||||
-----END PGP SIGNATURE-----
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.4.9 (FreeBSD)
|
||||
|
||||
iEYEABECAAYFAkneHZ4ACgkQ/P1jBZgh97LShQCfWUV36nwHJxGLf9xb9zBDpEAf
|
||||
Jc4Anjk7Xg4xQiPYiGPVkylKm3Rru2kk
|
||||
=4kOK
|
||||
-----END PGP SIGNATURE-----
|
273
subversion-1.6.5-newlines.patch
Normal file
273
subversion-1.6.5-newlines.patch
Normal file
@ -0,0 +1,273 @@
|
||||
diff -up svn2cl-0.11/svn2cl.xsl~ svn2cl-0.11/svn2cl.xsl
|
||||
--- svn2cl-0.11/svn2cl.xsl~ 2008-12-21 17:41:20.000000000 +0200
|
||||
+++ svn2cl-0.11/svn2cl.xsl 2009-11-02 22:29:34.000000000 +0200
|
||||
@@ -55,12 +55,6 @@
|
||||
|
||||
-->
|
||||
|
||||
-<!DOCTYPE xsl:stylesheet [
|
||||
- <!ENTITY tab "	">
|
||||
- <!ENTITY newl "&#xA;">
|
||||
- <!ENTITY space " ">
|
||||
-]>
|
||||
-
|
||||
<xsl:stylesheet
|
||||
version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
@@ -119,7 +113,7 @@
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- add newlines at the end of the changelog -->
|
||||
- <xsl:text>&newl;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<!-- format one entry from the log -->
|
||||
@@ -149,33 +143,33 @@
|
||||
<xsl:if test="($prevdate!=$date) or ($prevauthor!=$author)">
|
||||
<!-- add newline -->
|
||||
<xsl:if test="not(position()=1)">
|
||||
- <xsl:text>&newl;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
<!-- date -->
|
||||
<xsl:value-of select="$date" />
|
||||
<!-- two spaces -->
|
||||
- <xsl:text>&space;&space;</xsl:text>
|
||||
+ <xsl:text>  </xsl:text>
|
||||
<!-- author's name -->
|
||||
<xsl:apply-templates select="author" />
|
||||
<!-- two newlines -->
|
||||
- <xsl:text>&newl;</xsl:text>
|
||||
- <xsl:if test="$separate-daylogs!='yes'"><xsl:text>&newl;</xsl:text></xsl:if>
|
||||
+ <xsl:text> </xsl:text>
|
||||
+ <xsl:if test="$separate-daylogs!='yes'"><xsl:text> </xsl:text></xsl:if>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
<!-- write the log header -->
|
||||
<xsl:otherwise>
|
||||
<!-- add newline -->
|
||||
<xsl:if test="not(position()=1)">
|
||||
- <xsl:text>&newl;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
<!-- date -->
|
||||
<xsl:apply-templates select="date" />
|
||||
<!-- two spaces -->
|
||||
- <xsl:text>&space;&space;</xsl:text>
|
||||
+ <xsl:text>  </xsl:text>
|
||||
<!-- author's name -->
|
||||
<xsl:apply-templates select="author" />
|
||||
<!-- two newlines -->
|
||||
- <xsl:text>&newl;&newl;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<!-- get paths string -->
|
||||
@@ -187,7 +181,7 @@
|
||||
<xsl:if test="$include-rev='yes'">
|
||||
<xsl:text>[r</xsl:text>
|
||||
<xsl:value-of select="@revision" />
|
||||
- <xsl:text>]&space;</xsl:text>
|
||||
+ <xsl:text>] </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:variable>
|
||||
<!-- trim trailing newlines -->
|
||||
@@ -195,7 +189,7 @@
|
||||
<!-- add a line break before the log message -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$breakbeforemsg='yes'">
|
||||
- <xsl:text>&newl;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="number($breakbeforemsg)>0">
|
||||
<xsl:call-template name="newlines">
|
||||
@@ -208,14 +202,14 @@
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<!-- add newline here if separate-daylogs is in effect -->
|
||||
- <xsl:if test="$groupbyday='yes' and $separate-daylogs='yes'"><xsl:text>&newl;</xsl:text></xsl:if>
|
||||
+ <xsl:if test="$groupbyday='yes' and $separate-daylogs='yes'"><xsl:text> </xsl:text></xsl:if>
|
||||
<!-- first line is indented (other indents are done in wrap template) -->
|
||||
- <xsl:text>&tab;*&space;</xsl:text>
|
||||
+ <xsl:text>	* </xsl:text>
|
||||
<!-- set up the text to wrap -->
|
||||
<xsl:variable name="txt">
|
||||
<xsl:value-of select="$rev" />
|
||||
<xsl:if test="$paths!=''">
|
||||
- <xsl:value-of select="concat($paths,':&space;')" />
|
||||
+ <xsl:value-of select="concat($paths,': ')" />
|
||||
</xsl:if>
|
||||
<xsl:value-of select="$msg" />
|
||||
</xsl:variable>
|
||||
@@ -232,7 +226,7 @@
|
||||
<xsl:value-of select="substring($date,1,10)" />
|
||||
<!-- output time part -->
|
||||
<xsl:if test="$groupbyday!='yes'">
|
||||
- <xsl:text>&space;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
<xsl:value-of select="substring($date,12,5)" />
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
@@ -306,7 +300,7 @@
|
||||
<xsl:sort select="normalize-space(.)" data-type="text" />
|
||||
<!-- unless we are the first entry, add a comma -->
|
||||
<xsl:if test="not(position()=1)">
|
||||
- <xsl:text>,&space;</xsl:text>
|
||||
+ <xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
<!-- print the path name -->
|
||||
<xsl:call-template name="printpath">
|
||||
@@ -324,7 +318,7 @@
|
||||
<xsl:sort select="normalize-space(.)" data-type="text" />
|
||||
<!-- unless we are the first entry, add a comma -->
|
||||
<xsl:if test="not(position()=1)">
|
||||
- <xsl:text>,&space;</xsl:text>
|
||||
+ <xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
<!-- print the path name -->
|
||||
<xsl:value-of select="normalize-space(.)" />
|
||||
@@ -382,23 +376,23 @@
|
||||
<xsl:param name="txt" />
|
||||
<xsl:variable name="normtxt" select="normalize-space($txt)" />
|
||||
<xsl:choose>
|
||||
- <xsl:when test="contains($txt,'&newl;')">
|
||||
+ <xsl:when test="contains($txt,' ')">
|
||||
<!-- text contains newlines, do the first line -->
|
||||
<xsl:call-template name="wrap">
|
||||
- <xsl:with-param name="txt" select="substring-before($txt,'&newl;')" />
|
||||
+ <xsl:with-param name="txt" select="substring-before($txt,' ')" />
|
||||
</xsl:call-template>
|
||||
<!-- print tab -->
|
||||
- <xsl:text>&tab;&space;&space;</xsl:text>
|
||||
+ <xsl:text>	  </xsl:text>
|
||||
<!-- wrap the rest of the text -->
|
||||
<xsl:call-template name="wrap">
|
||||
- <xsl:with-param name="txt" select="substring-after($txt,'&newl;')" />
|
||||
+ <xsl:with-param name="txt" select="substring-after($txt,' ')" />
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="(string-length($normtxt) < (($linelen)-9)) or not(contains($normtxt,' '))">
|
||||
<!-- this is easy, nothing to do -->
|
||||
<xsl:value-of select="$normtxt" />
|
||||
<!-- add newline -->
|
||||
- <xsl:text>&newl;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- find the first line -->
|
||||
@@ -420,7 +414,7 @@
|
||||
<!-- print line -->
|
||||
<xsl:value-of select="$line" />
|
||||
<!-- print newline and tab -->
|
||||
- <xsl:text>&newl;&tab;&space;&space;</xsl:text>
|
||||
+ <xsl:text> 	  </xsl:text>
|
||||
<!-- wrap the rest of the text -->
|
||||
<xsl:call-template name="wrap">
|
||||
<xsl:with-param name="txt" select="normalize-space(substring($normtxt,string-length($line)+1))" />
|
||||
@@ -449,26 +443,26 @@
|
||||
<xsl:param name="txt" />
|
||||
<xsl:choose>
|
||||
<!-- find starting newlines -->
|
||||
- <xsl:when test="substring($txt,1,1) = '&newl;'">
|
||||
+ <xsl:when test="substring($txt,1,1) = ' '">
|
||||
<xsl:call-template name="trim-newln">
|
||||
<xsl:with-param name="txt" select="substring($txt,2)" />
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<!-- find trailing newlines -->
|
||||
- <xsl:when test="substring($txt,string-length($txt),1) = '&newl;'">
|
||||
+ <xsl:when test="substring($txt,string-length($txt),1) = ' '">
|
||||
<xsl:call-template name="trim-newln">
|
||||
<xsl:with-param name="txt" select="substring($txt,1,string-length($txt)-1)" />
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<!-- if the message has paragrapgs, find the first one -->
|
||||
- <xsl:when test="$reparagraph='yes' and contains($txt,'&newl;&newl;')">
|
||||
+ <xsl:when test="$reparagraph='yes' and contains($txt,' ')">
|
||||
<!-- remove newlines from first paragraph -->
|
||||
- <xsl:value-of select="normalize-space(substring-before($txt,'&newl;&newl;'))" />
|
||||
+ <xsl:value-of select="normalize-space(substring-before($txt,' '))" />
|
||||
<!-- paragraph separator -->
|
||||
- <xsl:text>&newl;&newl;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
<!-- do the rest of the text -->
|
||||
<xsl:call-template name="trim-newln">
|
||||
- <xsl:with-param name="txt" select="substring-after($txt,'&newl;&newl;')" />
|
||||
+ <xsl:with-param name="txt" select="substring-after($txt,' ')" />
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<!-- remove more single newlines -->
|
||||
@@ -485,7 +479,7 @@
|
||||
<!-- insert a number of newlines -->
|
||||
<xsl:template name="newlines">
|
||||
<xsl:param name="count" />
|
||||
- <xsl:text>&newl;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
<xsl:if test="$count>1">
|
||||
<xsl:call-template name="newlines">
|
||||
<xsl:with-param name="count" select="($count)-1" />
|
||||
diff -up svn2cl-0.11/svn2html.xsl~ svn2cl-0.11/svn2html.xsl
|
||||
--- svn2cl-0.11/svn2html.xsl~ 2008-12-21 17:41:20.000000000 +0200
|
||||
+++ svn2cl-0.11/svn2html.xsl 2009-11-02 22:30:11.000000000 +0200
|
||||
@@ -47,11 +47,6 @@
|
||||
|
||||
-->
|
||||
|
||||
-<!DOCTYPE xsl:stylesheet [
|
||||
- <!ENTITY newl "&#xA;">
|
||||
- <!ENTITY space " ">
|
||||
-]>
|
||||
-
|
||||
<xsl:stylesheet
|
||||
version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
@@ -134,7 +129,7 @@
|
||||
<li class="changelog_entry">
|
||||
<!-- date -->
|
||||
<span class="changelog_date"><xsl:value-of select="$date" /></span>
|
||||
- <xsl:text>&space;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
<!-- author's name -->
|
||||
<span class="changelog_author"><xsl:apply-templates select="author" /></span>
|
||||
</li>
|
||||
@@ -145,7 +140,7 @@
|
||||
<li class="changelog_entry">
|
||||
<!-- date -->
|
||||
<span class="changelog_date"><xsl:apply-templates select="date" /></span>
|
||||
- <xsl:text>&space;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
<!-- author's name -->
|
||||
<span class="changelog_author"><xsl:apply-templates select="author" /></span>
|
||||
</li>
|
||||
@@ -167,10 +162,10 @@
|
||||
<span class="changelog_revision">
|
||||
<a id="r{@revision}" href="{$revlink}">[r<xsl:value-of select="@revision" />]</a>
|
||||
</span>
|
||||
- <xsl:text>&space;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
<!-- get paths string -->
|
||||
<span class="changelog_files"><xsl:apply-templates select="paths" /></span>
|
||||
- <xsl:text>&space;</xsl:text>
|
||||
+ <xsl:text> </xsl:text>
|
||||
<!-- get message text -->
|
||||
<xsl:variable name="msg">
|
||||
<xsl:call-template name="trim-newln">
|
||||
@@ -189,14 +184,14 @@
|
||||
<xsl:template name="newlinestobr">
|
||||
<xsl:param name="txt" />
|
||||
<xsl:choose>
|
||||
- <xsl:when test="contains($txt,'&newl;')">
|
||||
+ <xsl:when test="contains($txt,' ')">
|
||||
<!-- text contains newlines, do the first line -->
|
||||
- <xsl:value-of select="substring-before($txt,'&newl;')" />
|
||||
+ <xsl:value-of select="substring-before($txt,' ')" />
|
||||
<!-- print new line -->
|
||||
<br />
|
||||
<!-- wrap the rest of the text -->
|
||||
<xsl:call-template name="newlinestobr">
|
||||
- <xsl:with-param name="txt" select="substring-after($txt,'&newl;')" />
|
||||
+ <xsl:with-param name="txt" select="substring-after($txt,' ')" />
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
25
subversion-1.6.6-kwallet.patch
Normal file
25
subversion-1.6.6-kwallet.patch
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
The first half of this is certainly upstream-worthy, but the second half is presumably
|
||||
some Fedora-specific KDE packaging thing. It's not obvious how to get
|
||||
kde4-config to report the directory which contains the .so files.
|
||||
|
||||
--- subversion-1.6.6/build/ac-macros/kwallet.m4.kwallet
|
||||
+++ subversion-1.6.6/build/ac-macros/kwallet.m4
|
||||
@@ -47,14 +47,14 @@ AC_DEFUN(SVN_LIB_KWALLET,
|
||||
fi
|
||||
done
|
||||
qt_include_dirs="`$PKG_CONFIG --cflags-only-I QtCore QtDBus QtGui`"
|
||||
- kde_dir="`$kde4_config --prefix`"
|
||||
- SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs -I$kde_dir/include"
|
||||
+ kde_include_dirs="-I`$kde4_config --path include`"
|
||||
+ SVN_KWALLET_INCLUDES="$DBUS_CPPFLAGS $qt_include_dirs $kde_include_dirs"
|
||||
qt_libs_other_options="`$PKG_CONFIG --libs-only-other QtCore QtDBus QtGui`"
|
||||
SVN_KWALLET_LIBS="$DBUS_LIBS -lQtCore -lQtDBus -lQtGui -lkdecore -lkdeui $qt_libs_other_options"
|
||||
CXXFLAGS="$CXXFLAGS $SVN_KWALLET_INCLUDES"
|
||||
LIBS="$LIBS $SVN_KWALLET_LIBS"
|
||||
qt_lib_dirs="`$PKG_CONFIG --libs-only-L QtCore QtDBus QtGui`"
|
||||
- LDFLAGS="$old_LDFLAGS $qt_lib_dirs -L$kde_dir/lib`$kde4_config --libsuffix`"
|
||||
+ LDFLAGS="$old_LDFLAGS $qt_lib_dirs -L$libdir/kde4/devel"
|
||||
AC_LANG(C++)
|
||||
AC_LINK_IFELSE([
|
||||
#include <kwallet.h>
|
192
subversion.spec
192
subversion.spec
@ -12,27 +12,33 @@
|
||||
|
||||
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
||||
|
||||
%global svn2cl_version 0.11
|
||||
|
||||
Summary: A Modern Concurrent Version Control System
|
||||
Name: subversion
|
||||
Version: 1.6.1
|
||||
Release: 3
|
||||
Version: 1.6.11
|
||||
Release: 1%{?dist}
|
||||
License: ASL 1.1
|
||||
Group: Development/Tools
|
||||
URL: http://subversion.tigris.org/
|
||||
Source0: http://subversion.tigris.org/tarballs/subversion-%{version}.tar.gz
|
||||
URL: http://subversion.apache.org/
|
||||
Source0: http://subversion.tigris.org/downloads/subversion-%{version}.tar.bz2
|
||||
Source1: subversion.conf
|
||||
Source3: filter-requires.sh
|
||||
Source4: http://www.xsteve.at/prg/emacs/psvn.el
|
||||
Source5: psvn-init.el
|
||||
# http://bugs.debian.org/546990
|
||||
Patch0: subversion-1.6.5-newlines.patch
|
||||
Patch2: subversion-1.6.0-deplibs.patch
|
||||
Patch3: subversion-1.6.0-rpath.patch
|
||||
Patch3: subversion-1.6.1-rpath.patch
|
||||
Patch6: subversion-1.6.0-pie.patch
|
||||
Patch7: subversion-1.1.3-java.patch
|
||||
Patch8: subversion-1.6.6-kwallet.patch
|
||||
BuildRequires: autoconf, libtool, python, python-devel, texinfo, which
|
||||
BuildRequires: db4-devel >= 4.1.25, swig >= 1.3.24, gettext
|
||||
BuildRequires: apr-devel >= 1.3.0, apr-util-devel >= 1.3.0
|
||||
BuildRequires: neon-devel >= 0:0.24.7-1, cyrus-sasl-devel
|
||||
BuildRequires: sqlite-devel >= 3.4.0
|
||||
BuildRequires: gnome-keyring-devel, dbus-devel, kdelibs-devel >= 4.0.0
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
Provides: svn = %{version}-%{release}
|
||||
Requires: apr >= 1.3.0
|
||||
@ -60,6 +66,24 @@ The subversion-devel package includes the static libraries and
|
||||
include files for developers interacting with the subversion
|
||||
package.
|
||||
|
||||
%package gnome
|
||||
Group: Development/Tools
|
||||
Summary: GNOME Keyring support for Subversion
|
||||
Requires: subversion = %{version}-%{release}
|
||||
|
||||
%description gnome
|
||||
The subversion-gnome package adds support for storing Subversion
|
||||
passwords in the GNOME Keyring.
|
||||
|
||||
%package kde
|
||||
Group: Development/Tools
|
||||
Summary: KDE Wallet support for Subversion
|
||||
Requires: subversion = %{version}-%{release}
|
||||
|
||||
%description kde
|
||||
The subversion-kde package adds support for storing Subversion
|
||||
passwords in the KDE Wallet.
|
||||
|
||||
%package -n mod_dav_svn
|
||||
Group: System Environment/Daemons
|
||||
Summary: Apache httpd module for Subversion server
|
||||
@ -103,8 +127,28 @@ Requires: ruby(abi) = 1.8
|
||||
%description ruby
|
||||
This package includes the Ruby bindings to the Subversion libraries.
|
||||
|
||||
%package svn2cl
|
||||
Group: Development/Tools
|
||||
Summary: Create a ChangeLog from a Subversion log
|
||||
License: BSD
|
||||
# -5: fake release for the Obsoletes to work
|
||||
Provides: svn2cl = %{svn2cl_version}-5
|
||||
Obsoletes: svn2cl < 0.11-4
|
||||
BuildArch: noarch
|
||||
Requires: libxslt
|
||||
Requires: subversion = %{version}
|
||||
|
||||
%description svn2cl
|
||||
svn2cl is a simple XSL transformation and shell script wrapper for
|
||||
generating a classic GNU-style ChangeLog from a subversion repository
|
||||
log. It is made from several changelog-like scripts using common XSLT
|
||||
constructs found in different places.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
cd contrib/client-side/svn2cl
|
||||
%patch0 -p1 -b .newlines
|
||||
cd ../../..
|
||||
%patch2 -p1 -b .deplibs
|
||||
%patch3 -p1 -b .rpath
|
||||
#patch6 -p1 -b .pie
|
||||
@ -114,6 +158,19 @@ This package includes the Ruby bindings to the Subversion libraries.
|
||||
%ifarch sparc64
|
||||
sed -i -e 's|-fpie|-fPIE|g' Makefile.in
|
||||
%endif
|
||||
%patch8 -p1 -b .kwallet
|
||||
|
||||
sed -i -e 's|^XSL="$dir/|XSL="%{_datadir}/svn2cl/|' \
|
||||
contrib/client-side/svn2cl/svn2cl.sh
|
||||
# Sanity check svn2cl_version
|
||||
v=$(contrib/client-side/svn2cl/svn2cl.sh -V | sed -n '1{s/.* //;p;}')
|
||||
if [ "$v" != "%{svn2cl_version}" ]; then
|
||||
echo -n "ERROR: svn2cl_version not up to date in specfile: "
|
||||
echo "'$v' <> '%{svn2cl_version}'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mv tools/client-side/bash_completion .
|
||||
|
||||
%build
|
||||
# Regenerate the buildsystem, so that:
|
||||
@ -129,13 +186,16 @@ export svn_cv_ruby_link="%{__cc} -shared"
|
||||
export svn_cv_ruby_sitedir_libsuffix=""
|
||||
export svn_cv_ruby_sitedir_archsuffix=""
|
||||
|
||||
export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS -fPIE"
|
||||
export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS"
|
||||
%configure --with-apr=%{_prefix} --with-apr-util=%{_prefix} \
|
||||
--with-swig --with-neon=%{_prefix} \
|
||||
--with-ruby-sitedir=%{ruby_sitearch} \
|
||||
--with-apxs=%{_sbindir}/apxs --disable-mod-activation \
|
||||
--disable-static --with-sasl=%{_prefix} \
|
||||
--disable-neon-version-check
|
||||
--disable-neon-version-check \
|
||||
--with-gnome-keyring \
|
||||
--with-kwallet \
|
||||
--with-berkeley-db || (cat config.log; exit 1)
|
||||
make %{?_smp_mflags} all
|
||||
make swig-py swig-py-lib %{swigdirs}
|
||||
make swig-pl swig-pl-lib swig-rb swig-rb-lib
|
||||
@ -165,6 +225,13 @@ install -m 644 $RPM_SOURCE_DIR/subversion.conf ${RPM_BUILD_ROOT}%{_sysconfdir}/h
|
||||
rm -rf ${RPM_BUILD_ROOT}%{_includedir}/subversion-*/*.txt \
|
||||
${RPM_BUILD_ROOT}%{python_sitearch}/*/*.{a,la}
|
||||
|
||||
# The SVN build system is broken w.r.t. DSO support; it treats
|
||||
# normal libraries as DSOs and puts them in $libdir, whereas they
|
||||
# should go in some subdir somewhere, and be linked using -module,
|
||||
# etc. So, forcibly nuke the .so's for libsvn_auth_{gnome,kde},
|
||||
# since nothing should ever link against them directly.
|
||||
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libsvn_auth_*.so
|
||||
|
||||
# remove stuff produced with Perl modules
|
||||
find $RPM_BUILD_ROOT -type f \
|
||||
-a \( -name .packlist -o \( -name '*.bs' -a -empty \) \) \
|
||||
@ -195,17 +262,33 @@ install -m 644 $RPM_SOURCE_DIR/psvn-init.el \
|
||||
# Rename authz_svn INSTALL doc for docdir
|
||||
ln -f subversion/mod_authz_svn/INSTALL mod_authz_svn-INSTALL
|
||||
|
||||
# Trim exported dependencies to SVN and APR libraries only:
|
||||
# Trim exported dependencies to APR libraries only:
|
||||
sed -i "/^dependency_libs/{
|
||||
s, -l[^ ']*, ,g;
|
||||
s,%{_libdir}/lib[^sa][^vp][^nr].*.la, ,g;
|
||||
s, -L[^ ']*, ,g;
|
||||
s,%{_libdir}/lib[^a][^p][^r][^ ']*.la, ,g;
|
||||
}" $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||
|
||||
# Install svn2cl
|
||||
pushd contrib/client-side/svn2cl
|
||||
install -Dpm 755 svn2cl.sh $RPM_BUILD_ROOT%{_bindir}/svn2cl
|
||||
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/svn2cl
|
||||
install -pm 644 *.xsl $RPM_BUILD_ROOT%{_datadir}/svn2cl
|
||||
install -Dpm 644 svn2cl.1 $RPM_BUILD_ROOT%{_mandir}/man1/svn2cl.1
|
||||
popd
|
||||
|
||||
# Install bash completion
|
||||
install -Dpm 644 bash_completion \
|
||||
$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/%{name}
|
||||
|
||||
%find_lang %{name}
|
||||
|
||||
%if %{make_check}
|
||||
%check
|
||||
export LANG=C LC_ALL=C
|
||||
export LD_LIBRARY_PATH=$RPM_BUILD_ROOT%{_libdir}
|
||||
export MALLOC_PERTURB_=171 MALLOC_CHECK_=3
|
||||
export LIBC_FATAL_STDERR_=1
|
||||
make check check-swig-pl check-swig-py CLEANUP=yes
|
||||
# check-swig-rb omitted: it runs svnserve
|
||||
%endif
|
||||
@ -239,17 +322,30 @@ rm -rf ${RPM_BUILD_ROOT}
|
||||
%doc contrib/client-side/svnmerge/*.{README,py}
|
||||
%doc contrib/client-side/wcgrep
|
||||
%{_bindir}/*
|
||||
%exclude %{_bindir}/svn2cl
|
||||
%{_libdir}/libsvn_*.so.*
|
||||
%{_mandir}/man*/*
|
||||
%exclude %{_mandir}/man1/svn2cl.1*
|
||||
%{python_sitearch}/svn
|
||||
%{python_sitearch}/libsvn
|
||||
%{_datadir}/emacs/site-lisp/*.el
|
||||
%{_datadir}/xemacs/site-packages/lisp/*.el
|
||||
%{_sysconfdir}/bash_completion.d
|
||||
%dir %{_sysconfdir}/subversion
|
||||
%exclude %{_libdir}/libsvn_swig_perl*
|
||||
%exclude %{_libdir}/libsvn_swig_ruby*
|
||||
%exclude %{_libdir}/libsvn_auth_kwallet*
|
||||
%exclude %{_libdir}/libsvn_auth_gnome*
|
||||
%exclude %{_mandir}/man*/*::*
|
||||
|
||||
%files gnome
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/libsvn_auth_gnome_keyring-*.so.*
|
||||
|
||||
%files kde
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/libsvn_auth_kwallet-*.so.*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%{_includedir}/subversion-1
|
||||
@ -285,7 +381,85 @@ rm -rf ${RPM_BUILD_ROOT}
|
||||
%{_javadir}/svn-javahl.jar
|
||||
%endif
|
||||
|
||||
%files svn2cl
|
||||
%defattr(-,root,root,-)
|
||||
%doc contrib/client-side/svn2cl/NEWS contrib/client-side/svn2cl/README
|
||||
%doc contrib/client-side/svn2cl/TODO contrib/client-side/svn2cl/authors.xml
|
||||
%doc contrib/client-side/svn2cl/svn2html.css
|
||||
%{_bindir}/svn2cl
|
||||
%{_datadir}/svn2cl/
|
||||
%{_mandir}/man1/svn2cl.1*
|
||||
|
||||
%changelog
|
||||
* Sat Apr 17 2010 Joe Orton <jorton@redhat.com> - 1.6.11-1
|
||||
- update to 1.6.11
|
||||
|
||||
* Sat Feb 13 2010 Joe Orton <jorton@redhat.com> - 1.6.9-2
|
||||
- fix detection of libkdecore
|
||||
|
||||
* Mon Feb 8 2010 Joe Orton <jorton@redhat.com> - 1.6.9-1
|
||||
- update to 1.6.9 (#561810)
|
||||
- fix comments in subversion.conf (#551484)
|
||||
- update to psvn.el r40299
|
||||
|
||||
* Mon Jan 25 2010 Ville Skyttä <ville.skytta@iki.fi> - 1.6.6-5
|
||||
- Include svn2cl and its man page only in the -svn2cl subpackage (#558598).
|
||||
- Do not include bash completion in docs, it's installed.
|
||||
|
||||
* Mon Dec 7 2009 Stepan Kasal <skasal@redhat.com> - 1.6.6-4
|
||||
- rebuild against perl 5.10.1
|
||||
|
||||
* Thu Nov 26 2009 Joe Orton <jorton@redhat.com> - 1.6.6-3
|
||||
- rebuild for new db4
|
||||
- trim libsvn_* from dependency_libs in *.la
|
||||
|
||||
* Wed Nov 25 2009 Kevin Kofler <Kevin@tigcc.ticalc.org> 1.6.6-2
|
||||
- rebuild for Qt 4.6.0 RC1 in F13 (was built against Beta 1 with unstable ABI)
|
||||
|
||||
* Sun Nov 8 2009 Joe Orton <jorton@redhat.com> - 1.6.6-1
|
||||
- update to 1.6.6
|
||||
|
||||
* Mon Nov 2 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.6.5-3
|
||||
- Apply svn2cl upstream patch to fix newline issues with libxml2 2.7.4+,
|
||||
see http://bugs.debian.org/546990 for details.
|
||||
|
||||
* Sat Sep 19 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.6.5-2
|
||||
- Ship svn2cl and bash completion (#496456).
|
||||
- Add %%defattr to -gnome and -kde.
|
||||
|
||||
* Sun Aug 23 2009 Joe Orton <jorton@redhat.com> 1.6.5-1
|
||||
- update to 1.6.5
|
||||
|
||||
* Tue Aug 18 2009 Joe Orton <jorton@redhat.com> 1.6.4-4
|
||||
- rebuild
|
||||
|
||||
* Tue Aug 11 2009 Ville Skyttä <ville.skytta@iki.fi> - 1.6.4-3
|
||||
- Use bzipped upstream tarball.
|
||||
|
||||
* Fri Aug 7 2009 Joe Orton <jorton@redhat.com> 1.6.4-2
|
||||
- update to 1.6.4
|
||||
|
||||
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.3-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||
|
||||
* Thu Jul 23 2009 Joe Orton <jorton@redhat.com> 1.6.3-2
|
||||
- remove -devel dependency on -gnome, -kde (#513313)
|
||||
|
||||
* Tue Jun 23 2009 Joe Orton <jorton@redhat.com> 1.6.3-1
|
||||
- update to 1.6.3
|
||||
|
||||
* Sun Jun 14 2009 Joe Orton <jorton@redhat.com> 1.6.2-3
|
||||
- add -gnome, -kde subpackages
|
||||
|
||||
* Mon Jun 1 2009 Joe Orton <jorton@redhat.com> 1.6.2-2
|
||||
- enable KWallet, gnome-keyring support
|
||||
|
||||
* Fri May 15 2009 Joe Orton <jorton@redhat.com> 1.6.2-1
|
||||
- update to 1.6.2
|
||||
|
||||
* Wed Apr 15 2009 Joe Orton <jorton@redhat.com> 1.6.1-4
|
||||
- really disable PIE
|
||||
|
||||
* Tue Apr 14 2009 Joe Orton <jorton@redhat.com> 1.6.1-3
|
||||
- update to 1.6.1; disable PIE patch for the time being
|
||||
|
||||
|
2776
upstream-key.gpg
2776
upstream-key.gpg
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user