Wine is a Microsoft Windows compatibility layer (or program loader)
capable of running Windows applications on i386 and compatible CPUs.
Windows programs running in Wine act as native programs would, running
without the performance or memory usage penalties of an emulator, with
a similar look and feel to other applications on your desktop.
Many applications already work, more or less, including versions of
Microsoft Office and several games.
WWW: http://www.winehq.org/
Gerald Pfeifer <gerald@FreeBSD.org>

Update ibiblio.org MASTER_SITE which includes a reference to the version
number and was thus broken since we upgraded to Wine 4.0 RC1 in revision
r487184.
PR: 234459
Submitted by: Samy Mahmoudi <samy.mahmoudi@gmail.com>
MFH: 2019Q1 (fix URL for secondary MASTER_SITE)

Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590

Update to Wine 4.0 RC1, the first release candidate of the upcoming
Wine 4.0 release series. This includes the following changes:
- Updates to the timezone database.
- Vulkan support updated to the latest spec.
- Stream I/O support in WebServices.
- Better palette support in WindowsCodecs.
- Synchronization objects support for kernel drivers.
- Various bug fixes.

Explicitly configure without SDL (SLD2) support to increase reproducability
of builds. Without this existing SDL files might be found and used when
building outside of a clean and minimal build environment.

Update to Wine 3.21. This includes the following changes:
- Typelib marshaller rewrite using NDR functions.
- Support for memory font resources in DirectWrite.
- Joystick support improvements.
- Various bug fixes.

Update to Wine 3.20. This includes the following changes:
- Async interfaces and ACF files in the IDL compiler.
- Support for substorage transforms in MSI.
- RPC/COM marshalling fixes.
- Support for Unicode requests in WinHTTP.
- Shell Autocomplete optimizations.
- Various bug fixes.

Update to Wine 3.19. This includes the following changes:
- Support for file I/O completion modes.
- WaitOnAddress synchronization primitives.
- Better support for 32-bit .NET binaries on 64-bit.
- Improved recovery on broken RPC connection.
- Various bug fixes.
And two files are no longer contingent on the Staging patchset,
functionality is now in Wine proper.

Update to Wine 3.16. This includes the following changes:
- Initial implementation of OPC Services.
- Support for rendering buttons from an ImageList.
- Better support for CSS properties in MSHTML.
- Namespace fixes in XML Writer.
- Various bug fixes.
And include/wine/windows/virtdisk.h now comes in via mainline, no longer
just Staging.

Change x11/xorgproto to become a build dep
Change x11/xorgproto to become a build time dependency when added to
USE_XORG. Change the dependency to be on the port, rather than a file the
port installs.
Fix fallout.
Bump portrevision on depending ports.
PR: 230909
Reviewed by: eadler
Approved by: portmgr (antoine)
Obtained
from: https://github.com/FreeBSDDesktop/freebsd-ports/tree/feature/xorgproto
exp-run: antoine
Differential Revision: https://reviews.freebsd.org/D16906

Update to Wine 3.15. This includes the following changes:
- HID device support in Raw Input.
- Many more new icons in Shell32.
- WinHTTP converted to use Windows Sockets.
- Syntax fixes in the command line interpreter.
- Various bug fixes.
The libdinput8 changes added in Wine 3.14 have since moved from
Staging to Wine proper.

Bump PORTREVISION for ports depending on the canonical version of GCC
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.
This includes ports
- featuring USE_GCC=yes or USE_GCC=any,
- featuring USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and those
- with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.
PR: 222542

Update to Wine 3.13. This includes the following changes:
- Initial support for performance data in the registry.
- Mono engine updated with some bug fixes.
- Improvements in the standard Task Dialog.
- Various bug fixes.
Make the dependency on devel/autoconf more general. [1]
Reviewed by: tijl [1]

Update to Wine 3.12. This includes the following changes:
- Unicode data updated to Unicode 11.0.0.
- Proxy configuration dialog in the Internet control panel.
- Syntax fixes in the Cmd.exe command intepreter.
- Some more glyphs in the Wingdings font.
- Various bug fixes.
Align the sorting of MASTER_SITES with the emulators/wine port again,
now that SF is regularly updated again.

Update to Wine 3.11. This includes the following changes:
- More debugger support for Wow64 processes.
- Support for sha256/sha384 hashes in ECDSA signatures.
- Better reporting of hyper-threaded CPUs.
- Improvements to the standard Task Dialog.
- Various bug fixes.

Update to Wine 3.10. This includes the following changes:
- Swapchain support in Direct 3D 12.
- Vulkan support updated to the latest spec.
- Debugger support for Wow64 processes.
- Still more support for the Task Scheduler.
- Various bug fixes.

Replace explicit settings of CFLAGS and LDFLAGS in favor of USES=localbase
(the former predating the latter by at least a decade alas with variation).
PR: 226396
Submitted by: John Hein <z7dr6ut7gs@snkmail.com>

Update to Wine 3.9. This includes the following changes:
- OpenGL core contexts enabled by default in Direct 3D.
- Beginnings of Direct 3D 12 implementation using vkd3d.
(This is inactive for now due to a non-existant dependency, and hidden
behind a new option VKD3D which is always off.)
- More support for the Task Scheduler.
- Some more Task Dialog support.
- Better arrow support in GdiPlus.
- Various bug fixes.
ext-ms-win-uxtheme-themes-l1-1-0.dll and feclient.dll which in the past were
available only via the Wine Staging patchset are now part of mainstream Wine.

- Infrastructure for writing kernel driver tests.
- Support for showing file properties in the Shell browser.
- MP3 decoder as a DirectX Media Object.
- More support for the Task Scheduler.
- Support for COM aggregation in UrlMon.
- Various bug fixes.

For ports under `emulators', `games', `irc`, and `sysutils' categories:
remove redundant PKGMESSAGE assignment, which is set appropriately by
the b.p.m when `pkg-message' appears on the SUB_FILES list.

Update to Wine 3.7. This includes the following changes:
- MSI custom actions run in a separate process.
- Support for job files in the Task Scheduler.
- Improved viewport support in Direct 3D.
- Larger resolution version of the standard icons.
- Various bug fixes.

Change the name of the check-wine-devel-vs-wine-staging target to
check-wine-devel-vs-staging for brevity (and since the wine-staging
port is gone for the time being and STASGING is just an option for now).
Fix a typo in some of that target's output on the way.

Update to Wine 3.6. This includes the following changes:
- Support for PNG format icons.
- Support for 1D textures.
- More infrastructure for high DPI support.
- OLE data cache improvements.
- Various bug fixes.

Update to Wine 3.5. This includes the following changes:
- More Vulkan support, including the vulkan-1 loader.
- Support for RSA and ECDSA cryptographic keys.
- Improved manifest file parser.
- Support for the Places toolbar in file dialogs.
- Various bug fixes.

Fully disable building Kerberos components.
We already had --without-krb5, alas when someone had krb5 installed
in their build environment, the build still failed. This takes care
using a bigger hammer.
PR: 226396
Analyzed by: John Hein <z7dr6ut7gs@snkmail.com>

The Wine Staging patchset has reappeared for the time being, with new
maintainers and at a new location, so reintroduce the STAGING option
(off by default, as before).
Since we had kept the code in the Makefile, this mostly involves
adjusting the download site and restoring and updating pkg-plist.
(Observe how Wine 3.3 has merged a fair number of changes, so the
specials in pkg-plist are fewer than when we had to take this out.)

Update to Wine 3.4. This includes the following changes:
- More Vulkan support, including integration with the X11 driver.
- Better handling of privileged instructions on x86-64.
- Hex edit dialog improvements in RegEdit.
- Assortment of patches merged from wine-staging.
- Various bug fixes.
Also the SF mirror is back and working again.

Update to Wine 3.3. This includes the following changes:
- Beginnings of Vulkan support.
- Direct3D multi-threaded command stream enabled by default.
- Multisample textures enabled by default.
- Support for game controllers through SDL.
- Support for loading CIL-only .Net binaries.
- Various bug fixes.
Temporarily disable the SF mirrors which appear to serve a 0 byte
distfile right now.

Remove entries tagged as %%STAGING%%. Like other parts not removed with
revision 462267 (in particular in Makefile) I had hoped to keep those to
retain history in case the Wine Staging project rebounds, but that is not
how the option framework operates.
Reported by: pkg-fallout

Remove the STAGING option which has been marked BROKEN for 11 weeks
now that the Wine Staging tree has been declared suspended yesterday,
cf. https://www.wine-staging.com/news/2018-02-17-future-wine-staging.html .
Leave in the actual code for the time being, to maintain history in
case this somehow gets restarted in the near future.

Update to Wine 3.2. This includes the following changes:
- Separate implementation of USER controls for ComCtl32 v6.
- Multisample texture support in Direct3D.
- Support for HID gamepads.
- More event support in MSHTML.
- Obsolete DOS code removed.
- Various bug fixes.

Now that Wine 3.0 has been released, Wine is in regular development
again and Wine 3.1 is the first snapshot. It includes the following
changes:
- Kerberos authentication support.
- Window class redirection for Common Controls 6.
- Support for X11 ARGB visuals.
- DOSBox is required for running DOS executables.
(This is enabled via the existing DOSBOX option.)
- Various bug fixes.
As some functionality moved from the Wine Staging tree, so have some
files that now install by default (and are thus no longer contingent
on the STAGING option).

Update to Wine 3.0 RC6 which brings some further bug fixes.
Replace STAGING_LIB_DEPENDS by LIB_DEPENDS+= in the block providing
support for the STAGING option to have (nearly) everything related
to that in one place.

Update to Wine 3.0 RC5 which brings yet more bug fixes.
Configure --without-udev since FreeBSD does not feature udev support
as such. (This should not be a practical change, but makes this explicit
and also avoids a configure warning.)

Update to Wine 3.0 RC1, the first release candidate of Wine 3.0.
This includes the following changes:
- Direct3D 11 enabled by default on AMD and Intel GPUs.
- Implementation of the task scheduler.
- Registry export support in the reg.exe tool.
- Progman DDE support.
- OLE data cache improvements.
- More event support in MSHTML.
- Relay debugging improvements.
- Various bug fixes.
I got files/patch-dlls_advapi32_perf.c merged upstream, so we can
now remove it here.

Actually commit the following, which I had omitted from revision 455277:
Mark the STAGING option, and hence the wine-staging port as well, as
BROKEN. Once again that patchset still is not available yet a week
after the Wine snapshot.

Update to Wine 2.22. This includes the following changes:
- Source selection dialog for scanners.
- Float audio formats with more than 2 channels in XAudio.
- Fixes for DLL injection support.
- Input methods improvements.
- Various bug fixes.
Mark the STAGING option, and hence the wine-staging port as well, as
BROKEN. Once again that patchset still is not available yet a week
after the Wine snapshot.
Temporarily add a patch against dlls/advapi32/perf.c that I got
accepted upstream in the meantime, so it should become obsolete
with the next minor version.

Explicitly add x11 and xext to USE_XORG (when the X11 option is set),
both of which were pulled in implicitly so far.
Somehow this escaped my testing in a sandbox so far.
Reported by: Mk/Scripts/qa.sh via dbn@

Update to Wine 2.21. This includes the following changes:
- Still more metafile support in GdiPlus.
- Indirect draws support in Direct 3D.
- Services fixes on WoW64.
- Better DPI scaling in the Shell Explorer.
- Various bug fixes.
On the way, generally disable PulseAudio support, not just for the
Wine Staging case (where this originally only existed). [1]
Talking about Wine Staging, mark that (via the STAGING option, and hence
the wine-staging port as well) as BROKEN once again; that patchset still
is not available yet, and we cannot wait forever.
PR: 195765 [1]
Reported by: dbn [1]

Update to Wine 2.20. This includes the following changes:
- Improved event support in MSHTML.
- Interpolation modes in Direct3D.
- Improved metafile support in GdiPlus.
- Initial version of Kerberos5 Authentication Package.
- OLE clipboard cache improvements.
- Various bug fixes.
Remove files/patch-partial-reservation. This should not be needed any
longer since on FreeBSD the main wine program is now loaded at a lower
address, making more room available between Wine and 0x80000000, so it
may be ok now if the area above 0x80000000 stays reserved like on other
platforms. [1]
Mark the STAGING option (and hence the wine-staging port as well) as
BROKEN; that patchset still is not available yet, and we cannot wait
forever.
Discussed with: tijl [1]

Update to Wine 2.19. This includes the following changes:
- Named pipes now fully handled by the Wine server.
- Support for a new Microsoft root certificate.
- More transform fixes in GdiPlus.
- Some heap allocation optimizations.
- Various bug fixes.

Add a new Makefile target check-wine-devel-vs-wine-staging that works
around a deficiency of Mk/Scripts/check-stagedir.sh that does not spot
entries in pkg-plist that move from being enabled only with the STAGING
option (%%STAGING%%foo/bar/file) to being there by default (foo/bar/file).
This has caused actual issues for users, so we need to regularly check
for such cases, which a simple `check-wine-devel-vs-wine-staging` will
now do, provided the staging directory is accessible.
PR: 220950

Bump PORTREVISION for ports depending on the canonical version of GCC
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++11-lang,
c++14-lang, c++0x, c11, or gcc-c++11-lib.
PR: 219275

Update to Wine 2.16. This includes the following changes:
- Support for pasting metafiles in RichEdit.
- Better support for grayscale PNG images.
- Support for safety features in library loading.
- Better handling of transforms in GdiPlus.
- Rendering improvements in DirectWrite.
- Various bug fixes.
Move ONLY_FOR_ARCHS into its proper location.

Update to Wine 2.15. This includes the following changes:
- Support for AES encryption.
- Improved Bezier support in Direct2D.
- Chunked transfer improvements in WinInet.
- Various bug fixes.
Move USES a bit up in the Makefile to respect desired order.

Move some twenty files that originally were part of the Wine Staging
patchset when Wine 2.0 branched and have been integrated into the Wine
development tree since then from being only included in packages / installed
ports when option STAGING is active to the general case (i.e., omit
the leading %%STAGING%% marker from their entries in pkg-plist).
This points to an unfortunate deficiency in Mk/Scripts/check-stagedir.sh
which we are relying on. [1]
PR: 220950 [1]

Update to Wine 2.12. This includes the following changes:
- Some performance improvements with async I/O.
- More RegEdit file parser improvements.
- Beginnings for MSI user interface support.
- Various bug fixes.
And correspondingly various new library files.

Update to Wine 2.10. This includes the following changes:
- Dictionary support in WebServices.
- A number of Direct2D fixes.
- User interface improvements in RegEdit.
- OLE clipboard cache fixes.
- Various bug fixes.
Associated (non-trivial) changes to pkg-plist.

Update to Wine 2.9. This includes the following changes:
- Support for tesselation shaders in Direct3D.
- Binary mode support in WebServices.
- Clipboard changes detected through Xfixes.
- User interface improvements in RegEdit.
- Various bug fixes.

Update to Wine 2.8. This includes the following changes:
- Direct3D command stream runs asynchronously.
- Better serial and parallel ports autodetection.
- Still more fixes for high DPI settings.
- Various bug fixes.

Update to Wine 2.7. This includes the following changes:
- TCP and UDP connection support in WebServices.
- Various shader improvements for Direct3D 11.
- Improved support for high DPI settings.
- Partial reimplementation of the GLU library.
- Support for recent versions of OSMesa.
- Various bug fixes.

Update to Wine 2.6. This includes the following changes:
- Multi-threaded command stream in Direct3D.
- More Shader Model 5 instructions.
- More support for 3D textures.
- Better font transformations in DirectWrite.
- Various bug fixes.