You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

551 lines
18 KiB

%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%global commit 4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global compatver 2.3.6
Name: openwsman
BuildRequires: swig
BuildRequires: libcurl-devel libxml2-devel pam-devel sblim-sfcc-devel
BuildRequires: python python-devel ruby ruby-devel rubygem(rdoc) perl
BuildRequires: python python-devel perl
BuildRequires: perl-devel pkgconfig openssl-devel
#BuildRequires: java-1.8.0-openjdk-devel
BuildRequires: cmake
BuildRequires: systemd-units
Version: 2.6.3
Release: 4.git%{shortcommit}%{?dist}
Url: http://www.openwsman.org/
License: BSD
Group: Applications/System
Summary: Open source Implementation of WS-Management
# The source for this package was pulled from upstream's vcs. Use the
# following commands to generate the tarball:
# git clone https://github.com/Openwsman/openwsman.git; cd openwsman
# git archive --format tar --prefix openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/ \
# 4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b | gzip > openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b.tar.gz
Source0: %{name}-%{commit}.tar.gz
# help2man generated manpage for openwsmand binary
Source1: openwsmand.8.gz
# service file for systemd
Source2: openwsmand.service
# script for testing presence of the certificates in ExecStartPre
Source3: owsmantestcert.sh
# source for libwsman_client lib compatibility
Source4: %{name}-%{compatver}.tar.bz2
Patch0: openwsman-2.4.0-pamsetup.patch
# Patch1: partially upstream
Patch1: openwsman-2.6.2-openssl-1.1-fix.patch
# Patch2: already upstream
Patch2: openwsman-2.6.3-cipher-list-config.patch
# Patch3: fixes rhbz#1532722
Patch3: openwsman-2.6.3-http-status-line.patch
# Patch4: fixes rhbz#1547144, , already upstream
Patch4: openwsman-2.6.3-ecdh-support.patch
%description
Openwsman is a project intended to provide an open-source
implementation of the Web Services Management specipication
(WS-Management) and to expose system management information on the
Linux operating system using the WS-Management protocol. WS-Management
is based on a suite of web services specifications and usage
requirements that exposes a set of operations focused on and covers
all system management aspects.
%package -n libwsman1
License: BSD
Group: System Environment/Libraries
Summary: Open source Implementation of WS-Management
Provides: %{name} = %{version}-%{release}
Obsoletes: %{name} < %{version}-%{release}
%description -n libwsman1
Openwsman library for packages dependent on openwsman
%package -n libwsman-devel
License: BSD
Group: Development/Libraries
Summary: Open source Implementation of WS-Management
Provides: %{name}-devel = %{version}-%{release}
Obsoletes: %{name}-devel < %{version}-%{release}
Requires: libwsman1 = %{version}-%{release}
Requires: %{name}-server = %{version}-%{release}
Requires: %{name}-client = %{version}-%{release}
Requires: sblim-sfcc-devel libxml2-devel pam-devel
Requires: libcurl-devel
%description -n libwsman-devel
Development files for openwsman
%package client
License: BSD
Group: System Environment/Libraries
Summary: Openwsman Client libraries
%description client
Openwsman Client libraries
%package server
License: BSD
Group: System Environment/Daemons
Requires: net-tools
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(postun): initscripts
Summary: Openwsman Server and service libraries
Requires: libwsman1 = %{version}-%{release}
%description server
Openwsman Server and service libraries
%package python
License: BSD
Group: Development/Libraries
Summary: Python bindings for openwsman client API
Requires: python
Requires: libwsman1 = %{version}-%{release}
%description python
This package provides Python bindings to access the openwsman client
API.
%package ruby
License: BSD
Group: Development/Libraries
Requires: ruby
Requires: ruby(release)
Summary: Ruby bindings for openwsman client API
Requires: libwsman1 = %{version}-%{release}
%description ruby
This package provides Ruby bindings to access the openwsman client API.
#%package java
#Requires: java
#Requires: libwsman1 = %{version}
#Summary: Java bindings for openwsman client API
#Group: Development/Libraries
#%description java
#This package provides Java bindings to access the openwsman client API.
%package perl
License: BSD
Group: Development/Libraries
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
Summary: Perl bindings for openwsman client API
Requires: libwsman1 = %{version}-%{release}
%description perl
This package provides Perl bindings to access the openwsman client API.
%prep
%setup -q -c -n %{name} -a 4
# apply patches for regular source
cd %{name}-%{commit}
%patch0 -p1 -b .pamsetup
%patch1 -p1 -b .openssl-1.1-fix
%patch2 -p1 -b .cipher-list-config
%patch3 -p1 -b .http-status-line
%patch4 -p1 -b .ecdh-support
%build
# build regular source
cd %{name}-%{commit}
# Removing executable permissions on .c and .h files to fix rpmlint warnings.
chmod -x src/cpp/WsmanClient.h
rm -rf build
mkdir build
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DFEDORA -DNO_SSL_CALLBACK"
export SSL_LIB=`readlink %{_libdir}/libssl.so`
export CFLAGS="-D_GNU_SOURCE -fPIE -DPIE"
export LDFLAGS="$LDFLAGS -Wl,-z,now -pie"
cd build
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_VERBOSE_MAKEFILE=TRUE \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS_RELEASE:STRING="$RPM_OPT_FLAGS -fno-strict-aliasing" \
-DCMAKE_CXX_FLAGS_RELEASE:STRING="$RPM_OPT_FLAGS" \
-DCMAKE_SKIP_RPATH=1 \
-DPACKAGE_ARCHITECTURE=`uname -m` \
-DLIB=%{_lib} \
-DBUILD_RUBY_GEM=no \
-DBUILD_JAVA=no \
..
make CFLAGS="-DSSL_LIB='\"$SSL_LIB\"'"
# build compat source
cd ../../%{name}-%{compatver}
# Removing executable permissions on .c and .h files to fix rpmlint warnings.
chmod -x src/cpp/WsmanClient.h
rm -rf build
mkdir build
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DFEDORA -DNO_SSL_CALLBACK"
export SSL_LIB=`readlink %{_libdir}/libssl.so`
export CFLAGS="-D_GNU_SOURCE -fPIE -DPIE"
export LDFLAGS="$LDFLAGS -Wl,-z,now -pie"
cd build
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_VERBOSE_MAKEFILE=TRUE \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS_RELEASE:STRING="$RPM_OPT_FLAGS -fno-strict-aliasing" \
-DCMAKE_CXX_FLAGS_RELEASE:STRING="$RPM_OPT_FLAGS" \
-DCMAKE_SKIP_RPATH=1 \
-DPACKAGE_ARCHITECTURE=`uname -m` \
-DLIB=%{_lib} \
-DBUILD_RUBY_GEM=no \
-DBUILD_JAVA=no \
..
make CFLAGS="-DSSL_LIB='\"$SSL_LIB\"'"
%install
# install regular source
cd %{name}-%{commit}
cd build
make DESTDIR=%{buildroot} install
cd ..
rm -f %{buildroot}/%{_libdir}/*.la
rm -f %{buildroot}/%{_libdir}/openwsman/plugins/*.la
rm -f %{buildroot}/%{_libdir}/openwsman/authenticators/*.la
[ -d %{buildroot}/%{ruby_vendorlibdir} ] && rm -f %{buildroot}/%{ruby_vendorlibdir}/openwsmanplugin.rb
[ -d %{buildroot}/%{ruby_vendorlibdir} ] && rm -f %{buildroot}/%{ruby_vendorlibdir}/openwsman.rb
mkdir -p %{buildroot}%{_sysconfdir}/init.d
install -m 644 etc/openwsman.conf %{buildroot}/%{_sysconfdir}/openwsman
install -m 644 etc/openwsman_client.conf %{buildroot}/%{_sysconfdir}/openwsman
mkdir -p %{buildroot}/%{_unitdir}
install -p -m 644 %{SOURCE2} %{buildroot}/%{_unitdir}/openwsmand.service
install -m 644 etc/ssleay.cnf %{buildroot}/%{_sysconfdir}/openwsman
install -p -m 755 %{SOURCE3} %{buildroot}/%{_sysconfdir}/openwsman
# install manpage
mkdir -p %{buildroot}/%{_mandir}/man8/
cp %SOURCE1 %{buildroot}/%{_mandir}/man8/
# install missing headers
install -m 644 include/wsman-xml.h %{buildroot}/%{_includedir}/openwsman
install -m 644 include/wsman-xml-binding.h %{buildroot}/%{_includedir}/openwsman
install -m 644 include/wsman-dispatcher.h %{buildroot}/%{_includedir}/openwsman
# remove winrs
rm -f %{buildroot}/%{_bindir}/winrs
# install compat library
cd ../%{name}-%{compatver}
install build/src/lib/libwsman_client.so.1.0.0 %{buildroot}/%{_libdir}
# create symlink
pushd %{buildroot}/%{_libdir}
ln -s libwsman_client.so.1.0.0 libwsman_client.so.1
popd
%post -n libwsman1 -p /sbin/ldconfig
%postun -n libwsman1 -p /sbin/ldconfig
%post server
/sbin/ldconfig
%systemd_post openwsmand.service
%preun server
%systemd_preun openwsmand.service
%postun server
rm -f /var/log/wsmand.log
%systemd_postun_with_restart openwsmand.service
/sbin/ldconfig
%post client -p /sbin/ldconfig
%postun client -p /sbin/ldconfig
%files -n libwsman1
%doc %{name}-%{commit}/AUTHORS %{name}-%{commit}/COPYING %{name}-%{commit}/ChangeLog %{name}-%{commit}/README.md %{name}-%{commit}/TODO
%{_libdir}/libwsman.so.*
%{_libdir}/libwsman_client.so.*
%{_libdir}/libwsman_curl_client_transport.so.*
%files -n libwsman-devel
%{_includedir}/*
%{_libdir}/pkgconfig/*
%{_libdir}/*.so
%doc %{name}-%{commit}/AUTHORS %{name}-%{commit}/COPYING %{name}-%{commit}/ChangeLog %{name}-%{commit}/README.md
%files python
%{python_sitearch}/*.so
%{python_sitearch}/*.py
#%{python_sitearch}/*.pyc
#%{python_sitearch}/*.pyo
%doc %{name}-%{commit}/AUTHORS %{name}-%{commit}/COPYING %{name}-%{commit}/ChangeLog %{name}-%{commit}/README.md
%files ruby
%{ruby_vendorarchdir}/_openwsman.so
%dir %{ruby_vendorlibdir}/openwsman
%{ruby_vendorlibdir}/openwsman/*.rb
%doc %{name}-%{commit}/AUTHORS %{name}-%{commit}/COPYING %{name}-%{commit}/ChangeLog %{name}-%{commit}/README.md
#%files java
#%defattr(-,root,root)
#%{_javadir}/*jar
%files perl
%{perl_vendorarch}/openwsman.so
%{perl_vendorlib}/openwsman.pm
%doc %{name}-%{commit}/AUTHORS %{name}-%{commit}/COPYING %{name}-%{commit}/ChangeLog %{name}-%{commit}/README.md
%files server
# Don't remove *.so files from the server package.
# the server fails to start without these files.
%dir %{_sysconfdir}/openwsman
%config(noreplace) %{_sysconfdir}/openwsman/openwsman.conf
%config(noreplace) %{_sysconfdir}/openwsman/ssleay.cnf
%attr(0755,root,root) %{_sysconfdir}/openwsman/owsmangencert.sh
%attr(0755,root,root) %{_sysconfdir}/openwsman/owsmantestcert.sh
%config(noreplace) %{_sysconfdir}/pam.d/openwsman
%{_unitdir}/openwsmand.service
%dir %{_libdir}/openwsman
%dir %{_libdir}/openwsman/authenticators
%{_libdir}/openwsman/authenticators/*.so
%{_libdir}/openwsman/authenticators/*.so.*
%dir %{_libdir}/openwsman/plugins
%{_libdir}/openwsman/plugins/*.so
%{_libdir}/openwsman/plugins/*.so.*
%{_sbindir}/openwsmand
%{_libdir}/libwsman_server.so.*
%{_mandir}/man8/*
%doc %{name}-%{commit}/AUTHORS %{name}-%{commit}/COPYING %{name}-%{commit}/ChangeLog %{name}-%{commit}/README.md
%files client
%{_libdir}/libwsman_clientpp.so.*
%config(noreplace) %{_sysconfdir}/openwsman/openwsman_client.conf
%doc %{name}-%{commit}/AUTHORS %{name}-%{commit}/COPYING %{name}-%{commit}/ChangeLog %{name}-%{commit}/README.md
%changelog
* Fri Jun 15 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.3-4.git4391e5c
- Explicitly disable build of java bindings
Resolves: #1540723
- Add support for ECDH key exchange algorithm
Resolves: #1547144
* Wed Jan 31 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.3-3.git4391e5c
- Add libwsman-client.so.1 for backward compatibility
Resolves: #1537528
* Mon Jan 22 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.3-2.git4391e5c
- Fix malformed HTTP 200 status line
Resolves: #1532722
* Tue Oct 03 2017 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.6.3-1.git4391e5c
- Update to openwsman-2.6.3 from upstream VCS
Resolves: #1208364 #1296198
- Backport support for configuring used cipher suite
Resolves: #1454607
* Wed Mar 15 2017 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.6-14
- Backport option for disabling various SSL protocols
Resolves: #1190689
- Fix curl_easy_setopt call for CURLOPT_SSL_VERIFYPEER/HOST
Resolves: #1319949
* Mon Feb 10 2014 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.6-13
- Fix libredirect.so doesn't load
Resolves: #1061676
* Wed Feb 05 2014 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.6-12
- Update openwsmand man page
Resolves: #949018
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 2.3.6-11
- Mass rebuild 2014-01-24
* Thu Jan 09 2014 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.6-10
- Fix pam.d config
- Start the service using SSL by default
Resolves: #1047800
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 2.3.6-9
- Mass rebuild 2013-12-27
* Mon Oct 07 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.6-8
- Add requires for ruby subpackage
Related: #881316
* Wed Oct 02 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.6-7
- Fix bogus date in the %%changelog
- Build with full relro
- Fix requires/provides
Resolves: #881316
* Tue Mar 19 2013 Vít Ondruch <vondruch@redhat.com> - 2.3.6-6
- Rebuild for https://fedoraproject.org/wiki/Features/Ruby_2.0.0
* Mon Mar 18 2013 Praveen K Paladugu <praveen_paladugu@dell.com>-2.3.6-5
- Disabling the java binding for now.
* Fri Mar 15 2013 Praveen K Paladugu <praveen_paladugu@dell.com>-2.3.6-4
- Enabled java bindings in the build
- Removed versioned dep on ruby
* Wed Mar 13 2013 Peter Robinson <pbrobinson@fedoraproject.org> 2.3.6-3
- rebuild for ruby 2
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Thu Nov 08 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.6-1
- Update to openwsman-2.3.6
* Mon Sep 17 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.5-1
- Update to openwsman-2.3.5
- Enable ruby subpackage again
* Tue Aug 28 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.0-7
- Fix issues found by fedora-review utility in the spec file
* Thu Aug 23 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.0-6
- Use new systemd-rpm macros
Resolves: #850405
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sun Jun 10 2012 Petr Pisar <ppisar@redhat.com> - 2.3.0-4
- Perl 5.16 rebuild
* Mon May 28 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.0-3
- Rename service file
* Wed May 23 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.0-2
- Add systemd support
* Tue Mar 27 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.3.0-1
- Update to openwsman-2.3.0
* Thu Feb 09 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.7-4
- Fix libssl loading
* Thu Feb 09 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.7-3
- Temporarily disable ruby subpackage
* Thu Jan 26 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.7-2
- Remove unnecessary net-tools requirement
Resolves: #784787
* Wed Jan 11 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.7-1
- Update to openwsman-2.2.7
* Mon Jun 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 2.2.5-3
- Perl mass rebuild
* Fri Jun 10 2011 Marcela Mašláňová <mmaslano@redhat.com> - 2.2.5-2
- Perl 5.14 mass rebuild
* Wed Mar 23 2011 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.5-1
- Update to openwsman-2.2.5
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Thu Dec 9 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.4-2
- Recompile with -DNO_SSL_CALLBACK
* Tue Nov 16 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.4-1
- Update to openwsman-2.2.4
- Add help2man generated manpage for openwsmand binary
- Add missing openwsman headers to libwsman-devel
- Add configuration file to openwsman-client
* Wed Sep 29 2010 jkeating - 2.2.3-9
- Rebuilt for gcc bug 634757
* Mon Sep 13 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.3-8
- Move initscript to the right place
- Fix return values from initscript according to guidelines
* Tue Aug 10 2010 Praveen K Paladugu <praveen_paladugu@dell.com> - 2.2.3-7
- Moved the certificate generation from init script. The user will have to
- generate the certificate manually.
* Mon Aug 2 2010 Praveen K Paladugu <praveen_paladugu@dell.com> - 2.2.3-6
- Fixed the version checking of swig and forced all the ruby files to be
- installed into site{lib,arch} dirs
* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 2.2.3-5
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
* Tue Jun 01 2010 Marcela Maslanova <mmaslano@redhat.com> - 2.2.3-4
- Mass rebuild with perl-5.12.0
* Thu Apr 22 2010 Praveen K Paladugu <praveen_paladugu@dell.com> - 2.2.3-3
- authors.patch: Moved all the AUTHORS info to AUTHORS file.
- Corrected the Source tag.
- Corrected the package dependencies to break cyclic dependencies.
- Fixed the default attributes.
- Fixed the preun & postun scripts, to make sure the openwsmand service
- is stopped before the package is removed.
- Added 'condrestart' function to the init script.
- Had to let the *.so files be part of the openwsman-server becuase
- some of the source files explicitly call out for *.so files.
* Thu Apr 15 2010 Praveen K Paladugu <praveen_paladugu@dell.com> - 2.2.3-2
- Updated the spec file to adhere to the upstream standard of breaking
- the package in server, client, lib modules
- randfile.patch: when openwsmand daemon creates a certificate the
- first time it needs a file which have random content it. This
- is pointed to $HOME/.rnd in /etc/openwsman/ssleay.cnf. Changed this
- random file to /dev/urandom.
- initscript.patch: patch to edit the init script so that the services
- are not started by default.
* Wed Mar 3 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.3-1
- Update to openwsman-2.2.3
* Wed Sep 23 2009 Praveen K Paladugu <praveen_paladugu@dell.com> - 2.2.0-1
- Added the new 2.2.0 sources.
- Changed the release and version numbers.
* Fri Aug 21 2009 Tomas Mraz <tmraz@redhat.com> - 2.1.0-4
- rebuilt with new openssl
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Mon Sep 22 2008 Matt Domsch <Matt_Domsch@dell.com> - 2.1.0-1
- update to 2.1.0, resolves security issues
* Tue Aug 19 2008 <srinivas_ramanatha@dell.com> - 2.0.0-1%{?dist}
- Modified the spec file to adhere to fedora packaging guidelines.