Monday, June 18. 2007

cfengine: "destination type is silly"

Writing meaningful error message is sometimes hard. Even harder is understanding error message of someone else's program. Today I was buffeled with an error message from cfengine:

cfengine:lava: image exists but destination type 
               is silly (file/dir/link doesn't match)
cfengine:lava: source=/afs/wsi/wsi/environment/fedora/6/cfengine/
               config/ti-background.png,dest=/usr/share/pixmaps

How can a destination type be silly? And what file/dir/link does not match?

Looking into the sources (see second match) revealed that the destination type refers to the type of dest, that is /usr/share/pixmaps, which is a directory. This type does not match the type of the source /afs/wsi/.../ti-background.png, which is a regular file.

So the solution to the problem is explicitly naming the target file in the cfengine configuration files:

dest=/usr/share/pixmaps/ti-background.png

I wish the error message from cfengine would be a bit more verbose on this. But now I know what the error message means, and so do you.