LINUX.ORG.RU
ФорумJob

Настроить автоматическую сборку Conan-пакетов

 , , ,


1

2

Проект QtWebKit при сборке на платформе Шindoшs использует Conan-пакеты нескольких библиотек: icu, libxml2, libxslt, а так же zlib. Дляя первых троих спользуются самописные рецепты, при этом конфигурация libxml2 сильно кастомизирована.

Текущее положение вещей более детально описано в https://github.com/annulen/webkit/wiki/Conan

Что хочется получить (в порядке важности):

1. Автоматическая сборка пакетов всеми требующимися компиляторами (см. документ). Пакеты должны автоматически заливаться в репозиторий, кроме того, манифесты собранных пакетов должны каким-то образом экспортироваться (т.к. они потом используются на стороне CI-системы для проверки целостности этих пакетов через --verify)

2. Перейти с Conan 0.24.0 на современную версию (требует изменений в рецептах так и в скрипах, вызывающих Conan, надеюсь что во второй части изменения небольшие)

3. По возможности перейти на апстримные рецепты с сохранением конфигурации и поддержки MinGW (ICU с тех пор вроде уже запилили, libxml2 должен собираться с нашей конфигурацией, в частности использовать ICU вместо libiconv, а пакета для libxslt я не вижу)

Оплата договорная.

Cast zamazan4ik - уверен, что ты можешь все сделать правильно, как там сейчас в этом вашем конане принято

Репозитории пакетов:

https://github.com/qtwebkit/conan-icu

https://github.com/qtwebkit/conan-libxml2

https://github.com/qtwebkit/conan-libxslt

★★★★★

В общем я потратил выходные и запилил большую часть сам. Использовал версии пакетов icu и libxml2 от bincrafters с небольшими изменениями, и сделал новый пакет для libxslt на основе libxml2.

Оставшиеся задачи

1) исправить проблемы со сборкой опеределенных пакетов на некоторых компиляторах (libxml2 не хочет линковаться с icu на msvc2017; libxslt не видит заголовки ICU с mingw)

2) по возможности интегрировать мои изменения в апстрим, чтобы потом не было гооловняка

annulen ★★★★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=0