I am working on a spec file that attempts to build weak modules if desired, but seem to be missing something. It is building dependencies that can't be satisfied: # rpm -ivh kmod-iscsitarget-svn_r236-1_2.6.18_128.7.1.el5.x86_64.rpm error: Failed dependencies: ksym(fsync_bdev) = c0b9afbe is needed by kmod-iscsitarget-svn_r236-1_2.6.18_128.7.1.el5.x86_64 ksym(sync_page_range) = f15905e0 is needed by kmod-iscsitarget-svn_r236-1_2.6.18_128.7.1.el5.x86_64 I can build kernel specific versions without an issue. Below is the spec file: ## ## Global Package Definitions ## ## IET Release %define iet_version 0.4.17 ## Package Revision %define revision 1 ## Build Options # Build weak module (KABI tracking) requires /sbin/weak-modules %define weak 1 # Build DKMS kernel module %define dkms 0 # Build from SVN repository %define svn 1 ## Package Definitions # %if %svn %define svn_url http://svn.berlios.de/svnroot/repos/iscsitarget/trunk %define iet_version %(svn info --non-interactive %{svn_url} | awk '{if ($1 == "Revision:") {print "svn_r"$2}}') %endif ## Platform Definitions # Define kernel version information %{!?kernel: %define kernel %(uname -r)} %define kver %(echo %{kernel} | sed -e 's/smp//' -e 's/bigmem//' -e 's/enterprise//') %define ktype %(echo kernel-%{kernel} | sed -e 's/%{kver}//' -e 's/-$//') %define krel %(echo %{kver} | sed -e 's/-/_/g') %define kminor %(echo %{kernel} | sed -e 's/.*\\([0-9][0-9]*\\)-.*/\\1/') ## ## Main Package ## ## Information Summary: iSCSI Enterprise Target Name: iscsitarget Version: %{?iet_version: %{iet_version}} Release: %{?revision: %{revision}} License: GPL Group: System Environment/Daemons URL: http://sourceforge.net/projects/iscsitarget/ Packager: IET development team <iscsitarget-devel at lists.sourceforge.net> ## Source files %if %svn %else Source0: %{name}-%{version}.tar.gz %endif ## Patches ## Install Requirements Requires: %{name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release} ## Build Requirements BuildRequires: kernel >= 2.6 BuildRequires: %{ktype}-devel = %{kver}, gcc, make, patch, binutils, /usr/bin/install, openssl-devel %if %svn BuildRequires: subversion %endif ## Build Definitions BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root ## Description %description iSCSI Enterprise Target ## ## Kernel Module ## %if %dkms %ifarch noarch %package -n kmod-%{name} ## Information Summary: iSCSI Enterprise Target kernel module Group: System Environment/Kernel Release: %{release}_dkms ## Install Requirements Requires: %{ktype}-devel, gcc, make, patch, binutils, openssl-devel Requires: dkms >= 2 ## Install Provides Provides: kmod-%{name} =%{?epoch:%{epoch}:}%{version}-%{release} ## Description %description -n kmod-%{name} iSCSI Enterprise Target kernel module %endif %else %package -n kmod-%{name} ## Information Summary: iSCSI Enterprise Target kernel module Group: System Environment/Kernel Release: %{release}_%{krel} ## Install Requirements %if %weak %global _use_internal_dependency_generator 0 Requires(post): /sbin/weak-modules Requires(postun): /sbin/weak-modules %else Requires: %{ktype} = %{kver} %endif Requires(post): /sbin/depmod Requires(postun): /sbin/depmod ## Install Provides Provides: kernel-modules = %{kver} Provides: %{name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release} ## Description %description -n kmod-%{name} iSCSI Enterprise Target kernel module %endif ## ## Package Creation ## ## Preparation %prep ## Setup %if %svn %setup -q -T -c -n %{name}-%{version} svn export --force --non-interactive -q %{svn_url} . sed -i -e "s/\(#define IET_VERSION_STRING\).*/\1\t\"%{version}\"/" include/iet_u.h %else %setup -q -n %{name}-%{version} %endif ## Patch ## Build %build %ifnarch noarch %if %dkms %{__make} usr %else %{__make} KERNELSRC=/lib/modules/%{kernel}/build %endif %endif ## Installation %install %{__rm} -rf %{buildroot} %ifnarch noarch %if %dkms %{__make} install-usr install-doc install-etc KERNELSRC=/lib/modules/%{kernel}/build DISTDIR=%{buildroot} %else %{__make} install-files KERNELSRC=/lib/modules/%{kernel}/build DISTDIR=%{buildroot} %endif mkdir -p %{buildroot}/etc/rc.d mv %{buildroot}/etc/init.d %{buildroot}/etc/rc.d rm -rf %{buildroot}/usr/share/doc/iscsitarget %endif %if %dkms %ifarch noarch %{__make} distclean mkdir -p %{buildroot}/usr/src/%{name}-%{version} cp -r COPYING include kernel patches %{buildroot}/usr/src/%{name}-%{version} sed -e "s/PACKAGE_VERSION=.*/PACKAGE_VERSION=\"%{version}\"/" dkms.conf >%{buildroot}/usr/src/%{name}-%{version}/dkms.conf %endif %else rm -f %{buildroot}/lib/modules/%{kernel}/modules.* %if %weak find %{buildroot} -type f -name \*.ko -exec strip --strip-debug \{\} \; %endif %endif ## Cleaning %clean %{__rm} -rf %{buildroot} ## Post-Install Script %ifnarch noarch %post /sbin/chkconfig --add iscsi-target %endif ## Pre-Uninstall Script %ifnarch noarch %preun if [ "$1" = 0 ]; then /sbin/service iscsi-target stop &>/dev/null /sbin/chkconfig --del iscsi-target fi %endif ## Post-Uninstall Script %ifnarch noarch %postun if [ "$1" != 0 ]; then /sbin/service iscsi-target condrestart 2>&1 > /dev/null fi %endif ## Post-Install Script (Kernel Module) %if %dkms %ifarch noarch %post -n kmod-%{name} /usr/sbin/dkms add -m %{name} -v %{version} /usr/sbin/dkms build -m %{name} -v %{version} /usr/sbin/dkms install -m %{name} -v %{version} %endif %else %post -n kmod-%{name} /sbin/depmod %{kernel} -A %if %weak echo iscsi_trgt.ko | /sbin/weak-modules --add-modules %endif %endif ## Pre-Uninstall Script (Kernel Module) %if %dkms %ifarch noarch %preun -n kmod-%{name} /usr/sbin/dkms remove -m %{name} -v %{version} --all %endif %else %preun -n kmod-%{name} modprobe -r -q --set-version %{kernel} iscsi_trgt /sbin/depmod %{kernel} -A %if %weak echo iscsi_trgt.ko | /sbin/weak-modules --remove-modules %endif %endif ## File Catalog %ifnarch noarch %files %defattr(-, root, root) %{_sbindir}/* %{_mandir}/man?/* %{_sysconfdir}/rc.d/init.d/* %config(noreplace) %{_sysconfdir}/iet/ietd.conf %config(noreplace) %{_sysconfdir}/iet/initiators.allow %config(noreplace) %{_sysconfdir}/iet/targets.allow %doc ChangeLog COPYING README README.vmware README.initiators %endif ## File Catalog (Kernel Module) %if %dkms %ifarch noarch %files -n kmod-%{name} %defattr(-, root, root) /usr/src/%{name}-%{version}/* %endif %else %files -n kmod-%{name} %defattr(-, root, root) /lib/modules/%{kernel}/kernel/iscsi/iscsi_trgt.ko %endif %changelog * Wed Sep 22 2009 Ross Walker <rswwalker at gmail dot com> - 0.4.17-236 - Updated file catalog for new config directory * Wed Sep 09 2009 Ross Walker <rswwalker at gmail dot com> - 0.4.17-226 - Added ability to build directly from subversion repo - Added ability to build dkms kernel module * Mon Nov 10 2008 Ross Walker <rswwalker at gmail dot com> - 0.4.17-177 - Changed kernel-module naming to kmod - Updated versioning * Fri Feb 16 2007 Ross Walker <rswwalker at gmail dot com> - 0.4.14-96 - Reworked spec file for latest release - Commented and cleaned up sections - Added additional documents to %files * Mon Nov 21 2005 Bastiaan Bakker <bastiaan dot bakker at lifeline dot nl> - 0.4.13-0.1266.1 - upstream snapshot 1266 - added condrestart patch - stop and start service on update or removal * Sun Nov 13 2005 Bastiaan Bakker <bastiaan dot bakker at lifeline dot nl> - 0.4.13-0.1264.2 - run %post and %preun for kernel package, not main package * Sun Nov 13 2005 Bastiaan Bakker <bastiaan dot bakker at lifeline dot nl> - 0.4.13-0.1264.1 - updated to snapshot 1264 * Thu Nov 03 2005 Bastiaan Bakker <bastiaan dot bakker at lifeline dot nl> - 0.4.12-6 - added openssl-devel build requirement - removed '.ko' extension in modprobe command * Wed Nov 02 2005 Bastiaan Bakker <bastiaan dot bakker at lifeline dot nl> - 0.4.12-5 - fixed kernel-devel BuildRequires * Fri Sep 23 2005 Bastiaan Bakker <bastiaan dot bakker at lifeline dot nl> - 0.4.12-4 - fixed modprobe -r 'FATAL' message - run depmod with correct kernel version * Fri Sep 23 2005 Bastiaan Bakker <bastiaan dot bakker at lifeline dot nl> - 0.4.12-3 - added config files - set kernel module file permissions to 744 - fixed provides/requires of kernel module - removed BuildArch restriction * Thu Sep 22 2005 Bastiaan Bakker <bastiaan dot bakker at lifeline dot nl> - 0.4.12-2 - create separate subpackage for kernel module - include man pages - added kernel compatibility patch for kernels < 2.6.11 * Wed Aug 03 2005 Bastiaan Bakker <bastiaan dot bakker at lifeline dot nl> - First version.