libnbd-release-notes-1.20(1) LIBNBD libnbd-release-notes-1.20(1)

libnbd-release-notes-1.20 - یادداشت‌های انتشار نسخه ۱.۲۰ کتابخانه Network Block Device (libnbd)

این‌ها یادداشت‌های انتشار برای نسخه پایدار ۱.۲۰ از libnbd هستند. این سند تغییرات عمده نسبت به نسخه ۱.۱۸ را شرح می‌دهد.

نسخه libnbd 1.20.0 در ۵ آوریل ۲۰۲۴ منتشر شد.

طی آزمون فازینگ (Fuzzing)، یک ارزیابی منطقی (assertion) یافت شد و توسط Eric Blake برطرف گردید که ممکن بود با اتصال به یک سرور مخرب ایجاد شود. این مورد با شناسه CVE-2023-5871 (شدت کم) ثبت شد. اعلان مربوطه را اینجا ببینید: https://lists.libguestfs.org/archives/list/guestfs@lists.libguestfs.org/thread/5CRC7LRTN35WPZZ4BT6NAMH4JGMF47IK

اگر با یک مشکل امنیتی مواجه شدید، لطفاً بخش SECURITY را در کدهای منبع مطالعه کنید (به‌صورت برخط در اینجا: https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY). برای اطلاع از مشکلات امنیتی پیشین در libnbd، libnbd-security(3) را ببینید.

تابع nbd_connect_uri(3) اکنون به‌درستی از URIهای غیرحساس به حروف بزرگ و کوچک پشتیبانی می‌کند.

بهبود تعامل‌پذیری با nbd-server(1) که از پاسخ‌های ساختاریافته پشتیبانی می‌کند اما از بافتار متادیتا (meta context) پشتیبانی نمی‌کند (Eric Blake).

ابزار nbdinfo(1) پشتیبانی از گزینه‌های --isnt، --cannot و --hasnt را اضافه کرده است که به شما امکان می‌دهد بررسی کنید آیا قابلیت‌های یک سرور NBD پشتیبانی نمی‌شوند یا خیر.

ابزار nbdinfo(1) پشتیبانی از گزینه --uri را اضافه کرده است که فقط URI استاندارد (canonical) سرور را چاپ می‌کند.

ابزار nbdinfo(1) اکنون محدودیت‌های اندازه بلوک را در اندازه‌های خوانا برای انسان نمایش می‌دهد (Eric Blake).

صفحه راهنمای جدید libnbd-rust(3) اضافه شد که یک نمای کلی برای نوشتن برنامه‌های Rust با استفاده از libnbd ارائه می‌دهد.

مستندات Rust با استفاده از یک مبدل سفارشی از فرمت مستندات خودمان (Perl POD) به rustdoc بهبود یافته است.

برخی از هشدارهای کامپایلر Rust برطرف شدند (Eric Blake).

نگاشت‌های OCaml اکنون از صفر-کپی (zero-copy) در توابع AIO pread و pwrite پشتیبانی می‌کنند. این تغییر با کدهای موجود سازگار با گذشته (backwards compatible) است. (با تشکر از Nicolas Ojeda Bar، Anil Madhavapeddy و Simon Cruanes).

نگاشت‌های OCaml اکنون از "Gc.finalize" (نهایی‌سازها در سطح OCaml به‌جای سطح C) استفاده می‌کنند که سازگاری را در OCaml 5.1.1 و بالاتر بهبود می‌بخشد (Guillaume Munch-Maccagnoni).

نسخه OCaml ≥ 4.05 به‌طور رسمی الزامی است و در ./configure بررسی می‌شود. پیش از این حداقل نسخه‌ای برای OCaml مشخص نکرده بودیم، اما در عمل نسخه‌های قدیمی‌تر از 4.05 احتمالاً کار نمی‌کردند.

رویکرد فازینگ برای استفاده از دستورات ناهمگام تغییر یافت. این کار سرعت فازینگ را به‌طور چشمگیری بهبود می‌بخشد و باید مشکلات بیشتری را بیابد.

اصلاحات متعدد در یکپارچه‌سازی مداوم (CI) (Eric Blake).

احترام به انتخاب کاربر برای باینری‌های qemu-nbd، nbdkit و باینری‌های دیگر از (برای مثال) "./configure NBDKIT=/some/nbdkit". پیش از این معمولاً در برابر باینری‌های موجود در مسیر (PATH) تست انجام می‌شد، حتی اگر کاربر باینری‌های دیگری را برای استفاده مشخص کرده بود.

ابزار nbdinfo(1) اکنون در موارد خطا به‌صورت تمیز اتصال را از سرور قطع می‌کند و خروجی را بهبود می‌بخشد (Eric Blake).

ساختار "struct nbd_handle" اکنون شامل یک مقدار جادویی (magic value) است که در هنگام ورود به libnbd بررسی می‌شود و باید خطاهایی را که در آن‌ها برنامه‌های فراخواننده libnbd یک اشاره‌گر نادرست ارسال می‌کنند، شناسایی کند.

یک مثال برای نحوه استفاده از userfaultfd جهت نگاشت حافظه (mmap) یک درایو مبتنی بر NBD اضافه شد. به examples/userfault-map.c در کدهای منبع libnbd مراجعه کنید.

مستندات حالت‌های قابل قبول handle در صفحات راهنما بهبود یافته است.

فایل contrib/libnbd.m4 یک تست configure ارائه‌شده برای libnbd است (Bruno Haible).

دستور "./configure --with-bash-completions" اکنون در صورتی که بسته مورد نیاز bash-completions نصب نشده باشد، با شکست مواجه می‌شود.

libnbd(3).

Copyright Red Hat

این کتابخانه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی جامع‌تر گنو» (GNU Lesser General Public License) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۲ مجوز و چه (به انتخاب خودتان) هر نسخه بالاتر دیگری، بازتوزیع کرده یا تغییر دهید.

این کتابخانه به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر «مجوز عمومی جامع‌تر گنو» را ببینید.

شما باید به همراه این کتابخانه یک نسخه از «مجوز عمومی جامع‌تر گنو» را دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر مکاتبه کنید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

2026-07-16 libnbd-1.24.3