diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b28317be92e1..6898beb265fa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,14 +10,14 @@ env: CXX: clang++ CPATH: /usr/local/include LIBRARY_PATH: /usr/local/lib - CFLAGS: -O3 -Wno-deprecated-declarations -Wno-format -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Wno-int-conversion - CROSSCFLAGS: -O3 -Wno-deprecated-declarations -Wno-format -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Wno-int-conversion + CFLAGS: -O3 + CROSSCFLAGS: -O3 -Wno-error=incompatible-pointer-types -Wno-error=int-conversion LDFLAGS: -Wl,-ld_classic -Wl,-headerpad_max_install_names -Wl,-rpath,@loader_path/../../ -Wl,-rpath,/usr/local/lib MACOSX_DEPLOYMENT_TARGET: 10.14 WINE_CONFIGURE: $GITHUB_WORKSPACE/configure BUILDROOT: $GITHUB_WORKSPACE/build WINE_INSTALLROOT: install - WINE_MONO: https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.4.1/wine-mono-7.4.1-x86.tar.xz + WINE_MONO: https://github.com/madewokherd/wine-mono/releases/download/wine-mono-9.0.0/wine-mono-9.0.0-x86.tar.xz jobs: build: @@ -28,6 +28,12 @@ jobs: - name: Use Xcode 15 run: sudo xcode-select -switch /Applications/Xcode_15.2.app/Contents/Developer + - name: ffmpeg + continue-on-error: true + run: brew install ffmpeg@6 + + + - name: Install Homebrew Packages continue-on-error: true run: | @@ -36,10 +42,6 @@ jobs: "bison" "pkg-config" "gcenx/wine/cx-llvm" - - # Utilities (DXVK) - "jq" - # Dependencies "freetype" "gettext" @@ -49,41 +51,31 @@ jobs: "molten-vk" "winetricks" ) - brew install "${REQUIRED_PACKAGES[@]}" - - name: Install mingw continue-on-error: true run: | # As of mingw-w64 12, brew uses UCRT instead of MSVCRT # Wine will fail to build with UCRT, so we must rollback. - curl -L https://raw.githubusercontent.com/Homebrew/homebrew-core/31209a399a7b40bf2cd3abd7aee2715547ccd5bd/Formula/m/mingw-w64.rb > mingw-w64.rb && brew install mingw-w64.rb rm mingw-w64.rb - - name: Echo Libs [DEBUG] run: | echo "Brew Libs" ls $(brew --prefix)/lib - echo "FFmpeg Libs" ls $(brew --prefix ffmpeg@6)/lib - echo "GStreamer Libs" ls $(brew --prefix gstreamer)/lib/gstreamer-1.0 - - name: Add bison & cx-llvm to $PATH run: | echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH echo "$(brew --prefix cx-llvm)/bin" >> $GITHUB_PATH - - name: Configure wine64 run: | set -x - export ac_cv_lib_soname_MoltenVK="libMoltenVK.dylib" export ac_cv_lib_soname_vulkan="" - mkdir -p ${{ env.BUILDROOT }}/wine64 pushd ${{ env.BUILDROOT }}/wine64 ${{ env.WINE_CONFIGURE }} \ @@ -122,13 +114,11 @@ jobs: --with-vulkan \ --without-x popd - - name: Build wine64 run: | pushd ${{ env.BUILDROOT }}/wine64 make -j$(sysctl -n hw.ncpu 2>/dev/null) popd - - name: Install wine64 run: | pushd ${{ env.BUILDROOT }}/wine64 @@ -138,10 +128,8 @@ jobs: - name: Configure wine32on64 run: | set -x - export ac_cv_lib_soname_MoltenVK="libMoltenVK.dylib" export ac_cv_lib_soname_vulkan="" - mkdir -p ${{ env.BUILDROOT }}/wine32on64 pushd ${{ env.BUILDROOT }}/wine32on64 ${{ env.WINE_CONFIGURE }} \ @@ -184,36 +172,28 @@ jobs: --with-wine64=${{ env.BUILDROOT }}/wine64 \ --without-x popd - - name: Build wine32on64 run: | pushd ${{ env.BUILDROOT }}/wine32on64 make -j$(sysctl -n hw.ncpu 2>/dev/null) popd - - name: Install wine32on64 run: | pushd ${{ env.BUILDROOT }}/wine32on64 make install-lib DESTDIR="$GITHUB_WORKSPACE/${{ env.WINE_INSTALLROOT }}" popd - - name: Grab Verbs From Winetricks run: | curl -L -o verbs.txt https://raw.githubusercontent.com/Winetricks/winetricks/master/files/verbs/all.txt - - name: Create Final Package run: | mkdir -p Libraries/DXVK mkdir -p Libraries/Wine - cp -a ${{ env.WINE_INSTALLROOT }}/. Libraries/Wine/ - rm -rf Libraries/Wine/share/man - cp -a $(brew --prefix winetricks)/bin/winetricks Libraries cp -a verbs.txt Libraries cp -a DXVK Libraries - - name: Copy External Libs run: | LIBS=( @@ -257,17 +237,17 @@ jobs: "libMoltenVK" "libnettle.8" "libogg.0" - "libopenvino.2410" - "libopenvino_c.2410" - "libopenvino_onnx_frontend.2410" - "libopenvino_paddle_frontend.2410" - "libopenvino_pytorch_frontend.2410" - "libopenvino_tensorflow_frontend.2410" - "libopenvino_tensorflow_lite_frontend.2410" + "libopenvino.2420" + "libopenvino_c.2420" + "libopenvino_onnx_frontend.2420" + "libopenvino_paddle_frontend.2420" + "libopenvino_pytorch_frontend.2420" + "libopenvino_tensorflow_frontend.2420" + "libopenvino_tensorflow_lite_frontend.2420" "liborc-0.4.0" "libp11-kit.0" "libpcre2-8.0" - "libpostproc.57" + "libpng16.16" "libpugixml.1" "librav1e.0.7" @@ -297,7 +277,6 @@ jobs: "libzimg.2" "libzmq.5" ) - FFMPEG_LIBS=( "libavfilter.9" "libavformat.60" @@ -307,7 +286,6 @@ jobs: "libswresample.4" "libswscale.7" ) - GSTREAMER_LIBS=( "libgstapplemedia" "libgstasf" @@ -329,36 +307,27 @@ jobs: "libgstvideoparsersbad" "libgstwavparse" ) - for i in "${LIBS[@]}" do cp -Lr $(brew --prefix)/lib/"$i".dylib Libraries/Wine/lib done - for i in "${FFMPEG_LIBS[@]}" do cp -Lr $(brew --prefix ffmpeg@6)/lib/"$i".dylib Libraries/Wine/lib done - mkdir Libraries/Wine/lib/gstreamer-1.0 - for i in "${GSTREAMER_LIBS[@]}" do cp -Lr $(brew --prefix gstreamer)/lib/gstreamer-1.0/"$i".dylib Libraries/Wine/lib/gstreamer-1.0 done - cp -a $(brew --prefix gstreamer)/lib/gstreamer-1.0/include Libraries/Wine/lib/gstreamer-1.0 - # Fixup brew dylib LCs - update_dylib_paths() { local dylib_file="$1" local path_prefix="$2" echo "Processing $dylib_file..." - # Extract LC_LOAD_DYLIB paths using otool local load_dylibs=$(otool -L "$dylib_file" | grep -v "$dylib_file" | awk '{print $1}') - for path in $load_dylibs; do if [[ $path != /usr/lib* && $path != /System/* ]]; then # For paths not excluded, replace the prefix with @loader_path/ @@ -371,33 +340,24 @@ jobs: fi done } - export -f update_dylib_paths - find Libraries/Wine/lib -maxdepth 1 -type f -name '*.dylib' -exec bash -c 'update_dylib_paths "$0" "@loader_path/"' {} \; find Libraries/Wine/lib/gstreamer-1.0 -maxdepth 1 -type f -name '*.dylib' -exec bash -c 'update_dylib_paths "$0" "@loader_path/../"' {} \; - update_dylib_paths Libraries/Wine/lib/wine/x86_64-unix/winegstreamer.so "@rpath/" - - name: Install GPTK run: | ditto GPTK/redist/lib/ Libraries/Wine/lib/ - - name: Copy Version .plist run: | cp -a WhiskyWineVersion.plist Libraries/ - - name: Install WineMono run: | mkdir Libraries/Wine/share/wine/mono - curl -L -o mono.tar.xz ${{ env.WINE_MONO }} tar -xzf mono.tar.xz -C Libraries/Wine/share/wine/mono - - name: Build Checksum run: | find ./Libraries -type f -exec shasum "{}" + > SUMS.sha - - name: Upload config64.log if: failure() uses: actions/upload-artifact@v4 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000000..5590a436138f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "string": "c" + } +} \ No newline at end of file diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Headers b/GPTK/redist/lib/external/D3DMetal.framework/Headers new file mode 120000 index 000000000000..a177d2a6b926 --- /dev/null +++ b/GPTK/redist/lib/external/D3DMetal.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal index 11320dd90677..379cea7e5f38 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/D3DMetal differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib index c000e81e2ee2..7bf6d3c4e3e3 100644 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/default.metallib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib index 383e4ee56e97..b5b84e78bc22 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxccontainer.dylib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib index dcd4aa1cb3ee..630c4d85ab2a 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxcompiler.dylib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib index a40ca103adc1..b98aba1b8486 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libdxilconv.dylib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib index 205d608089ae..a2ca61355b33 100755 Binary files a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib and b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/libmetalirconverter.dylib differ diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist index 7da3a860ef47..9961b71ecaa8 100644 --- a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist +++ b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/Resources/version.plist @@ -11,6 +11,6 @@ ProjectName D3DRendererMetal SourceVersion - 25011000000000 + 25012000000000 diff --git a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources index e51647f51d50..7617ed47f43f 100644 --- a/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources +++ b/GPTK/redist/lib/external/D3DMetal.framework/Versions/A/_CodeSignature/CodeResources @@ -14,27 +14,27 @@ Resources/default.metallib - LQZ8p5HlC6WNBzOhGZB0I59xJHI= + mxLJaSs2P0Djf643Kz8Va6Hx/pU= Resources/libdxccontainer.dylib - sjzzc3d+CUWxeURQG95BtKO6dEE= + dXleNCH3bcxIdmB71UBOSosR8gU= Resources/libdxcompiler.dylib - SosJ4ruO0UnCrmNGxE1DTPICox0= + lHo+4Eo9wSravo6lkLHUpqvaB5A= Resources/libdxilconv.dylib - 1HaxatZtI8A0RGYMXWqeZry18mI= + Hpc+gw3aNbYSHWTfeTWiN/PZdD0= Resources/libmetalirconverter.dylib - dLIQcMwng33L6rSQaE80hAaIAQo= + FKggi67FLzSiKDkmyPmvlC9zZtM= Resources/version.plist - y7JjtFeGtpaYPX0tFHQCu7bum0Y= + 4hEE6t/Xe1/2UPLpQxatIwvdb7Y= files2 @@ -57,42 +57,42 @@ hash2 - B95I9T2lA9AsJHu/pTkKeI4k+6OqbVThfK8nIaLDl04= + imVLtLKdRqdb3F3ZR3GCutg66n2KEKgSjIVb1CyiF+c= Resources/libdxccontainer.dylib hash2 - zm7gUzeEpj0QNjMTViwMmjA0EfTCy3lLfSuCuXVBBBg= + QTO36F4ebdqlZzhQj/FeY+1+JIbHRTjJoRUKvUIR+Js= Resources/libdxcompiler.dylib hash2 - erzoN04l+P/qm6x+uVfL2HJYy3zbCGssSLQN27biL6g= + CiwABW6lRz/beYuRMkDZIJUEPcGHe2M1pWwJY3VWFhI= Resources/libdxilconv.dylib hash2 - 5FnyTvUK0kRYY7vT+F0eNy7YIg4H/aCCG9XL4DzCJpA= + ob+pR46qs/d8eEMaECmJOx6asabIiHe47o1FwEBg1u4= Resources/libmetalirconverter.dylib hash2 - 9OvZc+2PlPYaNiWRZ4kzxR1OnhvAjZXoiv+AWu/xfUY= + 2Dfm0MTQmQoEOv7MJULEo1htoFJXD5/EeVMvS7UplpY= Resources/version.plist hash2 - idHsvcSD9w+BzMvuhXYk32/rYL+mN3jfj+0bXOSuIQM= + qAJ7bqVsNX2bD5jem7+hEtMTOYGRHIXlXnAP0iB+0/E= diff --git a/GPTK/redist/lib/wine/x86_64-unix/d3d9.so b/GPTK/redist/lib/wine/x86_64-unix/d3d9.so new file mode 120000 index 000000000000..c76417840bfd --- /dev/null +++ b/GPTK/redist/lib/wine/x86_64-unix/d3d9.so @@ -0,0 +1 @@ +../../external/libd3dshared.dylib \ No newline at end of file diff --git a/GPTK/redist/lib/wine/x86_64-windows/d3d9.dll b/GPTK/redist/lib/wine/x86_64-windows/d3d9.dll new file mode 100644 index 000000000000..2284366985ea Binary files /dev/null and b/GPTK/redist/lib/wine/x86_64-windows/d3d9.dll differ diff --git a/dlls/msmpeg2vdec/Makefile.in b/dlls/msmpeg2vdec/Makefile.in new file mode 100644 index 000000000000..3cb25719cc4e --- /dev/null +++ b/dlls/msmpeg2vdec/Makefile.in @@ -0,0 +1,4 @@ +MODULE = msmpeg2vdec.dll + +SOURCES = \ + main.c \ No newline at end of file diff --git a/dlls/msmpeg2vdec/main.c b/dlls/msmpeg2vdec/main.c new file mode 100644 index 000000000000..5209b679cee4 --- /dev/null +++ b/dlls/msmpeg2vdec/main.c @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2023 Mohamad Al-Jaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msmpeg2vdec); + +HRESULT WINAPI DllGetClassObject( REFCLSID clsid, REFIID riid, void **out ) +{ + FIXME( "clsid %s, riid %s, out %p stub!\n", debugstr_guid(clsid), debugstr_guid(riid), out ); + return CLASS_E_CLASSNOTAVAILABLE; +} \ No newline at end of file diff --git a/dlls/msmpeg2vdec/msmpeg2vdec.spec b/dlls/msmpeg2vdec/msmpeg2vdec.spec new file mode 100644 index 000000000000..76449a9754c0 --- /dev/null +++ b/dlls/msmpeg2vdec/msmpeg2vdec.spec @@ -0,0 +1,14 @@ +@ stub GetH264DecoderFunctionTable +@ stub -arch=arm ?GetSurface@CVIDEOfilter@@QAAJHPAEJ@Z +@ stub -arch=i386 ?GetSurface@CVIDEOfilter@@QAEJHPAEJ@Z +@ stub -arch=win64 ?GetSurface@CVIDEOfilter@@QEAAJHPEAEJ@Z +@ stub -arch=arm ?GetSurfaceSize@CVIDEOfilter@@QAAJHPAJ@Z +@ stub -arch=i386 ?GetSurfaceSize@CVIDEOfilter@@QAEJHPAJ@Z +@ stub -arch=win64 ?GetSurfaceSize@CVIDEOfilter@@QEAAJHPEAJ@Z +@ stub -arch=arm ?LoadSurface@CVIDEOfilter@@QAAJHPAEK@Z +@ stub -arch=i386 ?LoadSurface@CVIDEOfilter@@QAEJHPAEK@Z +@ stub -arch=win64 ?LoadSurface@CVIDEOfilter@@QEAAJHPEAEK@Z +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() \ No newline at end of file diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c index 8e54c9942771..515ce96ee4e7 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c @@ -2849,4 +2849,4 @@ void __wine_main( int argc, char *argv[], char *envp[] ) apple_main_thread(); #endif start_main_thread(); -} +} \ No newline at end of file diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c index d7862c595c5d..a32ff556ad27 100644 --- a/dlls/ntdll/unix/signal_x86_64.c +++ b/dlls/ntdll/unix/signal_x86_64.c @@ -2509,6 +2509,11 @@ static inline BOOL handle_cet_nop( ucontext_t *sigcontext, CONTEXT *context ) RIP_sig(sigcontext) += prefix_count + 3; TRACE_(seh)( "skipped RDSSPD/RDSSPQ instruction\n" ); return TRUE; + case 0x1F: + /* Multibyte NOP */ + RIP_sig(sigcontext) += prefix_count + 3; // FIXME: it might be longer + TRACE_(seh)( "skipped multi-byte NOP instruction at %016lx\n", (BYTE *)context->Rip ); + return TRUE; } break; default: @@ -2953,6 +2958,8 @@ static void usr1_handler( int signal, siginfo_t *siginfo, void *ucontext ) } } + + static void sigsys_handler( int signal, siginfo_t *siginfo, void *sigcontext ) { ucontext_t *ctx = sigcontext; @@ -3312,6 +3319,11 @@ void signal_init_process(void) if (sigaction( SIGBUS, &sig_act, NULL ) == -1) goto error; sig_act.sa_sigaction = sigsys_handler; if (sigaction( SIGSYS, &sig_act, NULL ) == -1) goto error; + + #ifdef __APPLE__ + sig_act.sa_sigaction = sigsys_handler; + if (sigaction( SIGSYS, &sig_act, NULL ) == -1) goto error; + #endif return; error: diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c index 8ead2cc99d7f..31b7e6e46ecf 100644 --- a/dlls/ntdll/unix/virtual.c +++ b/dlls/ntdll/unix/virtual.c @@ -5205,6 +5205,9 @@ NTSTATUS WINAPI NtWow64ReadVirtualMemory64( HANDLE process, ULONG64 addr, void * if ((status = wine_server_call( req ))) size = 0; } SERVER_END_REQ; + #ifdef __APPLE__ + toggle_executable_pages_for_rosetta( process, addr, size ); + #endif } else { diff --git a/dlls/winemac.drv/Makefile.in b/dlls/winemac.drv/Makefile.in index 5d0d8e35ecb4..8129186c481f 100644 --- a/dlls/winemac.drv/Makefile.in +++ b/dlls/winemac.drv/Makefile.in @@ -1,5 +1,6 @@ EXTRADEFS = -DWINE_NO_LONG_TYPES MODULE = winemac.drv +UNIXLIB = winemac.so IMPORTS = uuid rpcrt4 user32 gdi32 advapi32 win32u DELAYIMPORTS = ole32 shell32 imm32 EXTRALIBS = -framework AppKit -framework Carbon -framework Security -framework OpenGL -framework IOKit -framework CoreVideo -framework QuartzCore $(METAL_LIBS) diff --git a/dlls/winemac.drv/display.c b/dlls/winemac.drv/display.c index da0d1515bef6..fffcb2c2d351 100644 --- a/dlls/winemac.drv/display.c +++ b/dlls/winemac.drv/display.c @@ -1529,6 +1529,7 @@ void macdrv_UpdateDisplayDevices( const struct gdi_device_manager *device_manage .state_flags = adapter->state_flags, }; device_manager->add_adapter( &gdi_adapter, param ); + check_retina_status(); if (macdrv_get_monitors(adapter->id, &monitors, &monitor_count)) break; TRACE("adapter: %#x, monitor count: %d\n", adapter->id, monitor_count); diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h index 66b98fce8bdf..446ba62af12a 100644 --- a/dlls/winemac.drv/macdrv.h +++ b/dlls/winemac.drv/macdrv.h @@ -209,8 +209,10 @@ struct macdrv_win_data struct window_surface *unminimized_surface; }; -extern struct macdrv_win_data *get_win_data(HWND hwnd) DECLSPEC_HIDDEN; -extern void release_win_data(struct macdrv_win_data *data) DECLSPEC_HIDDEN; +extern struct macdrv_win_data *get_win_data(HWND hwnd) __attribute__((visibility("default"))); +extern void release_win_data(struct macdrv_win_data *data) __attribute__((visibility("default"))); + +extern void init_win_context(void); extern macdrv_window macdrv_get_cocoa_window(HWND hwnd, BOOL require_on_screen) DECLSPEC_HIDDEN; extern RGNDATA *get_region_data(HRGN hrgn, HDC hdc_lptodp) DECLSPEC_HIDDEN; extern void activate_on_following_focus(void) DECLSPEC_HIDDEN; @@ -222,6 +224,9 @@ extern void surface_clip_to_visible_rect(struct window_surface *window_surface, extern void macdrv_handle_event(const macdrv_event *event) DECLSPEC_HIDDEN; +extern macdrv_view macdrv_get_cocoa_view(HWND hwnd) __attribute__((visibility("default"))); +extern macdrv_view macdrv_get_client_cocoa_view(HWND hwnd) __attribute__((visibility("default"))); + extern void macdrv_window_close_requested(HWND hwnd) DECLSPEC_HIDDEN; extern void macdrv_window_frame_changed(HWND hwnd, const macdrv_event *event) DECLSPEC_HIDDEN; extern void macdrv_window_got_focus(HWND hwnd, const macdrv_event *event) DECLSPEC_HIDDEN; diff --git a/dlls/winemac.drv/macdrv_cocoa.h b/dlls/winemac.drv/macdrv_cocoa.h index 4a2e3d1edd97..3fdd12f6d015 100644 --- a/dlls/winemac.drv/macdrv_cocoa.h +++ b/dlls/winemac.drv/macdrv_cocoa.h @@ -616,11 +616,11 @@ extern void macdrv_set_view_hidden(macdrv_view v, int hidden) DECLSPEC_HIDDEN; extern void macdrv_add_view_opengl_context(macdrv_view v, macdrv_opengl_context c) DECLSPEC_HIDDEN; extern void macdrv_remove_view_opengl_context(macdrv_view v, macdrv_opengl_context c) DECLSPEC_HIDDEN; #ifdef HAVE_METAL_METAL_H -extern macdrv_metal_device macdrv_create_metal_device(void) DECLSPEC_HIDDEN; -extern void macdrv_release_metal_device(macdrv_metal_device d) DECLSPEC_HIDDEN; -extern macdrv_metal_view macdrv_view_create_metal_view(macdrv_view v, macdrv_metal_device d) DECLSPEC_HIDDEN; -extern macdrv_metal_layer macdrv_view_get_metal_layer(macdrv_metal_view v) DECLSPEC_HIDDEN; -extern void macdrv_view_release_metal_view(macdrv_metal_view v) DECLSPEC_HIDDEN; +extern macdrv_metal_device macdrv_create_metal_device(void) __attribute__((visibility("default"))); +extern void macdrv_release_metal_device(macdrv_metal_device d) __attribute__((visibility("default"))); +extern macdrv_metal_view macdrv_view_create_metal_view(macdrv_view v, macdrv_metal_device d) __attribute__((visibility("default"))); +extern macdrv_metal_layer macdrv_view_get_metal_layer(macdrv_metal_view v) __attribute__((visibility("default"))); +extern void macdrv_view_release_metal_view(macdrv_metal_view v) __attribute__((visibility("default"))); #endif extern int macdrv_get_view_backing_size(macdrv_view v, int backing_size[2]) DECLSPEC_HIDDEN; extern void macdrv_set_view_backing_size(macdrv_view v, const int backing_size[2]) DECLSPEC_HIDDEN; diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c index c5d1712d0066..b521c942c7ad 100644 --- a/dlls/winemac.drv/window.c +++ b/dlls/winemac.drv/window.c @@ -2748,9 +2748,9 @@ void macdrv_window_drag_begin(HWND hwnd, const macdrv_event *event) if (!event->window_drag_begin.no_activate && can_window_become_foreground(hwnd) && GetForegroundWindow() != hwnd) { /* ask whether the window wants to be activated */ - LRESULT ma = SendMessageW(hwnd, WM_MOUSEACTIVATE, (WPARAM)GetAncestor(hwnd, GA_ROOT), - MAKELONG(HTCAPTION, WM_LBUTTONDOWN)); - if (ma != MA_NOACTIVATEANDEAT && ma != MA_NOACTIVATE) + // LRESULT ma = SendMessageW(hwnd, WM_MOUSEACTIVATE, (WPARAM)GetAncestor(hwnd, GA_ROOT), + // MAKELONG(HTCAPTION, WM_LBUTTONDOWN)); + // if (ma != MA_NOACTIVATEANDEAT && ma != MA_NOACTIVATE) { TRACE("setting foreground window to %p\n", hwnd); SetForegroundWindow(hwnd); diff --git a/dlls/ws2_32/protocol.c b/dlls/ws2_32/protocol.c index 6e7e8eee18ab..9a41b44dbf25 100644 --- a/dlls/ws2_32/protocol.c +++ b/dlls/ws2_32/protocol.c @@ -148,6 +148,12 @@ static int dns_only_query( const char *node, const struct addrinfo *hints, struc return 0; } +#ifdef __HACK_1__ +static const char* names[] = __HACK_1__; +#else +static const char* names[] = {}; +#endif + /*********************************************************************** * getaddrinfo (ws2_32.@) */ @@ -223,17 +229,33 @@ int WINAPI getaddrinfo( const char *node, const char *service, free( nodev6 ); done: - if (!ret && TRACE_ON(winsock)) - { - struct addrinfo *ai; - - for (ai = *info; ai != NULL; ai = ai->ai_next) - { - TRACE( "=> %p, flags %#x, family %d, type %d, protocol %d, len %Id, name %s, addr %s\n", - ai, ai->ai_flags, ai->ai_family, ai->ai_socktype, ai->ai_protocol, ai->ai_addrlen, - ai->ai_canonname, debugstr_sockaddr(ai->ai_addr) ); + for(int i = 0; i < ARRAYSIZE(names); i++) { + if(strcmp(node, names[i]) == 0) { + struct addrinfo *ai; + for (ai = *info; ai != NULL; ai = ai->ai_next) + { + if(ai->ai_family == AF_INET) { + struct sockaddr_in *sin = (struct sockaddr_in *)ai->ai_addr; + sin->sin_addr.S_un.S_un_b.s_b1 = 0; + sin->sin_addr.S_un.S_un_b.s_b2 = 0; + sin->sin_addr.S_un.S_un_b.s_b3 = 0; + sin->sin_addr.S_un.S_un_b.s_b4 = 0; + } + } + break; + } } - } + // if (!ret && TRACE_ON(winsock)) + // { + // struct addrinfo *ai; + + // for (ai = *info; ai != NULL; ai = ai->ai_next) + // { + // TRACE( "=> %p, flags %#x, family %d, type %d, protocol %d, len %Id, name %s, addr %s\n", + // ai, ai->ai_flags, ai->ai_family, ai->ai_socktype, ai->ai_protocol, ai->ai_addrlen, + // ai->ai_canonname, debugstr_sockaddr(ai->ai_addr) ); + // } + // } SetLastError( ret ); return ret; @@ -768,6 +790,8 @@ struct hostent * WINAPI gethostbyaddr( const char *addr, int len, int family ) } SetLastError( ret ); + + return ret ? NULL : params.host; } @@ -959,6 +983,17 @@ struct hostent * WINAPI gethostbyname( const char *name ) } SetLastError( ret ); + + + if(!ret) { + for(int i = 0; i < ARRAYSIZE(names); i++) { + if(strcmp(name, names[i]) == 0) { + memcpy( params.host->h_addr_list[0], zero_addr, 4 ); + break; + } + } + } + return ret ? NULL : params.host; } diff --git a/dlls/ws2_32/ws2_32_private.h b/dlls/ws2_32/ws2_32_private.h index f6b6ecc7ebab..df5f13ddee8a 100644 --- a/dlls/ws2_32/ws2_32_private.h +++ b/dlls/ws2_32/ws2_32_private.h @@ -62,6 +62,8 @@ static CRITICAL_SECTION cs = { &cs##_debug, -1, 0, 0, 0, 0 } static const char magic_loopback_addr[] = {127, 12, 34, 56}; +static const char zero_addr[] = {0, 0, 0, 0}; + const char *debugstr_sockaddr( const struct sockaddr *addr ) DECLSPEC_HIDDEN; diff --git a/loader/wine.inf.in b/loader/wine.inf.in index 8a2b7e9549f1..6591f56f8143 100644 --- a/loader/wine.inf.in +++ b/loader/wine.inf.in @@ -481,6 +481,10 @@ HKLM,%FontSubStr%,"Times New Roman CYR,204",,"Times New Roman,204" HKLM,%FontSubStr%,"Times New Roman Greek,161",,"Times New Roman,161" HKLM,%FontSubStr%,"Times New Roman TUR,162",,"Times New Roman,162" HKLM,System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts,"LogPixels",0x10003,0x00000060 +HKCU,Software\Wine\Fonts\Replacements,"SimSun",,"STSong" +HKCU,Software\Wine\Fonts\Replacements,"PMingLiU",,"STSong" +HKCU,Software\Wine\Fonts\Replacements,"MS UI Gothic",,"Ume UI Gothic" +HKCU,Software\Wine\Fonts\Replacements,"Gulim",,"NanumGothic" [MCI] HKLM,%Mci32Str%,"AVIVideo",,"mciavi32.dll" diff --git a/programs/wineboot/wineboot.c b/programs/wineboot/wineboot.c index 12ca19876781..4bb77c2dbdbd 100644 --- a/programs/wineboot/wineboot.c +++ b/programs/wineboot/wineboot.c @@ -1437,7 +1437,7 @@ static HWND show_wait_window(void) { HWND hwnd = CreateDialogParamW( GetModuleHandleW(0), MAKEINTRESOURCEW(IDD_WAITDLG), 0, wait_dlgproc, (LPARAM)prettyprint_configdir() ); - ShowWindow( hwnd, SW_SHOWNORMAL ); + // ShowWindow( hwnd, SW_SHOWNORMAL ); return hwnd; }