mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 15:36:14 +01:00
013980d839
The python interpreter found by `/usr/bin/env python3` is not necessarily the same installation as the one that's found by meson's `pymod.find_installation('python')`. This means that even though meson is checking that the python installation it found includes the 'packaging' module, the scripts might not have access to that module when run. For distribution packaging, it's usually desirable to have python script interpreters be fully specified paths, rather than use `/usr/bin/env`, to ensure the scripts run using the expected python installation (i.e. the one where the python 'packaging' dependency is installed). The easiest way to fix this is to set the script interpreter to the `full_path()` of the python interpreter found by meson. The specific python interpreter that will be used can be selected through the use of a meson machine file by overriding the "python" program. Many distributions already have this set up using meson packaging helpers.
56 lines
2.0 KiB
Plaintext
Executable File
56 lines
2.0 KiB
Plaintext
Executable File
#!@PYTHON@
|
|
|
|
# GDBus - GLib D-Bus Library
|
|
#
|
|
# Copyright (C) 2008-2011 Red Hat, Inc.
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General
|
|
# Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
# Author: David Zeuthen <davidz@redhat.com>
|
|
|
|
|
|
import os
|
|
import sys
|
|
|
|
srcdir = os.getenv('UNINSTALLED_GLIB_SRCDIR', None)
|
|
filedir = os.path.dirname(__file__)
|
|
|
|
if srcdir is not None:
|
|
path = os.path.join(srcdir, 'gio', 'gdbus-2.0')
|
|
elif os.path.basename(filedir) == 'bin':
|
|
# Make the prefix containing gdbus-codegen 'relocatable' at runtime by
|
|
# adding /some/prefix/bin/../share/glib-2.0 to the python path
|
|
path = os.path.join(filedir, '..', 'share', 'glib-2.0')
|
|
else:
|
|
# Assume that the modules we need are in the current directory and add the
|
|
# parent directory to the python path.
|
|
path = os.path.join(filedir, '..')
|
|
|
|
# Canonicalize, then do further testing
|
|
path = os.path.abspath(path)
|
|
|
|
# If the above path detection failed, use the hard-coded datadir. This can
|
|
# happen when, for instance, bindir and datadir are not in the same prefix or
|
|
# on Windows where we cannot make any guarantees about the directory structure.
|
|
#
|
|
# In these cases our installation cannot be relocatable, but at least we should
|
|
# be able to find the codegen module.
|
|
if not os.path.isfile(os.path.join(path, 'codegen', 'codegen_main.py')):
|
|
path = os.path.join('@DATADIR@', 'glib-2.0')
|
|
|
|
sys.path.insert(0, path)
|
|
from codegen import codegen_main
|
|
|
|
sys.exit(codegen_main.codegen_main())
|