Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation error on CPAN @ Windows 10 #144

Open
studenttwok opened this issue Dec 13, 2016 · 8 comments
Open

Compilation error on CPAN @ Windows 10 #144

studenttwok opened this issue Dec 13, 2016 · 8 comments
Labels
portability This issue is platform/architecture specific.

Comments

@studenttwok
Copy link

studenttwok commented Dec 13, 2016

Hi everyone,

I try to compile the module in CPAN myself.
I am running Windows 10 x64 with Strawberry Perl 5.20.3 x86 with 64int support.

I found the only thing that realted to windows is this issue:
#50
which, I hope the situation changed now...

Anyway, this is the compile log in CPAN and since I have not enough knowledge on gcc compile, i just can stop here.
Can anyone give me a hand on that?

I have attached my modified makefile.pl and the generated makfile for reference.
Makefile.zip

Thank you so much.

==========
`

cpan> make Net::AMQP::RabbitMQ
Running make for module 'Net::AMQP::RabbitMQ'
  MARKELLIS/Net-AMQP-RabbitMQ-2.30000.tar.gz
  Has already been unwrapped into directory C:\STRAWB~1\cpan\build\Net-AMQP-RabbitMQ-2.30000-utT3wX
Configuring M/MA/MARKELLIS/Net-AMQP-RabbitMQ-2.30000.tar.gz with Makefile.PL
Warning (mostly harmless): No library found for -lrt
Warning (mostly harmless): No library found for -lssl
Warning (mostly harmless): No library found for -lcrypto
Generating a dmake-style Makefile
Writing Makefile for Net::AMQP::RabbitMQ
"\x{0107}" does not map to cp950 at C:/Strawberry/perl/lib/ExtUtils/MakeMaker.pm line 1180.
"\x{0107}" does not map to cp950 at C:/Strawberry/perl/lib/ExtUtils/MakeMaker.pm line 1180.
"\x{0107}" does not map to cp950 at C:/Strawberry/perl/lib/ExtUtils/MakeMaker.pm line 1180.
Writing MYMETA.yml and MYMETA.json
  MARKELLIS/Net-AMQP-RabbitMQ-2.30000.tar.gz
  C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK
Running make for M/MA/MARKELLIS/Net-AMQP-RabbitMQ-2.30000.tar.gz
cp RabbitMQ.pm blib\lib\Net\AMQP\RabbitMQ.pm
Running Mkbootstrap for Net::AMQP::RabbitMQ ()
"C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "RabbitMQ.bs"
"C:\Strawberry\perl\bin\perl.exe" "C:\Strawberry\perl\lib\ExtUtils\xsubpp"  -typemap "C:\STRAWB~1\perl\lib\ExtUtils\typemap" -typemap "typemap"  RabbitMQ.xs > RabbitMQ.xsc && "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e mv -- RabbitMQ.xsc RabbitMQ.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL RabbitMQ.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_api.c
amqp_api.c:169:20: warning: 'amqp_empty_bytes' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
 const amqp_bytes_t amqp_empty_bytes = { 0, NULL };
                    ^
amqp_api.c:170:20: warning: 'amqp_empty_table' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
 const amqp_table_t amqp_empty_table = { 0, NULL };
                    ^
amqp_api.c:171:20: warning: 'amqp_empty_array' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
 const amqp_array_t amqp_empty_array = { 0, NULL };
                    ^
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_connection.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_consumer.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_framing.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_hostcheck.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_mem.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_openssl.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_socket.c
amqp_socket.c: In function 'amqp_os_socket_setsockblock':
amqp_socket.c:157:3: warning: passing argument 3 of 'ioctlsocket' from incompatible pointer type [enabled by default]
   if (NO_ERROR != ioctlsocket(sock, FIONBIO, &nonblock)) {
   ^
In file included from rabbitmq-include/amqp_private.h:60:0,
                 from amqp_socket.c:45:
C:/Strawberry/c/i686-w64-mingw32/include/Winsock2.h:977:34: note: expected 'u_long *' but argument is of type 'int *'
   WINSOCK_API_LINKAGE int WSAAPI ioctlsocket(SOCKET s,__LONG32 cmd,u_long *argp);
                                  ^
amqp_socket.c: In function 'amqp_login_inner':
amqp_socket.c:1303:53: warning: character constant too long for its type [enabled by default]
         amqp_table_construct_utf8_entry("platform", AMQ_PLATFORM);
                                                     ^
amqp_socket.c:1303:9: warning: passing argument 2 of 'amqp_table_construct_utf8_entry' makes pointer from integer without a cast [enabled by default]
         amqp_table_construct_utf8_entry("platform", AMQ_PLATFORM);
         ^
In file included from amqp_socket.c:47:0:
rabbitmq-include/amqp_table.h:45:20: note: expected 'const char *' but argument is of type 'int'
 amqp_table_entry_t amqp_table_construct_utf8_entry(const char *key,
                    ^
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_table.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_tcp_socket.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_time.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL amqp_url.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL perl_math_int64.c
gcc -c  -I. -Irabbitmq-include -ID:/Software/openssl-0.9.8/include -Irabbitmq-include/win32     -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2     -DVERSION=\"2.30000\"         -DXS_VERSION=\"2.30000\"  "-IC:\STRAWB~1\perl\lib\CORE"  -DHAVE_SOCKET -DHAVE_SELECT -DAMQ_PLATFORM='"Perl_MSWin32_v5.20.3"' -DNAR_HAVE_OPENSSL threads.c
threads.c: In function 'pthread_mutex_init':
threads.c:35:12: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
   *mutex = malloc(sizeof(CRITICAL_SECTION));
            ^
"C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Mksymlists \
     -e "Mksymlists('NAME'=>\"Net::AMQP::RabbitMQ\", 'DLBASE' => 'RabbitMQ', 'DL_FUNCS' => {  }, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
dlltool --def RabbitMQ.def --output-exp dll.exp
g++ -o blib\arch\auto\Net\AMQP\RabbitMQ\RabbitMQ.xs.dll -Wl,--base-file -Wl,dll.base -mdll -s -L"C:\STRAWB~1\perl\lib\CORE" -L"C:\STRAWB~1\c\lib" RabbitMQ.o amqp_api.o amqp_connection.o amqp_consumer.o amqp_framing.o amqp_hostcheck.o amqp_mem.o amqp_openssl.o amqp_socket.o amqp_table.o amqp_tcp_socket.o amqp_time.o amqp_url.o perl_math_int64.o threads.o   "C:\STRAWB~1\perl\lib\CORE\libperl520.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libmoldname.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libkernel32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libuser32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libgdi32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libwinspool.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libcomdlg32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libadvapi32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libshell32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libole32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\liboleaut32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libnetapi32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libuuid.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libws2_32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libmpr.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libwinmm.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libversion.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libodbc32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libodbccp32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libcomctl32.a" dll.exp
RabbitMQ.o:RabbitMQ.c:(.text+0x2902): undefined reference to `_imp__amqp_empty_table'
RabbitMQ.o:RabbitMQ.c:(.text+0x2a13): undefined reference to `_imp__amqp_empty_bytes'
RabbitMQ.o:RabbitMQ.c:(.text+0x62f7): undefined reference to `_imp__amqp_empty_bytes'
RabbitMQ.o:RabbitMQ.c:(.text+0x75af): undefined reference to `_imp__amqp_empty_table'
RabbitMQ.o:RabbitMQ.c:(.text+0x82a2): undefined reference to `_imp__amqp_empty_table'
RabbitMQ.o:RabbitMQ.c:(.text+0x8732): undefined reference to `_imp__amqp_empty_table'
RabbitMQ.o:RabbitMQ.c:(.text+0x8b51): undefined reference to `_imp__amqp_empty_table'
RabbitMQ.o:RabbitMQ.c:(.text+0x8b63): undefined reference to `_imp__amqp_empty_bytes'
RabbitMQ.o:RabbitMQ.c:(.text+0x9432): undefined reference to `_imp__amqp_empty_table'
RabbitMQ.o:RabbitMQ.c:(.text+0x98c2): undefined reference to `_imp__amqp_empty_table'
RabbitMQ.o:RabbitMQ.c:(.text+0x9cc5): undefined reference to `_imp__amqp_empty_table'
C:/Strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw32/bin/ld.exe: RabbitMQ.o: bad reloc address 0x870 in section `.rdata'
C:/Strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.8.3/../../../../i686-w64-mingw32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
dmake.exe:  Error code 129, while making 'blib\arch\auto\Net\AMQP\RabbitMQ\RabbitMQ.xs.dll'
  MARKELLIS/Net-AMQP-RabbitMQ-2.30000.tar.gz
  C:\STRAWB~1\c\bin\dmake.exe -- NOT OK
Stopping: 'make' failed for 'Net::AMQP::RabbitMQ'.
Failed during this command:
 MARKELLIS/Net-AMQP-RabbitMQ-2.30000.tar.gz   : make NO

                                                                                                                                                                                                                                             cpan>

==========

Thank you again!

@markwellis
Copy link
Contributor

Sorry, windows is not something we've ever tested on, and as such isn't supported.

If you manage to get it working, please send us patches.

Thanks

@studenttwok
Copy link
Author

It is not good to "close" this issue without solving it, since others may want to get involded but being discouraged in this "closed" issue.

Anyway, I make it and would like to contirbute back.
[Net_AMQP_RabbitMQ_2.3_patch.zip]
(https://github.com/net-amqp-rabbitmq/net-amqp-rabbitmq/files/656868/Net_AMQP_RabbitMQ_2.3_patch.zip)

I am running Windows 10 x64 with Strawberry Perl 5.20.3 x86 with 64int support.

How to use:
Obtain a copy of Net::AMQP::RabbitMQ 2.3 from CPAN by using "get Net::AMQP::RabbitMQ"
Replace the files at C:\Strawberry\cpan\build\Net-AMQP-RabbitMQ-2.30000-X\ with those extracted from the zip file.
Then compile it with "make Net::AMQP::RabbitMQ" and install with "install Net::AMQP::RabbitMQ".

OpenSSL is not supported yet since I am really miss the compilation skils.
I hope that you can reopen the issue and see if others and help on making openSSL supported in the furutre release.

Thanks for your great work anyway.

@markwellis markwellis reopened this Dec 16, 2016
@pwr22
Copy link

pwr22 commented May 3, 2017

@studenttwok this was very useful to me getting a build working on Windows. I'll be putting together a pull request to bring it in, in the next couple of days

@manchicken
Copy link
Contributor

@studenttwok @pwr22 Is this still a problem?

@twata1
Copy link

twata1 commented May 3, 2020

Hello,

I created patches on Strawberry Perl 5.30.0 64bit for Net::AMQP::RabbitMQ 2.40007 referring to @studenttwok's Net_AMQP_RabbitMQ_2.3_patch.zip.

Currently, It seems to me that t/033_fork.t causes perl interpreter crashes.
However, i hope these patches will start further improvements.

Thank you,

Net-AMQP-RabbitMQ-2.40007-gh144-Makefile.PL.patch.txt
Net-AMQP-RabbitMQ-2.40007-gh144-033_fork.t.patch.txt

@twata1
Copy link

twata1 commented May 3, 2020

Here is a Build.log under Strawberry Perl 5.30.0 64bit on Windows 8.1 64bit.
Build.log

There is also a log file of test results here.
test.log

@manchicken
Copy link
Contributor

manchicken commented May 3, 2020 via email

@studenttwok
Copy link
Author

studenttwok commented Apr 17, 2023

@studenttwok this was very useful to me getting a build working on Windows. I'll be putting together a pull request to bring it in, in the next couple of days

Sorry for late reply @manchicken. I make some changes to make it work at V2.40010
Here you are.
#239

@manchicken manchicken added the portability This issue is platform/architecture specific. label Jul 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
portability This issue is platform/architecture specific.
Projects
None yet
Development

No branches or pull requests

5 participants