From: Sergey Matveev Date: Fri, 6 Mar 2026 14:28:47 +0000 (+0300) Subject: Обновление distfiles в BASS X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=ad98892e99f95d6eabac4bd20ac804c7bd919adb;p=stargrave-blog.git Обновление distfiles в BASS Всё продолжаю упарываться по теме distfiles в BASS проекте. Сделал большущее изменение того как всё скачивается. Раньше была директория distfiles, в которой в основном лежали .meta4 файлы, либо .do, которые клонировали репозитории и сами готовили tarball. distfiles/default.do находил .meta4 и вызывал всякое скачивание с проверкой контрольных сумм. Теперь же метаинформация хранится в "metadir" "формате". Например, чтобы скачать distfiles/dl/foo, надо создать директорию distfiles/meta/foo, где будут лежать файлы: * size, содержащий длину, ASCII десятичное число * hashes, содержащий "blake3-256 49dc..."-like строчки * urls, содержащий URL-ы, в том числе в "pri|loc|url" формате В принципе, это вся та же самая информация что и почти во всех .meta4 файлах, но только легко обрабатываемая в shell. И легко можно без XML библиотек сгенерировать .meta4 на основе подобной metadir. Вся прелесть в том, что никто же не мешает urls генерировать redo! -- distfiles/meta/less-692.tar.gz/urls.do -- echo "1|us|https://greenwoodsoftware.com/less/less-692.tar.gz" redo-ifchange ../utils/urls-for-gnu PRI=2 ../utils/urls-for-gnu less/less-692.tar.gz -- distfiles/meta/freetype-2.14.2.tar.xz/urls.do -- redo-ifchange ../utils/urls-for-savannah ../utils/urls-for-sourceforge ../utils/urls-for-savannah freetype/freetype-2.14.2.tar.xz PRI=5 ../utils/urls-for-sourceforge freetype freetype2/2.14.2/freetype-2.14.2.tar.xz где утилиты для генерирования ссылок выглядят как-то так: #!/bin/sh -e file=$1 [ -n "$file" ] PRI=${PRI:-1} cat <