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