Skip to content
This repository has been archived by the owner on Apr 18, 2022. It is now read-only.

Latest commit

 

History

History
84 lines (69 loc) · 5.63 KB

MAINTAINERS_ru.md

File metadata and controls

84 lines (69 loc) · 5.63 KB

Информация для мэйнтейнеров пакета в Linux-дистрибутивах

Пререквизиты

  • Современный дистрибутив с актуальной версией компилятора (минимум gcc 4.8)
  • На выбор: Qt>= 4.8 или >= 5.3
  • Python >= 3.2
  • CMake >= 3.0

Готовое решение для RPM-SPEC

В поставке есть скрипт, который генерирует SPEC-файл для openSUSE. Его легко адаптировать для любого другого дистрибутива созданием файла rpm-conventions.ДИСТРИТУБИВ.json. Pull-requests are welcome!

# Создание tar.gz архива из git-репозитория
KUMIR2_BUNDLE_NAME=`python3 scripts/query_version_info.py --mode=package_bundle_name --prefix=kumir2-`
git archive --format tar --prefix ${KUMIR2_BUNDLE_NAME}/ -o ${KUMIR2_BUNDLE_NAME}.tar HEAD
gzip -9 ${KUMIR2_BUNDLE_NAME}.tar

# Создание SPEC-файла
SPEC_FILE_NAME=kumir2-unstable.spec  # для нестабильных версий из master
# или
SPEC_FILE_NAME=kumir2.spec           # для версий, у который есть git-теги

python3 scripts/generate_rpm_spec.py \
        --dist=openSUSE \            # имя дистрибутива (см. выше про JSON-файл)
        --release=123 \              # номер сборки
        --packager="Vasya Pupkin <vasya@dist.ro>" \  # имя мантейнера в файле
        > $SPEC_FILE_NAME            # имя файла для вывода

Рекомендации по именованию версий и структуре пакетов

Стабильные версии и текущая версия

Стабильные версии - это только те, для которых в VCS git предусмотрены теги, например, 2.1.0-rc7. Если склонировать из этого репозитория, то во время сборки этот номер версии будет отображаться в "Инфо->О программе".

Текущая версия - в ветке master. Стабильность никто не гарантирует.

Более того, никто не гарантирует, что будет что-то работать, если смешивать часть компонент из стабильной и текущей версий. Во избежание этого, лучше делать два разных пакета, например 'kumir2' и 'kumir2-unstable' у которых в зависимостях явно прописано, что они не могут быть установлены одновременно.

Пакет для разработчиков

У нас теперь появилась возможность сборки сторонних плагинов, не используя дерево исходных текстов Кумир. Следующие файлы и каталоги нужно вынести в пакет -devel:

  • /usr/include/kumir2
  • /usr/include/kumir2-libs
  • /usr/lib64/kumir2/gen_actor_source.py
  • /usr/lib64/cmake/Kumir2

Пакеты сторонних разработчиков

Все, что находится вне этого репозитория - не наше, и мы знать не знаем, что это такое. Поэтому все сторонние плагины к Кумир-2 нужно упаковывать в отдельные пакеты, и называть их как-нибудь, чтобы это было понятно, что является сторонним продуктом, например, с префиксом или суффиксом addon.

Отдельный пакет для общих файлов

Рекомендуется вынести общие файлы базовой поставки (/usr/lib64/kumir2 и /usr/share/kumir2) в отдельный пакет. В дальнейшем планируется использовать инфраструктуру Кумир не только для одноименной программной системы, но и как базовую платформу для других ЯП, в частности, Python. Заставлять пользователей, которым нужен только Python, еще и устанавливать Кумир - это не совсем гуманно.

Какую версию Qt использовать?

В настоящее время [пока ещё] рекомендуется использовать Qt4, так как GUI лучше протестировано на реальных пользователях. Но в какой-то момент мы откажемся от поддержки Qt4 в пользу Qt5.

Порядок сборки

С Qt4:

mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install

С Qt5:

mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DUSE_QT=5 ..
make
sudo make install

Внимание! Перед упаковкой поставки, обязательно убедитесь, что install root (в данном случае - /usr) совпадает со значением переменной KUMIR2_ROOT в файле /usr/lib64/cmake/Kumir2/distribution_build_config.cmake. При необходимости - измените только этот файл. В противном случае, -devel не будет работать.