Building CopperSpice on modern Ubuntu distributions.

Discuss anything related to product development

Building CopperSpice on modern Ubuntu distributions.

Postby rosbacke » Sun Aug 13 2017 2:19 pm


I saw a couple of cppnow talks on Copperspice, Doxypress and Libguarded. It seemed promising so I've checked out the code. Especially liked the attitude with zero tolerance toward multi-threaded bugs and viewing modern C++ as a tool to get rid of them. Also the push to get a good documentation tool for C++. Nice work so far. :-)
I got Copperspice built on Ubuntu 16.04 after some fiddling with packages using cmake. It was fairly straight forward. Got a simple hello world going showing a window and a 'about' requester.

Later on I tried it on Ubuntu 17.04 but ran into trouble. Boils down to gstreamer0.10 not being available in later Ubuntu so I never got past the configure step. It only offers version 1.0 while CopperSpice require 0.10. Checking out gstreamer they are currently working on 1.12. Checking out the code it seems Phonon is the part of Copperspice that needs gstreamer and current Copperspice Phonon version is 4.4. Checking out Phonon they are currently working version 4.9 which should build with QT 5.8. Phonon changed gstreamer to 1.0 at version 4.8.
I also tried building gstreamer 0.10 from source but ran into trouble. Assume it is due to a modern gcc (version 6).

So currently I can work with Ubuntu 16.04 but I'm curious if you have any plans or idea of how to move forward to more modern dependencies? Is it trying to get Phonon upgraded internally to e.g. 4.9, make it possible to disable the gstreamer depenency or replace it with something else? Mostly good to know if I start writing code toward this library.

tnx for the good work.

/ Mikael R
Posts: 2
Joined: Sun Aug 13 2017 1:55 pm

Re: Building CopperSpice on modern Ubuntu distributions.

Postby ansel » Sun Aug 13 2017 6:19 pm

Hi Mikael,

First of all, thank you very much for looking at CopperSpice and your well-researched feedback. As you note, we currently support Ubuntu 14.04 LTS and 16.04 LTS, and our next supported version will be 18.04 LTS.

You mentioned having to fiddle with some packages for the cmake build on Ubuntu 16.04. Was there anything we can note on our "Getting started" guide, or are there any changes we can make to CopperSpice to help future users?

As to the current GStreamer situation, this particular issue is not only problematic on recent Ubuntu but on other bleeding edge Linux distributions as well. We have a three pronged strategy:

  1. Allow disabling phonon and building CopperSpice without gstreamer
    (We have a contributor working on this as an interim solution for applications which do not need AV functionality)
  2. Upgrade phonon to a newer version that supports both gstreamer 1.0 and 0.1
    (We have not yet been able to determine if phonon 4.9 gstreamer supports both, or only 1.0. Do you know if this is the case?)
  3. Examine alternatives to the phonon gstreamer backend on Linux
    (Hopefully, will not be needed)

There is a similar issue on OS X, where OS X 10.12 has removed the QuickTime API (QTKit, no relation to Qt.) I was unable to find a backend plugin for Phonon that supports the new OS X framework, AV Foundation. It sounds like you have some familiarity with Phonon, do you know of any work in this direction?

Thank you again for your interest and your support,

Ansel Sermersheim
CopperSpice Co-Founder
Posts: 52
Joined: Fri Apr 10 2015 8:23 am

Re: Building CopperSpice on modern Ubuntu distributions.

Postby rosbacke » Mon Aug 14 2017 2:25 pm

I didn't look very hard at the getting started guide to be honest. The fiddling mostly consisted of trying to find proper Ubuntu *-dev packages to install to get cmake going. Not sure if its there, but a command line in the documentation such as:

For Ubuntu 16.04:
> sudo apt-get install <list of -dev packages>

I got to this one, but some might be missing since the installation wasn't fresh to start with:

sudo apt-get install git gitk cmake libxml2-dev libaudio-dev xorg-dev libgl1-mesa-dev libssl-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev

It could make the first build a bit faster.

I'm not a Phonon developer myself but once I starting digging into the issue it seemed to some deeper issues there. Hence the post. My impresson of the git-code for Phonon was that they ported it to gstreamer 1.0 and left 0.10 behind. Hence a switch of Phonon for CS probably means upgrading gstreamer to 1.0. But do look into this a bit closer before pouring significant amount of work based on this. It was a quick look.
If support for both gstreamers would be needed with least amount of work, I would probably start with looking into having both phonon 4.9 and 4.4 with the distribution and then make it a build time switch which one is built. One other option could be to look through the changes from 4.4 to 4.9 and see what is needed to support gstreamer 1.0.
Good to know there are some thoughts on how to proceed in the future with this.


--- Mikael R
Posts: 2
Joined: Sun Aug 13 2017 1:55 pm

Re: Building CopperSpice on modern Ubuntu distributions.

Postby barbara » Mon Aug 14 2017 4:00 pm

Thanks for the suggestion about installing the required packages. We will add something like this to the CS Overview documentation.

We do need support for GStreamer 0.10 for Debian Jessie, Fedora 25, and Ubuntu 16.04 and then 1.0 to support target platforms like Ubuntu 17.04. I agree we need to take a closer look at this.

If you have other suggestions or ideas please feel free to let us know.

Posts: 39
Joined: Sat Apr 04 2015 2:32 am

Return to Developers