The error message is generated by the gconf source file backends/markup- tree.c in the save_tree_with_locale function on line 4480.
That code assumes that if there was an error, (i.e. write_failed is true) it was caused by something that sets errno. However, there are plenty of ways for an error to occur that don't result in errno getting set. The write_entry function (called by save_tree_with_locale) calls a lot of fprintf and fputs, and if any of those fail, it returns a negative value (which causes save_tree_with_locale to set write_failed to true. Unless I'm mistaken, fprintf and fputs don't set errno. (Or at least the manpage doesn't mention setting errno.) So the "Inappropriate ioctl for device" error is totally bogus. Incidentally, the "<longdesc>" element is written on line 4025 (in write_local_schema_info, which is called by write_entry). Maybe that fprintf is returning a negative value? Or, maybe the next thing (printing the long_desc itself, with fputs) is failing? I'm planning to add some debugging statements around there when I have some time. But right now, time for lunch. -- update-schemas: Error writing file "/var/lib/gconf/defaults/%gconf-tree.xml.new": File exists https://launchpad.net/bugs/74699 -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs