235 lines
10 KiB
RPMSpec
235 lines
10 KiB
RPMSpec
#
|
|
# spec file for package perl-Net-SSH-Perl
|
|
#
|
|
# 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 Net-SSH-Perl
|
|
Name: perl-Net-SSH-Perl
|
|
Version: 2.142.0
|
|
Release: 0
|
|
%define cpan_version 2.142
|
|
License: Artistic-1.0 OR GPL-1.0-or-later
|
|
Summary: Perl client Interface to SSH
|
|
URL: https://metacpan.org/release/%{cpan_name}
|
|
Source0: https://cpan.metacpan.org/authors/id/B/BD/BDFOY/%{cpan_name}-%{cpan_version}.tar.gz
|
|
Source1: cpanspec.yml
|
|
Source100: README.md
|
|
BuildRequires: perl
|
|
BuildRequires: perl-macros
|
|
BuildRequires: perl(Crypt::Curve25519) >= 0.05
|
|
BuildRequires: perl(Crypt::IDEA)
|
|
BuildRequires: perl(CryptX) >= 0.032
|
|
BuildRequires: perl(Digest::BubbleBabble) >= 0.01
|
|
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.64
|
|
BuildRequires: perl(File::HomeDir)
|
|
BuildRequires: perl(Math::GMP) >= 1.04
|
|
BuildRequires: perl(String::CRC32) >= 1.2
|
|
BuildRequires: perl(Test::More) >= 1
|
|
Requires: perl(Crypt::Curve25519) >= 0.05
|
|
Requires: perl(Crypt::IDEA)
|
|
Requires: perl(CryptX) >= 0.032
|
|
Requires: perl(Digest::BubbleBabble) >= 0.01
|
|
Requires: perl(File::HomeDir)
|
|
Requires: perl(Math::GMP) >= 1.04
|
|
Requires: perl(String::CRC32) >= 1.2
|
|
Provides: perl(Net::SSH::Perl) = 2.142.0
|
|
Provides: perl(Net::SSH::Perl::Agent)
|
|
Provides: perl(Net::SSH::Perl::Auth)
|
|
Provides: perl(Net::SSH::Perl::Auth::ChallengeResponse)
|
|
Provides: perl(Net::SSH::Perl::Auth::KeyboardInt)
|
|
Provides: perl(Net::SSH::Perl::Auth::KeyboardInteractive)
|
|
Provides: perl(Net::SSH::Perl::Auth::Password)
|
|
Provides: perl(Net::SSH::Perl::Auth::PublicKey)
|
|
Provides: perl(Net::SSH::Perl::Auth::RSA)
|
|
Provides: perl(Net::SSH::Perl::Auth::Rhosts)
|
|
Provides: perl(Net::SSH::Perl::Auth::Rhosts_RSA)
|
|
Provides: perl(Net::SSH::Perl::AuthMgr)
|
|
Provides: perl(Net::SSH::Perl::Buffer)
|
|
Provides: perl(Net::SSH::Perl::Channel)
|
|
Provides: perl(Net::SSH::Perl::ChannelMgr)
|
|
Provides: perl(Net::SSH::Perl::Cipher)
|
|
Provides: perl(Net::SSH::Perl::Cipher::AES128_CBC)
|
|
Provides: perl(Net::SSH::Perl::Cipher::AES128_CTR)
|
|
Provides: perl(Net::SSH::Perl::Cipher::AES192_CBC)
|
|
Provides: perl(Net::SSH::Perl::Cipher::AES192_CTR)
|
|
Provides: perl(Net::SSH::Perl::Cipher::AES256_CBC)
|
|
Provides: perl(Net::SSH::Perl::Cipher::AES256_CTR)
|
|
Provides: perl(Net::SSH::Perl::Cipher::AES_CBC)
|
|
Provides: perl(Net::SSH::Perl::Cipher::AES_CTR)
|
|
Provides: perl(Net::SSH::Perl::Cipher::Blowfish)
|
|
Provides: perl(Net::SSH::Perl::Cipher::CBC)
|
|
Provides: perl(Net::SSH::Perl::Cipher::CFB)
|
|
Provides: perl(Net::SSH::Perl::Cipher::CTR)
|
|
Provides: perl(Net::SSH::Perl::Cipher::ChachaPoly)
|
|
Provides: perl(Net::SSH::Perl::Cipher::DES)
|
|
Provides: perl(Net::SSH::Perl::Cipher::DES3)
|
|
Provides: perl(Net::SSH::Perl::Cipher::DES3::EDE3)
|
|
Provides: perl(Net::SSH::Perl::Cipher::IDEA)
|
|
Provides: perl(Net::SSH::Perl::Cipher::RC4)
|
|
Provides: perl(Net::SSH::Perl::Comp)
|
|
Provides: perl(Net::SSH::Perl::Comp::Zlib)
|
|
Provides: perl(Net::SSH::Perl::Config)
|
|
Provides: perl(Net::SSH::Perl::Constants)
|
|
Provides: perl(Net::SSH::Perl::Handle)
|
|
Provides: perl(Net::SSH::Perl::Handle::SSH1)
|
|
Provides: perl(Net::SSH::Perl::Handle::SSH2)
|
|
Provides: perl(Net::SSH::Perl::Kex)
|
|
Provides: perl(Net::SSH::Perl::Kex::C25519)
|
|
Provides: perl(Net::SSH::Perl::Kex::DH)
|
|
Provides: perl(Net::SSH::Perl::Kex::DH1)
|
|
Provides: perl(Net::SSH::Perl::Kex::DH14SHA1)
|
|
Provides: perl(Net::SSH::Perl::Kex::DH14SHA256)
|
|
Provides: perl(Net::SSH::Perl::Kex::DH16SHA512)
|
|
Provides: perl(Net::SSH::Perl::Kex::DH18SHA512)
|
|
Provides: perl(Net::SSH::Perl::Kex::DHGEX)
|
|
Provides: perl(Net::SSH::Perl::Kex::DHGEXSHA1)
|
|
Provides: perl(Net::SSH::Perl::Kex::DHGEXSHA256)
|
|
Provides: perl(Net::SSH::Perl::Key)
|
|
Provides: perl(Net::SSH::Perl::Key::DSA)
|
|
Provides: perl(Net::SSH::Perl::Key::ECDSA)
|
|
Provides: perl(Net::SSH::Perl::Key::ECDSA256)
|
|
Provides: perl(Net::SSH::Perl::Key::ECDSA384)
|
|
Provides: perl(Net::SSH::Perl::Key::ECDSA521)
|
|
Provides: perl(Net::SSH::Perl::Key::Ed25519)
|
|
Provides: perl(Net::SSH::Perl::Key::RSA)
|
|
Provides: perl(Net::SSH::Perl::Key::RSA1)
|
|
Provides: perl(Net::SSH::Perl::Mac)
|
|
Provides: perl(Net::SSH::Perl::Mac::MD5)
|
|
Provides: perl(Net::SSH::Perl::Mac::SHA1)
|
|
Provides: perl(Net::SSH::Perl::Mac::SHA2_256)
|
|
Provides: perl(Net::SSH::Perl::Mac::SHA2_512)
|
|
Provides: perl(Net::SSH::Perl::Packet)
|
|
Provides: perl(Net::SSH::Perl::Proxy)
|
|
Provides: perl(Net::SSH::Perl::SSH1)
|
|
Provides: perl(Net::SSH::Perl::SSH2)
|
|
Provides: perl(Net::SSH::Perl::Subsystem::Client)
|
|
Provides: perl(Net::SSH::Perl::Subsystem::Server)
|
|
Provides: perl(Net::SSH::Perl::Util)
|
|
Provides: perl(Net::SSH::Perl::Util::Authfile)
|
|
Provides: perl(Net::SSH::Perl::Util::Hosts)
|
|
Provides: perl(Net::SSH::Perl::Util::RSA)
|
|
Provides: perl(Net::SSH::Perl::Util::SSH1MP)
|
|
Provides: perl(Net::SSH::Perl::Util::SSH1Misc)
|
|
Provides: perl(Net::SSH::Perl::Util::Term)
|
|
Provides: perl(Net::SSH::Perl::Util::Win32)
|
|
%undefine __perllib_provides
|
|
%{perl_requires}
|
|
|
|
%description
|
|
_Net::SSH::Perl_ is an all-Perl module implementing an SSH (Secure Shell)
|
|
client. It is compatible with both the SSH-1 and SSH-2 protocols.
|
|
|
|
_Net::SSH::Perl_ enables you to simply and securely execute commands on
|
|
remote machines, and receive the STDOUT, STDERR, and exit status of that
|
|
remote command. It contains built-in support for various methods of
|
|
authenticating with the server (password authentication, RSA
|
|
challenge-response authentication, etc.). It completely implements the I/O
|
|
buffering, packet transport, and user authentication layers of the SSH
|
|
protocol, and makes use of external Perl libraries (in the Crypt:: family
|
|
of modules) to handle encryption of all data sent across the insecure
|
|
network. It can also read your existing SSH configuration files
|
|
(_/etc/ssh_config_, etc.), RSA identity files, ECDSA identity files,
|
|
Ed25519 identity files, known hosts files, etc.
|
|
|
|
One advantage to using _Net::SSH::Perl_ over wrapper-style implementations
|
|
of ssh clients is that it saves on process overhead: you no longer need to
|
|
fork and execute a separate process in order to connect to an sshd.
|
|
Depending on the amount of time and memory needed to fork a process, this
|
|
win can be quite substantial; particularly if you're running in a
|
|
persistent Perl environment (_mod_perl_, for example), where forking a new
|
|
process is a drain on process and memory resources.
|
|
|
|
It also simplifies the process of using password-based authentications;
|
|
when writing a wrapper around _ssh_ you probably need to use _Expect_ to
|
|
control the ssh client and give it your password. _Net::SSH::Perl_ has
|
|
built-in support for the authentication protocols, so there's no longer any
|
|
hassle of communicating with any external processes.
|
|
|
|
The SSH2 protocol support (present in _Net::SSH::Perl_ as of version 1.00)
|
|
is compatible with the SSH2 implementation in OpenSSH, and should also be
|
|
fully compatible with the "official" SSH implementation. If you find an
|
|
SSH2 implementation that is not compatible with _Net::SSH::Perl_, please
|
|
let me know (email address down in _AUTHOR & COPYRIGHTS_); it turns out
|
|
that some SSH2 implementations have subtle differences from others. AES-CTR
|
|
('aes256-ctr', 'aes192-ctr', and 'aes128-ctr') and Chacha20-Poly1305
|
|
ciphers are currently supported for SSH2 encryption. Deprecated ciphers
|
|
AES-CBC ('aes256-cbc', 'aes192-cbc', and 'aes128-cbc') 3DES ('3des-cbc'),
|
|
Blowfish ('blowfish-cbc'), and RC4 ('arcfour') are available but not
|
|
enabled by default. One can enable them by using the Ciphers options
|
|
parameter. For example:
|
|
|
|
options => [ "Ciphers +aes256-cbc" ]
|
|
|
|
Using the + notation will append a cipher to the default ciphers list.
|
|
|
|
Integrity checking is performed by the 'hmac-sha2-256', 'hmac-sha2-512',
|
|
'hmac-sha2-256-etm@openssh.com', or 'hmac-sha2-512-etm@openssh.com'
|
|
algorithms. The deprecated 'hmac-sha1' or 'hmac-md5' algorithms are
|
|
available but not enabled by default. Many older SSH server installations
|
|
still use hmac-sha1 as the main accepted MAC algorithm. To enable this, use
|
|
the following options parameter:
|
|
|
|
options => [ "MACs +hmac-sha1" ]
|
|
|
|
Compression, if requested, is limited to Zlib.
|
|
|
|
Supported server host key algorithms are 'ssh-ed25519', 'rsa-sha2-512',
|
|
'rsa-sha2-256', 'ecdsa-sha2-nistp521', 'ecdsa-sha2-nistp384',
|
|
'ecdsa-sha2-nistp256', and 'ssh-rsa'. Deprecated 'ssh-dss' is supported but
|
|
not enabled by default. It can be enabled with the options parameter:
|
|
|
|
options => [ "HostKeyAlgorithms +ssh-dss" ]
|
|
|
|
Supported SSH2 public key authentication algorithms are the same.
|
|
|
|
Supported Key Exchange (KEX) algorithms are 'diffie-hellman-group1-sha1',
|
|
'diffie-hellman-group14-sha1', c<diffie-hellman-group14-sha256>,
|
|
'diffie-hellman-group16-sha512', 'diffie-hellman-group18-sha512',
|
|
'diffie-hellman-group-exchange-sha256',
|
|
'diffie-hellman-group-exchange-sha1', and
|
|
'curve25519-sha256@libssh.org'/'curve25519-sha256'. The
|
|
'diffie-hellman-group1-sha1' algorithm is disabled by default, but can be
|
|
activated via the options parameter:
|
|
|
|
options => [ "KexAlgorithms +diffie-hellman-group1-sha1" ]
|
|
|
|
If you're looking for SFTP support, take a look at _Net::SFTP_, which
|
|
provides a full-featured Perl implementation of SFTP, and sits on top of
|
|
_Net::SSH::Perl_. SFTP requires the usage of the SSH2 protocol.
|
|
|
|
%prep
|
|
%autosetup -n %{cpan_name}-%{cpan_version}
|
|
|
|
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 OPTIMIZE="%{optflags}"
|
|
%make_build
|
|
|
|
%check
|
|
make test
|
|
|
|
%install
|
|
%perl_make_install
|
|
%perl_process_packlist
|
|
%perl_gen_filelist
|
|
|
|
%files -f %{name}.files
|
|
%doc Changes README ToDo
|
|
%license LICENSE LICENSE_ARTISTIC LICENSE_GNU
|
|
|
|
%changelog
|