From patchwork Thu Mar 2 19:56:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Mauro Carvalho Chehab X-Patchwork-Id: 9601927 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 4C4C26016C for ; Fri, 3 Mar 2017 01:54:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3D768285A1 for ; Fri, 3 Mar 2017 01:54:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 322D5285D4; Fri, 3 Mar 2017 01:54:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B245B285A1 for ; Fri, 3 Mar 2017 01:54:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6A7EF6ECD9; Fri, 3 Mar 2017 01:52:00 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from osg.samsung.com (ec2-52-27-115-49.us-west-2.compute.amazonaws.com [52.27.115.49]) by gabe.freedesktop.org (Postfix) with ESMTP id 5D5AB6EC2C for ; Thu, 2 Mar 2017 19:56:48 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by osg.samsung.com (Postfix) with ESMTP id 3A289A0DE2; Thu, 2 Mar 2017 19:57:10 +0000 (UTC) X-Virus-Scanned: amavisd-new at osg.samsung.com Received: from osg.samsung.com ([127.0.0.1]) by localhost (s-opensource.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FugRT0ipvHB9; Thu, 2 Mar 2017 19:57:09 +0000 (UTC) Received: from vento.lan (177.41.125.80.dynamic.adsl.gvt.net.br [177.41.125.80]) by osg.samsung.com (Postfix) with ESMTPSA id D029AA0C73; Thu, 2 Mar 2017 19:57:06 +0000 (UTC) Date: Thu, 2 Mar 2017 16:56:42 -0300 From: Mauro Carvalho Chehab To: Markus Heiser Subject: Re: [PATCH] docs-rst: automatically convert Graphviz and SVG images Message-ID: <20170302165642.7d25d51b@vento.lan> In-Reply-To: <20170302163422.2fbd1385@vento.lan> References: <20170302151638.1882-2-daniel.vetter@ffwll.ch> <20170302154002.4552-1-daniel.vetter@ffwll.ch> <20170302150603.6c97765f@vento.lan> <20170302163422.2fbd1385@vento.lan> Organization: Samsung X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-Mailman-Approved-At: Fri, 03 Mar 2017 01:51:38 +0000 Cc: Jonathan Corbet , Daniel Vetter , DRI Development , Linux Doc Mailing List , Laurent Pinchart , Daniel Vetter X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Em Thu, 2 Mar 2017 16:34:22 -0300 Mauro Carvalho Chehab escreveu: > Em Thu, 2 Mar 2017 20:06:39 +0100 > Markus Heiser escreveu: > > > 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 . 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)) > > Yes, this fixed. I actually did: > > - sys.stderr.write(err) > + sys.stderr.write(str(err)) > + sys.stderr.write("\n") > > It is now printing: > b'' > > I added the \n print to avoid it to be mixed with the "writing output" > prints. > > No idea how to make sense from it - but clearly, the error report > logic require some care ;-) I'm not a Python programmer, but googling about the right syntax for p.communicate(), I suspect that the fix should be similar to this code snippet below. Without the if, this code: sys.stderr.write("Error:" + repr(p.communicate()[0]) + "\n") prints: Error:None So, I guess the code below is ok. Markus, please check. Daniel, Feel free to merge it with the original patch if OK. diff --git a/Documentation/sphinx/kfigure.py b/Documentation/sphinx/kfigure.py index 32eab0f4cfba..b154c5f17752 100644 --- a/Documentation/sphinx/kfigure.py +++ b/Documentation/sphinx/kfigure.py @@ -217,11 +217,12 @@ def dot2format(dot_fname, out_fname): 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 + + if exit_code == 0: + sys.stderr.write("Error:" + repr(p.communicate()[0]) + "\n") + out.flush() return bool(exit_code == 0) @@ -239,11 +240,12 @@ 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) exit_code = p.returncode + + if exit_code == 0: + sys.stderr.write("Error:" + repr(p.communicate()[0]) + "\n") + return bool(exit_code == 0)