K900 10.05.2011 21:57

How-to`sKDE на Windows - собираем из исходников

Как просили, пост про сборку-установку-настройку KDE на Windows. Опрос в толксах был потому, что все-таки оффтопик.

Для начала, подготовим плацдарм для сборки. Находим диск с кучей свободного места и создаем в корне папку. Эта папка будет %KDEROOT% - местом жительства всего инструментария для сборки вместе с исходниками. Собирается KDE on Windows утилитой emerge, которая (к сожалению) не перенесена из Gentoo, а написана с нуля. Создаем в KDEROOT папки emerge и etc. В папку emerge распаковываем вот этот архив, в папку etc копируем kdesettings.bat из папки emerge. Теперь стоит поправить kdesettings.bat под свои нужды. Мой конфиг полностью можно посмотреть тут, а для статьи выделю несколько особенно важных строчек.

1
set EMERGE_ARCHITECTURE=x86


Ставит архитектуру на x86. Под x64 иногда собирается с трудом из-за несовместимости компиляторов, поэтому оставим x86.

1
set EMERGE_VERBOSE=3


Выводит больше отладочной информации. НАМНОГО больше отладочной информации.

1
set EMERGE_MERGE_ROOT_WITH_BUILD_TYPE=True


Устанавливает пакеты в отдельные подпапки для каждой цели.

1
set EMERGE_SOURCEONLY=True


Собирать все пакеты из исходников. Для mingw - необходимо.

1
set EMERGE_ENABLE_IMPLICID_BUILDTIME_DEPENDENCIES=0


Включить новую систему зависимостей. Она считается тестовой, но вполне работает. теперь не работает.

Теперь открываем командную строку, переходим в KDEROOT и выполняем
1
emerge\kdeenv.bat


Должно получиться что-то вроде:
1
2
3
4
5
6
7
8
D:\KDE>emerge\kdeenv.bat
kdesettings.bat executed
KDEROOT : D:\KDE
KDECOMPILER : mingw4
KDESVNDIR : D:\KDE\svn
KDEGITDIR : D:\KDE\git
PYTHONPATH : D:\KDE\emerge\python
DOWNLOADDIR : D:\KDE\download


В качестве аргумента kdeenv.bat принимает конфиг сборки.
Всего их три - Release с оптимизациями, RelWithDebInfo - оптимизации + отладочная информация (по умолчанию), Debug - самый медленный, отладочный вариант.

Готово! Теперь у нас есть настроенная среда для начала сборки KDE (да и другого софта, в общем-то, тоже).

Теперь - самое главное.
1
emerge qt



И начинаем чинить проблемы. Первая проблема - со сборкой zlib. Раньше у меня ее не вылезало, но если ругнется на файл zlib1.rc, то идем в папку build\win32libs-sources\zlib-src-1.2.5\work\zlib-1.2.5\win32, редактируем его и меняем седьмую строку на
1
#VS_VERSION_INFO		VERSIONINFO


Теперь выполняем
1
emerge --make --install zlib


Аргументы - очень важные, потому что иначе изменения затрутся оригинальным файлом. После установки идем в папку KDEROOT\(цель)\bin и копируем libzlib1.dll в z.dll (такие вот косяки)

И еще раз запускаем
1
emerge qt



Когда (наконец-то!) дождемся, запускаем следующий шаг.
1
emerge kdelibs


С gettext возникнет та же проблема, что и с zlib. Лечится правкой файла build\win32libs-sources\gettext-src-0.18\work\gettext-0.18\gettext-runtime\intl\libintl.rc, заменой PACKAGE_VERSION_STRING на 0.18. Правим, сохраняем,
1
emerge --make --install gettext



И продолжаем
1
emerge kdelibs



А теперь - не совсем частая проблема, а скорее совет по ее избежанию. Прежде чем что-то собирать в этой среде, НАДО почистить переменную окружения %PATH%. Только что strigi попытался подцепить libbzip2, лежащий в другом каталоге и от другой софтины. Поэтому ОСТОРОЖНО, ЗАВИСИМОСТИ!

Чистый %PATH% для Windows 7:
1
set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\



Итак, самое страшное позади. kdelibs и qt собраны, и наконец-то можно начать собирать, собственно, софт. Для начала - базовый набор:

1
emerge kde-runtime


... и опять ждем.

To be continued.

P.S. Этот пост обновляется по мере того, как я собираю "мир" с нуля, так что он будет медленным, зато проверенным :)
Текущее состояние: выкачиваю oxygen-icons, медленно...


Тэги: kde Windows костыль
+ 12 -
Похожие Поделиться

ZED 18.05.2011 16:58 #
Скрины охота
K900 18.05.2011 17:05 #
Соберется - будут. Пока что могу сделать скрин консоли с собирающимся Qt.
pioner14 18.05.2011 18:52 #
Да, это было бы здорово!
Если я правильно понял, в результате должна появиться действительно рабочая среда, а не несколько криво работающих приложений? Неужели проект портирования так далеко продвинулся?!
Kraplax 19.05.2011 21:33 #
уже добрую сотню раз говорили об этом. Что именно вы понимаете под "рабочей средой"? чтобы у вас был линукс, а игры игрались и программы ставились как в винде? не будет такого.
если вам достаточно Плазмы вместо рабочего стола и замены файлового менеджера на Дельфин - пожалуйста. Никаких эффектов оконного менеджера нет, не было и не будет. Как бы эффективно ни двигался проект - это практически невозможно.
alltiptop 18.05.2011 22:46 #
Если там так же нет kwin, а остался aero, тогда не нужно.
K900 18.05.2011 23:02 #
kwin портировать не получится. Его придется сначала переписать :)
Kraplax 19.05.2011 21:29 #
set EMERGE_ENABLE_IMPLICID_BUILDTIME_DEPENDENCIES=0Включить новую систему зависимостей. Она считается тестовой, но вполне работает. теперь не работает.

А она не работает конкретно у вас или она даже не собирается? ;-) бьюсь об заклад, что и никогда не соберется - даже базовое знание английского языка со словарем вам какбе намекнуло бы, что expliciT и impliciT пишется с буквой T на конце ;-)
И тогда флаг будет уже:
1
set EMERGE_ENABLE_IMPLICIT_BUILDTIME_DEPENDENCIES=0
K900 19.05.2011 21:33 #
Там действительно опечатка, опция включается, но ломается сам код emerge.
Kraplax 19.05.2011 21:33 #
хорошо если так =)
K900 19.05.2011 21:46 #
Это копипаста из конфига. Копипаста не может ошибаться :)
K900 23.05.2011 18:39 #
Продолжение отложено на неопределенный срок из-за старых зависимостей.