Accepting request 1229912 from devel:tools:scm:svn

OBS-URL: https://build.opensuse.org/request/show/1229912
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/subversion?expand=0&rev=198
This commit is contained in:
Ana Guerrero 2024-12-11 20:01:08 +00:00 committed by Git OBS Bridge
commit b969c8081a
9 changed files with 288 additions and 419 deletions

View File

@ -1,127 +0,0 @@
------------------------------------------------------------------------
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

@ -1,143 +0,0 @@
------------------------------------------------------------------------
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

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

View File

@ -1,27 +0,0 @@
-----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

@ -1,3 +1,13 @@
-------------------------------------------------------------------
Mon Dec 9 18:38:01 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
- Apache Subversion 1.14.5
* CVE-2024-46901: mod_dav_svn denial-of-service via control
characters in paths (boo#1234317)
- drop patches included upstream:
* subversion-1.14.4-swig-4.3.0-swig-py.patch
* subversion-1.14.4-swig-4.3.0-swig-rb.patch
-------------------------------------------------------------------
Thu Oct 24 15:20:32 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>

View File

@ -524,122 +524,170 @@ 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
=3ED/
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
mjn8s6ArnqEV
=prx8
-----END PGP PUBLIC KEY BLOCK-----
ASF ID: dsahlberg
@ -2234,6 +2282,63 @@ B5qMiqYRUaH34NRkyVzqEwdPsQ==
=2/6y
-----END PGP PUBLIC KEY BLOCK-----
ASF ID: rinrab
LDAP PGP key: B593 8A45 4FEA DBD4 3565 E85F 2A56 BB63 2286 4335
B593 8A45 4FEA DBD4 3565 E85F 2A56 BB63 2286 4335
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsFNBGbyvzoBEAC63c4bJm8NdeHMXT4M6xYKRe6Anyd7qgEGslGcb3+aBclN1hPF
BAK6E4mhnAvQ1anNJ90mIBUeD6bX+zuqYowAnHRfQWb0Ag6CK9nb+UuxPKm5gwM9
6zDwfkPtTM7Ra1kWRtiva+d0BdqEuZuh+F6xxVW8t1Rw6xKwCMS50kjbf6m+aKgI
1IvHeLZpap8rYCnliVZJeZYwh3xPUK+zktyyhqtT7pUFtvlMf0ichXieATXjIgwK
PUmNVMb2DO/E1UJAU4c0vx/E9VUEM8DVZmDSSKo1EQkNX0HyexIIHl+Z3QsbwS7G
m/f79UyAMYhnUCwEmIN7+lrqhqkqMpJaTd+WAWYUUGnltOgBFLimY/hNBogm/KAF
w8r0P23PhpPXlav3CvyxP4/2IypJkXs5guviqOggK/UgFP0FLFhiDcuk7Q8uFDa/
zGCpsKxCzI3xBWVB03wFJ+uNALYUTtOEGn3PQNlGqync51081flkoHJs5+OrIntS
aMTStQiWyath5DpWQqK5LQOZmPpQEd5UjJBMvRlAbqcQfg7OBbyFM1mxhwBahdQu
jrEn0TAYL5hRxqTm2tAG1Lh0lIVWqVc+ny0i1QTyZxLYTJ0/Yo0NWpl2Hb5YI/81
N8mDSa3vs/QsbHyPGK79W47CuXffTL1a/eXPmZ64B1aQFMjnoRfjzxR8QQARAQAB
zTVUaW1vZmVpIFpoYWtvdiAoQ09ERSBTSUdOSU5HIEtFWSkgPHJpbnJhYkBhcGFj
aGUub3JnPsLBjgQTAQoAIQUCZvK/OgIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIX
gAAhCRAqVrtjIoZDNRYhBLWTikVP6tvUNWXoXypWu2MihkM11vwP/2A4pzCM0IBO
cikWATJ6GaDLWO/O2IByVs8gG+6h+qy77OnLCSAmq55Y9jYZpTq8hz9/3Hg3GyOL
+gwy8p4e8NvY5cZFORjqN3sg4mqQmH5IV+nF9Ihweykfs48gLDLEvGLHTy+LpQEs
9gj21/SGXIaSHamPvva67mOGh6EAIhajHB0tD26XW9KZ0gq7Rarra27th+we+39I
7Psrs0SctT0qQZK7lydFpNyVYNGxARX8ecF3n/GPYKMM+uH02p4DCKwhQ5PWwqim
sdJN/3lXqwnuVZv7j2oQRrC0cTXVnYw8BxDTCBy5keEAXFE9jsq1yolInG/FlJ+/
j4MAbBwoT6ZsON32VUMezd9n0y1d0lFAQ2fK22jPe9M9v6oF4E7yiXYOgBb72F8i
kUTXTDZDnEmEluBADOT7Gpk9LaIa84J89kCuP7GTBBSVY+BWvkWxC994pXjT3dY+
oxGe37erqSB/2cRO2Hel3rvpUUmtpkhr/9oTzKIoHoQppyjsI+ROYj0OsW4dUK70
TnnkBzo0LpZCgrHjhgS4hZyzCLoSo3Qpn8MUegrTulWLJ8hhsxeQI7D6yD0svhHZ
PftB8fwa49VkE6O+eWocLbSjgPSm3MhDWhi8pvkLqvjOzeHIhH65BLnsI8xTg1OK
waooDZSPBwNw3FOJzKk2/kR9KWydnnelzsFNBGbyvzoBEACl679qn2YsoQgQb6/t
1jGzfDG3Mcab7wCmKS4c3iJ0nFm4PsvshmoSdf3Rg5P4clT/6KvXpG4yAV5Inygy
ffnWI1Y7bjzTxJVt1lo7dA3KcfNFlKBqdzxshtLHbMTFSZqK4/pgRSdZikHhDTH5
gfusXyp90ShkbFPMw1dCzxdNa+RUdtC7m03kZtkoLOv4FszvEOuB8W/8AAhftEmC
O2VFzLHLOZW5AqjG52z3m8BO/2euh3kUYNxwFaZmW63SEmdp/Hh8ToucSc92ZqJW
0yRIkYX2wUnGvrz0Qvj8/tvnU9IaSlPy6vjbgxVwta/xyFRp9AIXDWs+S20neJp0
A81cqb0JzNBw/OL5E0LKrM9XenG8yq1gPzVwIkn7glC8RBB9oEwj7MnDK+JzNJEq
BlSMkxUF6mNrrYPr0hRXfBDpRA7/EjriOhvn5A/48jP67/L1BTz3qHA9VDJ3x0L5
h/hndP2WOfpuHqJ6OylTwxpeiKu8egycQj6zOfPns5O9QlFk4/V6rRz/ljcbB1Ls
PofRdaVGF/+qj8rPLH4f3qL2Ae4QbxNKXHfTUADo6rt6Fdp2UeE/OSKZcYcJTnDc
16ioKeWPQcHILElI8+HiRpUJfayROyAdXc9ve385rs9dTAf3UYmabrBOkeXNpB3W
NCDs8CXRQIRiiA8QhlVW0qmwOQARAQABwsF2BBgBCgAJBQJm8r86AhsMACEJECpW
u2MihkM1FiEEtZOKRU/q29Q1ZehfKla7YyKGQzWKOw//bf8gUVgYqECdohWVl+N2
mfNtmsTpXytg51nAGxOz/um437alrPmhYyO8I+0G5PW1Uj8QCRlcxmqeM1FDb60D
7x1gy77feaFLM3dwus/AjQbjjT5YVqkH0WsIPuSQsqAOxiZpLdNN+AypsZrfXY3n
7xcORJiyvKamdcRAlcEd8f4tPFs7ktOkMtWIofkw4uPy1D9Az3UiWG06yyzF+wxC
LceVDA5ke2owU/iU0PUp2HprMxxq/yfO22pNVzQqhDQBq5RLEslhXte7satQzQWY
Rnv+q2UrpFftWYa3+S+r6hxtCBWnpktCkxVqoJvXz1SzQs7ymgoQlLkVgYCR8Xba
olNpqjWkfZaPIoIAKdOUklxLNnvyb+jy5kPlDYRTapBBgoVP413Wox6cWOgXxi7q
03pDJKeHpCcAQdvfGjHyBtZEvtMbAJNKc7EkFY18W3ia2dhd78XbO5O7UszurGX4
IQyiokADXKJs9tXcr08SGVZVnT/9+A0OzIAabgbKCRTgNqc/xPL3GC5M+pnO7ngV
p4+zxGDjhxGKojDl6afOOc8Feo0mU71P2lDe1uvhDmjGDg9AX64TYS50hUuexSc2
GjQpekoRM05WvvVXvGLRhLJb1eWgNd0+qtAAQy5s3+YWcYEm2hGBSfGNGsLb5oyo
QUwWqt6U6DKFPXbHBMiIYHQ=
=cwX2
-----END PGP PUBLIC KEY BLOCK-----
ASF ID: stefan2
LDAP PGP key: 056F 8016 D9B8 7B1B DE41 7467 99EC 741B 5792 1ACC
@ -2956,3 +3061,22 @@ tgD/aEyC0d0L3TEMXnGQhELJAYeoTKlUBvzfZ8dqenK0ZAw=
=3az7
-----END PGP PUBLIC KEY BLOCK-----
ASF ID: dsahlberg
LDAP PGP key: 7DC8A7BF37478FF48E33E85E2B4822B4B6340BAC
7DC8 A7BF 3747 8FF4 8E33 E85E 2B48 22B4 B634 0BAC
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZ0eTlxYJKwYBBAHaRw8BAQdAKNP/6BoH8WhZGKybqm4neuK+iwnaC9Od78nr
2NpvTua0JkRhbmllbCBTYWhsYmVyZyA8ZHNhaGxiZXJnQGFwYWNoZS5vcmc+iJkE
ExYKAEEWIQR9yKe/N0eP9I4z6F4rSCK0tjQLrAUCZ0eTlwIbAwUJA8JnAAULCQgH
AgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRArSCK0tjQLrEi+AP9ezgaVYFXR9lHw
7NS3fU7ILwD1/9GsKBM4GFJNiZZN2QD/fbEkJI+m8DIag6cGvs2FPdpwP8FSaTiq
RMCzKYpBlga4OARnR5OXEgorBgEEAZdVAQUBAQdAyRWBX4NpXOGQnjs98xl7fELd
ruKkvq8iWa86iFWyZkEDAQgHiH4EGBYKACYWIQR9yKe/N0eP9I4z6F4rSCK0tjQL
rAUCZ0eTlwIbDAUJA8JnAAAKCRArSCK0tjQLrE4UAP0cuz9Ib3zDfbFTpvv7wXc2
Cdzu8rTeWITW5CKKlGvgTQEA08e3lndphITjng9Q6tJ2I2JwYl81SBrWOstXUdLh
Igw=
=+bT/
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -41,7 +41,7 @@
%bcond_with python_ctypes
%bcond_with all_regression_tests
Name: subversion%{psuffix}
Version: 1.14.4
Version: 1.14.5
Release: 0
Summary: Subversion version control system
License: Apache-2.0
@ -75,8 +75,6 @@ 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
Patch48: subversion-1.14.4-swig-4.3.0-swig-py.patch
Patch49: subversion-1.14.4-swig-4.3.0-swig-rb.patch
BuildRequires: apache-rpm-macros
BuildRequires: apache2-devel >= 2.2.0
BuildRequires: apache2-prefork