Visiting Brno and the Czech republic for the first time. Finally getting to meet the team in person.
Tao3D builds (over the week-end)
Over the week-end, I tried to repair the badly bit-rotten Tao3D build. I need a custom-built version of Qt, because the default download for Qt5.7 no longer includes WebKit, and WebKit is still the only option for turning a web page into a texture as far as I can tell.
So I went ahead and checked out the current head:
git clone git://code.qt.io/qt/qt5.git git submodule update --init --recursive configure (select and accept open source license) make -j16
This fails with a problem with a moc file (the stuff that Qt generates automatically to implement signals and slots):
In file included from dialogs/qprintdialog_mac.mm:360: .moc/release/moc_qprintdialog.cpp:99:31: error: no member named '_q_togglePageSetCombo' in 'QPrintDialogPrivate' case 1: _t->d_func()->_q_togglePageSetCombo((*reinterpret_cast< ... ~~~~~~~~~~~~ ^ .moc/release/moc_qprintdialog.cpp:100:31: error: no member named '_q_collapseOrExpandDialog' in 'QPrintDialogPrivate' case 2: _t->d_func()->_q_collapseOrExpandDialog(); break; ~~~~~~~~~~~~ ^ .moc/release/moc_qprintdialog.cpp:101:31: error: no member named '_q_checkFields' in 'QPrintDialogPrivate' case 3: _t->d_func()->_q_checkFields(); break; ~~~~~~~~~~~~ ^ 3 errors generated. make: *** [.obj/release/qprintdialog_mac.o] Error 1
I filed QTBUG-58325 for that. After a quick investigation, it turns out that for some reason,
Q_OS_MAC is not defined for this component. I suspect a missing header, but until this is fixed the proper way, there is a workaround that I documented in the bug report, which is to explicitly pass that define on the command line, i.e. add a
-DQ_OS_MAC to the
moc command line (two commands if you are building debug+release as I’m doing).
Next, installing also fails:
% sudo make install [...] Project ERROR: /Users/ddd/Work/qt5/qtenginio/examples/enginio/widgets/image-gallery-cpp/image-gallery-cpp.pro is lacking an install target.
It’s surprising that there are build-level failures in a project as mature as Qt. I would have expected some automated testing to pick up this kind of things early on. In the meantime, I’ll use
make -k install, but the question is: “what will I be missing”? Filed QTBUG-58341 for this one. Apparently, it’s a problem with me not reading the README files.
Meeting the team
Now, that is fun. I just wish I wasn’t so bad at remembering first names 😉
Building Spice on Linux
Now running into
Can't locate JSON/PP.pm in @INC (you may need to install the JSON::PP module) (@INC contains: /home/ddd/jhbuild/install/lib/perl5 /usr/local/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /home/ddd/jhbuild/checkout/webkitgtk-2.15.3/Source/WebCore/css/makeprop.pl line 32. BEGIN failed--compilation aborted at /home/ddd/jhbuild/checkout/webkitgtk-2.15.3/Source/WebCore/css/makeprop.pl line 32.
Missing Perl module, need to
dnf install cpan and then
Building Spice on Mac
When trying to build with
jhbuild -f jhbuildrc build, it complained as follows:
% jhbuild -f jhbuildrc build jhbuild build: could not download http://cgit.freedesktop.org/spice/spice-jhbuild/plain/modulesets/spice.xml?h=osx: ''
Curiously, I can download the file manually. Editing
jhbuildrc to change the value of
moduleset to point to a local copy of the file helped. Then, a few things built, and I hit:
Compiling scsi.c... Compiling scsi.c... parallel.c:277:31: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare] while (copies > 0 && tbytes >= 0) ~~~~~~ ^ ~ parallel.c:289:33Compiling serial.c... : warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare] if (print_fd != 0 && tbytes >= 0) ~~~~~~ ^ ~ parallel.cpap.c::30387::1810:: warning: fatal error: comparison of unsigned'netat/appletalk.h' expressionfile not< found0 is always false [-Wtautological-compare] #include <netat/appletalk.h> return (tbytes < 0 ? CUPS_BACKEND_FAILED : CUPS_BACKEND_OK); ^ ~~~~~~ ^ ~ 1 error generated. make: *** [pap.o] Error 1 make: *** Waiting for unfinished jobs.... Compiling snmp.c... 3 warnings generated. lpd.c:708:12: warning: 'rresvport_af' is deprecated [-Wdeprecated-declarations] if ((fd = rresvport_af(&lport, addr->addr.addr.sa_family)) < 0) ^ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/unistd.h:700:19: note: 'rresvport_af' has been explicitly marked deprecated here __deprecated int rresvport_af(int *, int);
Nice mixed messages thanks to parallel builds. Drop to a shell, retry
make, and I get
pap.c:87:10: fatal error: 'netat/appletalk.h' file not found #include <netat/appletalk.h>
This looks like rather obsolete stuff (Printer Access Protocol on top of AppleTalk Transaction Protocol). Not sure if there is a way to revive that code. I guess cups is installed by default anyways, so no point in rebuilding an outdated version.