This includes the following changes:
- Prototype and constructor objects in MSHTML.
- More support for ODBC Windows drivers (which we haven't enabled).
- Various bug fixes.
files/patch-include_wine_asm.h has made it upstream in slightly
different form, so remove it.
My patch files/patch-nsiproxy.sys-buildfix has made it upstream,
so remove it.
And files/patch-configure requires updating due to changed patch
context (alas no change to the patch itself).
This includes the following changes:
- Mailslots reimplemented using server-side I/O.
- More support for ODBC Windows drivers (if enabled).
- Still more user32 data structures in shared memory.
- Various bug fixes.
We also need a patch of mine to address an upstream regression on
non-macos, non-Linux systems: files/patch-nsiproxy.sys-buildfix .
This includes the following changes:
- Support for loading ODBC Windows drivers
(though we haven't enabled ODBC at this point).
- More user32 data structures in shared memory.
- More rewriting of the CMD.EXE engine.
- Various bug fixes.
On the way remove files/clang/stdarg.h, a copy of clang's stdarg.h which
we have been using while the devel/llvm* ports did not install it (and
some others). This changed for devel/llvm17 with commit b21e6b4de1
seven weeks ago.
Users have been reporting a number of cases of the following error:
002c:err:seh:NtRaiseException Unhandled exception code c0000005 flags 0 addr 0
x6ffffff8b2b7
0024:err:seh:NtRaiseException Unhandled exception code c0000005 flags 0 addr 0
Address this by means of a patch borrowed from emulators/wine-proton.
PR: 279927, 280000
This forward ports the following two commits from emulators/wine
as far as files/wine.sh goes:
commit ef11261971
Author: Gerald Pfeifer <gerald@FreeBSD.org>
Date: Wed Jan 31 12:27:21 2024 +0000
emulators/wine: Simplify the logic in wine.sh
and
commit 0f2052c378
Author: Alexander Vereeken <Alexander88207@protonmail.com>
Date: Sun Dec 17 22:58:41 2023 +0000
emulators/wine: Unbreak WoW64
This is an excerpt of 1f07ec6014 by Alex S <iwtcex@gmail.com> for
emulators/wine-proton.
PR: 275677, 279927
Reported by: scf
Restore files/patch-dlls_ntdll_unix_loader.c which we "lost" with
the update to Wine 9.0 by means of an adjusted version.
PR: 278427
Obtained from: Alex S <iwtcex@gmail.com> in PR 278525
This includes the following changes:
- Some restructuration of the Vulkan driver interface.
- Some ARM work (which we aren't using yet).
- Various bug fixes.
Also refine 32-bit ABI determination for WoW64. [1]
PR: 278525 [1]
Submitted by: Alexander Vereeken <Alexander88207@protonmail.com> [1]
Reviewed by: Alex S <iwtcex@gmail.com> [1]
Revert an upstream change to tools/winebuild/res32.c that exposed
resource contraints for clang on i386 (cf. the upstream reports
at https://github.com/llvm/llvm-project/issues/62339
and https://bugs.winehq.org/show_bug.cgi?id=54889 ).
Apply this patch only on i386 to minimize divergence and risk on
64-bit x86.
PR: 273987 [1], 271201 [2]
Bi-sected by: Damjan Jovanovic <damjan.jov@gmail.com> [2]
Motivated by: scf [1]
Forward port commit 215305d603 from emulators/wine:
Author: Alexander Vereeken <Alexander88207@protonmail.com>
Date: Sun Aug 27 21:19:15 2023 +0000
Ensure the ALSA run-time portions are found under WoW64.
i386 and hence (the old way of) WoW64 is currently BROKEN, so this
is not actually exercised right now. Still good to have this for
when/if it may become relevant again.
PR: 268164
This addresses a regression introduced with commit 3f914243d8
on 2022-03-12 which was a forward port from emulators/wine and not
sufficiently adjusted to this port).
Do not bump PORTREVISION since 32-bit builds are broken right now.
PR: 273137
This includes changes from release candidates of version 8.0 and the
actual 8.0 release as well as 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8,
8.9, 8.10, and ultimately 8.11, specifically the following:
- Bundled vkd3d upgraded to version 1.6.
- Vulkan and OpenGL thunking optimizations.
- More support for print processors.
- Improved joystick control panel.
- Long types printf format conversion finished.
- Windows version set to Windows 10 for new prefixes.
- Many code cleanups that were deferred during code freeze.
- Better debug information in Wow64 mode.
- Wow64 thunks in the WPCAP library.
- Indeo IV50 codec support.
- Monitor names set from EDID data.
- Support for the Low Fragmentation Heap.
- Smard card support using PCSC-Lite. [not enabled]
- Bundled Zydis library for more correct disassembly.
- Initial step of the Wayland graphics driver.
- Cleanups in IME support.
- A number of test fixes.
- Bundled vkd3d upgraded to version 1.7.
- Better error reporting in the IDL compiler.
- Support for shared Wow64 Classes registry key.
- More cleanups in IME support.
- Support for configuring a WinRT dark theme.
- Bundled math library from Musl libc.
- Improved spool file support in the PostScript driver.
- DXBC shader parsing delegated to vkd3d.
- More spool file improvements in the PostScript driver.
- More work towards full PE support in the PostScript driver.
- Initial support for loading ARM64EC modules.
- More work on IME restructuration.
- Completion of PE conversion in the PostScript driver.
- Doppler shift support in DirectSound.
- GdiPlus performance improvements.
- All PE->Unix transitions go through the syscall interface.
- Mouse cursor clipping improvements.
- Support for virtual memory placeholders.
- Locale and timezone data updates.
- More mouse cursor clipping improvements.
- Support for TLS alerts.
- Increased available address space in WoW64 mode.
- Various bug fixes.
Now configure --without-pcap since the requirements have changed
since upstream commit 032e8d9c362b881a4213c819d1cc6262f2df4b35 on
February 7th 2023 and stock FreeBSD does not meet them any longer.
Finally, Wine 8.x so far does not appear to work on FreeBSD/i386, so
mark as BROKEN. Still better to progress than being stuck.
PR: 271201, 272710
The Wine Staging patchset is experimental and goes on top of bi-weekly
development snapshots of Wine on top of a non-standard (in the world of
Wine) operating system. That's a lot of moving parts and has proven too
much to reasonably handle and user uptake has been limited at best.
Plus upstream has completely reinvented the mechanism to apply this
patchset and adjusting to that (and the additional dependencies) would
further slow down finally upgrading this port. [1]
(files/extra-gitapply was about the previous mechanism around Wine
Staging.)
PR: 271201 [1]
Discussed with: Damjan Jovanovic <damjan.jov@gmail.org>
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)
This includes the following changes:
- Font linking improvements.
- A number of fixes for exception unwinding.
- Support for dumping EMF spool files in WineDump.
- Various bug fixes.
files/patch-dlls-ntdll-unix-file.c has been merged upstream; drop it.
This includes the following changes:
- Support for storing DOS attributes on disk.
- Bundled vkd3d upgraded to version 1.5.
- Support for MPEG-4 audio format.
- Various bug fixes.
This version also requires a patch for the ENODATA error code which
does not consistently exist on FreeBSD. [1]
Submitted by: gerald [1]
Forward port 316c372c7d from the main
wine 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
This includes the following changes:
- WinSpool, GPhoto, and a few other modules converted to PE.
- Better support for inline functions in DbgHelp.
- Beginnings of a MSDASQL implementation.
- Various bug fixes.
files/patch-dlls-winebus-6.20 and files/patch-no-procfs have been
accepted upstream, so remove our local copies.
With that, and additional upstream changes, mounting /proc is no
longer required on FreeBSD, so we don't need to document it. [1]
PR: 258795 [1]
Approved by: maintainer (= author)
This includes the following changes:
- MSXml, XAudio, DInput and a few other modules converted to PE.
- A few system libraries are bundled with the source to support PE builds.
- HID joystick is now the only supported joystick backend in DirectInput.
- Better support for MSVCRT builds in Winelib.
- Various bug fixes.
Also, using our patches within this Port (for now):
- procfs no longer needs to be mounted on /proc, we use sysctl() instead.
- The Staging patchset will apply even if $PORTSDIR is a Git repository.
The latter requires lang/gawk as an additional EXTRACT_DEPENDS.
(The now bundled system libraries will trigger some follow-up changes,
but for now we're okay.)
Approved by: maintainer (= author)
After recent changes, given an uninitialized root dir pkg now fails
with:
pkg: Error opening the trusted directory /usr/share/keys/pkg/trusted
pkg: Error loading trusted certificates
This works around it for our WoW setup.
PR: 259404
Approved by: Damjan Jovanovic <damjan.jov@gmail.com>
This includes the following changes:
- Shell32 and WineBus libraries converted to PE.
- Unicode data updated to Unicode version 14.
- More work towards Dwarf 3/4 debug support.
- HID joystick enabled by default.
- Various bug fixes.
files/patch-amd64-vs-x86-64, which I submitted upstream, is obsolete
now and the issue has been addressed upstream even more thoroughly,
so drop our local patch.
In a02e3c6686 we translated amd64
to x86-64, which is the marketing name, alas we need to use x86_64,
the technical name used on the GNU universe (and by Wine). What a
difference underscore vs dash makes.
This includes the following changes:
- WineCfg program converted to PE.
- Better high-DPI support in builtin applications.
- More preparation work for the GDI syscall interface.
- Improved debugger support in Wow64 mode.
- Various bug fixes.
My patch files/patch-dlls-nsiproxy.sys has been accepted upstream,
so remove it on our end.
Work around FreeBSD calling x86-64 by the name of amd64 and the
Ports Collection using this in a variable ARCH, which interferes
with Wine's variable of the same name and messes things up badly.
I have hope to be able to upstream files/patch-amd64-vs-x86-64. [1]
PR: 257020 [1]
Inspired by: Ivan Rozhuk <rozhuk.im@gmail.com> [1]
Yet another recent breakage in dlls/nsiproxy.sys, this time only on
newer versions of FreeBSD, yet another patch submitted upstream (and
included locally temporarily).
This includes the following changes:
- Initial version of a HID-based joystick backend.
- Improved high-DPI theming support.
- More preparation work for the GDI syscall interface.
- Better CodeView support in WineDump.
- Various bug fixes.
It also addresses a couple of FreeBSD-specific build issues I had to
address due to system headers not including others actually required:
nsiproxy: Include sys/param.h.
nsiproxy: Include netinet/in_pcb.h.
nsiproxy: Include stddef.h.
ntdll: Always return a value in get_builtin_init_funcs.
nsiproxy: Include sys/types.h from udp.c.
nsiproxy: Add $(PROCSTAT_LIBS) to EXTRALIBS.
nsiproxy: Include netinet/in.h in udp.c.
nsiproxy: Include sys/queue.h from tcp.c.
My patch files/patch-dlls-nsiproxy.sys has been integrated upstream,
so remove it here.
In what looks like a change between FreeBSD 11 and FreeBSD 12 and later
we now need to explicitly include sys/queue.h to avoid
In file included from dlls/nsiproxy.sys/tcp.c:42:
/usr/include/netinet/tcp_var.h:516:2: error:
expected specifier-qualifier-list before 'TAILQ_ENTRY'
516 | TAILQ_ENTRY(tcptw) tw_2msl;
I submitted this upstream already where it got accepted, so this patch
files/patch-dlls-nsiproxy.sys is only a temporary stop gap.
This includes the following changes:
- WinSock (WS2_32) library converted to PE.
- Support for performance data in the registry.
- More 32->64-bit thunks for NTDLL calls.
- Improved floating point status handling in the C runtime.
- More preparation work for the GDI syscall interface.
- Various bug fixes.
My patch files/patch-dlls-ntdll-unix-virtual.c has been accepted
upstream in the meantime, so remove it here.
When devel/libsysinfo is present, <sys/sysinfo.h> exists which
misleads Wine into enabling some code that invokes the sysinfo
function. That one isn't actually available, though, without
additional linking parameters (and we don't want to add another
dependency at this point anyway), so properly test for sysinfo()
before using it.
This is a patch of mine that was accepted upstream and should
come in via Wine 6.15.
PR: 257398
Forward port 1d2af6e089 and its
two follow-up fixes ad15b0e748 and
1b5885c463 from emulators/wine:
Wine 6.0 and later need LD_BIND_NOW / LD_32_BIND_NOW on FreeBSD,
cf. https://bugs.winehq.org/show_bug.cgi?id=50257 and
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=252307
so move the actual binaries to wine64.bin / wine.bin and invoke
them via a script that does those settings. [1]
Also revamp the WoW handling/packging which combines 32-bit/i386
Wine into 64-bit/amd64 Wine. [1]
Submitted by: Alex S <iwtcex@gmail.com> [1]
PR: 257284 [1], 252307 [1], 255336, 257020
This includes the following changes:
- 32->64-bit thunks implemented in WOW64 dll.
- More preparation work for the GDI syscall interface.
- Various bug fixes.
My patch files/patch-nsiproxy.sys has been accepted upstream, so
remove our local version.
This includes the following changes:
- Proper scrollbar theming.
- More work towards WinSock PE conversion.
- Preparation work for the GDI syscall interface.
- Some progress on the IPHLPAPI PE conversion.
- Various bug fixes.
My patch from files/patch-nsiproxy.sys has been included upstream,
alas new breakage has been introduced in dlls/nsiproxy.sys, so
"refresh" that with another patch.
The STAGING option now patches again; no longer mark it as broken.
This includes the following changes:
- Builtin "Blue" and "Classic Blue" themes.
- More work towards WinSock PE conversion.
- Beginnings of the NSI (Network Store Interface) implementation.
- Support for 32/64-bit registry views in reg.exe.
- Various bug fixes.
The Staging patch set is broken for this snapshot; mark the STAGING
option broken accordingly.
Add files/patch-nsiproxy.sys which addresses a build issue on
non-Linux platforms that I pushed upstream in the meantime.
freeze.
Wine Staging now uses the same version designation as Wine itself after
a report of mine, so revert special casing STAGING_DISTFILES; similarly
my two patches files/extrapatch-dlls-ntdll-unix-file.c and
files/extrapatch-staging-server-fd.c are now upstream, so remove them.
and hence re-enable it. [1]
Temporarily include a patch of mine to address a build breakage with
that patchset, files/extrapatch-staging-server-fd.c.
Update the description for the STAGING option and explicitly label it
as unsupported.
PR: 251606 [1]
based on an exchanged I've had with upstream.
Firstly, commits 55ba3648379d90642f174e74809b84130d6d1ddc and
e0138c4a6a7a87f1d25badd43e05490e706bc666 should obviate it need.
Secondly, and more importantly, winegcc passes that flag already
since
commit e59395208d527d1bffb2725efc85fb798aee7610
Author: Alexandre Julliard <julliard@winehq.org>
Date: Mon Mar 28 15:47:19 2016 +0900
makefiles: Reduce the maximum page size for modules that have a base address.
It avoid bumping into the next allocated base address on 64-bit.
- GDI32 library converted to PE.
- More fixes for windowless RichEdit.
- A number of timezone updates.
- Various bug fixes.
files/extrapatch-server-file.c that I added to work around upstream
breakage with the Wine Staging patchset is not necessary any longer,
nor is half of files/extrapatch-dlls-ntdll-unix-file.c.
on top of the Wine Staging patchset that address upstream regressions.
It also brings a fair number of STAGING-specific additions to the set of
Wine libraries.
This includes the following changes from Wine 5.18 which we had to skip
since it failed to build on FreeBSD:
- USER32 library converted to PE.
- Console no longer requires the curses library.
- Support for display modes with various orientations.
- A number of syntax fixes in the WIDL compiler.
- Vulkan shader compilation using the new vkd3d-shader library.
- Non-recursive makefiles.
Plus the following changes from version 5.19 itself:
- Wine Mono engine updated to 5.1.1, with WPF text formatting support.
- KERNEL32 library converted to PE.
- DSS cryptographic provider.
- Windowing support in the new console host.
- A number of exception handling fixes.
- Various bug fixes.
Our local patch files/patch-tools-makedep became obsolete by those
changes that first broke version 5.18 and now appear fixed in 5.19.
files/patch-dlls_kernel32_Makefile.in needs some adjustments due to
changed context, but retains the core tweak we've been carrying.
- Support for x86 AVX registers.
- Still more restructuration of the console support.
- Various bug fixes.
Revert an upstream patch (7571fa87df453e404d8b6ca58e2da95340156849)
that breaks the build with GCC 9 for now - files/patch-tools-makedep.
A number of files transitioned from the Staging patchset to the main
codebase, in addition the Staging patchset lost some and gained some.
- More restructuration of the console support.
- Initial version of the Webdings font.
- Beginnings of PE conversion of the MSVCRT libraries.
- Various bug fixes.
My patch files/extrapatch-dlls-ntdll-unix-registry.c is now upstream,
so remove it here.
emulators/i386-wine-devel and was reverted, now with a tweak to avoid
that breakage:
The Wine Staging patchset for Wine 5.13 is now available and fixed
(compared to the previous one).
It also addresses the build issue for Wine 5.13 that I fixed via
files/patch-dlls-ntdll-unix-registry.c, so we need to make that
patch only apply when the Wine Staging patchset is not used.
PR: 248118 [1]
Submitted by: vvd@unislabs.com
(compared to the previous one).
It also addresses the build issue for Wine 5.13 that I fixed via
files/patch-dlls-ntdll-unix-registry.c, so we need to make that
patch only apply when the Wine Staging patchset is not used.
PR: 248118
Submitted by: vvd@unislabs.com
- Re-mapping of INI files to the registry.
- System call thunks in NTDLL.
- Reimplementation of floating point numbers printing.
- Beginnings of a restructuration of the console support.
- Various bug fixes.
A build error got in upstream the day this snapshot was created;
temporarily address this via files/patch-dlls-ntdll-unix-registry.c
which I alreadly submitted upstream.
(The Wine Staging patchset isn't yet available. No change on that
front yet - it was marked BROKEN anyway.)