EricssonResearch / openwebrtc

A cross-platform WebRTC client framework based on GStreamer
http://www.openwebrtc.org
BSD 2-Clause "Simplified" License
1.8k stars 537 forks source link

cerbero not building openwebrtc properly #685

Open pavank1933 opened 7 years ago

pavank1933 commented 7 years ago

I am trying to build openwebrtc server using cerbero. When i tried to execute the following command - "

cd ~/cerbero \
&& ./cerbero-uninstalled -c config/linux.cbc fetch-package --full-reset --reset-rdeps openwebrtc \
&& ./cerbero-uninstalled -c config/linux.cbc bootstrap \
&& ./cerbero-uninstalled -c config/linux.cbc package -f openwebrtc

" facing the following issue-

[root@ip-172-31-22-151 cerbero]# cd ~/cerbero \
> && ./cerbero-uninstalled -c config/linux.cbc fetch-package --full-reset --reset-rdeps openwebrtc \
> && ./cerbero-uninstalled -c config/linux.cbc bootstrap \
> && ./cerbero-uninstalled -c config/linux.cbc package -f openwebrtc
Traceback (most recent call last):
  File "./cerbero-uninstalled", line 8, in <module>
    from cerbero.main import main
  File "./cerbero/main.py", line 19, in <module>
    from cerbero import hacks
  File "./cerbero/hacks.py", line 132, in <module>
    from cerbero.utils.shell import call as shell_call
  File "./cerbero/utils/shell.py", line 42, in <module>
    PLATFORM = system_info()[0]
  File "./cerbero/utils/__init__.py", line 249, in system_info
    raise FatalError("Distribution '%s' not supported" % str(d))
cerbero.errors.FatalError

Running this in the Amazon linux. Help me out with the issue.

ford-prefect commented 7 years ago

Could you try this out? https://arunraghavan.net/temp/0001-build-Add-support-for-Amazon-Linux.patch

As the commit message indicates, you will likely need EPEL packages for a few things before it'll work (i.e. build the final packages).

pavank1933 commented 7 years ago

I downloaded the patch file you have specified using curl command arun. When i tried to apply patch file using the below syntax facing the below issue:-

[root@ip-172-31-23-222 cerbero]# git apply 0001-build-Add-support-for-Amazon-Linux.patch
error: patch failed: cerbero/enums.py:92
error: cerbero/enums.py: patch does not apply
error: patch failed: recipes/glib.recipe:168
error: recipes/glib.recipe: patch does not apply
ford-prefect commented 7 years ago

@pavank1933 you might need to look at the changes I made and apply them to those files, as it is against Cerbero master and not the OpenWebRTC repo.

pavank1933 commented 7 years ago

Arun,

It worked well after applying the patch. After some time of build, facing the below issue-

[(18/44) graphene -> already built ]
[(19/44) gst-plugins-bad-1.0 -> already built ]
[(20/44) libnice -> already built ]
[(21/44) libunwind -> already built ]
[(22/44) gstreamer-1.0-static -> already built ]
[(23/44) gst-plugins-base-1.0-static -> already built ]
[(24/44) gst-plugins-good-1.0-static -> fetch ]
[(24/44) gst-plugins-good-1.0-static -> extract ]
[(24/44) gst-plugins-good-1.0-static -> configure ]
-----> copying /root/cerbero/data/autotools/config.guess to /root/cerbero/build/                                                                                                                sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/config.guess
-----> copying /root/cerbero/data/autotools/config.sub to /root/cerbero/build/so                                                                                                                urces/linux_x86_64/gst-plugins-good-1.0-static-1.11/config.sub
[(24/44) gst-plugins-good-1.0-static -> compile ]
[(24/44) gst-plugins-good-1.0-static -> install ]
[(24/44) gst-plugins-good-1.0-static -> post_install ]
Running command 'sed -i "s#^libdir='\(.*\)'#libdir='\1/static'#" /root/cerbero/b                                                                                                                uild/sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/open                                                                                                                webrtc-0.3/lib/gstreamer-1.0/libgstvideo4linux2.la'
Running command 'sed -i "s#^libdir='\(.*\)'#libdir='\1/static'#" /root/cerbero/b                                                                                                                uild/sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/open                                                                                                                webrtc-0.3/lib/gstreamer-1.0/libgstalaw.la'
Running command 'sed -i "s#^libdir='\(.*\)'#libdir='\1/static'#" /root/cerbero/b                                                                                                                uild/sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/open                                                                                                                webrtc-0.3/lib/gstreamer-1.0/libgstmulaw.la'
Running command 'sed -i "s#^libdir='\(.*\)'#libdir='\1/static'#" /root/cerbero/b                                                                                                                uild/sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/open                                                                                                                webrtc-0.3/lib/gstreamer-1.0/libgstvpx.la'
Running command 'sed -i "s#^libdir='\(.*\)'#libdir='\1/static'#" /root/cerbero/b                                                                                                                uild/sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/open                                                                                                                webrtc-0.3/lib/gstreamer-1.0/libgstvideofilter.la'
Running command 'sed -i "s#^libdir='\(.*\)'#libdir='\1/static'#" /root/cerbero/b                                                                                                                uild/sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/open                                                                                                                webrtc-0.3/lib/gstreamer-1.0/libgstvideocrop.la'
Running command 'sed -i "s#^libdir='\(.*\)'#libdir='\1/static'#" /root/cerbero/b                                                                                                                uild/sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/open                                                                                                                webrtc-0.3/lib/gstreamer-1.0/libgstrtp.la'
Running command 'sed -i "s#^libdir='\(.*\)'#libdir='\1/static'#" /root/cerbero/b                                                                                                                uild/sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/open                                                                                                                webrtc-0.3/lib/gstreamer-1.0/libgstrtpmanager.la'
Running command 'sed -i "s#^libdir='\(.*\)'#libdir='\1/static'#" /root/cerbero/b                                                                                                                uild/sources/linux_x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/open                                                                                                                webrtc-0.3/lib/gstreamer-1.0/libgstudp.la'

Recipe 'gst-plugins-good-1.0-static' failed at the build step 'post_install'
Traceback (most recent call last):
  File "./cerbero/build/oven.py", line 143, in _cook_recipe
    stepfunc()
  File "/root/cerbero/recipes/custom.py", line 102, in post_install
    shutil.copyfile(src, dest)
  File "/usr/lib64/python2.7/shutil.py", line 82, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: '/root/cerbero/build/sources/linux                                                                                                                _x86_64/gst-plugins-good-1.0-static-1.11/static-build/opt/openwebrtc-0.3/lib/gst                                                                                                                reamer-1.0/libgstpulse.a'
Select an action to proceed:
[0] Enter the shell
[1] Rebuild the recipe from scratch
[2] Rebuild starting from the failed step
[3] Skip recipe
[4] Abort
ford-prefect commented 7 years ago

As I wrote in the commit message, you'll probably need to use EPEL 6 to get the pulseaudio-libs=devel package on your instance, and then continue the build.

pavank1933 commented 7 years ago

EPEL 6 is already there by default arun.

[root@ip-172-31-30-213 ~]# yum repolist
Loaded plugins: priorities, update-motd, upgrade-helper
repo id                                     repo name                                 status
amzn-main/latest                            amzn-main-Base                            5,668
amzn-updates/latest                         amzn-updates-Base                           251
repolist: 5,919
ford-prefect commented 7 years ago

In which case, you'll either need to figure out how to get the pulseaudio devel libs (assuming you want audio playback/capture support on Linux in your packages).