Sierra

I’ve been getting errors when making the GTK+ version provided by Ardour (https://ardour.org/current_dependencies.html).

Here are the errors:

In file included from updateiconcache.c:56: ./gtkiconcachevalidator.c:166:7: error: use of undeclared identifier 'GdkPixdata' GdkPixdata data; ^ ./gtkiconcachevalidator.c:168:28: warning: implicit declaration of function 'gdk_pixdata_deserialize' is invalid in C99 [-Wimplicit-function-declaration] check ("pixel data", gdk_pixdata_deserialize (&data, length, ^ ./gtkiconcachevalidator.c:168:54: error: use of undeclared identifier 'data' check ("pixel data", gdk_pixdata_deserialize (&data, length, ^ updateiconcache.c:168:3: error: unknown type name 'GdkPixdata' GdkPixdata pixdata; ^ updateiconcache.c:476:7: error: use of undeclared identifier 'GdkPixbuf' GdkPixbuf *pixbuf; ^ updateiconcache.c:476:18: error: use of undeclared identifier 'pixbuf' GdkPixbuf *pixbuf; ^ updateiconcache.c:515:4: error: use of undeclared identifier 'pixbuf' pixbuf = gdk_pixbuf_new_from_file (path, NULL); ^ updateiconcache.c:515:13: warning: implicit declaration of function 'gdk_pixbuf_new_from_file' is invalid in C99 [-Wimplicit-function-declaration] pixbuf = gdk_pixbuf_new_from_file (path, NULL); ^ updateiconcache.c:517:8: error: use of undeclared identifier 'pixbuf' if (pixbuf) ^ updateiconcache.c:519:8: warning: implicit declaration of function 'gdk_pixdata_from_pixbuf' is invalid in C99 [-Wimplicit-function-declaration] gdk_pixdata_from_pixbuf (&idata->pixdata, pixbuf, FALSE); ^ updateiconcache.c:519:50: error: use of undeclared identifier 'pixbuf' gdk_pixdata_from_pixbuf (&idata->pixdata, pixbuf, FALSE); ^ updateiconcache.c:824:3: error: use of undeclared identifier 'GdkPixdata' GdkPixdata *pixdata = &image_data->pixdata; ^ updateiconcache.c:824:15: error: use of undeclared identifier 'pixdata' GdkPixdata *pixdata = &image_data->pixdata; ^ updateiconcache.c:830:7: warning: implicit declaration of function 'gdk_pixdata_serialize' is invalid in C99 [-Wimplicit-function-declaration] s = gdk_pixdata_serialize (pixdata, &len); ^ updateiconcache.c:830:30: error: use of undeclared identifier 'pixdata' s = gdk_pixdata_serialize (pixdata, &len); ^ updateiconcache.c:1764:3: warning: implicit declaration of function 'g_type_init' is invalid in C99 [-Wimplicit-function-declaration] g_type_init (); ^ 5 warnings and 11 errors generated. make[3]: *** [updateiconcache.o] Error 1 make[2]: *** [gtkbuiltincache.h] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
Previously, it said 'xcb-shm' is required by 'Cairo', which I solved by export PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig I also noticed brew info gdk-pixbuf said that
Programs that require this module need to set the environment variable export GDK_PIXBUF_MODULEDIR="/usr/local/lib/gdk-pixbuf-2.0/2.10.0/loaders"
so I did that too, but I couldn't tell if it did affected my results. I also tried installing the normal version of GTK+ (ver. 2.24.31) from https://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/ , which seemed to compile and install okay. Does anyone know how to resolve this? (full session here: https://pastebin.com/kEwyKXXU)

That references to xcb is odd, on OSX/MacOS gtk and cairo etc al will use the quartz backend (not X11). As for the issue at hand gtk+ depends on gdkpixbuf (http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.31/) which needs to be compiled and made available first. You can configure that --with-included-loaders=yes to avoid dynamically loading of the modules.

In our experience the main issue comes from mixing homebrew packages with some locally compiled versions with different flags or options.
The complete list of build-dependencies (from scratch) is https://nightly.ardour.org/list.php#build_deps

I have installed gdk-pixbuf before via homebrew. I will try configuring it with those flags. Thanks.
As for quartz, I’m not sure. Maybe because I have XQuartz installed?

I removed the brew version of gdk-pixbuf and reinstalled it from source (v. 2.31.6) with the flag you suggested. And then I tried reinstalling gtk+. It didn’t work. I tried the X11 version from the ardour site too (they have one for Quartz and X11). No luck. I got the following:

In file included from updateiconcache.c:56: ./gtkiconcachevalidator.c:166:7: error: use of undeclared identifier 'GdkPixdata' GdkPixdata data; ^ ./gtkiconcachevalidator.c:168:28: warning: implicit declaration of function 'gdk_pixdata_deserialize' is invalid in C99 [-Wimplicit-function-declaration] check ("pixel data", gdk_pixdata_deserialize (&data, length, ^ ./gtkiconcachevalidator.c:168:54: error: use of undeclared identifier 'data' check ("pixel data", gdk_pixdata_deserialize (&data, length, ^ updateiconcache.c:168:3: error: unknown type name 'GdkPixdata' GdkPixdata pixdata; ^ updateiconcache.c:476:7: error: use of undeclared identifier 'GdkPixbuf' GdkPixbuf *pixbuf; ^ updateiconcache.c:476:18: error: use of undeclared identifier 'pixbuf' GdkPixbuf *pixbuf; ^ updateiconcache.c:515:4: error: use of undeclared identifier 'pixbuf' pixbuf = gdk_pixbuf_new_from_file (path, NULL); ^ updateiconcache.c:515:13: warning: implicit declaration of function 'gdk_pixbuf_new_from_file' is invalid in C99 [-Wimplicit-function-declaration] pixbuf = gdk_pixbuf_new_from_file (path, NULL); ^ updateiconcache.c:517:8: error: use of undeclared identifier 'pixbuf' if (pixbuf) ^ updateiconcache.c:519:8: warning: implicit declaration of function 'gdk_pixdata_from_pixbuf' is invalid in C99 [-Wimplicit-function-declaration] gdk_pixdata_from_pixbuf (&idata->pixdata, pixbuf, FALSE); ^ updateiconcache.c:519:50: error: use of undeclared identifier 'pixbuf' gdk_pixdata_from_pixbuf (&idata->pixdata, pixbuf, FALSE); ^ updateiconcache.c:824:3: error: use of undeclared identifier 'GdkPixdata' GdkPixdata *pixdata = &image_data->pixdata; ^ updateiconcache.c:824:15: error: use of undeclared identifier 'pixdata' GdkPixdata *pixdata = &image_data->pixdata; ^ updateiconcache.c:830:7: warning: implicit declaration of function 'gdk_pixdata_serialize' is invalid in C99 [-Wimplicit-function-declaration] s = gdk_pixdata_serialize (pixdata, &len); ^ updateiconcache.c:830:30: error: use of undeclared identifier 'pixdata' s = gdk_pixdata_serialize (pixdata, &len); ^ updateiconcache.c:1764:3: warning: implicit declaration of function 'g_type_init' is invalid in C99 [-Wimplicit-function-declaration] g_type_init (); ^ 5 warnings and 11 errors generated. make[3]: *** [updateiconcache.o] Error 1 make[2]: *** [gtkbuiltincache.h] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
If this is from mixing homebrew packages with local ones, then is there any tests I can do to figure out which ones are conflicting?

We’ve said for years that you CANNOT use homebrew or the old macports system if you want to build Ardour. It’s really that simple. We don’t have the resources to keep machines around with this sort of conflict on them.