Bug 31587 - Использование функции LooseVersion из distutils.version вызывает зависимость на python-dev
Summary: Использование функции LooseVersion из distutils.version вызывает зависимость ...
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: python-dev (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Vladimir D. Seleznev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 29528
  Show dependency tree
 
Reported: 2015-12-02 23:54 MSK by Vitaly Lipatov
Modified: 2019-11-25 14:41 MSK (History)
10 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2015-12-02 23:54:22 MSK
В программах может использоваться проверка версии модуля такого вида:

from distutils.version import LooseVersion
...
if not hasattr(pyinotify, '__version__') \
  or LooseVersion(pyinotify.__version__) < '0.8.3':
  raise ImportError("Fail2Ban requires pyinotify >= 0.8.3")

Это вызывает зависимость на python-dev.

Было обсуждение здесь:
http://comments.gmane.org/gmane.linux.altlinux.sisyphus/89532


Таких программ у нас много:
$ epm whatdepends "python2.7(distutils)" | grep "^  [a-z]" | grep -v python-module
 $ apt-cache whatdepends python2.7(distutils)
  linkchecker-9.1-alt1
  shedskin-0.9-alt1_5
  fail2ban-0.9.3-alt1
  virt-manager-common-1.2.1-alt1
  treeline-1.2.1-alt1.1.qa1.1
  trac-1.0-alt4
  sugar-speak-44-alt1_1
  sqlmap-0.9-alt1
  solarwolf-1.5-alt3.qa3.1
  rednotebook-1.9.0-alt1
  rapid-photo-downloader-0.4.10-alt1
  openstack-dashboard-1:8.0.0-alt1
  pymunk-4.0.0-alt1
  pybitmessage-0.4.2-alt1
  petsc-common-3.5.4-alt1
  openstack-swift-2.3.0-alt1
  openerp-client-7.0-alt1.r2102
  npm-2.0.0-alt1
  noc-0.7.0-alt4
  ninja-ide-2.3-alt1
  mysql-utilities-1.6.1-alt1
  meld-3.14.1-alt1
  lostsky-1.0.1-alt1
  kodos-2.4.9-alt1.1.1
  ipython-4.0.0-alt2
  intipunku-0.52-alt1.1.1
  gns3-0.8.6-alt1
  func-0.30-alt1.git20131022
  drpython-1:3.11.3-alt1
  dosage-2.15-alt1
  cloud-init-0.7.6-alt1
  chef-12.5.1-alt1
  certmaster-0.28-alt2
  ansible-1.9.4-alt2
  virtualbox-sdk-4.3.30-alt3
  umit-1.0-alt1.1
  libslepc-real-devel-3.5.4-alt1.git20150525
  libslepc-complex-devel-3.5.4-alt1.git20150525
  policycoreutils-gui-2.3-alt1
  kf5-kdelibs4support-devel-5.16.0-alt1
  gobject-introspection-devel-1.46.0-alt1
  glib2-devel-2.46.2-alt1
  eric4-4.5.23-alt1
  duplicity-0.7.05-alt1
  distcc-pump-3.1-alt4.1
  crmsh-2.0-alt1.git20140904
  chromeless-base-0.3-alt4
  cca-spec-babel-0.8.6-alt7.svn20090721
  bzr-2.6.0-alt2
  bup-0.25-alt1.rc1.1
Comment 1 Evgenii Terechkov 2017-10-18 18:45:45 MSK
ping?
Comment 2 Ivan Zakharyaschev 2017-10-19 15:29:26 MSK
Неприятно, но я не хотел улучшать/менять зависимости python2, а просто дождаться, пока оно отомрёт.
Comment 3 Ivan Zakharyaschev 2017-10-19 15:36:04 MSK
В общем, я бы не хотел заниматься зависимостями python2, но если кто-то может стать ответственным за это (maintainer-ом всего python2 хозяйства, с исправлением того, что будет ломаться после изменения зависимостей), то я, конечно, никаких аргументов против не имею.
Comment 4 Vitaly Lipatov 2017-11-11 21:57:53 MSK
Интересно,что ещё есть пересечение требования pkg_resources (выборка частичная):
 #  rpm -ev python-dev

	python2.7(distutils)   нужен для python-module-sympy-tests-0.7.7-alt1.dev.git20150830.1
	python2.7(distutils)   нужен для python-module-sphinx-1.4-alt8.a0.git20150813
	python2.7(distutils)   нужен для python-module-setuptools-18.5-alt0.M80P.1
	python2.7(distutils)   нужен для python-module-babel-2.3.4-alt0.M80P.1

 #  rpm -ev python-module-setuptools
	python2.7(pkg_resources)   нужен для python-module-Pygments-2.0.2-alt1.1.1.1
	python2.7(pkg_resources)   нужен для python-module-sphinx-1.4-alt8.a0.git20150813
	python2.7(pkg_resources)   нужен для python-module-future-0.15.0-alt1.git20150725.1.1
	python2.7(pkg_resources)   нужен для python-module-pytest-3.2.1-alt0.M80P.1
	python2.7(pkg_resources)   нужен для python-module-babel-2.3.4-alt0.M80P.1
Comment 5 Vitaly Lipatov 2019-11-25 14:41:04 MSK
Ничего не делаем по python 2, кроме его удаления :)