deb-buildinfo(5) dpkg suite deb-buildinfo(5)

deb-buildinfo - قالب پرونده اطلاعات ساخت دبیان

filename.buildinfo

هر فرآیند ساخت بستهٔ مبدأ دبیان می‌تواند اطلاعات ساخت را در یک پروندهٔ کنترل .buildinfo ثبت کند، که حاوی تعدادی فیلد در قالب deb822(5) است.

هر فیلد با یک برچسب آغاز می‌شود، مانند Source یا Binary (غیرحساس به حروف کوچک و بزرگ)، که به دنبال آن یک دونقطه (:) و سپس بدنهٔ فیلد (حساس به حروف کوچک و بزرگ مگر خلاف آن قید شده باشد) می‌آید. فیلدها فقط با برچسب‌های فیلد جدا می‌شوند. به عبارت دیگر، متن فیلد ممکن است چندین خط باشد، اما ابزارهای نصب هنگام پردازش بدنهٔ فیلد، خطوط را به هم متصل می‌کنند (به‌جز در مورد فیلدهای چندخطی Binary-Only-Changes، Installed-Build-Depends، Environment، Checksums-Md5، Checksums-Sha1 و Checksums-Sha256، به ادامه مراجعه کنید).

داده‌های کنترلی ممکن است در یک امضای محصور OpenPGP ASCII Armored، همان‌طور که در RFC9580 مشخص شده است، قرار گیرند.

نام پروندهٔ .buildinfo به نوع ساخت بستگی دارد و به اندازهٔ لازم خاص خواهد بود اما نه بیشتر؛ نام آن به این صورت خواهد بود:

برای ساختی که شامل any است
در غیر این صورت برای ساختی که شامل all است
در غیر این صورت برای ساختی که شامل source است

مقدار این فیلد، نسخهٔ قالب پرونده را مشخص می‌کند. نحو مقدار فیلد، یک شمارهٔ نسخه با دو بخش اصلی (major) و فرعی (minor) است. تغییرات ناسازگار با نسخه‌های پیشین باعث افزایش نسخهٔ اصلی می‌شوند و تغییرات سازگار با گذشته (مانند افزودن فیلدها) نسخهٔ فرعی را افزایش می‌دهند. نسخهٔ کنونی این قالب 1.0 است.
نام بستهٔ مبدأ. اگر نسخهٔ مبدأ با نسخهٔ باینری متفاوت باشد، پس از source-name یک source-version داخل پرانتز قرار می‌گیرد. این حالت زمانی رخ می‌دهد که ساخت برای یک بارگذاری صرفاً باینری توسط غیر نگه‌دارنده (binNMU) باشد.
این فیلد چندخطیِ ادغام‌شده، فهرستی از بسته‌های باینری ساخته‌شده است که با فاصله از هم جدا شده‌اند. اگر ساخت صرفاً مبدأ (source-only) باشد، این فیلد حذف می‌شود (از نسخهٔ dpkg 1.20.0 به بعد).
فهرست معماری‌ها مشخص می‌کند که این بسته روی چه نوع دستگاهی اجرا می‌شود. مقدار آن باید فهرستی از نام‌های معماری باشد که با فاصله از هم جدا شده‌اند.

معماری‌های رایج عبارتند از amd64، armel، i386 و غیره. توجه داشته باشید که مقدار ویژهٔ all برای بسته‌هایی در نظر گرفته شده که مستقل از معماری هستند (مانند اسکریپت‌های شل و Perl یا مستندات). اگر مبدأ بسته نیز در حال ساخت باشد، ورودی ویژهٔ source نیز درج می‌شود.

نکته: نویسه‌های عام (wildcard) معماری در این زمینه مجاز نیستند.

به‌طور معمول، این مقدار همان شمارهٔ نسخهٔ اصلی بسته به هر شکلی است که نویسندهٔ برنامه به کار برده است. همچنین ممکن است شامل یک شماره بازنگری دبیان (برای بسته‌های غیربومی) باشد. قالب دقیق و الگوریتم مرتب‌سازی در deb-version(7) شرح داده شده است.

نکته: در برخی توزیع‌ها، dpkg طوری ساخته شده است که اجازه می‌دهد سورس‌های بومی دارای نسخه‌های غیربومی باشند؛ این موضوع باعث ناهمخوانی و سردرگمی در این مفهوم شده و علاوه بر این معمولاً دامی برای اشتباهات تصادفی است.

 changelog-entry
این فیلد چندخطی شامل متن به‌هم‌پیوستهٔ ورودی تغییرات (changelog) برای یک بارگذاری صرفاً باینری توسط غیر نگه‌دارنده (binNMU) است، در صورتی که ساخت از این نوع باشد. برای اینکه این فیلد یک فیلد چندخطی معتبر باشد، خطوط خالی با یک نقطهٔ تنها (‘.’) جایگزین می‌شوند و همهٔ خطوط به اندازهٔ یک نویسهٔ فاصله دندانه‌دار (indent) می‌شوند. محتوای دقیق به قالب changelog بستگی دارد.
 checksum size filename
این فیلدهای چندخطی حاوی فهرستی از پرونده‌ها به همراه جمع‌آزمای (checksum) و اندازهٔ هر یک هستند. این فیلدها نحو یکسانی دارند و تنها در الگوریتم جمع‌آزمای استفاده‌شده تفاوت دارند: MD5 برای Checksums-Md5، SHA-1 برای Checksums-Sha1 و SHA-256 برای Checksums-Sha256.

نکته: جمع‌آزماهای MD5 و SHA-1 ضعیف در نظر گرفته می‌شوند و هرگز نباید برای اعتبارسنجی امن کافی فرض شوند.

خط اول مقدار فیلد (بخشی که در همان خطِ نام فیلد پس از دونقطه قرار دارد) همیشه خالی است. محتوای فیلد به صورت خطوط ادامه‌دار، یک خط به ازای هر پرونده، بیان می‌شود. هر خط شامل ورودی‌هایی است که با فاصله از هم جدا شده‌اند و پرونده را توصیف می‌کنند: جمع‌آزما، اندازهٔ پرونده و نام پرونده.

این فیلدها تمام پرونده‌هایی را که ساخت را تشکیل می‌دهند فهرست می‌کنند.

نام توزیعی که این بسته از آن سرچشمه می‌گیرد.
معماری دبیان برای محیط نصبی که بسته‌ها در آن ساخته می‌شوند. معماری‌های رایج عبارتند از amd64، armel، i386 و غیره.
تاریخی که بسته ساخته شده است. این تاریخ باید در همان قالب تاریخ موجود در یک ورودی deb-changelog(5) باشد.
نسخه و انتشار (در قالبی نامشخص) از هسته‌ای که روی سامانهٔ ساخت در حال اجرا است. این فیلد تنها در صورتی وجود خواهد داشت که سازنده صریحاً آن را درخواست کرده باشد، تا از افشای اطلاعات احتمالاً حساس جلوگیری شود.
مسیر مطلق ساخت، که متناظر با درخت مبدأ بازشده (unpacked source tree) است. این فیلد تنها در صورتی وجود خواهد داشت که توزیع از طریق تطبیق الگو آن را مجاز دانسته باشد تا از نشت اطلاعات احتمالاً حساس جلوگیری شود.

در دبیان و مشتقات آن، تنها مسیرهای ساختی که با /build/ شروع می‌شوند این فیلد را تولید می‌کنند.

 taint-reason-list
این فیلد ادغام‌شده شامل فهرستی از برچسب‌های دلیل ناجامع (تشکیل‌شده از نویسه‌های حرفی-عددی و خط تیره) است که با فاصله جدا شده‌اند و مشخص می‌کنند چرا ساخت فعلی آلوده (tainted) شده است (از نسخهٔ dpkg 1.19.5 به بعد).

در دبیان و مشتقات آن، برچسب‌های دلیل زیر ممکن است صادر شوند:

سامانه دارای پرونده‌های پیکربندی زیر مسیر /usr/local/etc است.
سامانه دارای پرونده‌های سرآیند زیر مسیر /usr/local/include است.
سامانه دارای برنامه‌هایی زیر مسیر /usr/local/bin یا /usr/local/sbin است.
سامانه دارای کتابخانه‌های ایستا یا اشتراکی زیر مسیر /usr/local/lib است.
سامانه می‌تواند برنامه‌های دگرساخته (cross-built) را، چه به‌طور مستقیم یا از طریق یک لایهٔ شبیه‌ساز، اجرا کند.

از نسخهٔ dpkg 1.21.10 به بعد.

 package-list
فهرستی از بسته‌های نصب‌شده و پیکربندی‌شده که ممکن است بر فرایند ساخت بسته تأثیر بگذارند.

این فهرست شامل نام هر بسته است که به‌صورت اختیاری برای معماری‌های بیگانه (foreign) با معماری مشخص شده و با محدودیت نسخهٔ دقیق همراه است که با کاما از هم جدا شده‌اند.

این فهرست شامل تمام بسته‌های حیاتی (essential)، بسته‌های فهرست‌شده در فیلدهای کنترل مبدأ Build-Depends، Build-Depends-Arch و Build-Depends-Indep، هرگونه وابستگی توکار خاص توزیع، و تمام وابستگی‌های بازگشتی آن‌ها است. در دبیان و مشتقات آن، وابستگی توکار build-essential است.

برای وابستگی‌های ناشی از فیلدهای کنترل مبدأ، تمام جایگزین‌های وابستگی و تمام ارائه‌دهندگان بسته‌های مجازی مورد وابستگی گنجانده خواهند شد.

 variable-list
فهرستی از متغیرهای محیطی که مشخص شده بر فرایند ساخت بسته تأثیر می‌گذارند؛ به طوری که هر متغیر محیطی با یک علامت مساوی (‘=’) و مقدار درون گیومهٔ متغیر با استفاده از جفت‌گیومه (‘"’) و بک‌اسلش‌های گریز داده‌شده (‘\\’) دنبال می‌شود.

deb822(5)، deb-changes(5)، deb-version(7)، dpkg-genbuildinfo(1).

2026-03-06 1.23.7-dirty