Use prebuilt Bzip, zLib and OpenSSL?

Jeffrey Walton noloader at gmail.com
Tue Jan 11 20:45:06 UTC 2022


On Tue, Jan 11, 2022 at 8:27 AM Maxim Dounin <mdounin at mdounin.ru> wrote:
>
> Hello!
>
> On Mon, Jan 10, 2022 at 10:40:09PM -0500, Jeffrey Walton wrote:
>
> > I need to build a modern Nginx from sources on an older platform. The
> > need arises because the organization can't upgrade a particular set of
> > machines. We want to set up a Nginx proxy to handle the front-end
> > work.
> >
> > I've got Bzip, zLib and OpenSSL built and installed in /opt, but I am
> > having trouble getting Nginx to compile and [presumably] link against
> > them. In this case we don't want Nginx building them from sources.
> > Rather, we want Nginx to use the includes in /opt/include, and the
> > libraries in /opt/lib.
> >
> > Typically GNU software using Autotools use an option like
> > --with-openssl-prefix. Nginx does not provide the option. Nginx also
> > does not provide the customary --includedir and --libdir. (And I
> > understand Nginx is not GNU).
> >
> > How do we tell Nginx the prefix path for the libraries?
>
> The --with-cc-opt and --with-ld-opt should work:
>
> ./configure --with-cc-opt="-I /opt/include" --with-ld-opt="-L /opt/lib" ...
>
> See docs for details:
>
> http://nginx.org/en/docs/configure.html

Ok, I think I see what the problem is... I used --with-cc-opt and
--with-ld-opt, but configure still failed:

    ...
    checking for openat(), fstatat() ... found
    checking for getaddrinfo() ... found
    checking for PCRE library ... not found
    checking for PCRE library in /usr/local/ ... not found
    checking for PCRE library in /usr/include/pcre/ ... not found
    checking for PCRE library in /usr/pkg/ ... not found
    checking for PCRE library in /opt/local/ ... not found

I'm using PCRE2, not PCRE:

    $ ls $HOME/tmp/include
    autosprintf.h  idn2.h          pcre2.h       unigbrk.h   uniwbrk.h
    bzlib.h        libcharset.h    pcre2posix.h  unilbrk.h   uniwidth.h
    db_cxx.h       libxml2         readline      uniname.h   zconf.h
    db.h           localcharset.h  textstyle     uninorm.h   zlib.h
    dbm.h          ncurses         textstyle.h   unistdio.h
    gdbm.h         ncursesw        unicase.h     unistr.h
    gettext-po.h   ndbm.h          uniconv.h     unistring
    iconv.h        openssl         unictype.h    unitypes.h

PCRE was end-of-life last year. PCRE also has several open bugs
against it. I tried to get the maintainer to take patches for PCRE and
release one more version but he did not. There's no reason to use PCRE
nowadays since PCRE is unmaintained and PCRE2 is available.

So I guess the question now is, can I tell Nginx to use PCRE2?

Jeff


More information about the nginx mailing list