First day in Brno

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[4]: *** [.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.

Trying again.

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 cpan JSON:PP.

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[1]: *** [pap.o] Error 1 make[1]: *** 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.

 

Advertisements

Author: Christophe de Dinechin

I try to change the world, but that's work in progress. If you want to know me, google "Christophe de Dinechin". Keywords: concept programming, virtualization, OS design, programming languages, video games, 3D, modern physics. Some stuff I did that I'm proud of: the first "true" 3D game for the PC, HP's big iron virtualization, real-time test systems for car electronics, some of the best games for the HP48 calculator, a theory of physics that makes sense (at least to me).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s