Fix rpm dependencies

This change updates the rpm spec files to have strictly correct
package dependencies.  That means a few things:

* The zfs-modules package is now tied to a specific build of
  the spl-modules packages based on the kernel version.  This
  ensures that the correct spl-modules packages will always get
  installed and not just the newest.

* The zfs package now requires both the zfs-modules and spl
  packages.  Thus a 'yum install zfs' will pull in the minimal
  set of packages required for a functional system.

* The zfs-devel packages now require the zfs package to be
  installed which is normal behavior for -devel packages.

* Remove the redundant distribution release extension.  This
  is already added once because it is part of the kernel package
  release name.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2012-01-17 16:20:43 -08:00
parent b40a77aefc
commit b4b599d250
2 changed files with 11 additions and 10 deletions

View File

@ -198,20 +198,22 @@
%define krequires %{kpkg} %define krequires %{kpkg}
%endif %endif
%define splrequires %{splpkg} %define splrequires %{splpkg}
%define spldevrequires %{spldevpkg}
%else %else
%define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g') %define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
%define release @ZFS_META_RELEASE@_%{relext} %define release @ZFS_META_RELEASE@_%{relext}
%if %{defined kpkg} %if %{defined kpkg}
%define krequires %{kpkg} %{koppkg} %{kverpkg} %define krequires %{kpkg} %{koppkg} %{kverpkg}
%endif %endif
%define splrequires %{splpkg} = %{splverpkg} %define splrequires %{splpkg} = %{splverpkg}_%{relext}
%define spldevrequires %{spldevpkg} = %{splverpkg}_%{relext}
%endif %endif
Summary: ZFS File System Summary: ZFS File System
Group: Utilities/System Group: Utilities/System
Name: %{name} Name: %{name}
Version: %{version} Version: %{version}
Release: %{release}%{?dist} Release: %{release}
License: @ZFS_META_LICENSE@ License: @ZFS_META_LICENSE@
URL: git://github.com/zfsonlinux/zfs.git URL: git://github.com/zfsonlinux/zfs.git
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un)
@ -236,11 +238,10 @@ Group: Development/Libraries
%if %{defined krequires} %if %{defined krequires}
Requires: %{krequires} Requires: %{krequires}
%endif %endif
Requires: %{splrequires}
%if %{defined kdevpkg} %if %{defined kdevpkg}
BuildRequires: %{kdevpkg} Requires: %{kdevpkg}
%endif %endif
BuildRequires: %{spldevpkg} Requires: %{spldevrequires}
%description devel %description devel
The %{name}-devel package contains the kernel header files and The %{name}-devel package contains the kernel header files and

View File

@ -17,7 +17,7 @@ License: @ZFS_META_LICENSE@
URL: git://github.com/zfsonlinux/zfs.git URL: git://github.com/zfsonlinux/zfs.git
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un) BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id} -un)
Source: %{name}-%{version}.tar.gz Source: %{name}-%{version}.tar.gz
Requires: zlib e2fsprogs Requires: zfs-modules spl zlib e2fsprogs
BuildRequires: zlib-devel e2fsprogs-devel BuildRequires: zlib-devel e2fsprogs-devel
%description %description
@ -28,10 +28,10 @@ for the zfs file system.
Summary: ZFS File System User Headers Summary: ZFS File System User Headers
Group: Development/Libraries Group: Development/Libraries
%if %{defined ch5} || %{defined el6} || %{defined fc12} %if %{defined ch5} || %{defined el6} || %{defined fc12}
Requires: zlib libuuid libblkid Requires: zfs zlib libuuid libblkid
BuildRequires: zlib-devel libuuid-devel libblkid-devel BuildRequires: zlib-devel libuuid-devel libblkid-devel
%else %else
Requires: zlib e2fsprogs Requires: zfs zlib e2fsprogs
BuildRequires: zlib-devel e2fsprogs-devel BuildRequires: zlib-devel e2fsprogs-devel
%endif %endif
@ -42,7 +42,7 @@ additional applications against the %{name} libraries.
%package test %package test
Summary: ZFS File System Test Infrastructure Summary: ZFS File System Test Infrastructure
Group: Utilities/System Group: Utilities/System
Requires: parted lsscsi Requires: zfs parted lsscsi
%description test %description test
The %{name}-test package contains a test infrastructure for zpios which The %{name}-test package contains a test infrastructure for zpios which
@ -53,7 +53,7 @@ various system profiling tools to facilitate an in depth analysis.
%package dracut %package dracut
Summary: ZFS Dracut Module Summary: ZFS Dracut Module
Group: System Environment/Base Group: System Environment/Base
Requires: dracut Requires: zfs dracut
%description dracut %description dracut
The %{name}-dracut package allows dracut to construct initramfs images The %{name}-dracut package allows dracut to construct initramfs images