lv2 / suil

Library for loading and wrapping LV2 plugin UIs
ISC License
11 stars 5 forks source link

Build with qt5 fails on linux #9

Closed Jacalz closed 5 years ago

Jacalz commented 5 years ago

I am building the suil package for Solus and it currently works with both gtk2 and gtk3 but building with qt5 fails. See error below: image

From what I can tell, cocoa is part of MacOS and not really used on Linux? Is there any way to turn it off, liek adding a option in the waf build file?

drobilla commented 5 years ago

Please paste the complete configure and build output as text. build/config.log might be useful as well.

You apparently have QMacCocoaViewContainer

Jacalz commented 5 years ago

I am building using solbuild (sandboxed build system) and I think those would be hard to get...

Jacalz commented 5 years ago

Will see if I can get you more info when I get back from my vacation...

drobilla commented 5 years ago

OK, well... the compile error is not even in that screenshot. You have QtMacExtras installed in whatever environment you are building in, for some reason.

There is currently no option to disable this, you can just comment out the check in wscript if you want to get past it now though.

Jacalz commented 5 years ago

Thanks for the info, I will see about patching away that and then add qt5 support to the package. I would be happy if you could add an option for it though. Any thoughts to do so?

On a further note, I haven’t got QtMacExtras installed as it for one isn’t included in the build files nor does it exist in the repository anyways.

Jacalz commented 5 years ago

Here is the full log of the build for you:

INFO[21:09:32] Now starting build of package                 package=suil
[HISTORY] Release not consistent
[Info] Building suil-0.10.2
[Build] Building native package
[Source] Extracting source
[Build] Running step: setup
[Build] Enabling ccache
+ cd /home/build/YPKG/root/suil/build/suil-0.10.2
+ export 'CFLAGS=-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ CFLAGS='-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ export 'CXXFLAGS=-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ CXXFLAGS='-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ export 'LDFLAGS=-Wl,--copy-dt-needed-entries -Wl,-O1 -Wl,-z,relro -Wl,-z,now -Wl,-z,max-page-size=0x1000 -Wl,-Bsymbolic-functions -Wl,--sort-common'
+ LDFLAGS='-Wl,--copy-dt-needed-entries -Wl,-O1 -Wl,-z,relro -Wl,-z,now -Wl,-z,max-page-size=0x1000 -Wl,-Bsymbolic-functions -Wl,--sort-common'
+ export 'FFLAGS=-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ FFLAGS='-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ export 'FCFLAGS=-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ FCFLAGS='-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ export PATH=/usr/lib64/ccache/bin:/usr/bin:/bin:/usr/sbin:/sbin
+ PATH=/usr/lib64/ccache/bin:/usr/bin:/bin:/usr/sbin:/sbin
+ export workdir=/home/build/YPKG/root/suil/build/suil-0.10.2
+ workdir=/home/build/YPKG/root/suil/build/suil-0.10.2
+ export package=suil
+ package=suil
+ export release=3
+ release=3
+ export version=0.10.2
+ version=0.10.2
+ export sources=/home/build/YPKG/sources
+ sources=/home/build/YPKG/sources
+ export pkgfiles=/home/build/work/files
+ pkgfiles=/home/build/work/files
+ export installdir=/home/build/YPKG/root/suil/install
+ installdir=/home/build/YPKG/root/suil/install
+ export PKG_ROOT_DIR=/home/build/YPKG/root/suil
+ PKG_ROOT_DIR=/home/build/YPKG/root/suil
+ export PKG_BUILD_DIR=/home/build/YPKG/root/suil/build
+ PKG_BUILD_DIR=/home/build/YPKG/root/suil/build
+ export LT_SYS_LIBRARY_PATH=/usr/lib64
+ LT_SYS_LIBRARY_PATH=/usr/lib64
+ export CC=x86_64-solus-linux-gcc
+ CC=x86_64-solus-linux-gcc
+ export CXX=x86_64-solus-linux-g++
+ CXX=x86_64-solus-linux-g++
+ export LD_AS_NEEDED=1
+ LD_AS_NEEDED=1
+ export SOURCE_DATA_EPOCH=1545663624
+ SOURCE_DATA_EPOCH=1545663624
+ unset DISPLAY SUDO_USER SUDO_GID SUDO_UID SUDO_COMMAND CDPATH
+ ./waf configure --prefix=/usr --libdir=/usr/lib64
Setting top to                           : /home/build/YPKG/root/suil/build/suil-0.10.2 
Setting out to                           : /home/build/YPKG/root/suil/build/suil-0.10.2/build 
Checking for 'gcc' (C compiler)            : x86_64-solus-linux-gcc 
Checking for 'g++' (C++ compiler)          : x86_64-solus-linux-g++ 
Checking for flag '-std=c99'               : yes 
Checking for link flags -Wl,-z,-nodelete   : yes 
Checking for program 'pkg-config'          : /usr/bin/pkg-config 
Checking for 'lv2'                         : yes 
Checking for 'x11'                         : yes 
Checking for 'gtk+-2.0'                    : yes 
Checking for 'gtk+-x11-2.0'                : yes 
Checking for 'gtk+-quartz-2.0'             : not found 
Checking for 'gtk+-3.0'                    : yes 
Checking for 'gtk+-x11-3.0'                : yes 
Checking for 'QtGui'                       : not found 
Checking for 'Qt5Widgets'                  : yes 
Checking for header QMacCocoaViewContainer : yes 
Checking for library dl                    : yes 
Install prefix                             : /usr 
C Flags                                    : -I/home/build/YPKG/root/suil/build/suil-0.10.2 -mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT -DNDEBUG -fshow-column -std=c99 
C++ Flags                                  : -I/home/build/YPKG/root/suil/build/suil-0.10.2 -mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT -DNDEBUG -fshow-column 
Debuggable                                 : no 
Build documentation                        : no 
Shared library                             : yes 
Static library                             : no 
Gtk2 Library Name                          : libgtk-x11-2.0.so.0 
Gtk3 Library Name                          : libgtk-x11-3.0.so.0 
Support for cocoa in gtk2                  : no 
Support for gtk2 in qt4                    : no 
Support for gtk2 in qt5                    : yes 
Support for qt4 in gtk2                    : no 
Support for qt5 in gtk2                    : yes 
Support for win in gtk2                    : no 
Support for x11 in gtk2                    : yes 
Support for x11 in gtk3                    : yes 
Support for x11 in qt4                     : no 
Support for x11 in qt5                     : yes 
Support for cocoa in qt5                   : yes 
'configure' finished successfully (5.403s)
[Build] setup successful
[Build] Running step: build
[Build] Enabling ccache
+ cd /home/build/YPKG/root/suil/build/suil-0.10.2
+ export 'CFLAGS=-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ CFLAGS='-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ export 'CXXFLAGS=-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ CXXFLAGS='-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ export 'LDFLAGS=-Wl,--copy-dt-needed-entries -Wl,-O1 -Wl,-z,relro -Wl,-z,now -Wl,-z,max-page-size=0x1000 -Wl,-Bsymbolic-functions -Wl,--sort-common'
+ LDFLAGS='-Wl,--copy-dt-needed-entries -Wl,-O1 -Wl,-z,relro -Wl,-z,now -Wl,-z,max-page-size=0x1000 -Wl,-Bsymbolic-functions -Wl,--sort-common'
+ export 'FFLAGS=-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ FFLAGS='-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ export 'FCFLAGS=-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ FCFLAGS='-mtune=generic -march=x86-64 -g2 -O2 -pipe -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param ssp-buffer-size=32 -fasynchronous-unwind-tables -ftree-vectorize -feliminate-unused-debug-types -Wall -Wno-error -Wp,-D_REENTRANT'
+ export PATH=/usr/lib64/ccache/bin:/usr/bin:/bin:/usr/sbin:/sbin
+ PATH=/usr/lib64/ccache/bin:/usr/bin:/bin:/usr/sbin:/sbin
+ export workdir=/home/build/YPKG/root/suil/build/suil-0.10.2
+ workdir=/home/build/YPKG/root/suil/build/suil-0.10.2
+ export package=suil
+ package=suil
+ export release=3
+ release=3
+ export version=0.10.2
+ version=0.10.2
+ export sources=/home/build/YPKG/sources
+ sources=/home/build/YPKG/sources
+ export pkgfiles=/home/build/work/files
+ pkgfiles=/home/build/work/files
+ export installdir=/home/build/YPKG/root/suil/install
+ installdir=/home/build/YPKG/root/suil/install
+ export PKG_ROOT_DIR=/home/build/YPKG/root/suil
+ PKG_ROOT_DIR=/home/build/YPKG/root/suil
+ export PKG_BUILD_DIR=/home/build/YPKG/root/suil/build
+ PKG_BUILD_DIR=/home/build/YPKG/root/suil/build
+ export LT_SYS_LIBRARY_PATH=/usr/lib64
+ LT_SYS_LIBRARY_PATH=/usr/lib64
+ export CC=x86_64-solus-linux-gcc
+ CC=x86_64-solus-linux-gcc
+ export CXX=x86_64-solus-linux-g++
+ CXX=x86_64-solus-linux-g++
+ export LD_AS_NEEDED=1
+ LD_AS_NEEDED=1
+ export SOURCE_DATA_EPOCH=1545663624
+ SOURCE_DATA_EPOCH=1545663624
+ unset DISPLAY SUDO_USER SUDO_GID SUDO_UID SUDO_COMMAND CDPATH
+ ./waf build --jobs=4
Waf: Entering directory `/home/build/YPKG/root/suil/build/suil-0.10.2/build'
[ 1/19] Compiling src/instance.c
[ 2/19] Compiling src/host.c
[ 3/19] Compiling src/gtk2_in_qt5.cpp
[ 4/19] Compiling src/qt5_in_gtk2.cpp
[ 5/19] Compiling src/x11_in_gtk2.c
[ 6/19] Compiling src/x11_in_gtk3.c
[ 7/19] Compiling src/x11_in_qt5.cpp
[ 8/19] Linking build/libsuil-0.so
[ 9/19] Linking build/libsuil_x11_in_gtk2.so
In file included from /usr/include/gtk-2.0/gtk/gtk.h:89,
                 from ../src/gtk2_in_qt5.cpp:24:
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:59:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
   void (*__gtk_reserved1);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:60:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
   void (*__gtk_reserved2);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:61:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved3’ [-Wparentheses]
   void (*__gtk_reserved3);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:62:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved4’ [-Wparentheses]
   void (*__gtk_reserved4);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:63:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved5’ [-Wparentheses]
   void (*__gtk_reserved5);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:64:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved6’ [-Wparentheses]
   void (*__gtk_reserved6);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:65:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved7’ [-Wparentheses]
   void (*__gtk_reserved7);
        ^
In file included from /usr/include/gtk-2.0/gtk/gtk.h:173,
                 from ../src/gtk2_in_qt5.cpp:24:
/usr/include/gtk-2.0/gtk/gtkstatusicon.h:76:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
   void (*__gtk_reserved1);
        ^
/usr/include/gtk-2.0/gtk/gtkstatusicon.h:77:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
   void (*__gtk_reserved2);
        ^

[10/19] Linking build/libsuil_x11_in_gtk3.so
[11/19] Linking build/libsuil_x11_in_qt5.so
[12/19] Linking build/libsuil_gtk2_in_qt5.so
In file included from /usr/include/gtk-2.0/gtk/gtk.h:89,
                 from ../src/qt5_in_gtk2.cpp:18:
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:59:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
   void (*__gtk_reserved1);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:60:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
   void (*__gtk_reserved2);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:61:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved3’ [-Wparentheses]
   void (*__gtk_reserved3);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:62:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved4’ [-Wparentheses]
   void (*__gtk_reserved4);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:63:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved5’ [-Wparentheses]
   void (*__gtk_reserved5);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:64:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved6’ [-Wparentheses]
   void (*__gtk_reserved6);
        ^
/usr/include/gtk-2.0/gtk/gtkfilechooserbutton.h:65:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved7’ [-Wparentheses]
   void (*__gtk_reserved7);
        ^
In file included from /usr/include/gtk-2.0/gtk/gtk.h:173,
                 from ../src/qt5_in_gtk2.cpp:18:
/usr/include/gtk-2.0/gtk/gtkstatusicon.h:76:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved1’ [-Wparentheses]
   void (*__gtk_reserved1);
        ^
/usr/include/gtk-2.0/gtk/gtkstatusicon.h:77:8: warning: unnecessary parentheses in declaration of ‘__gtk_reserved2’ [-Wparentheses]
   void (*__gtk_reserved2);
        ^

[13/19] Compiling src/cocoa_in_qt5.mm
x86_64-solus-linux-g++: error: ../src/cocoa_in_qt5.mm: Objective-C++ compiler not installed on this system

Waf: Leaving directory `/home/build/YPKG/root/suil/build/suil-0.10.2/build'
Build failed
 -> task in 'suil_cocoa_in_qt5' failed with exit status 1 (run with -v to display more information)
Command '['/bin/bash', '--norc', '--noprofile', '/tmp/ypkg-build5EMzpV']' returned non-zero exit status 1
[Build] build failed
ERRO[21:09:41] Failed to build package                       error="exit status 1"
ERRO[21:09:44] Failed to build packages                     
make[1]: Leaving directory '/home/jacob/Packaging/suil'
make abireport
make[1]: Entering directory '/home/jacob/Packaging/suil'
abireport -p abi_ -D `dirname package.yml` scan-packages `dirname package.yml`
make[1]: Leaving directory '/home/jacob/Packaging/suil'
drobilla commented 5 years ago

Thanks. So you have Qt Cocoa bindings installed on a system with no Objective C compiler. I am not positive that this is wrong, but it seems pretty weird, and you might want to file a bug with that package.

Regardless, I see no way to avoid this without breaking a bunch of other cases, so: e067828

Jacalz commented 5 years ago

Thank you very much for the help 🙂👍

Jacalz commented 5 years ago

After some more investigation this looks like it was a bug in lv2 version 1.14.0. I am sorry to have wasted your time a bit, but you can revert the no-cocoa flag. The build log said nothing about lv2 really and I thought it was up to date, so honestly I just fount this by accident.

drobilla commented 5 years ago

Hm. I don't see how. LV2 itself really has nothing to do with this part of suil configuration. You upgraded LV2 - and only upgraded LV2 - and this stopped happening?

Anyway, the workaround is fine to leave in just in case. I vaguely remember somebody having a similar problem, and there's generally options to turn stuff off for other toolkits.

Jacalz commented 5 years ago

Yes, kind of. I noticed that I was building suil 0.10.2 so I updated it to 0.10.4 and the compilation failed. I noticed that Lv2 was outdated so I updated it and it all worked. I also tried compiling 0.10.2 with updated lv2 and that worked too.

Great to hear that I didn’t really waste your time then. Thanks for the support 👍

drobilla commented 5 years ago

¯\(ツ)

All's well that ends well, I suppose.