dpkg-parsechangelog(1) dpkg suite dpkg-parsechangelog(1)

dpkg-parsechangelog - تجزیه و نمایش فایل‌های تغییرات دبیان (changelog)

dpkg-parsechangelog [گزینه...]

دستور dpkg-parsechangelog فایل تغییرات (changelog) یک درخت سورس استخراج‌شدهٔ دبیان را خوانده و تجزیه می‌کند و اطلاعات درون آن را در یک قالب ماشین‌خوان به خروجی استاندارد می‌فرستد.

فایل تغییراتی را که اطلاعات باید از آن خوانده شود مشخص می‌کند. می‌توان از ‘-’ برای مشخص کردن خواندن از ورودی استاندارد استفاده کرد. مقدار پیش‌فرض debian/changelog است.
قالب فایل تغییرات را مشخص می‌کند. به‌طور پیش‌فرض، قالب از یک خط ویژه در نزدیکی انتهای فایل تغییرات خوانده می‌شود، یا در صورت نبود آن، به قالب استاندارد debian تنظیم می‌شود. همچنین بخش «قالب‌های فایل تغییرات (CHANGELOG FORMATS)» را ببینید.
گزینهٔ منسوخ‌شده و بدون اثر (از نسخه 1.18.8 بسته dpkg به بعد). تنظیم متغیرهای محیطی پرل PERL5LIB یا PERLLIB هنگام جستجو برای ماژول‌های پرلِ تجزیه‌کننده اثر مشابهی دارد.
نام فیلدی که باید نمایش داده شود را مشخص می‌کند (از نسخه 1.17.0 بسته dpkg به بعد). نام فیلد چاپ نمی‌شود، بلکه فقط مقدار آن نمایش می‌یابد.
-?, --help
نمایش پیام راهنما و خروج.
نمایش نسخه و خروج.

از گزینه‌های زیر می‌توان برای اثرگذاری بر خروجی تجزیه‌کنندهٔ فایل تغییرات استفاده کرد؛ برای نمونه محدودهٔ مدخل‌ها یا قالب خروجی.

قالب خروجی را تعیین می‌کند. مقادیر پشتیبانی‌شده در حال حاضر dpkg و rfc822 هستند. dpkg قالب خروجی کلاسیک (پیش از ارائهٔ این گزینه) و مقدار پیش‌فرض است. این قالب شامل یک بند در قالب کنترل دبیان است (ببینید deb-control(5)). اگر بیش از یک مدخل درخواست شود، بیشتر فیلدها از نخستین مدخل (معمولاً جدیدترین مدخل) گرفته می‌شوند، مگر آن‌که خلاف آن بیان شده باشد:
نام بستهٔ سورس.
شماره نسخهٔ سورس. توجه: برای انتشار‌های فقط باینری ممکن است انتشار سورس متناظری وجود نداشته باشد.
فهرستی جداشده با فاصله از یک یا چند نام توزیع که این نسخه هنگام بارگذاری باید در آن‌ها نصب شود.
بالاترین فوریت در میان تمام مدخل‌های گنجانده‌شده استفاده می‌شود، که در ادامهٔ آن توضیحات تمام نسخه‌های درخواستی (جداشده با فاصله) قرار می‌گیرد.
نام و نشانی ایمیل فردی که این تغییرات را آماده کرده است؛ این اطلاعات لزوماً متعلق به بارگذار (uploader) یا نگه‌دارندهٔ معمول بسته نیست.
تاریخ مدخل به صورت یک رشته، همان‌گونه که در فایل تغییرات درج شده است. با قالب strptime(3) به صورت "%a, %d %b %Y %T %z"، با این حال ممکن است روز هفته با روز واقعی به‌دست‌آمده از ادامهٔ رشتهٔ تاریخ تطابق نداشته باشد. اگر به نمایش دقیق‌تری از تاریخ نیاز دارید، از فیلد Timestamp استفاده کنید، اما در نظر داشته باشید که ممکن است نتوان آن را مجدداً به مقدار دقیق موجود در این فیلد نگاشت کرد.
تاریخ مدخل به صورت یک برچسب زمانی بر حسب ثانیه از مبدأ یونیکس (epoch) (از نسخه 1.18.8 بسته dpkg به بعد).
فیلدهای Closes تمام مدخل‌های گنجانده‌شده با یکدیگر ادغام می‌شوند.
متن تمام مدخل‌های تغییرات به یکدیگر پیوند داده می‌شوند. برای اینکه این فیلد به یک فیلد چندخطی معتبر در قالب کنترل دبیان تبدیل شود، خطوط خالی با یک نقطهٔ تنها جایگزین شده و در ابتدای تمام خطوط یک نویسهٔ فاصله قرار می‌گیرد. محتوای دقیق به قالب changelog بستگی دارد.

فیلدهای Version، Distribution، Urgency، Maintainer و Changes اجباری هستند.

ممکن است فیلدهای اضافیِ تعریف‌شده توسط کاربر نیز وجود داشته باشند.

قالب rfc822 از فیلدهای مشابهی استفاده می‌کند اما برای هر مدخل تغییرات یک بند جداگانه نمایش می‌دهد تا تمامی متاداده‌های هر مدخل حفظ شوند.

گنجاندن تمام تغییرات با ترتیب معکوس (از نسخه 1.19.1 بسته dpkg به بعد).

توجه: برای قالب dpkg نخستین مدخل، قدیمی‌ترین مدخل خواهد بود.

گنجاندن تمام تغییرات. توجه: هنگام استفاده از این گزینه، سایر گزینه‌ها هیچ اثری نخواهند داشت.
گنجاندن تمام تغییرات جدیدتر از version.
گنجاندن تمام تغییرات قدیمی‌تر از version.
گنجاندن تمام تغییرات مساوی یا جدیدتر از version.
گنجاندن تمام تغییرات تا یا مساوی version.
گنجاندن number مدخل از بالا (یا از انتها در صورتی که number کمتر از 0 باشد).
تغییر نقطهٔ شروع برای گزینهٔ --count، شمارش‌شده از بالا (یا از انتها در صورتی که number کمتر از 0 باشد).

استفاده از قالبی متفاوت با قالب استاندارد امکان‌پذیر است، به شرط آن‌که یک تجزیه‌کننده برای آن قالب جایگزین ارائه شود.

برای اینکه dpkg-parsechangelog تجزیه‌کنندهٔ جدید را اجرا کند، باید خطی در میان ۴۰ خط پایانی فایل تغییرات گنجانده شود که با عبارت منظم پرل زیر مطابقت داشته باشد: “\schangelog-format:\s+([0-9a-z]+)\W”. بخش درون پرانتز باید نام قالب باشد. برای نمونه:

@@@ changelog-format: otherformat @@@

نام‌های قالب فایل تغییرات رشته‌هایی غیرخالی متشکل از نویسه‌های الفبارقمی کوچک (“a-z0-9”) هستند.

اگر چنین خطی وجود داشته باشد، آنگاه dpkg-parsechangelog به دنبال تجزیه‌کننده در قالب ماژول پرل Dpkg::Changelog::Otherformat خواهد گشت؛ و در صورت عدم وجود آن، با خطا متوقف خواهد شد. نام تجزیه‌کننده در ماژول پرل به طور خودکار با حرف اول بزرگ نوشته می‌شود. قالب پیش‌فرض فایل تغییرات debian است و یک تجزیه‌کننده برای آن به طور پیش‌فرض ارائه شده است.

تجزیه‌کننده باید از کلاس Dpkg::Changelog مشتق شده باشد و رابط کاربری مستندسازی‌شده و مورد نیاز را پیاده‌سازی کند.

اگر قالب فایل تغییراتی که تجزیه می‌شود همیشه یا تقریباً همیشه یک خط خالی بین یادداشت‌های تغییرات جداگانه باقی می‌گذارد، این خطوط خالی باید حذف شوند تا خروجی نهایی فشرده باشد.

اگر قالب فایل تغییرات فاقد اطلاعات تاریخ یا نام بسته باشد، این اطلاعات باید از خروجی حذف شوند. تجزیه‌کننده نباید تلاش کند آن‌ها را تولید کرده یا از منابع دیگر بیابد.

اگر فایل تغییرات قالب مورد انتظار را نداشته باشد، تجزیه‌کننده باید با خطا خارج شود، به جای اینکه سعی کند به کار ادامه دهد و احتمالاً خروجی نادرست تولید نماید.

یک تجزیه‌کنندهٔ فایل تغییرات به هیچ وجه نباید با کاربر تعامل داشته باشد.

تمام گزینه‌های تجزیه‌کننده به جز -v تنها از نسخه 1.14.16 بسته dpkg به بعد پشتیبانی می‌شوند.

تجزیه گزینه‌های کوتاه با مقادیر تفکیک‌نشده تنها از نسخه 1.18.0 بسته dpkg به بعد در دسترس است.

حالت رنگ را تنظیم می‌کند (از نسخه 1.18.5 بسته dpkg به بعد). مقادیر پذیرفته‌شدهٔ کنونی عبارتند از: auto (پیش‌فرض)، always و never.
در صورت تنظیم، برای تصمیم‌گیری در خصوص فعال‌سازی پشتیبانی از زبان مادری (Native Language Support)، که به عنوان پشتیبانی از بومی‌سازی یا بین‌المللی‌سازی (i18n) نیز شناخته می‌شود، به کار می‌رود (از نسخه 1.19.0 بسته dpkg به بعد). مقادیر پذیرفته‌شده عبارتند از: 0 و 1 (پیش‌فرض).

فایل تغییرات، که برای دریافت اطلاعات وابسته به نسخه دربارهٔ بستهٔ سورس به کار می‌رود؛ از جمله فوریت و توزیع یک بارگذاری، تغییرات انجام‌شده پس از یک انتشار خاص، و خود شماره نسخهٔ سورس.

فیلد Maintainer نام گیج‌کننده‌ای دارد که با فیلد موجود در فایل debian/control هم‌نام است اما با معنای دقیق آن یکسان نیست؛ در حالی که مفهوم آن با نام فیلد Changed-By که در فایل .changes استفاده می‌شود، بهتر بیان می‌شد.

deb-changelog(5).

2026-03-06 1.23.7-dirty