From 6206abc0739eeae8094cd76d4e59798d6e8500fe Mon Sep 17 00:00:00 2001 From: Praveen K Paladugu Date: Thu, 15 Apr 2010 23:18:46 +0000 Subject: [PATCH] Updated the spec file to break the pkg in server, client, lib components. --- openwsman-randfile.patch | 12 ++ openwsman.spec | 356 +++++++++++++++++++++++++++++---------- 2 files changed, 280 insertions(+), 88 deletions(-) create mode 100644 openwsman-randfile.patch diff --git a/openwsman-randfile.patch b/openwsman-randfile.patch new file mode 100644 index 0000000..c76391d --- /dev/null +++ b/openwsman-randfile.patch @@ -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 diff --git a/openwsman.spec b/openwsman.spec index 9a8ccea..1aaad12 100644 --- a/openwsman.spec +++ b/openwsman.spec @@ -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_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"] ')} 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 -Release: 1%{?dist} -License: BSD +Release: 2%{?dist} 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 +Patch1: %{name}-randfile.patch 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 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 Linux operating system using the WS-Management protocol. WS-Management 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. -%package devel -Summary: Openwsman Development files + +Authors: +-------- + Anas Nashif + Vadim Revyakin + Denis Sadykov + +%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 + Vadim Revyakin + Denis Sadykov + +%package -n libwsman-devel +License: BSD Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: pkgconfig -%description devel -Openwsman Development files +Summary: Opensource 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 + + +Authors: +-------- + Anas Nashif + Vadim Revyakin + Denis Sadykov + +%package client +License: BSD +Group: System Environment/Libraries +Summary: Openwsman Client libraries + +%description client +Openwsman Client libraries + + + +Authors: +-------- + Anas Nashif + Vadim Revyakin + Denis Sadykov + +%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 + Vadim Revyakin + Denis Sadykov %package python -Summary: Openwsman Python bindings +License: BSD Group: Development/Libraries -Requires: %{name} = %{version}-%{release} +Summary: Python bindings for openwsman client API +Requires: 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 + Vadim Revyakin + Denis Sadykov + +%package ruby +License: BSD Group: Development/Libraries -Requires: %{name} = %{version}-%{release} +Requires: ruby Requires: ruby(abi) = 1.8 -Provides: ruby(%{name}) = %{version} -%description -n ruby-%{name} -Openwsman ruby bindings +Summary: Ruby bindings for openwsman client API +%description ruby +This package provides Ruby bindings to access the openwsman client API. + + + +Authors: +-------- + Anas Nashif + Vadim Revyakin + Denis Sadykov + +%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 + Vadim Revyakin + Denis Sadykov %prep -%setup -q -%patch0 -p1 -b .initscript +%setup -q +%patch0 -p1 +%patch1 -p1 %build -chmod a-x src/lib/*.[ch] -chmod a-x src/cpp/*.[ch] -chmod a-x include/*.[ch] +sh autoconfiscate.sh +# Removing executable permissions on .c and .h files to fix rpmlint warnings. +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 -# disable tests in 2.1.0, http://www.openwsman.org/bug/263 -%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} +export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -DFEDORA" +make CFLAGS="$RPM_OPT_FLAGS" %{?_smp_flags} %install rm -rf %{buildroot} -make DESTDIR=%{buildroot} install -install -m 0644 etc/openwsman.conf %{buildroot}/etc/openwsman -install -m 0644 etc/ssleay.cnf %{buildroot}/etc/openwsman -install -D -m 0755 etc/init/%{name}d.sh %{buildroot}/%{_initrddir}/%{name}d -# move this helper script out of /etc -mkdir -p %{buildroot}/%{_libexecdir}/%{name}/ -chmod 0755 %{buildroot}/etc/%{name}/owsmangencert.sh -mv %{buildroot}/etc/%{name}/owsmangencert.sh %{buildroot}/%{_libexecdir}/%{name}/ -find %{buildroot} -type f -name \*.la -exec rm \{\} \; -find %{buildroot} -type f -name \*.a -exec rm \{\} \; +make DESTDIR=$RPM_BUILD_ROOT install +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/openwsman/plugins/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/openwsman/authenticators/*.la +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/init.d +install -m 644 etc/openwsman.conf $RPM_BUILD_ROOT%{_sysconfdir}/openwsman +install -m 644 etc/ssleay.cnf $RPM_BUILD_ROOT%{_sysconfdir}/openwsman +install -m 755 etc/init/openwsmand.sh $RPM_BUILD_ROOT%{_sysconfdir}/init.d/openwsmand +ln -sf %{_sysconfdir}/init.d/openwsmand $RPM_BUILD_ROOT%{_sbindir}/rcopenwsmand %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) -%{_sbindir}/%{name}d -%{_initrddir}/%{name}d -%{_libexecdir}/%{name} -%dir %{_libdir}/%{name} -%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 +%doc AUTHORS COPYING ChangeLog README TODO +%{_libdir}/libwsman.so.* +%{_libdir}/libwsman_client.so.* +%{_libdir}/libwsman_curl_client_transport.so.* -%files devel +%files -n libwsman-devel %defattr(-,root,root) %{_includedir}/* +%{_libdir}/pkgconfig/* %{_libdir}/*.so -%{_libdir}/%{name}/plugins/*so -%{_libdir}/%{name}/authenticators/*so -%{_libdir}/pkgconfig/%{name}*.pc -%doc COPYING examples/serialize.c doc/plugin* +%doc AUTHORS COPYING ChangeLog README %files python %defattr(-,root,root) -%{python_sitelib}/pywsman.py -%{python_sitelib}/pywsman.pyc -%{python_sitelib}/pywsman.pyo %{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) -%{ruby_sitearch}/*.so -%doc COPYING +%{ruby_sitearch}/openwsman.so +%dir %{ruby_sitelib}/openwsman +%{ruby_sitelib}/openwsman/openwsman.rb +%{ruby_sitelib}/openwsman/xmlnode.rb +%doc AUTHORS COPYING ChangeLog README -%post -/sbin/ldconfig -/sbin/chkconfig --add %{name}d +%files perl +%defattr(-,root,root) +%{perl_vendorarch}/openwsman.so +%{perl_vendorlib}/openwsman.pm +%doc AUTHORS COPYING ChangeLog README -%preun -if [ $1 = 0 ] ; then - /sbin/service %{name}d stop >/dev/null 2>&1 - /sbin/chkconfig --del %{name}d -fi +%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 +%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 -/sbin/ldconfig -if [ "$1" -ge "1" ] ; then - /sbin/service %{name}d condrestart >/dev/null 2>&1 || : -fi +%files client +%defattr(-,root,root) +%{_libdir}/libwsman_clientpp.so.* +%doc AUTHORS COPYING ChangeLog README %changelog +* Thu Apr 15 2010 Praveen K Paladugu - 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 - 2.2.3-1 - Update to openwsman-2.2.3