| SRCINFO(5) | راهنمای فایلهای پیکربندی | SRCINFO(5) |
نام (NAME)
SRCINFO - اطلاعات مربوط به منابع بستههای مبتنی بر ALPM
توضیحات (DESCRIPTION)
قالب SRCINFO یک قالب متنی است که متادیتای منبع بسته را توصیف میکند. این فایلها .SRCINFO نامیده میشوند و در ریشه مخازن سورس که بستههای مبتنی بر ALPM از آنها ساخته میشوند، قرار دارند. آنها از فایلهای PKGBUILD ایجاد میشوند تا در سناریوهایی که استفاده از bash امکانپذیر نیست، تجزیه امن متادیتا را ممکن سازند. قالب SRCINFO توسط برنامههایی مانند نرمافزارهای مدیریت مخزن و رابطهای کاربری وب سفارشی برای ارزیابی و نمایش اطلاعات منبع بستهها استفاده میشود.
قالب عمومی (General Format)
یک فایل SRCINFO شامل مجموعهای از خطوط است که هر کدام اطلاعاتی را در مورد جنبهای از منابع یک یا چند بسته ارائه میدهند (برای اطلاعات درباره بستههای تفکیکشده alpm-split-package را ببینید). خطوطی که با علامت ‘#’ شروع میشوند به عنوان توضیح (کامنت) در نظر گرفته شده و همیشه نادیده گرفته میشوند. خطوط خالی همیشه نادیده گرفته میشوند. فاصلههای خالی ابتدای خطوط همیشه نادیده گرفته میشوند.
مگر در مواردی که خلاف آن ذکر شده باشد، اطلاعات موجود در یک فایل SRCINFO پوششدادهشده توسط مجموعهای از ۹۵ نویسه اسکی قابل چاپ[1] در نظر گرفته میشود.
این قالب فایل بین سرایند بخشها (که بخشهای مشخصی را معرفی میکنند) و انتساب کلیدواژهها که در آن بخشها قابل استفاده هستند، تمایز قائل میشود. هر خط اطلاعاتی را کدگذاری میکند که یا بیانگر یک سرایند بخش است یا یک انتساب کلیدواژه.
قالب SRCINFO نیازمند تعریف یک بخش منفرد pkgbase و یک یا چند بخش pkgname است. در حالی که بخش pkgbase شامل متادیتای مشترک بین تمام بستههای ساختهشده از یک PKGBUILD است، بخشهای pkgname برای اعلان متادیتای بسته و ارائه جایگزینیها (overrides) به کار میروند که مختص هر بسته مربوطه است.
سرایندهای بخش (Section headers)
تمامی سرایندهای بخش شامل یک کلید هستند که بلافاصله با یک فاصله خالی، یک علامت ‘=’، یک فاصله خالی دیگر و یک مقدار دنبال میشود.
سرایند بخش برای یک بخش pkgbase باید از کلمه ‘pkgbase’ به عنوان کلید و یک alpm-package-base به عنوان مقدار استفاده کند. دقیقاً یک چنین سرایند بخشی باید در ابتدای یک فایل SRCINFO وجود داشته باشد.
سرایند بخش برای یک بخش pkgname باید از کلمه ‘pkgname’ به عنوان کلید و یک alpm-package-name به عنوان مقدار استفاده کند. حداقل یک چنین سرایند بخشی باید در یک فایل SRCINFO (یکی به ازای هر بسته ساختهشده از یک PKGBUILD) وجود داشته باشد، اما فقط پس از سرایند بخش pkgbase.
بخشها (Sections)
بخش pkgbase باید حداقل شامل انتسابهایی برای کلیدواژههای pkgver و pkgrel باشد، و در غیر این صورت میتواند شامل تمامی انتسابهای کلیدواژه شناختهشده دیگر نیز باشد. انتسابهای کلیدواژه موجود در این بخش، بر تمامی بخشهای pkgname نیز اعمال میشوند.
یک بخش pkgname ممکن است صفر یا چند انتساب کلیدواژه داشته باشد. این بخش نباید شامل انتسابهایی برای کلیدواژههای epoch، pkgver، pkgrel، یا validpgpkeys باشد، و همچنین نباید شامل هیچ انتساب کلیدواژهای باشد که اعلانهای وابستگی ساخت یا آزمایش (برای جزئیات alpm-package-relation را ببینید)، اعلانهای منبع (برای جزئیات alpm-package-source را ببینید) یا اعلانهای مجموع مقابلهای (checksum) (برای جزئیات alpm-package-source-checksum را ببینید) را نشان میدهند. انتسابهای کلیدواژه در یک بخش pkgname تنها بر بسته خاصی که آن بخش توصیف میکند اعمال میشوند. به طور دقیقتر، تمامی انتسابهای کلیدواژه در یک بخش pkgname برای لغو، گسترش یا بازنویسی (override) انتسابهای کلیدواژه موجود در بخش pkgbase استفاده میشوند. قوانین زیر اعمال میشوند:
- •
- کلیدواژهای که قبلاً در بخش pkgbase تعریف شده است و ممکن است در یک بخش pkgname استفاده شود، میتواند
- با انتساب یک مقدار خالی لغو شود (به عنوان مثال بخش pkgbase مقدار depends = bash را تعریف میکند و بخش pkgname مقدار depends = را تعریف میکند)، یا
- با تعریف مجدد آن بازنویسی شود (به عنوان مثال بخش pkgbase مقدار depends = bash را تعریف میکند و بخش pkgname مقدار depends = zsh را تعریف میکند).
- •
- تمامی کلیدواژههایی که اجازه چندین انتساب را میدهند و ممکن است در یک بخش pkgname استفاده شوند، میتوانند ابتدا با افزودن تمامی انتسابهای کلیدواژه موجود در بخش pkgbase و سپس افزودن انتسابهای کلیدواژه بیشتر در یک بخش pkgname گسترش یابند (به عنوان مثال بخش pkgbase مقدار depends = bash را تعریف میکند و بخش pkgname مقادیر depends = bash و depends = bash-completion را تعریف میکند).
بسته به کلیدواژه ممکن است قوانین بیشتری اعمال شود.
کلیدواژهها (Keywords)
تمامی انتسابهای کلیدواژه به صورت یک کلید از فهرست زیر تعریف میشوند که بلافاصله با یک فاصله خالی، یک علامت ‘=’، یک فاصله خالی دیگر و یک مقدار دنبال میشود.
به طور پیشفرض، دقیقاً یک انتساب کلیدواژه به ازای هر کلیدواژه در یک SRCINFO مجاز است. به عنوان استثنا بر این قاعده، کلیدواژههای arch، backup، checkdepends، conflicts، depends، groups، license، makedepends، optdepends، options، provides، replaces، و همچنین کلیدواژههای مربوط به منابع شامل noextract، source، validpgpkeys، b2sums، md5sums، sha1sums، sha224sums، sha256sums، sha384sums، sha512sums و cksums میتوانند صفر یا چند بار ارائه شوند.
به طور پیشفرض، انتسابهای کلیدواژه بر تمام alpm-architectures هدف اعمال میشوند. برخی از کلیدواژهها نیز ممکن است به روشهای مختص معماری با الحاق علامت ‘_’ که بلافاصله با یک alpm-architecture (همه به جز any) دنبال میشود، ارائه شوند - برای جزئیات بخش مربوط به هر کلیدواژه را ببینید. این انتسابهای کلیدواژه مختص معماری تنها بر معماری هدف خود اعمال میشوند.
pkgdesc
توضیحات بسته. این انتساب کلیدواژه میتواند صفر یا یک بار در pkgbase و/یا در هر بخش pkgname ارائه شود. مقدار آن یک رشته UTF-8 با طول صفر یا بیشتر است (مانند A project used for something). توضیحات بسته نباید هیچ فاصله خالی در ابتدا یا انتهای خود داشته باشند، نباید شامل هیچ نویسه فاصله خالی به جز فاصله “ “ باشند و نباید فواصل متوالی داشته باشند.
هیچ قانون خاصی در مورد مقدار وجود ندارد، اما پیشنهاد میشود که “کوتاه” باشد و شامل نام بسته نباشد (به alpm-package-name مراجعه کنید).
pkgver
مؤلفه نسخه بسته pkgver برای بسته(ها) (برای اطلاعات بیشتر در مورد مقدار مورد انتظار به alpm-pkgver مراجعه کنید). این انتساب کلیدواژه باید دقیقاً یک بار و منحصراً در بخش pkgbase ارائه شود.
مقدار آن یک alpm-pkgver است (مانند 1.0.0 یا 1:1.0.0).
pkgrel
مؤلفه نسخه انتشار pkgrel برای بسته(ها) (برای جزئیات بیشتر در مورد مقدار مورد انتظار به alpm-pkgrel مراجعه کنید).
این انتساب کلیدواژه باید دقیقاً یک بار و منحصراً در بخش pkgbase ارائه شود.
epoch
مؤلفه اختیاری epoch نسخه بسته برای بسته(ها) (برای جزئیات بیشتر در مورد مقدار مورد انتظار به alpm-epoch مراجعه کنید).
این انتساب کلیدواژه ممکن است صفر یا یک بار و منحصراً در بخش pkgbase ارائه شود.
url
نشانی اینترنتی (URL) پروژه بسته. این انتساب کلیدواژه ممکن است صفر یا یک بار در pkgbase و/یا در هر بخش pkgname ارائه شود.
مقدار آن یک نشانی اینترنتی معتبر یا یک رشته خالی است (مانند https://example.org).
install
نام یک alpm-install-scriptlet که برای اقدامات پیش و پس از نصب، ارتقا یا حذف یک بسته استفاده میشود. این انتساب کلیدواژه ممکن است صفر یا یک بار در pkgbase و/یا در هر بخش pkgname ارائه شود.
مقدار آن باید یک رشته UTF-8 باشد که نشاندهنده یک مسیر نسبی فایل است (مانند scriptlet.install).
changelog
نام فایلی که شامل اطلاعات تاریخچه تغییرات (changelog) برای یک بسته است. این انتساب کلیدواژه ممکن است صفر یا یک بار در pkgbase و/یا در هر بخش pkgname ارائه شود.
مقدار آن باید یک رشته UTF-8 باشد که نشاندهنده یک مسیر نسبی فایل است (مانند pkg.changelog).
arch
معماریای که برای یک بخش pkgname اعمال میشود. این انتساب کلیدواژه ممکن است یک یا چند بار در pkgbase و صفر یا چند بار در هر بخش pkgname ارائه شود.
مقدار آن یک alpm-architecture است (مانند x86_64 یا any). در صورت استفاده چندباره از این کلیدواژه، قوانین زیر اعمال میشوند:
- هر مقدار باید یکتا باشد
- اگر از مقدار any استفاده شود، هیچ مقدار دیگری نمیتواند در کنار آن استفاده شود، زیرا بدین معنی است که یک pkgname ممکن است روی هر معماری استفاده شود (که از نظر منطقی استفاده تنها روی یک معماری خاص را نفی میکند)
groups
یک رشته اختیاری که نشاندهنده یک گروه در سطح توزیع است که بسته در آن قرار دارد (به alpm-package-group مراجعه کنید). گروهها برای مثال توسط مدیران بسته برای گروهبندی بستهها و امکان نصب دستهجمعی آنها، یا توسط سایر نرمافزارهای مربوط برای نمایش اطلاعات این بستهها استفاده میشوند.
این انتساب کلیدواژه میتواند صفر یا چند بار در pkgbase و همچنین در هر بخش pkgname ارائه شود. مقدار آن با یک رشته UTF-8 نشان داده میشود. اگرچه استفاده از یک رشته UTF-8 امکانپذیر است، اما اکیداً توصیه میشود به جای آن از قالب alpm-package-name برای مقدار استفاده شود، زیرا مدیران بسته ممکن است از groups برای نصب کل یک گروه از بستهها استفاده کنند.
license
مجوزی که برای بسته(ها) اعمال میشود.
این انتساب کلیدواژه میتواند صفر یا چند بار در pkgbase و همچنین در هر بخش pkgname ارائه شود. مقدار آن نشاندهنده شناسه مجوز است که یک رشته با طول غیر صفر است (مانند GPL). اگرچه به جز طول آن محدودیت خاصی برای مقدار اعمال نمیشود، اما اکیداً توصیه میشود که به عبارات مجوز SPDX تکیه کنید (مانند GPL-3.0-or-later یا Apache-2.0 OR MIT). برای اطلاعات بیشتر به فهرست مجوزهای SPDX[5] مراجعه کنید.
checkdepends
وابستگی برای اجرای آزمونهای پروژه بالادستی (upstream) بسته. یک checkdepends مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘checkdepends’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند checkdepends_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. مقدار آن یک alpm-package-relation از نوع وابستگی آزمون است (مانند example یا example=1.0.0).
makedepends
وابستگی زمان ساخت بسته (مؤلفه مجازی یا بسته). یک makedepends مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘makedepends’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند makedepends_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. مقدار آن یک alpm-package-relation از نوع وابستگی ساخت است (مانند example یا example=1.0.0).
depends
وابستگی زمان اجرای بسته (مؤلفه مجازی یا بسته). یک depends مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘depends’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند depends_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار در pkgbase و همچنین در هر بخش pkgname ارائه شود. مقدار آن یک alpm-package-relation از نوع وابستگی زمان اجرا است (مانند example یا example=1.0.0).
optdepends
وابستگی اختیاری بسته (مؤلفه مجازی یا بسته). یک optdepends مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘optdepends’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند optdepends_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار در pkgbase و همچنین در هر بخش pkgname ارائه شود. مقدار آن یک alpm-package-relation از نوع وابستگی اختیاری است (مانند example یا example: this is a description).
provides
یک مؤلفه مجازی یا بسته دیگر که این بسته ارائه میدهد (تأمین میکند). یک provides مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘provides’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند provides_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار در pkgbase و همچنین در هر بخش pkgname ارائه شود. مقدار آن یک alpm-package-relation از نوع تأمین (provision) است (مانند example یا example=1.0.0).
conflicts
یک مؤلفه مجازی یا بسته دیگر که این بسته با آن تداخل دارد. یک conflicts مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘conflicts’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند conflicts_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار در pkgbase و همچنین در هر بخش pkgname ارائه شود. مقدار آن یک alpm-package-relation از نوع تداخل است (مانند example یا example=1.0.0).
replaces
یک مؤلفه مجازی یا بسته دیگر که این بسته هنگام نصب جایگزین آن میشود. یک replaces مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘replaces’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند replaces_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار در pkgbase و همچنین در هر بخش pkgname ارائه شود. مقدار آن یک alpm-package-relation از نوع جایگزینی است (مانند example یا example=1.0.0).
noextract
نام یک فایل منبع محلی (به alpm-package-source مراجعه کنید) از فایلی که نباید در هنگام ساخت بسته استخراج شود. هر مقدار باید یک نام فایل محلی معتبر از یک انتساب کلیدواژه موجود source را نشان دهد (مانند source = https://example.org/project-1.0.0.tar.gz و noextract = project-1.0.0.tar.gz). فایلی که با نام فایل ارائه شده مطابقت داشته باشد، در طول ساخت بسته به طور خودکار استخراج نمیشود، حتی اگر یک فایل فشرده باشد (مانند example.tar.gz یا example.zip).
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود.
options
گزینهای که توسط ابزار ساخت بسته (یعنی makepkg؛ گزینههای پیشفرض در OPTIONS از makepkg.conf تعریف شدهاند) هنگام ساخت بسته استفاده میشود. این انتساب کلیدواژه میتواند صفر یا چند بار در بخش pkgbase یا در یک بخش pkgname ارائه شود.
مقدار باید یک کلمه یکتا باشد، که میتواند به صورت اختیاری با یک علامت ‘!’ پیشوند شود که نشاندهنده نفی گزینه است (مانند debug یا !debug). اگر این انتساب کلیدواژه در یک بخش pkgname استفاده شود، مقدار اولین وقوع ممکن است خالی باشد، که نشان میدهد برای بسته مربوطه هیچ یک از options تعریفشده در بخش pkgbase اعمال نمیشود.
backup
مسیر نسبی فایلی در یک بسته مشخص که نشاندهنده فایلی است که مدیر بسته باید در صورت تغییر یا حذف در طول عملیات بهروزرسانی بسته، نسخههای پشتیبان از آن نگه دارد (فایلهای ‘.pacnew’ و ‘.pacsave’ در pacman را ببینید). این انتساب کلیدواژه میتواند صفر یا چند بار در pkgbase و همچنین در هر بخش pkgname ارائه شود. مقدار باید یک مسیر فایل یونیکس نسبی معتبر باشد (مانند etc/package.conf).
source
یک منبع (از راه دور یا محلی) مورد استفاده در فرآیند بستهبندی بسته(ها) (برای جزئیات بیشتر در مورد مقدار مجاز به alpm-package-source مراجعه کنید)، که در صورت فشرده بودن فایلها به طور خودکار استخراج میشوند (مگر اینکه یک مقدار noextract مطابق با نام فایل وجود داشته باشد). یک source مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘source’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند source_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود.
validpgpkeys
یک اثرانگشت OpenPGP[2] که ممکن است برای اعتبارسنجی امضاهای OpenPGP[3] ایجادشده برای یک یا چند alpm-package-sources (یعنی یک انتساب کلیدواژه source) استفاده شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. در موارد زیر باید حداقل یک بار استفاده شود:
- اگر یک مقدار alpm-package-source از قطعه URL با عنوان signed استفاده کند
- یا اگر یک alpm-package-source با پسوند .sig وجود داشته باشد که معادل منبع دیگری بدون آن پسوند فایل باشد
- یا اگر یک alpm-package-source با پسوند .sign وجود داشته باشد که با منبع دیگری پس از حذف آن پسوند و تمامی پسوندهای مربوط به الگوریتمهای فشردهسازی (مانند .xz یا .zst) مطابقت داشته باشد
مقدار یک رشته هگزادسیمال با طول ۴۰ نویسه است (مانند 0123456789abcdef0123456789abcdef01234567) که میتواند به صورت اختیاری با فاصلههای خالی از هم جدا شود (مانند 0123 4567 89ab cdef 0123 4567 89ab cdef 0123 4567). اگرچه امکانپذیر است، اما استفاده از قالب غیر یکتا و منسوخ شناسه کلید OpenPGP[4] که یک رشته هگزادسیمال ۱۶ نویسهای است (مانند 89abcdef01234567) اکیداً منع میشود.
md5sums
یک خلاصه هش MD5[6] از فایلی که نام آن در یک مقدار source ارائه شده است، یا رشته ویژه ‘SKIP’ (برای جزئیات بیشتر در مورد مقدار مجاز به alpm-package-source-checksum مراجعه کنید). یک md5sums مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘md5sums’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند md5sums_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. در صورت استفاده، فایل SRCINFO باید به همان تعداد انتسابهای کلیدواژه source، شامل انتسابهای کلیدواژه md5sums باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق میکند). ترتیب انتسابهای کلیدواژه source همراه، ترتیب انتسابهای کلیدواژه md5sums را دیکته میکند (یعنی اولین انتساب کلیدواژه md5sums دادههای مربوط به اولین انتساب کلیدواژه source را ارائه میدهد و به همین ترتیب).
sha1sums
یک خلاصه هش SHA-1[7] از فایلی که نام آن در یک مقدار source ارائه شده است، یا رشته ویژه ‘SKIP’ (برای جزئیات بیشتر در مورد مقدار مجاز به alpm-package-source-checksum مراجعه کنید). یک sha1sums مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘sha1sums’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند sha1sums_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. در صورت استفاده، فایل SRCINFO باید به همان تعداد انتسابهای کلیدواژه source، شامل انتسابهای کلیدواژه sha1sums باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق میکند). ترتیب انتسابهای کلیدواژه source همراه، ترتیب انتسابهای کلیدواژه sha1sums را دیکته میکند (یعنی اولین انتساب کلیدواژه sha1sums دادههای مربوط به اولین انتساب کلیدواژه source را ارائه میدهد و به همین ترتیب).
sha224sums
یک خلاصه هش SHA-224[8] از فایلی که نام آن در یک مقدار source ارائه شده است، یا رشته ویژه ‘SKIP’ (برای جزئیات بیشتر در مورد مقدار مجاز به alpm-package-source-checksum مراجعه کنید). یک sha224sums مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘sha224sums’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند sha224sums_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. در صورت استفاده، فایل SRCINFO باید به همان تعداد انتسابهای کلیدواژه source، شامل انتسابهای کلیدواژه sha224sums باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق میکند). ترتیب انتسابهای کلیدواژه source همراه، ترتیب انتسابهای کلیدواژه sha224sums را دیکته میکند (یعنی اولین انتساب کلیدواژه sha224sums دادههای مربوط به اولین انتساب کلیدواژه source را ارائه میدهد و به همین ترتیب).
sha256sums
یک خلاصه هش SHA-256[8] از فایلی که نام آن در یک مقدار source ارائه شده است، یا رشته ویژه ‘SKIP’ (برای جزئیات بیشتر در مورد مقدار مجاز به alpm-package-source-checksum مراجعه کنید). یک sha256sums مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘sha256sums’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند sha256sums_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. در صورت استفاده، فایل SRCINFO باید به همان تعداد انتسابهای کلیدواژه source، شامل انتسابهای کلیدواژه sha256sums باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق میکند). ترتیب انتسابهای کلیدواژه source همراه، ترتیب انتسابهای کلیدواژه sha256sums را دیکته میکند (یعنی اولین انتساب کلیدواژه sha256sums دادههای مربوط به اولین انتساب کلیدواژه source را ارائه میدهد و به همین ترتیب).
sha384sums
یک خلاصه هش SHA-384[8] از فایلی که نام آن در یک مقدار source ارائه شده است، یا رشته ویژه ‘SKIP’ (برای جزئیات بیشتر در مورد مقدار مجاز به alpm-package-source-checksum مراجعه کنید). یک sha384sums مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘sha384sums’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند sha384sums_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. در صورت استفاده، فایل SRCINFO باید به همان تعداد انتسابهای کلیدواژه source، شامل انتسابهای کلیدواژه sha384sums باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق میکند). ترتیب انتسابهای کلیدواژه source همراه، ترتیب انتسابهای کلیدواژه sha384sums را دیکته میکند (یعنی اولین انتساب کلیدواژه sha384sums دادههای مربوط به اولین انتساب کلیدواژه source را ارائه میدهد و به همین ترتیب).
sha512sums
یک خلاصه هش SHA-512[8] از فایلی که نام آن در یک مقدار source ارائه شده است، یا رشته ویژه ‘SKIP’ (برای جزئیات بیشتر در مورد مقدار مجاز به alpm-package-source-checksum مراجعه کنید). یک sha512sums مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘sha512sums’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند sha512sums_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. در صورت استفاده، فایل SRCINFO باید به همان تعداد انتسابهای کلیدواژه source، شامل انتسابهای کلیدواژه sha512sums باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق میکند). ترتیب انتسابهای کلیدواژه source همراه، ترتیب انتسابهای کلیدواژه sha512sums را دیکته میکند (یعنی اولین انتساب کلیدواژه sha512sums دادههای مربوط به اولین انتساب کلیدواژه source را ارائه میدهد و به همین ترتیب).
b2sums
یک خلاصه هش BLAKE2[9] از فایلی که نام آن در یک مقدار source ارائه شده است، یا رشته ویژه ‘SKIP’ (برای جزئیات بیشتر در مورد مقدار مجاز به alpm-package-source-checksum مراجعه کنید). یک b2sums مختص معماری میتواند با استفاده از کلیدواژهای متشکل از ‘b2sums’ که بلافاصله با یک علامت ‘_’ و بلافاصله پس از آن با یک alpm-architecture دنبال میشود (همه alpm-architectures به جز any قابل استفاده هستند)، مانند b2sums_aarch64 مشخص شود.
این انتساب کلیدواژه میتواند صفر یا چند بار، منحصراً در بخش pkgbase ارائه شود. در صورت استفاده، فایل SRCINFO باید به همان تعداد انتسابهای کلیدواژه source، شامل انتسابهای کلیدواژه b2sums باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق میکند). ترتیب انتسابهای کلیدواژه source همراه، ترتیب انتسابهای کلیدواژه b2sums را دیکته میکند (یعنی اولین انتساب کلیدواژه b2sums دادههای مربوط به اولین انتساب کلیدواژه source را ارائه میدهد و به همین ترتیب).
مثالها (EXAMPLES)
بستههای تفکیکشده، گسترش، بازنویسی و لغو کلیدواژهها
pkgbase = example pkgdesc = An example package pkgver = 1.0.0 pkgrel = 1 epoch = 1 url = https://example.org arch = any license = GPL-3.0-or-later checkdepends = extra-test-tool checkdepends = other-extra-test-tool makedepends = cmake makedepends = python-sphinx depends = glibc depends = gcc-libs source = https://example.org/example-1.0.0.tar.gz sha512sums = 8b41e1b78ad11521113c52ff182a1b8e0a195754aa527fcd00a411620b46f20ffffb8088ccf85497121ad4499e0845b876f6dd6640088a2f0b2d8a600bdf4c0c b2sums = cb79bf658b69dff0acf721232455a461598dd26ed42047bd0362e7fbd796093145a694c1a6bcdcf5bf7f866d78f009c14bf456be0f944283829a6e33cedf2aef pkgname = example # overrides the pkgdesc for the example package pkgdesc = A project that does something groups = package-group # extends the license for the example package license = GPL-3.0-or-later license = LGPL-3.0-or-later optdepends = python: for special-python-script.py optdepends = example-docs: for documentation provides = some-component conflicts = conflicting-package<1.0.0 replaces = other-package>0.9.0-3 backup = etc/example/config.toml pkgname = example-docs # overrides the pkgdesc for the example-docs package pkgdesc = A project that does something - documentation # overrides the license for the example-docs package license = CC-BY-SA-4.0 # unsets the dependencies for the example-docs package depends =
مثال بالا یک فایل SRCINFO را نشان میدهد که دو بسته تفکیکشده (split package) را توصیف میکند (برای جزئیات بیشتر به alpm-split-package مراجعه کنید). هر دو بخش pkgname انتساب کلیدواژه pkgdesc را بازنویسی (override) میکنند. اولین بخش pkgname علاوه بر این، مشخصه کلیدواژه license را از بخش pkgbase گسترش میدهد و انتسابهای کلیدواژه مختص بسته بیشتری را اضافه میکند (مانند replaces، groups، conflicts، provides، backup، optdepends). دومین بخش pkgname انتساب کلیدواژه license را بازنویسی کرده و انتساب کلیدواژه depends را لغو (unset) میکند.
دادههای بسته، به ازای هر معماری
فایل کمینه PKGBUILD زیر یک بسته را برای دو alpm-architectures تعریف میکند.
pkgname=example
pkgver=0.1.0
pkgrel=1
pkgdesc="An example package"
arch=(x86_64 aarch64)
url="https://example.org"
license=(GPL-3.0-or-later)
depends=(bash)
depends_x86_64=(zsh)
package() {
pkgdesc+=" - extra info"
depends_x86_64+=(nushell)
depends_aarch64=(sh)
}
این PKGBUILD توسط SRCINFO زیر نشان داده میشود:
pkgbase = example pkgdesc = An example package pkgver = 0.1.0 pkgrel = 1 url = https://example.org arch = x86_64 arch = aarch64 license = GPL-3.0-or-later depends = bash depends_x86_64 = zsh pkgname = example pkgdesc = An example package - extra info depends_x86_64 = zsh depends_x86_64 = nushell depends_aarch64 = sh
بسته به alpm-architecture هدف، دادههای بسته هنگام برطرفسازی کامل تمام کلیدواژهها متفاوت خواهد بود.
برای aarch64:
- pkgdesc = An example package - extra info
- pkgver = 0.1.0
- pkgrel = 1
- url = https://example.org
- arch = aarch64
- license = GPL-3.0-or-later
- depends = bash
- depends = sh
برای x86_64:
- pkgdesc = An example package - extra info
- pkgver = 0.1.0
- pkgrel = 1
- url = https://example.org
- arch = x86_64
- license = GPL-3.0-or-later
- depends = bash
- depends = zsh
- depends = nushell
همچنین ببینید (SEE ALSO)
alpm-srcinfo(1), bash(1), PKGBUILD(5), makepkg.conf(5), alpm-architecture(7), alpm-comparison(7), alpm-epoch(7), alpm-install-scriptlet(7), alpm-package-base(7), alpm-package-group(7), alpm-package-name(7), alpm-package-relation(7), alpm-package-version(7), alpm-pkgrel(7), alpm-pkgver(7), alpm-split-package(7), makepkg(8), pacman(8)
یادداشتها (NOTES)
- 1.
- printable ASCII characters
- https://en.wikipedia.org/wiki/ASCII#Printable_characters
- 2.
- OpenPGP fingerprint
- https://openpgp.dev/book/certificates.html#fingerprint
- 3.
- OpenPGP signatures
- https://openpgp.dev/book/signing_data.html
- 4.
- OpenPGP Key ID
- https://openpgp.dev/book/glossary.html#term-Key-ID
- 5.
- SPDX License List
- https://spdx.org/licenses
- 6.
- MD5
- https://en.wikipedia.org/wiki/MD5
- 7.
- SHA-1
- https://en.wikipedia.org/wiki/SHA-1
- 8.
- SHA-2
- https://en.wikipedia.org/wiki/SHA-2
- 9.
- BLAKE2
- https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2
| 2024-03-04 | Arch Linux |