Product SiteDocumentation Site

5.3. ساختار یک بسته سورس

5.3.1. قالب

A source package is usually comprised of three files, a .dsc, a .orig.tar.gz, and a .debian.tar.xz (or .diff.gz). They allow creation of binary packages (.deb files described above) from the source code files of the program, which are written in a programming language.
فایل .dsc یا Debian Source Control فایل کوتاهی است مبتنی بر استاندارد RFC 2822 (درست مانند فایل control که در قسمت قسمت 5.2.1, “توضیح: فایل control بررسی شد) که بسته سورس و محتویات آن را مشخص می‌نماید. این فایل توسط توسعه‌دهنده آن امضا شده است که صحت آن را نمایش می‌دهد. برای مطالعه بیشتر در این زمینه به قسمت 6.5, “بررسی صحت بسته‌ها” مراجعه کنید.

مثال 5.1. یک فایل .dsc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 3.0 (quilt)
Source: zim
Binary: zim
Architecture: all
Version: 0.65-4
Maintainer: Emfox Zhou <emfox@debian.org>
Uploaders: Raphaël Hertzog <hertzog@debian.org>
Homepage: http://zim-wiki.org
Standards-Version: 3.9.8
Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/zim.git
Vcs-Git: https://anonscm.debian.org/git/collab-maint/zim.git
Build-Depends: debhelper (>= 9), xdg-utils, python (>= 2.6.6-3~), libgtk2.0-0 (>= 2.6), python-gtk2, python-xdg, dh-python
Package-List:
 zim deb x11 optional arch=all
Checksums-Sha1:
 4a9be85c98b7f4397800f6d301428d64241034ce 1899614 zim_0.65.orig.tar.gz
 0ec38c990ec7662205dd0c843bf81f9033906a2e 10332 zim_0.65-4.debian.tar.xz
Checksums-Sha256:
 5442f3334395a2beafc5b9a2bbec2e53e38270d4bad696b5c4053dd51dc1ed96 1899614 zim_0.65.orig.tar.gz
 78271df16aa166dce916b3ff4ecd705ed3a8832e49d3ef0bd8738a4fe8dd2b4f 10332 zim_0.65-4.debian.tar.xz
Files:
 63ab7a2070e6d1d3fb32700a851d7b8b 1899614 zim_0.65.orig.tar.gz
 648559b38e04eaf4f6caa97563c057ff 10332 zim_0.65-4.debian.tar.xz

-----BEGIN PGP SIGNATURE-----
Comment: Signed by Raphael Hertzog

iQEzBAEBCgAdFiEE1823g1EQnhJ1LsbSA4gdq+vCmrkFAlgzZXkACgkQA4gdq+vC
mrnyXAf+M/PzZFjqk6Hvv1QSbocIDZ3bEqRjVpNLApubsPsEZZT6yw9vypzNE2hZ
/BbLPa0Ntbhew4U+SJpuujV7VnLs9mZgOFuKRHKWYQBQ+oxw+gtM6iePwVj58aP/
LW7K5gE428ohMdjIkf42Lz4Fve3dVPgPLIzQxRZ87N6OKqmS81M6/RRIF3TS/gJp
CwpN1yifCfQs46gxL5/CgA4uhI8taz+g+8ZDd6fL5BQeFuNsgplY4QL1uGno3F7G
VY7WZhM601Re2ePnv+6vjh8kDWMjZhfB4RJy0+hHezuoVGKljyaxc1O4P/fxvXus
CEETju6cAE/HgDubDXDqExMwEd4odA==
=HUvj
-----END PGP SIGNATURE-----
نکته اینکه بسته‌های سورس نیز وابستگی‌های مربوط به خود را دارند (Build-Depends) که کاملاً با وابستگی‌های موجود در بسته‌های باینری تفاوت دارد، چرا که شامل ابزاری جهت کامپایل کردن نرم‌افزار مورد نظر و ایجاد فایل باینری آن هستند.
فایل .orig.tar.gz آرشیو شامل سورس کد از توسعه‌دهنده اصلی برنامه است. از توسعه‌دهندگان بسته در دبیان تقاضا می‌شود که این فایل را به منظور سازگاری هر چه بیشتر با فایل اصلی برنامه، تغییر ندهند (که این کار توسط یک عملیات مقایسه‌ای انجام می‌شود) و به نقظه نظرات نویسنده اصلی احترام بگذارند.
The .debian.tar.xz contains all of the modifications made by the Debian maintainer, especially the addition of a debian directory containing the instructions to execute to construct a Debian package.

5.3.2. کاربرد در دبیان

بسته سورس پایه و اساس هر چیز دیگری در دبیان است. تمام بسته‌های دبیان از یک بسته سورس نشات می‌گیرند، تغییر در هر بسته دبیان مستلزم تغییر در بسته سورس آن است. توسعه‌دهندگان دبیان که روی بسته‌های سورس کار می‌کنند، می‌دانند که کوچکترین تغییر در آن‌ها روی بسته‌های دبیان تاثیر خواهد گذاشت. حاصل کار نهایی آن‌ها در بسته‌های سورس قرار می‌گیرد: به راحتی می‌توانید به آن‌ها مراجعه کنید و ببینید که تمام تغییرات از آنجا شروع می‌شود.
زمانی که نسخه جدیدی از یک بسته (یک بسته سورس و یک یا چند بسته باینری) روی سرورهای دبیان قرار می‌گیرد، بسته سورس مهمترین آن‌ها است. در واقع، توسط شبکه‌ای از ماشین‌ها با معماری‌های متفاوت برای کامپایل و ساخت نسخه‌های مختلف از آن بسته در معماری‌های گوناگون مورد استفاده قرار می‌گیرد. در حقیقت اینکه توسعه‌دهنده خود اقدام به انتشار نسخه‌های متفاوت برای معماری‌های گوناگون می‌کند (معمولا i386 یا amd64) اهمیت خاصی ندارد، چرا که این فعالیت‌ها به صورت خودکار صورت می‌پذیرند.