Use prebuilt Bzip, zLib and OpenSSL?
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:
> 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:
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?
More information about the nginx