Noxalus / Multi-Streaming-Server

A NGINX server with RTMP module to send video streaming to multiple services simultaneously (Youtube, Twitch, Dailymotion, Hitbox, Beam, etc...).
173 stars 41 forks source link

./bootstrap.sh fails #16

Open sangimed opened 5 years ago

sangimed commented 5 years ago

EDIT : NB : I obviously replaced everything between curly braces in the configuration file.

Hello,

I tried to execute chmod +x bootstrap.sh && ./bootstrap.sh but always ends as follow :

cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_file.o \
        src/core/ngx_file.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_crc32.o \
        src/core/ngx_crc32.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_murmurhash.o \
        src/core/ngx_murmurhash.c
src/core/ngx_murmurhash.c: In function ‘ngx_murmur_hash2’:
src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[2] << 16;
         ~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: note: here
     case 2:
     ^~~~
src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[1] << 8;
         ~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: note: here
     case 1:
     ^~~~
cc1: all warnings being treated as errors
objs/Makefile:524: recipe for target 'objs/src/core/ngx_murmurhash.o' failed
make[1]: *** [objs/src/core/ngx_murmurhash.o] Error 1
make[1]: Leaving directory '/home/imsbros/Multi-Streaming-Server/nginx-1.9.5'
Makefile:8: recipe for target 'build' failed
make: *** [build] Error 2
make -f objs/Makefile install
make[1]: Entering directory '/home/imsbros/Multi-Streaming-Server/nginx-1.9.5'
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_murmurhash.o \
        src/core/ngx_murmurhash.c
src/core/ngx_murmurhash.c: In function ‘ngx_murmur_hash2’:
src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[2] << 16;
         ~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: note: here
     case 2:
     ^~~~
src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[1] << 8;
         ~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: note: here
     case 1:
     ^~~~
cc1: all warnings being treated as errors
objs/Makefile:524: recipe for target 'objs/src/core/ngx_murmurhash.o' failed
make[1]: *** [objs/src/core/ngx_murmurhash.o] Error 1
make[1]: Leaving directory '/home/imsbros/Multi-Streaming-Server/nginx-1.9.5'
Makefile:12: recipe for target 'install' failed
make: *** [install] Error 2
Start Nginx service
/usr/local/nginx/script/restart.sh: line 9: nginx: command not found
/usr/local/nginx/script/restart.sh: line 12: /usr/sbin/nginx: No such file or directory
Error: Nginx's configuration file contains some errors.
Start Nginx config file monitoring
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: server.js
Noxalus commented 5 years ago

Hello,

Can you tell me which version of Vagrant and Virtual Box you use?

EDIT: FYI, I've just tested a clean provisioning with Vagrant 2.0.2 and Virtual Box 5.2.4r119785 and it's working as expected!

sangimed commented 5 years ago

Hello,

Can you tell me which version of Vagrant and Virtual Box you use?

EDIT: FYI, I've just tested a clean provisioning with Vagrant 2.0.2 and Virtual Box 5.2.4r119785 and it's working as expected!

I'm not using any virtualization as I'm on a ubuntu server dedicated machine. I followed this wiki https://github.com/Noxalus/Multi-Streaming-Server/wiki/How-to-install-on-a-dedicated-server

Noxalus commented 5 years ago

Which version of Ubuntu do you use?

sangimed commented 5 years ago

Which version of Ubuntu do you use?

I use ubuntu server 18.04.1 LTS

imsbros@sn4ke:~/Multi-Streaming-Server$ more /etc/*-release
::::::::::::::
/etc/lsb-release
::::::::::::::
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
sangimed commented 5 years ago

I don't know if it helps but I tried to do each part of the shell script separately and I figured out that it fails at the make command :

imsbros@sn4ke:~/Multi-Streaming-Server/nginx-1.9.5$ make
make -f objs/Makefile
make[1]: Entering directory '/home/imsbros/Multi-Streaming-Server/nginx-1.9.5'
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/nginx.o \
        src/core/nginx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_log.o \
        src/core/ngx_log.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_palloc.o \
        src/core/ngx_palloc.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_array.o \
        src/core/ngx_array.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_list.o \
        src/core/ngx_list.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_hash.o \
        src/core/ngx_hash.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_buf.o \
        src/core/ngx_buf.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_queue.o \
        src/core/ngx_queue.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_output_chain.o \
        src/core/ngx_output_chain.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_string.o \
        src/core/ngx_string.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_parse.o \
        src/core/ngx_parse.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_parse_time.o \
        src/core/ngx_parse_time.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_inet.o \
        src/core/ngx_inet.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_file.o \
        src/core/ngx_file.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_crc32.o \
        src/core/ngx_crc32.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I../nginx-rtmp-module-1.2.1 -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
        -o objs/src/core/ngx_murmurhash.o \
        src/core/ngx_murmurhash.c
src/core/ngx_murmurhash.c: In function ‘ngx_murmur_hash2’:
src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[2] << 16;
         ~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: note: here
     case 2:
     ^~~~
src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[1] << 8;
         ~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: note: here
     case 1:
     ^~~~
cc1: all warnings being treated as errors
objs/Makefile:524: recipe for target 'objs/src/core/ngx_murmurhash.o' failed
make[1]: *** [objs/src/core/ngx_murmurhash.o] Error 1
make[1]: Leaving directory '/home/imsbros/Multi-Streaming-Server/nginx-1.9.5'
Makefile:8: recipe for target 'build' failed
make: *** [build] Error 2
Noxalus commented 5 years ago

The VM uses Ubuntu Xenial (16.04 LTS), and my personal dedicated server is also an Ubuntu 16.06.

The error seems to be related to a failure during the nginx compilation needed to include the RTMP plugin. As the environment is different, maybe the gcc version has been updated and doesn't support some specific C syntax :/ I will try to quickly find what it really happens.

Noxalus commented 5 years ago

We are not the only ones with this issue => https://github.com/spack/spack/issues/6252

The solution would be to update the nginx version we use (1.9.5 from now), but it requires some tests on both plateform to make sure we don't break anything.

Noxalus commented 5 years ago

Can you try to change the nginx version from the bootstrap.sh file (line 6) to 1.15.7 and tell me if it works? There is no update for the RTMP module, so we don't need to also upgrade it.

sangimed commented 5 years ago

Can you try to change the nginx version from the bootstrap.sh file (line 6) to 1.15.7 and tell me if it works? There is no update for the RTMP module, so we don't need to also upgrade it.

The compilation seemed to have gone well with the version you suggested but still does go through the make. I'll look into it as soon as I have some time.

I found a lead here https://stackoverflow.com/questions/43544893/cp-not-writing-through-dangling-symlink-usr-lib-x86-64-linux-gnu-libhdf5-so

        || cp conf/uwsgi_params '/usr/local/nginx/conf'                    
cp conf/uwsgi_params \                                                     
        '/usr/local/nginx/conf/uwsgi_params.default'                       
test -f '/usr/local/nginx/conf/scgi_params' \                              
        || cp conf/scgi_params '/usr/local/nginx/conf'                     
cp conf/scgi_params \                                                      
        '/usr/local/nginx/conf/scgi_params.default'                        
test -f '/usr/local/nginx/conf/nginx.conf' \                               
        || cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'           
cp: not writing through dangling symlink '/usr/local/nginx/conf/nginx.conf'
objs/Makefile:1546: recipe for target 'install' failed                     
HeyITGuyFixIt commented 4 years ago

You may be able to use https://github.com/winshining/nginx-http-flv-module instead of the RTMP module. The RTMP module has not been updated in more than 2 years (although it has been exactly 2 years since your repo has seen an update) and the other in the link appears to be active. It replaces and extends the RTMP module.

I have been trying to get your project working on Ubuntu Bionic, but ran into issues and changed the bootstrap script to get the Bionic ppa and get the latest version of nginx (1.17.9 as of writing). So far, only issues I am seeing is nginx can't find the mime.types file, which I can't either. And that is preventing it from running at all.

sangimed commented 4 years ago

You may be able to use https://github.com/winshining/nginx-http-flv-module instead of the RTMP module. The RTMP module has not been updated in more than 2 years (although it has been exactly 2 years since your repo has seen an update) and the other in the link appears to be active. It replaces and extends the RTMP module.

I have been trying to get your project working on Ubuntu Bionic, but ran into issues and changed the bootstrap script to get the Bionic ppa and get the latest version of nginx (1.17.9 as of writing). So far, only issues I am seeing is nginx can't find the mime.types file, which I can't either. And that is preventing it from running at all.

Thanks, i'll try that out.