mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-04-14 01:28:06 -05:00

This was lost in the mkfiles.pl->cmake transition (c19e7215dd). Without this, MinGW builds were providing format strings like %zu to a version of vsnprintf that didn't support them at runtime, so you'd get messages like "Pageant has zu SSH-2 keys". (-Wformat would have complained about the unknown %z format specifier, but even STRICT MinGW builds don't get those warnings, hm.) Now the runtime version understands %zu. I've reviewed the other compile-time definitions that were unique to the old Makefile.mgw, and decided not to reinstate any of them: WIN32S_COMPAT: leave it out. This came in in bd4b8c1285. Rationale from Joris van Rantwijk in email 2000-01-24: "Use -DWIN32S_COMPAT to avoid a linking error about SystemPowerStatus". But that problem was solved another way within 8 months, and WIN32S_COMPAT removed from the code, in 76746a7d61, so this wart had been redundant since then. _NO_OLDNAMES: decided not to add anything back for this. This actually does nothing with the mingw-w64 fork (which seems to spell it NO_OLDNAMES), although current versions of original-mingw do also still spell it _NO_OLDNAMES. They both seem to be about suppressing a behaviour where a load of "non-ANSI" names like strdup get redirected to invoke _strdup in MS' libraries. Again, original rationale is from Joris van Rantwijk: "Compile and link with -mno-cygwin (and -D_NO_OLDNAMES) to get executables that don't need the Cygwin DLL file." Since I don't know of any behavioural differences that this causes (unlike vsnprintf/_vsnprintf), and it's not obviously causing trouble for me, continue to leave things in the default state.
This is the README for PuTTY, a free Windows and Unix Telnet and SSH client. PuTTY is built using CMake <https://cmake.org/>. To compile in the simplest way (on any of Linux, Windows or Mac), run these commands in the source directory: cmake . cmake --build . Then, to install in the simplest way on Linux or Mac: cmake --build . --target install On Unix, pterm would like to be setuid or setgid, as appropriate, to permit it to write records of user logins to /var/run/utmp and /var/log/wtmp. (Of course it will not use this privilege for anything else, and in particular it will drop all privileges before starting up complex subsystems like GTK.) The cmake install step doesn't attempt to add these privileges, so if you want user login recording to work, you should manually ch{own,grp} and chmod the pterm binary yourself after installation. If you don't do this, pterm will still work, but not update the user login databases. Documentation (in various formats including Windows Help and Unix `man' pages) is built from the Halibut (`.but') files in the `doc' subdirectory using `doc/Makefile'. If you aren't using one of our source snapshots, you'll need to do this yourself. Halibut can be found at <https://www.chiark.greenend.org.uk/~sgtatham/halibut/>. The PuTTY home web site is https://www.chiark.greenend.org.uk/~sgtatham/putty/ If you want to send bug reports or feature requests, please read the Feedback section of the web site before doing so. Sending one-line reports saying `it doesn't work' will waste your time as much as ours. See the file LICENCE for the licence conditions.
Description
Languages
C
89.7%
Python
8%
Perl
0.9%
CMake
0.8%
Shell
0.4%
Other
0.1%