Bug 1662572 (python-aiohttp-socks) - Review Request: python-aiohttp-socks - SOCKS proxy connector for aiohttp
Summary: Review Request: python-aiohttp-socks - SOCKS proxy connector for aiohttp
Keywords:
Status: CLOSED ERRATA
Alias: python-aiohttp-socks
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jonny Heggheim
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1695746 (view as bug list)
Depends On:
Blocks: 1697063
TreeView+ depends on / blocked
 
Reported: 2018-12-30 08:38 UTC by Igor Gnatenko
Modified: 2019-04-15 00:01 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-04-09 02:19:16 UTC
hegjon: fedora-review+


Attachments (Terms of Use)

Description Igor Gnatenko 2018-12-30 08:38:24 UTC
Spec URL: https://ignatenkobrain.fedorapeople.org/for-review/python-aiohttp-socks.spec
SRPM URL: https://ignatenkobrain.fedorapeople.org/for-review/python-aiohttp-socks-0.2.1-1.fc30.src.rpm
Description:
SOCKS proxy connector for aiohttp. SOCKS4(a) and SOCKS5 are supported.
Fedora Account System Username: ignatenkobrain

Comment 3 Fabian Affolter 2019-01-22 22:11:59 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed

- aiohttp is a requirement
  https://github.com/romis2012/aiohttp-socks/blob/master/setup.py
- RPMlint issues (see output)
- Tests are available but no %check section


===== MUST items =====

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "*No copyright* Apache License (v2.0)", "Unknown or generated".
     10 files have unknown license. Detailed output of licensecheck in
     /home/fab/Documents/repos/reviews/1662572-python-aiohttp-
     socks/licensecheck.txt
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/python3.6/site-
     packages, /usr/lib/python3.6
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 10240 bytes in 1 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== SHOULD items =====

Generic:
[x]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: python-aiohttp-socks-0.2.2-1.fc28.noarch.rpm
          python-aiohttp-socks-0.2.2-1.fc28.src.rpm
python-aiohttp-socks.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/python-aiohttp-socks/README.md
2 packages and 0 specfiles checked; 0 errors, 1 warnings.




Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
python-aiohttp-socks.noarch: W: invalid-url URL: https://pypi.org/project/aiohttp-socks/ <urlopen error [Errno -2] Name or service not known>
python-aiohttp-socks.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/python-aiohttp-socks/README.md
1 packages and 0 specfiles checked; 0 errors, 2 warnings.



Requires
--------
python-aiohttp-socks (rpmlib, GLIBC filtered):
    python(abi)



Provides
--------
python-aiohttp-socks:
    python-aiohttp-socks
    python3.6dist(aiohttp-socks)
    python3dist(aiohttp-socks)



Source checksums
----------------
https://files.pythonhosted.org/packages/source/a/aiohttp_socks/aiohttp_socks-0.2.2.tar.gz :
  CHECKSUM(SHA256) this package     : eebd8939a7c3c1e3e7e1b2552c60039b4c65ef6b8b2351efcbdd98290538e310
  CHECKSUM(SHA256) upstream package : eebd8939a7c3c1e3e7e1b2552c60039b4c65ef6b8b2351efcbdd98290538e310


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02

Package APPROVED

Comment 4 Fabian Affolter 2019-01-23 08:00:56 UTC
Sorry, "Package APPROVED" was too early.

Comment 5 Hirotaka Wakabayashi 2019-01-26 09:11:39 UTC
Hello, this is an unofficial and an additional review to #3.

Summary
========

1. Koji scratch build succeeded
2. Package Naming
3. Package Dependencies
4. Provides
5. Source

Appendix 1: "diff" with my locally edited spec file

Details
========

1. Koji scratch build succeeded
---------------------------------

https://koji.fedoraproject.org/koji/taskinfo?taskID=32254139

Here is the reference to run a koji scratch build.
https://fedoraproject.org/wiki/Using_the_Koji_build_system#Scratch_Builds

2. Package Naming
------------------

The current binary rpm name, python-aiohttp-socks, must be
python3-aiohttp-socks.  I think "%files" in python-aiohttp-socks.spec should
be "%files -n python3-%{pypi_name}".  See the "diff" with locally edited spec
file of mine for details.

The following guideline will help you.
https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_naming

3. Package Dependencies
------------------------

This package requires python3-aiohttp package. I think you should add
"%{?python_enable_dependency_generator}" to you spec file.

See the "diff" with locally edited spec file of mine for details.

"Automatically generated dependencies" in Python guideline will help you.
See https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_automatically_generated_dependencies

"All package dependencies (build-time or runtime, regular, weak or otherwise)
MUST ALWAYS be satisfiable within the official Fedora repositories."
See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_package_dependencies

4. Provides
------------

"Provides: python3-aiohttp-socks" is needed because this package will be pulled
in as build dependencies using the package name. "%python_provide" macro will
help you.

See the following guideline.
https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides

5. Source Reference
--------------------

SourceX is usually used because source files can be multiple. I think Source0
is better in this case.

https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/

Appendix 1: "diff" with my locally edited spec file
----------------------------------------------------

Here is the diff between the original spec file in #2 and my locally edited
spec file for your reference.::

  $ diff -c python-aiohttp-socks.spec.orig python-aiohttp-socks.spec
  *** python-aiohttp-socks.spec.orig      2019-01-26 06:51:27.077180489 +0000
  --- python-aiohttp-socks.spec   2019-01-26 06:53:21.317238974 +0000
  ***************
  *** 10,25 ****

    License:        ASL 2.0
    URL:            https://pypi.org/project/aiohttp-socks/
  ! Source:         %{pypi_source}

    BuildArch:      noarch

    %description %{_description}

    %package -n python3-%{pypi_name}
    Summary:        %{summary}
    BuildRequires:  python3-devel
    BuildRequires:  python3-setuptools

    %description -n python3-%{pypi_name} %{_description}

  --- 10,27 ----

    License:        ASL 2.0
    URL:            https://pypi.org/project/aiohttp-socks/
  ! Source0:        %{pypi_source}

    BuildArch:      noarch

  + %{?python_enable_dependency_generator}
    %description %{_description}

    %package -n python3-%{pypi_name}
    Summary:        %{summary}
    BuildRequires:  python3-devel
    BuildRequires:  python3-setuptools
  + %{?python_provide:%python_provide python3-%{srcname}}

    %description -n python3-%{pypi_name} %{_description}

  ***************
  *** 35,41 ****
    %install
    %py3_install

  ! %files
    %license LICENSE.txt
    %doc README.md
    %{python3_sitelib}/%{srcname}/
  --- 37,43 ----
    %install
    %py3_install

  ! %files -n python3-%{pypi_name}
    %license LICENSE.txt
    %doc README.md
    %{python3_sitelib}/%{srcname}/


Thanks in advance.
Hirotaka Wakabayashi

Comment 6 Jonny Heggheim 2019-04-03 17:35:44 UTC
Still interesting in this request Igor Gnatenko? I will close my review #1695746 and review this request if you are still interested.

Comment 7 Igor Gnatenko 2019-04-07 10:09:51 UTC
Sorry, I didn't have time lately. I will update this review request tonight.

Comment 8 Igor Gnatenko 2019-04-07 10:09:58 UTC
*** Bug 1695746 has been marked as a duplicate of this bug. ***

Comment 9 Jonny Heggheim 2019-04-07 10:41:09 UTC
(In reply to Igor Gnatenko from comment #7)
> I will update this review request tonight.

Thanks, I will approve it when you have fixed the feedback in comment 3 and comment 5.

Comment 11 Igor Gnatenko 2019-04-08 06:03:00 UTC
> - aiohttp is a requirement
>  https://github.com/romis2012/aiohttp-socks/blob/master/setup.py

It is generated automatically, nothing to do.

> - RPMlint issues (see output)

I've fixed README.md one.

> - Tests are available but no %check section

They are not. Not on PyPI tarball.

> 2. Package Naming

Fixed.

> 3. Package Dependencies

It is not necessary in F30+. But since we need to build it in F29, I put necessary line.

> 4. Provides

Fixed.

> 5. Source

Right now, there is one source... So no need to fix anything.

Comment 13 Jonny Heggheim 2019-04-08 08:14:35 UTC
(In reply to Igor Gnatenko from comment #12)
> New Spec URL:
> https://ignatenkobrain.fedorapeople.org/for-review/python-aiohttp-socks.spec
> New SRPM URL:
> https://ignatenkobrain.fedorapeople.org/for-review/python-aiohttp-socks-0.2.
> 2-1.fc31.src.rpm

Looks great. Approved!

Comment 14 Igor Gnatenko 2019-04-08 10:53:05 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/python-aiohttp-socks

Comment 15 Fedora Update System 2019-04-08 11:27:48 UTC
python-aiohttp-socks-0.2.2-1.fc30 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-5ce677d0a8

Comment 16 Fedora Update System 2019-04-08 11:27:55 UTC
python-aiohttp-socks-0.2.2-1.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-39f8585c2d

Comment 17 Fedora Update System 2019-04-09 01:47:44 UTC
python-aiohttp-socks-0.2.2-1.fc30 has been pushed to the Fedora 30 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-2019-5ce677d0a8

Comment 18 Fedora Update System 2019-04-09 02:19:16 UTC
python-aiohttp-socks-0.2.2-1.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.

Comment 19 Fedora Update System 2019-04-15 00:01:26 UTC
python-aiohttp-socks-0.2.2-1.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.