Files
perl-Event-RPC/perl-Event-RPC.spec
2025-08-12 18:13:55 +02:00

111 lines
3.9 KiB
RPMSpec

#
# spec file for package perl-Event-RPC
#
# Copyright (c) 2025 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 Event-RPC
Name: perl-Event-RPC
Version: 1.110.0
Release: 0
# 1.11 -> normalize -> 1.110.0
%define cpan_version 1.11
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Event based transparent Client/Server RPC framework
URL: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/J/JR/JRED/%{cpan_name}-%{cpan_version}.tar.gz
Source1: cpanspec.yml
Source100: README.md
BuildArch: noarch
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(AnyEvent)
BuildRequires: perl(CBOR::XS)
BuildRequires: perl(Event)
BuildRequires: perl(Glib)
BuildRequires: perl(IO::Socket::SSL)
BuildRequires: perl(JSON::XS) >= 3
BuildRequires: perl(Net::SSLeay)
Requires: perl(AnyEvent)
Requires: perl(CBOR::XS)
Requires: perl(Event)
Requires: perl(Glib)
Requires: perl(IO::Socket::SSL)
Requires: perl(JSON::XS) >= 3
Requires: perl(Net::SSLeay)
Provides: perl(Event::RPC) = %{version}
Provides: perl(Event::RPC::AuthPasswdHash)
Provides: perl(Event::RPC::Client)
Provides: perl(Event::RPC::Connection)
Provides: perl(Event::RPC::LogConnection)
Provides: perl(Event::RPC::Logger)
Provides: perl(Event::RPC::Loop)
Provides: perl(Event::RPC::Loop::AnyEvent)
Provides: perl(Event::RPC::Loop::Event)
Provides: perl(Event::RPC::Loop::Glib)
Provides: perl(Event::RPC::Message)
Provides: perl(Event::RPC::Message::CBOR)
Provides: perl(Event::RPC::Message::JSON)
Provides: perl(Event::RPC::Message::Negotiate)
Provides: perl(Event::RPC::Message::Sereal)
Provides: perl(Event::RPC::Message::SerialiserBase)
Provides: perl(Event::RPC::Message::Storable)
Provides: perl(Event::RPC::Server)
Provides: perl(Test_class)
%undefine __perllib_provides
%{perl_requires}
%description
Event::RPC consists of a server and a client library. The server exports a
list of classes and methods, which are allowed to be called over the
network. More specific it acts as a proxy for objects created on the server
side (on demand of the connected clients) which handles client side methods
calls with transport of method arguments and return values.
The object proxy handles refcounting and destruction of objects created by
clients properly. Objects as method parameters and return values are
handled as well (although with some limitations, see below).
For the client the whole thing is totally transparent - once connected to
the server it doesn't know whether it calls methods on local or remote
objects.
Also the methods on the server newer know whether they are called locally
or from a connected client. Your application logic is not affected by
Event::RPC at all, at least if it has a rudimentary clean OO design.
For details on implementing servers and clients please refer to the man
pages of Event::RPC::Server and Event::RPC::Client.
%prep
%autosetup -n %{cpan_name}-%{cpan_version} -p1
%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 Changes examples README
%changelog