Spec file clean up, Updated openssl-1.1 patch

This commit is contained in:
Vitezslav Crhonek 2017-09-12 14:21:50 +02:00
parent 307beb63ab
commit 2b477257dd
2 changed files with 117 additions and 150 deletions

View File

@ -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 <valenok@gmail.com>
@ -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 <openssl/ssl.h>

View File

@ -1,186 +1,143 @@
# RubyGems's macros expect gem_name to exist.
%global gem_name %{name}
%global gem_name %{name}
%global commit 4391e5c68d99c6239e1672d1c8a5a16d7d8c4c2b
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%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
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 <vcrhonek@redhat.com> - 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 <zbyszek@in.waw.pl> - 2.6.3-7.git4391e5c
- Add Provides for the old name without %%_isa