Compare commits
No commits in common. "c8-stream-1.1" and "c10s" have entirely different histories.
c8-stream-
...
c10s
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
|||||||
|
1
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -1 +1,3 @@
|
|||||||
SOURCES/subversion-1.10.2.tar.bz2
|
/subversion-*.tar.bz2
|
||||||
|
/subversion-1\.[0-9]*\.[0-9]*/
|
||||||
|
/results_subversion/
|
||||||
|
@ -1 +0,0 @@
|
|||||||
bc52ef2e671f821998ac9a5f7ebecbbcaaef83b8 SOURCES/subversion-1.10.2.tar.bz2
|
|
@ -1,72 +0,0 @@
|
|||||||
|
|
||||||
Link executables using -pie, link test executables using -no-install.
|
|
||||||
|
|
||||||
diff -uap subversion-1.10.0/build.conf.pie subversion-1.10.0/build.conf
|
|
||||||
--- subversion-1.10.0/build.conf.pie
|
|
||||||
+++ subversion-1.10.0/build.conf
|
|
||||||
@@ -783,6 +783,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
|
|
||||||
diff -uap subversion-1.10.0/build/generator/gen_base.py.pie subversion-1.10.0/build/generator/gen_base.py
|
|
||||||
--- subversion-1.10.0/build/generator/gen_base.py.pie
|
|
||||||
+++ subversion-1.10.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,17 @@
|
|
||||||
|
|
||||||
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 ['cxxhl-tests', ]:
|
|
||||||
+ self.link_cmd = '$(LINK_TEST_CXX)'
|
|
||||||
+ elif self.link_cmd == '$(LINK_LIB)':
|
|
||||||
+ # Over-ride the default for TargetLinked.
|
|
||||||
+ self.link_cmd = '$(LINK_EXE)'
|
|
||||||
+ else:
|
|
||||||
+ raise GenError('ERROR: Unknown executable link type for ' + self.name + \
|
|
||||||
+ ': ' + self.link_cmd + ' (' + self.install + ')')
|
|
||||||
+
|
|
||||||
def add_dependencies(self):
|
|
||||||
TargetLinked.add_dependencies(self)
|
|
||||||
|
|
||||||
diff -uap subversion-1.10.0/Makefile.in.pie subversion-1.10.0/Makefile.in
|
|
||||||
--- subversion-1.10.0/Makefile.in.pie
|
|
||||||
+++ subversion-1.10.0/Makefile.in
|
|
||||||
@@ -268,6 +268,11 @@
|
|
||||||
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_TEST = $(LINK) -no-install
|
|
||||||
+LINK_TEST_LIB = $(LINK) -avoid-version
|
|
||||||
+LINK_TEST_CXX_LIB = $(LINK_CXX) -avoid-version
|
|
||||||
+LINK_EXE = $(LINK) -pie
|
|
||||||
+LINK_CXX_EXE = $(LINK) -pie
|
|
||||||
|
|
||||||
# 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
|
|
||||||
@@ -780,10 +785,10 @@
|
|
||||||
$(PYTHON) $(top_srcdir)/build/transform_sql.py $< $(top_srcdir)/$@
|
|
||||||
|
|
||||||
.c.o:
|
|
||||||
- $(COMPILE) -o $@ -c $<
|
|
||||||
+ $(COMPILE) -fPIE -o $@ -c $<
|
|
||||||
|
|
||||||
.cpp.o:
|
|
||||||
- $(COMPILE_CXX) -o $@ -c $<
|
|
||||||
+ $(COMPILE_CXX) -fPIE -o $@ -c $<
|
|
||||||
|
|
||||||
.c.lo:
|
|
||||||
$(LT_COMPILE) -o $@ -c $<
|
|
@ -1,42 +0,0 @@
|
|||||||
|
|
||||||
Only link libraries using -rpath, to avoid unnecessary RPATH tags in executables.
|
|
||||||
|
|
||||||
diff -uap subversion-1.10.0/build.conf.rpath subversion-1.10.0/build.conf
|
|
||||||
--- subversion-1.10.0/build.conf.rpath
|
|
||||||
+++ subversion-1.10.0/build.conf
|
|
||||||
@@ -568,7 +568,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)
|
|
||||||
@@ -594,7 +594,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)
|
|
||||||
diff -uap subversion-1.10.0/Makefile.in.rpath subversion-1.10.0/Makefile.in
|
|
||||||
--- subversion-1.10.0/Makefile.in.rpath
|
|
||||||
+++ subversion-1.10.0/Makefile.in
|
|
||||||
@@ -264,10 +264,10 @@
|
|
||||||
COMPILE_GOOGLEMOCK_CXX = $(LT_COMPILE_CXX_NOWARN) $(GOOGLEMOCK_LIB_INCLUDES) -o $@ -c
|
|
||||||
COMPILE_CXXHL_GOOGLEMOCK_CXX = $(LT_COMPILE_CXX) $(CXXHL_INCLUDES) $(GOOGLEMOCK_INCLUDES) -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 = $(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)
|
|
||||||
|
|
||||||
# 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
|
|
@ -1,221 +0,0 @@
|
|||||||
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=17330884
|
|
||||||
|
|
||||||
https://subversion.apache.org/security/CVE-2018-11782-advisory.txt
|
|
||||||
|
|
||||||
Fixes for CVE-2018-11782, svnserve get-deleted-rev assertion failure.
|
|
||||||
|
|
||||||
The svn protocol prototype for get-deleted-rev does not allow for a reply of
|
|
||||||
SVN_INVALID_REVNUM directly. A query having such an answer previously caused
|
|
||||||
the server to raise an assertion failure which could crash the whole process
|
|
||||||
or a thread or child process of it, depending on the build configuration of
|
|
||||||
the server.
|
|
||||||
|
|
||||||
To work around the problem without changing the protocol, we re-purpose the
|
|
||||||
obsolete error code 'SVN_ERR_ENTRY_MISSING_REVISION' to communicate this
|
|
||||||
'not deleted' reply to the client.
|
|
||||||
|
|
||||||
- With a new client against a new server, such queries are now handled
|
|
||||||
correctly.
|
|
||||||
|
|
||||||
- With an old client against a new server, the client will report a more
|
|
||||||
informative error message, and the server will not crash.
|
|
||||||
|
|
||||||
- With a new client against an old server, the behaviour is the same as
|
|
||||||
with an old client against an old server.
|
|
||||||
|
|
||||||
In addition, this fixes a similar problem whereby any regular error response
|
|
||||||
to a 'get-deleted-rev' query resulted in the server closing the connection,
|
|
||||||
process and/or thread (again depending on the build configuration). Now such
|
|
||||||
errors are correctly passed back to the client.
|
|
||||||
|
|
||||||
* subversion/libsvn_ra_svn/client.c
|
|
||||||
(ra_svn_get_deleted_rev): Detect error SVN_ERR_ENTRY_MISSING_REVISION
|
|
||||||
and convert it to a response of SVN_INVALID_REVNUM.
|
|
||||||
|
|
||||||
* subversion/svnserve/serve.c
|
|
||||||
(get_deleted_rev): Respond with error SVN_ERR_ENTRY_MISSING_REVISION
|
|
||||||
instead of an assertion failure if the answer is SVN_INVALID_REVNUM.
|
|
||||||
If svn_repos_deleted_rev() returns an error, pass that error back to
|
|
||||||
the client.
|
|
||||||
|
|
||||||
* subversion/tests/libsvn_ra/ra-test.c
|
|
||||||
(commit_two_changes): New.
|
|
||||||
(test_get_deleted_rev_no_delete,
|
|
||||||
test_get_deleted_rev_errors): New tests.
|
|
||||||
(test_funcs): Run them.
|
|
||||||
--This line, and those below, will be ignored--
|
|
||||||
|
|
||||||
Index: subversion/libsvn_ra_svn/client.c
|
|
||||||
===================================================================
|
|
||||||
--- subversion-1.10.2/subversion/libsvn_ra_svn/client.c.cve11782
|
|
||||||
+++ subversion-1.10.2/subversion/libsvn_ra_svn/client.c
|
|
||||||
@@ -3105,6 +3105,7 @@
|
|
||||||
{
|
|
||||||
svn_ra_svn__session_baton_t *sess_baton = session->priv;
|
|
||||||
svn_ra_svn_conn_t *conn = sess_baton->conn;
|
|
||||||
+ svn_error_t *err;
|
|
||||||
|
|
||||||
path = reparent_path(session, path, pool);
|
|
||||||
|
|
||||||
@@ -3116,8 +3117,20 @@
|
|
||||||
SVN_ERR(handle_unsupported_cmd(handle_auth_request(sess_baton, pool),
|
|
||||||
N_("'get-deleted-rev' not implemented")));
|
|
||||||
|
|
||||||
- return svn_error_trace(svn_ra_svn__read_cmd_response(conn, pool, "r",
|
|
||||||
- revision_deleted));
|
|
||||||
+ err = svn_error_trace(svn_ra_svn__read_cmd_response(conn, pool, "r",
|
|
||||||
+ revision_deleted));
|
|
||||||
+ /* The protocol does not allow for a reply of SVN_INVALID_REVNUM directly.
|
|
||||||
+ Instead, a new enough server returns SVN_ERR_ENTRY_MISSING_REVISION to
|
|
||||||
+ indicate the answer to the query is SVN_INVALID_REVNUM. (An older server
|
|
||||||
+ closes the connection and returns SVN_ERR_RA_SVN_CONNECTION_CLOSED.) */
|
|
||||||
+ if (err && err->apr_err == SVN_ERR_ENTRY_MISSING_REVISION)
|
|
||||||
+ {
|
|
||||||
+ *revision_deleted = SVN_INVALID_REVNUM;
|
|
||||||
+ svn_error_clear(err);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ SVN_ERR(err);
|
|
||||||
+ return SVN_NO_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
static svn_error_t *
|
|
||||||
--- subversion-1.10.2/subversion/svnserve/serve.c.cve11782
|
|
||||||
+++ subversion-1.10.2/subversion/svnserve/serve.c
|
|
||||||
@@ -3505,8 +3505,21 @@
|
|
||||||
svn_relpath_canonicalize(path, pool), pool);
|
|
||||||
SVN_ERR(log_command(b, conn, pool, "get-deleted-rev"));
|
|
||||||
SVN_ERR(trivial_auth_request(conn, pool, b));
|
|
||||||
- SVN_ERR(svn_repos_deleted_rev(b->repository->fs, full_path, peg_revision,
|
|
||||||
- end_revision, &revision_deleted, pool));
|
|
||||||
+ SVN_CMD_ERR(svn_repos_deleted_rev(b->repository->fs, full_path, peg_revision,
|
|
||||||
+ end_revision, &revision_deleted, pool));
|
|
||||||
+
|
|
||||||
+ /* The protocol does not allow for a reply of SVN_INVALID_REVNUM directly.
|
|
||||||
+ Instead, return SVN_ERR_ENTRY_MISSING_REVISION. A new enough client
|
|
||||||
+ knows that this means the answer to the query is SVN_INVALID_REVNUM.
|
|
||||||
+ (An older client reports this as an error.) */
|
|
||||||
+ if (revision_deleted == SVN_INVALID_REVNUM)
|
|
||||||
+ SVN_CMD_ERR(svn_error_createf(SVN_ERR_ENTRY_MISSING_REVISION, NULL,
|
|
||||||
+ "svn protocol command 'get-deleted-rev': "
|
|
||||||
+ "path '%s' was not deleted in r%ld-%ld; "
|
|
||||||
+ "NOTE: newer clients handle this case "
|
|
||||||
+ "and do not report it as an error",
|
|
||||||
+ full_path, peg_revision, end_revision));
|
|
||||||
+
|
|
||||||
SVN_ERR(svn_ra_svn__write_cmd_response(conn, pool, "r", revision_deleted));
|
|
||||||
return SVN_NO_ERROR;
|
|
||||||
}
|
|
||||||
--- subversion-1.10.2/subversion/tests/libsvn_ra/ra-test.c.cve11782
|
|
||||||
+++ subversion-1.10.2/subversion/tests/libsvn_ra/ra-test.c
|
|
||||||
@@ -94,6 +94,41 @@
|
|
||||||
return SVN_NO_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Commit two revisions: add 'B', then delete 'A' */
|
|
||||||
+static svn_error_t *
|
|
||||||
+commit_two_changes(svn_ra_session_t *session,
|
|
||||||
+ apr_pool_t *pool)
|
|
||||||
+{
|
|
||||||
+ apr_hash_t *revprop_table = apr_hash_make(pool);
|
|
||||||
+ const svn_delta_editor_t *editor;
|
|
||||||
+ void *edit_baton;
|
|
||||||
+ void *root_baton, *dir_baton;
|
|
||||||
+
|
|
||||||
+ /* mkdir B */
|
|
||||||
+ SVN_ERR(svn_ra_get_commit_editor3(session, &editor, &edit_baton,
|
|
||||||
+ revprop_table,
|
|
||||||
+ NULL, NULL, NULL, TRUE, pool));
|
|
||||||
+ SVN_ERR(editor->open_root(edit_baton, SVN_INVALID_REVNUM,
|
|
||||||
+ pool, &root_baton));
|
|
||||||
+ SVN_ERR(editor->add_directory("B", root_baton, NULL, SVN_INVALID_REVNUM,
|
|
||||||
+ pool, &dir_baton));
|
|
||||||
+ SVN_ERR(editor->close_directory(dir_baton, pool));
|
|
||||||
+ SVN_ERR(editor->close_directory(root_baton, pool));
|
|
||||||
+ SVN_ERR(editor->close_edit(edit_baton, pool));
|
|
||||||
+
|
|
||||||
+ /* delete A */
|
|
||||||
+ SVN_ERR(svn_ra_get_commit_editor3(session, &editor, &edit_baton,
|
|
||||||
+ revprop_table,
|
|
||||||
+ NULL, NULL, NULL, TRUE, pool));
|
|
||||||
+ SVN_ERR(editor->open_root(edit_baton, SVN_INVALID_REVNUM,
|
|
||||||
+ pool, &root_baton));
|
|
||||||
+ SVN_ERR(editor->delete_entry("A", SVN_INVALID_REVNUM, root_baton, pool));
|
|
||||||
+ SVN_ERR(editor->close_directory(root_baton, pool));
|
|
||||||
+ SVN_ERR(editor->close_edit(edit_baton, pool));
|
|
||||||
+
|
|
||||||
+ return SVN_NO_ERROR;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static svn_error_t *
|
|
||||||
commit_tree(svn_ra_session_t *session,
|
|
||||||
apr_pool_t *pool)
|
|
||||||
@@ -1784,6 +1819,56 @@
|
|
||||||
return SVN_NO_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* Cases of 'get-deleted-rev' that should return SVN_INVALID_REVNUM. */
|
|
||||||
+static svn_error_t *
|
|
||||||
+test_get_deleted_rev_no_delete(const svn_test_opts_t *opts,
|
|
||||||
+ apr_pool_t *pool)
|
|
||||||
+{
|
|
||||||
+ svn_ra_session_t *ra_session;
|
|
||||||
+ svn_revnum_t revision_deleted;
|
|
||||||
+
|
|
||||||
+ SVN_ERR(make_and_open_repos(&ra_session,
|
|
||||||
+ "test-repo-get-deleted-rev-no-delete", opts,
|
|
||||||
+ pool));
|
|
||||||
+ SVN_ERR(commit_changes(ra_session, pool));
|
|
||||||
+ SVN_ERR(commit_two_changes(ra_session, pool));
|
|
||||||
+
|
|
||||||
+ /* expect 'no deletion' in the range up to r2, when it is deleted in r3 */
|
|
||||||
+ /* This was failing over RA-SVN where the 'get-deleted-rev' wire command's
|
|
||||||
+ prototype cannot directly represent that result. A new enough client and
|
|
||||||
+ server collaborate on a work-around implemented using an error code. */
|
|
||||||
+ SVN_ERR(svn_ra_get_deleted_rev(ra_session, "A", 1, 2,
|
|
||||||
+ &revision_deleted, pool));
|
|
||||||
+ SVN_TEST_INT_ASSERT(revision_deleted, SVN_INVALID_REVNUM);
|
|
||||||
+
|
|
||||||
+ /* this connection should still be open: a simple case should still work */
|
|
||||||
+ SVN_ERR(svn_ra_get_deleted_rev(ra_session, "A", 1, 3,
|
|
||||||
+ &revision_deleted, pool));
|
|
||||||
+ SVN_TEST_INT_ASSERT(revision_deleted, 3);
|
|
||||||
+
|
|
||||||
+ return SVN_NO_ERROR;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Cases of 'get-deleted-rev' that should return an error. */
|
|
||||||
+static svn_error_t *
|
|
||||||
+test_get_deleted_rev_errors(const svn_test_opts_t *opts,
|
|
||||||
+ apr_pool_t *pool)
|
|
||||||
+{
|
|
||||||
+ svn_ra_session_t *ra_session;
|
|
||||||
+ svn_revnum_t revision_deleted;
|
|
||||||
+
|
|
||||||
+ SVN_ERR(make_and_open_repos(&ra_session,
|
|
||||||
+ "test-repo-get-deleted-rev-errors", opts, pool));
|
|
||||||
+ SVN_ERR(commit_changes(ra_session, pool));
|
|
||||||
+
|
|
||||||
+ /* expect an error when searching up to r3, when repository head is r1 */
|
|
||||||
+ SVN_TEST_ASSERT_ERROR(svn_ra_get_deleted_rev(ra_session, "A", 1, 3,
|
|
||||||
+ &revision_deleted, pool),
|
|
||||||
+ SVN_ERR_FS_NO_SUCH_REVISION);
|
|
||||||
+
|
|
||||||
+ return SVN_NO_ERROR;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
|
|
||||||
/* The test table. */
|
|
||||||
|
|
||||||
@@ -1820,6 +1905,10 @@
|
|
||||||
"check how last change applies to empty commit"),
|
|
||||||
SVN_TEST_OPTS_PASS(commit_locked_file,
|
|
||||||
"check commit editor for a locked file"),
|
|
||||||
+ SVN_TEST_OPTS_PASS(test_get_deleted_rev_no_delete,
|
|
||||||
+ "test get-deleted-rev no delete"),
|
|
||||||
+ SVN_TEST_OPTS_PASS(test_get_deleted_rev_errors,
|
|
||||||
+ "test get-deleted-rev errors"),
|
|
||||||
SVN_TEST_NULL
|
|
||||||
};
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
diff --git a/subversion/svnserve/serve.c b/subversion/svnserve/serve.c
|
|
||||||
index 5192e7c..6159e22 100644
|
|
||||||
--- a/subversion/svnserve/serve.c
|
|
||||||
+++ b/subversion/svnserve/serve.c
|
|
||||||
@@ -4101,7 +4101,7 @@ construct_server_baton(server_baton_t **baton,
|
|
||||||
serve_params_t *params,
|
|
||||||
apr_pool_t *scratch_pool)
|
|
||||||
{
|
|
||||||
- svn_error_t *err, *io_err;
|
|
||||||
+ svn_error_t *err;
|
|
||||||
apr_uint64_t ver;
|
|
||||||
const char *client_url, *ra_client_string, *client_string;
|
|
||||||
svn_ra_svn__list_t *caplist;
|
|
||||||
@@ -4239,11 +4239,12 @@ construct_server_baton(server_baton_t **baton,
|
|
||||||
}
|
|
||||||
if (err)
|
|
||||||
{
|
|
||||||
- log_error(err, b);
|
|
||||||
- io_err = svn_ra_svn__write_cmd_failure(conn, scratch_pool, err);
|
|
||||||
- svn_error_clear(err);
|
|
||||||
- SVN_ERR(io_err);
|
|
||||||
- return svn_ra_svn__flush(conn, scratch_pool);
|
|
||||||
+ /* Report these errors to the client before closing the connection. */
|
|
||||||
+ err = svn_error_compose_create(err,
|
|
||||||
+ svn_ra_svn__write_cmd_failure(conn, scratch_pool, err));
|
|
||||||
+ err = svn_error_compose_create(err,
|
|
||||||
+ svn_ra_svn__flush(conn, scratch_pool));
|
|
||||||
+ return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
SVN_ERR(svn_fs_get_uuid(b->repository->fs, &b->repository->uuid,
|
|
27
clog2markdown
Executable file
27
clog2markdown
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/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;
|
||||||
|
}
|
||||||
|
" -
|
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#gating rhel
|
||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-*
|
||||||
|
decision_context: osci_compose_gate
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional}
|
10
plans/tier1-internal.fmf
Normal file
10
plans/tier1-internal.fmf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
summary: Internal Tier1 beakerlib tests
|
||||||
|
discover:
|
||||||
|
how: fmf
|
||||||
|
url: https://gitlab.com/redhat/rhel/tests/subversion
|
||||||
|
filter: "tier:1&component:subversion"
|
||||||
|
execute:
|
||||||
|
how: tmt
|
||||||
|
adjust:
|
||||||
|
enabled: false
|
||||||
|
when: distro == centos-stream-10
|
53
pullrev.sh
Executable file
53
pullrev.sh
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/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}"
|
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
|||||||
|
SHA512 (subversion-1.14.3.tar.bz2) = 40b172492005fd3b0cd9e457b4444af8ea5d8ff8fc161a9a0c6dc3a7314c6ad4ff75a4676f68a1919ae6273ae03e34d04eba8c1c37b8c0b4ec70d6731b527b41
|
84
subversion-1.12.0-linking.patch
Normal file
84
subversion-1.12.0-linking.patch
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
|
||||||
|
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
|
14
subversion-1.14.0-testwarn.patch
Normal file
14
subversion-1.14.0-testwarn.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
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.
|
30
subversion-1.14.1-fixjavatests.patch
Normal file
30
subversion-1.14.1-fixjavatests.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
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 ();
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
14
subversion-1.14.1-testnomagic.patch
Normal file
14
subversion-1.14.1-testnomagic.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
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 += """
|
24
subversion-1.14.2-modsyms.patch
Normal file
24
subversion-1.14.2-modsyms.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
Don't expose private symbols for the Apache modules DSO.
|
||||||
|
|
||||||
|
--- subversion-1.14.2/build/generator/gen_base.py.modsyms
|
||||||
|
+++ subversion-1.14.2/build/generator/gen_base.py
|
||||||
|
@@ -727,13 +727,17 @@
|
||||||
|
def __init__(self, name, options, gen_obj):
|
||||||
|
TargetLib.__init__(self, name, options, gen_obj)
|
||||||
|
|
||||||
|
+ if name[:4] != "mod_":
|
||||||
|
+ raise Exception("Apache module targets must be named mod_*")
|
||||||
|
+
|
||||||
|
tfile = name + self.gen_obj._extension_map['lib', 'target']
|
||||||
|
self.filename = build_path_join(self.path, tfile)
|
||||||
|
|
||||||
|
+ modsyms = name[4:] + '_[^_].*'
|
||||||
|
# we have a custom linking rule
|
||||||
|
### hmm. this is Makefile-specific
|
||||||
|
self.compile_cmd = '$(COMPILE_APACHE_MOD)'
|
||||||
|
- self.link_cmd = '$(LINK_APACHE_MOD)'
|
||||||
|
+ self.link_cmd = '$(LINK_APACHE_MOD) -export-symbols-regex ' + modsyms
|
||||||
|
|
||||||
|
class TargetSharedOnlyLib(TargetLib):
|
||||||
|
|
23
subversion-1.14.2-soversion.patch
Normal file
23
subversion-1.14.2-soversion.patch
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
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])
|
25
subversion-1.14.3-zlib-ng.patch
Normal file
25
subversion-1.14.3-zlib-ng.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
commit ca640b37f8a50b18d76970fd6554e05801b7e81b
|
||||||
|
Author: Tomas Korbar <tkorbar@redhat.com>
|
||||||
|
Date: Fri Jan 12 14:39:26 2024 +0100
|
||||||
|
|
||||||
|
Fix tests with zlib-ng
|
||||||
|
|
||||||
|
diff --git a/subversion/tests/cmdline/patch_tests.py b/subversion/tests/cmdline/patch_tests.py
|
||||||
|
index f52f12e..5950170 100755
|
||||||
|
--- a/subversion/tests/cmdline/patch_tests.py
|
||||||
|
+++ b/subversion/tests/cmdline/patch_tests.py
|
||||||
|
@@ -5797,11 +5797,11 @@ def patch_binary_file(sbox):
|
||||||
|
'diff --git a/iota b/iota\n',
|
||||||
|
'GIT binary patch\n',
|
||||||
|
'literal 48\n',
|
||||||
|
- 'zc$^E#$ShU>qLPeMg|y6^R0Z|S{E|d<JuZf(=9bpB_PpZ!+|-hc%)E52)STkf{{Wp*\n',
|
||||||
|
- 'B5)uFa\n',
|
||||||
|
+ 'zc$^E#$ShXKELJGVNL5J7%t=*H&&)4LRM+ETXlib0ZEMdf&d*IP$;ix0=Ss~fPW=x6\n',
|
||||||
|
+ 'Dol+7K\n',
|
||||||
|
'\n',
|
||||||
|
'literal 25\n',
|
||||||
|
- 'ec$^E#$ShU>qLPeMg|y6^R0Z|S{E|d<JuU!m{s;*G\n',
|
||||||
|
+ 'gc$^E#$ShXKELJGVNL5J7%t=*H&&)4LRM+DI0B`;X2><{9\n',
|
||||||
|
'\n',
|
||||||
|
'Property changes on: iota\n',
|
||||||
|
'___________________________________________________________________\n',
|
27
subversion-ruby-c99.patch
Normal file
27
subversion-ruby-c99.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
The Ruby bindings apply the Ruby NIL_P macro to an apr_hash_t * value,
|
||||||
|
which some compilers flag as a type error.
|
||||||
|
|
||||||
|
Submitted upstream: <https://issues.apache.org/jira/browse/SVN-4915>
|
||||||
|
|
||||||
|
diff --git a/subversion/bindings/swig/include/svn_containers.swg b/subversion/bindings/swig/include/svn_containers.swg
|
||||||
|
index d3c6305a412b6505..47bc50a92bb8b433 100644
|
||||||
|
--- a/subversion/bindings/swig/include/svn_containers.swg
|
||||||
|
+++ b/subversion/bindings/swig/include/svn_containers.swg
|
||||||
|
@@ -299,7 +299,7 @@
|
||||||
|
$1 = svn_swig_rb_hash_to_apr_hash_svn_string($input, _global_pool);
|
||||||
|
_global_pool = NULL;
|
||||||
|
if (!NIL_P(rb_pool)) {
|
||||||
|
- if (NIL_P($1)) {
|
||||||
|
+ if ($1 == NULL) {
|
||||||
|
svn_swig_rb_destroy_pool(rb_pool);
|
||||||
|
} else {
|
||||||
|
svn_swig_rb_set_pool_for_no_swig_type($input, rb_pool);
|
||||||
|
@@ -373,7 +373,7 @@
|
||||||
|
svn_swig_rb_hash_to_apr_hash_string($input, _global_pool);
|
||||||
|
_global_pool = NULL;
|
||||||
|
if (!NIL_P(rb_pool)) {
|
||||||
|
- if (NIL_P($1)) {
|
||||||
|
+ if ($1 == NULL) {
|
||||||
|
svn_swig_rb_destroy_pool(rb_pool);
|
||||||
|
} else {
|
||||||
|
svn_swig_rb_set_pool_for_no_swig_type($input, rb_pool);
|
@ -1,18 +1,38 @@
|
|||||||
# set to zero to avoid running test suite
|
# Disable to avoid all the test suites
|
||||||
|
|
||||||
|
%bcond_with tests
|
||||||
|
|
||||||
|
# Disable automatic .la file removal
|
||||||
|
%global __brp_remove_la_files %nil
|
||||||
|
|
||||||
|
%if 0%{?rhel} || 0%{?eln}
|
||||||
|
%bcond_with kwallet
|
||||||
|
%else
|
||||||
%bcond_without kwallet
|
%bcond_without kwallet
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?fedora} > 32 || 0%{?rhel} > 8
|
||||||
|
%bcond_with bdb
|
||||||
|
%else
|
||||||
|
%bcond_without bdb
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Python 2 for F<32, Python 3 for F>=32 and RHEL>=9
|
||||||
|
%if 0%{?fedora} < 32 && 0%{?rhel} < 9
|
||||||
%bcond_without python2
|
%bcond_without python2
|
||||||
%bcond_with python3
|
%bcond_with python3
|
||||||
%bcond_without bdb
|
|
||||||
%bcond_without tests
|
|
||||||
%bcond_without pyswig
|
%bcond_without pyswig
|
||||||
|
%bcond_without ruby
|
||||||
%ifarch %{power64} s390x
|
|
||||||
%global with_java 0
|
|
||||||
%else
|
%else
|
||||||
%global with_java 1
|
%bcond_with python2
|
||||||
|
%bcond_without python3
|
||||||
|
%bcond_without pyswig
|
||||||
|
%bcond_with ruby
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# do not build java package on RHEL 10
|
||||||
|
%bcond_with java
|
||||||
|
|
||||||
%if %{with python2} == %{with python3}
|
%if %{with python2} == %{with python3}
|
||||||
%error Pick exactly one Python version
|
%error Pick exactly one Python version
|
||||||
%endif
|
%endif
|
||||||
@ -36,13 +56,11 @@
|
|||||||
|
|
||||||
Summary: A Modern Concurrent Version Control System
|
Summary: A Modern Concurrent Version Control System
|
||||||
Name: subversion
|
Name: subversion
|
||||||
Version: 1.10.2
|
Version: 1.14.3
|
||||||
Release: 3%{?dist}
|
Release: 8%{?dist}
|
||||||
License: ASL 2.0
|
License: Apache-2.0
|
||||||
Group: Development/Tools
|
|
||||||
URL: https://subversion.apache.org/
|
URL: https://subversion.apache.org/
|
||||||
|
Source0: https://downloads.apache.org/subversion/subversion-%{version}.tar.bz2
|
||||||
Source0: https://www.apache.org/dist/subversion/subversion-%{version}.tar.bz2
|
|
||||||
Source1: subversion.conf
|
Source1: subversion.conf
|
||||||
Source3: filter-requires.sh
|
Source3: filter-requires.sh
|
||||||
Source4: http://www.xsteve.at/prg/emacs/psvn.el
|
Source4: http://www.xsteve.at/prg/emacs/psvn.el
|
||||||
@ -50,19 +68,24 @@ Source5: psvn-init.el
|
|||||||
Source6: svnserve.service
|
Source6: svnserve.service
|
||||||
Source7: svnserve.tmpfiles
|
Source7: svnserve.tmpfiles
|
||||||
Source8: svnserve.sysconf
|
Source8: svnserve.sysconf
|
||||||
Patch1: subversion-1.10.0-rpath.patch
|
Patch1: subversion-1.12.0-linking.patch
|
||||||
Patch2: subversion-1.10.0-pie.patch
|
Patch2: subversion-1.14.0-testwarn.patch
|
||||||
|
Patch3: subversion-1.14.2-soversion.patch
|
||||||
Patch4: subversion-1.8.0-rubybind.patch
|
Patch4: subversion-1.8.0-rubybind.patch
|
||||||
Patch5: subversion-1.8.5-swigplWall.patch
|
Patch5: subversion-1.8.5-swigplWall.patch
|
||||||
Patch6: subversion-1.10.2-CVE-2019-0203.patch
|
Patch6: subversion-1.14.1-testnomagic.patch
|
||||||
Patch7: subversion-1.10.2-CVE-2018-11782.patch
|
Patch7: subversion-ruby-c99.patch
|
||||||
BuildRequires: autoconf, libtool, texinfo, which
|
Patch8: subversion-1.14.2-modsyms.patch
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2255746
|
||||||
|
Patch9: subversion-1.14.3-zlib-ng.patch
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: autoconf, libtool, texinfo, which, gcc, gcc-c++
|
||||||
BuildRequires: swig >= 1.3.24, gettext
|
BuildRequires: swig >= 1.3.24, gettext
|
||||||
%if %{with bdb}
|
%if %{with bdb}
|
||||||
BuildRequires: libdb-devel >= 4.1.25
|
BuildRequires: libdb-devel >= 4.1.25
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: %{svn_python_br}
|
BuildRequires: %{svn_python_br}
|
||||||
BuildRequires: apr-devel >= 1.3.0, apr-util-devel >= 1.3.0
|
BuildRequires: apr-devel >= 1.5.0, apr-util-devel >= 1.3.0
|
||||||
BuildRequires: libserf-devel >= 1.3.0, cyrus-sasl-devel
|
BuildRequires: libserf-devel >= 1.3.0, cyrus-sasl-devel
|
||||||
BuildRequires: sqlite-devel >= 3.4.0, file-devel, systemd-units
|
BuildRequires: sqlite-devel >= 3.4.0, file-devel, systemd-units
|
||||||
BuildRequires: utf8proc-devel, lz4-devel
|
BuildRequires: utf8proc-devel, lz4-devel
|
||||||
@ -89,10 +112,9 @@ instead of every complete file. Subversion is intended to be a
|
|||||||
compelling replacement for CVS.
|
compelling replacement for CVS.
|
||||||
|
|
||||||
%package libs
|
%package libs
|
||||||
Group: Development/Tools
|
|
||||||
Summary: Libraries for Subversion Version Control system
|
Summary: Libraries for Subversion Version Control system
|
||||||
# APR 1.3.x interfaces are required
|
# APR 1.3.x interfaces are required
|
||||||
Conflicts: apr%{?_isa} < 1.3.0
|
Conflicts: apr%{?_isa} < 1.5.0
|
||||||
# Enforced at run-time by ra_serf
|
# Enforced at run-time by ra_serf
|
||||||
Conflicts: libserf%{?_isa} < 1.3.0
|
Conflicts: libserf%{?_isa} < 1.3.0
|
||||||
|
|
||||||
@ -108,7 +130,6 @@ Provides: %{name}-python = %{version}-%{release}
|
|||||||
Provides: %{name}-python%{?_isa} = %{version}-%{release}
|
Provides: %{name}-python%{?_isa} = %{version}-%{release}
|
||||||
Obsoletes: %{name}-python < %{version}-%{release}
|
Obsoletes: %{name}-python < %{version}-%{release}
|
||||||
BuildRequires: python2-devel
|
BuildRequires: python2-devel
|
||||||
Group: Development/Libraries
|
|
||||||
Summary: Python bindings for Subversion Version Control system
|
Summary: Python bindings for Subversion Version Control system
|
||||||
|
|
||||||
%description -n python2-subversion
|
%description -n python2-subversion
|
||||||
@ -118,9 +139,10 @@ Subversion libraries.
|
|||||||
%if %{with python3} && %{with pyswig}
|
%if %{with python3} && %{with pyswig}
|
||||||
%package -n python3-subversion
|
%package -n python3-subversion
|
||||||
%{?python_provide:%python_provide python3-subversion}
|
%{?python_provide:%python_provide python3-subversion}
|
||||||
Group: Development/Libraries
|
|
||||||
Summary: Python bindings for Subversion Version Control system
|
Summary: Python bindings for Subversion Version Control system
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel py3c-devel
|
||||||
|
BuildRequires: (python3-setuptools if python3-devel >= 3.12)
|
||||||
|
Requires: subversion-libs%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description -n python3-subversion
|
%description -n python3-subversion
|
||||||
The python3-subversion package includes the Python 3.x bindings to the
|
The python3-subversion package includes the Python 3.x bindings to the
|
||||||
@ -128,9 +150,8 @@ Subversion libraries.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Group: Development/Tools
|
|
||||||
Summary: Development package for the Subversion libraries
|
Summary: Development package for the Subversion libraries
|
||||||
Requires: subversion%{?_isa} = %{version}-%{release}
|
Requires: subversion-libs%{?_isa} = %{version}-%{release}
|
||||||
Requires: apr-devel%{?_isa}, apr-util-devel%{?_isa}
|
Requires: apr-devel%{?_isa}, apr-util-devel%{?_isa}
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
@ -138,9 +159,8 @@ The subversion-devel package includes the libraries and include files
|
|||||||
for developers interacting with the subversion package.
|
for developers interacting with the subversion package.
|
||||||
|
|
||||||
%package gnome
|
%package gnome
|
||||||
Group: Development/Tools
|
|
||||||
Summary: GNOME Keyring support for Subversion
|
Summary: GNOME Keyring support for Subversion
|
||||||
Requires: subversion%{?_isa} = %{version}-%{release}
|
Requires: subversion-libs%{?_isa} = %{version}-%{release}
|
||||||
BuildRequires: dbus-devel, libsecret-devel
|
BuildRequires: dbus-devel, libsecret-devel
|
||||||
|
|
||||||
%description gnome
|
%description gnome
|
||||||
@ -149,10 +169,10 @@ passwords in the GNOME Keyring.
|
|||||||
|
|
||||||
%if %{with kwallet}
|
%if %{with kwallet}
|
||||||
%package kde
|
%package kde
|
||||||
Group: Development/Tools
|
|
||||||
Summary: KDE Wallet support for Subversion
|
Summary: KDE Wallet support for Subversion
|
||||||
Requires: subversion%{?_isa} = %{version}-%{release}
|
Requires: subversion-libs%{?_isa} = %{version}-%{release}
|
||||||
BuildRequires: kdelibs-devel >= 4.0.0
|
BuildRequires: qt5-qtbase-devel >= 5.0.0, kf5-kwallet-devel, kf5-ki18n-devel
|
||||||
|
BuildRequires: kf5-kcoreaddons-devel
|
||||||
|
|
||||||
%description kde
|
%description kde
|
||||||
The subversion-kde package adds support for storing Subversion
|
The subversion-kde package adds support for storing Subversion
|
||||||
@ -160,7 +180,6 @@ passwords in the KDE Wallet.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%package -n mod_dav_svn
|
%package -n mod_dav_svn
|
||||||
Group: System Environment/Daemons
|
|
||||||
Summary: Apache httpd module for Subversion server
|
Summary: Apache httpd module for Subversion server
|
||||||
Requires: httpd-mmn = %{_httpd_mmn}
|
Requires: httpd-mmn = %{_httpd_mmn}
|
||||||
Requires: subversion-libs%{?_isa} = %{version}-%{release}
|
Requires: subversion-libs%{?_isa} = %{version}-%{release}
|
||||||
@ -171,22 +190,19 @@ The mod_dav_svn package allows access to a Subversion repository
|
|||||||
using HTTP, via the Apache httpd server.
|
using HTTP, via the Apache httpd server.
|
||||||
|
|
||||||
%package perl
|
%package perl
|
||||||
Group: Development/Libraries
|
|
||||||
Summary: Perl bindings to the Subversion libraries
|
Summary: Perl bindings to the Subversion libraries
|
||||||
BuildRequires: perl-devel >= 2:5.8.0, perl-generators, perl(ExtUtils::MakeMaker)
|
BuildRequires: perl-devel >= 2:5.8.0, perl-generators, perl(ExtUtils::MakeMaker)
|
||||||
BuildRequires: perl(Test::More), perl(ExtUtils::Embed)
|
BuildRequires: perl(Test::More), perl(ExtUtils::Embed)
|
||||||
Requires: %(eval `perl -V:version`; echo "perl(:MODULE_COMPAT_$version)")
|
Requires: subversion-libs%{?_isa} = %{version}-%{release}
|
||||||
Requires: subversion%{?_isa} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description perl
|
%description perl
|
||||||
This package includes the Perl bindings to the Subversion libraries.
|
This package includes the Perl bindings to the Subversion libraries.
|
||||||
|
|
||||||
%if %{with_java}
|
%if %{with java}
|
||||||
%package javahl
|
%package javahl
|
||||||
Group: Development/Libraries
|
|
||||||
Summary: JNI bindings to the Subversion libraries
|
Summary: JNI bindings to the Subversion libraries
|
||||||
Requires: subversion = %{version}-%{release}
|
Requires: subversion = %{version}-%{release}
|
||||||
BuildRequires: java-devel-openjdk
|
BuildRequires: java-17-openjdk-devel
|
||||||
# JAR repacking requires both zip and unzip in the buildroot
|
# JAR repacking requires both zip and unzip in the buildroot
|
||||||
BuildRequires: zip, unzip
|
BuildRequires: zip, unzip
|
||||||
# For the tests
|
# For the tests
|
||||||
@ -197,44 +213,58 @@ BuildArch: noarch
|
|||||||
This package includes the JNI bindings to the Subversion libraries.
|
This package includes the JNI bindings to the Subversion libraries.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %{with ruby}
|
||||||
%package ruby
|
%package ruby
|
||||||
Group: Development/Libraries
|
|
||||||
Summary: Ruby bindings to the Subversion libraries
|
Summary: Ruby bindings to the Subversion libraries
|
||||||
BuildRequires: ruby-devel >= 1.9.1, ruby >= 1.9.1
|
BuildRequires: ruby-devel >= 1.9.1, ruby >= 1.9.1
|
||||||
BuildRequires: rubygem(test-unit)
|
BuildRequires: rubygem(test-unit)
|
||||||
Requires: subversion%{?_isa} = %{version}-%{release}
|
Requires: subversion-libs%{?_isa} = %{version}-%{release}
|
||||||
Conflicts: ruby-libs%{?_isa} < 1.8.2
|
Conflicts: ruby-libs%{?_isa} < 1.8.2
|
||||||
|
|
||||||
%description ruby
|
%description ruby
|
||||||
This package includes the Ruby bindings to the Subversion libraries.
|
This package includes the Ruby bindings to the Subversion libraries.
|
||||||
|
%endif
|
||||||
|
|
||||||
%package tools
|
%package tools
|
||||||
Group: Development/Tools
|
|
||||||
Summary: Supplementary tools for Subversion
|
Summary: Supplementary tools for Subversion
|
||||||
Requires: subversion%{?_isa} = %{version}-%{release}
|
Requires: subversion-libs%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description tools
|
%description tools
|
||||||
This package includes supplementary tools for use with Subversion.
|
This package includes supplementary tools for use with Subversion.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1 -b .rpath
|
%patch -P1 -p1 -b .linking
|
||||||
%patch2 -p1 -b .pie
|
%patch -P2 -p1 -b .testwarn
|
||||||
%patch4 -p1 -b .rubybind
|
%patch -P3 -p1 -b .soversion
|
||||||
%patch5 -p1 -b .swigplWall
|
%patch -P4 -p1 -b .rubybind
|
||||||
%patch6 -p1 -b .cve0203
|
%patch -P5 -p1 -b .swigplWall
|
||||||
%patch7 -p1 -b .cve11782
|
%patch -P6 -p1 -b .testnomagic
|
||||||
|
%patch -P7 -p1
|
||||||
|
%patch -P8 -p1 -b .modsyms
|
||||||
|
%patch -P9 -p1 -b .zlib
|
||||||
|
|
||||||
|
:
|
||||||
|
: === Building:
|
||||||
|
: === Python3=%{with python3} Python2=%{with python2} PySwig=%{with pyswig}
|
||||||
|
: === Java=%{with java} Ruby=%{with ruby}
|
||||||
|
: === BDB=%{with bdb} Tests=%{with tests} KWallet=%{with kwallet}
|
||||||
|
:
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Regenerate the buildsystem, so that:
|
# Regenerate the buildsystem, so that any patches applied to
|
||||||
# 1) patches applied to configure.in take effect
|
# configure, swig bindings etc take effect.
|
||||||
# 2) the swig bindings are regenerated using the system swig
|
|
||||||
# (2) is not ideal since typically upstream test with a different
|
|
||||||
# swig version
|
|
||||||
# This PATH order makes the fugly test for libtoolize work...
|
|
||||||
mv build-outputs.mk build-outputs.mk.old
|
mv build-outputs.mk build-outputs.mk.old
|
||||||
export PYTHON=%{svn_python}
|
export PYTHON=%{svn_python}
|
||||||
|
|
||||||
|
### Force regeneration of swig bindings with the buildroot's SWIG.
|
||||||
|
# Generated files depend on the build/generator/swig/*.py which
|
||||||
|
# generates them, so when autogen-standalone.mk's autogen-swig target
|
||||||
|
# is run by autogen.sh it will regenerate them:
|
||||||
|
touch build/generator/swig/*.py
|
||||||
|
|
||||||
|
### Regenerate everything:
|
||||||
|
# This PATH order makes the fugly test for libtoolize work...
|
||||||
PATH=/usr/bin:$PATH ./autogen.sh --release
|
PATH=/usr/bin:$PATH ./autogen.sh --release
|
||||||
|
|
||||||
# fix shebang lines, #111498
|
# fix shebang lines, #111498
|
||||||
@ -246,28 +276,37 @@ perl -pi -e 's|/usr/bin/env python.*|%{svn_python}|' subversion/tests/cmdline/sv
|
|||||||
export svn_cv_ruby_link="%{__cc} -shared"
|
export svn_cv_ruby_link="%{__cc} -shared"
|
||||||
export svn_cv_ruby_sitedir_libsuffix=""
|
export svn_cv_ruby_sitedir_libsuffix=""
|
||||||
export svn_cv_ruby_sitedir_archsuffix=""
|
export svn_cv_ruby_sitedir_archsuffix=""
|
||||||
|
%if 0%{?fedora} >= 32 || 0%{?rhel} >= 9
|
||||||
|
# Fix include path for ruby2.7
|
||||||
|
export svn_cv_ruby_includes="-I%{_includedir}"
|
||||||
|
%endif
|
||||||
|
|
||||||
#export EXTRA_CFLAGS="$RPM_OPT_FLAGS -DSVN_SQLITE_MIN_VERSION_NUMBER=3007012 \
|
#export EXTRA_CFLAGS="$RPM_OPT_FLAGS -DSVN_SQLITE_MIN_VERSION_NUMBER=3007012 \
|
||||||
# -DSVN_SQLITE_MIN_VERSION=\\\"3.7.12\\\""
|
# -DSVN_SQLITE_MIN_VERSION=\\\"3.7.12\\\""
|
||||||
export APACHE_LDFLAGS="-Wl,-z,relro,-z,now"
|
export APACHE_LDFLAGS="-Wl,-z,relro,-z,now"
|
||||||
export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path}
|
export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path}
|
||||||
|
|
||||||
|
export CFLAGS="%{build_cflags} -Wno-error=incompatible-pointer-types"
|
||||||
|
# neccessary for libtool compilation of bindings
|
||||||
|
export LT_CFLAGS="$CFLAGS"
|
||||||
|
|
||||||
%configure --with-apr=%{_prefix} --with-apr-util=%{_prefix} \
|
%configure --with-apr=%{_prefix} --with-apr-util=%{_prefix} \
|
||||||
--disable-debug \
|
--disable-debug \
|
||||||
--with-swig --with-serf=%{_prefix} \
|
--with-swig --with-serf=%{_prefix} \
|
||||||
--with-ruby-sitedir=%{ruby_vendorarchdir} \
|
--with-ruby-sitedir=%{ruby_vendorarchdir} \
|
||||||
--with-ruby-test-verbose=verbose \
|
--with-ruby-test-verbose=verbose \
|
||||||
--with-apxs=%{_httpd_apxs} --disable-mod-activation \
|
--with-apxs=%{_httpd_apxs} --disable-mod-activation \
|
||||||
|
--enable-plaintext-password-storage \
|
||||||
--with-apache-libexecdir=%{_httpd_moddir} \
|
--with-apache-libexecdir=%{_httpd_moddir} \
|
||||||
--disable-static --with-sasl=%{_prefix} \
|
--disable-static --with-sasl=%{_prefix} \
|
||||||
--with-libmagic=%{_prefix} \
|
--with-libmagic=%{_prefix} \
|
||||||
--with-gnome-keyring \
|
--with-gnome-keyring \
|
||||||
%if %{with_java}
|
%if %{with java}
|
||||||
--enable-javahl \
|
--enable-javahl \
|
||||||
--with-junit=%{_prefix}/share/java/junit.jar \
|
--with-junit=%{_prefix}/share/java/junit.jar \
|
||||||
%endif
|
%endif
|
||||||
%if %{with kwallet}
|
%if %{with kwallet}
|
||||||
--with-kwallet=%{_includedir}/kde4:%{_libdir}/kde4/devel \
|
--with-kwallet=%{_includedir}:%{_libdir} \
|
||||||
%endif
|
%endif
|
||||||
%if %{with bdb}
|
%if %{with bdb}
|
||||||
--with-berkeley-db \
|
--with-berkeley-db \
|
||||||
@ -279,8 +318,11 @@ make %{?_smp_mflags} all tools
|
|||||||
%if %{with pyswig}
|
%if %{with pyswig}
|
||||||
make swig-py swig-py-lib %{swigdirs}
|
make swig-py swig-py-lib %{swigdirs}
|
||||||
%endif
|
%endif
|
||||||
make swig-pl swig-pl-lib swig-rb swig-rb-lib
|
make swig-pl swig-pl-lib
|
||||||
%if %{with_java}
|
%if %{with ruby}
|
||||||
|
make swig-rb swig-rb-lib
|
||||||
|
%endif
|
||||||
|
%if %{with java}
|
||||||
# javahl-javah does not parallel-make with javahl
|
# javahl-javah does not parallel-make with javahl
|
||||||
#make javahl-java javahl-javah
|
#make javahl-java javahl-javah
|
||||||
make javahl
|
make javahl
|
||||||
@ -291,10 +333,16 @@ make install DESTDIR=$RPM_BUILD_ROOT
|
|||||||
%if %{with pyswig}
|
%if %{with pyswig}
|
||||||
make install-swig-py %{swigdirs} DESTDIR=$RPM_BUILD_ROOT
|
make install-swig-py %{swigdirs} DESTDIR=$RPM_BUILD_ROOT
|
||||||
%endif
|
%endif
|
||||||
make install-swig-pl-lib install-swig-rb DESTDIR=$RPM_BUILD_ROOT
|
|
||||||
|
make install-swig-pl-lib DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
%if %{with ruby}
|
||||||
|
make install-swig-rb DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
%endif
|
||||||
|
|
||||||
make pure_vendor_install -C subversion/bindings/swig/perl/native \
|
make pure_vendor_install -C subversion/bindings/swig/perl/native \
|
||||||
PERL_INSTALL_ROOT=$RPM_BUILD_ROOT
|
PERL_INSTALL_ROOT=$RPM_BUILD_ROOT
|
||||||
%if %{with_java}
|
|
||||||
|
%if %{with java}
|
||||||
make install-javahl-java install-javahl-lib javahl_javadir=%{_javadir} DESTDIR=$RPM_BUILD_ROOT
|
make install-javahl-java install-javahl-lib javahl_javadir=%{_javadir} DESTDIR=$RPM_BUILD_ROOT
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -360,6 +408,9 @@ sed -i "/^dependency_libs/{
|
|||||||
s,%{_libdir}/lib[^a][^p][^r][^ ']*.la, ,g;
|
s,%{_libdir}/lib[^a][^p][^r][^ ']*.la, ,g;
|
||||||
}" $RPM_BUILD_ROOT%{_libdir}/*.la
|
}" $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||||
|
|
||||||
|
# Trim libdir in pkgconfig files to avoid multilib conflicts
|
||||||
|
sed -i '/^libdir=/d' $RPM_BUILD_ROOT%{_datadir}/pkgconfig/libsvn*.pc
|
||||||
|
|
||||||
# Install bash completion
|
# Install bash completion
|
||||||
install -Dpm 644 tools/client-side/bash_completion \
|
install -Dpm 644 tools/client-side/bash_completion \
|
||||||
$RPM_BUILD_ROOT%{_datadir}/bash-completion/completions/svn
|
$RPM_BUILD_ROOT%{_datadir}/bash-completion/completions/svn
|
||||||
@ -429,7 +480,7 @@ if ! make check-swig-py; then
|
|||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
# check-swig-rb omitted: it runs svnserve
|
# check-swig-rb omitted: it runs svnserve
|
||||||
%if %{with_java}
|
%if %{with java}
|
||||||
make check-javahl
|
make check-javahl
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
@ -443,22 +494,14 @@ make check-javahl
|
|||||||
%postun
|
%postun
|
||||||
%systemd_postun_with_restart svnserve.service
|
%systemd_postun_with_restart svnserve.service
|
||||||
|
|
||||||
%post libs -p /sbin/ldconfig
|
%ldconfig_scriptlets libs
|
||||||
|
|
||||||
%postun libs -p /sbin/ldconfig
|
%ldconfig_scriptlets perl
|
||||||
|
|
||||||
%post perl -p /sbin/ldconfig
|
%ldconfig_scriptlets ruby
|
||||||
|
|
||||||
%postun perl -p /sbin/ldconfig
|
%if %{with java}
|
||||||
|
%ldconfig_scriptlets javahl
|
||||||
%post ruby -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%postun ruby -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%if %{with_java}
|
|
||||||
%post javahl -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%postun javahl -p /sbin/ldconfig
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files -f %{name}.files
|
%files -f %{name}.files
|
||||||
@ -479,7 +522,10 @@ make check-javahl
|
|||||||
%{_prefix}/lib/tmpfiles.d/svnserve.conf
|
%{_prefix}/lib/tmpfiles.d/svnserve.conf
|
||||||
|
|
||||||
%files tools -f tools.files
|
%files tools -f tools.files
|
||||||
%doc tools/hook-scripts tools/backup tools/bdb tools/examples tools/xslt
|
%doc tools/hook-scripts tools/backup tools/examples tools/xslt
|
||||||
|
%if %{with bdb}
|
||||||
|
%doc tools/bdb
|
||||||
|
%endif
|
||||||
|
|
||||||
%files libs
|
%files libs
|
||||||
%{!?_licensedir:%global license %%doc}
|
%{!?_licensedir:%global license %%doc}
|
||||||
@ -487,7 +533,7 @@ make check-javahl
|
|||||||
%{_libdir}/libsvn*.so.*
|
%{_libdir}/libsvn*.so.*
|
||||||
%exclude %{_libdir}/libsvn_swig_perl*
|
%exclude %{_libdir}/libsvn_swig_perl*
|
||||||
%exclude %{_libdir}/libsvn_swig_ruby*
|
%exclude %{_libdir}/libsvn_swig_ruby*
|
||||||
%if %{with_java}
|
%if %{with java}
|
||||||
%{_libdir}/libsvnjavahl-*.so
|
%{_libdir}/libsvnjavahl-*.so
|
||||||
%endif
|
%endif
|
||||||
%if %{with kwallet}
|
%if %{with kwallet}
|
||||||
@ -536,22 +582,248 @@ make check-javahl
|
|||||||
%{_libdir}/libsvn_swig_perl*
|
%{_libdir}/libsvn_swig_perl*
|
||||||
%{_mandir}/man*/*::*
|
%{_mandir}/man*/*::*
|
||||||
|
|
||||||
|
%if %{with ruby}
|
||||||
%files ruby
|
%files ruby
|
||||||
%{_libdir}/libsvn_swig_ruby*
|
%{_libdir}/libsvn_swig_ruby*
|
||||||
%{ruby_vendorarchdir}/svn
|
%{ruby_vendorarchdir}/svn
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{with_java}
|
%if %{with java}
|
||||||
%files javahl
|
%files javahl
|
||||||
%{_javadir}/svn-javahl.jar
|
%{_javadir}/svn-javahl.jar
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Mon May 18 2020 Joe Orton <jorton@redhat.com> - 1.10.2-3
|
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 1.14.3-8
|
||||||
- add security fix for CVE-2018-11782
|
- Bump release for October 2024 mass rebuild:
|
||||||
|
Resolves: RHEL-64018
|
||||||
|
|
||||||
* Thu Aug 01 2019 Lubos Uhliarik <luhliari@redhat.com> - 1.10.2-2
|
* Thu Aug 08 2024 Troy Dawson <tdawson@redhat.com> - 1.14.3-7
|
||||||
- Resolves: #1733443 - CVE-2019-0203 subversion:1.10/subversion: remote
|
- Bump release for Aug 2024 java mass rebuild
|
||||||
unauthenticated denial-of-service in subversion svnserve
|
|
||||||
|
* Wed Aug 07 2024 Tomas Korbar <tkorbar@redhat.com> - 1.14.3-6
|
||||||
|
- Fix debuginfo building and stop building ruby and java subpackages
|
||||||
|
- Resolves: RHEL-52974
|
||||||
|
|
||||||
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.14.3-5
|
||||||
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.3-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jan 21 2024 Tomas Korbar <tkorbar@redhat.com> - 1.14.3-3
|
||||||
|
- Fix building with gcc 14
|
||||||
|
- incompatible-pointer-types warnings became errors, but they've
|
||||||
|
been present for a long time and posed no threat, thus revert
|
||||||
|
the behaviour
|
||||||
|
- Resolves: rhbz#2259155
|
||||||
|
|
||||||
|
* Fri Jan 12 2024 Tomas Korbar <tkorbar@redhat.com> - 1.14.3-2
|
||||||
|
- Fix testing of binary patch
|
||||||
|
- Resolves: rhbz#2255746
|
||||||
|
|
||||||
|
* Fri Jan 05 2024 Richard Lescak <rlescak@redhat.com> - 1.14.3-1
|
||||||
|
- rebase to version 1.14.3 (#2256062)
|
||||||
|
|
||||||
|
* Wed Jan 03 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.14.2-23
|
||||||
|
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3
|
||||||
|
|
||||||
|
* Mon Nov 20 2023 Joe Orton <jorton@redhat.com> - 1.14.2-22
|
||||||
|
- fix mod_authz_svn, mod_dontdothat (#2250182)
|
||||||
|
|
||||||
|
* Wed Nov 8 2023 Joe Orton <jorton@redhat.com> - 1.14.2-21
|
||||||
|
- restore plaintext password storage by default (per upstream)
|
||||||
|
- restrict symbols exposed by DSOs built for httpd
|
||||||
|
|
||||||
|
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.2-20
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.14.2-19
|
||||||
|
- Perl 5.38 rebuild
|
||||||
|
|
||||||
|
* Mon Jul 03 2023 Python Maint <python-maint@redhat.com> - 1.14.2-18
|
||||||
|
- Rebuilt for Python 3.12
|
||||||
|
|
||||||
|
* Fri Jun 30 2023 Richard Lescak <rlescak@redhat.com> - 1.14.2-17
|
||||||
|
- temporary disable tests for eln to prevent FTBFS
|
||||||
|
|
||||||
|
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 1.14.2-16
|
||||||
|
- Rebuilt for Python 3.12
|
||||||
|
|
||||||
|
* Mon May 08 2023 Florian Weimer <fweimer@redhat.com> - 1.14.2-15
|
||||||
|
- Port to C99
|
||||||
|
|
||||||
|
* Thu Feb 16 2023 Richard Lescak <rlescak@redhat.com> - 1.14.2-14
|
||||||
|
- SPDX migration
|
||||||
|
|
||||||
|
* Fri Jan 27 2023 Richard Lescak <rlescak@redhat.com> - 1.14.2-13
|
||||||
|
- add requirement for python3-setuptools with new Python 3.12 (#2155420)
|
||||||
|
|
||||||
|
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.2-12
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 04 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.14.2-11
|
||||||
|
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2
|
||||||
|
|
||||||
|
* Sun Oct 09 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.14.2-10
|
||||||
|
- Backport upstream fix for ruby3.2 support
|
||||||
|
|
||||||
|
* Wed Oct 05 2022 Richard Lescak <rlescak@redhat.com> - 1.14.2-8
|
||||||
|
- fix segfault in Python swig test (#2128024)
|
||||||
|
|
||||||
|
* Fri Jul 29 2022 Joe Orton <jorton@redhat.com> - 1.14.2-7
|
||||||
|
- improve library versioning so filenames are unique across releases
|
||||||
|
|
||||||
|
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.2-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 5 2022 Joe Orton <jorton@redhat.com> - 1.14.2-5
|
||||||
|
- disable libmagic during test runs
|
||||||
|
|
||||||
|
* Tue Jul 5 2022 Joe Orton <jorton@redhat.com> - 1.14.2-4
|
||||||
|
- update for new Java arches and bump to JDK 17 (#2103909)
|
||||||
|
|
||||||
|
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.14.2-3
|
||||||
|
- Rebuilt for Python 3.11
|
||||||
|
|
||||||
|
* Tue May 31 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.14.2-2
|
||||||
|
- Perl 5.36 rebuild
|
||||||
|
|
||||||
|
* Wed May 4 2022 Joe Orton <jorton@redhat.com> - 1.14.2-1
|
||||||
|
- update to 1.14.2 (#2073852, CVE-2021-28544, CVE-2022-24070)
|
||||||
|
|
||||||
|
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 1.14.1-11
|
||||||
|
- Rebuilt for java-17-openjdk as system jdk
|
||||||
|
|
||||||
|
* Thu Jan 27 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.14.1-10
|
||||||
|
- F-36: rebuild against ruby31
|
||||||
|
|
||||||
|
* Mon Jan 24 2022 Timm Bäder <tbaeder@redhat.com> - 1.14.1-9
|
||||||
|
- Disable automatic .la file removal
|
||||||
|
- https://fedoraproject.org/wiki/Changes/RemoveLaFiles
|
||||||
|
|
||||||
|
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.1-8
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Dec 16 2021 Richard Lescak <rlescak@redhat.com> - 1.14.1-7
|
||||||
|
- Replaced deprecated method readfp() in gen_base.py to build with Python 3.11 (#2019019)
|
||||||
|
|
||||||
|
* Thu Jul 29 2021 Joe Orton <jorton@redhat.com> - 1.14.1-6
|
||||||
|
- fix intermittent FTBFS in tests (#1956806)
|
||||||
|
|
||||||
|
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.1-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.14.1-4
|
||||||
|
- Rebuilt for Python 3.10
|
||||||
|
|
||||||
|
* Sat May 22 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.14.1-3
|
||||||
|
- Perl 5.34 rebuild
|
||||||
|
|
||||||
|
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.14.1-2
|
||||||
|
- Rebuilt for updated systemd-rpm-macros
|
||||||
|
See https://pagure.io/fesco/issue/2583.
|
||||||
|
|
||||||
|
* Wed Feb 10 2021 Joe Orton <jorton@redhat.com> - 1.14.1-1
|
||||||
|
- update to 1.14.1 (#1927265, #1768698)
|
||||||
|
|
||||||
|
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-12
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 06 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.14.0-11
|
||||||
|
- F-34: rebuild against ruby 3.0
|
||||||
|
|
||||||
|
* Fri Dec 11 2020 Joe Orton <jorton@redhat.com> - 1.14.0-10
|
||||||
|
- strip libdir from pkgconfig files
|
||||||
|
- add missing -libs dep from python3-subversion
|
||||||
|
|
||||||
|
* Thu Dec 3 2020 Joe Orton <jorton@redhat.com> - 1.14.0-9
|
||||||
|
- fix KWallet conditional (#1902598)
|
||||||
|
|
||||||
|
* Mon Nov 30 2020 Jan Grulich <jgrulich@redhat.com> - 1.14.0-8
|
||||||
|
- Disable KWallet for RHEL and ELN
|
||||||
|
Resolves: bz#1902598
|
||||||
|
|
||||||
|
* Tue Sep 29 2020 Joe Orton <jorton@redhat.com> - 1.14.0-7
|
||||||
|
- bump required apr-devel
|
||||||
|
- BR gcc, gcc-c++
|
||||||
|
|
||||||
|
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-6
|
||||||
|
- Second attempt - Rebuilt for
|
||||||
|
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.14.0-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jun 23 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.14.0-4
|
||||||
|
- Perl 5.32 rebuild
|
||||||
|
|
||||||
|
* Wed Jun 3 2020 Merlin Mathesius <mmathesi@redhat.com> - 1.14.0-3
|
||||||
|
- Minor conditional fixes for ELN
|
||||||
|
|
||||||
|
* Wed Jun 3 2020 Joe Orton <jorton@redhat.com> - 1.14.0-2
|
||||||
|
- use minor version as libtool library revision number
|
||||||
|
|
||||||
|
* Mon Jun 1 2020 Joe Orton <jorton@redhat.com> - 1.14.0-1
|
||||||
|
- update to 1.14.0 (#1840565, #1812195)
|
||||||
|
|
||||||
|
* Tue May 19 2020 Joe Orton <jorton@redhat.com> - 1.14.0~rc2-2
|
||||||
|
- switch subpackages to lock-step requires on -libs rather than subversion
|
||||||
|
- fixed the build-requires (Jitka Plesnikova)
|
||||||
|
|
||||||
|
* Thu Apr 30 2020 Joe Orton <jorton@redhat.com> - 1.14.0~rc2-1
|
||||||
|
- drop Berkeley DB support for Fedora > 32
|
||||||
|
- BR java-11-openjdk-devel
|
||||||
|
|
||||||
|
* Thu Apr 23 2020 Joe Orton <jorton@redhat.com> - 1.14.0~rc2-0
|
||||||
|
- update to 1.14.0-rc2
|
||||||
|
|
||||||
|
* Wed Feb 12 2020 Joe Orton <jorton@redhat.com> - 1.13.0-4
|
||||||
|
- fix FTBFS on 32-bit arches (#1800120)
|
||||||
|
- conditionally package bdb tools in -tools
|
||||||
|
|
||||||
|
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.12.2-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 21 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.12.2-4
|
||||||
|
- F-32: fix include path for ruby 2.7
|
||||||
|
- Rebuild for ruby 2.7
|
||||||
|
|
||||||
|
* Mon Jan 6 2020 Joe Orton <jorton@redhat.com> - 1.12.2-3
|
||||||
|
- update for KDE 5 (Phil O, #1768693)
|
||||||
|
|
||||||
|
* Fri Aug 30 2019 Joe Orton <jorton@redhat.com> - 1.12.2-2
|
||||||
|
- switch to Python 3 for F32+ (#1737928)
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Joe Orton <jorton@redhat.com> - 1.12.2-1
|
||||||
|
- update to 1.12.2
|
||||||
|
|
||||||
|
* Sat Jun 01 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.12.0-2
|
||||||
|
- Perl 5.30 rebuild
|
||||||
|
|
||||||
|
* Wed May 1 2019 Joe Orton <jorton@redhat.com> - 1.12.0-1
|
||||||
|
- update to 1.12.0 (#1702471)
|
||||||
|
|
||||||
|
* Wed Apr 17 2019 Joe Orton <jorton@redhat.com> - 1.11.1-5
|
||||||
|
- fix build with APR 1.7.0 (upstream r1857391)
|
||||||
|
|
||||||
|
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.11.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 21 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.11.1-3
|
||||||
|
- F-30: rebuild against ruby26
|
||||||
|
|
||||||
|
* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 1.11.1-2
|
||||||
|
- Rebuilt for libcrypt.so.2 (#1666033)
|
||||||
|
|
||||||
|
* Fri Jan 11 2019 Joe Orton <jorton@redhat.com> - 1.11.1-1
|
||||||
|
- update to 1.11.1
|
||||||
|
|
||||||
|
* Wed Oct 31 2018 Joe Orton <jorton@redhat.com> - 1.11.0-1
|
||||||
|
- update to 1.11.0
|
||||||
|
|
||||||
|
* Thu Oct 11 2018 Joe Orton <jorton@redhat.com> - 1.10.3-1
|
||||||
|
- update to 1.10.3
|
||||||
|
|
||||||
* Fri Jul 20 2018 Joe Orton <jorton@redhat.com> - 1.10.2-1
|
* Fri Jul 20 2018 Joe Orton <jorton@redhat.com> - 1.10.2-1
|
||||||
- update to 1.10.2 (#1603197)
|
- update to 1.10.2 (#1603197)
|
2358
upstream-key.gpg
Normal file
2358
upstream-key.gpg
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user