Nov 262013

I’m setting up an Alfresco server and I need to test some of the tweaks and configuration I’m working with. Alfresco is big; lots of components including Java, an application server, usually a front end server, a database, etc., etc.  In addition, it is certified to work with a narrow set of other software. For example, Alfresco certifies against Red Hat Enterprise Linux 6, but my development machine is Fedora 19. Red Hat Enterprise Linux 6 comes with MySQL, but Alfresco certifies against a much more recent version.

This is the perfect use-case for an Virtual Machine.

So I started virt-manager to get started. I configured a VM, but … failed. It seems that virt-manager wants to place the image for the virtual machine under /var/lib/libvirt/images. However the /var tree on my laptop is fairly small. I don’t have the space to install a whole other OS there. My home directory, on the other hand, has plenty of space.

This is a perfect use-case for GNOME Boxes.

And, in fact, GNOME Boxes is awesome. Setting up the VM and making it run was easy, quick, and pleasent.  Until it wasn’t.

You see, GNOME Boxes uses isolated networking. The Virtual Machine can connect to external hosts, but nothing can connect into it. After 2 days of struggling, here is how to fix it on Fedora 19:

  • Shut down the virtual machine.
  • Get the name or id of your virtual machine. Run, from the command to get the name:
$ virsh -c qemu:///session list --all
  • Edit your VM’s configuration file using virsh as below: (My VM is named rhel6.4, so that’s what I used. You may need to use the ID of the VM, if available.)
$ virsh edit rhel6.4
  • Find the lines that look like this:
<interface type='user'>
 <mac address='52:54:00:bf:c5:97'/>
 <model type='rtl8139'/>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
  • Remove those lines and replace them with: (If you are not using Fedora, it’s possible that your network device is not named “virbr0“. You can get a list of all the interface names using ifconfig.)
<interface type='bridge'>
 <mac address='00:16:3e:1a:b3:4a'/>
 <source bridge='virbr0'/>
 <model type='virtio'/>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
  • Start the VM, and you should be all set!

Easy, right?

Well, maybe you’re still having problems? Some troubleshooting tips:

  • You may not have bridging set up. Check /etc/qemu/bridge.conf to see that it contains the line:
allow virbr0
  • If you want to run or configure your Boxes VM in virt-manager, you need to connect to the user session, which isn’t possible via the user interface yet. Run:
$ virt-manager -c qemu+unix:///session

If this isn’t working for you, you can request assistance on IRC at: #boxes on GimpNet. If you do not have an IRC client, you can use this web page.

Will this get easier in the future? Absolutely. You can read the discussion and follow the progress on GNOME Bugzilla.

Edits on Nov 27, 2013: Virt Manager and Boxes do NOT need to be shut down while editing the VM details. There is a virsh command to get a list of VM names. Your network interface may not match mine if you are not running Fedora. Add link to the #boxes channel on IRC. Add in troubleshooting section for users without bridged networking configured. You do NOT need to run the VM using virt-manager after this configuration change, Boxes will handle it fine. Add in the Bugzilla link. Thanks to teuf, zeenix, and elad on IRC for the corrections.

 Posted by at 2:21 pm
Aug 232012

Just a quick tip for people who use multiple user accounts at once on Fedora. (I test software using brand new user accounts sometimes, for example. I’ve heard of others may use multiple user accounts to try and sandbox applications they expect to misbehave. [I recommend a VM for this, FWIW.])

If you’ve ever switched users in Fedora and couldn’t get sound to work (su - testuser or ssh testuser@localhost) this tip is for you!

First, you need to install paprefs:

# yum install paprefs

Then, as the default desktop user, run the command:

$ paprefs

Papref's configuration screen

Make sure “Enable network access to local sound devices” is checked.

Then click [ Close ] and sound will work perfectly!

Aug 182007

Do not try this. It’s not a good idea. I don’t endorse it.

That said, I have a Google Calendar that I want to view in Evolution (if just for the nice reminders) but I don’t want to make public, and I can’t use the private URL. I need Evolution to authenticate to Google, and download the calendar. If you can use a private URL, there is already a good solution.

To that end, I made a terrible, horrible, no good patch to allow Evolution to authenticate to Google so I can download my calendar. The trick is to pre-auth with Google, get the auth token from the result, and store it in GConf. From there, the patch will make evolution-data-server recognize Google Calendar URLs and send the auth token in a special header.

Before I get to the patch, here are the problems:

  • Seriously, it’s an ugly patch
  • You have to recompile evolution-data-server
  • Adding an auth token to GConf?! What are you, nuts?
  • Evolution may not be able to understand the appointments set by Google’s calendar
  • The calendar only updates every once in a while
  • You can’t edit the calendar in Evolution

Here’s how to make it work:

First authenticate with Google to get your auth token:

curl -D - -d accountType=HOSTED_OR_GOOGLE \
-d Email='username%40domain' -d Passwd='password'  \
-d service=cl -d source=evolution-testing-0.0.0

Replace username with your email username. Replace domain with your email domain — this will usually be Then replace password with your google password.

This will return three lines, the last one will look like this: Auth=DQAAAGgA...dk3fA5N

Then run:

gconftool-2 --type string -s /apps/evolution/calendar/gauth authstring

You’ll need to replace authstring with the 180+ character string returned by the previous command.

You should only have to do the above once. Or whenever the auth string
expires which seems to be very rare, if at all.

Then quit Evolution and kill the data server with this command:

evolution --force-shutdown

Start evolution after applying this patch.

Go to the calendar component and add:


as a web calendar. You’ll need to replace username with your email username and domain with your email domain, usually You’ll need to check “Use Secure Connection” and I recommend that you cache the calendar locally.

Happily it works for me until the real solution is available.

 Posted by at 11:44 am
Jun 182007

I really enjoy the way Google’s Gmail displays related messages (or threads) as conversations. David Morrison has been working on a plugin for Evolution which tries to replicate this behavior. The last news items was on August of 2005 asking if he was done.

I think it still needs a little bit more work, so I’ve written up a specification for Gmail’s conversation feature.

gmail thread reading thumbnail

Of course, once you do all that, it always turns out that someone else has written something similar already and for the same reason.

 Posted by at 12:58 pm
Apr 192007

So I guess there is a big GNOME announcement today at noon Eastern Time today. On IRC, people were trying to guess what it could be. Here are some of the ideas, which are all very funny:

  • the board decided to release gnome 2.20 as gnome 3.0
  • we are migration gnome desktop to web 2.0 on google
  • they are passing the power to a supreme chancellor
    • to start the clone war
      • jeff has passed to the dark side
  • GNOME will become the default environment for Macintosh
  • GNOME will be the successor of the vista GUI
  • The HIG was a huge mistake and we’re switching the button order back
  • we are going back to the old gnome stone logo
  • we’re releasing GTK+ 3.0
    • with support for Qt as a scripting language?
      • QScript, actually
  • there won’t be widgets anymore, the whole desktop is a large interactive SVG
  • GNOME switches to windows as the target platform
  • all applications are now required to have notification area icons
  • all applications will now be 50% transparent by default
  • all applications should be inside an applet
  • we’re adopting the ms office 2007 ribbon everywhere
  • we migrate our documentation system to .doc
  • We’re changing our name for trademark reasons to “Dwarf”
  • we are changing our name to GMAE because it’s a DOUBLE ACRO-BACKRO-NYM
  • Nautilus is getting support for animated desktop backgrounds
  • Eazel comes back to life, as well as Eazel services

Edit 4/19 @ 2:15 pm ET: Oh my.  Some of the comments are great!

 Posted by at 10:56 am
Feb 182007

Back when I worked for Ximian a common complaint we heard was that Evolution wasn’t good for sending formatted text because it always word wrapped it causing lots of errors.  This was pretty frustrating because it wasn’t true, but since we heard it all the time, it was obviously too confusing.  Here’s the dialog.  Can you guess how to preformat text from this screenshot?

Evolution Composer

If you guessed that you click on the dropdown that says: “Normal” and select “Preformat,” you’re right!

Most people seem to assume that the second toolbar doesn’t do anything when you’re not write an HTML mail.  But that’s not true.

I recently filed this bug report against the Evolution composer. The problem is that the composer is too confusing to use.  Here is the composer editing an HTML message:

Evolution Composer HTML Mode

I propose that the main toolbar lose the “insert” capabilities that only work in HTML mode and gain a toggle button which switches between HTML and plain text mode. When the button is pressed in, you’re sending an HTML message.The secondary toolbar should only contain the controls that are currently active. So text color, font size, font decoration, and font style will not be shown in text mode. And instead of “normal” the default mode should be named for what it actually does: “Word Wrap.” Something like this:

Revised Evolution Composer Text Mode

With this scheme, HTML mode looks like this:

Revised Evolution Composer HTML Mode

See the bug for more mockups.

 Posted by at 4:34 pm