Skip to content

gst-env: use Path.open() in get_pkgconfig_variable_from_pcfile()

Antonio Ospite requested to merge (removed):fix-gst-env.py-for-python3.5 into master

The pcfile argument passed to get_target_install_filename() is guaranteed to be a Path() object so use the .open() method to open the file instead of the standard open() function.

This makes it possible to run gst-env.py on older systems with pyhton3.5 where the standard open() function cannot handle Path arguments.

The change fixes errors like the following:

-----------------------------------------------------------------------
$ ninja -C build/ devenv
ninja: Entering directory `build/'
[0/1] Running external command devenv
Traceback (most recent call last):
  File "/home/ao2/gst-build/gst-env.py", line 493, in <module>
    env = get_subprocess_env(options, gst_version)
  File "/home/ao2/gst-build/gst-env.py", line 342, in get_subprocess_env
    elif is_gio_module(target, filename, options.builddir):
  File "/home/ao2/gst-build/gst-env.py", line 121, in is_gio_module
    giomoduledir = PurePath(get_pkgconfig_variable(builddir, 'gio-2.0', 'giomoduledir'))
  File "/home/ao2/gst-build/gst-env.py", line 110, in get_pkgconfig_variable
    return get_pkgconfig_variable_from_pcfile(pcfile, varname)
  File "/home/ao2/gst-build/gst-env.py", line 89, in get_pkgconfig_variable_from_pcfile
    with open(pcfile, 'r', encoding='utf-8') as f:
TypeError: invalid file: PosixPath('/home/ao2/gst-build/build/meson-private/gio-2.0.pc')
FAILED: meson-devenv
-----------------------------------------------------------------------

The change looks reasonable by itself to me, but feel free to drop it if there is no interest in supporting python 3.5 since it's getting deprecated by meson too.

Thanks, Antonio

Merge request reports