Spice builds

Spice builds are ongoing… Addressing minor failures.

Spice build on Mac

On the Mac, jhbuild bootstrap works and does a number of things, but it seems that jhbuild build simply hangs. I left it running overnight, and nothing happened.

Tried jhbuild --verbose, as well as a few variations, got:

ddd@lanhost445[osx] spice-jhbuild> jhbuild --verbose build
Usage: jhbuild [ -f config ] command [ options ... ]

jhbuild: error: no such option: --verbose
ddd@lanhost445[osx] spice-jhbuild> jhbuild build --verbose 
Usage: jhbuild build [ options ... ] [ modules ... ]

jhbuild: error: no such option: --verbose
ddd@lanhost445[osx] spice-jhbuild> jhbuild -v build
Usage: jhbuild [ -f config ] command [ options ... ]

jhbuild: error: no such option: -v
ddd@lanhost445[osx] spice-jhbuild> jhbuild build -v 
Usage: jhbuild build [ options ... ] [ modules ... ]

jhbuild: error: no such option: -v

Naive process that believe it can hide things from me! I have the power.

% dtruss jhbuild build
dtrace: failed to initialize dtrace: DTrace requires additional privileges

OK, OK. I am root, I can do anything. First thought is:

sudo chmod u+s /usr/sbin/dtrace

But that’s bad. It’s a big security hole, since now anybody connected to my Mac could gain root access easily. So as much as I don’t like typing, let’s go safe for now:

% sudo dtruss -f sudo -u ddd jhbuild build
[Intense nothingness here for several long seconds, then…]
WARNING: The file at [/Library/Extensions/klnke.kext/Contents/MacOS/klnke] does not match the UUID of the version loaded in the kernel
WARNING: The file at [/Library/Extensions/klif.kext/Contents/MacOS/klif] does not match the UUID of the version loaded in the kernel
    PID/THRD  SYSCALL(args)          = return

Now, that’s really peculiar. So this process does nothing? At all? Something is unsatisfyingly wrong here. These kernel extensions look suspiciously like some Kaspersky stuff.

It’s not just jhbuild. It looks like dtruss is badly broken on macOS Sierra:

%  sudo dtruss -f sudo -u ddd ls
WARNING: The file at [/Library/Extensions/klnke.kext/Contents/MacOS/klnke] does not match the UUID of the version loaded in the kernel
WARNING: The file at [/Library/Extensions/klif.kext/Contents/MacOS/klif] does not match the UUID of the version loaded in the kernel
README              jhbuildrc           patches
bundle              modulesets          spice-osx-build-setup.sh
    PID/THRD  SYSCALL(args)          = return

I suspect some new Apple enhancement like “system integrity protection”. On my personal Mac, for dtruss ls, I get:

% sudo dtruss ls
dtrace: system integrity protection is on, some features will not be available
dtrace: failed to execute ls: dtrace cannot control executables signed with restricted entitlements

This is so completely broken, Apple! Reminds me of when I totally failed to install gdb because Apple would not let me debug anything on my system if I was using a debugger not signed by Apple. Argh.

Ok, so apparently the right way to do things is to open two terminal windows. In one, you type sudo dtruss -fn ls. You wait several seconds (it’s important, dtruss takes forever and a half to start, maybe because I have two VMs building stuff). Then you type ls in another terminal window, and you see the output. Complicated, not deterministic (which ls am I picking up?). But at least it works… for ls, that is.

Because when I try that with jhbuild or python, I get nothing.

Spice build on Linux

The Linux side starts building things, but then stops with:

make[2]: Entering directory '/home/ddd/.cache/jhbuild/build/gobject-introspection'
GISCAN GLib-2.0.gir
gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
Traceback (most recent call last):
File "/usr/lib64/python3.5/distutils/unixccompiler.py", line 128, in _compile
extra_postargs)
File "/usr/lib64/python3.5/distutils/ccompiler.py", line 909, in spawn
spawn(cmd, dry_run=self.dry_run)
File "/usr/lib64/python3.5/distutils/spawn.py", line 36, in spawn
_spawn_posix(cmd, search_path, dry_run=dry_run)
File "/usr/lib64/python3.5/distutils/spawn.py", line 159, in _spawn_posix
% (cmd, exit_status))
distutils.errors.DistutilsExecError: command 'gcc' failed with exit status 1

The peculiar thing in this log is the reference to redhat-hardened-cc1. Fixed with dnf install redhat-rpm-config. It’s neat that jhbuild lets you restart from where it first failed. These builds are long enough as is 😉

VMware issue

Investigation with Sinclair still ongoing. He pointed me to the vmware.log he wanted, so I uploaded it.

Misc

Programming language of the day is Microsoft Dafny. This looks like a good idea until you see what a QuickSort looks like:-/

The first machine I did assembly language on was a Sinclair ZX-81, with a rather beefy 8-bit Z80. Surprisingly, some people still develop for the Z80 (I heard there was one in many disk or DVD drives). But now, you have systems with two 32-bit ARM microcontrollers just to deal with the stuff around the Z80. A bit silly, unless it lets you develop faster. Who know, there must be a reason for this 🙂

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