ICU, NSIS

You can get help here if Freeciv doesn't start on your computer, or if you keep getting fatal errors while playing etc.
User avatar
dunnoob
Elite
Posts: 327
Joined: Mon Dec 23, 2013 3:13 am
Location: Hamburg
Contact:

ICU, NSIS

Post by dunnoob »

ICU 57.1 was the last version hosted by IBM. Since May, 2016, ICU is a Technical Committee ICU-TC of the Unicode Consortium, and ICU 58 will be distributed with an Unicode license instead of an ICU license (identified as MIT/Expat for the purposes of WikiMedia Commons).

NSIS 3.0 released in July, 2016, merged the classic NSIS (Ansi code page, windows-1252 in some countries) and the NSIS Unicode fork. NSI-files without Unicode true directive are supposed to work as it was in older non-Unicode versions.
cazfi
Elite
Posts: 3077
Joined: Tue Jan 29, 2013 6:54 pm

Re: ICU, NSIS

Post by cazfi »

Neither affects freeciv-2.5 or freeciv-2.6 but might affect freeciv-3.0.

Freeciv trunk (that will become freeciv-3.0) has dependency on icu. That dependency has been kept quite minimal for just testing it. Had there been reports that the dependency is impossible to fullfill on some platform, it would have been relatively easy for us to back off from using icu and revert to utf8 handling similar to that of freeciv-2.6.

Nsis is used in building Freeciv Windows Installer packages. It's unlikely to get updated in msys1 environments that are used for freeciv-2.5 and freeciv-2.6. Freeciv-3.0 will probably use msys2 based Windows Installer build environment, and nsis is likely to get updated in msys2. At the moment we're just waiting for msys2 people to do so. Having unicode support in nsis would help in solving some of the biggest problems we currently face with our installer setup.
User avatar
dunnoob
Elite
Posts: 327
Joined: Mon Dec 23, 2013 3:13 am
Location: Hamburg
Contact:

Re: ICU, NSIS

Post by dunnoob »

cazfi wrote:Having unicode support in nsis would help in solving some of the biggest problems we currently face with our installer setup.
As soon as NSIS 3.0 is distributed as "portable apps" (=no installation) Windows binary I'll test this, after all I already have bash as a part of Git, and even a freaking Python3 (exactly the wrong version for the SCons required to build NSIS, but the SCons folks are planning to support it "soon".) There's an interesting CopyFiles in NSIS, the missing piece to add a patch for bug #22781 instead of only talking about it.

Whenever you mentioned MSYS2 it was always in conjunction with the Windows installer. I don't get this, what has NSIS to do with MSYS(2), if it allegedly only needs a Python script SCons to build? And no matter what it needs to build, as soon as you have a binary version working for you and producing something good enough for Windows 10, why upgrade it at all? Their new Unicode feature apparently only affects file names, and Freeciv has no Unicode in file names so far.
cazfi
Elite
Posts: 3077
Joined: Tue Jan 29, 2013 6:54 pm

Re: ICU, NSIS

Post by cazfi »

dunnoob wrote:what has NSIS to do with MSYS(2)
There's nsis package for msys2. Windows version of freeciv is built in msys environment, and creating installer with nsis is the last step of that. NSIS is just packaging system, you must have those packaged goods built before using it.
User avatar
dunnoob
Elite
Posts: 327
Joined: Mon Dec 23, 2013 3:13 am
Location: Hamburg
Contact:

Re: ICU, NSIS

Post by dunnoob »

cazfi wrote: Windows version of freeciv is built in msys environment, and creating installer with nsis is the last step of that. NSIS is just packaging system, you must have those packaged goods built before using it.
Thanks, that's clearer: Any NSIS good enough for Windows 10 will do, NSIS 3 not more supporting Windows 95/98/ME for Unicode true is irrelevant for Freeciv, because Freeciv 3 anyway expects Vista outside of your 2.6 msys1 XP tests; and FWIW XP is not 95/98/ME or W2K.

Of course NSIS needs some linked binaries, and for this you have three and a half build environments: MSYS1, MSYS2, crosser with QT, crosser without QT. And there are three Wiki pages MSYS2, Install-Windows, Gtk plus the crosser page explaining what is what. :D
cazfi
Elite
Posts: 3077
Joined: Tue Jan 29, 2013 6:54 pm

Re: ICU, NSIS

Post by cazfi »

dunnoob wrote:Any NSIS good enough for Windows 10 will do
Current msys2 environment uses what version

Code: Select all

> pacman -Su mingw-w64-<arch>-nsis
gives (<arch> being either 'i686' or 'x86_64'). It gets much harder to manage (keep track of the build systems and contents of different releases) if we replace that with some version of nsis from some other source.
User avatar
dunnoob
Elite
Posts: 327
Joined: Mon Dec 23, 2013 3:13 am
Location: Hamburg
Contact:

Re: ICU, NSIS

Post by dunnoob »

cazfi wrote:Current msys2 environment uses what version

Code: Select all

> pacman -Su mingw-w64-<arch>-nsis
gives (<arch> being either 'i686' or 'x86_64').
Is the result a Windows makensis.exe or a makensis binary for whatever your OS is? For some reason I always thought that your OS is decisively not Windows, and also nothing else (like Wine) willing to run *.exe files. :?: For an *.exe I don't see the point of using pacman or nuget or another third party tool, the NSIS project has a download page.
It gets much harder to manage (keep track of the build systems and contents of different releases)
Yeah, you actually have twice as many environments, one set for 32bits, another set for 64bits. Admittedly I also don't see the point for 64bits, but a FreeDOS version working in a DosBox or a Windows virtual DOS (ntvdm) could be nice. :lol:
cazfi
Elite
Posts: 3077
Joined: Tue Jan 29, 2013 6:54 pm

Re: ICU, NSIS

Post by cazfi »

dunnoob wrote:
cazfi wrote:Current msys2 environment uses what version

Code: Select all

> pacman -Su mingw-w64-<arch>-nsis
gives (<arch> being either 'i686' or 'x86_64').
Is the result a Windows makensis.exe or a makensis binary for whatever your OS is? For some reason I always thought that your OS is decisively not Windows, and also nothing else (like Wine) willing to run *.exe files. :?: For an *.exe I don't see the point of using pacman or nuget or another third party tool, the NSIS project has a download page.
msys runs on windows. (Currently our official Installer builds are made natively, crosser builds are result of cross-compilation). That command installs nsis to msys2 environment.

http://svn.gna.org/viewcvs/*checkout*/f ... ADME.msys2
cazfi
Elite
Posts: 3077
Joined: Tue Jan 29, 2013 6:54 pm

Re: ICU, NSIS

Post by cazfi »

I should say that msys2 is not ideal for normal development work. It takes forever to compile anything there - iteration that takes couple of minutes on linux can take full day on Windows/Msys2.
User avatar
dunnoob
Elite
Posts: 327
Joined: Mon Dec 23, 2013 3:13 am
Location: Hamburg
Contact:

Re: ICU, NSIS

Post by dunnoob »

cazfi wrote:(Currently our official Installer builds are made natively, crosser builds are result of cross-compilation). That command installs nsis to msys2 environment.
Fun stuff, I could recreate a 2.6.0-alpha-gtk2-win32-setup.exe (two languages) from an installed version with makensis,exe 3.0 and the win32/installer/Freeciv-2.6.0-alpha-gtk2.nsi created by the *nsi.sh and (shudder) git/bin/bash.exe :mrgreen:
Post Reply