- Современный дистрибутив с актуальной версией компилятора (минимум gcc 4.8)
- На выбор: Qt>= 4.8 или >= 5.3
- Python >= 3.2
- CMake >= 3.0
В поставке есть скрипт, который генерирует 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 <[email protected]>" \ # имя мантейнера в файле
> $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, еще и
устанавливать Кумир - это не совсем гуманно.
В настоящее время [пока ещё] рекомендуется использовать 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
не будет работать.