[Drbd-dev] [PATCH] drbd-km.spec: Port to openSuSE

Bart Van Assche bart.vanassche at sandisk.com
Thu Sep 10 19:33:03 CEST 2015

Currently building an RPM with the drbd-km.spec fails on openSuSE
because of an incorrect build dependency (kernel-syms instead of
kernel-default-devel). Fix the algorithm in the spec file for
determining the kernel development RPM name. Note: if the kernel
development headers have not been installed as an RPM the
%{kernel_devel_rpm} variable will be empty.

This patch has been tested on openSuSE 13.2, CentOS 7.1 and SLES11 SP3.

Signed-off-by: Bart Van Assche <bart.vanassche at sandisk.com>
 drbd-km.spec | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drbd-km.spec b/drbd-km.spec
index e5ad36b..a738b58 100644
--- a/drbd-km.spec
+++ b/drbd-km.spec
@@ -3,6 +3,14 @@
 # PLEASE: provide both (correctly) or none!!
 %{!?kernelversion: %{expand: %%define kernelversion %(uname -r)}}
 %{!?kdir: %{expand: %%define kdir /lib/modules/%(uname -r)/build}}
+%define kernel_devel_rpm %{expand:%%(rpm -q --quiet -f %{kdir}/ 2>/dev/null &&
+          rpm -q --qf '%%%%{name}\\n' -f %{kdir}/ | uniq)}
 # encode - to _ to be able to include that in a package name or release "number"
 %global krelver  %(echo %{kernelversion} | tr -s '-' '_')
@@ -17,9 +25,7 @@ ExclusiveOS: linux
 Group: System Environment/Kernel
 URL: http://www.drbd.org/
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
-BuildRequires: gcc
-%(test -e /etc/redhat-release && echo BuildRequires: kernel-devel)
-%(test -e /etc/SuSE-release && echo BuildRequires: kernel-syms)
+BuildRequires: gcc %{kernel_devel_rpm}
 DRBD mirrors a block device over the network to another machine.

More information about the drbd-dev mailing list