Blob Blame History Raw

%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5)
%{!?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))")}
%endif
%{!?ruby_sitelib: %global ruby_sitelib %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"] ')}
%{!?ruby_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"] ')}

Name:           openwsman
BuildRequires:  swig
BuildRequires:  libcurl-devel libxml2-devel pam-devel sblim-sfcc-devel
#BuildRequires:  python python-devel ruby ruby-devel ruby-rdoc perl
BuildRequires:  python python-devel perl
BuildRequires:  perl-devel pkgconfig openssl-devel
BuildRequires:  cmake
BuildRequires:  systemd-units
Version:        2.2.7
Release:        5%{?dist}
Url:            http://www.openwsman.org/
License:        BSD
Group:          Applications/System
Summary:        Open source Implementation of WS-Management
Source:         http://downloads.sourceforge.net/project/openwsman/%{name}/%{version}/%{name}-%{version}.tar.bz2
# 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
Patch0:         %{name}-sitelibdir.patch
Patch2:         openwsman-2.2.7-disable-ruby.patch
BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXXX)

%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}
Obsoletes:      %{name} < %{version}

%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}
Obsoletes:      %{name}-devel < %{version}
Requires:       libwsman1 = %{version}
Requires:       %{name}-server = %{version}
Requires:       %{name}-client = %{version}
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

%description server
Openwsman Server and service libraries




%package python
License:        BSD
Group:          Development/Libraries
Summary:        Python bindings for openwsman client API
Requires:       python

%description python
This package provides Python bindings to access the openwsman client
API.




#%package ruby
#License:        BSD
#Group:          Development/Libraries
#Requires:       ruby
#Requires:       ruby(abi) = 1.9.1
#Summary:        Ruby bindings for openwsman client API
#
#%description ruby
#This package provides Ruby 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

%description perl
This package provides Perl bindings to access the openwsman client API.




%prep
%setup -q
# don't make backup of file patched by patch0, it'll be installed...
%patch0 -p1
%patch2 -p1

%build
# 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`
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} \
   ..

make CFLAGS="-DSSL_LIB='\"$SSL_LIB\"'"

%install
rm -rf %{buildroot}
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_sitelib} ] && rm -f %{buildroot}/%{ruby_sitelib}/openwsmanplugin.rb
[ -d %{buildroot}/%{ruby_sitelib} ] && rm -f %{buildroot}/%{ruby_sitelib}/openwsman.rb
[ -d %{buildroot/}%{ruby_vendorlib} ] && rm -f %{buildroot}/%{ruby_vendorlib}/openwsmanplugin.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 $RPM_BUILD_ROOT%{_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

%clean
rm -rf %{buildroot}

%post -n libwsman1 -p /sbin/ldconfig

%postun -n libwsman1 -p /sbin/ldconfig

%post server
/sbin/ldconfig
if [ $1 -eq 1 ] ; then
  # Initial installation 
  /bin/systemctl daemon-reload >/dev/null 2>&1 || :
fi

%preun server
if [ $1 = 0 ] ; then
       /bin/systemctl --no-reload disable openwsmand.service > /dev/null 2>&1 || :
       /bin/systemctl stop openwsmand.service > /dev/null 2>&1 || :
fi

%postun server
rm -f /var/log/wsmand.log

/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ "$1" -ge "1" ] ; then
     /bin/systemctl try-restart openwsmand.service >/dev/null 2>&1 || :
fi
/sbin/ldconfig

%post client -p /sbin/ldconfig

%postun client -p /sbin/ldconfig

%files -n libwsman1
%defattr(-,root,root,-)
%doc AUTHORS COPYING ChangeLog README TODO
%{_libdir}/libwsman.so.*
%{_libdir}/libwsman_client.so.*
%{_libdir}/libwsman_curl_client_transport.so.*

%files -n libwsman-devel
%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/pkgconfig/*
%{_libdir}/*.so
%doc AUTHORS COPYING ChangeLog README

%files python
%defattr(-,root,root,-)
%{python_sitearch}/*.so
%{python_sitearch}/*.py
%{python_sitearch}/*.pyc
%{python_sitearch}/*.pyo
%doc AUTHORS COPYING ChangeLog README

#%files ruby
#%defattr(-,root,root,-)
#%{ruby_sitearch}/openwsman.so
#%{ruby_sitearch}/_openwsman.so
#%dir %{ruby_sitelib}/openwsman
#%{ruby_sitelib}/openwsman/*.rb
#%doc AUTHORS COPYING ChangeLog README

%files perl
%defattr(-,root,root,-)
%{perl_vendorarch}/openwsman.so
%{perl_vendorlib}/openwsman.pm
%doc AUTHORS COPYING ChangeLog README

%files server
# Don't remove *.so files from the server package.
# the server fails to start without these files.
%defattr(-,root,root,-)
%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 AUTHORS COPYING ChangeLog README

%files client
%defattr(-,root,root,-)
%{_libdir}/libwsman_clientpp.so.*
%config(noreplace) %{_sysconfdir}/openwsman/openwsman_client.conf
%doc AUTHORS COPYING ChangeLog README


%changelog
* Mon May 28 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.7-5
- Rename service file

* Wed May 23 2012 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.7-4
- Add systemd support

* 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

* Tue 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.