Hi everyone,

I just tried to pack up a theme file using getstyle. I tested this on wmaker 0.95.7 (the version I first found it on, on an Arch Linux box), but it seems to happen on -next as well (I just cloned the git repo and tried it again).

Running:

$ getstyle -p test

results in this error output:

WINGs(wcopy_file(findfile.c:457)): error: Could not create target file "/home/alazar/GNUstep/Library/WindowMaker/Themes/test.themed//home/alazar/GNUstep/Library/WindowMaker/Pixmaps/absinthe_tile.png": No such file or directory

WINGs(wcopy_file(findfile.c:457)): error: Could not create target file "/home/alazar/GNUstep/Library/WindowMaker/Themes/test.themed//home/alazar/GNUstep/Library/WindowMaker/Backgrounds/GreenFairy.png": No such file or directory

A (correct) style file seems to be created in /home/alazar/GNUstep/Library/WindowMaker/Themes/test.themed/ , but nothing else.

I fired up GDB and traced this to a call to wcopy_file. The problem seems to be in this call on line 453:

fd_dst = open(path_dst, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);

where path_dst is set to

$2 = 0x60b8c0 "/home/alazar/GNUstep/Library/WindowMaker/Themes/test.themed//home/alazar/GNUstep/Library/WindowMaker/Pixmaps/absinthe_tile.png"

but the path /home/alazar/GNUstep/Library/WindowMaker/Themes/test.themed//home/alazar/GNUstep/Library/WindowMaker/Pixmaps/ does not exist (I can't examine errno in the GDB session, but I suspect it's set to ENOENT based on the output of werror).

I have a few questions:

1. Am I doing anything wrong here, or is this a legit bug?

2. If it's a legit bug, would you like a patch? I'm not too familiar with the WindowMaker codebase so it might take a while, but fixing something in util/ looks like a good way to get the hang of it (and the fix doesn't seem to require anything too wmaker-specific).

3. If there is interest in a patch, should I also look into making getstyle a little less naive with paths? I was never curious enough to look into a .themed, but from the looks of it, getstyle -p is trying to copy all theme assets under <output>.themed in locations of the form <output>.themed/<absolute-path-of-asset>. It makes sense but the resulting pathnames are large (and the theme becomes hard to modify post-packing) and it exposes things like the creator's username to the Internet (unlikely to be a problem, but it makes me a little uncomfortable nonetheless...)

Thanks!

Alexandru Lazar


--
To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.

Reply via email to