K900 10.05.2011 21:57
How-to`s — KDE на Windows - собираем из исходников
Как просили, пост про сборку-установку-настройку KDE на Windows. Опрос в толксах был потому, что все-таки оффтопик.Для начала, подготовим плацдарм для сборки. Находим диск с кучей свободного места и создаем в корне папку. Эта папка будет %KDEROOT% - местом жительства всего инструментария для сборки вместе с исходниками. Собирается KDE on Windows утилитой emerge, которая (к сожалению) не перенесена из Gentoo, а написана с нуля. Создаем в KDEROOT папки emerge и etc. В папку emerge распаковываем вот этот архив, в папку etc копируем kdesettings.bat из папки emerge. Теперь стоит поправить kdesettings.bat под свои нужды. Мой конфиг полностью можно посмотреть тут, а для статьи выделю несколько особенно важных строчек.
1 |
|
Ставит архитектуру на x86. Под x64 иногда собирается с трудом из-за несовместимости компиляторов, поэтому оставим x86.
1 |
|
Выводит больше отладочной информации. НАМНОГО больше отладочной информации.
1 |
|
Устанавливает пакеты в отдельные подпапки для каждой цели.
1 |
|
Собирать все пакеты из исходников. Для mingw - необходимо.
1 |
|
Включить новую систему зависимостей. Она считается тестовой, но
Теперь открываем командную строку, переходим в KDEROOT и выполняем
1 |
|
Должно получиться что-то вроде:
1 |
D:\KDE>emerge\kdeenv.bat
|
В качестве аргумента kdeenv.bat принимает конфиг сборки.
Всего их три - Release с оптимизациями, RelWithDebInfo - оптимизации + отладочная информация (по умолчанию), Debug - самый медленный, отладочный вариант.
Готово! Теперь у нас есть настроенная среда для начала сборки KDE (да и другого софта, в общем-то, тоже).
Теперь - самое главное.
1 |
|
И начинаем чинить проблемы. Первая проблема - со сборкой zlib. Раньше у меня ее не вылезало, но если ругнется на файл zlib1.rc, то идем в папку build\win32libs-sources\zlib-src-1.2.5\work\zlib-1.2.5\win32, редактируем его и меняем седьмую строку на
1 |
|
Теперь выполняем
1 |
|
Аргументы - очень важные, потому что иначе изменения затрутся оригинальным файлом. После установки идем в папку KDEROOT\(цель)\bin и копируем libzlib1.dll в z.dll (такие вот косяки)
И еще раз запускаем
1 |
|
Когда (наконец-то!) дождемся, запускаем следующий шаг.
1 |
|
С gettext возникнет та же проблема, что и с zlib. Лечится правкой файла build\win32libs-sources\gettext-src-0.18\work\gettext-0.18\gettext-runtime\intl\libintl.rc, заменой PACKAGE_VERSION_STRING на 0.18. Правим, сохраняем,
1 |
|
И продолжаем
1 |
|
А теперь - не совсем частая проблема, а скорее совет по ее избежанию. Прежде чем что-то собирать в этой среде, НАДО почистить переменную окружения %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 |
|
... и опять ждем.
To be continued.
P.S. Этот пост обновляется по мере того, как я собираю "мир" с нуля, так что он будет медленным, зато проверенным :)
Текущее состояние: выкачиваю oxygen-icons, медленно...

+ 1 -
Скрины охота
Соберется - будут. Пока что могу сделать скрин консоли с собирающимся Qt.
Да, это было бы здорово!
Если я правильно понял, в результате должна появиться действительно рабочая среда, а не несколько криво работающих приложений? Неужели проект портирования так далеко продвинулся?!
Если я правильно понял, в результате должна появиться действительно рабочая среда, а не несколько криво работающих приложений? Неужели проект портирования так далеко продвинулся?!
уже добрую сотню раз говорили об этом. Что именно вы понимаете под "рабочей средой"? чтобы у вас был линукс, а игры игрались и программы ставились как в винде? не будет такого.
если вам достаточно Плазмы вместо рабочего стола и замены файлового менеджера на Дельфин - пожалуйста. Никаких эффектов оконного менеджера нет, не было и не будет. Как бы эффективно ни двигался проект - это практически невозможно.
если вам достаточно Плазмы вместо рабочего стола и замены файлового менеджера на Дельфин - пожалуйста. Никаких эффектов оконного менеджера нет, не было и не будет. Как бы эффективно ни двигался проект - это практически невозможно.
set EMERGE_ENABLE_IMPLICID_BUILDTIME_DEPENDENCIES=0
Включить новую систему зависимостей. Она считается тестовой, А она не работает конкретно у вас или она даже не собирается? ;-) бьюсь об заклад, что и никогда не соберется - даже базовое знание английского языка со словарем вам какбе намекнуло бы, что expliciT и impliciT пишется с буквой T на конце ;-)
И тогда флаг будет уже:
1 |
Там действительно опечатка, опция включается, но ломается сам код emerge.