sj26 / mailcatcher

Catches mail and serves it through a dream.
http://mailcatcher.me
MIT License
6.5k stars 583 forks source link

Eventmachine fails to compile on Windows #542

Open stell opened 1 year ago

stell commented 1 year ago

Using Ruby 3.2.2 on windows.

Also tried gem install mailcatcher --version=0.9.0.beta2

Something missing?

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.20230615-11244-931meo sitelibdir\=./.gem.20230615-11244-931meo clean

current directory: C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/eventmachine-1.0.9.1/ext/fastfilereader
make DESTDIR\= sitearchdir\=./.gem.20230615-11244-931meo sitelibdir\=./.gem.20230615-11244-931meo
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
milesclark0 commented 1 year ago

I am having this same issue on windows. Is this resolved?

stell commented 1 year ago

nope

sj26 commented 1 year ago

v0.9.0 is out -- please give it a go:

gem install mailcatcher

Re-open if you continue having issues.

stell commented 1 year ago

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>
sj26 commented 1 year ago

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.

sj26 commented 1 year ago

Please try the new pre-release v0.9.1.beta1:

gem install mailcatcher -v 0.9.1.beta1
MSP-Greg commented 1 year ago

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

sj26 commented 1 year ago

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:

https://github.com/sj26/mailcatcher/actions/runs/5704333930

MSP-Greg commented 1 year ago

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...

MSP-Greg commented 1 year ago

@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?

MSP-Greg commented 1 year ago

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}
MSP-Greg commented 1 year ago

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...

stell commented 1 year ago

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>
sj26 commented 1 year ago

Darn. I've pushed a commit which avoids binding SIGQUIT on windows and released v0.9.1.beta2. Give it a go?

stell commented 1 year ago

Whoo-hoo! Thank you for your efforts.