# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 PortGroup compiler_blacklist_versions 1.0 PortGroup github 1.0 PortGroup muniversal 1.1 # Keep the wine-stable, wine-devel and wine-crossover portfiles as similar as possible. github.setup wine-mirror wine 9.21 wine- github.tarball_from archive name wine-devel conflicts wine-stable wine-staging wine-crossover set my_name wine revision 0 platforms {darwin >= 19} set branch [lindex [split ${version} .] 0].x license LGPL-2.1+ categories emulators supported_archs x86_64 maintainers {@Gcenx gmail.com:gcenx83} homepage https://www.winehq.org dist_subdir ${my_name} description \ A Windows API implementation long_description \ Wine is a compatibility layer capable of running \ Windows applications. \ Instead of simulating internal Windows logic like \ a virtual machine or emulator, Wine translates \ Windows API calls into POSIX calls on-the-fly, \ eliminating the performance and memory penalties \ of other methods and allowing you to cleanly \ integrate Windows applications into your desktop. checksums \ ${distname}${extract.suffix} \ rmd160 9df39caf3f99be28c1fc73bda63edb8374fda62b \ sha256 10dbc38de71950da5f8535d419f984a218be48641f54ab98830dd8415a6d9e75 \ size 51733008 depends_build \ port:bison \ bin:flex:flex \ port:gettext \ port:mingw-w64 \ path:bin/pkg-config:pkgconfig depends_lib \ port:freetype \ port:gettext-runtime \ path:lib/pkgconfig/gnutls.pc:gnutls \ path:lib/libMoltenVK.dylib:MoltenVK-latest \ port:libpcap \ port:libsdl2 depends_run \ port:mingw-w64-wine-gecko-2.47.4 \ port:mingw-w64-wine-mono-9.3.0 patch.pre_args-replace -p0 -p1 patchfiles-append \ 0001-winemac.drv-no-flicker-patch.diff # Some required hacks to make wine work better on macOS & Rosetta2 patchfiles-append \ macos_hacks.diff # wine requires the program specified in INSTALL to create intermediate # directories; /usr/bin/install doesn't. # http://bugs.winehq.org/show_bug.cgi?id=35310 configure.install \ ${worksrcpath}/tools/install-sh configure.args.x86_64 \ --enable-archs=i386,x86_64 \ --enable-win64 configure.args \ --disable-tests \ --without-alsa \ --without-capi \ --with-coreaudio \ --with-cups \ --without-dbus \ --without-ffmpeg \ --without-fontconfig \ --with-freetype \ --with-gettext \ --without-gettextpo \ --without-gphoto \ --with-gnutls \ --without-gssapi \ --without-gstreamer \ --without-inotify \ --without-krb5 \ --with-mingw \ --without-netapi \ --with-opencl \ --with-opengl \ --without-oss \ --with-pcap \ --with-pcsclite \ --with-pthread \ --without-pulse \ --without-sane \ --with-sdl \ --without-udev \ --with-unwind \ --without-usb \ --without-v4l2 \ --with-vulkan \ --without-wayland \ --without-x configure.env.x86_64-append ac_cv_lib_soname_vulkan= # We need to tell the linker to add MacPorts to the rpath stack. configure.ldflags-append -Wl,-rpath,${compiler.library_path} # wine requires clang >= 3.8 # FSF GCC cannot compile code using Apple's "blocks" language extensions compiler.blacklist-append {*gcc*} {clang < 800} {macports-clang-3.*} # Setting an older deployment target avoids build error with MacOSX15.sdk # https://gitlab.winehq.org/wine/wine/-/merge_requests/5935#note_74758 macosx_deployment_target 10.15 if {${subport} eq "wine-devel"} { patchfiles-append 1001-devel-msync.diff } subport wine-staging { conflicts wine-stable wine-devel wine-crossover set staging_version ${version} set wine_staging_distfile v${staging_version}${extract.suffix} distfiles-append ${wine_staging_distfile}:stagingsource master_sites-append https://github.com/wine-staging/wine-staging/archive/:stagingsource worksrcdir wine-${distname} extract.rename no checksums-append \ ${wine_staging_distfile} \ rmd160 61f5912f617b47274545bf0941802f3f6b20d37c \ sha256 2e8c9cf9e378f99de133c7d86f9f0d5d506305869f4c802cb598f97b2f6bf8a6 \ size 9564841 depends_patch-append port:autoconf # Applying staging after other patchfiles to avoid problems post-patch { system -W ${worksrcpath} \ "${workpath}/wine-staging-${staging_version}/staging/patchinstall.py --all -W ntdll-Syscall_Emulation -W winemac.drv-no-flicker-patch" system -W ${worksrcpath} \ "patch -p1 < ${filespath}/1001-staging-msync.diff" } } # Makes destroot take significantly longer variant dev description "Install ${subport} development environment" { build.target all destroot.target-append install-dev } variant gphoto description "Build ${subport} with support for digital cameras" { depends_lib-append port:libgphoto2 configure.args-replace --without-gphoto --with-gphoto } variant ffmpeg description "Build ${subport} with FFmpeg-based implementation for the MF byte stream handlers" { # Use the same version of ffmpeg as gstreamer1-gst-libav set ffmpeg_ver 6 depends_lib-append port:ffmpeg${ffmpeg_ver} configure.args-replace --without-ffmpeg --with-ffmpeg configure.pkg_config_path ${prefix}/libexec/ffmpeg${ffmpeg_ver}/lib/pkgconfig notes-append " \n The new implementation can be enabled by setting the DWORD value: \n DisableGstByteStreamHandler = 1 \n in the HKCU\Software\Wine\MediaFoundation registry key. " } variant gstreamer description "Build ${subport} with GStreamer, for multimedia support" { depends_lib-append port:gstreamer1 port:gstreamer1-gst-plugins-base port:gstreamer1-gst-plugins-good \ port:gstreamer1-gst-plugins-bad port:gstreamer1-gst-plugins-ugly port:gstreamer1-gst-libav configure.args-replace --without-gstreamer --with-gstreamer } variant kerberos description "Build ${subport} with Kerberos, for network authentication protocol support" { depends_lib-append port:kerberos5 configure.args-replace --without-krb5 --with-krb5 } default_variants +ffmpeg +gstreamer triplet.add_build cross triplet.add_host none # macports-base injects a number of flags that now propagate to mingw-gcc this causes the build to fail since, wine-7.21 # https://gitlab.winehq.org/wine/wine/-/commit/b1f59bc679a8c2dea18a6789a5b9b1a1ae825129 compiler.limit_flags yes muniversal.arch_flag no muniversal.arch_compiler yes configure.ldflags-delete -L${compiler.library_path} configure.optflags -g -O2 configure.env-append "CROSSCFLAGS=${configure.optflags}" # Needed due to commit # https://gitlab.winehq.org/wine/wine/-/commit/b21813fa135995449b7a4ba19b561d6faf087ee8 configure.cflags-append -Wno-error=incompatible-function-pointer-types # Were only installing wine not the development files destroot.target install-lib post-destroot { set docdir ${prefix}/share/doc/${my_name} xinstall -d ${destroot}${docdir} xinstall -m 0644 -W ${worksrcpath} \ ANNOUNCE.md \ AUTHORS \ COPYING.LIB \ LICENSE \ README.md \ ${destroot}${docdir} } pre-activate { if {${os.major} == 19 && ${os.minor} < 4 && ${os.platform} eq "darwin"} { ui_error "You must first update to macOS 10.15.4." return -code error "You must first update to macOS 10.15.4." } }