Hi Mauro, > Tested here with the enclosed patch. great, big step forward making /media/Makefile smaller ... thanks a lot!!!! > It crashed: > Exception occurred: > File "/devel/v4l/patchwork/Documentation/sphinx/kfigure.py", line 222, in dot2format > sys.stderr.write(err) > TypeError: write() argument must be str, not bytes > The full traceback has been saved in /tmp/sphinx-err-_1vahbmg.log, if you want to report the issue to the developers. > Please also report this if it was a user error, so that a better error message can be provided next time. > A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks! > Documentation/Makefile.sphinx:69: recipe for target 'htmldocs' failed > make[1]: *** [htmldocs] Error 1 > Makefile:1450: recipe for target 'htmldocs' failed > make: *** [htmldocs] Error 2 > > Weird enough, it produced a Documentation/output/media/uapi/v4l/pipeline.svg file. I guess that the dot command writes something to stderr. This is captured by the extension and printed to stderr ... +def dot2format(dot_fname, out_fname): ... + exit_code = 42 + with open(out_fname, "w") as out: + p = subprocess.Popen( + cmd, stdout = out, stderr = subprocess.PIPE ) + nil, err = p.communicate() + + sys.stderr.write(err) + + exit_code = p.returncode + out.flush() + return bool(exit_code == 0) > File "/devel/v4l/patchwork/Documentation/sphinx/kfigure.py", line 222, in dot2format > sys.stderr.write(err) > TypeError: write() argument must be str, not bytes Do we need this stderr output? For a first test, uncomment the "sys.stderr.write(err)“ in line 222. Or, if we really need the stderr, try: - sys.stderr.write(err) + sys.stderr.write(str(err)) I this fixes, there is another "sys.stderr.write(err)" in func svg2pdf(..) which should also fixed …. +def svg2pdf(svg_fname, pdf_fname): ... + cmd = [convert_cmd, svg_fname, pdf_fname] + p = subprocess.Popen( + cmd, stdout = out, stderr = subprocess.PIPE ) + nil, err = p.communicate() + - sys.stderr.write(err) + sys.stderr.write(str(err)) + + exit_code = p.returncode + return bool(exit_code == 0) Thanks! -- Markus -- > > > Thanks, > Mauro > > -- > > [PATCH] docs-rst: Don't use explicit Makefile rules to build SVG and > DOT files > > Now that we have an extension to handle images, use it. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx> > > diff --git a/Documentation/media/Makefile b/Documentation/media/Makefile > index 32663602ff25..5bd52ea1eff0 100644 > --- a/Documentation/media/Makefile > +++ b/Documentation/media/Makefile > @@ -1,51 +1,6 @@ > -# Rules to convert DOT and SVG to Sphinx images > - > -SRC_DIR=$(srctree)/Documentation/media > - > -DOTS = \ > - uapi/v4l/pipeline.dot \ > - > -IMAGES = \ > - typical_media_device.svg \ > - uapi/dvb/dvbstb.svg \ > - uapi/v4l/bayer.svg \ > - uapi/v4l/constraints.svg \ > - uapi/v4l/crop.svg \ > - uapi/v4l/fieldseq_bt.svg \ > - uapi/v4l/fieldseq_tb.svg \ > - uapi/v4l/nv12mt.svg \ > - uapi/v4l/nv12mt_example.svg \ > - uapi/v4l/pipeline.svg \ > - uapi/v4l/selection.svg \ > - uapi/v4l/subdev-image-processing-full.svg \ > - uapi/v4l/subdev-image-processing-scaling-multi-source.svg \ > - uapi/v4l/subdev-image-processing-crop.svg \ > - uapi/v4l/vbi_525.svg \ > - uapi/v4l/vbi_625.svg \ > - uapi/v4l/vbi_hsync.svg \ > - > -DOTTGT := $(patsubst %.dot,%.svg,$(DOTS)) > -IMGDOT := $(patsubst %,$(SRC_DIR)/%,$(DOTTGT)) > - > -IMGTGT := $(patsubst %.svg,%.pdf,$(IMAGES)) > -IMGPDF := $(patsubst %,$(SRC_DIR)/%,$(IMGTGT)) > - > -cmd = $(echo-cmd) $(cmd_$(1)) > - > -quiet_cmd_genpdf = GENPDF $2 > - cmd_genpdf = convert $2 $3 > - > -quiet_cmd_gendot = DOT $2 > - cmd_gendot = dot -Tsvg $2 > $3 > - > -%.pdf: %.svg > - @$(call cmd,genpdf,$<,$@) > - > -%.svg: %.dot > - @$(call cmd,gendot,$<,$@) > - > # Rules to convert a .h file to inline RST documentation > > +SRC_DIR=$(srctree)/Documentation/media > PARSER = $(srctree)/Documentation/sphinx/parse-headers.pl > UAPI = $(srctree)/include/uapi/linux > KAPI = $(srctree)/include/linux > diff --git a/Documentation/media/intro.rst b/Documentation/media/intro.rst > index 8f7490c9a8ef..5562fba1d51d 100644 > --- a/Documentation/media/intro.rst > +++ b/Documentation/media/intro.rst > @@ -13,8 +13,8 @@ A typical media device hardware is shown at :ref:`typical_media_device`. > > .. _typical_media_device: > > -.. figure:: typical_media_device.* > - :alt: typical_media_device.pdf / typical_media_device.svg > +.. kernel-figure:: typical_media_device.svg > + :alt: typical_media_device.svg > :align: center > > Typical Media Device > diff --git a/Documentation/media/uapi/dvb/intro.rst b/Documentation/media/uapi/dvb/intro.rst > index 2ed5c23102b4..0e76067a5b58 100644 > --- a/Documentation/media/uapi/dvb/intro.rst > +++ b/Documentation/media/uapi/dvb/intro.rst > @@ -55,8 +55,8 @@ Overview > > .. _stb_components: > > -.. figure:: dvbstb.* > - :alt: dvbstb.pdf / dvbstb.svg > +.. kernel-figure:: dvbstb.svg > + :alt: dvbstb.svg > :align: center > > Components of a DVB card/STB > diff --git a/Documentation/media/uapi/v4l/crop.rst b/Documentation/media/uapi/v4l/crop.rst > index be58894c9c89..adea29b14135 100644 > --- a/Documentation/media/uapi/v4l/crop.rst > +++ b/Documentation/media/uapi/v4l/crop.rst > @@ -53,8 +53,8 @@ Cropping Structures > > .. _crop-scale: > > -.. figure:: crop.* > - :alt: crop.pdf / crop.svg > +.. kernel-figure:: crop.svg > + :alt: crop.svg > :align: center > > Image Cropping, Insertion and Scaling > diff --git a/Documentation/media/uapi/v4l/dev-raw-vbi.rst b/Documentation/media/uapi/v4l/dev-raw-vbi.rst > index baf5f2483927..f761d3a93783 100644 > --- a/Documentation/media/uapi/v4l/dev-raw-vbi.rst > +++ b/Documentation/media/uapi/v4l/dev-raw-vbi.rst > @@ -221,8 +221,8 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does > > .. _vbi-hsync: > > -.. figure:: vbi_hsync.* > - :alt: vbi_hsync.pdf / vbi_hsync.svg > +.. kernel-figure:: vbi_hsync.svg > + :alt: vbi_hsync.svg > :align: center > > **Figure 4.1. Line synchronization** > @@ -230,8 +230,8 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does > > .. _vbi-525: > > -.. figure:: vbi_525.* > - :alt: vbi_525.pdf / vbi_525.svg > +.. kernel-figure:: vbi_525.svg > + :alt: vbi_525.svg > :align: center > > **Figure 4.2. ITU-R 525 line numbering (M/NTSC and M/PAL)** > @@ -240,8 +240,8 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does > > .. _vbi-625: > > -.. figure:: vbi_625.* > - :alt: vbi_625.pdf / vbi_625.svg > +.. kernel-figure:: vbi_625.svg > + :alt: vbi_625.svg > :align: center > > **Figure 4.3. ITU-R 625 line numbering** > diff --git a/Documentation/media/uapi/v4l/dev-subdev.rst b/Documentation/media/uapi/v4l/dev-subdev.rst > index cd2870180208..0a54e4d95013 100644 > --- a/Documentation/media/uapi/v4l/dev-subdev.rst > +++ b/Documentation/media/uapi/v4l/dev-subdev.rst > @@ -99,8 +99,8 @@ the video sensor and the host image processing hardware. > > .. _pipeline-scaling: > > -.. figure:: pipeline.* > - :alt: pipeline.pdf / pipeline.svg > +.. kernel-figure:: pipeline.dot > + :alt: pipeline.dot > :align: center > > Image Format Negotiation on Pipelines > @@ -404,8 +404,8 @@ selection will refer to the sink pad format dimensions instead. > > .. _subdev-image-processing-crop: > > -.. figure:: subdev-image-processing-crop.* > - :alt: subdev-image-processing-crop.pdf / subdev-image-processing-crop.svg > +.. kernel-figure:: subdev-image-processing-crop.svg > + :alt: subdev-image-processing-crop.svg > :align: center > > **Figure 4.5. Image processing in subdevs: simple crop example** > @@ -421,8 +421,8 @@ pad. > > .. _subdev-image-processing-scaling-multi-source: > > -.. figure:: subdev-image-processing-scaling-multi-source.* > - :alt: subdev-image-processing-scaling-multi-source.pdf / subdev-image-processing-scaling-multi-source.svg > +.. kernel-figure:: subdev-image-processing-scaling-multi-source.svg > + :alt: subdev-image-processing-scaling-multi-source.svg > :align: center > > **Figure 4.6. Image processing in subdevs: scaling with multiple sources** > @@ -437,8 +437,8 @@ an area at location specified by the source crop rectangle from it. > > .. _subdev-image-processing-full: > > -.. figure:: subdev-image-processing-full.* > - :alt: subdev-image-processing-full.pdf / subdev-image-processing-full.svg > +.. kernel-figure:: subdev-image-processing-full.svg > + :alt: subdev-image-processing-full.svg > :align: center > > **Figure 4.7. Image processing in subdevs: scaling and composition with multiple sinks and sources** > diff --git a/Documentation/media/uapi/v4l/field-order.rst b/Documentation/media/uapi/v4l/field-order.rst > index e05fb1041363..7a1a0ac8e37a 100644 > --- a/Documentation/media/uapi/v4l/field-order.rst > +++ b/Documentation/media/uapi/v4l/field-order.rst > @@ -141,8 +141,8 @@ enum v4l2_field > Field Order, Top Field First Transmitted > ======================================== > > -.. figure:: fieldseq_tb.* > - :alt: fieldseq_tb.pdf / fieldseq_tb.svg > +.. kernel-figure:: fieldseq_tb.svg > + :alt: fieldseq_tb.svg > :align: center > > > @@ -151,7 +151,7 @@ Field Order, Top Field First Transmitted > Field Order, Bottom Field First Transmitted > =========================================== > > -.. figure:: fieldseq_bt.* > - :alt: fieldseq_bt.pdf / fieldseq_bt.svg > +.. kernel-figure:: fieldseq_bt.svg > + :alt: fieldseq_bt.svg > :align: center > > diff --git a/Documentation/media/uapi/v4l/pixfmt-nv12mt.rst b/Documentation/media/uapi/v4l/pixfmt-nv12mt.rst > index 32d0c8743460..a4d64edc6200 100644 > --- a/Documentation/media/uapi/v4l/pixfmt-nv12mt.rst > +++ b/Documentation/media/uapi/v4l/pixfmt-nv12mt.rst > @@ -33,8 +33,8 @@ Layout of macroblocks in memory is presented in the following figure. > > .. _nv12mt: > > -.. figure:: nv12mt.* > - :alt: nv12mt.pdf / nv12mt.svg > +.. kernel-figure:: nv12mt.svg > + :alt: nv12mt.svg > :align: center > > V4L2_PIX_FMT_NV12MT macroblock Z shape memory layout > @@ -50,8 +50,8 @@ interleaved. Height of the buffer is aligned to 32. > > .. _nv12mt_ex: > > -.. figure:: nv12mt_example.* > - :alt: nv12mt_example.pdf / nv12mt_example.svg > +.. kernel-figure:: nv12mt_example.svg > + :alt: nv12mt_example.svg > :align: center > > Example V4L2_PIX_FMT_NV12MT memory layout of macroblocks > diff --git a/Documentation/media/uapi/v4l/selection-api-003.rst b/Documentation/media/uapi/v4l/selection-api-003.rst > index 21686f93c38f..04e9384e1be8 100644 > --- a/Documentation/media/uapi/v4l/selection-api-003.rst > +++ b/Documentation/media/uapi/v4l/selection-api-003.rst > @@ -7,8 +7,8 @@ Selection targets > > .. _sel-targets-capture: > > -.. figure:: selection.* > - :alt: selection.pdf / selection.svg > +.. kernel-figure:: selection.svg > + :alt: selection.svg > :align: center > > Cropping and composing targets > diff --git a/Documentation/media/uapi/v4l/subdev-formats.rst b/Documentation/media/uapi/v4l/subdev-formats.rst > index d6152c907b8b..4fbf2e29e653 100644 > --- a/Documentation/media/uapi/v4l/subdev-formats.rst > +++ b/Documentation/media/uapi/v4l/subdev-formats.rst > @@ -1514,8 +1514,8 @@ be named ``MEDIA_BUS_FMT_SRGGB10_2X8_PADHI_LE``. > > .. _bayer-patterns: > > -.. figure:: bayer.* > - :alt: bayer.pdf / bayer.svg > +.. figure:: bayer.svg > + :alt: bayer.svg > :align: center > > **Figure 4.8 Bayer Patterns** > -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html