ChangeLog:
- Add option WOW64 to wine-devel
- Script the creation of valid pkg-plist for i386, amd64 and amd64+wow64
- Remove i386-wine-devel (now superseded by wine-devel)
- Remove all references to STAGING
Approach:
Since FreeBSD does not support cross compiling ports, and given the wow64 build requirements of wine, the following approach was required. Note that the wine-devel port (when using the WOW64 option) operates in a "meta" mode and calls itself in different states to create a wow64 build:
- Create a i386 chroot (in /tmp/i386, to allow mounting of directories without overlapping paths)
- In the i386 chroot compile a clean win32 wine-devel build (the dependencies are compiled in the configure step)
- In the amd64 environment compile a clean win64 wine-devel build
- In the i386 chroot compile a combined win32 wine-devel build referencing the win64 build and the clean win32 (this depends on the previous two steps)
- Install the combined win32, and then the clean win64, wine-devel builds (this order is important)
Despite the downside of needing to use NEED_ROOT (a DEV_ERROR) this does have many benefits:
- Users can now easily compile wow64 themselves (with custom patches and options across the entire ports tree)
- The binaries no longer come from a 3rd party (i.e. increased trust of the results).
How to update the port:
- Update the version per normal
- Copy the latest snapshot of 12-Current to LOCAL/${USER}/base12.yyyyMMdd.txz
- Update OSREL12 value to reflect latest snapshot date in Makefile.wow64
- make makesum
- Compile on amd64 with WOW64 option
- make plist
- Check pkg-plist and add (WINE32|WINE64|MPG123|OPENAL|X11)_FILE entries as needed