Skip to content
This repository was archived by the owner on Oct 8, 2025. It is now read-only.
This repository was archived by the owner on Oct 8, 2025. It is now read-only.

otel-enabled build fails on systems without openssl.pc #1510

@thresheek

Description

@thresheek

Hello!

I've noticed the following on an operating system that doesn't have an openssl.pc:

checking for OTEL requirements:
  - checking for rust compiler ... found
  - checking for cargo ... found
  - checking for OpenSSL library ... found
Package openssl was not found in the pkg-config search path.
Perhaps you should add the directory containing `openssl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'openssl' found

On this OS, the .pc file is named openssl11.pc - but that doesnt really matter in this case I think.

Looking at the code, it comes the following part of auto/otel:

    nxt_feature="OpenSSL library"
    nxt_feature_run=yes
    nxt_feature_incs=
    nxt_feature_libs="-lssl -lcrypto"
    nxt_feature_test="#include <openssl/ssl.h>

                      int main(void) {
                          SSL_library_init();
                          return 0;
                      }"
    . auto/feature

    if [ ! $nxt_found = yes ]; then
        $echo
        $echo $0: error: OpenTelemetry support requires OpenSSL.
        $echo
        exit 1;
    fi

    NXT_OTEL_LIBS="-lssl -lcrypto"
    if [ $(which pkg-config) ]; then
        NXT_OTEL_LIBS="$(pkg-config openssl --cflags --libs)"
    fi
    cat << END >> $NXT_AUTO_CONFIG_H

Why do we even need this check when we have auto/ssltls ? Given the fact that auto/ssltls is getting called in configure much earlier, cant we just reuse the knowledge we already gathered?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions