Bug 266260 - devel/py-pytz-deprecation-shim: incomplete dependencies break egginfo
Summary: devel/py-pytz-deprecation-shim: incomplete dependencies break egginfo
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Po-Chuan Hsieh
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-09-06 21:30 UTC by p5B2EA84B3
Modified: 2022-09-10 13:21 UTC (History)
4 users (show)

See Also:
p5B2EA84B3: maintainer-feedback? (python)
jbeich: maintainer-feedback+
jbeich: maintainer-feedback? (sunpoet)


Attachments
Patch: Add the tzdata dependency to Flexget (1.35 KB, patch)
2022-09-07 09:16 UTC, François Charlier
jbeich: maintainer-approval-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description p5B2EA84B3 2022-09-06 21:30:20 UTC
> flexget
Traceback (most recent call last):
  File "/usr/local/bin/flexget", line 33, in <module>
    sys.exit(load_entry_point('FlexGet==3.3.25', 'console_scripts', 'flexget')())
  File "/usr/local/bin/flexget", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/local/lib/python3.9/importlib/metadata.py", line 86, in load
    module = import_module(match.group('module'))
  File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/usr/local/lib/python3.9/site-packages/flexget/__init__.py", line 11, in <module>
    from flexget.manager import Manager  # noqa
  File "/usr/local/lib/python3.9/site-packages/flexget/manager.py", line 38, in <module>
    from flexget.config_schema import ConfigError
  File "/usr/local/lib/python3.9/site-packages/flexget/config_schema.py", line 15, in <module>
    from flexget.utils import qualities, template
  File "/usr/local/lib/python3.9/site-packages/flexget/utils/qualities.py", line 8, in <module>
    from flexget.utils.serialization import Serializer
  File "/usr/local/lib/python3.9/site-packages/flexget/utils/serialization.py", line 8, in <module>
    from flexget.utils import json
  File "/usr/local/lib/python3.9/site-packages/flexget/utils/json.py", line 12, in <module>
    from flexget.plugin import DependencyError
  File "/usr/local/lib/python3.9/site-packages/flexget/plugin.py", line 12, in <module>
    import pkg_resources
  File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3260, in <module>
    def _initialize_master_working_set():
  File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3234, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3272, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 581, in _build_master
    ws.require(__requires__)
  File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 909, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 795, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'tzdata' distribution was not found and is required by pytz-deprecation-shim
Comment 1 François Charlier 2022-09-07 09:16:57 UTC
Created attachment 236410 [details]
Patch: Add the tzdata dependency to Flexget

Flexget now requires tzdata (from pytz-deprecation-shim) to run.

Please find attached a patch to add this dependency.

As a workaround until this is merged, you can install devel/py-tzdata to make Flexget work again.
Comment 2 Jan Beich freebsd_committer freebsd_triage 2022-09-07 12:14:00 UTC
(In reply to p5B2EA84B3 from comment #0)
> pkg_resources.DistributionNotFound: The 'tzdata' distribution was not found and is required by pytz-deprecation-shim

Suggests the dependency itself need to be fixed.

  $ pkg install flexget
  $ find /usr/local -name requires.txt |
    xargs fgrep -l tzdata | xargs pkg which -qo | sort -u
  devel/py-pytz-deprecation-shim
  devel/py-tzlocal

devel/py-pytz-deprecation-shim has setup.cfg with the following:

  install_requires = 
	  backports.zoneinfo;python_version>="3.6" and python_version<"3.9"
	  python-dateutil;python_version<"3.6"
	  tzdata;python_version>="3.6"

devel/py-tzlocal has setup.cfg with the following:

  install_requires = 
	  pytz_deprecation_shim
	  backports.zoneinfo; python_version < "3.9"
	  tzdata; platform_system == "Windows"

Broken egginfo doesn't affect "import pytz_deprecation_shim", so reproducing requires devel/py-setuptools e.g.,

  $ pkg install py39-pytz-deprecation-shim
  $ python3.9
  >>> import pkg_resources
  >>> pkg_resources.require('pytz_deprecation_shim')
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 909, in require
      needed = self.resolve(parse_requirements(requirements))
    File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 795, in resolve
      raise DistributionNotFound(req, requirers)
  pkg_resources.DistributionNotFound: The 'tzdata' distribution was not found and is required by pytz-deprecation-shim
Comment 3 Jan Beich freebsd_committer freebsd_triage 2022-09-07 12:19:27 UTC
www/flexget regressed by ports 1d648e548584 but the actual issue likely existed since ports 4a78f889506a.
Comment 4 Jan Beich freebsd_committer freebsd_triage 2022-09-07 12:21:25 UTC
Comment on attachment 236410 [details]
Patch: Add the tzdata dependency to Flexget

This fix is no good. flexget doesn't *directly* use tzdata, tzlocal or pytz-deprecation-shim.
Comment 5 commit-hook freebsd_committer freebsd_triage 2022-09-10 13:06:20 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e414d91050f02d702645ca55a01860e7f4bdbfbd

commit e414d91050f02d702645ca55a01860e7f4bdbfbd
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2022-09-10 12:53:31 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2022-09-10 13:02:46 +0000

    devel/py-pytz-deprecation-shim: Add missing RUN_DEPENDS

    - Bump PORTREVISION for dependency change

    PR:             266260

 devel/py-pytz-deprecation-shim/Makefile | 3 +++
 1 file changed, 3 insertions(+)
Comment 6 Po-Chuan Hsieh freebsd_committer freebsd_triage 2022-09-10 13:21:58 UTC
Committed. Thanks!