LINUX.ORG.RU

Сборка KDE из исходников

 


0

2

Как пропатчить KDE 2 под FreeBSD?

Простите, не удержался.

Во многих дистрибутивах часто лежит неактуальная версия KDE. Например, в Kbuntu 24.04 до сих пор KDE 5. Конечно, можно использовать Fedora, KDE Neon или Alt Linux, но это не всегда выход. С другой стороны при должном желании можно собрать любой софт под любой дистрибутив. Например, условный asdf позволяет поставить Ruby/Java/Python различных версий во многие системы.

Как быть, если хочется собрать окружение рабочего стола? Гуглил, нашел статью про kde-builder и установку разных версий Qt с помощью aqt.

Пытался собрать таким образом KDE в виртуалке с Ubuntu 24.04 (т.е. как-будто мейнстримнее некуда) и словил такую ошибку:

-- Looking for libinotify_direct_readv
-- Looking for libinotify_direct_readv - not found
CMake Error at /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Python3 (missing: Python3_INCLUDE_DIRS Development
  Development.Module Development.Embed) (found suitable version "3.12.3",
  minimum required is "3.9")
Call Stack (most recent call first):
  /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake-3.28/Modules/FindPython/Support.cmake:3862 (find_package_handle_standard_args)
  /usr/share/cmake-3.28/Modules/FindPython3.cmake:545 (include)
  CMakeLists.txt:101 (find_package)

Библиотека libinotify у меня установлена, в Интернете по libinotify_direct_readv ничего не гуглится. Пока победить данную ошибку не смог.

Возникает 2 вопроса:

  1. А вообще правильным ли путем я иду? Сейчас я пытаюсь запустить сборку и на каждую ошибку гуглю решения и устанавливаю недостающие пакеты. Возможно есть какой-то список всех библиотек от которых зависит условная Plasma? На сайте KDE ответа на этот вопрос не нашел.
  2. Предоположим что я всё собрал и у меня есть рабочая плазма. Как мне её распихать по rpm/deb пакетам? Может быть есть какой-то гайд по опакечиванию DE? Уточню: написать rpmspec и собрать условную rpm-ку я могу, вопрос в том, как побить весь KDE на пакеты? Быть может есть какой-то гайд на эту тему?

Пока что думаю посмотреть на Gentoo или srpm из Альта, но вдруг есть какой-то более простой путь?

Во многих дистрибутивах на тему сборки пакетов есть свои гайды, но они описывают процесс в общем. А разбивать на пакеты надо так, как это принято в конкретном дистрибутиве. Например, можно посмотреть зависимости метапакета или группы пакетов и сделать так же. Например, в арче: $ pacman -S plasma-desktop --print-format="$(echo -ne 'Package: %n\nDepends on: %D')": см. здесь

Это, так сказать, сырой список зависимостей, если его обработать, можно и автоматизировать весь процесс. Можно подсмотреть, например, как KDE 6 компиляют в Slackware.

yars068 ★★★★★
()

Если вы собираете пакет под конкретный дистрибьютив, используйте библиотеки этого дистрибьютива, иначе вам придется опакечивать ещё и сторонние библиотеки. То есть aqt лучше не использовать.

Недавно появилась статья, которая может дать пищу для размышлений.

u-235
()

Гента норм путь, но даже на ней я ждал, пока шестая плазма доползет до «стабильного» профиля, ибо лень перекатываться полностью на ~amd64, а прописывать в .accept_keywords все кеды с зависимостями тоже желания не особо.

Предоположим что я всё собрал и у меня есть рабочая плазма. Как мне её распихать по rpm/deb пакетам?

Хы-хы. Предположи, что ты на слаке и забей.

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

…а прописывать в .accept_keywords все кеды с зависимостями тоже желания не особо.

Очень тупой и страшный способ получить свежие кеды в генту, но работает:

cat /etc/portage/download-kde.sh
#!/bin/bash
cd /etc/portage/package.accept_keywords/
for i in `curl https://gitweb.gentoo.org/proj/kde.git/tree/Documentation/package.accept_keywords 2>/dev/null | grep "\.keywords'>" | grep href | grep -v live | grep -v 9999 | sed "s/.*href='/https:\/\/gitweb.gentoo.org/" | sed "s/'.*//"`
do
        rm -- `echo $i | sed 's/.*\///'`
        wget -N -c "$i"
done

С пятых кед использую, запускаю перед обновлением, на удивление ничего не сломалось.

altwazar ★★★★★
()

А вообще правильным ли путем я иду?

Свежие кеды практически наверняка не соберутся даже на неоне для разработчиков по гайду для этого дистрибутива. Собрать и упаковать же под какую-нибудь lts убунту - безумная в плане усилий идея. Это как раз одна из причин существования неона. Если не для саморазвития, то сидеть на свежих кедах проще в каком-нибудь арче.

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

Зачем 6 когда есть 5
У меня наоборот большие вопросы, почему 5 нет сейчас в portage. Хоть бы в оверлей ебилды вынесли.
А ждать стабильного профиля не нужно - можно просто врубить ~amd64 для нужных пакетов или категорий

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

~amd64 для нужных пакетов или категорий

Ну я че то про категорию не подумал, типо kde-apps/*, а сверху докинуть зависимости по необходимости. Но даже так лениво, так что проще чуть подождать.

Зачем? когда есть 3.5

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

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

Можно подсмотреть, например, как KDE 6 компиляют в Slackware

в CRUX’e удобно смотреть дерево зависимостей prt-get deptree (к сожалению не могу показать, там прямо наглядное дерево строится, что от чего зависит), здесь есть порт plasma-meta, очень простые скрипты на bash. можно в виртуалку поставить, подсмотреть и адаптировать сборочные скрипты, но оно конечно того не стоит, не соберется все равно

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

Я собственно и использую trinity.
Однако принудительный апдейт до 6, которые находятся в активной стадии разработки это очень нехорошо. 5 сейчас стабилен, поддерживается, но не ожидает значительных изменений - основные баги уже поправлены, фичи сделаны. Так что это вполне хороший вариант для тех, кому просто нужен стабильный DE. На шестой ветке же жди постоянных переделок, новых багов

mittorn ★★★★★
()

Во многих дистрибутивах часто лежит неактуальная версия KDE. Например, в Kbuntu 24.04 до сих пор KDE 5

А ты не думал, что это сделано не просто так?

Не каждый хочет полночи собирать и по несколько часов еженедельно разгребать невоспроизводимые баги (для этого есть арч, кек).

есть какой-то более простой путь

Есть. Переключиться на тестовую ветку дистрибутива. Или подключить соответствующий ppa-репозиторий. И секситься с консолью и багами.

думаю посмотреть на Gentoo или srpm из Альта

Подумай лучше вот что.

Тебе только Plasma? Или может еще браузер нужен? Ридеры? Редакторы? Меса? Ядро?

Будешь каждый день их пересобирать? А то обновляются они часто, пару дней пропустишь — и все, у тебя версия «неактуальная».

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

bq. А ты не думал, что это сделано не просто так?

безусловно не просто так

bq. Тебе только Plasma? Или может еще браузер нужен? Ридеры? Редакторы? Меса? Ядро?

Мне нужна только Plasma. Конкретно для себя решаю проблему с кривым Fractional Scaling, который очень сильно улучшился в KDE 6.

bq. Будешь каждый день их пересобирать? А то обновляются они часто, пару дней пропустишь — и все, у тебя версия «неактуальная».

Во-первых, я не говорил, что хочу сидеть на условном master/develop. Во-вторых, мне интересно разобраться с процессом сборки и опакечивания большой штуки, такой как KDE.

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