Open stell opened 1 year ago
I am having this same issue on windows. Is this resolved?
nope
v0.9.0 is out -- please give it a go:
gem install mailcatcher
Re-open if you continue having issues.
No change:
c:\Ruby32-x64>gem install mailcatcher --no-update-sources --no-document
Fetching mailcatcher-0.9.0.gem
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
ERROR: Error installing mailcatcher:
ERROR: Failed to build gem native extension.
current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
C:/Ruby32-x64/bin/ruby.exe extconf.rb
creating Makefile
current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
make DESTDIR\= sitearchdir\=./.gem.20230729-22868-6ls37f sitelibdir\=./.gem.20230729-22868-6ls37f clean
current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
make DESTDIR\= sitearchdir\=./.gem.20230729-22868-6ls37f sitelibdir\=./.gem.20230729-22868-6ls37f
generating fastfilereaderext-x64-mingw-ucrt.def
compiling mapper.cpp
compiling rubymain.cpp
In file included from C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:8,
from C:/Ruby32-x64/msys64/ucrt64/include/winscard.h:10,
from C:/Ruby32-x64/msys64/ucrt64/include/windows.h:97,
from C:/Ruby32-x64/msys64/ucrt64/include/winsock2.h:23,
from C:/Ruby32-x64/include/ruby-3.2.0/ruby/win32.h:36,
from C:/Ruby32-x64/include/ruby-3.2.0/ruby/internal/dosish.h:38,
from C:/Ruby32-x64/include/ruby-3.2.0/ruby/defines.h:78,
from C:/Ruby32-x64/include/ruby-3.2.0/ruby/ruby.h:25,
from C:/Ruby32-x64/include/ruby-3.2.0/ruby.h:38,
from rubymain.cpp:26:
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:64:11: error: reference to 'byte' is ambiguous
64 | typedef byte cs_byte;
| ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/string:42,
from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/locale_classes.h:40,
from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/ios_base.h:41,
from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/ios:42,
from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/ostream:38,
from C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/iostream:39,
from rubymain.cpp:22:
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:397:170: error: reference to 'byte' is ambiguous
397 | typedef void (__RPC_API *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,void *pLocalData,unsigned __LONG32 ulLocalDataLength,byte *pNetworkData,unsigned __LONG32 *pulNetworkDataLength,error_status_t *pStatus);
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:397:170: error: 'byte' has not been declared
397 | typedef void (__RPC_API *CS_TYPE_TO_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,void *pLocalData,unsigned __LONG32 ulLocalDataLength,byte *pNetworkData,unsigned __LONG32 *pulNetworkDataLength,error_status_t *pStatus);
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:398:119: error: reference to 'byte' is ambiguous
398 | typedef void (__RPC_API *CS_TYPE_FROM_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,byte *pNetworkData,unsigned __LONG32 ulNetworkDataLength,unsigned __LONG32 ulLocalBufferSize,void *pLocalData,unsigned __LONG32 *pulLocalDataLength,error_status_t *pStatus);
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:398:119: error: 'byte' has not been declared
398 | typedef void (__RPC_API *CS_TYPE_FROM_NETCS_ROUTINE)(RPC_BINDING_HANDLE hBinding,unsigned __LONG32 ulNetworkCodeSet,byte *pNetworkData,unsigned __LONG32 ulNetworkDataLength,unsigned __LONG32 ulLocalBufferSize,void *pLocalData,unsigned __LONG32 *pulLocalDataLength,error_status_t *pStatus);
| ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/combaseapi.h:153,
from C:/Ruby32-x64/msys64/ucrt64/include/objbase.h:14,
from C:/Ruby32-x64/msys64/ucrt64/include/ole2.h:17,
from C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:13:
C:/Ruby32-x64/msys64/ucrt64/include/wtypesbase.h:327:5: error: reference to 'byte' is ambiguous
327 | byte abData[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypesbase.h:349:5: error: reference to 'byte' is ambiguous
349 | byte abData[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypesbase.h:364:5: error: reference to 'byte' is ambiguous
364 | byte *pData;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/combaseapi.h:155:
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2001:5: error: reference to 'byte' is ambiguous
2001 | byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2001:5: error: 'byte' has not been declared
2001 | byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2011:11: error: reference to 'byte' is ambiguous
2011 | const byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2026:5: error: reference to 'byte' is ambiguous
2026 | byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2026:5: error: 'byte' has not been declared
2026 | byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidlbase.h:2036:11: error: reference to 'byte' is ambiguous
2036 | const byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/unknwn.h:55,
from C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:767,
from C:/Ruby32-x64/msys64/ucrt64/include/objbase.h:66:
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:54:5: error: reference to 'byte' is ambiguous
54 | byte data[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:62:5: error: reference to 'byte' is ambiguous
62 | byte data[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:67:5: error: reference to 'byte' is ambiguous
67 | byte data[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:71:5: error: reference to 'byte' is ambiguous
71 | byte data[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:76:5: error: reference to 'byte' is ambiguous
76 | byte data[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:81:5: error: reference to 'byte' is ambiguous
81 | byte data[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/wtypes.h:307:5: error: reference to 'byte' is ambiguous
307 | byte pBuffer[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8453:9: error: reference to 'byte' is ambiguous
8453 | byte *pbData,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8453:9: error: 'byte' has not been declared
8453 | byte *pbData,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8961:5: error: reference to 'byte' is ambiguous
8961 | byte *reserved1,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8961:5: error: 'byte' has not been declared
8961 | byte *reserved1,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8985:5: error: reference to 'byte' is ambiguous
8985 | byte *reserved2,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:8985:5: error: 'byte' has not been declared
8985 | byte *reserved2,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9004:5: error: reference to 'byte' is ambiguous
9004 | byte *reserved1,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9004:5: error: 'byte' has not been declared
9004 | byte *reserved1,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9030:5: error: reference to 'byte' is ambiguous
9030 | byte *reserved2,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9030:5: error: 'byte' has not been declared
9030 | byte *reserved2,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9485:5: error: reference to 'byte' is ambiguous
9485 | byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9485:5: error: 'byte' has not been declared
9485 | byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9496:11: error: reference to 'byte' is ambiguous
9496 | const byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9513:5: error: reference to 'byte' is ambiguous
9513 | byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9513:5: error: 'byte' has not been declared
9513 | byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9525:11: error: reference to 'byte' is ambiguous
9525 | const byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:9933:5: error: reference to 'byte' is ambiguous
9933 | byte data[1];
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11398:11: error: reference to 'byte' is ambiguous
11398 | const byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11409:11: error: reference to 'byte' is ambiguous
11409 | const byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11424:11: error: reference to 'byte' is ambiguous
11424 | const byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/objidl.h:11436:11: error: reference to 'byte' is ambiguous
11436 | const byte *pv,
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
In file included from C:/Ruby32-x64/msys64/ucrt64/include/msxml.h:311,
from C:/Ruby32-x64/msys64/ucrt64/include/urlmon.h:458,
from C:/Ruby32-x64/msys64/ucrt64/include/objbase.h:163:
C:/Ruby32-x64/msys64/ucrt64/include/oaidl.h:587:5: error: reference to 'byte' is ambiguous
587 | byte *pRecord;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/c++/12.2.0/bits/cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:/Ruby32-x64/msys64/ucrt64/include/rpcndr.h:63:25: note: 'typedef unsigned char byte'
63 | typedef unsigned char byte;
| ^~~~
make: *** [Makefile:240: rubymain.o] Fehler 1
make failed, exit code 2
Gem files will remain installed in C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1 for inspection.
Results logged to C:/Ruby32-x64/lib/ruby/gems/3.2.0/extensions/x64-mingw-ucrt/3.2.0/eventmachine-1.0.9.1/gem_make.out
c:\Ruby32-x64>
Ok, thanks. This is likely due to the old version of eventmachine. Maybe fixable via an upgrade (#546). But upgrading has had issues in the past. I'll take a look.
Please try the new pre-release v0.9.1.beta1:
gem install mailcatcher -v 0.9.1.beta1
See https://github.com/eventmachine/eventmachine/pull/970
Windows Ruby 3.1 & 3.2 are using OpenSSL 3, also newer Rubies on Ubuntu 22.04
Interesting. I tried getting CI on GitHub Actions running on Windows and it looks like it's refusing to use the compiled eventmachine extensions there:
Yes. eventmachine-1.2.7-x64-mingw32 was not properly built. It only contains *.so files for Ruby 2.0 thru 2.3, and the gem has no required_ruby_version
constraints.
So, RubyGems thinks it's a valid gem for any mingw Ruby. Also, as of Ruby 3.1, Windows Rubies are 'ucrt` builds, which are different than 'mingw'.
Note that Nokogiri has both version (\<vers>-x64-mingw-ucrt and \<vers>-x64-mingw32).
And, to make things more interesting, Windows Ruby 3.1 is built with OpenSSL 1.1.1, and 3.2 is built with OpenSSL 3.1.0. JFYI, see more info at the latest CI run, the 'Ruby Info' step in each job.
Anyway, as I mentioned in #546, using EventMachine with Windows Rubies is a mess, and almost impossible to deal with in a gemspec. Maybe in the Gemfile...
@sj26
Ok, I've got a branch with four commits. It compiles on all OS's. It adds EventMachine from https://github.com/eventmachine/eventmachine/pull/970 to the Gemfile, as below:
gem 'eventmachine', github: 'https://github.com/eventmachine/eventmachine/pull/970'
CI passes for both Ubuntu and macOS, but Windows hangs. I don't recall seeing Windows CI for any repo using Capybara/Selenium. But, EM does compile for Windows. Not sure what the issue is, could be fork
, which is unavailable on Windows?
Made changes in another branch, got it to start the CI, then hit:
D:/a/mailcatcher/mailcatcher/lib/mail_catcher.rb:193:in `trap': unsupported signal `SIGQUIT' (ArgumentError)
trap(signal) { EM.add_timer(0) { quit! } }
^^^^^^
from D:/a/mailcatcher/mailcatcher/lib/mail_catcher.rb:193:in `block (2 levels) in run!'
from D:/a/mailcatcher/mailcatcher/lib/mail_catcher.rb:192:in `each'
from D:/a/mailcatcher/mailcatcher/lib/mail_catcher.rb:192:in `block in run!'
On my Windows 11 system with Ruby master:
> ruby -e 'puts Signal.list'
{"EXIT"=>0, "INT"=>2, "ILL"=>4, "ABRT"=>22, "FPE"=>8, "KILL"=>9, "SEGV"=>11, "TERM"=>15}
The other branch is 00-windows in my fork. Made a few changes, the CI run is here.
Notice the log here, which shows several messages Terminate batch job (Y/N)?
. Windows may ask for confirmation, never checked if it can be disabled.
I work with Puma, and its tests often start a server in a sub-process, and we never found a way to stop the process via a signal.
The CI run did save a log artifact, maybe the screen grabs show any info about whether the tests are working?
Of course, Ubuntu & macOS are passing tests...
Installing mailcatcher was now successful, but not running:
c:\Ruby32-x64>gem install mailcatcher --version=0.9.1.beta1 --no-update-sources --no-document
Fetching eventmachine-1.2.7.gem
Fetching mailcatcher-0.9.1.beta1.gem
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
Successfully installed eventmachine-1.2.7
Successfully installed daemons-1.4.1
Building native extensions. This could take a while...
Successfully installed thin-1.8.2
Successfully installed sqlite3-1.6.3-x64-mingw-ucrt
Successfully installed tilt-2.2.0
Successfully installed rack-protection-1.5.5
Successfully installed sinatra-1.4.8
Successfully installed mini_mime-1.1.2
Successfully installed mail-2.8.1
Successfully installed websocket-extensions-0.1.5
Building native extensions. This could take a while...
Successfully installed websocket-driver-0.7.6
Successfully installed faye-websocket-0.11.3
Successfully installed mailcatcher-0.9.1.beta1
13 gems installed
c:\Ruby32-x64>mailcatcher
Starting MailCatcher v0.9.1.beta1
==> smtp://127.0.0.1:1025
==> http://127.0.0.1:1080
C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:197:in `trap': unsupported signal `SIGQUIT' (ArgumentError)
trap(signal) { EM.add_timer(0) { quit! } }
^^^^^^
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:197:in `block (2 levels) in run!'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:196:in `each'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:196:in `block in run!'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run_machine'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.2.7/lib/eventmachine.rb:195:in `run'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/lib/mail_catcher.rb:180:in `run!'
from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mailcatcher-0.9.1.beta1/bin/mailcatcher:6:in `<top (required)>'
from C:/Ruby32-x64/bin/mailcatcher:32:in `load'
from C:/Ruby32-x64/bin/mailcatcher:32:in `<main>'
c:\Ruby32-x64>
Darn. I've pushed a commit which avoids binding SIGQUIT on windows and released v0.9.1.beta2. Give it a go?
Whoo-hoo! Thank you for your efforts.
Using Ruby 3.2.2 on windows.
Also tried
gem install mailcatcher --version=0.9.0.beta2
Something missing?