Skip to content

boringssl-devel: missing runtime dependency on boringssl and incorrect .so layout #949

Description

@woqidaideshi

Package name

boringssl

openRuyi version

0.20251124.0-4.10

Describe the bug

1. Missing dependency: boringssl-devel does not require boringssl

boringssl-devel ships cmake config files that reference /usr/lib64/libcrypto.so and /usr/lib64/libssl.so, but installing boringssl-devel does not pull in the boringssl runtime package. This causes find_package(OpenSSL CONFIG) to fail immediately because the library files simply don't exist on the system.

2. Incorrect .so file ownership

Per standard RPM packaging conventions, the expected layout is:

Package Expected Actual
boringssl libcrypto.so.<version> (versioned .so) libcrypto.so (unversioned)
boringssl-devel libcrypto.solibcrypto.so.<version> (symlink) nothing

The unversioned .so should be a symlink owned by the devel package, not the real library owned by the runtime package.

Here is what the current packages actually provide:

# rpm -ql boringssl-0.20251124.0-4.10.or.riscv64.rpm | grep .so
/usr/lib64/libcrypto.so
/usr/lib64/libssl.so
# rpm -ql boringssl-devel-0.20251124.0-4.10.or.riscv64.rpm | grep .so

Steps to reproduce

dnf install -y boringssl-devel cmake gcc

mkdir /tmp/test

cat > /tmp/test/CMakeLists.txt << 'EOF'
cmake_minimum_required(VERSION 3.13.4)
project(test VERSION "0.1" LANGUAGES C CXX)
find_package(OpenSSL REQUIRED CONFIG)
EOF

cmake -S /tmp/test -B /tmp/test/build

Expected behaviour

  1. dnf install boringssl-devel should automatically install boringssl as a dependency.

  2. File layout should follow the standard convention:

    boringssl:
      /usr/lib64/libcrypto.so.<version>
    
    boringssl-devel:
      /usr/lib64/libcrypto.so -> libcrypto.so.<version>
      Requires: boringssl = %{version}-%{release}
    

Fix Suggestions

  • In boringssl-devel.spec: add Requires: boringssl%{?_isa} = %{version}-%{release}
  • In boringssl.spec: ensure libraries are built with a SONAME version and installed as libcrypto.so.
  • In boringssl-devel.spec: add the unversioned symlinks pointing to the versioned libraries in the runtime package

Screenshots

No response

Relevant log output

CMake Error at /usr/lib64/cmake/OpenSSL/OpenSSLTargets.cmake:100:
  The imported target "OpenSSL::Crypto" references the file
     "/usr/lib64/libcrypto.so"
  but this file does not exist.

Additional context

No response

I assert that this issue is relevant for openRuyi

  • I assert that this is a bug and not a support request.
  • I assert that this is not a duplicate of an existing issue.
  • I assert that I have read the openRuyi Code of Conduct and agree to abide by it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Target: RollingTargeting rolling/current branch.Type: BugIssues related to incorrect behavior or failures that need fixing.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions