Compare commits

...

No commits in common. "658cb31fa994152a78c1f0c537af13557d230779" and "c8s" have entirely different histories.

6 changed files with 411 additions and 1 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
SOURCES/94664ddd46a6.tar.bz2
/94664ddd46a6.tar.bz2

View File

@ -0,0 +1,47 @@
From 75e4a9eb929520d95cb55b2d850af7ba849fd014 Mon Sep 17 00:00:00 2001
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
Date: Mon, 28 Feb 2022 11:23:55 +0100
Subject: [PATCH] Use usedforsecurity=False for md5() calls to make suds work
on FIPS enabled systems
---
suds/reader.py | 7 ++++++-
suds/wsse.py | 7 ++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/suds/reader.py b/suds/reader.py
index 31c5ee7..3354b5d 100644
--- a/suds/reader.py
+++ b/suds/reader.py
@@ -58,7 +58,12 @@ def mangle(self, name, x):
@rtype: str
"""
- h = md5(name.encode()).hexdigest()
+ try:
+ # FIPS requires usedforsecurity=False and might not be
+ # available on all distros: https://bugs.python.org/issue9216
+ h = md5(name.encode(), usedforsecurity=False).hexdigest()
+ except AttributeError:
+ h = md5(name.encode()).hexdigest()
return '%s-%s' % (h, x)
diff --git a/suds/wsse.py b/suds/wsse.py
index 96d9eb6..474d15a 100644
--- a/suds/wsse.py
+++ b/suds/wsse.py
@@ -158,7 +158,12 @@ def setnonce(self, text=None):
s.append(self.username)
s.append(self.password)
s.append(Token.sysdate())
- m = md5()
+ try:
+ # FIPS requires usedforsecurity=False and might not be
+ # available on all distros: https://bugs.python.org/issue9216
+ m = md5(usedforsecurity=False)
+ except AttributeError:
+ m = md5()
m.update(':'.join(s))
self.nonce = m.hexdigest()
else:

View File

@ -1 +0,0 @@
python-suds package is retired on c9s for CS-865

32
fix_http_test.patch Normal file
View File

@ -0,0 +1,32 @@
diff -up jurko-suds-94664ddd46a6/tests/test_transport_http.py.httptestfix jurko-suds-94664ddd46a6/tests/test_transport_http.py
--- jurko-suds-94664ddd46a6/tests/test_transport_http.py.httptestfix 2015-07-27 05:08:20.000000000 -0400
+++ jurko-suds-94664ddd46a6/tests/test_transport_http.py 2016-01-09 23:29:22.749940293 -0500
@@ -120,6 +120,9 @@ class MockFP:
def readline():
raise MustNotBeCalled
+ def close(self):
+ pass
+
class MockURLOpenerSaboteur:
"""
@@ -295,12 +298,18 @@ def test_sending_using_network_sockets(s
self.__mocker.mock_sent_data += data
def settimeout(self, *args, **kwargs):
pass
+ def setsockopt(self, level, optname, value):
+ pass
class MockSocketReader(CountedMock):
def __init__(self):
super(MockSocketReader, self).__init__()
def readline(self, *args, **kwargs):
raise MyException
+ def close(self):
+ pass
+ def flush(self):
+ pass
# Setup.
host = "an-easily-recognizable-host-name-214894932"

329
python-suds.spec Normal file
View File

@ -0,0 +1,329 @@
%global commit 94664ddd46a61d06862fa8fb6ba7b9e054214f57
%global shortcommit %(c=%{commit}; echo ${c:0:12})
%global py2_builddir python2
%global py3_builddir python3
%global srcname suds
%global sum A python SOAP client
%global desc \
The suds project is a python soap web services client lib. Suds leverages\
python meta programming to provide an intuitive API for consuming web\
services. Objectification of types defined in the WSDL is provided\
without class generation. Programmers rarely need to read the WSDL since\
services and WSDL based objects can be easily inspected.
%if 0%{?fedora} || 0%{?rhel} > 7
%global with_python3 1
%global py2_deps python2-devel python2-pytest python2-six
%else
%global py2_deps python-devel pytest python-six
%endif
%if 0%{?rhel} > 7
%bcond_with python2
%else
%bcond_without python2
%endif
Summary: %{sum}
Name: python-suds
Version: 0.7
Release: 0.11.%{shortcommit}%{?dist}
Source0: https://bitbucket.org/jurko/suds/get/%{shortcommit}.tar.bz2
Patch0: fix_http_test.patch
Patch1: bz1921920-fix-fips-issue.patch
License: LGPLv3+
Group: Development/Libraries
BuildArch: noarch
URL: https://bitbucket.org/jurko/suds
%description %{desc}
%if %{with python2}
%package -n python2-%{srcname}
BuildRequires: %{py2_deps}
Summary: %{sum}
%{?python_provide:%python_provide python2-%{srcname}}
%description -n python2-%{srcname} %{desc}
%endif #{with python2}
%if 0%{?with_python3}
%package -n python3-%{srcname}
BuildRequires: python3-devel python3-pytest python3-six
Summary: %{sum}
%{?python_provide:%python_provide python3-%{srcname}}
%description -n python3-%{srcname} %{desc}
%endif
%prep
%setup -c -q
mv jurko-suds-%{shortcommit} %{py2_builddir}
pushd %{py2_builddir}
%patch0 -p1
%patch1 -p1
popd
%if 0%{?with_python3}
cp -a %{py2_builddir} %{py3_builddir}
%endif
%build
%if %{with python2}
pushd %{py2_builddir}
%py2_build
popd
%endif #{with python2}
%if 0%{?with_python3}
pushd %{py3_builddir}
%py3_build
popd
%endif
%install
%if %{with python2}
pushd %{py2_builddir}
%py2_install
popd
%endif #{with python2}
%if 0%{?with_python3}
pushd %{py3_builddir}
%py3_install
popd
%endif
%check
%if %{with python2}
pushd %{py2_builddir}
%{__python2} setup.py test
popd
%endif #{with python2}
%if 0%{?with_python3}
pushd %{py3_builddir}
%{__python3} setup.py test
popd
%endif
%if %{with python2}
%files -n python2-%{srcname}
%{python2_sitelib}/*
%doc %{py2_builddir}/README.rst
%license %{py2_builddir}/LICENSE.txt
%endif #{with python2}
%if 0%{?with_python3}
%files -n python3-%{srcname}
%{python3_sitelib}/*
%doc %{py3_builddir}/README.rst
%license %{py3_builddir}/LICENSE.txt
%endif
%changelog
* Tue Mar 8 2022 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.7-0.11.94664ddd46a6
- Fix FIPS issue
Resolves: rhbz#1921920
* Mon Jul 09 2018 Petr Viktorin <pviktori@redhat.com> - 0.7-0.8.94664ddd46a6
- Don't build the python2 subpackage in rhel>7
https://bugzilla.redhat.com/show_bug.cgi?id=1567165
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.7-0.7.94664ddd46a6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Fri Dec 08 2017 Merlin Mathesius <mmathesi@redhat.com> - 0.7-0.6.94664ddd46a6
- Cleanup spec file conditionals
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7-0.5.94664ddd46a6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.7-0.4.94664ddd46a6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 0.7-0.3.94664ddd46a6
- Rebuild for Python 3.6
* Sat Feb 06 2016 Scott Talbert <swt@techie.net> - 0.7-0.2.94664ddd46a6
- Applied patch from Haikel Guemar to support building on CentOS w/o Python 3
- Move BRs to subpackages, support python- vs python2- BRs on non-Fedora
* Fri Jan 01 2016 Scott Talbert <swt@techie.net> - 0.7-0.1.94664ddd46a6
- Switched to Jurko fork of suds
- Modernize python packaging, build python3 package
- Fixed bogus changelog dates
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Jun 30 2014 Toshio Kuratomi <toshio@fedoraproject.org> - 0.4.1-7
- Replace python-setuptools-devel BR with python-setuptools
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.4.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Fri Oct 15 2010 jortel <jortel@redhat.com> - 0.4.1-1
- 0.4.1
* Wed Sep 8 2010 jortel <jortel@redhat.com> - 0.4-1
- Fix spelling errors in spec description.
- Fix source0 URL warning.
- Updated caching to not cache intermediate wsdls.
- Added DocumentCache which caches verified XML documents as text. User can choose.
- Added cachingpolicy option to allow user to specify whether to cache XML documents or the WSDL object.
- Provided for repeating values in reply for message parts consistent with way handled in nested objects.
- Added charset=utf-8 to stock content-type http header.
- Added <?xml version="1.0" encoding="UTF-8"?> to outgoing SOAP messages.
- Detection of faults in successful (http=200) replies and raise WebFault. Search for <soapenv:Fault/>.
- Add plugins facility.
- Fixed Tickets: #251, #313, #314, #334
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 0.3.9-2
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
* Thu Dec 17 2009 jortel <jortel@redhat.com> - 0.3.9-1
- Bumped python requires to 2.4
- Replaced stream-based caching in the transport package with document-based caching.
- Caches pickled Document objects instead of XML text. 2x Faster!
- No more SAX parsing exceptions on damaged or incomplete cached files.
- Cached WSDL objects. Entire Definitions object including contained Schema object cached via pickle.
- Copy of soap encoding schema packaged with suds.
- Refactor Transports to use ProxyHandler instead of urllib2.Request.set_proxy().
- Added WSSE enhancements <Timestamp/> and <Expires/> support. See: Timestamp token.
- Fixed Tickets: #256, #291, #294, #295, #296
* Wed Dec 9 2009 jortel <jortel@redhat.com> - 0.3.8-1
- Includeds Windows NTLM Transport.
- Add missing self.messages in Client.clone().
- Changed default behavior for WSDL PartElement to be optional.
- Add support for services/ports defined without <address/> element in WSDL.
- Fix sax.attribute.Element.attrib() to find by name only when ns is not specified; renamed to Element.getAttribute().
- Update HttpTransport to pass timeout parameter to urllib2 open() methods when supported by urllib2.
- Add null class to pass explicit NULL values for parameters and optional elements.
- Soap encoded array (soap-enc:Array) enhancement for rpc/encoded.
Arrays passed as python arrays - works like document/literal now.
No more using the factory to create the Array.
Automatically includes arrayType attribute. Eg: soap-enc:arrayType="Array[2]".
Reintroduced ability to pass complex (objects) using python dict instead of suds object via factory.
- Fixed tickets: #84, #261, #262, #263, #265, #266, #278, #280, #282.
* Fri Oct 16 2009 jortel <jortel@redhat.com> - 0.3.7-1
- Better soap header support
- Added new transport HttpAuthenticated for active (not passive) basic authentication.
- New options (prefixes, timeout, retxml)
- WSDL processing enhancements.
- Expanded builtin XSD type support.
- Fixed <xs:iniclude/>
- Better XML date/datetime conversion.
- Client.clone() method added for lightweight copy of client object.
- XSD processing fixes/enhancements.
- Better <simpleType/> by <xs:restriction/> support.
- Performance enhancements.
- Fixed tickets: #65, #232, #233, #235, #241, #242, #244, #247, #254, #254, #256, #257, #258
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.3.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Fri May 1 2009 jortel <jortel@redhat.com> - 0.3.6-1
- Change hard coded /tmp/suds to tempfile.gettempdir() and create suds/ on demand.
- Fix return type for Any.get_attribute().
- Update http caching to ignore file:// urls.
- Better logging of messages when only the reply is injected.
- Fix XInteger and XFloat types to translate returned arrays properly.
- Fix xs:import schema with same namespace.
- Update parser to not load external references and add Import.bind() for XMLSchema.xsd location.
- Add schema doctor - used to patch XSDs at runtime. (See Options.doctor)
- Fix deprecation warnings in python 2.6.
- Add behavior for @default defined on <element/>.
- Change @xsi:type value to always be qualified for doc/literal.
- Add Option.xstq option to control when @xsi:type is qualified.
- Fixed Tickets: #64, #129, #205, #206, #217, #221, #222, #224, #225, #228, #229, #230
* Wed Feb 25 2009 jortel <jortel@redhat.com> - 0.3.5-1
- Adds http caching. Default is (1) day.
- Removed checking fc version in spec since no longer building < fc9.
- Updated makefile to roll tarball with tar.sh.
- Moved bare/wrapped determination to wsdl for document/literal.
- Refactored Transport to provide better visibility into http headers.
- Fixed Tickets: #207, #207, #209, #210, #212, #214, #215
* Mon Dec 08 2008 jortel <jortel@redhat.com> - 0.3.4-1
- Static (automatic) Import.bind('http://schemas.xmlsoap.org/soap/encoding/')
- Basic ws-security with {{{UsernameToken}}} and clear-text password only.
- Add support for ''sparse'' soap headers via passing dictionary
- Add support for arbitrary user defined soap headers
- Fixes service operations with multiple soap header entries.
- Schema loading and dereferencing algorithm enhancements.
- Nested soap multirefs fixed.
- Better (true) support for elementFormDefault="unqualified" provides more accurate namespaing.
- WSDL part types no longer default to WSDL targetNamespace.
- Fixed Tickets: #4, #6, #21, #32, #62, #66, #71, #72, #114, #155, #201.
* Thu Dec 04 2008 jortel <jortel@redhat.com> - 0.3.3-2
- Rebuild for Python 2.6
* Thu Dec 04 2008 jortel <jortel@redhat.com> - 0.3.3-1
- No longer installs (tests) package.
- Implements API-3 proposal
Pluggable transport
Keyword method arguments
Baisc http authentication in default transport
- Add namespace prefix normalization in soap message.
- Better soap message pruning of empty nodes.
- Fixed Tickets: #51 - #60.
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 0.3.2-2
- Rebuild for Python 2.6
* Thu Nov 06 2008 jortel <jortel@redhat.com> - 0.3.2-1
- Add SOAP MultiRef support
- Add support for new schema tags:
<xs:include/>
<xs:simpleContent/>
<xs:group/>
<xs:attributeGroup/>
- Added support for new xs <--> python type conversions:
xs:int
xs:long
xs:float
xs:double
- Revise marshaller and binding to further sharpen the namespacing of nodes produced.
- Infinite recursion fixed in ''xsd'' package dereference() during schema loading.
- Add support for <wsdl:import/> of schema files into the wsdl root <definitions/>.
- Fix double encoding of (&)
- Add Client API:
setheaders() - Same as keyword but works for all invocations.
addprefix() - Mapping of namespace prefixes.
setlocation() - Override the location in the wsdl.
setproxy() - Same as proxy keyword but for all invocations.
- Add proper namespace prefix for soap headers.
- Fixed Tickets: #5, #12, #34, #37, #40, #44, #45, #46, #48, #49, #50, #51
* Mon Nov 03 2008 jortel <jortel@redhat.com> - 0.3.1-5
- Add LICENSE to %%doc.
* Tue Oct 28 2008 jortel <jortel@redhat.com> - 0.3.1-4
- Changes acc. #466496 Comment #8
* Mon Oct 27 2008 jortel <jortel@redhat.com> - 0.3.1-3
- Add "rm -rf $RPM_BUILD_ROOT" to install
* Thu Oct 16 2008 jortel <jortel@redhat.com> - 0.3.1-2
- Changes acc. #466496 Comment #1
* Fri Oct 10 2008 jortel <jortel@redhat.com> - 0.3.1-1
- Extends the support for multi-port services introduced earlier. This addition,
provides for multiple services to define the *same* method and suds will
handle it properly. See section 'SERVICES WITH MULTIPLE PORTS:'
- Add support for multi-document document/literal soap binding style.
See section 'MULTI-DOCUMENT Docuemnt/Literal:'
- Add support for (xs:group, xs:attributeGroup) tags.
- Add Client.last_sent() and Client.last_received().

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (94664ddd46a6.tar.bz2) = 4ba082249a0b05c051589bf6037864e7d2bbdd9ee7a196b12bd8a07ac000c848d55ca0317753a153c540674f59cbff30f1c9bf8a212a6f937b2eaf9b9b4da6c1