Bug 1421304

Summary: Review Request: python-aiohttp-cors - CORS (Cross Origin Resource Sharing) support for aiohttp
Product: [Fedora] Fedora Reporter: Othman Madjoudj <athmanem>
Component: Package ReviewAssignee: Peter Lemenkov <lemenkov>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: lemenkov, package-review, yves.lecuyer.linfedora
Target Milestone: ---Flags: lemenkov: 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: 2017-04-11 13:45:33 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:

Description Othman Madjoudj 2017-02-10 23:29:06 UTC
Spec URL: https://athmane.fedorapeople.org/pkgs/python-aiohttp-cors.spec
SRPM URL: https://athmane.fedorapeople.org/pkgs/python-aiohttp-cors-0.5.0-1.fc25.src.rpm
Description: 
aiohttp_cors library implements Cross Origin Resource Sharing (CORS) support
for aiohttp asyncio-powered asynchronous HTTP server.


Fedora Account System Username: athmane

Comment 1 Othman Madjoudj 2017-02-10 23:33:28 UTC
Rpmlint output:

../SPECS/python-aiohttp-cors.spec:49: W: macro-in-comment %{__python3}
python-aiohttp-cors.src: W: spelling-error %description -l en_US asyncio -> Asuncion
python-aiohttp-cors.src:49: W: macro-in-comment %{__python3}
python3-aiohttp-cors.noarch: W: spelling-error %description -l en_US asyncio -> Asuncion
2 packages and 1 specfiles checked; 0 errors, 4 warnings.



PS. New GNS3 release depends on this package.

Comment 2 Yves L'ECUYER 2017-03-17 22:15:16 UTC
Thanks for the prototype given in your  first comment.
Because I need this immediately too for GNS3 1.5.3.

Get rid of this warning is very easy, just change the description:
rpmlint suggest Asuncion in place of asyncio, because asyncio is not in US dictionnary !!!
Personnaly I replaced , your python3-aiohttp-1.0.5-3.fc25.src.rpmoriginal Description by:
=======
aiohttp_cors library implements Cross Origin Resource Sharing (CORS) support
for aiohttp asynchronous-input-output-powered HTTP server.
=========

And because it protests also about a macro in comment (test are disabled)
I Just replaced:
# %{__python3} setup.py test

BY
# ${__python3} setup.py test 
# where $ above must be replaced by %  if you want to re-enable it!!!


AND NOW :
[root@encelade SPECS]# rpmbuild -bs python-aiohttp-cors.spec
Wrote: /root/rpmbuild/SRPMS/python-aiohttp-cors-0.5.0-1.fc25.src.rpm
[root@encelade SPECS]# rpmlint /root/rpmbuild/SRPMS/python-aiohttp-cors-0.5.0-1.fc25.src.rpm
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

But I have added too 
Requires:      python3-aiohttp >= 1.1
otherwise, in fedora 25 because the last update is :
python3-aiohttp-1.0.5-3.fc25
There is a silent installatiopython3-aiohttp-1.0.5-3.fc25.src.rpmn by dnf, but we got python error when gns3 service is launched, claiming that it requires python3-aiohttp >= 1.1 !!

CONSEQUENTLY
python3-aiohttp- must be updated in fedora 25 repository.
I tried to use python-aiohttp-1.3.3-1.fc26.src.rpm recompiled for fc25,
but there is too much dependency with other python libraries not available for fc25.
so python3-aiohttp-1.1.6 is just the ultimate choice to satisfy python-aiohttp-cors-0.5.0-1.fc25 dependencies, and not requiring other python updates
the src.rpm :python3-aiohttp-1.0.5-3.fc25.src.rpm is just usable as it is, just changing the version, in 1.1.6 -1, and the link for source0 inside the specfile, is still usable to get the tarball
I got it with:
===========
srcname=aiohttp
version=1.1.6
wget   https://github.com/KeepSafe/aiohttp/archive/v${version}/${srcname}-${version}.tar.gz
==========
Just an ultimate remark
[root@encelade SPECS]# rpmbuild -bs  python-aiohttp.spec
Wrote: /root/rpmbuild/SRPMS/python-aiohttp-1.1.6-1.fc25.src.rpm
[root@encelade SPECS]# rpmlint /root/rpmbuild/SRPMS/python-aiohttp-1.1.6-1.fc25.src.rpm
python-aiohttp.src: W: spelling-error Summary(en_US) asyncio -> Asuncion
python-aiohttp.src: W: spelling-error %description -l en_US asyncio -> Asuncion
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

SO THE SPEC FILE of python3-aiohttp-1.0.5-3.fc25.src.rpm , in standard fedora update repository was already producing the same US English spelling error, for the same word as in your first comment ! and nobody care about that  ??

So why not to ignore the warning too, in  python-aiohttp-cors ???

===========
So I have already built my gns3-gui and gns3-server from the 1.5.2 src package and replacing 1.5.2 -3  by 1.5.3 -1 in specfile

and the corresponding tarball, downloaded from the link provided in the specfile
with
=========================
name=gns3-gui
version=1.5.3
wget  https://github.com/GNS3/${name}/archive/v${version}/${name}-${version}.tar.gz

name=gns3-server
wget https://github.com/GNS3/${name}/archive/v${version}/${name}-${version}.tar.gz
========================

And all is built correctly, and installed without any warning

AND FINALLY
[root@encelade fedora25_packages]# systemctl start gns3
[root@encelade fedora25_packages]# systemctl status gns3
● gns3.service - GNS3 server
   Loaded: loaded (/usr/lib/systemd/system/gns3.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2017-03-17 23:08:30 CET; 6s ago
 Main PID: 19828 (gns3server)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/gns3.service
           └─19828 /usr/bin/python3 /usr/bin/gns3server

Mar 17 23:08:30 encelade systemd[1]: Started GNS3 server.
[root@encelade fedora25_packages]#

Comment 3 Yves L'ECUYER 2017-03-17 22:20:30 UTC
Unfortunatly python3-aiohttp-1.1.6 is not sufficient for gns3-gui
launched from a root shell to sea easily the error, i got:
...
pkg_resources.ContextualVersionConflict: (aiohttp 1.1.6 (/usr/lib64/python3.5/site-packages), Requirement.parse('aiohttp>=1.2.0'), {'gns3-server'})
...

pkg_resources.DistributionNotFound: The 'aiohttp>=1.2.0' distribution was not found and is required by gns3-server
2017-03-17 23:11:53 CRITICAL progress_dialog.py:159 WaitForConnectionWorker thread stopping with an error: Could not connect to 127.0.0.1 on port 8000: [Errno 111] Connection refused
2017-03-17 23:11:53 CRITICAL __init__.py:95 Could not connect to 127.0.0.1 on port 8000: [Errno 111] Connection refused


===
I 'll try to package 1.2.x version to see if it is sufficient , to get a successful connection!

Comment 4 Yves L'ECUYER 2017-03-17 23:01:59 UTC
Well with python3-aiohttp-1.2.0, gns3-gui goes further on, but I get the same problem than with python3-aiohttp-1.3 from development fc26
==================
pkg_resources.ContextualVersionConflict: (multidict 2.1.3 (/usr/lib64/python3.5/site-packages), Requirement.parse('multidict>=2.1.4'), {'aiohttp'})
and of course multidict>=2.1.4 is not available for fedora 25
=================
Ok rebuilding python3-multidict-2.1.4-1.fc25.x86_64
from python-multidict-2.1.3-1.fc25.src.rpm, ajusting the release to 2.1.4 in SPEC file,
and downloading the updated tarball from the link in *.spec, with:
============
modname=multidict

version=2.1.5

URL=https://github.com/aio-libs/${modname}
wget       ${URL}/archive/v${version}/${modname}-${version}.tar.gz
=======================
Once that last update installed, gns3-gui is working fine, with successful
 connection to gns3 local service !!!!

So WE MUST ADD in gns3-gui and gns3-server spec file:
Requires: python3-multidict >= 2.1.4
Requires: python3-aiohttp   >=1.2.0
Requires: python3-aiohttp-cors >= 0.5.0

EXPECTING SEE ALL THIS SOON, in standard Fedora update repos !!!

Comment 5 Othman Madjoudj 2017-04-01 22:57:54 UTC
Hi Yves,

You can try this repo for now (until review / deps update is done).

sudo dnf copr enable athmane/gns3

sudo dnf update gns3-server gns3-gui


NB. Some Python libs required by GNS3 will be updated as well

Comment 6 Peter Lemenkov 2017-04-04 13:49:11 UTC
I'll review it

Comment 7 Peter Lemenkov 2017-04-04 14:08:49 UTC
[+] rpmlint is silent (or produces only messages which can be safely ignored:

Auriga ~/rpmbuild/SPECS: rpmlint ../RPMS/noarch/python3-aiohttp-cors-0.5.0-1.fc25.noarch.rpm ../SRPMS/python-aiohttp-cors-0.5.0-1.fc25.src.rpm 
python3-aiohttp-cors.noarch: W: spelling-error %description -l en_US asyncio -> Asuncion
python-aiohttp-cors.src: W: spelling-error %description -l en_US asyncio -> Asuncion
python-aiohttp-cors.src:49: W: macro-in-comment %{__python3}
2 packages and 0 specfiles checked; 0 errors, 3 warnings.
Auriga ~/rpmbuild/SPECS

[+] The package is named according to the Package Naming Guidelines.
[+] The spec file name matches the base package %{name}, in the format %{name}.spec.
[+] The package meets the Packaging Guidelines.
[+] The package is licensed with a Fedora approved license and meets the Licensing Guidelines.
[+] The License field in the package spec file matches the actual license (ASL 2.0).
[+] The file, containing the text of the license(s) for the package, is included in %doc and marked as %license.
[+] The spec file is written in American English.
[+] The spec file for the package is legible.
[+] The sources used to build the package matches the upstream source, as provided in the spec URL.

Auriga ~/rpmbuild/SOURCES: sha256sum python-aiohttp-cors-0.5.0.tar.gz*
7d0c682657db4f3265337875be75e5f222aef644e780e125267e98a690ff9d85  python-aiohttp-cors-0.5.0.tar.gz
7d0c682657db4f3265337875be75e5f222aef644e780e125267e98a690ff9d85  python-aiohttp-cors-0.5.0.tar.gz.1
Auriga ~/rpmbuild/SOURCES:

[+] The package successfully compiles and builds into binary rpms.
[+] All build dependencies are listed in BuildRequires.
[0] No need to handle locales.
[0] The package does not contain any shared library files.
[+] Packages does not bundle copies of system libraries.
[+] The package isn't designed to be relocatable.
[+] The package owns all directories that it creates.
[+] The package does not list a file more than once in the spec file's %files listings.
[+] Permissions on files are set properly.
[+] The package consistently uses macros.
[+] The package contains code, or permissible content.
[0] No large documentation files.
[+] Anything, the package includes as %doc, does not affect the runtime of the application.
[0] No static libraries.
[0] No -devel sub-package.
[+] The package does not contain any .la libtool archives.
[0] Not a GUI application.
[+] The package does not own files or directories already owned by other packages.
[+] All filenames in rpm packages are valid UTF-8.

APPROVED.

Comment 8 Gwyn Ciesla 2017-04-05 21:39:22 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/python-aiohttp-cors

Comment 9 Fedora Update System 2017-04-05 22:37:14 UTC
python-aiohttp-cors-0.5.0-1.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-c03e9626ed

Comment 10 Fedora Update System 2017-04-06 22:22:50 UTC
python-aiohttp-cors-0.5.0-1.fc26 has been pushed to the Fedora 26 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-2017-c03e9626ed

Comment 11 Fedora Update System 2017-04-11 13:45:33 UTC
python-aiohttp-cors-0.5.0-1.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.