qat2.0.l package contains shared libraries without versions

Bug #2046175 reported by M. Vefa Bicakci
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
StarlingX
Fix Released
Low
M. Vefa Bicakci

Bug Description

Brief Description
-----------------

The qat2.0.l StarlingX/Debian package, when built, includes two shared libraries that do not have versions in their "soname" fields and file names: "libqat_s.so" and "libusdm_drv_s.so". This in turn causes the following build warnings to be printed out, and more importantly causes dependent packages to not have automatically populated 'Depends:' package metadata fields:

  dpkg-shlibdeps: warning: can't extract name and version from library name 'libqat_s.so'

Severity
--------
Minor: This is a minor build issue, in the reporter's opinion.

Steps to Reproduce
------------------

Running "build-pkgs -c -p qat2.0.l" in a StarlingX build environment and then checking the qat2.0.l package's build logs is sufficient to confirm the existence of this issue.

Cherry-picking the commit at the following link, and then building the qatzip package also results in the same warning messages, and the qatzip package does not explicitly depend on the qat2.0.l package because of this issue:

  https://review.opendev.org/c/starlingx/kernel/+/890744

Expected Behavior
------------------
Building the qat2.0.l package in StarlingX should not result in the warning messages mentioned above.

Actual Behavior
----------------
The warning messages are printed out as reported.

Reproducibility
---------------
Reproducible with every build.

System Configuration
--------------------
Not applicable; build issue.

Branch/Pull Time/Commit
-----------------------
This is a day-1 issue with the qat2.0.l package introduced with the following commit in starlingx/kernel:

  https://review.opendev.org/c/starlingx/kernel/+/886392

Last Pass
---------
Not applicable; day 1 issue.

Timestamp/Logs
--------------
Please see the warning messages quoted in the issue description.

Test Activity
-------------
Build / normal use.

Workaround
----------
Manually adding the "qat2.0.l" package name to the Depends fields of all dependent packages' debian/control files is a workaround, but an error-prone one.

Changed in starlingx:
assignee: nobody → M. Vefa Bicakci (vbicakci)
status: New → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to kernel (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/starlingx/kernel/+/903368

Changed in starlingx:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to kernel (master)

Reviewed: https://review.opendev.org/c/starlingx/kernel/+/903368
Committed: https://opendev.org/starlingx/kernel/commit/8e6c846e066d1eaafc160ec6d2c58877422eb577
Submitter: "Zuul (22348)"
Branch: master

commit 8e6c846e066d1eaafc160ec6d2c58877422eb577
Author: M. Vefa Bicakci <email address hidden>
Date: Thu Nov 30 23:47:45 2023 +0000

    qat2.0.l: Add version to shared library soname

    This commit resolves the following error message printed out during
    qat2.0.l and qatzip package builds:

      dpkg-shlibdeps: warning: can't extract name and version from \
        library name 'libqat_s.so'

    This is caused by the lack of a version number in the "libqat_s.so" and
    "libusdm_drv_s.so" shared libraries' file names as well as their soname
    fields, and it is resolved by adding a placeholder version number to the
    soname field of the shared libraries built by the qat2.0.l package. For
    further information, please see the description of the included patch.

    This commit also adds symbolic links from the non-versioned library file
    names to the versioned library file names, to adhere to the shared
    library conventions.

    Verification:
    * An ISO image was successfully built with this commit and a
      cherry-picked version of the commit at the following link, and the
      build logs for both the qat2.0.l-common and the qatzip packages did
      not exhibit the aforementioned warning message:

      https://review.opendev.org/c/starlingx/kernel/+/890744

    * The "qatzip" Debian package resulting from the build automatically
      included the qat2.0.l-common package in its dependencies list:

      ```
      $ dpkg-deb -f \
        /localdisk/.../std/qatzip/qatzip_1.1.2-1.stx.1_amd64.deb \
        Depends

      libc6 (>= 2.17), liblz4-1 (>= 0.0~r127), \
        qat2.0.l-common (>= 1.0.20), zlib1g (>= 1:1.2.2)
      ```

    * The ISO image built with this commit was installed into a
      qemu/KVM-based virtual machine in All-in-One simplex low-latency mode,
      and running the "cpa_sample_code" and "qzip" executables did not
      result in shared library resolution-related error messages.
      Furthermore, "ldd" indicated that the libraries were successfully
      located by the dynamic linker. An example:

      $ ldd /usr/bin/qzip | grep -e libusdm_drv_s -e libqat_s
      libusdm_drv_s.so.0 => /lib/x86_64-linux-gnu/libusdm_drv_s.so.0 \
        (0x00007fd6150c6000)
      libqat_s.so.0 => /lib/x86_64-linux-gnu/libqat_s.so.0 \
        (0x00007fd614fcf000)

    Closes-Bug: 2046175
    Change-Id: I2039b09be89bc75540550d94acb779a489326dce
    Signed-off-by: M. Vefa Bicakci <email address hidden>

Changed in starlingx:
status: In Progress → Fix Released
Ghada Khalil (gkhalil)
Changed in starlingx:
importance: Undecided → Low
tags: added: stx.distro.other stx.kern
tags: added: stx.9.0 stx.kernel
removed: stx.kern
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.