Автоматизация создания новых портов
Требования
Создание автоматизированной системы сборки портов, принимающей у пользователя только определённую ниже информацию, после чего генерирующей все остальные данные, включая содержимое файлов port.toml и files.list, а также выполняющей тестирование корректности сборки порта в случае необходимости. Использует бибилиотеку libcport для выполнения необходимых действий по сборке и тестированию порта.
Запрашиваемые у пользователя данные:
- Запрашиваемые явно:
-
Базовая информация:
- Имя программы (в планах заполнять это поле автоматически, имя программы брать из первого переданного
mkportаргумента) - Версия порта (в планах заполнять это поле автоматически, версию программы брать из второго переданного
mkportаргумента) - Краткое описание порта (не более 80 символов)
- Приоритет порта (по умолчанию -
user) - Категория порта (
base,general, etc.)
- Имя программы (в планах заполнять это поле автоматически, имя программы брать из первого переданного
-
Зависимости - принимается строка. Порты разделяются друг от друга запятой (
,). Потомmkportделит строку наVec<String>.- Необходимые
- Рекомендуемые
- Опциональные
-
Порт:
- URL для скачивания порта
- Имя скачанного файла (опционально)
-
Система сборки - используется для автоматического подставления нужных инструкций в функции
prepare(),build(),install():- GNU Make
- cmake
- meson+ninja
- cargo
- other
-
Лицензия:
- GPL-3.0
- GPL-2.0
- MIT
- BSD-3-cls
- Apache
- LGPL-3.0
- other (тогда в следующем окне у пользователя будет запрошен список лицензий, разделённых между собой запятыми (
,). Программа сконвертирует это вVec<String>).
-
Базовая информация:
- Содержащиеся в конфигурационном файле
mkport:- Сборщик (maintainer) порта. Из конфига
mkportберётся имя пользователя и егоemail.
- Сборщик (maintainer) порта. Из конфига
- ЯП: Rust, BASH
- TUI: Cursive
Интерфейс
Минимальные требования: терминал 80х24 с поддержкой 16 цветов
Edited by cov_id111
