[libvirt PATCH 01/14] remove HAL node device driver

Michal Privoznik mprivozn at redhat.com
Thu Sep 17 13:01:46 UTC 2020


On 9/17/20 10:29 AM, Pavel Hrdina wrote:
> There was one attempt a year ago done by me to drop HAL [1] but it was
> never resolved. There was another time when Dan suggested to drop HAL
> driver [2] but it was decided to keep it around in case device
> assignment will be implemented for FreeBSD and the fact that
> virt-manager uses node device driver [3].
> 
> I checked git history and code and it doesn't look like bhyve supports
> device assignment so from that POV it should not block removing HAL.
> 
> The argument about virt-manager is not strong as well because libvirt
> installed from FreeBSD packages doesn't have HAL support so it will not
> affect these users as well [4].
> 
> The only users affected by this change would be the ones compiling
> libvirt from GIT on FreeBSD.
> 
> I looked into alternatives and there is libudev-devd package on FreeBSD
> but unfortunately it doesn't work as it doesn't list any devices when
> used with libvirt. It provides libudev APIs using devd.
> 
> I also looked into devd directly and it provides some APIs but there are
> no APIs for device monitoring and events so that would have to be
> somehow done by libvirt.
> 
> Main motivation for dropping HAL support is to replace libdbus with GLib
> dbus implementation and it cannot be done with HAL driver present in
> libvirt because HAL APIs heavily depends on symbols provided by libdbus.
> 
> [1] <https://www.redhat.com/archives/libvir-list/2019-May/msg00203.html>
> [2] <https://www.redhat.com/archives/libvir-list/2016-April/msg00992.html>
> [3] <https://www.redhat.com/archives/libvir-list/2016-April/msg00994.html>
> [4] <https://svnweb.freebsd.org/ports/head/devel/libvirt/Makefile?view=markup>
> 
> Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> ---
>   meson.build                          |   9 +-
>   meson_options.txt                    |   1 -
>   po/POTFILES.in                       |   1 -
>   src/node_device/meson.build          |   5 -
>   src/node_device/node_device_driver.c |  10 +-
>   src/node_device/node_device_driver.h |   5 -
>   src/node_device/node_device_hal.c    | 843 ---------------------------
>   src/node_device/node_device_hal.h    |  22 -
>   8 files changed, 3 insertions(+), 893 deletions(-)
>   delete mode 100644 src/node_device/node_device_hal.c
>   delete mode 100644 src/node_device/node_device_hal.h

Couple of missed occurrences:

diff --git i/docs/drvnodedev.html.in w/docs/drvnodedev.html.in
index ab87b6bbd2..0823c1888d 100644
--- i/docs/drvnodedev.html.in
+++ w/docs/drvnodedev.html.in
@@ -23,8 +23,7 @@
        (<a href="https://wiki.libvirt.org/page/NPIV_in_libvirt">more 
info about NPIV)</a>).
        Devices on the host system are arranged in a tree-like 
hierarchy, with
        the root node being called <code>computer</code>. The node 
device driver
-      supports two backends to manage the devices, HAL and udev, with 
the former
-      being deprecated in favour of the latter.
+      supports udev backend (HAL backend was removed in 
<code>6.8.0</code>).
      </p>

      <p>
diff --git i/libvirt.spec.in w/libvirt.spec.in
index 62b401bd08..d9bfed0bef 100644
--- i/libvirt.spec.in
+++ w/libvirt.spec.in
@@ -1166,7 +1166,6 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' 
%{_specdir}/%{name}.spec)
             %{?arg_selinux_mount} \
             -Dapparmor=disabled \
             -Dsecdriver_apparmor=disabled \
-           -Dhal=disabled \
             -Dudev=enabled \
             -Dyajl=enabled \
             %{?arg_sanlock} \
diff --git i/scripts/hvsupport.py w/scripts/hvsupport.py
index 14c41da348..e2aab8feff 100755
--- i/scripts/hvsupport.py
+++ w/scripts/hvsupport.py
@@ -60,7 +60,6 @@ for root, dirs, files in os.walk(os.path.join(srcdir, 
"src")):
                  file.endswith("common.c") or
                  file.endswith("tmpl.c") or
                  file.endswith("monitor.c") or
-                file.endswith("hal.c") or
                  file.endswith("udev.c")):
              srcs.append(os.path.join(root, file))


And also it would be nice to mention this in the news file.

Michal




More information about the libvir-list mailing list