On Fri, Nov 10, 2023 at 9:16 AM Daniel Sahlberg <daniel.l.sahlb...@gmail.com> wrote: > > Den fre 10 nov. 2023 kl 15:09 skrev Nathan Hartman <hartman.nat...@gmail.com>: >> >> On Fri, Nov 10, 2023 at 8:02 AM Johan Corveleyn <jcor...@gmail.com> 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 built successfully. Why it behaves differently when called from make vs when I call it manually is still a mystery to me. Maybe some dumb thing like insufficient PTYs or who knows what. But it's repeatable like clockwork, ever since a few days ago. Having gotten past that, for now, I proceeded to build the rest of the distro, until... Regarding #3: When building serf-1.3.10, this warning foreshadows problems to come later: buckets/ssl_buckets.c:1193:9: warning: implicit declaration of function 'CRYPTO_malloc_init'; did you mean 'CRYPTO_malloc'? [-Wimplicit-function-declaration] Later, when trying to link SVN, this linker error happens: /usr/bin/ld: /home/nathan/ramdrive/svndev/prefix/serf/lib/libserf-1.so.1: undefined reference to `CRYPTO_malloc_init' collect2: error: ld returned 1 exit status make[1]: *** [build-outputs.mk:1140: subversion/svn/svn] Error 1 make[1]: Leaving directory '/home/nathan/ramdrive/svndev/svn-1.14.x' make: *** [Makefile:1845: /home/nathan/ramdrive/svndev/objdir/svn-1.14.x/.compiled] Error 2 For several years, I have been self-building SVN with serf-1.4.x and running the test suite successfully with that. I'm referring to serf's branches/1.4.x, last changed rev r1845547. IIRC this was suggested by Brane and it's on my TODO list to locate that conversation in the archives to see whether that was for this same reason. Perhaps something can be backported to serf-1.3.x to solve this. It manifests on recent Debian (DSahlberg reproduced this also [3]). My machine: $ uname -a Linux box 5.10.0-26-amd64 #1 SMP Debian 5.10.197-1 (2023-09-29) x86_64 GNU/Linux $ lsb_release -d Description: Debian GNU/Linux 11 (bullseye) FWIW (since this was asked) SVN's configure is being called with: --enable-javahl=yes --with-jdk --with-jikes=no --with-junit=/home/nathan/ramdrive/svndev/distfiles/junit-4.10.jar (and many other options). Thanks again to everyone for your help and patience! I feel like I've finally made progress on a nagging issue that existed for a long time. [1] https://colabti.org/irclogger/irclogger_log/svn-dev?date=2023-11-12 [2] https://colabti.org/irclogger/irclogger_log/svn-dev?date=2023-11-09 [3] https://colabti.org/irclogger/irclogger_log/svn-dev?date=2023-11-11#l137 Cheers, Nathan