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

Bug#1031028: tzdata: FTBFS (undeclared build-dependency on tzdata)



Package: src:tzdata
Version: 2022g-4
Severity: important
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in bookworm, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules binary-indep
dh binary-indep
   dh_update_autotools_config -i
   dh_autoreconf -i
   dh_auto_configure -i
   debian/rules override_dh_auto_build-indep
make[1]: Entering directory '/<<PKGBUILDDIR>>'
# Generate a tzdata.zi file
/usr/bin/make AWK=gawk BACKWARD="backward" PACKRATDATA=backzone VERSION_DEPS= tzdata.zi
make[2]: Entering directory '/<<PKGBUILDDIR>>'
gawk \
	  -v DATAFORM=`expr main.zi : '\(.*\).zi'` \
	  -v PACKRATDATA='backzone' \
	  -v PACKRATLIST='' \
	  -f ziguard.awk \
	  africa antarctica asia australasia europe northamerica southamerica etcetera factory backward backzone >main.zi.out
mv main.zi.out main.zi
version=`sed 1q version` && \
	  LC_ALL=C gawk \
	    -v dataform='main' \
	    -v deps='ziguard.awk africa antarctica asia australasia europe northamerica southamerica etcetera factory backward backzone  zishrink.awk' \
	    -v redo='posix_right' \
	    -v version="$version" \
	    -f zishrink.awk \
	    main.zi >tzdata.zi.out
mv tzdata.zi.out tzdata.zi
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
# Generate the leapseconds file
/usr/bin/make AWK=gawk PACKRATDATA=backzone leapseconds
make[2]: Entering directory '/<<PKGBUILDDIR>>'
make[2]: 'leapseconds' is up to date.
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
# Build the timezone data
/usr/sbin/zic -d /<<PKGBUILDDIR>>/tzgen -L /dev/null tzdata.zi ; \
mkdir "/<<PKGBUILDDIR>>/tzgen/posix"; \
find "/<<PKGBUILDDIR>>/tzgen" -mindepth 1 -maxdepth 1 ! -name posix -printf "%P\n" | while read -r tz; do \
	ln -sr "/<<PKGBUILDDIR>>/tzgen/$tz" "/<<PKGBUILDDIR>>/tzgen/posix/$tz"; \
done; \
/usr/sbin/zic -d /<<PKGBUILDDIR>>/tzgen/right -L leapseconds tzdata.zi ; \

warning: "leapseconds", line 83: "#expires" is obsolescent; use "Expires"
# Replace hardlinks by symlinks
grep '^L ' /<<PKGBUILDDIR>>/tzdata.zi | while read L target name ; do \
	ln -srf /<<PKGBUILDDIR>>/tzgen/$target /<<PKGBUILDDIR>>/tzgen/$name ; \
	ln -srf /<<PKGBUILDDIR>>/tzgen/posix/$target /<<PKGBUILDDIR>>/tzgen/posix/$name ; \
	ln -srf /<<PKGBUILDDIR>>/tzgen/right/$target /<<PKGBUILDDIR>>/tzgen/right/$name ; \
done
# Generate a posixrules file
ln -s America/New_York /<<PKGBUILDDIR>>/tzgen/posixrules
debian/generate_debconf_templates -d "/<<PKGBUILDDIR>>/tzgen" > debian/tzdata.templates
debconf-updatepo
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
debian/test_timezone_conversions -z "/<<PKGBUILDDIR>>/tzgen"
INFO: Selectable timezones in debian/tzdata.templates: 503
INFO: Available timezones in /<<PKGBUILDDIR>>/tzgen: 1241
INFO: Available conversion targets in debian/tzdata.config: 89
TZPATH="/<<PKGBUILDDIR>>/tzgen" debian/tests/python
test_2022g (__main__.TestZoneinfo.test_2022g)
Test new zone America/Ciudad_Juarez from 2022g release. ... ERROR
test_available_timezones_count (__main__.TestZoneinfo.test_available_timezones_count)
Test available_timezones() count to be reasonable. ... FAIL
test_daylight_saving_transition (__main__.TestZoneinfo.test_daylight_saving_transition)
Test daylight saving time transition from Python documentation. ... ERROR
test_localtime (__main__.TestZoneinfo.test_localtime)
Test 'localtime' timezone. ... ERROR
test_timezones (__main__.TestZoneinfo.test_timezones)
Test all zones to load, have a name, and have a reasonable offset. ... ok

======================================================================
ERROR: test_2022g (__main__.TestZoneinfo.test_2022g)
Test new zone America/Ciudad_Juarez from 2022g release.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/zoneinfo/_common.py", line 12, in load_tzdata
    return resources.files(package_name).joinpath(resource_name).open("rb")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/resources/_common.py", line 22, in files
    return from_package(get_package(package))
                        ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/resources/_common.py", line 53, in get_package
    resolved = resolve(package)
               ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/resources/_common.py", line 44, in resolve
    return cand if isinstance(cand, types.ModuleType) else importlib.import_module(cand)
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1142, 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 "/<<PKGBUILDDIR>>/debian/tests/python", line 83, in test_2022g
    tzinfo = zoneinfo.ZoneInfo("America/Ciudad_Juarez")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/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 America/Ciudad_Juarez'

======================================================================
ERROR: test_daylight_saving_transition (__main__.TestZoneinfo.test_daylight_saving_transition)
Test daylight saving time transition from Python documentation.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/zoneinfo/_common.py", line 12, in load_tzdata
    return resources.files(package_name).joinpath(resource_name).open("rb")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/resources/_common.py", line 22, in files
    return from_package(get_package(package))
                        ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/resources/_common.py", line 53, in get_package
    resolved = resolve(package)
               ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/resources/_common.py", line 44, in resolve
    return cand if isinstance(cand, types.ModuleType) else importlib.import_module(cand)
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1142, 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 "/<<PKGBUILDDIR>>/debian/tests/python", line 32, in test_daylight_saving_transition
    tzinfo = zoneinfo.ZoneInfo("America/Los_Angeles")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/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 America/Los_Angeles'

======================================================================
ERROR: test_localtime (__main__.TestZoneinfo.test_localtime)
Test 'localtime' timezone.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/zoneinfo/_common.py", line 12, in load_tzdata
    return resources.files(package_name).joinpath(resource_name).open("rb")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/resources/_common.py", line 22, in files
    return from_package(get_package(package))
                        ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/resources/_common.py", line 53, in get_package
    resolved = resolve(package)
               ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/resources/_common.py", line 44, in resolve
    return cand if isinstance(cand, types.ModuleType) else importlib.import_module(cand)
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1142, 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 "/<<PKGBUILDDIR>>/debian/tests/python", line 56, in test_localtime
    tzinfo = zoneinfo.ZoneInfo("localtime")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/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 localtime'

======================================================================
FAIL: test_available_timezones_count (__main__.TestZoneinfo.test_available_timezones_count)
Test available_timezones() count to be reasonable.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/debian/tests/python", line 27, in test_available_timezones_count
    self.assertGreaterEqual(zones, 598, "less zones than 2022g-3")
AssertionError: 0 not greater than or equal to 598 : less zones than 2022g-3

----------------------------------------------------------------------
Ran 5 tests in 0.009s

FAILED (failures=1, errors=3)
make[1]: *** [debian/rules:41: override_dh_auto_test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:8: binary-indep] Error 2
dpkg-buildpackage: error: debian/rules binary-indep subprocess returned exit status 2
--------------------------------------------------------------------------------

Note: I have to report this as "important" only because Sebastian Ramacher asked bugs
like this not to be RC.

However, I believe there is something inherently dangerous in the fact that the test suite
for this package relies on the installed (i.e. previous) version of itself instead of
the version actually being built.

It could happen, for example, that the package being built and the previous version
may differ in some datail which the test suite considers an error, making the build
to fail, and requiring a "bootstrap" (i.e. "cheating") for the new version to be
in the archive again.

In other words: In this case I'm more concerned about the fact that such
build-dependency exists at all than the fact that it's declared or not.

--------------------------------------------------------------------------------

About the archive rebuild: The build was made using virtual machines
from Hetzner, with enough memory, enough disk, and either one or two
CPUs, using a reduced chroot with only build-essential packages (plus
debhelper).

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.


Reply to: