Bug 40957 - ansible: явно избыточные зависимости, сломана установка пакетов модулем package
Summary: ansible: явно избыточные зависимости, сломана установка пакетов модулем package
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: ansible (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Andrey Cherepanov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-20 09:56 MSK by Alexey Sheplyakov
Modified: 2021-09-21 13:35 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Sheplyakov 2021-09-20 09:56:00 MSK
; sudo apt-get install ansible
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  libgdbm-devel libsodium23 libyaml2 perl-App-Cmd perl-AppConfig perl-CBOR-XS perl-CGI perl-Capture-Tiny perl-Class-C3 perl-Class-Load perl-Clone-Choose perl-Compress-LZF
  perl-Convert-Bencode perl-Data-OptList perl-Dist-CheckConflicts perl-File-BaseDir perl-File-Copy-Recursive perl-File-DesktopEntry perl-File-MimeInfo perl-File-ReadBackwards
  perl-Filter-Simple perl-Getopt-Long-Descriptive perl-Hash-Merge perl-IO-All perl-IO-TieCombine perl-IPC-System-Simple perl-Image-Base perl-Image-Info perl-Image-Xbm perl-Image-Xpm
  perl-JSON-XS perl-Math-BigInt perl-Math-BigInt-FastCalc perl-Math-BigRat perl-Math-Complex perl-Module-Implementation perl-Module-Pluggable perl-Module-Runtime perl-Mouse perl-Package
  perl-Package-Generator perl-Package-Stash perl-Package-Stash-XS perl-Params-Util perl-Params-Validate perl-Pod-POM perl-String-RewritePrefix perl-Sub-Exporter perl-Sub-Install
  perl-Template perl-Template-Toolkit-Simple perl-Text-Balanced perl-Tie-File perl-Time-Piece perl-Types-Serialiser perl-YAML-LibYAML perl-common-sense perl-devel perl-experimental
  python3-dev python3-module-apipkg python3-module-astroid python3-module-attrs python3-module-bcrypt python3-module-cffi python3-module-cryptography python3-module-cssselect
  python3-module-docutils python3-module-eradicate python3-module-genshi python3-module-html5lib python3-module-iniconfig python3-module-isort python3-module-jinja2
  python3-module-lazy-object-proxy python3-module-lxml python3-module-mando python3-module-markupsafe python3-module-mccabe python3-module-mypy python3-module-mypy_extensions
  python3-module-packaging python3-module-paramiko python3-module-pathspec python3-module-pkg_resources python3-module-pluggy python3-module-py python3-module-pycodestyle
  python3-module-pycparser python3-module-pydocstyle python3-module-pyflakes python3-module-pylama python3-module-pylint python3-module-pynacl python3-module-pyparsing
  python3-module-pytest python3-module-radon python3-module-rst2ansi python3-module-setuptools python3-module-six python3-module-snowballstemmer python3-module-toml python3-module-typeshed
  python3-module-typing_extensions python3-module-voluptuous python3-module-webencodings python3-module-wrapt python3-module-yaml rpm-build-python3 tests-for-installed-python3-pkgs
  yamllint


1. Зачем нужны perl-* программе, написанной на python? Тем более perl-devel?
2. Зачем python3-dev rpm-build-python3 python3-module-mccabe python3-module-pyflakes?
3. Всё это было бы не так грустно, если бы оно работало. Но

$ ansible -b -m package -a 'package=gcc-aarch64-linux-gnu state=present' localhost
localhost | FAILED! => {
    "changed": false,
    "msg": "Unsupported parameters for (pkg5) module: package Supported parameters include: accept_licenses, be_name, name, refresh, state"
}

$ ansible -m setup localhost | grep -E 'ansible_((os)|(pkg))_'
        "ansible_os_family": "Altlinux",
        "ansible_pkg_mgr": "pkg5",

Сбивает с толку наличие файла /usr/bin/pkg:

$ sudo mv /usr/bin/pkg /usr/bin/pkg.bak
$ ansible -m setup localhost | grep -E 'ansible_((os)|(pkg))_'
        "ansible_os_family": "Altlinux",
        "ansible_pkg_mgr": "apt_rpm",

Файл /usr/bin/pkg - из пакета perl-Package ... 

$ rpm -q --whatprovides /usr/bin/pkg
perl-Package-0.26-alt2.noarch

... который зачем-то указан в зависимостях ansible:

$ apt-cache show ansible | grep -E '^Depends' | tr ',' '\n' | grep perl
 perl-Package
Comment 1 Andrey Cherepanov 2021-09-20 12:02:54 MSK
Патчи по удалению автозависимостей модулей приветствуются.
Comment 2 Alexey Sheplyakov 2021-09-20 16:23:14 MSK
(In reply to Andrey Cherepanov from comment #1)
> Патчи по удалению автозависимостей модулей приветствуются.

ansible-test - инструмент для разработчиков ansible, паковать его нет смысла.
Во-первых, версия 2.9 никому уже не интересна.
Во-вторых, разработчики всё равно будут запускать прямо из git, в крайнем случае - поставят из pip

#285511 BUILDING #1 [locked] [test-only] sisyphus ansible.git=2.9.26-alt2
Comment 3 Alexey Sheplyakov 2021-09-20 16:24:37 MSK
(In reply to Alexey Sheplyakov from comment #2)
> (In reply to Andrey Cherepanov from comment #1)
> > Патчи по удалению автозависимостей модулей приветствуются.
> 
> ansible-test - инструмент для разработчиков ansible, паковать его нет смысла.

Лишние зависимости порождены как раз ansible-test
Comment 4 Repository Robot 2021-09-21 13:35:24 MSK
ansible-2.9.26-alt2 -> sisyphus:

 Mon Sep 20 2021 Alexey Sheplyakov <asheplyakov@altlinux> 2.9.26-alt2
 - Don't package ansible-test tool (it's for ansible development only)
 - Avoid false dependencies on perl-Package (closes: #40957)