Bug 1353000

Summary: Review Request: gns3-server - Graphical Network Simulator 3
Product: [Fedora] Fedora Reporter: Othman Madjoudj <athmanem>
Component: Package ReviewAssignee: Zbigniew Jędrzejewski-Szmek <zbyszek>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: alekcejk, package-review, zbyszek
Target Milestone: ---Flags: zbyszek: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-08-18 03:52:14 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1349576, 1352996    
Bug Blocks: 1359761    

Description Othman Madjoudj 2016-07-05 17:46:09 UTC
Spec URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server.spec
SRPM URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server-1.5.0-1.fc24.src.rpm
Description: 
GNS3 is a graphical network simulator that allows you to design complex network
topologies. You may run simulations or configure devices ranging from simple 
workstations to powerful routers. 

This is the server package which provides an HTTP REST API for the client (GUI).


Fedora Account System Username: athmane

Comment 1 Igor Gnatenko 2016-07-07 13:30:46 UTC
I will make review of this package in 1-2 days.

Comment 2 Igor Gnatenko 2016-07-07 18:19:51 UTC
Sorry, don't have time to review this.

Comment 3 Othman Madjoudj 2016-07-07 18:23:12 UTC
Not a problem at all :)

Updated SPEC/SRPM (mainly to provide systemd service)

Spec URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server.spec
SRPM URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server-1.5.0-2.fc24.src.rpm

NB. resetting 'Assigned To:' field

Comment 4 Zbigniew Jędrzejewski-Szmek 2016-07-29 16:59:22 UTC
There is no reason for the service subpackage, afaict. It only contains the service file so it's tiny, and has no significant dependencies.

gn3server package installs module "utils" as a standalone package. This cannot be. It must be fixed to move "utils" into the dns3server namespace. This seems to be an upstream error, but it's likely to cause problems for other packages.

The mode of gns3 dir should also be put in %files:
%dir %attr(2755,gns3,gns3) %{_sharedstatedir}/gns3

Please split the Requires into one-per-line.

Typo: ressources

Can you explain the comment about busybox "TODO: fix the code to use system's busybox"?

Type=simple is bad. It means that it's not possible for other services to know when gns3server has started. But that's an upstream issue, not a packaging error. Something that should be changed in the long run.

Comment 5 Zbigniew Jędrzejewski-Szmek 2016-07-29 17:00:11 UTC
Also: the unit file should not use %config.

Comment 6 Zbigniew Jędrzejewski-Szmek 2016-07-29 17:03:57 UTC
Also: it would be better to replace %{_bindir}/*, %{python3_sitelib}/* in %files with an explicit list. You have two or three files in each of those directories, and having an explicit list makes it much easier to catch mistakes, and also easier to review the package.

Comment 7 Zbigniew Jędrzejewski-Szmek 2016-07-29 17:20:24 UTC
for lib in `find %{buildroot}/%{python3_sitelib}/ -name '*.py'`; do
 echo $lib
 sed -i '1{\@^#!/usr/bin/env python@d}' $lib
done
→
find %{buildroot}/%{python3_sitelib}/ -name '*.py' -print \
   -exec sed -i '1{\@^#!/usr/bin/env python@d}' {} \;

Comment 8 Othman Madjoudj 2016-07-29 18:38:58 UTC
Thank you for doing the review. Here's the new spec/srpm.

Wrt bundled busybox comment, GNS3 include a static-built busybox and some config to create a tiny docker container on the fly, it does not affect the functionally especially with Qemu/Kvm.
 
I may reenable it on the future by using distro busybox instead.


Spec URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server.spec
SRPM URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server-1.5.0-3.fc24.src.rpm

%changelog
* Fri Jul 29 2016 Athmane Madjoudj <athmane>  - 1.5.0-3
- Spec cleanup
- Add patch to move vmnet to gns3 namespace.
- Merge service sub pkg (too small)

Comment 9 Othman Madjoudj 2016-07-29 18:52:07 UTC
Regarding the service, should not be an issue since gns3-server is needed by gns3-gui which can start it directly without invoking systemd.

The systemd service is only needed for particular workflow: client (gui) -> remote workers (gns3 servers)

Comment 10 Zbigniew Jędrzejewski-Szmek 2016-07-29 19:05:53 UTC
BuildRequires: git-core

You probably want to replace
%{python3_sitelib}/gns3_server-1.5.0-py3.5.egg-info/
→
%{python3_sitelib}/gns3_server-%{version}-py*.egg-info/

Please consider also building the docs. They seem a bit bare-bones, so maybe they shouldn't be packages. If you do, the following should be enough:
Add BR: python-sphinx,
and 'make -C docs html' in %build,
and docs/_build/html in %files.
The docs are >2MiB, so you'd probably need to create a -doc subpackage.

+ package name is OK
+ latest version
+ license is acceptable for Fedora (GPLv3)
+ license is specified correctly
+ systemd file is provided, proper scriptlets are used
+ provides/requires look sane
+ package builds and installs OK (apart from the missing BR)

Package is APPROVED.

Comment 11 Othman Madjoudj 2016-07-29 20:04:36 UTC
Fixed in -4, thanks again for your help.


Spec URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server.spec
SRPM URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server-1.5.0-4.fc24.src.rpm

Comment 12 Othman Madjoudj 2016-08-02 21:45:09 UTC
New upstream release.

I forgot to mention that I'm building this on copr (dnf copr enable athmane/gns3)


Spec URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server.spec
SRPM URL: https://athmane.fedorapeople.org/pkgs/gns3/gns3-server-1.5.1-1.fc24.src.rpm

Comment 13 Zbigniew Jędrzejewski-Szmek 2016-08-03 01:18:32 UTC
You probably want to request pkgdb, even before -gui review is finished.

Comment 14 Gwyn Ciesla 2016-08-04 13:17:03 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/gns3-server

Comment 15 Fedora Update System 2016-08-05 23:15:00 UTC
gns3-gui-1.5.1-2.fc24 gns3-server-1.5.1-1.fc24 gns3-net-converter-1.3.0-2.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-b0b7e1057b

Comment 16 Fedora Update System 2016-08-09 01:27:02 UTC
gns3-gui-1.5.1-2.fc24, gns3-net-converter-1.3.0-2.fc24, gns3-server-1.5.1-1.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-b0b7e1057b

Comment 17 nucleo 2016-08-09 20:56:33 UTC
Looks like there is missing Requires: python3-multidict.

I have error when running gns3 installed without python3-multidict:

Traceback (most recent call last):
  File "/usr/bin/gns3server", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 3141, in <module>
    @_call_aside
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 3127, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 3154, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 640, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 941, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3.5/site-packages/pkg_resources/__init__.py", line 828, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'multidict' distribution was not found and is required by aiohttp

Installing python3-multidict fixes it.

Comment 18 Othman Madjoudj 2016-08-09 21:11:50 UTC
Yes, It's an issue with python3-aiohttp, which should depend on python3-multidict

See: RHBZ #1349576

Comment 19 Fedora Update System 2016-08-18 03:52:06 UTC
gns3-gui-1.5.1-2.fc24, gns3-net-converter-1.3.0-2.fc24, gns3-server-1.5.1-1.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.