[LU-16095] lbuild: sles build should not require kernel-default-devel installed Created: 15/Aug/22 Updated: 09/Nov/22 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Minh Diep | Assignee: | Minh Diep |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||
| Severity: | 3 | ||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||
| Description |
|
/lib/modules/<version>/build is symlinked to /usr/src/<version>, and since lbuild extracts the rpm to put in 'reused' directory, it has to take care of the symlink too to prevent requiring the rpm to be installed. Otherwise we see some errors like this error: cannot determine ksym provides of /tmp/rpmbuild-lustre-jenkins-LkKoPYLF/BUILDROOT/lustre-2.15.51_9_g8ab411e-1.x86_64/lib/modules/4.12.14-122.116-default/updates/lustre-client-tests/fs/llog_test.ko - missing ksym-povides tool. |
| Comments |
| Comment by Gerrit Updater [ 15/Aug/22 ] |
|
"Minh Diep <mdiep@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/48221 |
| Comment by Minh Diep [ 15/Aug/22 ] |
|
self note: ++ readlink /lib/modules/4.12.14-122.116-default/build + objdir= ++ readlink /tmp/rpmbuild-lustre-jenkins-vfmwHzbm/BUILDROOT/lustre-2.15.51_1_g2e4ba32-1.x86_64/lib/modules/4.12.14-122.116-default/build + objdir_build=/tmp/rpmbuild-lustre-jenkins-vfmwHzbm/BUILDROOT/lustre-2.15.51_1_g2e4ba32-1.x86_64 + for i in '$objdir_build' '$objdir' + ksym_provides=/tmp/rpmbuild-lustre-jenkins-vfmwHzbm/BUILDROOT/lustre-2.15.51_1_g2e4ba32-1.x86_64/scripts/mod/ksym-provides + '[' -x /tmp/rpmbuild-lustre-jenkins-vfmwHzbm/BUILDROOT/lustre-2.15.51_1_g2e4ba32-1.x86_64/scripts/mod/ksym-provides ']' + '[' -x /tmp/rpmbuild-lustre-jenkins-vfmwHzbm/BUILDROOT/lustre-2.15.51_1_g2e4ba32-1.x86_64/scripts/mod/ksym-provides ']' /usr/lib/rpm/find-provides.ksyms actually looks for installed /lib/modules/4.12.14-122.116-default/build first then BUILDROOT/lustre.../scripts/mod to find ksym-provides. but we don't have that in lustre!? here is the snippet
objdir=$(readlink /lib/modules/$version/build)
objdir_build=$RPM_BUILD_ROOT$(readlink $RPM_BUILD_ROOT/lib/modules/$version/build)
for i in $objdir_build $objdir ; do
ksym_provides=$i/scripts/mod/ksym-provides
[ -x $ksym_provides ] && break
done
if [ -x $ksym_provides ] ; then
$ksym_provides $flavor $f
else
major=${version%%.*}
sub=${version#*.}
sub=${sub%%.*}
if [ "$major" -ge 4 -a "$sub" -ge 10 ] ; then
echo "error: cannot determine ksym provides of $f - missing ksym-povides tool." >&2
else
nm "$f" \
| sed -r -ne "s/^0*([0-9a-f]+) A __crc_(.+)/ksym($flavor:\\2) = \\1/p"
fi
fi
|
| Comment by Jian Yu [ 09/Nov/22 ] |
|
In https://review.whamcloud.com/48974, SLES15 SP3 client build failed: lbuild: Could not find the Linux tree in /data/lbuild-data/kernelrpm/5.3/sles15/x86_64/kernel-default-devel-5.3.18-150300.59.98.1.x86_64.rpm |