| BUILDINFOv2(5) | راهنمای فرمتهای فایل | BUILDINFOv2(5) |
نام (NAME)
BUILDINFOv2 - مشخصات متادیتای ساخت بسته نسخه ۲ در Arch/ALPM
توضیحات (DESCRIPTION)
قالب BUILDINFO یک قالب متنی است که محیط ساخت یک بسته را توصیف میکند. چنین پروندههایی در ریشه بستههای ALPM قرار دارند، نام آنها .BUILDINFO است و معمولاً برای بازتولید محیطی که بسته در آن ساخته شده است به کار میروند. برای اطلاعات بیشتر به تلاش Arch Linux برای ساختهای بازتولیدپذیر[1] مراجعه کنید.
قالب BUILDINFO در چندین نسخه وجود دارد. اطلاعات این سند برای نسخه ۲ است که نسخه فعلی به شمار میرود و با انتشار pacman 6.0.0 در تاریخ 2021-05-20 معرفی شده است.
تغییرات نسبت به نسخه پیشین (Changes since the last version)
کلیدواژههای جدید buildtool و buildtoolver برای ردیابی نام بسته، نسخه و معماری ابزار استفادهشده برای راهاندازی محیط ساخت یک بسته افزوده شدهاند.
قالب کلی (General Format)
یک پرونده BUILDINFO از مجموعهای از خطوط تشکیل شده است که هر کدام اطلاعاتی درباره جنبهای از محیط ساخت یک بسته، یا خود قالب پرونده ارائه میدهند. فاصله خالی ابتدای خطوط همیشه نادیده گرفته میشود.
مگر اینکه خلاف آن ذکر شده باشد، اطلاعات موجود در یک پرونده BUILDINFO مشمول مجموعه ۹۵ نویسه قابل چاپ ASCII در نظر گرفته میشود.
کلیدواژهها (Keywords)
هر خط اطلاعاتی را کدگذاری میکند که بیانگر یک انتساب کلیدواژه است. تمام انتسابهای کلیدواژهها شامل یک کلید از فهرست زیر است که بلافاصله پس از آن یک نویسه فاصله، یک علامت ‘=’، یک نویسه فاصله دیگر و سپس یک مقدار قرار میگیرد.
بهطور پیشفرض، دقیقاً یک انتساب کلیدواژه به ازای هر کلیدواژه باید در یک BUILDINFO وجود داشته باشد. به عنوان استثنای این قاعده، کلیدواژههای buildenv، options و installed میتوانند صفر یا چند بار ارائه شوند.
format
نسخه قالب پرونده BUILDINFO. باید اولین کلیدواژه در پرونده BUILDINFO باشد. مقدار باید یک عدد صحیح مثبت ساده باشد. این مقدار برای BUILDINFO نسخه ۲ باید 2 باشد.
pkgname
نام بسته. مقدار یک alpm-package-name است (مانند example).
pkgbase
شناسه alpm-package-base بسته. مقدار یک alpm-package-base است (مانند example).
pkgver
نسخه کامل بسته. توجه داشته باشید که این مقدار نباید با alpm-pkgver اشتباه گرفته شود، که تنها زیرمجموعهای از این کلیدواژه را نشان میدهد! مقدار یک alpm-package-version است، یا به شکل full یا به شکل full with epoch (به ترتیب مانند 1.0.0-1 یا 1:1.0.0-1).
pkgarch
معماری بسته (برای اطلاعات بیشتر alpm-architecture را ببینید). مقدار باید شامل مجموعهای از نویسههای الفبایی-عددی و ‘_’ باشد (مانند x86_64 یا any).
pkgbuild_sha256sum
نمایش هگزادسیمال جمع کنترلی SHA-256 فایل PKGBUILD استفادهشده برای ساخت بسته. مقدار باید از مجموعهای از نویسههای هگزادسیمال تشکیل شده و طول آن ۶۴ نویسه باشد (مانند 946d8362de3cebe3c86765cb36671a1dfd70993ac73e12892ac7ac5e6ff7ef95).
packager
شناسه کاربری (User ID) موجودیتی که بسته را ساخته است. مقدار برای جستجوهای هویتی در نظر گرفته شده و نشاندهنده یک OpenPGP User ID[2] است. به این ترتیب، مقدار یک رشته با کدگذاری UTF-8 است که به طور معمول از یک نام و یک نشانی رایانامه تشکیل شده و با قالب توصیفشده در RFC 28223 مطابقت دارد.
builddate
تاریخ و زمانی که ساخت بسته آغاز شد. مقدار باید عددی باشد و ثانیههای سپریشده از مبدا زمان (Epoch)، یعنی ‘زمان یونیکس’ را نشان دهد (مانند 1729181726).
builddir
مسیر مطلق پوشهای که بسته توسط ابزار ساخت (مانند makepkg) در آن ساخته شده است. مقدار یک رشته با کدگذاری UTF-8 است و باید نشاندهنده یک پوشه معتبر با مسیر مطلق باشد (مانند /builddir).
startdir
پوشهای که makepkg از آن اجرا شده است. مقدار یک رشته با کدگذاری UTF-8 است و باید نشاندهنده یک پوشه معتبر با مسیر مطلق باشد (مانند /startdir).
buildtool
نام بسته ابزار استفادهشده برای راهاندازی محیط ساخت. این مورد به تلاش Arch Linux برای ساختهای بازتولیدپذیر کمک میکند تا محیطی را که بسته در آن ساخته شده است، بازتولید کند. مقدار باید یک نام بسته معتبر باشد همانطور که در pkgname توصیف شده است.
buildtoolver
نسخه کامل buildtool استفادهشده برای راهاندازی محیط ساخت. مقدار میتواند یکی از دو شکل زیر را داشته باشد:
- یک alpm-package-version به شکل full یا full with epoch (به ترتیب مانند 1.0.0-1 یا 1:1.0.0-1)، بلافاصله پس از آن یک علامت ‘-’، و بلافاصله پس از آن یک alpm-architecture (به ترتیب مانند 1.0.0-1-any یا 1:1.0.0-1-any). این قالب معمولاً توسط ابزارهای ساخت Arch Linux استفاده میشود.
- یک alpm-package-version به شکل minimal یا minimal with epoch (به ترتیب مانند 1.0.0 یا 1:1.0.0). این قالب معمولاً توسط makepkg استفاده میشود.
buildenv
یک محیط ساخت استفادهشده توسط ابزار ساخت بسته (یعنی makepkg، تعریفشده در BUILDENV فایل makepkg.conf) هنگام ساخت بسته. این کلیدواژه ممکن است صفر یا چند بار مشخص شود. مقدار باید یک کلمه یکتا باشد، که اختیاری میتواند با یک ‘!’ آغاز شود که نشاندهنده نفی محیط است (مانند color یا !color).
options
یک گزینه استفادهشده توسط ابزار ساخت بسته (یعنی makepkg، تعریفشده در OPTIONS فایل makepkg.conf) هنگام ساخت بسته. این کلیدواژه ممکن است صفر یا چند بار مشخص شود. مقدار باید یک کلمه یکتا باشد، که اختیاری میتواند با یک ‘!’ آغاز شود که نشاندهنده نفی گزینه است (مانند debug یا !debug).
installed
اطلاعات مربوط به یک بسته نصبشده در طول زمان ساخت بسته. این کلیدواژه ممکن است صفر یا چند بار مشخص شود. مقدار نشاندهنده یک رشته ترکیبی است که از یک alpm-package-name، بلافاصله پس از آن یک علامت ‘-’، بلافاصله پس از آن یک alpm-package-version (به شکل full یا full in epoch)، بلافاصله پس از آن یک علامت ‘-’ و به دنبال آن یک alpm-architecture تشکیل شده است (مانند example-1:1.0.0-1-x86_64).
مثالها (EXAMPLES)
format = 2 pkgname = example pkgbase = example pkgver = 1:1.0.0-1 pkgarch = any pkgbuild_sha256sum = b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c packager = John Doe <john@example.org> builddate = 1729181726 builddir = /build startdir = /startdir/ buildtool = devtools buildtoolver = 1:1.2.1-1-any buildenv = !color buildenv = check options = !strip options = staticlibs installed = other-package-1:0.5.0-3-any installed = package2-2.1.0-6-x86_64
همچنین ببینید (SEE ALSO)
alpm-buildinfo(1), PKGBUILD(5), makepkg.conf(5), alpm-architecture(7), alpm-package-name(7), alpm-package-version(7), alpm-pkgver(7), devtools(7), makepkg(8), pacman(8), repro(8)
یادداشتها (NOTES)
- 1.
- Arch Linux’s Reproducible Builds effort
- https://wiki.archlinux.org/title/Reproducible_builds
- 2.
- OpenPGP User ID
- https://openpgp.dev/book/certificates.html#user-ids
- 3.
- RFC 2822
- https://www.rfc-editor.org/rfc/rfc2822
| 2024-03-01 | Pacman |