[VDSM] Why hooks are required for installing vdsm?

Trying to update vdsm master, my update script fail with: installing... error: Failed dependencies: vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-fcoe-4.30.0-429.git05bfb8731.fc28.noarch vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-ethtool-options-4.30.0-429.git05bfb8731.fc28.noarch I tried to remove these hooks, since I'm not interested in any of them, but removing them try to remove 136 packages including libvirt. Why do we have these dependencies? hook should be optional. Who owns these hooks? Nir

On Thu, Jun 28, 2018 at 12:52 PM Nir Soffer <nsoffer@redhat.com> wrote:
Trying to update vdsm master, my update script fail with:
installing... error: Failed dependencies: vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-fcoe-4.30.0-429.git05bfb8731.fc28.noarch vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-ethtool-options-4.30.0-429.git05bfb8731.fc28.noarch
I tried to remove these hooks, since I'm not interested in any of them, but removing them try to remove 136 packages including libvirt.
Why do we have these dependencies? hook should be optional.
Who owns these hooks?
Strangely, the fcoe hook is not built by "make rpm": $ ls -1 noarch/ vdsm-api-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-client-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-common-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-cpuflags-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-ethtool-options-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-faqemu-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-ipv6-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-localdisk-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-macspoof-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-openstacknet-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-qemucmdline-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-vfio-mdev-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-vmfex-dev-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-http-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-jsonrpc-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-python-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-tests-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-yajsonrpc-4.30.0-435.git1fe2027bd.fc28.noarch.rpm $ cat contrib/koji_build.sh echo 'Please run this script from vdsm main folder' echo '============================================' make distclean ./autogen.sh \ --system \ --disable-ovirt-imageio \ --disable-ovirt-vmconsole \ --enable-vhostmd \ --enable-hooks \ --enable-containers \ --with-data-center='/run/vdsm/data-center' make srpm echo echo 'Finish to compile VDSM for koji Fedora build' echo 'Use output srp.rpm to import fedpkg' Should be build for fedora using --enable-hooks? Nir

On Thu, Jun 28, 2018 at 1:16 PM Nir Soffer <nsoffer@redhat.com> wrote:
On Thu, Jun 28, 2018 at 12:52 PM Nir Soffer <nsoffer@redhat.com> wrote:
Trying to update vdsm master, my update script fail with:
installing... error: Failed dependencies: vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-fcoe-4.30.0-429.git05bfb8731.fc28.noarch vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-ethtool-options-4.30.0-429.git05bfb8731.fc28.noarch
I tried to remove these hooks, since I'm not interested in any of them, but removing them try to remove 136 packages including libvirt.
Why do we have these dependencies? hook should be optional.
Who owns these hooks?
Strangely, the fcoe hook is not built by "make rpm":
$ ls -1 noarch/ vdsm-api-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-client-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-common-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-cpuflags-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-ethtool-options-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-faqemu-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-ipv6-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-localdisk-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-macspoof-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-openstacknet-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-qemucmdline-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-vfio-mdev-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-hook-vmfex-dev-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-http-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-jsonrpc-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-python-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-tests-4.30.0-435.git1fe2027bd.fc28.noarch.rpm vdsm-yajsonrpc-4.30.0-435.git1fe2027bd.fc28.noarch.rpm
$ cat contrib/koji_build.sh echo 'Please run this script from vdsm main folder' echo '============================================'
make distclean ./autogen.sh \ --system \ --disable-ovirt-imageio \ --disable-ovirt-vmconsole \ --enable-vhostmd \ --enable-hooks \ --enable-containers \ --with-data-center='/run/vdsm/data-center' make srpm
echo echo 'Finish to compile VDSM for koji Fedora build' echo 'Use output srp.rpm to import fedpkg'
Should be build for fedora using --enable-hooks?
Answering - --enable-hooks is required on Fedora. In summary this is how to build vdsm for Fedora 28: git clean -dxf ./autogen.sh --system --enable-hooks make make rpm Nir

On Thu, Jun 28, 2018 at 12:52 PM, Nir Soffer <nsoffer@redhat.com> wrote:
Trying to update vdsm master, my update script fail with:
installing... error: Failed dependencies: vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-fcoe-4.30.0-429.git05bfb8731.fc28.noarch vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-ethtool-options-4.30.0-429.git05bfb8731.fc28.noarch
I tried to remove these hooks, since I'm not interested in any of them, but removing them try to remove 136 packages including libvirt.
Why do we have these dependencies? hook should be optional.
Who owns these hooks?
git log can tell you the usual answer: I'm to blame. These hooks implement documented features. I suspect that something very basic - such as the ovirt-host package - requires them to ensure that they exist on each host. The motivation for having ovirt-host is to make sure all ovirt host have "everything" they need. It makes installation errors and questions less frequent, but it also makes it hard to tweak hosts and to make them slimmer.
Nir

On Thu, Jun 28, 2018 at 2:17 PM Dan Kenigsberg <danken@redhat.com> wrote:
On Thu, Jun 28, 2018 at 12:52 PM, Nir Soffer <nsoffer@redhat.com> wrote:
Trying to update vdsm master, my update script fail with:
installing... error: Failed dependencies: vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-fcoe-4.30.0-429.git05bfb8731.fc28.noarch vdsm = 4.30.0-429.git05bfb8731.fc28 is needed by (installed) vdsm-hook-ethtool-options-4.30.0-429.git05bfb8731.fc28.noarch
I tried to remove these hooks, since I'm not interested in any of them, but removing them try to remove 136 packages including libvirt.
Why do we have these dependencies? hook should be optional.
Who owns these hooks?
git log can tell you the usual answer: I'm to blame.
These hooks implement documented features. I suspect that something very basic - such as the ovirt-host package - requires them to ensure that they exist on each host.
If the these hooks are required, we need to include them in the build always - without using --enable-hooks. I think we did this with vmfex hook. We need an easy way to build vdsm from git and install it on any decent platfrom. We can start by documenting the process. Nir
participants (2)
-
Dan Kenigsberg
-
Nir Soffer