The rpm package dependencies look a bit like this currently:
lustre -> lustre-modules <-> lustre-osd-[ldiskfs|zfs] (via lustre-osd)
Note that the dependency between lustre-modules and lustre-osd-* goes both
ways.
We did that in the one direction because we need _something_ to
depend on the generic "Provides: lustre-osd" when we have server support
compiled in, so users will be clued in to the fact that they need to
select at least one of the lustre-osd-* packages.
In the other direction, the lustre-osd-* packages need to depend on
lustre-modules because the kernel modules contained in the lustre-osd-*
rpms really do use symbols from modules in the lustre-modules rpm.
RPM allows this circular dependency, but because of it the modules are not
necessarily installed in the order that we prefere. Namely:
1) lustre
2) lustre-modules
3) lustre-osd-*
It can happen that the lustre-osd-* packages are installed before the
lustre-modules package, and then the sysadmin will see a screen full of
scary messages about missing symbols.
To fix that problem, we move the dependency on lustre-osd up one package
into the "lustre" package. That makes the dependency graph look a bit
like:
lustre -> lustre-modules
|--> lustre-osd-[ldiskfs|zfs] (via lustre-osd)
lustre-osd-[ldiskfs|zfs] -> lustre-modules
I by breaking the dependency loop, we get the desired package installation
order described above.
Change-Id: I7bab1d536e75ce4cf3eb70fa4569c435ec8b2d66
Signed-off-by: Christopher J. Morrone <morrone2@llnl.gov>
Reviewed-on: http://review.whamcloud.com/6259
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Reviewed-by: Faccini Bruno <bruno.faccini@intel.com>
Reviewed-by: Brian J. Murrell <brian.murrell@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Obsoletes: lustre-lite, lustre-lite-utils, lustre-ldap nfs-utils-lustre
Provides: lustre-lite = %{version}, lustre-lite-utils = %{version}
Requires: %{name}-modules = %{version}
+%if ! %{is_client}
+Requires: lustre-osd
+%endif
# GSS requires this: BuildRequires: pkgconfig, libgssapi-devel >= 0.10
%description
Requires: kernel = %{krequires}
%endif
%endif
-%if ! %{is_client}
-Requires: lustre-osd
-%endif
Group: Development/Kernel
%description modules