takluyver / pynsist

Build Windows installers for Python applications
https://pynsist.readthedocs.io/
Other
896 stars 119 forks source link

Create Unicode installer, if supported #189

Closed idleberg closed 4 years ago

idleberg commented 4 years ago

As of NSIS 3.05, ANSI targets are deprecated. Scripts compiled with that version will output a warning:

7998: ANSI targets are deprecated

This PR will always create Unicode installers if supported by the compiler.

Related Links:

takluyver commented 4 years ago

Thanks, this LGTM. Would it be clearer to test >= 0x03000000 instead of > 0x02ffffff?

I'd also been considering setting ManifestDPIAware to make less blurry installers, but was holding back because that's not available on NSIS 2.x, which is still the default on e.g. Ubuntu 18.04. Doing it inside this version check would avoid that issue.

idleberg commented 4 years ago

I went with 0x02ffffff since Anders mentioned it being the "official way", but I agree that 0x03000000 is better – it's more readable IMHO. I've also added ManifestDPIAware. Please let me know if I should undo the whitespace changes, they weren't intentional.

takluyver commented 4 years ago

Thanks! I'm not too worried about the whitespace changes.

takluyver commented 4 years ago

@idleberg I spent a while today on some other improvements to Pynsist (principally #191), and I'll aim to make a new release soon. I've also been improving the test suite (#190), but if you have time to interactively test one or two installers generated with Pynsist master, that would be great. If not, I'll push out a new version and see if anyone complains it's broken. :wink:

I'm being a bit lazy about the manual testing because I rarely boot into Windows. But I'd rather be a bit lazy about it than keep promising I'll get round to doing it one day.

idleberg commented 4 years ago

I can test this on macOS and Windows, but I‘m not familiar enough with how I can use Pynsist other than installing it using pip. Can you guide through the process or, better, add a paragraph about it to the docs. This could be interesting for other developers.

takluyver commented 4 years ago

Yes, I must add something to the docs. For now, though: clone the git repository, cd into it, then either do a normal installation:

pip install .

Or do a development installation, which means you don't need to reinstall if you make changes:

pip install flit
flit install --symlink  # Linux/Mac, or:
flit install --pth-file  # Windows

Then you should be able to run the pynsist command. Or python -m nsist should do the same, if the command is not set up on PATH.

takluyver commented 4 years ago

Pynsist 2.5 is out now, so we'll see if anyone complains. :-)