Skip to content
This repository has been archived by the owner on Jan 10, 2023. It is now read-only.

Fail to install SEAPI on Linux #23

Open
dvrogozh opened this issue Jun 26, 2018 · 8 comments
Open

Fail to install SEAPI on Linux #23

dvrogozh opened this issue Jun 26, 2018 · 8 comments

Comments

@dvrogozh
Copy link

I have tried community expected intuitive way to build cmake-powered project, i.e.:

git clone https://github.com/intel/IntelSEAPI.git seapi && cd seapi
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/home/dvrogozh/git/github/sea_install ..
make -j8
make install

While configuration and build succeeded, make install failed:

# make install
[ 23%] Built target ittnotify
[ 61%] Built target IntelSEAPI
[100%] Built target sea_itt_lib
Install the project...
-- Install configuration: ""
-- Installing: /home/dvrogozh/git/github/sea_install/./README.txt
-- Installing: /home/dvrogozh/git/github/sea_install/./include
-- Installing: /home/dvrogozh/git/github/sea_install/./include/ittnotify.f90
-- Installing: /home/dvrogozh/git/github/sea_install/./include/ittnotify.h
-- Installing: /home/dvrogozh/git/github/sea_install/./include/jitprofiling.h
-- Installing: /home/dvrogozh/git/github/sea_install/./include/legacy
-- Installing: /home/dvrogozh/git/github/sea_install/./include/legacy/ittnotify.h
-- Installing: /home/dvrogozh/git/github/sea_install/./include/libittnotify.h
-- Installing: /home/dvrogozh/git/github/sea_install/./include/llvm_jit_event_listener.hpp
-- Installing: /home/dvrogozh/git/github/sea_install/include/itt_notify.hpp
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/sea.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/sea_runtool.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/strings.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/*.py to runtool:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/sea.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/sea_runtool.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/strings.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/csv.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/etw.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/ftrace.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/mac_log.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/osx.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/perf.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/pprof_importer.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/qnx.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/*.py to runtool/importers:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/csv.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/etw.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/ftrace.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/mac_log.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/osx.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/perf.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/pprof_importer.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/qnx.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/importers/pprof_importer/profile.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/pprof_importer/*.py to runtool/importers/pprof_importer:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/importers/pprof_importer/profile.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/BestTraceFormat.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/ChromeTracing.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/DGML.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/GraphViz.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/QtCreatorProfiler.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/Stat.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/exporters/memory.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/*.py to runtool/exporters:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/BestTraceFormat.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/ChromeTracing.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/DGML.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/GraphViz.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/QtCreatorProfiler.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/Stat.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/exporters/memory.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/collectors/android.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/collectors/ftrace.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/collectors/osx.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/collectors/win.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/*.py to runtool/collectors:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/android.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/ftrace.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/osx.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/collectors/win.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/Adreno.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/MSNT_SystemTrace.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/PVR.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/SteamVR.py
-- Installing: /home/dvrogozh/git/github/sea_install/runtool/decoders/i915.py

###     Install /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/*.py to runtool/decoders:
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/Adreno.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/MSNT_SystemTrace.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/PVR.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/SteamVR.py
                /home/dvrogozh/git/github/IntelSEAPI/runtool/decoders/i915.py
CMake Error at cmake_install.cmake:107 (file):
  file INSTALL cannot find "/home/dvrogozh/git/github/IntelSEAPI/bin".


make: *** [install] Error 1

Other comments:

  • ./README.txt - installation location is invalid (with --prefix=/usr it will land in /usr which is wrong), please, change to $DOCDIR, i.e. $DOCDIR/seapi/README.txt, usually /usr/doc/seapi/README.txt
  • include/ittnotify.f90 and others - installation location is invalid, please, make sure to install things as 'include/seapi/ittnotify.f90', i.e. in separate seapi folder
  • runtool/sea.py - location is invalid, this stuff should eventually be in $LIBEXECDIR/seapi, usually /usr/libexec/seapi/sea.py

I strongly recommend to review this: https://cmake.org/cmake/help/v3.10/module/GNUInstallDirs.html. Make sure to use only these locations and use this cmake extension.

@araud
Copy link
Contributor

araud commented Jun 26, 2018

please use "python ./buildall.py"

@dvrogozh
Copy link
Author

please use "python ./buildall.py"

No. That's actually a feedback: drop the wrapper or at least support direct cmake build and wrapper at the same time. That's important.

@raphaelcohn
Copy link

Yep, very important. We shouldn't require python to be installed - and all its versioning pain - just to do a cmake install.

@araud
Copy link
Contributor

araud commented Oct 26, 2018

You will inevitably need python to run SEAPI collection and transformation. It is written in python. So there's no way to avoid it anyways.

But if anyone is willing to contribute, please be aware that prerequisite checks that are written in python (see buildall.py) will be quite challenging to express in cmake. However I do believe it is possible. Just not as simple as in python.

@dvrogozh
Copy link
Author

@araud : you are forgetting the following use case: the one may not want to collect any data at all, but build and distribute a software with the ability to collect data. I.e.:

  • I build a package (library, application, whatever) with ITT support, but don't collect anything myself and give it to someone else
  • This another guy may want to collect some data

In this case I don't care about python at all. The only thing I care is .h, .a (or .so) and .pc files to build my package.

@araud
Copy link
Contributor

araud commented Oct 26, 2018

That's right. But complexity of the prereqs checks is still there. So if anyone has time to separate ITT build from the rest (which should dramatically simplify the prereq checks part) - that indeed would allow to build without python involved.
But given that Mac and Linux have python preinstalled... I wouldn't invest too much time on that.
Sounds like a good task for the Summer Camp students ;)

@dvrogozh
Copy link
Author

This issue is about installing seapi. If you have python as prerequisite, so be it. But why you fail to install the project? This gives a complexity to other projects and reduces adoption of the ITT and SEAPI. Please, fix.

@raphaelcohn
Copy link

@araud If I'm using SEAPI python collectors. Besides, installation and usage isn't necessarily the same system. Indeed, good practice is to make sure one can function without the other.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants