[Solved] Assertion 'display' failed in Fedora build

When building synfig-studio, I have the following error:

Making all in images make[2]: Entering directory 'synfigstudio-git20160218/images' mkdir 128x128 mkdir 16x16 synfig -q synfig_icon.sif -o 128x128/synfig_icon.png --time 0 -w 128 -h 128 synfig -q synfig_icon.sif -o 16x16/synfig_icon.png --time 0 -w 16 -h 16 synfig(21895) [15:35:23] info: rendering threads 2 synfig: rendering/opengl/internal/context.cpp:113: synfig::rendering::gl::Context::Context(): Assertion `display' failed. synfig(21894) [15:35:23] info: rendering threads 2 synfig: rendering/opengl/internal/context.cpp:113: synfig::rendering::gl::Context::Context(): Assertion `display' failed. Makefile:1410: recipe for target '128x128/synfig_icon.png' failed make[2]: *** [128x128/synfig_icon.png] Aborted (core dumped) make[2]: *** Waiting for unfinished jobs.... Makefile:1386: recipe for target '16x16/synfig_icon.png' failed

It seems like synfig is trying to open X display, but I usually build Fedora 23 x86_64 rpm package from a build server that doesn’t have X display. I’m using latest git source dated 2016-02-18.

Any way around this? Not sure how it succeeded for 128x128 but not for 16x16.

Hello yusef and welcome here …

It’s a known issue … check this thread to solve it.

By the way none of 128px, 16 px image generation have succeed:

I checked the thread and the issue doesn’t seem to be the same. The issue in the thread is about GLXBadFBConfig.

My issue is before that: synfig cannot even access OpenGL because X display is not available. Digging deeper, some suggested installing older version of synfig that doesn’t depend on X display to convert sif to png and setting SYNFIG variable to point to the old version.

Sinc e I have to build in a build server, it doesn’t seem possible to manually install an old version rpm of synfig (on top of old ETL) and not overwrite the newer version of synfig required to build newer synfig-studio.

Post1: Ok, I combined the binary tar (instead of rpm) of synfigstudio-1.0.2 into the source tar file and modified images/Makefile.am SYNFIG to use the 1.0.2 synfig and that resolved the build.

It would be nice to have the old synfig behavior in the new synfig though.

Can you please post your recipe in the synfig wiki pages under Build / Dev instruction (wiki.synfig.org/Dev:Build_Instructions) in a tips - build server section.

I don’t think we still have an open issue for that.

Hi, I maintain the Fedora RPM, and I’m hitting this issue with a recent git snapshot. How can I work around this? If we can’t build without a display, we can’t ship SynfigStudio.

Hi I maintain the Fedora RPM. I’m seeing this on a recent git snapshot. If I can’t work around this and build without a display, we can’t ship SynfigStudio.

Hi, the current “process” is to install 1.0.2 from the rpm and then to compile newer one from the git source.
Mostly it seems it is only about to produce some icons, maybe we could modify the script for have “prebuilt” images.
Notice that I tried to build on a fresh F24, but the mlt-devel package is available only in x64 but not in x86.
(Current environment Virtualbox Fedora 23 x64, with 1.0.2 installed, works ok)

We can only ship software that we can build from source, nothing prebuilt. In Fedora, mlt is only available in rawhide, but for i686, x86_64, and armv7hl.

To clarify, we can ship prebuilt images, but not prebuilt code.

Current workaround:
After have installed 1.0.2 from the rpm (and a first run for creation of the preferences files)

https://github.com/synfig/synfig/blob/master/synfig-studio/images/Makefile.am
On the first line, replace SYNFIG = synfig by SYNFIG = /opt/synfig/synfig, which points now the 1.0.2 version

This Makefile.am permits to convert .sif to .png and .ico.
But we can replace the execution of the Makefile for this directory by supplying the resources directly.

You should contact Konstantin Dmitriev/Zelgadis, he will be better help on this topic :wink:

In the buildroot we don’t have the 1.0.2 synfig, only the 1.1.10 git snapshot version. Will removing the images line from Makefile.am be sufficient?

I will have to setup a fresh Virtualbox/Fedora 23 to do the test.
Do you have an ETA for your package?

ETL and synfig snapshot builds are in rawhide now, and synfigstudio builds fail currently, so the sooner the better, ideally.

Hi,
I reinstalled a Fedora from scratch during the night.
What I was thinking is working fine.

For mlt-devel, you need to add the RPM Fusion repos
To run the script, root user needs to have its own password (because of su -c)
(Note: if I use DEBUG=1, the produced binary fail because of context, maybe because it is a VM)

First execution of autobuild/synfigstudio-linux-build.sh until the crash of the Makefile concerning images folder.
“Injected” the already processed content of images folder from my current VM but the Makefile.*
In the Makefile.am, I replaced SYNFIG=synfig by SYNFIG=/bin/true, so it “simulates” a successful execution of the commands to create images from .sif files.
These resources are present anyway.

Execute autobuild/synfigstudio-linux-script.sh again, it should compile and run without crash at startup :slight_smile:
If needed, I could upload an archive with all the image resources (about 80MB)

P.S.: Guys, maybe we could update the build system to avoid install of 1.0.2 on later systems, and manually create images (+80MB in GIT)

No Fedora package can rely on anything in a third-party repo, which is why we included mlt in rawhide. I need to be able to build the code from either a tarball or the source code in git, possibly with a patch, not relying on third-party repos or prior versions.

Hello, yusef and limburgher! Please try to use “–without-opengl” option when building synfig-core (not synfig-studio). After that synfig-studio should build fine (if you use an updated synfig-core package).

Dev note: I guess it’s better to disable OpenGL by default for release. It is broken at the moment anyway…

That worked, thank you!