perl-IO-Socket-SSL/perl-IO-Socket-SSL.spec

112 lines
3.8 KiB
RPMSpec
Raw Permalink Normal View History

#
# spec file for package perl-IO-Socket-SSL
#
# Copyright (c) 2024 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#
%define cpan_name IO-Socket-SSL
Name: perl-IO-Socket-SSL
Version: 2.85.0
Release: 0
# 2.085 -> normalize -> 2.85.0
%define cpan_version 2.085
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Nearly transparent SSL encapsulation for IO::Socket::INET
URL: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/S/SU/SULLR/%{cpan_name}-%{cpan_version}.tar.gz
Source1: cpanspec.yml
# PATCH-FIX-UPSTREAM (bsc1200295) perl-IO-Socket-SSL doesn't follow system "PROFILE=SYSTEM" openSSL ciphers - https://git.centos.org/rpms/perl-IO-Socket-SSL/blob/e0b0ae04f5cdb41b1f29cb7d76c23abba7ac35e9/f/SOURCES/IO-Socket-SSL-2.066-use-system-default-cipher-list.patch
Patch0: perl-IO-Socket-SSL-use-system-default-cipher-list.patch
BuildArch: noarch
BuildRequires: perl
- update to 1.88 + consider a value of '' the same as undef for SSL_ca_(path|file) + complain if given SSL_(key|cert|ca)_(file|path) do not exist or if they are not readable + disabled client side SNI for openssl version < 1.0.0 + added functions can_client_sni, can_server_sni, can_npn to check avaibility of SNI and NPN features. Added more documentation for SNI and NPN + Server Name Indication (SNI) support on the server side + sub error sets $SSL_ERROR etc only if there really is an error, otherwise it will keep the latest error. This causes IO::Socket::SSL->new.. to report the correct problem, even if the problem is deeper in the code (like in connect) + deprecated set_ctx_defaults, new name ist set_defaults + changed handling of default path for SSL_(ca|cert|key)* keys: either if one of these keys is user defined don't add defaults for the others, e.g. don't mix user settings and defaults + cleaner handling of module defaults vs. global settings vs. socket specific settings + prepare transition to a more secure default for SSL_verify_mode. The use of the current default SSL_VERIFY_NONE will cause a big warning for clients, unless SSL_verify_mode was explicitly set inside the application to this insecure value. In the near future the default will be SSL_VERIFY_PEER, and thus causing verification failures in unchanged applications. + use getnameinfo instead of unpack_sockaddr_in6 to get PeerAddr and PeerPort from sockaddr in _update_peer, because this provides scope + work around systems which don't defined AF_INET6 + update_peer for IPv6 also + no longer depend on Socket.pm 1.95 for inet_pton, but use OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-IO-Socket-SSL?expand=0&rev=58
2013-05-12 01:06:34 +02:00
BuildRequires: perl-macros
#BuildRequires: perl(Mozilla::CA)
Accepting request 182138 from home:lnussel:branches:devel:languages:perl - new version 0.951 * better document builtin defaults for key,cert,CA and how they are depreceated * use Net::SSLeay::SSL_CTX_set_default_verify_paths to use openssl's builtin defaults for CA unless CA path/file was given * MAJOR BEHAVIOR CHANGE: ssl_verify_mode now defaults to verify_peer for client. Until now it used verify_none, but loudly complained since 1.79 about it. It will not complain any longer, but the connection might probably fail. Please don't simply disable ssl verification, but instead set SSL_ca_file etc so that verification succeeds! * MAJOR BEHAVIOR CHANGE: it will now complain if the builtin defaults of certs/my-ca.pem or ca/ for CA and certs/{server,client}-{key,cert}.pem for cert and key are used, e.g. no certificates are specified explicitly. In the future these insecure (relative path!) defaults will be removed and the CA replaced with the system defaults. * Makefile.PL reported wrong version of openssl, if Net::SSLeay was not installed instead of reporting missing dependency to Net::SSLeay. * need at least OpenSSL version 0.9.8 now, since last 0.9.7 was released 6 years ago. Remove code to work around older releases. * changed AUTHOR in Makefile.PL from array back to string, because the array feature is not available in MakeMaker shipped with 5.8.9 (RT#85739) * Intercept: use sha1-fingerprint of original cert for id into cache unless otherwise given * Fix pod error in IO::Socket::SSL::Utils RT#85733 * added IO::Socket::SSL::Utils for easier manipulation of certificates and keys * moved SSL interception into IO::Socket::SSL::Intercept and simplified it using IO::Socket::SSL::Utils * enhance meta information in Makefile.PL * RT#85290, support more digest, especially SHA-2. OBS-URL: https://build.opensuse.org/request/show/182138 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-IO-Socket-SSL?expand=0&rev=59
2013-07-25 11:25:21 +02:00
BuildRequires: perl(Net::SSLeay) >= 1.46
#Requires: perl(Mozilla::CA)
Accepting request 182138 from home:lnussel:branches:devel:languages:perl - new version 0.951 * better document builtin defaults for key,cert,CA and how they are depreceated * use Net::SSLeay::SSL_CTX_set_default_verify_paths to use openssl's builtin defaults for CA unless CA path/file was given * MAJOR BEHAVIOR CHANGE: ssl_verify_mode now defaults to verify_peer for client. Until now it used verify_none, but loudly complained since 1.79 about it. It will not complain any longer, but the connection might probably fail. Please don't simply disable ssl verification, but instead set SSL_ca_file etc so that verification succeeds! * MAJOR BEHAVIOR CHANGE: it will now complain if the builtin defaults of certs/my-ca.pem or ca/ for CA and certs/{server,client}-{key,cert}.pem for cert and key are used, e.g. no certificates are specified explicitly. In the future these insecure (relative path!) defaults will be removed and the CA replaced with the system defaults. * Makefile.PL reported wrong version of openssl, if Net::SSLeay was not installed instead of reporting missing dependency to Net::SSLeay. * need at least OpenSSL version 0.9.8 now, since last 0.9.7 was released 6 years ago. Remove code to work around older releases. * changed AUTHOR in Makefile.PL from array back to string, because the array feature is not available in MakeMaker shipped with 5.8.9 (RT#85739) * Intercept: use sha1-fingerprint of original cert for id into cache unless otherwise given * Fix pod error in IO::Socket::SSL::Utils RT#85733 * added IO::Socket::SSL::Utils for easier manipulation of certificates and keys * moved SSL interception into IO::Socket::SSL::Intercept and simplified it using IO::Socket::SSL::Utils * enhance meta information in Makefile.PL * RT#85290, support more digest, especially SHA-2. OBS-URL: https://build.opensuse.org/request/show/182138 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-IO-Socket-SSL?expand=0&rev=59
2013-07-25 11:25:21 +02:00
Requires: perl(Net::SSLeay) >= 1.46
Provides: perl(IO::Socket::SSL) = %{version}
Provides: perl(IO::Socket::SSL::Intercept) = 2.056
Provides: perl(IO::Socket::SSL::OCSP_Cache)
Provides: perl(IO::Socket::SSL::OCSP_Resolver)
Provides: perl(IO::Socket::SSL::PublicSuffix)
Provides: perl(IO::Socket::SSL::SSL_Context)
Provides: perl(IO::Socket::SSL::SSL_HANDLE)
Provides: perl(IO::Socket::SSL::Session_Cache)
Provides: perl(IO::Socket::SSL::Trace)
Provides: perl(IO::Socket::SSL::Utils) = 2.015
%undefine __perllib_provides
%{perl_requires}
%description
IO::Socket::SSL makes using SSL/TLS much easier by wrapping the necessary
functionality into the familiar IO::Socket interface and providing secure
defaults whenever possible. This way, existing applications can be made
SSL-aware without much effort, at least if you do blocking I/O and don't
use select or poll.
But, under the hood, SSL is a complex beast. So there are lots of methods
to make it do what you need if the default behavior is not adequate.
Because it is easy to inadvertently introduce critical security bugs or
just hard to debug problems, I would recommend studying the following
documentation carefully.
The documentation consists of the following parts:
* * "Essential Information About SSL/TLS"
* * "Basic SSL Client"
* * "Basic SSL Server"
* * "Common Usage Errors"
* * "Common Problems with SSL"
* * "Using Non-Blocking Sockets"
* * "Advanced Usage"
* * "Integration Into Own Modules"
* * "Description Of Methods"
Additional documentation can be found in
* * IO::Socket::SSL::Intercept - Doing Man-In-The-Middle with SSL
* * IO::Socket::SSL::Utils - Useful functions for certificates etc
%prep
%autosetup -n %{cpan_name}-%{cpan_version} -p1
find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 644
%build
perl Makefile.PL INSTALLDIRS=vendor
%make_build
%check
make test
%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist
%files -f %{name}.files
%doc BUGS Changes docs example README README.Win32
%changelog