Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-16095

lbuild: sles build should not require kernel-default-devel installed

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • None
    • None
    • 3
    • 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.
      
      

      Attachments

        Issue Links

          Activity

            [LU-16095] lbuild: sles build should not require kernel-default-devel installed
            yujian Jian Yu added a comment -

            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
            
            yujian Jian Yu added a comment - 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
            mdiep Minh Diep added a comment -

            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
            
            mdiep Minh Diep added a comment - 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

            "Minh Diep <mdiep@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/48221
            Subject: LU-16095 build: fix lbuild not depending on installed kernel-devel
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 2e4ba32467358af5a5498e49e64b66126d74b6c9

            gerrit Gerrit Updater added a comment - "Minh Diep <mdiep@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/48221 Subject: LU-16095 build: fix lbuild not depending on installed kernel-devel Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 2e4ba32467358af5a5498e49e64b66126d74b6c9

            People

              mdiep Minh Diep
              mdiep Minh Diep
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: