From 2b477257dd89e15209070a1237cb114e1bb340ac Mon Sep 17 00:00:00 2001 From: Vitezslav Crhonek Date: Sep 12 2017 12:21:50 +0000 Subject: Spec file clean up, Updated openssl-1.1 patch --- diff --git a/openwsman-2.6.2-openssl-1.1-fix.patch b/openwsman-2.6.2-openssl-1.1-fix.patch index bfa6c94..82c333c 100644 --- a/openwsman-2.6.2-openssl-1.1-fix.patch +++ b/openwsman-2.6.2-openssl-1.1-fix.patch @@ -1,7 +1,7 @@ diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/lib/wsman-curl-client-transport.c.orig openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/lib/wsman-curl-client-transport.c --- openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/lib/wsman-curl-client-transport.c.orig 2016-07-27 16:03:55.000000000 +0200 -+++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/lib/wsman-curl-client-transport.c 2017-01-16 14:40:03.094728843 +0100 -@@ -241,12 +241,16 @@ write_handler( void *ptr, size_t size, s ++++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/lib/wsman-curl-client-transport.c 2017-09-12 12:56:51.720463095 +0200 +@@ -241,12 +241,20 @@ write_handler( void *ptr, size_t size, s static int ssl_certificate_thumbprint_verify_callback(X509_STORE_CTX *ctx, void *arg) { unsigned char *thumbprint = (unsigned char *)arg; @@ -12,7 +12,11 @@ diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/lib/wsman-curl-c unsigned int tempFingerprintLen; tempDigest = (EVP_MD*)EVP_sha1( ); + ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + X509 *cert = X509_STORE_CTX_get_current_cert(ctx); ++#else ++ X509 *cert = ctx->cert; ++#endif + if(!cert) + return 0; + @@ -21,7 +25,7 @@ diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/lib/wsman-curl-c if(!memcmp(tempFingerprint, thumbprint, tempFingerprintLen)) diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/compat_unix.h.orig openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/compat_unix.h --- openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/compat_unix.h.orig 2016-07-27 16:03:55.000000000 +0200 -+++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/compat_unix.h 2017-01-16 14:40:03.094728843 +0100 ++++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/compat_unix.h 2017-09-12 12:56:51.720463095 +0200 @@ -27,7 +27,6 @@ pthread_create(&tid, NULL, (void *(*)(void *))a, c); } while (0) #endif /* !NO_THREADS */ @@ -31,8 +35,8 @@ diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/co #define IS_DIRSEP_CHAR(c) ((c) == '/') #define O_BINARY 0 diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/config.h.orig openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/config.h ---- openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/config.h.orig 2017-01-16 14:40:57.223705664 +0100 -+++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/config.h 2017-01-16 14:38:15.000000000 +0100 +--- openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/config.h.orig 2017-09-12 12:56:51.720463095 +0200 ++++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/config.h 2017-09-12 12:56:51.720463095 +0200 @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2004-2005 Sergey Lyubka @@ -65,7 +69,7 @@ diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/co +#endif /* CONFIG_HEADER_DEFINED */ diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/io_ssl.c.orig openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/io_ssl.c --- openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/io_ssl.c.orig 2016-07-27 16:03:55.000000000 +0200 -+++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/io_ssl.c 2017-01-16 14:40:03.094728843 +0100 ++++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/io_ssl.c 2017-09-12 12:56:51.720463095 +0200 @@ -11,23 +11,6 @@ #include "defs.h" @@ -92,7 +96,7 @@ diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/io { diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/shttpd.c.orig openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/shttpd.c --- openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/shttpd.c.orig 2016-07-27 16:03:55.000000000 +0200 -+++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/shttpd.c 2017-01-16 14:40:03.095728843 +0100 ++++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/shttpd.c 2017-09-12 12:58:20.132254340 +0200 @@ -1474,20 +1474,14 @@ set_ssl(struct shttpd_ctx *ctx, const ch char *ssl_disabled_protocols = wsmand_options_get_ssl_disabled_protocols(); int retval = FALSE; @@ -112,26 +116,29 @@ diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/sh /* Initialize SSL crap */ + debug("Initialize SSL"); + SSL_load_error_strings(); -+ #if OPENSSL_VERSION_NUMBER < 0x10100000L - SSL_library_init(); -+ #else ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + OPENSSL_init_ssl(0, NULL); -+ #endif ++#else + SSL_library_init(); ++#endif if ((CTX = SSL_CTX_new(SSLv23_server_method())) == NULL) _shttpd_elog(E_LOG, NULL, "SSL_CTX_new error"); -@@ -1523,7 +1517,7 @@ set_ssl(struct shttpd_ctx *ctx, const ch +@@ -1523,7 +1517,11 @@ set_ssl(struct shttpd_ctx *ctx, const ch if (strncasecmp(protocols[idx].name, ssl_disabled_protocols, blank_ptr-ssl_disabled_protocols) == 0) { //_shttpd_elog(E_LOG, NULL, "SSL: disable %s protocol", protocols[idx].name); debug("SSL: disable %s protocol", protocols[idx].name); -- SSL_CTX_ctrl(CTX, SSL_CTRL_OPTIONS, protocols[idx].opt, NULL); ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L + SSL_CTX_set_options(CTX, protocols[idx].opt); ++#else + SSL_CTX_ctrl(CTX, SSL_CTRL_OPTIONS, protocols[idx].opt, NULL); ++#endif break; } } diff -up openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/ssl.h.orig openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/ssl.h --- openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/ssl.h.orig 2016-07-27 16:03:55.000000000 +0200 -+++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/ssl.h 2017-01-16 14:40:03.095728843 +0100 ++++ openwsman-4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b/src/server/shttpd/ssl.h 2017-09-12 12:56:51.721463093 +0200 @@ -12,50 +12,4 @@ #include diff --git a/openwsman.spec b/openwsman.spec index 00587db..2e6f0c7 100644 --- a/openwsman.spec +++ b/openwsman.spec @@ -1,186 +1,143 @@ # RubyGems's macros expect gem_name to exist. -%global gem_name %{name} - -%global commit 4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b -%global shortcommit %(c=%{commit}; echo ${c:0:7}) - -Name: openwsman -BuildRequires: swig -BuildRequires: libcurl-devel libxml2-devel pam-devel sblim-sfcc-devel -BuildRequires: python3 python3-devel python2 python2-devel ruby ruby-devel rubygems-devel perl-interpreter -BuildRequires: perl-devel perl-generators pkgconfig openssl-devel -BuildRequires: cmake -BuildRequires: systemd-units -Version: 2.6.3 -Release: 7.git%{shortcommit}%{?dist} -Url: http://www.openwsman.org/ -License: BSD -Group: Applications/System -Summary: Open source Implementation of WS-Management +%global gem_name %{name} + +%global commit 4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: openwsman +Version: 2.6.3 +Release: 8.git%{shortcommit}%{?dist} +Summary: Open source Implementation of WS-Management + +License: BSD +URL: http://www.openwsman.org/ # 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 -Source: %{name}-%{commit}.tar.gz +Source0: %{name}-%{commit}.tar.gz # help2man generated manpage for openwsmand binary -Source1: openwsmand.8.gz +Source1: openwsmand.8.gz # service file for systemd -Source2: openwsmand.service +Source2: openwsmand.service # script for testing presence of the certificates in ExecStartPre -Source3: owsmantestcert.sh -Patch1: openwsman-2.4.0-pamsetup.patch -Patch2: openwsman-2.4.12-ruby-binding-build.patch -Patch3: openwsman-2.6.2-python3.patch -Patch4: openwsman-2.6.2-openssl-1.1-fix.patch +Source3: owsmantestcert.sh +Patch1: openwsman-2.4.0-pamsetup.patch +Patch2: openwsman-2.4.12-ruby-binding-build.patch +Patch3: openwsman-2.6.2-python3.patch +Patch4: openwsman-2.6.2-openssl-1.1-fix.patch +BuildRequires: swig +BuildRequires: libcurl-devel libxml2-devel pam-devel sblim-sfcc-devel +BuildRequires: python3 python3-devel python2 python2-devel ruby ruby-devel rubygems-devel perl-interpreter +BuildRequires: perl-devel perl-generators pkgconfig openssl-devel +BuildRequires: cmake +BuildRequires: systemd-units %description Openwsman is a project intended to provide an open-source -implementation of the Web Services Management specipication +implementation of the Web Services Management specification (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} +License: BSD +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 - - - +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 +License: BSD +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 - - +Development files for openwsman. %package client -License: BSD -Group: System Environment/Libraries -Summary: Openwsman Client libraries +License: BSD +Summary: Openwsman Client libraries %description client -Openwsman Client libraries - - - +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} +License: BSD +Requires: net-tools +Summary: Openwsman Server and service libraries +Requires: libwsman1 = %{version}-%{release} %description server -Openwsman Server and service libraries - - - +Openwsman Server and service libraries. %package -n python2-openwsman %{?python_provide:%python_provide python2-openwsman} # Remove before F30 -Provides: %{name}-python = %{version}-%{release} -Provides: %{name}-python%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-python < %{version}-%{release} -License: BSD -Group: Development/Libraries -Summary: Python bindings for openwsman client API -Requires: python2 -Requires: libwsman1 = %{version}-%{release} +Provides: %{name}-python = %{version}-%{release} +Provides: %{name}-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python < %{version}-%{release} +License: BSD +Summary: Python bindings for openwsman client API +Requires: python2 +Requires: libwsman1 = %{version}-%{release} %description -n python2-openwsman -This package provides Python2 bindings to access the openwsman client -API. - - - +This package provides Python2 bindings to access the openwsman client API. %package python3 -License: BSD -Group: Development/Libraries -Summary: Python bindings for openwsman client API -Requires: python3 -Requires: libwsman1 = %{version}-%{release} +License: BSD +Summary: Python bindings for openwsman client API +Requires: python3 +Requires: libwsman1 = %{version}-%{release} %description python3 -This package provides Python3 bindings to access the openwsman client -API. - - - +This package provides Python3 bindings to access the openwsman client API. %package -n rubygem-%{gem_name} -License: BSD -Group: Development/Libraries -Summary: Ruby client bindings for Openwsman -Obsoletes: %{name}-ruby < %{version}-%{release} +License: BSD +Summary: Ruby client bindings for Openwsman +Obsoletes: %{name}-ruby < %{version}-%{release} %description -n rubygem-%{gem_name} The openwsman gem provides a Ruby API to manage systems using the WS-Management protocol. %package -n rubygem-%{gem_name}-doc -Summary: Documentation for %{name} -Group: Documentation -Requires: rubygem-%{gem_name} = %{version}-%{release} -BuildArch: noarch +Summary: Documentation for %{name} +Requires: rubygem-%{gem_name} = %{version}-%{release} +BuildArch: noarch %description -n rubygem-%{gem_name}-doc Documentation for rubygem-%{gem_name} - - - %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} +License: BSD +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. - - - %package winrs -Summary: Windows Remote Shell -Requires: rubygem-%{gem_name} = %{version}-%{release} +Summary: Windows Remote Shell +Requires: rubygem-%{gem_name} = %{version}-%{release} %description winrs -This is a command line tool for the Windows Remote Shell protocol. You -can use it to send shell commands to a remote Windows hosts. - - - +This is a command line tool for the Windows Remote Shell protocol. +You can use it to send shell commands to a remote Windows hosts. %prep %setup -q -n %{name}-%{commit} @@ -202,7 +159,6 @@ chmod 0755 rdoc2.2 ln -sf %{_bindir}/rdoc rdoc2_2.rb popd - %build # Removing executable permissions on .c and .h files to fix rpmlint warnings. chmod -x src/cpp/WsmanClient.h @@ -215,15 +171,15 @@ 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} \ - .. + -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 @@ -265,7 +221,7 @@ install -m 644 include/wsman-dispatcher.h %{buildroot}/%{_includedir}/openwsman mkdir -p %{buildroot}%{gem_dir} cp -pa ./build%{gem_dir}/* \ - %{buildroot}%{gem_dir}/ + %{buildroot}%{gem_dir}/ rm -rf %{buildroot}%{gem_instdir}/ext @@ -299,23 +255,23 @@ rm -f /var/log/wsmand.log %{_libdir}/libwsman_curl_client_transport.so.* %files -n libwsman-devel +%doc AUTHORS COPYING ChangeLog README.md %{_includedir}/* %{_libdir}/pkgconfig/* %{_libdir}/*.so -%doc AUTHORS COPYING ChangeLog README.md %files -n python2-openwsman +%doc AUTHORS COPYING ChangeLog README.md %{python2_sitearch}/*.so %{python2_sitearch}/*.py %{python2_sitearch}/*.pyc %{python2_sitearch}/*.pyo -%doc AUTHORS COPYING ChangeLog README.md %files python3 +%doc AUTHORS COPYING ChangeLog README.md %{python3_sitearch}/*.so %{python3_sitearch}/*.py %{python3_sitearch}/__pycache__/* -%doc AUTHORS COPYING ChangeLog README.md %files -n rubygem-%{gem_name} %doc AUTHORS COPYING ChangeLog README.md @@ -329,11 +285,12 @@ rm -f /var/log/wsmand.log %doc %{gem_docdir} %files perl +%doc AUTHORS COPYING ChangeLog README.md %{perl_vendorarch}/openwsman.so %{perl_vendorlib}/openwsman.pm -%doc AUTHORS COPYING ChangeLog README.md %files server +%doc AUTHORS COPYING ChangeLog README.md # Don't remove *.so files from the server package. # the server fails to start without these files. %dir %{_sysconfdir}/openwsman @@ -353,18 +310,21 @@ rm -f /var/log/wsmand.log %{_sbindir}/openwsmand %{_libdir}/libwsman_server.so.* %{_mandir}/man8/* -%doc AUTHORS COPYING ChangeLog README.md %files client +%doc AUTHORS COPYING ChangeLog README.md %{_libdir}/libwsman_clientpp.so.* %config(noreplace) %{_sysconfdir}/openwsman/openwsman_client.conf -%doc AUTHORS COPYING ChangeLog README.md %files winrs %{_bindir}/winrs - %changelog +* Tue Sep 12 2017 Vitezslav Crhonek - 2.6.3-8.git4391e5c +- Spec file clean up (removed RPM Groups tags, removed obsolete chkconfig/initscripts + dependencies, improved readability, fixed indentation) +- Updated openssl-1.1 patch to support builds with older openssl versions + * Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 2.6.3-7.git4391e5c - Add Provides for the old name without %%_isa