Файлы .SRCINFO содержат метаданные пакета в простом, однозначном формате, так что такие инструменты, как веб бэкэнд AUR или AUR helpers могут получить метаданные пакета, не разбирая PKGBUILD напрямую. См. FS#25210, FS#15043 и FS#16394 для примеров проблем, которые могут возникнуть при попытке разобрать сценарии оболочки.
PKGBUILD, такие как обновления pkgver(), не распространяются автоматически на .SRCINFO. Отправка отредактированного PKGBUILD в AUR без обновления его .SRCINFO приведет к тому, что AUR будет обслуживать устаревшие метаданные.Создание
Файлы .SRCINFO могут быть созданы с помощью makepkg:
$ makepkg --printsrcinfo > .SRCINFO
Синтаксис
Файлы .SRCINFO представляют собой списки пар key = value, разделенные на секции.
Ключи берут свои имена и значения из переменных PKGBUILD; см. PKGBUILD(5) § OPTIONS AND DIRECTIVES. Ни ключи, ни значения не заключаются в кавычки. Данные, которые в PKGBUILD были бы представлены массивом, вместо этого указываются несколько раз. Например, эквивалентными являются следующие:
# PKGBUILD arch=(i686 x86_64)
# .SRCINFO arch = i686 arch = x86_64
Основной раздел файла находится под объявлением pkgbase и содержит данные, применимые к пакету в целом. В стандартном PKGBUILD, описывающем один пакет, это будет единственная секция, за которой следует объявление pkgname, содержащее то же значение, что и предыдущее pkgbase:
pkgbase = foo pkgdesc = An example package. ... md5sums = SKIP pkgname = foo
В разделенном PKGBUILD каждый раздел обозначается pkgname, за которым следуют любые данные, специфичные для этого пакета.
Спецификация
Приведенные ниже поля могут появляться только один раз в каждом файле .SRCINFO, в секции pkgbase:
-
pkgver,pkgrel,epoch
Следующие поля могут появляться не более одного раза в любом разделе.
-
pkgdesc,url,install,changelog
Указанные ниже поля могут повторяться в разделе для указания нескольких значений:
archgroupslicensenoextractoptionsbackup-
validpgpkeys(может быть только в pkgbase)
Следующие поля могут дополнительно указывать несколько архитектур, как показано ниже:
source_x86_64 = https://foo.bar/file.tar.gz source_i686 = https://foo.bar/file_i686_patch.tar.gz
source-
depends,checkdepends,makedepends,optdepends -
provides,conflicts,replaces -
md5sums,sha1sums,sha224sums,sha256sums,sha384sums,sha512sums
Поля с другими именами игнорируются. Пустые строки и строки комментариев, начинающиеся со знака хэша (#), также игнорируются. Строки могут иметь отступы.