fixed specfile to be able to run against stock kernel (in which case
Thierry Parmentelat [Thu, 26 Apr 2012 14:44:28 +0000 (16:44 +0200)]
kernel_version and the like should not be exported through the build)

planetlab/ipfwroot.spec

index c2fdae5..e0472fc 100644 (file)
 %define version 20120610
 %define taglevel 1
 
+# when no planetlab kernel is being built, kernel_version is defined but empty
+%define _with_planetlab_kernel %{?kernel_version:1}%{!?kernel_version:0}
 # we need to make sure that this rpm gets upgraded when the kernel release changes
+%if %{_with_planetlab_kernel}
+# with the planetlab kernel
 %define pl_kernel_taglevel %( echo %{kernel_release} | cut -d. -f1 )
-
-%define release %{kernel_version}.%{pl_kernel_taglevel}.%{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+%define ipfw_release %{kernel_version}.%{pl_kernel_taglevel}
+%else
+# with the stock kernel
+# this line below
+#%define ipfw_release %( rpm -q --qf "%{version}" kernel-headers )
+# causes recursive macro definition no matter how much you quote
+%define percent %
+%define braop \{
+%define bracl \}
+%define kernel_version %( rpm -q --qf %{percent}%{braop}version%{bracl} kernel-headers )
+%define kernel_release %( rpm -q --qf %{percent}%{braop}release%{bracl} kernel-headers )
+%define kernel_arch %( rpm -q --qf %{percent}%{braop}arch%{bracl} kernel-headers )
+%define ipfw_release %{kernel_version}.%{kernel_release}
+%endif
+
+%define release %{ipfw_release}.%{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
 
 # guess which convention is used; k27 and before used dash, k32 uses dot
 %define kernelpath_dash /usr/src/kernels/%{kernel_version}-%{kernel_release}-%{kernel_arch}