# -*- coding: utf-8 -*-
#
-# Copyright (C) 2015 - Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
+# SPDX-License-Identifier: LGPL-2.1-only
#
-# 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; version 2.1 of the License.
-#
-# 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, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# Copyright (C) 2015 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
+
+import os
+import sys
from distutils.core import setup, Extension
+PY_PATH_WARN_MSG = """
+-------------------------------------WARNING------------------------------------
+The install directory used:\n ({0})\nis not included in your PYTHONPATH.
+
+To add this directory to your Python search path permanently you can add the
+following command to your .bashrc/.zshrc:
+ export PYTHONPATH="${{PYTHONPATH}}:{0}"
+--------------------------------------------------------------------------------
+"""
+
+def main():
+ dist = setup(name='lttngust',
+ version='@PACKAGE_VERSION@',
+ description='LTTng-UST Python agent',
+ packages=['lttngust'],
+ package_dir={'lttngust': 'lttngust'},
+ options={'build': {'build_base': 'build'}},
+ url='http://lttng.org',
+ license='LGPL-2.1',
+ classifiers=[
+ 'Development Status :: 5 - Production/Stable',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3'
+ 'Topic :: System :: Logging',
+ ])
+
+# After the installation, we check that the install directory is included in
+# the Python search path and we print a warning message when it's not. We need
+# to do this because Python search path differs depending on the distro and
+# some distros don't include any `/usr/local/` (the default install prefix) in
+# the search path. This is also useful for out-of-tree installs and tests. It's
+# only relevant to make this check on the `install` command.
+
+ if 'install' in dist.command_obj:
+ install_dir = dist.command_obj['install'].install_libbase
+ if install_dir not in sys.path:
+ # We can't consider this an error because if affects every
+ # distro differently. We only warn the user that some
+ # extra configuration is needed to use the agent
+ abs_install_dir = os.path.abspath(install_dir)
+ print(PY_PATH_WARN_MSG.format(abs_install_dir))
-setup(name='lttngust',
- version='@PACKAGE_VERSION@',
- description='LTTng-UST Python agent',
- packages=['lttngust'],
- package_dir={'lttngust': 'lttngust'},
- options={'build': {'build_base': 'build'}},
- url='http://lttng.org',
- license='LGPL-2.1',
- classifiers=[
- 'Development Status :: 5 - Production/Stable',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)',
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3'
- 'Topic :: System :: Logging',
- ])
+if __name__ == '__main__':
+ main()