diff --git a/openwsman-initscript.patch b/openwsman-initscript.patch index 50f3add..82115f4 100644 --- a/openwsman-initscript.patch +++ b/openwsman-initscript.patch @@ -1,28 +1,120 @@ ---- openwsman-2.0.0/etc/init/openwsmand.sh.in.orig 2008-09-07 00:01:29.000000000 -0500 -+++ openwsman-2.0.0/etc/init/openwsmand.sh.in 2008-09-07 00:34:57.000000000 -0500 -@@ -4,15 +4,13 @@ - # Provides: openwsmand +diff -up ./etc/init/openwsmand.sh.in.org ./etc/init/openwsmand.sh.in +--- ./etc/init/openwsmand.sh.in.org 2009-12-11 13:04:10.000000000 -0600 ++++ ./etc/init/openwsmand.sh.in 2009-12-11 13:14:14.000000000 -0600 +@@ -5,7 +5,7 @@ # Required-Start: $remote_fs # Required-Stop: $network --# Default-Start: 2 3 4 5 + # Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 ++# Default-Stop: 0 1 6 # Short-Description: Openwsman Daemon # Description: openwsmand # Start/Stop the Openwsman Daemon - ### END INIT INFO - # - # --# chkconfig: 2345 36 64 -+# chkconfig: - 36 64 - # description: Openwsman Daemon - # processname: openwsmand - -@@ -57,7 +55,7 @@ case "$1" in - if [ "x${FQDN}" = "x" ]; then - FQDN=localhost.localdomain - fi --cat << EOF | sh @SYSCONFDIR@/owsmangencert.sh > /dev/null 2>&1 -+cat << EOF | sh @libexecdir@/openwsman/owsmangencert.sh > /dev/null 2>&1 - -- - SomeState - SomeCity +@@ -18,7 +18,7 @@ + + NAME=openwsmand + DAEMON=/usr/sbin/$NAME +-OPTIONS= ++OPTIONS=-S + PIDFILE=/var/run/$NAME.pid + + if [ $EUID != 0 ]; then +@@ -37,12 +37,14 @@ lockfile=${SVIlock:-/var/lock/subsys/$NA + if [ -f "/etc/sysconfig/openwsman" ]; then + . /etc/sysconfig/openwsman + fi +-# See how we were called. +-. /etc/rc.status + +-# Reset status of this service +-rc_reset ++if [ -f "/etc/SuSe-release" ]; then ++ # See how we were called. ++ . /etc/rc.status + ++ # Reset status of this service ++ rc_reset ++fi + + case "$1" in + start) +@@ -71,16 +73,28 @@ EOF + + # Start daemons. + echo -n "Starting the $DESCRIPTIVE" +- startproc -p $PIDFILE $DAEMON > /dev/null 2>&1 +- rc_status -v ++ if [ -f "/etc/SuSe-release" ]; then ++ startproc -p $PIDFILE $DAEMON > /dev/null 2>&1 ++ rc_status -v ++ elif [ -f "/etc/redhat-release" ]; then ++ $DAEMON -S && echo " done." || echo " failed." ++ fi ++ + touch $lockfile + ;; + + stop) + # Stop daemons. + echo -n "Shutting down $DESCRIPTIVE" +- killproc -p $PIDFILE -TERM $DAEMON +- rc_status -v ++ if [ -f "/etc/SuSe-release" ]; then ++ killproc -p $PIDFILE -TERM $DAEMON ++ rc_status -v ++ elif [ -f "/etc/redhat-release" ]; then ++ kill -9 `pidof openwsmand` > /dev/null 2>&1 ++ if [ $? -eq 0 ]; then ++ echo " done" ++ fi ++ fi + rm -f $lockfile + ;; + +@@ -91,19 +105,40 @@ EOF + ;; + + reload) +- echo -n "Reload service $DESCRIPTIVE" +- killproc -p $PIDFILE -HUP $DAEMON +- rc_status -v ++ echo -n "Reloading service $DESCRIPTIVE" ++ if [ -f "/etc-SuSe-release" ]; then ++ killproc -p $PIDFILE -HUP $DAEMON ++ rc_status -v ++ elif [ -f "/etc/redhat-release" ]; then ++ killall -HUP openwsmad && echo " done."|| echo " failed." ++ fi + ;; + + status) + echo -n "Checking for service $DESCRIPTIVE" +- checkproc -p $PIDFILE $DAEMON +- rc_status -v ++ if [ -f "/etc/SuSe-release" ]; then ++ checkproc -p $PIDFILE $DAEMON ++ rc_status -v ++ elif [ -f "/etc/redhat-release" ]; then ++ pidof opewsmand > /dev/null 2>&1 ++ if [ $? -eq 0 ]; then ++ echo " running" ++ else ++ echo " stopped" ++ fi ++ fi ++ ++ ;; ++ condrestart) ++ [ -f $lockfile ] && restart || : + ;; + + *) +- echo "Usage: $0 {restart|start|stop|reload|force-reload|status}" ++ echo "Usage: $0 {restart|start|stop|reload|force-reload|status|condrestart}" + esac + ++if [ -f "/etc/SuSe-release" ]; then + rc_exit ++elif [ -f "/etc/redhat-release" ]; then ++exit 0 ++fi diff --git a/openwsman-pam-auth.patch b/openwsman-pam-auth.patch new file mode 100644 index 0000000..7c3d4f7 --- /dev/null +++ b/openwsman-pam-auth.patch @@ -0,0 +1,24 @@ +Index: openwsman.conf +=================================================================== +--- openwsman-2.0.0/etc/openwsman.conf (revision 3221) ++++ openwsman-2.0.0/etc/openwsman.conf (working copy) +@@ -4,7 +4,7 @@ + ssl_cert_file = /etc/openwsman/servercert.pem + ssl_key_file = /etc/openwsman/serverkey.pem + digest_password_file = /etc/openwsman/digest_auth.passwd +-basic_password_file = /etc/openwsman/simple_auth.passwd ++#basic_password_file = /etc/openwsman/simple_auth.passwd + + min_threads = 4 + max_threads = 10 +@@ -15,8 +15,8 @@ + # Authentication backend for BASIC authentication. Default is to read a configuration file defined with 'basic_password_file' + # + +-#basic_authenticator = libwsman_pam_auth.so +-#basic_authenticator_arg = openwsman ++basic_authenticator = libwsman_pam_auth.so ++basic_authenticator_arg = openwsman + + # + # WS-Management unauthenticated wsmid:Identify file diff --git a/openwsman.rpmlintrc b/openwsman.rpmlintrc new file mode 100644 index 0000000..5f1b637 --- /dev/null +++ b/openwsman.rpmlintrc @@ -0,0 +1,2 @@ +addFilter("devel-file-in-non-devel-package .*/usr/lib.*/openwsman/.*/.*") +addFilter("openwsman-client.*shlib-policy-name-error.*") diff --git a/openwsman.spec b/openwsman.spec index ce7a5df..7057ff6 100644 --- a/openwsman.spec +++ b/openwsman.spec @@ -1,22 +1,46 @@ -%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +# +# 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_sitearch: %define ruby_sitearch %(ruby -rrbconfig -e 'puts Config::CONFIG["sitearchdir"] ')} -%define ruby_libdir %(ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]') +%{!?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 -Version: 2.2.0 -Release: 1%{?dist} -License: BSD +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.0 +Release: 2%{?dist} Url: http://www.openwsman.org/ -Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2 -Patch0: %{name}-initscript.patch +License: BSD +Group: Applications/System +Summary: Opensource Implementation of WS-Management +Source: %{name}-%{version}.tar.bz2 +Source1: %{name}.rpmlintrc +Patch0: %{name}-pam-auth.patch +Patch1: %{name}-initscript.patch +Patch2: perl-bindings.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 @@ -28,129 +52,279 @@ 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 +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 +%setup -q %patch0 -p1 -echo "%{ruby_sitearch}" +%patch1 -p1 +%patch2 -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 -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 + +%post -n libwsman1 -p /sbin/ldconfig -%files +%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 -%{ruby_libdir}/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_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/wsxmlnode.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 +* Wed Dec 9 2009 Praveen K Paladugu - 2.2.0-2 +- Re-wrote the spec file to break the openwmsman pkg into lib, client +- and server components following the upstream spec file. + * Thu Oct 1 2009 Praveen K Paladugu - 2.2.0-1 - Updated the sources to 2.2.0. Couple of major changes are as follows: - Major changes: -- Adapt IANA ports of 5985 (http) and 5986 (https) -- Change the Ruby bindings module name to 'Openwsman' -- Change the Ruby plugin module name to 'Openwsman' -- IPv6 support (A_Venkatachalam@Dell.com) -- preliminary support for wbem intrinsic operations -- 'EnumerateClassNames' and 'GetClass' (kkaempf@suse.de) +- Adapt IANA ports of 5985 (http) and 5986 (https) +- Change the Ruby bindings module name to 'Openwsman' +- Change the Ruby plugin module name to 'Openwsman' +- IPv6 support (A_Venkatachalam@Dell.com) +- preliminary support for wbem intrinsic operations +- 'EnumerateClassNames' and 'GetClass' (kkaempf@suse.de) - (needs fixed sblim-sfcc, see www.openwsman.org for details) -- + * Fri Aug 21 2009 Tomas Mraz - 2.1.0-4 - rebuilt with new openssl diff --git a/perl-bindings.patch b/perl-bindings.patch new file mode 100644 index 0000000..4c31bde --- /dev/null +++ b/perl-bindings.patch @@ -0,0 +1,22 @@ +diff -up openwsman-2.2.0/bindings/perl/Makefile.am.org openwsman-2.2.0/bindings/perl/Makefile.am +--- openwsman-2.2.0/bindings/perl/Makefile.am.org 2009-12-10 13:34:55.000000000 -0600 ++++ openwsman-2.2.0/bindings/perl/Makefile.am 2009-12-10 13:35:56.000000000 -0600 +@@ -33,6 +33,7 @@ SWIG_INPUT = ../openwsman.i + openwsman_la_SOURCES = openwsman_wrap.c \ + ../openwsman.c \ + $(SWIG_INPUT) ++all-local: openwsman.pm + + openwsman_la_LIBADD = $(LIBS) -lpthread $(CURL_LIBS) + +diff -up openwsman-2.2.0/bindings/perl/Makefile.in.org openwsman-2.2.0/bindings/perl/Makefile.in +--- openwsman-2.2.0/bindings/perl/Makefile.in.org 2009-12-10 13:35:03.000000000 -0600 ++++ openwsman-2.2.0/bindings/perl/Makefile.in 2009-12-10 13:36:18.000000000 -0600 +@@ -289,6 +289,7 @@ SWIG_INPUT = ../openwsman.i + openwsman_la_SOURCES = openwsman_wrap.c \ + ../openwsman.c \ + $(SWIG_INPUT) ++all-local: openwsman.pm + + openwsman_la_LIBADD = $(LIBS) -lpthread $(CURL_LIBS) + openwsman_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)