xiph / ezstream

[Mirror] A streaming source client for Icecast
https://gitlab.xiph.org/xiph/ezstream
Other
57 stars 25 forks source link

Segmentation Error #28

Closed Optiqus closed 3 years ago

Optiqus commented 3 years ago

Collected the latest version of ezstream from the source code. Did not use the options in ./configure. Starting ezstream fails: /usr/local/bin/ezstream -c /etc/ezstream/ezstream.xml ezstream[31038]: /etc/ezstream/ezstream.xml: world readable Segmentation Error How to solve the problem? Debian GNU/Linux 9 Linux 4.9.0-14-amd64 #1 SMP Debian 4.9.246-2 (2020-12-17) x86_64 GNU/Linux

<?xml version="1.0" encoding="UTF-8"?>
<ezstream>
    <servers>
        <server>
            <protocol>HTTP</protocol>
            <hostname>localhost</hostname>
            <port>8080</port>
            <password>33344333</password>
            <tls>none</tls>
            <tls_cipher_suite>HIGH:!RSA:!SHA:!DH:!aNULL:!eNULL:!TLSv1</tls_cipher_suite>
        </server>
    </servers>
    <streams>
        <stream>
        <mountpoint>/HSR</mountpoint>
        <format>MP3</format>
        <public>No</public>
        <stream_name>HeartSoulRadio</stream_name>
        <stream_url>http://xn--h1aazeq.xn--p1ai:8080/HSR</stream_url>
        <stream_genre>Other</stream_genre>
        <stream_description>SUPER MP3</stream_description>
        <stream_quality>1.5</stream_quality>
        <stream_bitrate>16</stream_bitrate>
        <stream_samplerate>44100</stream_samplerate>
        <stream_channels>2</stream_channels>
        </stream>
    </streams>

   <!--
    Intake configuration
    -->
  <intakes>
    <intake>
      <!-- Identifying name (default: "default") -->
      <name>Test Input</name>

      <!--
        Media type: autodetect, file, playlist, program, stdin
       (default: autodetect)
        -->
      <type>file</type>

      <!-- Input file, program name, or "stdin" keyword (deprecated) -->
      <filename>/etc/icecast2/music.txt</filename>

      <!-- Setting to shuffle playlists -->
      <shuffle>Yes</shuffle>

      <!-- Setting whether to stream intake indefinitely or only once -->
      <stream_once>Yes</stream_once>
    </intake>
  </intakes>

  <!--
    Metadata configuration
    -->
  <metadata>
    <!-- Program to query for metadata instead of from media files -->
    <!-- <program>meta.sh</program> -->

    <!-- Metadata format -->
    <format_str>@a@ - @t@</format_str>

    <!-- Interval for additional metadata refreshes (default: -1 (none)) -->
    <refresh_interval>-1</refresh_interval>

    <!-- Setting to clean up extraneous whitespace (default: no) -->
    <normalize_strings>Yes</normalize_strings>

    <!-- Setting to suppress all metadata udpates (default: no) -->
    <no_updates>Yes</no_updates>
  </metadata>

  <decoders>
    <decoder>
      <name>MadPlay</name>
      <program>madplay -b 16 -R 44100 -S -o raw:- @T@</program>
      <file_ext>.mp3</file_ext>
    </decoder>
  </decoders>

  <encoders>
    <encoder>
      <name>Lame-CBR128</name>
      <format>MP3</format>
      <program>lame --preset cbr 128 -r -s 44.1 --bitwidth 16 - -</program>
    </encoder>
  </encoders>

</ezstream>

Compile from source code:

login as: root
root@192.168.1.6's password:
Linux irather.ru 4.9.0-14-amd64 #1 SMP Debian 4.9.246-2 (2020-12-17) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Dec 29 04:01:24 2020 from 192.168.1.122
root@irather:~# ps aux | grep exstream
root     27178  0.0  0.0  12776   860 pts/0    S+   14:04   0:00 grep exstream
root@irather:~# git clone --recursive https://github.com/xiph/ezstream
Клонирование в «ezstream»…
remote: Enumerating objects: 273, done.
remote: Counting objects: 100% (273/273), done.
remote: Compressing objects: 100% (202/202), done.
remote: Total 3469 (delta 166), reused 165 (delta 66), pack-reused 3196
Получение объектов: 100% (3469/3469), 933.64 KiB | 0 bytes/s, готово.
Определение изменений: 100% (2480/2480), готово.
root@irather:~# ls
ezstream  snap  src
root@irather:~# cd ezstream
root@irather:~/ezstream# ls
autogen.sh  configure.ac  gen-coverage-report.sh  NEWS       ThreatDragonModels
build-aux   COPYING       INSTALL                 README.md
ChangeLog   doc           m4                      src
compat      examples      Makefile.am             tests
root@irather:~/ezstream# ./autogen.sh
configure.ac:13: installing 'build-aux/compile'
configure.ac:16: installing 'build-aux/config.guess'
configure.ac:16: installing 'build-aux/config.sub'
configure.ac:9: installing 'build-aux/install-sh'
configure.ac:9: installing 'build-aux/missing'
compat/Makefile.am: installing 'build-aux/depcomp'
parallel-tests: installing 'build-aux/test-driver'
root@irather:~/ezstream# ls
aclocal.m4  configure     gen-coverage-report.sh  NEWS
autogen.sh  configure.ac  INSTALL                 README.md
build-aux   COPYING       m4                      src
ChangeLog   doc           Makefile.am             tests
compat      examples      Makefile.in             ThreatDragonModels
root@irather:~/ezstream# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for gcc option to accept ISO C99... none needed
checking for gcc option to accept ISO Standard C... (cached) none needed
checking for fgrep... /bin/grep -F
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for CHECK... yes
checking if gcc understands -Wall... yes
checking if gcc understands -W... yes
checking if gcc understands -Wshadow... yes
checking if gcc understands -Wconversion... yes
checking if gcc understands -Wmissing-declarations... yes
checking if gcc understands -Wmissing-prototypes... yes
checking if gcc understands -Wstrict-prototypes... yes
checking if gcc understands -Wformat=2... yes
checking if gcc supports an error flag... yes (-Werror)
checking if __attribute__((unused)) is supported... yes
checking if __attribute__((__format__(printf, 1, 2))) is supported... yes
checking if __attribute__((__nonnull__(1))) is supported... yes
checking for an ANSI C-conforming const... yes
checking for working volatile... yes
checking for sys/random.h... no
checking for sys/time.h... yes
checking for libgen.h... yes
checking for paths.h... yes
checking for size_t... yes
checking for ssize_t... yes
checking for basename in -lgen... no
checking shout/shout.h usability... yes
checking shout/shout.h presence... yes
checking for shout/shout.h... yes
checking if libshout works... yes
checking for libshout ... yes
checking libxml/parser.h usability... yes
checking libxml/parser.h presence... yes
checking for libxml/parser.h... yes
checking if libxml2 works... yes
checking for libxml2 ... yes
checking tag_c.h usability... yes
checking tag_c.h presence... yes
checking for tag_c.h... yes
checking if libtag_c works... yes
checking for libtag_c... yes
checking for ld used by gcc... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking for shared library run path origin... done
checking for iconv... yes
checking for working iconv... yes
checking for iconv declaration...
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for arc4random... no
checking for getrandom... no
checking for getopt... yes
checking for reallocarray... no
checking for strlcat... no
checking for strlcpy... no
checking for strtonum... no
checking for clock_gettime... yes
checking whether libc defines __progname... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating build-aux/Makefile
config.status: creating compat/Makefile
config.status: creating doc/Makefile
config.status: creating doc/ezstream-cfgmigrate.1.in
config.status: creating doc/ezstream-file.sh.1.in
config.status: creating doc/ezstream.1.in
config.status: creating examples/Makefile
config.status: creating m4/Makefile
config.status: creating src/Makefile
config.status: creating src/attr_config.h
config.status: creating src/ezstream-file.sh
config.status: creating tests/Makefile
config.status: creating src/config.h
config.status: executing depfiles commands
config.status: executing libtool commands

ezstream 1.0.2 has been configured successfully.

Configuration:
    Charset conversion support .... : Yes
    Prefix ........................ : /usr/local

root@irather:~/ezstream# make
Making all in build-aux
make[1]: вход в каталог «/root/ezstream/build-aux»
make[1]: Цель «all» не требует выполнения команд.
make[1]: выход из каталога «/root/ezstream/build-aux»
Making all in compat
make[1]: вход в каталог «/root/ezstream/compat»
depbase=`echo reallocarray.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src  -I/usr/include/libxml2 -I/usr/include/taglib  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT reallocarray.lo -MD -MP -MF $depbase.Tpo -c -o reallocarray.lo reallocarray.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/include/libxml2 -I/usr/include/taglib -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT reallocarray.lo -MD -MP -MF .deps/reallocarray.Tpo -c reallocarray.c  -fPIC -DPIC -o .libs/reallocarray.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/include/libxml2 -I/usr/include/taglib -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT reallocarray.lo -MD -MP -MF .deps/reallocarray.Tpo -c reallocarray.c -o reallocarray.o >/dev/null 2>&1
depbase=`echo strlcat.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src  -I/usr/include/libxml2 -I/usr/include/taglib  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT strlcat.lo -MD -MP -MF $depbase.Tpo -c -o strlcat.lo strlcat.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/include/libxml2 -I/usr/include/taglib -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT strlcat.lo -MD -MP -MF .deps/strlcat.Tpo -c strlcat.c  -fPIC -DPIC -o .libs/strlcat.o
strlcat.c: In function ‘strlcat’:
strlcat.c:42:9: warning: conversion to ‘size_t {aka long unsigned int}’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
  dlen = dst - odst;
         ^~~
strlcat.c:56:14: warning: conversion to ‘long unsigned int’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
  return(dlen + (src - osrc)); /* count does not include NUL */
              ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/include/libxml2 -I/usr/include/taglib -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT strlcat.lo -MD -MP -MF .deps/strlcat.Tpo -c strlcat.c -o strlcat.o >/dev/null 2>&1
depbase=`echo strlcpy.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src  -I/usr/include/libxml2 -I/usr/include/taglib  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT strlcpy.lo -MD -MP -MF $depbase.Tpo -c -o strlcpy.lo strlcpy.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/include/libxml2 -I/usr/include/taglib -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT strlcpy.lo -MD -MP -MF .deps/strlcpy.Tpo -c strlcpy.c  -fPIC -DPIC -o .libs/strlcpy.o
strlcpy.c: In function ‘strlcpy’:
strlcpy.c:51:20: warning: conversion to ‘size_t {aka long unsigned int}’ from ‘long int’ may change the sign of the result [-Wsign-conversion]
  return(src - osrc - 1); /* count does not include NUL */
        ~~~~~~~~~~~~^~~~
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/include/libxml2 -I/usr/include/taglib -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT strlcpy.lo -MD -MP -MF .deps/strlcpy.Tpo -c strlcpy.c -o strlcpy.o >/dev/null 2>&1
depbase=`echo strtonum.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../src  -I/usr/include/libxml2 -I/usr/include/taglib  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT strtonum.lo -MD -MP -MF $depbase.Tpo -c -o strtonum.lo strtonum.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/include/libxml2 -I/usr/include/taglib -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT strtonum.lo -MD -MP -MF .deps/strtonum.Tpo -c strtonum.c  -fPIC -DPIC -o .libs/strtonum.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../src -I/usr/include/libxml2 -I/usr/include/taglib -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT strtonum.lo -MD -MP -MF .deps/strtonum.Tpo -c strtonum.c -o strtonum.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=link gcc -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -avoid-version  -o libcompat.la   reallocarray.lo strlcat.lo strlcpy.lo strtonum.lo
libtool: link: ar cru .libs/libcompat.a .libs/reallocarray.o .libs/strlcat.o .libs/strlcpy.o .libs/strtonum.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libcompat.a
libtool: link: ( cd ".libs" && rm -f "libcompat.la" && ln -s "../libcompat.la" "libcompat.la" )
make[1]: выход из каталога «/root/ezstream/compat»
Making all in doc
make[1]: вход в каталог «/root/ezstream/doc»
sed -e 's|!!EXAMPLES_DIR!!|/usr/local/share/examples/ezstream|g' < ./ezstream.1.in > ezstream.1
sed -e 's|!!EXAMPLES_DIR!!|/usr/local/share/examples/ezstream|g' < ./ezstream-cfgmigrate.1.in > ezstream-cfgmigrate.1
sed -e 's|!!EXAMPLES_DIR!!|/usr/local/share/examples/ezstream|g' < ./ezstream-file.sh.1.in > ezstream-file.sh.1
make[1]: выход из каталога «/root/ezstream/doc»
Making all in examples
make[1]: вход в каталог «/root/ezstream/examples»
make[1]: Цель «all» не требует выполнения команд.
make[1]: выход из каталога «/root/ezstream/examples»
Making all in m4
make[1]: вход в каталог «/root/ezstream/m4»
make[1]: Цель «all» не требует выполнения команд.
make[1]: выход из каталога «/root/ezstream/m4»
Making all in src
make[1]: вход в каталог «/root/ezstream/src»
make  all-am
make[2]: вход в каталог «/root/ezstream/src»
depbase=`echo cfg.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg.lo -MD -MP -MF $depbase.Tpo -c -o cfg.lo cfg.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg.lo -MD -MP -MF .deps/cfg.Tpo -c cfg.c  -fPIC -DPIC -o .libs/cfg.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg.lo -MD -MP -MF .deps/cfg.Tpo -c cfg.c -o cfg.o >/dev/null 2>&1
depbase=`echo cfg_decoder.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_decoder.lo -MD -MP -MF $depbase.Tpo -c -o cfg_decoder.lo cfg_decoder.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_decoder.lo -MD -MP -MF .deps/cfg_decoder.Tpo -c cfg_decoder.c  -fPIC -DPIC -o .libs/cfg_decoder.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_decoder.lo -MD -MP -MF .deps/cfg_decoder.Tpo -c cfg_decoder.c -o cfg_decoder.o >/dev/null 2>&1
depbase=`echo cfg_encoder.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_encoder.lo -MD -MP -MF $depbase.Tpo -c -o cfg_encoder.lo cfg_encoder.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_encoder.lo -MD -MP -MF .deps/cfg_encoder.Tpo -c cfg_encoder.c  -fPIC -DPIC -o .libs/cfg_encoder.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_encoder.lo -MD -MP -MF .deps/cfg_encoder.Tpo -c cfg_encoder.c -o cfg_encoder.o >/dev/null 2>&1
depbase=`echo cfg_intake.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_intake.lo -MD -MP -MF $depbase.Tpo -c -o cfg_intake.lo cfg_intake.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_intake.lo -MD -MP -MF .deps/cfg_intake.Tpo -c cfg_intake.c  -fPIC -DPIC -o .libs/cfg_intake.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_intake.lo -MD -MP -MF .deps/cfg_intake.Tpo -c cfg_intake.c -o cfg_intake.o >/dev/null 2>&1
depbase=`echo cfg_server.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_server.lo -MD -MP -MF $depbase.Tpo -c -o cfg_server.lo cfg_server.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_server.lo -MD -MP -MF .deps/cfg_server.Tpo -c cfg_server.c  -fPIC -DPIC -o .libs/cfg_server.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_server.lo -MD -MP -MF .deps/cfg_server.Tpo -c cfg_server.c -o cfg_server.o >/dev/null 2>&1
depbase=`echo cfg_stream.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_stream.lo -MD -MP -MF $depbase.Tpo -c -o cfg_stream.lo cfg_stream.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_stream.lo -MD -MP -MF .deps/cfg_stream.Tpo -c cfg_stream.c  -fPIC -DPIC -o .libs/cfg_stream.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfg_stream.lo -MD -MP -MF .deps/cfg_stream.Tpo -c cfg_stream.c -o cfg_stream.o >/dev/null 2>&1
depbase=`echo cfgfile_xml.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfgfile_xml.lo -MD -MP -MF $depbase.Tpo -c -o cfgfile_xml.lo cfgfile_xml.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfgfile_xml.lo -MD -MP -MF .deps/cfgfile_xml.Tpo -c cfgfile_xml.c  -fPIC -DPIC -o .libs/cfgfile_xml.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cfgfile_xml.lo -MD -MP -MF .deps/cfgfile_xml.Tpo -c cfgfile_xml.c -o cfgfile_xml.o >/dev/null 2>&1
depbase=`echo log.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT log.lo -MD -MP -MF $depbase.Tpo -c -o log.lo log.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT log.lo -MD -MP -MF .deps/log.Tpo -c log.c  -fPIC -DPIC -o .libs/log.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT log.lo -MD -MP -MF .deps/log.Tpo -c log.c -o log.o >/dev/null 2>&1
depbase=`echo util.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT util.lo -MD -MP -MF $depbase.Tpo -c -o util.lo util.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT util.lo -MD -MP -MF .deps/util.Tpo -c util.c  -fPIC -DPIC -o .libs/util.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT util.lo -MD -MP -MF .deps/util.Tpo -c util.c -o util.o >/dev/null 2>&1
depbase=`echo xalloc.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT xalloc.lo -MD -MP -MF $depbase.Tpo -c -o xalloc.lo xalloc.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT xalloc.lo -MD -MP -MF .deps/xalloc.Tpo -c xalloc.c  -fPIC -DPIC -o .libs/xalloc.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT xalloc.lo -MD -MP -MF .deps/xalloc.Tpo -c xalloc.c -o xalloc.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=link gcc -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -avoid-version  -o libcommon.la  cfg.lo cfg_decoder.lo cfg_encoder.lo cfg_intake.lo cfg_server.lo cfg_stream.lo cfgfile_xml.lo log.lo util.lo xalloc.lo
libtool: link: ar cru .libs/libcommon.a .libs/cfg.o .libs/cfg_decoder.o .libs/cfg_encoder.o .libs/cfg_intake.o .libs/cfg_server.o .libs/cfg_stream.o .libs/cfgfile_xml.o .libs/log.o .libs/util.o .libs/xalloc.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libcommon.a
libtool: link: ( cd ".libs" && rm -f "libcommon.la" && ln -s "../libcommon.la" "libcommon.la" )
depbase=`echo cmdline.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cmdline.lo -MD -MP -MF $depbase.Tpo -c -o cmdline.lo cmdline.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cmdline.lo -MD -MP -MF .deps/cmdline.Tpo -c cmdline.c  -fPIC -DPIC -o .libs/cmdline.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT cmdline.lo -MD -MP -MF .deps/cmdline.Tpo -c cmdline.c -o cmdline.o >/dev/null 2>&1
depbase=`echo mdata.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT mdata.lo -MD -MP -MF $depbase.Tpo -c -o mdata.lo mdata.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT mdata.lo -MD -MP -MF .deps/mdata.Tpo -c mdata.c  -fPIC -DPIC -o .libs/mdata.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT mdata.lo -MD -MP -MF .deps/mdata.Tpo -c mdata.c -o mdata.o >/dev/null 2>&1
depbase=`echo playlist.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT playlist.lo -MD -MP -MF $depbase.Tpo -c -o playlist.lo playlist.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT playlist.lo -MD -MP -MF .deps/playlist.Tpo -c playlist.c  -fPIC -DPIC -o .libs/playlist.o
playlist.c: In function ‘_playlist_random’:
playlist.c:110:3: warning: #warning "using deterministic randomness for shuffling playlists" [-Wcpp]
 # warning "using deterministic randomness for shuffling playlists"
   ^~~~~~~
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT playlist.lo -MD -MP -MF .deps/playlist.Tpo -c playlist.c -o playlist.o >/dev/null 2>&1
depbase=`echo stream.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT stream.lo -MD -MP -MF $depbase.Tpo -c -o stream.lo stream.c &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT stream.lo -MD -MP -MF .deps/stream.Tpo -c stream.c  -fPIC -DPIC -o .libs/stream.o
stream.c: In function ‘_stream_cfg_tls’:
stream.c:189:3: warning: #warning "libshout library does not support TLS" [-Wcpp]
 # warning "libshout library does not support TLS"
   ^~~~~~~
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I/usr/include/libxml2 -I/usr/include/taglib -I../compat -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT stream.lo -MD -MP -MF .deps/stream.Tpo -c stream.c -o stream.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=link gcc -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -avoid-version  -o libezstream.la  cmdline.lo mdata.lo playlist.lo stream.lo -ltag_c -lxml2 -lshout ./libcommon.la ../compat/libcompat.la
libtool: link: (cd .libs/libezstream.lax/libcommon.a && ar x "/root/ezstream/src/./.libs/libcommon.a")
libtool: link: (cd .libs/libezstream.lax/libcompat.a && ar x "/root/ezstream/src/../compat/.libs/libcompat.a")
libtool: link: ar cru .libs/libezstream.a .libs/cmdline.o .libs/mdata.o .libs/playlist.o .libs/stream.o   .libs/libezstream.lax/libcommon.a/cfg.o .libs/libezstream.lax/libcommon.a/cfg_decoder.o .libs/libezstream.lax/libcommon.a/cfg_encoder.o .libs/libezstream.lax/libcommon.a/cfg_intake.o .libs/libezstream.lax/libcommon.a/cfg_server.o .libs/libezstream.lax/libcommon.a/cfg_stream.o .libs/libezstream.lax/libcommon.a/cfgfile_xml.o .libs/libezstream.lax/libcommon.a/log.o .libs/libezstream.lax/libcommon.a/util.o .libs/libezstream.lax/libcommon.a/xalloc.o  .libs/libezstream.lax/libcompat.a/reallocarray.o .libs/libezstream.lax/libcompat.a/strlcat.o .libs/libezstream.lax/libcompat.a/strlcpy.o .libs/libezstream.lax/libcompat.a/strtonum.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libezstream.a
libtool: link: rm -fr .libs/libezstream.lax
libtool: link: ( cd ".libs" && rm -f "libezstream.la" && ln -s "../libezstream.la" "libezstream.la" )
depbase=`echo ezstream.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT ezstream.o -MD -MP -MF $depbase.Tpo -c -o ezstream.o ezstream.c &&\
mv -f $depbase.Tpo $depbase.Po
/bin/bash ../libtool  --tag=CC   --mode=link gcc -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -avoid-version  -o ezstream ezstream.o libezstream.la
libtool: link: gcc -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -o ezstream ezstream.o  ./.libs/libezstream.a -ltag_c -lxml2 -lshout -pthread
depbase=`echo ezstream-cfgmigrate.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT ezstream-cfgmigrate.o -MD -MP -MF $depbase.Tpo -c -o ezstream-cfgmigrate.o ezstream-cfgmigrate.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo ezconfig0.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I.  -I/usr/include/libxml2 -I/usr/include/taglib -I../compat  -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -MT ezconfig0.o -MD -MP -MF $depbase.Tpo -c -o ezconfig0.o ezconfig0.c &&\
mv -f $depbase.Tpo $depbase.Po
/bin/bash ../libtool  --tag=CC   --mode=link gcc -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -avoid-version  -o ezstream-cfgmigrate ezstream-cfgmigrate.o ezconfig0.o -ltag_c -lxml2 -lshout ./libcommon.la ../compat/libcompat.la
libtool: link: gcc -Wall -W -Wshadow -Wconversion -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wformat=2 -pthread -g -O2 -o ezstream-cfgmigrate ezstream-cfgmigrate.o ezconfig0.o  -ltag_c -lxml2 -lshout ./.libs/libcommon.a ../compat/.libs/libcompat.a -pthread
make[2]: выход из каталога «/root/ezstream/src»
make[1]: выход из каталога «/root/ezstream/src»
Making all in tests
make[1]: вход в каталог «/root/ezstream/tests»
make[1]: Цель «all» не требует выполнения команд.
make[1]: выход из каталога «/root/ezstream/tests»
make[1]: вход в каталог «/root/ezstream»
make[1]: Цель «all-am» не требует выполнения команд.
make[1]: выход из каталога «/root/ezstream»
root@irather:~/ezstream# make install
Making install in build-aux
make[1]: вход в каталог «/root/ezstream/build-aux»
make[2]: вход в каталог «/root/ezstream/build-aux»
make[2]: Цель «install-exec-am» не требует выполнения команд.
make[2]: Цель «install-data-am» не требует выполнения команд.
make[2]: выход из каталога «/root/ezstream/build-aux»
make[1]: выход из каталога «/root/ezstream/build-aux»
Making install in compat
make[1]: вход в каталог «/root/ezstream/compat»
make[2]: вход в каталог «/root/ezstream/compat»
make[2]: Цель «install-exec-am» не требует выполнения команд.
make[2]: Цель «install-data-am» не требует выполнения команд.
make[2]: выход из каталога «/root/ezstream/compat»
make[1]: выход из каталога «/root/ezstream/compat»
Making install in doc
make[1]: вход в каталог «/root/ezstream/doc»
sed -e 's|!!EXAMPLES_DIR!!|/usr/local/share/examples/ezstream|g' < ./ezstream.1.in > ezstream.1
sed -e 's|!!EXAMPLES_DIR!!|/usr/local/share/examples/ezstream|g' < ./ezstream-cfgmigrate.1.in > ezstream-cfgmigrate.1
sed -e 's|!!EXAMPLES_DIR!!|/usr/local/share/examples/ezstream|g' < ./ezstream-file.sh.1.in > ezstream-file.sh.1
make[2]: вход в каталог «/root/ezstream/doc»
make[2]: Цель «install-exec-am» не требует выполнения команд.
sed -e 's|!!EXAMPLES_DIR!!|/usr/local/share/examples/ezstream|g' < ./ezstream.1.in > ezstream.1
sed -e 's|!!EXAMPLES_DIR!!|/usr/local/share/examples/ezstream|g' < ./ezstream-cfgmigrate.1.in > ezstream-cfgmigrate.1
sed -e 's|!!EXAMPLES_DIR!!|/usr/local/share/examples/ezstream|g' < ./ezstream-file.sh.1.in > ezstream-file.sh.1
 /bin/mkdir -p '/usr/local/share/man/man1'
 /usr/bin/install -c -m 644 ezstream.1 ezstream-cfgmigrate.1 ezstream-file.sh.1 '/usr/local/share/man/man1'
make[2]: выход из каталога «/root/ezstream/doc»
make[1]: выход из каталога «/root/ezstream/doc»
Making install in examples
make[1]: вход в каталог «/root/ezstream/examples»
make[2]: вход в каталог «/root/ezstream/examples»
make[2]: Цель «install-exec-am» не требует выполнения команд.
 /bin/mkdir -p '/usr/local/share/examples/ezstream'
 /usr/bin/install -c -m 644 ezstream-file_template.xml ezstream-full.xml ezstream-metadata.xml ezstream-minimal.xml ezstream-stdin.xml ezstream-video.xml metadata.txt artist.txt title.txt '/usr/local/share/examples/ezstream'
 /bin/mkdir -p '/usr/local/share/examples/ezstream'
 /usr/bin/install -c meta.sh play.sh playlist-logger.sh '/usr/local/share/examples/ezstream'
make[2]: выход из каталога «/root/ezstream/examples»
make[1]: выход из каталога «/root/ezstream/examples»
Making install in m4
make[1]: вход в каталог «/root/ezstream/m4»
make[2]: вход в каталог «/root/ezstream/m4»
make[2]: Цель «install-exec-am» не требует выполнения команд.
make[2]: Цель «install-data-am» не требует выполнения команд.
make[2]: выход из каталога «/root/ezstream/m4»
make[1]: выход из каталога «/root/ezstream/m4»
Making install in src
make[1]: вход в каталог «/root/ezstream/src»
make[2]: вход в каталог «/root/ezstream/src»
 /bin/mkdir -p '/usr/local/bin'
  /bin/bash ../libtool   --mode=install /usr/bin/install -c ezstream ezstream-cfgmigrate '/usr/local/bin'
libtool: install: /usr/bin/install -c ezstream /usr/local/bin/ezstream
libtool: install: /usr/bin/install -c ezstream-cfgmigrate /usr/local/bin/ezstream-cfgmigrate
 /bin/mkdir -p '/usr/local/bin'
 /usr/bin/install -c ezstream-file.sh '/usr/local/bin'
make[2]: Цель «install-data-am» не требует выполнения команд.
make[2]: выход из каталога «/root/ezstream/src»
make[1]: выход из каталога «/root/ezstream/src»
Making install in tests
make[1]: вход в каталог «/root/ezstream/tests»
make[2]: вход в каталог «/root/ezstream/tests»
make[2]: Цель «install-exec-am» не требует выполнения команд.
make[2]: Цель «install-data-am» не требует выполнения команд.
make[2]: выход из каталога «/root/ezstream/tests»
make[1]: выход из каталога «/root/ezstream/tests»
make[1]: вход в каталог «/root/ezstream»
make[2]: вход в каталог «/root/ezstream»
make[2]: Цель «install-exec-am» не требует выполнения команд.
 /bin/mkdir -p '/usr/local/share/doc/ezstream'
 /usr/bin/install -c -m 644 COPYING NEWS README.md '/usr/local/share/doc/ezstream'
make[2]: выход из каталога «/root/ezstream»
make[1]: выход из каталога «/root/ezstream»
root@irather:~/ezstream# /usr/local/bin/ezstream -c /etc/ezstream/ezstream.xml
ezstream[28595]: /etc/ezstream/ezstream.xml: world readable
Segmentation Error
petterreinholdtsen commented 3 years ago

[Optiqus]

/usr/local/bin/ezstream -c /etc/ezstream/ezstream.xml ezstream[31038]: /etc/ezstream/ezstream.xml: world readable Segmentation Error How to solve the problem?

Perhaps 'valgrind /usr/local/bin/ezstream -c /etc/ezstream/ezstream.xml' can provide some insight into why it segfaults.

-- Happy hacking Petter Reinholdtsen

Optiqus commented 3 years ago

root@irather:~# valgrind /usr/local/bin/ezstream -c /etc/ezstream/ezstream.xml ==10007== Memcheck, a memory error detector ==10007== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al. ==10007== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info ==10007== Command: /usr/local/bin/ezstream -c /etc/ezstream/ezstream.xml ==10007== ezstream[10007]: /etc/ezstream/ezstream.xml: world readable ==10007== Invalid read of size 1 ==10007== at 0x4C2EDA2: strlen (vg_replace_strmem.c:454) ==10007== by 0x58A63AD: strdup (strdup.c:41) ==10007== by 0x116321: xstrdup_c (xalloc.c:75) ==10007== by 0x115E1D: util_strrcasecmp (util.c:231) ==10007== by 0x10AE8A: main (ezstream.c:797) ==10007== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==10007== ==10007== ==10007== Process terminating with default action of signal 11 (SIGSEGV) ==10007== Access not within mapped region at address 0x0 ==10007== at 0x4C2EDA2: strlen (vg_replace_strmem.c:454) ==10007== by 0x58A63AD: strdup (strdup.c:41) ==10007== by 0x116321: xstrdup_c (xalloc.c:75) ==10007== by 0x115E1D: util_strrcasecmp (util.c:231) ==10007== by 0x10AE8A: main (ezstream.c:797) ==10007== If you believe this happened as a result of a stack ==10007== overflow in your program's main thread (unlikely but ==10007== possible), you can try to increase the size of the ==10007== main thread stack using the --main-stacksize= flag. ==10007== The main thread stack size used in this run was 8388608. ==10007== ==10007== HEAP SUMMARY: ==10007== in use at exit: 45,266 bytes in 170 blocks ==10007== total heap usage: 732 allocs, 562 frees, 245,967 bytes allocated ==10007== ==10007== LEAK SUMMARY: ==10007== definitely lost: 0 bytes in 0 blocks ==10007== indirectly lost: 0 bytes in 0 blocks ==10007== possibly lost: 0 bytes in 0 blocks ==10007== still reachable: 45,266 bytes in 170 blocks ==10007== suppressed: 0 bytes in 0 blocks ==10007== Rerun with --leak-check=full to see details of leaked memory ==10007== ==10007== For counts of detected and suppressed errors, rerun with: -v ==10007== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Segmentation Error

mgrimm commented 3 years ago

@Optiqus, thanks for the report. Please make sure to change your source client password, if the one provided in this report is the real one.

The workaround for your issue is to either remove the <name/> from your intake, or configure it properly in your <stream/>. The fix will be a proper error message instead of a crash.

FYI: there is an inconsistency in your configuration file. The intake type is "file", but the filename looks like a playlist and not a single media file.

mgrimm commented 3 years ago

Fixed in develop.

simon1tan commented 3 years ago

I am also getting random segfaults and I do not have in my intake

mgrimm commented 3 years ago

The issue here is understood and fixed in 1.0.2. If you're still having issues, it's a separate problem and I need more information in a separate bug report. Thanks!