So commit 7461 broke about half of my test VMs with a syntax error, even on linux where this specific code never runs. I found that Python f-strings are only available from 3.6 onwards, so I rewrote it using the older format() command instead to restore compatibility.
Forgot to mention why I used a preformatted block for the quotes, it's because the OutFile command doesn't like spaces in the name or path, and I took advantage of the fact that in the script single quotes and double quotes are treated the same by makensis, so this multi quote trick in python works.
I'm still using old scons, I'll probably run into the same error the next time I do any coding and I'll hopefully have to fix this.
Python 3.6 EOL'ed over 4 years ago. What Linux are you using that is on something older than 3.6?
I still have the original ubuntu 12.04 VM I set up to test nsis with (has the old mingw32 toolchain), plus a 14.04 VM, and a windows xp VM. All of those use python 2.7.x. It's a good variety and gives decent coverage for finding small issues, or in this case a big issue.
Ubuntu 14.04 EOL'ed 7 years ago. Not even sure when 12.04 did. Python 2 EOL'ed 6 years ago.
We are talking developing NSIS itself here. Pretty much the three people in this conversation are it. Linux distributions also package their own, but they mostly only update versions that are still in use and not EOL'ed. I would argue anyone who cares enough to build their own up-to-date NSIS, would probably care enough to have a moderatly up-to-date OS.
Do we really want to limit ourselves to Python 2 backward compatibilty?
I just saw this as a regression, I'm not worried if the fix is not accepted.