LINUX.ORG.RU

Как перекомпилировать Dolphin в Ubuntu 14.04.3 (Trusty Tahr)

 , , , ,


0

1

Есть задача немного поправить исходники Dolphin и пересобрать его с изменениями (нужно изменить механизм обработки путей в address bar). Как я понял, компилируется он из исходников вот так (что забавно, репозиторий не anongit.kde.org/dolphin, а почему-то anongit.kde.org/kde-baseapps):

sudo apt-get update
sudo apt-get install git-core  build-essential libkactivities-dev
sudo apt-get build-dep dolphin
git clone git://anongit.kde.org/kde-baseapps && cd kde-baseapps && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ..
make -j3
cd dolphin/src/
./dolphin4

Вроде бы всё хорошо, но изучение исходников, которые выкачались с git clone, показали, что интересующий меня код в них не прописан, нужный функционал берётся из «#include <KUrlNavigator>». Найдя этот файл в системе, я понимаю, что там *.cpp-код не лежит, а соответствующий данному файлу KUrlNavigator.cpp в системе в текстовом виде не представлен, а ставится из kdelibs. Вопрос: как мне быть-то? Мне нужно перекомпилить и поставить в систему kdelibs? Но я правильно понимаю, что это скажется на всех программах в KDE? Вы не знаете, как указать компилятору dolphin'а откуда-то взять нужный мне KUrlNavigator.cpp? Или я вообще всё неправильно делаю и существует более правильный и простой путь?


Изначально все неправильно делаешь. Надо качать исходники, которые лежат в репозиториях. Примерно это сдоит делать вот так: http://habrahabr.ru/post/28366/

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

Большое спасибо! К сожалению, не знал про «apt-get source ...» и «apt-get build-dep ...», исходники из репозиториев компилятся гораздо легче, чем с git'а. В итоге задачу решил даже без патча kdelibs (хотя это делается так же, как в примере ниже), в итоге хватило изменить исходники дельфина.

mkdir src
cd src
sudo apt-get update
sudo apt-get build-dep kde-baseapps
apt-get source kde-baseapps
cd kde-baseapps-4.13.3/dolphin/src/
patch < ~/your.patch
cd ../..
mkdir build
cd build
cmake ..
make
sudo make install
hioma ()
Ответ на: комментарий от hioma

Не дочитал, надо собрать пакет и установить. И заблокировать версию, чтобы не обновило. sudo make install сделают из твоей системы мусорку.

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

Я оставил ответ просто тем, кто будет нагугливать мой вопрос, но раз вы меня поправляете, поинтересуюсь дальше. Опять-таки, не знал про разницу между установкой от make install и из пакета. Это *.deb, который ставится через «dpkg -i»? Вроде нашёл инструкцию, как из исходников сделать такой (http://tldp.org/HOWTO/html_single/Debian-Binary-Package-Building-HOWTO/), но это выглядит сложным. Или можно только через «dpkg-deb --build debian» сделать?

«Не дочитал» — это в том смысле, что я статью на хабре не дочитал? Я её прочёл, но только так же, как там написано, не получилось сделать, после внесения правок в исходники «debuild -us -uc» не срабатывало (ошибки уже не могу привести), так что я ограничился «make install». В принципе, можно не инсталлить её в систему, а прям из папки исходников бинарник запускать.

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

make install - это просто скрипт, который раскидывает по всяким директориям файлы собранной проги. Проблема в том, что если ты решишь удалить, то тебе надо хранить директорию с откомпиленными исходниками ради make uninstall, к тому же, обновление какое нить просто может затереть установленную таким образом программу. Вот ссылочка на вики дебиана, пересобери пакет по канонам, пока не поздно. https://wiki.debian.org/BuildingTutorial К тому же, обрати внимание, как делаются патчи. Патчить лучше не вручную, а сделать через dpatch. Давно с ним не сталкивался, не помню, как именно оно там организовывается, но скидывается вроде в директорию debian/patches или как-то так.

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

А можно узнать, что получилось? Что Вы изменяли в Дельфине, зачем? Может и мне оно надо? :)

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

Спасибо за консультацию! Учту в будущем. А изменения не стоят внимания, честно, нужно было приделать обработку путей из винды, чтобы они в /mnt/ вели. Странная задача, но не я её придумал =)

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

А, диски C: D: и т.д.? Чтобы «как у людей»? :) Ясно :)

Deleted ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.