Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 598515 - x11-libs/cairo-9999 - In function ‘_cairo_gl_gradient_create’: /var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src/cairo-gl-gradient.c:285:36: error: ‘CAIRO_GL_FLAVOR_ES’ undeclared
Summary: x11-libs/cairo-9999 - In function ‘_cairo_gl_gradient_create’: /var/tmp/porta...
Status: RESOLVED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Alexandre Rostovtsev (RETIRED)
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks:
 
Reported: 2016-10-30 10:02 UTC by jospezial
Modified: 2016-11-04 21:28 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,331.86 KB, text/plain)
2016-10-30 10:02 UTC, jospezial
Details
CAIRO_GL_FLAVOR_ES2.patch (CAIRO_GL_FLAVOR_ES2.patch,549 bytes, patch)
2016-10-30 10:54 UTC, jospezial
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description jospezial 2016-10-30 10:02:30 UTC
Created attachment 451915 [details]
build.log

FEATURES="-ccache" MAKEOPTS="-j1" emerge -vat1 cairo

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[ebuild   R   *] x11-libs/cairo-9999::gentoo  USE="X glib opengl svg xcb (-aqua) -debug (-directfb) (-gles2) -static-libs -valgrind -xlib-xcb" ABI_X86="32 (64) (-x32)" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No] 
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) x11-libs/cairo-9999::gentoo

cairo (version 1.15.2 [snapshot]) will be compiled with:

The following surface backends:
  Image:         yes (always builtin)
  Recording:     yes (always builtin)
  Observer:      yes (always builtin)
  Mime:          yes (always builtin)
  Tee:           yes
  XML:           no (disabled, use --enable-xml to enable)
  Skia:          no (disabled, use --enable-skia to enable)
  Xlib:          yes
  Xlib Xrender:  yes
  Qt:            no (disabled, use --enable-qt to enable)
  Quartz:        no (disabled, use --enable-quartz to enable)
  Quartz-image:  no (disabled, use --enable-quartz-image to enable)
  XCB:           yes
  Win32:         no (requires a Win32 platform)
  OS2:           no (disabled, use --enable-os2 to enable)
  CairoScript:   yes
  PostScript:    yes
  PDF:           yes
  SVG:           yes
  OpenGL:        yes
  OpenGL ES 2.0: no (disabled, use --enable-glesv2 to enable)
  BeOS:          no (disabled, use --enable-beos to enable)
  DirectFB:      no (disabled, use --enable-directfb to enable)
  OpenVG:        no (disabled, use --enable-vg to enable)
  DRM:           no (disabled, use --enable-drm to enable)
  Cogl:          no (disabled, use --enable-cogl to enable)

The following font backends:
  User:          yes (always builtin)
  FreeType:      yes
  Fontconfig:    yes
  Win32:         no (requires a Win32 platform)
  Quartz:        no (disabled, use --enable-quartz to enable)

The following functions:
  PNG functions:   yes
  GLX functions:   yes
  WGL functions:   no (WGL headers not found)
  EGL functions:   yes
  X11-xcb functions: no (disabled, use --enable-xlib-xcb to enable)
  XCB-shm functions: yes

The following features and utilities:
  cairo-trace:                yes
  cairo-script-interpreter:   yes

And the following internal features:
  pthread:       yes
  gtk-doc:       no
  gcov support:  no
  symbol-lookup: no (requires bfd)
  test surfaces: no (disabled, use --enable-test-surfaces to enable)
  ps testing:    no (requires libspectre)
  pdf testing:   no (requires poppler-glib >= 0.17.4)
  svg testing:   no (requires librsvg-2.0 >= 2.35.0)


--- The OpenGL surface backend feature is still under active development and
--- is included in this release only as a preview. It does NOT fully work yet
--- and incompatible changes may yet be made to OpenGL surface backend
--- specific API.

--- The tee surface backend feature is still under active development and is
--- included in this release only as a preview. It does NOT fully work yet



...


/bin/sh ../libtool  --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -m32 -DHAVE_CONFIG_H -I. -I/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src -I..  -I/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src -D_REENTRANT      -I/usr/include/pixman-1    -I/usr/include/freetype2 -I/usr/include/freetype2   -I/usr/include/libdrm -I/usr/include/libdrm -I/usr/include/libpng16       -Wall -Wextra -Wmissing-declarations -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wsign-compare -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wvolatile-register-var -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations -Wno-missing-field-initializers -Wno-unused-parameter -Wno-attributes -Wno-long-long -Winline -fno-strict-aliasing -fno-common -Wno-unused-but-set-variable                            -march=native -O2 -pipe -c -o cairo-gl-gradient.lo /var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src/cairo-gl-gradient.c
libtool: compile:  x86_64-pc-linux-gnu-gcc -m32 -DHAVE_CONFIG_H -I. -I/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src -I.. -I/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src -D_REENTRANT -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/libdrm -I/usr/include/libpng16 -Wall -Wextra -Wmissing-declarations -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wsign-compare -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wvolatile-register-var -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations -Wno-missing-field-initializers -Wno-unused-parameter -Wno-attributes -Wno-long-long -Winline -fno-strict-aliasing -fno-common -Wno-unused-but-set-variable -march=native -O2 -pipe -c /var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src/cairo-gl-gradient.c  -fPIC -DPIC -o .libs/cairo-gl-gradient.o
/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src/cairo-gl-gradient.c: In function ‘_cairo_gl_gradient_create’:
/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src/cairo-gl-gradient.c:285:36: error: ‘CAIRO_GL_FLAVOR_ES’ undeclared (first use in this function)
     if (_cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES)
                                    ^~~~~~~~~~~~~~~~~~
/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999/src/cairo-gl-gradient.c:285:36: note: each undeclared identifier is reported only once for each function it appears in
make[3]: *** [Makefile:2355: cairo-gl-gradient.lo] Error 1
make[3]: Leaving directory '/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999-abi_x86_32.x86/src'
make[2]: *** [Makefile:1950: all] Error 2
make[2]: Leaving directory '/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999-abi_x86_32.x86/src'
make[1]: *** [Makefile:902: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/x11-libs/cairo-9999/work/cairo-9999-abi_x86_32.x86'
make: *** [Makefile:753: all] Error 2
 * ERROR: x11-libs/cairo-9999::gentoo failed (compile phase):
 *   emake failed
 *
Comment 1 jospezial 2016-10-30 10:25:01 UTC
As the last successful emerge was on 25. October it must have something to do with that commit:
https://cgit.freedesktop.org/cairo/commit/?id=eb5232002b16193d5ba6c1450d80616914fd9917
gl: Treat GLES v2 as a separate flavor from GLES v3HEADmaster
To support differentiating between GLES v2 and v3, rename the flavor
enum to be version specific, as CAIRO_GL_FLAVOR_ES2.

Then, when GLES v3 support is introduced we can add it as a distinct
flavor enum (i.e. CAIRO_GL_FLAVOR_ES3).

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Comment 2 jospezial 2016-10-30 10:54:23 UTC
Created attachment 451921 [details, diff]
CAIRO_GL_FLAVOR_ES2.patch

diff --git a/src/cairo-gl-gradient.c b/src/cairo-gl-gradient.c
index ac32921..db82c23 100644
--- a/src/cairo-gl-gradient.c
+++ b/src/cairo-gl-gradient.c
@@ -282,7 +282,7 @@ _cairo_gl_gradient_create (cairo_gl_context_t           *ctx,
      * In OpenGL ES 2.0 no format conversion is allowed i.e. 'internalFormat'
      * must match 'format' in glTexImage2D.
      */
-    if (_cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES)
+    if (_cairo_gl_get_flavor () == CAIRO_GL_FLAVOR_ES2)
        internal_format = GL_BGRA;
     else
        internal_format = GL_RGBA;
Comment 3 Matt Turner gentoo-dev 2016-11-01 16:48:30 UTC
Thank you for diagnosing and fixing the bug. Please contribute the patch upstream by mailing it to cairo@cairographics.org.

For a variety of reasons we prefer not to patch live ebuilds. Most of all because when the bug is actually fixed upstream, the build will be broken a second time.
Comment 4 jospezial 2016-11-04 21:28:45 UTC
fixed upstream:

https://cgit.freedesktop.org/cairo/commit/?id=3f1a6f7225e31057a8af9313f051a1d311df0c69
gl: Fix one more CAIRO_GL_FLAVOR_ES3 enum