X-Git-Url: http://git.efficios.com/?p=deliverable%2Flttng-ivc.git;a=blobdiff_plain;f=lttng_ivc%2Futils%2Fproject.py;h=5111819d432ed93c75d890bfff40d7c432c91bb9;hp=399b9266bb0765d92bd14f3b88c5de6e8adc8cf7;hb=8e2c5f79e23839ec13866fc4827a1c402aab1687;hpb=f0acf3f3aa539dd002ac6cc05596ab9fb7ac3c55 diff --git a/lttng_ivc/utils/project.py b/lttng_ivc/utils/project.py index 399b926..5111819 100644 --- a/lttng_ivc/utils/project.py +++ b/lttng_ivc/utils/project.py @@ -1,3 +1,23 @@ +# Copyright (c) 2017 Jonathan Rajotte-Julien +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + import os import shutil import git @@ -6,6 +26,7 @@ import logging import lttng_ivc.settings as Settings from lttng_ivc.utils.utils import sha256_checksum +from lttng_ivc.utils.utils import find_dir, find_file _logger = logging.getLogger('project') @@ -34,6 +55,7 @@ class Project(object): self.isBuilt = False self.isConfigured = False self.isInstalled = False + self.skip = False self.basedir = tmpdir self.log_path = os.path.join(tmpdir, "log") @@ -306,12 +328,34 @@ class Lttng_modules(Project): p.check_returncode() self.isInstalled = True + def autobuild(self): + try: + super(Lttng_modules, self).autobuild() + except subprocess.CalledProcessError as e: + self.skip = True + class Lttng_ust(Project): def __init__(self, label, git_path, sha1, tmpdir): super(Lttng_ust, self).__init__(label=label, git_path=git_path, sha1=sha1, tmpdir=tmpdir) self.custom_configure_flags.extend(['--disable-man-pages']) + self.custom_configure_flags.extend(['--enable-python-agent']) + self.custom_configure_flags.extend(['--enable-java-agent-jul']) + + jul_path = os.path.join(self.installation_path, + "share/java/liblttng-ust-agent.jar") + classpath = ":".join([jul_path, '.']) + self.add_special_env_variable("CLASSPATH", classpath) + + def install(self): + super(Lttng_ust, self).install() + python_path = find_dir(self.installation_path, "lttngust") + if python_path: + # Fetch the parent of lttngust folder + python_path = os.path.dirname(python_path) + self.add_special_env_variable("PYTHONPATH", python_path) + class Lttng_tools(Project): @@ -321,6 +365,15 @@ class Lttng_tools(Project): self.add_special_env_variable("LTTNG_SESSION_CONFIG_XSD_PATH", os.path.join(self.installation_path, "share/xml/lttng/")) + # Find the mi xsd + for xsd in Settings.mi_xsd_file_name: + mi = find_file(self.source_path, xsd) + if mi: + break + if not mi: + raise Exception("MI xsd not found") + self.mi_xsd = mi + class Babeltrace(Project): pass