Provided by: libguestfs0_1.40.2-2ubuntu6_amd64 bug


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


       These release notes only cover the differences from the previous stable/dev branch split
       (1.38.0).  For detailed changelogs, please see the git repository, or the ChangeLog file
       distributed in the tarball.

   Нові можливості
       Нові можливості у наявних інструментах

       Virt-inspector now displays the libosinfo short ID for guests (Pino Toscano).

       Guestfish -N will now generate 1G disks instead of 100M disks by default.

       Virt-resize supports f2fs filesystems (Pino Toscano).

       libguestfs-test-tool now supports bash tab completion (Pino Toscano).

       The --machine-readable option now supports sending output to files or stdout/stderr.  This
       works uniformly across most OCaml-based virt tools, specifically: virt-builder, virt-
       builder-repository, virt-dib, virt-get-kernel, virt-resize, virt-sparsify, and virt-v2v
       (Pino Toscano).

       Virt-builder --uninstall option now works on SUSE (Sebastian Meyer).

       Virt-builder now supports Windows.  We are not able to ship Windows templates in the
       public respository for obvious licensing reasons, but if you are an MSDN subscriber you
       may build your own.  See

       Many tools now support a --key option allowing you to pass in decryption keys for
       filesystems stored in local files on the host rather than having to feed them in over
       stdin (Pino Toscano).

       virt-v2v і virt-p2v

       New -o rhv-upload mode for directly uploading images to RHV, bypassing the Export Storage
       Domain (Tomáš Golembiovský, Nir Soffer, Daniel Erez, Pino Toscano).

       New -o openstack mode for directly uploading images to OpenStack and Cinder using
       OpenStack APIs.

       Virt-v2v now has a general mechanism for input and output options: -io and -oo.

       Virt-v2v can now install the RHV tools or QEMU GA in guests (Tomáš Golembiovský).

       The huge manual has now been split into several smaller documents and is more focused on
       helping users to accomplish specific v2v tasks.

       Multiple improvements to the OVF metadata when converting to RHV (Tomáš Golembiovský, Pino
       Toscano, Arik Hadas).

       Virt-v2v can now convert Linux guests with split kernel packages, especially Ubuntu 18.04
       (Pino Toscano).

       Virt-v2v old --password-file option has been replaced by -ip (the old option remains for
       backwards compatibility).

       Virt-v2v now preserves the VM Generation ID.

       Virt-v2v has a new --mac option allowing specific NICs to be mapped precisely to networks
       or bridges on the target.

       New virt-v2v --print-estimate option to estimate the size of data that virt-v2v will copy.

       Virt-v2v is now usually able to remove open-vm-tools and VMware Tools from the Linux guest
       during conversion (Pino Toscano).

       Virt-v2v can now support UEFI conversions to RHV (Tomáš Golembiovský).

       Virt-p2v now prefers you to shut down instead of rebooting the machine after conversion
       has finished (Pino Toscano).

       Virt-v2v now writes the libosinfo short ID to the libvirt metadata when using -o local and
       -o libvirt output modes (Martin Kletzander).

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

       OpenJDK 10+ is supported (Pino Toscano).

       Java bindings fixed for Gentoo host (Martin Kletzander).


       Support Kali Linux (Pino Toscano).

       When inspecting mountpoints, look for /etc/mdadm/mdadm.conf as well as /etc/mdadm.conf
       (Nikolay Ivanets).

       Improved support for OpenSUSE Tumbleweed (Pino Toscano).

       Архітектури і платформи

       Miscellaneous macOS build fixes (Adam Robinson).


       Multiple documentation typos fixed (Yuri Chornoivan).

       Див. також guestfs-security(1).


       Qemu's slirp (userspace networking) had several buffer overflows which could be triggered
       from the guest or network side.

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

           Expand an f2fs filesystem (Pino Toscano).

           Get the libosinfo short ID for the inspected guest (Pino Toscano).

           This rescans all PVs, VGs and LVs, optionally activating them.

       Інші зміни у програмному інтерфейсі

       "part_get_mbr_part_type" was reimplemented in OCaml (Nikolay Ivanets).

       "list_filesystems" now filters out MBR extended partitions (Nikolay Ivanets).

       "vgscan" has been deprecated.  Use the new "lvm_scan" API in preference.

   Зміни у збиранні
       The JSON library switched from yajl to Jansson ≥ 2.7 (Pino Toscano).

       Support for The Sleuth Kit 4.5 (Pino Toscano).

       Multiple improvements in the "./configure" script (Lin Ma).

       More out-of-tree build fixes (Hilko Bengen).

       Some work on reproducible builds (Bernhard M. Wiedemann).

   Внутрішня частина роботи програми
       lvmetad is now used unconditionally, and is started much earlier in the appliance boot
       process.  This fixes support for certain PV types.

       On Debian, dash is installed inside the appliance and in virt-rescue (Pino Toscano).

       The amount of RAM assigned to the appliance has been increased from 500M to 768M (on
       x86_64, other architectures have different limits).  This enables use of up to 255 disks
       when using recent Linux kernels.

       Virt-v2v now models the source machine type (eg. i440FX, Q35 or virt).

       Virt-p2v now generates configuration code automatically, also code for parsing the kernel
       command line.

       Use "LT_INIT" instead of "AC_PROG_LIBTOOL".

       The OCaml "JSON" code for parsing and serializing has been unified into a single abstract
       data type.

       Most OCaml tools are now built using the PIC runtime.  This has a performance penalty on
       i686, but is relatively free on other architectures and has security benefits.

       The direct backend now queries the qemu binary for availability of KVM, instead of using a
       heuristic based on /dev/kvm (Andrea Bolognani).

       Our "clever" libxml2 writer macros are now used consistently across all parts of the code

       Qemu dropped -nodefconfig without telling us.  The equivalent -no-user-config option is
       now used instead.  Qemu also moved the "serial" option from -drive to -device, again
       without any notice, and this is also fixed.

   Виправлені вади
           [RHEL 7.6 LP] openstack output leaks passwords
           virt-inspector fails with "error: int_of_string" on a Linux image when /etc/fstab
           contains a partionless device
           v2v - support for -insecure option to support OSP SSL connection for VM migrations
           [RFE] virt-p2v UI should give the option to shutdown after conversion is finished
           virt-v2v cannot convert opensuse15 guest
           Fix rhev-apt command that virt-v2v runs in Windows guests on first boot
           Update v2v docs to describe support for SHA 2 certs required for converting Windows 7
           and 2008 R2 guests
           Minor log issue of virt-v2v
           VixDiskLib: VixDiskLib_Read: Read 4096 sectors at 57516160 failed. Error 2 (Memory
           allocation failed. Out of memory.) (DiskLib error 802: NBD_ERR_INSUFFICIENT_RESOURCES)
           at 5240.
           "warning: <target dev='sr0'> was ignored because the device name could not be
           recognized" should be hidden since convert cdrom is supported by virt-v2v
           part_to_dev "/dev/sdp1" returns "/dev/sd" instead of "/dev/sdp"
           inspection fails when swap partition in /etc/fstab has incorrect UUID compared to
           actual swap partition
           On machines where /dev/kvm exists but KVM doesn't work, libguestfs will not fall back
           to TCG
           virt-inspector can't inspect LUKS-encrypted RHEL7 guest image
           Improve error "No module named ovirtsdk4" in v2v rhv-upload conversion
           Adding QXL device in OVF causes Cirrus Logic device to be added to guest
           RFE: virt-v2v should preserve <genid>
           Transfer fails if local host is in maintenance mode
           Transfer fails if local host belongs to another DC
           v2v to RHV transfer fails with: error: [empty name]: cannot read '//*/disksection'
           with value: null
           virt-v2v convert rhel5.3 failure when executing rpm -ql kernel-2.6.18-128.el5 command
           p2v: error: XML error: CPU vendor specified without CPU model
           Hide rhv-upload option in virt-p2v client
           Don't use relative socket paths for NBD
           RFE: Support for -o rhv-upload via Unix domain socket
           ovirt-imageio-daemon times out during migration
           virt-v2v rhel7.6 build can't convert guest to null with qemu-kvm rhel7.5.z build
           Virt-v2v rhel7.6 build can't convert guest with qemu-kvm rhel7.5.z build
           virt-builder: ubuntu-18.04 template has stray HTTP proxy configured for apt
           virt-builder: error: host cpu (x86_64) and guest arch (unknown) are not compatible
           virt-v2v -i ova gives checksum error when missing files are mentioned in .mf
           guestfsd: error: /Windows/Drivers/VirtIO: Read-only file system
           The mount-vfs failed to mount the logical volume
           RHV tools not properly installed in migrated Windows VM's causing boot failure
           virt-v2v does not honor --network with -o rhv-upload
           [RFE] Upload images directly to oVirt (virt-v2v -o rhv-upload)
           [RFE] Add libosinfo short-id to virt-inspector output
           virt-inspector --help differs from manpage
           RFE: recognize the Kali Linux distribution
           Resume=/dev/sdaX can't be updated to resume=/dev/vdaX in rhel7 guest's grub file after
           v2v conversion
           Change categories of "Guest Operating system management by VIX API" in v2v man page
           Various -it vddk -io vddk* options should be documented, removed or fixed
           Reverted: RFE: Allow qemu-bridge-helper to be used to implement guestfs_set_network


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

   Нові можливості
       Нові інструменти

       Virt-builder-repository — новий інструмент, який надає кінцевим користувачам змогу
       створювати і оновлювати сховища virt-builder (Cédric Bosdonnat).

       Virt-rescue (хоча це і не новий інструмент) було суттєво переписано, реалізовано керування
       завданнями, параметри -m та -i, клавіші скасовування тощо.

       Нові можливості у наявних інструментах

       Поліпшено планувальник virt-builder. У новій версії програма вибирає швидші та ефективніші
       плани збирання для складних випадків, особливо якщо тимчасовий каталог або каталог
       виведення даних перебувають на сховищі даних у мережі.

       Нові шаблони virt-builder для Fedora (починаючи з Fedora 26) матимуть просте компонування
       розділів і використовуватимуть GPT.

       Скрипти першого завантаження virt-customize у гостьових системах, де використовується
       systemd, тепер встановлюються до "", а не до "", отже
       запускаються лише тоді, коли система завантажується у звичайному режимі.

       Virt-customize тепер встановлює випадковий /etc/machine-id для гостьових систем Linux,
       якщо такий ще не встановлено.

       Virt-df now works correctly on filesystems with block sizes smaller than 1K (Nikolay

       Virt-dib містить подальші поліпшення у сумісності з diskimage-builder (Pino Toscano).

       Virt-sysprep вилучає "DHCP_HOSTNAME" з файлів ifcfg-*.

       Virt-sysprep тепер працює і в Oracle Linux (Jamie Iles).

       Virt-resize тепер правильно копіює атрибути розділів GPT з джерела до призначення (Cédric

       Реалізовано або поліпшено доповнення за tab у bash для таких програм: virt-win-reg,

       virt-v2v і virt-p2v

       Virt-v2v тепер може читати файли VMX VMware безпосередньо або з локального диска, сховища
       NFS, або за допомогою SSH з гіпервізору ESXi.

       Virt-v2v тепер може використовувати VDDK як джерело вхідних даних.

       Обидві програми, virt-v2v і virt-p2v, тепер можуть передавати дані щодо виробника
       процесора, моделі і топології початкової системи. Втім, на жаль, не усі гіпервізори
       поточних версій здатні надати або використати ці дані (Tomáš Golembiovský).

       У virt-v2v реалізовано підтримку шифрованих гостьових систем (Pino Toscano).

       Virt-v2v тепер може працювати зі знімками VMware. Зауважте, що знімки мають бути
       згорнутими —  програма не перетворює ланцюжок знімків у ланцюжок знімків.

       Virt-v2v тепер встановлює блокові пристрої virtio Windows 10 / Windows Server 2016
       належним чином  (Pavel Butsykin, Kun Wei).

       У virt-v2v реалізовано встановлення драйверів virtio-rng, balloon та pvpanic та належне
       налаштовування цих драйверів у метаданих гіпервізору призначення для гіпервізорів, у яких
       передбачено підтримку цього (Tomáš Golembiovský).

       У virt-v2v реалізовано встановлення застарілих і сучасних ключів virtio у реєстрі Windows
       (Ladi Prosek).

       У virt-p2v реалізовано збереження (у певних випадках) часового поясу у годиннику реального
       часу (RTC).

       Тепер virt-p2v поєднує декілька команд scp до сервера перетворення у одну команду, щоб
       зменшує час, потрібний на перетворення.

       У virt-v2v реалізовано виявлення спеціалізованих ядер Linux лише для паравіртуалізації у
       Xen належним чином (Laszlo Ersek).

       У virt-v2v -o glance реалізовано підтримку створення належних властивостей для гостьових
       систем UEFI (Pino Toscano).

       Тепер virt-v2v -o null уникає буферизації гостьової системи до тимчасового файла. Замість
       цього, виконується запис до «нульового блокового пристрою» qemu. Це пришвидшує роботу і
       знижує потребу у використанні місця на диску.

       У virt-v2v -o rhv реалізовано підтримку типу гостьової системи Windows 2016 Server.

       У virt-v2v -i libvirtxml реалізовано підтримку відкриття мережевих дисків за допомогою
       http або https.

       У virt-v2v реалізовано попереджання щодо транзитних пристроїв у основній системі (Pino

       Розширено можливості виведення virt-v2v --machine-readable так, щоб було включено факти
       "vcenter-https", "xen-ssh" і "in-place" (Pino Toscano).

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

       Усунено декілька витоків пам'яті та інших проблем із пошкодженням даних у прив'язках до
       Java (Pino Toscano).

       Відкинуто підтримку у Perl %guestfs_introspection.


       Підтримку інспектування було переписано на OCaml і включено у фонову службу. Це значно
       пришвидшує інспектування, збільшує його стійкість та поліпшує можливості із його
       розширення у майбутньому.

       Краща підтримка піктограм гостьових систем ALT Linux (Pino Toscano).

       Краща підтримка NeoKylin (Qingzheng Zhang).

       Уможливлено роботу з операційними системами, подібними до Void Linux, у яких "VERSION_ID"
       не включено до /etc/os-release (Pino Toscano).

       Add support for Microsoft MS-DOS (Daniel Berrangé).

       Архітектури і платформи

       Декілька виправлень для архітектури S/390. Libguestfs і усі інструменти тепер можна
       зібрати і запустити на цій архітектурі.


       Програмний інтерфейс libguestfs тепер є безпечним щодо потоків обробки (хоча ще не є
       паралелізованим). Ви можете викликати інтерфейс для одного дескриптора із декількох
       потоків без потреби у блокуванні.

       Було виявлено декілька вразливостей у програмі icoutils "wrestool", яку libguestfs
       запускала для створення піктограм гостьових систем Windows. Рекомендуємо використовувати
       лише найсвіжішу версію "wrestool".

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

           Замінює собою застарілий програмний інтерфейс "hivex_value_utf8", виконуючи ті самі

           Читання і запис прапорців атрибутів розділів GPT (Cédric Bosdonnat).

           Збільшення і зменшення наявного розділу (Nikos Skalkotos).

           Підтримка рушія пошуку шкідливого програмного забезпечення Yara (Matteo Cafasso).

       Інші зміни у програмному інтерфейсі

       Програмні інтерфейси, реалізовані у фоновій службі, тепер можна писати на C або OCaml.
       Декілька програмних інтерфейсів було переписано на OCaml, хоча ми і не плануємо
       переписувати цією мовою усі інтерфейси.

       Тепер ви отримуватимете зрозуміле повідомлення про помилку, якщо спробуєте додати забагато
       дисків до базової системи, замість доволі розпливчастого повідомлення про помилку від

       У деяких програмних інтерфейсах випадково можна було скористатися "/dev/urandom" як
       «пристроєм» вхідних даних. Приклад: "g.copy_device_to_device("/dev/urandom", "/dev/sda")".
       Код було змінено таким чином, щоб не можна було так робити.

       Усі програмні інтерфейси для інспектування компакт-дисків із засобом для встановлення
       визнано застарілими. Для виконання цього завдання слід використовувати libosinfo.

   Зміни у збиранні
       Для збирання libguestfs нової версії потрібен компілятор OCaml ≥ 4.01. Параметр
       "./configure --disable-ocaml" лишається працездатним, але використовується лише для
       вимикання прив'язок до мови OCaml.

       Додано файл "RELEASES" зі списком дат усіх випусків libguestfs. Цей файл слід оновлювати
       під час кожного випуску.

       Було вилучено документацію, яку створює "gtk-doc". Тепер використання "./configure
       --enable-gtk-doc" не має жодних наслідків.

       Для функції XDR та rpcgen тепер використовується libtirpc. Зауважте, що для glibc вона
       вважається застарілою і у більшості дистрибутивів Linux ці залежності викинуто, тому для
       більшості користувачів ця залежність буде додатковою (Martin Kletzander).

       Тепер для crypt(3) використовується libxcrypt. Ця бібліотека є обов'язковою, якщо
       використовується glibc ≥ 2.27.

       "ocaml-hivex" is now required.

       Тепер обов'язковою є libvirt ≥ 1.2.20.

       Тепер для тестів, які слід запускати від імені користувача root, передбачено нову ціль,
       "make check-root" (аналогічно до "make check-slow").

       Перевірка щодо часу "./configure" для "__attribute__((cleanup))" тепер працює і у випадку
       крос-компіляції (Yann E. Morin).

       Файли "AUTHORS" і "p2v/about-authors.c" тепер створюються із одного джерела.

       Можна використовувати і GnuPG v1, і v2.

       Для визначення типового значення "LIBGUESTFS_PATH" може бути використано "./configure
       --with-guestfs-path". Крім того, трохи змінено спосіб, у який виконується пошук за шляхом,
       для того, щоб виконати пошук усіх типів базових систем у кожному з елементів шляху окремо
       (Pavel Butsykin).

       Змінну "GUESTFSD_EXT_CMD", яка використовувалася для позначення зовнішніх команд у фоновій
       службі, вилучено. Її спочатку використовували для збирання у SUSE, але там тепер вона не

       Виведені дані "./configure" тепер візуально групуються за заголовками, відповідними до
       виконуваної дії, що спрощує пошук потрібних даних (Pino Toscano).

       Залежності OCaml тепер створюються з одного скрипту, замість декількох трохи різних
       фрагментів Makefile.

       "./configure --with-distro=ідентифікатор" можна скористатися для перевизначення
       автоматичного визначення дистрибутива Linux під час збирання (Pino Toscano).

       qemu ≥ 2.10 is supported (but not required).  This adds mandatory locking to disks and
       libguestfs turns this off in certain circumstances when it is known to be safe (Lars
       Seipel, Peter Krempa, Daniel Berrangé, Pino Toscano, Fam Zheng, Yongkui Guo, Václav

   Внутрішня частина роботи програми
       Найвикористовуваніший код пересунуто до підкаталогу common/, а спільний код OCaml тепер
       зберігається у каталогах common/ml* (наприклад, common/visit і common/mlvisit містять
       бібліотеку visitor мовами C та OCaml, відповідно). Каталог mllib вилучено і замінено
       каталогом common/mltools.

       Реалізовано невибагливу до ресурсів прив'язку OCaml для PCRE, див. common/mlpcre.
       Використання бібліотеки OCaml "Str" здебільшого замінено на PCRE.

       Додано більше викликів до "udev_settle" для поліпшення стабільності коду поділу на розділи
       (Dawid Zamirski).

       Реалізовано запуск "udev_settle" з параметром --exit-if-exists, який пришвидшує виконання
       команди (Pavel Butsykin).

       Реалізовано виявлення нових місць зберігання major(3), minor(3), makedev(3).

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

       Реалізовано використання обгортки "set_nonblocking_flag" gnulib замість виклику fcntl(2) з
       "O_NONBLOCK" (Eric Blake).  Те саме для "set_cloexec_flag".

       Усунено виток пам'яті у версії XFS "guestfs_vfs_minimum_size" (Pino Toscano).

       Перевірки valgrind тепер працюють для виконуваного файла virt-p2v.

       Тепер у коді і документації використовується одинарні лапки Unicode ("‘’") замість '' і
       `'. Те саме стосується "’s" замість "'s".

       Функцію "is_zero" було реалізовано заново із суттєвим пришвидшенням (Eric Blake).

       У модулі безпосередньої обробки вилучено підтримку virtio-blk. Тепер єдиним підтримуваним
       способом додавання дисків є virtio-scsi.

       Рядковий параметр і повернуті типи засобу створення раціоналізовано так, щоб було лише два
       типи ("String", "StringList") з багатьма підтипами, наприклад "FileIn" став "String
       (FileIn, ...)".

       Тепер можна використовувати формати образу диска базово системи, відмінні від простого
       (raw) (Pavel Butsykin).

       Декілька поліпшень у автоматичному збиранні шаблонів Debian для virt-builder (Pino
       Toscano). Уможливлено послідовну консоль для цих шаблонів (Florian Klink).

       У фоновій службі замість створення приватної копії lvm.conf і внесення змін до неї
       (наприклад для фільтрів) створюється порожній файл, оскільки LVM розуміє, що означає «усе
       типове» (Alasdair Kergon, Zdenek Kabelac).

       Модуль "direct" тепер може запускати запити QMP щодо виконуваного файла QEMU, що розширює
       типи інформації, які можна виявляти. Крім того, код для надсилання запитів до QEMU
       зроблено стійкішим для обробки декількох паралельних запитів до різних версій QEMU.

       Прив'язки Augeas до OCaml зібрано у common/mlaugeas. Згідно з довготерміновим планом їх
       має бути вилучено з метою використання загальносистемного ocaml-augeas, коли він стане
       широкодоступним у дистрибутивах (Pino Toscano).

       Усі модулі OCaml (файли "*.ml") тепер повинні мати файл інтерфейсу ("*.mli"). Якщо ці
       модулі нічого не експортують, файл інтерфейсу буде порожнім, окрім коментарів.

       У коді використовуються певні особливості OCaml ≥ 4.01, зокрема заміна «{ поле = поле }»
       на «{ поле }».

       Інструмент virt-builder "make-template" тепер використовує параметр "virt-install
       --transient", отже, тепер немає потреби у чищенні залишків доменів після аварійного
       завершення роботи. Це також заощаджує запуски kickstart та virt-install, зміни щодо чого
       внесено до git із довідковою метою.

       /dev/shm тепер створюється у базовій системі (Nicolas Hicher).

       У докладному режимі на гостьових системах Fedora virt-customize тепер використовує "dnf
       --verbose", що дає змогу отримати докладніші діагностичні дані.

       У класах введення і виведення virt-v2v тепер міститься метод "#precheck", який
       використовується для виконання перевірки середовища до того, як буде розпочато

       Virt-p2v уможливлює діагностику miniexpect. Дані виводяться до stderr (у virt-p2v).

       Перевірки щодо вільного місця virt-v2v тепер є ліберальнішими, особливо для невеликих
       гостьових систем (Pino Toscano).

   Виправлені вади
           Example URI of "Convert from ESXi hypervisor over SSH to local libvirt" is incorrect
           in v2v man page
           Помилки сегментації virt-customize після оновлення до 1.37.35-3
           У прив'язках до Perl libguestfs можуть траплятися незначні витоки пам'яті, якщо
           станеться помилка
           У прив'язках libguestfs до Lua використовується strerror(), що не є безпечним щодо
           потоків виконання
           man page makes no mention of using '--' when trying to change exit on error behavior
           virt-df показує нулі для файлових систем із розміром блоку =512
           v2v should improve the result when convert a rhel7.4 guest with no available kernels
           found in the bootloader
           virt-v2v fails with "unsupported configuration: shared access for disk 'sdb' requires
           use of supported storage format"
           Mere presence of QEMU file locking options breaks NBD (Block protocol 'nbd' doesn't
           support the option 'locking')
           ./configure --disable-ocaml breaks building common/mlpcre which breaks building daemon
           [RFE]Should update some vddk info in v2v man page
           virt-v2v: warning: ova disk has an unknown VMware controller type (20)
           virt-v2v '-i ova' is not parsing the MAC address from the source OVF
           virt-builder fails to parse repo file if it has blank space after the repository
           Failed to convert the rhel5 guest with kmod-xenpv installed from xen server by
           qemu-kvm fails to open qcow2 files in read-only mode with qemu-kvm 1.5.3
           Error info shows wrong sometimes when ssh to conversion server using non-root user
           with sudo on p2v client
           /dev/shm does not exist in the appliance environment
           guestfish cannot list commands from interactive mode
           Unbound constructor Hivex.OPEN_UNSAFE
           bump debian images to use single-partition layout
           virt-resize failed to expand swap partition for RHEL5.11 guest image with "parsing
           UUID failed"
           Running file API on a special chardev may hang forever
           inspect-os report error: could not parse integer in version number: V7Update2
           [RFE]Add warning in process of v2v converting guest which has pci passthrough device
           virt-v2v fails on opensuse 13.2 guest with error: statns: statns_stub: path must start
           with a / character
           Скрипти firstboot неправильно встановлюються у Fedora 26
           Libguestfs should pass copyonread flag through to the libvirt XML
           1.36.x build failure: gtkdocize fails using newer autotools due to missing
           GTK_DOC_CHECK in
           guestfs_shutdown повисає, якщо основний процес встановлює обробники сигналів
           guestfs_add_domain_argv fails with readonly option when vdi/vhd disk is attached to
           libvirt domain
           RFE: Virt-v2v не здатна перетворювати гостьові системи із зашифрованими розділами
           Потрібна документація до формату адреси параметрів -a інструментів
           RFE: Support multicore decompression for OVA files using pigz and pxz
           Гостьова система Win 2016 описується як Win 10 після імпортування до RHEVM
           RFE: ability to convert VMware virtual machines via vmx
           Будь ласка, викиньте або оновіть залежність від GnuPG (1.4.x)
           [RFE] Install Windows virtio-rng drivers on VMs imported
           virt-inspector can't get icon info from altlinux-centaurus
           policycoreutils setfiles >= 2.6 does .. nothing
           Windows 8 UEFI from VMware to KVM fails to boot after conversion
           There is error info about "No such file or directory" when convert a guest from ova
           file by v2v
           virt-dib should generate sha256 checksum instead of sha512
           RFE: OVMF should be detected on conversion server to prevent failed conversion
           Should rename network name of rhv in virt-v2v man page
           virt-sysprep should remove DHCP_HOSTNAME
           QEMU image file locking (libguestfs)
           [Debian] Missing db_dump abort inspection
           Помилка сегментації при читанні пошкодженого шляху за допомогою прив'язок до Python 3
           RFE: virt-p2v має підтримувати мнемонічні операції
           There is virt-v2v warning about <listen type='none'> during converting a guest which
           has listen type='none' in XML
           qemu-system-s390x: -device isa-serial,chardev=charserial0,id=serial0: 'isa-serial' is
           not a valid device model name
           selinux relabel fails on RHEL 6.2 guests with "libguestfs error: selinux_relabel: :
           Missing bash completion scripts for: virt-diff guestunmount virt-copy-in virt-copy-out
           virt-customize virt-get-kernel virt-p2v-make-disk virt-p2v-make-kickstart virt-tar-in
           virt-tar-out virt-v2v-copy-to-local virt-win-reg
           RFE: virt-sysprep does not utilize libguestfs encryption support
           [RFE]virt-v2v failed to convert VMware ESX VM with snapshot
           Modify a file in virt-rescue with vi on some linux terminal such as yakuake, can lead
           to abnormal display in virt-rescue shell
           Remove "If reporting bugs, run virt-v2v with debugging enabled .." message when
           running virt-p2v
           Can not end a running command in virt-rescue by press ^C or other keys, the only way
           is to exit virt-rescue


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

   Нові можливості
       Нові інструменти

       Virt-tail — новий інструмент для стеження (за кінцем) файлів журналу у гостьовій системі,
       подібний до звичайної команди "tail -f".

       Нові можливості у наявних інструментах

       Virt-customize, virt-get-kernel, virt-sparsify і virt-sysprep тепер можуть працювати із
       зашифрованими гостьовими системами (Pino Toscano).

       У virt-builder і virt-customize тепер передбачено підтримку --append-line, що корисно для
       додавання рядків наприкінці файлів налаштувань.

       Virt-resize тепер може зменшувати і збільшувати розміри розділів резервної пам'яті (Pino

       Virt-resize тепер може виводити дані на нелокальні диски (Pino Toscano).

       У virt-sysprep передбачено нову операцію із назвою "backup-files" для вилучення резервних
       копій редактора і "passwd-backups" для вилучення /etc/passwd- та подібних файлів.

       Virt-dib тепер може створювати контрольні суми за допомогою нового параметра --checksum
       (Pino Toscano).

       Virt-dib тепер може створювати файли tgz. Крім того, у виведеному файлі tar зберігаються
       розширені атрибути і мітки SELinux (Pino Toscano).

       Virt-dib тепер може створювати файли squashfs (Pino Toscano).

       Автоматичне доповнення за Tab у bash тепер доступне для усіх інструментів командного
       рядка, який постачається у пакунках.

       virt-v2v і virt-p2v

       Передбачено підтримку перетворень Debian (6+) і Ubuntu (10.04+) (Tomáš Golembiovský, Pino

       Перевірено перетворення з гіпервізору Xen SUSE (Cédric Bosdonnat).

       Під час перетворення Windows тепер встановлюється програма "pnp_wait.exe", яка запобігає
       конфліктам між Керуванням Plug-and-Play Windows і нашими скриптами, які встановлюють
       драйвери пристроїв virtio. Вмикання цієї можливості потребує, щоб програму "pnp_wait.exe"
       було зібрано окремо (Roman Kagan).

       Тепер можна перетворювати файли OVA, експортовані з AWS (Shahar Havivi).

       Під час перетворення файлів OVA за певних обставин virt-v2v тепер може читати образи
       дисків безпосередньо з вхідного файла OVA, замість розпаковування файла OVA до тимчасового
       каталогу. Це може заощадити місце на диску і пришвидшити обробку (Tomáš Golembiovský).

       Virt-p2v тепер можна зібрати на RHEL 5 (приблизно 2007 рік) Linux та RHEL 6, що означає,
       що 32-бітові системи та обладнання із давніми дисками fakeraid можна віртуалізувати.
       Виконувані файли virt-p2v, засновані на цих застарілих версіях RHEL, можна знайти на

       Virt-p2v тепер може використовувати nbdkit (сервер NBD) як альтернативу qemu-nbd. Крім
       того, virt-p2v тепер може використовувати «активацію сокетом», яка є стійкішим методом для
       відкриття сокета для очікування даних NBD. Активація за сокетом працює з qemu-nbd і
       nbdkit, але потребує найновіших версій цих компонентів.

       Щоб запобігти перевищенню часу очікування під час перетворень P2V, virt-p2v успадковує
       параметри заощадження енергії від фізичної машини і також надсилає луна-пакети крізь
       з'єднання керування ssh та даних.

       Virt-v2v більше не вилучає вузли "Processor" і "Intelppm" з реєстру Windows.

       Перетворення Xen і vCenter тепер можна виконувати за допомогою модуля libvirt, якщо
       використовується libvirt ≥ 2.1.0.

       Ігноруються пристрої /dev/srX (SCSI CD-ROM) (Tomáš Golembiovský).

       Під час перетворення гостьових систем SUSE Linux реалізовано використання
       /etc/modprobe.conf.local, якщо такий файл існує.

       Вилучення інструментів VMware з гостьових систем Linux тепер має працювати надійно (Pino

       Під час перетворення файлів OVA virt-v2v тепер перевіряє хеш образу диска, який міститься
       у файлі маніфесту, тоді як раніше цей хеш ігнорувався через помилку у коді. Крім того,
       тепер передбачено підтримку хешів SHA256 (Tomáš Golembiovský).

       Під час перетворення файлів OVA, який містить стиснені образи дисків, тепер враховується
       атрибут "ovf:compression" з метаданих, замість безпосереднього аналізу образу диска (Tomáš

       Додано новий прапорець --vdsm-compat до режиму -o vdsm. За його допомогою можна створювати
       ефективніші образи qcow2.

       Оскільки продукт RHEV [комерційно підтримувану версію oVirt] тепер перейменовано на RHV,
       «RHEV» було замінено на «RHV» у всьому інструментарії. Зокрема, -o rhev тепер стало -o
       rhv, хоча і стара назва використовується для забезпечення зворотної сумісності.

       Програма "RHEV-APT" встановлюється тепер лише, якщо гіпервізором виведення даних є oVirt
       або RHV.

       Має бути вирішено проблему із нестачею пам'яті для роботи virt-v2v при виконанні
       повторного встановлення міток SELinux у гостьовій файловій системі.

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

       Встановлення значення "EXTRA_JAVAC_FLAGS" до ./configure надає вам змогу додавати довільні
       прапорці до "javac" під час збирання прив'язок до Java.

       Використання будь-якого програмного інтерфейсу libguestfs, який повертає окрему структуру,
       з прив'язок до Perl або Java призводило до витоку пам'яті. Тепер цю помилку виправлено.
       (Pino Toscano).


       Інспектування гостьових систем Windows із помірно пошкодженими роями регістру Windows
       тепер спрацьовує, замість завершення з повідомленням про помилку. Для користування цією
       можливістю слід встановити hivex ≥ 1.3.14 (Dawid Zamirski).

       Для пакунків Debian тепер передбачено можливість читати адресу, назву початкового пакунка,
       резюме і повний опис встановлених пакунків. Для гостьових систем на основі RPM можливе
       читання адреси, резюме та опису (Pino Toscano).

       Інспектування гостьових операційних систем, де використовується окремий розділ /usr, тепер
       має працювати надійніше (Pino Toscano).

       Під час обробки /etc/fstab гостьової системи шляхи згортаються до канонічної форми
       (наприклад, "///usr//local//" → "/usr/local").

       Інспектування підтомів btrfs тепер працює там, де поле параметрів /etc/fstab містить коми.

       Ігноруються пристрої /dev/cdN у /etc/fstab гостьової системи (Pino Toscano).

       Архітектури і платформи

       Тепер стабільні випуски тестуються на архітектурах aarch64, ppc64 та ppc64le.

       Архітектура RISC-V тепер обробляється як гостьова, а libguestfs принаймні збирається на
       RISC-V (але, ймовірно, не працює, оскільки там немає придатного до користування qemu на
       час написання цього запису).

       Реалізовано підтримку виявлення бінарних файлів і гостьових систем S/390 та S/390x.


       Реалізовано підтримку файлових систем ExFAT (Miles Wolbe).

       Див. також guestfs-security(1).

       Протягом цього циклу розробки не було повідомлено про жодну вразливість захисту. Втім,
       було виконано певні роботи із удосконалення захисту, які описано нижче.

       Назви тимчасових файлів тепер завжди створюються з використанням випадкових значень з
       /dev/urandom (раніше в одному випадку використовувалася функція C random(3)).

       Реалізовано перевірку змінної середовища $TERM перед передаванням її до командного рядка
       ядра базової системи.

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

           Надає доступ до програмного інтерфейсу Augeas "aug_transform" (Pino Toscano).

           Пошук файлів за номером inode (Matteo Cafasso).

           Повертає шлях до роїв Windows "HKLM\SYSTEM" та "HKLM\SOFTWARE", який було визначено
           під час інспектування.

           Створює файлову систему squashfs зі шляху (Pino Toscano).

       Інші зміни у програмному інтерфейсі

           Цей виклик тепер коректно обробляє томи libvirt, засновані на файлах. Раніше такі томи
           ігнорувалися. Також реалізовано обробку дисків, які потребують розпізнавання за
           реєстраційними даними для відкриття їх у libvirt (Pino Toscano).

           Цей виклик більше не помиляється при внесенні змін до назв пристроїв програмного RAID
           у Linux (зокрема /dev/mdX).

           Раніше програмний інтерфейс "file_architecture" між повертати будь-який рядок, "i386"
           або "i486", для 32-бітових виконуваних файлів x86. Тепер він повертає лише "i386" (за

           Цей програмний інтерфейс тепер може повертати такі нові значення: "riscv32",
           "riscv64", "riscv128", "s390", "s390x".

           Цей виклик тепер має необов'язковий прапорець "GUESTFS_HIVEX_OPEN_UNSAFE", який надає
           змогу відкривати деякі пошкоджені рої реєстру Windows. Для користування цією
           можливістю слід встановити hivex ≥ 1.3.14 (Dawid Zamirski).

           Цей виклик тепер повертає програмні розділи RAID у Linux.

           Цей виклик тепер коректно обробляє назви розділів, які містять "p<N>" (Pino Toscano).

           Цей виклик тепер може змінювати мітки розділів резервної пам'яті (Pino Toscano).

   Зміни у збиранні
       libmagic, бібліотечна частина програми "file", тепер потрібна для збирання (раніше вона
       була необов'язковою).

       Реалізовано підтримку GCC 7.

       Тепер програми OCaml та прив'язки до Java використовують «мовчазні правила». Щоб
       переглянути рядок команди, яка виконується, додайте "V=1" до рядка команди make (Pino

       Повільне тестування ("make check-slow") тепер покриває: скрипти firstboot у гостьових
       системах Linux; перетворення v2v набору справжніх гостьових систем Linux; параметри virt-
       customize --hostname та --timezone; параметр --root-password; те, що послідовна консоль
       працює у гостьових системах virt-builder.

       Великі автоматично створені файли з кодом мовою C, наприклад список команд у fish/cmds.c
       (та багато інших), поділено на менші файли для пришвидшення паралельного збирання.

       "make maintainer-check-extra-dist" тепер перевіряє, чи усі створені файли було включено до
       архіву tar.

       Тести тепер не припускають, що "." перебуває у @INC Perl, оскільки її скоро збираються
       вилучити (Pino Toscano).

       Реалізовано підтримку основних систем Debian з UsrMerge (Pino Toscano).

       Файли заголовків та структури C тепер можуть містити вбудовану документацію з використання
       спеціальних коментарів "/** ... */".

       Підстановки "@VAR@" у "./run" тепер повністю екрануються лапками. Це потрібно для того,
       щоб (наприклад) команда "./configure PYTHON=/якийсь/шлях" працювала належним чином, якщо у
       "/якийсь/шлях" містяться символи, які слід екранувати (Hilko Bengen).

       Реалізовано підтримку gperf ≥ 3.1.

       Старі збірки Kraxel-я для edk2 тепер не можна використовувати для забезпечення підтримки
       UEFI. Код UEFI тепер повністю програмний, тому слід використовувати версії з комплекту
       вашого дистрибутива Linux.

       Virt-p2v тепер можна зібрати на Linux RHEL 5 (випущено у 2007 році) з Gtk 2.10.

   Внутрішня частина роботи програми
       Тепер модулі generator та mllib "Common_utils" використовуються спільно з одного файла
       початкового коду.

       Значну частку загального коду було пересунуто до каталогу common у початковому коді. Тепер
       вона збирається лише одного разу. Мінібібліотеки, які містяться у цьому каталозі:
       common/edit, common/errnostring, common/miniexpect, common/options, common/parallel,
       common/progress, common/protocol, common/utils, common/visit, common/windows.

       Каталог, у якому зберігається основний код бібліотеки пересунуто, srclib.

       Усі тести, які було написано мовою командної оболонки, тепер використовують спільний файл
       із допоміжними функціями (tests/ Написано ще декілька нових допоміжних
       функцій, зокрема для пропускання певних перевірок. Крім того, ці скрипти тестування тепер
       можуть використовувати autoconf-подібні змінні шляхів, зокрема $abs_top_srcdir.

       Шляхи UEFI тепер зберігаються у generator (generator/

       Спосіб, у який засіб створення обробляє дії і номери процедур, було суттєво змінено. Див.
       generator/actions_*.ml і generator/

       Тепер модуль gnulib "getprogname" використовується всюди, де потрібна назва програми чи
       виведення назви програми (Pino Toscano).

       perl/Guestfs.c не придатний до перекладу (Nikos Skalkotos).

       Шаблони virt-builder пересунуто з builder/website до builder/templates. Тепер є одна
       уніфікована програма, яка може зібрати будь-який шаблон.

       Усі засоби роботи з реєстром Windows, які використовуються virt-customize і virt-v2v, було
       пересунуто до спільного модуля із назвою "Registry" у mllib.

       Усі прив'язки POSIX було пересунуто до нового модуля з назвою "Unix_utils" у mllib.

       У засобі інспектування, virt-customize та virt-v2v у декількох місцях усунено повторне
       визначення "%systemroot%", "CurrentControlSet" та шляхів до роїв "HKLM\SYSTEM" і
       "HKLM\SOFTWARE" у Windows. Усі ці дані визначаються один раз (під час інспектування) і
       передаються іншим інструментам за допомогою різноманітних програмних інтерфейсів

       "/dev/pts" тепер доступний у базовій системі, отже будь-які інструменти, які потребують
       для роботи pty, тепер працюватимуть (Pino Toscano).

       Виправлено більшу частину попереджень OCaml.

       Тепер існує єдина загальна функція для створення тимчасових файлів
       ("guestfs_int_make_temp_path") (Matteo Cafasso).

       Реалізовано перевірку змінної середовища $TERM перед передаванням її до командного рядка
       ядра базової системи.

       У базовій системі більше не створюються непотрібні пристрої USB та memballoon (Laine

       На aarch64 для базової системи тепер використовується virtio-pci. Це дещо швидше за

       Було мінімізовано використання srandom(3) і random(3). Зокрема, тимчасові назви файлів
       більше не створюються на основі даних, які повертає random(3), замість цього
       використовується /dev/urandom.

   Виправлені вади
           описка на сторінці підручника virt-tail
           virt-v2v: вичерпання пам'яті базовою системою під час виконання команди setfiles
           ../common/progress/.libs/libprogress.a(libprogress_la-progress.o): undefined reference
           to symbol 'UP@@NCURSES_TINFO_5.0.19991023'
           *** Немає правила для створення ../perl/lib/Sys/Guestfs.c, потрібне для libguestfs.pot
           не вдається зібрати 1.34.3 з gperf 3.1
           guestfs_canonical_device_name incorrectly returns /dev/sd0 for MD devices (/dev/md0)
           guestfs_list_filesystems не розпізнає розділи ddf
           [Debian] у базовій системі не встановлено ldmtool
           qemu-kvm cannot boot RHEL 7 kernel with TCG, hangs at "Probing EDD (edd=off to
           RFE: virt-resize має підтримувати адресу як диск виведення
           Importing VMs from VMware is failing with error "Inspection field 'i_arch' was
           RFE: дещо збільшити покриття virt-sysprep
           Додати прапорець --vdsm-compat=1.1 для VDSM
           описка на сторінці підручника
           не читаються реєстраційні дані з доменів libvirt
           дані щодо --machine-readable на сторінці підручника virt-v2v слід оновити
           RFE: virt-p2v має підтримувати мнемонічні операції
           There is virt-v2v warning about <listen type='none'> during converting a guest which
           has listen type='none' in XML
           на сторінці підручника virt-p2v слід оновити дані щодо діалогу
           virt-v2v: -i ova: заборонено доступ, якщо використовується libvirt і запуск
           відбувається від імені root
           Can't install qxl driver for display device in win7 guest after converting to glance
           by virt-v2v
           There is HTTP 404 error info when convert guest to glance by virt-v2v
           selinux relabel fails on RHEL 6.2 guests with "libguestfs error: selinux_relabel: :
           Стан процесу у гостьовій системі windows після перетворення з kvm на rhev за допомогою
           virt-v2v не є нормальним
           Засіб збирання не встановлює належним чином назву вузла для Debian 8 (Jessie)
           Поліпшення сумісності імпортування OVA
           virt-manager coredump when vm with gluster image exists
           Cannot import VMs from Xen and VMware when using RHEL7.3 host.
           Missing bash completion scripts for: virt-diff guestunmount virt-copy-in virt-copy-out
           virt-customize virt-get-kernel virt-p2v-make-disk virt-p2v-make-kickstart virt-tar-in
           virt-tar-out virt-v2v-copy-to-local virt-win-reg
           OVMF file which is built for rhel7.3 can't be used for virt-v2v uefi conversion
           Converting rhel7 host installed on RAID:warning: fstrim: fstrim: /sysroot/: the
           discard operation is not supported
           RFE: libvirt backend: support handling disks stored as volume name in a pool
           Назва гостьової системи є помилковою, якщо перетворення гостьової системи з образу
           диска виконується virt-v2v
           RFE: virt-sysprep does not utilize libguestfs encryption support
           virt-v2v conversions from vCenter do not consistently obey the proxy environment
           warning: fstrim: fstrim: /sysroot/: FITRIM ioctl failed: Operation not supported
           (ignored) when convert win2003 guest from xen server
           RFE: Only install RHEV-APT if virt-v2v -o rhev/-o vdsm option is used
           virt-v2v failed to convert RHEL 6.7 UEFI guest: no grub1/grub-legacy or grub2
           configuration file was found
           [RFE] virt-v2v should support convert a guest to a dir-pool with using pool's uuid
           libvirt reports json "backing file" is missing
           Скрипти firstboot (virt-builder, virt-sysprep) не працюють у гостьових системах Debian
           6 і 7
           virt-v2v windows xp - machine dies BSOD - processr,sys - workaround provided


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

   Нові можливості
       Декілька поліпшень швидкодії у libguestfs. Час «кешування угарячу» для запуску базової
       системи має бути меншим за 1 секунду, якщо встановлено новітні qemu та ядро. Також
       створено нові інструменти для точного тестування швидкодії libguestfs
       (utils/boot-benchmark та utils/boot-analysis у ієрархії початкового коду).

       Програма virt-p2v для перетворення фізичних машин на віртуальні машини зазнала значного
       поліпшення. Це зокрема простіше розфарбоване виведення даних під час перетворень,
       підтримка Gtk 3, докладніші відомості щодо обладнання, реалізація клацання для
       ідентифікації інтерфейсів мережі, більше засобів діагностики, що включаються до ISO та
       багато виправлень вад.

       Реалізовано підтримку f2fs (дружньої до флешок файлової системи) (Pino Toscano).

       Нові інструменти

       Реалізовано можливість скористатися virt-p2v-make-kiwi(1) для збирання образів ISO
       virt-p2v на основі SLES і openSUSE за допомогою інструментарію kiwi (Cédric Bosdonnat).

       Нові можливості у наявних інструментах

       Нова версія virt-resize зберігає GUID GPT. Ця версія є обов'язковою для роботи з Windows
       Server 2012 R2, де завантажувач не працюватиме, якщо змінюється GUID (Maxim

       Нова версія virt-resize використовує розріджене копіювання для розширених розділів (у
       старому стилі MBR). Значно пришвидшує зміну розмірів гостьових систем, які використовують
       розширені розділи (Maxim Perevedentsev).

       Реалізовано використання параметрів командного рядка ядра virt-p2v для встановлення
       типових значень у графічному засобі налаштовування.

       Повністю вилучено параметри діагностики virt-p2v, що спростило інтерфейс і документацію.
       Діагностичні відомості тепер перехоплюються повністю автоматично.

       virt-p2v-make-disk у новій версії надає вам змогу вказати параметр --arch, уможливлюючи
       збирання 32-бітової virt-p2v для сумісності із застарілими системами.

       Для нової версії virt-p2v-make-disk більше немає потреби вказувати "версію-ОС" для диска
       virt-p2v. Якщо версію не вказано, програма намагатиметься вибрати відповідну "версію-ОС"
       за вашою основною системою.

       До virt-p2v-make-disk і virt-p2v-make-kickstart додано новий параметр --install, за
       допомогою якого можна додавати довільні пакунки до образу ISO virt-p2v, для
       налаштовування, отримання додаткових інструментів діагностики тощо.

       Нова версія virt-v2v вилучає Parallels Tools (або еквівалентні Virtuozzo Tools) з
       гостьових систем Linux. Також припинено завантаження драйверів Windows під час
       завантаження системи . (Roman Kagan і Pavel Butsykin)

       Розширено можливості режиму virt-v2v --in-place так, щоб уможливити для функції виклику
       вибір, встановлювати чи ні певні драйвери virtio до гостьової системи (Roman Kagan).

       Засоби перетворення virt-v2v гостьових систем Windows значно переписано і спрощено (Roman

       У новій версії режиму virt-v2v --in-place передбачено підтримку встановлення драйверів
       virtio-scsi до гостьової системи (Roman Kagan).

       Нова версія virt-v2v може перетворювати гостьові системи SUSE та гостьові системи SUSE з
       використанням UEFI (Cédric Bosdonnat і Jim Fehlig).

       Нова версія virt-v2v може перетворювати гостьові системи Glance із декількома дисками.
       Раніше програма показувала повідомлення про помилку для таких гостьових систем.

       Параметри virt-v2v --no-trim і --vmtype тепер не призводять до виконання будь-яких дій.
       Програма показує попередження і просто ігнорує параметри. Нова версія virt-v2v може
       створювати vmtype OVF правильно без втручання користувача.

       Нову версію virt-v2v можна тестувати у Xen SUSE як початковому гіпервізорі (Cédric

       У virt-v2v додано підтримку драйверів VMDP SUSE (Cédric Bosdonnat).

       Нова версія virt-v2v може перетворювати файли OVA, які містять підтеки, які створено за
       допомогою SUSE Studio (Cédric Bosdonnat).

       Нова версія virt-v2v правильно встановлює елемент OVF "<Origin>". Можливості oVirt
       розширено з метою підтримки ширшого спектра гіпервізорів (Shahar Havivi).

       У новій версії virt-v2v передбачено підтримку Windows Server 2016 (Tomáš Golembiovský).

       Параметром virt-builder --list тепер можна скористатися для перегляду усіх шаблонів або
       окремого шаблона (Pino Toscano).

       В усіх заснованих на OCaml інструментах тепер використовується getopt_long(3) для обробки
       параметрів. Поліпшено виведення --help (Pino Toscano).

       За допомогою параметра --selinux-relabel virt-builder і virt-customize у новій версії
       можна повністю повторно встановити мітки для усієї гостьової файлової системи під час
       збирання без потреби у довгому автоматичному повторному встановленні міток під час першого

       virt-customize --delete у новій версії може обробляти символи-замінники.

       За допомогою нового параметра virt-customize --uninstall ви зможете вилучати пакунки.

       Нова версія virt-customize може використовувати "pvvxsvc" як альтернативу до "rhsrvany"
       для запуску скриптів firstboot у гостьових системах Windows (Cédric Bosdonnat).

       virt-customize тепер використовує найстійкішу схему хешування паролів у Arch та Void Linux
       (Pino Toscano).

       virt-customize --install тепер працює належним чином у Arch (Pino Toscano).

       virt-inspector має нові параметри --no-applications і --no-icon для запобігання включенню
       списку програм та піктограм до виведених даних XML (Pino Toscano).

       Додано новий параметр virt-sysprep --network, за допомогою якого ви можете насправді
       скористатися параметрами --install та іншими, які були у virt-sysprep і раніше, але не
       працювали. Зауважте, що типово мережу все ще вимкнено.

       Дія virt-sysprep "fs-uuids" більше не завершує роботу помилкою для гостьових систем btrfs
       (Maxim Perevedentsev).

       virt-dib тепер може виводити образи для Docker (Pino Toscano).

       У virt-dib реалізовано новий параметр --drive-format, за допомогою якого можна вказати
       формат допоміжного диска (Pino Toscano).

       Усі засоби віртуалізації OCaml тепер мають параметр --colors/--colours, який вмикає
       розфарбовування виведених даних (за допомогою екранованих послідовностей ANSI), навіть
       якщо виведення відбувається не до tty. Типовою поведінкою є перевірка, чи виводяться дані
       до tty, і вимикання розфарбовування даних, якщо ні. Це надає змогу передавати розфарбовані
       виведені дані для обробки іншим програмам.

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

       Удосконалено покриття тестами PHP (Pino Toscano).

       Реалізовано підтримку PHP 7 (Pino Toscano).

       Прив'язки Python тепер сумісні з PEP 8 (Pino Toscano).

       Пакунок pip Python доступний з

       Прив'язки до Ruby тепер виводять текст виключення повністю, якщо такий видано зворотним
       викликом події. Зауважте, що це не зовсім коректна поведінка, оскільки зворотні виклики
       подій не повинні видавати виключення, але це допомагає у діагностиці.

       Усі бібліотеки і програми OCaml тепер збираються з прапорцем -safe-string, якщо його
       підтримку передбачено у компіляторі OCaml.


       Тепер можна інспектувати Alpine Linux з використанням busybox. Крім того, у virt-customize
       передбачено підтримку засобу керування пакунками APK (Pino Toscano).

       Реалізовано інспектування Mageia 4 (Pino Toscano).

       Повністю реалізовано підтримку Void Linux та засобу керування пакунками pbs з Void Linux
       xbps (Pino Toscano).

       Удосконалено обробку даних щодо версії CoreOS (Pino Toscano).

       Уможливлено отримання піктограми з ALT Linux (Pino Toscano).

       Тепер розпізнаються версії PLD Linux < 3 (Pino Toscano).

       Реалізовано повернення літер дисків Windows для гостьових систем з використанням розділів
       GPT (Dawid Zamirski).

       Реалізовано правильне інспектування гостьових систем Unix, у яких немає файла /etc/fstab
       (Pino Toscano).

       Додано нове джерело піктограми Ubuntu, яке не покладається на встановлення GNOME у
       гостьовій системі.

       Реалізовано отримання піктограми для 64-бітових гостьових систем Windows 7.

       Переписано код інтеграції libosinfo так, щоб можна було працювати із новим форматом бази
       даних від osinfo (Pino Toscano).


       Нова сторінка підручника, guestfs-building(1), де наведено настанови щодо того, як зібрати
       libguestfs з початкових кодів.

       Сторінки підручника, засоби та виведення параметра --help тепер автоматично перевіряються
       так, щоб забезпечити повне документування, включення належних розділів попередження та
       додавання до кожної сторінки розділу опису.

       Оновлено сторінку підручника guestfs-testing(1); тепер дані на ній відповідають новішій

       Архітектури і платформи

       virt-customize тепер працює на платформах POWER7 і POWER8, у обох варіантах, із прямим та
       зворотним порядком байтів (Xianghua Chen і Hu Zhang).

       Див. також guestfs-security(1).


       Ця вразливість у OCaml може стосуватися усіх інструментів віртуалізації, які написано
       мовою програмування OCaml. Вона стосується лише 64-бітових платформ. Оскільки ця вада
       стосується створення коду, важко визначити точний перелік вражених програм, тому
       рекомендують повторно зібрати libguestfs за допомогою версії компілятора OCaml, де цю ваду
       виправлено (або попросити розробників вашого дистрибутива Linux зробити це для вас).

       Права власності virt-customize на .ssh, .ssh/authorized_keys

       Раніше, коли virt-customize вставляла ключ SSH до гостьової системи, створюючи у каталозі
       ~/.ssh файл ~/.ssh/authorized_keys (якщо їх ще не було), вона надавала їм права власності
       "root.root". Цю помилку було виправлено. Тепер використовується правильні значення
       користувача і групи. Ми думаємо, що цією вразливість було неможливо скористатися.

       Windows "%systemroot%"

       Код засобу інспектування було зроблено стійкішим до гостьових систем, де міг
       використовуватися дуже довгий "%systemroot%" (успадкований від керованого гостьовою
       системою реєстру Windows). Ми вважаємо, що цією вразливістю неможливо скористатися.

       У базовій системі тепер доступною є програма Virtio-rng

       virtio-rng (віртуальний пристрій-генератор випадкових чисел) тепер передається до базової
       системи, що має поліпшити якість псевдовипадкових чисел, які використовуються для GUID та
       створення криптографічних ключів.

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

           Реалізовано показу усіх пристроїв, на які поширюється файлова система btrfs (Pino

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

           Зауважте, що ці зміни потребують встановлення додаткової залежності, The Sleuth Kit.
           (Matteo Cafasso)

           Реалізовано читання шляху, де зберігаються тимчасові сокети (Pino Toscano).

           Реалізовано поділ адреси змонтованого пристрою на назву пристрою і підтом (Cédric

           Реалізовано отримання файлів NTFS за номером inode (Matteo Cafasso).

           Уможливлює розширення розділів GPT на місці з пересуванням другої (резервної) таблиці
           розділів у напрямку кінця диска (Maxim Perevedentsev).

           Отримує і встановлює GUID диска GPT або встановлює для них свіже випадкове значення
           (Maxim Perevedentsev).

           Виконує оновлення міток SELinux для частини гостьової файлової системи або для усієї
           гостьової файлової системи.

       Інші зміни у програмному інтерфейсі

       "guestfs_set_selinux", "guestfs_get_selinux", "guestfs_setcon", "guestfs_getcon" і
       "guestfs_llz" тепер вважаються застарілими. Скористайтеся новим програмним інтерфейсом
       "guestfs_selinux_relabel" для повторного встановлення міток у файлових системах.
       Скористайтеся "guestfs_lgetxattrs", щоб отримати список розширених атрибутів
       "security.selinux" наявних файлів.

       "guestfs_vfs_minimum_size" тепер можна використовувати для файлових систем у проміжних
       станах (Maxim Perevedentsev).

       "guestfs_ll" тепер працює для шляхів, які містять абсолютні символічні посилання (Pino

       "guestfs_glob_expand" тепер має необов'язковий булевий параметр "directoryslash", який
       керує тим, чи повертатимуться кінцеві похилі риски у назвах каталогів (Pino Toscano).

       "guestfs_lvs" більше не повертає логічні томи, для яких встановлено прапорець
       "activationskip". Причиною є те, що такі логічні томи не мають вузла пристрою
       "/dev/VG/LV", отже, код, який читає список логічних томів, а потім зондує самі пристрої,
       негайно повертає помилку. Ви можете скористатися "guestfs_lvs_full", якщо хочете прочитати
       усі логічні томи (Pino Toscano).

       "guestfs_list_disk_labels" більше не повертає повідомлення про помилку, якщо не було
       додано жодного диска із мітками. Замість цього, буде повернуто порожній список (Pino

       "guestfs_is_lv" більше не повертає повідомлення про помилку, якщо передано підтом btrfs.
       Замість цього буде повернуто false (Maxim Perevedentsev).

   Зміни у збиранні
       Потрібен qemu ≥ 1.3.0.

       Для збирання libguestfs потрібна yajl (бібліотека для обробки коду JSON).

       Тепер можливе збирання за допомогою GCC 6.

       "make check-valgrind" тепер має суттєво ліпше покриття.

       "make check-slow" тепер знову є працездатним.

       Скористайтеся "make -C appliance clean-supermin-appliance" щоб спорожнити базову систему
       supermin (її буде перезібрано під час наступного "make").

       Реалізовано спектр нових правил для запуску virt-p2v з каталогу початкового коду: "make -C
       p2v run-virt-p2v-directly" | "run-virt-p2v-in-a-vm" | "run-virt-p2v-non-gui-conversion".
       Документацію щодо цього можна знайти на сторінці guestfs-hacking(1).

       virt-p2v може бути зібрано з використанням Gtk 2 або Gtk 3. Щоб примусово вказати версію
       Gtk, скористайтеся "./configure --with-gtk=2|3"

       Параметри "./configure" тепер здебільшого документовано на сторінці guestfs-building(1).

   Внутрішня частина роботи програми
       У git версії тепер позначаються "v1.XX.YY" (раніше вони позначалися "1.XX.YY").
       Використання префікса "v-" є поширенішим для сховищ git.

       Якщо використовується модуль обробки libvirt, тепер програма очікує на коректне завершення
       роботи qemu, замість того, щоб примусово завершувати роботу за 15 секунд. Це має допомогти
       у записі на повільні пристрої (особливо, дешеві флешки USB).

       До повідомлень про помилки від libvirt тепер додається поле "err->int1", у якому,
       зазвичай, міститься "errno".

       На ARM вилучено увесь код DTB (ієрархії пристроїв). qemu створює належну ієрархію на
       льоту, нам не потрібно вказувати її власноруч.

       У тестах програмного інтерфейсу C тепер використовуються більші тестові диски, що надає
       змогу належно перевірити BTRFS (Pino Toscano).

       Тести тепер мають належним чином працювати у основній системі, де встановлено лише Python
       3 (Pino Toscano).

       У прив'язках до C реалізовано однорідне (майже) іменування "guestfs_int_*". Раніше не було
       якоїсь спільної схеми визначення назв.

       Застарілі функції "safe_malloc" та інші тепер не експортуються бібліотекою і не
       використовуються у прив'язках до мов програмування.

       Встановлення для TMPDIR шляху, довшого за ~ 100 символів, більше не спричиняє аварійного
       випадкового завершення libguestfs без повідомлень під час створення сокетів доменів Unix
       (Pino Toscano).

       Тепер у фоновій службі можна використовувати макрос "COMPILE_REGEXP".

       Під час трасування тепер повністю виводяться результати, які містять структури (Pino

       До модуля Perl "Sys::Guestfs" більше не вбудовується програмний інтерфейс збільшення
       номера версії. Тепер цей модуль завжди має фіктивну версію 1.0. Щоб визначити справжню
       версію libguestfs з Perl, вам слід викликати "$g->version".

       Увесь код було зібрано з "-Wstack-usage=10000", внесено багато змін для вилучення
       розміщень у стеку великих рядків та буферів.

       Тепер усюди використовується функція error(3), якою замінено більшість колишніх вживань
       perror(3) + exit(3) та fprintf(3) + exit.

       У коді C коментарі "/**" перетворено на документацію, яка автоматично додається до
       сторінки підручника guestfs-hacking(1).

       Було додано безпечну функцію getumask. У свіжих ядрах Linux ця функція використовує
       нещодавно додане поле "Umask" у /proc/self/status. У давніших Linux та інших системах Unix
       ця функція використовує безпечну щодо потоків методику з використанням fork(2) (подяки:
       Josh Stone, Jiri Jaburek, Eric Blake).

       Було додано безпечні обгортки posix_fadvise(2), також у код додано більше орієнтирів, які
       можуть трошки поліпшити швидкодію.

       Додано безпечну обгортку до waitpid(2), яка належним чином обробляє властивість "INTR".

       "" (використовується для створення сторінок підручника) тепер припиняє
       роботу, якщо знайдено будь-яку помилку у POD. Новий скрипт із назвою "" виконує
       перехресну перевірку даних, виведених --help, параметрів засобів та сторінок підручника.

       Усі номери версій у бібліотеці (наприклад, версії qemu, версії libvirt, версії гостьових
       операційних систем) уніфіковано у єдиному файлі src/version.c (Pino Toscano).

       У гостьових системах Windows virt-customize використовуватиме нейтральний щодо
       постачальника шлях "C:\Program Files\Guestfs\Firstboot" для зберігання скриптів першого
       завантаження. Раніше використовувався "C:\Program Files\Red Hat\Firstboot". Ця зміна має
       бути непомітною для самих скриптів. (Cédric Bosdonnat)

       У гостьових системах Linux служби першого завантаження, створені virt-builder --firstboot
       тощо, було перейменовано на "guestfs-firstboot" (Pino Toscano).

       Тепер існує загальна функція "debug", яка використовується усіма засобами OCaml і замінює
       собою попередній код, який виконував "if verbose () then printf ...".

       virt-p2v копіює файли, які їй потрібні на сервер перетворення virt-v2v за допомогою
       scp(1), замість спроб надсилати їх через сеанс оболонки. Це має поліпшити стійкість
       процесу і має бути повністю прозорим для кінцевого користувача.

       Увесь код у mllib тепер збирається до єдиної бібліотеки "mllib.cma" або "mllib.cmxa".
       Увесь код у customize тепер збирається до єдиної бібліотеки "customize.cma" або
       "customize.cmxa". Це спрощує збирання засобів OCaml.

       Тепер у базовій системі використовується lvmetad(8), якщо доступна (Pino Toscano).

       Використовуються «мовчазні правила» для OCaml, Java, Erlang і POD. Скористайтеся "make
       V=1", щоб знову побачити рядки команд повністю (Pino Toscano).

   Виправлені вади
           virt-sparsify --in-place failed with UEFI system
           run_command runs exit handlers when execve fails (e.g. due to missing executable)
           virt-dib failed to create image using DIB_YUM_REPO_CONF
           Fail to inspect Windows ISO file
           Some info will show when convert guest to libvirt by virt-v2v with parameter --quiet
           overlay of disk images does not specify the format of the backing file
           Virt-manager can't show OS icons of win7/win8/ubuntu guest.
           Improve error info "remote server timeout unexpectedly waiting for password prompt"
           when connect to a bogus server at p2v client
           virt-p2v should update error prompt when 'Test connection' with a non-existing user in
           conversion server
           virt-sysprep --install always failed to install the packages specified
           virt-customize --truncate-recursive should give an error message when specifying a no-
           existing path
           [RFE]Should give a better description about 'curl error 22' when failed using ssh
           identity http url at p2v client
           Failed SSH to conversion server by ssh identity http url at p2v client
           [RFE] uninstall packages inside the VM
           Ifconfig command is not supported on p2v client
           Convert a guest from RHEL by virt-v2v but its origin info shows RHEV at rhevm
           Should remind a warning about disk image has a partition when using virt-p2v-make-disk
           virt-get-kernel prompts an 'invalid value' error when using --format auto
           virt-p2v spinner should be hidden when it stops spinning
           Testing connection timeout when input regular user of conversion server with checked
           "use sudo......"button
           [RFE] Suggestion give user a reminder for "Cancel conversion" button
           Multiple network ports will not be aligned at p2v client
           Update UEFI whitelist for official fedora packages
           virt-customize --ssh-inject не застосовує належних прав доступу до файлів
           extra quotes around UUID confuses findfs in RHEL (but not in Fedora)
           Inspection does not parse /etc/redhat-release containing "Derived from Red Hat
           Enterprise Linux 7.1 (Source)"
           RFE: Allow p2v kernel options without p2v.server to set defaults
           virt-v2v should prevent using multiple '-b' and '-n' option appears on the command
           libguestfs: error: could not parse integer in version number: 7"
           [1.33.16] Compilation Error: Unbound value List.sort_uniq in line 988,
           characters 10-24:
           `virt-builder --update` fails with: "dnf -y --best upgrade: command exited with an
           v2v cmd cannot exit and "block I/O error in device 'appliance': No space left on
           device (28)" is printed when specified "-v -x"
           virt-rescue fails, but missing error message
           RFE: virt-p2v log window should process colour escapes and backspaces
           virt-v2v -o libvirt doesn't preserve or use correct <graphics type="vnc|spice">
           error: internal error: Invalid floppy device name: hdb
           Wrong warning info "use standard VGA" shows when converting windows > 7 by virt-v2v
           OS name of win8.1 x64 guest shows incorrect in rhevm3.6 general info
           virt-v2v does not copy additional disks to Glance
           Failure when disk contains an LV with activationskip=y
           virt-v2v doesn't remove VirtualBox additions correctly because of file quoting
           There should be a reminder to avoid user to edit a guest image by multiple tools at
           the same time in guestfish man page
           guestfish can not ll a symbolic link dir or edit a file in it
           guestfish should be able to handle LVM thin layouts
           ppc64le: virt-customize --install fail to detect the guest arch
           Test that trimming in virt-v2v doesn't regress
           Virt-v2v gives an error on a blank disk: part_get_parttype: unknown signature, of the
           output: BYT;
           virt-p2v in non-GUI mode doesn't show any conversion progress or status
           P2V invalid password prints unexpected end of file waiting for command prompt.
           On Ubuntu, virt-builder --install and --update cannot use the network
           virt-v2v: warning: unknown guest operating system: windows windows 6.3 when converting
           win8,win8.1,win2012,win2012R2,win10 to rhev
           Support inspecting docker images without /etc/fstab
           libguestfs cannot inspect recent Fedora / RHEL >= 7 when /usr is a separate partition
           P2V: invalid conversion server prints unexpected end of file waiting for password
           virt-rescue --selinux can not work well, when enable selinux in the command line the
           value of 'getenforce' is still Disabled in virt-rescue appliance
           ARM 32 bit on Ubuntu: warning: cast to pointer from integer of different size
           NetworkManager avc unlink denied for resolv.conf after using --selinux-relabel
           RFE: virt-sysprep має враховувати роботу SELinux
           RFE: virt-p2v: display more information about storage devices
           SELinux handling could be done better.


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

   Нові можливості
       Нові інструменти

       Новий засіб virt-v2v-copy-to-local(1), який є допоміжним для virt-v2v(1), надає вам змогу
       перетворювати початкові гостьові системи, до яких virt-v2v не може отримати безпосередній

       Нові можливості у наявних інструментах

       Virt-customize тепер знає, як записати породжувач випадковості до CirrOS (Pino Toscano).

       У Fedora virt-customize запускає dnf(8) з прапорцем --best, забезпечуючи те, що програма
       завжди оновлює систему до найсвіжіших доступних пакунків.

       Virt-builder тепер містить 32-бітові шаблони для Fedora.

       Параметр virt-builder і virt-customize --install тепер працює у 32-бітових гостьових
       системах Fedora. Раніше його використання призводило до спроби встановити 64-бітові
       пакунки (Jan Sedlák).

       Virt-builder тепер може отримувати образи для хмар за допомогою метаданих Simple Streams
       v1.0 (Pino Toscano).

       Virt-builder тепер може отримувати хмарні образи openSUSE без додаткових налаштовувань
       (Cédric Bosdonnat).

       Virt-customize тепер використовує стійкіше типове шифрування паролів (SHA-512) у openSUSE
       ≥ 11 (Pino Toscano).

       Virt-builder тепер правильно обробляє вихідні назви файлів, що містять символи двокрапок
       (":"), і створює тимчасові файли у каталогу кешу libguestfs безпосередньо, замість
       типового /tmp (Pino Toscano).

       Virt-resize має новий параметр --unknown-filesystems для керування тим, що робити, якщо
       програму попросять змінити розмір файлової системи, спосіб зміни якої libguestfs не є

       Virt-v2v тепер має прапорець або режим --in-place, який уможливлює перетворення на місці
       гостьових систем (Roman Kagan).

       Virt-v2v має параметр --compressed для створення стиснених файлів виведення qcow2.

       Virt-v2v тепер може правильно отримувати шлях до датацентру VMware (dcPath) від libvirt,
       замість визначення його за допомогою алгоритму, який іноді визначає помилкову відповідь
       (Matthias Bolte, Tingting Zheng).

       Virt-v2v тепер правильно обробляє розміри оперативної пам'яті для 64-бітових гостьових
       систем, якщо програму запущено у 32-бітовій основній системі.

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

       У програмах мовами Perl і Python програмний інтерфейс "get_program_name" тепер повертає
       справжню назву програми, а не помилковий рядок "perl" або "python".

       Прив'язки до Python тепер можна зібрати для іншої версії libguestfs, що уможливлює
       збирання модуля pip для будь-якої версії libguestfs (замість строгої вимоги щодо однакових
       версій модуля pip і libguestfs).

       Поліпшено якість документації Ruby rdoc (Pino Toscano).

       У скриптах Perl більше немає рядка із жорсткою прив'язкою до розташування інтерпретатора
       perl, замість цього використовується env(1) (Pino Toscano).

       У програмах мовою OCaml дескриптор guestfs помилково вказував на загальну кореневу файлову
       систему, тобто його ніколи не можна було обробити засобом збирання сміття. Якщо ви не
       викликали функцію "close" явним чином, дескриптор не закривався, аж доки не завершувала
       роботу уся програма. Тепер цю помилку виправлено, отже дескриптори можуть прибиратися
       засобом збирання сміття у звичний спосіб. Це призвело до зміни програмного інтерфейсу
       функції OCaml "Guestfs.event_callback". Зауважте, що прив'язки до мов, відмінних від C, не
       мають гарантій щодо незмінності програмного інтерфейсу та бінарної сумісності, хоча ми і
       намагаємося не змінювати їх, але у цьому випадку зміна була важливою, оскільки надала
       змогу виправити дуже серйозну ваду.


       Тепер розпізнаються Alpine Linux та засіб керування пакунками APK, ALT Linux, Frugalware
       та PLD Linux (Pino Toscano).

       Якщо існує /etc/os-release дані з нього матимуть пріоритет над безпосереднім
       інспектуванням гостьових систем Linux (Pino Toscano).

       Тепер повертається правильна версія ядра для гостьових систем Windows ≥ 10.


       Велику сторінку підручника з guestfs(3) поділено на декілька окремих сторінок підручника:
       guestfs-hacking(1) guestfs-internals(1) guestfs-security(1). Ця документація міститься у
       новому каталозі docs ієрархії коду.

       Архітектури і платформи

       У новій версії libguestfs передбачено підтримку 64-бітовий платформ ARM з vGICv3.

       Див. також guestfs-security(1).


           Це не вразливість у libguestfs, але оскільки ми завжди надаємо порт virtio-serial для
           кожної гостьової системи (оскільки так здійснюється обмін даними між гостьовою і
           основною системами), можливе проникнення з базової системи до процесу qemu основної
           системи. Це може стосуватися таких випадків:

           ·   ваша програма libguestfs запускає ненадійні програми з гостьової системи (за
               допомогою "guestfs_sh" тощо) або

           ·   у коді файлових систем ядра буде виявлено іншу властивість (наприклад), яка надає
               змогу відповідним чином створеній файловій системі захопити контроль над базовою

           Якщо ви використовуєте sVirt для обмеження qemu, це може запобігти деяким нападам.

       Права доступу virt-customize до .ssh, .ssh/authorized_keys

           Раніше, якщо надходила команда щодо вставляння ключа SSH до гостьової системи, virt-
           customize (а отже, virt-builder) створювала каталог .ssh і файл .ssh/authorized_keys
           із надто широким доступом, що надавало стороннім користувачам доступ до читання цих
           даних. Тепер цей каталог і файл створюються з правами доступу 0700 і 0600, відповідно,
           що збігається із правилами, які використовує програма ssh-copy-id(1).

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

           Отримати або встановити окремий для обробника ідентифікатор. Основним ефектом цього є
           зміна виведення trace з такого:

            libguestfs: trace: foo

           на таке:

            libguestfs: trace: ID: foo

           що спрощує стеження за трасуванням у багатопотокових програма або там, де програма
           використовує декілька дескрипторів (особливо virt-v2v).

           Повертає мінімальний розмір файлової системи (після стискання). Передбачено підтримку
           ext2/3/4, XFS і btrfs, у майбутньому можлива підтримка інших файлових систем (Maxim

       Інші зміни у програмному інтерфейсі

       "guestfs_disk_create": додано "preallocation" = "off"/"metadata"/"full".
           Для raw це уможливлює "off" як синонім "sparse" (робить сумісним із qcow2). Для qcow2
           це уможливлює "sparse" як синонім "off".

           Це також додає "full", який відповідає повному розміщенню, але використовує
           posix_fallocate(3) для забезпечення ефективності.

       "guestfs_tar_in": нові параметри "xattrs", "selinux", "acl".
       "guestfs_tar_out": нові параметри "xattrs", "selinux", "acl".
           Ці додаткові параметри керують тим, чи буде відновлено розширені атрибути, контексти
           SELinux і/або ACL POSIX з /, збережених у архівах tar.

           Наявними параметрами "username" і "secret" можна скористатися для надання підтримки
           розпізнавання для iSCSI (Pino Toscano).

   Зміни у збиранні
       Вилучено параметр "./configure --enable-valgrind-daemon".

       Тепер libguestfs не можна зібрати на дистрибутивах ери RHEL 5 (близько 2007 року). Див.
       гілку "oldlinux", якщо вам потрібна (обмежена) підтримка RHEL 5.

       Virt-p2v тепер можна зібрати на дистрибутивах Linux ери RHEL 6 (близько 2010 року).

       Тепер для збирання з git потрібен OCaml ≥ 3.11 (випущено у 2008 році).

       Для збирання прив'язок до Perl тепер потрібен "Module::Build" (замість

       Збирання має пришвидшитися (особливо нарощувальне повторне збирання), оскільки виконано
       певну роботу із зменшення тривалості збирання.

       Для запуску генератора під час збирання потрібні OCaml і модуль findlib OCaml. Раніше
       збирання завершувалося помилкою, якщо не було встановлено findlib.

       Тести "make check" тепер виконуються у паралельному режимі (у межах кожного з каталогів

       "make install" тепер встановлює файли OCaml bindtests.* правильно.

       "make install" тепер можна запускати двічі. Раніше, під час другого запуску видавалося
       повідомлення про помилку.

       "make clean" тепер має вилучати майже усі файли, які створює "make".

       Додано нове правило "make installcheck", яке уможливлює тестування встановленої версії

   Внутрішня частина роботи програми
       Певних зусиль було докладено до мінімізації розміру базової системи, що зменшило об'єм
       тимчасового диска і час, потрібний на обробку у libguestfs.

       Базова система тепер передає назву NIC до dhcpd, це виправляє повисання під час роботи
       базової системи у деяких дистрибутивах (Cédric Bosdonnat).

       Тепер створюється "Guestfs.Errno" OCaml (Pino Toscano).

       У засобах мовою OCaml загальний код тепер обробляє --debug-gc, --verbose та інші загальні
       параметри (Roman Kagan, Pino Toscano).

       Комплекс тестування virt-v2v надає нам змогу завантажувати тестовані гостьові системи у
       фіксовані моменти часу у минулому, забезпечуючи надійну роботу системи повторної активації

       Реалізовано новий внутрішній програмний інтерфейс для читання і запису підпроцесів за
       допомогою каналу з коду бібліотеки.

       Використано програму "deheader" для вилучення невикористаних інструкцій "#include".

       У засобах мовою OCaml модулі "Char" і "String" тепер наявно посилаються на модулі
       "Common_utils.Char" і "Common_utils.String" (замість модулів зі stdlib). Модулі
       "Common_utils" містять декілька додаткових допоміжних функцій для роботи із символами і
       рядками, а також приховування деяких незахищених функцій у stdlib.

       Тепер запускається набагато більше тестів virt-v2v, навіть якщо не встановлено rhsrvany і
       virtio-win (Roman Kagan).

       Величезний файл було поділено на декілька менших файлів із назвами

       Застарілі каталоги tests/data і tests/guests було пересунуто до test-data/. Цей новий
       каталог верхнього рівня містить усі дані засобів тестування, які є спільними, великим
       і/або використовуються у декількох тестах.

       Створено новий каталог верхнього рівня website/, який містить загальнодоступні дані сайта (або більшу частину цих даних).

       Нечітке тестування засобів інспектування (tests/fuzz) було вилучено.

       Virt-p2v тепер зберігає виведення dmesg фізичної машини джерела до каталогу діагностичних
       даних сервера перетворення, що діагностику у випадку нестачі драйверів, мікропрограми

   Виправлені вади
           set-label повертає помилкове повідомлення про помилку, якщо встановлено мітку файлової
           системи ext3/ext4
           Add a Fedora 23 32-bit base image for virt-builder
           virt-builder записує тимчасові файли до /tmp
           virt-resize не копіює логічні розділи
           virt-inspector повертає версію 6.3 для образів win10 (має повертати 10.0)
           virt-inspector --xpath segfault on attribute get
           libguestfs can run commands with stdin not open (or worse still, connected to
           arbitrary guest-chosen random devices)
           Про параметр стискання для qcow2
           guestfish should be able to handle LVM thin layouts
           DNF python programming error when run from virt-builder
           inspection returns arch="unknown" for Windows guest if file command is not installed
           Document permissions needed for non-admin users to use virt-v2v
           RFE: virt-sparsify: make '--in-place' sparsification safe to abort (gracefully or
           Virt-p2v client shouldn't present the vdsm option because it's not usable
           virt-v2v fails to convert Windows raw image: error "device name is not a partition"
           virt-builder: error: [file] is not a regular file in the guest
           Simplestreams test fails: virt-builder: error: the value for the key 'size' is not an
           guestfish copy-in command behaves oddly/unexpectedly with wildcards
           python: Cannot compile pip module if installed libguestfs != pip guestfs version
           Better diagnostic message when virbr0 doesn't exist
           No warning shows when convert a win7 guest with AVG AntiVirus installed
           virt-builder --ssh-inject doesn't set proper permissions on created files
           RFE: V2V to check and warn user to disable group policy and anti virus on Windows
           Wrong graphics protocal and video type set for guest after convert to rhev 3.6 by
           extra slashes in vcenter URL confuses virt-v2v
           [RHEV][V2V] virt-v2v ignores NIC if interface source/@network or source/@bridge is an
           empty string
           virt-builder created Fedora 22 32bit disk image cannot be updated
           virt-p2v no GUI mode:error opening control connection to $ip:22:unexpected …rompt
           Option -oa preallocated -of qcow2 of virt-v2v didn't work efficiently
           v2v: у шляхах пробіли слід екранувати, ось так: %20
           Закрити усі вхідні порти на образі ISO virt-p2v
           man virt-customize показував короткий опис двічі
           mount-loop failed to setup loop device: No such file or directory
           BUG: unable to handle kernel NULL pointer dereference at <addr> in function
           virt-v2v should ignore bogus kernel entries in grub config
           Unrelated info in fstab makes virt-v2v fail with unclear error info
           virt-p2v: Using "Back" button causes output list to be repopulated multiple times
           Wrong video driver is installed for rhel5.11 guest after conversion to libvirt
           RFE: virt-builder creates qcow v3 images, add build option for qcow v2
           File /etc/sysconfig/kernel isn't updated when convert XenPV guest with regular kernel
           "lstatnslist" and "lstatlist" don't give an error if the API is used wrongly
           koji spin-livecd cannot build a working live CD
           mount-loop command fails: mount failed: Unknown error -1
           set-label can only set <=127 bytes for btrfs and <=126 bytes for ntfs filesystem which
           not meet the help message. Also for ntfs it should give a warning message when the
           length >128 bytes
           libvirt fails to shut down domain: could not destroy libvirt domain: Requested
           operation is not valid: domain is not running
           mount-loop failed to setup loop device: No such file or directory


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

   Нові можливості
       Нові інструменти

       virt-dib(1) є безпечною і захищеною альтернативою до програми «diskimage-builder» з
       OpenStack. Вона сумісна із елементами diskimage-builder. (Pino Toscano)

       virt-get-kernel(1) видобуває ядро і диск у пам'яті з образу диска. Раніше ця функціональна
       можливість була частиною virt-builder(1), але нова програм є ширшою за можливостями. (Pino

       Нові можливості у наявних інструментах

       У режимі virt-v2v(1) -i ova програма тепер здатна читати ширший діапазон файлів OVA, а
       також незапаковані файли (каталоги).

       virt-v2v тепер безпечно передає параметри до curl, отже, паролі, куки та інші дані будуть
       недоступними для перегляду іншими користувачами із доступом до командної оболонки та
       комп'ютері основної системи.

       У virt-v2v передбачено новий параметр --password-file, який надає вам змогу безпечно
       передати пароль і уникнути роботи із інтерактивним рядком запиту.

       virt-v2v вимикає автоматичне перезавантаження Windows, щоб робить діагностику помилок при
       перетворенні Windows простішою.

       virt-v2v тепер постачається із широким зовнішнім комплектом для тестування. Див.

       virt-v2v надає змогу використовувати драйвери virtio з будь-якого місця (Roman Kagan),
       драйвери тепер може бути прочитано безпосередньо з образу ISO virtio.

       У virt-v2v передбачено перетворення Windows ≥ 8. Зауважте, що ця можливість є
       експериментальною. Користуйтеся нею обережно.

       virt-v2v тепер може перетворювати гостьові системи з UEFI.

       До virt-p2v(1) додано діалог налаштовування мережі.

       virt-p2v тепер має перемикачі "p2v.pre", "" і "", які уможливлюють
       довільні скрипти для приготування перетворення і коригування після перетворення.

       У virt-p2v тепер використовується досконаліший засіб керування вікнами metacity (замість

       virt-sysprep(1) тепер вилучає "/var/spool/mail/ім'я_користувача" для облікових записів,
       відмінних від root (Hu Tao).

       virt-customize(1), virt-builder(1) і virt-sysprep тепер мають такі нові параметри:

           надає змогу читати довгі списки команд з файла, а не з командного рядка (Pino Toscano)

           копіює файли до гостьової системи (Maros Zatko)

           рекурсивно копіює файли з основної системи до гостьової (Pino Toscano)

           пересуває файли у гостьовій системі (Maros Zatko)

           вставляє ключі SSH до гостьової системи (Pino Toscano)

           реєструє і скасовує реєстрацію гостьової системи у subscription-manager (Pino Toscano)

           актуалізує часову позначку файла у гостьовій системі (Pino Toscano)

           обрізає файли (Maros Zatko)

       Поліпшення у підтримці firstboot у virt-customize. Зокрема у Windows firstboot має
       працювати як і у Linux (Roman Kagan).

       virt-df(1) тепер може використовувати PolicyKit, SASL та інші способи розпізнавання при
       отриманні списку доменів від libvirt.

       Поліпшення у доповненні команд guestfish у bash (Pino Toscano).

       Засіб доповнення команд у bash тепер доповнює і скорочені форми запису параметрів, і повні
       (Pino Toscano).

       guestfish(1) тепер показує короткий опис команди, якщо через командний рядок передається
       помилкова кількість параметрів (Hu Tao).

       У virt-builder тепер передбачено підтримку Red Hat Enterprise Linux версій, ах до RHEL 3.

       У virt-builder передбачено підтримку гостьових систем SUSE, де використовується zypper
       (Cédric Bosdonnat).

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

       До прив'язок до Java тепер включено перевірені Javadoc, інші поліпшення (Pino Toscano).

       Декілька виправлень і поліпшень у прив'язках до PHP (Pino Toscano).


       Засіб інспектування тепер може отримувати піктограми з RHEL 7 та CentOS 7.

       /etc/favicon.png тепер може бути символічним посиланням.

       У заснованих на RPM гостьових системах засіб інспектування тепер повертає поля Epoch RPM.

       Пакунки Debian тепер мають окремі поля Epoch і Version (Nikos Skalkotos).

       Додано виявлення OpenBSD, FreeBSD і NetBSD додано як окремі дистрибутиви, інші поліпшення
       у інспектуванні BSD та виправлення вад (Nikos Skalkotos).

       Додано виявлення CoreOS (Nikos Skalkotos).

       Засобом керування пакунками у Fedora ≥ 22 є "dnf".

       Тепер можна інспектувати гостьові системи ReactOS (Maros Zatko).

       Додано підтримку гостьових систем UEFI.

       Інспектування тепер працює, якщо модулі ядра стиснуто за допомогою gzip або xz (Pino

       Засіб інспектування тепер розпізнає гостьові системи ppc64 і ppc64le (Maros Zatko).

       Засіб інспектування тепер може показувати списки встановлених програм у гостьових системах
       Archlinux (Nikos Skalkotos).

       Архітектури і платформи

       Тепер підтримка архітектур PPC64 (POWER7) і PPC64LE (POWER8) є набагато ліпшою і має
       працювати без додаткових налаштовувань.

       Для aarch64 ми використовуємо AAVMF (реалізацію UEFI з відкритим кодом на основі OVMF),
       якщо вона доступна, для запуску базової системи.

       Для armv7 ми тепер використовуємо типово тип комп'ютера -M virt.

       Реалізовано кращу підтримку збирання на платформах, відмінних від Linux (Pino Toscano,
       Margaret Lewicka).

       Тепер libguestfs має працювати на 32-бітових MIPS з прямим порядком байтів ("mipsel"). Не
       вдалося перевірити 64-бітову версію або версію зі зворотним порядком байтів.

           Libguestfs раніше запускала програму strings(1) для недовірених файлів. Strings могла
           обробляти заголовки BFD у незахищений спосіб, що могло призвести до виконання
           довільного коду. Тепер libguestfs запускає strings з прапорцем для забезпечення того,
           щоб заголовки BFD не оброблятимуться. Обробка заголовків могла призвести до втручання
           у роботу базової системи libguestfs, але оскільки libguestfs додатково обмежує базову
           систему через віртуалізацію, SELinux та інші методики, це навряд чи могло призвести до
           розширення прав доступу в основній системі.

       XPath-ін'єкція у virt-v2v
           Було виправлено одну вразливість, пов'язану із XPath-ін'єкцією у virt-v2v. Вразливість
           могла призвести до того, що код зловмисника у гостьовій системі, яка перетворюється за
           допомогою virt-v2v, будував довільний вираз XPath, який мало бути оброблено у основній
           системі (за допомогою бібліотеки libxml2, скомпонованої із виконуваним файлом
           virt-v2v). Незрозуміло, яким міг бути ефект від усього цього.

           Щоб дізнатися більше, ознайомтеся із внеском

       Проблеми із відмовою у обслуговуванні при використанні "qemu-img info"
           Використовуючи American Fuzzy Lop fuzzer ("afl-fuzz") на програмі "qemu-img info",
           Richard W.M. Jones виявив, що певні файли можуть спричинити до надмірного використання
           пам'яті та часу процесора у програмі "qemu-img" (наприклад, 6 ГБ оперативної пам'яті
           та 14 секунд процесорного часу на швидкому процесорі Intel), а іноді призводити до
           аварійного завершення роботи програми. Оскільки libguestfs може запускати "qemu-img
           info" на образах диска для визначення їхнього вмісту, це могло призвести до повисання
           або споживання надмірного об'єму пам'яті самою libguestfs.

           До libguestfs було внесено зміни щодо обмеження споживання ресурсів за об'ємом і
           часом, які стосуються "qemu-img info" і усувають вказану проблему. Якщо зловмисник
           спробує передати один зі спеціально створених образів диска libguestfs, "qemu-img"
           завершить роботу в аварійному режимі і поверне керування libguestfs, надавши дані щодо
           аварії як повідомлення про помилку.

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

           Це розкриває раніше закритий програмний інтерфейс, який надає вам змогу передавати
           об'єкт "virDomainPtr" безпосередньо від libvirt до libguestfs.

           Коригує параметр readahead для пристроїв. Див. команду "blockdev --setra".

           Підтримка балансування для файлових систем Btrfs (Hu Tao).

           Підтримка дефрагментації файлових систем для файлових систем Btrfs (Hu Tao).

           Створює образ файлової системи Btrfs (Chen Hanxiao)

           Підтримка квот для файлових систем Btrfs (Hu Tao).

           Сканування і відновлення ієрархії фрагментів у файлових системах Btrfs (Hu Tao).

           Відновлення суперблоків у файлових системах Btrfs (Hu Tao).

           Заміна пристрою у файловій системі Btrfs (Cao Jin).

           Витирання файлової системи Btrfs (Hu Tao).

           Отримання типового підтому файлової системи Btrfs (Hu Tao).

           Виведення докладної інформації щодо підтому файлової системи Btrfs (Hu Tao).

           Різноманітні параметри налаштовування для файлових систем Btrfs (Chen Hanxiao).

           Повертає вказівник C на підлеглий "guestfs_h *". Це надає змогу працювати спільно
           прив'язкам libguestfs та прив'язкам з інших бібліотек. Докладніше про це тут:

           Гнучкі програмні інтерфейси для рекурсивного копіювання каталогів з файлами між
           основною і гостьовою файловими системами. Раніше цими можливостями можна було
           скористатися лише у командах guestfish, тепер же ними можуть користуватися будь-які
           засоби, які використовуються програмний інтерфейс (Pino Toscano).

           Отримання і встановлення GUID для окремих розділів GPT.

           Отримання типу розділу MBR (Chen Hanxiao).

           Встановлює для UUID файлової системи випадкове значення; підтримувані файлові системи
           у поточній версії — ext2/3/4, XFS, Btrfs та розділи swap (Chen Hanxiao).

       Інші зміни у програмному інтерфейсі

       "guestfs_disk_create" тепер може використовувати файли VMDK як файли резервної пам'яті.

       "guestfs_btrfs_subvolume_snapshot" приймає додаткові необов'язкові параметри (усі додано
       Hu Tao):

           для створення придатного лише для читання знімка Btrfs

           для додавання знімка до qgroup

       "guestfs_btrfs_subvolume_create" також може приймати необов'язковий параметр "qgroupid"
       (Hu Tao).

       "guestfs_set_uuid" може встановлювати UUID розділів резервної пам'яті (swap), Btrfs (Hu
       Tao, Chen Hanxiao).

       "guestfs_copy_device_to_file" і "guestfs_copy_file_to_file" мають новий необов'язковий
       параметр "append", за допомогою якого ви можете дописувати дані до файла виведення,
       замість його заповнення від початку.

       "guestfs_mkfs" має новий необов'язковий параметр "label" для встановлення початкової мітки
       нової файлової системи (Pino Toscano).

       "guestfs_set_label" і "guestfs_set_uuid" тепер встановлюють "ENOTSUP" як номер помилки,
       якщо немає реалізованої підтримки файлової системи вказаного монтованого пристрою (Chen

       Змінні середовища тепер надають вам змогу написати "LIBGUESTFS_DEBUG=true",
       "LIBGUESTFS_DEBUG=0" тощо.

       Увесь програмний інтерфейс "guestfs_sfdisk*" визнано застарілим. Оскільки sfdisk(8) було
       переписано у несумісний спосіб у головній гілці розробки, ми не рекомендуємо
       використовувати ці програмні інтерфейси у новому коді. Користуйтеся його замінниками —

       Програмні інтерфейси, зокрема "guestfs_download", не обрізають /dev/stdout або /dev/stderr
       під час запису до них, тобто, якщо ви переспрямовуєте stdout або stderr до файла, файл
       більше не обрізається.

   Зміни у збиранні
       Фонова служба більше не використовує власну окрему копію gnulib. Замість цього, вона
       спільно використовує єдину копію з бібліотекою.

       Тепер автоматично створюються файли OCaml .annot, отже комплексні середовища для розробки
       та редактори, зокрема emacs і vi, можуть здійснювати навігацію типами OCaml у початковому
       коді програм.

       Різноманітні виправлення з метою уможливити збирання на різних основних системах та за
       різних архітектур (Pino Toscano).

       Тепер для збирання усіх програм OCaml безпосередньо використовується automake, замість
       ситуативних правил Makefile. Одним із побіжних ефектів цього є те, що тепер можна бачити
       попередження щодо усього коду C, який використовується програмами мовою OCaml.

       Для збирання використано "-fno-strict-overflow", що уникнути неоднозначних оптимізацій з
       боку GCC.

       Чищення коду з метою підтримки GCC 5.

       Для виконання деяких тестів OCaml потрібна бібліотека OCaml OUnit2.

       Знову має працювати створення статично скомпонованого libguestfs.a.

       Ми більше не використовуємо підкаталог src/api-support і скрипти у ньому. Замість цього,
       дані зберігаються у generator/, коли до libguestfs додається програмний

       Службу перекладу змінено з Transifex на Zanata.

       Виконано багато перекладів, інтерфейсу бібліотеки і програм та документації.

   Внутрішня частина роботи програми
       У всіх інструментах мовою OCaml тепер є загальні функції "error", "warning", "info" та
       загальний спосіб встановити і отримати прапорці --quiet, -x (трасування) та -v (докладний
       режим) і використовується однорідне підсвічування кольором.

       Для спрощення конструкторів і деструкторів PCRE використовуються макроси "COMPILE_REGEXP".

       У генераторі нарешті реалізовано аргументи "Pointer".

       У внутрішніх ідентифікаторах більше не використовуються подвійні і потрійні підкреслювання
       (наприклад, "guestfs___program_name"). Такі ідентифікатори є некоректними у програмах C99
       та C++, хоча компілятори і можуть їх використовувати.

       Фонова служба більше не обробляє параметри "guestfs_*" від /proc/cmdline. Замість цього,
       вона приймає лише звичайні параметри командного рядка. Скрипти ініціалізації базової
       системи перетворюють дані /proc/cmdline у параметри командного рядка фонової служби.

       Тести тепер можуть запускати фонову службу як «полонений процес», що уможливлює її роботу
       безпосередньо у основній системі. Головною перевагою цього є те, що ви можемо запускати
       valgrind безпосередньо для фонової служби під час тестування.

   Виправлені вади
           virt-v2v error reporting when grub.conf cannot be parsed by Augeas
           v2v:Duplicate disk target set when convert guest with cdrom attached
           Virtio drivers are not installed for windows 2008 guests by virt-v2v
           virt-v2v Support for Fedora virtio-win drivers
           Virt-v2v gives an error on a blank disk: part_get_parttype: unknown signature, of the
           output: BYT;
           virt-p2v in kernel command line mode should power off the machine after conversion
           virt-p2v no GUI mode appends \n to the final command line parameter
           virt-sysprep at cleanup deletes /var/spool/at/.SEQ which results in failing at
           "Doing conversion……" still shows after cancel the conversion from virt-p2v client
           Memory leak in virNetSocketNewConnectUNIX
           virt-v2v: warning: unknown guest operating system: windows windows 6.3 when converting
           win8,win8.1,win2012,win2012R2 to rhev
           virt tools should print the same format of version string
           RFE: virt-builder --touch
           virt-builder --selinux-relabel flag fails on cross-architecture builds
           RFE: virt-inspector xpath query should output a neat format of the query element
           virt-builder firstboot-command fails: File name too long
           virt-inspector gives incorrect arch (ppc64) for ppc64le guest
           RFE: virt-customize --move and --copy
           index-parser can't parse systemd mount files properly
           virt-builder --upload option doesn't work to a FAT partition
           virt-builder -x option on its own does not enable tracing
           `virt-builder` should create $HOME/.cache directory if it already doesn't exist
           Virt-builder fingerprint is required even when no check desired
           virt-resize should preserve GPT partition UUIDs, else EFI guests become unbootable
           Performance regression in virt-builder when uncompressing image
           virt-v2v should support gzip format ova as input
           virt-sparsify should ignore read-only LVs
           "mknod-b", "mknod-c", and "mkfifo" do not strip non-permissions bits from "mode"
           virt-v2v ignores sound device when convert xen guest to local kvm
           Друкарська помилка у «help ping-daemon»
           "parse-environment" and "parse-environment-list" fail to parse "LIBGUESTFS_TRACE = 0"
           "is-blockdev"/"is-blockdev-opts" fail to detect "/dev/sda"
           RFE: Allow v2v conversion of Oracle Linux 5.8 VMware VM
           New virt-v2v failure: CURL: Error opening file: NSS: client certificate not found
           (nickname not specified): Invalid argument
           Graphics password disappear after conversion of virt-v2v
           The listen address for vnc is changed after conversion by virt-v2v
           Засіб інспектування вважає розділ EFI окремою операційною системою
           virt-v2v conversion of RHEL 3 guest fails with: All of your loopback devices are in
           Conversion of RHEL 4 guest fails: rpm -ql 1:kernel-utils-2.4-23.el4: virt-v2v: error:
           libguestfs error: command_lines:
           virt-v2v picks debug kernels over non-debug kernels when versions are equal
           virt-sparsify: libguestfs error: qemu-img info: 'virtual-size' is not representable as
           a 64 bit integer
           virt-resize --expand fails on ubuntu-14.04.img image (regression)
           warning: fstrim: fstrim: /sysroot/: FITRIM ioctl failed: Operation not supported
           (ignored) when convert win2003 guest from xen server
           p2v: No Network Connection dialog
           virt-p2v fails with error:"nbd.c:nbd_receive_negotiate():L501: read failed"
           Remove "If reporting bugs, run virt-v2v with debugging enabled .." message when
           running virt-p2v
           "Conversion was successful" pop out even virt-p2v fails
           virt-v2v: warning: ova hard disk has no parent controller when convert from a ova file
           virt-resize should give out the detail warning info to let customers know what's going
           File "/boot/grub2/" showing is not right after converting a rhel7 guest from
           esx server
           mount-loop command fails: mount failed: Unknown error -1
           Disable "cancel conversion" button after virt-p2v conversion finished
           Provide Reboot/Shutdown button after virt-p2v
           Booting in qemu found no volume groups and failed checking the filesystems
           The description of 'help append' is not accurately, it add the kernel options to
           libguestfs appliance not the guest kernel
           Друкарські помилки у сторінках man
           Inspect-get-icon failed on RHEL7 guest
           xfs should also give a warning out to let customer know the limitation
           Failed to import guest with "rtl8139" nic to openstack server after converted by v2v
           virt-sysprep firstboot script is not deleted if it reboot a RHEL 7 guest
           esx win2008 32 bit guest fail to load after conversion because the firmware isn't ACPI
           libvirt backend does not set RBD password
           Use password file instead of process interaction
           virt-p2v-make-disk should add firmwares
           libguestfs FTBFS on f21 ppc64le
           virt-inspector support adding a remote disk, but in its man page -a URI / --add URI is
           Virt-v2v will fail when using relative path for -i ova
           Redundancy whitespace at the end of directory name when use <TAB> to complete the
           directory name in guestfish with a xfs filesystem in guest
           virt-v2v will hang when converting esx guest before disk copy phase
           virt-v2v / qemu-img fails on ova image
           virt-ls should remove '/' in the output when specify the directory name as /etc/
           Should also add a field for directory files when run virt-ls with --csv option
           virt-v2v conversions from VMware vCenter server run slowly
           virt-v2v fail to convert guest with disk type volume
           Input/output error during conversion of esx guest.
           [RFE] virt-builder should support copying in a directory/list of files
           [abrt] livecd-tools: [Errno 2] No such file or
           virt-sparsify fails if a btrfs filesystem contains readonly snapshots
           RFE: allow passing in a pre-opened libvirt connection from python
           Security context on image file gets reset
           [RFE] virt-v2v should check whether guest with same name exist on target first then
           transfer the disk
           RFE: virt-p2v: display more information about network devices such as topology,
           bonding, etc.
           p2v client should have largest number restrictions for CPU and Memory settings
           hivex cannot read registry hives from ReactOS
           virt-inspector cannot detect ReactOS
           installation via NFS doesn't seem to work


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

       Shellshock (bash CVE-2014-6271)
           Вада у bash опосередковано торкнулася libguestfs. Докладніша інформація:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       Скрипт було виправлено — він більше не створює порожнього файла "BUGS",
       якщо сервер системи звітування щодо вад є недоступним.

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

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

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

   Виправлені вади
           порожнє (але встановлене) LIBGUESTFS_BACKEND виводить libguestfs: помилка: некоректний
           Пакунок libguestfs-bash-completion містить файл file
           /usr/share/bash-completion/completions/virt-log, але у цьому файлі немає функції
           друкарська помилка у сторінці man virt-edit
           virt-v2v conversions from VMware vCenter server run slowly
           virt-v2v: warning: display <graphics type='sdl'> was ignored when converting rhel5
           guest with sdl graphics
           'copy-file-to-file /src /dest' create file /dest even if command 'copy-file-to-file
           /src /dest' failed
           Can not find "RECURSIVE LONG LISTING" in 'man virt-diff'
           virt-v2v does not fstrim data disks and non-mounted filesystems
           Exporting 2+ disk guest to RHEV, only one disk shows after import
           virt-filesystems: incorrect LVM vg name when listing Fedora 21 Alpha Atomic image
           Не вистачає параметра --no-selinux-relabel
           RFE: Allow qemu-bridge-helper to be used to implement guestfs_set_network
           virt-v2v prints warning: /files/etc/fstab/8/spec references unknown device "cdrom"
           regression setting root password with virt-builder/virt-customize
           virt-v2v -v -x during windows guest conversion will hang at hivex: hivex_open: used
           block id ……
           Improve the error info when converting windows guest with unclean file system
           virt-v2v fails to convert win7 guest
           RFE: stat calls do not return nanosecond timestamps
           futimens() is a no-op via guestmount
           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
           virt-customize option '--password-crypto' do not work
           Warning shows when converting guests to rhev:chown: changing ownership of
           ‘/tmp/v2v.u48xag/*.ovf’: Invalid argument
           warning shows when converting rhel7 guest:virt-v2v:could not update grub2 console:
           aug_get: no matching node (ignored)
           virt-v2v fails with error: cannot open Packages index using db5
           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'
           virt-sysprep option '--mount-options' don't work well
           Illegal command 'part-get-name /dev/sda1 1' cause libguestfs appliance crashed
           virt-v2v prints warning:WARNING:/files/boot/grub/ references unknown device
           virt-v2v: error: disk sda has no defined format shows when converting xen hvm guest
           [RFE] virt-v2 should support convert a domain with using domain's UUID instead of
           domain name
           [RFE] virt-v2 should support convert a guest to a dir-pool with using pool's uuid
           virt-sysprep option '--user-accounts' don't work well
           virt-v2v fails to convert xen pv guests.
           virt-v2v fails to convert esx guests
           qemu-img shows error message for backing file twice
           No error messages output if append '--format qcow2' after '-a guest.img', guest.img is
           a raw format image file
           virt-builder option '--format' don't work well
           RFE: Export to RHEV data domain
           No error shows when multiple conflicting options used with virt-v2v
           Improve the error info when converting xen guest with no passwordless SSH access
           Improve the error info when converting guest with no space left
           No error shows when converting running guest with virt-v2v
           virt-v2v will fail when converting guests with initramfs-*kdump.img under /boot
           xen guest will be kernel panic after converted by virt-v2v
           Annoying message about permissions of /dev/kvm
           libguestfs 'direct' backend should close file descriptors before exec-ing qemu to
           avoid leaking !O_CLOEXEC fds
           virt-sparsify overwrites block devices if used as output files
           Empty fstab breaks libguestfs inspection
           Guestfs.Error("vgchange_uuid_all: Volume group has active logical volumes")
           virt-win-reg manual page is corrupted
           root gets an error accessing to a non-root dir on a snapshot guestmount VMDK img
           These APIs also need to add to `guestfish -h` command list
           Список пакунків mageia є помилковим
           libguestfs 1.27.13 does not build due to libxml library order
           RFE: non-polling mechanism to detect guestmount --no-fork readiness
           scrub-file can't handle link file
           Друкарські помилки у сторінках man
           RFE: virt-builder aliases
           virt-builder "proxy=off" setting doesn't turn off the proxy for downloads
           virt-sparsify man failes to mention what happens to snapshots within a qcow2 image
           (they are discarded)
           virt-builder: If several repos contain the same os-version images, then they are
           duplicated in -l output
           tar-in-opts execute failed that cause libguestfs appliance crashed
           virt-resize: libguestfs error: part_set_name: parted: /dev/sdb: Error during
           translation: Invalid or incomplete multibyte or wide character
           virt-builder cannot write to a block device
           Ruby tests fail with latest Ruby
           virt-sparsify --in-place cannot sparsify as much as it should
           virt-df cannot report used disk space of windows guest when updated to 6.5
           virt-builder error: "syntax error at line 3: syntax error"
           virt-sparsify overwrites block devices if used as output files
           virt-rescue cannot set ≥<rescue> prompt, on Ubuntu 12.04


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

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

       virt-customize(1) — новий інструмент для налаштовування образів дисків віртуальної машини.
       За його допомогою ви можете встановлювати пакунки, редагувати файли налаштувань, запускати
       скрипти, встановлювати паролі тощо. virt-builder(1) і virt-sysprep(1) використовують virt-
       customize. Параметри командного рядка усіх цих інструментів тепер є ідентичними.

       virt-diff(1) — новий інструмент для показу відмінностей між файловими системами двох
       віртуальних машин. Основним його призначенням є показ файлів, які було змінено між двома
       знімками віртуальної машини.

       Значно розширено можливості virt-builder(1). Передбачено набагато більше способів
       налаштовування віртуальної машини. Можливе отримання шаблонів з декількох сховищ.
       Паралелізована внутрішня реалізація xzcat пришвидшує розпаковування шаблонів. Virt-builder
       використовує оптимізований планувальник для вибору найшвидшого способу побудови
       віртуальної машини. Тепер простіше користуватися virt-builder з інших програм. Додано
       підтримку перекладу метаданих. Реалізовано ефективнішу процедуру повторного встановлення
       міток SELinux для файлів. Можлива побудова гостьових систем для декількох архітектур.
       Поліпшено повідомлення щодо помилок. (Pino Toscano)

       У virt-sparsify(1) передбачено новий параметр --in-place. Його використання призводить до
       розрідження системи на місці (без її копіювання), що набагато пришвидшує виконання
       завдання. (Значна допомога з боку Paolo Bonzini)

       virt-sysprep(1) може вилучати і витирати файли під керуванням користувача. Ви можете
       заблокувати облікові записи користувачів або встановити випадкові паролі для облікових
       записів. Можна вилучати більше файлів журналу. Можна скасовувати передплату гостьових
       систем у Red Hat Subscription Manager. Новий гнучкий спосіб вмикати і вимикати дії.
       (Wanlong Gao, Pino Toscano)

       У virt-win-reg(1) передбачено можливість використовувати адреси для визначення віддалених
       образів дисків.

       virt-format(1) тепер може повертати отримане додаткове вільне місце основній системі.

       guestfish(1) має додаткові змінні середовища для надання можливості точнішого
       налаштовування за допомогою запиту "><fs>". Guestfish тепер читає його (нечасто
       використовуваний) файл налаштувань у іншому порядку так, що локальні параметри
       перевизначають загальні параметри. (Pino Toscano)

       virt-make-fs(1) було переписано на C, але програма лишилася незмінною за функціональними
       можливостями і використанням командного рядка.

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

       Прив'язки до OCaml містять новий модуль "Guestfs.Errno", який використовується для
       перевірки номерів помилок, які повертає "Guestfs.last_errno".

       Відновлення працездатності тестів PHP. (Pino Toscano)


       Засіб інспектування тепер може розпізнавати образи портативних систем Debian.


       На ARMv7 (32-бітових) тепер передбачено підтримку пришвидшення KVM.

       Передбачено підтримку Aarch64 (ARM 64-бітових), але частина, пов'язана із базовою
       системою, ще не працює.

       Виправлено і удосконалено підтримку PPC64.

       Відмова у обслуговуванні при інспектуванні образів дисків із пошкодженими томами btrfs
           Можна було спричинити аварійне завершення роботи libguestfs (та програм, які
           використовують libguestfs як бібліотеку) передаванням їм образу диска, на якому
           містився пошкоджений том btrfs.

           Причиною було розіменування нульового вказівника, яке спричиняло відмову в
           обслуговуванні. Ми вважаємо, що ширше використання цієї вразливості неможливе.

           Див. внесок d70ceb4cbea165c960710576efac5a5716055486 із виправленням. Це виправлено
           включено до стабільних гілок libguestfs ≥ 1.26.0, ≥ 1.24.6 та ≥ 1.22.8, а також до
           RHEL ≥ 7.0. Старіші версії libguestfs не є вразливими.

       Якісніше створення випадкових паролів root та породжувачів псевдовипадкових послідовностей
           Виявлено і виправлено дві пов'язаних із захистом вади під час створення випадкових
           паролів root та породжувачів псевдовипадкових послідовностей чисел. По-перше, ми
           більше не читаємо зайві байти з /dev/urandom (більшу частину даних з якого ми просто
           відкидали). По-друге, ми змінили код, щоб уникнути нерівномірного розподілу за
           лишками. Ми вважаємо, що цими вразливостями не можна скористатися. (Обидві зміни
           запропоновано Edwin Török)

       Тепер перевіряється коректність параметрів GUID, коли їх передають до викликів програмного
       інтерфейсу. Раніше можна було передати довільний рядок. (Pino Toscano)

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

       "guestfs_add_drive_opts": новий параметр "discard"
           За допомогою нового параметра "discard" можливий точніший контроль над підтримкою
           відкидання та обрізання для певного диска. Це уможливлює створення розрідженіших
           файлів у основній системі, коли ви вилучаєте файли або надсилаєте виклик до
           програмного інтерфейсу "guestfs_fstrim".

       "guestfs_add_domain": нові параметри: "cachemode", "discard"
           Ці параметри передаються під час додавання дисків домену.

           Відкинути усі блоки на пристрої guestfs. У поєднанні із описаним вище параметром
           "discard" це робить файл у основній системі розрідженим.

           Для перевірки того, чи відкинуті блоки читаються як нульові.

           Для усіх структури, повернути через програмний інтерфейс, libguestfs тепер створює
           функції "guestfs_compare_*" і "guestfs_copy_*", за допомогою яких можна порівнювати і
           копіювати структури.

           Копіювання атрибутів (зокрема прав доступу, xattrs, прав власності) з одного файла до
           іншого. (Pino Toscano)

           Гнучкий програмний інтерфейс для створення порожніх образів дисків з нуля. Надає змогу
           обійтися без викликів зовнішніх програм, зокрема qemu-img(1).

           Окремі параметри для різних модулів обробки (можна також встановити за допомогою
           змінної середовища "LIBGUESTFS_BACKEND_SETTINGS"). Основним призначенням є примусовий
           режим TCG у заснованих на qemu модулях обробки. Приклад:

            export LIBGUESTFS_BACKEND=direct
            export LIBGUESTFS_BACKEND_SETTINGS=force_tcg

           Отримання мітки або назви розділу (для образів дисків GPT).

   Зміни у збиранні
       Для збирання libguestfs 1.26 потрібні такі додаткові пакунки:

       supermin ≥ 5
           Для збирання цієї версії libguestfs потрібен supermin версії 5.

       flex, bison
           Virt-builder тепер використовує справжній засіб обробки для свого файла метаданих,
           отже ці інструменти тепер є обов'язковими.

       xz  Тепер це обов'язкова частина для збирання там, де раніше (теоретично) вона була

   Внутрішня частина роботи програми
       Переписано засіб видобування повідомлень PO, що мало зробити його стійкішим. (Pino

       "podwrapper" повідомляє про помилку, якщо не знайдено аргумент зразка для --insert або

       Libguestfs тепер передає параметр qemu -enable-fips для вмикання FIPS, якщо у qemu
       передбачено його підтримку.

       Якщо ви не хочете вказувати типовий гіпервізор, можете скористатися "./configure

       Накладки copy-on-write [COW], які використовуються, наприклад, для придатних лише для
       читання дисків, тепер створюються за допомогою вбудованого програмного інтерфейсу

       Модуль обробки libvirt використовує якийсь вигадливий макрос C для створення XML. Ці є
       простішими і безпечнішими.

       Було змінено формат файла ChangeLog. Тепер він такий самий як у "git log". Нетиповий
       формат більше не використовується.

       Змінено процедуру запуску базової системи:

       ·   Базова система libguestfs тепер ініціалізує LVM у той самий спосіб, у який це робиться
           на фізичних машинах.

       ·   Базова система libguestfs не записує порожній рядок до /proc/sys/kernel/hotplug під
           час запуску.

           Зауважте, що вам слід налаштувати ваше ядро так, щоб у ньому було
           "CONFIG_UEVENT_HELPER_PATH=""", інакше ви матимете справу із дивними помилками LVM (це
           стосується будь-якої машини Linux, не лише libguestfs). (Peter Rajnoha)

       Libguestfs тепер можна зібрати на архітектурах, де є ocamlc(1), але немає ocamlopt(1).
       (Hilko Bengen, Olaf Hering)

       Не можна використовувати "./configure --disable-daemon --enable-appliance". Така
       комбінація усе одно не мала сенсу. Тепер її заборонено явним чином у скрипті configure.

       Файл packagelist використовує "m4" для розгортання макросів замість "cpp".

   Виправлені вади
           java bindings inspect_list_applications2 throws
           [RFE] enable subscription manager clean or unregister operation to sysprep
           virt-resize does not preserve GPT partition names
           mount-local should give a clearer error if root is not mounted
           virt-sparsify overwrites block devices if used as output files
           libguestfs: error: invalid backend: appliance
           guestfs_pvs prints "unknown device" if a physical volume is missing
           Recommended default clock/timer settings
           ruby-libguestfs throws "expecting 0 or 1 arguments" on
           Cannot inspect cirros 0.3.1 disk image fully
           LIBVIRT_DEFAULT_URI=qemu:///system breaks libguestfs
           virt-builder network (eg. --install) doesn't work if resolv.conf sets nameserver
           When SSSD is installed, libvirt configuration requires authentication, but not clear
           to user
           virt-make-fs fails making fat/vfat whole disk: Device partition expected, not making
           filesystem on entire device '/dev/sda' (use -I to override)
           virt-sysprep to delete more logfiles
           RFE: libguestfs inspection does not recognize Free4NAS live CD
           RFE: virt-sysprep/virt-builder повинні мати можливість блокувати обліковий запис
           libguestfs fails examining libvirt guest with ceph drives: rbd: image name must begin
           with a '/'
           virt-builder не працює, якщо не існує $HOME/.cache
           libguestfs: не слід використовувати файл jar із зазначенням версії
           Усі дії libguestfs із LVM завершуються невдало у Debian/Ubuntu
           Need update helpout of part-set-gpt-type
           virt-sysprep does not correctly set the hostname on Debian/Ubuntu
           guestfish виводить у повідомленнях про помилки «\n» буквально
           guestmount: "touch" command fails: touch: setting times of `timestamp': Invalid
           [RFE] function to get partition name
           list-devices returns devices of different types out of order


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

   Нові можливості
       Можна використовувати User-Mode Linux (UML) як альтернативний модуль обробки (замість
       KVM). Використання цього модуля поліпшує швидкодію, особливо, якщо libguestfs
       використовується у віртуальній машині (наприклад, у хмарі). Підтримка UML здійснюється як
       для основного модуля. Див. "МОДУЛЬ USER-MODE LINUX" in guestfs(3), щоб дізнатися про цей
       модуль більше.

       Тепер повністю підтримуються архітектури ARM (32-бітова) та PPC64.


       virt-builder(1) — новий інструмент для збирання образів для віртуальних машин. За його
       допомогою ви можете швидко і безпечно створювати і налаштовувати гостьові системи.

       Нові дії у virt-sysprep(1): вилучення файлів у /tmp і /var/tmp. Вилучення файлів баз даних
       RPM. Зміна паролів root та користувача. Вилучається більше файлів журналів. Нові дії, які
       типово не увімкнено: створення випадкових UUID для файлових систем. Скидання правил
       брандмауера. (Wanlong Gao)

       virt-resize(1) та virt-sysprep тепер можуть використовувати адреси для визначення
       віддаленого диска.

       Реалізовано використання "guestfish -N назва_файла=тип" для створення іменованого образу
       диска (замість типового test1.img тощо).

       virt-sparsify(1) тепер перевіряє, чи достатньо місця на диску для завершення дії. Тепер
       неможлива ситуація, коли місце вичерпується під час виконання завдання.

       virt-format(1) і virt-make-fs(1): новий параметр --label для встановлення мітки файлової

       Тепер можна скористатися прапорцем virt-resize --no-sparse для зміни розмірів на розділи
       або інші незанулені місця.

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

       Нові прив'язки до мови програмування Go.


       Підтримка журналу systemd.

       "guestfs_add_drive_opts" тепер може контролювати режим кешування qemu за допомогою нового
       параметра "cachemode". Ви можете вибрати поліпшену швидкодію для тимчасових дисків або
       надійний захист.

       "guestfs_set_label" тепер працює з XFS і btrfs.

       Нова подія GUESTFS_EVENT_WARNING для повідомлень із попередженнями.


       Поліпшено інспектування гостьових систем SUSE (Olaf Hering).

       Поліпшено підтримку нестандартних %systemroot% у Windows (Matthew Booth).

       Удосконалено звітування про помилки у Augeas.


           Була можливою відмова у обслуговування під час інспектування певних гостьових систем.
           Виправлення зворотно портовано на гілки 1.20 і 1.22.


           Виправлено незахищену обробку тимчасових каталогів для віддалених guestfish.
           Виправлення зворотно портовано на гілки 1.20 і 1.22.

   Нові програмні інтерфейси
        add-drive-scratch: додавання тимчасового диска
        journal-open: підтримка журналу Systemd
        remount: уможливлення коригування прапорця rw для змонтованих файлових систем
        set-uuid: встановлення UUID файлової системи

       У програмних інтерфейсів "is-file", "is-dir", "is-blockdev", "is-chardev", "is-fifo",
       "is-socket" тепер з'явився додатковий прапорець "followsymlinks".

       У "add-drive" передбачено новий параметр "cachemode".

   Зміни у збиранні
       Для збирання libguestfs 1.24 потрібні такі пакунки:

       Augeas ≥ 1.0.0

       Вказаними нижче пакунками можна скористатися для розширення можливостей, але вони не є

           Для читання файлів журналів з гостьових систем, де використовуються журнали.

           Для модуля обробки UML.

       xz  Для virt-builder.

       golang ≥ 1.1.1
           Для прив’язок до мови Go.

   Внутрішня частина роботи програми
       Нові правила "make check-*", які замінили "make extra-tests". Докладніший опис можна
       отримати за допомогою команди "make help" і сторінки підручника guestfs(3).

       Тепер можна використовувати valgrind для коду мовою Perl.

       Код засобу інспектування перевірено за допомогою fuzz.

       "make" більше не переходить рекурсивно до каталогу generator у кожному іншому каталозі. Це
       значно зменшує час збирання.

       Додаткові тести для Augeas, hivex.

       Додано час очікування на запуск у 20 хвилин для базової системи.

       Додано час очікування (4 години) для усіх тестів, щоб можна було розібратися із випадком,
       коли повисає qemu або інші компоненти.

       Реалізовано використання kvmclock і "-cpu host". Це поліпшує стабільність відліку часу та
       загальну швидкодію.

       Виправлено режим "./configure --enable-packet-dump".

       Переписано режим "./configure --enable-valgrind-daemon". Тепер розробники можуть
       використовувати цей прапорець увесь час.

       Переписано модулі обробки так, щоб вони не залежали один від одного (хоча насправді вони
       не є завантажуваними модулями).

       Якщо мережу увімкнено, використовуються налаштування визначення адрес (тобто
       /etc/resolv.conf) з основної системи.

   Виправлені вади
           libguestfs-tools.conf потрібна сторінка man
           Помилки valgrind у btrfs_subvolume_list
           mke2fs can't return the correct filesystem type when blockscount is less than 2048 for
           Update "rsync-out" helpout for using wildcard
           Argument 'excludes' of tar-out does not work
           virt-format uses wrong partition type for vfat filesystems
           'sh' command before mount causes daemon to segfault
           guestfish does not work when you mix --remote and --add options
           guestfish remote prints "libguestfs: error: waitpid (qemu): No child processes"
           list-filesystems command fails if there are no block devices
           cache=none/O_DIRECT workaround doesn't work for images with backing files
           cap-get-file will return error if the file has not be set capabilities
           RFE: Implement set-uuid command
           RFE: Implement set-label for xfs
           Can't set acl value for a specified user with 'acl-set-file'
           libguestfs double free when kernel link fails during launch
           Make xfs filesystem failed with specified blocksize, gives "unknown option -b" error
           "hivex-commit" should fail with a relative path
           disk-format "qemu-img info: JSON parse error" when target file does not exist
           mke2fs-J should give a meaningful error when specified type is anything except
           Specifying virtio interface ('iface' parameter) breaks the direct backend - libguestfs
           "virt-resize --expand" and "virt-resize --resize" outputs error message for Win2008
           32bit OS
           inspection: Augeas expressions are broken with augeas >= 0.10
           virt-resize --expand fails on Ubuntu Cloud Image
           Regression: Fedora inspection broken by change from guestfs_exists to guestfs_is_file
           txz-out command produces a bzip2-compressed file (should be xz-compressed)
           upload to a directory occasionally hangs instead of failing
           virt-sysprep should support URL-type arguments
           blockdev-setbsz succeeds, but does not affect blockdev-getbsz


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

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

       Віддалений доступ до таких дисків:

       ·   Network Block Device (nbd)

       ·   Secure Shell (ssh)

       ·   HTTP та HTTPS

       ·   FTP та FTPS

       ·   iSCSI

       ·   Gluster

       ·   Ceph/rbd (Mike Kelly)

       ·   Sheepdog

       ·   TFTP

       Завантажувачі SYSLINUX і EXTLINUX тепер можна встановлювати на образи дисків за допомогою
       програмного інтерфейсу.

       Засіб інспектування тепер може обробляти файлові системи, зокрема btrfs, у яких підтомами
       є окремі точки монтування (Matthew Booth).

       «Методи долучення» тепер називатимуться «модулями обробки». Сумісність із наявним кодом

       У назвах файлів можуть міститися символи «:», якщо використовується нова версія QEMU.


       Virt-alignment-scan і virt-df можуть сканувати декілька гостьових систем паралельно.

       Guestmount тепер передає до простору користувача точний номер помилки майже завжди.

       Guestfish та інші інструменти тепер можуть використовувати адресоподібний синтаксис для
       доступу до віддалених дисків. Приклад:

        guestfish -a ssh://шлях/до/диска.img

       Guestfish та guestmount тепер надають вам змогу вказувати тип файлової системи під час
       монтування, що є безпечнішими способом монтування (Dave Vasilevsky).

       Guestfish тепер є «командною оболонкою файлової системи гостьової операційної системи».

       Guestfish тепер надає змогу використовувати лише 1 "true" "t" "yes" "y" "on" 0 "false" "f"
       "no" "n" "off" як булеві значення (без врахування регістру символів) і повертає помилку
       для усіх інших рядків.

       Новий інструмент "guestunmount" для безпечного демонтування файлових систем FUSE.

       За допомогою прапорця "guestmount --no-fork" тепер можна запобігти перетворенню guestmount
       на фонову службу.

       Virt-resize тепер типово використовує розріджені копії, значно заощаджуючи місце на диску
       для гостьових систем, які є майже порожніми.

       Інструкції доповнення команд за Tab у bash було переписано, тепер у них враховано
       більшість інструментів та реалізовано правильне доповнення "--довгих" параметрів. Крім
       того, скрипти доповнення bash завантажуються на вимогу.

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

       У програмному інтерфейсі Java тепер передбачено підтримку подій.

       Об'єкт Python тепер успадковується від базового класу "object".

       Методи Python, які раніше повертали список кортежів, тепер можуть повертати словники
       Python. З метою забезпечення зворотної сумісності, вам доведеться увімкнути цю можливість
       за допомогою використання параметра конструктора
       "guestfs.GuestFS (python_return_dict=True)".

       Прив'язки до PHP тепер належним чином перевірено, у них виправлено декілька вад.

       Вилучено застарілу бібліотеку Perl "Sys::Guestfs::Lib".


       Нові приклади програм показують, як увімкнути діагностику і перехопити повідомлення


       Автори дистрибутивів можуть додавати довільні додаткові пакунки до базової системи за
       допомогою такої команди:

        ./configure --with-extra-packages="список назв пакунків"

       Автори дистрибутивів можуть скористатися такою командою:

        ./configure --with-supermin-extra-options="..."

       для додавання довільних додаткових параметрів supermin.

       У цьому випуску вад захисту не виявлено.

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

       Лише C:


   Внутрішня частина роботи програми
       Інструмент febootstrap перейменовано на «supermin». Libguestfs може використовувати обидві
       назви, але тепер пріоритетною назвою є «supermin».

       Для збирання libguestfs тепер обов'язковою є libxml2.

       Для збирання версії з git тепер обов'язковою є програма hivexregedit (з hivex).

       Внутрішніми функціями більше не можна користуватися, якщо функція виклику не визначає

       Увімкнено попередження компілятора C у прив'язках до Python і Ruby.

       Реалізовано раннє і зрозуміле завершення роботи, якщо у libvirt не передбачено підтримки
       qemu/KVM (наприклад, якщо типовим з'єднанням libvirt є Xen).

       Реалізовано правило "make print-subdirs", яке є корисним для вибіркового запуску тестів.

       Декілька виправлень, які уможливлюють роздільне збирання (каталог коду != каталог

       Декілька виправлень у прив’язках до Haskell.

       Програмні інтерфейси "ln" та "ln-f" тепер правильно перехоплюють "errno".

       Тести прив'язок до мов (здебільшого) використовують стандартну схему нумерування і
       тестують однаковий діапазон можливостей для усіх мов. Крім того, зменшено кількість
       запусків, які для цього потрібні, отже виконання тестів значно пришвидшено.

       Код бібліотеки на внутрішньому рівні використовує GCC "__attribute__((cleanup))" (якщо
       доступне) для спрощення отримання пам'яті.

       Перевпорядковано внутрішні файли заголовків. Див. коментарі у src/guestfs-internal*.h

       Код внутрішнього використання, який є спільним для бібліотеки та деяких інструментів,
       тепер зберігається у статичній бібліотеці "libutils".

       Майже у всіх підкаталогах тепер використовується паралельне збирання, хоча, слід
       зауважити, що усі каталоги верхнього рівня все ще збираються послідовно.

       З коду вилучено усі випадки використання "PATH_MAX" і "NAME_MAX".

       Для програмного інтерфейсу Java тепер потрібна JVM ≥ 1.6.

       Реалізовано примусове використання "serial-tests" із automake ≥ 1.12.

       Створено абстракцію використання сокетів у шарі протоколу бібліотеки, що уможливлює
       додавання інших нових шарів, відмінних від POSIX (див. src/conn-socket.c).

       Якщо можливо, використовується "qemu-img info --output json" з метою зробити обробку
       виведених цією командою даних безпечнішою.

       Тепер дистрибутиви можуть використовувати "make INSTALLDIRS=vendor install" для розміщення
       прив'язок до Ruby у відповідному каталозі. Таким чином усунено потребу у зовнішній латці у
       Fedora та Debian.

       Файли журналу valgrind тепер записуються до tmp/valgrind-ДАТА-PID.log

       "make clean" очищує локальний каталог "tmp/".

       Тести програмного інтерфейсу мовою C переписано із використанням гнучкішої мови
       генератора, що уможливило виконання довільного коду C під час тестування.

   Виправлені вади
           Segfault in inspect-fs.c in mountable code
           tar-out and base64-out quoting error
           libguestfs: error: btrfsvol:/dev/sda2/root: root device not found: only call this
           function with a root device previously returned by guestfs_inspect_os
           Не вдається виконати інспектування, якщо не встановлено libosinfo
           file on zero-sized file now produces "empty " instead of "empty"
           qemu: could not open disk image /tmp/.../snapshot1: Permission denied
           "error: external command failed, see earlier error messages" message needs to change
           libguestfs should use --output json (if supported) to safely parse the output of qemu-
           img command
           feature request: guestmount --with-cleanup-pipefd
           oom-killer kills guestfsd when tar-in a lot of data
           FileIn commands cause segfault if appliance dies during the file copy in
           Misc leaks in virNetClientProgramCall in libvirt 1.0.2
           Security context on image file gets reset
           libguestfs-test-tool --qemu segfaults
           Unexpected non-tail recursion in recv_from_daemon results in stack overflow in very
           long-running API calls that send progress messages
           virt-tar fails on non-existent directory names "error in chunked encoding at
           /home/rjones/d/libguestfs/tools/virt-tar line 272."
           virt-cat fails on directory names "/dev/stdout: error in chunked encoding"
           btrfs causes subsequent ntfs-3g filesystem to fail
           "No such file or directory" when execute "hivex-commit"
           btrfs_subvolume_list broken due to change in subvolume list output
           guestmount: rename() incorrectly follows symbolic links
           guestmount: link() incorrectly returns ENOENT, when it should be EXDEV
           checksums-out fail to compute the checksums of all regular files in directory
           libguestfs FTBFS on Fedora 19 because of new ruby
           virt-sysprep: Setting hostname, domain name and pretty name on Fedora 18 correctly
           pvcreate fails if partition contains a swap signature
           zero_free_space: open: /sysroot//ujqqq135.rd3: Cannot allocate memory
           libguestfs with libvirt attach-method fails with odd error if default hypervisor is
           Adding a zero-length virtio-scsi disk causes: qemu-kvm: hw/scsi-bus.c:1568:
           scsi_req_complete: Assertion `req->status == -1' failed.
           libguestfs cannot open disk images which are symlinks to files that contain ':'
           (colon) character
           RFE: Allow to set log callback in Ruby bindings


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

   Нові можливості
       libvirt і sVirt (контейнер SELinux)

       Ви можете, якщо хочете, скористатися libvirt для запуску і керування базовою системою за

       ·   встановленням "LIBGUESTFS_ATTACH_METHOD=libvirt[:URI]"

       ·   за допомогою "./configure --with-default-attach-method=libvirt[:URI]"

       ·   або виклику методу "guestfs_set_attach_method" програмного інтерфейсу

       Для захисту базової системи libguestfs використовується SVirt (контейнер SELinux), якщо
       вибрано модуль обробки libvirt.

       virtio-scsi, більша кількість дисків, з'єднання у «гарячому» режимі

       Тепер типово використовується virtio-scsi, якщо цей інтерфейс доступний. Це набагато
       збільшує кількість дисків, які можна додати до одного дескриптора libguestfs (аж до 255).

       Тепер можна додавати і вилучати диски після запуску у «гарячому» режимі.

       Libguestfs тепер може працювати із > 25 дисками, в усіх програмних інтерфейсах, засобах та

       Тепер ви можете додавати до дисків мітку і посилатися на них за міткою
       (/dev/disk/guestfs/МІТКА) замість використання назв пристроїв (/dev/sda).

       Нові можливості бібліотеки

       Через програмний інтерфейс читаються і записуються списки керування доступом POSIX (ACL)
       та можливості файлової системи Linux.

       Реалізовано підтримку динамічних дисків Windows. Метадані можна лише читати (не можна
       вносити зміни до томів або створювати томи). Втім дані та файлові системи на томах можна
       монтувати, читати та записувати (Matthew Booth).

       Реалізовано Hivex (редагування реєстру Windows) безпосередньо за допомогою програмного
       інтерфейсу, що робить читання та редагування реєстру Windows набагато ефективнішим.

       Повторно реалізовано декілька програмних інтерфейсів libguestfs так, що у них більше немає
       жодних обмежень на виведення даних. Серед повторно реалізованих програмних інтерфейсів
       такі: "guestfs_cat", "guestfs_find", "guestfs_read_file", "guestfs_read_lines",
       "guestfs_write", "guestfs_write_append", "guestfs_lstatlist", "guestfs_lxattrlist",
       "guestfs_readlinklist", "guestfs_ls".

       virt tools

       "guestfish touch 'win:c:\новий_файл'" тепер працює як слід.

       У "guestfish" реалізовано новий параметр --network, за допомогою якого можна увімкнути для
       користувача мережу у libguestfs.

       Уможливлено встановлення змінної середовища "GUESTFISH_PS1" для використання форматованих
       запитів щодо команд у "guestfish".

       Тепер у virt-rescue доступні команди "rsync", "ssh", "less" та "lrzip". Крім того, для
       створення нарощувальних копій можна скористатися "rsync" за допомогою програмного

       "virt-sparsify" використовує qcow2 v3 для підвищення ефективності.

       Поліпшення у "virt-sysprep":

       ·   створення нових UUID для фізичних томів та груп томів

       ·   вилучення ідентифікатора локальної машини (Wanlong Gao)

       ·   вилучення даних ABRT (Wanlong Gao)

       ·   вилучення ключів і файлів журналів puppet (Wanlong Gao)

       ·   вилучення файлів обліку процесів (Wanlong Gao)

       ·   новий параметр --firstboot, який уможливлює створення скриптів firstboot для
           налаштовування гостьових систем

       ·   вилучення поля HOSTNAME з файлів "ifcfg-eth*" (Wanlong Gao)

       ·   різноманітні поліпшення для SuSE (Olaf Hering)

       ·   вилучення кешу сторінок підручника (Wanlong Gao)

       ·   вилучення даних щодо аварій, створених kexec-tools (Wanlong Gao)

       "virt-make-fs" тепер може створювати віртуальні дискети (VFD).

       У "guestmount" реалізовано параметр --pid-file, яким можна скористатися для уникнення
       конкуренції між демонтуванням файлової системи і використанням підлеглого образу диска.

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

       У цьому випуску додано повноцінні прив'язки до Lua (дякуємо Jerome Vuarand за багато

       У Ruby хеш для необов'язкових аргументів є необов'язковим.

       У Python необов'язкові аргументи тепер не використовують спеціальних «сторожових» значень,
       отже як необов'язковий параметр можна передавати будь-яке ціле число.

       Прив'язки до Erlang тепер постачаються із прикладами і тестами.

       Прив'язки до Erlang тепер обробляють 64-бітові цілі параметри належним чином.

       Автоматизовані «bindtests» тепер тестують правильність передавання 64-бітових параметрів.
       У результатів виявлено і виправлено декілька вад у прив'язках до мов програмування.

       Поліпшено обробку блокування та впроваджено функції, які не блокують обробку. Це має
       зробити виклики libguestfs ефективнішими.


       Тепер передбачено обробку гостьових систем Windows без обмежень на розмір реєстру.
       Додавання програмного інтерфейсу hivex до програмного інтерфейсу libguestfs зробило
       інспектування на внесення змір до реєстру Windows у гостьових системах набагато

       Поліпшено підтримку гостьових систем SuSE (Olaf Hering).

       Реалізовано повернення даних щодо архітектури встановлених програм (John Eckersberg).

       Реалізовано підтримку Windows 8.

       Тепер підтримується Fedora 18.

       Засіб інспектування ISO, CD та DVD тепер може використовувати базу даних libosinfo.


       Libguestfs без базової системи можна зібрати у Mac OS X (Masami HIRATA).

       RHEL 5 тепер явним чином підтримується у гілці «oldlinux» основного сховища git.

       Реалізовано підтримку 64-бітової архітектури PowerPC. Крім того, libguestfs було
       проінспектовано на вади, пов'язані із порядком байтів. Виявлені вади було виправлено.

       фонова служба

       Включено сторінку підручника для фонової служби (guestfsd(8)).

       Файл журналу guestfish

       Файл журналу $HOME/.guestfish тепер створюється із правами доступу 0600 (раніше
       використовувалася маска 0644), отже, його більше не зможуть читати сторонні користувачі.


       У старих версіях програми "virt-edit" та команди команди "edit" "guestfish" створювався
       новий файл, у якому зберігалися зміни, але не встановлювалися права доступу та інші
       параметри так, щоб вони збігалися із параметрами старого редагованого файла. У результаті
       після редагування конфіденційного файла, зокрема /etc/shadow, він ставав доступним для
       сторонніх користувачів.

       Цій ваді було надано код CVE-2012-2690. Її було виправлено у libguestfs ≥ 1.16.

       Докладніші дані можна знайти на сторінці

   Нові програмні інтерфейси
        inspect-list-applications2 (John Eckersberg)
        mke2fs (Wanlong Gao)
        mkswap [додано додаткові аргументи label та uuid]
        mktemp (Wanlong Gao)
        shutdown [зворотне портування на 1.16 та 1.18]
        tar-in [додано прапорець compress]
        tar-out [додано прапорці compress, numericowner, excludes]
        umount [додано додаткові аргументи force і lazy]
        xfs-admin (Wanlong Gao)
        xfs-growfs (Wanlong Gao)
        xfs-info (Wanlong Gao)
        xfs-repair (Wanlong Gao)

       Лише у програмному інтерфейсі C:


   Внутрішня частина роботи програми
       qemu ≥ 1.1 є обов'язковою (бажаною є версія ≥ 1.2).

       febootstrap ≥ 3.20 є обов'язковою.

       libvirt є необов'язковою, але якщо ви хочете користуватися новим модулем libvirt для
       запуску базової системи, тоді обов'язковою є libvirt ≥ 0.10.2.

       Для усього коду було виконано перевірку Coverity. Виправлено багато вад (дякуємо Ondrej
       Vasik, Kamil Dudka).

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

       Змінено спосіб, у який програмні інтерфейси і структури libguestfs представляються у
       генераторі, так, щоб використовувалися структури OCaml замість кортежів. Це робить описи у
       генераторів гнучкішими та простішими для розуміння. Подробиці викладено у внесках 39d1a7db
       і eb185eef.

       Поділ коду бібліотеки на більшу кількість файлів:

       ·   Модулі запуску тепер зберігаються у окремих файлах, наприклад src/launch-appliance.c,

       ·   Породжений код дій тепер поділено на декілька файлів src/action*.c для пришвидшення

       ·   Величезний файл src/guestfs.c поділено на декілька менших логічних модулів.

       POD (документація) тепер створюється з використанням переписаної програми на Perl, а не
       pod2* + скриптів оболонки.

       Сторінки підручника тепер містять стабільні дати (Hilko Bengen).

       Пропущені тести тепер виходять із кодом 77, отже потрапляють до "SKIP:" у виведених "make
       check" даних.

       Паралельний тест щодо mount-local було переписано на C (RHBZ#838081).

       Тепер передбачено підтримку Ruby 1.8.5 (хоча перевага надається Ruby ≥ 1.9).

       Прив'язки до Perl тепер можна вимкнути за допомогою "./configure --disable-perl" (Wulf C.
       Krueger). Зауважте, що сам інтерпретатор Perl усе ще потрібен для збирання libguestfs.

       Прив'язки до Java тепер можна увімкнути або вимкнути за допомогою "./configure
       --with-java" або "./configure --without-java" (Wulf C. Krueger).

       Нові параметри налаштування: "./configure --enable-code-profiling" і "./configure

       Декілька виправлень щодо використання 64-бітових цілих чисел у прив'язках до мов

       Модуль базової системи тепер використовує sgabios замість vgabios (Dan Berrange).

       Скрипт "./run" тепер встановлює достатньо змінних середовища, щоб можна було запускати
       програми на OCaml, Python, Ruby, Java, GJS, Erlang, Lua.

       Реалізовано прапорець "./run --test" для запуску тестів із мінімальним виведенням. Також
       скрипт виводить час, який було витрачено на кожен із тестів.

       Скрипт "./run" тепер збирає шляхи накопичувально, тобто ви можете скористатися "./run"
       двічі або скористатися скриптами "./run" libguestfs і libvirt разом.

       Тепер можна видобути список зовнішніх команд, потрібних для роботи фонової служби, що
       робить збирання базової системи на деяких дистрибутивах простішим (Olaf Hering).

       Тепер під час виконання "make check" виконується тестування "virt-rescue".

       Генератор тепер вилучає невикористані створені файли. Це допомагає, якщо виконуються
       маневри модифікаціями коду за допомогою git rebase, git bisect тощо.

       Тести тепер запускаються у окремому каталозі "tmp/" верхнього рівня у ієрархії коду. Це
       надає змогу створювати мітки для каталогу для SELinux (sVirt), а також спрощує чищення
       ієрархії коду.

       Розширено діапазон роботи "make syntax-check" і усунено багато проблем у основному коді,
       які було виявлено за допомогою перевірки синтаксису (дякуємо Jim Meyering).

       До створених файлів додано режим Emacs (-*- foo -*-).

       Виведення смужки поступу тепер надсилається до /dev/tty, отже не потрапляє до звичайних
       виведених програмою даних. virt-resize і virt-sparsify тепер придушують дані смужки
       поступу, якщо стандартним виведенням не є tty.

       Впроваджено параметр "./configure --without-libvirt". Він є корисним для тестування того,
       чи можна зібрати код без libvirt.

       Впроваджено вбудовану мінібібліотеку для запуску команд. Це надало нам змогу
       переспрямувати повідомлення про помилки від зовнішніх команд до записів подій.

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

       Код для тимчасового ігнорування або вимикання повідомлень про помилки тепер виглядає так:

        guestfs_push_error_handler (g, NULL, NULL);
        guestfs_mkdir (g, "/foo"); /* Нам все одно, якщо спроба буде невдалою. */
        guestfs_pop_error_handler (g);

       Усунено каталог "tests/extra". «Додаткові тести» тепер поділено на декілька окремих цілей,
       наприклад "make check-valgrind".  Скористайтеся командою "make help", щоб дізнатися більше
       про ці цілі.

       Ядру базової системи тепер передається параметр "lpj", якщо використовується TCG. Це має
       поліпшити стабільність відліку часу (дякуємо Marcelo Tosatti, Olaf Hering).

   Виправлені вади
           Інструменти libguestfs показують повідомлення про незрозумілі помилки, якщо TMPDIR не
           є абсолютним шляхом
           Windows 8 guest disks can't be mounted: "The NTFS partition is in an unsafe state.
           Please resume and shutdown Windows fully (no hibernation or fast restarting), or mount
           the volume read-only with the 'ro' mount option."
           libguestfs: перехід на /etc/hostname, /etc/vconsole.conf, /etc/locale.conf
           virt-df із двома параметрами -a options показує некоректну назву образу диска
           libguestfs-test-tool pauses when you use --help option
           mke2fs API does not apply block device naming translation to journaldevice optarg
           SELinux policy ought to allow qemu to write to unconfined_u:object_r:user_tmp_t:s0
           RFE: inspect-list-applications does not return the architecture of RPM packages
           inspect-list-applications does not list all installed RPM packages with same name and
           different versions
           guestfish printed paths are not canonicalized
           Progress bar output should go to tty(?) stderr(?)
           virt-sysprep reports Guestfs.Error("read_lines: fopen: /etc/sysconfig/network: No such
           file or directory") on some Fedora guests
           libguestfs fail to list devices added by add-drive-ro-with-if twice
           virt-inspector fail to work with some windows guests
           virt-sparsify should use a more robust method to detect the input format
           libvirt doesn't label console, serial sockets
           virt-rescue у Fedora 18 повністю непрацездатний
           libguestfs inspection limits registries to 100 MiB
           virt-sparsify --compress не працює, якщо дані виводяться у необробленому форматі (raw)
           RFE: allow extra arguments (like --exclude) to tar-out
           tar-out should allow (or force) --numeric-owner
           guestfish "copy-out / localdir" command fails with "No such file or directory"
           Long filenames on NTFS cause tar-out, copy-out etc to fail with error "Cannot open:
           File name too long"
           RFE: Need help designing and implementing selinux policy for libguestfs/sVirt
           virt-make-fs / tar-in має підтримувати vfat належним чином
           guestfish touch problem - case_sensitive_path API expects the file to exist
           Втрата даних під час запису до файлів дисків у форматі qcow2
           lvresize, lvresize-free fail unnecessarily if you don't change the size of the LV:
           "New size (nn extents) matches existing size (nn extents)"
           compress-device-out didn't support bzip2
           guestfish unrecognized mount option gives confusing error message
           Файли із китайськими ієрогліфами у назвах не можна створити у файловій системі vfat
           virt-make-fs cannot create vfat filesystem containing filesystems with Chinese
           virt-make-fs -t fat не працює, повідомляючи про незрозумілу помилку
           Inspection fails when /etc/HOSTNAME is empty
           libguestfs cannot get icon for Windows 8
           Ubuntu install CDs from oneiric onwards are not recognized: "multi-boot operating
           systems are not supported"
           libguestfs doesn't recognize Windows Dynamic disks in some configurations, eg. spanned
           Not all febootstrap messages are redirected to log callbacks
           libguestfs inspector code cannot handle /dev/disk/by-id/* paths
           part-get-bootable gives wrong result with an unordered part layout


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

   Нові можливості
       virt tools

          - virt-sysprep переписано із розширенням можливостей (дякуємо Wanlong Gao)

       - virt-sparsify --zero — новий параметр, який занулює вказаний за назвою розділ або
       файлову систему

       - virt-sparsify тепер може безпечно розріджувати розділи резервної пам'яті Linux

          - virt-sparsify виправлено так, щоб вона виконувала спорожнення після ^C

       - створено новий інструмент «libguestfs-make-fixed-appliance» для збирання фіксованих
       базових систем, які може бути скопійовано на інші машини, де не передбачено підтримки

       - virt-filesystems тепер показує батьківські записи (контейнери) MD
            devices and volume groups

       - virt-alignment-scan, запущена без аргументів, показує дані щодо вирівнювання для усіх
       доменів libvirt

       - virt-df та virt-alignment-scan показують інформацію з усіх гостьових систем, навіть якщо
       диск недоступний

       - новий параметр virt-rescue --scratch для створення тестових дисків

       - virt-make-fs тепер можна скористатися для створення btrfs

       - virt-edit зберігає права доступу, UID, GID та контекст SELinux під час редагування

       - guestfish передає подію закриття за допомогою stdout та віддаленого зв'язку належним

       - новий параметр guestfish --pipe-error надає вам змогу виявляти помилку у каналах
       командної обробки

          - guestfish, у замінниках тепер розгортаються назви пристроїв

       - усі засоби віртуалізації тепер правильно обробляють коми і двокрапки у назвах файлів


          - додано підтримку Fedora 17+

       - додано підтримку FreeDOS

       - додано підтримку Buildroot та Cirros

       - засіб інспектування тепер повністю сумісний із гостьовими системами Windows, які
       оброблено sysprep (дякуємо Grant Williamson).


       - реалізовано широку підтримку btrfs, зокрема додавання декількох пристроїв, fsck, знімки
       (дякуємо Wanlong Gao)

       - новий програмний інтерфейс mount-local впроваджує підтримку FUSE безпосередньо до
       основного програмного інтерфейсу libguestfs

       - нова сторінка підручника: guestfs-performance(1), де містяться підказки щодо поліпшення

          - Нова сторінка підручника: guestfs-faq(1), Поширені питання та відповіді на них

       - тепер для програмних інтерфейсів, підтримки яких не передбачено, повертається ENOTSUP
       (від guestfs_last_errno)


       - у прикладі copy_over продемонстровано копіювання між двома дескрипторами

       - програма display_icon показує піктограму, пов'язану із гостьовою системою

       - приклад mount_local.c» демонструє, як користуватися програмним інтерфейсом mount-local

         (у цьому випуску не було виявлено або виправлено жодної проблеми захисту)

   Нові програмні інтерфейси
       rfs-device-add: додавання пристроїв до файлової системи btrfs.  btrfs-device-delete:
       вилучення пристроїв із файлової системи btrfs.  btrfs-filesystem-sync: синхронізація
       файлової системи btrfs.  btrfs-filesystem-balance: балансування файлової системи btrfs.
       btrfs-fsck: перевірка файлової системи btrfs.  btrfs-set-seeding: вмикання або вимикання
       розсіювання.  btrfs-subvolume-create: створення знімка btrfs.  btrfs-subvolume-delete:
       вилучення знімка btrfs.  btrfs-subvolume-list: виведення списку знімків і підтомів btrfs.
       btrfs-subvolume-set-default: встановлення типового підтому btrfs.  btrfs-subvolume-
       snapshot: створення придатного до запису знімка btrfs.  get-e2attrs: виведення списку
       атрибутів файла ext2.  get-e2generation: отримання засобу створення файла ext2.  isoinfo,
       isoinfo-device: отримання даних із заголовка файлів ISO.  llz: виведення списку файлів із
       даними SELinux.  lvcreate-free: створення логічного тому LVM у відсотках до залишкового
       вільного місця.  md-stat: повертає список підлеглих пристроїв пристрою MD.  mkfs-brtfs:
       створення файлової системи btrfs із усіма налаштовуваними параметрами.  mount-local,
       mount-local-run, umount-local: підтримка FUSE у програмному інтерфейсі.  ntfsclone-in,
       ntfsclone-out: збереження і відновлення NTFS з резервної копії.  ntfsfix: виправлення
       типових помилок і примусове виконання у Windows перевірки NTFS.  set-e2attrs: встановити
       або зняти атрибути ext2 файла.  set-e2generation: встановити створення файла ext2.  set-
       label: уніфікований інтерфейс для встановлення мітки файлової системи.  vgmeta: отримання
       метаданих групи томів.  wipefs: витирання підписів файлових систем з пристрою.  zero-free-
       space: занулення вільного місця у файловій системі.

   Внутрішня частина роботи програми
       - Вилучено підкаталог debian/. Рекомендуємо вам користуватися офіційними пакунками Debian,
       створеними Hilko Bengen.

       - Тепер майже для усіх дескрипторів файлів, які відкриває файлова система,
       використовується O_CLOEXEC / SOCK_CLOEXEC.

       - при послідовному читанні або запису великих файлів викликається posix_fadvise.

       - реалізовано закриття усіх дескрипторів файлів та вилучення усіх обробників сигналів у
       процесі відновлення

       - виправлено декілька попереджень gcc та вад, виявлених Coverity; також було виправлено
       багато вад строго переповнення

       - впроваджено використання ./configure --enable-valgrind-daemon для того, щоб можна було
       скористатися valgrind для фонової служби; виправлено багато помилок

       - впроваджено використання ./configure --with-qemu-options для передавання додаткових
       параметрів qemu

       - тепер у фоновій службі є придатний до розширення тип рядкового буфера

       - файл заголовків <guestfs.h> тепер працює у C++, і у нас є перевірка пов'язаних із цим

       - декілька програмних інтерфейсів, які слід викликати лише у стані CONFIG, тепер
       повідомляють про помилку, якщо їх викликано у іншому стані

       - виправлено .gitignore так, щоб шляхи були абсолютними

       - розгорнуто прив'язки до gobject, зокрема прив'язку подій libguestfs до сигналів gobject
       (дякуємо Matt Booth)

       - належним чином створюється документація gobject (дякуємо Matt Booth)

       - файли заголовків gobject тепер зберігаються у окремому підкаталозі

       - тепер працює тест CompareWithString у генераторі

       - у типах полів структур FUInt32, FUInt64 тепер використовуються належні типи XDR

       - тести OCaml тепер працюють із байткодом і звичайним кодом.

       - у java використовується -Xlint:all і виправлено усі попередження

        - bmptopng, wrestool (тощо) missing або failure більше не виводить повідомлень із попередженнями

       - ruby: використано RbConfig замість Config.

       - PYTHONPATH встановлюється скриптом ./run.

       - процес збирання базової системи тепер є безпечним щодо потоків виконання.

       - у базовій системі тепер використовується ip замість програм ifconfig і netstat

        - декілька виправлень, які уможливили належну роботу засобів паралельного збирання

        - guestfish --listen у новій версії належним чином виконує чищення від зайвих даних

        - вилучено стан BUSY

        - gettextize вилучено і замінено на простий

        - реалізовано підтримку gettext у virt-resize, virt-sparsify і virt-sysprep

        - ліпша підтримка архітектури arm

   Виправлені вади
        - 822490 virt-ls error: "libguestfs: error: checksum: path: parameter cannot be NULL"
        - 816839 data overflow error when debug progress -1
        - 816098 virt-make-fs fails to make a btrfs filesystem because it doesn't allocate enough space
        - 811872 inspection fails on ubuntu 10.04 guest with encrypted swap
        - 811650 guestfs_last_error not set when qemu fails early during launch
        - 811649 libguestfs cannot open disk images which are symlinks to files that contain ':' (colon) character
        - 811117 [RFE][virt-sysprep] net-hwaddr not removed from "ifcfg-*" files on rhel
        - 811112 [RFE][virt-sysprep] hostname can not be changed on rhel system
        - 809361 inspection doesn't recognize Fedora 18 (grub2 + GPT)
        - 807905 mkfs blocksize option breaks when creating btrfs
        - 805070 virt-filesystems should show 'parents' of LV and RAID devices
        - 804464 libguestfs cannot be built when LINGUAS is different then ja or uk
        - 803664 libguestfs inspection fails on Windows XP: libguestfs: error: hivex: could not locate HKLM\SYSTEM\MountedDevices
        - 803533 guestfish: write error
        - 802389 event handlers for 'close' event doesn't work in remote mode
        - 802109 libguestfs uses putc on stderr, results in many individual 1 byte writes of debug messages
        - 801640 [RFE] the error reported by resize2fs-M need to be more clear
        - 801298 Possible null dereference and resource leaks
        - 801273 Document for set-pgroup need to be updated
        - 798196 virt-resize confuses format and output_format variables; using --output-format sets the input format
        - 797986 virt-resize on Windows XP in sysprep state causes "UNMOUNTABLE_BOOT_VOLUME" BSOD
        - 796520 [RFE] Prevent user from running some appliance configure commands after appliance boot up
        - 790721 multiprovider build error: RuntimeError: link: /tmp/.guestfs-0/kernel /tmp/.guestfs-0/kernel.10139: File exists
        - 789960 guestfsd crash when try to mount non-exist disk
        - 789504 virt-df (other tools?) should not give up if a guest disk is missing
        - 788641 virt-edit doesn't preserve file permissions
        - 786215 libguestfs inspection does not recognize FreeDOS operating system
        - 786188 libguestfs inspection does not recognize FreeDOS install CD
        - 785668 aug-defnode: daemon crash
        - 784647 Libguestfs uses deprecated net-tools
        - 769304 virt-resize on RHEL 6 kernel fails to re-read the partition table
        - 755729 Error message for resize2fs-M needs tweaking
        - 701814 virt-win-reg fails on a libvirt guest that has no defined disk format: "format parameter is empty or contains disallowed characters"
        - 679737 libguestfs: improve error message when zerofree is not available in the appliance
        - 635971 glob mkfs ext2 /dev/vd[b-t]1 does not expand


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

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

        - уможливлено створення файлових систем XFS на наявних файлових системах (Wanlong Gao)

       - (невказане) типове вирівнювання для part-disk змінено на 64 кБ для поліпшення підтримки
       високоякісних сховищ, з'єднаних із мережею

          - нова сторінка підручника, guestfs-testing(1)

        - list-filesystems тепер повертає пункти пристроїв MD, які містять файлові системи (Matthew Booth)

          - підтримка GCC >= 4.7 (Jim Meyering)

       - реалізовано перевірку повторного додавання користувачем диска (Wanlong Gao).

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

       - експериментальні прив'язки до GObject із підтримкою інтроспекції GObject. Тепер ви
       можете використовувати libguestfs з Javascript. Будь ласка, зауважте, що прив'язки у цьому
       випуску не є стабільними і остаточними. (Matthew Booth).

          - підтримка Ruby >= 1.9

       - прив'язки до Ruby можна вимикати окремо (Hilko Bengen)

          - підтримка Python 2.6, 3.x (Richard Jones, Hilko Bengen)

          - підтримка PHP >= 5.4

       - у прив'язках до Perl доступний новий хеш %guestfs_introspection, отже ви можете
       виконувати за його допомогою опитування щодо необов'язкових аргументів


       - уможливлено інспектування пристроїв MD (Matthew Booth)

       - реалізовано підтримку гостьових систем GNU/Hurd


       - події libguestfs (зокрема події смужки поступу та повідомлення журналу) тепер можна
       перехоплювати і обробляти за допомогою визначених користувачем скриптів оболонки.

       - уможливлено доповнення за Tab для пристроїв MD (Matthew Booth)

       virt tools

       - новий інструмент virt-format для витирання і створення порожніх дисків

       - нові параметри virt-sparsify --compress і -o для уможливлення виведення стиснених даних
       та виведення у іншому форматі

       - virt-sparsify тепер може виявляти і розріджувати файли .vdi

       - virt-sysprep більше не потребує xmlstarlet; додано новий параметр virt-inspector --xpath
       для заміни цієї функціональної можливості

       - virt-rescue має новий параметр --suggest, за допомогою якого реалізовано пропозиції
       команд монтування для гостьової системи

       - virt-resize більше не потребує виконуваного файла pcre OCaml

       libguestfs live

       - фонова служба більше не намагається редагувати ваші поточні налаштування /etc/lvm

       - усунено потенційну проблему захисту, пов'язану із передбачуваними назвами у /tmp (Steve

         CVE-2011-4127, RHBZ#757071
         Усунено можливе розширення прав доступу за допомогою SG_IO ioctl
         Докладніший опис:

   Нові програмні інтерфейси
       blkid: виводить усі атрибути пристрою, відомого blkid (Wanlong Gao) e2fsck: надає доступ
       до ширшого спектра можливостей e2fsck (Wanlong Gao) list-md-devices: повертає список
       пристроїв MD Linux (Matthew Booth) md-create: створює пристрій MD md-detail: повертає
       метадані пристрою MD (Matthew Booth) md-stop: зупиняє роботу пристрою MD (Wanlong Gao)
       tune2fs: надає змогу коригувати параметри файлових систем ext2/3/4

   Внутрішня частина роботи програми
       сховище коду git перенесено до

       Різноманітні каталоги для тестування перевпорядковано логічно: тепер усі вони є
       підкаталогами tests/.

       Реалізовано правило make extra-tests, яке запускає звичайні тести і додаткові тести,
       використовуючи valgrind для пошуку проблем із пам'яттю.

       Виявлено за допомогою valgrind і усунено витоки пам'яті та інші проблеми.

       Підтримку необов'язкових аргументів у генераторі було переписано із метою розширення
       можливостей та поліпшення захисту (Matthew Booth).

       Використання gcc -fvisibility=hidden для внутрішніх символів надало змогу уникнути
       опосередкованих викликів за допомогою PLT.

       Уможливлено тестування функцій RHashtable у генераторі.

       Макрос ADD_ARG у фоновій службі надає змогу будувати списки аргументів без ризику
       порушення стека.

       Виправлено створення функцій OCaml, які мають понад 10 аргументів.

       у базову систему додано psmisc, що уможливлює використання fuser, killall та pstree для

       bindtests тепер стосуються і RBufferOut та необов'язкових аргументів (Matthew Booth).

   Виправлені вади
        - 769680 temporary directories created during appliance builds are not cleaned up on error
        - 761460 guestfs_utimens hangs on named pipes
        - 761451 guestfs_utimens cannot set times on a directory
        - 760775 "guestfish: multi-boot operating systems are not supported by the -i option" should be more explanatory
        - 760669 guestfish copy-in and <! (inline execution) don't mix well: pclose: No child processes
        - 760000 libguestfs fails to compile with Ruby >= 1.9
        - 755729 Error message for resize2fs-M needs tweaking
        - 750889 Python code incompatible with Python v3.
        - 596761 Ctrl-\ causes guestfish to abort


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

   Нові можливості
         прив’язки до Erlang.

       virt-alignment-scan — новий інструмент для перевірки вирівнювання розділів у віртуальних
       машинах або образах дисків.

       virt-sparsify — новий інструмент для розрідження віртуальних машин та образів дисків.

       virt-sysprep — новий інструмент для спрощення клонування гостьових систем за шаблоном.


       - Нові команди setenv, unsetenv для встановлення значень змінних середовища.

       - У повідомленнях про помилки тепер виводиться назва файла вхідних даних та номер рядка.

       - смужки поступу guestfish тепер є «мінібібліотекою», яка використовується також іншими


       - параметр --live (для доступу до інтерактивних віртуальних машин) тепер працює.


       - virt-cat тепер може обробляти шляхи і літери дисків Windows (RHBZ#693359).


       - байт типу розділу MBR тепер показується у даних, які виведено --long.


       - virt-make-fs тепер встановлює байт типу розділу MBR належним чином, що поліпшує
       сумісність із Windows (RHBZ#746295).


       - virt-resize тепер може працювати із гостьовими системами з використанням розширених і
       логічних розділів, зокрема із гостьовими системами Ubuntu.

       - virt-resize тепер може вирівнювати перший розділ гостьових систем Windows, що поліпшує
       швидкодію. Цією поведінкою керує новий параметр virt-resize --align-first.

       - Прапорець virt-resize --machine-readable уможливлює використання virt-resize іншими

       - Розділи тепер вирівнюються на 128 секторів (зазвичай, 64 кБ). Це поліпшує ефективність
       для високоякісних сховищ даних. За допомогою нового параметра virt-resize --alignment
       можна коригувати вирівнювання.


       - Синтаксис команд для вилучення ключів та значень реєстру документовано на сторінці
       підручника (RHBZ#737944).


       - у діагностичних повідомленнях належним чином екрануються непризначені для друку символи.

       - GUESTFS_EVENT_ENTER — новий тип подій, повідомлення про які створюються, коли
       викликається функція libguestfs.

       - у бібліотеці містяться зонди systemtap/DTrace.

       - тепер бібліотеку можна зібрати без hivex (RHBZ#723474).


       - Поліпшено виявлення дисків Windows.

       - Додано підтримку:
                ttylinux - мінімального Linux
                Mageia (дякуємо Michael Scherer)
                OpenSUSE і zypper (дякуємо Michael Scherer, Vincent Untz)
                логотипів Ubuntu (дякуємо Michael Scherer)
                NetBSD і pkgsrc (дякуємо Michael Scherer)

       - Реалізовано роботу із певними типами гостьових систем, де використовується /dev/root у

       - Виправлено обробку гостьових систем із > 26 дисками (дякуємо Matthew Booth)

       - Додано підтримку гостьових систем із дисками HP Smart Array (дякуємо Matthew Booth)


       - Реалізовано використання змінних середовища FEBOOTSTRAP_KERNEL, FEBOOTSTRAP_MODULES для
       вибору ядра, яке слід використовувати у базовій системі.


          - Підтримка ArchLinux тепер працює для Linux 3.0 (завдяки Erik Nolte)

       - Диски libvirt, які позначено як <readonly/>, тепер додаються у режимі лише читання за
       допомогою параметра virt-tools -d.

         (у цьому випуску не було виявлено або виправлено жодної проблеми захисту)

   Нові програмні інтерфейси
       compress-out, compress-device-out, copy-device-to-device, copy-device-to-file, copy-file-
       to-device, copy-file-to-file, get-smp, part-to-partnum, set-smp.

       Програмний інтерфейс монтування більше не додає неявним чином параметри -o sync,noatime.

       у add-domain реалізовано новий необов'язковий параметр readonlydisk» для керування тим, як
       обробляються диски <readonly/>.

   Внутрішня частина роботи програми
       - Виконано перевірку коду за допомогою Coverity, виявлено і усунено вади.

       - для збирання libguestfs тепер потрібна бібліотека PCRE.

       - Тепер для базової системи типово увімкнено APIC. Ви також можете увімкнути підтримку SMP
       у базовій системі.

       - Прив'язки до OCaml тепер правильно надсилають запит щодо блокування збірника сміття під
       час зворотних викликів.

       - Тепер правильно працює збирання поза ієрархією коду (дякуємо Hilko Bengen).

       - Для встановлення додаткового рядка версії пакувальники тепер можуть скористатися
       ./configure --with-extra="...".

       - Програмні інтерфейси zero, zero-device: якщо у блоках уже містяться нулі, записування
       нулів не виконується, отже без потреби програма не скасовує розрідженість відповідних
       сховищ даних.

       - Програмні інтерфейси is-zero, is-zero-device: оптимізація з метою пришвидшення виявлення

   Виправлені вади
        - 748266 libguestfs should detect versions of qemu which require -machine pc option
        - 747290 libguestfs ignores <readonly/> in libvirt XML
        - 747287 Misleading error message when permission denied opening a disk image
        - 746295 virt-make-fs doesn't set partition ID
        - 744795 guestmount --live is not usable
        - 737944 virt-win-reg hyphen (delete key) syntax may be wrong, and is not documented
        - 733297 ruby event handlers fail with "exception in callback: wrong argument type Proc (expected Data)"
        - 731744 libguestfs should escape special/non-printing characters in debug output
        - 729887 appliance crashes running aug_init with flags=4
        - 729075 libguestfs confuses Hp_recovery partition with Windows root filesystem
        - 727178 error: luks_open: cryptsetup: error while loading shared libraries: cannot open shared object file: No such file or directory
        - 726739 libguestfs: error: aug_get: no matching node, trying to find hostname
        - 723474 If hivex and/or pcre not installed, libguestfs fails to compile
        - 693359 virt-cat and virt-edit don't handle case sensitive NTFS paths properly
        - 678231 virt-inspector reports unknown filesystem UUID
        - 671082 libguestfs does not work with kernel-rt
        - 666578 libguestfs: unknown filesystem label SWAP-sda2
        - 642821 virt-resize falls over on a disk image with a logical swap partition


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

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

       - Тепер у рядках guestfish можна використовувати екранування, приклад: ><fs> write /щось
       "рядок 1\nрядок 2\n"

       - Для дописування даних до файлів можна скористатися командою guestfish write-append.

       - Довготривалі вивантаження і отримання файлів можна скасувати за допомогою програмного
       інтерфейсу або натискання ^C у guestfish.

       - Нова команда guestfish display для показу графічних файлів у гостьовій системі.

       - У guestfish доповнення за Tab тепер працює і на пристроях /dev/mapper.


       - Програмний інтерфейс інспектування тепер здатен отримувати піктограму або логотип певних
       гостьових систем.

       - До virt-inspector включено логотипи і назви вузлів для певних гостьових систем.

       - virt-inspector тепер може отримувати дані щодо версії і випуску пакунків RPM.

       - CentOS і Scientific Linux тепер вважаються окремими дистрибутивами у програмному
       інтерфейсі інспектування.


       - virt-resize тепер може працювати з btrfs.

       - За допомогою нового параметра virt-resize --ntfsresize-force можна змінювати розмір
       віртуальних машин Windows декілька разів.

       інші virt tools

       - У guestfish, guestmount, virt-cat, virt-df, virt-edit, virt-filesystems, virt-inspector,
       virt-ls та virt-rescue тепер можна скористатися параметром -d UUID для визначення
       гостьової системи за UUID. Це значно підвищує надійність роботи цих програм, якщо їх
       викликано іншими програмами.

       - Параметр virt-ls -lR уможливлює складну ітерацію файловою системою та аналіз гостьової

       - У virt-win-reg реалізовано підтримку HKEY_USERS\<SID> та HKEY_USERS\<користувач>.

       - Параметр virt-win-reg --unsafe-printable-strings уможливлює показ придатних до друку
       рядків у виведених даних (не є безпечним: ознайомтеся із документацією, перш ніж

       - virt-edit переписано на C.

       Програмний інтерфейс і прив'язки до мов програмування

       - Реалізовано повну підтримку Java. Див.

       - За допомогою прив'язок до Java реалізовано підтримку JRuby.

       - Тепер у повідомленнях трасування з'являється guestfs_close.

       - У прив'язках до Python додано явний метод g.close().

       - Програми мовою Python тепер можуть використовувати новий програмний інтерфейс подій.

       - GIL Python вимикається на час викликів libguestfs, що уможливлює належну роботу
       багатопотокових програм мовою Python.

       - Реалізовано підтримку 9pfs (файлових систем Plan 9, експортованих із основної системи).

       - Додано -DGUESTFS_WARN_DEPRECATED=1 для попередження щодо використання функцій
       застарілого програмного інтерфейсу у програмах мовою C.

       - Нова сторінка підручника guestfs-recipes(1), яку призначено для зберігання рецептів.

       - mkfs-opts тепер може встановлювати розміри inode та сектора на створених файлових
       системах (дякуємо Nikita Menkovich).

       - guestfs_last_errno тепер є доступною з OCaml (як g#last_errno ()).

       - optargs_bitmask перевіряється навіть для викликів, які не мають необов'язкових
       аргументів. Це унеможливлює використання можливої дірки у захисті фонової служби для
       ненадійних джерел викликів.

   Нові програмні інтерфейси
       btrfs-filesystem-resize, get-pgroup, inspect-get-icon, is-zero, is-zero-device, list-9p,
       list-dm-devices, mount-9p, ntfsresize-opts, set-pgroup, write-append

   Внутрішня частина роботи програми
       - Для визначення вад у коді було запущено Coverity (інструмент статичного аналізу). Було
       виправлено багато вад.

       - Тепер генератор може обробляти функції, які повертають RBufferOut і мають необов'язкові

       - Реалізовано сумісність із Perl 5.14.

        - Сумісність з gcc 4.6.

       - Було виконано перевірки захисту QEMU.

       - Тести програмного інтерфейсу C тепер можуть повністю тестувати виклики із
       необов'язковими аргументами.

        - Скористайтеся ./configure --enable-install-daemon, щоб встановити /usr/sbin/guestfsd.

        - Каталог po-docs тепер стосується усіх сторінок підручника (man).

       - stderr з процесу qemu тепер перехоплюється підсистемою подій.

   Виправлені вади
        - 602997 part-get-bootable gives wrong result with an unordered part layout
        - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
        - 700369 qemu-system-x86_64 says 'KVM not supported for this target'
        - 705200 guestmount attempt results in access denied
        - 714981 'list-filesystems' does not know about virtio 9p filesystems or detect existing mounts
        - 717786 libguestfs python bindings should have an explicit close call
        - 721275 virt-resize in F16 should support btrfs


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

   Нові можливості
       - libguestfs та інструменти можна використовувати для роботи із робочими віртуальними
       машинами. Див. параметри guestfish --live та guestmount --live, а також (для
       низькорівневого інтерфейсу) нові програмні інтерфейси set-attach-method і get-attach-

        - Нові інструменти віртуалізації:
          virt-copy-in, virt-copy-out, virt-tar-in, virt-tar-out.

       - libguestfs може отримувати прив'язки до літер дисків для гостьових систем Windows.

       - virt-inspector показує прив'язки до літер дисків для гостьових систем Windows.

       - Літери дисків тепер можна використовувати у програмах virt-edit і guestfish під час
       роботи із гостьовими системами Windows.

       - virt-resize тепер працює із 32-бітовими основними системами.

       - Тепер ви можете інспектувати диски для встановлення та образи портативних систем для
       компакт-дисків багатьох різних операційних систем.

       - guestfish <! команда, виконує команду оболонки і вбудовує результат її виконання.

       - guestfish, guestmount, virt-rescue тепер усі підтримують параметри --ro і --rw. Типовий
       варіант можна вибрати за допомогою файла налаштувань (/etc/libguestfs-tools.conf).

       - Новий програмний інтерфейс подій надає змогу реєструвати декілька зворотних викликів для
       кожної події, уможливлює виклики програмного інтерфейсу з інших мов програмування і надає
       змогу переспрямовувати з stderr майже усі повідомлення журналу, діагностики та трасування.

       - Ширша сумісність із FHS для тимчасових файлів, зокрема використання /var/tmp для великих
       кешованих файлів, які мають переживати перезавантаження (замість /tmp).

       - параметр guestfish, guestmount -m уможливлює передавання параметрів монтування до
       підлеглої файлової системи.

       - mkfs-opts уможливлює визначення можливостей файлових систем.

       - Ефективніша обробка точок монтування, яка уможливлює належну сумісну роботу команд
       mkmountpoint, mount та umount-all.

       - Реалізовано дописування префікса до повідомлень трасування, що уможливлює їхнє просте
       фільтрування за допомогою grep у виведених діагностичних повідомленнях.

        - guestfs_launch (команда guestfish run) тепер створює повідомлення щодо поступу (смужка поступу guestfish), якщо виконання триває понад 5 секунд.

       - Реалізовано надсилання подій щодо поступу у режимі пульсації для декількох команд, час
       виконання яких не можна наперед оцінити. Оновлено код смужки поступу у guestfish для
       показу даних таких подій.

       - Оприлюднено нові приклади коду такими мовами: C, Perl, Python, OCaml, Ruby.

        - Новий приклад програми virt-dhcp-address.

       - Значні поліпшення у прив'язках до Java і Ruby.

        - До Perl включено спосіб отримання номера останньої помилки.

        - Прив'язки Python тепер сумісні з rpyc (завдяки Erez Shinan).

        - Для керування перекладами тепер використовується Transifex.

        - У інспекції реалізовано підтримку дистрибутивів Red Hat Desktop, Slackware.

       - Засіб інспектування тепер може обробляти гостьові системи Windows, у яких два або
       декілька дисків.

       - Засіб інспектування тепер може відрізняти Windows 2008 Server і Windows 7.

       - Засіб інспектування може виявляти встановлені 32-бітові програми у 64-бітовій Windows,
       де використовується емулятор WOW64.

        - За допомогою послідовного виправлення протоколу виправлено давню ваду RHBZ#576879, яка спричиняла помилки під час виконання команди вивантаження через втрату синхронізації у протоколі.

        - Новий логотип!


   Нові програмні інтерфейси
         first-private, get-attach-method, inspect-get-drive-mappings,
         inspect-get-windows-current-control-set, next-private, resize2fs-M,

   Внутрішня частина роботи програми
       - Файл HACKING застарів. Вміст файла було перенесено до розділу на сторінці підручника
       щодо guestfs(3).

       - Спрощено libguestfs-test-tool. Тепер програма не вимагає статичного виконуваного файла і
       не намагається побудувати ISO.

       - Створені за допомогою rpcgen файли збираються з використанням -fno-strict-aliasing, що
       має бути безпечнішим (дякуємо Matt Booth).

       - virt-resize було переписано на OCaml.

       - guestfish та інші інструменти було перевірено за допомогою valgrind; виправлено деякі
       витоки пам'яті.

   Виправлені вади
        - 502533 Оновлення перекладу libguestfs польською
        - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
        - 599503 document that mkmountpoint and umount-all cannot be mixed
        - 617440 guestfish: fails to tilde expand '~' when the $HOME env is unset
        - 664558 RFE: Allow to set log callback in Ruby bindings
        - 665358 Завершено переклад пенджабською (pa_IN)
        - 666577 libguestfs: unknown filesystem /dev/fd0
        - 667610 Multiple bugs, memory leaks in libguestfs ruby bindings
        - 668112 virt-filesystems command fails on guest with corrupt filesystem label
        - 668574 guestfish -i is trying to mount all mounts from /etc/fstab and fails with an error when device doesn't exists
        - 673479 Add a grep-friendly string to LIBGUESTFS_TRACE output
        - 674130 Inspection code fails for Windows guest with two disks
        - 682756 libguestfs trace segfaults when list-filesystems returns error
        - 682979 libguestfs incorrectly detects Red Hat desktop as 'redhat-based' instead of 'redhat'
        - 690819 mkfs fails creating a filesystem on a disk device when using a disk with 'ide' interface
        - 691389 Extended attributes don't work over guestmount (FUSE)
        - 691724 virt-inspector reports unknown filesystem /dev/vda1
        - 692545 inspect-list-applications fails to detect 32 bit apps installed under WOW64 emulator on 64 bit Windows
        - 693324 sfdisk's python interface only accepts lists of type 'list' for the lines parameter

Нотатки щодо випуску libguestfs 1.8

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

   Нові можливості
       - Підтримка і пакунки для Debian і Ubuntu.

       - Щоденні збірки зі сховища git для Debian і Ubuntu для зменшення ризику регресій.

       - Портовано на pacman ArchLinux (дякуємо Thomas S Hatch).

       - Переписано на C такі інструменти (початково ці інструменти було написано мовою Perl):

            . virt-cat
            . virt-df
            . virt-inspector
            . virt-ls
            . virt-rescue

       - У деяких інструментах із кодом мовою C передбачено автоматичну підтримку зашифрованих
       гостьових систем. Таку підтримку реалізовано у таких програмах: guestfish, guestmount,
       virt-cat, virt-inspector, virt-ls.

       - Новий інструмент virt-filesystems (із кодом мовою C), який є замінником virt-list-
       filesystems та virt-list-partitions і може виконувати усі функції цих інструментів.

       - У guestfish, guestmount та інших інструментах із кодом мовою C використовується
       уніфікований обробник параметрів командного рядка, отже, тепер передбачено підтримку
       ширшого спектра параметрів, зокрема «-a диск.img», «-d домен-libvirt», «-x», «-v».
       Застарілий засіб обробки параметрів збережено із міркувань сумісності у скриптах тощо.

       - guestfish більше не залежить від Perl

       - Нові сторінки підручника із прикладами програм: guestfs-examples(3) (C/C++),
       guestfs-ocaml(3), guestfs-python(3), guestfs-ruby(3).

       - У режимі трасування тепер виводяться значення з функцій програмного інтерфейсу.

       - virt-inspector тепер може створювати список програм, які встановлено у гостьових
       системах Windows, виводячи багато відомостей щодо цих програм.

       - Додано підтримку інспектування таких операційних систем: Linux Mint, Mandriva, FreeBSD.

       - Реалізовано параметр guestfish --rw (поки не працює) для перетворення потенційно
       небезпечного доступу на запис на явний.

       - guestfish --listen --csh для сумісності із csh, tcsh (дякуємо Eric Blake).

       - Першу основну версію, у якій впроваджено усі функції програмного інтерфейсу, тепер
       документовано у guestfs(3).

       - guestfs_last_errno надає вам змогу отримувати номер помилки від фонової служби, належним
       чином перетворений до локальної операційної системи.

        - Тепер функції мають додаткові параметри.

       - Реалізовано смужки поступу та сповіщення щодо поступу для команд вивантаження даних.

       - Засіб збирання базової системи тепер працює акуратніше, не залишаючи тимчасових файлів у

       - У virt-rescue додано команди getfattr/setfattr.

       - У файлі ROADMAP викладено дорожню карту та цілі майбутніх випусків.

       - Новий розділ БЕЗПЕКА у документації з програмного інтерфейсу guestfs(3).

       - virt-inspector більше не виконує жодної з команд гостьової системи.

       - Код засобу інспектування тепер обережніший і уникає дуже великих файлів у гостьовій
       системі, які раніше призводили до відмови у обслуговуванні.

       - Тепер трасуються виклики FUSE до guestmount, якщо використовується guestmount -x.

   Нові програмні інтерфейси
        - add-domain
        - add-drive-opts
        - getxattr
        - inspect-get-hostname
        - inspect-get-package-format
        - inspect-get-package-management
        - inspect-get-roots
        - inspect-list-applications
        - lgetxattr
        - mkfs-opts

   Внутрішня частина роботи програми
       - Програми із початковим кодом мовою C тепер компонуються лише з бібліотеками, які у них

       - Бібліотеки PCRE, libmagic, hivex та libvirt тепер є повністю необов'язковими до

       - Виправлено декілька витоків пам'яті та витоків дескрипторів файлів.

       - Додано обгортку POD для уніфікації створення сторінок підручника та файлів HTML усіх

       - До початкового коду включено фіктивні образи гостьових систем Fedora, Debian, Ubuntu та

        - Прив’язки Ruby мають правило «make install».

        - <guestfs.h> тепер є єдиним файлом.

        - <guestfs.h> не потребує заголовків XDR.

       - Для збирання більше не потрібна бібліотека xml-light OCaml (дякуємо Maxim Koltsov).

        - ./configure --disable-[...] для кожної з прив’язок до мови (завдяки
          Максимові Кольцову).

       - Вилучено застарілу програму ocaml-viewer (користуйтеся замість неї програмою guestfs-

       - Новий тип тестів програмного інтерфейсу C «InitScratchFS» трохи пришвидшує виконання

       - Список виключених із базової системи пакунків тепер зберігається у окремому файлі
       appliance/ і може бути налаштований для кожного окремого дистрибутива.

   Виправлені вади
        - 663407 readlink and readlinklist returns /sysroot/ in some paths
        - 661280 virt-rescue: panic when shutting down: "/sbin/reboot: No such file or directory"
        - 657499 checksum: wrong check sum type causes umount to fail
        - 655554 Whole disk paths are not made canonical by virt-inspector
        - 654638 openssl updated to 1.0.0b libguestfs depends on exact file names
        - 652796 ruby bindings not installed by 'make install', hence omitted from the binary distribution


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

   Нові можливості
       - Використано новий спосіб створення і кешування базової системи. Це значно пришвидшує
       роботу libguestfs, доволі часто у 4-5 разів.

       - Реалізовано підтримку інспектування гостьових системи (подібно до virt-inspector) за
       допомогою звичайного програмного інтерфейсу та прив'язок до мов програмування. Побіжним
       ефектом є значне пришвидшення роботи «guestfish -i».

       - virt-inspector та основний програмний інтерфейс інспектування тепер може виявляти такі
       гостьові системи: Fedora, Debian, Ubuntu, Windows, Red Hat Enterprise Linux, CentOS,
       Scientific Linux, Gentoo, Pardus, Arch Linux, MeeGo.

       - Реалізовано підтримку повного шифрування дисків за допомогою LUKS у гостьових системах.

        - Прив’язки до PHP.

       - Реалізовано повідомлення щодо поступу (та смужки поступу у guestfish і virt-resize) для
       певних типів довготривалих дій.

       - virt-df тепер працює значно ефективніше. Скористайтеся параметром «--one-per-guest», щоб
       відновити попередню поведінку із ізоляцією окремих гостьових систем.

       - Реалізовано команди guestfish «copy-in» і «copy-out» для рекурсивного копіювання файлів
       та каталогів до гостьової системи та з неї.

       - Реалізовано команду guestfish «hexedit» для виконання двійкового редагування на
       пристроях і у файлах.

       - Змінено синтаксис guestfish -i з метою уможливлення визначення команд у командному рядку
       (із збереженням зворотної сумісності).

       - Реалізовано параметр guestfish -d <домен> для додавання дисків з доменів libvirt.

       - Для параметра guestfish -N передбачено підтримку декількох нових типів приготованих
       образів дисків:
                lvfs : диск у форматі логічного тому з файловою системою
                  lv : диск із логічним томом
            bootroot : boot+root
          bootrootlv : boot і root на логічному томі

       - Команди guestfish more та edit тепер працюють із довільними файлами.

       - За допомогою параметра guestfish --echo-keys ви зможете бачити символи ключів і паролів,
       коли їх вводитимете.

       - У guestmount тепер передбачено параметри -a / -d / -i, як у guestfish.

       - Реалізовано використання virtio-serial для обміну даними із базовою системою. Це дало
       значні переваги у швидкодії.

        - Реалізовано параметр virt-edit -b для створення резервних копій редагованих файлів.

       - Реалізовано параметр virt-edit -e для неінтерактивного редагування файлів.

       - Реалізовано можливість перехоплення дампів ядра із базової системи (дякуємо Matthew

       - virt-rescue тепер завершує роботу коректно (дякуємо Matthew Booth).

       - virt-rescue тепер має параметр --network для вмикання доступу до мережі.

       - Тепер virt-resize може працювати із гостьовими системами, які використовують формат
       таблиці розділів GPT.

       - у virt-resize реалізовано ліпшу підтримку зменшення розмірів гостьових систем.

       - у virt-resize передбачено підтримку гостьових систем у форматі qcow2.

       - Можна скористатися $TMPDIR для перевизначення майже усіх тимчасових каталогів.

       - Користувачі OCaml можуть скористатися альтернативним OO-стилем програмування, наприклад
       g#launch ()

       - У програмному інтерфейсі передбачено підтримку викликів, які приймають необов'язкові
       параметри. Приклад: $g->add_drive_opts ("disk", readonly => 1);

       - У виведених даних трасування тепер екрануються і скорочуються довгі рядки (дякуємо
       Matthew Booth).

       - Тепер автосинхронізацію типово увімкнено. Це забезпечує вищу надійність при закритті

       - За допомогою параметра virt-df --uuid ви можете здійснювати переходи у домені навіть
       після перенесення або перейменування.

        - Переклади сторінок підручника (man).

       - CVE-2010-3851 libguestfs: пропущено специфікатор формату диска під час додавання диска Цю ваду повністю
       виправлено у цьому випуску, виправлення буде зворотно портовано на інші стабільні гілки
       після додаткового тестування.

       - virt-inspector більше не покладається на ненадійний код гостьової системи для побудови
       списку програм у деяких гостьових системах.

   Нові програмні інтерфейси
         download-offset, file-architecture, findfs-label, findfs-uuid,
         inspect-os, inspect-get-arch, inspect-get-distro,
         inspect-get-filesystems, inspect-get-major-version,
         inspect-get-minor-version, inspect-get-mountpoints,
         inspect-get-product-name, inspect-get-type, is-blockdev, is-chardev,
         is-fifo, is-lv, is-socket, is-symlink, list-filesystems, luks-add-key,
         luks-close, luks-format, luks-format-cipher, luks-kill-slot,
         luks-open, luks-open-ro, lvm-clear-filter, lvm-canonical-lv-name,
         lvm-set-filter, part-to-dev, pread-device, pwrite-device,

   Внутрішня частина роботи програми
       - Використано size_t для змінних циклів.  - Код бібліотеки поділено на декілька окремих
       файлів.  - Код генератора поділено на декілька окремих файлів.  - Реалізовано генерацію
       команд guestfish.  - Уніфіковано обробку параметрів guestfish і guestmount.  - Зміни у
           розмір повідомлення щодо помилки збільшено до 64 кБ
           реалізовано надсилання errno до бібліотеки - Додано «make bindist» для створення
       бінарного дистрибутива.  - Поліпшено поведінку під керуванням valgrind.  - Ширше
       тестування параметрів командного рядка guestfish та інтеграції libvirt.  - Код
       інспектування мовою Perl більше не використовується у жодному з інструментів.

   Виправлені вади
        - 646822 libguestfs trace mode should not print long binary strings
        - 646821 virt-df should have --uuid option
        - 646432 /dev/mapper paths should not be returned from guestfs_mountpoints
        - 643624 libguestfs tools documentation should describe how to quote guest domain names from shell
        - 642934 No way to specify disk format when adding a disk to libguestfs
        - 642933 guestfs_list_filesystems should be used in all possible places
        - 642932 guestmount options should match guestfish options
        - 642930 virt-inspector (Sys::Guestfs::Lib) should use C inspection APIs
        - 642929 C inspection code should ignore /dev/fd* in /etc/fstab
        - 642826 virt-resize converts any other image format to raw without notifying user, instructions do not account for this
        - 640961 Document that grub-install might be needed for old Linux guests after virt-resize
        - 639986 virt-df --csv does not properly quote " in libvirt domain names
        - 639405 Interrupted cached appliance creation leaves libguestfs unusable
        - 638901 Appliance filename should not contain repository name
        - 638899 /dev/mapper paths should not be returned from C inspection APIs
        - 636918 Updates to Spanish translation
        - 636061 [abrt] guestfish-1.2.11-1.fc12: malloc_consolidate: Process /usr/bin/guestfish was killed by signal 11 (SIGSEGV)
        - 635969 glob echo mkfs ext2 /dev/vd[b-t]1 prints garbage
        - 634246 guestfs_part_get_parttype returns "loop" when run against a partition, LV or filesystem
        - 633766 virt-resize --shrink fails
        - 633357 Оновлення перекладу іспанською
        - 633096 virt-resize calculates block device size incorrectly, doesn't work with qcow2 target
        - 629593 Додано переклад голландською
        - 627556 Оновлено переклад libguestfs іспанською
        - 626843 Оновлення перекладу іспанською
        - 619793 [RFE] Need a way to determine if a particular block device is a logical volume
        - 618556 virt-rescue return none zero value when exit
        - 617200 mount operation failed and hung on some images which running in read-only mode
        - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
        - 599503 document that mkmountpoint and umount-all cannot be mixed
        - 571714 Running virt-df on disk image relabels it, so qemu can no longer write to it.
        - 502533 Оновлення перекладу libguestfs польською


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

   Нові можливості
       - надає вам змогу вибрати приготований образ диска. Приклад: guestfish -N fs:ext4

       - Додано підтримку запису у модулі guestmount (FUSE).

       - virt-resize тепер може змінювати вміст розділів і логічних томів у гостьовій системі.
       Також поліпшено підтримку зменшення розмірів гостьових систем.

       - Додано скрипт доповнення команд за Tab у bash для guestfish.

       - Додано підтримку ZFS до virt-rescue.

       - Новий інструмент «virt-make-fs» для створення файлових систем із даними.

       - Уможливлено суфікси для будь-яких числових параметрів guestfish. Приклад: «1M».

       - Реалізовано команду guestfish «man», яка відкриває сторінку підручника.

       - У guestfish реалізовано синтаксис «heredoc» для вивантаження файлів:
            upload -<<_end_ /foo

       - Деякі команди guestfish тепер виводять дані у вісімковому або шістнадцятковому форматі,
       якщо це потрібно (RHBZ#583242).

       - Уможливлено префікс-дефіс у командному рядку guestfish. Така ось команда ігноруватиме
       усі помилки від другої команди (RHBZ#578407):
            guestfish -- команда1 : -команда2 : команда3

       - Команда guestfish -h / help тепер повертає повідомлення про помилку, якщо відповідної
       команди не існує (RHBZ#597145).

       - Реалізовано нову команду «supported» у guestfish, призначену для виведення списку
       необов'язкових груп команд, підтримку яких передбачено у фоновій службі або налаштуваннях.

       - Уможливлено роботу virt-inspector і guestfish -i з файлами, назви яких містять пробіли

       - Змінено протокол для використання адрес link-local для уникнення конфлікту з будь-якими
       адресами, які можуть використовуватися у основній системі (RHBZ#588763).

       - libguestfs тепер встановлює правильні часові позначки та часовий пояс при змінах у
       файловій системі.

       - Реалізовано упорядковування доменів за абеткою у virt-df.

       - Уможливлено роботу команди mkfs-b для FAT і NTFS шляхом прив'язки параметра розміру
       блоку до розміру кластера (RHBZ#599464).

       - Додано номер версій до модулів Perl (RHBZ#521674).

       - Локалізація тепер працює для усіх інструментів libguestfs (RHBZ#559963).

       - У інструментах тепер передбачено підтримку віртуальних машин «файлова система на образі»

       - У virt-list-partitions реалізовано параметр «-t» для показу загального розміру дисків.

       - До базової системи supermin включено додаткові лінзи Augeas (Matthew Booth).

        - Додано зворотні виклики error та close.

        - Додано явний метод close до програмного інтерфейсу Perl.

        - Декілька виправлень для забезпечення сумісності з RHEL 5.

        - Декілька виправлень для забезпечення сумісності з Debian/Ubuntu.

        - Декілька модифікацій з покращеннями у документації.

       - Усунено потенційну відмову в обслуговуванні у virt-inspector та virt-v2v, якщо
       спеціальним чином створений образ диска містить символьний пристрій на місці одного з
       файлів налаштувань, які бібліотека читає у /etc (RHBZ#582484).

   Нові програмні інтерфейси
       - aug-clear - чищення шляху Augeas - available-all-groups - повертає список усіх
       необов'язкових груп - base64-in - вивантаження закодованих у base64 даних до файла -
       base64-out - отримання файла і кодування у base64 - checksum-device - обчислення
       контрольних сум для даних на пристрої - checksums-out - обчислення контрольних сум для
       декількох файлів у каталозі - debug-upload - вивантаження файла до базової системи -
       fallocate64 - попереднє розміщення файла у гостьовій файловій системі - fill-pattern -
       заповнення файла повторами взірців байтів - get-umask - отримання поточної umask -
       lvresize-free - розширення логічного тому для заповнення вільного місця - ntfsresize -
       зміна розміру файлової системи NTFS - ntfsresize-size - зміна розмірів файлової системи
       NTFS (із розміром) - part-del - вилучення розділу - part-get-bootable - отримання прапорця
       завантажуваності розділу - part-get-mbr-id - отримання байта типу MBR розділу - part-set-
       mbr-id - встановлення байта типу MBR розділу - pvresize-size - зміна розмірів фізичного
       тому (з розміром) - pwrite - запис частини файла - resize2fs-size - зміна розмірів
       файлової системи ext2/3/4 (з розміром) - txz-in - розпаковування стисненого архіву tar до
       каталогу (RHBZ#580556) - txz-out - пакування каталогу до стисненого архіву tar
       (RHBZ#580556) - vfs-label - отримання мітки файлової системи - vfs-uuid - отримання UUID
       файлової системи - vgscan - повторне сканування фізичних томів LVM, груп томів та логічних
       томів - write - створення файла - zero-device - записування усього пристрою нулями

   Внутрішня частина роботи програми
       - Розширено можливості генератора для підтримки тестування додаткових можливостей.  -
       Строгіші перевірки вхідних параметрів для багатьох викликів (RHBZ#501893 RHBZ#501894) -
       Розширено протокол для підтримки надсилання довільних 8-бітових буферів даних.  - До
       випусків додано файл «BUGS». Там наведено резюме вад у базі даних системи стеження за
       вадами Red Hat.  - До випусків додано файл «RELEASE-NOTES», який містить нотатки щодо
       випуску.  - Уніфіковано збирання базової системи supermin до одного місця, у febootstrap
       2.7.  - Виправлено код протоколу для обробки випадку, коли обидва боки зв'язку одночасно
       надсилають повідомлення про скасовування.

   Виправлені вади
        - 612178 guestfish: using -m option in conjunction with --listen option causes appliance to die
        - 610880 libguestfs should set broader read perms on tmpdir, so works in some situations when executed with umask 077
        - 604691 OCaml bindings are not thread safe
        - 603870 Updates to Spanish translation
        - 602592 [RFE] expose guestfs_close in perl bindings
        - 600977 virt-df -h --csv "Argument .. isn't numeric in printf"
        - 599464 mkfs-b does not support vfat/ntfs
        - 598807 add_cdrom does not work in RHEL 6
        - 598309 part-list and several other cmd failed on libguestfs on RHEL5
        - 597145 guestfish 'help' command should indicate error in exit status with an unknown command
        - 597135 guestfish write-file cmd does not check "size" parameter
        - 597118 A warning should be given in the help of mke2journal-L for the length of label
        - 597112 get-e2uuid should use blkid instead of "tune2fs -l" to get filesystem UUID
        - 596776 virt-inspector doesn't discover modprobe aliases on RHEL 3 guests
        - 596763 Updates to Spanish translation
        - 593292 Updates to Spanish translation
        - 592883 can not edit files on  images mounted with guestmount cmd
        - 592360 Updates to Spanish translation
        - 591250 virt-tar prints "tar_in: tar subcommand failed on directory" if the archive is compressed or not in the right format
        - 591155 virt-tar prints "tar_in: tar subcommand failed on directory" if a disk image is not writable
        - 591142 virt-inspector should give an error for unrecognized disk images
        - 590167 virt-inspector and other virt tools should be able to handle filesystem-on-image VMs
        - 589039 guestfish read-file cmd will cause daemon hang when read large files
        - 588851 guestfs_launch() returns -1, but guestfs_last_error() == NULL
        - 588763 libguestfs should use non-public or link-local addresses for appliance network
        - 588733 Updates to Spanish translation
        - 588651 guestfish 'strings-e' cmd does not give proper error message or hint
        - 587484 lvresize can't reduce size of a volumn
        - 585961 Updates to Spanish translation
        - 585223 ntfsresize should support shrinking filesystems
        - 585222 pvresize should support shrinking PVs
        - 585221 resize2fs should support shrinking filesystems
        - 584038 Updates to Spanish translation
        - 583554 [FEAT] mknod-mode command is needed to set mode explicitly
        - 583242 [RFE] guestfish should print outputs in a suitable base (eg. octal for modes)
        - 582993 guestfish eats words when tab completing case (in)sensitive paths
        - 582953 Misleading help information about lvcreate command
        - 582948 mknod command doesn't make block, character or FIFO devices
        - 582929 mknod doesn't check for invalid mode
        - 582901 guestfish chmod/umask commands do not check invalid mode value
        - 582899 guestfish:sparse is missed from command autocomplete list
        - 582891 [Feature Request] behavior and return value of guestfish umask cmd should be changed
        - 582548 [mknod] umask shouldn't take effect when mode is set explicitly
        - 582484 some guestfish sub commands can not handle special files properly
        - 582252 Updates to Spanish translation
        - 581501 Updates to Spanish translation
        - 580650 virt-inspector warns "No grub default specified at /usr/lib/perl5/Sys/Guestfs/ at [...]"
        - 580556 request for libguestfs to support .txz tarballs
        - 580246 tar-in command hangs if uploading more than available space
        - 580016 aug-ls in guestfish does not take augeas variable as argument
        - 579664 guestfish doesn't report error when there is not enough space for image allocation
        - 579608 multiple commands in guestfish can not work for symbol links
        - 579155 libguestfs hangs if qemu doesn't start (in null vmchannel mode)
        - 578407 the prefix '-' in sub-command isn't handled by guestfish in remote control mode
        - 576879 libguestfs protocol loses synchronization if you 'upload' before mounting disks
        - 559963 libguestfs Perl programs do set locale, but still localization doesn't work
        - 521674 Perl modules are unversioned, but should carry version numbers
        - 516096 Race condition in test_swapon_label_0: /sbin/blockdev: BLKRRPART: Device or resource busy
        - 507810 guestfish -i / virt-inspector cannot handle spaces in filenames
        - 502533 Updated Polish translation of libguestfs
        - 501894 Some String parameters should be OptString
        - 501893 String parameters should be checked for != NULL
        - 501889 write-file does not support strings containing ASCII NUL
        - 484986 grub-install fails on virtio disk


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

       10 листопада 2009 року (1.0.78)

       13 вересня 2009 року (1.0.67)

       23 липня 2009 року (1.0.64)

       14 липня 2009 року (1.0.59)

       1 квітня 2009 року (початкове оголошення)


       guestfs-examples(1), guestfs-faq(1), guestfs-performance(1), guestfs-recipes(1),
       guestfs-testing(1), guestfs(3), guestfish(1),


       Richard W.M. Jones


       Copyright (C) 2009-2019 Red Hat Inc.



       To get a list of bugs against libguestfs, use this link:

       To report a new bug against libguestfs, use this link:

       When reporting a bug, please supply:

       ·   The version of libguestfs.

       ·   Where you got libguestfs (eg. which Linux distro, compiled from source, etc)

       ·   Describe the bug accurately and give a way to reproduce it.

       ·   Run libguestfs-test-tool(1) and paste the complete, unedited output into the bug