这是indexloc提供的服务,不要输入任何密码
Skip to content

Building expects openssl/engine.h despite engine API being deprecated? #328

@polarathene

Description

@polarathene

Fedora 41 fails to build libssh as openssl/engine.h is no longer included with the openssl-devel package. For the time being compatibility is offered via a separate openssl-devel-engine package.

Broader failures will occur once a future OpenSSL 4.0 release arrives. For context the engine API has been deprecated for a while AFAIK and will be dropped in the next major OpenSSL release.


Build error output
  cargo:warning=In file included from libssh2/src/agent.c:40:
  cargo:warning=In file included from libssh2/src/libssh2_priv.h:57:
  cargo:warning=In file included from /usr/include/stdio.h:28:
  cargo:warning=In file included from /usr/include/bits/libc-header-start.h:33:
  cargo:warning=/usr/include/features.h:503:9: warning: '__GLIBC_MINOR__' macro redefined [-Wmacro-redefined]
  cargo:warning=  503 | #define __GLIBC_MINOR__ 40
  cargo:warning=      |         ^
  cargo:warning=<command line>:1:9: note: previous definition is here
  cargo:warning=    1 | #define __GLIBC_MINOR__ 17
  cargo:warning=      |         ^
  cargo:warning=In file included from libssh2/src/bcrypt_pbkdf.c:21:
  cargo:warning=In file included from libssh2/src/libssh2_priv.h:57:
  cargo:warning=In file included from /usr/include/stdio.h:28:
  cargo:warning=In file included from /usr/include/bits/libc-header-start.h:33:
  cargo:warning=/usr/include/features.h:503:9: warning: '__GLIBC_MINOR__' macro redefined [-Wmacro-redefined]
  cargo:warning=  503 | #define __GLIBC_MINOR__ 40
  cargo:warning=      |         ^
  cargo:warning=<command line>:1:9: note: previous definition is here
  cargo:warning=    1 | #define __GLIBC_MINOR__ 17
  cargo:warning=      |         ^
  cargo:warning=In file included from libssh2/src/blowfish.c:49:
  cargo:warning=In file included from /usr/include/sys/types.h:25:
  cargo:warning=/usr/include/features.h:503:9: warning: '__GLIBC_MINOR__' macro redefined [-Wmacro-redefined]
  cargo:warning=  503 | #define __GLIBC_MINOR__ 40
  cargo:warning=      |         ^
  cargo:warning=<command line>:1:9: note: previous definition is here
  cargo:warning=    1 | #define __GLIBC_MINOR__ 17
  cargo:warning=      |         ^
  cargo:warning=In file included from libssh2/src/agent.c:40:
  cargo:warning=In file included from libssh2/src/libssh2_priv.h:141:
  cargo:warning=In file included from libssh2/src/crypto.h:42:
  cargo:warning=libssh2/src/openssl.h:83:10: fatal error: 'openssl/engine.h' file not found
  cargo:warning=   83 | #include <openssl/engine.h>
  cargo:warning=      |          ^~~~~~~~~~~~~~~~~~
  cargo:warning=1 warning and 1 error generated.
  exit status: 1

Most of that can be ignored, I just wanted to draw attention to the failure cause:

libssh2/src/openssl.h:83:10: fatal error: 'openssl/engine.h' file not found

So that line is upstream at: https://github.com/libssh2/libssh2/blob/libssh2-1.11.0/src/openssl.h#L84

I'm not sure if an issue needs to be raised there as they seem to have support for no engine, thus perhaps it's something required to be detected / handled here instead?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions