## START: Set by rpmautospec
## (rpmautospec version 0.7.3)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 8;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

%global relver 2.3.1
%global prever b4
%global gitver %{relver}%{?prever:%{prever}}

Name:           mininet
Version:        %{relver}%{?prever:~%{prever}}
Release:        %autorelease
Summary:        Emulator for rapid prototyping of Software Defined Networks

License:        BSD-3-Clause
URL:            https://github.com/%{name}/%{name}
Source0:        %{url}/archive/%{gitver}/%{name}-%{gitver}.tar.gz

BuildRequires:  python3-devel
BuildRequires:  gcc
BuildRequires:  help2man
Requires:       openvswitch
Requires:       libcgroup-tools
Requires:       xterm, openssh-clients
Requires:       which, psmisc, procps-ng
Requires:       iproute, ethtool, net-tools
Requires:       telnet, socat, iperf

%description
Mininet emulates a complete network of hosts, links, and switches on a single
machine. To create a sample two-host, one-switch network, just run: 'sudo mn'

Mininet is useful for interactive development, testing, and demos, especially
those using OpenFlow and SDN. OpenFlow-based network controllers prototyped
in Mininet can usually be transferred to hardware with minimal changes for
full line-rate execution.


%prep
%autosetup -p1 -n %{name}-%{gitver}


%generate_buildrequires
%pyproject_buildrequires


%build
%pyproject_wheel
export PYTHON=%{python3}
export CC="gcc %{optflags}"
%make_build man
%make_build mnexec


%install
install -D mnexec %{buildroot}%{_bindir}/mnexec
install -D -t %{buildroot}%{_mandir}/man1 mn.1 mnexec.1
%pyproject_install
%pyproject_save_files %{name}


%check
%pyproject_check_import -t


%files -f %{pyproject_files}
%doc README.* CONTRIBUTORS
%license LICENSE
%{_bindir}/mn
%{_bindir}/mnexec
%{_mandir}/man1/mn.1*
%{_mandir}/man1/mnexec.1*


%changelog
## START: Generated by rpmautospec
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1~b4-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 2.3.1~b4-7
- Rebuilt for Python 3.13

* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1~b4-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1~b4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Thu Aug 10 2023 Iñaki Úcar <iucar@fedoraproject.org> - 2.3.1~b4-4
- Add missing changelog section

* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1~b4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2.3.1~b4-2
- Rebuilt for Python 3.12

* Wed May 03 2023 Iñaki Úcar <iucar@fedoraproject.org> - 2.3.1~b4-1
- Update to 2.3.1b2

* Wed Apr 26 2023 Iñaki Úcar <iucar@fedoraproject.org> - 2.3.1~b2-1
- Update to 2.3.1b2

* Sun Apr 09 2023 Iñaki Úcar <iucar@fedoraproject.org> - 2.3.1~b1^git20220711.3f5503d-4
- Adapt license tag to SPDX

* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1~b1^git20220711.3f5503d-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1~b1^git20220711.3f5503d-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Mon Jul 11 2022 Iñaki Úcar <iucar@fedoraproject.org> - 2.3.1~b1^git20220711.3f5503d-1
- Initial packaging for Fedora
## END: Generated by rpmautospec