Subject: bug#29824: Meson 0.44.0 is broken with guix.

From: Fis Trivial <[email-masked]>
Date: Sat, 23 Dec 2017 19:18:58 +0000

I installed meson with command `guix package -i meson`

* Error:
$ meson --version

Traceback (most recent call last):
   File 
"/gnu/store/n53zdnl4l3gm9sg15bfwxp0wdrwrvhg4-meson-0.44.0/bin/.meson-real", 
line 17, in <module>
     from mesonbuild import mesonmain, mesonlib
   File 
"/gnu/store/n53zdnl4l3gm9sg15bfwxp0wdrwrvhg4-meson-0.44.0/lib/python3.5/site-packages/mesonbuild/mesonmain.py", 
line 18, in <module>
     from . import environment, interpreter, mesonlib
   File 
"/gnu/store/n53zdnl4l3gm9sg15bfwxp0wdrwrvhg4-meson-0.44.0/lib/python3.5/site-packages/mesonbuild/environment.py", 
line 17, in <module>
     from . import coredata
   File 
"/gnu/store/n53zdnl4l3gm9sg15bfwxp0wdrwrvhg4-meson-0.44.0/lib/python3.5/site-packages/mesonbuild/coredata.py", 
line 20, in <module>
     from .mesonlib import MesonException, commonpath
   File 
"/gnu/store/n53zdnl4l3gm9sg15bfwxp0wdrwrvhg4-meson-0.44.0/lib/python3.5/site-packages/mesonbuild/mesonlib.py", 
line 60, in <module>
     meson_command = python_command + [detect_meson_py_location()]
   File 
"/gnu/store/n53zdnl4l3gm9sg15bfwxp0wdrwrvhg4-meson-0.44.0/lib/python3.5/site-packages/mesonbuild/mesonlib.py", 
line 51, in detect_meson_py_location
     raise RuntimeError('Could not determine how to run Meson. Please 
file a bug with details.')
RuntimeError: Could not determine how to run Meson. Please file a bug 
with details.

I'm currently using Guix on top of Fedora 26. The installed version of 
meson is 0.44.0.

* Possible cause:
 From /mesonlib.py/: line 47~51, we have:
#+BEGIN_BLOCK python
     # The only thing remaining is to try to find the bundled executable and
     # pray distro packagers have not moved it.
     fname = os.path.join(os.path.dirname(__file__), '..', 'meson.py')
     if not os.path.exists(fname):
         raise RuntimeError('Could not determine how to run Meson. 
Please file a bug with details.')
#+END_BLOCK
which means meson will try to find the meson.py script at startup, but 
it seems Guix has renamed the this file with the new file name 
*.meson-real* and warp it with a shell script /meson/ in bin.