dsc(5) dpkg suite dsc(5)

dsc - قالب فایل کنترل بسته منبع دبیان

filename.dsc

هر بستهٔ منبع دبیان از یک فایل کنترل .dsc تشکیل شده است که حاوی چندین فیلد با قالب deb822(5) می‌باشد.

هر فیلد با یک برچسب مانند Source یا Binary (غیرحساس به حروف بزرگ و کوچک) آغاز می‌شود که پس از آن یک دونقطه (:) و سپس بدنهٔ فیلد (حساس به حروف بزرگ و کوچک مگر اینکه خلاف آن ذکر شده باشد) قرار می‌گیرد. فیلدها فقط با برچسب‌های فیلد از یکدیگر متمایز و تفکیک می‌شوند. به عبارت دیگر، متن فیلد می‌تواند چندخطی باشد، اما ابزارهای نصب معمولاً هنگام پردازش بدنهٔ فیلد خطوط را به یکدیگر متصل می‌کنند (به‌جز در مورد فیلدهای چندخطی Package-List، Files، Checksums-Sha1 و Checksums-Sha256؛ به زیر مراجعه کنید).

داده‌های کنترلی ممکن است همان‌طور که در RFC9580 مشخص شده است، در یک امضای حفاظتی اسکی (ASCII Armored) از نوع OpenPGP محصور شده باشند.

مقدار این فیلد نسخهٔ قالب بستهٔ منبع را مشخص می‌کند. این مقدار توسط برنامه‌هایی که با بستهٔ منبع سر و کار دارند برای تفسیر فهرست فایل‌های موجود در بستهٔ منبع و تعیین نحوهٔ باز کردن (unpack) آن به کار می‌رود. نحو مقدار این فیلد شامل یک شماره بازبینی اصلی عددی (“0-9”)، یک نقطه (“.”)، یک بازبینی فرعی عددی (“0-9”)، و سپس یک زیرنوع (subtype) اختیاری پس از فاصله (“ \t”) است که در صورت مشخص شدن، کلمه‌ای از حروف و ارقام کوچک (“a-z0-9”) درون پرانتز (“()”) خواهد بود. زیرنوع در ساختار نحوی اختیاری است اما ممکن است برای بازبینی‌های خاصی از قالب منبع الزامی باشد.

قالب‌های منبعی که در حال حاضر توسط dpkg پشتیبانی می‌شوند عبارتند از: 1.0، 2.0، 3.0 (native)، 3.0 (quilt)، 3.0 (git)، 3.0 (bzr) و 3.0 (custom). برای توضیحات مربوط به آن‌ها به dpkg-source(1) مراجعه کنید.

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

این فیلد اکنون با فیلد Package-List جایگزین شده است که اطلاعات کاملی دربارهٔ بسته‌های باینری تولیدی در هر معماری، نمایه ساخت (build-profile) و سایر محدودیت‌های دخیل ارائه می‌دهد.

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

نام‌های معماری و الگوهای عام معماری رایج عبارتند از amd64، armel، i386، linux-any، any-amd64 و غیره. توجه داشته باشید که مقدار all برای بسته‌های مستقل از معماری، و any برای بسته‌های وابسته به معماری در نظر گرفته شده است. این فهرست می‌تواند شامل مقدار ویژهٔ all باشد (یا صرفاً از آن تشکیل شده باشد). هنگامی که فهرست شامل الگوی عام any باشد، تنها مقدار مجاز دیگر در فهرست all خواهد بود.

مقدار این فیلد عموماً بر اساس فیلدهای Architecture موجود در فایل debian/control در بستهٔ منبع تولید می‌شود.

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

نکته: در برخی توزیع‌ها، dpkg طوری تنظیم شده است که به منابع بومی با نسخه‌های غیربومی اجازهٔ فعالیت می‌دهد که این امر ساختار را نامنسجم کرده و به ابهام مفاهیم می‌افزاید و علاوه بر این ممکن است دامی برای خطاهای ناخواسته باشد.

نام توزیعی که این بسته از آن سرچشمه می‌گیرد.
باید در قالب “Joe Bloggs <jbloggs@foo.com>” باشد و معمولاً مشخص‌کنندهٔ شخصی است که بسته را ایجاد کرده است، نه لزوماً نویسندهٔ نرم‌افزاری که بسته‌بندی شده است.
تمام نام‌ها و نشانی‌های ایمیل نگه‌دارندگان همکار بسته را با همان قالب فیلد Maintainer فهرست می‌کند. نگه‌دارندگان همکار چندگانه باید با کاما از یکدیگر جدا شوند.
 long-description
قالب توضیحات بستهٔ منبع شامل یک خلاصهٔ کوتاه در خط اول (پس از فیلد Description) است. خطوط بعدی باید برای توضیحات کامل‌تر و با جزئیات بیشتر به کار روند. ابتدای هر خط از توضیحات طولانی باید یک فاصله (space) وجود داشته باشد، و خطوط خالی در توضیحات طولانی باید شامل یک ‘.’ پس از فاصلهٔ ابتدایی باشند.
آدرس url صفحهٔ اصلی پروژهٔ بالادستی.
جدیدترین نسخهٔ استانداردهای خط‌مشی توزیع را که این بسته با آن مطابقت دارد ثبت می‌کند.
آدرس url یک رابط وب برای مرور مخزن سیستم کنترل نسخه (VCS).
این فیلدها url مخزن سیستم کنترل نسخهٔ مورد استفاده برای نگه‌داری بسته را اعلام می‌کنند. برای جزئیات بیشتر به deb-src-control(5) مراجعه کنید.
این فیلد اعلام می‌کند که بستهٔ منبع حاوی مجموعه‌های آزمون مشخص‌شده است. مقدار آن فهرستی از مجموعه‌های آزمون است که با کاما از هم جدا شده‌اند. اگر مقدار autopkgtest موجود باشد، انتظار می‌رود فایل debian/tests/control وجود داشته باشد؛ اگر این فایل وجود داشته باشد اما مقدار آن ذکر نشده باشد، dpkg-source به‌طور خودکار با حفظ مقادیر قبلی، آن را اضافه خواهد کرد.
این فیلد اجتماع تمام وابستگی‌های آزمون (فیلدهای Depends در فایل debian/tests/control) را با حذف تمام محدودیت‌ها و تبدیل وابستگی‌های OR به روابط AND مجزا اعلام می‌کند؛ به‌جز بسته‌های باینری تولیدشده توسط همین بستهٔ منبع و معادل فراداده‌ای وابستگی آن یعنی @.

دلیل وجودی: این فیلد ضروری است زیرا در غیر این صورت برای به دست آوردن وابستگی‌های آزمون، لازم بود هر بستهٔ منبع استخراج (unpack) شود.

این فیلدها روابط بین بستهٔ منبع و بسته‌های مورد نیاز برای ساخت آن را مشخص می‌کنند. توضیحات تکمیلی پیرامون این موارد در صفحه راهنمای deb-src-control(5) آمده است.
 package package-type section priority key-value-list
این فیلد چندخطی حاوی فهرستی از بسته‌های باینری تولیدشده توسط این بستهٔ منبع است.

مقدار package نام بستهٔ باینری است.

مقدار package-type نوع بستهٔ باینری است؛ معمولاً deb، و مقدار رایج دیگر udeb می‌باشد.

مقادیر section و priority با فیلدهای همنام در بستهٔ باینری مطابقت دارند، و در صورت حذف شدن به‌طور پیش‌فرض به ترتیب unknown و optional خواهند بود (از نسخه dpkg 1.22.13 به بعد).

مقدار key-value-list فهرستی از زوج‌های key=value جداشده با فاصله است و کلیدهای اختیاری شناخته‌شده در حال حاضر عبارتند از:

محدودیت معماری برگرفته از فیلد Architecture بستهٔ باینری، که فاصله‌ها در آن به ‘,’ تبدیل شده‌اند.
فرمول نرمال‌شدهٔ محدودیت نمایه ساخت (build-profile) برگرفته از فیلد Build-Profile بستهٔ باینری، با تبدیل ANDها (فاصله داخل قلاب‌های شکسته) به ‘,’، و ORها (فاصله بین قلاب‌های شکسته) به ‘+’. تمامی قلاب‌های شکسته در طی نرمال‌سازی حذف می‌شوند.

از نسخه 1.23.0 dpkg منسوخ شده و profile:v1 جایگزین آن شده است.

فرمول نرمال‌شدهٔ محدودیت نمایه ساخت برگرفته از فیلد Build-Profile بستهٔ باینری، با تبدیل ANDها (فاصله داخل قلاب‌های شکسته) به ‘&’، و ORها (فاصله بین قلاب‌های شکسته) به ‘|’. تمامی قلاب‌های شکسته در طی نرمال‌سازی حذف می‌شوند.

از نسخه 1.23.0 dpkg پشتیبانی می‌شود.

اگر بستهٔ باینری محافظت‌شده (protected) باشد، این کلید حاوی مقدار فیلد Protected یعنی مقدار yes خواهد بود.

از نسخه 1.20.1 dpkg پشتیبانی می‌شود.

اگر بستهٔ باینری حیاتی (essential) باشد، این کلید حاوی مقدار فیلد Essential یعنی مقدار yes خواهد بود.
 checksum size filename
این فیلدهای چندخطی حاوی فهرستی از فایل‌ها به همراه جمع‌آزمای (checksum) و اندازه برای هر کدام هستند. این فیلدها ساختار نحوی یکسانی دارند و تنها در الگوریتم جمع‌آزمای استفاده‌شده با یکدیگر تفاوت دارند: MD5 برای Files، SHA-1 برای Checksums-Sha1 و SHA-256 برای Checksums-Sha256.

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

این فیلدها تمام فایل‌هایی را که بستهٔ منبع را تشکیل می‌دهند فهرست می‌کنند. فهرست فایل‌ها در این فیلدها باید دقیقاً با فهرست فایل‌ها در سایر فیلدهای مرتبط مطابقت داشته باشد.

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

فیلد Format قالب خود فایل .dsc و قالب بستهٔ منبع استخراج‌شده را با هم ترکیب و خلط می‌کند.

deb822(5)، deb-src-control(5)، deb-version(7)، dpkg-source(1).

2026-03-06 1.23.7-dirty