Hi,

I made some KMP-style kmod packages in the way recommended in
http://driverupdateprogram.com/.  I really enjoyed making kmod
packages this way because the spec files can be very neat and simple.
The platform on which I built these rpms is RHEL5.5 x86_64.

Now I have problem with kmod-drbd and kmod-reiserfs package:

[r...@ip185 ~]# rpm -ivh kmod-drbd-8.3.7-1.x86_64.rpm
error: Failed dependencies:
        ksym(proc_create) = 5607c912 is needed by kmod-drbd-8.3.7-1.x86_64
        ksym(__bitmap_shift_left) = 76bf656d is needed by
kmod-drbd-8.3.7-1.x86_64

[r...@ip185 ~]# rpm -ivh kmod-reiserfs-2.6.18.194-1.x86_64.rpm
error: Failed dependencies:
        ksym(generic_cont_expand) = 10450a92 is needed by
kmod-reiserfs-2.6.18.194-1.x86_64
        ksym(inode_get_bytes) = 43fb1564 is needed by
kmod-reiserfs-2.6.18.194-1.x86_64
        ksym(generic_osync_inode) = 7e9a00da is needed by
kmod-reiserfs-2.6.18.194-1.x86_64
        ksym(generate_random_uuid) = a681fe88 is needed by
kmod-reiserfs-2.6.18.194-1.x86_64

However, I can extract the ko file from the rpm file and manually
insmod the ko file, no error happens.  So all the missing ksyms are
actually provided by 2.6.18-194.el5 kernel, they are just not
mentioned in the providing list of the kernel package.

How do I fix these problems?  Do I need to modify
/usr/lib/rpm/redhat/find-requires* ?


Regards,
Simon

P.S.  Below are my drbd and reiserfs spec files:

Name: reiserfs
Summary: reiserfs kernel module
Version: 2.6.18.194
Release: 1
License: GPL
Group: System Environment/Kernel
Source0: %name-%version.tar.bz2
BuildRequires: %kernel_module_package_buildreqs
BuildRoot: %{_tmppath}/%{name}-%{version}-build

%kernel_module_package

%description
kernel module of Reiserfs file system

%prep
%setup
set -- *
mkdir source
mv "$@" source/
mkdir obj

%build
export EXTRA_CFLAGS="$EXTRA_CFLAGS -DCONFIG_REISERFS_PROC_INFO=1
-DCONFIG_REISERFS_FS_XATTR=1 -DCONFIG_REISERFS_FS_POSIX_ACL=1
-DCONFIG_REISERFS_FS_SECURITY=1"
for flavor in %flavors_to_build; do
        rm -rf obj/$flavor
        cp -r source obj/$flavor
        CONFIG_REISERFS_FS=m CONFIG_REISERFS_CHECK=n
CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y make -C
%{kernel_source $flavor} M=$PWD/obj/$flavor
done

%install
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
export INSTALL_MOD_DIR=extra/%{name}
for flavor in %flavors_to_build; do
        make -C %{kernel_source $flavor} modules_install M=$PWD/obj/$flavor
done
find ${INSTALL_MOD_PATH} -type f -name \*.ko -exec strip --strip-debug \{\} \;

%clean
rm -rf %{buildroot}

%changelog
* Fri Apr 30 2010 <[email protected]> - 2.6.18.194-1
- Initial KMP build of 2.6.18-194.el5 reiserfs

--------------------------------------------------------------

Name: drbd
Summary: drbd kernel module
Version: 8.3.7
Release: 1
License: GPL
Group: System Environment/Kernel
Source0: %name-%version.tar.bz2
Patch0: drbd-build-fix.patch
BuildRequires: %kernel_module_package_buildreqs
BuildRoot: %{_tmppath}/%{name}-%{version}-build

%kernel_module_package

%description
kernel module of DRBD (Distributed Replicated Block Device) support

%prep
%setup
%patch0 -p1
set -- *
mkdir source
mv "$@" source/
mkdir obj

%build
for flavor in %flavors_to_build; do
        rm -rf obj/$flavor
        cp -r source obj/$flavor
        CONFIG_BLK_DEV_DRBD=m CONFIG_DRBD_TRACE=n make -C
%{kernel_source $flavor} M=$PWD/obj/$flavor
done

%install
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
export INSTALL_MOD_DIR=extra/%{name}
for flavor in %flavors_to_build; do
        make -C %{kernel_source $flavor} modules_install M=$PWD/obj/$flavor
done
find ${INSTALL_MOD_PATH} -type f -name \*.ko -exec chmod +x \{\} \;

%clean
rm -rf %{buildroot}

%changelog
* Fri Apr 30 2010 <[email protected]> - 8.3.7-1
- Initial KMP build of drbd 8.3.7

_______________________________________________
rhelv5-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/rhelv5-list

Reply via email to