Updated the spec file to break the pkg in server, client, lib components.

This commit is contained in:
Praveen K Paladugu 2010-04-15 23:18:46 +00:00
parent eb3d4c4e47
commit 6206abc073
2 changed files with 280 additions and 88 deletions

12
openwsman-randfile.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up ./etc/ssleay.cnf.new ./etc/ssleay.cnf
--- ./etc/ssleay.cnf.new 2009-12-16 17:04:15.000000000 -0600
+++ ./etc/ssleay.cnf 2009-12-16 17:04:55.000000000 -0600
@@ -2,7 +2,7 @@
# SSLeay example configuration file.
#
-RANDFILE = $ENV::HOME/.rnd
+RANDFILE = /dev/random
[ req ]
default_bits = 1024

View File

@ -1,25 +1,48 @@
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} #
# spec file for package openwsman (Version 2.2.0)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
# norootforbuild
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %{!?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)")}
%{!?ruby_sitelib: %global ruby_sitelib %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"] ')}
%{!?ruby_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"] ')} %{!?ruby_sitearch: %global ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"] ')}
Name: openwsman Name: openwsman
BuildRequires: swig
BuildRequires: libcurl-devel libxml2-devel pam-devel sblim-sfcc-devel
BuildRequires: python python-devel ruby ruby-devel perl
BuildRequires: perl-devel pkgconfig openssl-devel
BuildRequires: libtool
Requires: net-tools
Version: 2.2.3 Version: 2.2.3
Release: 1%{?dist} Release: 2%{?dist}
License: BSD
Url: http://www.openwsman.org/ Url: http://www.openwsman.org/
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2 License: BSD
Group: Applications/System
Summary: Opensource Implementation of WS-Management
Source: %{name}-%{version}.tar.bz2
Patch0: %{name}-initscript.patch Patch0: %{name}-initscript.patch
Patch1: %{name}-randfile.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXXX) BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXXX)
Group: System Environment/Daemons
Summary: Web Services Management libraries
BuildRequires: sblim-sfcc-devel curl-devel libxml2-devel pkgconfig pam-devel openssl-devel swig python python-devel ruby ruby-devel
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(postun): initscripts
%description %description
Openwsman is a project intended to provide an open-source Openwsman is a project intended to provide an open-source
implementation of the Web Services Management specification implementation of the Web Services Management specipication
(WS-Management) and to expose system management information on the (WS-Management) and to expose system management information on the
Linux operating system using the WS-Management protocol. WS-Management Linux operating system using the WS-Management protocol. WS-Management
is based on a suite of web services specifications and usage is based on a suite of web services specifications and usage
@ -27,120 +50,277 @@ requirements that exposes a set of operations focused on and covers
all system management aspects. all system management aspects.
%package devel
Summary: Openwsman Development files Authors:
--------
Anas Nashif <anas.nashif@intel.com>
Vadim Revyakin <vadim.revyakin@intel.com>
Denis Sadykov <denis.sadykov@intel.com>
%package -n libwsman1
License: BSD
Group: System Environment/Libraries
Summary: Opensource Implementation of WS-Management
Provides: %{name} = %{version}
Obsoletes: %{name} < %{version}
Requires: %{name}-client
%description -n libwsman1
Openwsman library for packages dependent on openwsman
Authors:
--------
Anas Nashif <anas.nashif@intel.com>
Vadim Revyakin <vadim.revyakin@intel.com>
Denis Sadykov <denis.sadykov@intel.com>
%package -n libwsman-devel
License: BSD
Group: Development/Libraries Group: Development/Libraries
Requires: %{name} = %{version}-%{release} Summary: Opensource Implementation of WS-Management
Requires: pkgconfig Provides: %{name}-devel = %{version}
%description devel Obsoletes: %{name}-devel < %{version}
Openwsman Development files 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
Authors:
--------
Anas Nashif <anas.nashif@intel.com>
Vadim Revyakin <vadim.revyakin@intel.com>
Denis Sadykov <denis.sadykov@intel.com>
%package client
License: BSD
Group: System Environment/Libraries
Summary: Openwsman Client libraries
%description client
Openwsman Client libraries
Authors:
--------
Anas Nashif <anas.nashif@intel.com>
Vadim Revyakin <vadim.revyakin@intel.com>
Denis Sadykov <denis.sadykov@intel.com>
%package server
License: BSD
Group: System Environment/Daemons
Requires: net-tools
Requires: openwsman-client
Requires(post): chkconfig
Requires(preun): chkconfig
Requires(postun): initscripts
Summary: Openwsman Server and service libraries
%description server
Openwsman Server and service libraries
Authors:
--------
Anas Nashif <anas.nashif@intel.com>
Vadim Revyakin <vadim.revyakin@intel.com>
Denis Sadykov <denis.sadykov@intel.com>
%package python %package python
Summary: Openwsman Python bindings License: BSD
Group: Development/Libraries Group: Development/Libraries
Requires: %{name} = %{version}-%{release} Summary: Python bindings for openwsman client API
Requires: python
%description python %description python
Openwsman python bindings This package provides Python bindings to access the openwsman client
API.
%package -n ruby-%{name}
Summary: Openwsman Ruby bindings
Authors:
--------
Anas Nashif <anas.nashif@intel.com>
Vadim Revyakin <vadim.revyakin@intel.com>
Denis Sadykov <denis.sadykov@intel.com>
%package ruby
License: BSD
Group: Development/Libraries Group: Development/Libraries
Requires: %{name} = %{version}-%{release} Requires: ruby
Requires: ruby(abi) = 1.8 Requires: ruby(abi) = 1.8
Provides: ruby(%{name}) = %{version} Summary: Ruby bindings for openwsman client API
%description -n ruby-%{name}
Openwsman ruby bindings
%description ruby
This package provides Ruby bindings to access the openwsman client API.
Authors:
--------
Anas Nashif <anas.nashif@intel.com>
Vadim Revyakin <vadim.revyakin@intel.com>
Denis Sadykov <denis.sadykov@intel.com>
%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.
Authors:
--------
Anas Nashif <anas.nashif@intel.com>
Vadim Revyakin <vadim.revyakin@intel.com>
Denis Sadykov <denis.sadykov@intel.com>
%prep %prep
%setup -q %setup -q
%patch0 -p1 -b .initscript %patch0 -p1
%patch1 -p1
%build %build
chmod a-x src/lib/*.[ch] sh autoconfiscate.sh
chmod a-x src/cpp/*.[ch] # Removing executable permissions on .c and .h files to fix rpmlint warnings.
chmod a-x include/*.[ch] chmod -x src/cpp/WsmanClient.h
chmod -x src/lib/wsman-filter.c
chmod -x include/wsman-filter.h
%configure \
--disable-more-warnings \
--disable-static \
--enable-python \
--enable-ruby \
--enable-perl \
--enable-ipv6
#make clean
# disable eventing, as Fedora libcurl isn't linked against openssl export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DFEDORA"
# disable tests in 2.1.0, http://www.openwsman.org/bug/263 make CFLAGS="$RPM_OPT_FLAGS" %{?_smp_flags}
%configure --with-examples=yes --with-tests=no --enable-python=yes --enable-ruby=yes --enable-eventing=no --disable-more-warnings
echo %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")
make %{?_smp_flags}
%install %install
rm -rf %{buildroot} rm -rf %{buildroot}
make DESTDIR=%{buildroot} install make DESTDIR=$RPM_BUILD_ROOT install
install -m 0644 etc/openwsman.conf %{buildroot}/etc/openwsman rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
install -m 0644 etc/ssleay.cnf %{buildroot}/etc/openwsman rm -f $RPM_BUILD_ROOT%{_libdir}/openwsman/plugins/*.la
install -D -m 0755 etc/init/%{name}d.sh %{buildroot}/%{_initrddir}/%{name}d rm -f $RPM_BUILD_ROOT%{_libdir}/openwsman/authenticators/*.la
# move this helper script out of /etc mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d
mkdir -p %{buildroot}/%{_libexecdir}/%{name}/ install -m 644 etc/openwsman.conf $RPM_BUILD_ROOT%{_sysconfdir}/openwsman
chmod 0755 %{buildroot}/etc/%{name}/owsmangencert.sh install -m 644 etc/ssleay.cnf $RPM_BUILD_ROOT%{_sysconfdir}/openwsman
mv %{buildroot}/etc/%{name}/owsmangencert.sh %{buildroot}/%{_libexecdir}/%{name}/ install -m 755 etc/init/openwsmand.sh $RPM_BUILD_ROOT%{_sysconfdir}/init.d/openwsmand
find %{buildroot} -type f -name \*.la -exec rm \{\} \; ln -sf %{_sysconfdir}/init.d/openwsmand $RPM_BUILD_ROOT%{_sbindir}/rcopenwsmand
find %{buildroot} -type f -name \*.a -exec rm \{\} \;
%clean %clean
rm -rf %{buildroot} rm -rf $RPM_BUILD_ROOT
%files %post -n libwsman1 -p /sbin/ldconfig
%postun -n libwsman1 -p /sbin/ldconfig
%post server
/sbin/ldconfig
chkconfig --add openwsmand
%preun server
chkconfig --del openwsmand
%postun server
rm -f /var/log/wsmand.log
/sbin/ldconfig
%post client -p /sbin/ldconfig
%postun client -p /sbin/ldconfig
%files -n libwsman1
%defattr(-,root,root) %defattr(-,root,root)
%{_sbindir}/%{name}d %doc AUTHORS COPYING ChangeLog README TODO
%{_initrddir}/%{name}d %{_libdir}/libwsman.so.*
%{_libexecdir}/%{name} %{_libdir}/libwsman_client.so.*
%dir %{_libdir}/%{name} %{_libdir}/libwsman_curl_client_transport.so.*
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/authenticators
%{_libdir}/libwsman*.so.*
%{_libdir}/%{name}/plugins/*so.*
%{_libdir}/%{name}/authenticators/*so.*
%dir /etc/openwsman
%config(noreplace) /etc/openwsman/openwsman.conf
%config(noreplace) /etc/openwsman/ssleay.cnf
/usr/lib/ruby/site_ruby/1.8/openwsman/
%config(noreplace) %{_sysconfdir}/pam.d/openwsman
%doc COPYING README
%files devel %files -n libwsman-devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/* %{_includedir}/*
%{_libdir}/pkgconfig/*
%{_libdir}/*.so %{_libdir}/*.so
%{_libdir}/%{name}/plugins/*so %doc AUTHORS COPYING ChangeLog README
%{_libdir}/%{name}/authenticators/*so
%{_libdir}/pkgconfig/%{name}*.pc
%doc COPYING examples/serialize.c doc/plugin*
%files python %files python
%defattr(-,root,root) %defattr(-,root,root)
%{python_sitelib}/pywsman.py
%{python_sitelib}/pywsman.pyc
%{python_sitelib}/pywsman.pyo
%{python_sitearch}/*.so %{python_sitearch}/*.so
%doc COPYING %{python_sitelib}/*.py
%{python_sitelib}/*.pyc
%{python_sitelib}/*.pyo
%doc AUTHORS COPYING ChangeLog README
%files -n ruby-%{name} %files ruby
%defattr(-,root,root) %defattr(-,root,root)
%{ruby_sitearch}/*.so %{ruby_sitearch}/openwsman.so
%doc COPYING %dir %{ruby_sitelib}/openwsman
%{ruby_sitelib}/openwsman/openwsman.rb
%{ruby_sitelib}/openwsman/xmlnode.rb
%doc AUTHORS COPYING ChangeLog README
%post %files perl
/sbin/ldconfig %defattr(-,root,root)
/sbin/chkconfig --add %{name}d %{perl_vendorarch}/openwsman.so
%{perl_vendorlib}/openwsman.pm
%doc AUTHORS COPYING ChangeLog README
%preun %files server
if [ $1 = 0 ] ; then # Don't remove *.so files from the server package.
/sbin/service %{name}d stop >/dev/null 2>&1 # the server fails to start without these files.
/sbin/chkconfig --del %{name}d %defattr(-,root,root)
fi %dir %{_sysconfdir}/openwsman
%config(noreplace) %{_sysconfdir}/openwsman/openwsman.conf
%config(noreplace) %{_sysconfdir}/openwsman/ssleay.cnf
%attr(0755,root,root) %{_sysconfdir}/openwsman/owsmangencert.sh
%config(noreplace) %{_sysconfdir}/pam.d/openwsman
%attr(0755,root,root) %{_sysconfdir}/init.d/openwsmand
%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
%{_sbindir}/rcopenwsmand
%{_libdir}/libwsman_server.so.*
%doc AUTHORS COPYING ChangeLog README
%postun %files client
/sbin/ldconfig %defattr(-,root,root)
if [ "$1" -ge "1" ] ; then %{_libdir}/libwsman_clientpp.so.*
/sbin/service %{name}d condrestart >/dev/null 2>&1 || : %doc AUTHORS COPYING ChangeLog README
fi
%changelog %changelog
* 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 * Wed Mar 3 2010 Vitezslav Crhonek <vcrhonek@redhat.com> - 2.2.3-1
- Update to openwsman-2.2.3 - Update to openwsman-2.2.3