.\" -*- mode: troff; coding: utf-8 -*- .TH "SRCINFO" "5" "2024-03-04" "Arch Linux" "راهنمای فایل‌های پیکربندی" .SH "نام (NAME)" .LP SRCINFO \- اطلاعات مربوط به منابع بسته‌های مبتنی بر ALPM .SH "توضیحات (DESCRIPTION)" .LP قالب \fBSRCINFO\fR یک قالب متنی است که متادیتای منبع بسته را توصیف می‌کند. این فایل‌ها \fB.SRCINFO\fR نامیده می‌شوند و در ریشه مخازن سورس که بسته‌های مبتنی بر ALPM از آن‌ها ساخته می‌شوند، قرار دارند. آن‌ها از فایل‌های \fBPKGBUILD\fR ایجاد می‌شوند تا در سناریوهایی که استفاده از \fBbash\fR امکان‌پذیر نیست، تجزیه امن متادیتا را ممکن سازند. قالب \fBSRCINFO\fR توسط برنامه‌هایی مانند نرم‌افزارهای مدیریت مخزن و رابط‌های کاربری وب سفارشی برای ارزیابی و نمایش اطلاعات منبع بسته‌ها استفاده می‌شود. .SS "قالب عمومی (General Format)" .LP یک فایل \fBSRCINFO\fR شامل مجموعه‌ای از خطوط است که هر کدام اطلاعاتی را در مورد جنبه‌ای از منابع یک یا چند بسته ارائه می‌دهند (برای اطلاعات درباره بسته‌های تفکیک‌شده \fBalpm-split-package\fR را ببینید). خطوطی که با علامت \(oq#\(cq شروع می‌شوند به عنوان توضیح (کامنت) در نظر گرفته شده و همیشه نادیده گرفته می‌شوند. خطوط خالی همیشه نادیده گرفته می‌شوند. فاصله‌های خالی ابتدای خطوط همیشه نادیده گرفته می‌شوند. .PP مگر در مواردی که خلاف آن ذکر شده باشد، اطلاعات موجود در یک فایل \fBSRCINFO\fR پوشش‌داده‌شده توسط مجموعه‌ای از ۹۵ \fBنویسه اسکی قابل چاپ\fR[1] در نظر گرفته می‌شود. .PP این قالب فایل بین سرایند بخش‌ها (که بخش‌های مشخصی را معرفی می‌کنند) و انتساب کلیدواژه‌ها که در آن بخش‌ها قابل استفاده هستند، تمایز قائل می‌شود. هر خط اطلاعاتی را کدگذاری می‌کند که یا بیانگر یک سرایند بخش است یا یک انتساب کلیدواژه. .PP قالب \fBSRCINFO\fR نیازمند تعریف یک بخش منفرد \fBpkgbase\fR و یک یا چند بخش \fBpkgname\fR است. در حالی که بخش \fBpkgbase\fR شامل متادیتای مشترک بین تمام بسته‌های ساخته‌شده از یک \fBPKGBUILD\fR است، بخش‌های \fBpkgname\fR برای اعلان متادیتای بسته و ارائه جایگزینی‌ها (overrides) به کار می‌روند که مختص هر بسته مربوطه است. .SS "سرایندهای بخش (Section headers)" .LP تمامی سرایندهای بخش شامل یک کلید هستند که بلافاصله با یک فاصله خالی، یک علامت \(oq=\(cq، یک فاصله خالی دیگر و یک مقدار دنبال می‌شود. .PP سرایند بخش برای یک بخش \fBpkgbase\fR باید از کلمه \(oqpkgbase\(cq به عنوان کلید و یک \fBalpm-package-base\fR به عنوان مقدار استفاده کند. دقیقاً یک چنین سرایند بخشی باید در ابتدای یک فایل \fBSRCINFO\fR وجود داشته باشد. .PP سرایند بخش برای یک بخش \fBpkgname\fR باید از کلمه \(oqpkgname\(cq به عنوان کلید و یک \fBalpm-package-name\fR به عنوان مقدار استفاده کند. حداقل یک چنین سرایند بخشی باید در یک فایل \fBSRCINFO\fR (یکی به ازای هر بسته ساخته‌شده از یک \fBPKGBUILD\fR) وجود داشته باشد، اما فقط پس از سرایند بخش \fBpkgbase\fR. .SS "بخش‌ها (Sections)" .LP بخش \fBpkgbase\fR باید حداقل شامل انتساب‌هایی برای کلیدواژه‌های \fBpkgver\fR و \fBpkgrel\fR باشد، و در غیر این صورت می‌تواند شامل تمامی انتساب‌های کلیدواژه شناخته‌شده دیگر نیز باشد. انتساب‌های کلیدواژه موجود در این بخش، بر تمامی بخش‌های \fBpkgname\fR نیز اعمال می‌شوند. .PP یک بخش \fBpkgname\fR ممکن است صفر یا چند انتساب کلیدواژه داشته باشد. این بخش نباید شامل انتساب‌هایی برای کلیدواژه‌های \fBepoch\fR، \fBpkgver\fR، \fBpkgrel\fR، یا \fBvalidpgpkeys\fR باشد، و همچنین نباید شامل هیچ انتساب کلیدواژه‌ای باشد که اعلان‌های وابستگی ساخت یا آزمایش (برای جزئیات \fBalpm-package-relation\fR را ببینید)، اعلان‌های منبع (برای جزئیات \fBalpm-package-source\fR را ببینید) یا اعلان‌های مجموع مقابله‌ای (checksum) (برای جزئیات \fBalpm-package-source-checksum\fR را ببینید) را نشان می‌دهند. انتساب‌های کلیدواژه در یک بخش \fBpkgname\fR تنها بر بسته خاصی که آن بخش توصیف می‌کند اعمال می‌شوند. به طور دقیق‌تر، تمامی انتساب‌های کلیدواژه در یک بخش \fBpkgname\fR برای لغو، گسترش یا بازنویسی (override) انتساب‌های کلیدواژه موجود در بخش \fBpkgbase\fR استفاده می‌شوند. قوانین زیر اعمال می‌شوند: .IP "\(bu" 3 کلیدواژه‌ای که قبلاً در بخش \fBpkgbase\fR تعریف شده است و ممکن است در یک بخش \fBpkgname\fR استفاده شود، می‌تواند .if n \ .sp -1 .if t \ .sp -0.25v .RS .IP "\(bu" 3 با انتساب یک مقدار خالی لغو شود (به عنوان مثال بخش \fBpkgbase\fR مقدار \f(CRdepends = bash\fR را تعریف می‌کند و بخش \fBpkgname\fR مقدار \f(CRdepends =\fR را تعریف می‌کند)، یا .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 با تعریف مجدد آن بازنویسی شود (به عنوان مثال بخش \fBpkgbase\fR مقدار \f(CRdepends = bash\fR را تعریف می‌کند و بخش \fBpkgname\fR مقدار \f(CRdepends = zsh\fR را تعریف می‌کند). .RE .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 تمامی کلیدواژه‌هایی که اجازه چندین انتساب را می‌دهند و ممکن است در یک بخش \fBpkgname\fR استفاده شوند، می‌توانند ابتدا با افزودن تمامی انتساب‌های کلیدواژه موجود در بخش \fBpkgbase\fR و سپس افزودن انتساب‌های کلیدواژه بیشتر در یک بخش \fBpkgname\fR گسترش یابند (به عنوان مثال بخش \fBpkgbase\fR مقدار \f(CRdepends = bash\fR را تعریف می‌کند و بخش \fBpkgname\fR مقادیر \f(CRdepends = bash\fR و \f(CRdepends = bash-completion\fR را تعریف می‌کند). .LP بسته به کلیدواژه ممکن است قوانین بیشتری اعمال شود. .SS "کلیدواژه‌ها (Keywords)" .LP تمامی انتساب‌های کلیدواژه به صورت یک کلید از فهرست زیر تعریف می‌شوند که بلافاصله با یک فاصله خالی، یک علامت \(oq=\(cq، یک فاصله خالی دیگر و یک مقدار دنبال می‌شود. .PP به طور پیش‌فرض، دقیقاً یک انتساب کلیدواژه به ازای هر کلیدواژه در یک \fBSRCINFO\fR مجاز است. به عنوان استثنا بر این قاعده، کلیدواژه‌های \fBarch\fR، \fBbackup\fR، \fBcheckdepends\fR، \fBconflicts\fR، \fBdepends\fR، \fBgroups\fR، \fBlicense\fR، \fBmakedepends\fR، \fBoptdepends\fR، \fBoptions\fR، \fBprovides\fR، \fBreplaces\fR، و همچنین کلیدواژه‌های مربوط به منابع شامل \fBnoextract\fR، \fBsource\fR، \fBvalidpgpkeys\fR، \fBb2sums\fR، \fBmd5sums\fR، \fBsha1sums\fR، \fBsha224sums\fR، \fBsha256sums\fR، \fBsha384sums\fR، \fBsha512sums\fR و \fBcksums\fR می‌توانند صفر یا چند بار ارائه شوند. .PP به طور پیش‌فرض، انتساب‌های کلیدواژه بر تمام \fBalpm-architectures\fR هدف اعمال می‌شوند. برخی از کلیدواژه‌ها نیز ممکن است به روش‌های مختص معماری با الحاق علامت \(oq_\(cq که بلافاصله با یک \fBalpm-architecture\fR (همه به جز \f(CRany\fR) دنبال می‌شود، ارائه شوند - برای جزئیات بخش مربوط به هر کلیدواژه را ببینید. این انتساب‌های کلیدواژه مختص معماری تنها بر معماری هدف خود اعمال می‌شوند. .SS "pkgdesc" .LP توضیحات بسته. این انتساب کلیدواژه می‌تواند صفر یا یک بار در \fBpkgbase\fR و/یا در هر بخش \fBpkgname\fR ارائه شود. مقدار آن یک رشته UTF-8 با طول صفر یا بیشتر است (مانند \f(CRA project used for something\fR). توضیحات بسته نباید هیچ فاصله خالی در ابتدا یا انتهای خود داشته باشند، نباید شامل هیچ نویسه فاصله خالی به جز فاصله \(lq \(lq باشند و نباید فواصل متوالی داشته باشند. .PP هیچ قانون خاصی در مورد مقدار وجود ندارد، اما پیشنهاد می‌شود که \(lqکوتاه\(rq باشد و شامل نام بسته نباشد (به \fBalpm-package-name\fR مراجعه کنید). .SS "pkgver" .LP مؤلفه نسخه بسته pkgver برای بسته(ها) (برای اطلاعات بیشتر در مورد مقدار مورد انتظار به \fBalpm-pkgver\fR مراجعه کنید). این انتساب کلیدواژه باید دقیقاً یک بار و منحصراً در بخش \fBpkgbase\fR ارائه شود. .PP مقدار آن یک \fBalpm-pkgver\fR است (مانند \f(CR1.0.0\fR یا \f(CR1:1.0.0\fR). .SS "pkgrel" .LP مؤلفه نسخه انتشار pkgrel برای بسته(ها) (برای جزئیات بیشتر در مورد مقدار مورد انتظار به \fBalpm-pkgrel\fR مراجعه کنید). .PP این انتساب کلیدواژه باید دقیقاً یک بار و منحصراً در بخش \fBpkgbase\fR ارائه شود. .SS "epoch" .LP مؤلفه اختیاری epoch نسخه بسته برای بسته(ها) (برای جزئیات بیشتر در مورد مقدار مورد انتظار به \fBalpm-epoch\fR مراجعه کنید). .PP این انتساب کلیدواژه ممکن است صفر یا یک بار و منحصراً در بخش \fBpkgbase\fR ارائه شود. .SS "url" .LP نشانی اینترنتی (URL) پروژه بسته. این انتساب کلیدواژه ممکن است صفر یا یک بار در \fBpkgbase\fR و/یا در هر بخش \fBpkgname\fR ارائه شود. .PP مقدار آن یک نشانی اینترنتی معتبر یا یک رشته خالی است (مانند \f(CRhttps://example.org\fR). .SS "install" .LP نام یک \fBalpm-install-scriptlet\fR که برای اقدامات پیش و پس از نصب، ارتقا یا حذف یک بسته استفاده می‌شود. این انتساب کلیدواژه ممکن است صفر یا یک بار در \fBpkgbase\fR و/یا در هر بخش \fBpkgname\fR ارائه شود. .PP مقدار آن باید یک رشته UTF-8 باشد که نشان‌دهنده یک مسیر نسبی فایل است (مانند \f(CRscriptlet.install\fR). .SS "changelog" .LP نام فایلی که شامل اطلاعات تاریخچه تغییرات (changelog) برای یک بسته است. این انتساب کلیدواژه ممکن است صفر یا یک بار در \fBpkgbase\fR و/یا در هر بخش \fBpkgname\fR ارائه شود. .PP مقدار آن باید یک رشته UTF-8 باشد که نشان‌دهنده یک مسیر نسبی فایل است (مانند \f(CRpkg.changelog\fR). .SS "arch" .LP معماری‌ای که برای یک بخش \fBpkgname\fR اعمال می‌شود. این انتساب کلیدواژه ممکن است یک یا چند بار در \fBpkgbase\fR و صفر یا چند بار در هر بخش \fBpkgname\fR ارائه شود. .PP مقدار آن یک \fBalpm-architecture\fR است (مانند \f(CRx86_64\fR یا \f(CRany\fR). در صورت استفاده چندباره از این کلیدواژه، قوانین زیر اعمال می‌شوند: .IP "\(bu" 3 هر مقدار باید یکتا باشد .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 اگر از مقدار \f(CRany\fR استفاده شود، هیچ مقدار دیگری نمی‌تواند در کنار آن استفاده شود، زیرا بدین معنی است که یک \fBpkgname\fR ممکن است \fIروی هر معماری\fR استفاده شود (که از نظر منطقی استفاده تنها روی یک معماری خاص را نفی می‌کند) .SS "groups" .LP یک رشته اختیاری که نشان‌دهنده یک گروه در سطح توزیع است که بسته در آن قرار دارد (به \fBalpm-package-group\fR مراجعه کنید). گروه‌ها برای مثال توسط مدیران بسته برای گروه‌بندی بسته‌ها و امکان نصب دسته‌جمعی آن‌ها، یا توسط سایر نرم‌افزارهای مربوط برای نمایش اطلاعات این بسته‌ها استفاده می‌شوند. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار در \fBpkgbase\fR و همچنین در هر بخش \fBpkgname\fR ارائه شود. مقدار آن با یک رشته UTF-8 نشان داده می‌شود. اگرچه استفاده از یک رشته UTF-8 امکان‌پذیر است، اما اکیداً توصیه می‌شود به جای آن از قالب \fBalpm-package-name\fR برای مقدار استفاده شود، زیرا مدیران بسته ممکن است از \fBgroups\fR برای نصب کل یک گروه از بسته‌ها استفاده کنند. .SS "license" .LP مجوزی که برای بسته(ها) اعمال می‌شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار در \fBpkgbase\fR و همچنین در هر بخش \fBpkgname\fR ارائه شود. مقدار آن نشان‌دهنده شناسه مجوز است که یک رشته با طول غیر صفر است (مانند \f(CRGPL\fR). اگرچه به جز طول آن محدودیت خاصی برای مقدار اعمال نمی‌شود، اما اکیداً توصیه می‌شود که به عبارات مجوز SPDX تکیه کنید (مانند \f(CRGPL-3.0-or-later\fR یا \f(CRApache-2.0 OR MIT\fR). برای اطلاعات بیشتر به \fBفهرست مجوزهای SPDX\fR[5] مراجعه کنید. .SS "checkdepends" .LP وابستگی برای اجرای آزمون‌های پروژه بالادستی (upstream) بسته. یک \fBcheckdepends\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqcheckdepends\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRcheckdepends_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBوابستگی آزمون\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS "makedepends" .LP وابستگی زمان ساخت بسته (\fIمؤلفه مجازی\fR یا بسته). یک \fBmakedepends\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqmakedepends\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRmakedepends_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBوابستگی ساخت\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS "depends" .LP وابستگی زمان اجرای بسته (\fIمؤلفه مجازی\fR یا بسته). یک \fBdepends\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqdepends\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRdepends_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار در \fBpkgbase\fR و همچنین در هر بخش \fBpkgname\fR ارائه شود. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBوابستگی زمان اجرا\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS "optdepends" .LP وابستگی اختیاری بسته (\fIمؤلفه مجازی\fR یا بسته). یک \fBoptdepends\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqoptdepends\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRoptdepends_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار در \fBpkgbase\fR و همچنین در هر بخش \fBpkgname\fR ارائه شود. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBوابستگی اختیاری\fR است (مانند \f(CRexample\fR یا \f(CRexample: this is a description\fR). .SS "provides" .LP یک \fIمؤلفه مجازی\fR یا بسته دیگر که این بسته ارائه می‌دهد (تأمین می‌کند). یک \fBprovides\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqprovides\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRprovides_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار در \fBpkgbase\fR و همچنین در هر بخش \fBpkgname\fR ارائه شود. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBتأمین (provision)\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS "conflicts" .LP یک \fIمؤلفه مجازی\fR یا بسته دیگر که این بسته با آن تداخل دارد. یک \fBconflicts\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqconflicts\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRconflicts_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار در \fBpkgbase\fR و همچنین در هر بخش \fBpkgname\fR ارائه شود. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBتداخل\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS "replaces" .LP یک \fIمؤلفه مجازی\fR یا بسته دیگر که این بسته هنگام نصب جایگزین آن می‌شود. یک \fBreplaces\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqreplaces\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRreplaces_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار در \fBpkgbase\fR و همچنین در هر بخش \fBpkgname\fR ارائه شود. مقدار آن یک \fBalpm-package-relation\fR از نوع \fBجایگزینی\fR است (مانند \f(CRexample\fR یا \f(CRexample=1.0.0\fR). .SS "noextract" .LP نام یک فایل منبع محلی (به \fBalpm-package-source\fR مراجعه کنید) از فایلی که نباید در هنگام ساخت بسته استخراج شود. هر مقدار باید یک نام فایل محلی معتبر از یک انتساب کلیدواژه موجود \fBsource\fR را نشان دهد (مانند \f(CRsource = https://example.org/project-1.0.0.tar.gz\fR و \f(CRnoextract = project-1.0.0.tar.gz\fR). فایلی که با نام فایل ارائه شده مطابقت داشته باشد، در طول ساخت بسته به طور خودکار استخراج \fIنمی‌شود\fR، حتی اگر یک فایل فشرده باشد (مانند \f(CRexample.tar.gz\fR یا \f(CRexample.zip\fR). .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. .SS "options" .LP گزینه‌ای که توسط ابزار ساخت بسته (یعنی \fBmakepkg\fR؛ گزینه‌های پیش‌فرض در \fBOPTIONS\fR از \fBmakepkg.conf\fR تعریف شده‌اند) هنگام ساخت بسته استفاده می‌شود. این انتساب کلیدواژه می‌تواند صفر یا چند بار در بخش \fBpkgbase\fR یا در یک بخش \fBpkgname\fR ارائه شود. .PP مقدار باید یک کلمه یکتا باشد، که می‌تواند به صورت اختیاری با یک علامت \(oq!\(cq پیشوند شود که نشان‌دهنده نفی گزینه است (مانند \f(CRdebug\fR یا \f(CR!debug\fR). اگر این انتساب کلیدواژه در یک بخش \fBpkgname\fR استفاده شود، مقدار اولین وقوع ممکن است خالی باشد، که نشان می‌دهد برای بسته مربوطه هیچ یک از \fBoptions\fR تعریف‌شده در بخش \fBpkgbase\fR اعمال نمی‌شود. .SS "backup" .LP مسیر نسبی فایلی در یک بسته مشخص که نشان‌دهنده فایلی است که مدیر بسته باید در صورت تغییر یا حذف در طول عملیات به‌روزرسانی بسته، نسخه‌های پشتیبان از آن نگه دارد (فایل‌های \(oq.pacnew\(cq و \(oq.pacsave\(cq در \fBpacman\fR را ببینید). این انتساب کلیدواژه می‌تواند صفر یا چند بار در \fBpkgbase\fR و همچنین در هر بخش \fBpkgname\fR ارائه شود. مقدار باید یک مسیر فایل یونیکس نسبی معتبر باشد (مانند \f(CRetc/package.conf\fR). .SS "source" .LP یک منبع (از راه دور یا محلی) مورد استفاده در فرآیند بسته‌بندی بسته(ها) (برای جزئیات بیشتر در مورد مقدار مجاز به \fBalpm-package-source\fR مراجعه کنید)، که در صورت فشرده بودن فایل‌ها به طور خودکار استخراج می‌شوند (مگر اینکه یک مقدار \fBnoextract\fR مطابق با نام فایل وجود داشته باشد). یک \fBsource\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqsource\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRsource_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. .SS "validpgpkeys" .LP یک \fBاثرانگشت OpenPGP\fR[2] که ممکن است برای اعتبارسنجی \fBامضاهای OpenPGP\fR[3] ایجادشده برای یک یا چند \fBalpm-package-sources\fR (یعنی یک انتساب کلیدواژه \fBsource\fR) استفاده شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. در موارد زیر باید حداقل یک بار استفاده شود: .IP "\(bu" 3 اگر یک مقدار \fBalpm-package-source\fR از قطعه URL با عنوان \f(CRsigned\fR استفاده کند .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 یا اگر یک \fBalpm-package-source\fR با پسوند \f(CR.sig\fR وجود داشته باشد که معادل منبع دیگری بدون آن پسوند فایل باشد .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 یا اگر یک \fBalpm-package-source\fR با پسوند \f(CR.sign\fR وجود داشته باشد که با منبع دیگری پس از حذف آن پسوند و تمامی پسوندهای مربوط به الگوریتم‌های فشرده‌سازی (مانند \f(CR.xz\fR یا \f(CR.zst\fR) مطابقت داشته باشد .LP مقدار یک رشته هگزادسیمال با طول ۴۰ نویسه است (مانند \f(CR0123456789abcdef0123456789abcdef01234567\fR) که می‌تواند به صورت اختیاری با فاصله‌های خالی از هم جدا شود (مانند \f(CR0123 4567 89ab cdef 0123 4567 89ab cdef 0123 4567\fR). اگرچه امکان‌پذیر است، اما استفاده از قالب غیر یکتا و منسوخ \fBشناسه کلید OpenPGP\fR[4] که یک رشته هگزادسیمال ۱۶ نویسه‌ای است (مانند \f(CR89abcdef01234567\fR) اکیداً منع می‌شود. .SS "md5sums" .LP یک خلاصه هش \fBMD5\fR[6] از فایلی که نام آن در یک مقدار \fBsource\fR ارائه شده است، یا رشته ویژه \(oqSKIP\(cq (برای جزئیات بیشتر در مورد مقدار مجاز به \fBalpm-package-source-checksum\fR مراجعه کنید). یک \fBmd5sums\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqmd5sums\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRmd5sums_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. در صورت استفاده، فایل \fBSRCINFO\fR باید به همان تعداد انتساب‌های کلیدواژه \fBsource\fR، شامل انتساب‌های کلیدواژه \fBmd5sums\fR باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق می‌کند). ترتیب انتساب‌های کلیدواژه \fBsource\fR همراه، ترتیب انتساب‌های کلیدواژه \fBmd5sums\fR را دیکته می‌کند (یعنی اولین انتساب کلیدواژه \fBmd5sums\fR داده‌های مربوط به اولین انتساب کلیدواژه \fBsource\fR را ارائه می‌دهد و به همین ترتیب). .SS "sha1sums" .LP یک خلاصه هش \fBSHA-1\fR[7] از فایلی که نام آن در یک مقدار \fBsource\fR ارائه شده است، یا رشته ویژه \(oqSKIP\(cq (برای جزئیات بیشتر در مورد مقدار مجاز به \fBalpm-package-source-checksum\fR مراجعه کنید). یک \fBsha1sums\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqsha1sums\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRsha1sums_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. در صورت استفاده، فایل \fBSRCINFO\fR باید به همان تعداد انتساب‌های کلیدواژه \fBsource\fR، شامل انتساب‌های کلیدواژه \fBsha1sums\fR باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق می‌کند). ترتیب انتساب‌های کلیدواژه \fBsource\fR همراه، ترتیب انتساب‌های کلیدواژه \fBsha1sums\fR را دیکته می‌کند (یعنی اولین انتساب کلیدواژه \fBsha1sums\fR داده‌های مربوط به اولین انتساب کلیدواژه \fBsource\fR را ارائه می‌دهد و به همین ترتیب). .SS "sha224sums" .LP یک خلاصه هش \fBSHA-224\fR[8] از فایلی که نام آن در یک مقدار \fBsource\fR ارائه شده است، یا رشته ویژه \(oqSKIP\(cq (برای جزئیات بیشتر در مورد مقدار مجاز به \fBalpm-package-source-checksum\fR مراجعه کنید). یک \fBsha224sums\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqsha224sums\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRsha224sums_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. در صورت استفاده، فایل \fBSRCINFO\fR باید به همان تعداد انتساب‌های کلیدواژه \fBsource\fR، شامل انتساب‌های کلیدواژه \fBsha224sums\fR باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق می‌کند). ترتیب انتساب‌های کلیدواژه \fBsource\fR همراه، ترتیب انتساب‌های کلیدواژه \fBsha224sums\fR را دیکته می‌کند (یعنی اولین انتساب کلیدواژه \fBsha224sums\fR داده‌های مربوط به اولین انتساب کلیدواژه \fBsource\fR را ارائه می‌دهد و به همین ترتیب). .SS "sha256sums" .LP یک خلاصه هش \fBSHA-256\fR[8] از فایلی که نام آن در یک مقدار \fBsource\fR ارائه شده است، یا رشته ویژه \(oqSKIP\(cq (برای جزئیات بیشتر در مورد مقدار مجاز به \fBalpm-package-source-checksum\fR مراجعه کنید). یک \fBsha256sums\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqsha256sums\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRsha256sums_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. در صورت استفاده، فایل \fBSRCINFO\fR باید به همان تعداد انتساب‌های کلیدواژه \fBsource\fR، شامل انتساب‌های کلیدواژه \fBsha256sums\fR باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق می‌کند). ترتیب انتساب‌های کلیدواژه \fBsource\fR همراه، ترتیب انتساب‌های کلیدواژه \fBsha256sums\fR را دیکته می‌کند (یعنی اولین انتساب کلیدواژه \fBsha256sums\fR داده‌های مربوط به اولین انتساب کلیدواژه \fBsource\fR را ارائه می‌دهد و به همین ترتیب). .SS "sha384sums" .LP یک خلاصه هش \fBSHA-384\fR[8] از فایلی که نام آن در یک مقدار \fBsource\fR ارائه شده است، یا رشته ویژه \(oqSKIP\(cq (برای جزئیات بیشتر در مورد مقدار مجاز به \fBalpm-package-source-checksum\fR مراجعه کنید). یک \fBsha384sums\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqsha384sums\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRsha384sums_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. در صورت استفاده، فایل \fBSRCINFO\fR باید به همان تعداد انتساب‌های کلیدواژه \fBsource\fR، شامل انتساب‌های کلیدواژه \fBsha384sums\fR باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق می‌کند). ترتیب انتساب‌های کلیدواژه \fBsource\fR همراه، ترتیب انتساب‌های کلیدواژه \fBsha384sums\fR را دیکته می‌کند (یعنی اولین انتساب کلیدواژه \fBsha384sums\fR داده‌های مربوط به اولین انتساب کلیدواژه \fBsource\fR را ارائه می‌دهد و به همین ترتیب). .SS "sha512sums" .LP یک خلاصه هش \fBSHA-512\fR[8] از فایلی که نام آن در یک مقدار \fBsource\fR ارائه شده است، یا رشته ویژه \(oqSKIP\(cq (برای جزئیات بیشتر در مورد مقدار مجاز به \fBalpm-package-source-checksum\fR مراجعه کنید). یک \fBsha512sums\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqsha512sums\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRsha512sums_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. در صورت استفاده، فایل \fBSRCINFO\fR باید به همان تعداد انتساب‌های کلیدواژه \fBsource\fR، شامل انتساب‌های کلیدواژه \fBsha512sums\fR باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق می‌کند). ترتیب انتساب‌های کلیدواژه \fBsource\fR همراه، ترتیب انتساب‌های کلیدواژه \fBsha512sums\fR را دیکته می‌کند (یعنی اولین انتساب کلیدواژه \fBsha512sums\fR داده‌های مربوط به اولین انتساب کلیدواژه \fBsource\fR را ارائه می‌دهد و به همین ترتیب). .SS "b2sums" .LP یک خلاصه هش \fBBLAKE2\fR[9] از فایلی که نام آن در یک مقدار \fBsource\fR ارائه شده است، یا رشته ویژه \(oqSKIP\(cq (برای جزئیات بیشتر در مورد مقدار مجاز به \fBalpm-package-source-checksum\fR مراجعه کنید). یک \fBb2sums\fR مختص معماری می‌تواند با استفاده از کلیدواژه‌ای متشکل از \(oqb2sums\(cq که بلافاصله با یک علامت \(oq_\(cq و بلافاصله پس از آن با یک \fBalpm-architecture\fR دنبال می‌شود (همه \fBalpm-architectures\fR به جز \f(CRany\fR قابل استفاده هستند)، مانند \f(CRb2sums_aarch64\fR مشخص شود. .PP این انتساب کلیدواژه می‌تواند صفر یا چند بار، منحصراً در بخش \fBpkgbase\fR ارائه شود. در صورت استفاده، فایل \fBSRCINFO\fR باید به همان تعداد انتساب‌های کلیدواژه \fBsource\fR، شامل انتساب‌های کلیدواژه \fBb2sums\fR باشد (همین امر برای گونه مختص معماری این کلیدواژه نیز صدق می‌کند). ترتیب انتساب‌های کلیدواژه \fBsource\fR همراه، ترتیب انتساب‌های کلیدواژه \fBb2sums\fR را دیکته می‌کند (یعنی اولین انتساب کلیدواژه \fBb2sums\fR داده‌های مربوط به اولین انتساب کلیدواژه \fBsource\fR را ارائه می‌دهد و به همین ترتیب). .SH "مثال‌ها (EXAMPLES)" .SS "بسته‌های تفکیک‌شده، گسترش، بازنویسی و لغو کلیدواژه‌ها" .LP .EX 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 = .EE .LP مثال بالا یک فایل \fBSRCINFO\fR را نشان می‌دهد که دو بسته تفکیک‌شده (split package) را توصیف می‌کند (برای جزئیات بیشتر به \fBalpm-split-package\fR مراجعه کنید). هر دو بخش \fBpkgname\fR انتساب کلیدواژه \f(CRpkgdesc\fR را بازنویسی (override) می‌کنند. اولین بخش \fBpkgname\fR علاوه بر این، مشخصه کلیدواژه \f(CRlicense\fR را از بخش \fBpkgbase\fR گسترش می‌دهد و انتساب‌های کلیدواژه مختص بسته بیشتری را اضافه می‌کند (مانند \f(CRreplaces\fR، \f(CRgroups\fR، \f(CRconflicts\fR، \f(CRprovides\fR، \f(CRbackup\fR، \f(CRoptdepends\fR). دومین بخش \fBpkgname\fR انتساب کلیدواژه \f(CRlicense\fR را بازنویسی کرده و انتساب کلیدواژه \f(CRdepends\fR را لغو (unset) می‌کند. .SS "داده‌های بسته، به ازای هر معماری" .LP فایل کمینه \fBPKGBUILD\fR زیر یک بسته را برای دو \fBalpm-architectures\fR تعریف می‌کند. .LP .EX pkgname=example pkgver=0.1.0 pkgrel=1 pkgdesc=\(dqAn example package\(dq arch=(x86_64 aarch64) url=\(dqhttps://example.org\(dq license=(GPL-3.0-or-later) depends=(bash) depends_x86_64=(zsh) package() { pkgdesc+=\(dq - extra info\(dq depends_x86_64+=(nushell) depends_aarch64=(sh) } .EE .PP این \fBPKGBUILD\fR توسط \fBSRCINFO\fR زیر نشان داده می‌شود: .LP .EX 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 .EE .PP بسته به \fBalpm-architecture\fR هدف، داده‌های بسته هنگام برطرف‌سازی کامل تمام کلیدواژه‌ها متفاوت خواهد بود. .PP برای \f(CRaarch64\fR: .IP "\(bu" 3 \f(CRpkgdesc = An example package - extra info\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRpkgver = 0.1.0\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRpkgrel = 1\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRurl = https://example.org\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRarch = aarch64\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRlicense = GPL-3.0-or-later\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRdepends = bash\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRdepends = sh\fR .LP برای \f(CRx86_64\fR: .IP "\(bu" 3 \f(CRpkgdesc = An example package - extra info\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRpkgver = 0.1.0\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRpkgrel = 1\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRurl = https://example.org\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRarch = x86_64\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRlicense = GPL-3.0-or-later\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRdepends = bash\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRdepends = zsh\fR .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 \f(CRdepends = nushell\fR .SH "همچنین ببینید (SEE ALSO)" .LP \fBalpm-srcinfo\fR(1), \fBbash\fR(1), \fBPKGBUILD\fR(5), \fBmakepkg.conf\fR(5), \fBalpm-architecture\fR(7), \fBalpm-comparison\fR(7), \fBalpm-epoch\fR(7), \fBalpm-install-scriptlet\fR(7), \fBalpm-package-base\fR(7), \fBalpm-package-group\fR(7), \fBalpm-package-name\fR(7), \fBalpm-package-relation\fR(7), \fBalpm-package-version\fR(7), \fBalpm-pkgrel\fR(7), \fBalpm-pkgver\fR(7), \fBalpm-split-package\fR(7), \fBmakepkg\fR(8), \fBpacman\fR(8) .SH "یادداشت‌ها (NOTES)" .IP "1." 3 \fBprintable ASCII characters\fR .IP .UR https://en.wikipedia.org/wiki/ASCII#Printable_characters .UE .IP "2." 3 \fBOpenPGP fingerprint\fR .IP .UR https://openpgp.dev/book/certificates.html#fingerprint .UE .IP "3." 3 \fBOpenPGP signatures\fR .IP .UR https://openpgp.dev/book/signing_data.html .UE .IP "4." 3 \fBOpenPGP Key ID\fR .IP .UR https://openpgp.dev/book/glossary.html#term-Key-ID .UE .IP "5." 3 \fBSPDX License List\fR .IP .UR https://spdx.org/licenses .UE .IP "6." 3 \fBMD5\fR .IP .UR https://en.wikipedia.org/wiki/MD5 .UE .IP "7." 3 \fBSHA-1\fR .IP .UR https://en.wikipedia.org/wiki/SHA-1 .UE .IP "8." 3 \fBSHA-2\fR .IP .UR https://en.wikipedia.org/wiki/SHA-2 .UE .IP "9." 3 \fBBLAKE2\fR .IP .UR https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2 .UE