c27f314594
* Features - OCSP stapling is requested and verified in the client mode. - Using "verifyChain" automatically enables OCSP stapling in the client mode. - OCSP stapling is always available in the server mode. - An inconclusive OCSP verification breaks TLS negotiation. This can be disabled with "OCSPrequire = no". - Added the "TIMEOUTocsp" option to control the maximum time allowed for connecting an OCSP responder. - Added support for Red Hat OpenSSL 3.x patches. Resolves: rhbz#2239740 Signed-off-by: Clemens Lang <cllang@redhat.com>
148 lines
4.5 KiB
RPMSpec
148 lines
4.5 KiB
RPMSpec
# Do not generate provides for private libraries
|
|
%global __provides_exclude_from ^%{_libdir}/stunnel/.*$
|
|
|
|
%if 0%{?fedora} || 0%{?rhel} > 7
|
|
%bcond_with libwrap
|
|
%else
|
|
%bcond_without libwrap
|
|
%endif
|
|
|
|
Summary: A TLS-encrypting socket wrapper
|
|
Name: stunnel
|
|
Version: 5.71
|
|
Release: %autorelease
|
|
License: GPL-2.0-or-later WITH stunnel-exception AND MIT
|
|
URL: https://www.stunnel.org/
|
|
Source0: https://www.stunnel.org/downloads/stunnel-%{version}.tar.gz
|
|
Source1: https://www.stunnel.org/downloads/stunnel-%{version}.tar.gz.asc
|
|
Source2: Certificate-Creation
|
|
Source3: sfinger.xinetd
|
|
Source4: stunnel-sfinger.conf
|
|
Source5: pop3-redirect.xinetd
|
|
Source6: stunnel-pop3s-client.conf
|
|
Source7: stunnel@.service
|
|
# Upstream release signing key
|
|
# Upstream source is https://www.stunnel.org/pgp.asc; using a local URL because
|
|
# the remote one makes packit source-git choke.
|
|
Source99: pgp.asc
|
|
# Apply patch stunnel-5.50-authpriv.patch
|
|
Patch0: stunnel-5.50-authpriv.patch
|
|
# Apply patch stunnel-5.61-systemd-service.patch
|
|
Patch1: stunnel-5.61-systemd-service.patch
|
|
# Use cipher configuration from crypto-policies
|
|
#
|
|
# On Fedora, CentOS and RHEL, the system's crypto policies are the best
|
|
# source to determine which cipher suites to accept in TLS. On these
|
|
# platforms, OpenSSL supports the PROFILE=SYSTEM setting to use those
|
|
# policies. Change stunnel to default to this setting.
|
|
Patch3: stunnel-5.69-system-ciphers.patch
|
|
# Apply patch stunnel-5.69-default-tls-version.patch
|
|
Patch5: stunnel-5.69-default-tls-version.patch
|
|
# Apply patch stunnel-5.56-curves-doc-update.patch
|
|
Patch6: stunnel-5.56-curves-doc-update.patch
|
|
# util-linux is needed for rename
|
|
BuildRequires: make
|
|
BuildRequires: gcc
|
|
BuildRequires: gnupg2
|
|
BuildRequires: openssl-devel, pkgconfig, util-linux
|
|
BuildRequires: autoconf automake libtool
|
|
%if %{with libwrap}
|
|
Buildrequires: tcp_wrappers-devel
|
|
%endif
|
|
BuildRequires: /usr/bin/pod2man
|
|
BuildRequires: /usr/bin/pod2html
|
|
# build test requirements
|
|
BuildRequires: /usr/bin/nc, /usr/bin/lsof, /usr/bin/ps
|
|
BuildRequires: python3 python3-cryptography openssl
|
|
BuildRequires: systemd systemd-devel
|
|
%{?systemd_requires}
|
|
|
|
%description
|
|
Stunnel is a socket wrapper which can provide TLS/SSL
|
|
(Transport Layer Security/Secure Sockets Layer) support
|
|
to ordinary applications. For example, it can be used in
|
|
conjunction with imapd to create a TLS secure IMAP server.
|
|
|
|
%prep
|
|
%{gpgverify} --keyring='%{SOURCE99}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
|
|
%autosetup -S gendiff -p1
|
|
|
|
# Fix the stack protector flag
|
|
sed -i 's/-fstack-protector/-fstack-protector-strong/' configure
|
|
|
|
%build
|
|
#autoreconf -v
|
|
CFLAGS="$RPM_OPT_FLAGS -fPIC"; export CFLAGS
|
|
if pkg-config openssl ; then
|
|
CFLAGS="$CFLAGS `pkg-config --cflags openssl`";
|
|
LDFLAGS="`pkg-config --libs-only-L openssl`"; export LDFLAGS
|
|
fi
|
|
%configure --enable-fips --enable-ipv6 --with-ssl=%{_prefix} \
|
|
%if %{with libwrap}
|
|
--enable-libwrap \
|
|
%else
|
|
--disable-libwrap \
|
|
%endif
|
|
--with-bashcompdir=%{_datadir}/bash-completion/completions \
|
|
CPPFLAGS="-UPIDFILE -DPIDFILE='\"%{_localstatedir}/run/stunnel.pid\"'"
|
|
make V=1 LDADD="-pie -Wl,-z,defs,-z,relro,-z,now"
|
|
|
|
%install
|
|
make install DESTDIR=%{buildroot}
|
|
# Move the translated man pages to the right subdirectories, and strip off the
|
|
# language suffixes.
|
|
#for lang in fr pl ; do
|
|
for lang in pl ; do
|
|
mkdir -p %{buildroot}/%{_mandir}/${lang}/man8
|
|
mv %{buildroot}/%{_mandir}/man8/*.${lang}.8* %{buildroot}/%{_mandir}/${lang}/man8/
|
|
rename ".${lang}" "" %{buildroot}/%{_mandir}/${lang}/man8/*
|
|
done
|
|
mkdir srpm-docs
|
|
cp %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} srpm-docs
|
|
mkdir -p %{buildroot}%{_unitdir}
|
|
cp %{buildroot}%{_datadir}/doc/stunnel/examples/%{name}.service %{buildroot}%{_unitdir}/%{name}.service
|
|
cp %{SOURCE7} %{buildroot}%{_unitdir}/%{name}@.service
|
|
|
|
%check
|
|
if ! make test; then
|
|
for i in tests/logs/*.log; do
|
|
echo "$i":
|
|
cat "$i"
|
|
done
|
|
exit 1
|
|
fi
|
|
|
|
%files
|
|
%{!?_licensedir:%global license %%doc}
|
|
%doc AUTHORS.md BUGS.md CREDITS.md PORTS.md README.md TODO.md
|
|
%doc tools/stunnel.conf-sample
|
|
%doc srpm-docs/*
|
|
%license COPY*
|
|
%lang(en) %doc doc/en/*
|
|
%lang(pl) %doc doc/pl/*
|
|
%{_bindir}/stunnel
|
|
%exclude %{_bindir}/stunnel3
|
|
%exclude %{_datadir}/doc/stunnel
|
|
%{_libdir}/stunnel
|
|
%exclude %{_libdir}/stunnel/libstunnel.la
|
|
%{_mandir}/man8/stunnel.8*
|
|
%lang(pl) %{_mandir}/pl/man8/stunnel.8*
|
|
%dir %{_sysconfdir}/%{name}
|
|
%exclude %{_sysconfdir}/stunnel/*
|
|
%{_unitdir}/%{name}*.service
|
|
%{_datadir}/bash-completion/completions/%{name}.bash
|
|
|
|
%post
|
|
/sbin/ldconfig
|
|
%systemd_post %{name}.service
|
|
|
|
%preun
|
|
%systemd_preun %{name}.service
|
|
|
|
%postun
|
|
/sbin/ldconfig
|
|
%systemd_postun_with_restart %{name}.service
|
|
|
|
%changelog
|
|
%autochangelog
|