Re: New release

2023-11-11 Thread Nathan Hartman
On Fri, Nov 10, 2023 at 9:16 AM Daniel Sahlberg
 wrote:
>
> Den fre 10 nov. 2023 kl 15:09 skrev Nathan Hartman :
>>
>> On Fri, Nov 10, 2023 at 8:02 AM Johan Corveleyn  wrote:
>>>
>>> Hi Nathan,
>>>
>>> Sorry I haven't helped so far ... I should be able to say something
>>> useful here, since I'm a java dev in my dayjob. But I have been
>>> drowning a bit in that same dayjob lately, so I can barely find the
>>> time to scan these mails, and then forget about them because my
>>> attention is needed elsewhere.
>>>
>>> Anyway, I'll try to find some more time to take a closer look at the
>>> errors you get.
>>>
>>> Just as a first shot: if there is no RunTests.class in the location
>>> where it should be (one of the directories in the classpath), then it
>>> probably has not been compiled (or it has not been put in the right
>>> location). My first guess would also be, like Daniel mentioned, that
>>> you'll need the --with-junit option (referring to a junit-X.Y.jar
>>> somewhere on your system) and then the build scripts should compile
>>> the test classes.
>>>
>>> But I guess you already tried that, after Daniel's reply, and you're
>>> still running into problems. I'll take a closer look when you send
>>> your detailed mail then.
>>>
>>> --
>>> Johan
>>
>>
>>
>> Thanks Johan. Apologies for not sending the detailed mail yet. I wanted to 
>> test a few specific theories but didn't get that far last night because I 
>> hit a problem unrelated to SVN.
>>
>> One thing I'm struggling with is to understand which part of the build 
>> system is supposed to compile RunTests, i.e., how/where the Java compiler is 
>> being invoked on it. I'm not seeing it in the build logs, though I do see 
>> the other Java files being compiled, so that's certainly interesting.
>
>
> I'm fairly sure that RunTests is compiled only when --with-junit is present 
> (don't know if "present" is enough or if it has to point to a valid JAR 
> file). Next question is if check-javahl should be available at all if 
> --with-junit is missing or if check-javahl should make sure RunTests is 
> built. Either way, I think it is a bug in the build system. This question 
> should probably be carved out to its own e-mail thread. I'll try to figure 
> something out and start a new thread.
>
> Kind regards,
> Daniel

Hi all,

Success! I have finally seen the JavaHL tests build and run!

I'd like to say a great big Thank You to everyone for helping me get
this far!

I was writing on IRC as I went through a number of steps [1].

What changed?

(1) Switched from my customized Makefile.svn to SVN's Makefile.svn, as
of the latest rev on trunk now (r1913724).

(2) Worked around a problem building gettext.

(3) Worked around a problem with serf-1.3.10 that DSahlberg saw also.

Regarding #1:

Note: Makefile.svn refers to tools/dev/unix-build/Makefile.svn.

My customized Makefile.svn was based on SVN's Makefile.svn@1871775. As
to my customizations, I can provide them later, but the tl;dr is:

(a) Build newer versions of some dependencies.

(b) Remove support for things I didn't need (like serf-old).

(c) Tweak some details to workaround build problems.

In all cases, any changes I made were done to workaround various build
problems I had encountered. Where appropriate, I upstreamed certain
changes: r1875794, r1872380. I didn't upstream changes that I
considered to be tweaks that only pertained to my machine.

This made it possible for me to build, develop, and test
[local,svn,serf] x [bdb,fsfs], plus all the bindings, except JavaHL
(until now).

In the meantime (since 2019 when r1871775 happened), SVN's Makefile.svn
has received many updates, including much improved handling of
Python-2/3 issues, so I wanted to adopt this and eliminate my
customized one.

Regarding #2:

Starting a few days ago, I ran into a weird problem with gettext. This
manifests with both versions of Makefile.svn (mine and SVN's).

I am not sure why this started happening, but when gettext's configure
runs, there is a nested gettext-tools's configure, which runs until it
prints "checking for Java virtual machine... yes" and then it gets
stuck there indefinitely. It happens with multiple versions of gettext
and after a few nights of investigation, I still don't know why. I
could find nothing about this online. (This is the "brick wall" I ran
into that I mentioned on IRC [2], for those who saw that and wondered.)
It is clearly some idiosyncracy of my machine.

Tonight I found a workaround:

I ran Makefile.svn's gettext-configure target, let it reach that point,
and then killed the process group.

Then I looked in the logs to see exactly how gettext's configure was
invoked.

I then invoked it "manually" by copying and pasting that incantation
into the terminal.

To my surprise, this ran to completion.

After this, I ran 'touch objdir/gettext/.configured' (this empty
dotfile serves as a flag for Makefile.svn not to run configure again).

Then I ran Makefile.svn's gettext-compile target, and it 

Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Daniel Sahlberg
Den lör 11 nov. 2023 kl 17:14 skrev Stefan Sperling :

> On Sat, Nov 11, 2023 at 05:08:28PM +0100, Daniel Sahlberg wrote:
> > ne_openssl.o isn't built, the build fails already when running configure
> on
> > neon.
>
> Can you show the cofigure log? E.g. via paste.apache.org?
> I am also in #svn-dev on Libera IRC if you want to chat there.
>

The discussion between Stefan and myself continued over on Libera IRC but
to tie up the loose end.

It was an error on my system, I was missing pkg-config. After installing
this, the neon configure worked well and I'm back on track again (or at
least, stuck on other thinkgs that i need to look at).

Thanks Stefan!

Kind regards,
Daniel


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Stefan Sperling
On Sat, Nov 11, 2023 at 05:08:28PM +0100, Daniel Sahlberg wrote:
> ne_openssl.o isn't built, the build fails already when running configure on
> neon.

Can you show the cofigure log? E.g. via paste.apache.org?
I am also in #svn-dev on Libera IRC if you want to chat there.


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Daniel Sahlberg
Den lör 11 nov. 2023 kl 16:43 skrev Stefan Sperling :

> On Sat, Nov 11, 2023 at 04:34:07PM +0100, Stefan Sperling wrote:
> > On Sat, Nov 11, 2023 at 04:23:52PM +0100, Daniel Sahlberg wrote:
> > > As for the original problem, updating to the latest version of the Neon
> > > library doesn't help, I still get the same linking error. I''m sure
> there
> > > is something fishy with my Debian install...
> >
> > Which libssl is your build trying to use?
>

The libssl-dev package, which is OpenSSL version 1.1.1w-0+deb11u1.


> >
> > There is nothing in Makefile.svn that would try to pick a particular
> > version of OpenSSL. It just expects that a compatible version is
> > already installed.
> >
> > Maybe you have multiple versions installed and that confuses things?
>

Don't think so. There is only one libssl.a (and libssl.so) on my system.
Doing nm -g | grep OPENSSL_init_ssl (which is not the function in the error
message but as I've written before SSL_library_init is just a #define for
OPENSSL_init_ssl, with the appropriate define for OPENSSL_API_COMPAT) finds:

00270 T OPENSSL_init_ssl


> What is the output of this command on your system (in the ~/svn
> build dir):
>
>  nm objdir/neon-0.32.5/src/ne_openssl.o | grep -i SSL_library_init
>
> This doesn't print anything for me. If this shows the symbol
> on your system that would indicate a wrong OPENSSL_VERSION macro
> being used during the build.
>

ne_openssl.o isn't built, the build fails already when running configure on
neon.

Kind regards,
Daniel


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Stefan Sperling
On Sat, Nov 11, 2023 at 04:34:07PM +0100, Stefan Sperling wrote:
> On Sat, Nov 11, 2023 at 04:23:52PM +0100, Daniel Sahlberg wrote:
> > As for the original problem, updating to the latest version of the Neon
> > library doesn't help, I still get the same linking error. I''m sure there
> > is something fishy with my Debian install...
> 
> Which libssl is your build trying to use?
> 
> There is nothing in Makefile.svn that would try to pick a particular
> version of OpenSSL. It just expects that a compatible version is
> already installed.
> 
> Maybe you have multiple versions installed and that confuses things?
 
What is the output of this command on your system (in the ~/svn
build dir):

 nm objdir/neon-0.32.5/src/ne_openssl.o | grep -i SSL_library_init

This doesn't print anything for me. If this shows the symbol
on your system that would indicate a wrong OPENSSL_VERSION macro
being used during the build.


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Stefan Sperling
On Sat, Nov 11, 2023 at 04:23:52PM +0100, Daniel Sahlberg wrote:
> As for the original problem, updating to the latest version of the Neon
> library doesn't help, I still get the same linking error. I''m sure there
> is something fishy with my Debian install...

Which libssl is your build trying to use?

There is nothing in Makefile.svn that would try to pick a particular
version of OpenSSL. It just expects that a compatible version is
already installed.

Maybe you have multiple versions installed and that confuses things?


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Stefan Sperling
On Sat, Nov 11, 2023 at 04:07:52PM +0100, Stefan Sperling wrote:
> On Sat, Nov 11, 2023 at 04:00:58PM +0100, Stefan Sperling wrote:
> > On Sat, Nov 11, 2023 at 03:53:09PM +0100, Stefan Sperling wrote:
> > > If neon requests OPENSSL_API_COMPAT 0x1000L and also calls
> > > OPENSSL_init_ssl() then that is a bug in neon.
> > 
> > The neon version used by Makefile.svn is quite old.
> > Newer releases are available here: https://notroj.github.io/neon/
> > You could try using the latest 0.32.5 release instead of 0.30.2.
> > That should deal just fine with newer versions of OpenSSL.
>  
> This should be enough to get started:

Building with this I got an error during 'make install' in neon.
I could fix that by installing xmlto and calling the 'make docs'
target explicitly.

I have committed these changes. The update was long overdue in any case.


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Daniel Sahlberg
Den lör 11 nov. 2023 kl 15:54 skrev Stefan Sperling :

> On Sat, Nov 11, 2023 at 02:22:55PM +0100, Daniel Sahlberg wrote:
> > Hi,
> >
> > I'm separating this out to a new thread since it doesn't relate to the
> > upcoming release, but I'm doing the work trying to reproduce Nathan's
> > problem.
> >
> > I've installed Debian Bullseye (on Hyper-V, but that shouldn't matter I
> > think). When I try to do the build, I end up having trouble building
> neon.
> > The error message is "could not find library containing
> SSL_library_init".
> > I have checked that the package libssl-dev is installed (with version
> > 1.1.1w-0+deb11u1).
> >
> > I've tried a very simple file:
> > #include 
> > int main(void)
> > {
> > SSL_library_init();
> > return 0;
> > }
> >
> > $ gcc -lssl -lcrypto -DOPENSSL_API_COMPAT=0x1000L ssl.c
> > [..] undefined reference to OPENSSL_init_ssl [...]
> >
> > This makes sense, since ssl.h defines SSL_library_init() as
> > OPENSSL_init_ssl(0, NULL) (protected by an #if checking
> OPENSSL_API_COMPAT
> > < 0x1010L).
> >
>
> This function first appeared in OpenSSL 1.1.0.
> Which means trying to call it on earlier version of OpenSSL is an
> expected failure.
>

I've got OpenSSL 1.1.1w. The code is calling SSL_library_init which is a
define pointing to OPENSSL_init_ssl().

The code compiles just fine, but I don't understand why the code isn't
linking.

As for the original problem, updating to the latest version of the Neon
library doesn't help, I still get the same linking error. I''m sure there
is something fishy with my Debian install...

Cheers,
Daniel


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Stefan Sperling
On Sat, Nov 11, 2023 at 04:00:58PM +0100, Stefan Sperling wrote:
> On Sat, Nov 11, 2023 at 03:53:09PM +0100, Stefan Sperling wrote:
> > If neon requests OPENSSL_API_COMPAT 0x1000L and also calls
> > OPENSSL_init_ssl() then that is a bug in neon.
> 
> The neon version used by Makefile.svn is quite old.
> Newer releases are available here: https://notroj.github.io/neon/
> You could try using the latest 0.32.5 release instead of 0.30.2.
> That should deal just fine with newer versions of OpenSSL.
 
This should be enough to get started:

Index: Makefile.svn
===
--- Makefile.svn(revision 1913716)
+++ Makefile.svn(working copy)
@@ -118,7 +118,7 @@
 APR_UTIL_VER   = 1.6.1
 PCRE_VER   = 8.41
 HTTPD_VER  = 2.4.37
-NEON_VER   = 0.30.2
+NEON_VER   = 0.32.5
 SERF_VER   = 1.3.10
 CYRUS_SASL_VER = 2.1.28
 SQLITE_VER = 3390400
@@ -157,7 +157,7 @@
 SHA256_${GNU_ICONV_DIST} = 
ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178
 SHA256_${PCRE_DIST} = 
244838e1f1d14f7e2fa7681b857b3a8566b74215f28133f14a8f5e59241b682c
 SHA256_${HTTPD_DIST} = 
aa97a834a32d51974be8d8a013b561e28d327387cb1da2c3c2762acd0146aabd
-SHA256_${NEON_DIST} = 
db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca
+SHA256_${NEON_DIST} = 
4872e12f802572dedd4b02f870065814b2d5141f7dbdaf708eedab826b51a58a
 SHA256_${CYRUS_SASL_DIST} = 
7ccfc6abd01ed67c1a0924b353e526f1b766b21f42d4562ee635a8ebfc5bb38c
 SHA256_${SQLITE_DIST} = 
f31d445b48e67e284cf206717cc170ab63cbe4fd7f79a82793b772285e78fdbb
 SHA256_${LIBMAGIC_DIST} = 
694c2432e5240187524c9e7cf1ec6acc77b47a0e19554d34c14773e43dbbf214
@@ -212,8 +212,7 @@
 APR_UTIL_URL   = https://svn.apache.org/repos/asf/apr/apr-util
 PCRE_URL   = 
https://downloads.sourceforge.net/project/pcre/pcre/$(PCRE_VER)/$(PCRE_DIST)
 HTTPD_URL  = https://archive.apache.org/dist/httpd/$(HTTPD_DIST)
-#NEON_URL  = http://webdav.org/neon/$(NEON_DIST)
-NEON_URL   = http://ftp.openbsd.org/pub/OpenBSD/distfiles/$(NEON_DIST)
+NEON_URL   = https://notroj.github.io/neon/$(NEON_DIST)
 SERF_URL   = https://svn.apache.org/repos/asf/serf/tags/$(SERF_VER)
 SQLITE_URL = https://www.sqlite.org/2022/$(SQLITE_DIST)
 CYRUS_SASL_URL = 
https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-${CYRUS_SASL_VER}/$(CYRUS_SASL_DIST)


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Stefan Sperling
On Sat, Nov 11, 2023 at 03:53:09PM +0100, Stefan Sperling wrote:
> If neon requests OPENSSL_API_COMPAT 0x1000L and also calls
> OPENSSL_init_ssl() then that is a bug in neon.

The neon version used by Makefile.svn is quite old.
Newer releases are available here: https://notroj.github.io/neon/
You could try using the latest 0.32.5 release instead of 0.30.2.
That should deal just fine with newer versions of OpenSSL.


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Stefan Sperling
On Sat, Nov 11, 2023 at 02:22:55PM +0100, Daniel Sahlberg wrote:
> Hi,
> 
> I'm separating this out to a new thread since it doesn't relate to the
> upcoming release, but I'm doing the work trying to reproduce Nathan's
> problem.
> 
> I've installed Debian Bullseye (on Hyper-V, but that shouldn't matter I
> think). When I try to do the build, I end up having trouble building neon.
> The error message is "could not find library containing SSL_library_init".
> I have checked that the package libssl-dev is installed (with version
> 1.1.1w-0+deb11u1).
> 
> I've tried a very simple file:
> #include 
> int main(void)
> {
> SSL_library_init();
> return 0;
> }
> 
> $ gcc -lssl -lcrypto -DOPENSSL_API_COMPAT=0x1000L ssl.c
> [..] undefined reference to OPENSSL_init_ssl [...]
> 
> This makes sense, since ssl.h defines SSL_library_init() as
> OPENSSL_init_ssl(0, NULL) (protected by an #if checking OPENSSL_API_COMPAT
> < 0x1010L).
> 

This function first appeared in OpenSSL 1.1.0.
Which means trying to call it on earlier version of OpenSSL is an
expected failure.

> I've tried changing the order of the libraries (-lcrypto -lssl) with the
> same result.
> 
> I'm sure I'm missing something simple but I've spent the better half of a
> day figuring out what.

If neon requests OPENSSL_API_COMPAT 0x1000L and also calls
OPENSSL_init_ssl() then that is a bug in neon.


Re: Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Yasuhito FUTATSUKI

Hello,

On 2023/11/11 22:22, Daniel Sahlberg wrote:

Hi,

I'm separating this out to a new thread since it doesn't relate to the upcoming 
release, but I'm doing the work trying to reproduce Nathan's problem.

I've installed Debian Bullseye (on Hyper-V, but that shouldn't matter I think). When I 
try to do the build, I end up having trouble building neon. The error message is 
"could not find library containing SSL_library_init". I have checked that the 
package libssl-dev is installed (with version 1.1.1w-0+deb11u1).



https://www.openssl.org/docs/manmaster/man3/SSL_library_init.html says:
"The SSL_library_init() and OpenSSL_add_ssl_algorithms() functions were
deprecated in OpenSSL 1.1.0 by OPENSSL_init_ssl(). "

Cheers,
--
Yasuhito FUTATSUKI 


Building with tools/dev/unix-build/Makefile.svn - problems linking with OpenSSL

2023-11-11 Thread Daniel Sahlberg
Hi,

I'm separating this out to a new thread since it doesn't relate to the
upcoming release, but I'm doing the work trying to reproduce Nathan's
problem.

I've installed Debian Bullseye (on Hyper-V, but that shouldn't matter I
think). When I try to do the build, I end up having trouble building neon.
The error message is "could not find library containing SSL_library_init".
I have checked that the package libssl-dev is installed (with version
1.1.1w-0+deb11u1).

I've tried a very simple file:
#include 
int main(void)
{
SSL_library_init();
return 0;
}

$ gcc -lssl -lcrypto -DOPENSSL_API_COMPAT=0x1000L ssl.c
[..] undefined reference to OPENSSL_init_ssl [...]

This makes sense, since ssl.h defines SSL_library_init() as
OPENSSL_init_ssl(0, NULL) (protected by an #if checking OPENSSL_API_COMPAT
< 0x1010L).

I've tried changing the order of the libraries (-lcrypto -lssl) with the
same result.

I'm sure I'm missing something simple but I've spent the better half of a
day figuring out what.

Kind regards,
Daniel