| guestfs-release-notes-1.22(1) | Virtualization Support | guestfs-release-notes-1.22(1) |
نام (NAME)
guestfs-release-notes - یادداشتهای انتشار libguestfs
یادداشتهای انتشار LIBGUESTFS 1.22 (RELEASE NOTES FOR LIBGUESTFS 1.22)
این یادداشتهای انتشار تنها تفاوتها را نسبت به تفکیک شاخه پایدار/توسعه پیشین (1.20.0) پوشش میدهند. برای مشاهده گزارش تفصیلی تغییرات، لطفاً مخزن git یا فایل ChangeLog توزیعشده در tarball را بررسی کنید.
قابلیتهای جدید (New features)
رابط برنامهنویسی (API)
دسترسی از راه دور به دیسکها:
- دستگاه بلوکی شبکه Network Block Device (nbd)
- پوسته امن Secure Shell (ssh)
- HTTP و HTTPS
- FTP و FTPS
- iSCSI
- Gluster
- Ceph/rbd (Mike Kelly)
- Sheepdog
- TFTP
اکنون میتوان با استفاده از API، بوتلودرهای SYSLINUX و EXTLINUX را روی تصویرهای دیسک نصب کرد.
بخش بازرسی (Inspection) اکنون میتواند با فایلسیستمهایی مانند btrfs که زیرحجمهای (subvolumes) آنها بهطور جداگانه قابل سوار کردن هستند کار کند (Matthew Booth).
«روشهای اتصال» (Attach methods) اکنون با عنوان «backends» شناخته میشوند. سازگاری با کدهای موجود حفظ شده است.
نامهای فایل تا زمانی که نسخه جدیدتری از QEMU استفاده شود، میتوانند شامل ':' باشند.
ابزارها (Tools)
دستورهای virt-alignment-scan و virt-df چندین ماشین مهمان را بهطور موازی پویش میکنند.
دستور guestmount اکنون در تقریباً تمامی موارد errno را بهطور دقیق به فضای کاربری بازمیگرداند.
دستور guestfish و ابزارهای دیگر اکنون میتوانند از ساختاری شبیه به URI برای دسترسی به دیسکهای راه دور استفاده کنند، مانند:
guestfish -a ssh://example.com/path/to/disk.img
دستورهای guestfish و guestmount اکنون امکان مشخص کردن نوع فایلسیستم را هنگام سوار کردن (mount) فراهم میکنند که امنیت بیشتری دارد (Dave Vasilevsky).
دستور guestfish اکنون «پوسته فایلسیستم مهمان» (guest filesystem shell) است.
دستور guestfish برای مقادیر بولی فقط 1 "true" "t" "yes" "y" "on" 0 "false" "f" "no" "n" "off" را میپذیرد (بدون حساسیت به بزرگی و کوچکی حروف)، و برای تمامی رشتههای دیگر خطا میدهد.
ابزار جدید "guestunmount" برای پیاده کردن (unmount) ایمن فایلسیستمهای FUSE.
پرچم "guestmount --no-fork" مانع از دیمن شدن guestmount در پسزمینه میشود.
دستور virt-resize اکنون بهطور پیشفرض از رونوشتهای کمپشت (sparse copies) استفاده میکند که فضای قابل توجهی را برای ماشینهای مهمانی که بخش عمده آنها خالی است صرفهجویی میکند.
تکمیل با کلید Tab در Bash از نو بازنویسی شده است و اکنون از بیشتر ابزارها پشتیبانی میکند و گزینههای "--long" را بهدرستی با Tab کامل مینماید. علاوه بر این، اسکریپتهای تکمیل خودکار bash برحسب تقاضا بارگیری میشوند.
پیوندهای زبانی (Language bindings)
رابط Java API اکنون از رویدادها پشتیبانی میکند.
شیء Python اکنون از کلاس پایه "object" ارثبری میکند.
متدهای Python که پیش از این فهرستی از چندتاییها (tuples) را برمیگرداندند، اکنون میتوانند به گونهای تنظیم شوند که یک dict پایتون برگردانند. برای حفظ سازگاری عقروعلی، باید این قابلیت را با استفاده از گزینه سازنده "guestfs.GuestFS (python_return_dict=True)" فعال کنید.
پیوندهای PHP اکنون بهدرستی آزمایش شدهاند و اصلاحات متعددی دریافت کردهاند.
کتابخانه دیرزمانی منسوخشده Perl با نام "Sys::Guestfs::Lib" حذف شده است. https://www.redhat.com/archives/libguestfs/2013-April/msg00001.html
مثالها (Examples)
برنامه نمونه جدیدی که نحوه فعالسازی اشکالزدایی و دریافت پیامهای گزارش (log) را نشان میدهد.
سایر (Other)
توزیعکنندگان میتوانند با دستور زیر بستههای اضافی دلخواه را به appliance اضافه کنند:
./configure --with-extra-packages="list of package names"
توزیعکنندگان
میتوانند
استفاده
کنند از: ./configure
--with-supermin-extra-options="..."
برای افزودن گزینههای دلخواه اضافی به supermin.
امنیت (Security)
هیچ مشکل امنیتی در این نسخه یافت نشد.
APIهای جدید (New APIs)
cp-r extlinux feature-available get-program is-whole-device part-get-gpt-type part-set-gpt-type rename set-program syslinux
فقط در C:
guestfs_event_to_string
مسائل داخلی (Internals)
ابزار febootstrap اکنون به «supermin» تغییر نام داده است. Libguestfs میتواند از هر دو استفاده کند، اما اکنون «supermin» را ترجیح میدهد. http://people.redhat.com/~rjones/supermin
برای ساخت libguestfs به libxml2 نیاز است.
برنامه hivexregedit (از hivex) برای ساخت از طریق git مورد نیاز است.
توابع داخلی دیگر قابل استفاده نیستند مگر اینکه فراخواننده "-DGUESTFS_PRIVATE=1" را تعریف کند.
فعالسازی هشدارهای کامپایلر C در بایندینگهای Python و Ruby.
اگر libvirt از qemu/KVM پشتیبانی نکند (برای مثال اگر اتصال پیشفرض libvirt به Xen باشد)، اجرای برنامه فوراً و به روشنی با خطا متوقف میشود.
قاعده "make print-subdirs"، برای اجرای گزینشی آزمونها مفید است.
اصلاحات متعددی برای مجاز دانستن ساختهای تفکیکشده (sourcedir != builddir) اعمال شد.
اصلاحات متعددی در بایندینگهای Haskell.
اکنون APIهای "ln" و "ln-f" مقدار "errno" را به درستی ثبت میکنند.
آزمونهای بایندینگ زبانها (عمدتاً) از یک طرح شمارهگذاری استاندارد استفاده میکنند و هدف آنها آزمایش همان محدوده از قابلیتها در هر زبان است. همچنین تعداد دفعات راهاندازی مورد نیاز کاهش یافته است تا این آزمونها بسیار سریعتر اجرا شوند.
کد کتابخانه در ساختار داخلی از "__attribute__((cleanup))" در GCC (در صورت در دسترس بودن) برای سادهسازی تخصیص حافظه استفاده میکند.
فایلهای هدر داخلی بازسازماندهی شدهاند. توضیحات درون src/guestfs-internal*.h را ببینید.
کد داخلی به اشتراک گذاشتهشده بین کتابخانه و برخی ابزارها اکنون در یک کتابخانه ایستا به نام "libutils" قرار دارد.
تقریباً تمام زیرپوشهها اکنون میتوانند از ساخت موازی استفاده کنند، اگرچه توجه داشته باشید که دایرکتوریهای سطح بالا همچنان به صورت متوالی ساخته میشوند.
استفاده از "PATH_MAX" و "NAME_MAX" از کد حذف شده است.
اکنون API جاوا به JVM ≥ 1.6 نیاز دارد.
اجبار به استفاده از "serial-tests" با automake ≥ 1.12.
استفاده از سوکتها در لایه پروتکل کتابخانه انتزاعی شده است، که اجازه میدهد سایر لایههای غیر POSIX در آینده اضافه شوند (به src/conn-socket.c مراجعه کنید).
در صورت موجود بودن، از "qemu-img info --output json" برای تجزیه امنتر خروجی این دستور استفاده میشود.
توزیعها اکنون میتوانند از "make INSTALLDIRS=vendor install" برای قرار دادن بایندینگهای Ruby در vendordir استفاده کنند. این امر پچ غیربالادستی (non-upstream) مشترک بین Fedora و Debian را حذف میکند.
فایلهای لاگ Valgrind اکنون در tmp/valgrind-DATE-PID.log نوشته میشوند.
دستور "make clean" دایرکتوری محلی "tmp/" را پاک میکند.
آزمونهای C API با استفاده از یک زبان تولیدکننده انعطافپذیرتر بازنویسی شدهاند که امکان اجرای کد C دلخواه را در طول آزمونها فراهم میکند..SS "باگهای برطرفشده (Bugs fixed)"
- https://bugzilla.redhat.com/961812
- خطای Segfault در inspect-fs.c در کد mountable
- https://bugzilla.redhat.com/957772
- خطای نقلقول در tar-out و base64-out
- https://bugzilla.redhat.com/957380
- خطای libguestfs: error: btrfsvol:/dev/sda2/root: root device not found: only call this function with a root device previously returned by guestfs_inspect_os
- https://bugzilla.redhat.com/948324
- شکست فرایند بازرسی (inspection) در صورت نصب نبودن libosinfo
- https://bugzilla.redhat.com/928995
- اجرای دستور file روی فایل با اندازه صفر اکنون به جای "empty" رشته "empty " را تولید میکند
- https://bugzilla.redhat.com/921292
- خطای qemu: could not open disk image /tmp/.../snapshot1: Permission denied
- https://bugzilla.redhat.com/921040
- پیام "error: external command failed, see earlier error messages" باید تغییر کند
- https://bugzilla.redhat.com/920225
- ابزار libguestfs باید از --output json (در صورت پشتیبانی) برای تجزیه امن خروجی دستور qemu-img استفاده کند
- https://bugzilla.redhat.com/916780
- درخواست ویژگی: guestmount --with-cleanup-pipefd
- https://bugzilla.redhat.com/914934
- کشته شدن guestfsd توسط oom-killer هنگام tar-in حجم زیادی از دادهها
- https://bugzilla.redhat.com/914931
- دستورهای FileIn در صورتی که appliance در حین کپی فایل متوقف شود، باعث segfault میشوند
- https://bugzilla.redhat.com/913145
- نشتیهای حافظه متفرقه در virNetClientProgramCall در libvirt 1.0.2
- https://bugzilla.redhat.com/912499
- بافت امنیتی (security context) روی فایل تصویر بازنشانی میشود
- https://bugzilla.redhat.com/909836
- ابزار libguestfs-test-tool با گزینه --qemu دچار segfault میشود
- https://bugzilla.redhat.com/909624
- بازگشت غیردنبالهای غیرمنتظره در recv_from_daemon منجر به سرریز پشته (stack overflow) در فراخوانیهای بسیار طولانی API که پیامهای پیشرفت ارسال میکنند میشود
- https://bugzilla.redhat.com/908322
- شکست virt-tar روی نامهای دایرکتوری ناموجود: "error in chunked encoding at /home/rjones/d/libguestfs/tools/virt-tar line 272."
- https://bugzilla.redhat.com/908321
- شکست virt-cat روی نامهای دایرکتوری: "/dev/stdout: error in chunked encoding"
- https://bugzilla.redhat.com/907554
- استفاده از btrfs باعث از کار افتادن متعاقب سیستمفایل ntfs-3g میشود
- https://bugzilla.redhat.com/905341
- خطای "No such file or directory" هنگام اجرای "hivex-commit"
- https://bugzilla.redhat.com/903620
- از کار افتادن btrfs_subvolume_list به دلیل تغییر در خروجی فهرست زیرحجمها
- https://bugzilla.redhat.com/895910
- دستور guestmount: فراخوانی rename() به اشتباه پیوندهای نمادین را دنبال میکند
- https://bugzilla.redhat.com/895905
- دستور guestmount: فراخوانی link() به نادرستی ENOENT را بازمیگرداند در حالی که باید EXDEV باشد
- https://bugzilla.redhat.com/895904
- دستور checksums-out در محاسبه چکسامهای تمام فایلهای عادی موجود در دایرکتوری با شکست مواجه میشود
- https://bugzilla.redhat.com/894545
- شکست در ساخت از مبدأ (FTBFS) برای libguestfs روی Fedora 19 به دلیل نسخه جدید ruby
- https://bugzilla.redhat.com/890027
- دستور virt-sysprep: تنظیم صحیح hostname، domain name و pretty name روی Fedora 18
- https://bugzilla.redhat.com/887971
- شکست pvcreate در صورتی که پارتیشن حاوی امضای swap باشد
- https://bugzilla.redhat.com/887520
- خطای zero_free_space: open: /sysroot//ujqqq135.rd3: Cannot allocate memory
- https://bugzilla.redhat.com/886915
- ابزار libguestfs با attach-method مربوط به libvirt در صورت پیشفرض بودن هایپروایزر Xen با خطای غیرمعمولی مواجه میشود
- https://bugzilla.redhat.com/847549
- افزودن دیسک virtio-scsi با طول صفر باعث بروز این خطا میشود: qemu-kvm: hw/scsi-bus.c:1568: scsi_req_complete: Assertion `req->status == -1' failed.
- https://bugzilla.redhat.com/811649
- ناتوانی libguestfs در باز کردن تصاویر دیسکی که پیوند نمادین به فایلهای حاوی نویسه ':' (دونقطه) هستند
- https://bugzilla.redhat.com/664558
- درخواست بهبود (RFE): امکان تنظیم callback لاگ در بایندینگهای Ruby.SH "همچنین ببینید (SEE ALSO)" guestfs-examples(1), guestfs-faq(1), guestfs-performance(1), guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1), http://libguestfs.org
نویسندگان (AUTHORS)
Richard W.M. Jones
کپیرایت و تکثیر (COPYRIGHT)
Copyright (C) 2009-2025 Red Hat Inc.
مجوز (LICENSE)
این برنامه یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) همانطور که توسط بنیاد نرمافزارهای آزاد منتشر شده است، بازتوزیع کرده و/یا تغییر دهید؛ چه نسخهٔ ۲ مجوز و چه (به انتخاب خودتان) هر نسخهٔ بالاتری.
این برنامه به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.
شما باید به همراه این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر به بنیاد نرمافزارهای آزاد بنویسید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
گزارش باگها (BUGS)
برای دریافت فهرستی از باگهای libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
برای گزارش یک باگ جدید علیه libguestfs، از این پیوند استفاده کنید: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
هنگام گزارش باگ، لطفاً موارد زیر را ارائه دهید:
- نسخهٔ libguestfs.
- محلی که libguestfs را از آن تهیه کردهاید (برای مثال کدام توزیع لینوکس، کامپایلشده از سورس و غیره).
- شرح دقیق باگ و ارائهٔ روشی برای بازتولید آن.
- اجرای libguestfs-test-tool(1) و قرار دادن خروجی کامل و ویرایشنشده در گزارش باگ.
| 2026-07-14 | libguestfs-1.60.1 |