LINUX.ORG.RU

Помогите собрать rstudio

 , ,


1

2

Хочу собрать свежий rstudio (0.99.661, скачал с сайта https://github.com/rstudio/rstudio/archive/v0.99.661.tar.gz ). К сожалению, последний ебилд 0.98.1091 (этот собирался нормально).

Прежде чем писать свой ебилд, решил попробовать просто собрать руками. То есть распаковал и запустил

cmake .

И вижу такой выхлоп.

-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- LSB release: gentoo
-- Boost version: 1.56.0
-- Found the following Boost libraries:
--   date_time
--   filesystem
--   iostreams
--   program_options
--   regex
--   signals
--   system
--   thread
--   chrono
-- Performing Test HAVE_SCANDIR_POSIX
-- Performing Test HAVE_SCANDIR_POSIX - Success
-- Looking for SA_NOCLDWAIT
-- Looking for SA_NOCLDWAIT - found
-- Looking for SO_PEERCRED
-- Looking for SO_PEERCRED - found
-- Looking for inotify_init1
-- Looking for inotify_init1 - found
-- Looking for getpeereid
-- Looking for getpeereid - not found
-- Looking for setresuid
-- Looking for setresuid - found
-- Performing Test PAM_MESSAGE_CONST
-- Performing Test PAM_MESSAGE_CONST - Success
-- Found PAM: /usr/lib64/libpam.so;/usr/lib64/libdl.so
-- Found LibR: /usr/lib64/R  
-- Found R: /usr/lib64/R
-- Performing Test LIBR_MINIMUM_VERSION
-- Performing Test LIBR_MINIMUM_VERSION - Success
CMake Error at src/cpp/desktop/CMakeLists.txt:69 (get_filename_component):
  get_filename_component called with incorrect number of arguments


CMake Error at src/cpp/desktop/CMakeLists.txt:83 (find_package):
  By not providing "FindQt5Quick.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5Quick",
  but CMake did not find one.

  Could not find a package configuration file provided by "Qt5Quick" with any
  of the following names:

    Qt5QuickConfig.cmake
    qt5quick-config.cmake

  Add the installation prefix of "Qt5Quick" to CMAKE_PREFIX_PATH or set
  "Qt5Quick_DIR" to a directory containing one of the above files.  If
  "Qt5Quick" provides a separate development package or SDK, be sure it has
  been installed.


-- Configuring incomplete, errors occurred!
See also "/tmp/rstudio-0.99.661/CMakeFiles/CMakeOutput.log".
See also "/tmp/rstudio-0.99.661/CMakeFiles/CMakeError.log".

В CMakeOutput и CMakeError смотрел - ничего интересного.

Гуру cmake (я знаю, они тут есть) - подскажите, что не так - куда копать? Сильнее всего смущает первая ошибка «get_filename_component called with incorrect number of arguments» - мало похоже на проблему в системе - больше на косяк в скрипте сборки - ибо неправильное число аргументов?.. или несовместимая версия cmake (поломали обратную совместимость где-то, что в старой версии было одно число аргументов - в новой другое?)

Вторая ошибка тоже непонятная. qt-5 установлен, включая qtquick1 (5.4.2).

cmake версии 3.3.0 (3.2.2 тоже пробовал).

★★★★★

Последнее исправление: BattleCoder (всего исправлений: 1)

# cd /var/db/repos/my-repo-name/
# mkdir -p sci-mathematics/rstudio
# cd sci-mathematics/rstudio

# rsync -av /var/db/repos/gentoo/sci-mathematics/rstudio/* .
# cp rstudio-0.98.1091.ebuild rstudio-0.99.661.ebuild
# ebuild rstudio-0.99.661.ebuild digest

# emerge -1 sci-mathematics/rstudio

в большинстве случаев срабатывает

anTaRes ★★★★
()
Ответ на: комментарий от anTaRes

Конкретно в этом не сработает. Именно потому что там всё равно тот же самый cmake запускается. а так да - в самых простых случаях я просто переименовываю версии в ебилдах. :)

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от equeim

Да, qtdeclarative действительно не установлен (4-ка установлена, 5-ка нет). Сейчас попробую.

Какие-то кривые пакеты видимо у меня когда-то потянули qt5 зависимостью... Надо будет поставить весь qt5 целиком.

А в случае rstudio тогда qtdeclarative в ебилде прописать зависимостью.

BattleCoder ★★★★★
() автор топика

Это то поделие с интерфейсом на вебките? А qtquick-то ему зачем? Анимированных свистелок добавили?

anonymous
()
Ответ на: комментарий от equeim

Теперь следующая ошибка

CMake Error at src/cpp/desktop/CMakeLists.txt:84 (find_package):
  By not providing "FindQt5Positioning.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "Qt5Positioning", but CMake did not find one.

  Could not find a package configuration file provided by "Qt5Positioning"
  with any of the following names:

    Qt5PositioningConfig.cmake
    qt5positioning-config.cmake

  Add the installation prefix of "Qt5Positioning" to CMAKE_PREFIX_PATH or set
  "Qt5Positioning_DIR" to a directory containing one of the above files.  If
  "Qt5Positioning" provides a separate development package or SDK, be sure it
  has been installed.

Решилось установкой qtpositioning. Потом аналогично qtsvg, qtxml. Добавлю это всё в зависимости.

BattleCoder ★★★★★
() автор топика
Последнее исправление: BattleCoder (всего исправлений: 1)
Ответ на: комментарий от anTaRes

Ага, очень похоже, что старая версия работала под qt4, а новая теперь без предупреждения (минорщина же) перевели на qt5. Пора бы им версию 1.0 выпускать - они всё 0.99...

BattleCoder ★★★★★
() автор топика

К сожалению, это пока не всё. Вот очередное сообщение об ошибке.

CMake Error at src/cpp/session/CMakeLists.txt:23 (message):
  Dictionaries not found (re-run install-dependencies script to install)

Ладно - это уже завтра буду разбираться. На свежую голову. Возможно в лучших традициях gentoo придётся заплатку делать (ибо там их уже лежит несколько для старых версий в files)... либо в src_unpack что-то добавить, чего не хватает...

BattleCoder ★★★★★
() автор топика

Продолжаю разбираться.

Итак, основная суть старых ебилдов - это заплатки. Увы, ванильный rstudio в gentoo не собирается - я так понимаю, это либо сложность и плохая переносимость cmake, либо разработчикам этого rstudio немного положить на пользователей gentoo, а под ubuntu у них всё собирается. :) Ну да не беда.

В старых версиях был набор заплаток, в новых не работает. Всё просто - исходники обновились - кое-какие заплатки «сломались» - не могут найти в нужной строчке нужного текста, который заменить.

Пытаюсь понять, как же это отлаживать. Вот я могу, к примеру, запускать команду ebuild /path/to/ebuild prepare - это запускает всё, что внутри src_prepare() {}, а там и есть запуск команды epatch.

Как это правильно запустить из консоли?.. Где можно вообще почитать описание синтаксиса patch-файлов для чайников? с нуля чтобы разобраться... а то не уверен, что смысл всех строчек понимаю, например, вот таких:

diff --git a/CMakeGlobals.txt b/CMakeGlobals.txt
index cc10191..f75b85a 100644
--- a/CMakeGlobals.txt
+++ b/CMakeGlobals.txt

Дальше идут номера диапазона строк, и, я так понимаю, сами строки (под минусом то, что удалить, под плюсом то, что добавить)

@@ -105,7 +105,7 @@ else()
    else()
      set(RSTUDIO_INSTALL_BIN bin)
    endif()
-   set(RSTUDIO_INSTALL_SUPPORTING .)
+   set(RSTUDIO_INSTALL_SUPPORTING ${DISTRO_SHARE})
 endif()

Кажется, понял (экспериментально). Запускать наверное так?

patch -p1 /path/to/ebuild/patch/file

BattleCoder ★★★★★
() автор топика
Последнее исправление: BattleCoder (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.