Mark,
On 3/3/25 7:27 AM, Mark Thomas wrote:
On 03/03/2025 10:54, Mark Thomas wrote:
<snip/>
I don't recall if I tested with wine after the changes were complete.
I do recall installing and uninstalling wine multiple times. I'll
retest now.
So clearly I didn't test this with Wine. There is no way the current
build.xml file will work with Wine.
The challenge is that the NSIS build now calls out to Ant to sign the
uninstaller and the installer during the NSIS build. When that happens
under Wine, it fails for a couple of reasons:
- Ant isn't on the path
- Ant depends on Java and there isn't a Windows JRE on the path
The first point is relatively simple to fix. The second starts to make
this a bit more complex.
An alternative is that Wine can call out to Linux executables but that
moves the problem to making sure the NSIS build knows whether it is
running under Windows or Wine.
Ideally building Tomcat shouldn't be any more complicated than:
- Install Java
- Install Ant
- git checkout ...
- ant release
Then again, we do require Wine to be installed to do release builds on
Linux so there are some additional requirements.
I do like the makensis approach as it is a lot simpler. Wine on Mac has
proven tricky to get working in the past.
In my case, Wine was super simple. I literally just did "brew install
wine" (or similar package name) and everything worked. For makensis, I
have to install scons, download the nsis source, build the binary and
make sure it's installed in the right place, then make sure my
custom-built makensis is on the path. brew install Wine puts wine in my
path.
So it's marginally more complicated to actually build makensis, but
makensis itself is "lighter" than Wine, so I get it.
> I can see the following options:>
1. Remove Wine support. Have ant build makensis to the correct recipe
when on Linux.
Building nsis might be tricky, especially if we need to request scons
and cc to be installed. This includes not only release managers, but
anyone who wants to test build reproducibility.
2. Add a requirement for a Windows JRE to make a release build and add
it and Ant to the path when calling the NSIS installer via Wine.
Oof, no thanks. I'd rather have Wine than install another JRE just for
this. Especially one built for another OS.
3. Have the NSIS installer call Ant directly on Windows and via Linux
when running via wine.
I'm not sure why this isn't already happening. Is it really just a PATH
issue?
I'm going to start looking at 3 and the building makensis part of 1 and
see how far I get.
Thoughts?
I'm okay with whatever works best for the largest number of people. If
Rainer wants to be able to test repro builds and isn't willing to
install Wine (which is reasonable), then supporting makensis is a good
solution. If that means everyone moving to makensis then so be it.
I've always hated the build process for httpd. This feels like we are
moving in that direction, where the build environment is so onerous that
only the project authors are ever really able to build it.
What do you think the chances are that Emmanuel wants to write another
indispensable Java-native utility for us? ;)
-chris
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org