On Sun, 2005-07-03 at 16:11 +0200, Thorsten Leemhuis wrote:
- These macro definitions are now found in the top of the spec file:
%{!?kver: %define kver %(uname -r)} %define ksrc %{_usrsrc}/kernels/%{kver}-%{_target_cpu} %define moddir /lib/modules/%{kver}/kernel/misc %define mainpkgname ndiswrapper %define mainpkgversion 1.2 %define mainpgkrelease 1 Yes, in other packages I would not like these "mainpkg*" definitions on the top, but in this type of package I think they are helpful.
I think you're mostly right. mainpkgversion and mainpkgrelease are redundant, however. Just use Version and Release for that.
- The main kernel-module package is now named
"kernel-module-%{mainpkgname}-base" (if someones knows something better then "base" tell me).
Perhaps instead of -base, it could be -source. I'm ambivalent on that, really.
The kernel-module itself is now placed in %package -n kernel-module-%{mainpkgname} So only one SRPM is created no matter how much different kernel-modules are build.
This makes sense, good thinking.
- Avoid some problems when kernel-module and kernel are deleted in one
rpm transaction (anyone knows a better way to fix? "Requires(postun): kernel-%{_target_cpu} = %{kver}" does not work): -- Only depmod when System.map is still there %postun -n kernel-module-%{mainpkgname} [ -e "/boot/System.map-%{kver}" ] && \ /sbin/depmod -e -F /boot/System.map-%{kver} %{kver}> /dev/null || : -- In %files: %dir /lib/modules/%{kver}/ so that dir is removed during remove.
The kernel package already owns that dir, I don't see why this is here. rpm removal ordering should take the module out first, then the kernel. Is that not the case?
All in all, very good work. I think your proposal is shaping up to work well. Thanks for the time.
~spot