fix inconsistencies in subversion.README.SUSE

OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm:svn/subversion?expand=0&rev=376
This commit is contained in:
Martin Pluskal 2025-01-02 09:18:35 +00:00 committed by Git OBS Bridge
commit e8c4cb81c8
36 changed files with 9484 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

20
_constraints Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<constraints>
<hardware>
<memory>
<size unit="M">1024</size>
</memory>
</hardware>
<overwrite>
<conditions>
<arch>aarch64</arch>
<package>subversion:testsuite</package>
</conditions>
<hardware>
<cpu>
<flag>asimdrdm</flag>
</cpu>
</hardware>
</overwrite>
</constraints>

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>testsuite</package>
</multibuild>

3
contrib-1804739.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:730fbf35e19461abe0cfb489ca6f75211497c7b25fb6e45138662c0ec2f0b0f5
size 286671

View File

@ -0,0 +1,20 @@
Index: subversion-1.14.2/build.conf
===================================================================
--- subversion-1.14.2.orig/build.conf
+++ subversion-1.14.2/build.conf
@@ -806,15 +806,6 @@ msvc-force-static = yes
# ----------------------------------------------------------------------------
# Tests for libsvn_fs_fs
-[fs-fs-pack-test]
-description = Test fsfs packing in libsvn_fs_fs
-type = exe
-path = subversion/tests/libsvn_fs_fs
-sources = fs-fs-pack-test.c
-install = test
-libs = libsvn_test libsvn_fs libsvn_fs_fs libsvn_delta
- libsvn_subr apriconv apr
-msvc-force-static = yes
[fs-fs-fuzzy-test]
description = Use fuzzying to test FSFS corruption resilience

23
fix-javahl-test.patch Normal file
View File

@ -0,0 +1,23 @@
--- a/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java.orig
+++ b/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
@@ -4744,7 +4744,19 @@ public class BasicTests extends SVNTests
ex.printStackTrace();
}
- 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

@ -0,0 +1,18 @@
Index: subversion-1.14.2/subversion/bindings/javahl/native/SVNClient.cpp
===================================================================
--- subversion-1.14.2.orig/subversion/bindings/javahl/native/SVNClient.cpp
+++ subversion-1.14.2/subversion/bindings/javahl/native/SVNClient.cpp
@@ -77,10 +77,13 @@
#include "private/svn_subr_private.h"
#include "svn_private_config.h"
+#pragma GCC push_options
+#pragma GCC optimize("-O0")
#include "ExternalItem.hpp"
#include "jniwrapper/jni_list.hpp"
#include "jniwrapper/jni_stack.hpp"
#include "jniwrapper/jni_string_map.hpp"
+#pragma GCC pop_options
SVNClient::SVNClient(jobject jthis_in)

View File

@ -0,0 +1,55 @@
From: Antonio Larrosa <alarrosa@suse.com>
Subject: Removes requirement for kf5-config (kdelibs4support)
With this, we don't need to include kdelibs4support and all its dependencies on SLE
Index: subversion-1.14.0/build/ac-macros/kwallet.m4
===================================================================
--- subversion-1.14.0.orig/build/ac-macros/kwallet.m4
+++ subversion-1.14.0/build/ac-macros/kwallet.m4
@@ -59,30 +59,13 @@ AC_DEFUN(SVN_LIB_KWALLET,
kde_lib_names="-lkdeui -lkdecore -lQtGui -lQtDBus -lQtCore"
fi
if test -n "$qt_pkg_config_names"; then
- if test "$svn_lib_kwallet" != "yes"; then
- AC_MSG_CHECKING([for $kde_config_name])
- KDE_CONFIG="$svn_lib_kwallet/bin/$kde_config_name"
- if test -f "$KDE_CONFIG" && test -x "$KDE_CONFIG"; then
- AC_MSG_RESULT([yes])
+ if echo "$svn_lib_kwallet" | $EGREP ":" > /dev/null; then
+ kde_incdir=["`echo "$svn_lib_kwallet" | $SED -e "s/:.*//"`"]
+ kde_libdir=["`echo "$svn_lib_kwallet" | $SED -e "s/.*://"`"]
else
- if echo "$svn_lib_kwallet" | $EGREP ":" > /dev/null; then
- AC_MSG_RESULT([unneeded])
- KDE_CONFIG="unneeded"
- kde_incdir=["`echo "$svn_lib_kwallet" | $SED -e "s/:.*//"`"]
- kde_libdir=["`echo "$svn_lib_kwallet" | $SED -e "s/.*://"`"]
- else
- AC_MSG_RESULT([no])
- KDE_CONFIG=""
- fi
- fi
- else
- AC_PATH_PROG(KDE_CONFIG, $kde_config_name)
- if test -n "$KDE_CONFIG"; then
- kde_incdir="`$KDE_CONFIG --install include`"
- kde_libdir="`$KDE_CONFIG --install lib`"
+ kde_incdir="${includedir}"
+ kde_libdir="${libdir}"
fi
- fi
- if test -n "$KDE_CONFIG"; then
old_CXXFLAGS="$CXXFLAGS"
old_LDFLAGS="$LDFLAGS"
old_LIBS="$LIBS"
@@ -122,9 +105,6 @@ int main()
AC_MSG_RESULT([no])
AC_MSG_ERROR([cannot find KWallet])
fi
- else
- AC_MSG_ERROR([cannot find $kde_config_name])
- fi
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([cannot find Qt])

View File

@ -0,0 +1,12 @@
Index: subversion-1.14.3/Makefile.in
===================================================================
--- subversion-1.14.3.orig/Makefile.in
+++ subversion-1.14.3/Makefile.in
@@ -741,7 +741,6 @@ doc-api: mkdir-init
doc-javahl:
$(JAVADOC) -d $(abs_builddir)/doc/javadoc \
-sourcepath $(top_srcdir)/subversion/bindings/javahl/src \
- -link http://java.sun.com/javase/6/docs/api/ \
org.tigris.subversion.javahl \
org.apache.subversion.javahl \
org.apache.subversion.javahl.callback \

View File

@ -0,0 +1,127 @@
------------------------------------------------------------------------
r1921523 | jun66j5 | 2024-10-24 05:11:00 +0200 (Thu, 24 Oct 2024) | 3 lines
Changed paths:
M /subversion/branches/1.14.x-r1921505
M /subversion/branches/1.14.x-r1921505/subversion/bindings/swig/include/svn_types.swg
M /subversion/branches/1.14.x-r1921505/subversion/bindings/swig/python/tests/client.py
M /subversion/branches/1.14.x-r1921505/subversion/bindings/swig/python/tests/core.py
On the 1.14.x-r1921505 branch: Merge r1921505 from trunk without changes for
`%typemap() svn_error_t * SVN_ERR_WITH_ATTRS`.
------------------------------------------------------------------------
Index: 1.14.x-r1921505/subversion/bindings/swig/include/svn_types.swg
===================================================================
--- 1.14.x-r1921505/subversion/bindings/swig/include/svn_types.swg (revision 1921522)
+++ 1.14.x-r1921505/subversion/bindings/swig/include/svn_types.swg (revision 1921523)
@@ -435,9 +435,32 @@
svn_error_clear($1);
SWIG_fail;
}
- Py_INCREF(Py_None);
- $result = Py_None;
+ Py_XDECREF($result);
+ $result = PyList_New(0);
}
+
+%typemap(ret) svn_error_t * {
+ if ($result == NULL) {
+ $result = Py_None;
+ Py_INCREF($result);
+ }
+ else {
+ switch (PyList_Size($result)) {
+ case 0:
+ $result = Py_None;
+ Py_INCREF($result);
+ break;
+ case 1:
+ {
+ PyObject *tmp = $result;
+ $result = PyList_GetItem(tmp, 0);
+ Py_INCREF($result);
+ Py_DECREF(tmp);
+ }
+ break;
+ }
+ }
+}
#endif
#ifdef SWIGPERL
Index: 1.14.x-r1921505/subversion/bindings/swig/python/tests/client.py
===================================================================
--- 1.14.x-r1921505/subversion/bindings/swig/python/tests/client.py (revision 1921522)
+++ 1.14.x-r1921505/subversion/bindings/swig/python/tests/client.py (revision 1921523)
@@ -172,7 +172,9 @@
path = self.temper.alloc_empty_dir('-checkout')
- self.assertRaises(ValueError, client.checkout2,
+ # TypeError is raised since SWIG 4.3.0
+ self.assertRaises((ValueError, TypeError), r'Received a NULL pointer',
+ client.checkout2,
self.repos_uri, path, None, None, True, True,
self.client_ctx)
@@ -526,7 +528,9 @@
path = self.temper.alloc_empty_dir('-update')
- self.assertRaises(ValueError, client.checkout2,
+ # TypeError is raised since SWIG 4.3.0
+ self.assertRaises((ValueError, TypeError), r'Received a NULL pointer',
+ client.checkout2,
self.repos_uri, path, None, None, True, True,
self.client_ctx)
Index: 1.14.x-r1921505/subversion/bindings/swig/python/tests/core.py
===================================================================
--- 1.14.x-r1921505/subversion/bindings/swig/python/tests/core.py (revision 1921522)
+++ 1.14.x-r1921505/subversion/bindings/swig/python/tests/core.py (revision 1921523)
@@ -333,7 +333,35 @@
[b'', 1])
svn.core.svn_stream_close(stream)
+ def test_svn_rangelist_diff(self):
+ """
+ SWIG incorrectly handles return values when the first %append_output() is
+ invoked with a list instance. svn.core.svn_rangelist_diff() is in the case.
+ We test whether the workaround for it is working.
+ """
+ def from_args(start, end, inheritable):
+ instance = svn.core.svn_merge_range_t()
+ instance.start = start
+ instance.end = end
+ instance.inheritable = inheritable
+ return instance
+
+ def to_args(instance):
+ return [instance.start, instance.end, instance.inheritable]
+
+ def map_list(f, iterator):
+ return list(map(f, iterator))
+
+ from_ = [from_args(4, 5, True), from_args(9, 13, True)]
+ to = [from_args(7, 11, True)]
+ rv = svn.core.svn_rangelist_diff(from_, to, True)
+ self.assertIsInstance(rv, (list, tuple))
+ deleted, added = rv
+ self.assertEqual([[7, 9, True]], map_list(to_args, added))
+ self.assertEqual([[4, 5, True], [11, 13, True]],map_list(to_args, deleted))
+
+
def suite():
return unittest.defaultTestLoader.loadTestsFromTestCase(
SubversionCoreTestCase)
Index: 1.14.x-r1921505
===================================================================
--- 1.14.x-r1921505 (revision 1921522)
+++ 1.14.x-r1921505 (revision 1921523)
Property changes on: 1.14.x-r1921505
___________________________________________________________________
Modified: svn:mergeinfo
## -0,0 +0,1 ##
Merged /subversion/trunk:r1921505

View File

@ -0,0 +1,143 @@
------------------------------------------------------------------------
r1921506 | jun66j5 | 2024-10-23 12:44:41 +0200 (Wed, 23 Oct 2024) | 27 lines
Changed paths:
M /subversion/trunk/subversion/bindings/swig/include/svn_containers.swg
M /subversion/trunk/subversion/bindings/swig/include/svn_types.swg
M /subversion/trunk/subversion/bindings/swig/ruby/svn/core.rb
M /subversion/trunk/subversion/bindings/swig/svn_wc.i
Make swig-rb compatible with SWIG 4.3.0.
* subversion/bindings/swig/include/svn_containers.swg
(%typemap(out) apr_hash_t *PROPHASH,
%typemap(out) apr_hash_t *CHANGED_PATH_HASH,
%typemap(out) apr_array_header_t *PROP_LIST,
%typemap(out) apr_array_header_t *PROP_LIST_MAY_BE_NULL):
Set the return value to `$result` rather than using `%append_output` in
`%typemap(out)` for Ruby.
* subversion/bindings/swig/include/svn_types.swg
(%typemap(out) svn_error_t *):
Initialize `$result` with an empty array for the workaround to
`%append_output` incorrectly handling for nil and a list in Ruby.
(%typemap(ret) svn_error_t *):
Use first entry for `$result` when the size of the `$result` list is 1.
* subversion/bindings/swig/ruby/svn/core.rb
(Svn::Core::RangeList.diff):
Revised because multiple values are correctly retrieved from SWIG methods
now.
* subversion/bindings/swig/svn_wc.i
(%typemap(ret) svn_error_t *err):
Added because `%typemap(out) svn_error_t *err` is defined.
------------------------------------------------------------------------
Index: trunk/subversion/bindings/swig/include/svn_containers.swg
===================================================================
--- trunk/subversion/bindings/swig/include/svn_containers.swg (revision 1921505)
+++ trunk/subversion/bindings/swig/include/svn_containers.swg (revision 1921506)
@@ -310,7 +310,7 @@
%typemap(out) apr_hash_t *PROPHASH
{
- %append_output(svn_swig_rb_apr_hash_to_hash_svn_string($1));
+ $result = svn_swig_rb_apr_hash_to_hash_svn_string($1);
}
#endif
@@ -326,10 +326,8 @@
#ifdef SWIGRUBY
%typemap(out) apr_hash_t *CHANGED_PATH_HASH
{
- VALUE rb_changed_path_hash;
- rb_changed_path_hash =
+ $result =
svn_swig_rb_apr_hash_to_hash_swig_type($1, "svn_log_changed_path_t *");
- %append_output(rb_changed_path_hash);
}
%apply apr_hash_t *CHANGED_PATH_HASH {
@@ -760,7 +758,7 @@
%typemap(out) apr_array_header_t *PROP_LIST
{
- %append_output(svn_swig_rb_prop_apr_array_to_hash_prop($1));
+ $result = svn_swig_rb_prop_apr_array_to_hash_prop($1);
}
%typemap(in) apr_array_header_t *PROP_LIST_MAY_BE_NULL
@@ -778,7 +776,7 @@
%typemap(out) apr_array_header_t *PROP_LIST_MAY_BE_NULL
{
- %append_output($1 ? svn_swig_rb_prop_apr_array_to_hash_prop($1) : Qnil);
+ $result = $1 ? svn_swig_rb_prop_apr_array_to_hash_prop($1) : Qnil;
}
%apply apr_array_header_t *PROP_LIST {
Index: trunk/subversion/bindings/swig/include/svn_types.swg
===================================================================
--- trunk/subversion/bindings/swig/include/svn_types.swg (revision 1921505)
+++ trunk/subversion/bindings/swig/include/svn_types.swg (revision 1921506)
@@ -532,7 +532,7 @@
#endif
#ifdef SWIGRUBY
-%typemap(out) svn_error_t *
+%typemap(out) svn_error_t * (VALUE *svn_presult = NULL)
{
if ($1) {
svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
@@ -539,8 +539,23 @@
svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
svn_swig_rb_handle_svn_error($1);
}
- $result = Qnil;
+ $result = rb_ary_new();
+ svn_presult = &$result;
}
+
+%typemap(ret) svn_error_t *
+{
+ if (TYPE(*svn_presult) == T_ARRAY) {
+ switch (rb_array_len(*svn_presult)) {
+ case 0:
+ *svn_presult = Qnil;
+ break;
+ case 1:
+ *svn_presult = rb_ary_entry(*svn_presult, 0);
+ break;
+ }
+ }
+}
#endif
/* -----------------------------------------------------------------------
Index: trunk/subversion/bindings/swig/ruby/svn/core.rb
===================================================================
--- trunk/subversion/bindings/swig/ruby/svn/core.rb (revision 1921505)
+++ trunk/subversion/bindings/swig/ruby/svn/core.rb (revision 1921506)
@@ -812,7 +812,7 @@
def diff(to, consider_inheritance=false)
result = Core.rangelist_diff(self, to, consider_inheritance)
deleted = result.pop
- added = result
+ added = result.pop
[added, deleted].collect do |result|
self.class.new(*result)
end
Index: trunk/subversion/bindings/swig/svn_wc.i
===================================================================
--- trunk/subversion/bindings/swig/svn_wc.i (revision 1921505)
+++ trunk/subversion/bindings/swig/svn_wc.i (revision 1921506)
@@ -242,6 +242,8 @@
{
$result = $1 ? svn_swig_rb_svn_error_to_rb_error($1) : Qnil;
}
+
+%typemap(ret) svn_error_t *err "";
#endif

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:44ead116e72e480f10f123c914bb6f9f8c041711c041ed7abff1b8634a199e3c
size 8509652

View File

@ -0,0 +1,27 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEEi8Ta4MWk1l9ARAEHT326qZpZuXMFAmb1IjcACgkQT326qZpZ
uXMqVgf/XkhwQvoJ54MzrQg9COlrKsjuqBg7MvAfvcnHcREbqu1b/pt9rVM5V+OI
9ofrhZfodWz6nAjHfMfFG0eBPM+qCwiwZ2cFQx0H20AW7sN3MOPizCOItBDkV/2h
2Mfhd+XjFcyE91z0vmeq7OWQtnI2mNjiHUVNnMdHRYW3v8Ga87Hk51O/kgpAfykF
MFyKVKrp+6NpIYIP80a/f4x+PDXw3tKNJnTuMcADKivNx0OzPr0AfF7F/OnG3dtQ
JWpRff8xJHgo9THdm6R3MyOkCmimPQldBL56ZWP7RdbQJYSyFvCHK/15BaDixJbM
Owg2OExJC3eMeeoGDeACRsmi+m5tjg==
=Ywix
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEP45GfLM2bjAT4RINWD8ArfmBw58FAmb7gEsACgkQWD8ArfmB
w5+7HBAAuJH77kxmf5sgvxt7twt5flctaAlrM1odOn2dPwLUb7urHj5uiJnrpaTS
u77Zm6gv8xsQRjyTKLiFWktkRE3u0LWOsWj+8k9DAZa7JswwJ5vm3ARbUjrL/MnN
mYD1jDnBXto6xQsRRAaBMtsgKUCnrN5SbUuRuzZrdP7iPzzzwChd/FVz6U99J2Vk
wma/kQzMEOgV9hZrvJROknQmhyb2iUhSQgEMGj0qTOUqyQcNvTAnFdo4uslY+pL2
7x4JSv8UZ94t7UdSRTdFGoZVewW9CIGdqZ9ajkpZFb9gIfjs/9EapIjFtgYfVENI
RIKV+fUIM5shuL9PuEBUs7yzmxbpAF1KpKuofLUqvr2wjXejmW56VD/uCWUHkBuw
nnaRbvkOv8/jMebZC7pr7uZARxvK/YI5036ir+Jbl0IZveV/IyO3ud2lpQnXM+E4
64AUCp3QaRuFmwS2Kb3QvvAC98RMOqiTrg2H/afHBxlvF1eBWJkRulIm3w4nVzxv
o56DX/Xo1i8pef3giqKwWYc5j3MYl9Wro/xZXpkDBAazzr0zYj4Ma0DFbi7NAXBw
G4IWkrKrr0QLVKgXe0U4c6wTqrGc3fsnnO+pFnGds4pW7n7HFg+4+x1LuoipNOYe
/C4HFIPKS7RRedNwhULy02raF4/w3AHxepuMYOT2uqbrOocK6MM=
=H4vd
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e78a29e7766b8b7b354497d08f71a55641abc53675ce1875584781aae35644a1
size 8675355

View File

@ -0,0 +1,34 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEEi8Ta4MWk1l9ARAEHT326qZpZuXMFAmdImqQACgkQT326qZpZ
uXP+Nwf+NxFQYbZCIEbLBvFL8Fgu1hDzI2CZSrbM/I6rX0TRDFGdBxQfp6WZkeCK
tsrIgYY1hztXP7AlnY439xXusT2cDMli9vnz03zdWQwD5bURMDZTnB067VwxTxxH
+Ol8qXU5QbXgxTxDuziH/YBVMHZIJOBFalGdJvPArlVMGYc3R+vYLji3jUXTxTOp
2Y0b8U8MJIk80uNliwiCPaxCpjp/jlX7EE/m9XyEAfmw3utNyVcxn94xpZtUFvOS
fE62udio10pFCGyGrnsX6qVn2cIIAdvXJvFtivzHRTXFu34bS3eeeb28m2En9MvH
wFhJ1R2om5c1wat7krNlb5pdyEt/Bg==
=MKVV
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEP45GfLM2bjAT4RINWD8ArfmBw58FAmdMkVYACgkQWD8ArfmB
w5+qBw//XwHW91S1BiOBRA0mlRSj+UzWDG9+D0pYsvl025GEMPhleiELbgGqh6UV
zUpmHVBQ5f3hrsiykyo7oKGEq0xMNoFafiC1qW7fmDmxIMpE8IOxAEFHEWXl8ADs
IKMLpSRI4auMCXzPzquWNlxNL4Orot0VLUO2e+AIBmGe+LaUoS2cryrzVekMI4sg
obvRkVRupXWwxA90GQ2r0e0paI8tUQZMaD8lBrj+3HEc5w17XyyhVXVPhk2VftBu
Q+sVfaW1uNw2V+3igg6uqxSvyfyfI0f5N4WQBYoSTTqR04vqGidwamCCX9ZG0Wtc
e7T5fm9AtcKGnov4JmCpmZwKB1MzWKWFXlL6o+TRa9izBfRcqsaEmb2nXCmowh9H
c2mk1MJdvvI7xe4t5zeL0szHK1Y/hfxLjrRuvJuEgaMTeLQ3/QtsGicLRG8RkTzc
HQl1mMP8mzlwSiWYwNqrB3UNW9a4hAy4ndZRlzZoYbX8WWlwxwAitrJds+84QemX
oycOWxgoIMb1OFHUCLgtZgULZ8HdEWH/0b4qG7HNRJWKljnyeIAAaFo6NvTNILYn
3n+xyYcK3vN5ogE+1Krkn2JLqhoBjXfIIWA2UR3mUYeVOwLnZc5KdjYVxvykG5xj
TqlLw05pi/Kx3pX+Npq/djfAXd6Bh0FRgG4NOkBt2Dk+mmPBVOE=
=DU6C
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
iHUEABYKAB0WIQR9yKe/N0eP9I4z6F4rSCK0tjQLrAUCZ0eYcgAKCRArSCK0tjQL
rLSZAP4572GbXMATfN9G8QWQAQ0zgxh15mRD/Raf7QTmUlQtcAEAupvFbGyFWDLk
ieRcoThYnLtNwtbI+P1sK2R2DSIqQg4=
=wIv3
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,87 @@
Prevent the linker from adding an rpath to shared libraries. Original
patch by David Kimdon <dwhedon@debian.org>. The basic theory is:
- Split the $(LINK) makefile macro into $(LINK) and $(LINK_LIB).
- Comment out LD_RUN_PATH in the Perl makefiles.
- Use libtool instead of apxs to install the apache modules.
libtool relinks without rpath in this case, apxs obviously doesn't.
---
Makefile.in | 12 +++++++-----
build.conf | 4 ++--
build/generator/gen_base.py | 3 ++-
3 files changed, 11 insertions(+), 8 deletions(-)
Index: subversion-1.14.3/Makefile.in
===================================================================
--- subversion-1.14.3.orig/Makefile.in
+++ subversion-1.14.3/Makefile.in
@@ -272,10 +272,10 @@ TEST_SHLIB_VAR_SWIG_RB=\
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 = $(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)
# special link rule for mod_dav_svn
@@ -883,7 +883,9 @@ $(SWIG_PL_DIR)/native/Makefile.PL: $(SWI
./config.status subversion/bindings/swig/perl/native/Makefile.PL
$(SWIG_PL_DIR)/native/Makefile: libsvn_swig_perl $(SWIG_PL_DIR)/native/Makefile.PL
- cd $(SWIG_PL_DIR)/native; $(SWIG_PL_PERL) Makefile.PL PREFIX=$(prefix)
+ cd $(SWIG_PL_DIR)/native; \
+ $(SWIG_PL_PERL) Makefile.PL PREFIX=$(prefix) INSTALLDIRS=vendor; \
+ sed -i -e '/^LD_RUN_PATH/s/^/#/' Makefile Makefile.[a-z]*
# There is a "readlink -f" command on some systems for the same purpose,
# but it's not as portable (e.g. Mac OS X doesn't have it). These should
Index: subversion-1.14.3/build.conf
===================================================================
--- subversion-1.14.3.orig/build.conf
+++ subversion-1.14.3/build.conf
@@ -573,7 +573,7 @@ lang = python
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) $(SWIG_PY_LIBS)
install = swig-py-lib
# need special build rule to include -DSWIGPYTHON
compile-cmd = $(COMPILE_SWIG_PY)
@@ -599,7 +599,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 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)
Index: subversion-1.14.3/build/generator/gen_base.py
===================================================================
--- subversion-1.14.3.orig/build/generator/gen_base.py
+++ subversion-1.14.3/build/generator/gen_base.py
@@ -600,7 +600,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')
@@ -654,6 +654,7 @@ class TargetExe(TargetLinked):
extmap = self.gen_obj._extension_map
self.objext = extmap['exe', 'object']
self.filename = build_path_join(self.path, name + extmap['exe', 'target'])
+ self.link_cmd = '$(LINK)'
self.manpages = options.get('manpages', '')
self.testing = options.get('testing')

View File

@ -0,0 +1,11 @@
--- a/Makefile.in.orig
+++ b/Makefile.in
@@ -879,7 +879,7 @@ clean-swig-headers:
extraclean-swig-headers: clean-swig-headers
$(EXTRACLEAN_SWIG_HEADERS)
-$(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in
+$(SWIG_PL_DIR)/native/Makefile.PL: $(SWIG_SRC_DIR)/perl/native/Makefile.PL.in libsvn_swig_perl
./config.status subversion/bindings/swig/perl/native/Makefile.PL
$(SWIG_PL_DIR)/native/Makefile: libsvn_swig_perl $(SWIG_PL_DIR)/native/Makefile.PL

View File

@ -0,0 +1,86 @@
From: Andreas Stieger <andreas.stieger@gmx.de>
Date: Wed, 06 Mar 2013 00:05:08 +0000
Subject: Remove volatile build information
Upstream: never
Prevent unneccessary rebuilds of binary packages differing only by date, time and build host.
---
subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java | 4 ++--
subversion/libsvn_subr/opt.c | 8 ++------
subversion/libsvn_subr/version.c | 4 ++--
subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stdout | 1 -
subversion/tests/cmdline/getopt_tests_data/svn--version_stdout | 1 -
5 files changed, 6 insertions(+), 12 deletions(-)
Index: subversion-1.14.4/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
===================================================================
--- subversion-1.14.4.orig/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
+++ subversion-1.14.4/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
@@ -149,10 +149,10 @@ public class BasicTests extends SVNTests
{
vx = client.getVersionExtended(false);
String result = vx.getBuildDate();
- if (result == null || result.trim().length() == 0)
+ if (result == null)
throw new Exception("Build date empty");
result = vx.getBuildTime();
- if (result == null || result.trim().length() == 0)
+ if (result == null)
throw new Exception("Build time empty");
result = vx.getBuildHost();
if (result == null || result.trim().length() == 0)
Index: subversion-1.14.4/subversion/libsvn_subr/opt.c
===================================================================
--- subversion-1.14.4.orig/subversion/libsvn_subr/opt.c
+++ subversion-1.14.4/subversion/libsvn_subr/opt.c
@@ -1147,12 +1147,8 @@ svn_opt__print_version_info(const char *
if (quiet)
return svn_cmdline_printf(pool, "%s\n", SVN_VER_NUMBER);
- SVN_ERR(svn_cmdline_printf(pool, _("%s, version %s\n"
- " compiled %s, %s on %s\n\n"),
- pgm_name, SVN_VERSION,
- svn_version_ext_build_date(info),
- svn_version_ext_build_time(info),
- svn_version_ext_build_host(info)));
+ SVN_ERR(svn_cmdline_printf(pool, _("%s, version %s\n\n"),
+ pgm_name, SVN_VERSION));
SVN_ERR(svn_cmdline_printf(pool, "%s\n", svn_version_ext_copyright(info)));
if (footer)
Index: subversion-1.14.4/subversion/libsvn_subr/version.c
===================================================================
--- subversion-1.14.4.orig/subversion/libsvn_subr/version.c
+++ subversion-1.14.4/subversion/libsvn_subr/version.c
@@ -139,8 +139,8 @@ svn_version_extended(svn_boolean_t verbo
{
svn_version_extended_t *info = apr_pcalloc(pool, sizeof(*info));
- info->build_date = __DATE__;
- info->build_time = __TIME__;
+ info->build_date = "";
+ info->build_time = "";
info->build_host = SVN_BUILD_HOST;
info->copyright = apr_pstrdup
(pool, _("Copyright (C) 2024 The Apache Software Foundation.\n"
Index: subversion-1.14.4/subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stdout
===================================================================
--- subversion-1.14.4.orig/subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stdout
+++ subversion-1.14.4/subversion/tests/cmdline/getopt_tests_data/svn--version--verbose_stdout
@@ -1,5 +1,4 @@
svn, version 1.9.0-dev (under development)
- compiled Feb 26 2014, 15:15:42 on x86_64-unknown-openbsd5.5
Copyright (C) 2012 The Apache Software Foundation.
This software consists of contributions made by many people;
Index: subversion-1.14.4/subversion/tests/cmdline/getopt_tests_data/svn--version_stdout
===================================================================
--- subversion-1.14.4.orig/subversion/tests/cmdline/getopt_tests_data/svn--version_stdout
+++ subversion-1.14.4/subversion/tests/cmdline/getopt_tests_data/svn--version_stdout
@@ -1,5 +1,4 @@
svn, version 1.9.0-dev (under development)
- compiled Feb 26 2014, 15:15:42 on x86_64-unknown-openbsd5.5
Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people;

View File

@ -0,0 +1,26 @@
Index: subversion-1.14.3/Makefile.in
===================================================================
--- subversion-1.14.3.orig/Makefile.in
+++ subversion-1.14.3/Makefile.in
@@ -901,7 +901,7 @@ swig-pl: autogen-swig-pl $(SWIG_PL_DIR)/
fi; \
done; \
fi
- cd $(SWIG_PL_DIR)/native; $(MAKE) OPTIMIZE="" OTHERLDFLAGS="$(SWIG_LDFLAGS)"
+ cd $(SWIG_PL_DIR)/native; $(MAKE)
check-swig-pl: swig-pl swig-pl-lib
cd $(SWIG_PL_DIR)/native; $(MAKE) test
Index: subversion-1.14.3/subversion/bindings/swig/perl/native/Makefile.PL.in
===================================================================
--- subversion-1.14.3.orig/subversion/bindings/swig/perl/native/Makefile.PL.in
+++ subversion-1.14.3/subversion/bindings/swig/perl/native/Makefile.PL.in
@@ -85,7 +85,7 @@ my %config = (
" -I$svnlib_builddir",
" -I$swig_srcdir -g"),
OBJECT => q/$(O_FILES)/,
- LIBS => [join(' ', $apr_ldflags,
+ LIBS => [join(' ', $apr_ldflags, '-lpthread -lapr-1 -lperl',
(map {"-L$_"} @ldpaths),
@ldmodules, '-lsvn_swig_perl-1',
`$swig -perl -ldflags`)],

View File

@ -0,0 +1,13 @@
Index: subversion-1.14.2/Makefile.in
===================================================================
--- subversion-1.14.2.orig/Makefile.in
+++ subversion-1.14.2/Makefile.in
@@ -96,7 +96,7 @@ swig_rbdir = $(SWIG_RB_SITE_ARCH_DIR)/sv
toolsdir = @bindir@/svn-tools
# where to install pkg-config files
-pkgconfig_dir = $(datadir)/pkgconfig
+pkgconfig_dir = $(libdir)/pkgconfig
javahl_javadir = @libdir@/svn-javahl
javahl_javahdir = @libdir@/svn-javahl/include

3
subversion-rpmlintrc Normal file
View File

@ -0,0 +1,3 @@
# libsvn_subr calls exit as part of the default malfunction handler.
# That's OK. Library users are expected to override the default handler.
addFilter("subversion.*shared-lib-calls-exit.*libsvn_subr-1.so.*")

View File

@ -0,0 +1,18 @@
Don't drop -Wall in the swig Perl bindings, otherwise building with
e.g. -Wformat-security might break.
https://bugzilla.redhat.com/show_bug.cgi?id=1037341
Index: subversion-1.14.2/subversion/bindings/swig/perl/native/Makefile.PL.in
===================================================================
--- subversion-1.14.2.orig/subversion/bindings/swig/perl/native/Makefile.PL.in
+++ subversion-1.14.2/subversion/bindings/swig/perl/native/Makefile.PL.in
@@ -61,7 +61,6 @@ chomp($cflags);
# SWIG is using C++ style comments in an extern "C" code.
$cflags =~ s/-ansi\s+//g;
$cflags =~ s/-std=c89\s+//g;
-$cflags =~ s/-Wall//g;
$cflags =~ s/-Wunused//g;
$cflags =~ s/-Wshadow//g;
$cflags =~ s/-Wstrict-prototypes//g;

View File

@ -0,0 +1,16 @@
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: subversion-1.14.3/Makefile.in
===================================================================
--- subversion-1.14.3.orig/Makefile.in
+++ subversion-1.14.3/Makefile.in
@@ -905,7 +905,7 @@ check-swig-pl: swig-pl swig-pl-lib
cd $(SWIG_PL_DIR)/native; $(MAKE) test
install-swig-pl: swig-pl install-swig-pl-lib
- cd $(SWIG_PL_DIR)/native; $(MAKE) install
+ cd $(SWIG_PL_DIR)/native; $(MAKE) install_vendor
EXTRACLEAN_SWIG_PL=rm -f $(SWIG_PL_SRC_DIR)/native/svn_*.c \
$(SWIG_PL_SRC_DIR)/native/core.c

265
subversion.README.SUSE Normal file
View File

@ -0,0 +1,265 @@
Quickstart document for Apache Subversion on openSUSE.
For the full documentation, install the package subversion-doc and see
/usr/share/doc/packages/subversion/html/book/svn-book.html
An online version can be found at http://svnbook.red-bean.com/
Topics:
0. upgrading to Apache Subversion 1.11
1. mini-howto
2. allowing anonymous read access
3. serving several repositories with SVNParentPath
4. serving the repositories at "/"
5. running svnserve
6. running svnserve under a different user
7. quickstart for mod_dontdothat
================================================================================
0. upgrading to Apache Subversion 1.11
- concerns when upgrading from earlier versions
* Upgrading the Working Copy
1.11 uses the same working copy format as 1.8 through 1.10. When upgrading
a working copy from a client earlier than 1.8, a one-time execution of
"svn upgrade" is required. After that, clients earlier than 1.8 will
be unable to use the working copy. For details, please see:
https://subversion.apache.org/docs/release-notes/1.10.html#wc-upgrade
* Upgrading the Repository
1.11 can read and write repositories created by earlier versions.
"svnadmin upgrade" may be used to upgrade to FSFS format 8 of 1.10,
after which the repository will be no longer be usable for 1.9 servers.
An optional dump/load cycle may be used to apply FSFS improvements
to past revisions, for 1.10 this is the LZ4 compression feature.
https://subversion.apache.org/docs/release-notes/1.10.html#compatibility
https://subversion.apache.org/docs/release-notes/1.10.html#lz4
================================================================================
1. mini-howto
To run a subversion server, you need to configure apache2 to load two modules:
mod_dav and mod_dav_svn.
zypper in subversion-server
a2enmod dav
a2enmod dav_svn
A default/example configuration of the dav_svn module can be found in
/etc/apache2/conf.d/subversion.conf. The current default configuration
automatically includes this file the default server configuration.
The MaxKeepAliveRequests option in httpd.conf needs to be increased from 100
(the default) to at least 1000 (there is no reason why it could not be 10000).
This will improve performance by allowing serf clients to use fewer TCP
connections to the server. Clients using neon will also work fine with this
configuration.
Create some directories to contain the repositories and other files:
mkdir -p /srv/svn/repos
mkdir -p /srv/svn/user_access
mkdir -p /srv/svn/html
Edit /etc/apache2/conf.d/subversion.conf and uncomment the desired sections.
The first section "project related HTML files" is optional and will allow you
to return some static content when /repos is accessed alone. If you do not need
this, discard this section.
If instead you wish to show a list of repositories, set "SVNListParentPath on"
later. See for details:
http://svnbook.red-bean.com/en/1.8/svn.serverconfig.httpd.html#svn.serverconfig.httpd.extra.browsing.reposlisting
The section following that will configure a repository to be served out of
the path /srv/svn/repos/myproject1. Note that the location "/repo/myproject1"
and "SVNPath" is specified explicitly, see section 3 for an alternative.
To create the repository itself:
cd /srv/svn/repos
svnadmin create myproject1
chown -R wwwrun:www myproject1/{db,locks}
If using svnserve is not planned, /srv/svn/repos may be owned by wwrun:www.
Otherwise see instruction in the svnserve section on how to use the user and
group svn.
The webserver must be (re)started:
rcapache2 restart
To create the user access files:
touch /srv/svn/user_access/myproject1_passwdfile
chown root:www /srv/svn/user_access/myproject1_passwdfile
chmod 640 /srv/svn/user_access/myproject1_passwdfile
htpasswd2 /srv/svn/user_access/myproject1_passwdfile user1
htpasswd2 /srv/svn/user_access/myproject1_passwdfile user2
Create the group file for myproject1:
/srv/svn/user_access/myproject1_groupfile
myproject1_committers: user2
myproject1_readers: user1 user2
You can test access by:
svn info http://127.0.0.1/repos/myproject1
================================================================================
2. allowing anonymous read access
To allow anonymous read access, remove the <Limit GET...> section and move the
three Auth* statements into the <LimitExcept GET...> section.
================================================================================
3. serving several repositories with SVNParentPath
When serving several repositories, instead of specifying each location with
SVNPath in a separate location, you can use SVNParentPath with a single location.
Change the <Location ...> directive form the template to start with the following:
<Location /repos/>
DAV svn
SVNParentPath /srv/svn/repos
SVNListParentPath on
Do not forget to restart the apache service to make the configuration effective.
service apache2 restart
================================================================================
4. serving the repositories at "/"
Include the configuration into the relevant vhost configuration. Uncomment the
section in the template files labeled 'Hosting svn at "/"' and adjust as required.
Note that this example uses "SVNParentPath" as given in the previous section.
================================================================================
5. running svnserve
Subversion repositories can be via the svnserve daemon and a special network
protocol. svnserve should not run as root user. The startup scripts expects a
user/group named 'svn'.
The subversion package creates an user and group svn.
If you want to expose the repository via both svnserve and mod_dav_svn
(Apache httpd) in parallel, ensure that the apache user is part of the
svn group.
usermod -A svn wwwrun
This requires a restart of the apache2 service to become effective.
Change the permissions to let the svn group write, and set the setgid flag
on the repositories.
chown -R svn:svn /srv/svn/repos
chmod -R g+ws /srv/svn/repos
Then proceed to create repositories using svnadmin create described above.
In either case, if using svnserve, ensure that the repositories are owned by
svn:svn.
The settings files with the options passed to the daemon is is located in:
/etc/sysconfig/svnserve
To start, ensure proper ownership of repositories and run:
systemctl start svnserve
For further information about multi-method repository access, see
http://svnbook.red-bean.com/en/1.8/svn.serverconfig.multimethod.html
You can test repository access by:
svn info svn://127.0.0.1/myproject1
Please note that by default, svnserve is configured to be started with -R,
meaning read-only access only. Remove to allow write access, after you have
configured access via
/srv/svn/repos/myproject1/conf/svnserve.conf
To configue authentication for svnserve, see
http://svnbook.red-bean.com/en/1.8/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.auth
================================================================================
6. running svnserve under a different user
By default, the svnserve daemon will run with the svn:svn user and group.
To configure the user under which the svnserve daemon will be executed:
systemctl edit svnserve
Enter overriding settings as required:
[Service]
User=svn-alternate-user
Group=svn-alternate-group
Verify:
systemctl cat svnserve
Adjust permissions to /srv/svn/repos, /var/run/svnserve to allow the required
read/write access.
Make systemd pick up the changed unit file and restart the service:
systemctl daemon-reload
systemctl restart svnserve
================================================================================
7. quickstart for mod_dontdothat
The apache module mod_dontdothat can be used to prevent users from causing high
load on the server, e.g. checking out the root of the tree or the tags or
branches directories.
Make sure mod_dontdothat is loaded:
$ a2enmod dontdothat
Add configuration for the module, e.g.
<Location />
DAV svn
SVNParentPath /srv/svn/repos/
SVNListParentPath on
# [...other configuration...]
<IfModule mod_dontdothat.c>
DontDoThatConfigFile /srv/svn/mod_dontdothat.config
DontDoThatDisallowReplay off
</IfModule>
</Location>
Restart apache to make the change effective.
A fairly standard file /srv/svn/mod_dontdothat.config may contain:
[recursive-actions]
/*/trunk = allow
/ = deny
/* = deny
/*/tags = deny
/*/branches = deny
/*/* = deny
/*/*/tags = deny
/*/*/branches = deny
This allows checking out of /trunk and each branch, but disallows checking out
all branches or the complete repository at once.

4591
subversion.changes Normal file

File diff suppressed because it is too large Load Diff

110
subversion.conf Normal file
View File

@ -0,0 +1,110 @@
# Example configuration for a subversion repository
# Install the package subversion-doc and see
# /usr/share/doc/packages/subversion for the full documentation
# An online version can be found at http://svnbook.red-bean.com/
#
<IfModule mod_dav_svn.c>
##
## project related HTML files
##
#<IfModule mod_alias.c>
#Alias /repos /srv/svn/html
#</IfModule>
#<Directory /srv/svn/html>
# Options +Indexes +Multiviews -FollowSymLinks
# IndexOptions FancyIndexing \
# ScanHTMLTitles \
# NameWidth=* \
# DescriptionWidth=* \
# SuppressLastModified \
# SuppressSize
#
# order allow,deny
# allow from all
#</Directory>
#<Location /repos/myproject1>
# DAV svn
# SVNPath /srv/svn/repos/myproject1
#
# AuthType Basic
# AuthName "Authorization Realm"
# AuthUserFile /srv/svn/user_access/myproject1_passwdfile
# AuthGroupFile /srv/svn/user_access/myproject1_groupfile
#
# # Limit read access to certain people
# <Limit GET PROPFIND OPTIONS REPORT>
# # uncomment to require SSL connection for password protection.
# # SSLRequireSSL
# Require group myproject1_committers
# Require group myproject1_readers
# </Limit>
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # uncomment to require SSL connection for password protection.
# # SSLRequireSSL
# Require group myproject1_committers
# </LimitExcept>
#
#</Location>
##
## Hosting svn at "/"
##
#<VirtualHost *>
# ServerName svn.example.com
# ErrorLog /var/log/apache2/svn.example.com-error_log
# TransferLog /var/log/apache2/svn.example.com-access_log
# #
# # Do not set DocumentRoot. It is not needed here and just causes trouble.
# #
# # Map the error documents back to their defaults.
# # Otherwise mod_dav_svn tries to find a "error" repository.
# #
# ErrorDocument 400 default
# ErrorDocument 401 default
# ErrorDocument 403 default
# ErrorDocument 404 default
# ErrorDocument 405 default
# ErrorDocument 408 default
# ErrorDocument 410 default
# ErrorDocument 411 default
# ErrorDocument 412 default
# ErrorDocument 413 default
# ErrorDocument 414 default
# ErrorDocument 415 default
# ErrorDocument 500 default
# ErrorDocument 501 default
# ErrorDocument 502 default
# ErrorDocument 503 default
# #
# <Location />
# DAV svn
# SVNParentPath /srv/svn/repos/
# SVNListParentPath on
# AuthType Basic
# AuthName "subversion repository"
# AuthBasicProvider file
# AuthUserFile /srv/svn/auth/svn.example.org.htpasswd
# SetOutputFilter DEFLATE
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# Require valid-user
# </LimitExcept>
# #
# # Optional configuration for mod_dontdothat
# # prevent users from causing high load on the server, e.g. checking out
# # the root of the tree or the tags or branches directories
# #
# #<IfModule mod_dontdothat.c>
# # DontDoThatConfigFile /srv/svn/mod_dontdothat.config
# # DontDoThatDisallowReplay off
# #</IfModule>
# </Location>
#</VirtualHost>
</IfModule>

3082
subversion.keyring Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
---
Makefile.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: subversion-1.14.2/Makefile.in
===================================================================
--- subversion-1.14.2.orig/Makefile.in
+++ subversion-1.14.2/Makefile.in
@@ -124,8 +124,8 @@ EXEEXT = @EXEEXT@
SHELL = @SHELL@
LIBTOOL = @SVN_LIBTOOL@
-LTFLAGS = --tag=CC --silent
-LTCXXFLAGS = --tag=CXX --silent
+LTFLAGS = --tag=CC
+LTCXXFLAGS = --tag=CXX
LT_CFLAGS = @LT_CFLAGS@
LT_LDFLAGS = @LT_LDFLAGS@
LT_SO_VERSION = @SVN_LT_SOVERSION@

574
subversion.spec Normal file
View File

@ -0,0 +1,574 @@
#
# spec file for package subversion
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2009-2010 Pascal Bleser <pascal.bleser@opensuse.org>
# Copyright (c) 2024 Andreas Stieger <Andreas.Stieger@gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define svngroup svn
%define svnuser svn
%define sqlite_minimum_version 3.8.2
#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
%define _fillupdir %{_localstatedir}/adm/fillup-templates
%endif
#Compat macros for SLES 15 SP2 which does not support python_site{arch,lib}
%if 0%{?sle_version} == 150200 && !0%{?is_opensuse}
%define python_sitearch %{python3_sitearch}
%define python_sitelib %{python3_sitelib}
%endif
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "testsuite"
%global psuffix -testsuite
%else
%global psuffix %{nil}
%endif
%bcond_without gnome
%bcond_without kde
%bcond_with python_ctypes
%bcond_with all_regression_tests
Name: subversion%{psuffix}
Version: 1.14.5
Release: 0
Summary: Subversion version control system
License: Apache-2.0
URL: https://subversion.apache.org
Source0: https://www.apache.org/dist/subversion/subversion-%{version}.tar.bz2
Source1: subversion.conf
Source2: subversion.README.SUSE
Source4: contrib-1804739.tar.bz2
Source10: subversion.sysconfig.svnserve
Source14: svnserve.service
Source15: svnserve.tmpfiles
Source16: svn.sysusers
Source42: subversion.svngrep.sh
Source43: subversion.svndiff.sh
Source50: https://www.apache.org/dist/subversion/subversion-%{version}.KEYS#/subversion.keyring
Source51: https://www.apache.org/dist/subversion/subversion-%{version}.tar.bz2.asc
Source92: subversion-rpmlintrc
Patch0: subversion-pkgconfig.patch
Patch1: subversion-1.10.2-javadoc.patch
Patch11: subversion.libtool-verbose.patch
Patch20: subversion-swig-perl-install_vendor.patch
Patch23: subversion-swig-perl-Wall.patch
Patch30: subversion-1.8.0-rpath.patch
Patch37: subversion-no-build-date.patch
Patch39: subversion-fix-parallel-build-support-for-perl-bindings.patch
Patch40: subversion-perl-underlinking.patch
Patch42: gcc10-do-not-optimize-get_externals_to_pin.patch
Patch45: disable-fs-fs-pack-test.patch
# PATCH-FIX-OPENSUSE SLE-11901
Patch46: remove-kdelibs4support-dependency.patch
# PATCH-FIX-UPSTREAM danilo.spinella@suse.com bsc#1195486 bsc#1193778
# Fix testCrash_RequestChannel_nativeRead_AfterException test on aarch64 and ppc64le
Patch47: fix-javahl-test.patch
BuildRequires: apache-rpm-macros
BuildRequires: apache2-devel >= 2.2.0
BuildRequires: apache2-prefork
BuildRequires: db-devel
BuildRequires: doxygen
BuildRequires: file-devel
BuildRequires: gcc-c++
BuildRequires: java-devel >= 1.8.0
BuildRequires: junit
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: py3c-devel
BuildRequires: python3-devel >= 2.7
BuildRequires: python3-py3c
BuildRequires: python3-xml
BuildRequires: ruby-devel >= 1.8.2
BuildRequires: strip-nondeterminism
BuildRequires: swig
BuildRequires: sysuser-tools
BuildRequires: update-alternatives
BuildRequires: utf8proc-devel
BuildRequires: pkgconfig(apr-1) >= 1.3.0
BuildRequires: pkgconfig(apr-util-1) >= 1.3.0
BuildRequires: pkgconfig(krb5)
BuildRequires: pkgconfig(liblz4) >= 1.7
BuildRequires: pkgconfig(libsasl2)
BuildRequires: pkgconfig(serf-1) >= 1.3.4
BuildRequires: pkgconfig(sqlite3) >= %{sqlite_minimum_version}
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(zlib)
# in openSUSE Leap 42.3, lz4 was incorrectly packaged
BuildConflicts: pkgconfig(liblz4) = 124
Requires: libsqlite3-0 >= %{sqlite_minimum_version}
Requires(post): %fillup_prereq
# workaround for boo#969159
Conflicts: libsvn_auth_kwallet-1-0 < %{version}
Conflicts: libsvn_auth_kwallet-1-0 > %{version}
Conflicts: libsvn_gnome_keyring-1-0 < %{version}
Conflicts: libsvn_gnome_keyring-1-0 > %{version}
Provides: subversion-javahl = %{version}-%{release}
%sysusers_requires
%{?systemd_requires}
%if %{with all_regression_tests}
# tools required for network based tests
BuildRequires: net-tools
BuildRequires: time
BuildRequires: wget
%endif
%if %{with python_ctypes}
BuildRequires: ctypesgen
%endif
%if %{with gnome}
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(libsecret-1)
%endif
%if %{with kde}
BuildRequires: cmake(KF5CoreAddons)
BuildRequires: cmake(KF5I18n)
BuildRequires: cmake(KF5Wallet)
BuildRequires: cmake(Qt5Core)
BuildRequires: cmake(Qt5DBus)
BuildRequires: cmake(Qt5Gui)
%else
# In a case we migrate from system that had the kwallet integration we need it
# gone from the package to allow update
Provides: libsvn_auth_kwallet-1-0 = %{version}
Obsoletes: libsvn_auth_kwallet-1-0 < %{version}
%endif
%description
Subversion exists to be universally recognized and adopted as an open-source,
centralized version control system characterized by its reliability as a safe
haven for valuable data; the simplicity of its model and usage; and its ability
to support the needs of a wide variety of users and projects, from individuals
to large-scale enterprise operations.
%package devel
Summary: Development package for Subversion developers
Requires: libapr-util1-devel
Requires: subversion = %{version}
%description devel
The subversion-devel package includes the static libraries and include
files for developers interacting with the subversion package.
%package tools
Summary: Tools for Subversion
%description tools
This package contains some tools for subversion server and
repository admins.
%package perl
Summary: Allows Perl scripts to directly use Subversion repositories
Requires: perl = %{perl_version}
Requires: perl >= 5.8
Requires: subversion = %{version}
%description perl
Provides Perl (SWIG) support for Subversion version control system.
%package python
Summary: Allows Python scripts to directly use Subversion repositories
Requires: subversion = %{version}
%description python
Provides Python (SWIG) support for Subversion version control system.
%if %{with python_ctypes}
%package python-ctypes
Summary: High-Level Python Bindings for Subversion
Requires: subversion = %{version}
%description python-ctypes
Provides high-level Python support for Subversion, based on ctypes.
%endif
%package ruby
Summary: Allows Ruby scripts to directly use Subversion repositories
Requires: subversion = %{version}
%description ruby
Provides Ruby (SWIG) support for Subversion version control system.
%package server
Summary: Apache server module for Subversion server
Requires: %{apache_mmn}
Requires: apache2
Requires: subversion = %{version}
%description server
The subversion-server package adds the Subversion server Apache module
to the Apache directories and configuration.
%if %{with kde}
%package -n libsvn_auth_kwallet-1-0
Summary: KWallet support for Subversion
Requires: subversion = %{version}
Supplements: (subversion and kdebase4-workspace)
Supplements: (subversion and plasma5-workspace)
%description -n libsvn_auth_kwallet-1-0
Provides KWallet integration for Subversion
%endif
%if %{with gnome}
%package -n libsvn_auth_gnome_keyring-1-0
Summary: GNOME keyring sypport for Subversion
Requires: subversion = %{version}
Supplements: (subversion and gnome-session)
%description -n libsvn_auth_gnome_keyring-1-0
Provides GNOME keyring support for Subversion
%endif
%package bash-completion
Summary: Bash Completion for subversion
Requires: bash-completion
Requires: subversion = %{version}
Supplements: (%{name} and bash-completion)
BuildArch: noarch
%description bash-completion
Bash command line completion support for subversion - completion of subcommands,
parameters and keywords for the svn command and other tools.
%prep
%autosetup -p1 -a 4 -n subversion-%{version}
# do not use 'env python'
sed -i -e 's#%{_bindir}/env python#%{_bindir}/python3#' subversion/tests/cmdline/*.py
%build
%sysusers_generate_pre %{SOURCE16} subversion system-user-svn.conf
# Re-boot strap, needed for patch37
PATH=%{_prefix}/bin:$PATH ./autogen.sh --release
# Fix timestamp in doxygen
echo "HTML_TIMESTAMP = NO" >> doc/doxygen.conf
cat > with_jdk.files <<EOF-JAVA
%{_libdir}/libsvnjavahl*.so.*
%{_libdir}/libsvnjavahl*.so
%dir %{_libdir}/svn-javahl
%{_libdir}/svn-javahl/svn-javahl.jar
%{_datadir}/java/svn-javahl.jar
EOF-JAVA
# ### these possibly need further discussion
# swig_pydir = @libdir@/svn-python/libsvn
# swig_pydir_extra = @libdir@/svn-python/svn
sed --in-place=~ "
s@^swig_pydir = .*@swig_pydir = %{python_sitearch}/libsvn@
s@^swig_pydir_extra = .*@swig_pydir_extra = %{python_sitearch}/svn@
" Makefile.in
diff -u Makefile.in~ Makefile.in || true
sh -x autogen.sh
for i in subversion/bindings/javahl/native/*.cpp
do
d=$(sed -n '/^#include "..\/include/{s@^[^/]\+\([^"]\+\).*@subversion/bindings/javahl\1@;H};${x;s@\n@ @gp}' $i)
echo
echo "# $i"
if ! test -z "$d"
then
echo ${i%.cpp}.lo: $d
fi
echo
done >> build-outputs.mK
export CFLAGS="%{apache_cflags} %{optflags} -fstack-protector -fpie"
export CXXFLAGS="$CFLAGS"
export APACHE_LDFLAGS="-Wl,-z,relro,-z,now"
export LDFLAGS="-pie"
%configure \
--enable-local-library-preloading \
--with-editor="vim -c 'set tw=72 et' " \
--with-serf=%{_prefix} \
--with-apr=%{_prefix} \
--with-apr-util=%{_prefix} \
--with-apxs=%{apache_apxs} \
--with-zlib=%{_prefix} \
--with-berkeley-db=db.h:db.h:%{_prefix}:db \
--with-apache-libexecdir=%{apache_libexecdir} \
--with-jdk=%{_libdir}/jvm/java --enable-javahl \
--with-junit="%{_datadir}/java/junit.jar" \
--with-jikes=no \
--with-sqlite="%{_prefix}" \
--enable-sqlite-compatibility-version=%{sqlite_minimum_version} \
%if %{with gnome}
--with-gnome-keyring \
%endif
%if %{with kde}
--with-kwallet \
%endif
--disable-mod-activation \
--with-libmagic \
--disable-static \
--enable-broken-httpd-auth
%make_build
%make_build doc-api
# Bindings
%make_build extraclean-bindings
%make_build swig-py swig-rb swig-pl
%if %{with python_ctypes}
%make_build ctypes-python
%endif
# Java is not thread safe
%make_build -j1 JAVAC_FLAGS=" -encoding iso8859-1" javahl doc-javahl
%install
%if "%{flavor}" != "testsuite"
%make_install
make DESTDIR=%{buildroot} install-swig-py install-swig-pl install-javahl install-swig-rb
strip-nondeterminism %{buildroot}%{_libdir}/svn-javahl/svn-javahl.jar
%if %{with python_ctypes}
make DESTDIR=%{buildroot} install-ctypes-python
# remove csvn .pyc files and recompile them because they contain the $RPM_BUILD_ROOT path:
find "%{buildroot}%{python_sitelib}/csvn/" -name "*.pyc" | xargs rm -f
%py_compile %{buildroot}/%{python_sitelib}/csvn
%endif
%perl_process_packlist
%find_lang subversion
cp -Lav %{SOURCE42} %{buildroot}%{_bindir}/svngrep
cp -Lav %{SOURCE43} %{buildroot}%{_bindir}/svndiff
mkdir -p %{buildroot}%{_datadir}/emacs/site-lisp/
cp -avL contrib/client-side/emacs/*.el %{buildroot}%{_datadir}/emacs/site-lisp/
rm -f %{buildroot}%{_datadir}/emacs/site-lisp/vc-svn.el
cp -avL contrib/client-side/svn_apply_autoprops.py %{buildroot}%{_bindir}
mkdir -p %{buildroot}/%{apache_sysconfdir}/conf.d
cp -av %{SOURCE1} %{buildroot}/%{apache_sysconfdir}/conf.d/subversion.conf
cp -avL %{SOURCE2} README.SUSE
cp -avL subversion/mod_authz_svn/INSTALL README.mod_authz_svn
cat subversion.lang > files.subversion
cat with_jdk.files >> files.subversion
# tools
make DESTDIR=%{buildroot} install-tools
mv -v %{buildroot}%{_bindir}/svn-tools/{fsfs-access-map,svnauthz,svnauthz-validate,svn-populate-node-origins-index,svnraisetreeconflict} %{buildroot}%{_bindir}
# discard all other tools
rm -rf %{buildroot}%{_bindir}/svn-tools
# replicate svn-bench compatibility link
ln -sf svnbench %{buildroot}%{_bindir}/svn-bench
mkdir -p %{buildroot}%{_sbindir}
mkdir -p %{buildroot}%{_fillupdir}
install -m 644 -D %{SOURCE10} %{buildroot}%{_fillupdir}/sysconfig.svnserve
install -d -m 0755 %{buildroot}/srv/svn
install -m 644 -D %{SOURCE14} %{buildroot}/%{_unitdir}/svnserve.service
ln -sv service %{buildroot}%{_sbindir}/rcsvnserve
install -d -m 0755 %{buildroot}/%{_tmpfilesdir}
install -m 0644 %{SOURCE15} %{buildroot}/%{_tmpfilesdir}/svnserve.conf
#useless libtool stuff
rm -rf %{buildroot}%{python_sitearch}/*/*.{a,la}
rm -rf %{buildroot}%{_libdir}/libsvn_swig_*.{so,la,a}
rm -rf %{buildroot}%{rb_sitelib}/svn/ext/*.*a
find %{buildroot} -type f -name "*.la" -delete -print
# remove stuff produced with Perl modules
find %{buildroot} -type f \
-a \( -name .packlist -o \( -name '*.bs' -a -empty \) \) \
-print0 | xargs -0 rm -f
# make Perl modules writable so they get stripped
find %{buildroot}%{_prefix}/lib/perl5 -type f -perm 555 -print0 |
xargs -0 chmod 755
install -d -m 0755 %{buildroot}/%{_datadir}/java
ln -sv %{_libdir}/svn-javahl/svn-javahl.jar %{buildroot}/%{_datadir}/java/svn-javahl.jar
rm -f %{buildroot}%{_localstatedir}/adm/perl-modules/subversion
install -D -m0644 tools/client-side/bash_completion %{buildroot}%{_datadir}/bash-completion/completions/subversion
# examples
mkdir -p %{buildroot}%{_docdir}/subversion
cp -r tools/hook-scripts tools/backup tools/bdb tools/examples tools/xslt %{buildroot}%{_docdir}/subversion
find %{buildroot}%{_docdir}/subversion -type f -print0 | xargs -0 chmod 644
# clean tools for doc
rm -rf tools/*/*.in
rm -rf doc/doxygen/html/installdox
# sysusers
install -Dm0644 %{SOURCE16} %{buildroot}%{_sysusersdir}/system-user-svn.conf
%endif
%if "%{flavor}" == "testsuite"
%check
export LANG=C LC_ALL=C
echo "========= mount RAM disc"
test ! -e /dev/shm/svn-test-work && mkdir /dev/shm/svn-test-work
test -e subversion/tests/cmdline/svn-test-work && rm -rf subversion/tests/cmdline/svn-test-work
ln -s /dev/shm/svn-test-work subversion/tests/cmdline/
%make_build -Onone check FS_TYPE=fsfs CLEANUP=true || (cat fails.log; exit 1)
%make_build -Onone check-javahl || (cat fails.log; exit 1)
%make_build -Onone check-swig-pl || (cat fails.log; exit 1)
%if 0%{?suse_version} <= 1500
# swig bindings check failing from swig 4.0.0 and later
%make_build check-swig-py || (cat fails.log; exit 1)
%endif
%make_build check-swig-rb || (cat fails.log; exit 1)
%if %{with all_regression_tests}
%make_build svnserveautocheck CLEANUP=true FS_TYPE=fsfs || (cat fails.log; exit 1)
%make_build svnserveautocheck CLEANUP=true FS_TYPE=bdb || (cat fails.log; exit 1)
%make_build davautocheck CLEANUP=true FS_TYPE=fsfs || (cat fails.log; exit 1)
%make_build davautocheck CLEANUP=true FS_TYPE=bdb || (cat fails.log; exit 1)
%endif
%else
%pre -f subversion.pre
%service_add_pre svnserve.service
%preun
%service_del_preun svnserve.service
%post
%{fillup_only -n svnserve svnserve}
%service_add_post svnserve.service
systemd-tmpfiles --create %{_tmpfilesdir}/svnserve.conf
/sbin/ldconfig
%postun
%service_del_postun svnserve.service
/sbin/ldconfig
%post -n subversion-python -p /sbin/ldconfig
%postun -n subversion-python -p /sbin/ldconfig
%post -n subversion-perl -p /sbin/ldconfig
%postun -n subversion-perl -p /sbin/ldconfig
%post -n subversion-ruby -p /sbin/ldconfig
%postun -n subversion-ruby -p /sbin/ldconfig
%if %{with gnome}
%post -n libsvn_auth_gnome_keyring-1-0 -p /sbin/ldconfig
%postun -n libsvn_auth_gnome_keyring-1-0 -p /sbin/ldconfig
%endif
%if %{with kde}
%post -n libsvn_auth_kwallet-1-0 -p /sbin/ldconfig
%postun -n libsvn_auth_kwallet-1-0 -p /sbin/ldconfig
%endif
%files -f files.subversion
%license LICENSE
%doc README.SUSE BUGS CHANGES README.mod_authz_svn
%dir %{_docdir}/subversion/*
%{_docdir}/subversion
%{_sbindir}/rcsvnserve
%{_fillupdir}/sysconfig.svnserve
%dir %attr(755,%{svnuser},%{svngroup}) /srv/svn
%{_unitdir}/svnserve.service
%{_tmpfilesdir}/svnserve.conf
%{_sysusersdir}/system-user-svn.conf
%attr(755,root,root) %{_bindir}/svn
%attr(755,root,root) %{_bindir}/svnadmin
%attr(755,root,root) %{_bindir}/svndiff
%attr(755,root,root) %{_bindir}/svndumpfilter
%attr(755,root,root) %{_bindir}/svnfsfs
%attr(755,root,root) %{_bindir}/svngrep
%attr(755,root,root) %{_bindir}/svnlook
%attr(755,root,root) %{_bindir}/svnmucc
%attr(755,root,root) %{_bindir}/svnrdump
%attr(755,root,root) %{_bindir}/svnserve
%attr(755,root,root) %{_bindir}/svnsync
%attr(755,root,root) %{_bindir}/svnversion
%{_libdir}/libsvn_client*.so.*
%{_libdir}/libsvn_delta*.so.*
%{_libdir}/libsvn_diff*.so.*
%{_libdir}/libsvn_fs*.so.*
%{_libdir}/libsvn_ra*.so.*
%{_libdir}/libsvn_repos*.so.*
%{_libdir}/libsvn_subr*.so.*
%{_libdir}/libsvn_wc*.so.*
%{_mandir}/man?/svn*
%{_datadir}/emacs
%files perl
%{_mandir}/man?/SVN::*
%{_libdir}/libsvn_swig_perl-1.so.*
%{perl_vendorarch}/SVN
%{perl_vendorarch}/auto/SVN
%files python
%dir %{python_sitearch}
%dir %{python_sitearch}/svn
%dir %{python_sitearch}/libsvn
%{_libdir}/libsvn_swig_py-1.so.*
%{python_sitearch}/libsvn/*
%{python_sitearch}/svn/*
%if %{with python_ctypes}
%files python-ctypes
%doc subversion/bindings/ctypes-python/examples
%dir %{python_sitelib}
%{python_sitelib}/csvn
%{python_sitelib}/svn_ctypes_python_bindings-*-py%{py_ver}.egg-info
%endif
%files ruby
%dir %{rb_sitelib}
%{rb_sitelib}/svn
%{rb_sitelib}/*/svn
%{_libdir}/libsvn_swig_ruby-1.so.*
%files devel
%dir %{_includedir}/subversion-1
%{_libdir}/libsvn_*.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/subversion-1/*
%doc doc/doxygen/html
%files tools
%{_bindir}/fsfs-access-map
%attr(755,root,root) %{_bindir}/svn_apply_autoprops.py
%{_bindir}/svnauthz
%{_bindir}/svnauthz-validate
%{_bindir}/svnbench
%{_bindir}/svn-bench
%{_bindir}/svn-populate-node-origins-index
%{_bindir}/svnraisetreeconflict
%files server
%dir %{apache_sysconfdir}/conf.d
%config (noreplace) %{apache_sysconfdir}/conf.d/subversion.conf
%dir %{apache_libexecdir}
%{apache_libexecdir}/mod_dav_svn.*
%{apache_libexecdir}/mod_authz_svn.*
%{apache_libexecdir}/mod_dontdothat.*
%if %{with gnome}
%files -n libsvn_auth_gnome_keyring-1-0
%{_libdir}/libsvn_auth_gnome_keyring-1.so.0
%{_libdir}/libsvn_auth_gnome_keyring-1.so.0.*
%endif
%if %{with kde}
%files -n libsvn_auth_kwallet-1-0
%{_libdir}/libsvn_auth_kwallet-1.so.0
%{_libdir}/libsvn_auth_kwallet-1.so.0.*
%endif
%files bash-completion
%{_datadir}/bash-completion/completions/subversion
%endif
%changelog

24
subversion.svndiff.sh Normal file
View File

@ -0,0 +1,24 @@
#!/bin/bash
# stupid svn has no 'svn diff -v -R $bignum' to grab all info for a single patch
export TZ=UTC
export LANG=C
export LC_ALL=C
shopt -s extglob
case "$1" in
r+([0-9]))
rev=${1#?}
shift
;;
+([0-9]))
rev=$1
shift
;;
esac
if test -z "$rev"
then
echo "Usage: $0 <svnrepo revision number>"
exit 1
fi
revprev=$(($rev - 1 ))
svn log -v -r $rev "$@"
svn diff -r $revprev:$rev "$@"

2
subversion.svngrep.sh Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
find \( -path '*/.pc' -o -path '*/.svn' -o -path '*/.git' -o -path '*/.hg' \) -prune -o -type f -print0 | xargs -0 grep "$@"

View File

@ -0,0 +1,13 @@
## Path: Network/Subversion/svnserve
## Description: Basic configuration for svnserve
## Type: string
## Default "-d -R -r /srv/svn/repos"
#
# Default options for the svnserve process.
# The -R option enforces read-only access, i.e. write operations to the
# repository (such as commits) will not be allowed.
# Authentication should be configured before allowing write access.
# See http://svnbook.red-bean.com/en/1.8/svn.serverconfig.svnserve.html#svn.serverconfig.svnserve.auth
#
SVNSERVE_OPTIONS="-d -R -r /srv/svn/repos"

2
svn.sysusers Normal file
View File

@ -0,0 +1,2 @@
#Type Name ID GECOS Home directory Shell
u svn - "user for Apache Subversion svnserve" /srv/svn -

26
svnserve.service Normal file
View File

@ -0,0 +1,26 @@
[Unit]
Description=Subversion protocol daemon
After=network.target
[Service]
# added automatically, for details please see
# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
ProtectSystem=full
PrivateDevices=true
ProtectHostname=true
ProtectClock=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectKernelLogs=true
ProtectControlGroups=true
RestrictRealtime=true
# end of automatic additions
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
User=svn
Group=svn
PIDFile=/run/svnserve/svnserve.pid
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $SVNSERVE_OPTIONS
[Install]
WantedBy=multi-user.target

1
svnserve.tmpfiles Normal file
View File

@ -0,0 +1 @@
D /run/svnserve 0755 svn svn -