.\" -*- mode: troff; coding: utf-8 -*- .TH "BUILDINFOv2" "5" "2024-03-01" "Pacman" "راهنمای فرمت‌های فایل" .SH "نام (NAME)" .LP BUILDINFOv2 \- مشخصات متادیتای ساخت بسته نسخه ۲ در Arch/ALPM .SH "توضیحات (DESCRIPTION)" .LP قالب \fBBUILDINFO\fR یک قالب متنی است که محیط ساخت یک بسته را توصیف می‌کند. چنین پرونده‌هایی در ریشه بسته‌های ALPM قرار دارند، نام آن‌ها \fB.BUILDINFO\fR است و معمولاً برای بازتولید محیطی که بسته در آن ساخته شده است به کار می‌روند. برای اطلاعات بیشتر به \fBتلاش Arch Linux برای ساخت‌های بازتولیدپذیر\fR[1] مراجعه کنید. .PP قالب \fBBUILDINFO\fR در چندین نسخه وجود دارد. اطلاعات این سند برای نسخه ۲ است که نسخه فعلی به شمار می‌رود و با انتشار pacman 6.0.0 در تاریخ 2021-05-20 معرفی شده است. .SS تغییرات نسبت به نسخه پیشین (Changes since the last version) .LP کلیدواژه‌های جدید \fBbuildtool\fR و \fBbuildtoolver\fR برای ردیابی نام بسته، نسخه و معماری ابزار استفاده‌شده برای راه‌اندازی محیط ساخت یک بسته افزوده شده‌اند. .SS قالب کلی (General Format) .LP یک پرونده \fBBUILDINFO\fR از مجموعه‌ای از خطوط تشکیل شده است که هر کدام اطلاعاتی درباره جنبه‌ای از محیط ساخت یک بسته، یا خود قالب پرونده ارائه می‌دهند. فاصله خالی ابتدای خطوط همیشه نادیده گرفته می‌شود. .PP مگر اینکه خلاف آن ذکر شده باشد، اطلاعات موجود در یک پرونده \fBBUILDINFO\fR مشمول مجموعه ۹۵ نویسه قابل چاپ ASCII در نظر گرفته می‌شود. .SS کلیدواژه‌ها (Keywords) .LP هر خط اطلاعاتی را کدگذاری می‌کند که بیانگر یک انتساب کلیدواژه است. تمام انتساب‌های کلیدواژه‌ها شامل یک کلید از فهرست زیر است که بلافاصله پس از آن یک نویسه فاصله، یک علامت \(oq=\(cq، یک نویسه فاصله دیگر و سپس یک مقدار قرار می‌گیرد. .PP به‌طور پیش‌فرض، دقیقاً یک انتساب کلیدواژه به ازای هر کلیدواژه باید در یک \fBBUILDINFO\fR وجود داشته باشد. به عنوان استثنای این قاعده، کلیدواژه‌های \fBbuildenv\fR، \fBoptions\fR و \fBinstalled\fR می‌توانند صفر یا چند بار ارائه شوند. .SS format .LP نسخه قالب پرونده \fBBUILDINFO\fR. باید اولین کلیدواژه در پرونده \fBBUILDINFO\fR باشد. مقدار باید یک عدد صحیح مثبت ساده باشد. این مقدار برای \fBBUILDINFO\fR نسخه ۲ باید \fB2\fR باشد. .SS pkgname .LP نام بسته. مقدار یک \fBalpm-package-name\fR است (مانند \f(CRexample\fR). .SS pkgbase .LP شناسه \fBalpm-package-base\fR بسته. مقدار یک \fBalpm-package-base\fR است (مانند \f(CRexample\fR). .SS pkgver .LP نسخه کامل بسته. توجه داشته باشید که این مقدار نباید با \fBalpm-pkgver\fR اشتباه گرفته شود، که تنها زیرمجموعه‌ای از این کلیدواژه را نشان می‌دهد! مقدار یک \fBalpm-package-version\fR است، یا به شکل \fIfull\fR یا به شکل \fIfull with epoch\fR (به ترتیب مانند \f(CR1.0.0-1\fR یا \f(CR1:1.0.0-1\fR). .SS pkgarch .LP معماری بسته (برای اطلاعات بیشتر \fBalpm-architecture\fR را ببینید). مقدار باید شامل مجموعه‌ای از نویسه‌های الفبایی-عددی و \(oq_\(cq باشد (مانند \f(CRx86_64\fR یا \f(CRany\fR). .SS pkgbuild_sha256sum .LP نمایش هگزادسیمال جمع کنترلی SHA-256 فایل \fBPKGBUILD\fR استفاده‌شده برای ساخت بسته. مقدار باید از مجموعه‌ای از نویسه‌های هگزادسیمال تشکیل شده و طول آن ۶۴ نویسه باشد (مانند \f(CR946d8362de3cebe3c86765cb36671a1dfd70993ac73e12892ac7ac5e6ff7ef95\fR). .SS packager .LP شناسه کاربری (User ID) موجودیتی که بسته را ساخته است. مقدار برای جستجوهای هویتی در نظر گرفته شده و نشان‌دهنده یک \fBOpenPGP User ID\fR[2] است. به این ترتیب، مقدار یک رشته با کدگذاری UTF-8 است که به طور معمول از یک نام و یک نشانی رایانامه تشکیل شده و با قالب توصیف‌شده در \fBRFC 2822\fR\c .UR e.g.%20%60John%20Doe%20%3Cjohn@example.org%3E%60 3 .UE \c \& مطابقت دارد. .SS builddate .LP تاریخ و زمانی که ساخت بسته آغاز شد. مقدار باید عددی باشد و ثانیه‌های سپری‌شده از مبدا زمان (Epoch)، یعنی \(oqزمان یونیکس\(cq را نشان دهد (مانند \f(CR1729181726\fR). .SS builddir .LP مسیر مطلق پوشه‌ای که بسته توسط ابزار ساخت (مانند \f(CRmakepkg\fR) در آن ساخته شده است. مقدار یک رشته با کدگذاری UTF-8 است و باید نشان‌دهنده یک پوشه معتبر با مسیر مطلق باشد (مانند \f(CR/builddir\fR). .SS startdir .LP پوشه‌ای که \f(CRmakepkg\fR از آن اجرا شده است. مقدار یک رشته با کدگذاری UTF-8 است و باید نشان‌دهنده یک پوشه معتبر با مسیر مطلق باشد (مانند \f(CR/startdir\fR). .SS buildtool .LP نام بسته ابزار استفاده‌شده برای راه‌اندازی محیط ساخت. این مورد به \fBتلاش Arch Linux برای ساخت‌های بازتولیدپذیر\fR کمک می‌کند تا محیطی را که بسته در آن ساخته شده است، بازتولید کند. مقدار باید یک نام بسته معتبر باشد همان‌طور که در \fBpkgname\fR توصیف شده است. .SS buildtoolver .LP نسخه کامل \fBbuildtool\fR استفاده‌شده برای راه‌اندازی محیط ساخت. مقدار می‌تواند یکی از دو شکل زیر را داشته باشد: .IP "\(bu" 3 یک \fBalpm-package-version\fR به شکل \fIfull\fR یا \fIfull with epoch\fR (به ترتیب مانند \f(CR1.0.0-1\fR یا \f(CR1:1.0.0-1\fR)، بلافاصله پس از آن یک علامت \(oq-\(cq، و بلافاصله پس از آن یک \fBalpm-architecture\fR (به ترتیب مانند \f(CR1.0.0-1-any\fR یا \f(CR1:1.0.0-1-any\fR). این قالب معمولاً توسط ابزارهای ساخت Arch Linux استفاده می‌شود. .if n \ .sp -1 .if t \ .sp -0.25v .IP "\(bu" 3 یک \fBalpm-package-version\fR به شکل \fIminimal\fR یا \fIminimal with epoch\fR (به ترتیب مانند \f(CR1.0.0\fR یا \f(CR1:1.0.0\fR). این قالب معمولاً توسط \f(CRmakepkg\fR استفاده می‌شود. .SS buildenv .LP یک محیط ساخت استفاده‌شده توسط ابزار ساخت بسته (یعنی \f(CRmakepkg\fR، تعریف‌شده در \f(CRBUILDENV\fR فایل makepkg.conf) هنگام ساخت بسته. این کلیدواژه ممکن است صفر یا چند بار مشخص شود. مقدار باید یک کلمه یکتا باشد، که اختیاری می‌تواند با یک \(oq!\(cq آغاز شود که نشان‌دهنده نفی محیط است (مانند \f(CRcolor\fR یا \f(CR!color\fR). .SS options .LP یک گزینه استفاده‌شده توسط ابزار ساخت بسته (یعنی \f(CRmakepkg\fR، تعریف‌شده در \f(CROPTIONS\fR فایل makepkg.conf) هنگام ساخت بسته. این کلیدواژه ممکن است صفر یا چند بار مشخص شود. مقدار باید یک کلمه یکتا باشد، که اختیاری می‌تواند با یک \(oq!\(cq آغاز شود که نشان‌دهنده نفی گزینه است (مانند \f(CRdebug\fR یا \f(CR!debug\fR). .SS installed .LP اطلاعات مربوط به یک بسته نصب‌شده در طول زمان ساخت بسته. این کلیدواژه ممکن است صفر یا چند بار مشخص شود. مقدار نشان‌دهنده یک رشته ترکیبی است که از یک \fBalpm-package-name\fR، بلافاصله پس از آن یک علامت \(oq-\(cq، بلافاصله پس از آن یک \fBalpm-package-version\fR (به شکل \fIfull\fR یا \fIfull in epoch\fR)، بلافاصله پس از آن یک علامت \(oq-\(cq و به دنبال آن یک \fBalpm-architecture\fR تشکیل شده است (مانند \f(CRexample-1:1.0.0-1-x86_64\fR). .SH "مثال‌ها (EXAMPLES)" .LP .EX format = 2 pkgname = example pkgbase = example pkgver = 1:1.0.0-1 pkgarch = any pkgbuild_sha256sum = b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c packager = John Doe 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 .EE .SH "همچنین ببینید (SEE ALSO)" .LP \fBalpm-buildinfo\fR(1), \fBPKGBUILD\fR(5), \fBmakepkg.conf\fR(5), \fBalpm-architecture\fR(7), \fBalpm-package-name\fR(7), \fBalpm-package-version\fR(7), \fBalpm-pkgver\fR(7), \fBdevtools\fR(7), \fBmakepkg\fR(8), \fBpacman\fR(8), \fBrepro\fR(8) .SH "یادداشت‌ها (NOTES)" .IP "1." 3 \fBArch Linux\(cqs Reproducible Builds effort\fR .IP .UR https://wiki.archlinux.org/title/Reproducible_builds .UE .IP "2." 3 \fBOpenPGP User ID\fR .IP .UR https://openpgp.dev/book/certificates.html#user-ids .UE .IP "3." 3 \fBRFC 2822\fR .IP .UR https://www.rfc-editor.org/rfc/rfc2822 .UE