Currently gst-uninstalled.py changes the current directory to the root
of the gst-build before executing execute the command passed as
arguments. This is unnecessary, it creates confusion and makes scripting
more cumbersome. This patch fixes that.
Validate plugins are automatically scanned from GST_VALIDATE_PLUGIN_PATH
instead. Adding them to GST_PLUGIN_PATH causes race conditions as the
plugins may be loaded before validate itself.
This commit adds a .gitlab-ci.yml file, which uses a feature
to fetch the config from a centralized repository. The intent is
to have all the gstreamer modules use the same configuration.
The configuration is currently hosted at the gst-ci repository
under the gitlab/ci_template.yml path.
We now use a different approach to setting up our
uninstalled python environment:
We add the gst-python folder to PYTHONPATH, and it no
longer contains __init__.py files. This means that
import gi.overrides correctly loads pygobject's __init__
module, but import gi.overrides.Gst also works, as __init__
files are no longer required by python.
Currently, gst-uninstalled is using sitecustomize.py for adding gi
override tweaks. However, if the standard Python libraries come before
this file in sys.path, then sitecustomize.py will never be run because
the "import sitecustomize" done in site.py will use the standard Python
libraries instead. This can be seen by running "import sitecustomize;
print(sitecustomize.__file__)" inside the uninstalled environment, as
well as by checking gi.override.__path__ and seeing that the tweaks are
missing (and the overrides are misbehaving).
Switch to using usercustomize.py, which has no match in the standard
libraries and thus will be correctly imported.
https://bugzilla.gnome.org/show_bug.cgi?id=797011
We should not default to -Werror because that's not what we default to
anywhere in gstreamer, and it's bad for releases anyway. The CI will
be fixed to pass --werror manually.
Don't assume that meson is always a python script, on Windows it can
be (and soon will almost always be) an executable.
See: Meson MSI installer and https://github.com/mesonbuild/meson/pull/4004
Meson was literally trying to check out tag/revision
'a1b3f07c5271f312997fcc3451237031444c4475 # 1.8.0 + fix for gcc 8.'
which doesn't exist of course.