[leafnode-list] Re: Malformed Message-ID?

Matthias Andree matthias.andree at gmx.de
Sat Mar 4 11:06:28 CET 2023


Am 04.03.23 um 10:47 schrieb Matěj Cepl via leafnode-list:
> On 2023-03-03, 23:14 GMT, Matthias Andree via leafnode-list wrote:
>> Should be fixed in the Git repo as of 5e7153d. Please test and let me
>> know if it works for you.
>>
>> https://gitlab.com/leafnode-2/leafnode-2/-/commit/5e7153d79530
> Something's wrong with libpcre. I have these two
> versions available on openSUSE (and it seems, looking at
> https://www.pcre.org/ we are not missing anything):
>
>      stitny~/b/h/leafnode (1A1D3M)$ rpm -qi pcre-devel
>      Name        : pcre-devel
>      Version     : 8.45
>      Release     : 2.3
>      Architecture: x86_64
>      Install Date: So 3. září 2022, 09:30:28
>      Group       : Development/Libraries/C and C++
>      Size        : 271795
>      License     : BSD-3-Clause
>      Signature   : RSA/SHA256, St 31. srpna 2022, 14:01:05, Key ID b88b2fd43dbdc284
>      Source RPM  : pcre-8.45-2.3.src.rpm
>      Build Date  : St 31. srpna 2022, 13:58:24
>      Build Host  : lamb75
>      Packager    : https://bugs.opensuse.org
>      Vendor      : openSUSE
>      URL         : http://www.pcre.org/
>      Summary     : A library for Perl-compatible regular expressions
>      Description :
>      The PCRE library is a set of functions that implement regular
>      expression pattern matching using the same syntax and semantics
>      as Perl 5.
>      Distribution: openSUSE Tumbleweed
>      stitny~/b/h/leafnode (1A1D3M)$ rpm -qi pcre2-devel
>      Name        : pcre2-devel
>      Version     : 10.42
>      Release     : 3.3
>      Architecture: x86_64
>      Install Date: So 4. února 2023, 12:44:13
>      Group       : Development/Libraries/C and C++
>      Size        : 287737
>      License     : BSD-3-Clause
>      Signature   : RSA/SHA512, Čt 2. února 2023, 18:27:50, Key ID 35a2f86e29b700a4
>      Source RPM  : pcre2-10.42-3.3.src.rpm
>      Build Date  : Čt 2. února 2023, 18:22:12
>      Build Host  : cloud101
>      Packager    : https://bugs.opensuse.org
>      Vendor      : openSUSE
>      URL         : https://www.pcre.org
>      Summary     : A library for Perl-compatible regular expressions
>      Description :
>      The PCRE2 library is a set of functions that implement regular
>      expression pattern matching using the same syntax and semantics
>      as Perl 5.
>
>      PCRE2 is a re-working of the original PCRE library to provide an entirely new
>      API.
>      Distribution: openSUSE Tumbleweed
>      stitny~/b/h/leafnode (1A1D3M)$
>
> The previous package of leafnode included `BuildRequires:
> pcre-devel`, which pulled-in pcre-devel 8.45. When I try to build
> current master (902321b) with the same configuration as before I
> get error in ./configure (config.log from that run has been
> attached):
>
>      [ 21s] + ./configure --host=x86_64-suse-linux-gnu
>      --build=x86_64-suse-linux-gnu --program-prefix=
>      --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
>      --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
>      --datadir=/usr/share --includedir=/usr/include
>      --libdir=/usr/lib64 --libexecdir=/usr/libexec
>      --localstatedir=/var --sharedstatedir=/var/lib
>      --mandir=/usr/share/man --infodir=/usr/share/info
>      --disable-silent-rules --enable-spooldir=/var/spool/news
>      --enable-runas-user=abuild --sysconfdir=/etc/leafnode --with-pam
>
>      [ ... plenty of successful lines omitted ... ]
>
>      [   23s] checking for pcre-config... /usr/bin/pcre-config
>      [   23s] configure: adding -lpcre to LDFLAGS
>      [   23s] checking for pcre.h... yes
>      [   23s] checking for pcre_compile() in PCRE library... no
>      [   23s] *** I cannot find PCRE. leafnode depends on it.
>      [   23s] ***
>      [   23s] *** If you have PCRE installed, pcre-config was not found.
>      [   23s] *** You can work around this by adding the header location to
>      [   23s] *** the environment variables CPPFLAGS, i. e. CPPFLAGS=-I/opt/pcre/include
>      [   23s] *** and the library location to the environment variables LDFLAGS,
>      [   23s] *** e. g. LDFLAGS=-L/opt/pcre/lib, assuming your PCRE resides in /opt/pcre.
>      [   23s] ***
>      [   23s] *** If not you don't have PCRE installed, please download and install PCRE 3.7
>      [   23s] *** or a newer version from http://www.pcre.org/, it's easy:
>      [   23s] *** Just download, unpack, then cd to pcre-3.7, then
>      [   23s] *** ./configure && make, then as root: make install
>      [   23s] *** Then, reconfigure leafnode.
>      [   23s] configure: error: PCRE library not found
>
> So, I thought “OK, I just have to use recent libpcre” and I
> switched BuildRequires to `pcre2-devel` and then I get on the
> same call of configure even worse results:
>
>      [   23s] checking for pcre-config... ./configure: line 6696: not: command not found
>      [   23s] no
>      [   23s] ./configure: line 6711: --cflags: command not found
>      [   23s] ./configure: line 6718: --libs: command not found
>      [   23s] checking for pcre.h... no
>
> No wonder pcre-config has not been found, when it is called
> pcre2-config here, and besides I believe kewl kidz these days
> use pkgconfig to get their CFLAGS & al. rather than proprietary
> configure scripts, right?
>
> Do you have any idea what's going on?

Hi Matěj,

sort of.

* leafnode-2 has, other than leafnode-1, not yet been ported to PCRE2. I
prioritized leafnode-1 because that's still the recommended package when
Debian sent me the heads-up their pcre-8.x package were going out.

* I changed configure.ac in 902321b from using AC_LIB_CHECK to
AC_LINK_IFELSE with a manually created test that uses #include <pcre.h>
so that the pcre_compile() function is declared with C linkage in case
someone wants to use a C++ compile, else a C++ compiler would claim PCRE
isn't found. This still works for me on Fedora 37 amd64.

Does it still work if you "git revert 902321b"? (you can back that
newest change out later with git reset --hard HEAD^ - note it will trash
all uncommitted changes you may have, along with the newest commit) - if
yes, then please get back to the non-working version and mail me the
config.log file you get.

That's this block:

> AC_CACHE_CHECK(for pcre.h,ac_cv_header_pcre_h,[
>   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <pcre.h>]], [[return
> 0;]])],[ac_cv_header_pcre_h=yes],[ac_cv_header_pcre_h=no])
> ])
↑this part is unchanged

↓ this part got changed from a different variable name and
"AC_CHECK_LIB(pcre, pcre_compile)" as only line after the first "then" to

>
> if test "x$ac_cv_header_pcre_h" = xyes
> then
>   AC_MSG_CHECKING([for pcre_compile() in PCRE library])
>   AC_CACHE_VAL([ln_cv_have_libpcre], [
>   AC_LINK_IFELSE(
>   [AC_LANG_PROGRAM([[#include <pcre.h>]],
>     [[pcre_compile(0, 0, 0, 0, 0);]])],
>   [ln_cv_have_libpcre=yes], [ln_cv_have_libpcre=no])
>   ])
>   AC_MSG_RESULT([$ln_cv_have_libpcre])
> fi
>
> if test "x$ln_cv_have_libpcre" = xyes
↓ unchanged from here
> then
>   AC_DEFINE(HAVE_LIBPCRE, 1, [Set if PCRE library is present.])
> else
>     echo "*** I cannot find PCRE. leafnode depends on it."



More information about the leafnode-list mailing list