Build Cura 2 on Linux

I’m looking to build Cura 2 Lulzbot edition on Arch Linux.

I found the build scripts ( and source code (

I am attempting to build and I think I’m having some dependency issues. I’ve installed gcc-fortran and python35 from the AUR. I’m building from the v2.6.18 tag with the following commands as per the guide on the README;v2.6.18


This is as far as I’ve gotten in the build process.


  OS               ... Linux             
  Architecture     ... x86_64               
  BINARY           ... 64bit                 
  C compiler       ... GCC  (command line : gcc)
  Fortran compiler ... GFORTRAN  (command line : gfortran)
  Library Name     ... (Multi threaded; Max num-threads is 16)

To install the library, you can run "make PREFIX=/path/to/your/installation install".

[ 15%] Performing install step for 'OpenBLAS'
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
Generating openblas_config.h in /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/include
Generating f77blas.h in /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/include
Generating cblas.h in /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/include
Copying LAPACKE header files to /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/include
Copying the static library to /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/lib
Copying the shared library to /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/lib
Generating openblas.pc in /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/lib/pkgconfig
Generating OpenBLASConfig.cmake in /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/lib/cmake/openblas
Generating OpenBLASConfigVersion.cmake in /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/lib/cmake/openblas
Install OK!
[ 15%] Completed 'OpenBLAS'
[ 15%] Built target OpenBLAS
make: *** [Makefile:106: all] Error 2

Update 2017-07-23
I’ve made some progress by switching to the system version of python specifying a tag.



Info: creating cache file /home/hs/builds/cura-2-lulzbot/src/Cura2build/build/Qt-prefix/src/Qt/qtquickcontrols/.qmake.cache
[ 27%] Performing install step for 'Qt'
strip:/home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/bin/ File format not recognized
strip:/home/hs/builds/cura-2-lulzbot/src/Cura2build/build/inst/bin/ File format not recognized
[ 27%] Completed 'Qt'
[ 27%] Built target Qt
make: *** [Makefile:106: all] Error 2

Please have a look at
You’d need to make a build dir before executing it.
This will build all the external packages by default including Python, Qt, PyQt, OpenBLAS, Numpy, SciPy etc.
You can add -DBUILD_XXXX=OFF options to cmake if you want to try to use external packages.
All the build options are defined in the beginning of
Lines 11-33.
The resulting cx_freeze code should appear in build/dist (and you can run cura from it actually without installing the deb package).
The pre-frozen install for all the packages will be in build/inst .


I think I’ve gotten a bit farther but it looks like there may be an issue with openssl. Perhaps you are using 1.0 where as Arch Linux uses 1.1.

Build commands:


The tail end of the build log:

In file included from /usr/include/openssl/crypto.h:31:0,
                 from /usr/include/openssl/comp.h:16,
                 from /usr/include/openssl/ssl.h:47,
                 from ../../include/QtNetwork/5.9.1/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:60,
                 from ../../include/QtNetwork/5.9.1/QtNetwork/private/qsslcontext_openssl_p.h:1,
                 from ssl/qsslsocket_p.h:62,
                 from ssl/qsslkey_p.h:57,
                 from ssl/qsslkey_openssl.cpp:42:
/usr/include/openssl/ossl_typ.h:107:16: note: forward declaration of ‘DSA {aka struct dsa_st}’
 typedef struct dsa_st DSA;
ssl/qsslkey_openssl.cpp: In function ‘QByteArray doCrypt(QSslKeyPrivate::Cipher, const QByteArray&, const QByteArray&, const QByteArray&, int)’:
ssl/qsslkey_openssl.cpp:276:20: error: aggregate ‘EVP_CIPHER_CTX ctx’ has incomplete type and cannot be defined
     EVP_CIPHER_CTX ctx;
make[6]: *** [Makefile:25576: .obj/qsslkey_openssl.o] Error 1
make[5]: *** [Makefile:246: sub-network-make_first] Error 2
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [Makefile:49: sub-src-make_first] Error 2
make[3]: *** [Makefile:52: module-qtbase-make_first] Error 2
make[2]: *** [CMakeFiles/Qt.dir/build.make:114: Qt-prefix/src/Qt-stamp/Qt-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:786: CMakeFiles/Qt.dir/all] Error 2
make: *** [Makefile:106: all] Error 2
==> ERROR: A failure occurred in build().

The issue is that Qt5.9 doesn’t build with openssl 1.1, it only builds with 1.0

The solution we came up with was to use
under Debian on build machine and bundle SSL into the Qt.

The other solution is to disable SSL in Qt build for Linux also:;868570cf0595afada74d8df242f09bea2fa6d96d$417
But this has a draw-back because plugins that are using HTTPS (like Octoprint) will not work.

Qt5.10 will build with openssl1.1 but it wasn’t released yet.


Thanks for the update. There is an openssl 1.0 package for arch but I’m not sure how to specify this version be used during the build.

I may have found something in how the current Arch Linux qt5-base package is build with `export OPENSSL_LIBS=’-L/usr/lib/openssl-1.0 -lssl -lcrypto’