GNOME Bugzilla – Bug 796435
GStreamer 1.14.1 does not build on CentOS 7.4
Last modified: 2018-08-02 01:58:13 UTC
GStreamer 1.14.1 does not build on CentOS 7.4 - bootstrap fails when trying to install meson, because it needs python 3.5. However on CentOS 7 command python3 points to python 3.4, even if python 3.6 is installed. I had to manually change symlink /bin/python3 to point to python3.6. After doing this I bootstrap completed successfully. Now "cerbero-uninstalled package gstreamer-1.0" is in progress, I hope that it will complete successfully too. BTW, GStreamer 1.14.0 builds fine on this system.
One more problem, gst-omx-1.0 complains about missing header: [(76/80) gst-omx-1.0 -> compile ] Running command 'make' [... a lot of lines here ...] libtool: compile: gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I.. -DGST_USE_UNSTABLE_API=1 -I/home/daniel/cerbero_1.14.1/build/sources/linux_x86_64/gst-omx-1.0-1.15.0.1/omx/openmax -pthread -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/gstreamer-1.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/gstreamer-1.0/include -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/gstreamer-1.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/orc-0.4 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/gstreamer-1.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/libffi-3.99999/include -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/glib-2.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/glib-2.0/include -pthread -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/gstreamer-1.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/libffi-3.99999/include -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/glib-2.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/glib-2.0/include -pthread -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/gstreamer-1.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/libffi-3.99999/include -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/glib-2.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/glib-2.0/include -pthread -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/gstreamer-1.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/libffi-3.99999/include -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/glib-2.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/glib-2.0/include -DG_THREADS_MANDATORY -DG_DISABLE_DEPRECATED -Wall -Wdeclaration-after-statement -Wvla -Wpointer-arith -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wformat-nonliteral -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs -Werror -g -DGST_DISABLE_DEPRECATED -pthread -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/gstreamer-1.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/libffi-3.99999/include -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/glib-2.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/glib-2.0/include -pthread -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/include/glib-2.0 -I/home/daniel/cerbero_1.14.1/build/dist/linux_x86_64/lib/glib-2.0/include -Wall -g -O2 -m64 -Wall -g -O2 -m64 -MT libgstomx_la-gstomxvideodec.lo -MD -MP -MF .deps/libgstomx_la-gstomxvideodec.Tpo -c gstomxvideodec.c -fPIC -DPIC -o .libs/libgstomx_la-gstomxvideodec.o gstomxvideodec.c:41:39: fatal error: gst/gl/egl/gstglmemoryegl.h: No such file or directory #include <gst/gl/egl/gstglmemoryegl.h> ^ compilation terminated. make[2]: *** [libgstomx_la-gstomxvideodec.lo] Error 1 make[2]: Leaving directory `/home/daniel/cerbero_1.14.1/build/sources/linux_x86_64/gst-omx-1.0-1.15.0.1/omx' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/daniel/cerbero_1.14.1/build/sources/linux_x86_64/gst-omx-1.0-1.15.0.1' make: *** [all] Error 2 Recipe 'gst-omx-1.0' failed at the build step 'compile'
Why are you building gst-omx? That's usually not needed on x86.
"./cerbero-uninstalled package gstreamer-1.0" decided that it must be built.
Indeed, it should not build it.
There is no discussion around it in https://bugzilla.gnome.orgshow_bug.cgi?id=795526. The generic build isn't very useful, on PC, only Tizonia is usable, but there is very little gain really. Maybe they wanted it for CI purpose (clearly there is a deps issue).
As I recall it worked for GStreamer 1.14.0 - I did not get any build errors. BTW, I got one more error at the end when RPMs were created. Fortunately I do not need them. I ran out of disk space when linking gst-libav-1.0 and had to add more space to my VM to continue with build, maybe it is related: -----> Creating package for gstreamer-1.0-core ***** Error running 'package' command: The following files required by this package are missing: lib/gstreamer-1.0/libgstsrt.la lib/gstreamer-1.0/libgstsrt.a
Well, normally building gst-plugins-base should provide <gst/gl/egl/gstglmemoryegl.h>. And the recipe have explicit deps to that, so something is obviously not correct with your build. Have you considered running wipe ?
I started build in new directory where I cloned cerbero repo, like described on page linked below. I assume that in such case wipe is not needed. https://gstreamer.freedesktop.org/documentation/installing/building-from-source-using-cerbero.html Is there any log to check for more details?
I have started new build in new directory. I will let you know if errors observed before will appear again.
I've just tried on a freshly installed centos docker, and could reproduce the same issue with cerbero master (had to install python3 manually, and create symlinks).
First thing I notice is that meson-libEGL-devel is not being installed by the bootstrap. I also had a libxml2 build failure, as it was expecting python-devel (python2) to be installed, which we removed recently from the bootstrap.
Created attachment 372448 [details] [review] bootstrap: Install mesa-libEGL-devel on RedHat OS gst-omx has EGL dependency, but it also makes the buils more useful as it's needed for Wayland support.
So that fixes one thing, I still have the libxml2 and the missing srt plugins issues. About the mesa one, I wonder if it wouldn't be better to install all the mesa backends we support, including GBM ?
Created attachment 372449 [details] [review] Only package gst-omx with the rpi variant The generic build of gst-omx is not very useful. The only purpose is for checking that the build works.
Attachment 372448 [details] pushed as babf4ae - bootstrap: Install mesa-libEGL-devel on RedHat OS Attachment 372449 [details] pushed as 20a49ec - Only package gst-omx with the rpi variant
Comment on attachment 372448 [details] [review] bootstrap: Install mesa-libEGL-devel on RedHat OS commit babf4ae74b2e27e5746cd7c1d78050c4bee5494f Author: Nicolas Dufresne <nicolas.dufresne@collabora.com> Date: Mon May 28 14:50:47 2018 -0400 bootstrap: Install mesa-libEGL-devel on RedHat OS gst-omx has EGL dependency, but it also makes the buils more useful as it's needed for Wayland support. https://bugzilla.gnome.org/show_bug.cgi?id=796435
Comment on attachment 372449 [details] [review] Only package gst-omx with the rpi variant commit 20a49ecd908cceb29a8680b08d00d4529cebc23d (HEAD -> master, origin/master, origin/HEAD) Author: Nicolas Dufresne <nicolas.dufresne@collabora.com> Date: Mon May 28 15:02:03 2018 -0400 Only package gst-omx with the rpi variant The generic build of gst-omx is not very useful. The only purpose is for checking that the build works. https://bugzilla.gnome.org/show_bug.cgi?id=796435