Personal patches
Go to file
Gerald Pfeifer d57dd6618f Update from Wine 4.0.3 and the Wine 4.0 release series to Wine 5.0.
This represents a year of development effort with over 7,400 individual
changes.  This port and the wine-devel port have been in sync as closely
as possible, and this update is mostly copying over from the -devel port
minus support for the Wine Staging patchset (and STAGING option).

Highlights of this new release include built-in modules in PE format,
multi-monitor support, Vulkan 1.1 support, and an XAudio2 reimplementation.

This also comes with updates of the emulators/wine-gecko and
emulators/wine-mono ports to match their -devel counterparts:
version 2.47.1 for wine-gecko and version 4.9.4 for wine-mono.

And we "lose" four local patches that got integrated or became obsolete
upstream.

The following is a more detailed list extracted from the extensive
release notes:

== Graphics

- Multiple display adapters and monitors are properly supported, including
  dynamic configuration changes.
- The Vulkan driver supports up to version 1.1.126 of the Vulkan spec.
- The WindowsCodecs library is able to convert more bitmap formats,
  including palette-indexed formats.

== Direct3D

- Fullscreen Direct3D applications inhibit the screensaver.
- DXGI swapchain presents inform the application when the corresponding
  window is minimized. This typically allows applications to reduce CPU
  usage while minimized, and is in some cases required to allow the
  application window to be restored again.
- Switching between fullscreen and windowed modes using the standard
  Alt+Enter combination is implemented for DXGI applications.
- The following features are implemented for Direct3D 12 applications:
  - Switching between fullscreen and windowed.
  - Changing display modes.
  - Scaled presents.
  - Swap intervals.
  These features were previously already implemented for earlier
  versions of the Direct3D API.
- The handling of various edge cases is improved. Among others:
  - Out of range reference values for the alpha and stencil tests.
  - Sampling 2D resources with 3D samplers and vice versa.
  - Drawing with mapped textures and buffers.
  - Usage of invalid DirectDraw clipper objects.
  - Creating Direct3D devices on invalid Windows, like the desktop window.
  - Viewports with a minimum Z larger than or equal to the maximum Z.
  - Resources bound through both shader-resource views and render-target
    or depth-stencil views at the same time.
  - Blits between formats with and without alpha components.
  Since well-behaved applications don't rely on these edge cases, they
  typically only affect one or two applications each. There are
  nevertheless quite a number of them.
- Dirty texture regions are tracked more accurately for Direct3D 8 and 9
  texture uploads.
- Uploads of S3TC-compressed 3D textures require less address space.
  Since 3D textures can be potentially large, and address space
  exhaustion is a concern for 32-bit applications, S3TC-compressed 3D
  textures are uploaded per-slice, instead of in a single upload.
- The ID3D11Multithread interface is implemented.
- Various lighting calculation fixes and improvements for older DirectDraw
  applications have been made.
- Limited support for blits across swapchains is implemented.
- More shader reflection APIs are implemented.
- The wined3d CPU blitter can handle compressed source resources.
  Support for compressed destination resources was already implemented
  in a previous release.
- The Direct3D graphics card database recognizes more graphics cards.
- New HKEY_CURRENT_USER\Software\Wine\Direct3D registry keys:
  - "shader_backend" (REG_SZ)
    The shader backend to use. Possible values are "glsl" (default)
    for GLSL, "arb" for ARB vertex/fragment programs and "none" to
    disable shader support.
  - "strict_shader_math" (REG_DWORD)
    Enable (0x1) or disable (0x0, default) stricter translation of
    Direct3D shaders, potentially at a performance cost. This
    currently only makes a difference with the default GLSL shader
    backend in combination with the proprietary NVIDIA drivers.
- Deprecated HKEY_CURRENT_USER\Software\Wine\Direct3D registry key:
  - "UseGLSL"
    This has been superseded by the "shader_backend" setting above.

== D3DX

- Support for compressing textures using S3TC-compression.
- Various operations, like e.g. texture fills, on unmappable surfaces
  are implemented more correctly. Previously their implementation
  relied on the underlying Direct3D implementation not enforcing
  mapping restrictions.
- Various improvements and fixes have been made to the effect framework.

== Kernel

- Most of the functions that used to be in Kernel32 are moved to
  KernelBase, to follow the architecture of recent Windows versions.
- Libraries of the wrong 32/64-bitness are ignored when found in the
  search path, to enable loading the correct one if it's found further
  in the path.
- Kernel objects are better emulated for device drivers that expect to
  manipulate objects from the kernel side.
- The kernel-level synchronization objects like spin locks, fast
  mutexes, remove locks, and resource variables are implemented.
- The system battery state is properly reported to applications.

== User interface

- Minimized windows are displayed using their title bar instead of the
  old Windows 3.1-style icons.
- The new button styles Split Buttons and Command Links are implemented.
- The Edit control sets margins correctly also for CJK fonts.

== Desktop integration

- Symbolic links to the corresponding Unix directories are created for
  the 'Downloads' and 'Templates' folders.

== Input devices

- Plug & Play device drivers can be installed and loaded on startup.
- Game controllers are better supported, including proper support for
  hat switch, wheel, gas and brake controls.

== .NET

- The Mono engine is updated to version 4.9.4, including parts of the
  Windows Presentation Foundation (WPF) framework.
- The Gecko and Mono add-ons support shared installation, where the
  files are used directly from a global location under /usr/share/wine
  instead of being copied into every new prefix.

== Internet and networking

- The Gecko engine is refreshed to support recent toolchains.
- A number of new HTML APIs are implemented.
- MSHTML supports some SVG elements.
- Error object and exception propagation are supported in VBScript.
- A number of VBScript builtin functions are implemented.
- JScript EcmaScript compliant mode supports more features.
- JScript and VBScript script objects expose type info interfaces.
- The HTTP proxy configuration can be retrieved through DHCP.
- Passport HTTP redirects are supported.
- The HTTP service and corresponding client-side library (HTTPAPI) are
  partially implemented.

== Cryptography

- ECC (elliptic-curve) keys are supported when using GnuTLS.
- Importing keys and certificates from PFX blobs is implemented.
- The PBKDF2 key derivation algorithm is supported.

== Text and fonts

- OpenType positioning features are supported in DirectWrite, and
  enabled for Latin script by default, including kerning.
- Font data access is made safer by validating the various data tables
  before using them.
- DirectWrite interfaces are updated to a recent SDK, implementing
  some of the latest API additions.

== Audio / Video

- The XAudio2 libraries are reimplemented to use the external FAudio
  library, for better compatibility.
- The Media Foundation libraries are fleshed out, including:
  - Support for builtin and user async work queues.
  - Ability to submit periodic callbacks, waiting, scheduled, and
    regular work items, with support for item priority.
  - Support for media event queues.
  - Various core API to handle media type objects, stream and
    presentation descriptors, object attributes, byte stream objects,
    samples and buffers.
  - Initial Source Resolver implementation.
  - Initial implementation of Source Reader API.
  - Implementation for Sample Grabber object.
  - Core support for building topology objects.
  - Builtin presentation clock implementation, started implementing
    Media Session functionality.
- The video capture filter has been ported to use v4l2 instead of the
  deprecated v4l1 API, allowing the use of some cameras which do not
  support v4l1.
- Support for YUV to RGB translation and reading from v4l2 devices
  using mmap() has been removed; we now depend on libv4l2 for both of
  these things.
- The builtin AVI, MPEG-I, and WAVE decoders have been removed; we now
  depend on GStreamer or the Mac QuickTime Toolkit to decode such
  media files.
- Some more VMR7 configuration APIs are implemented.
- The sound drivers support per-channel volume adjustments.

== Internationalization

- Unicode character tables are based on version 12.1.0 of the standard.
- Unicode normalization is implemented.
- The geographic region id is automatically set in the registry based
  on the current locale. It can be modified if necessary under
  HKEY_CURRENT_USER\Control Panel\International\Geo.
- The Sinhalese and Asturian locales are supported.
- Codepage 28601 (Latin/Thai) is supported.

== RPC/COM

- The typelib marshaller supports complex structs and arrays.
- There is an initial implementation of the Windows Script runtime library.
- There is an initial implementation of the Microsoft ActiveX Data
  Objects (ADO) library.

== Installers

- Microsoft Installer (MSI) Patch Files are supported.
- The WUSA tool (Windows Update Standalone Installer) supports
  installing .MSU update files.

== PE modules

- The actual PE binaries are copied into the Wine prefix instead of
  the fake DLL files. This makes the prefix look more like a real
  Windows installation, at the cost of some extra disk space.
- Modules that have been converted to PE can use standard wide-char C
  functions, as well as wide-char character constants like L"abc".
  This makes the code easier to read.
- Not all modules have been converted to PE yet; this is an ongoing
  process that will continue during the Wine 5.x development series.

== Development tools / Winelib

- The Visual Studio remote debugger can be used to debug applications
  running under Wine.
- The Debug Engine library (DBGENG) is partially implemented.
- The Resource Compiler and IDL Compiler support a '--sysroot' option
  to allow locating header files in cross-compile environments.
- Winegcc supports the options '--target', '--wine-objdir',
  '--winebuild' and '-fuse-ld' that make it easier to use as a
  cross-compiler, or with custom toolchains.
- The wine/unicode.h header is no longer available to applications,
  since the functions will ultimately be removed and replaced by the
  standard C runtime wide character functions.

== Build infrastructure

- The 'fastcall' calling convention is supported in spec files. It
  uses the correct name mangling for Windows builds.
- A '-import' entry point flag is supported in spec files, to mark
  functions that need a hotpatch code prefix to be generated for their
  import thunks.
- Winebuild supports a '--builtin' option to add a special signature
  to PE binaries to mark them as Wine builtins.

== Builtin applications

- The CHCP tool is implemented. It allows setting the console codepage.
- The MSIDB tool is implemented. It allows manipulating MSI databases.

== Performance improvements

- The various time functions use higher performance system clocks if
  available, to reduce the overhead in the rendering loop of many games.
- File lookups take advantage of the ext4 filesystem case folding
  support if it's enabled on the directory being searched.
- No-data style listboxes (LBS_NODATA) have better performance for
  large numbers of items.
- Slim Reader/Writer locks, keyed events, and condition variables use
  futexes on Linux to avoid wineserver round trips.

== New external dependencies

- The FAudio library is used to implement XAudio2.
- The Inotify library is used for file change notifications on BSD
  platforms.
- The Video4Linux version 2 library is used instead of version 1.
2020-01-31 08:23:04 +00:00
accessibility Remove expired ports: 2020-01-27 15:34:18 +00:00
arabic
archivers Remove expired ports: 2020-01-27 15:34:18 +00:00
astro Update to 0.112 2020-01-29 19:17:02 +00:00
audio lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
base
benchmarks benchmarks/tsung: Update 1.6.0 -> 1.7.0 2020-01-31 06:12:13 +00:00
biology Fix math/openblas and bump dependent ports 2020-01-30 14:17:44 +00:00
cad Fix math/openblas and bump dependent ports 2020-01-30 14:17:44 +00:00
chinese Remove expired ports: 2020-01-27 15:34:18 +00:00
comms Update to 2.12.0 2020-01-29 06:37:37 +00:00
converters p5-Sereal*: Update to 4.008 2020-01-30 15:33:12 +00:00
databases Finish migration of java/jakarta-commons-beanutils to apache-commons-beanutils. 2020-01-30 17:53:26 +00:00
deskutils deskutils/latte-dock: update to 0.9.8.1 2020-01-29 17:55:39 +00:00
devel devel/bear: Update to v2.4.3 2020-01-31 03:04:26 +00:00
dns dns/coredns: Remove the "-cpu" parameter 2020-01-31 02:49:46 +00:00
editors Upgrade editors/openoffice-devel to git commit d12e928220 on the upstream 2020-01-31 06:47:05 +00:00
emulators Update from Wine 4.0.3 and the Wine 4.0 release series to Wine 5.0. 2020-01-31 08:23:04 +00:00
finance Remove expired ports: 2020-01-27 15:34:18 +00:00
french
ftp Remove BROKEN 2020-01-29 19:17:16 +00:00
games lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
german Update to 2020.01.26 2020-01-27 20:10:08 +00:00
graphics gpu-firmware-kmod: update to latest linux-firmware state for radeon and amdgpu 2020-01-31 02:42:34 +00:00
hebrew
hungarian
irc Add NO_ARCH 2020-01-29 19:17:07 +00:00
japanese japanese/ebnetd: Fix build on real environment 2020-01-29 02:51:59 +00:00
java java/jakarta-regexp: deprecate. 2020-01-30 19:01:27 +00:00
Keywords
korean
lang Fix a build failure in the new analyzer module that was reported with 2020-01-30 20:48:54 +00:00
mail lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
math Finish migration of java/jakarta-commons-beanutils to apache-commons-beanutils. 2020-01-30 17:53:26 +00:00
misc misc/cheat: Update 3.4.0 -> 3.4.1 2020-01-31 05:49:15 +00:00
Mk lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
multimedia lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
net lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
net-im lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
net-mgmt Fix bad dependency on pkg origin which prevents using pkg-devel 2020-01-28 17:20:40 +00:00
net-p2p Update to 2.7.1 release. 2020-01-31 07:57:38 +00:00
news Remove expired ports: 2020-01-27 15:34:18 +00:00
polish Update to 20200125 2020-01-27 20:10:13 +00:00
ports-mgmt Import the libfetch patch to the bundled libfetch 2020-01-29 13:11:09 +00:00
portuguese
print print/latex2rtf: Unbreak the option LATEX2PNG 2020-01-30 06:38:33 +00:00
russian
science - Update to 1.0.5.1 2020-01-30 16:35:33 +00:00
security Update to the latest MIT krb5 commit on github. 2020-01-31 05:31:00 +00:00
shells Update to the latest att/ast github commit. 2020-01-31 05:41:20 +00:00
sysutils sysutils/inotify-tools: Update 3.20.1 -> 3.20.2 2020-01-31 05:46:34 +00:00
Templates
textproc lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
Tools
ukrainian
vietnamese
www lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
x11 lang/rust: Update to 1.41.0 2020-01-30 20:00:06 +00:00
x11-clocks
x11-drivers x11-drivers/xf86-video-amdgpu, x11-drivers/xf86-video-ati: update to release 19.1.0 2020-01-31 02:21:20 +00:00
x11-fm Deprecate ports using py-vte 2020-01-28 16:22:48 +00:00
x11-fonts Update to 12.1.04 2020-01-29 19:13:53 +00:00
x11-servers x11-servers/xorg-server: expose UDEV support for evdev hotplug 2020-01-25 16:26:41 +00:00
x11-themes KDE Frameworks: update to 5.66.0 2020-01-15 15:59:49 +00:00
x11-toolkits x11-toolkits/wlroots: backport WLR_DRM_NO_MODIFIERS support 2020-01-29 15:59:49 +00:00
x11-wm Kickshaw is a menu editor for the Openbox window manager (but not only). 2020-01-30 01:48:49 +00:00
.arcconfig
.gitattributes
.gitauthors .gitauthors: Add Alfredo Dal'Ava Junior (alfredo) 2020-01-28 19:10:30 +00:00
.gitignore
.gitmessage
CHANGES
CONTRIBUTING.md
COPYRIGHT
GIDs Add imds-filterd. 2020-01-27 09:01:16 +00:00
LEGAL Remove expired ports: 2020-01-27 15:34:18 +00:00
Makefile
MOVED Pet MOVEDlint. 2020-01-31 06:05:29 +00:00
README
UIDs Add imds-filterd. 2020-01-27 09:01:16 +00:00
UPDATING Remove trailing whitespace 2020-01-30 05:04:29 +00:00

This is the FreeBSD Ports Collection.  For an easy to use
WEB-based interface to it, please see:

	https://www.FreeBSD.org/ports

For general information on the Ports Collection, please see the
FreeBSD Handbook ports section which is available from:

	https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ports.html
		for the latest official version
	or:
	The ports(7) manual page (man ports).

These will explain how to use ports and packages.

If you would like to search for a port, you can do so easily by
saying (in /usr/ports):

	make search name="<name>"
	or:
	make search key="<keyword>"

which will generate a list of all ports matching <name> or <keyword>.
make search also supports wildcards, such as:

	make search name="gtk*"

For information about contributing to FreeBSD ports, please see the Porter's
Handbook, available at:

	https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/

NOTE:  This tree will GROW significantly in size during normal usage!
The distribution tar files can and do accumulate in /usr/ports/distfiles,
and the individual ports will also use up lots of space in their work
subdirectories unless you remember to "make clean" after you're done
building a given port.  /usr/ports/distfiles can also be periodically
cleaned without ill-effect.