Inkscape 1.0 alpha starts slowly while crawling my extensions folder
Silly me, I have a symlink
~/.config/inkscape/extensions/github -> ../../../src/github
pointing to a huge disk space where I have all my git checkouts. I use that directory symlink, so that I can add extension files *.py and *.inx to the extensions folder with short symlinks like this:
cd ~/.config/inkscape/extensions
ln -s github/inkscape-paths2openscad/paths2openscad.{py,inx} .
This individual file symlinking is probably obsolete as inkscape now crawls recursively. That means, I have an easy fix once I can abondon using 0.92.x completely.
Currently strace shows me deep recursions like these, and inkscape spends ca 20 seconds on startup crawling folders:
25561 09:36:28 getdents(47, /* 5 entries */, 32768) = 240
25561 09:36:28 stat("/home/testy/.config/inkscape/extensions/github/jnweiger/Schickard/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/.git/objects/02/76effda58c15b190b243aba0f1816357e11569", {st_mode=S_IFREG|0444, st_size=142, ...}) = 0
25561 09:36:28 stat("/home/testy/.config/inkscape/extensions/github/jnweiger/Schickard/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/.git/objects/02/76effda58c15b190b243aba0f1816357e11569", {st_mode=S_IFREG|0444, st_size=142, ...}) = 0
25561 09:36:28 stat("/home/testy/.config/inkscape/extensions/github/jnweiger/Schickard/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/.git/objects/02/579736976683cc38501261ffaf8f902b88da41", {st_mode=S_IFREG|0444, st_size=95, ...}) = 0
25561 09:36:28 stat("/home/testy/.config/inkscape/extensions/github/jnweiger/Schickard/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/.git/objects/02/579736976683cc38501261ffaf8f902b88da41", {st_mode=S_IFREG|0444, st_size=95, ...}) = 0
25561 09:36:28 stat("/home/testy/.config/inkscape/extensions/github/jnweiger/Schickard/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/.git/objects/02/a3f7e15186ab68f94785f6ffcb1a7601be7c31", {st_mode=S_IFREG|0444, st_size=141, ...}) = 0
25561 09:36:28 stat("/home/testy/.config/inkscape/extensions/github/jnweiger/Schickard/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/oc/git/.git/objects/02/a3f7e15186ab68f94785f6ffcb1a7601be7c31", {st_mode=S_IFREG|0444, st_size=141, ...}) = 0
25561 09:36:28 getdents(47, /* 0 entries */, 32768) = 0
25561 09:36:28 close(47) = 0
As a diabolic QA person, I love having cyclic symlinks here and there. It exposes issues like this one
Enhancement suggestion: Limit the recursion depth to 1 or 2 levels. Optionally -- if needed -- have an explicit index file that instructs inkscape to dig deeper in certain locations. (not following symlinks in general would be annoying though)