tizonia / tizonia-openmax-il

Command-line cloud music player for Linux with support for Spotify, Google Play Music, YouTube, SoundCloud, TuneIn, iHeartRadio, Plex servers and Chromecast devices.
https://tizonia.org
GNU Lesser General Public License v3.0
1.69k stars 85 forks source link

Tizonia 0.21.0-1 fails to build #700

Closed jpwhale closed 4 years ago

jpwhale commented 4 years ago

When clean-building tizonia 0.21.0-1, the build fails with an error on a submodule.

Steps to Reproduce

clean-build tizonia-all with yay

Expected behavior: tizonia to install

Actual behaviour: build fails

Additional Information

==> Making package: tizonia-all 0.21.0-1 (tir 10 mar 2020 10:20:51 CET)
==> Retrieving sources...
  -> Downloading tizonia-openmax-il-0.21.0.tar.gz...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   135  100   135    0     0    193      0 --:--:-- --:--:-- --:--:--   192
100 9497k    0 9497k    0     0   307k      0 --:--:--  0:00:30 --:--:--  637k
==> Validating source files with md5sums...
    tizonia-openmax-il-0.21.0.tar.gz ... Passed
==> Making package: tizonia-all 0.21.0-1 (tir 10 mar 2020 10:21:23 CET)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found tizonia-openmax-il-0.21.0.tar.gz
==> Validating source files with md5sums...
    tizonia-openmax-il-0.21.0.tar.gz ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Extracting tizonia-openmax-il-0.21.0.tar.gz with bsdtar
==> Starting prepare()...
==> Sources are ready.
==> Making package: tizonia-all 0.21.0-1 (tir 10 mar 2020 10:21:26 CET)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting build()...
/home/verysecret/.cache/yay/tizonia-all/src/tizonia-openmax-il-0.21.0
+ exec meson setup --prefix /usr --libexecdir lib --sbindir bin --buildtype plain --auto-features enabled --wrap-mode nodownload -D b_lto=true -D b_pie=true build -Dbashcompletiondir=/usr/share/bash-completion/completions -Dzshcompletiondir=/usr/share/zsh/site-functions
The Meson build system
Version: 0.53.2
Source dir: /home/verysecret/.cache/yay/tizonia-all/src/tizonia-openmax-il-0.21.0
Build dir: /home/verysecret/.cache/yay/tizonia-all/src/tizonia-openmax-il-0.21.0/build
Build type: native build
Project name: tizonia
Project version: 0.21.0
Appending CFLAGS from environment: '-O2 -s -DNDEBUG'
Appending LDFLAGS from environment: ['-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now']
Appending CPPFLAGS from environment: '-D_FORTIFY_SOURCE=2'
Appending CXXFLAGS from environment: '-O2 -s -DNDEBUG -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security'
Appending LDFLAGS from environment: ['-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now']
Appending CPPFLAGS from environment: '-D_FORTIFY_SOURCE=2'
Appending CFLAGS from environment: '-O2 -s -DNDEBUG'
Appending LDFLAGS from environment: ['-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now']
Appending CPPFLAGS from environment: '-D_FORTIFY_SOURCE=2'
C compiler for the host machine: cc (gcc 9.2.1 "cc (Arch Linux 9.2.1+20200130-2) 9.2.1 20200130")
C linker for the host machine: cc ld.bfd 2.34
Appending CXXFLAGS from environment: '-O2 -s -DNDEBUG -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security'
Appending LDFLAGS from environment: ['-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now']
Appending CPPFLAGS from environment: '-D_FORTIFY_SOURCE=2'
C++ compiler for the host machine: c++ (gcc 9.2.1 "c++ (Arch Linux 9.2.1+20200130-2) 9.2.1 20200130")
C++ linker for the host machine: c++ ld.bfd 2.34
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.6.3)
Run-time dependency log4c found: YES 1.2.4
Library rt found: YES
Run-time dependency threads found: YES
Run-time dependency uuid found: YES 2.35.1
Run-time dependency Boost (chrono, filesystem, system, thread, program_options, python3) found: YES 1.72
Run-time dependency sqlite3 found: YES 3.31.1
Run-time dependency python3-embed found: YES 3.8
Program python3 found: YES (/usr/bin/python3)
Did not find CMake 'cmake'
Found CMake: NO
Run-time dependency libev found: NO (tried pkgconfig and cmake)
Checking for function "clock_gettime" with dependency -lrt: YES 
Checking for function "select" : YES 
Configuring config.h using configuration
Run-time dependency dbus-1 found: YES 1.12.16
Configuring config.h using configuration
Run-time dependency expat found: YES 2.2.9
Configuring libtizdbus-c++.pc using configuration
Configuring tizilheaders.pc using configuration
Configuring libtizplatform.pc using configuration
Run-time dependency libcurl found: YES 7.68.0
Configuring tizplatform_config.h using configuration
Configuring tizrmd.pc using configuration
Configuring com.aratelia.tiz.rm.service using configuration
Configuring tizonia-rm-db-dump.sh using configuration
Configuring tizonia-rm-db-generate.sh using configuration
Configuring libtizrmproxy.pc using configuration
Library dl found: YES
Configuring libtizcore.pc using configuration
Configuring libtizonia.pc using configuration
Configuring libtizgmusic.pc using configuration
Configuring libtizsoundcloud.pc using configuration
Configuring libtizyoutube.pc using configuration
Configuring libtizplex.pc using configuration
Configuring libtizchromecast.pc using configuration
Configuring libtizspotify.pc using configuration
Configuring libtiztunein.pc using configuration
Program meson_post_install.py found: YES (/usr/bin/python /home/verysecret/.cache/yay/tizonia-all/src/tizonia-openmax-il-0.21.0/clients/meson_post_install.py)
Configuring com.aratelia.tiz.cast.service using configuration
Configuring libtizcastclient.pc using configuration
Configuring tizcastd.pc using configuration
Run-time dependency libmpg123 found: YES 1.25.13
Run-time dependency oggz found: YES 1.1.1
Run-time dependency flac found: YES 1.3.3
Run-time dependency mad found: YES 0.15.1b
Library mp3lame found: YES
Run-time dependency opus found: YES 1.3.1
Run-time dependency opusfile found: YES 0.11
Run-time dependency sndfile found: YES 1.0.28
Run-time dependency libpulse found: YES 13.0
Run-time dependency fishsound found: YES 1.0.0
Run-time dependency vpx found: YES 1.8.2
Run-time dependency sdl found: YES 1.2.15
Run-time dependency libspotify found: YES 12.1.51
Run-time dependency alsa found: YES 1.2.2
Library faad found: YES
Configuring tizonia.conf using configuration
Configuring log4crc using configuration
Run-time dependency taglib found: YES 1.11.1
Run-time dependency libmediainfo found: YES 19.09
Configuring tizonia.desktop using configuration
Configuring tizonia-remote using configuration
Build targets in project: 49

tizonia 0.21.0

  General configuration
                                Tizonia player: YES
                             libspotify plugin: YES
                                       clients: YES
                     number of enabled plugins: 26
                                   ALSA plugin: YES
                              Blocking ETB/FTB: NO
                      Blocking OMX_SendCommand: NO

  Installation paths
                                     libraries: /usr/lib
                                       plugins: /usr/lib/tizonia0-plugins12
                                       tizonia: /usr/bin
                                  Header files: /usr/include/tizonia
                                 Documentation: /usr/share/doc/tizonia

  Building
     To compile all tizonia sub-projects, type: ninja
     To install all tizonia sub-projects, type: ninja install
        To test all tizonia sub-projects, type: ninja test

  NOTE
    Doc generation is not currently functional: run Doxygen/Sphinx manually

Found ninja-1.10.0 at /usr/bin/ninja
Generating targets:   0%|                                                    | 0Generating targets:  80%|█████████████████████████████████▍        | 39/49 [00:0                                                                                Writing build.ninja:   0%|                                                  | 0/                                                                                ninja: Entering directory `build'
[4/330] Compiling C++ object '3rdparty...0a@@tizdbus-c++@sha/dispatcher.cpp.o'.
../3rdparty/dbus-cplusplus/src/dispatcher.cpp: In member function ‘int Tiz::DBus::Watch::descriptor() const’:
../3rdparty/dbus-cplusplus/src/dispatcher.cpp:81:45: warning: ‘int dbus_watch_get_fd(DBusWatch*)’ is deprecated [-Wdeprecated-declarations]
   81 |   return dbus_watch_get_fd((DBusWatch *)_int);
      |                                             ^
In file included from /usr/include/dbus-1.0/dbus/dbus-bus.h:30,
                 from /usr/include/dbus-1.0/dbus/dbus.h:31,
                 from ../3rdparty/dbus-cplusplus/src/dispatcher.cpp:30:
/usr/include/dbus-1.0/dbus/dbus-connection.h:481:21: note: declared here
  481 | DBUS_DEPRECATED int dbus_watch_get_fd      (DBusWatch        *watch);
      |                     ^~~~~~~~~~~~~~~~~
../3rdparty/dbus-cplusplus/src/dispatcher.cpp:81:45: warning: ‘int dbus_watch_get_fd(DBusWatch*)’ is deprecated [-Wdeprecated-declarations]
   81 |   return dbus_watch_get_fd((DBusWatch *)_int);
      |                                             ^
In file included from /usr/include/dbus-1.0/dbus/dbus-bus.h:30,
                 from /usr/include/dbus-1.0/dbus/dbus.h:31,
                 from ../3rdparty/dbus-cplusplus/src/dispatcher.cpp:30:
/usr/include/dbus-1.0/dbus/dbus-connection.h:481:21: note: declared here
  481 | DBUS_DEPRECATED int dbus_watch_get_fd      (DBusWatch        *watch);
      |                     ^~~~~~~~~~~~~~~~~
[11/330] Compiling C++ object '3rdpart.../f9a750a@@tizdbus-c++@sha/pipe.cpp.o'.
../3rdparty/dbus-cplusplus/src/pipe.cpp: In member function ‘void Tiz::DBus::Pipe::write(const void*, unsigned int)’:
../3rdparty/dbus-cplusplus/src/pipe.cpp:67:10: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
   67 |   ::write(_fd_write, static_cast <const void *>(&nbytes), sizeof(nbytes));
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../3rdparty/dbus-cplusplus/src/pipe.cpp:70:10: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
   70 |   ::write(_fd_write, buffer, nbytes);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
../3rdparty/dbus-cplusplus/src/pipe.cpp: In member function ‘ssize_t Tiz::DBus::Pipe::read(void*, unsigned int&)’:
../3rdparty/dbus-cplusplus/src/pipe.cpp:77:9: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
   77 |   ::read(_fd_read, &nbytes, sizeof(nbytes));
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../3rdparty/dbus-cplusplus/src/pipe.cpp: In member function ‘void Tiz::DBus::Pipe::signal()’:
../3rdparty/dbus-cplusplus/src/pipe.cpp:87:10: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
   87 |   ::write(_fd_write, nullc, 1);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
[41/330] Compiling C object 'libtizpla...c/19e8de9@@tizplatform@sha/tizev.c.o'.
In file included from ../libtizplatform/src/tizev.c:60:
../libtizplatform/src/ev/ev.c: In function ‘pipecb’:
../libtizplatform/src/ev/ev.c:2365:11: warning: ignoring return value of ‘read’, declared with attribute warn_unused_result [-Wunused-result]
 2365 |           read (evpipe [1], &counter, sizeof (uint64_t));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libtizplatform/src/ev/ev.c:2379:11: warning: ignoring return value of ‘read’, declared with attribute warn_unused_result [-Wunused-result]
 2379 |           read (evpipe [0], &dummy, sizeof (dummy));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libtizplatform/src/ev/ev.c: In function ‘evpipe_write’:
../libtizplatform/src/ev/ev.c:2332:11: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
 2332 |           write (evpipe [1], &counter, sizeof (uint64_t));
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libtizplatform/src/ev/ev.c:2344:11: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
 2344 |           write (evpipe [1], &(evpipe [1]), 1);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[47/330] Generating tizrm.db with a custom command.
Populating rm/tizrmd/data/tizrm.db using ../rm/tizrmd/data/tizonia-rm-db-initial.sql3...
Done.
[98/330] Linking target libtizplatform/src/libtizplatform.so.0.21.0.
../libtizplatform/src/tizurltransfer.c: In function ‘start_curl’:
../libtizplatform/src/tizurltransfer.c:373:3: warning: call to ‘_curl_easy_setopt_err_debug_cb’ declared with attribute warning: curl_easy_setopt expects a curl_debug_callback argument for this option [-Wattribute-warning]
  373 |   bail_on_curl_error (curl_easy_setopt (
      |   ^
[102/330] Generating tizrmd-dbus.hh with a custom command.
generating code for interface com.aratelia.tiz.tizrmif...
[103/330] Generating tizrmproxy-dbus.hh with a custom command.
generating code for interface com.aratelia.tiz.tizrmif...
[118/330] Linking target libtizcore/src/libtizcore.so.0.21.0.
In function ‘strncat’,
    inlined from ‘instantiate_comp_lib.constprop’ at ../libtizcore/src/tizcore.c:646:38:
/usr/include/bits/string_fortified.h:136:10: warning: ‘__builtin___strncat_chk’ specified bound 4096 equals destination size [-Wstringop-overflow=]
  136 |   return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
      |          ^
[136/330] Generating tizcastd-dbus.hh with a custom command.
generating code for interface com.aratelia.tiz.tizcastif...
[137/330] Generating tizcastclient-dbus.hh with a custom command.
generating code for interface com.aratelia.tiz.tizcastif...
[164/330] Compiling C object 'plugins/...zchromecastrnd@sha/cc_youtubeprc.c.o'.
../plugins/chromecast_renderer/src/cc_youtubeprc.c: In function ‘cc_youtube_prc_allocate_resources’:
../plugins/chromecast_renderer/src/cc_youtubeprc.c:195:40: warning: passing argument 2 of ‘tiz_youtube_init’ from incompatible pointer type [-Wincompatible-pointer-types]
  195 |     tiz_youtube_init (&(p_prc->p_yt_), &(p_prc->yt_session_.cApiKey)));
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                        |
      |                                        OMX_U8 (*)[128] {aka unsigned char (*)[128]}
../plugins/chromecast_renderer/src/cc_youtubeprc.c:60:34: note: in definition of macro ‘on_yt_error_ret_omx_oom’
   60 |       if (0 != (youtube_error = (expr)))                                     \
      |                                  ^~~~
In file included from ../plugins/chromecast_renderer/src/cc_youtubeprc_decls.h:39,
                 from ../plugins/chromecast_renderer/src/cc_youtubeprc.c:47:
../clients/youtube/libtizyoutube/src/tizyoutube_c.h:75:35: note: expected ‘const char *’ but argument is of type ‘OMX_U8 (*)[128]’ {aka ‘unsigned char (*)[128]’}
   75 |                       const char *ap_api_key);
      |                       ~~~~~~~~~~~~^~~~~~~~~~
[191/330] Compiling C object 'plugins/...4acb8@@tizhttpsrc@sha/youtubeprc.c.o'.
../plugins/http_source/src/youtubeprc.c: In function ‘youtube_prc_allocate_resources’:
../plugins/http_source/src/youtubeprc.c:791:45: warning: passing argument 2 of ‘tiz_youtube_init’ from incompatible pointer type [-Wincompatible-pointer-types]
  791 |     tiz_youtube_init (&(p_prc->p_youtube_), &(p_prc->session_.cApiKey)));
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                             |
      |                                             OMX_U8 (*)[128] {aka unsigned char (*)[128]}
../plugins/http_source/src/youtubeprc.c:70:34: note: in definition of macro ‘on_youtube_error_ret_omx_oom’
   70 |       if (0 != (youtube_error = (expr)))                                     \
      |                                  ^~~~
In file included from ../plugins/http_source/src/youtubeprc_decls.h:42,
                 from ../plugins/http_source/src/youtubeprc.c:47:
../clients/youtube/libtizyoutube/src/tizyoutube_c.h:75:35: note: expected ‘const char *’ but argument is of type ‘OMX_U8 (*)[128]’ {aka ‘unsigned char (*)[128]’}
   75 |                       const char *ap_api_key);
      |                       ~~~~~~~~~~~~^~~~~~~~~~
[254/330] Generating mpris_dbus.hpp with a custom command.
generating code for interface org.mpris.MediaPlayer2...
generating code for interface org.mpris.MediaPlayer2.Player...
[305/330] Compiling C++ object 'player...a@exe/services_tizservicegraph.cpp.o'.
FAILED: player/src/431b6f0@@tizonia@exe/services_tizservicegraph.cpp.o 
c++ -Iplayer/src/431b6f0@@tizonia@exe -Iplayer/src -I../player/src -I../player/src/services -I../player/src/services/googlemusic -I../player/src/services/soundcloud -I../player/src/services/youtube -I../player/src/services/plex -I../player/src/services/tunein -Iinclude/omxil-1.2 -I../include/omxil-1.2 -I../3rdparty/dbus-cplusplus/src/../include -Ilibtizplatform/src -I../libtizplatform/src -Iplayer/dbus -I/usr/include/taglib -I/usr/include/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/home/verysecret/.cache/yay/tizonia-all/src/tizonia-openmax-il-0.21.0/build -flto -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -include/home/verysecret/.cache/yay/tizonia-all/src/tizonia-openmax-il-0.21.0/build/config.h -DHAVE_LIBSPOTIFY -O2 -s -DNDEBUG -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIE -pthread -DUNICODE -DSIZE_T_IS_LONG -DDBUS_API_SUBJECT_TO_CHANGE -MD -MQ 'player/src/431b6f0@@tizonia@exe/services_tizservicegraph.cpp.o' -MF 'player/src/431b6f0@@tizonia@exe/services_tizservicegraph.cpp.o.d' -o 'player/src/431b6f0@@tizonia@exe/services_tizservicegraph.cpp.o' -c ../player/src/services/tizservicegraph.cpp
c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
[310/330] Compiling C++ object 'player...rvices_youtube_tizyoutubegraph.cpp.o'.
ninja: build stopped: subcommand failed.
==> ERROR: A failure occurred in build().
    Aborting...
Error making: tizonia-all
tizonia commented 4 years ago

Hi @jpwhale !

Thanks for reporting this.

c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.

The issue is that your system is running out of memory while building Tizonia. And the compiler crashes. The meson/ninja build system defaults to parallelizing the build as much as possible based on the number of CPU cores in the system, but that increases the amount of RAM required to build Tizonia (example: 4 cores -> 8 CPU threads -> 9 ninja jobs -> 24 GB of system RAM or more :-) )

I've updated the AUR package to force one single ninja job. Hopefully, it should allow building Tizonia on a system with 8GB. https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=tizonia-all#n70