Re: [gtk-osx-users] Preserving symlinks in bundle for themes

On Oct 17, 2017, at 3:37 AM, Jiří Techet <techet gmail com> wrote:

Hi John,

I have some more observations and questions.

<icon-theme icons="all"> doesn't seem to work at all with the Papirus theme - I just get empty theme 
directories with that inside the bundle. Using <data> for copying the icons inside the bundle works 
partially but symlinked directories such as 16x16@2x -> 16x16 are missing completely inside the bundle and 
icons are too small because of that on retina displays.

Is there any difference between <icon-theme icons="all"> and <data>? I understand that <icon-theme> behaves 
differently when the "icons" parameter has a different value but in the case of "all" I assume one can 
replace <icon-theme> with <data> without any functionality loss - am I right?

If so I think that it would be more universal solution to extend the <data> tag with some "copy_symlinks" 
parameter defaulting to "false" rather than modifying the <icon-theme> tag.

Finally, is it OK if I prepare a patch for such a feature? I want to avoid the situation when I spend time 
looking at the code and at the end it's not merged because you are completely against the feature.


That’s because the icons-theme copy-icons function deliberately skips svgs. There’s even a comment “they are 
really big and not really used”. That was written in the days of Gtk2 and is I suppose obsolete now.

Yes, there are differences between <icon-theme> and <data>.: <data> grabs everything in a directory that 
matches a wildcard spec and is optionally recursive. <icon-theme> gets the index.theme and a selection of the 
*.png files in the various subdirectories depending on the value of the icons attribute; the choices are 
“all” (the default), “none”, and “auto”; the latter gets only the ones named in the binaries; I don’t know 
that that works with Gtk3’s named icons.

I started on adding symlink-handling to the copy function and I have the trivial case  where the link is a 
relative path and the target will get copied sooner-or-later to the same relative location, but that’s too 
easily broken by absolute links, relocated relative targets, or targets that aren’t copied.

I don’t agree that the icon-theme tag should be abandoned in favor of the data tag, though I’ve decided that 
better symlink handling throughout is necessary; for example your original problem with libvte could have 
been avoided if libvte.dylib had been recognized as a symlink and linked correctly in the bundle.

John Ralls

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]