[Python-apps-team] Bug#942366: xml2rfc chokes on simple rfc draft

Dmitry Eremin-Solenikov dbaryshkov at gmail.com
Tue Oct 15 11:08:23 BST 2019


Package: weasyprint
Version: 50-1
Severity: normal

weasyprint 50-1 makes `xml2rfc --pdf` fail on the following test
document. Downgrading to weasyprint 49-1 or removing any author from
cached reference file will make `xml2rfc --pdf` succeed. See attached
log file.

=========== CUT HERE draft-deremin-test.xml ================
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc comments="yes" ?>
<?rfc inline="yes" ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="info" docName="draft-deremin-test-00" ipr="trust200902">
  <front>
    <title abbrev="">Test Document </title>

    <author fullname="Dmitry Eremin-Solenikov" initials="D." surname="Eremin-Solenikov">
      <organization>Mentor Graphics (Ireland) Ltd.</organization>
      <address>
        <postal>
          <street>Pevchesky lane, 12</street>
          <city>Saint-Petersburg</city>
          <region/>
          <code>197046</code>
          <country>Russian Federation</country>
        </postal>
        <email>dbaryshkov at gmail.com</email>
      </address>
    </author>

    <date month="" year="2019"/>

    <area>Security</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <abstract>
      <t>Test document</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>This document supplements <xref target="RFC3280"/>.</t>

    </section>

  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.3280.xml'?>
    </references>
  </back>

</rfc>
=========== CUT HERE draft-deremin-test.xml ================



-- System Information: 
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.2.0-3-amd64 (SMP w/12 CPU cores)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/bash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages weasyprint depends on:
ii  libglib2.0-dev         2.62.1-1
ii  libpango1.0-dev        1.42.4-7
ii  python3                3.7.5-1
ii  python3-cairocffi      0.9.0-3
ii  python3-cairosvg       2.4.0-2
ii  python3-cffi           1.12.3-1
ii  python3-cssselect2     0.2.2-1
ii  python3-html5lib       1.0.1-1
ii  python3-pkg-resources  41.2.0-1
ii  python3-pyphen         0.9.5-3
ii  python3-tinycss2       1.0.2-1
ii  shared-mime-info       1.10-1

weasyprint recommends no packages.

weasyprint suggests no packages.

-- no debconf information
-------------- next part --------------
Traceback (most recent call last):
  File "/usr/bin/xml2rfc", line 11, in <module>
    load_entry_point('xml2rfc==2.32.0', 'console_scripts', 'xml2rfc')()
  File "/usr/lib/python3/dist-packages/xml2rfc/run.py", line 615, in main
    writer.write(filename)
  File "/usr/lib/python3/dist-packages/xml2rfc/writers/pdf.py", line 100, in write
    pdf = self.pdf()
  File "/usr/lib/python3/dist-packages/xml2rfc/writers/pdf.py", line 89, in pdf
    pdf = writer.write_pdf(None, stylesheets=[ css, page_css ])
  File "/usr/lib/python3/dist-packages/weasyprint/__init__.py", line 211, in write_pdf
    font_config=font_config).write_pdf(
  File "/usr/lib/python3/dist-packages/weasyprint/__init__.py", line 168, in render
    font_config)
  File "/usr/lib/python3/dist-packages/weasyprint/document.py", line 393, in _render
    [Page(page_box, enable_hinting) for page_box in page_boxes],
  File "/usr/lib/python3/dist-packages/weasyprint/document.py", line 393, in <listcomp>
    [Page(page_box, enable_hinting) for page_box in page_boxes],
  File "/usr/lib/python3/dist-packages/weasyprint/layout/__init__.py", line 126, in layout_document
    pages = list(make_all_pages(context, root_box, html, pages))
  File "/usr/lib/python3/dist-packages/weasyprint/layout/pages.py", line 803, in make_all_pages
    page, resume_at = remake_page(i, context, root_box, html)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/pages.py", line 742, in remake_page
    page_number, page_state)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/pages.py", line 553, in make_page
    positioned_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 510, in block_container_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 63, in block_level_layout
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 77, in block_level_layout_switch
    page_is_empty, absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 130, in block_box_layout
    absolute_boxes, fixed_boxes, adjoining_margins)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/blocks.py", line 376, in block_container_layout
    for line, resume_at in lines_iterator:
  File "/usr/lib/python3/dist-packages/weasyprint/layout/inlines.py", line 53, in iter_line_boxes
    absolute_boxes, fixed_boxes, first_letter_style)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/inlines.py", line 70, in get_next_linebox
    skip_stack = skip_first_whitespace(linebox, skip_stack)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/inlines.py", line 210, in skip_first_whitespace
    result = skip_first_whitespace(box.children[index], next_skip_stack)
  File "/usr/lib/python3/dist-packages/weasyprint/layout/inlines.py", line 196, in skip_first_whitespace
    assert next_skip_stack is None
AssertionError
make: *** [Makefile:18: draft-deremin-test.pdf] Error 1


More information about the Python-apps-team mailing list