files/patch-include_wine_asm.h has now gone upstream in a somewhat
more expansive form. Note to drop our version when upgrading. (The
upstream patch does not directly apply to Wine 9.0.)
This requires our devel/llvm17 or later ports which bring full header
files. [1]
It has major impact on how this port is built and the packaging list,
so bump PORTREVISION.
PR: 280448, 274542 [1], 279677 [1]
A bogus, but harmless since a noop, setting of CROSSFLAGS snuck in
with revision bc9917dc51 when updating from Wine 7.0.2 to 8.0.2.
The directory it points do does not exist, so simply remove that
setting.
This backports
commit ba5653b298
Author: Gerald Pfeifer <gerald@FreeBSD.org>
Date: Mon Jul 29 21:47:34 2024 +0000
from emulators/wine-devel.
Users have been reporting a number of cases of the following error:
002c:err:seh:NtRaiseException Unhandled exception code c0000005 flags 0 addr 0x6ffffff8b2b7
0024:err:seh:NtRaiseException Unhandled exception code c0000005 flags 0 addr 0
PR: 279927, 280000
Our devel/llvm18 and devel/llvm17 ports (with commits c56fde6514 and
b21e6b4de1, respectively) now provide C99 include files.[1] This is
a positive and fixes a long standing issue. It significantly changes
what Wine builds, though. For emulators/wine-devel we moved to the new
world order already; for emulators/wine remain a bit more conservative
and stay with status quo ante by firmly using LLVM 15.
For most users this won't make any difference since so far we have
been using LLVM_DEFAULT which currently stands at ... 15.
On the way use the new USES=llvm facility instead of doing things
more manually.
PR: 279677, 274542 [1]
Restore files/patch-dlls_ntdll_unix_loader.c which we "lost" with the
update to Wine 9.0 by means of an updated version based on a version
for emulators/wine-devel by Alex S <iwtcex@gmail.com> in PR 278525.
PR: 278427
Move from Wine 8.0.2 and the Wine 8.0 release series to Wine 9.0 which
represents another year of upstream development and over 7000 individual
changes.
Touted highlights include the new WoW64 architecture and an experimental
Wayland driver - neither of which upstream nor us have enabled yet.
Other areas of major changes include:
- The PostScript driver is reimplemented to work from Windows-format
spool files and avoid any direct calls from the Unix side.
- The Vulkan driver supports up to version 1.3.272 of the Vulkan spec.
- A number of GdiPlus functions are optimized for better graphics
performance and quite some work on Direct3D.
- The Windows Media Video (WMV) decoder DirectX Media Object (DMO),
DirectShow Audio Capture filter, and DirectShow MPEG‑1 Video Decoder
filter are implemented.
- DirectInput action maps are implemented, improving compatibility
with many old games that use this to map controller inputs to
in-game actions.
- URL/URI protocol associations are exported as URL handlers to the
FreeBSD desktop.
- Monitor information like name and model id are retrieved from the
physical monitor's Extended Display Identification Data (EDID).
- Internationalization work, new timezone database (2023c), 15.1.0
of the Unicode Standard.
- The default Windows version for new prefixes is set to Windows 10.
- Address space layout randomization (ASLR) is supported for modern
PE binaries, to avoid issues with address space conflicts.
FluidSynth (2.3.3), Musl (1.2.3), and Zydis (4.0.0) are now bundled
and several bundled libraries have been updated: Vkd3d (1.10),
Faudio (23.12), LDAP (2.5.16), LCMS2 (2.15), LibMPG123 (1.32.2),
LibPng (1.6.40), LibTiff (4.6.0), LibXml2 (2.11.5), LibXslt (1.1.38),
Zlib (1.3).
Extensive release notes are at https://www.winehq.org/announce/9.0 .
We now explicitly build --without-pcap, --without-pcsclite, and
--without-wayland and enable gstreamer support only when ALSA or
OSS are enabled.
And we include files/extra-patch-tools-winebuild-res32 to work
around intermittent build problems on i386 and have to drop
files/patch-dlls_ntdll_unix_loader.c which no longer applies.
emulators/wine8 is available for anyone needing that previous version.
It appears the original reason to mark version 8.0.2 as BROKEN on
i386 when we upgraded from version 7.0.2 was a false positive. The
respective code got into upstream after the branch point.
PR: 274566
Use ALSA_CONFIGURE_WITH and OSS_CONFIGURE_WITH instead of the
ALSA_CONFIGURE_ON and OSS_CONFIGURE_ON forms.
This properly handles the case where neither the ALSA nor OSS option
are set. It's more resilient to future changes. And shorter.
(This back ports 944eff5cfa from the wine-devel port.)
PR: 273987
If the user has set the default version of LLVM to 10 or 11, use
LLVM 15 instead (rather than LLVM 12 as before). LLVM 15 is the
current default in ports, so one less version to install in case.
Move from the Wine 7.0 to the Wine 8.0 release series, specifically
8.0.2 as the second minor release with additional bug fixes.
This represents a year of upstream development effort and over 8,600
individual changes. The main achievement is the completion of the
conversion to PE format:
- All modules can be built in PE format. This is an important milestone
on the road to supporting various features such as copy protection,
32-bit applications on 64-bit hosts, Windows debuggers, x86
applications on ARM, etc.
- A special syscall dispatcher is used for PE -> Unix transitions to
avoid the overhead of a full NT system call. This minimizes the
performance impact of the new architecture.
Also WoW64 has seen significant work:
- WoW64 thunks are implemented for essentially all Unix libraries,
enabling a 32-bit PE module to call a 64-bit Unix library. Once
the remaining direct PE/Unix calls have been removed, this allows
running 32-bit Windows applications without any 32-bit Unix library.
- When the 32-bit Wine loader isn't found, 32-bit applications are
started in the new experimental "Windows-like" WoW64 mode (where
32-bit code runs inside a 64-bit host process). This mode can be
enabled by building with the '--enable-archs' configure option.
This is still under development and not yet recommended for general
use. Applications started in this mode print the warning "starting
in experimental wow64 mode".
That said, i386 builds on FreeBSD are currently broken, hence our
flavor of WoW64 is not available for the time being.
Other areas of major changes include:
- The "Light" theme is enabled in the default configuration, which
provides a more modern look.
- Graphics drivers, effects and other improvements in Direct2D,
many optimizations and features around Direct3D.
- MPEG-1 audio decoder filter for layers 1, 2, and 3.
- Media Foundation, controller hotplug support, force feedback effect
support, and further improvements for input devices.
- Many changes around Unicode support.
- The ApiSetSchema database is implemented, replacing all the api-ms-*
forwarding modules. This reduces disk and address space usage (and
our packaging list).
- DOS file attributes are persistent, and stored on disk using the
filesystem's extended attributes, in a format compatible with Samba.
- JScript related improvements.
- Various improvements to builtin applications, development tools,
and the build system.
The bundled Faudio, LCMS2, libjpeg, libmpg123, libpng, libtiff,
libxml2, libxslt, and zlib libraries have been updated. The vkd3d
and LDAP libraries are now bundled in the source tree. The OpenAL
library is no longer used.
LLVM is now a heavy build dependency in addition to GCC.
Some whitespace changes in the Makefile to sync up with wine-devel
which diverged via some extra such changes. And loads, loads of
packaging list changes.
Extensive release notes are at https://www.winehq.org/announce/8.0 .
PR: 272710
ALSA has been the default on Linux for ages and is what the
majority of upstream Wine developers use. More importantly,
though, it appears newer versions of Wine aren't actually
quite working with OSS. So, switch the default over to ALSA.
Bump PORTREVISION.
PR: 268164
The form libfoo.so:category/port only works for LIB_DEPENDS; for
RUN_DEPENDS we need to depend on the port as such. This fixes up
commit a26844393b.
Bump PORTREVSION.
PR: 273137
When using the ALSA option (which is not the default) audio did not
worke - no audio device appeared for playing and recording and the
following message appeared:
ALSA lib dlmisc.c:285:(snd_dlobj_cache_get0) Cannot open shared
library /usr/local/lib/alsa-lib/libasound_module_pcm_oss.so
Providing alsa-plugins at run time addresses this.
Bump PORTREVSION accordingly.
PR: 273137
When ALSA option is selected, Wine build corresponded drivers
but they are missing in plist and thus missed in package
Bump PORTREVISION to force rebuild package to include missed drivers
Reported by: poudriere bulk -t
Approved by: portmgr blanket
Sponsored by: Serenity Cybersecurity, LLC
WoW64 currently uses i386 packages on amd64 under special PREFIX, so
- Include mesa-devel paths to LIBGL_DRIVERS_PATH override
- Respect libmap.conf(5) in 32-bit packages
To use simply install mesa-devel as regular and WoW64 package e.g.,
$ pkg install mesa-devel
$ /usr/local/share/wine/pkg32.sh install mesa-devel
In case of issues simply remove mesa-devel e.g.,
$ pkg delete mesa-devel
$ /usr/local/share/wine/pkg32.sh delete mesa-devel
PR: 271140
Reviewed by: Alex S
Approved by: maintainer timeout (2 months)
Convert the USE_LDAP=yes to USES=ldap and adds the following features:
- Adds the argument USES=ldap:server to add openldap2{4|5|6}-server as
RUN_DEPENDS
- Adds the argument USES=ldap<version> and replaces WANT_OPENLDAP_VER
- Adds OPENLDAP versions in bsd.default-versions.mk
- Adds USE_OPENLDAP/WANT_OPENLDAP_VER in Mk/bsd.sanity.mk
- Changes consumers to use the features
Reviewed by: delphij
Approved by: portmgr
Differential Revision: https://reviews.freebsd.org/D38233
Move from the Wine 6.0 to the Wine 7.0 release series, specifically
(still) Wine 7.0 there.
This represents a year of development effort and over 9,100 individual
changes. It contains a large number of improvements. Areas of major
changes are:
- Most modules have been converted to PE format.
- Better theming support, with a bundled theme for a more modern look.
All builtin applications support theming, as well as High DPI rendering.
- Vastly improved HID stack and joystick support.
- New WoW64 architecture (which supports running a 32-bit Windows
application inside a 64-bit Unix host process, using thunks to map
32-bit NT system calls to the 64-bit NTDLL).
- Direct3D has seen significant improvements.
Specifically on FreeBSD more low-level system information queries like
memory and battery status are now supported. And we no longer need to
refer to /proc and procfs in our installation message.
The Mono engine is now at version 7.0.0 with quite some changes,
Packaging changes come on two levels: Firstly, many support libraries
such as FAudio, GSM, LCMS2, libjpeg, libjxr, libmpg123, libpng, libtiff,
libxml, libxslt, zlib are now directly bundled in where we used many
of those via other ports (or completely disabled their use). On the way
we shed the LIBXSLT and MPG123 options.
Secondly, the directory structure under lib/ has been completely revamped.
Update MASTER_SITES to the new winehq.org download site.
Extensive release notes are at https://www.winehq.org/announce/7.0 .
PR: 266976
The WWW: lines in the pkg-descr files of these ports where not at the
end of those files and have been missed in prior conversion runs.
Approved by: portmgr (implicit)
ASLR has been enabled by default on -CURRENT and -STABLE and this
causes Wine to crash. The clean solution would be to implement some
memory mapping code that already exists for macOS and Linux, but this
is not an essy task.
In order to allow use of Wine on systems with ASLR mark the Wine
executables as not compatible with ASLR using elfctl. This allows
to keeps ASLR enabled on the system for all other binaries.
If the required memory mapping functionality is made available, the
elfctl commands should be removed from this and the other Wine ports.
Approved by: portmgr (implicit)
Backport ce1e733047 and
2895c1dc9c from wine-devel:
Our Wine ports have solely relied on OSS for sound so far. Add
support to optionally switch to ALSA by establishing two options,
OSS and ALSA.
This does not change default behavior (and packages created), rather
it adds the ability to choose. It particularly may prove beneficial
for USB MIDI keyboards.
Submitted by: hselasky
There have been lots of missing CONFLICTS_INSTALL entries, either
because conflicting ports were added without updating existing ports,
due to name changes of generated packages, due to mis-understanding
the format and semantics of the conflicts entries, or just due to
typoes in package names.
This patch is the result of a comparison of all files contained in
the official packages with each other. This comparison was based on
packages built with default options and may therefore have missed
further conflicts with optionally installed files.
Where possible, version numbers in conflicts entries have been
generalized, some times taking advantage of the fact that a port
cannot conflict with itself (due to logic in bsd.port.mk that
supresses the pattern match result in that case).
A few ports that set the conflicts variables depending on complex
conditions (e.g. port options), have been left unmodified, despite
probably containing outdated package names.
These changes should only affect the installation of locally built
ports, not the package building with poudriere. They should give an
early indication of the install conflict in cases where currently
the pkg command aborts an installation when it detects that an
existing file would be overwritten,
Approved by: portmgr (implicit)
Explicitly building without GSSAPI (Kerberos SSP) support should not
make any difference, in particular for clean builds. Still this is a
step towards ensuring reproducible builds.
This back ports 62ea2531bf79d02a75cd0e57a4501af4c775c5d3 from the
wine-devel port.
This back ports the patch I pushed upstream and that wine-devel has
inherited from there a few months ago. It will go away with the next
major release.
PR: 257398, 260165 [1]
Suggested by: alt2600@icloud.com [1]
Quicktime support shouldn't trigger on FreeBSD. Still explicitly
configure --without-quicktime in line with our push for deterministic
builds.
This back ports e3632b1fd1 from the
wine-devel port.
In our situation, where we leverage 32-bit, i386 executables of Wine
in an amd64 world running 64-bit executables of Wine, the rpath of
$PREFIX/lib/gcc10 which Mk/bsd.gcc.mk sets for the former makes the
dynamic linker attempt to load a 64-bit version of libgcc_s.so which
happens to be at that location on amd64.
Removing this rpath setting at compilation time would be comparatively
more involved, so leverage LD_32_LIBMAP which we are already using in
wine-wow64.sh to point to the system version of libgcc_s.so.
This works since for C code both flavors of libgcc_s.so are fully
compatible and Wine's C++ dependencies Wine (like openal-soft and
various Mesa userspace graphics drivers) are actually compiled with
clang. In other words we are only reverting to the version of the
library they would normally load without rpath interference.
Bump PORTREVISION so new packages with the tweaked script will be
generated.
PR: 259926
Reported by: nc
Tested by: nc
In de47ffe65c the option to leverage
libhal was removed, alas configure was not adjusted. Ensure that
even if libhal somehow is present we explicitly do not use it.
This back ports 7ca1a772ea from the
wine-devel port.
The MAINTAINER and COMMENT variables, as well as WINELIBDIR, could
be overridden for the sake of the i386-wine port. With that port
gone, simply set these unconditionally.
In commit 5933ac0b09 CONFLICTS_INSTALL definitions in multiple ports
have been fixed to omit the unneeded version patterns they had.
The commit of the wine port did not include that fix, but instead
local changes to deal with an issue introduced by recent changes to
sched.h.
This commit reverts the accidentially committed changes, but retains
the intended removal of a version wildcard in CONFLICTS_INSTALL.
Reported by: gerald