Re: F39 Change Proposal: Allow Removal of tzdata (System-Wide)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 26, 2023 at 7:10 PM Miro Hrončok <mhroncok@xxxxxxxxxx> wrote:
>
> Hello Patsy,
>
> On 26. 06. 23 17:54, Aoife Moloney wrote:
> > https://fedoraproject.org/wiki/Changes/AllowRemovalOfTzdata
> >
> > == Summary ==
> > Allow the removal of tzdata especially on containers in order to minimize size.
> > ...
> >
> > In order for this to work, we need packages that use tzdata at run
> > time to switch from Require'ing tzdata to Recommend'ing tzdata.  These
> > packages should also gracefully handle instances where tzdata has been
> > removed.  For example, this would require recognizing that tzdata is
> > not present and providing an appropriate error, such as recommending
> > that the user install tzdata.
> > ...
> > * python3.XX (3.9, 3.10, 3.11, 3.12)
>
> Who is expected to work on this? Python maintainers or this Change proposal owners?
>
> *PEP 615 – Support for the IANA Time Zone Database in the Standard Library* says:
>
>
> """
> Python distributors are encouraged to ensure that time zone data is installed

The wording of "encouraged to ensure" doesn't sound like a hard
requirement to me based on a lot of specs I've dealt with, but it
depends a bit on how the specific spec defines "encouraged".

> alongside Python whenever possible (e.g. by declaring tzdata as a dependency
> for the python package).
> """
>
> from https://peps.python.org/pep-0615/#system-time-zone-information
>
>
> By changing the Requires to Recommends, we would diverge from upstream
> recommendation.
>
> ---
>
> The current problem with Python without tzdata is:
>
> =======================================================================
>  >>> from zoneinfo import ZoneInfo
>  >>> ZoneInfo("Europe/Prague")
> Traceback (most recent call last):
>    File "/usr/lib64/python3.11/zoneinfo/_common.py", line 12, in load_tzdata
>      return resources.files(package_name).joinpath(resource_name).open("rb")
>             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>    File "/usr/lib64/python3.11/importlib/resources/_common.py", line 22, in files
>      return from_package(get_package(package))
>                          ^^^^^^^^^^^^^^^^^^^^
>    File "/usr/lib64/python3.11/importlib/resources/_common.py", line 53, in
> get_package
>      resolved = resolve(package)
>                 ^^^^^^^^^^^^^^^^
>    File "/usr/lib64/python3.11/importlib/resources/_common.py", line 44, in resolve
>      return cand if isinstance(cand, types.ModuleType) else
> importlib.import_module(cand)
>
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>    File "/usr/lib64/python3.11/importlib/__init__.py", line 126, in import_module
>      return _bootstrap._gcd_import(name[level:], package, level)
>             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>    File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
>    File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
>    File "<frozen importlib._bootstrap>", line 1126, in _find_and_load_unlocked
>    File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
>    File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
>    File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
>    File "<frozen importlib._bootstrap>", line 1126, in _find_and_load_unlocked
>    File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
>    File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
>    File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
>    File "<frozen importlib._bootstrap>", line 1140, in _find_and_load_unlocked
> ModuleNotFoundError: No module named 'tzdata'
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
>    File "/usr/lib64/python3.11/zoneinfo/_common.py", line 24, in load_tzdata
>      raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
> zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key Europe/Prague'
> =======================================================================
>
> Not that ZoneInfo("UTC") also fails:
>
> =======================================================================
>  >>> ZoneInfo("UTC")
> Traceback (most recent call last):
> ...
> zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key UTC'
> =======================================================================
>
> So we would need to patch Python to detect missing tzdata and report something
> like:
>
>   ZoneInfoNotInstalledError: 'No time zone information installed on the system,
> you can only use UTC'
>
> We would also need to ensure UTC work even without tzdata installed.
>
> I would be reluctant to carry this as a downstream-only patch. And the upstream
> window for changes like this has already closed for Python 3.12.
>
> --
> Miro Hrončok
> --
> Phone: +420777974800
> IRC: mhroncok
> _______________________________________________
> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
> Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux