[Pkg-fonts-devel] Bug#908538: ufo2ft: FTBFS in buster/sid (failing tests)

Santiago Vila sanvila at debian.org
Mon Sep 10 22:31:55 BST 2018


Package: src:ufo2ft
Version: 1.1.0-1
Severity: serious
Tags: ftbfs

Dear maintainer:

I tried to build this package in buster but it failed:

--------------------------------------------------------------------------------
[...]
 debian/rules build-indep
dh build-indep --with python3 --buildsystem=pybuild
   dh_update_autotools_config -i -O--buildsystem=pybuild
   dh_autoreconf -i -O--buildsystem=pybuild
   dh_auto_configure -i -O--buildsystem=pybuild
I: pybuild base:217: python3.6 setup.py config 
running config
   dh_auto_build -i -O--buildsystem=pybuild
I: pybuild base:217: /usr/bin/python3 setup.py build 
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/outlineCompiler.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/postProcessor.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/maxContextCalc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/fontInfoData.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/markFeatureWriter.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/preProcessor.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/featureCompiler.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/kernFeatureWriter.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
copying Lib/ufo2ft/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/featureWriters
copying Lib/ufo2ft/featureWriters/markFeatureWriter.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/featureWriters
copying Lib/ufo2ft/featureWriters/kernFeatureWriter.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/featureWriters
copying Lib/ufo2ft/featureWriters/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/featureWriters
copying Lib/ufo2ft/featureWriters/baseFeatureWriter.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/featureWriters
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/filters
copying Lib/ufo2ft/filters/removeOverlaps.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/filters
copying Lib/ufo2ft/filters/transformations.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/filters
copying Lib/ufo2ft/filters/cubicToQuadratic.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/filters
copying Lib/ufo2ft/filters/decomposeComponents.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/filters
copying Lib/ufo2ft/filters/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build/ufo2ft/filters
running egg_info
creating Lib/ufo2ft.egg-info
writing Lib/ufo2ft.egg-info/PKG-INFO
writing dependency_links to Lib/ufo2ft.egg-info/dependency_links.txt
writing requirements to Lib/ufo2ft.egg-info/requires.txt
writing top-level names to Lib/ufo2ft.egg-info/top_level.txt
writing manifest file 'Lib/ufo2ft.egg-info/SOURCES.txt'
reading manifest file 'Lib/ufo2ft.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'Lib/ufo2ft.egg-info/SOURCES.txt'
   dh_auto_test -i -O--buildsystem=pybuild
I: pybuild base:217: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build; python3.6 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.6.6, pytest-3.6.4, py-1.6.0, pluggy-0.6.0 -- /usr/bin/python3.6
cachedir: ../../../.pytest_cache
rootdir: /<<PKGBUILDDIR>>, inifile: setup.cfg
collecting ... collected 86 items

tests/compiler_test.py::CompilerTest::test_TestFont_CFF PASSED           [  1%]
tests/compiler_test.py::CompilerTest::test_TestFont_TTF FAILED           [  2%]
tests/compiler_test.py::CompilerTest::test_deprecated_arguments PASSED   [  3%]
tests/compiler_test.py::CompilerTest::test_features PASSED               [  4%]
tests/compiler_test.py::CompilerTest::test_interpolatableTTFs_lazy FAILED [  5%]
tests/compiler_test.py::CompilerTest::test_mti_features PASSED           [  6%]
tests/compiler_test.py::CompilerTest::test_removeOverlaps FAILED         [  8%]
tests/compiler_test.py::CompilerTest::test_removeOverlaps_CFF PASSED     [  9%]
tests/fontInfoData_test.py::GetAttrWithFallbackTest::test_caret_slope PASSED [ 10%]
tests/fontInfoData_test.py::GetAttrWithFallbackTest::test_family_and_style_names PASSED [ 11%]
tests/fontInfoData_test.py::GetAttrWithFallbackTest::test_redundant_metadata PASSED [ 12%]
tests/fontInfoData_test.py::GetAttrWithFallbackTest::test_vertical_metrics PASSED [ 13%]
tests/fontInfoData_test.py::PostscriptBlueScaleFallbackTest::test_with_blue_zones PASSED [ 15%]
tests/fontInfoData_test.py::PostscriptBlueScaleFallbackTest::test_without_blue_zones PASSED [ 16%]
tests/fontInfoData_test.py::NormalizeStringForPostscriptTest::test_no_change PASSED [ 17%]
tests/kernFeatureWriter_test.py::KernFeatureWriterTest::test__cleanupMissingGlyphs PASSED [ 18%]
tests/kernFeatureWriter_test.py::KernFeatureWriterTest::test_collect_fea_classes PASSED [ 19%]
tests/kernFeatureWriter_test.py::KernFeatureWriterTest::test_ignoreMarks PASSED [ 20%]
tests/kernFeatureWriter_test.py::KernFeatureWriterTest::test_mode PASSED [ 22%]
tests/markFeatureWriter_test.py::MarkFeatureWriterTest::test_add_classes PASSED [ 23%]
tests/markFeatureWriter_test.py::MarkFeatureWriterTest::test_only_write_one PASSED [ 24%]
tests/markFeatureWriter_test.py::MarkFeatureWriterTest::test_skip_empty_feature PASSED [ 25%]
tests/outlineCompiler_test.py::OutlineTTFCompilerTest::test_autoUseMyMetrics PASSED [ 26%]
tests/outlineCompiler_test.py::OutlineTTFCompilerTest::test_autoUseMyMetrics_None PASSED [ 27%]
tests/outlineCompiler_test.py::OutlineTTFCompilerTest::test_compile_empty_gasp PASSED [ 29%]
tests/outlineCompiler_test.py::OutlineTTFCompilerTest::test_compile_with_gasp PASSED [ 30%]
tests/outlineCompiler_test.py::OutlineTTFCompilerTest::test_compile_without_gasp PASSED [ 31%]
tests/outlineCompiler_test.py::OutlineTTFCompilerTest::test_importTTX PASSED [ 32%]
tests/outlineCompiler_test.py::OutlineTTFCompilerTest::test_makeGlyphsBoundingBoxes PASSED [ 33%]
tests/outlineCompiler_test.py::OutlineTTFCompilerTest::test_setupTable_gasp PASSED [ 34%]
tests/outlineCompiler_test.py::OutlineOTFCompilerTest::test_importTTX PASSED [ 36%]
tests/outlineCompiler_test.py::OutlineOTFCompilerTest::test_makeGlyphsBoundingBoxes PASSED [ 37%]
tests/outlineCompiler_test.py::OutlineOTFCompilerTest::test_makeGlyphsBoundingBoxes_floats PASSED [ 38%]
tests/outlineCompiler_test.py::OutlineOTFCompilerTest::test_setupTable_CFF_all_blues_defined PASSED [ 39%]
tests/outlineCompiler_test.py::OutlineOTFCompilerTest::test_setupTable_CFF_no_blues_defined PASSED [ 40%]
tests/outlineCompiler_test.py::OutlineOTFCompilerTest::test_setupTable_CFF_round_all PASSED [ 41%]
tests/outlineCompiler_test.py::OutlineOTFCompilerTest::test_setupTable_CFF_round_none PASSED [ 43%]
tests/outlineCompiler_test.py::OutlineOTFCompilerTest::test_setupTable_CFF_round_some PASSED [ 44%]
tests/outlineCompiler_test.py::OutlineOTFCompilerTest::test_setupTable_CFF_some_blues_defined PASSED [ 45%]
tests/outlineCompiler_test.py::TestGlyphOrder::test_compile_original_glyph_order PASSED [ 46%]
tests/outlineCompiler_test.py::TestGlyphOrder::test_compile_strange_glyph_order PASSED [ 47%]
tests/outlineCompiler_test.py::TestGlyphOrder::test_compile_tweaked_glyph_order PASSED [ 48%]
tests/outlineCompiler_test.py::TestNames::test_compile_with_custom_postscript_names PASSED [ 50%]
tests/outlineCompiler_test.py::TestNames::test_compile_with_custom_postscript_names_notdef_preserved PASSED [ 51%]
tests/outlineCompiler_test.py::TestNames::test_compile_with_production_names PASSED [ 52%]
tests/outlineCompiler_test.py::TestNames::test_compile_without_production_names PASSED [ 53%]
tests/filters/filters_test.py::test_getFilterClass PASSED                [ 54%]
tests/filters/filters_test.py::test_loadFilters_empty PASSED             [ 55%]
tests/filters/filters_test.py::test_loadFilters_pre PASSED               [ 56%]
tests/filters/filters_test.py::test_loadFilters_custom_namespace PASSED  [ 58%]
tests/filters/filters_test.py::test_loadFilters_args_missing PASSED      [ 59%]
tests/filters/filters_test.py::test_loadFilters_args_unsupported PASSED  [ 60%]
tests/filters/filters_test.py::test_loadFilters_include_all PASSED       [ 61%]
tests/filters/filters_test.py::test_loadFilters_include_list PASSED      [ 62%]
tests/filters/filters_test.py::test_loadFilters_exclude_list PASSED      [ 63%]
tests/filters/filters_test.py::test_loadFilters_both_include_exclude PASSED [ 65%]
tests/filters/filters_test.py::test_loadFilters_failed PASSED            [ 66%]
tests/filters/filters_test.py::test_loadFilters_kwargs_unsupported PASSED [ 67%]
tests/filters/filters_test.py::test_BaseFilter_repr PASSED               [ 68%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_invalid_origin_value PASSED [ 69%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_empty_glyph[font0] PASSED [ 70%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_Identity[font0] PASSED [ 72%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_OffsetX[font0] PASSED [ 73%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_OffsetY[font0] PASSED [ 74%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_OffsetXY[font0] PASSED [ 75%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleX[font0-CAP_HEIGHT] PASSED [ 76%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleX[font0-HALF_CAP_HEIGHT] PASSED [ 77%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleX[font0-X_HEIGHT] PASSED [ 79%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleX[font0-HALF_X_HEIGHT] PASSED [ 80%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleX[font0-BASELINE] PASSED [ 81%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleY[font0-CAP_HEIGHT] PASSED [ 82%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleY[font0-HALF_CAP_HEIGHT] PASSED [ 83%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleY[font0-X_HEIGHT] PASSED [ 84%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleY[font0-HALF_X_HEIGHT] PASSED [ 86%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleY[font0-BASELINE] PASSED [ 87%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleXY[font0-CAP_HEIGHT] PASSED [ 88%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleXY[font0-HALF_CAP_HEIGHT] PASSED [ 89%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleXY[font0-X_HEIGHT] PASSED [ 90%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleXY[font0-HALF_X_HEIGHT] PASSED [ 91%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_ScaleXY[font0-BASELINE] PASSED [ 93%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_Slant[font0-CAP_HEIGHT] PASSED [ 94%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_Slant[font0-HALF_CAP_HEIGHT] PASSED [ 95%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_Slant[font0-X_HEIGHT] PASSED [ 96%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_Slant[font0-HALF_X_HEIGHT] PASSED [ 97%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_Slant[font0-BASELINE] PASSED [ 98%]
tests/filters/transformations_test.py::TransformationsFilterTest::test_composite_glyphs[font0] PASSED [100%]

=================================== FAILURES ===================================
________________________ CompilerTest.test_TestFont_TTF ________________________

self = <compiler_test.CompilerTest testMethod=test_TestFont_TTF>

    def test_TestFont_TTF(self):
>       self.expectTTX(compileTTF(loadUFO("TestFont.ufo")), "TestFont.ttx")

tests/compiler_test.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/compiler_test.py:134: in expectTTX
    self.fail("TTX output is different from expected")
E   AssertionError: TTX output is different from expected
----------------------------- Captured stderr call -----------------------------
--- TestFont.ttx
+++ /tmp/tmpskovmp8i/tmp1.ttx
@@ -234,7 +234,7 @@
         <pt x="300" y="-10" on="1"/>
         <pt x="225" y="-10" on="0"/>
         <pt x="138" y="32" on="0"/>
-        <pt x="100" y="142" on="0"/>
+        <pt x="100" y="143" on="0"/>
         <pt x="100" y="245" on="1"/>
         <pt x="100" y="348" on="0"/>
         <pt x="138" y="458" on="0"/>
@@ -314,13 +314,13 @@
     <TTGlyph name="uni0069" xMin="-55" yMin="-80" xMax="454" yMax="510">
       <contour>
         <pt x="-55" y="-80" on="1"/>
-        <pt x="-55" y="-6" on="0"/>
+        <pt x="-55" y="-5" on="0"/>
         <pt x="-13" y="82" on="0"/>
         <pt x="97" y="119" on="0"/>
         <pt x="199" y="119" on="1"/>
         <pt x="302" y="119" on="0"/>
         <pt x="412" y="82" on="0"/>
-        <pt x="454" y="-6" on="0"/>
+        <pt x="454" y="-5" on="0"/>
         <pt x="454" y="-80" on="1"/>
       </contour>
       <contour>
@@ -334,13 +334,13 @@
     <TTGlyph name="uni006A" xMin="-55" yMin="-280" xMax="454" yMax="230">
       <contour>
         <pt x="-55" y="-80" on="1"/>
-        <pt x="-55" y="-6" on="0"/>
+        <pt x="-55" y="-5" on="0"/>
         <pt x="-13" y="82" on="0"/>
         <pt x="97" y="119" on="0"/>
         <pt x="199" y="119" on="1"/>
         <pt x="302" y="119" on="0"/>
         <pt x="412" y="82" on="0"/>
-        <pt x="454" y="-6" on="0"/>
+        <pt x="454" y="-5" on="0"/>
         <pt x="454" y="-80" on="1"/>
       </contour>
       <contour>
__________________ CompilerTest.test_interpolatableTTFs_lazy ___________________

self = <compiler_test.CompilerTest testMethod=test_interpolatableTTFs_lazy>

    def test_interpolatableTTFs_lazy(self):
        # two same UFOs **must** be interpolatable
        ufos = [loadUFO("TestFont.ufo") for _ in range(2)]
        ttfs = list(compileInterpolatableTTFs(ufos))
>       self.expectTTX(ttfs[0], "TestFont.ttx")

tests/compiler_test.py:100: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/compiler_test.py:134: in expectTTX
    self.fail("TTX output is different from expected")
E   AssertionError: TTX output is different from expected
----------------------------- Captured stderr call -----------------------------
--- TestFont.ttx
+++ /tmp/tmpdwrt1ugf/tmp1.ttx
@@ -234,7 +234,7 @@
         <pt x="300" y="-10" on="1"/>
         <pt x="225" y="-10" on="0"/>
         <pt x="138" y="32" on="0"/>
-        <pt x="100" y="142" on="0"/>
+        <pt x="100" y="143" on="0"/>
         <pt x="100" y="245" on="1"/>
         <pt x="100" y="348" on="0"/>
         <pt x="138" y="458" on="0"/>
@@ -314,13 +314,13 @@
     <TTGlyph name="uni0069" xMin="-55" yMin="-80" xMax="454" yMax="510">
       <contour>
         <pt x="-55" y="-80" on="1"/>
-        <pt x="-55" y="-6" on="0"/>
+        <pt x="-55" y="-5" on="0"/>
         <pt x="-13" y="82" on="0"/>
         <pt x="97" y="119" on="0"/>
         <pt x="199" y="119" on="1"/>
         <pt x="302" y="119" on="0"/>
         <pt x="412" y="82" on="0"/>
-        <pt x="454" y="-6" on="0"/>
+        <pt x="454" y="-5" on="0"/>
         <pt x="454" y="-80" on="1"/>
       </contour>
       <contour>
@@ -334,13 +334,13 @@
     <TTGlyph name="uni006A" xMin="-55" yMin="-280" xMax="454" yMax="230">
       <contour>
         <pt x="-55" y="-80" on="1"/>
-        <pt x="-55" y="-6" on="0"/>
+        <pt x="-55" y="-5" on="0"/>
         <pt x="-13" y="82" on="0"/>
         <pt x="97" y="119" on="0"/>
         <pt x="199" y="119" on="1"/>
         <pt x="302" y="119" on="0"/>
         <pt x="412" y="82" on="0"/>
-        <pt x="454" y="-6" on="0"/>
+        <pt x="454" y="-5" on="0"/>
         <pt x="454" y="-80" on="1"/>
       </contour>
       <contour>
_______________________ CompilerTest.test_removeOverlaps _______________________

self = <compiler_test.CompilerTest testMethod=test_removeOverlaps>

    def test_removeOverlaps(self):
        self.expectTTX(compileTTF(loadUFO("TestFont.ufo"), removeOverlaps=True),
>                      "TestFont-NoOverlaps-TTF.ttx")

tests/compiler_test.py:94: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/compiler_test.py:134: in expectTTX
    self.fail("TTX output is different from expected")
E   AssertionError: TTX output is different from expected
----------------------------- Captured stderr call -----------------------------
--- TestFont-NoOverlaps-TTF.ttx
+++ /tmp/tmpggh3iu5n/tmp1.ttx
@@ -234,7 +234,7 @@
         <pt x="300" y="-10" on="1"/>
         <pt x="225" y="-10" on="0"/>
         <pt x="138" y="32" on="0"/>
-        <pt x="100" y="142" on="0"/>
+        <pt x="100" y="143" on="0"/>
         <pt x="100" y="245" on="1"/>
         <pt x="100" y="348" on="0"/>
         <pt x="138" y="458" on="0"/>
=========================== short test summary info ============================
FAIL tests/compiler_test.py::CompilerTest::test_TestFont_TTF
FAIL tests/compiler_test.py::CompilerTest::test_interpolatableTTFs_lazy
FAIL tests/compiler_test.py::CompilerTest::test_removeOverlaps
===================== 3 failed, 83 passed in 0.99 seconds ======================
E: pybuild pybuild:338: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.6_ufo2ft/build; python3.6 -m pytest tests
dh_auto_test: pybuild --test --test-pytest -i python{version} -p 3.6 returned exit code 13
make: *** [debian/rules:6: build-indep] Error 25
dpkg-buildpackage: error: debian/rules build-indep subprocess returned exit status 2
--------------------------------------------------------------------------------

The build was made in my autobuilder with "dpkg-buildpackage -A"
but it also fails here:

https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/ufo2ft.html

where you can get a full build log if you need it.

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.



More information about the Pkg-fonts-devel mailing list