Files

248 lines
8.0 KiB
Tcl

# -*- 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 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 11.0 wine-
github.tarball_from archive
name wine-stable
conflicts wine-devel wine-staging wine-crossover
revision 1
platforms {darwin >= 16}
set branch [lindex [split ${version} .] 0].0
license LGPL-2.1+
categories emulators
supported_archs i386 x86_64
maintainers {@Gcenx gmail.com:gcenx83}
homepage https://www.winehq.org
dist_subdir wine
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 b700678636ea8a9a48f650d49d06eb10ed3a97bc \
sha256 f09e8153aa46a581d2b56a5b1363b04832070b9409d9244a68cf482b243ff14a \
size 53784681
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 \
port:libpcap \
port:libsdl2
depends_run \
port:mingw-w64-wine-gecko-2.47.4 \
port:mingw-w64-wine-mono-10.4.1
post-extract {
# https://gitlab.winehq.org/wine/wine/-/commit/c7a97b5d5d56ef00a0061b75412c6e0e489fdc99
reinplace -q "/PKG_CONFIG_LIBDIR/d" ${worksrcpath}/configure
reinplace -q "/PKG_CONFIG_LIBDIR/d" ${worksrcpath}/configure.ac
}
patch.pre_args-replace -p0 -p1
# Upstream bug fixes here
# 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-win64
configure.args \
--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 \
--without-opengl \
--without-oss \
--with-pcap \
--with-pcsclite \
--with-pthread \
--without-pulse \
--without-sane \
--with-sdl \
--without-udev \
--with-unwind \
--without-usb \
--without-v4l2 \
--without-vulkan \
--without-wayland \
--without-x
configure.args-append \
--disable-tests \
--disable-winebth_sys \
--disable-winemenubuilder
configure.env-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.*}
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
}
if {${os.major} < 19} {
if {${os.major} == 16} {
# Using the 10.13 SDK as that's what CodeWeavers tests against for i386
configure.sdk_version 10.13
if {${configure.sdkroot} eq ""} {
pre-fetch {
error "Building ${subport} @${version} requires the MacOSX10.13.sdk to be present in ${developer_dir}/SDKs/"
}
}
}
default_variants +universal
if {${universal_possible} && [variant_isset universal]} {
configure.args.i386 --with-wine64=${workpath}/${worksrcdir}-x86_64
notes-append "
\n
Wine supports both 32-bit and 64-bit now. It is compatible with your\
existing 32-bit wine prefix, but it will now default to 64-bit when you\
create a new wine prefix. The architecture can be selected using the\
WINEARCH environment variable which can be set to either \"win32\" or\
\"win64\".
\n
To create a new pure 32-bit prefix, you can run:
\$ WINEARCH=win32 WINEPREFIX=~/.wine32 winecfg
\n
See the Wine FAQ for details: https://wiki.winehq.org/FAQ#Wineprefixes
"
} else {
supported_archs i386
}
}
if {${os.major} > 18} {
depends_lib-append path:lib/libMoltenVK.dylib:MoltenVK-latest
configure.args.x86_64-append --enable-archs=i386,x86_64
configure.args-replace --without-vulkan --with-vulkan
# 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 {${os.arch} ne "arm"} {
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 -O2
configure.env-append "CROSSCFLAGS=${configure.optflags}"
# Were only installing wine not the development files
destroot.target install-lib
post-destroot {
set docdir ${prefix}/share/doc/${subport}
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."
}
}
livecheck.url ${homepage}
livecheck.type regex
livecheck.regex {"/announce/([0-9]+\.0(\.[0-9]+)*)"}