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

Reply via email to