Compare commits

..

7 Commits
rawhide ... f20

Author SHA1 Message Date
Joe Orton 7298c1b936 update to 1.8.11 (#1174521)
- require newer libserf (#1155670)
Resolves: rhbz#1155670
Resolves: rhbz#1174521
2014-12-16 13:19:06 +00:00
Joe Orton 5c5d45daa5 Merge branch 'f21' into f20 2014-08-20 08:58:43 +01:00
Joe Orton 9a4d3fc3fd Merge. 2014-05-28 17:35:10 +01:00
Joe Orton f35e3f08ff Merge branch 'master' into f20
Conflicts:
	subversion.spec
2014-02-28 19:27:22 +00:00
Joe Orton cc34ecfca0 disable override of sqlite minimum version 2013-12-02 10:20:08 +00:00
Joe Orton da8ac45851 Merge branch 'master' into f20 2013-12-02 09:56:31 +00:00
Joe Orton 177b3ae9ee use --enable-sqlite-compatibility-version 2013-11-06 11:29:40 +00:00
16 changed files with 1012 additions and 916 deletions

36
.gitignore vendored
View File

@ -1,3 +1,33 @@
/subversion-*.tar.bz2
/subversion-1\.[0-9]*\.[0-9]*/
/results_subversion/
subversion-1.6.12.tar.bz2
*.rpm
/subversion-1.6.13.tar.bz2.asc
/subversion-1.6.13.tar.bz2
/subversion-1.6.15.tar.bz2
/subversion-1.6.16.tar.bz2
/subversion-1.6.17.tar.bz2
/subversion-1.7.0.tar.bz2
/subversion-1.7.0
/clog
/subversion-1.7.1.tar.bz2
/subversion-1.7.2.tar.bz2
/subversion-1.7.3.tar.bz2
/subversion
/subversion-1.?.?
/*.asc
/subversion-1.?.??
/subversion-1.7.4.tar.bz2
/subversion-1.7.5.tar.bz2
/subversion-1.7.6.tar.bz2
/subversion-1.7.7.tar.bz2
/subversion-1.7.8.tar.bz2
/subversion-1.7.9.tar.bz2
/subversion-1.7.10.tar.bz2
/subversion-1.8.0.tar.bz2
/subversion-1.8.1.tar.bz2
/subversion-1.8.3.tar.bz2
/subversion-1.8.4.tar.bz2
/subversion-1.8.5.tar.bz2
/subversion-1.8.8.tar.bz2
/subversion-1.8.9.tar.bz2
/subversion-1.8.10.tar.bz2
/subversion-1.8.11.tar.bz2

View File

@ -1,27 +0,0 @@
#!/bin/sh
version=$1
echo "This update includes the latest stable release of _Apache Subversion_, version **${1}**".
echo
curl --silent -n "http://svn.apache.org/repos/asf/subversion/tags/$1/CHANGES" | \
sed -n "
/^#/d;
/^Version ${1/-rc*/}/,/^Version /{
/, from \/branches/d;
/repos\/asf\/subversion\/tags/d;
s,#\([0-9]*\),[SVN-\1](https://issues.apache.org/jira/browse/SVN-\1),;
s/(r[0-9, retal]+)\*//g;
s/^ *//;
s/ +/ /g;
s/^ *- \(.*\)$/#### \1/;
s/\(.*visible changes.*:\)$/### \1/;
/^ *$/d;
/Windows/d
/^Version /d
s,(r1.*),,g
s,\(@[0-9]*\),\\\1,g
p;
}
" -

189
psvn.el
View File

@ -1,5 +1,5 @@
;;; psvn.el --- Subversion interface for emacs
;; Copyright (C) 2002-2015 by Stefan Reichoer
;; Copyright (C) 2002-2012 by Stefan Reichoer
;; Author: Stefan Reichoer <stefan@xsteve.at>
;; Note: This version is currently not under svn control
@ -241,7 +241,7 @@
;;; Code:
(defconst svn-psvn-revision "2015-07-20, 21:42:00" "The revision date of psvn.")
(defconst svn-psvn-revision "2012-03-26, 21:23:49" "The revision date of psvn.")
(require 'easymenu)
@ -671,7 +671,7 @@ See psvn.el for an example function.")
(defvar svn-process-cmd nil)
(defvar svn-status-info nil)
(defvar svn-status-filename-to-buffer-position-cache (make-hash-table :test 'equal :weakness t))
(defvar svn-status-base-info nil "The parsed result from the svn info command as a plist.")
(defvar svn-status-base-info nil "The parsed result from the svn info command.")
(defvar svn-status-initial-window-configuration nil)
(defvar svn-status-default-column 23)
(defvar svn-status-default-revision-width 4)
@ -703,14 +703,13 @@ This is nil if the log entry is for a new commit.")
(defvar svn-pre-run-mode-line-process nil)
(defvar svn-arg-file-content nil)
(defvar svn-status-temp-dir
(file-name-as-directory
(expand-file-name
(or
(when (boundp 'temporary-file-directory) temporary-file-directory) ;emacs
;; XEmacs 21.4.17 can return "/tmp/kalle" from (temp-directory).
;; `file-name-as-directory' adds a slash so we can append a file name.
(when (fboundp 'temp-directory) (temp-directory))
"/tmp/"))) "The directory that is used to store temporary files for psvn.")
(expand-file-name
(or
(when (boundp 'temporary-file-directory) temporary-file-directory) ;emacs
;; XEmacs 21.4.17 can return "/tmp/kalle" from (temp-directory).
;; `file-name-as-directory' adds a slash so we can append a file name.
(when (fboundp 'temp-directory) (file-name-as-directory (temp-directory)))
"/tmp/")) "The directory that is used to store temporary files for psvn.")
;; Because `temporary-file-directory' is not a risky local variable in
;; GNU Emacs 22.0.51, we don't mark `svn-status-temp-dir' as such either.
(defvar svn-temp-suffix (make-temp-name "."))
@ -1119,18 +1118,12 @@ inside loops."
(defun svn-checkout (repos-url path)
"Run svn checkout REPOS-URL PATH."
(interactive (list (read-string "Checkout from repository Url: ")
(expand-file-name
(svn-read-directory-name "Checkout to directory: "))))
(svn-read-directory-name "Checkout to directory: ")))
(svn-run t t 'checkout "checkout" repos-url (expand-file-name path)))
;;;###autoload (defalias 'svn-examine 'svn-status)
(defalias 'svn-examine 'svn-status)
;;;###autoload
(defun svn-version-controlled-dir-p (dir)
"Return t if DIR is part of a Subversion workarea."
(= 0 (call-process svn-status-svn-executable nil nil nil "info" dir)))
;;;###autoload
(defun svn-status (dir &optional arg)
"Examine the status of Subversion working copy in directory DIR.
@ -1140,17 +1133,20 @@ For every other non nil ARG pass the -u argument to `svn status', which
asks svn to connect to the repository and check to see if there are updates
there.
If DIR is not an SVN working copy, examine if there is CVS and run
If there is no .svn directory, examine if there is CVS and run
`cvs-examine'. Otherwise ask if to run `dired'."
(interactive (list (expand-file-name
(svn-read-directory-name "SVN status directory: "
nil default-directory nil))
(interactive (list (svn-read-directory-name "SVN status directory: "
nil default-directory nil)
current-prefix-arg))
(let ((svn-dir (format "%s%s"
(file-name-as-directory dir)
(svn-wc-adm-dir-name)))
(cvs-dir (format "%sCVS" (file-name-as-directory dir))))
(cond
((svn-version-controlled-dir-p (expand-file-name dir))
((file-directory-p svn-dir)
(setq arg (svn-status-possibly-negate-meaning-of-arg arg 'svn-status))
(svn-status-1 dir arg))
((and (file-directory-p (concat (file-name-as-directory dir) "CVS"))
((and (file-directory-p cvs-dir)
(fboundp 'cvs-examine))
(cvs-examine dir nil))
(t
@ -1163,7 +1159,7 @@ If DIR is not an SVN working copy, examine if there is CVS and run
"Run dired instead? ")
dir
(svn-wc-adm-dir-name)))
(dired dir)))))
(dired dir))))))
(defvar svn-status-display-new-status-buffer nil)
(defun svn-status-1 (dir &optional arg)
@ -1199,6 +1195,7 @@ If DIR is not an SVN working copy, examine if there is CVS and run
(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))
(svn-run t t 'status "status" svn-status-default-status-arguments status-option))
@ -3092,27 +3089,32 @@ non-interactive use."
(defun svn-status-parse-info-result ()
"Parse the result from the svn info command.
Put the found values in `svn-status-base-info'."
(save-excursion
(setq svn-status-base-info ())
(set-buffer svn-process-buffer-name)
(goto-char (point-min))
(let ((case-fold-search t)
(key)
(val))
(loop while (looking-at "\\(.*?\\)\\s-*:\\s-*\\(.*\\)$")
do (setq key (intern (concat ":" (downcase (subst-char-in-string ?\ ?- (match-string 1))))))
(setq val (match-string 2))
(setq svn-status-base-info (plist-put svn-status-base-info
key val))
until (< 0 (forward-line))))))
(let ((url)
(repository-root)
(last-changed-author))
(save-excursion
(set-buffer svn-process-buffer-name)
(goto-char (point-min))
(let ((case-fold-search t))
(search-forward "url: ")
(setq url (buffer-substring-no-properties (point) (svn-point-at-eol)))
(when (search-forward "repository root: " nil t)
(setq repository-root (buffer-substring-no-properties (point) (svn-point-at-eol))))
(when (search-forward "last changed author: " nil t)
(setq last-changed-author (buffer-substring-no-properties (point) (svn-point-at-eol))))))
(setq svn-status-base-info `((url ,url) (repository-root ,repository-root) (last-changed-author ,last-changed-author)))))
(defun svn-status-base-info->url ()
"Extract the url part from `svn-status-base-info'."
(plist-get svn-status-base-info :url))
(if svn-status-base-info
(cadr (assoc 'url svn-status-base-info))
""))
(defun svn-status-base-info->repository-root ()
"Extract the repository-root part from `svn-status-base-info'."
(plist-get svn-status-base-info :repository-root))
(if svn-status-base-info
(cadr (assoc 'repository-root svn-status-base-info))
""))
(defun svn-status-checkout-prefix-path ()
"When only a part of the svn repository is checked out, return the file path for this checkout."
@ -4055,10 +4057,9 @@ user can enter a new file name, or an existing directory: this is used as the ar
(svn-status-line-info->full-path (car marked-files))))
;;TODO: (when file-exists-p but-no-dir-p dest (error "%s already exists" dest))
;;multiple files selected, so prompt for existing directory to mv them into.
(setq dest (expand-file-name
(svn-read-directory-name
(format "%s %d files to directory: " manyprompt num-of-files)
(svn-status-directory-containing-point t) nil t)))
(setq dest (svn-read-directory-name
(format "%s %d files to directory: " manyprompt num-of-files)
(svn-status-directory-containing-point t) nil t))
(unless (file-directory-p dest)
(error "%s is not a directory" dest)))
(when (string= dest "")
@ -5812,6 +5813,9 @@ Currently is the output from the svn update command known."
"Toggle svn blame minor mode.
With ARG, turn svn blame minor mode on if ARG is positive, off otherwise.
Note: This mode does not yet work on XEmacs...
It is probably because the revisions are in 'before-string properties of overlays
Key bindings:
\\{svn-blame-mode-map}"
(interactive "P")
@ -5841,12 +5845,12 @@ The current buffer must contain a valid output from svn blame"
;; (when (overlay-get ov 'svn-blame-line-info)
;; (delete-overlay ov)))
(while (and (not (eobp)) (< (point) limit))
(setq s (buffer-substring-no-properties (svn-point-at-bol) (+ (svn-point-at-bol) info-end-col)))
(delete-region (svn-point-at-bol) (+ (svn-point-at-bol) info-end-col))
(setq ov (make-overlay (point) (point)))
(overlay-put ov 'svn-blame-line-info t)
(setq s (buffer-substring-no-properties (svn-point-at-bol) (+ (svn-point-at-bol) info-end-col)))
(overlay-put ov 'before-string (propertize s 'face 'svn-status-blame-rev-number-face))
(overlay-put ov 'rev-info (delete "" (split-string s " ")))
(delete-region (svn-point-at-bol) (+ (svn-point-at-bol) info-end-col))
(forward-line)
(setq line (1+ line)))))
(let* ((buf-name (format "*svn-blame: %s <%s>*"
@ -6016,12 +6020,18 @@ You can send raw data to the process via \\[svn-process-send-string]."
(with-current-buffer (get-buffer-create svn-process-buffer-name)
(setq old-process-default-dir default-directory)
(setq default-directory directory)) ;; update the default-directory for the *svn-process* buffer
(svn-status-parse-info t)
(or (plist-get svn-status-base-info :repository-root)
(if (plist-get svn-status-base-info :repository-uuid)
(concat "Svn Repo UUID: " (plist-get svn-status-base-info :repository-uuid))
(svn-run nil t 'parse-info "info" ".")
(with-current-buffer svn-process-buffer-name
;; (message "svn-status-repo-for-path: %s: default-directory: %s directory: %s old-process-default-dir: %s" svn-process-buffer-name default-directory directory old-process-default-dir)
(setq default-directory old-process-default-dir)
(goto-char (point-min))
(let ((case-fold-search t))
(if (search-forward "repository root: " nil t)
(buffer-substring-no-properties (point) (svn-point-at-eol))
(when (search-forward "repository uuid: " nil t)
(message "psvn.el: Detected an old svn working copy in '%s'. Please check it out again to get a 'Repository Root' entry in the svn info output."
default-directory)))))
default-directory)
(concat "Svn Repo UUID: " (buffer-substring-no-properties (point) (svn-point-at-eol)))))))))
(defun svn-status-base-dir (&optional start-directory)
"Find the svn root directory for the current working copy.
@ -6033,60 +6043,29 @@ Return nil, if not in a svn working copy."
base-dir
;; (message "calculating base-dir for %s" start-dir)
(svn-compute-svn-client-version)
;; (message "repository-root: %s start-dir: %s" repository-root start-dir)
(cond
((and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 3))
(setq base-dir (svn-status-base-dir-for-ancient-svn-client start-dir))) ;; svn version < 1.3
((and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 7))
(setq base-dir (svn-status-base-dir-for-old-svn-client start-dir))) ;; svn version < 1.7
(t
(setq base-dir (svn-status-base-dir-1 start-dir))))
(when base-dir
(svn-puthash start-dir base-dir svn-status-base-dir-cache))
(svn-status-message 7 "svn-status-base-dir %s => %s" start-dir base-dir)
base-dir)))
(defun svn-status-base-dir-1 (&optional start-directory)
"Find the svn root directory for the current working copy.
Return nil, if not in a svn working copy.
This function is used for svn clients version 1.7 and up."
(let ((default-directory (if start-directory
(expand-file-name start-directory)
(symbol-value 'default-directory)))
parent
wc-root)
(when (svn-version-controlled-dir-p default-directory)
(svn-status-parse-info t)
(setq wc-root (file-name-as-directory (plist-get svn-status-base-info :working-copy-root-path)))
(when wc-root
;; traversing up the hierarchy shortens the path name. Stop if
;; it doesn't, e.g we reached / already.
(setq parent (expand-file-name (concat wc-root "..")))
(or (and (< (length parent) (length wc-root))
(svn-status-base-dir-1 (expand-file-name (concat wc-root ".."))))
wc-root)))))
(defun svn-status-base-dir-for-old-svn-client (&optional start-directory)
"Find the svn root directory for the current working copy.
Return nil, if not in a svn working copy.
This function is used for svn clients version 1.6 and below."
(let* ((base-dir (expand-file-name (or start-directory default-directory)))
(repository-root (svn-status-repo-for-path base-dir))
(dot-svn-dir (concat base-dir (svn-wc-adm-dir-name)))
(in-tree (and repository-root (file-exists-p dot-svn-dir)))
(dir-below (expand-file-name base-dir)))
(while (when (and dir-below (file-exists-p dot-svn-dir))
(setq base-dir (file-name-directory dot-svn-dir))
(string-match "\\(.+/\\).+/" dir-below)
(setq dir-below
(and (string-match "\\(.*/\\)[^/]+/" dir-below)
(match-string 1 dir-below)))
;; (message "base-dir: %s, dir-below: %s, dot-svn-dir: %s in-tree: %s" base-dir dir-below dot-svn-dir in-tree)
(when dir-below
(if (string= (svn-status-repo-for-path dir-below) repository-root)
(setq dot-svn-dir (concat dir-below (svn-wc-adm-dir-name)))
(setq dir-below nil)))))
(and in-tree base-dir)))
(let* ((base-dir start-dir)
(repository-root (svn-status-repo-for-path base-dir))
(dot-svn-dir (concat base-dir (svn-wc-adm-dir-name)))
(in-tree (and repository-root (file-exists-p dot-svn-dir)))
(dir-below (expand-file-name base-dir)))
;; (message "repository-root: %s start-dir: %s" repository-root start-dir)
(if (and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 3))
(setq base-dir (svn-status-base-dir-for-ancient-svn-client start-dir)) ;; svn version < 1.3
(while (when (and dir-below (file-exists-p dot-svn-dir))
(setq base-dir (file-name-directory dot-svn-dir))
(string-match "\\(.+/\\).+/" dir-below)
(setq dir-below
(and (string-match "\\(.*/\\)[^/]+/" dir-below)
(match-string 1 dir-below)))
;; (message "base-dir: %s, dir-below: %s, dot-svn-dir: %s in-tree: %s" base-dir dir-below dot-svn-dir in-tree)
(when dir-below
(if (string= (svn-status-repo-for-path dir-below) repository-root)
(setq dot-svn-dir (concat dir-below (svn-wc-adm-dir-name)))
(setq dir-below nil)))))
(setq base-dir (and in-tree base-dir)))
(svn-puthash start-dir base-dir svn-status-base-dir-cache)
(svn-status-message 7 "svn-status-base-dir %s => %s" start-dir base-dir)
base-dir))))
(defun svn-status-base-dir-for-ancient-svn-client (&optional start-directory)
"Find the svn root directory for the current working copy.

View File

@ -1,53 +0,0 @@
#!/bin/sh -e
if [ $# -lt 1 ]; then
echo "What?"
exit 1
fi
repo="https://svn.apache.org/repos/asf/subversion/trunk"
#repo="https://svn.apache.org/repos/asf/subversion/branches/1.11.x"
prefix=`rpmspec -q --queryformat='%{name}-%{version}\n' ./subversion.spec | sed 1q`
suffix="r$1${2:++}"
fn="${prefix}-${suffix}.patch"
vcurl="http://svn.apache.org/viewvc?view=revision&revision="
if test -f ${fn}; then
mv -v -f ${fn} ${fn}\~
echo "# $0 $*" > ${fn}
sed '1{/#.*pullrev/d;};/^--- /,$d' < ${fn}\~ >> ${fn}
else
echo "# $0 $*" > ${fn}
fi
new=0
for r in $*; do
if ! grep -q "${vcurl}${r}" ${fn}; then
echo "${vcurl}${r}"
new=1
fi
done >> ${fn}
[ $new -eq 0 ] || echo >> ${fn}
prev=/dev/null
for r in $*; do
echo "+ fetching ${r}"
this=`mktemp /tmp/pullrevXXXXXX`
svn diff -c ${r} ${repo} | filterdiff --remove-timestamps --clean -x 'CHANGES' -x 'next-number' -x 'STATUS' \
--addprefix="${prefix}/" > ${this}
next=`mktemp /tmp/pullrevXXXXXX`
combinediff --quiet ${prev} ${this} > ${next}
rm -f "${this}"
[ "${prev}" = "/dev/null" ] || rm -f "${prev}"
prev=${next}
done
cat ${prev} >> ${fn}
vi "${fn}"
echo "+ git add ${fn}"
git add "${fn}"
echo "+ spec template:"
echo "PatchN: ${fn}"
echo "%patchN -p1 -b .${suffix}"

View File

@ -1 +1,2 @@
SHA512 (subversion-1.14.2.tar.bz2) = 20ada4688ca07d9fb8da4b7d53b5084568652a3b9418c65e688886bae950a16a3ff37710fcfc9c29ef14a89e75b2ceec4e9cf35d5876a7896ebc2b512cfb9ecc
3068256761b40863df96128834d6b71b subversion-1.8.10.tar.bz2
766a89bbbb388f8eb76166672d3b9e49 subversion-1.8.11.tar.bz2

View File

@ -1,84 +0,0 @@
Fix the way libtool is used to match standard practice:
a) link ONLY libraries using -rpath $(libdir), not executables
.. this avoids adding an RPATH for $libdir to executables
b) link non-installable test binaries using -no-install
.. only for convenience but should speed up builds slightly(?)
--- subversion-1.12.0/build.conf.linking
+++ subversion-1.12.0/build.conf
@@ -572,7 +572,7 @@
path = subversion/bindings/swig/python/libsvn_swig_py
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr
apriconv apr python swig
-link-cmd = $(LINK)
+link-cmd = $(LINK_LIB)
install = swig-py-lib
# need special build rule to include -DSWIGPYTHON
compile-cmd = $(COMPILE_SWIG_PY)
@@ -598,7 +598,7 @@
lang = ruby
path = subversion/bindings/swig/ruby/libsvn_swig_ruby
libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr ruby swig
-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)
@@ -769,6 +769,7 @@
libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr aprutil apriconv apr
msvc-static = yes
undefined-lib-symbols = yes
+link-cmd = $(LINK_TEST_LIB)
# ----------------------------------------------------------------------------
# Tests for libsvn_fs_base
--- subversion-1.12.0/build/generator/gen_base.py.linking
+++ subversion-1.12.0/build/generator/gen_base.py
@@ -599,7 +599,7 @@
self.install = options.get('install')
self.compile_cmd = options.get('compile-cmd')
self.sources = options.get('sources', '*.c *.cpp')
- self.link_cmd = options.get('link-cmd', '$(LINK)')
+ self.link_cmd = options.get('link-cmd', '$(LINK_LIB)')
self.external_lib = options.get('external-lib')
self.external_project = options.get('external-project')
@@ -659,6 +659,14 @@
self.msvc_force_static = options.get('msvc-force-static') == 'yes'
+ if self.install in ['test', 'bdb-test', 'sub-test', ]:
+ self.link_cmd = '$(LINK_TEST)'
+ elif self.install in ['bin', 'tools']:
+ self.link_cmd = '$(LINK_EXE)'
+ elif self.link_cmd == '$(LINK_LIB)':
+ raise GenError('ERROR: Unknown executable link type for ' + self.name + \
+ ': ' + self.link_cmd + ' (' + self.install + ')')
+
def add_dependencies(self):
TargetLinked.add_dependencies(self)
--- subversion-1.12.0/Makefile.in.linking
+++ subversion-1.12.0/Makefile.in
@@ -268,11 +268,14 @@
COMPILE_SVNXX = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) -o $@ -c
COMPILE_SVNXX_TEST = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) $(BOOST_TEST_CPPFLAGS) -o $@ -c
-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
-LINK_LIB = $(LINK) $(LT_SO_VERSION)
-LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
-LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
-LINK_SVNXX_TEST = $(LINK_CXX) $(BOOST_TEST_LDFLAGS)
+LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
+LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
+LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS)
+LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION) -rpath $(libdir)
+LINK_SVNXX_TEST = $(LINK_CXX) $(BOOST_TEST_LDFLAGS) -no-install
+LINK_TEST = $(LINK) -no-install
+LINK_TEST_LIB = $(LINK_TEST) -avoid-version
+LINK_EXE = $(LINK)
# special link rule for mod_dav_svn
LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS) -shared

View File

@ -1,14 +0,0 @@
Suppress gcc 10 warning.
--- subversion-1.14.0/subversion/tests/svn_test.h.testwarn
+++ subversion-1.14.0/subversion/tests/svn_test.h
@@ -128,7 +128,7 @@
return svn_error_createf(SVN_ERR_TEST_FAILED, NULL, \
"Strings not equal\n Expected: '%s'\n Found: '%s'" \
"\n at %s:%d", \
- tst_str2, tst_str1, __FILE__, __LINE__); \
+ tst_str2 ? tst_str2 : "(NULL)", tst_str1 ? tst_str1 : "(NULL)", __FILE__, __LINE__); \
} while(0)
/** Handy macro for testing integer equality.

View File

@ -1,30 +0,0 @@
See upstream dev@subversion thread. Fixes intermittent failure of
javahl tests, particularly reproducible on aarch64.
Message-ID: <11de5f5c-5059-b973-95a1-385e7913a63a@syntevo.com>
From: Alexandr Miloslavskiy
--- subversion-1.14.1/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java.fixjavatests
+++ subversion-1.14.1/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
@@ -4676,7 +4676,19 @@
// RuntimeException("Test exception") is expected here
}
- tunnelAgent.joinAndTest();
+ // In this test, there is a race condition that sometimes results in
+ // IOException when 'WAIT_TUNNEL' tries to read from a pipe that
+ // already has its read end closed. This is not an error, but
+ // it's hard to distinguish this case from other IOException which
+ // indicate a problem. To reproduce, simply wrap this test's body in
+ // a loop. The workaround is to ignore any detected IOException.
+ //
+ // tunnelAgent.joinAndTest();
+ try {
+ tunnelAgent.join();
+ } catch (InterruptedException e) {
+ e.printStackTrace ();
+ }
}
/**

View File

@ -1,14 +0,0 @@
Use read_file instead of deprecated readfp - removed in Python 3.11
diff -ur subversion-1.14.1/build/generator/gen_base.py subversion-1.14.1-patched/build/generator/gen_base.py
--- subversion-1.14.1/build/generator/gen_base.py 2019-11-04 06:59:36.000000000 +0100
+++ subversion-1.14.1-patched/build/generator/gen_base.py 2021-12-15 14:04:50.041649320 +0100
@@ -76,7 +76,7 @@
# Now read and parse build.conf
parser = configparser.ConfigParser()
- parser.readfp(open(fname))
+ parser.read_file(open(fname))
self.conf = build_path(os.path.abspath(fname))

View File

@ -1,14 +0,0 @@
Fix intermittent failures when "svn add" guesses a near-empty file is binary and hence
the output is different.
--- subversion-1.14.1/subversion/tests/cmdline/svntest/main.py.testnoautoprops
+++ subversion-1.14.1/subversion/tests/cmdline/svntest/main.py
@@ -691,6 +691,7 @@
[miscellany]
interactive-conflicts = false
+enable-magic-file = no
"""
if exclusive_wc_locks:
config_contents += """

View File

@ -1,23 +0,0 @@
Subversion libraries don't get properly versioned so the library
names are always "libsvn_foo-1.so.0.0.0". Provide proper
versioning information to libtool *without* changing the soname
for compatibility with upstream, so on-disk filenames are
unique across different releases.
--- subversion-1.14.2/configure.ac.soversion
+++ subversion-1.14.2/configure.ac
@@ -112,7 +112,12 @@
SVN_APR_MAJOR_VERSION=1
fi
AC_SUBST(SVN_APR_MAJOR_VERSION)
-SVN_LT_SOVERSION="-version-info $svn_lib_ver"
+
+m4_define([svn_ver_minor], m4_bpatsubst(AC_PACKAGE_VERSION, [[0-9]*\.\([0-9]*\)\.[0-9]*], [\1]))
+m4_define([svn_ver_patch], m4_bpatsubst(AC_PACKAGE_VERSION, [[0-9]*\.[0-9]*\.\([0-9]*\)], [\1]))
+svn_ver_current="`expr $svn_lib_ver + svn_ver_minor`"
+
+SVN_LT_SOVERSION="-version-info $svn_ver_current:svn_ver_patch:svn_ver_minor"
AC_SUBST(SVN_LT_SOVERSION)
AC_DEFINE_UNQUOTED(SVN_SOVERSION, $svn_lib_ver,
[Subversion library major verson])

View File

@ -0,0 +1,26 @@
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.8.0/build/ac-macros/kwallet.m4.kwallet
+++ subversion-1.8.0/build/ac-macros/kwallet.m4
@@ -63,15 +63,15 @@ 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`"
kde_lib_suffix="`$KDE4_CONFIG --libsuffix`"
- LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs -L$kde_dir/lib$kde_lib_suffix)`"
+ LDFLAGS="$old_LDFLAGS `SVN_REMOVE_STANDARD_LIB_DIRS($qt_lib_dirs)` -L$libdir/kde4/devel"
AC_LANG(C++)
AC_LINK_IFELSE([AC_LANG_SOURCE([[
#include <kwallet.h>

View File

@ -0,0 +1,56 @@
diff -uap subversion-1.7.0/build/generator/gen_base.py.pie subversion-1.7.0/build/generator/gen_base.py
--- subversion-1.8.0/build/generator/gen_base.py.pie
+++ subversion-1.8.0/build/generator/gen_base.py
@@ -409,7 +409,7 @@ class TargetLinked(Target):
self.install = options.get('install')
self.compile_cmd = options.get('compile-cmd')
self.sources = options.get('sources', '*.c *.cpp')
- self.link_cmd = options.get('link-cmd', '$(LINK)')
+ self.link_cmd = options.get('link-cmd', '$(LINK_LIB)')
self.external_lib = options.get('external-lib')
self.external_project = options.get('external-project')
@@ -465,6 +465,11 @@ class TargetExe(TargetLinked):
self.manpages = options.get('manpages', '')
self.testing = options.get('testing')
+ if self.install == 'test' or self.install == 'bdb-test':
+ self.link_cmd = '$(LINK_TEST)'
+ else:
+ self.link_cmd = '$(LINK_EXE)'
+
def add_dependencies(self):
TargetLinked.add_dependencies(self)
@@ -515,8 +520,8 @@ class TargetLib(TargetLinked):
self.msvc_export = options.get('msvc-export', '').split()
### hmm. this is Makefile-specific
- if self.link_cmd == '$(LINK)':
- self.link_cmd = '$(LINK_LIB)'
+ if self.install == 'test':
+ self.link_cmd = '$(LINK_TEST_LIB)'
class TargetApacheMod(TargetLib):
--- subversion-1.8.0/Makefile.in.pie
+++ subversion-1.8.0/Makefile.in
@@ -203,6 +203,9 @@ COMPILE_CXXHL_CXX = $(LIBTOOL) $(LTCXXFL
LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
+LINK_TEST = $(LINK) -no-install
+LINK_TEST_LIB = $(LINK) -avoid-version
+LINK_EXE = $(LINK) -pie
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
@@ -676,7 +679,7 @@ schema-clean:
$(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
.c.o:
- $(COMPILE) -o $@ -c $<
+ $(COMPILE) -fpie -o $@ -c $<
.cpp.o:
$(COMPILE_CXX) -o $@ -c $<

View File

@ -0,0 +1,47 @@
diff -uap subversion-1.7.0/build.conf.rpath subversion-1.7.0/build.conf
--- subversion-1.8.0/build.conf.rpath
+++ subversion-1.8.0/build.conf
@@ -501,7 +501,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)
+link-cmd = $(LINK_LIB)
install = swig-py-lib
# need special build rule to include -DSWIGPYTHON
compile-cmd = $(COMPILE_SWIG_PY)
@@ -524,7 +524,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.8.0/build/generator/gen_base.py.rpath
+++ subversion-1.8.0/build/generator/gen_base.py
@@ -514,6 +514,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.8.0/Makefile.in.rpath
+++ subversion-1.8.0/Makefile.in
@@ -201,8 +201,8 @@ COMPILE_JAVAHL_JAVAH = $(JAVAH)
# special compilation for files destined for cxxhl
COMPILE_CXXHL_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=compile $(COMPILE_CXX) $(LT_CFLAGS) $(CXXHL_INCLUDES) -o $@ -c
-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
-LINK_LIB = $(LINK) $(LT_SO_VERSION)
+LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
+LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,11 @@
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
Documentation=man:svnserve(8)
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS
PrivateTmp=yes
[Install]
WantedBy=multi-user.target