-%define url $URL$
-
%define name transforward
%define version 0.1
%define taglevel 1
-%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+### legacy from locally-built kernels, used to define these
+# kernel_release : 1.fc16 (24 is then the planetlab taglevel)
+# kernel_version : 3.3.7
+# kernel_arch : i686 | x86_64
+
+# compute this with "rpm -q --qf .. kernel-devel" when with the stock kernel
+# this line below
+#%define module_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 )
+
+# this is getting really a lot of stuff, could be made simpler probably
+%define release %{kernel_version}.%{kernel_release}.%{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
+
+%define kernel_id %{kernel_version}-%{kernel_release}.%{kernel_arch}
+%define kernelpath /usr/src/kernels/%{kernel_id}
+
Vendor: PlanetLab
Packager: PlanetLab Central <support@planet-lab.org>
Distribution: PlanetLab %{plrelease}
-URL: %(echo %{url} | cut -d ' ' -f 2)
+URL: %{SCMURL}
Summary: Kernel module that transparently forwards ports between containers
Name: %{name}
%setup -q
%build
-make -C /lib/modules/`ls /lib/modules | head -1`/build M=$PWD modules
+make -C %{kernelpath} V=1 M=$(pwd) modules
%install
-mkdir -p $RPM_BUILD_ROOT/lib/modules/`ls /lib/modules | head -1`/kernel/net/transforward
-cp transforward.ko $RPM_BUILD_ROOT/lib/modules/`ls /lib/modules | head -1`/kernel/net/transforward
+install -D -m 755 transforward.ko $RPM_BUILD_ROOT/lib/modules/%{kernel_id}/net/transforward/transforward.ko
%clean
rm -rf $RPM_BUILD_ROOT
%files
-/lib
+/lib/modules/%{kernel_id}
%post