File perl-App-Netdisco.spec of Package perl-App-Netdisco

#
# spec file for package perl-App-Netdisco
#
# Copyright (c) 2026 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 App-Netdisco
Name:           perl-App-Netdisco
Version:        2.097003
Release:        0
License:        BSD-3-Clause
Summary:        An open source web-based network management tool
URL:            https://metacpan.org/release/%{cpan_name}
Source0:        https://cpan.metacpan.org/authors/id/O/OL/OLIVER/%{cpan_name}-%{version}.tar.gz
BuildArch:      noarch
BuildRequires:  perl
BuildRequires:  perl-macros
BuildRequires:  perl(Algorithm::Cron) >= 0.07
BuildRequires:  perl(Alien::ultraviolet) >= 1.001001
BuildRequires:  perl(AnyEvent) >= 7.05
BuildRequires:  perl(AnyEvent::DNS::EtcHosts)
BuildRequires:  perl(App::cpanminus) >= 1.6108
BuildRequires:  perl(App::local::lib::helper) >= 0.07
BuildRequires:  perl(Archive::Extract)
BuildRequires:  perl(Authen::Radius)
BuildRequires:  perl(Authen::TacacsPlus)
BuildRequires:  perl(CGI::Expand) >= 2.05
BuildRequires:  perl(Command::Runner)
BuildRequires:  perl(DBD::Pg)
BuildRequires:  perl(DBIx::Class) >= 0.082810
BuildRequires:  perl(DBIx::Class::Helpers) >= 2.033006
BuildRequires:  perl(Daemon::Control) >= 0.001006
BuildRequires:  perl(Dancer) >= 1.3132
BuildRequires:  perl(Dancer::Plugin::Auth::Extensible) >= 0.30
BuildRequires:  perl(Dancer::Plugin::DBIC) >= 0.2001
BuildRequires:  perl(Dancer::Plugin::Passphrase) >= v2.0.1
BuildRequires:  perl(Dancer::Plugin::Swagger)
BuildRequires:  perl(Dancer::Session::Cookie) >= 0.27
BuildRequires:  perl(Data::Printer)
BuildRequires:  perl(Data::Visitor::Tiny)
BuildRequires:  perl(Env::Path)
BuildRequires:  perl(Expect)
BuildRequires:  perl(ExtUtils::Config)
BuildRequires:  perl(ExtUtils::Helpers)
BuildRequires:  perl(ExtUtils::InstallPaths)
BuildRequires:  perl(File::ShareDir) >= 1.03
BuildRequires:  perl(File::Slurper) >= 0.009
BuildRequires:  perl(File::Temp) >= 0.2311
BuildRequires:  perl(Guard) >= 1.022
BuildRequires:  perl(HTML::Parser) >= 3.70
BuildRequires:  perl(HTTP::Tiny) >= 0.029
BuildRequires:  perl(IO::Socket::INET6) >= 2.72
BuildRequires:  perl(IO::Socket::SSL) >= 2.048
BuildRequires:  perl(IPC::Run) >= 20231003.0
BuildRequires:  perl(JSON) >= 2.90
BuildRequires:  perl(JSON::PP)
BuildRequires:  perl(JSON::XS) >= 3.01
BuildRequires:  perl(List::MoreUtils) >= 0.428
BuildRequires:  perl(List::Util) >= 1.70
BuildRequires:  perl(MCE) >= 1.866
BuildRequires:  perl(MIME::Base64) >= 3.13
BuildRequires:  perl(Module::Build) >= 0.420000
BuildRequires:  perl(Module::Load) >= 0.32
BuildRequires:  perl(Moo) >= 1.001000
BuildRequires:  perl(Net::DNS) >= 0.72
BuildRequires:  perl(Net::LDAP)
BuildRequires:  perl(Net::OpenSSH)
BuildRequires:  perl(Net::Ping) >= 2.75
BuildRequires:  perl(Net::Ping::External) >= 0.15
BuildRequires:  perl(NetAddr::IP) >= 4.068
BuildRequires:  perl(NetAddr::MAC) >= 0.99
BuildRequires:  perl(Opcode) >= 1.07
BuildRequires:  perl(Package::DeprecationManager)
BuildRequires:  perl(Path::Class) >= 0.32
BuildRequires:  perl(Plack) >= 1.0023
BuildRequires:  perl(Plack::Handler::Twiggy)
BuildRequires:  perl(Plack::Middleware::Debug)
BuildRequires:  perl(Plack::Middleware::Expires) >= 0.03
BuildRequires:  perl(Plack::Middleware::Headers)
BuildRequires:  perl(Plack::Middleware::ReverseProxy) >= 0.15
BuildRequires:  perl(Proc::ProcessTable) >= 0.636
BuildRequires:  perl(Regexp::Common) >= 2017060201
BuildRequires:  perl(Regexp::Common::net::CIDR)
BuildRequires:  perl(Role::Tiny) >= 1.002005
BuildRequires:  perl(SNMP::Info) >= 3.975000
BuildRequires:  perl(SQL::Abstract) >= 1.85
BuildRequires:  perl(SQL::Translator) >= 0.11024
BuildRequires:  perl(Scope::Guard)
BuildRequires:  perl(Sereal)
BuildRequires:  perl(Session::Storage::Secure) >= 1.000
BuildRequires:  perl(Socket6) >= 0.23
BuildRequires:  perl(Starman) >= 0.4008
BuildRequires:  perl(String::Util) >= 1.35
BuildRequires:  perl(Sub::Util) >= 1.40
BuildRequires:  perl(Sys::SigAction)
BuildRequires:  perl(Template) >= 2.24
BuildRequires:  perl(Template::AutoFilter)
BuildRequires:  perl(Template::Plugin::CSV) >= 0.04
BuildRequires:  perl(Template::Plugin::Number::Format) >= 1.02
BuildRequires:  perl(Term::ANSIColor) >= 5.01
BuildRequires:  perl(Term::UI)
BuildRequires:  perl(Test::Compile)
BuildRequires:  perl(Test::File::ShareDir::Dist)
BuildRequires:  perl(Test::More) >= 1.302083
BuildRequires:  perl(Text::CSV) >= 2.04
BuildRequires:  perl(Text::CSV_XS) >= 1.53
BuildRequires:  perl(Try::Tiny)
BuildRequires:  perl(URI)
BuildRequires:  perl(URI::Based)
BuildRequires:  perl(URL::Encode) >= 0.03
BuildRequires:  perl(URL::Encode::XS)
BuildRequires:  perl(YAML) >= 0.84
BuildRequires:  perl(YAML::XS) >= 0.41
BuildRequires:  perl(aliased)
BuildRequires:  perl(autovivification)
BuildRequires:  perl(namespace::clean) >= 0.24
BuildRequires:  perl(version) >= 0.9902
Requires:       perl(Algorithm::Cron) >= 0.07
Requires:       perl(Alien::ultraviolet) >= 1.001001
Requires:       perl(AnyEvent) >= 7.05
Requires:       perl(AnyEvent::DNS::EtcHosts)
Requires:       perl(App::cpanminus) >= 1.6108
Requires:       perl(App::local::lib::helper) >= 0.07
Requires:       perl(Archive::Extract)
Requires:       perl(Authen::Radius)
Requires:       perl(Authen::TacacsPlus)
Requires:       perl(CGI::Expand) >= 2.05
Requires:       perl(Command::Runner)
Requires:       perl(DBD::Pg)
Requires:       perl(DBIx::Class) >= 0.082841
Requires:       perl(DBIx::Class::Helpers) >= 2.033006
Requires:       perl(Daemon::Control) >= 0.001006
Requires:       perl(Dancer) >= 1.3132
Requires:       perl(Dancer::Plugin::Auth::Extensible) >= 0.30
Requires:       perl(Dancer::Plugin::DBIC) >= 0.2001
Requires:       perl(Dancer::Plugin::Passphrase) >= v2.0.1
Requires:       perl(Dancer::Plugin::Swagger)
Requires:       perl(Dancer::Session::Cookie) >= 0.27
Requires:       perl(Data::Printer)
Requires:       perl(Data::Visitor::Tiny)
Requires:       perl(Expect)
Requires:       perl(File::ShareDir) >= 1.03
Requires:       perl(File::Slurper) >= 0.009
Requires:       perl(File::Temp) >= 0.2311
Requires:       perl(Guard) >= 1.022
Requires:       perl(HTML::Parser) >= 3.70
Requires:       perl(HTTP::Tiny) >= 0.029
Requires:       perl(IO::Socket::INET6) >= 2.72
Requires:       perl(IO::Socket::SSL) >= 2.048
Requires:       perl(IPC::Run) >= 20231003.0
Requires:       perl(JSON) >= 2.90
Requires:       perl(JSON::PP)
Requires:       perl(JSON::XS) >= 3.01
Requires:       perl(List::MoreUtils) >= 0.428
Requires:       perl(List::Util) >= 1.70
Requires:       perl(MCE) >= 1.866
Requires:       perl(MIME::Base64) >= 3.13
Requires:       perl(Module::Load) >= 0.32
Requires:       perl(Moo) >= 1.001000
Requires:       perl(Net::DNS) >= 0.72
Requires:       perl(Net::LDAP)
Requires:       perl(Net::OpenSSH)
Requires:       perl(Net::Ping) >= 2.75
Requires:       perl(Net::Ping::External) >= 0.15
Requires:       perl(NetAddr::IP) >= 4.068
Requires:       perl(NetAddr::MAC) >= 0.99
Requires:       perl(Opcode) >= 1.07
Requires:       perl(Package::DeprecationManager)
Requires:       perl(Path::Class) >= 0.32
Requires:       perl(Plack) >= 1.0023
Requires:       perl(Plack::Handler::Twiggy)
Requires:       perl(Plack::Middleware::Debug)
Requires:       perl(Plack::Middleware::Expires) >= 0.03
Requires:       perl(Plack::Middleware::Headers)
Requires:       perl(Plack::Middleware::ReverseProxy) >= 0.15
Requires:       perl(Proc::ProcessTable) >= 0.636
Requires:       perl(Regexp::Common) >= 2017060201
Requires:       perl(Regexp::Common::net::CIDR)
Requires:       perl(Role::Tiny) >= 1.002005
Requires:       perl(SNMP::Info) >= 3.975000
Requires:       perl(SQL::Abstract) >= 1.85
Requires:       perl(SQL::Translator) >= 0.11024
Requires:       perl(Scope::Guard)
Requires:       perl(Sereal)
Requires:       perl(Session::Storage::Secure) >= 1.000
Requires:       perl(Socket6) >= 0.23
Requires:       perl(Starman) >= 0.4008
Requires:       perl(String::Util) >= 1.35
Requires:       perl(Sub::Util) >= 1.40
Requires:       perl(Sys::SigAction)
Requires:       perl(Template) >= 2.24
Requires:       perl(Template::AutoFilter)
Requires:       perl(Template::Plugin::CSV) >= 0.04
Requires:       perl(Template::Plugin::Number::Format) >= 1.02
Requires:       perl(Term::ANSIColor) >= 5.01
Requires:       perl(Term::UI)
Requires:       perl(Text::CSV) >= 2.04
Requires:       perl(Text::CSV_XS) >= 1.53
Requires:       perl(Try::Tiny)
Requires:       perl(URI)
Requires:       perl(URI::Based)
Requires:       perl(URL::Encode) >= 0.03
Requires:       perl(URL::Encode::XS)
Requires:       perl(YAML) >= 0.84
Requires:       perl(YAML::XS) >= 0.41
Requires:       perl(aliased)
Requires:       perl(autovivification)
Requires:       perl(namespace::clean) >= 0.24
Requires:       perl(version) >= 0.9902
Recommends:     perl(Alien::SNMP) >= 3.0509030000
Recommends:     perl(Graph)
Recommends:     perl(GraphViz)
%{perl_requires}

%description
Netdisco is a web-based network management tool designed for network
administrators. Data is collected into a PostgreSQL database using SNMP.

Some of the things you can do with Netdisco:

  * *Locate* a machine on the network by MAC or IP and show the switch port it
lives at

  * *Turn off* a switch port, or change the VLAN or PoE status of a port

  * *Inventory* your network hardware by model, vendor, software and operating
system

  * *Pretty pictures* of your network

App::Netdisco provides a web frontend with built-in web server, and a
backend daemon to gather information from your network, and handle
interactive requests such as changing port or device properties.

  * See the demo at: https://netdisco2-demo.herokuapp.com/

  * at https://hub.docker.com/r/netdisco/netdisco are also available

We have several other pages with tips for at
https://github.com/netdisco/netdisco/wiki/Install-Tips, at
https://github.com/netdisco/netdisco/wiki/Troubleshooting, at
https://github.com/netdisco/netdisco/wiki/Vendor-Tips, and at
https://github.com/netdisco/netdisco/wiki/Configuration.

You can also speak to someone in the '#netdisco@libera' IRC channel, or on
the at https://lists.sourceforge.net/lists/listinfo/netdisco-users. Before
installing or upgrading please always review the latest at
https://github.com/netdisco/netdisco/wiki/Release-Notes.

%prep
%autosetup  -n %{cpan_name}-%{version}

find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 644

%build
perl Build.PL --installdirs=vendor
./Build build --flags=%{?_smp_mflags}

%check
./Build test

%install
./Build install --destdir=%{buildroot} --create_packlist=0
%perl_gen_filelist

%files -f %{name}.files
%doc Changes
%license LICENSE.md

%changelog
openSUSE Build Service is sponsored by