Subject: bug#70910: xdot has stopped working after update to 1.3

From: Ada Stevenson <[email-masked]>
Date: Mon, 13 May 2024 04:44:29 +0000

Hi Guix,

I was trying to use `xdot` to view to output of `guix graph` (`guix 
graph bash | xdot -`). However, it crashed instantly with the following 
stack trace:

> dot: No such file or directory
> Traceback (most recent call last):
>   File 
> "/gnu/store/r9mrqfpci65hsypgm7r5kpzxlm6fcd1l-xdot-1.3/bin/.xdot-real", 
> line 33, in <module>
>     sys.exit(load_entry_point('xdot==1.3', 'gui_scripts', 'xdot')())
>   File 
> "/gnu/store/r9mrqfpci65hsypgm7r5kpzxlm6fcd1l-xdot-1.3/lib/python3.10/site-packages/xdot/__main__.py", 
> line 80, in main
>     win.set_dotcode(sys.stdin.buffer.read())
>   File 
> "/gnu/store/r9mrqfpci65hsypgm7r5kpzxlm6fcd1l-xdot-1.3/lib/python3.10/site-packages/xdot/ui/window.py", 
> line 712, in set_dotcode
>     if self.dotwidget.set_dotcode(dotcode, filename):
>   File 
> "/gnu/store/r9mrqfpci65hsypgm7r5kpzxlm6fcd1l-xdot-1.3/lib/python3.10/site-packages/xdot/ui/window.py", 
> line 148, in set_dotcode
>     if self._set_dotcode(dotcode, filename, center=center):
>   File 
> "/gnu/store/r9mrqfpci65hsypgm7r5kpzxlm6fcd1l-xdot-1.3/lib/python3.10/site-packages/xdot/ui/window.py", 
> line 134, in _set_dotcode
>     xdotcode = self.run_filter(dotcode)
>   File 
> "/gnu/store/r9mrqfpci65hsypgm7r5kpzxlm6fcd1l-xdot-1.3/lib/python3.10/site-packages/xdot/ui/window.py", 
> line 129, in run_filter
>     return xdotcode
> UnboundLocalError: local variable 'xdotcode' referenced before assignment

Using `guix time-machine` I was able to identify the regression commit 
as 2aeb9faa421635c0531d96658414e5bf288a3142 
<http://git.savannah.gnu.org/cgit/guix.git/commit/?id=2aeb9faa421635c0531d96658414e5bf288a3142> 
(when Ludo' updated it to 1.3). Using `xdot` within the time machine 
inside the parent commit works.

I've cc'd Ludo' and hopefully we can fix this!

Warmly,

Ada