From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B062F158089 for ; Wed, 8 Nov 2023 18:49:58 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id F22442BC013; Wed, 8 Nov 2023 18:49:57 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id D84C62BC013 for ; Wed, 8 Nov 2023 18:49:57 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1ED09335C31 for ; Wed, 8 Nov 2023 18:49:57 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id A93B6EA8 for ; Wed, 8 Nov 2023 18:49:55 +0000 (UTC) From: "Matt Turner" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Turner" Message-ID: <1699469378.b40b46c37af84c1714e668b06d2df6e0928d6cb2.mattst88@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/xdot/, media-gfx/xdot/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: media-gfx/xdot/Manifest media-gfx/xdot/files/backport-2ace1a1-issue-92.patch media-gfx/xdot/xdot-1.2-r1.ebuild X-VCS-Directories: media-gfx/xdot/ media-gfx/xdot/files/ X-VCS-Committer: mattst88 X-VCS-Committer-Name: Matt Turner X-VCS-Revision: b40b46c37af84c1714e668b06d2df6e0928d6cb2 X-VCS-Branch: master Date: Wed, 8 Nov 2023 18:49:55 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 5003e141-9dba-418a-b1e4-4ba2b5a8864b X-Archives-Hash: 5e9e3ab898d1d15ce179464e3c87c466 commit: b40b46c37af84c1714e668b06d2df6e0928d6cb2 Author: Matt Turner gentoo org> AuthorDate: Wed Nov 8 18:48:15 2023 +0000 Commit: Matt Turner gentoo org> CommitDate: Wed Nov 8 18:49:38 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b40b46c3 media-gfx/xdot: Drop old versions Signed-off-by: Matt Turner gentoo.org> media-gfx/xdot/Manifest | 1 - .../xdot/files/backport-2ace1a1-issue-92.patch | 151 --------------------- media-gfx/xdot/xdot-1.2-r1.ebuild | 45 ------ 3 files changed, 197 deletions(-) diff --git a/media-gfx/xdot/Manifest b/media-gfx/xdot/Manifest index c0ad442da31e..c9d87a4a1fbe 100644 --- a/media-gfx/xdot/Manifest +++ b/media-gfx/xdot/Manifest @@ -1,2 +1 @@ -DIST xdot-1.2.tar.gz 136057 BLAKE2B 484a3513ec3d67dbc6e167f171e7f70977ba2472766f25aa7cc088235f99470bfac5fac67368ea53b633320752a928634840ff3dcccc6b96795d3b7c203db922 SHA512 b4d3b15114b982c7c38cc71c0602f6d1ba9874c7315c2b8c4a8a48bf7674e9b38bf19a0d4a2d319acc9a29cf8f177a651d4e213761e88b0b3cb26e95e8a92dda DIST xdot-1.3.tar.gz 144187 BLAKE2B 38e89a8c47dd519a79221634ed3e451cc5ba9c0448545802561e92876c06af599b3327d2ab808d5f81842826baddc42d3921da9c6885a2b6485e39c79de80c9f SHA512 8d66a64182970b968adbb5031d17f0b2b3709d4daa0f6d32ba0e3616177be1e43bcaa62a3133a3a0d92f8468dbc12147918d04b5d543b94b5df6d39b7af31e17 diff --git a/media-gfx/xdot/files/backport-2ace1a1-issue-92.patch b/media-gfx/xdot/files/backport-2ace1a1-issue-92.patch deleted file mode 100644 index 8cb76a43fe55..000000000000 --- a/media-gfx/xdot/files/backport-2ace1a1-issue-92.patch +++ /dev/null @@ -1,151 +0,0 @@ -https://github.com/jrfonseca/xdot.py/issues/92 -https://bugs.gentoo.org/873490 - -From 2ace1a12d78423d9e7af20fdb0bca34827010408 Mon Sep 17 00:00:00 2001 -From: Jose Fonseca -Date: Tue, 28 Sep 2021 13:19:49 +0100 -Subject: [PATCH] Handle xdot backslashes correctly. - -Irrespectively of graphviz version. - -Fixes https://github.com/jrfonseca/xdot.py/issues/92 ---- - tests/issue_92_a.dot | 3 +++ - tests/issue_92_b.dot | 3 +++ - xdot/dot/parser.py | 26 +++++++++++++++++++++----- - xdot/ui/window.py | 11 ++++++++++- - 4 files changed, 37 insertions(+), 6 deletions(-) - create mode 100644 tests/issue_92_a.dot - create mode 100644 tests/issue_92_b.dot - -diff --git a/tests/issue_92_a.dot b/tests/issue_92_a.dot -new file mode 100644 -index 0000000..ea486b0 ---- /dev/null -+++ b/tests/issue_92_a.dot -@@ -0,0 +1,3 @@ -+digraph { -+ 1 [label="a\\00"] -+} -diff --git a/tests/issue_92_b.dot b/tests/issue_92_b.dot -new file mode 100644 -index 0000000..ba90566 ---- /dev/null -+++ b/tests/issue_92_b.dot -@@ -0,0 +1,3 @@ -+digraph { -+ 1 [label="a\\b"] -+} -diff --git a/xdot/dot/parser.py b/xdot/dot/parser.py -index 4244e03..6578c23 100644 ---- a/xdot/dot/parser.py -+++ b/xdot/dot/parser.py -@@ -14,8 +14,11 @@ - # along with this program. If not, see . - # - import colorsys -+import re - import sys - -+from distutils.version import LooseVersion -+ - from .lexer import ParseError, DotLexer - - from ..ui.colors import lookup_color -@@ -85,7 +88,14 @@ class XDotAttrParser: - - http://www.graphviz.org/doc/info/output.html#d:xdot - """ - -- def __init__(self, parser, buf): -+ def __init__(self, parser, buf, broken_backslashes): -+ -+ # `\` should be escaped as `\\`, but older versions of graphviz xdot -+ # output failed to properly escape it. See also -+ # https://github.com/jrfonseca/xdot.py/issues/92 -+ if not broken_backslashes: -+ buf = re.sub(br'\\(.)', br'\1', buf) -+ - self.parser = parser - self.buf = buf - self.pos = 0 -@@ -427,10 +437,16 @@ class XDotParser(DotParser): - - XDOTVERSION = '1.7' - -- def __init__(self, xdotcode): -+ def __init__(self, xdotcode, graphviz_version=None): - lexer = DotLexer(buf=xdotcode) - DotParser.__init__(self, lexer) - -+ # https://github.com/jrfonseca/xdot.py/issues/92 -+ self.broken_backslashes = False -+ if graphviz_version is not None and \ -+ LooseVersion(graphviz_version) < LooseVersion("2.46.0"): -+ self.broken_backslashes = True -+ - self.nodes = [] - self.edges = [] - self.shapes = [] -@@ -480,7 +496,7 @@ def handle_graph(self, attrs): - - for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): - if attr in attrs: -- parser = XDotAttrParser(self, attrs[attr]) -+ parser = XDotAttrParser(self, attrs[attr], self.broken_backslashes) - self.shapes.extend(parser.parse()) - - def handle_node(self, id, attrs): -@@ -502,7 +518,7 @@ def handle_node(self, id, attrs): - shapes = [] - for attr in ("_draw_", "_ldraw_"): - if attr in attrs: -- parser = XDotAttrParser(self, attrs[attr]) -+ parser = XDotAttrParser(self, attrs[attr], self.broken_backslashes) - shapes.extend(parser.parse()) - try: - url = attrs['URL'] -@@ -525,7 +541,7 @@ def handle_edge(self, src_id, dst_id, attrs): - shapes = [] - for attr in ("_draw_", "_ldraw_", "_hdraw_", "_tdraw_", "_hldraw_", "_tldraw_"): - if attr in attrs: -- parser = XDotAttrParser(self, attrs[attr]) -+ parser = XDotAttrParser(self, attrs[attr], self.broken_backslashes) - shapes.extend(parser.parse()) - if shapes: - src = self.node_by_name[src_id] -diff --git a/xdot/ui/window.py b/xdot/ui/window.py -index 893bd1d..e27f000 100644 ---- a/xdot/ui/window.py -+++ b/xdot/ui/window.py -@@ -56,6 +56,7 @@ class DotWidget(Gtk.DrawingArea): - } - - filter = 'dot' -+ graphviz_version = None - - def __init__(self): - Gtk.DrawingArea.__init__(self) -@@ -100,6 +101,7 @@ def error_dialog(self, message): - - def set_filter(self, filter): - self.filter = filter -+ self.graphviz_version = None - - def run_filter(self, dotcode): - if not self.filter: -@@ -153,7 +155,14 @@ def set_dotcode(self, dotcode, filename=None, center=True): - - def set_xdotcode(self, xdotcode, center=True): - assert isinstance(xdotcode, bytes) -- parser = XDotParser(xdotcode) -+ if self.graphviz_version is None: -+ stdout = subprocess.check_output([self.filter, '-V'], stderr=subprocess.STDOUT) -+ stdout = stdout.rstrip() -+ mo = re.match(br'^.* - .* version (?P.*) \(.*\)$', stdout) -+ assert mo -+ self.graphviz_version = mo.group('version').decode('ascii') -+ -+ parser = XDotParser(xdotcode, graphviz_version=self.graphviz_version) - self.graph = parser.parse() - self.zoom_image(self.zoom_ratio, center=center) - diff --git a/media-gfx/xdot/xdot-1.2-r1.ebuild b/media-gfx/xdot/xdot-1.2-r1.ebuild deleted file mode 100644 index 32e4f34fbe3a..000000000000 --- a/media-gfx/xdot/xdot-1.2-r1.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -PYTHON_COMPAT=( python3_{9..11} ) - -MY_PN=xdot.py -EGIT_REPO_URI="https://github.com/jrfonseca/${MY_PN}" - -if [[ ${PV} = 9999* ]]; then - GIT_ECLASS="git-r3" - SRC_URI="" -else - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86" - MY_P="${MY_PN}-${PV}" - S="${WORKDIR}/${MY_P}" - SRC_URI="https://github.com/jrfonseca/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" -fi - -inherit ${GIT_ECLASS} distutils-r1 virtualx - -DESCRIPTION="Interactive viewer for Graphviz dot files" -HOMEPAGE="https://github.com/jrfonseca/xdot.py" - -LICENSE="LGPL-2+" -SLOT="0" -PATCHES=( "${FILESDIR}/backport-2ace1a1-issue-92.patch" ) - -DEPEND=" - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/pycairo[${PYTHON_USEDEP}] - dev-python/pygobject:3[${PYTHON_USEDEP}] - media-gfx/graphviz - test? ( x11-libs/gtk+:3[X] ) -" -RDEPEND="${DEPEND}" - -run_test() { - cd tests && "${EPYTHON}" ../test.py *.dot graphs/*.gv - return "${?}" -} - -python_test() { - virtx run_test -}