cve-basealt - набор (пакет) состоящий из 1) специальных программ, 2) файлов
настройки сторонних приложений, а также 3) данных, предназначенных для
последующей публикации, который предназначен для генерации HTML страниц сайта
"cve.basealt.ru".

HTML страницы генерируются при помощи стороннего приложения "pelican" (пакет
"python3-module-pelican" в репозитории "Sisyphus") во время сборки данного
пакета; Генерация осуществляется на основе md-файлов, которые должны быть
предварительно сгенерированы с помощью программы "cve-inform" (которая является
частью данного пакета) и помещены в каталог "content" данного пакета.

При генерации HTML страниц с помощью приложения "pelican" используется
пользовательская тема, расположенная в каталоге "hss-redacted".

===============================================================================
Содержание

    1 Сбор новых данных
        1.1 Синхронизация с проектом cve-basealt
        1.2 Генерация md-файлов
    2 Добавление собранных данных в проект
    3 Cборка пакета
    4 Использование пакета
    5 Ссылки

===============================================================================
1 Сбор новых данных

Сбор информации о заданиях, запрос данных об уязвимости пакетов и генерация
md-файлов для последующей публикации осуществляется программой "cve-inform".
Сбор информации осуществляется с сервера ALT Linux Team ("team.altlinux.org"),
а данные об уязвимости обновлённых пакетов запрашиваются у программы
"cve-issues", входящей в состав пакета "cve-manager", который может быть
установлен на удалённом сервере (для правильной работы должна быть сформирована
актуальная база уязвимостей cve-manager).

1.1 Синхронизация с проектом cve-basealt

Программа "cve-inform" учитывает наличие ранее собранных и добавленных в проект
данных, поэтому, прежде чем генерировать новые данные, необходимо (на выбор):

а) Cклонировать данный проект из апстрима:

    $ git clone git://git.altlinux.org/gears/c/cve-basealt.git

б) Cинхронизироваться с текущим состоянием проекта:

    $ git pull git://git.altlinux.org/gears/c/cve-basealt.git

1.2 Генерация md-файлов

Программа "cve-inform" находится в корневом каталоге проекта "cve-basealt".

Сбор информации и генерация md-файлов по всем обрабатываемым продуктам и
всем репозиториям, на которых могут базироваться данные продукты, с сохранением
журнала работы программы cve-inform в создаваемом файле:

    $ ./cve-inform --alt_tasks_host <team_hostname> \
--cve_manager_host <cve_manager_hostname> -c content/ -d <distro_path> \
> journal/<YYMMDD>.log

    , где "<YYMMDD>" - это текущая дата (например, 19 февраля 2021 года должно
быть обозначено "210219"); <cve_manager_hostname> - сервер, на котором работает
cve-manager, или цепочка серверов (например, cve-manager может работать на
виртуальной машине внутри сети basealt, тогда такая цепочка будет иметь
следующий вид - "<basealt_hostname> <cve_manager_hostname>")

Сбор информации и генерация md-файлов по заданным продуктам с учётом лишь
заданных ветвей репозитория "Sisyphus":

    $ ./cve-inform --alt_tasks_host <team_hostname> \
--cve_manager_host <cve_manager_hostname> \
-c content/ -p <product_i> .. <product_j> \
-b <branch_n> .. <branch_m> -d <distro_path> > journal/<YYMMDD>.log

    , где "-d <distro_path>" - необязательный параметр, в котором передаётся
либо абсолютный путь каталога в файловой системе, либо URL git-проекта, которые
содержат списки пакетов дистрибутивов, при этом структура такого каталога, или
организация файлов git-проекта, должны быть следующей (программа ищёт файл со
списком сначала в каталоге, название которого совпадает с названием
обрабатываемой ветви, и если не находит - в общем каталоге):

    <branch_i>/<distro_a>
    ..
    <branch_j>/<distro_b>
    <ditro_x>
    ..
    <distro_y>

По-умолчанию названия репозиториев, пакеты которых были обновлены,
не добавляются в заголовки; Для добавления названий репозиториев в заголовки
следует использовать параметр "--style, -s" со значением "new".

Сгенерированные файлы будут помещены в каталог "content", расположенный
в корневом каталоге проекта "cve-basealt".

Набор названий доступных для обработки продуктов и репозиториев, а также
соответствие между названиями файлов со списками пакетов дистрибутивов и
названиями продуктов, определяется переменной "TARGETS" программы "cve-inform"
(файл "cve_inform/const.py").

===============================================================================
2 Добавление собранных данных в проект

Для того, чтобы из сгенерированных на предыдущем шаге md-файлов были получены
HTML страницы (в ходе последующей сборки данного пакета), эти md-файлы
необходимо включить в проект (при этом в проект также включается журнал работы
программы cve-inform):

    $ git add content/ journal/
    $ git commit -m "Generate markdown files"

===============================================================================
3 Сборка пакета

Для обозначения версии в данном проекте используется дата сборки в формате
YYYYMMDD, например, 20210219 (19 февраля 2021 года).

При обновлении пакета с целью добавления новых данных, changelog-запись данной
сборки должна содержать следующую строку:
"- Collected new information."

===============================================================================
4 Использование пакета

Генерация HTML страниц осуществляется при сборке данного пакета - результирующий
бинарный пакет содержит HTML страницы, соответствующие данным, собранным и
добавленным в проект на предыдущих шагах.

При установке пакета в систему сгенерированные страницы будут помещены в каталог
"/var/www/blog":

    # apt-get install cve-basealt

Сгенерированные страницы не содержат в себе исполняемого кода, только данные,
поэтому для их правильного отображения, на web-сервере необходимо и достаточно
иметь httpd.

===============================================================================
5 Ссылки

Проект на git.altlinux.org -
http://git.altlinux.org/gears/c/cve-basealt.git

===============================================================================
