Re: [exim] Exim 4.96 compile fails on Devuan 4

Top Page
Delete this message
Reply to this message
Author: Andrew C Aitchison
Date:  
To: Mike Tubby
CC: exim-users
Subject: Re: [exim] Exim 4.96 compile fails on Devuan 4
On Sun, 11 Sep 2022, Mike Tubby via Exim-users wrote:

> Hi all,
>
> Compiling Exim 4.96 fails on Devuan 4.0 Chimaera (basically Debian but
> without systemd).
>
> Firstly it complained that I didn't have "pcre2.h" - which it has never asked
> for before:
>
>     /bin/sh ../scripts/Configure-os.h
>     cc -DMACRO_PREDEF macro_predef.c
>     In file included from macro_predef.c:12:
>     exim.h:527:10: fatal error: pcre2.h: No such file or directory
>       527 | #include <pcre2.h>
>           |          ^~~~~~~~~
>     compilation terminated.
>
> so I did:
>
>     root@relay1:/home/mike/exim-4.96# apt-cache search pcre2
>     elpa-pcre2el - Emacs mode to convert between PCRE, Emacs and rx regexp
> syntax
>     libpcre2-16-0 - New Perl Compatible Regular Expression Library - 16 bit
> runtime files
>     libpcre2-32-0 - New Perl Compatible Regular Expression Library - 32 bit
> runtime files
>     libpcre2-8-0 - New Perl Compatible Regular Expression Library- 8 bit
> runtime files
>     libpcre2-dev - New Perl Compatible Regular Expression Library -
> development files
>     libpcre2-posix2 - New Perl Compatible Regular Expression Library -
> posix-compatible runtime files
>     libpcre3 - Old Perl 5 Compatible Regular Expression Library - runtime
> files
>     libpcre3-dev - Old Perl 5 Compatible Regular Expression Library -
> development files
>     librust-grep-pcre2-dev - Use PCRE2 with the 'grep' crate - Rust source
> code
>     librust-pcre2-dev - High level wrapper library for PCRE2 - Rust source
> code
>     librust-pcre2-sys-dev - Low level bindings to PCRE2 - Rust source code
>     pcre2-utils - New Perl Compatible Regular Expression Library - utilities
>     root@relay1:/home/mike/exim-4.96#
>
> and installed the bits I thought I needed:
>
>     root@relay1:/home/mike/exim-4.96# apt-get install libpcre2-dev
> libpcre2-posix2
>     Reading package lists... Done
>     Building dependency tree... Done
>     Reading state information... Done
>     The following additional packages will be installed:
>       libpcre2-16-0 libpcre2-32-0
>     The following NEW packages will be installed:
>       libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix2
>     0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
>     Need to get 1,231 kB of archives.
>     After this operation, 3,980 kB of additional disk space will be used.
>     Do you want to continue? [Y/n]
>     Get:1 http://gb.deb.devuan.org/merged chimaera/main amd64 libpcre2-16-0
> amd64 10.36-2 [231 kB]
>     Get:2 http://gb.deb.devuan.org/merged chimaera/main amd64 libpcre2-32-0
> amd64 10.36-2 [220 kB]
>     Get:3 http://gb.deb.devuan.org/merged chimaera/main amd64 libpcre2-posix2
> amd64 10.36-2 [49.1 kB]
>     Get:4 http://gb.deb.devuan.org/merged chimaera/main amd64 libpcre2-dev
> amd64 10.36-2 [731 kB]
>     Fetched 1,231 kB in 4s (311 kB/s)
>
>     <snip>
>
>
> Now hen I compile I get:
>
>     cc spool_mbox.c
>     cc arc.c
>     cc bmi_spam.c
>     cc dane.c
>     cc dcc.c
>     cc dmarc.c
>     cc imap_utf7.c
>     cc spf.c
>     cc utf8.c
>     cc version.c
>     cc -o exim
>     /usr/bin/ld: exim.o: in function `show_whats_supported':
>     exim.c:(.text+0x95b): undefined reference to `pcre2_config_8'
>     /usr/bin/ld: exim.o: in function `regex_must_compile':
>     exim.c:(.text+0xf96): undefined reference to `pcre2_compile_8'
>     /usr/bin/ld: exim.c:(.text+0xfcd): undefined reference to
> `pcre2_general_context_create_8'
>     /usr/bin/ld: exim.c:(.text+0xfd8): undefined reference to
> `pcre2_compile_context_create_8'
>     /usr/bin/ld: exim.c:(.text+0xfff): undefined reference to
> `pcre2_compile_8'
>     /usr/bin/ld: exim.c:(.text+0x100f): undefined reference to
> `pcre2_compile_context_free_8'
>     /usr/bin/ld: exim.c:(.text+0x1017): undefined reference to
> `pcre2_general_context_free_8'
>     /usr/bin/ld: exim.c:(.text+0x1030): undefined reference to
> `pcre2_get_error_message_8'
>     /usr/bin/ld: exim.c:(.text+0x1072): undefined reference to
> `pcre2_get_error_message_8'
>     /usr/bin/ld: exim.o: in function `regex_match_and_setup':
>     exim.c:(.text+0x10c8): undefined reference to
> `pcre2_match_data_create_from_pattern_8'
>     /usr/bin/ld: exim.c:(.text+0x10f2): undefined reference to
> `pcre2_match_8'
>     /usr/bin/ld: exim.c:(.text+0x1132): undefined reference to
> `pcre2_get_error_message_8'
>
>     ...
>
>     <snip>
>
>     ...
>
>
>
> Can't seem to find what's missing ... any ideas?


# apt show libpcre2-8-0
         ...        ...
  This package contains the 8 bit runtime library, which operates on
  ASCII and UTF-8 input.


so I guess libpcre2-8-0 wasn't already installed.

It wouldn't hurt to "make clean" first either.

-- 
Andrew C. Aitchison                      Kendal, UK
                    andrew@???