Bug 1838027 - Review Request: zuul - Trunk Gating System
Summary: Review Request: zuul - Trunk Gating System
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Miro Hrončok
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1220451 (view as bug list)
Depends On: 1742034 1801001 1856000
Blocks: 1218410
TreeView+ depends on / blocked
 
Reported: 2020-05-20 11:44 UTC by Fabien Boucher
Modified: 2020-08-19 12:09 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-08-19 12:09:45 UTC
Type: ---
Embargoed:
mhroncok: fedora-review+


Attachments (Terms of Use)

Description Fabien Boucher 2020-05-20 11:44:49 UTC
Spec URL: https://fbo.fedorapeople.org/zuul/zuul.spec
SRPM URL: https://fbo.fedorapeople.org/zuul/zuul-3.18.0-2.fc33.src.rpm
Description: Zuul is a program that drives continuous integration, delivery,
and deployment systems with a focus on project gating and
interrelated projects.
Fedora Account System Username: fbo

Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=44726648

Comment 1 Miro Hrončok 2020-05-20 13:17:34 UTC
spec sanity:


1) %global srcname zuul -> consider dropping this, I don't see it used anywhere in the spec


2) 0001-Remove-another-shebang-and-remove-useless-exec-bits.patch -> is the mode thing supported by regular patch, or is %autosetup -S git needed for this?


3) %package webui etc. -> should they all (except maybe doc) have: Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release} ?


4) Requires: git  -> is git-core not good enough?


5) various manual Requires on python3-...  -> is the dependency generator not working? I see you rm requirements.txt, why is that?


6) # Fix non compliant shebangs ... -> the complex fins+sed can be replaced with a single pathfix.py call (see /usr/bin/pathifx.py, also macronized as %py3_shebang_fix in rawhide, backports in progress)


7) %{python3_sitelib}/zuul-*.egg-info -> consider adding trailing slash to assert this is a directory

Comment 2 Fabien Boucher 2020-05-20 15:16:27 UTC
(In reply to Miro Hrončok from comment #1)
> spec sanity:
> 
> 
> 1) %global srcname zuul -> consider dropping this, I don't see it used
> anywhere in the spec

done

> 
> 2) 0001-Remove-another-shebang-and-remove-useless-exec-bits.patch -> is the
> mode thing supported by regular patch, or is %autosetup -S git needed for
> this?

Looking the buildroot yes the file mode is correct so I assume autosetup w/o
-S git is sufficient

> 
> 3) %package webui etc. -> should they all (except maybe doc) have: Requires:
> %{name} = %{?epoch:%{epoch}:}%{version}-%{release} ?

Done

> 
> 4) Requires: git  -> is git-core not good enough?

Yes it seems sufficient, so I've switch for git-core.

> 
> 5) various manual Requires on python3-...  -> is the dependency generator
> not working? I see you rm requirements.txt, why is that?
>

Ok so I'll have a deeper look into that in the next round.

> 
> 6) # Fix non compliant shebangs ... -> the complex fins+sed can be replaced
> with a single pathfix.py call (see /usr/bin/pathifx.py, also macronized as
> %py3_shebang_fix in rawhide, backports in progress)
> 

Done, but I was unable to use the macro neither to find it.

> 
> 7) %{python3_sitelib}/zuul-*.egg-info -> consider adding trailing slash to
> assert this is a directory

Done

Comment 3 Miro Hrončok 2020-05-20 15:31:50 UTC
> Done, but I was unable to use the macro neither to find it.

The macro is in python3-rpm-macros since yesterday: https://src.fedoraproject.org/rpms/python-rpm-macros/pull-request/58 -- going with a direct pathfix.py call is OK (unless you feel very leading edge).


> /usr/bin/pathfix.py -i /usr/bin/python3 -p -n -k zuul/ansible

Could you please use %{python3} over hardcoded /usr/bin/python3?


BTW zuul-webui has no dependency on zuul, that is intentional? I haven't checked the Fedora README yet.




I'll run fedora-review now.

Comment 4 Miro Hrončok 2020-05-20 16:00:36 UTC
8) 

%files doc
%doc build/html LICENSE README.fedora

LICENSE should be marked as %license, not %doc.

Other (sub)packages don't have LICENSE packaged at all.




9) rpmlint screams with problems. I've picked some I don't understand, are they expected?

zuul.noarch: W: non-standard-gid /etc/zuul/zuul.conf zuul
zuul.noarch: E: non-readable /etc/zuul/zuul.conf 640
zuul.noarch: W: non-standard-uid /usr/lib64/zuul zuul
zuul.noarch: W: non-standard-gid /usr/lib64/zuul zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul/.ssh zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/.ssh zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul/keys zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/keys zuul
zuul.noarch: W: non-standard-uid /var/log/zuul zuul
zuul.noarch: W: non-standard-gid /var/log/zuul zuul
zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/executor zuul
zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/executor zuul


And some that should probably be fixed:

zuul.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/zuul/ansible/base/library/command.py 644 /usr/bin/python3 
zuul.noarch: E: non-executable-script /usr/lib/python3.8/site-packages/zuul/ansible/base/library/zuul_console.py 644 /usr/bin/python3 
zuul.noarch: W: log-files-without-logrotate ['/var/log/zuul']
zuul-scheduler.noarch: W: empty-%postun
zuul-merger.noarch: W: empty-%postun
zuul-web.noarch: W: empty-%postun
zuul-executor.noarch: W: empty-%postun
zuul-fingergw.noarch: W: empty-%postun
zuul-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/zuul-doc/LICENSE


Those can (and should) be deleted:

zuul-doc.noarch: W: hidden-file-or-dir /usr/share/doc/zuul-doc/html/.buildinfo
zuul-doc.noarch: W: hidden-file-or-dir /usr/share/doc/zuul-doc/html/.doctrees


zuul.src:307: W: libdir-macro-in-noarch-package (main package) %dir %attr(0755, zuul, zuul) %{_libdir}/zuul

This is a warning, but will actually break things if built on 64bit builder but installed on 32bit system, %{_libdir} is /usr/lib64 on 64bits. Either the package needs to be arched, or this needs to be hardcoded to %{_prefix}/lib.

Comment 5 Miro Hrončok 2020-05-25 13:27:25 UTC
*** Bug 1220451 has been marked as a duplicate of this bug. ***

Comment 6 Fabien Boucher 2020-05-28 16:08:02 UTC
Spec URL: https://fbo.fedorapeople.org/zuul/zuul.spec
SRPM URL: https://fbo.fedorapeople.org/zuul/zuul-3.19.0-1.fc33.src.rpm

3.19.0 has just been released. I'm using it.

Now I keep the requirements.txt and let the runtime deps to be discovered with it.
But this actually makes the package installation not possible due to:

- nothing provides ((python3.8dist(virtualenv) < 20 or python3.8dist(virtualenv) > 20) with (python3.8dist(virtualenv) < 20.0.1 or python3.8dist(virtualenv) > 20.0.1) with python3.8dist(virtualenv) > 20) needed by zuul-3.19.0-1.fc33.noarch

-> This should be fixed soon when https://src.fedoraproject.org/rpms/python-virtualenv/pull-request/20 merge.

- nothing provides python3.8dist(cheroot) < 8.1 needed by zuul-3.19.0-1.fc33.noarch
- nothing provides python3.8dist(cherrypy) = 18.3 needed by zuul-3.19.0-1.fc33.noarch

-> This is more problematic because the upstream has pinned cherrypy and cheroot to a known working version for them.
The referenced issue is about scaling https://github.com/cherrypy/cheroot/issues/263 and the proposed patch is not
ready https://github.com/cherrypy/cheroot/pull/277.

It seems the cheroot issue leads to connection resets under a quite heavy load on the Zuul API (zuul-web).
The reproducer (that I've run) shows that on the current rawhide, cheroot has that issue.

What are the options here ?
- Bypass the pinning because it does not prevent the services to run ?
- Do a library bundle (for cheroot and cherrypy), is it authorized, feasible ?
- Wait for the fix to land ?

Also regarding the others points you reported:
- pathfix.py use %{python3}: done
- zuul-webui has no dependency on zuul: yes we only distribute the UI source, that will need to build by the operator with npm (will be explained in the readme)
- LICENSE should be marked as %license: done and added LICENSE to all subpackages
- rpmlint I've added a zuul.rpmlintrc https://fbo.fedorapeople.org/zuul/zuul.rpmlintrc with my explanations


Thanks in advance for your help

Comment 7 Miro Hrončok 2020-05-28 17:16:22 UTC
> Wait for the fix to land ?

Make the fix, backport it if needed?

Comment 8 Miro Hrončok 2020-05-28 18:33:58 UTC
Sviatoslav, can you please help with the cheroot fix?

Comment 9 Neal Gompa 2020-05-29 03:26:57 UTC
(In reply to Fabien Boucher from comment #6)
> 
> -> This is more problematic because the upstream has pinned cherrypy and
> cheroot to a known working version for them.
> The referenced issue is about scaling
> https://github.com/cherrypy/cheroot/issues/263 and the proposed patch is not
> ready https://github.com/cherrypy/cheroot/pull/277.
> 
> It seems the cheroot issue leads to connection resets under a quite heavy
> load on the Zuul API (zuul-web).
> The reproducer (that I've run) shows that on the current rawhide, cheroot
> has that issue.
> 
> What are the options here ?
> - Bypass the pinning because it does not prevent the services to run ?
> - Do a library bundle (for cheroot and cherrypy), is it authorized, feasible
> ?
> - Wait for the fix to land ?

My suggestion would be to patch out the pinning and backport the fix to the cherrypy packages in Fedora. It's not actually *critical* for Zuul to function, and the patch would be useful for *all* users of CherryPy (including, for example, Ipsilon).

Comment 10 Sviatoslav Sydorenko 2020-05-29 13:32:56 UTC
Hey Miro, that regression bug is blocked on the contributor who initially implemented the connection management refactoring. And the current maintainers (jaraco and me) don't fully understand how to fix that. So we're waiting on the author (the-allanc) to complete his investigation. I know that jaraco is considering reverting that refactoring altogether if things won't move forward. I guess you could package old pinned version for now. I myself tried to debug it a couple of times but no success so far. I'm as annoyed with that bug as you are but I'm currently powerless when it comes to fixing it. I welcome any attempts to help fix it in Cheroot, of course :)

Comment 11 Fabien Boucher 2020-07-15 10:36:12 UTC
Hello, thanks to the work of Sviatoslav to land the cheroot's patch, I was able to land a fix upstream to remove the cheroot pinning (https://review.opendev.org/740717). Then I've updated the spec file.

Spec URL: https://fbo.fedorapeople.org/zuul/zuul.spec
SRPM URL: https://fbo.fedorapeople.org/zuul/zuul-3.19.0-1.fc33.src.rpm

Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=47247540

And update of cheroot rpm is needed: https://src.fedoraproject.org/rpms/python-cheroot/pull-request/2

Comment 12 Robert-André Mauchin 🐧 2020-07-15 11:23:58 UTC
 - Remove shebangs for

zuul.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/zuul/ansible/base/library/command.py 644 /usr/bin/python3 
zuul.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/zuul/ansible/base/library/zuul_console.py 644 /usr/bin/python3 

 - Add a logrotate file for your log See https://docs.fedoraproject.org/en-US/packaging-guidelines/#_logrotate_config_file

 - Own this dir:

[!]: Package requires other packages for directories it uses.
     Note: No known owner of /etc/zuul




Package Review
==============

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


Issues:
=======
- Package installs properly.
  Note: Installation errors (see attachment)
  See: https://docs.fedoraproject.org/en-US/packaging-guidelines/

===== 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: "Unknown or generated", "Apache License 2.0", "*No copyright*
     Apache License 2.0 GPL (v3.0)", "*No copyright* Apache License 2.0",
     "Expat License", "GPL (v3 or later)". 1645 files have unknown license.
     Detailed output of licensecheck in
     /home/bob/packaging/review/zuul/review-zuul/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /etc/zuul
[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.
[x]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[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 does not own files or directories owned by other packages.
[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]: %config files are marked noreplace or the reason is justified.
[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]: No %config files under /usr.
[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]: systemd_post is invoked in %post, systemd_preun in %preun, and
     systemd_postun in %postun for Systemd service files.
     Note: Systemd service file(s) in zuul-scheduler, zuul-merger, zuul-
     web, zuul-executor, zuul-fingergw
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[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]: Packages MUST NOT have dependencies (either build-time or runtime) on
     packages named with the unversioned python- prefix unless no properly
     versioned package exists. Dependencies on Python packages instead MUST
     use names beginning with python2- or python3- as appropriate.
[x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files
[x]: Binary eggs must be removed in %prep

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

Generic:
[-]: 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]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in zuul-
     webui , zuul-scheduler , zuul-merger , zuul-web , zuul-executor ,
     zuul-fingergw , zuul-migrate
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[x]: Scriptlets must be sane, if used.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[-]: 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.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: zuul-3.19.0-1.fc33.noarch.rpm
          zuul-webui-3.19.0-1.fc33.noarch.rpm
          zuul-scheduler-3.19.0-1.fc33.noarch.rpm
          zuul-merger-3.19.0-1.fc33.noarch.rpm
          zuul-web-3.19.0-1.fc33.noarch.rpm
          zuul-executor-3.19.0-1.fc33.noarch.rpm
          zuul-fingergw-3.19.0-1.fc33.noarch.rpm
          zuul-migrate-3.19.0-1.fc33.noarch.rpm
          zuul-doc-3.19.0-1.fc33.noarch.rpm
          zuul-3.19.0-1.fc33.src.rpm
zuul.noarch: W: no-documentation
zuul.noarch: W: non-standard-uid /etc/zuul/logging.conf zuul
zuul.noarch: W: non-standard-gid /etc/zuul/logging.conf zuul
zuul.noarch: W: non-standard-uid /etc/zuul/main.yaml zuul
zuul.noarch: W: non-standard-gid /etc/zuul/main.yaml zuul
zuul.noarch: W: non-standard-uid /etc/zuul/zuul.conf zuul
zuul.noarch: W: non-standard-gid /etc/zuul/zuul.conf zuul
zuul.noarch: E: non-readable /etc/zuul/zuul.conf 640
zuul.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/zuul/ansible/base/library/command.py 644 /usr/bin/python3 
zuul.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/zuul/ansible/base/library/zuul_console.py 644 /usr/bin/python3 
zuul.noarch: W: non-standard-uid /var/lib/zuul zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul/.ssh zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/.ssh zuul
zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
zuul.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul/keys zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/keys zuul
zuul.noarch: W: non-standard-uid /var/log/zuul zuul
zuul.noarch: W: non-standard-gid /var/log/zuul zuul
zuul.noarch: W: log-files-without-logrotate ['/var/log/zuul']
zuul.noarch: W: no-manual-page-for-binary zuul
zuul.noarch: W: no-manual-page-for-binary zuul-bwrap
zuul-webui.noarch: W: no-documentation
zuul-scheduler.noarch: W: spelling-error %description -l en_US gearman -> gear man, gear-man, germane
zuul-scheduler.noarch: W: no-documentation
zuul-scheduler.noarch: W: no-manual-page-for-binary zuul-scheduler
zuul-merger.noarch: W: no-documentation
zuul-merger.noarch: W: no-manual-page-for-binary zuul-merger
zuul-web.noarch: W: no-documentation
zuul-web.noarch: W: no-manual-page-for-binary zuul-web
zuul-executor.noarch: E: devel-dependency libffi-devel
zuul-executor.noarch: E: explicit-lib-dependency libffi-devel
zuul-executor.noarch: W: no-documentation
zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/executor zuul
zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/executor zuul
zuul-executor.noarch: W: no-manual-page-for-binary zuul-executor
zuul-executor.noarch: W: no-manual-page-for-binary zuul-manage-ansible
zuul-fingergw.noarch: W: no-documentation
zuul-fingergw.noarch: W: no-manual-page-for-binary zuul-fingergw
zuul-migrate.noarch: W: no-documentation
zuul-migrate.noarch: W: no-manual-page-for-binary zuul-migrate
zuul-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/zuul-doc/html/objects.inv
10 packages and 0 specfiles checked; 5 errors, 42 warnings.

Comment 13 Fabien Boucher 2020-07-15 14:51:02 UTC
Hi Robert-André, thanks for the review.

(In reply to Robert-André Mauchin 🐧 from comment #12)
>  - Remove shebangs for
> 
> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/command.py 644
> /usr/bin/python3 
> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/zuul_console.py
> 644 /usr/bin/python3 

For this one I have an upstream patch that does not pass the upstream CI https://review.opendev.org/728955/ . It seems that removing the shebang create unexpected issues ... So I need to dig more into that weird issue if that's a packaging blocker. 


>  - Add a logrotate file for your log See
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_logrotate_config_file

This is a point where a I have a doubt. The Python logging file provided by the package ensures the rotation https://fbo.fedorapeople.org/zuul/logging.conf. 
Should I remove the use of 'TimedRotatingFileHandler' and move on logrotate ?

>  - Own this dir:
> 
> [!]: Package requires other packages for directories it uses.
>      Note: No known owner of /etc/zuul
> 

This should be fixed: the "%dir %attr(0755,zuul,zuul) %{_sysconfdir}/zuul" was missing.

> 
> 
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> [ ] = Manual review needed
> 
> 
> Issues:
> =======
> - Package installs properly.
>   Note: Installation errors (see attachment)
>   See: https://docs.fedoraproject.org/en-US/packaging-guidelines/
> 
> ===== 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: "Unknown or generated", "Apache License 2.0", "*No copyright*
>      Apache License 2.0 GPL (v3.0)", "*No copyright* Apache License 2.0",
>      "Expat License", "GPL (v3 or later)". 1645 files have unknown license.
>      Detailed output of licensecheck in
>      /home/bob/packaging/review/zuul/review-zuul/licensecheck.txt
> [x]: License file installed when any subpackage combination is installed.
> [!]: Package requires other packages for directories it uses.
>      Note: No known owner of /etc/zuul
> [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.
> [x]: Package contains systemd file(s) if in need.
> [x]: Package is not known to require an ExcludeArch tag.
> [x]: Package complies to the Packaging Guidelines
> [x]: Package successfully compiles and builds into binary rpms on at least
>      one supported primary architecture.
> [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 does not own files or directories owned by other packages.
> [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]: %config files are marked noreplace or the reason is justified.
> [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]: No %config files under /usr.
> [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]: systemd_post is invoked in %post, systemd_preun in %preun, and
>      systemd_postun in %postun for Systemd service files.
>      Note: Systemd service file(s) in zuul-scheduler, zuul-merger, zuul-
>      web, zuul-executor, zuul-fingergw
> [x]: File names are valid UTF-8.
> [x]: Large documentation must go in a -doc subpackage. Large could be size
>      (~1MB) or number of files.
>      Note: Documentation size is 0 bytes in 0 files.
> [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]: Packages MUST NOT have dependencies (either build-time or runtime) on
>      packages named with the unversioned python- prefix unless no properly
>      versioned package exists. Dependencies on Python packages instead MUST
>      use names beginning with python2- or python3- as appropriate.
> [x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files
> [x]: Binary eggs must be removed in %prep
> 
> ===== SHOULD items =====
> 
> Generic:
> [-]: 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]: Fully versioned dependency in subpackages if applicable.
>      Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in zuul-
>      webui , zuul-scheduler , zuul-merger , zuul-web , zuul-executor ,
>      zuul-fingergw , zuul-migrate
> [?]: Package functions as described.
> [x]: Latest version is packaged.
> [x]: Package does not include license text files separate from upstream.
> [x]: Patches link to upstream bugs/comments/lists or are otherwise
>      justified.
> [x]: Scriptlets must be sane, if used.
> [-]: Sources are verified with gpgverify first in %prep if upstream
>      publishes signatures.
>      Note: gpgverify is not used.
> [-]: 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.
> [x]: Spec file according to URL is the same as in SRPM.
> 
> 
> Rpmlint
> -------
> Checking: zuul-3.19.0-1.fc33.noarch.rpm
>           zuul-webui-3.19.0-1.fc33.noarch.rpm
>           zuul-scheduler-3.19.0-1.fc33.noarch.rpm
>           zuul-merger-3.19.0-1.fc33.noarch.rpm
>           zuul-web-3.19.0-1.fc33.noarch.rpm
>           zuul-executor-3.19.0-1.fc33.noarch.rpm
>           zuul-fingergw-3.19.0-1.fc33.noarch.rpm
>           zuul-migrate-3.19.0-1.fc33.noarch.rpm
>           zuul-doc-3.19.0-1.fc33.noarch.rpm
>           zuul-3.19.0-1.fc33.src.rpm
> zuul.noarch: W: no-documentation
> zuul.noarch: W: non-standard-uid /etc/zuul/logging.conf zuul
> zuul.noarch: W: non-standard-gid /etc/zuul/logging.conf zuul
> zuul.noarch: W: non-standard-uid /etc/zuul/main.yaml zuul
> zuul.noarch: W: non-standard-gid /etc/zuul/main.yaml zuul
> zuul.noarch: W: non-standard-uid /etc/zuul/zuul.conf zuul
> zuul.noarch: W: non-standard-gid /etc/zuul/zuul.conf zuul
> zuul.noarch: E: non-readable /etc/zuul/zuul.conf 640
> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/command.py 644
> /usr/bin/python3 
> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/zuul_console.py
> 644 /usr/bin/python3 
> zuul.noarch: W: non-standard-uid /var/lib/zuul zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul zuul
> zuul.noarch: W: non-standard-uid /var/lib/zuul/.ssh zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul/.ssh zuul
> zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
> zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
> zuul.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
> zuul.noarch: W: non-standard-uid /var/lib/zuul/keys zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul/keys zuul
> zuul.noarch: W: non-standard-uid /var/log/zuul zuul
> zuul.noarch: W: non-standard-gid /var/log/zuul zuul
> zuul.noarch: W: log-files-without-logrotate ['/var/log/zuul']
> zuul.noarch: W: no-manual-page-for-binary zuul
> zuul.noarch: W: no-manual-page-for-binary zuul-bwrap
> zuul-webui.noarch: W: no-documentation
> zuul-scheduler.noarch: W: spelling-error %description -l en_US gearman ->
> gear man, gear-man, germane
> zuul-scheduler.noarch: W: no-documentation
> zuul-scheduler.noarch: W: no-manual-page-for-binary zuul-scheduler
> zuul-merger.noarch: W: no-documentation
> zuul-merger.noarch: W: no-manual-page-for-binary zuul-merger
> zuul-web.noarch: W: no-documentation
> zuul-web.noarch: W: no-manual-page-for-binary zuul-web
> zuul-executor.noarch: E: devel-dependency libffi-devel
> zuul-executor.noarch: E: explicit-lib-dependency libffi-devel
> zuul-executor.noarch: W: no-documentation
> zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
> zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
> zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/executor zuul
> zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/executor zuul
> zuul-executor.noarch: W: no-manual-page-for-binary zuul-executor
> zuul-executor.noarch: W: no-manual-page-for-binary zuul-manage-ansible
> zuul-fingergw.noarch: W: no-documentation
> zuul-fingergw.noarch: W: no-manual-page-for-binary zuul-fingergw
> zuul-migrate.noarch: W: no-documentation
> zuul-migrate.noarch: W: no-manual-page-for-binary zuul-migrate
> zuul-doc.noarch: W: wrong-file-end-of-line-encoding
> /usr/share/doc/zuul-doc/html/objects.inv
> 10 packages and 0 specfiles checked; 5 errors, 42 warnings.

Comment 14 Fabien Boucher 2020-07-27 09:39:37 UTC
- I've updated the spec to bump to last release 3.19.1

> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/command.py 644
> /usr/bin/python3 
> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/zuul_console.py
> 644 /usr/bin/python3 

Upstream is not keen on accepting my patch. Should I run sed in the spec to remove the shebang for those files or the rpmlintrc file exception is enough ? (https://fbo.fedorapeople.org/zuul/zuul.rpmlintrc)
https://review.opendev.org/#/c/728955/

Spec URL: https://fbo.fedorapeople.org/zuul/zuul.spec
SRPM URL: https://fbo.fedorapeople.org/zuul/zuul-3.19.1-1.fc33.src.rpm

Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=47919475

Comment 15 Miro Hrončok 2020-07-27 10:34:20 UTC
> Should I run sed in the spec to remove the shebang for those files or the rpmlintrc file exception is enough...

Honestly, it is just a comment, so I'd say go with rpmlintrc.

Comment 16 Fabien Boucher 2020-07-27 10:42:25 UTC
(In reply to Miro Hrončok from comment #15)
> > Should I run sed in the spec to remove the shebang for those files or the rpmlintrc file exception is enough...
> 
> Honestly, it is just a comment, so I'd say go with rpmlintrc.

Thanks ok.

Comment 17 Fabien Boucher 2020-07-27 10:43:30 UTC
So two runtime deps are blocking atm:

Depsolve Error occured: 
 Problem: package zuul-fingergw-3.19.1-1.fc33.noarch requires zuul = 3.19.1-1.fc33, but none of the providers can be installed
  - conflicting requests
  - nothing provides ((python3.9dist(cheroot) < 8.1 or python3.9dist(cheroot) > 8.2) with (python3.9dist(cheroot) < 8.2 or python3.9dist(cheroot) > 8.3) with (python3.9dist(cheroot) < 8.3 or python3.9dist(cheroot) > 8.3)) needed by zuul-3.19.1-1.fc33.noarch
  - nothing provides python3.9dist(kazoo) >= 2.8 needed by zuul-3.19.1-1.fc33.noarch

I've proposed PR on both packages (python-cheroot, python-kazoo).

Comment 18 Fabien Boucher 2020-08-05 16:35:18 UTC
Both blokers have been resolved.
Here is a scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=48746884

In the distgit I provide a functional test that fully setup Zuul then configure a periodic job and verify that the Zuul job succeed.
Here is the result of the rpm-test job: https://fedora.softwarefactory-project.io/zuul/build/57e465a6a5ad40b696d80390c9e76336

Please let me know if you see any other blockers ? And if something is preventing that package to land in Fedora ?

Comment 19 Miro Hrončok 2020-08-05 16:47:21 UTC
A proper review after the recent changes. I can have a look, but I'm done for today, so not assigning myself in case somebody beats me to it.

Comment 20 Miro Hrončok 2020-08-11 08:51:07 UTC
This package seem to bundle ansible:

$ rpm -ql *.noarch.rpm | grep ansible
/usr/share/doc/zuul-doc/html/_sources/reference/developer/ansible.rst.txt
/usr/share/doc/zuul-doc/html/reference/developer/ansible.html
/usr/bin/zuul-manage-ansible
/var/lib/zuul/ansible
/usr/lib/python3.9/site-packages/zuul/ansible
/usr/lib/python3.9/site-packages/zuul/ansible/2.7
/usr/lib/python3.9/site-packages/zuul/ansible/2.7/__pycache__
/usr/lib/python3.9/site-packages/zuul/ansible/2.7/__pycache__/logconfig.cpython-39.opt-1.pyc
...
/usr/lib/python3.9/site-packages/zuul/ansible/2.7/lookup/url.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.7/paths.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.8
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/__pycache__
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/__pycache__/logconfig.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/__pycache__/logconfig.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/__pycache__/paths.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/__pycache__/paths.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/action
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/action/__init__.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/action/__pycache__
...
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/lookup/template.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/lookup/url.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.8/paths.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.9
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/__pycache__
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/__pycache__/logconfig.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/__pycache__/logconfig.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/__pycache__/paths.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/__pycache__/paths.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/action
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/action/__init__.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/action/__pycache__
...
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/lookup/shelvefile.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/lookup/template.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/lookup/url.py
/usr/lib/python3.9/site-packages/zuul/ansible/2.9/paths.py
/usr/lib/python3.9/site-packages/zuul/ansible/__init__.py
/usr/lib/python3.9/site-packages/zuul/ansible/__pycache__
/usr/lib/python3.9/site-packages/zuul/ansible/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/__pycache__/logconfig.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/__pycache__/logconfig.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/__pycache__/paths.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/__pycache__/paths.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/base
/usr/lib/python3.9/site-packages/zuul/ansible/base/__init__.py
/usr/lib/python3.9/site-packages/zuul/ansible/base/__pycache__
/usr/lib/python3.9/site-packages/zuul/ansible/base/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/base/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/ansible/base/action
...
/usr/lib/python3.9/site-packages/zuul/ansible/base/lookup/shelvefile.py
/usr/lib/python3.9/site-packages/zuul/ansible/base/lookup/template.py
/usr/lib/python3.9/site-packages/zuul/ansible/base/lookup/url.py
/usr/lib/python3.9/site-packages/zuul/ansible/logconfig.py
/usr/lib/python3.9/site-packages/zuul/ansible/paths.py
/usr/lib/python3.9/site-packages/zuul/cmd/__pycache__/manage_ansible.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/cmd/__pycache__/manage_ansible.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/cmd/manage_ansible.py
/usr/lib/python3.9/site-packages/zuul/lib/__pycache__/ansible.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/lib/__pycache__/ansible.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/lib/ansible-config.conf
/usr/lib/python3.9/site-packages/zuul/lib/ansible.py
/usr/lib/python3.9/site-packages/zuul/sphinx/__pycache__/ansible.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/zuul/sphinx/__pycache__/ansible.cpython-39.pyc
/usr/lib/python3.9/site-packages/zuul/sphinx/ansible.py
/var/lib/zuul/ansible



Is this intentional? if so, the license of the package is incorrect (ansible is GPL v3 or later) and the bundled() provides are missing.

Comment 21 Fabien Boucher 2020-08-12 09:03:37 UTC
Some Ansible modules have been modified to fit some security requirements of Zuul. So yes this is intentional and part of the upstream Zuul project.

Should I set ?:

# The entire source code is ASL 2.0 except files under /usr/lib/pythonX.X/site-packages/zuul/ansible which is GPLv3
License: ASL 2.0 And GPLv3

The provided Ansible files are modified by the Zuul maintainers. Thus I'm wondering if it makes sense to include this information according to the explanation here: https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:Bundled_Libraries#Requirement_if_you_bundle
"This allows us to search for packages that may be affected by bugs or security issues in older versions of the library"

Provides: bundled(ansible) = 2.7
Provides: bundled(ansible) = 2.8
Provides: bundled(ansible) = 2.9

Let me know.

Thanks again for the help !

Comment 22 Miro Hrončok 2020-08-12 09:40:43 UTC
Yes please!


The Fedora's ansible package is licensed as GPLv3+ and licensecheck suggest the same, so the correct tag is (NB the lower case "and" and the plus at the end):

# The entire source code is ASL 2.0 except files under %%{python3_sitelib}/zuul/ansible which is GPLv3+
License: ASL 2.0 and GPLv3+


Adding the bundled provides makes sense for the security response team. You might get some ansible CVEs open for zuul and would need to check the impact on zuul.

Comment 23 Fabien Boucher 2020-08-12 14:55:47 UTC
Spec: https://fbo.fedorapeople.org/zuul/zuul.spec
SRPM: https://fbo.fedorapeople.org/zuul/zuul-3.19.1-1.fc34.src.rpm

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

I wasn't able to provide multiple Provides: bundled(ansible) = <version>. I guess this related to your explanation here https://github.com/rpm-software-management/rpmlint/issues/427

So I've updated the spec, the functional tests passed https://src.fedoraproject.org/rpms/zuul/pull-request/2#comment-53457

Comment 24 Miro Hrončok 2020-08-12 15:10:40 UTC
> I wasn't able to provide multiple Provides: bundled(ansible) = <version>.

Wasn't able? rpmlint will bother you, but is should work:


Provides:       ansible = 1
Provides:       ansible = 2
Provides:       ansible = 3

$ rpm -qp --provides ../RPMS/noarch/reproducer-doubleprovide-0-0.noarch.rpm
ansible = 1
ansible = 2
ansible = 3
reproducer-doubleprovide = 0-0

Comment 25 Miro Hrončok 2020-08-12 15:19:39 UTC
Other than that:

Package Review
==============

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


Issues:

1) Some of the packages put files into /usr/lib/systemd/system but they don't
   co-own the directories nor do they require systemd. You need to do one of the things.

2) zuul.noarch: W: no-documentation
   Consider adding %doc README.rst to the main package.



===== 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: "Unknown or generated", "Apache License 2.0", "*No copyright*
     Apache License 2.0 GPL (v3.0)", "*No copyright* Apache License 2.0",
     "Expat License", "GPL (v3 or later)". 1651 files have unknown license.
[x]: License file installed when any subpackage combination is installed.
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/systemd,
     /usr/lib/systemd/system
[-]: Package contains no bundled libraries without FPC exception.
     It bundles ansibles, but there is marked.
[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.
[x]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[?]: 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]: 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]: %config files are marked noreplace or the reason is justified.
[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 must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[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]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[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]: Packages MUST NOT have dependencies (either build-time or runtime) on
     packages named with the unversioned python- prefix unless no properly
     versioned package exists. Dependencies on Python packages instead MUST
     use names beginning with python2- or python3- as appropriate.
[x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files
[x]: Binary eggs must be removed in %prep

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

Generic:
[-]: 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]: Fully versioned dependency in subpackages if applicable.
[?]: Package functions as described.
[?]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
     (The justification is within the patches.)
[x]: Scriptlets must be sane, if used.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[?]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[?]: 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: zuul-3.19.1-1.fc33.noarch.rpm
          zuul-webui-3.19.1-1.fc33.noarch.rpm
          zuul-scheduler-3.19.1-1.fc33.noarch.rpm
          zuul-merger-3.19.1-1.fc33.noarch.rpm
          zuul-web-3.19.1-1.fc33.noarch.rpm
          zuul-executor-3.19.1-1.fc33.noarch.rpm
          zuul-fingergw-3.19.1-1.fc33.noarch.rpm
          zuul-migrate-3.19.1-1.fc33.noarch.rpm
          zuul-doc-3.19.1-1.fc33.noarch.rpm
          zuul-3.19.1-1.fc33.src.rpm
zuul.noarch: W: no-documentation
zuul.noarch: W: non-standard-uid /etc/zuul zuul
zuul.noarch: W: non-standard-gid /etc/zuul zuul
zuul.noarch: W: non-standard-uid /etc/zuul/logging.conf zuul
zuul.noarch: W: non-standard-gid /etc/zuul/logging.conf zuul
zuul.noarch: W: non-standard-uid /etc/zuul/main.yaml zuul
zuul.noarch: W: non-standard-gid /etc/zuul/main.yaml zuul
zuul.noarch: W: non-standard-uid /etc/zuul/zuul.conf zuul
zuul.noarch: W: non-standard-gid /etc/zuul/zuul.conf zuul
zuul.noarch: E: non-readable /etc/zuul/zuul.conf 640
zuul.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/zuul/ansible/base/library/command.py 644 /usr/bin/python3 
zuul.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/zuul/ansible/base/library/zuul_console.py 644 /usr/bin/python3 
zuul.noarch: W: non-standard-uid /var/lib/zuul zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul/.ssh zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/.ssh zuul
zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
zuul.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul/keys zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/keys zuul
zuul.noarch: W: non-standard-uid /var/log/zuul zuul
zuul.noarch: W: non-standard-gid /var/log/zuul zuul
zuul.noarch: W: log-files-without-logrotate ['/var/log/zuul']
zuul.noarch: W: no-manual-page-for-binary zuul
zuul.noarch: W: no-manual-page-for-binary zuul-bwrap
zuul-webui.noarch: W: no-documentation
zuul-scheduler.noarch: W: spelling-error %description -l en_US gearman -> gear man, gear-man, germane
zuul-scheduler.noarch: W: no-documentation
zuul-scheduler.noarch: W: no-manual-page-for-binary zuul-scheduler
zuul-merger.noarch: W: no-documentation
zuul-merger.noarch: W: no-manual-page-for-binary zuul-merger
zuul-web.noarch: W: no-documentation
zuul-web.noarch: W: no-manual-page-for-binary zuul-web
zuul-executor.noarch: E: devel-dependency libffi-devel
zuul-executor.noarch: E: explicit-lib-dependency libffi-devel
zuul-executor.noarch: W: no-documentation
zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/executor zuul
zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/executor zuul
zuul-executor.noarch: W: no-manual-page-for-binary zuul-executor
zuul-executor.noarch: W: no-manual-page-for-binary zuul-manage-ansible
zuul-fingergw.noarch: W: no-documentation
zuul-fingergw.noarch: W: no-manual-page-for-binary zuul-fingergw
zuul-migrate.noarch: W: no-documentation
zuul-migrate.noarch: W: no-manual-page-for-binary zuul-migrate
zuul-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/zuul-doc/html/objects.inv
10 packages and 0 specfiles checked; 5 errors, 44 warnings.




Rpmlint (installed packages)
----------------------------
zuul-webui.noarch: W: no-documentation
zuul-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/zuul-doc/html/objects.inv
zuul.noarch: W: no-documentation
zuul.noarch: W: non-standard-uid /etc/zuul zuul
zuul.noarch: W: non-standard-gid /etc/zuul zuul
zuul.noarch: W: non-standard-uid /etc/zuul/logging.conf zuul
zuul.noarch: W: non-standard-gid /etc/zuul/logging.conf zuul
zuul.noarch: W: non-standard-uid /etc/zuul/main.yaml zuul
zuul.noarch: W: non-standard-gid /etc/zuul/main.yaml zuul
zuul.noarch: W: non-standard-uid /etc/zuul/zuul.conf zuul
zuul.noarch: W: non-standard-gid /etc/zuul/zuul.conf zuul
zuul.noarch: E: non-readable /etc/zuul/zuul.conf 640
zuul.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/zuul/ansible/base/library/command.py 644 /usr/bin/python3 
zuul.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/zuul/ansible/base/library/zuul_console.py 644 /usr/bin/python3 
zuul.noarch: W: non-standard-uid /var/lib/zuul zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul/.ssh zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/.ssh zuul
zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
zuul.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
zuul.noarch: W: non-standard-uid /var/lib/zuul/keys zuul
zuul.noarch: W: non-standard-gid /var/lib/zuul/keys zuul
zuul.noarch: W: non-standard-uid /var/log/zuul zuul
zuul.noarch: W: non-standard-gid /var/log/zuul zuul
zuul.noarch: W: log-files-without-logrotate ['/var/log/zuul']
zuul.noarch: W: no-manual-page-for-binary zuul
zuul.noarch: W: no-manual-page-for-binary zuul-bwrap
zuul-executor.noarch: E: devel-dependency libffi-devel
zuul-executor.noarch: E: explicit-lib-dependency libffi-devel
zuul-executor.noarch: W: no-documentation
zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/executor zuul
zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/executor zuul
zuul-executor.noarch: W: no-manual-page-for-binary zuul-executor
zuul-executor.noarch: W: no-manual-page-for-binary zuul-manage-ansible
zuul-web.noarch: W: no-documentation
zuul-web.noarch: W: no-manual-page-for-binary zuul-web
zuul-fingergw.noarch: W: no-documentation
zuul-fingergw.noarch: W: no-manual-page-for-binary zuul-fingergw
zuul-scheduler.noarch: W: spelling-error %description -l en_US gearman -> gear man, gear-man, germane
zuul-scheduler.noarch: W: no-documentation
zuul-scheduler.noarch: W: no-manual-page-for-binary zuul-scheduler
zuul-merger.noarch: W: no-documentation
zuul-merger.noarch: W: no-manual-page-for-binary zuul-merger
zuul-migrate.noarch: W: no-documentation
zuul-migrate.noarch: W: no-manual-page-for-binary zuul-migrate
9 packages and 0 specfiles checked; 5 errors, 44 warnings.



Source checksums
----------------
https://files.pythonhosted.org/packages/source/z/zuul/zuul-3.19.1.tar.gz :
  CHECKSUM(SHA256) this package     : 94bbf2c16a38fc2eb851eae1aea0bed0fdb94496f1133ef159ff14f256718c2d
  CHECKSUM(SHA256) upstream package : 94bbf2c16a38fc2eb851eae1aea0bed0fdb94496f1133ef159ff14f256718c2d


Requires
--------
zuul (rpmlib, GLIBC filtered):
    ((python3.9dist(cheroot) < 8.1 or python3.9dist(cheroot) > 8.2) with (python3.9dist(cheroot) < 8.2 or python3.9dist(cheroot) > 8.3) with (python3.9dist(cheroot) < 8.3 or python3.9dist(cheroot) > 8.3))
    ((python3.9dist(gear) < 0.15 or python3.9dist(gear) > 0.15) with python3.9dist(gear) < 1 with python3.9dist(gear) >= 0.13)
    ((python3.9dist(urllib3) < 1.25.4 or python3.9dist(urllib3) > 1.25.4) with (python3.9dist(urllib3) < 1.25.5 or python3.9dist(urllib3) > 1.25.5))
    ((python3.9dist(virtualenv) < 20 or python3.9dist(virtualenv) > 20) with (python3.9dist(virtualenv) < 20.0.1 or python3.9dist(virtualenv) > 20.0.1) with python3.9dist(virtualenv) > 20)
    (python3.9dist(prettytable) < 0.8 with python3.9dist(prettytable) >= 0.6)
    /bin/sh
    /usr/bin/python3
    config(zuul)
    python(abi)
    python3.9dist(alembic)
    python3.9dist(apscheduler)
    python3.9dist(babel)
    python3.9dist(cachecontrol)
    python3.9dist(cachetools)
    python3.9dist(cherrypy)
    python3.9dist(cryptography)
    python3.9dist(extras)
    python3.9dist(fb-re2)
    python3.9dist(github3-py)
    python3.9dist(gitpython)
    python3.9dist(iso8601)
    python3.9dist(jsonpath-rw)
    python3.9dist(kazoo)
    python3.9dist(netaddr)
    python3.9dist(paho-mqtt)
    python3.9dist(paramiko)
    python3.9dist(pathspec)
    python3.9dist(pbr)
    python3.9dist(psutil)
    python3.9dist(pyjwt)
    python3.9dist(python-daemon)
    python3.9dist(python-dateutil)
    python3.9dist(pyyaml)
    python3.9dist(routes)
    python3.9dist(setuptools)
    python3.9dist(sqlalchemy)
    python3.9dist(statsd)
    python3.9dist(voluptuous)
    python3.9dist(ws4py)

zuul-webui (rpmlib, GLIBC filtered):

zuul-scheduler (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/python3
    zuul

zuul-merger (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/python3
    zuul

zuul-web (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/python3
    nodejs
    zuul

zuul-executor (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/python3
    bubblewrap
    gcc
    git-core
    libffi-devel
    python3-devel
    zuul

zuul-fingergw (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/python3
    zuul

zuul-migrate (rpmlib, GLIBC filtered):
    /usr/bin/python3
    bubblewrap
    zuul

zuul-doc (rpmlib, GLIBC filtered):



Provides
--------
zuul:
    config(zuul)
    python3.9dist(zuul)
    python3dist(zuul)
    zuul

zuul-webui:
    zuul-webui

zuul-scheduler:
    zuul-scheduler

zuul-merger:
    zuul-merger

zuul-web:
    zuul-web

zuul-executor:
    zuul-executor

zuul-fingergw:
    zuul-fingergw

zuul-migrate:
    zuul-migrate

zuul-doc:
    zuul-doc



Generated by fedora-review 0.7.0 (fed5495) last change: 2019-03-17
Command line :try-fedora-review -b 1838027 -m fedora-rawhide-x86_64 --mock-options=--enablerepo=local
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, Python
Disabled plugins: PHP, Ocaml, fonts, C/C++, SugarActivity, Perl, Ruby, Java, Haskell, R
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 26 Fabien Boucher 2020-08-12 16:09:20 UTC
(In reply to Miro Hrončok from comment #24)
> > I wasn't able to provide multiple Provides: bundled(ansible) = <version>.
> 
> Wasn't able? rpmlint will bother you, but is should work:
> 
> 
> Provides:       ansible = 1
> Provides:       ansible = 2
> Provides:       ansible = 3
> 
> $ rpm -qp --provides ../RPMS/noarch/reproducer-doubleprovide-0-0.noarch.rpm
> ansible = 1
> ansible = 2
> ansible = 3
> reproducer-doubleprovide = 0-0

Yes it was just a rpmlint error. So in the new spec version:
Provides:       bundled(ansible) = 2.9
Provides:       bundled(ansible) = 2.8
Provides:       bundled(ansible) = 2.7
and I skip the error in the zuu.rpmlintrc https://fbo.fedorapeople.org/zuul/zuul.rpmlintrc

Comment 27 Fabien Boucher 2020-08-12 16:10:05 UTC
(In reply to Miro Hrončok from comment #25)
> Other than that:
> 
> Package Review
> ==============
> 
> Legend:
> [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
> 
> 
> Issues:
> 
> 1) Some of the packages put files into /usr/lib/systemd/system but they don't
>    co-own the directories nor do they require systemd. You need to do one of
> the things.

Done. Added systemd as Require for required subpackages.

> 2) zuul.noarch: W: no-documentation
>    Consider adding %doc README.rst to the main package.
> 

Done

> 
> ===== 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: "Unknown or generated", "Apache License 2.0", "*No copyright*
>      Apache License 2.0 GPL (v3.0)", "*No copyright* Apache License 2.0",
>      "Expat License", "GPL (v3 or later)". 1651 files have unknown license.
> [x]: License file installed when any subpackage combination is installed.
> [!]: Package must own all directories that it creates.
>      Note: Directories without known owners: /usr/lib/systemd,
>      /usr/lib/systemd/system
> [-]: Package contains no bundled libraries without FPC exception.
>      It bundles ansibles, but there is marked.
> [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.
> [x]: Package contains systemd file(s) if in need.
> [x]: Package is not known to require an ExcludeArch tag.
> [?]: 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]: 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]: %config files are marked noreplace or the reason is justified.
> [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 must not depend on deprecated() packages.
> [x]: Package use %makeinstall only when make install DESTDIR=... doesn't
>      work.
> [x]: Package is named using only allowed ASCII characters.
> [x]: No %config files under /usr.
> [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]: Large documentation must go in a -doc subpackage. Large could be size
>      (~1MB) or number of files.
>      Note: Documentation size is 0 bytes in 0 files.
> [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]: Packages MUST NOT have dependencies (either build-time or runtime) on
>      packages named with the unversioned python- prefix unless no properly
>      versioned package exists. Dependencies on Python packages instead MUST
>      use names beginning with python2- or python3- as appropriate.
> [x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files
> [x]: Binary eggs must be removed in %prep
> 
> ===== SHOULD items =====
> 
> Generic:
> [-]: 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]: Fully versioned dependency in subpackages if applicable.
> [?]: Package functions as described.
> [?]: Latest version is packaged.
> [x]: Package does not include license text files separate from upstream.
> [x]: Patches link to upstream bugs/comments/lists or are otherwise
>      justified.
>      (The justification is within the patches.)
> [x]: Scriptlets must be sane, if used.
> [-]: Sources are verified with gpgverify first in %prep if upstream
>      publishes signatures.
> [-]: Description and summary sections in the package spec file contains
>      translations for supported Non-English languages, if available.
> [?]: Package should compile and build into binary rpms on all supported
>      architectures.
> [x]: %check is present and all tests pass.
> [?]: 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: zuul-3.19.1-1.fc33.noarch.rpm
>           zuul-webui-3.19.1-1.fc33.noarch.rpm
>           zuul-scheduler-3.19.1-1.fc33.noarch.rpm
>           zuul-merger-3.19.1-1.fc33.noarch.rpm
>           zuul-web-3.19.1-1.fc33.noarch.rpm
>           zuul-executor-3.19.1-1.fc33.noarch.rpm
>           zuul-fingergw-3.19.1-1.fc33.noarch.rpm
>           zuul-migrate-3.19.1-1.fc33.noarch.rpm
>           zuul-doc-3.19.1-1.fc33.noarch.rpm
>           zuul-3.19.1-1.fc33.src.rpm
> zuul.noarch: W: no-documentation
> zuul.noarch: W: non-standard-uid /etc/zuul zuul
> zuul.noarch: W: non-standard-gid /etc/zuul zuul
> zuul.noarch: W: non-standard-uid /etc/zuul/logging.conf zuul
> zuul.noarch: W: non-standard-gid /etc/zuul/logging.conf zuul
> zuul.noarch: W: non-standard-uid /etc/zuul/main.yaml zuul
> zuul.noarch: W: non-standard-gid /etc/zuul/main.yaml zuul
> zuul.noarch: W: non-standard-uid /etc/zuul/zuul.conf zuul
> zuul.noarch: W: non-standard-gid /etc/zuul/zuul.conf zuul
> zuul.noarch: E: non-readable /etc/zuul/zuul.conf 640
> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/command.py 644
> /usr/bin/python3 
> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/zuul_console.py
> 644 /usr/bin/python3 
> zuul.noarch: W: non-standard-uid /var/lib/zuul zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul zuul
> zuul.noarch: W: non-standard-uid /var/lib/zuul/.ssh zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul/.ssh zuul
> zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
> zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
> zuul.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
> zuul.noarch: W: non-standard-uid /var/lib/zuul/keys zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul/keys zuul
> zuul.noarch: W: non-standard-uid /var/log/zuul zuul
> zuul.noarch: W: non-standard-gid /var/log/zuul zuul
> zuul.noarch: W: log-files-without-logrotate ['/var/log/zuul']
> zuul.noarch: W: no-manual-page-for-binary zuul
> zuul.noarch: W: no-manual-page-for-binary zuul-bwrap
> zuul-webui.noarch: W: no-documentation
> zuul-scheduler.noarch: W: spelling-error %description -l en_US gearman ->
> gear man, gear-man, germane
> zuul-scheduler.noarch: W: no-documentation
> zuul-scheduler.noarch: W: no-manual-page-for-binary zuul-scheduler
> zuul-merger.noarch: W: no-documentation
> zuul-merger.noarch: W: no-manual-page-for-binary zuul-merger
> zuul-web.noarch: W: no-documentation
> zuul-web.noarch: W: no-manual-page-for-binary zuul-web
> zuul-executor.noarch: E: devel-dependency libffi-devel
> zuul-executor.noarch: E: explicit-lib-dependency libffi-devel
> zuul-executor.noarch: W: no-documentation
> zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
> zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
> zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/executor zuul
> zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/executor zuul
> zuul-executor.noarch: W: no-manual-page-for-binary zuul-executor
> zuul-executor.noarch: W: no-manual-page-for-binary zuul-manage-ansible
> zuul-fingergw.noarch: W: no-documentation
> zuul-fingergw.noarch: W: no-manual-page-for-binary zuul-fingergw
> zuul-migrate.noarch: W: no-documentation
> zuul-migrate.noarch: W: no-manual-page-for-binary zuul-migrate
> zuul-doc.noarch: W: wrong-file-end-of-line-encoding
> /usr/share/doc/zuul-doc/html/objects.inv
> 10 packages and 0 specfiles checked; 5 errors, 44 warnings.
> 
> 
> 
> 
> Rpmlint (installed packages)
> ----------------------------
> zuul-webui.noarch: W: no-documentation
> zuul-doc.noarch: W: wrong-file-end-of-line-encoding
> /usr/share/doc/zuul-doc/html/objects.inv
> zuul.noarch: W: no-documentation
> zuul.noarch: W: non-standard-uid /etc/zuul zuul
> zuul.noarch: W: non-standard-gid /etc/zuul zuul
> zuul.noarch: W: non-standard-uid /etc/zuul/logging.conf zuul
> zuul.noarch: W: non-standard-gid /etc/zuul/logging.conf zuul
> zuul.noarch: W: non-standard-uid /etc/zuul/main.yaml zuul
> zuul.noarch: W: non-standard-gid /etc/zuul/main.yaml zuul
> zuul.noarch: W: non-standard-uid /etc/zuul/zuul.conf zuul
> zuul.noarch: W: non-standard-gid /etc/zuul/zuul.conf zuul
> zuul.noarch: E: non-readable /etc/zuul/zuul.conf 640
> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/command.py 644
> /usr/bin/python3 
> zuul.noarch: E: non-executable-script
> /usr/lib/python3.9/site-packages/zuul/ansible/base/library/zuul_console.py
> 644 /usr/bin/python3 
> zuul.noarch: W: non-standard-uid /var/lib/zuul zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul zuul
> zuul.noarch: W: non-standard-uid /var/lib/zuul/.ssh zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul/.ssh zuul
> zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
> zuul.noarch: W: hidden-file-or-dir /var/lib/zuul/.ssh
> zuul.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
> zuul.noarch: W: non-standard-uid /var/lib/zuul/keys zuul
> zuul.noarch: W: non-standard-gid /var/lib/zuul/keys zuul
> zuul.noarch: W: non-standard-uid /var/log/zuul zuul
> zuul.noarch: W: non-standard-gid /var/log/zuul zuul
> zuul.noarch: W: log-files-without-logrotate ['/var/log/zuul']
> zuul.noarch: W: no-manual-page-for-binary zuul
> zuul.noarch: W: no-manual-page-for-binary zuul-bwrap
> zuul-executor.noarch: E: devel-dependency libffi-devel
> zuul-executor.noarch: E: explicit-lib-dependency libffi-devel
> zuul-executor.noarch: W: no-documentation
> zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/ansible zuul
> zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/ansible zuul
> zuul-executor.noarch: W: non-standard-uid /var/lib/zuul/executor zuul
> zuul-executor.noarch: W: non-standard-gid /var/lib/zuul/executor zuul
> zuul-executor.noarch: W: no-manual-page-for-binary zuul-executor
> zuul-executor.noarch: W: no-manual-page-for-binary zuul-manage-ansible
> zuul-web.noarch: W: no-documentation
> zuul-web.noarch: W: no-manual-page-for-binary zuul-web
> zuul-fingergw.noarch: W: no-documentation
> zuul-fingergw.noarch: W: no-manual-page-for-binary zuul-fingergw
> zuul-scheduler.noarch: W: spelling-error %description -l en_US gearman ->
> gear man, gear-man, germane
> zuul-scheduler.noarch: W: no-documentation
> zuul-scheduler.noarch: W: no-manual-page-for-binary zuul-scheduler
> zuul-merger.noarch: W: no-documentation
> zuul-merger.noarch: W: no-manual-page-for-binary zuul-merger
> zuul-migrate.noarch: W: no-documentation
> zuul-migrate.noarch: W: no-manual-page-for-binary zuul-migrate
> 9 packages and 0 specfiles checked; 5 errors, 44 warnings.
> 
> 
> 
> Source checksums
> ----------------
> https://files.pythonhosted.org/packages/source/z/zuul/zuul-3.19.1.tar.gz :
>   CHECKSUM(SHA256) this package     :
> 94bbf2c16a38fc2eb851eae1aea0bed0fdb94496f1133ef159ff14f256718c2d
>   CHECKSUM(SHA256) upstream package :
> 94bbf2c16a38fc2eb851eae1aea0bed0fdb94496f1133ef159ff14f256718c2d
> 
> 
> Requires
> --------
> zuul (rpmlib, GLIBC filtered):
>     ((python3.9dist(cheroot) < 8.1 or python3.9dist(cheroot) > 8.2) with
> (python3.9dist(cheroot) < 8.2 or python3.9dist(cheroot) > 8.3) with
> (python3.9dist(cheroot) < 8.3 or python3.9dist(cheroot) > 8.3))
>     ((python3.9dist(gear) < 0.15 or python3.9dist(gear) > 0.15) with
> python3.9dist(gear) < 1 with python3.9dist(gear) >= 0.13)
>     ((python3.9dist(urllib3) < 1.25.4 or python3.9dist(urllib3) > 1.25.4)
> with (python3.9dist(urllib3) < 1.25.5 or python3.9dist(urllib3) > 1.25.5))
>     ((python3.9dist(virtualenv) < 20 or python3.9dist(virtualenv) > 20) with
> (python3.9dist(virtualenv) < 20.0.1 or python3.9dist(virtualenv) > 20.0.1)
> with python3.9dist(virtualenv) > 20)
>     (python3.9dist(prettytable) < 0.8 with python3.9dist(prettytable) >= 0.6)
>     /bin/sh
>     /usr/bin/python3
>     config(zuul)
>     python(abi)
>     python3.9dist(alembic)
>     python3.9dist(apscheduler)
>     python3.9dist(babel)
>     python3.9dist(cachecontrol)
>     python3.9dist(cachetools)
>     python3.9dist(cherrypy)
>     python3.9dist(cryptography)
>     python3.9dist(extras)
>     python3.9dist(fb-re2)
>     python3.9dist(github3-py)
>     python3.9dist(gitpython)
>     python3.9dist(iso8601)
>     python3.9dist(jsonpath-rw)
>     python3.9dist(kazoo)
>     python3.9dist(netaddr)
>     python3.9dist(paho-mqtt)
>     python3.9dist(paramiko)
>     python3.9dist(pathspec)
>     python3.9dist(pbr)
>     python3.9dist(psutil)
>     python3.9dist(pyjwt)
>     python3.9dist(python-daemon)
>     python3.9dist(python-dateutil)
>     python3.9dist(pyyaml)
>     python3.9dist(routes)
>     python3.9dist(setuptools)
>     python3.9dist(sqlalchemy)
>     python3.9dist(statsd)
>     python3.9dist(voluptuous)
>     python3.9dist(ws4py)
> 
> zuul-webui (rpmlib, GLIBC filtered):
> 
> zuul-scheduler (rpmlib, GLIBC filtered):
>     /bin/sh
>     /usr/bin/python3
>     zuul
> 
> zuul-merger (rpmlib, GLIBC filtered):
>     /bin/sh
>     /usr/bin/python3
>     zuul
> 
> zuul-web (rpmlib, GLIBC filtered):
>     /bin/sh
>     /usr/bin/python3
>     nodejs
>     zuul
> 
> zuul-executor (rpmlib, GLIBC filtered):
>     /bin/sh
>     /usr/bin/python3
>     bubblewrap
>     gcc
>     git-core
>     libffi-devel
>     python3-devel
>     zuul
> 
> zuul-fingergw (rpmlib, GLIBC filtered):
>     /bin/sh
>     /usr/bin/python3
>     zuul
> 
> zuul-migrate (rpmlib, GLIBC filtered):
>     /usr/bin/python3
>     bubblewrap
>     zuul
> 
> zuul-doc (rpmlib, GLIBC filtered):
> 
> 
> 
> Provides
> --------
> zuul:
>     config(zuul)
>     python3.9dist(zuul)
>     python3dist(zuul)
>     zuul
> 
> zuul-webui:
>     zuul-webui
> 
> zuul-scheduler:
>     zuul-scheduler
> 
> zuul-merger:
>     zuul-merger
> 
> zuul-web:
>     zuul-web
> 
> zuul-executor:
>     zuul-executor
> 
> zuul-fingergw:
>     zuul-fingergw
> 
> zuul-migrate:
>     zuul-migrate
> 
> zuul-doc:
>     zuul-doc
> 
> 
> 
> Generated by fedora-review 0.7.0 (fed5495) last change: 2019-03-17
> Command line :try-fedora-review -b 1838027 -m fedora-rawhide-x86_64
> --mock-options=--enablerepo=local
> Buildroot used: fedora-rawhide-x86_64
> Active plugins: Generic, Shell-api, Python
> Disabled plugins: PHP, Ocaml, fonts, C/C++, SugarActivity, Perl, Ruby, Java,
> Haskell, R
> Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 28 Miro Hrončok 2020-08-12 16:20:48 UTC
APPROVED


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