.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "dpkg-source 1" .TH dpkg-source 1 2026-03-06 1.23.7-dirty "dpkg suite" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" dpkg\-source \- ابزار دستکاری بسته منبع دبیان (.dsc) .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBdpkg\-source\fR [\fIگزینه\fR...] \fIدستور\fR .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" \&\fBdpkg\-source\fR بایگانی‌های منبع دبیان را بسته‌بندی و باز می‌کند. .PP هیچ‌یک از این دستورات اجازه ترکیب چند گزینه در یک گزینه را نمی‌دهند و اجازه نمی‌دهند مقدار یک گزینه در آرگومان جداگانه‌ای مشخص شود. .SH "دستورات (COMMANDS)" .IX Header "COMMANDS" .IP "\fB\-x\fR, \fB\-\-extract\fR \fIfilename\fR.dsc [\fIoutput\-directory\fR]" 4 .IX Item "-x, --extract filename.dsc [output-directory]" استخراج یک بسته منبع (\fB\-\-extract\fR از نسخه 1.17.14 dpkg). باید یک آرگومان غیرگزینه‌ای عرضه شود که نام فایل کنترل منبع دبیان (\fB.dsc\fR) است. یک آرگومان غیرگزینه‌ای دوم و اختیاری نیز می‌تواند برای مشخص کردن دایرکتوری مورد نظر جهت استخراج بسته منبع در آن عرضه شود که این دایرکتوری نباید از قبل وجود داشته باشد. اگر هیچ دایرکتوری خروجی مشخص نشود، بسته منبع در دایرکتوری با نام \fIsource\fR\-\fIversion\fR در دایرکتوری کاری جاری استخراج می‌شود. .Sp دستور \&\fBdpkg\-source\fR نام سایر فایل‌های تشکیل‌دهنده بسته منبع را از فایل کنترل می‌خواند؛ فرض می‌شود که آن‌ها در همان دایرکتوری حاوی فایل \&\fB.dsc\fR قرار دارند. .Sp فایل‌های موجود در بسته استخراج‌شده، مجوزها و مالکان متناسب با حالتی که فایل‌ها و دایرکتوری‌ها به سادگی ساخته می‌شدند خواهند داشت \- دایرکتوری‌ها و فایل‌های اجرایی 0777 و فایل‌های معمولی 0666 خواهند بود که هر دو توسط umask استخراج‌کننده اصلاح می‌شوند؛ اگر دایرکتوری والد دارای setgid باشد، دایرکتوری‌های استخراج‌شده نیز چنین خواهند بود و همه فایل‌ها و دایرکتوری‌ها مالکیت گروهی آن را به ارث می‌برند. .Sp اگر بسته منبع از قالبی غیر استاندارد استفاده کند (در حال حاضر یعنی همه قالب‌ها به جز \(lq1.0\(rq)، نام آن در \&\fBdebian/source/format\fR ذخیره خواهد شد تا ساخت‌های بعدی بسته منبع به طور پیش‌فرض از همان قالب استفاده کنند. .IP "\fB\-b\fR, \fB\-\-build\fR \fIdirectory\fR [\fIformat\-specific\-parameters\fR]" 4 .IX Item "-b, --build directory [format-specific-parameters]" ساخت یک بسته منبع (\fB\-\-build\fR از نسخه 1.17.14 dpkg). نخستین آرگومان غیرگزینه‌ای به عنوان نام دایرکتوری حاوی درخت منبع دبیانی‌شده (یعنی دارای زیردایرکتوری debian و احتمالاً تغییرات در فایل‌های بالادستی) در نظر گرفته می‌شود. بسته به قالب بسته منبع مورد استفاده برای ساخت بسته، ممکن است پارامترهای اضافی پذیرفته شوند. .Sp دستور \&\fBdpkg\-source\fR بسته منبع را با نخستین قالبی که در این فهرست مرتب‌شده یافت شود می‌سازد: قالب مشخص‌شده با گزینه خط فرمان \fI\-\-format\fR، قالب مشخص‌شده در \fBdebian/source/format\fR، قالب \(lq1.0\(rq. استفاده از \(lq1.0\(rq به عنوان پیش‌فرض جایگزین منسوخ شده است و در آینده حذف خواهد شد؛ شما همیشه باید قالب منبع مورد نظر را در \fBdebian/source/format\fR مستند کنید. برای توضیحات جامع در مورد قالب‌های گوناگون بسته منبع، بخش "قالب‌های بسته منبع (SOURCE PACKAGE FORMATS)" را ببینید. .IP "\fB\-\-print\-format\fR \fIdirectory\fR" 4 .IX Item "--print-format directory" چاپ قالب منبعی که اگر دستور \&\fBdpkg\-source \-\-build\fR \fIdirectory\fR فراخوانی می‌شد (تحت همان شرایط و با همان پارامترها؛ از نسخه 1.15.5 dpkg)، برای ساخت بسته منبع استفاده می‌گردید. .IP "\fB\-\-before\-build\fR \fIdirectory\fR" 4 .IX Item "--before-build directory" اجرای قلاب متناظر با قالب بسته منبع (از نسخه 1.15.8 dpkg). این قلاب پیش از هرگونه ساخت بسته فراخوانی می‌شود (\fBdpkg\-buildpackage\fR آن را بسیار زود، حتی قبل از \fBdebian/rules clean\fR فراخوانی می‌کند). این دستور همان‌توان (idempotent) است و می‌تواند چندین بار فراخوانی شود. همه قالب‌های منبع در این قلاب چیزی پیاده‌سازی نکرده‌اند، و آن‌هایی که پیاده‌سازی کرده‌اند معمولاً درخت منبع را برای ساخت آماده می‌کنند، برای نمونه با اطمینان از اینکه وصله‌های دبیان اعمال شده‌اند. .IP "\fB\-\-after\-build\fR \fIdirectory\fR" 4 .IX Item "--after-build directory" اجرای قلاب متناظر با قالب بسته منبع (از نسخه 1.15.8 dpkg). این قلاب پس از هرگونه ساخت بسته فراخوانی می‌شود (\fBdpkg\-buildpackage\fR آن را در آخر فراخوانی می‌کند). این دستور همان‌توان است و می‌تواند چندین بار فراخوانی شود. همه قالب‌های منبع در این قلاب چیزی پیاده‌سازی نکرده‌اند، و آن‌هایی که پیاده‌سازی کرده‌اند معمولاً از آن برای بازگرداندن آنچه توسط \fB\-\-before\-build\fR انجام شده استفاده می‌کنند. .IP "\fB\-\-commit\fR [\fIdirectory\fR] ..." 4 .IX Item "--commit [directory] ..." ثبت تغییرات در درخت منبع استخراج‌شده در \fIdirectory\fR (از نسخه 1.16.1 dpkg). این دستور بسته به قالب منبع می‌تواند پارامترهای تکمیلی دریافت کند. برای قالب‌هایی که این عملیات در آن‌ها معنایی ندارد با خطا مواجه خواهد شد. .IP "\fB\-?\fR, \fB\-\-help\fR" 4 .IX Item "-?, --help" نمایش پیام راهنما و خروج. گزینه‌های ساخت و استخراج مختص هر قالب را می‌توان با استفاده از گزینه \&\fB\-\-format\fR مشاهده کرد. .IP \fB\-\-version\fR 4 .IX Item "--version" نمایش نسخه و خروج. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .SS "گزینه‌های عمومی ساخت (Generic build options)" .IX Subsection "Generic build options" .IP \fB\-c\fR\fIcontrol\-file\fR 4 .IX Item "-ccontrol-file" فایل اصلی کنترل منبع را برای خواندن اطلاعات مشخص می‌کند. مقدار پیش‌فرض \&\fBdebian/control\fR است. اگر به صورت نام مسیر نسبی داده شود، به عنوان مسیری شروع‌شده از دایرکتوری سطح بالای درخت منبع تفسیر می‌شود. .IP \fB\-l\fR\fIchangelog\-file\fR 4 .IX Item "-lchangelog-file" فایل گزارش تغییرات (changelog) را برای خواندن اطلاعات مشخص می‌کند. مقدار پیش‌فرض \&\fBdebian/changelog\fR است. اگر به صورت نام مسیر نسبی داده شود، به عنوان مسیری شروع‌شده از دایرکتوری سطح بالای درخت منبع تفسیر می‌شود. .IP \fB\-F\fR\fIchangelog\-format\fR 4 .IX Item "-Fchangelog-format" قالب فایل changelog را مشخص می‌کند. برای اطلاعات درباره قالب‌های جایگزین، \fBdpkg\-parsechangelog\fR\|(1) را ببینید. .IP \fB\-\-format=\fR\fIvalue\fR 4 .IX Item "--format=value" استفاده از قالب ارائه‌شده برای ساخت بسته منبع (از نسخه 1.14.17 dpkg). این گزینه بر هر قالبی که در \fBdebian/source/format\fR مشخص شده باشد برتری دارد. .IP \fB\-V\fR\fIname\fR\fB=\fR\fIvalue\fR 4 .IX Item "-Vname=value" تنظیم یک متغیر جایگزینی خروجی. برای بررسی متغیرهای جایگزینی خروجی، \fBdeb\-substvars\fR\|(5) را ببینید. .IP \fB\-T\fR\fIsubstvars\-file\fR 4 .IX Item "-Tsubstvars-file" خواندن متغیرهای جایگزینی در \&\fIsubstvars\-file\fR؛ حالت پیش‌فرض عدم خواندن هیچ فایلی است. این گزینه می‌تواند چند بار برای خواندن متغیرهای جایگزینی از چندین فایل استفاده شود (از نسخه 1.15.6 dpkg). .IP \fB\-D\fR\fIfield\fR\fB=\fR\fIvalue\fR 4 .IX Item "-Dfield=value" جایگزینی یا افزودن یک فیلد در فایل کنترل خروجی. .IP \fB\-U\fR\fIfield\fR 4 .IX Item "-Ufield" حذف یک فیلد از فایل کنترل خروجی. .IP "\fB\-Z\fR\fIcompression\fR, \fB\-\-compression\fR=\fIcompression\fR" 4 .IX Item "-Zcompression, --compression=compression" مشخص کردن فشرده‌سازی مورد استفاده برای بایگانی‌های tarball و فایل‌های diff ایجادشده (\fB\-\-compression\fR از نسخه 1.15.5 dpkg). توجه داشته باشید که این گزینه باعث فشرده‌سازی مجدد tarballهای موجود نمی‌شود، بلکه تنها بر فایل‌های جدید اثر می‌گذارد. مقادیر پشتیبانی‌شده عبارتند از: \&\fIgzip\fR، \fIbzip2\fR، \fIlzma\fR و \fIxz\fR. مقدار پیش‌فرض برای قالب‌های 2.0 و جدیدتر \fIxz\fR، و برای قالب 1.0 \fIgzip\fR است. قالب \&\fIxz\fR تنها از نسخه 1.15.5 dpkg پشتیبانی می‌شود. .IP "\fB\-z\fR\fIlevel\fR, \fB\-\-compression\-level\fR=\fIlevel\fR" 4 .IX Item "-zlevel, --compression-level=level" سطح فشرده‌سازی مورد استفاده (\fB\-\-compression\-level\fR از نسخه 1.15.5 dpkg). همانند \fB\-Z\fR تنها بر فایل‌های تازه ساخته‌شده اثر می‌گذارد. مقادیر پشتیبانی‌شده عبارتند از: \&\fI1\fR تا \fI9\fR، \fIbest\fR و \fIfast\fR. مقدار پیش‌فرض برای gzip و bzip2 برابر \fI9\fR، و برای xz و lzma برابر \fI6\fR است. .IP "\fB\-i\fR[\fIregex\fR], \fB\-\-diff\-ignore\fR[=\fIregex\fR]" 4 .IX Item "-i[regex], --diff-ignore[=regex]" می‌توانید یک عبارت باقاعده پرل (perl regex) برای تطبیق با فایل‌هایی که می‌خواهید از فهرست فایل‌های diff فیلتر شوند، مشخص کنید (\fB\-\-diff\-ignore\fR از نسخه 1.15.6 dpkg). (این فهرست توسط دستور find ایجاد می‌شود.) (اگر بسته منبع به عنوان بسته منبع نسخه 3 با استفاده از VCS ساخته می‌شود، می‌توان از این گزینه برای نادیده گرفتن تغییرات کامیت‌نشده روی فایل‌های خاص استفاده کرد. استفاده از \-i.* همه آن‌ها را نادیده می‌گیرد.) .Sp گزینه \fB\-i\fR به تنهایی این تنظیم را با یک regex پیش‌فرض فعال می‌کند (و هر تغییری که قبلاً با \fB\-\-extend\-diff\-ignore\fR روی regex پیش‌فرض اعمال شده را حفظ می‌کند) که فایل‌ها و دایرکتوری‌های کنترلی رایج‌ترین سامانه‌های کنترل نسخه، فایل‌های پشتیبان، swap و دایرکتوری‌های خروجی ساخت Libtool را فیلتر می‌کند. تنها یک regex فعال می‌تواند وجود داشته باشد؛ در میان چندین گزینه \fB\-i\fR، تنها آخرین مورد اعمال خواهد شد. .Sp این گزینه در حذف فایل‌های اضافی که ممکن است در diff قرار گیرند بسیار مفید است، برای مثال اگر منبع خود را در یک سامانه کنترل نسخه نگهداری می‌کنید و می‌خواهید از یک checkout برای ساخت بسته منبع استفاده کنید بدون اینکه فایل‌ها و دایرکتوری‌های اضافی معمول (مانند CVS/، .cvsignore، .svn/) در آن گنجانده شوند. عبارت باقاعده پیش‌فرض از قبل بسیار جامع است، اما اگر نیاز به جایگزینی آن دارید، لطفاً توجه داشته باشید که به طور پیش‌فرض می‌تواند با هر بخشی از مسیر تطبیق یابد؛ بنابراین اگر می‌خواهید با ابتدای نام فایل یا تنها با کل نام فایل تطبیق یابد، باید لنگرهای لازم (مانند \(oq(^|/)\(cq، \(oq($|/)\(cq) را خودتان ارائه دهید. .IP \fB\-\-extend\-diff\-ignore\fR=\fIregex\fR 4 .IX Item "--extend-diff-ignore=regex" عبارت باقاعده پرل مشخص‌شده، مقدار پیش‌فرض مورد استفاده توسط \&\fB\-\-diff\-ignore\fR و مقدار فعلی آن (در صورت تنظیم) را گسترش می‌دهد (از نسخه 1.15.6 dpkg). این کار با افزودن رشته \(lq\fB|\fR\fIregex\fR\(rq به مقدار موجود انجام می‌شود. استفاده از این گزینه در \fBdebian/source/options\fR برای مستثنی کردن برخی فایل‌های خودکار تولیدشده از تولید خودکار وصله بسیار مناسب است. .IP "\fB\-I\fR[\fIfile\-pattern\fR], \fB\-\-tar\-ignore\fR[=\fIfile\-pattern\fR]" 4 .IX Item "-I[file-pattern], --tar-ignore[=file-pattern]" اگر این گزینه مشخص شود، این الگو هنگام فراخوانی دستور \&\fBtar\fR\|(1) برای تولید فایل .orig.tar یا .tar به گزینه \&\fB\-\-exclude\fR آن پاس داده می‌شود (\fB\-\-tar\-ignore\fR از نسخه 1.15.6 dpkg). برای نمونه، \fB\-I\fRCVS باعث می‌شود tar هنگام تولید فایل .tar.gz دایرکتوری‌های CVS را نادیده بگیرد. این گزینه می‌تواند چندین بار تکرار شود تا الگوهای متعددی برای مستثنی شدن فهرست شوند. .Sp گزینه \&\fB\-I\fR به خودی خود گزینه‌های \fB\-\-exclude\fR پیش‌فرضی اضافه می‌کند که فایل‌ها و دایرکتوری‌های کنترلی رایج‌ترین سامانه‌های کنترل نسخه، فایل‌های پشتیبان، swap و دایرکتوری‌های خروجی ساخت Libtool را فیلتر می‌کنند. .PP \&\fBتوجه\fR: اگرچه \fB\-i\fR و \fB\-I\fR اهداف مشابهی دارند، اما ساختار و معنای بسیار متفاوتی دارند. گزینه \&\fB\-i\fR تنها می‌تواند یک‌بار مشخص شود و یک عبارت باقاعده سازگار با پرل دریافت می‌کند که با مسیر نسبی کامل هر فایل سنجیده می‌شود. گزینه \&\fB\-I\fR می‌تواند چندین بار مشخص شود و یک الگوی نام فایل با وایلدکاردهای شل دریافت می‌کند. الگو هم بر مسیر نسبی کامل و هم بر هر بخش از مسیر به صورت جداگانه اعمال می‌شود. معنای دقیق گزینه \&\fB\-\-exclude\fR در tar تا حدی پیچیده است؛ برای مستندات کامل پیوند را ببینید. .PP عبارت باقاعده و الگوهای پیش‌فرض برای هر دو گزینه در خروجی دستور \fB\-\-help\fR قابل مشاهده است. .SS "گزینه‌های عمومی استخراج (Generic extract options)" .IX Subsection "Generic extract options" .IP \fB\-\-no\-copy\fR 4 .IX Item "--no-copy" عدم کپی کردن tarballهای اصلی در کنار بسته منبع استخراج‌شده (از نسخه 1.14.17 dpkg). .IP \fB\-\-no\-check\fR 4 .IX Item "--no-check" عدم بررسی امضاها و چکسام‌ها قبل از باز کردن بسته (از نسخه 1.14.17 dpkg). .IP \fB\-\-no\-overwrite\-dir\fR 4 .IX Item "--no-overwrite-dir" عدم بازنویسی دایرکتوری استخراج در صورتی که از قبل وجود داشته باشد (از نسخه 1.18.8 dpkg). .IP \fB\-\-no\-vendor\-certs\fR 4 .IX Item "--no-vendor-certs" عدم استفاده از دسته‌کلیدهای گواهی مختص توزیع‌کننده (vendor). .Sp پشتیبانی‌شده از نسخه 1.23.0 dpkg. .IP \fB\-\-signer\-certs=\fR\fIkeyring\fR 4 .IX Item "--signer-certs=keyring" استفاده از این \fIkeyring\fR حاوی گواهی‌های امضاکننده هنگام اعتبارسنجی امضای بسته‌های منبع. .Sp این گزینه ممکن است چندین بار برای افزودن چندین دسته‌کلید تکرار شود. .Sp پشتیبانی‌شده از نسخه 1.23.0 dpkg. .IP \fB\-\-require\-valid\-signature\fR 4 .IX Item "--require-valid-signature" امتناع از باز کردن بسته منبع اگر حاوی امضای OpenPGP قابل اعتبارسنجی نباشد (از نسخه 1.15.0 dpkg)، چه با دسته‌کلیدهای عرضه‌شده توسط کاربر با \fB\-\-signer\-certs\fR و چه با یکی از دسته‌کلیدهای مختص توزیع‌کننده (شامل هرگونه دسته‌کلید توزیع‌کننده والد در صورت مرتبط بودن). .IP \fB\-\-require\-strong\-checksums\fR 4 .IX Item "--require-strong-checksums" امتناع از باز کردن بسته منبع اگر حاوی هیچ چکسام قدرتمندی نباشد (از نسخه 1.18.7 dpkg). در حال حاضر تنها چکسامی که قدرتمند تلقی می‌شود \fBSHA\-256\fR است. .IP \fB\-\-ignore\-bad\-version\fR 4 .IX Item "--ignore-bad-version" تبدیل بررسی نادرست بودن نسخه بسته منبع به یک هشدار غیرمهلک (از نسخه 1.17.7 dpkg). این گزینه تنها باید هنگام استخراج بسته‌های منبع قدیمی با نسخه‌های مخدوش، صرفاً برای سازگاری با گذشته استفاده شود. .SS "گزینه‌های عمومی کلی (Generic general options)" .IX Subsection "Generic general options" .IP \fB\-\-threads\-max=\fR\fIthreads\fR 4 .IX Item "--threads-max=threads" تنظیم حداکثر تعداد رشته‌ها (threads) مجاز برای برنامه‌های فشرده‌سازی که از عملیات چندرشته‌ای پشتیبانی می‌کنند (از نسخه 1.21.14 dpkg). .IP \fB\-q\fR 4 .IX Item "-q" فعال کردن حالت بی‌صدا (quiet) برای سرکوب هشدارها. .SH "قالب‌های بسته منبع (SOURCE PACKAGE FORMATS)" .IX Header "SOURCE PACKAGE FORMATS" اگر نمی‌دانید از چه قالب منبعی استفاده کنید، احتمالاً باید \(lq3.0 (quilt)\(rq یا \(lq3.0 (native)\(rq را برگزینید. برای اطلاعات درباره پیاده‌سازی این قالب‌ها در دبیان، پیوند را ببینید. .SS "قالب: 1.0 (Format: 1.0)" .IX Subsection "Format: 1.0" یک بسته منبع در این قالب شامل یک فایل \fB.orig.tar.gz\fR مرتبط با یک \fB.diff.gz\fR، یا یک فایل منفرد \fB.tar.gz\fR است (که در حالت دوم گفته می‌شود بسته بومی یا \fInative\fR است). به صورت اختیاری، tarball اصلی ممکن است با یک امضای بالادستی جداگانه \fB.orig.tar.gz.asc\fR همراه باشد که استخراج آن از نسخه 1.18.5 dpkg پشتیبانی می‌شود. .PP \&\fBتوجه\fR: در برخی توزیع‌ها (vendors)، dpkg طوری دستکاری شده که منابع بومی با نسخه‌های غیربومی را مجاز بداند که این امر باعث ناهمگونی و سردرگمی بیشتر در این مفهوم شده و علاوه بر این معمولاً تله‌ای برای خطاهای تصادفی است. .PP \&\fBاستخراج\fR .PP استخراج یک بسته بومی، صرفاً استخراج ساده یک tarball واحد در دایرکتوری مقصد است. استخراج یک بسته غیربومی ابتدا با باز کردن \fB.orig.tar.gz\fR و سپس اعمال وصله (patch) موجود در فایل \fB.diff.gz\fR انجام می‌شود. مهر زمانی (timestamp) تمام فایل‌های وصله‌شده به زمان استخراج بسته منبع بازنشانی می‌شود (این کار از ناهماهنگی مهر زمانی که هنگام وصله شدن فایل‌های خودکار تولیدشده رخ می‌دهد جلوگیری می‌کند). فایل diff می‌تواند فایل‌های جدید بسازد (کل دایرکتوری debian از این طریق ساخته می‌شود) اما نمی‌تواند فایل‌ها را حذف کند (فایل‌های خالی باقی خواهند ماند) و نمی‌تواند پیوندهای نمادین ایجاد یا ویرایش کند. .PP \&\fBساخت\fR .PP ساخت یک بسته بومی صرفاً ایجاد یک tarball واحد از دایرکتوری منبع است. ساخت یک بسته غیربومی شامل استخراج tarball اصلی در یک دایرکتوری مجزای \(lq.orig\(rq و تولید مجدد \fB.diff.gz\fR با مقایسه دایرکتوری \fIdirectory\fR بسته منبع با دایرکتوری .orig است. .PP \&\fBگزینه‌های ساخت (با \-\-build):\fR .PP اگر دومین آرگومان غیرگزینه‌ای عرضه شود، باید نام دایرکتوری منبع اصلی یا فایل tar باشد یا در صورتی که بسته مختص دبیان باشد و بنابراین فاقد diffهای دبیانی‌سازی باشد، یک رشته خالی باشد. اگر آرگومان دومی عرضه نشود، \&\fBdpkg\-source\fR بسته به آرگومان‌های \fB\-sX\fR به دنبال فایل tar منبع اصلی \&\fIpackage\fR\fB_\fR\fIupstream\-version\fR\fB.orig.tar.gz\fR یا دایرکتوری منبع اصلی \&\fIdirectory\fR\fB.orig\fR خواهد گشت. .PP گزینه‌های \&\fB\-sa\fR، \fB\-sp\fR، \fB\-sk\fR، \fB\-su\fR و \fB\-sr\fR فایل‌های tar یا دایرکتوری‌های موجود را بازنویسی نخواهند کرد. اگر بازنویسی مد نظر باشد، باید به جای آن‌ها از \&\fB\-sA\fR، \fB\-sP\fR، \fB\-sK\fR، \fB\-sU\fR و \fB\-sR\fR استفاده شود. .IP \fB\-sk\fR 4 .IX Item "-sk" مشخص می‌کند که منبع اصلی به عنوان یک فایل tar انتظار می‌رود، که به طور پیش‌فرض \&\fIpackage\fR\fB_\fR\fIupstream\-version\fR\fB.orig.tar.\fR\fIextension\fR است. این گزینه این منبع اصلی را به عنوان یک فایل tar در جای خود باقی می‌گذارد، یا اگر قبلاً در دایرکتوری جاری نباشد آن را در دایرکتوری جاری کپی می‌کند. این بایگانی tarball برای تولید diff در دایرکتوری \&\fIdirectory\fR\fB.orig\fR باز خواهد شد. .IP \fB\-sp\fR 4 .IX Item "-sp" همانند \&\fB\-sk\fR، اما پس از اتمام کار دایرکتوری را دوباره حذف می‌کند. .IP \fB\-su\fR 4 .IX Item "-su" مشخص می‌کند که منبع اصلی به عنوان یک دایرکتوری انتظار می‌رود، که به طور پیش‌فرض \&\fIpackage\fR\fB\-\fR\fIupstream\-version\fR\fB.orig\fR است، و \&\fBdpkg\-source\fR یک بایگانی منبع اصلی جدید از روی آن خواهد ساخت. .IP \fB\-sr\fR 4 .IX Item "-sr" همانند \&\fB\-su\fR، اما آن دایرکتوری را پس از استفاده حذف خواهد کرد. .IP \fB\-ss\fR 4 .IX Item "-ss" مشخص می‌کند که منبع اصلی هم به عنوان دایرکتوری و هم به عنوان فایل tar در دسترس است. دستور \fBdpkg\-source\fR از دایرکتوری برای ایجاد diff و از فایل tar برای ساخت \&\fB.dsc\fR استفاده خواهد کرد. این گزینه باید با احتیاط استفاده شود \- اگر دایرکتوری و فایل tar مطابقت نداشته باشند، یک بایگانی منبع معیوب تولید خواهد شد. .IP \fB\-sn\fR 4 .IX Item "-sn" مشخص می‌کند که به دنبال هیچ منبع اصلی نگردد و فایل diff تولید نکند. دومین آرگومان، در صورت ارائه، باید یک رشته خالی باشد. این گزینه برای بسته‌های مختص دبیان استفاده می‌شود که منبع بالادستی جداگانه‌ای ندارند و در نتیجه فاقد diffهای دبیانی‌سازی هستند. .IP "\fB\-sa\fR یا \fB\-sA\fR" 4 .IX Item "-sa or -sA" مشخص می‌کند که به دنبال بایگانی منبع اصلی به عنوان یک فایل tar یا یک دایرکتوری بگردد \- آرگومان دوم، در صورت وجود، می‌تواند هر یک از این دو یا رشته خالی باشد (که معادل استفاده از \&\fB\-sn\fR است). اگر یک فایل tar یافت شود، آن را برای ایجاد diff باز کرده و سپس حذف می‌کند (معادل \&\fB\-sp\fR)؛ اگر یک دایرکتوری یافت شود، آن را برای ایجاد منبع اصلی بسته‌بندی کرده و سپس حذف می‌کند (معادل \&\fB\-sr\fR)؛ اگر هیچ‌کدام یافت نشود، فرض می‌کند که بسته فاقد diffهای دبیانی‌سازی است و تنها یک بایگانی منبع سرراست دارد (معادل \&\fB\-sn\fR). اگر هر دو یافت شوند، در صورتی که \&\fB\-sA\fR مشخص شده باشد \fBdpkg\-source\fR دایرکتوری را نادیده گرفته و آن را بازنویسی می‌کند (معادل \&\fB\-sP\fR) یا در صورتی که \&\fB\-sa\fR مشخص شده باشد خطایی صادر می‌کند. گزینه \&\fB\-sa\fR حالت پیش‌فرض است. .IP \fB\-\-abort\-on\-upstream\-changes\fR 4 .IX Item "--abort-on-upstream-changes" اگر diff تولیدشده شامل تغییراتی در فایل‌های خارج از زیردایرکتوری debian باشد، فرآیند ناموفق می‌شود (از نسخه 1.15.8 dpkg). این گزینه در \&\fBdebian/source/options\fR مجاز نیست اما می‌تواند در \&\fBdebian/source/local\-options\fR استفاده شود. .PP \&\fBگزینه‌های استخراج (با \-\-extract):\fR .PP در تمام موارد، هرگونه درخت منبع اصلی موجود حذف خواهد شد. .IP \fB\-sp\fR 4 .IX Item "-sp" هنگام استخراج استفاده می‌شود تا منبع اصلی (در صورت وجود) به عنوان یک فایل tar باقی بماند. اگر از قبل در دایرکتوری جاری قرار نداشته باشد یا فایلی موجود ولی متفاوت در آنجا باشد، در آنجا کپی خواهد شد. (\fBاین حالت پیش‌فرض است\fR). .IP \fB\-su\fR 4 .IX Item "-su" درخت منبع اصلی را باز می‌کند. .IP \fB\-sn\fR 4 .IX Item "-sn" اطمینان حاصل می‌کند که منبع اصلی نه در دایرکتوری جاری کپی شود و نه باز گردد. با این حال هر درخت منبع اصلی موجود در دایرکتوری جاری حذف می‌شود. .PP تمام گزینه‌های \&\fB\-s\fR\fIX\fR مانعة‌الجمع هستند. اگر بیش از یکی را مشخص کنید، تنها آخرین مورد استفاده خواهد شد. .IP \fB\-\-skip\-debianization\fR 4 .IX Item "--skip-debianization" از اعمال diff دبیان بر روی منابع بالادستی صرف‌نظر می‌کند (از نسخه 1.15.1 dpkg). .SS "قالب: 2.0 (Format: 2.0)" .IX Subsection "Format: 2.0" پشتیبانی از استخراج از نسخه 1.13.9 dpkg، و پشتیبانی از ساخت از نسخه 1.14.8 dpkg. همچنین با نام wig&pen شناخته می‌شود. این قالب برای استفاده گسترده توصیه نمی‌شود؛ قالب \(lq3.0 (quilt)\(rq جایگزین آن شده است. قالب Wig&pen نخستین مشخصات یک قالب بسته منبع نسل جدید بود. .PP رفتار این قالب مشابه قالب \(lq3.0 (quilt)\(rq است، جز اینکه از یک فهرست صریح وصله‌ها استفاده نمی‌کند. تمام فایل‌های موجود در \&\fBdebian/patches/\fR که با عبارت باقاعده پرل \fB[\ew\-]+\fR تطبیق داشته باشند باید وصله‌های معتبری باشند: آن‌ها در زمان استخراج اعمال می‌شوند. .PP هنگام ساخت یک بسته منبع جدید، هرگونه تغییر در منبع بالادستی در وصله‌ای به نام \fBzz_debian\-diff\-auto\fR ذخیره می‌شود. .SS "قالب: 3.0 (بومی) (Format: 3.0 (native))" .IX Subsection "Format: 3.0 (native)" پشتیبانی‌شده از نسخه 1.14.17 dpkg. این قالب گسترشی از قالب بسته بومی تعریف‌شده در قالب 1.0 است. این قالب از تمامی روش‌های فشرده‌سازی پشتیبانی کرده و به طور پیش‌فرض هرگونه فایل و دایرکتوری مختص سامانه‌های کنترل نسخه و همچنین بسیاری از فایل‌های موقت را نادیده می‌گیرد (مقدار پیش‌فرض مرتبط با گزینه \&\fB\-I\fR در خروجی \fB\-\-help\fR را ببینید). .PP \&\fBتوجه\fR: در برخی توزیع‌ها، dpkg طوری دستکاری شده که منابع بومی با نسخه‌های غیربومی را مجاز بداند که این امر باعث ناهمگونی و سردرگمی بیشتر در این مفهوم شده و علاوه بر این معمولاً تله‌ای برای خطاهای تصادفی است. .SS "قالب: 3.0 (quilt) (Format: 3.0 (quilt))" .IX Subsection "Format: 3.0 (quilt)" پشتیبانی‌شده از نسخه 1.14.17 dpkg. یک بسته منبع در این قالب دست‌کم شامل یک tarball اصلی (\fB.orig.tar.\fR\fIext\fR که در آن \fIext\fR می‌تواند \&\fBgz\fR، \fBbz2\fR، \fBlzma\fR و \fBxz\fR باشد) و یک tarball دبیان (\fB.debian.tar.\fR\fIext\fR) است. همچنین می‌تواند شامل tarballهای اصلی اضافی باشد (\fB.orig\-\fR\fIaddon\fR\fB.tar.\fR\fIext\fR). بخش \fIaddon\fR تنها می‌تواند شامل نویسه‌های الفبایی\-عددی (\(oqa\-zA\-Z0\-9\(cq) و خط تیره (\(oq\-\(cq) باشد. به صورت اختیاری هر tarball اصلی می‌تواند همراه با یک امضای بالادستی جداگانه باشد (\fB.orig.tar.\fR\fIext\fR\fB.asc\fR و \&\fB.orig\-\fR\fIaddon\fR\fB.tar.\fR\fIext\fR\fB.asc\fR)؛ استخراج از نسخه 1.17.20 dpkg و ساخت از نسخه 1.18.5 dpkg پشتیبانی می‌شود. .PP \&\fBاستخراج\fR .PP ابتدا tarball اصلی استخراج می‌شود، سپس تمام tarballهای اصلی اضافی در زیردایرکتوری‌هایی با نام بخش \fIaddon\fR از نام فایل آن‌ها استخراج می‌گردند (هر دایرکتوری از پیش موجود جایگزین می‌شود). سپس tarball دبیان، پس از حذف دایرکتوری \fBdebian\fR از پیش موجود، در ریشه دایرکتوری منبع استخراج می‌شود. توجه داشته باشید که tarball دبیان باید حاوی یک زیردایرکتوری \fBdebian\fR باشد، اما می‌تواند شامل فایل‌های باینری خارج از آن دایرکتوری نیز باشد (گزینه \&\fB\-\-include\-binaries\fR را ببینید). .PP سپس تمام وصله‌های فهرست‌شده در \fBdebian/patches/\fR\fIvendor\fR\fB.series\fR یا \&\fBdebian/patches/series\fR اعمال می‌شوند که در آن \fIvendor\fR نام با حروف کوچک توزیع‌کننده فعلی، یا در صورت عدم تعریف توزیع‌کننده برابر با \fBdebian\fR خواهد بود. اگر فایل اول استفاده شود و فایل دوم وجود نداشته باشد (یا یک پیوند نمادین باشد)، فایل دوم با یک پیوند نمادین به فایل اول جایگزین می‌شود. این کار برای ساده‌سازی استفاده از \fBquilt\fR برای مدیریت مجموعه‌وصله‌ها در نظر گرفته شده است. فایل‌های series مختص توزیع‌کننده با این هدف طراحی شده‌اند که امکان مرتب‌سازی شاخه‌های توسعه متعدد بر اساس توزیع‌کننده را به روشی اعلانی فراهم کنند، به جای اینکه این مدیریت به صورت کدنویسی باز در \fBdebian/rules\fR انجام شود. این به ویژه زمانی مفید است که منبع باید به صورت شرطی وصله شود، زیرا فایل‌های تحت تاثیر فاقد پشتیبانی داخلی انسداد شرطی هستند. با این حال توجه داشته باشید با اینکه \fBdpkg\-source\fR فایل‌های series حاوی گزینه‌های صریح برای اعمال وصله (که روی هر خط پس از نام فایل وصله و با یک یا چند فاصله قرار دارند) را به درستی تجزیه می‌کند، اما آن گزینه‌ها را نادیده می‌گیرد و همیشه انتظار وصله‌هایی را دارد که بتوان با گزینه \fB\-p1\fR دستور \fBpatch\fR آن‌ها را اعمال کرد. بنابراین هنگام مواجهه با چنین گزینه‌هایی هشداری صادر می‌کند و فرآیند ساخت به احتمال زیاد ناموفق خواهد بود. .PP توجه داشته باشید که \fBlintian\fR\|(1) هنگام استفاده از series توزیع‌کننده به دلیل یک تصمیم مناقشه‌برانگیز مختص دبیان هشدارهای بدون شرطی صادر می‌کند که نباید بر هیچ کاربرد خارجی اثر بگذارد؛ برای بی‌صدا کردن این هشدارها، می‌توان از نمایه lintian دبیان با پاس دادن \(Fo\fB\-\-profile dpkg\fR\(Fc به \fBlintian\fR\|(1) استفاده کرد. .PP مهر زمانی تمام فایل‌های وصله‌شده به زمان استخراج بسته منبع بازنشانی می‌شود (این کار از ناهماهنگی مهر زمانی که هنگام وصله شدن فایل‌های خودکار تولیدشده رخ می‌دهد جلوگیری می‌کند). .PP بر خلاف رفتار پیش‌فرض \fBquilt\fR، انتظار می‌رود که وصله‌ها بدون هیچ‌گونه انحراف (fuzz) اعمال شوند. در صورتی که چنین نباشد، باید این وصله‌ها را با \fBquilt\fR بازسازی (refresh) کنید، در غیر این صورت \fBdpkg\-source\fR هنگام تلاش برای اعمال آن‌ها با خطا مواجه خواهد شد. .PP مشابه رفتار پیش‌فرض \fBquilt\fR، وصله‌ها می‌توانند فایل‌ها را نیز حذف کنند. .PP اگر برخی وصله‌ها در حین استخراج اعمال شده باشند، فایل \fB.pc/applied\-patches\fR ایجاد می‌شود. .PP \&\fBساخت\fR .PP تمام tarballهای اصلی یافت‌شده در دایرکتوری جاری، با همان منطق باز کردن بسته، در یک دایرکتوری موقت استخراج می‌شوند، دایرکتوری debian در دایرکتوری موقت کپی می‌شود و تمام وصله‌ها به جز وصله خودکار (\fBdebian\-changes\-\fR\fIversion\fR یا \fBdebian\-changes\fR، بسته به \fB\-\-single\-debian\-patch\fR) اعمال می‌شوند. دایرکتوری موقت با دایرکتوری بسته منبع مقایسه می‌شود. اگر diff خالی نباشد، فرآیند ساخت ناموفق می‌شود مگر اینکه از \&\fB\-\-single\-debian\-patch\fR یا \fB\-\-auto\-commit\fR استفاده شده باشد، که در این صورت diff در وصله خودکار ذخیره می‌شود. اگر وصله خودکار ایجاد یا حذف شود، به فایل series و متادیتای \fBquilt\fR افزوده یا از آن‌ها حذف می‌شود. .PP هرگونه تغییر در یک فایل باینری در فایل diff قابل بازنمایی نیست و بنابراین منجر به شکست خواهد شد، مگر اینکه نگه‌دارنده عمداً تصمیم گرفته باشد آن فایل باینری تغییریافته را در tarball دبیان بگنجاند (با فهرست کردن آن در \&\fBdebian/source/include\-binaries\fR). همچنین اگر در زیردایرکتوری debian فایل‌های باینری پیدا شود ساخت بسته با شکست مواجه می‌شود، مگر اینکه از طریق \fBdebian/source/include\-binaries\fR مجاز شده باشند. .PP سپس از دایرکتوری به‌روزشده debian و فهرست باینری‌های اصلاح‌شده برای تولید tarball دبیان استفاده می‌شود. .PP فایل diff به طور خودکار تولیدشده تغییرات روی فایل‌های سامانه‌های کنترل نسخه و همچنین بسیاری از فایل‌های موقت را شامل نمی‌شود (مقدار پیش‌فرض مرتبط با گزینه \&\fB\-i\fR در خروجی \fB\-\-help\fR را ببینید). به ویژه، دایرکتوری \&\fB.pc\fR مورد استفاده توسط \fBquilt\fR در حین تولید وصله خودکار نادیده گرفته می‌شود. .PP \&\fBتوجه\fR: دستور \fBdpkg\-source\fR \fB\-\-before\-build\fR (و \fB\-\-build\fR) اطمینان حاصل می‌کند که تمام وصله‌های فهرست‌شده در فایل series اعمال شده‌اند تا ساخت بسته همیشه همراه با اعمال تمام وصله‌ها باشد. این کار با یافتن وصله‌های اعمال‌نشده انجام می‌شود (وصله‌هایی که در فایل \fBseries\fR فهرست شده‌اند اما در \&\fB.pc/applied\-patches\fR نیستند)، و اگر اولین وصله در آن مجموعه بدون خطا قابل اعمال باشد، همه آن‌ها را اعمال می‌کند. از گزینه \&\fB\-\-no\-preparation\fR می‌توان برای غیرفعال کردن این رفتار استفاده کرد. .PP \&\fBثبت تغییرات\fR .IP "\fB\-\-commit\fR [\fIdirectory\fR] [\fIpatch\-name\fR] [\fIpatch\-file\fR]" 4 .IX Item "--commit [directory] [patch-name] [patch-file]" وصله‌ای متناظر با تغییرات محلی که توسط سیستم وصله \fBquilt\fR مدیریت نمی‌شوند ایجاد کرده و آن را تحت نام \fIpatch\-name\fR در سیستم وصله ادغام می‌کند. اگر نام ارائه نشود، به صورت تعاملی درخواست خواهد شد. اگر \fIpatch\-file\fR داده شود، به عنوان وصله متناظر با تغییرات محلی جهت ادغام استفاده می‌شود. پس از ادغام، یک ویرایشگر (نخستین ویرایشگر یافت‌شده از میان \fBsensible\-editor\fR، \f(CW$VISUAL\fR، \f(CW$EDITOR\fR، \&\fBvi\fR) اجرا می‌شود تا بتوانید متادیتای موجود در هدر وصله را ویرایش کنید. .Sp ارائه \fIpatch\-file\fR عمدتاً پس از شکست در ساختی مفید است که این فایل را از قبل تولید کرده باشد، و بر این اساس فایل ارائه‌شده پس از ادغام حذف می‌شود. همچنین توجه داشته باشید که تغییرات موجود در فایل وصله باید از قبل روی درخت اعمال شده باشند و فایل‌های اصلاح‌شده توسط وصله نباید دارای تغییرات ثبت‌نشده تکمیلی باشند. .Sp اگر فرآیند تولید وصله فایل‌های باینری اصلاح‌شده را شناسایی کند، آن‌ها به طور خودکار به \fBdebian/source/include\-binaries\fR اضافه می‌شوند تا در tarball دبیان قرار گیرند (دقیقاً همان کاری که \&\fBdpkg\-source \-\-include\-binaries \-\-build\fR انجام می‌دهد). .PP \&\fBگزینه‌های ساخت\fR .IP \fB\-\-allow\-version\-of\-quilt\-db=\fR\fIversion\fR 4 .IX Item "--allow-version-of-quilt-db=version" به \fBdpkg\-source\fR اجازه می‌دهد در صورتی که نسخه متادیتای \fBquilt\fR نسخه مشخص‌شده باشد، بسته منبع را بسازد حتی اگر \fBdpkg\-source\fR از آن مطلع نباشد (از نسخه 1.15.5.4 dpkg). در عمل این گزینه بیان می‌کند که نسخه داده‌شده از متادیتای \&\fBquilt\fR با نسخه 2 که \fBdpkg\-source\fR در حال حاضر پشتیبانی می‌کند سازگار است. نسخه متادیتای \fBquilt\fR در \&\fB.pc/.version\fR ذخیره شده است. .IP \fB\-\-include\-removal\fR 4 .IX Item "--include-removal" فایل‌های حذف‌شده را نادیده نمی‌گیرد و آن‌ها را در وصله به طور خودکار تولیدشده می‌گنجاند. .IP \fB\-\-include\-timestamp\fR 4 .IX Item "--include-timestamp" مهر زمانی را در وصله به طور خودکار تولیدشده می‌گنجاند. .IP \fB\-\-include\-binaries\fR 4 .IX Item "--include-binaries" افزودن تمام فایل‌های باینری تغییریافته به tarball دبیان. همچنین آن‌ها را به \&\fBdebian/source/include\-binaries\fR اضافه می‌کند: آن‌ها در ساخت‌های بعدی به طور پیش‌فرض اضافه خواهند شد و بنابراین دیگر نیازی به این گزینه نخواهد بود. .IP \fB\-\-no\-preparation\fR 4 .IX Item "--no-preparation" تلاشی برای آماده‌سازی درخت ساخت با اعمال وصله‌هایی که ظاهراً اعمال نشده‌اند نمی‌کند (از نسخه 1.14.18 dpkg). .IP \fB\-\-single\-debian\-patch\fR 4 .IX Item "--single-debian-patch" استفاده از \fBdebian/patches/debian\-changes\fR به جای \&\fBdebian/patches/debian\-changes\-\fR\fIversion\fR برای نام وصله خودکار تولیدشده در طول ساخت (از نسخه 1.15.5.4 dpkg). این گزینه به ویژه زمانی مفید است که بسته در یک VCS نگهداری می‌شود و مجموعه‌وصله را نمی‌توان به طور مطمئن تولید کرد. در عوض، diff فعلی با بالادست باید در یک وصله واحد ذخیره شود. این گزینه در \fBdebian/source/local\-options\fR قرار می‌گیرد و همراه با یک فایل \&\fBdebian/source/local\-patch\-header\fR خواهد بود که توضیح می‌دهد چگونه تغییرات دبیان به بهترین شکل بررسی شوند، برای نمونه در سامانه VCS مورد استفاده. .IP \fB\-\-create\-empty\-orig\fR 4 .IX Item "--create-empty-orig" در صورتی که tarball اصلی وجود نداشته باشد و tarballهای اصلی تکمیلی وجود داشته باشند، آن را به طور خودکار خالی می‌سازد (از نسخه 1.15.6 dpkg). این گزینه زمانی کاربرد دارد که بسته منبع صرفاً بسته‌ای از چندین نرم‌افزار بالادستی است و هیچ نرم‌افزار \(lqاصلی\(rq وجود ندارد. .IP "\fB\-\-no\-unapply\-patches, \-\-unapply\-patches\fR" 4 .IX Item "--no-unapply-patches, --unapply-patches" به طور پیش‌فرض، \fBdpkg\-source\fR در صورتی که وصله‌ها را در طول \fB\-\-before\-build\fR اعمال کرده باشد، در قلاب \fB\-\-after\-build\fR به طور خودکار وصله‌ها را لغو اعمال (unapply) می‌کند (\fB\-\-unapply\-patches\fR از نسخه 1.15.8 dpkg، و \&\fB\-\-no\-unapply\-patches\fR از نسخه 1.16.5 dpkg). این گزینه‌ها به شما امکان می‌دهند فرآیند لغو اعمال وصله‌ها را به اجبار غیرفعال یا فعال کنید. این گزینه‌ها فقط در \fBdebian/source/local\-options\fR مجاز هستند تا تمام بسته‌های منبع تولیدشده به طور پیش‌فرض رفتار یکسانی داشته باشند. .IP \fB\-\-abort\-on\-upstream\-changes\fR 4 .IX Item "--abort-on-upstream-changes" اگر یک وصله خودکار ایجاد شده باشد، فرآیند ناموفق می‌شود (از نسخه 1.15.8 dpkg). این گزینه می‌تواند برای اطمینان از اینکه تمام تغییرات پیش از ساخت بسته منبع به درستی در وصله‌های مجزای \&\fBquilt\fR ثبت شده‌اند استفاده شود. این گزینه در \fBdebian/source/options\fR مجاز نیست اما می‌تواند در \&\fBdebian/source/local\-options\fR استفاده شود. .IP \fB\-\-auto\-commit\fR 4 .IX Item "--auto-commit" اگر یک وصله خودکار تولید شده باشد فرآیند ناموفق نمی‌شود، بلکه بلافاصله در series مربوط به \fBquilt\fR ثبت می‌گردد. .PP \&\fBگزینه‌های استخراج\fR .IP \fB\-\-skip\-debianization\fR 4 .IX Item "--skip-debianization" از استخراج tarball دبیان بر روی منابع بالادستی صرف‌نظر می‌کند (از نسخه 1.15.1 dpkg). .IP \fB\-\-skip\-patches\fR 4 .IX Item "--skip-patches" در پایان استخراج، وصله‌ها را اعمال نمی‌کند (از نسخه 1.14.18 dpkg). .SS "قالب: 3.0 (سفارشی) (Format: 3.0 (custom))" .IX Subsection "Format: 3.0 (custom)" پشتیبانی‌شده از نسخه 1.14.17 dpkg. این قالب خاص است. این یک قالب واقعی بسته منبع را نشان نمی‌دهد، بلکه می‌تواند برای ایجاد بسته‌های منبع با فایل‌های دلخواه استفاده شود. .PP \&\fBگزینه‌های ساخت\fR .PP تمام آرگومان‌های غیرگزینه‌ای به عنوان فایل‌هایی برای ادغام در بسته منبع تولیدشده در نظر گرفته می‌شوند. آن‌ها باید وجود داشته باشند و ترجیحاً در دایرکتوری جاری باشند. حداقل یک فایل باید داده شود. .IP \fB\-\-target\-format=\fR\fIvalue\fR 4 .IX Item "--target-format=value" \&\fBالزامی\fR. قالب واقعی بسته منبع تولیدشده را مشخص می‌کند. فایل .dsc تولیدشده حاوی این مقدار در فیلد \fBFormat\fR خود خواهد بود و نه \(lq3.0 (custom)\(rq. .SS "قالب: 3.0 (گیت) (Format: 3.0 (git))" .IX Subsection "Format: 3.0 (git)" پشتیبانی‌شده از نسخه 1.14.17 dpkg. این قالب آزمایشی است. .PP یک بسته منبع در این قالب شامل یک دسته (bundle) واحد از یک مخزن گیت \fB.git\fR برای نگهداری منبع یک بسته است. همچنین ممکن است یک فایل \fB.gitshallow\fR وجود داشته باشد که بازبینی‌ها را برای کلون کم‌عمق (shallow) گیت فهرست می‌کند. .PP \&\fBاستخراج\fR .PP بسته bundle به عنوان یک مخزن گیت در دایرکتوری مقصد کلون می‌شود. اگر یک فایل gitshallow وجود داشته باشد، به صورت \fI.git/shallow\fR در داخل مخزن گیت کلون‌شده نصب می‌شود. .PP توجه داشته باشید که به طور پیش‌فرض در مخزن جدید همان شاخه‌ای checkout می‌شود که در منبع اصلی checkout شده بود. (معمولاً \(lqmain\(rq، اما می‌تواند هر شاخه‌ای باشد.) هر شاخه دیگری تحت \fIremotes/origin/\fR در دسترس خواهد بود. .PP \&\fBساخت\fR .PP پیش از رفتن به مراحل بعدی، بررسی‌هایی انجام می‌شود تا اطمینان حاصل شود که هیچ تغییر کامیت‌نشده غیرنادیده‌گرفته‌شده‌ای وجود ندارد. .PP دستور \fBgit\-bundle\fR\|(1) برای تولید یک بسته bundle از مخزن گیت استفاده می‌شود. به طور پیش‌فرض، تمام شاخه‌ها و برچسب‌های موجود در مخزن در بسته گنجانده می‌شوند. .PP \&\fBگزینه‌های ساخت\fR .IP \fB\-\-git\-ref=\fR\fIref\fR 4 .IX Item "--git-ref=ref" امکان مشخص کردن یک ref گیت را برای گنجاندن در bundle گیت فراهم می‌کند. استفاده از این گزینه رفتار پیش‌فرض گنجاندن تمام شاخه‌ها و برچسب‌ها را غیرفعال می‌کند. می‌تواند چندین بار مشخص شود. مقدار \fIref\fR می‌تواند نام یک شاخه یا برچسب برای گنجاندن باشد. همچنین می‌تواند هر پارامتری باشد که به \fBgit\-rev\-list\fR\|(1) داده می‌شود. برای نمونه، جهت گنجاندن تنها شاخه اصلی، از \fB\-\-git\-ref=\fRmain استفاده کنید. برای گنجاندن تمام برچسب‌ها و شاخه‌ها، به جز شاخه خصوصی، از \&\fB\-\-git\-ref=\fR\-\-all \&\fB\-\-git\-ref=\fR^private استفاده کنید. .IP \fB\-\-git\-depth=\fR\fInumber\fR 4 .IX Item "--git-depth=number" یک کلون کم‌عمق با تاریخچه‌ای کوتاه‌شده به تعداد مشخص‌شده از بازبینی‌ها ایجاد می‌کند. .SS "قالب: 3.0 (bzr) (Format: 3.0 (bzr))" .IX Subsection "Format: 3.0 (bzr)" پشتیبانی‌شده از نسخه 1.14.17 dpkg. این قالب آزمایشی است. یک tarball واحد حاوی مخزن bzr تولید می‌کند. .PP \&\fBاستخراج\fR .PP فایل tarball باز می‌شود و سپس از bzr برای checkout شاخه جاری استفاده می‌شود. .PP \&\fBساخت\fR .PP پیش از رفتن به مراحل بعدی، بررسی‌هایی انجام می‌شود تا اطمینان حاصل شود که هیچ تغییر کامیت‌نشده غیرنادیده‌گرفته‌شده‌ای وجود ندارد. .PP سپس بخش مربوط به VCS از دایرکتوری منبع در یک دایرکتوری موقت کپی می‌شود. پیش از بسته‌بندی این دایرکتوری موقت در یک tarball، پاک‌سازی‌های مختلفی برای صرفه‌جویی در فضا انجام می‌شود. .SH "عیب‌یابی (DIAGNOSTICS)" .IX Header "DIAGNOSTICS" .SS "عدم تعیین قالب منبع در debian/source/format" .IX Subsection "no source format specified in debian/source/format" فایل \fBdebian/source/format\fR همیشه باید وجود داشته باشد و قالب منبع مورد نظر را مشخص کند. برای سازگاری با نسخه‌های گذشته، در صورتی که فایل وجود نداشته باشد، قالب \(lq1.0\(rq فرض می‌شود، اما نباید به این موضوع اتکا کنید: در آینده \fBdpkg\-source\fR طوری اصلاح خواهد شد که در صورت عدم وجود این فایل با خطا متوقف شود. .PP دلیل این امر آن است که قالب \(lq1.0\(rq دیگر قالب توصیه‌شده نیست، شما معمولاً باید یکی از قالب‌های جدیدتر (\(lq3.0 (quilt)\(rq یا \(lq3.0 (native)\(rq) را انتخاب کنید اما \fBdpkg\-source\fR این کار را به طور خودکار برای شما انجام نخواهد داد. اگر می‌خواهید همچنان از قالب قدیمی استفاده کنید، باید صریحاً آن را مشخص کرده و عبارت \(lq1.0\(rq را در \fBdebian/source/format\fR قرار دهید. .SS "وصله (diff) فایل‌های بالادستی زیر را تغییر می‌دهد" .IX Subsection "the diff modifies the following upstream files" هنگام استفاده از قالب منبع \(lq1.0\(rq، معمولاً تغییر مستقیم فایل‌های بالادستی ایده بدی است زیرا تغییرات در فایل .diff.gz پنهان و عمدتاً نامستند باقی می‌مانند. در عوض باید تغییرات خود را به عنوان وصله در دایرکتوری debian ذخیره کرده و در زمان ساخت آن‌ها را اعمال کنید. برای پرهیز از این پیچیدگی می‌توانید از قالب \(lq3.0 (quilt)\(rq نیز استفاده کنید که این قابلیت را به صورت بومی ارائه می‌دهد. .SS "نمی‌توان تغییر اعمال‌شده در \fIfile\fP را بازنمایی کرد" .IX Subsection "cannot represent change to file" تغییرات در منابع بالادستی معمولاً در فایل‌های وصله ذخیره می‌شوند، اما تمام تغییرات را نمی‌توان با وصله‌ها نشان داد: آن‌ها فقط می‌توانند محتوای فایل‌های متنی ساده را تغییر دهند. اگر بخواهید فایلی را با نوع دیگری جایگزین کنید (برای نمونه جایگزینی یک فایل معمولی با یک پیوند نمادین یا یک دایرکتوری)، این پیام خطا را دریافت خواهید کرد. .SS "فایل خالی جدیداً ایجاد‌شده \fIfile\fP در diff بازنمایی نخواهد شد" .IX Subsection "newly created empty file file will not be represented in diff" فایل‌های خالی را نمی‌توان با فایل‌های وصله ایجاد کرد. بنابراین این تغییر در بسته منبع ثبت نمی‌شود و به شما در این مورد هشدار داده می‌شود. .SS "حالت اجرایی \fIperms\fP فایل \fIfile\fP در diff بازنمایی نخواهد شد" .IX Subsection "executable mode perms of file will not be represented in diff" فایل‌های وصله مجوزهای فایل‌ها را ثبت نمی‌کنند و بنابراین مجوزهای اجرایی در بسته منبع ذخیره نمی‌شوند. این هشدار این واقعیت را به شما یادآوری می‌کند. .SS "حالت ویژه \fIperms\fP فایل \fIfile\fP در diff بازنمایی نخواهد شد" .IX Subsection "special mode perms of file will not be represented in diff" فایل‌های وصله مجوزهای فایل‌ها را ثبت نمی‌کنند و بنابراین مجوزهای اصلاح‌شده در بسته منبع ذخیره نمی‌شوند. این هشدار این واقعیت را به شما یادآوری می‌کند. .SH "محیط (ENVIRONMENT)" .IX Header "ENVIRONMENT" .IP \fBDPKG_COLORS\fR 4 .IX Item "DPKG_COLORS" حالت رنگ را تنظیم می‌کند (از نسخه 1.18.5 dpkg). مقادیر پذیرفته‌شده در حال حاضر عبارتند از: \fBauto\fR (پیش‌فرض)، \fBalways\fR و \fBnever\fR. .IP \fBDPKG_NLS\fR 4 .IX Item "DPKG_NLS" در صورت تنظیم، برای تصمیم‌گیری در مورد فعال‌سازی پشتیبانی از زبان بومی (Native Language Support)، که به عنوان پشتیبانی بین‌المللی‌سازی (یا i18n) نیز شناخته می‌شود، استفاده خواهد شد (از نسخه 1.19.0 dpkg). مقادیر پذیرفته‌شده عبارتند از: \fB0\fR و \fB1\fR (پیش‌فرض). .IP \fBSOURCE_DATE_EPOCH\fR 4 .IX Item "SOURCE_DATE_EPOCH" در صورت تنظیم، به عنوان مهر زمانی (به ثانیه از مبدا زمان/epoch) برای تثبیت mtime در ورودی‌های فایل \fBtar\fR\|(5) استفاده می‌شود. .Sp از نسخه 1.18.11 dpkg. .IP \fBVISUAL\fR 4 .IX Item "VISUAL" .PD 0 .IP \fBEDITOR\fR 4 .IX Item "EDITOR" .PD توسط ماژول‌های قالب منبع \(lq2.0\(rq و \(lq3.0 (quilt)\(rq استفاده می‌شود. .IP \fBGIT_DIR\fR 4 .IX Item "GIT_DIR" .PD 0 .IP \fBGIT_INDEX_FILE\fR 4 .IX Item "GIT_INDEX_FILE" .IP \fBGIT_OBJECT_DIRECTORY\fR 4 .IX Item "GIT_OBJECT_DIRECTORY" .IP \fBGIT_ALTERNATE_OBJECT_DIRECTORIES\fR 4 .IX Item "GIT_ALTERNATE_OBJECT_DIRECTORIES" .IP \fBGIT_WORK_TREE\fR 4 .IX Item "GIT_WORK_TREE" .PD توسط ماژول‌های قالب منبع \(lq3.0 (git)\(rq استفاده می‌شود. .SH "فایل‌ها (FILES)" .IX Header "FILES" .SS debian/source/format .IX Subsection "debian/source/format" این فایل در یک خط واحد حاوی قالبی است که باید برای ساخت بسته منبع استفاده شود (قالب‌های ممکن در بالا توضیح داده شده‌اند). هیچ فاصله ابتدایی یا انتهایی مجاز نیست. .SS debian/source/include\-binaries .IX Subsection "debian/source/include-binaries" این فایل شامل فهرستی از مسیرهای فایل‌های باینری (یک مورد در هر خط) نسبت به دایرکتوری ریشه منبع است که باید در tarball دبیان گنجانده شوند. فاصله‌های ابتدایی و انتهایی حذف می‌شوند. خطوطی که با \(oq\fB#\fR\(cq آغاز می‌شوند کامنت بوده و نادیده گرفته می‌شوند. خطوط خالی نادیده گرفته می‌شوند. .SS debian/source/options .IX Subsection "debian/source/options" این فایل شامل فهرستی از گزینه‌های طولانی است که باید به طور خودکار به ابتدای مجموعه گزینه‌های خط فرمان در فراخوانی \fBdpkg\-source \-\-build\fR یا \fBdpkg\-source \-\-print\-format\fR اضافه شوند. گزینه‌هایی مانند \&\fB\-\-compression\fR و \fB\-\-compression\-level\fR برای این فایل بسیار مناسب هستند. .PP هر گزینه باید در یک خط جداگانه قرار گیرد. خطوط خالی و خطوطی که با \(oq\fB#\fR\(cq شروع می‌شوند نادیده گرفته می‌شوند. پیشوند \(oq\fB\-\-\fR\(cq باید حذف شود و گزینه‌های کوتاه مجاز نیستند. فاصله‌های اختیاری در اطراف نماد \(oq\fB=\fR\(cq و نقل‌قول‌های اختیاری در اطراف مقدار مجاز هستند. در اینجا نمونه‌ای از چنین فایلی آورده شده است: .PP .Vb 7 \& # let dpkg\-source create a debian.tar.bz2 with maximal compression \& compression = "bzip2" \& compression\-level = 9 \& # use debian/patches/debian\-changes as automatic patch \& single\-debian\-patch \& # ignore changes on config.{sub,guess} \& extend\-diff\-ignore = "(^|/)(config.sub|config.guess)$" .Ve .PP \&\fBتوجه\fR: گزینه‌های \fBformat\fR در این فایل پذیرفته نمی‌شوند؛ باید به جای آن از \fBdebian/source/format\fR استفاده کنید. .SS debian/source/local\-options .IX Subsection "debian/source/local-options" دقیقاً مانند \fBdebian/source/options\fR است با این تفاوت که این فایل در بسته منبع تولیدشده گنجانده نمی‌شود. می‌تواند برای ذخیره تنظیمات شخصی متصل به نگه‌دارنده یا به مخزن VCS که بسته منبع در آن نگهداری می‌شود مفید باشد. .SS debian/source/local\-patch\-header .IX Subsection "debian/source/local-patch-header" .SS debian/source/patch\-header .IX Subsection "debian/source/patch-header" متن آزاد که در بالای وصله خودکار تولیدشده در قالب‌های \(lq2.0\(rq یا \(lq3.0 (quilt)\(rq قرار می‌گیرد. فایل \&\fBlocal\-patch\-header\fR در بسته منبع تولیدشده گنجانده نمی‌شود در حالی که \fBpatch\-header\fR گنجانده می‌شود. .SS debian/patches/\fIvendor\fP.series .IX Subsection "debian/patches/vendor.series" .SS debian/patches/series .IX Subsection "debian/patches/series" این فایل تمام وصله‌هایی را که باید (به ترتیب مشخص‌شده) بر روی بسته منبع بالادستی اعمال شوند فهرست می‌کند. فاصله‌های ابتدا و انتها حذف می‌شوند. مقدار \fIvendor\fR نام با حروف کوچک توزیع‌کننده فعلی خواهد بود، یا در صورتی که هیچ توزیع‌کننده‌ای تعریف نشده باشد برابر با \fBdebian\fR است. اگر فایل series مختص توزیع‌کننده وجود نداشته باشد، از فایل series بدون توزیع‌کننده استفاده خواهد شد. خطوطی که با \(oq\fB#\fR\(cq شروع می‌شوند کامنت بوده و نادیده گرفته می‌شوند. خطوط خالی نادیده گرفته می‌شوند. خطوط باقی‌مانده با یک نام فایل وصله (نسبت به دایرکتوری \fBdebian/patches/\fR) تا اولین نویسه فاصله یا انتهای خط آغاز می‌شوند. گزینه‌های اختیاری \fBquilt\fR می‌توانند تا انتهای خط یا تا اولین \(oq\fB#\fR\(cq که پیش از آن یک یا چند فاصله باشد (که شروع یک کامنت تا پایان خط را نشان می‌دهد) قرار گیرند. .SH "امنیت (SECURITY)" .IX Header "SECURITY" بررسی بسته‌های منبع غیرقابل اعتماد یا استخراج آن‌ها در دایرکتوری‌های مرحله‌بندی (staging) باید به عنوان یک مرز امنیتی در نظر گرفته شود، و هرگونه شکست در آن مرز ناشی از این عملیات باید به عنوان یک آسیب‌پذیری امنیتی تلقی گردد. اما کار با بسته‌های منبع غیرقابل اعتماد نباید ساده انگاشته شود، زیرا سطح حمله شامل هرگونه دستور فشرده‌سازی پشتیبانی‌شده، دستورات برای مدیریت قالب‌های داده خاص (مانند \fBtar\fR\|(1) یا \fBpatch\fR\|(1)) علاوه بر خود قالب‌های بسته منبع و فایل‌های کنترل است. انجام این عملیات بر روی داده‌های غیرقابل اعتماد به عنوان کاربر ریشه (root) اکیداً منع می‌شود. .PP ساخت بسته‌های منبع تنها باید بر روی داده‌های قابل اعتماد انجام شود. .SH "اشکالات (BUGS)" .IX Header "BUGS" نقطه‌ای که در آن بازنویسی فیلد در مقایسه با برخی تنظیمات فیلد خروجی استاندارد رخ می‌دهد تا حدی نامفهوم و گیج‌کننده است. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBdeb\-src\-control\fR\|(5), \&\fBdeb\-changelog\fR\|(5), \&\fBdeb\-substvars\fR\|(5), \&\fBdsc\fR\|(5).