Subcommander Development Blog

Archive for May 2009

Building Qt on Windows…

leave a comment »

Building Qt (4.5.1) on Windows in a Fusion virtual machine with limited disk space is an adventure… :)¬† The build eats endless Gigabytes. Unfortunately the configure.exe is a bit limited and doesn’t allow to disable building of the demos and the examples.

After getting some hints and ideas by googling I did the following steps:

  1. I did run configure.exe with the -fast option. According to configure.exe -help, -fast only creates Makefiles for library and subdirectory targets.
  2. Then I entered the src directory (that is the source directory for the libraries) and called nmake. That way qt builds only the libraries without the demos or examples.
  3. After  the library build finished, I called nmake clean in the src directory. make clean removes all temporary stuff in the src directory (like the obj files) but NOT the finished libraries and binaries from the top level bin and lib directory.

If you don’t plan to rebuild the libraries the third step frees up about 5 Gigabytes(!) of disk space. I wouldn’t recommend cleaning the src directory if rebuilding is required though. Building the libraries takes several hours…

Written by hauner

Wednesday, 27 May, 2009 at 20:09

Posted in subcommander

Tagged with

msgmerge on MacOSX and ‘No such file or directory’

with 2 comments


I am still around and plan to work more on Subcommander again. :-)

Today I tried to understand a long standing annoying build issue on MacOSX: msgmerge (for me always) fails on MacOSX with a “no such file or directory” error on a file that definitely exists. msgmerge is part of the gettext package which is used to add multiple language support to Subcommander.

Here is the failing command line:

> msgmerge de.po Subcommander.pot
> msgmerge: `./de.po': No such file or directory

The quick fix is to disable backups with --backup=off.

The reason why it fails is that the backup code tries to not simply copy the file but also the file permissions and acl information.

Copying the acl information seems to be the problem. If the po file doesn’t have any acl information, copying the acl information fails. After setting some dummy acl info it works. Interesting enough it seems to work also after removing the acl info again (see man chown to read about setting and deleting acl information).

In copy_acl the following code returns ENOENT if the file has no acl info:

int copy_acl(...):
  acl = acl_get_fd (source_desc);

The man page of ac_get_fd says for ENOENT: The named object does not exist, or the path_p argument points to an empty string.

This doesn’t explain anything, at least to me, so I am not sure if this is a bug in MacOSX or in msgmerges copy code…

Written by hauner

Saturday, 16 May, 2009 at 17:36

Posted in subcommander

Tagged with , ,