Bug 1893901 - Review Request: ansible-base - A radically simple IT automation system
Summary: Review Request: ansible-base - A radically simple IT automation system
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Robert-André Mauchin 🐧
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-11-02 22:26 UTC by Kevin Fenzi
Modified: 2021-10-22 14:07 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2021-10-22 14:07:57 UTC
Type: ---
Embargoed:
eclipseo: fedora-review+


Attachments (Terms of Use)

Description Kevin Fenzi 2020-11-02 22:26:20 UTC
Spec URL: https://www.scrye.com/~kevin/fedora/ansible-base-review/ansible-base.spec
SRPM URL: https://www.scrye.com/~kevin/fedora/ansible-base-review/ansible-base-2.10.2-1.fc34.src.rpm
Description: 
Ansible is a radically simple model-driven configuration management,
multi-node deployment, and remote task execution system. Ansible works
over SSH and does not require any software or daemons to be installed
on remote nodes. Extension modules can be written in any language and
are transferred to managed machines automatically.

This is the base part of ansible (the engine).

Fedora Account System Username: kevin

See: https://www.scrye.com/wordpress/nirik/2020/11/02/ansible-2-10-x-and-fedora-epel/ for background on the ansible-2.10 changes and why this is a new package.

Right now, we don't build the full web docs (the rst docs for ansible-doc are included), as those need a number of new packages + a new release of python-pydandic to land in rawhide (it has a python 3.9 bug that breaks things). I will be submitting those as time permits soon and once everything is in will enable docs building in rawhide at least. 

rpmlint says: 

3  packages and 0 specfiles checked; 84 errors, 18 warnings.
ansible-base.src: W: strange-permission ansible-generator 755

all the other generators are that I think... 

ansible-base.noarch: W: no-manual-page-for-binary ansible-test
ansible-base.noarch: W: no-manual-page-for-binary ansible-connection

No man pages for those, but they aren't much used. 

These are harmless I think: 

ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/.travis.yml
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/templates/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/files/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/.travis.yml
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/templates/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/files/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/roles/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/docs/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/.travis.yml
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/templates/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/files/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/.travis.yml
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/templates/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/files/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible_test/_data/coveragerc
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible_test/_data/ansible.cfg
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/templates/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/files/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/templates/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/files/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/roles/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/docs/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/templates/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/files/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/templates/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/files/.git_keep

These are all needed because ansible needs to know what to use to run the module on targets: 

ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible_test/_data/setup/remote.sh 644 /bin/sh 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible_test/_data/setup/docker.sh 644 /bin/sh 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible_test/_data/sanity/yamllint/yamllinter.py 644 /usr/bin/python3 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible_test/_data/injector/virtualenv.sh 644 /usr/bin/env bash
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible_test/_data/injector/virtualenv-isolated.sh 644 /usr/bin/env bash
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/yum_repository.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/yum.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/wait_for.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/wait_for_connection.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/user.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/uri.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/unarchive.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/template.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/tempfile.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/sysvinit.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/systemd.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/subversion.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/stat.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/slurp.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/shell.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/setup.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/set_stats.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/set_fact.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/service.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/service_facts.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/rpm_key.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/replace.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/reboot.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/pip.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/ping.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/pause.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/package.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/package_facts.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/meta.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/lineinfile.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/known_hosts.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/iptables.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/include_vars.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/include_tasks.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/include_role.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/include.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/import_tasks.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/import_role.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/import_playbook.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/hostname.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/group.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/git.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/get_url.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/getent.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/gather_facts.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/find.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/file.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/fetch.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/fail.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/expect.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/dpkg_selections.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/dnf.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/debug.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/debconf.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/cron.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/copy.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/command.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/blockinfile.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/async_wrapper.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/async_status.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/assert.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/assemble.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/apt_repository.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/apt.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/modules/apt_key.py 644 /usr/bin/python 
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/cli/scripts/ansible_connection_cli_stub.py 644 /usr/bin/env python
ansible-base.noarch: E: non-executable-script /usr/lib/python3.9/site-packages/ansible/cli/scripts/ansible_cli_stub.py 644 /usr/bin/env python
ansible-base-doc.noarch: W: hidden-file-or-dir /usr/share/doc/ansible-base-doc/rst/reference_appendices/.rstcheck.cfg

Comment 2 farrotin 2020-11-05 17:31:05 UTC
@Kevin : I'm still myself confused with ansible vs ansible-base : when I read latest "Bullhorn" mail, I see that both ansible and ansible-base seem to exist : https://mailchi.mp/redhat/the-bullhorn-13
While it seems that ansible itself (2.10) can be used a simple replacement for previous ansible, the new ansible-base seems "lightweight" and only just core and one or two plugins.
Do you still plan to have ansible itself targetting 2.10 (like upstream) or just packaging from now ansible-base (and forget about ansible, which still seems to exist) ? :)

Comment 3 Robert-André Mauchin 🐧 2020-11-07 09:00:56 UTC
> These are harmless I think: 

ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/.travis.yml
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/templates/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/files/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/.travis.yml
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/templates/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/files/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/roles/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/docs/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/.travis.yml
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/templates/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/files/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/.travis.yml
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/templates/.git_keep
ansible-base.noarch: W: hidden-file-or-dir /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/files/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible_test/_data/coveragerc
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible_test/_data/ansible.cfg
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/templates/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/files/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/templates/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/files/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/roles/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/docs/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/templates/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/files/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/templates/.git_keep
ansible-base.noarch: E: zero-length /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/files/.git_keep


Please remove them.

 - Would prefer you use %bcond_with/%bcond_without

%global with_tests 1


 - Please document why this patch is needed:

Patch1:  2.10.3-test-patch.patch

 - Please don't forget to clean the Sphinx build leftovers here

%if 0%{?with_docs}
  make PYTHON=/usr/bin/python3 SPHINXBUILD=sphinx-build-3 webdocs
%else

 - manpages should not be marked as %doc:

%{_mandir}/man1/ansible*

 - that don't work for whole dir, use:

%dir %{_sysconfdir}/ansible/
%config(noreplace) %{_sysconfdir}/ansible/*

 - What the point of this: 

cp -pr docs/docsite/rst .
%if 0%{?with_docs}
  cp -pr docs/docsite/_build/html %{_builddir}/%{name}-%{version}/html
%endif

You could directly include the docs with:

%files -n ansible-base-doc
%doc docs/docsite/rst
%if 0%{?with_docs}
%doc docs/docsite/_build/html
%endif

Comment 4 Kevin Fenzi 2020-11-07 21:05:50 UTC
(In reply to Robert-André Mauchin 🐧 from comment #3)
> > These are harmless I think: 
> 
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/.travis.yml
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/templates/.
> git_keep
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/files/.git_keep
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/.travis.yml
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/templates/.
> git_keep
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/files/.
> git_keep
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/
> roles/.git_keep
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/docs/
> .git_keep
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/.travis.yml
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/templates/.
> git_keep
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/files/.
> git_keep
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/.travis.yml
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/templates/.git_keep
> ansible-base.noarch: W: hidden-file-or-dir
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/files/.git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible_test/_data/coveragerc
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible_test/_data/ansible.cfg
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/templates/.
> git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/network/files/.git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/templates/.
> git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/role/files/.
> git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/
> roles/.git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/default/collection/docs/
> .git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/templates/.
> git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/container/files/.
> git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/templates/.git_keep
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible/galaxy/data/apb/files/.git_keep
> 
> 
> Please remove them.

I'm fine removing all the .git_keep and .travis.yml, but these two I think are used by ansible_test:

> /usr/lib/python3.9/site-packages/ansible_test/_data/coveragerc
> ansible-base.noarch: E: zero-length
> /usr/lib/python3.9/site-packages/ansible_test/_data/ansible.cfg
> ansible-base.noarch: E: zero-length

> 
>  - Would prefer you use %bcond_with/%bcond_without
> 
> %global with_tests 1

I suppose. I hate it's syntax, but sure. 

> 
> 
>  - Please document why this patch is needed:
> 
> Patch1:  2.10.3-test-patch.patch

Done.

 >  - Please don't forget to clean the Sphinx build leftovers here
> 
> %if 0%{?with_docs}
>   make PYTHON=/usr/bin/python3 SPHINXBUILD=sphinx-build-3 webdocs
> %else

Can you expand on what build leftovers should be cleaned? Is there a guideline?

> 
>  - manpages should not be marked as %doc:

Indeed. fixed. 

> %{_mandir}/man1/ansible*
> 
>  - that don't work for whole dir, use:
> 
> %dir %{_sysconfdir}/ansible/
> %config(noreplace) %{_sysconfdir}/ansible/*

Fixed.

>  - What the point of this: 
> 
> cp -pr docs/docsite/rst .
> %if 0%{?with_docs}
>   cp -pr docs/docsite/_build/html %{_builddir}/%{name}-%{version}/html
> %endif
> 
> You could directly include the docs with:
> 
> %files -n ansible-base-doc
> %doc docs/docsite/rst
> %if 0%{?with_docs}
> %doc docs/docsite/_build/html
> %endif

Yeah, you are right. Dropped that. 

Here's the diff: 

5c5
< %global with_docs 0
---
> %bcond_with docs
10c10
< %global with_tests 1
---
> %bcond_with tests
23d22
< Patch1:  2.10.3-test-patch.patch
30c29,33
< %if 0%{?with_tests}
---
> # A 2.10.3 async test uses /usr/bin/python, which we do not have by default. 
> # Patch the test to use /usr/bin/python3 as we have for our build.
> Patch1:  2.10.3-test-patch.patch
> 
> %if %{with tests}
58c61
< %if 0%{?with_docs}
---
> %if %{with docs}
133c136
< %if 0%{?with_docs}
---
> %if %{with docs}
170,171c173,174
<       echo "The upstream Ansible datadir locations have changed.  Spec file needs to be updated"
<       exit 1
---
>   echo "The upstream Ansible datadir locations have changed.  Spec file needs to be updated"
>   exit 1
186,190d188
< cp -pr docs/docsite/rst .
< %if 0%{?with_docs}
<   cp -pr docs/docsite/_build/html %{_builddir}/%{name}-%{version}/html
< %endif
< 
194a193,196
> # no need to ship zero length files
> find %{buildroot}/%{python3_sitelib} -name .git_keep -exec rm -f {} \;
> find %{buildroot}/%{python3_sitelib} -name .travis.yml -exec rm -f {} \;
> 
196c198
< %if 0%{?with_tests}
---
> %if %{with tests}
210,211c212,214
< %doc %{_mandir}/man1/ansible*
< %config(noreplace) %{_sysconfdir}/ansible/
---
> %dir %{_sysconfdir}/ansible/
> %config(noreplace) %{_sysconfdir}/ansible/*
> %{_mandir}/man1/ansible*
222,224c225,227
< %doc rst
< %if 0%{?with_docs}
< %doc html
---
> %doc docs/docsite/rst
> %if %{with docs}
> %doc docs/docsite/_build/html
227a231,233
> * Sat Nov 07 2020 Kevin Fenzi <kevin> - 2.10.3-2
> - Various review fixes
> 

Spec URL: https://www.scrye.com/~kevin/fedora/ansible-base-review/ansible-base.spec
SRPM URL: https://www.scrye.com/~kevin/fedora/ansible-base-review/ansible-base-2.10.2-2.fc34.src.rpm

Thanks for the look!

Comment 5 Robert-André Mauchin 🐧 2020-11-08 08:16:45 UTC
(In reply to Kevin Fenzi from comment #4)
> I'm fine removing all the .git_keep and .travis.yml, but these two I think
> are used by ansible_test:
> 
> > /usr/lib/python3.9/site-packages/ansible_test/_data/coveragerc
> > ansible-base.noarch: E: zero-length
> > /usr/lib/python3.9/site-packages/ansible_test/_data/ansible.cfg
> > ansible-base.noarch: E: zero-length
> 

Sure!

>  >  - Please don't forget to clean the Sphinx build leftovers here
> > 
> > %if 0%{?with_docs}
> >   make PYTHON=/usr/bin/python3 SPHINXBUILD=sphinx-build-3 webdocs
> > %else
> 
> Can you expand on what build leftovers should be cleaned? Is there a
> guideline?
> 
Sphinx building leaves hidden files that should be removed:

# remove the sphinx-build leftovers
rm -rf docs/docsite/_build/html/.{doctrees,buildinfo}

Although you don't build the doc, I think this shoild be added for the future.


Package approved.

Comment 6 Kevin Fenzi 2020-11-14 19:15:59 UTC
Thanks so much for the review!

Comment 7 Gwyn Ciesla 2020-11-16 14:31:45 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/ansible-base

Comment 8 Mattia Verga 2021-10-22 14:07:57 UTC
Package was imported, then orphaned. Closing.


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