
=head1 НАЗВА

guestfs-release-notes - нотатки щодо випусків libguestfs

=head1 НОТАТКИ ЩОДО ВИПУСКУ LIBGUESTFS 1.28

Ці нотатки щодо випуску стосуються лише відмінностей від попереднього стабільного випуску (1.26.0). Докладний журнал змін є частиною журналу змін сховища git. Його також наведено у файлі ChangeLog, який є частиною архіву tar із кодом бібліотеки.

=head2 Нові можливості

=head3 Інструменти

L<virt-v2v(1)> і L<virt-p2v(1)> є інструментами для перетворення даних сторонніх гіпервізорів (зокрема VMware або Xen) чи фізичних машин на дані KVM. Ці інструменти раніше були частиною окремого проєкту. Код обох цих інструментів інтегровано до ієрархії коду libguestfs. У межах перевпорядковування virt-p2v було переписано (з Ruby на C), а virt-v2v тепер використовує декілька сучасних можливостей qemu, що пришвидшують роботу програми у багато разів. L<virt-v2v(1)> може імпортувати дані з VMware vCenter, файлів VMware OVA, локальних файлів дисків, libvirt, RHEL 5 Xen. Дані може бути виведено у таких форматах: oVirt або Red Hat Enterprise Virtualization (RHEV-M), OpenStack Glance, libvirt, qemu, локальні файли дисків.

L<virt-log(1)> —новий засіб для показу файлів журналу з гостьових систем. Передбачено підтримку широкого спектру гостьових систем, зокрема традиційних систем Linux, систем Linux із журналом та журналу подій Windows.

У L<virt-builder(1)> передбачено новий параметр C<--machine-readable> для спрощення передавання даних virt-builder до інших програм.

Новий параметр I<--chmod> у програмах L<virt-builder(1)> і L<virt-customize(1)>.

L<virt-sysprep(1)> тепер вилучає такі дані: журнали systemd, журнали anaconda, журнали lightdm, файли debian-installer, журнали apt, журнали exim, журнали ConsoleKit, журнали firewalld, журнали grubby, журнали proftpd, журнали libvirt/libxml та деякі інші файли журналів. Команда virt-sysprep C<user-account> тепер здатна вилучати чи зберігати певні облікові записи користувачів. (Pino Toscano).

Новий параметр L<guestmount(1)> I<--fd>, за допомогою якого ви можете запускати guestmount «полоненим» у іншому процесі.

L<virt-sparsify(1)> має новий параметр I<--tmp>, який надає вам змогу точно контролювати, де зберігатимуться тимчасові файли.

L<virt-sparsify(1)> тепер може записувати на блоковий пристрій.

у L<virt-customize(1)> і L<virt-sysprep(1)> тепер передбачено підтримку додавання скриптів firstboot до гостьових систем Windows.

У L<virt-cat(1)>, L<virt-edit(1)>, L<virt-ls(1)> тепер передбачено підтримку параметра I<-m>, який надає вам змогу перевизначати автоматичне інспектування гостьових систем і, замість цього, вказувати, куди слід монтувати розділи (Pino Toscano).

Для засобів віртуалізації тепер передбачено розфарбовування виведених даних: зелений — усе гаразд, червоний — помилки, синій — попередження.

=head3 Прив’язки до мов програмування

Ви можете зібрати дистрибутив для Python за допомогою команди C<make -C python sdist>

Прив'язки до Ruby перемкнуто з C<Test::Unit> на C<MiniTest>.

Прив'язки до Java тепер сумісні із OpenJDK 8 (Pino Toscano).

=head3 Перевірка

Для Oracle Linux тепер повертається C<oraclelinux> (Nikos Skalkotos).

Тепер можлива обробка гостьових систем Linux, де немає F</etc/fstab> (Pino Toscano).

Для Minix тепер повертається C<minix> (Pino Toscano).

=head3 Архітектури

Було додано підтримку Aarch64 (64-бітових ARM).

Засіб інспектування та виклик C<guestfs_file_architecture> тепер можуть розпізнавати гостьові системи arm (32-бітову) і aarch64.

=head2 Безпека

=over 4

=item CVE-2014-0191 Використання мережі і визначення замінників при обробці коду
XML

У попередніх версіях libguestfs використовувала незахищені програмні інтерфейси libxml2 для обробки XML libvirt. Ці програмні інтерфейси типово надавали доступ до встановлення з'єднань мережі, якщо передавалися документи XML певного вмісту. За допомогою спеціально сформованого документа XML також можна було вичерпати можливості комп'ютера за процесорним часом, пам'яттю або дескрипторами файлів.

Оскільки XML libvirt надходить із надійного джерела (фонової служби libvirt), ми вважаємо, що цією вразливістю неможливо було скористатися.

Вразливість виправлено у libguestfs E<ge> 1.27.9, виправлення було зворотно портовано до стабільних версій E<ge> 1.26.2, E<ge> 1.24.9, E<ge> 1.22.10 та E<ge> 1.20.13.  (Подяки: Dan Berrange, Pino Toscano).

=item Shellshock (bash CVE-2014-6271)

Вада у bash опосередковано торкнулася libguestfs. Докладніша інформація: L<https://www.redhat.com/archives/libguestfs/2014-September/msg00252.html>

=back

=head2 API

=head3 Нові програмні інтерфейси

=over 4

=item C<guestfs_clear_backend_setting>

=item C<guestfs_get_backend_setting>

=item C<guestfs_set_backend_setting>

Скористайтеся цими програмними інтерфейсами для встановлення параметрів окремих модулів обробки.

=item C<guestfs_cpio_out>

Перетворення каталогу у образі диска на формат cpio.

=item C<guestfs_journal_get_realtime_usec>

Отримання точних значень часу у журналі, див. L<sd_journal_get_realtime_usec(3)>.

=item C<guestfs_lstatns>

=item C<guestfs_lstatnslist>

=item C<guestfs_statns>

Удосконалені версії C<guestfs_lstat>, C<guestfs_lstatlist>, C<guestfs_stat>, які повертають часові позначки з точністю до наносекунд.

=back

=head2 Зміни у збиранні

Libguestfs тепер можна зібрати з qemu 2.x.

Додано підтримку пакування базової системи у Mageia (Joseph Wang, Thierry Vignaud).

Augeas тепер є обов'язковою залежністю.

Flex і bison тепер є обов'язковими залежностями.

=head2 Внутрішня частина роботи програми

User-Mode Linux (UML) виключено із переліку підтримуваних модулів (хоча він все ще доступний). Його буде включено знову,, якщо з'явиться хтось, хто виправить різноманітні регресії та помилки у ядрі UML (Linux).

Тепер gdb можна з'єднати з qemu за допомогою значення змінної середовища C<LIBGUESTFS_BACKEND_SETTINGS=gdb>

Тепер модулем обробки libvirt використовується Serial BIOS (sgabios) (лише на x86), отже, ви зможете бачити ранні повідомлення BIOS.

У засобах віртуалізації мовою OCaml обробкою і виведенням виключень займається загальна функція.

Тепер типово увімкнено попередження GCC щодо великих кадрів стеку. Виправлено декілька місць, де використовувалися великі масиви або структури у стеку.

Створено тест для кратного послідовного завантаження базової системи. Такий тест буде корисним для виявлення витоків пам'яті у ядрі. Див. F<tests/qemu/qemu-boot.c>

Створено тест для перевірки швидкості роботи різних можливостей qemu, зокрема вивантажень за допомогою virtio-serial та запису на блокові пристрої. Див. F<tests/qemu/qemu-speed-test.c>

Тепер увімкнено попередження GCC для прив'язок OCaml-C у засобах віртуалізації мовою OCaml.

Код для редагування файлів у програмі L<virt-edit(1)>, командах L<guestfish(1)> C<edit> і L<virt-customize(1)> I<--edit> тощо тепер є спільним для усіх цих засобів (дякуємо Pino Toscano).

Тести FUSE було переписано на C з метою забезпечення точнішого керування тестуванням системних викликів.

Скрипт F<update-bugs.sh> було виправлено — він більше не створює порожнього файла C<BUGS>, якщо сервер системи звітування щодо вад є недоступним.

У тестах L<virt-resize(1)> тепер використовується стохастичний метод для забезпечення глибшого і ширшого тестування.

Якщо увімкнено мережу, базова система тепер використовує DHCP для отримання IP-адреси.

Якщо використовується libvirt, базова система встановлюватиме з'єднання із C<virbr0> (можна перевизначити за допомогою C<LIBGUESTFS_BACKEND_SETTINGS=network_bridge=E<lt>якийсь містокE<gt>>).  Це уможливлює повноцінні мережеві з'єднання із працездатним ICMP, ping тощо.

=head2 Виправлені вади

=begin коментар

./bugs-in-changelog.sh 1.26.0..

=end коментар

=over 4

=item L<https://bugzilla.redhat.com/1153515>

порожнє (але встановлене) LIBGUESTFS_BACKEND виводить libguestfs: помилка: некоректний модуль:

=item L<https://bugzilla.redhat.com/1151766>

Пакунок libguestfs-bash-completion містить файл file /usr/share/bash-completion/completions/virt-log, але у цьому файлі немає функції _virt_log()

=item L<https://bugzilla.redhat.com/1151738>

друкарська помилка у сторінці man virt-edit

=item L<https://bugzilla.redhat.com/1151033>

virt-v2v conversions from VMware vCenter server run slowly

=item L<https://bugzilla.redhat.com/1150880>

virt-v2v: warning: display <graphics type='sdl'> was ignored when converting rhel5 guest with sdl graphics

=item L<https://bugzilla.redhat.com/1150867>

'copy-file-to-file /src /dest' create file /dest even if command 'copy-file-to-file /src /dest' failed

=item L<https://bugzilla.redhat.com/1150815>

Can not find "RECURSIVE LONG LISTING" in 'man virt-diff'

=item L<https://bugzilla.redhat.com/1150701>

virt-v2v does not fstrim data disks and non-mounted filesystems

=item L<https://bugzilla.redhat.com/1150475>

Exporting 2+ disk guest to RHEV, only one disk shows after import

=item L<https://bugzilla.redhat.com/1148355>

virt-filesystems: incorrect LVM vg name when listing Fedora 21 Alpha Atomic image filesystems

=item L<https://bugzilla.redhat.com/1148072>

Не вистачає параметра --no-selinux-relabel

=item L<https://bugzilla.redhat.com/1148012>

RFE: Allow qemu-bridge-helper to be used to implement guestfs_set_network

=item L<https://bugzilla.redhat.com/1146815>

virt-v2v prints warning: /files/etc/fstab/8/spec references unknown device "cdrom"

=item L<https://bugzilla.redhat.com/1146275>

regression setting root password with virt-builder/virt-customize

=item L<https://bugzilla.redhat.com/1146017>

virt-v2v -v -x during windows guest conversion will hang at hivex: hivex_open: used block id ……

=item L<https://bugzilla.redhat.com/1145995>

Improve the error info when converting windows guest with unclean file system

=item L<https://bugzilla.redhat.com/1145916>

virt-v2v fails to convert win7 guest

=item L<https://bugzilla.redhat.com/1144891>

RFE: stat calls do not return nanosecond timestamps

=item L<https://bugzilla.redhat.com/1144766>

futimens() is a no-op via guestmount

=item L<https://bugzilla.redhat.com/1144201>

guestfish can not restore terminal's output colour when exit guestfish, if the terminal's background colour is black then it will make a inconvenient

=item L<https://bugzilla.redhat.com/1143949>

virt-customize option '--password-crypto' do not work

=item L<https://bugzilla.redhat.com/1143887>

Warning shows when converting guests to rhev:chown: changing ownership of ‘/tmp/v2v.u48xag/*.ovf’: Invalid argument

=item L<https://bugzilla.redhat.com/1143883>

warning shows when converting rhel7 guest:virt-v2v:could not update grub2 console: aug_get: no matching node (ignored)

=item L<https://bugzilla.redhat.com/1143866>

virt-v2v fails with error: cannot open Packages index using db5

=item L<https://bugzilla.redhat.com/1142416>

part-get-name give 'libguestfs: error: part_get_name: parted does not support the machine output (-m)' error message when run 'part-get-name /dev/sda 1'

=item L<https://bugzilla.redhat.com/1142186>

virt-sysprep option '--mount-options' don't work well

=item L<https://bugzilla.redhat.com/1142158>

Illegal command 'part-get-name /dev/sda1 1' cause libguestfs appliance crashed

=item L<https://bugzilla.redhat.com/1142004>

virt-v2v prints warning:WARNING:/files/boot/grub/device.map references unknown device "xvda"

=item L<https://bugzilla.redhat.com/1141723>

virt-v2v: error: disk sda has no defined format shows when converting xen hvm guest

=item L<https://bugzilla.redhat.com/1141680>

[RFE] virt-v2 should support convert a domain with using domain's UUID instead of domain name

=item L<https://bugzilla.redhat.com/1141631>

[RFE] virt-v2 should support convert a guest to a dir-pool with using pool's uuid

=item L<https://bugzilla.redhat.com/1141157>

virt-sysprep option '--user-accounts' don't work well

=item L<https://bugzilla.redhat.com/1141145>

virt-v2v fails to convert xen pv guests.

=item L<https://bugzilla.redhat.com/1141113>

virt-v2v fails to convert esx guests

=item L<https://bugzilla.redhat.com/1140946>

qemu-img shows error message for backing file twice

=item L<https://bugzilla.redhat.com/1140894>

No error messages output if append '--format qcow2' after '-a guest.img', guest.img is a raw format image file

=item L<https://bugzilla.redhat.com/1140547>

virt-builder option '--format' don't work well

=item L<https://bugzilla.redhat.com/1140156>

RFE: Export to RHEV data domain

=item L<https://bugzilla.redhat.com/1140050>

No error shows when multiple conflicting options used with virt-v2v

=item L<https://bugzilla.redhat.com/1139973>

Improve the error info when converting xen guest with no passwordless SSH access configured

=item L<https://bugzilla.redhat.com/1139543>

Improve the error info when converting guest with no space left

=item L<https://bugzilla.redhat.com/1138586>

No error shows when converting running guest with virt-v2v

=item L<https://bugzilla.redhat.com/1138184>

virt-v2v will fail when converting guests with initramfs-*kdump.img under /boot

=item L<https://bugzilla.redhat.com/1138182>

xen guest will be kernel panic after converted by virt-v2v

=item L<https://bugzilla.redhat.com/1130189>

Annoying message about permissions of /dev/kvm

=item L<https://bugzilla.redhat.com/1123007>

libguestfs 'direct' backend should close file descriptors before exec-ing qemu to avoid leaking !O_CLOEXEC fds

=item L<https://bugzilla.redhat.com/1122557>

virt-sparsify overwrites block devices if used as output files

=item L<https://bugzilla.redhat.com/1113156>

Empty fstab breaks libguestfs inspection

=item L<https://bugzilla.redhat.com/1111662>

Guestfs.Error("vgchange_uuid_all: Volume group has active logical volumes")

=item L<https://bugzilla.redhat.com/1109174>

virt-win-reg manual page is corrupted

=item L<https://bugzilla.redhat.com/1106548>

root gets an error accessing to a non-root dir on a snapshot guestmount VMDK img

=item L<https://bugzilla.redhat.com/1103877>

These APIs also need to add to `guestfish -h` command list

=item L<https://bugzilla.redhat.com/1102448>

Список пакунків mageia є помилковим

=item L<https://bugzilla.redhat.com/1102447>

libguestfs 1.27.13 does not build due to libxml library order

=item L<https://bugzilla.redhat.com/1100498>

RFE: non-polling mechanism to detect guestmount --no-fork readiness

=item L<https://bugzilla.redhat.com/1099490>

scrub-file can't handle link file

=item L<https://bugzilla.redhat.com/1099284>

Друкарські помилки у сторінках man

=item L<https://bugzilla.redhat.com/1098718>

RFE: virt-builder aliases

=item L<https://bugzilla.redhat.com/1096465>

virt-builder "proxy=off" setting doesn't turn off the proxy for downloads

=item L<https://bugzilla.redhat.com/1094746>

virt-sparsify man failes to mention what happens to snapshots within a qcow2 image (they are discarded)

=item L<https://bugzilla.redhat.com/1092753>

virt-builder: If several repos contain the same os-version images, then they are duplicated in -l output

=item L<https://bugzilla.redhat.com/1091803>

tar-in-opts execute failed that cause libguestfs appliance crashed

=item L<https://bugzilla.redhat.com/1088424>

virt-resize: libguestfs error: part_set_name: parted: /dev/sdb: Error during translation: Invalid or incomplete multibyte or wide character

=item L<https://bugzilla.redhat.com/1088262>

virt-builder cannot write to a block device

=item L<https://bugzilla.redhat.com/1085029>

Ruby tests fail with latest Ruby

=item L<https://bugzilla.redhat.com/1079210>

virt-sparsify --in-place cannot sparsify as much as it should

=item L<https://bugzilla.redhat.com/1079182>

virt-df cannot report used disk space of windows guest when updated to 6.5

=item L<https://bugzilla.redhat.com/1077817>

virt-builder error: "syntax error at line 3: syntax error"

=item L<https://bugzilla.redhat.com/1056290>

virt-sparsify overwrites block devices if used as output files

=item L<https://bugzilla.redhat.com/812970>

virt-rescue cannot set E<ge>E<lt>rescueE<gt> prompt, on Ubuntu 12.04

=back

=head1 ТАКОЖ ПЕРЕГЛЯНЬТЕ

L<guestfs-examples(1)>, L<guestfs-faq(1)>, L<guestfs-performance(1)>, L<guestfs-recipes(1)>, L<guestfs-testing(1)>, L<guestfs(3)>, L<guestfish(1)>, L<http://libguestfs.org/>

=head1 АВТОР

Richard W.M. Jones

=head1 АВТОРСЬКІ ПРАВА

Copyright (C) 2009-2025 Red Hat Inc.

