Skip to content
This repository was archived by the owner on Oct 20, 2023. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
168 commits
Select commit Hold shift + click to select a range
89fff90
Spelling fixes (just in comments).
Apr 15, 2017
b189df9
Condition out some API type-checks in the MinGW build.
sgtatham Apr 15, 2017
73039b7
Load winmm.dll (for PlaySound()) at run time.
sgtatham Mar 13, 2017
793ac87
Load the Windows printing subsystem at run time.
sgtatham Mar 13, 2017
f77ee39
Load comctl32.dll (for drag lists) at run time.
sgtatham Mar 13, 2017
b1829b8
Update version number for 0.69 release.
sgtatham Apr 24, 2017
d6d1093
Release checklist update: no @releases array!
sgtatham Apr 29, 2017
5a576e0
Reinstate use of ToUnicodeEx().
jtn20 Apr 29, 2017
ed600ab
Fix double negative in TTY mode docs.
jtn20 Apr 29, 2017
fb023da
Be less vague in the description of IUTF8.
jtn20 Apr 30, 2017
230f7d5
Fix thinko introduced in 8833634f4.
l2dy Apr 30, 2017
b566c5f
Add a cast to fix a warning.
jtn20 Apr 30, 2017
ad694a4
mkfiles.pl: fix regex syntax error.
sgtatham May 1, 2017
6ea9d36
Switch chiark URLs to https.
sgtatham May 7, 2017
ce050c5
Fix a luking mention of Win32 in README.
bjh21 May 8, 2017
93931b0
Switch to using Halibut's new direct .CHM generation.
sgtatham May 13, 2017
95f8122
uxplink: remove the "connopen" variable.
bjh21 May 30, 2016
30cdaa7
unix: make select_result() return void.
bjh21 May 30, 2016
d56496c
unix: make uxsel callback functions return void.
bjh21 May 30, 2016
f65c316
winplink: remove "connopen" variable.
bjh21 May 30, 2016
70e2e14
windows: Remove spurious redeclarations of select_result().
bjh21 Jun 2, 2016
a2fb1d9
windows: Make select_result() return void.
bjh21 Jun 2, 2016
0d9c7d8
Don't treat plug_closing() and plug_receive() as returning backlog.
bjh21 Jun 4, 2016
0d57b8a
Make plug receive and closing functions return void instead of int.
bjh21 Jun 2, 2016
c7b9f84
windows: Fix control-flow error in select_result().
bjh21 May 17, 2017
12bd5a6
Stop Gtk2 builds exploding on scroll wheel events.
jtn20 May 20, 2017
22cf282
Remove some ancient cruft from the FAQ.
jtn20 May 23, 2017
e5dd143
Remove FAQ about Plink on Win95.
jtn20 May 23, 2017
2e66a0d
Fix a build failure under Visual Studio 2010.
sgtatham May 24, 2017
8d2755c
Under clang-cl, include stdint.h regardless of _MSC_VER.
sgtatham May 25, 2017
f02587f
Makefile.clangcl: provide a way to tell lld-link about crt0.obj.
sgtatham May 25, 2017
eda5364
Use / in pathnames in the Wix installer source.
sgtatham May 25, 2017
bbdb527
Turn off the Inno Setup installer build.
sgtatham May 27, 2017
599ca6d
Build using clang-cl instead of Visual Studio.
sgtatham May 27, 2017
fd6898b
Build the MSI using Wix run on Linux via Mono.
sgtatham May 27, 2017
1da3c71
Have clang-cl builds announce their _MSC_VER.
sgtatham May 30, 2017
05f499e
Add 'passthrough printing' as an index term.
jtn20 Jun 6, 2017
6aac4b9
StartDocPrinter returns DWORD, not BOOL.
jtn20 Jun 7, 2017
f31a72b
Unix: use conf_dest() in 'unable to open connection' error box.
sgtatham Jun 10, 2017
a9e1053
Log the server's diagnostics if main channel open fails.
sgtatham Jun 15, 2017
892d4a0
Seek all Windows print functions in winspool.drv.
jtn20 Jun 15, 2017
4387b5f
resolve an issue found by cppcheck:
chipitsine Jun 19, 2017
5efee18
resolve couple of issues found by cppcheck:
chipitsine Jun 19, 2017
3f2df8c
resolve (no real impact) issue found by cppcheck:
chipitsine Jun 19, 2017
02043ec
resolve (no real impact) issue found by cppcheck:
chipitsine Jun 20, 2017
20e36ae
Fix a collection of type / format string mismatches.
sgtatham Jun 20, 2017
34389fe
Merge further cppcheck fixes from Ilya Shipitsin.
sgtatham Jun 20, 2017
98cbe69
Another format-string fix.
sgtatham Jun 20, 2017
4696f4a
Coverity build fixes.
sgtatham Jun 20, 2017
d618974
Fixes spotted by Coverity.
sgtatham Jun 20, 2017
4241734
Update wcwidth.c with Unicode 9.0.0 data
Jul 1, 2017
4065b0c
Merge update of wcwidth.c to Unicode 9.
sgtatham Jul 2, 2017
4624115
Make -DMINEFIELD show up in Windows buildinfo.
sgtatham Jul 3, 2017
ea0ab1c
Simplify running of release.pl --setver.
sgtatham Jul 3, 2017
5cac601
Rework the release checklist for current practice.
sgtatham Jul 3, 2017
a2b040e
Expand the About box.
sgtatham Jul 4, 2017
3cd1050
Update version number for 0.70 release.
sgtatham Jul 4, 2017
7470e3b
Stop release.pl --setver failing if Makefile exists.
sgtatham Jul 8, 2017
0e2955f
Add a --no-ftp mode to the release.pl download checks.
sgtatham Jul 8, 2017
309c3df
Add -share -noshare command line option to plink to share SSL connect…
igaztanaga Jul 6, 2017
25683f0
Add a FAQ about servers that don't like IUTF8.
jtn20 Jul 12, 2017
f0126dd
Set ssh->mainchan->type earlier.
sgtatham Jul 17, 2017
0a93b5d
Stop ssh2_msg_channel_response using a stale ssh_channel.
sgtatham Jul 19, 2017
55efbc5
Fix filename of the 64-bit MIT Kerberos DLL.
sgtatham Aug 4, 2017
a459fc5
Switch to producing .res files, not .res.o.
sgtatham Aug 26, 2017
4634cd4
Avoid zero-length ldisc_send() in terminal.c.
sgtatham Sep 5, 2017
4ec2791
Remove Makefile.bor.
sgtatham Sep 13, 2017
ba4837d
Add a -restrict-putty-acl option to Windows Pageant.
sgtatham Sep 20, 2017
581dd70
Squash the 256-colour test text into fewer lines.
sgtatham Sep 30, 2017
a4cbd3d
Support ESC[38;2;R;G;Bm for 24-bit true colour.
sgtatham Sep 30, 2017
16214ea
Initialise term->curr_truecolour at startup.
sgtatham Oct 1, 2017
f813e9f
uxnet.c: don't close a socket's fd if it is -1.
sgtatham Oct 1, 2017
6b82471
term_mouse: make special treatment of x < 0 more selective.
sgtatham Oct 1, 2017
2f9738a
Make terminal true-colour mode configurable.
sgtatham Oct 5, 2017
1adf211
Disable true colour on monochrome or paletted displays.
sgtatham Oct 5, 2017
262376a
Make the cursor colour override true colour.
sgtatham Oct 5, 2017
4743798
Support OSC 4 terminal colour-palette queries.
sgtatham Oct 5, 2017
1a71840
Support SGR 2 to dim the foreground colour.
sgtatham Oct 5, 2017
96a0881
Make true colour work with background-colour erase.
sgtatham Oct 8, 2017
e3d92df
Save and restore true-colour state with the cursor.
sgtatham Oct 8, 2017
f353e22
Turn off true colour on SCO and VT52 colour sequences.
sgtatham Oct 8, 2017
916a257
Make reverse video interact correctly with true colour.
sgtatham Oct 8, 2017
298b9fd
Setting an 8-bit colour should cancel a 24-bit colour
whydoubt Oct 14, 2017
7bdfdab
Update clipping interface for true-colour
whydoubt Jun 14, 2017
891d909
Implement true-colour in write_clip for Windows
whydoubt Jun 13, 2017
b4e5485
Add Jeff Smith as a copyright holder.
sgtatham Oct 19, 2017
ea54259
sshaes.c: fix file name in header comment.
sgtatham Oct 19, 2017
4dfadcf
sshaes.c: remove completely unused #define MAX_NK.
sgtatham Oct 19, 2017
5592312
AES: remove support for block sizes other than 128 bits.
pavelkryukov Oct 20, 2017
0816e2b
AES: fold the core and outer routines together.
pavelkryukov Oct 20, 2017
e8be7ea
AES: 16-byte align the key schedule arrays.
pavelkryukov Oct 20, 2017
2d31305
Alternative AES routines, using x86 hardware support.
pavelkryukov Oct 20, 2017
0a0a1c0
Additional copyright holders, from the AES-NI work.
sgtatham Oct 20, 2017
4d15d46
Memory leak: free conn->retbuf in uxagentc.c.
sgtatham Nov 26, 2017
90a402c
Memory leak: free term->answerback in term_free().
sgtatham Nov 26, 2017
f1eeeff
Memory leak: add a columns_finalize() method.
sgtatham Nov 26, 2017
9909077
Make the current code compile again under GTK1.
sgtatham Nov 26, 2017
c74d1e3
GTK1 runtime fix: widen extent of ignore_sbar.
sgtatham Nov 26, 2017
116dac2
Reinstate the SIGCHLD handler in ptermapp.
sgtatham Nov 25, 2017
5b13a1b
Add a missing conf_copy in gtkapp's Duplicate Session.
sgtatham Nov 25, 2017
b6b91b8
OS X makefile: stop depending on JHBUILD_PREFIX.
sgtatham Nov 26, 2017
99bdaa7
gtkapp.c: fix a copy-paste error in stub main().
sgtatham Nov 25, 2017
afa9734
New facility for removing pending toplevel callbacks.
sgtatham Nov 25, 2017
94a2904
GTK: add a delete_inst() function to clean up a gui_data.
sgtatham Nov 26, 2017
817e4ad
Make the configuration dialog non-modal.
sgtatham Nov 26, 2017
7891cb1
Remove an item from gtkapp.c's OS X TODO comment.
sgtatham Nov 26, 2017
5726940
Remove an outdated comment.
sgtatham Nov 26, 2017
2d289a9
Make the GTK message-box function non-variadic.
sgtatham Nov 26, 2017
46ba9de
Introduce a non-modal create_message_box().
sgtatham Nov 26, 2017
9464053
Fix a cleanup issue in dlgparam_destroy.
sgtatham Nov 26, 2017
671267f
GTK: system for not leaving stale network prompt dialogs.
sgtatham Nov 26, 2017
624f5b7
Make the GTK host-key verification box non-modal.
sgtatham Nov 26, 2017
199f381
Make GTK askalg() and askhk() non-modal.
sgtatham Nov 26, 2017
f212e2c
Change order of cleanup in delete_inst.
sgtatham Nov 26, 2017
86741a1
Expand the dialog registering/unregistering system.
sgtatham Nov 26, 2017
b6ed823
Make the askappend() prompt non-modal.
sgtatham Nov 26, 2017
8b0d460
Replace dlg_error_message() with a non-modal message box.
sgtatham Nov 26, 2017
71ed04d
Make the GTK font setup error box non-modal.
sgtatham Nov 26, 2017
a8e9fd7
Reimplement 'really close session?' as a non-modal message box.
sgtatham Nov 26, 2017
d1f62c3
Make the Licence message box non-modal.
sgtatham Nov 26, 2017
4f3f4ed
Get rid of fatalbox() completely.
sgtatham Nov 26, 2017
813c380
Make nonfatal() nonmodal.
sgtatham Nov 26, 2017
3e24bb6
Make connection_fatal() nonmodal.
sgtatham Nov 26, 2017
57ceac8
Fix stale-pointer bugs in connection-fatal network errors.
sgtatham Nov 26, 2017
ef6e38d
Remove the modal message_box function completely.
sgtatham Nov 26, 2017
71b0009
Remove the post_main() mechanism.
sgtatham Nov 26, 2017
28145fe
Avoid duplicate random_unref on freeing an Ssh.
sgtatham Nov 27, 2017
61f3e3e
GTK: handle synchronous connection-setup failures sensibly.
sgtatham Nov 27, 2017
c99338b
Stop linking cmdline.c into the gtkapp-based programs.
sgtatham Nov 27, 2017
ba55b22
Move gtkwin.c's cmdline_error() into gtkmain.c.
sgtatham Nov 27, 2017
4b8baed
GTK: fix the exit(1) response to startup-time font errors.
sgtatham Nov 27, 2017
032a9da
Remove one last stray process exit().
sgtatham Nov 27, 2017
46cf862
Knock off another refactoring from the OS X to-do list.
sgtatham Nov 27, 2017
cd3093b
SSH packet logs: don't rely on locale's isprint().
sgtatham Nov 27, 2017
e3796cb
Factor out common pre-session-launch preparation.
sgtatham Dec 3, 2017
247d1b9
Unix PuTTY: add missing call to prepare_session.
sgtatham Dec 3, 2017
81345e9
ctrl-shift-page-up/down to top or bottom of scrollback
gwinkless Nov 3, 2017
b9a2551
Centralise PuTTY and Plink's non-option argument handling.
sgtatham Dec 7, 2017
2a2153f
Fix assertion failure that prevents pterm starting up.
sgtatham Dec 8, 2017
c05fdb7
A small pile of Windows compiler-warning fixes.
sgtatham Dec 10, 2017
f26654f
Stop front ends remembering the data of their last paste.
sgtatham Dec 9, 2017
9bff559
Move declaration of write_aclip into winstuff.h.
sgtatham Dec 9, 2017
1829719
Add a system of clipboard identifiers.
sgtatham Dec 9, 2017
41aa675
Make gtkwin.c able to support multiple selections.
sgtatham Dec 10, 2017
cd73482
Add a cross-platform clipboard called CLIP_LOCAL.
sgtatham Dec 10, 2017
131a8e9
Ability to copy to multiple clipboards at once.
sgtatham Dec 10, 2017
3d93724
GTK context menu options to copy/paste CLIPBOARD.
sgtatham Dec 10, 2017
98fa733
Move char-class list box out into a new config panel.
sgtatham Dec 16, 2017
0e7f088
Add GUI configuration for choice of clipboards.
sgtatham Dec 10, 2017
018aa57
Tick off another two OS X todo items.
sgtatham Dec 17, 2017
2a76f8d
Support custom clipboard names under X.
sgtatham Dec 17, 2017
1af9c42
Better protection against stale clipboard_data_instances.
sgtatham Dec 17, 2017
1ed2f98
Add missing g_application_hold on Duplicate Session.
sgtatham Dec 17, 2017
7bc637a
Sort out clipboard-related menu items.
sgtatham Dec 17, 2017
136c119
Fix linked-list mismanagement.
sgtatham Dec 17, 2017
3faca77
Correct the OS X branch of the clipboards ifdef.
sgtatham Dec 18, 2017
1904c40
OS X: pass Command key back to GTK if it's not being Meta.
sgtatham Dec 18, 2017
31080bf
Add keyboard accelerators in the GtkApplication menu.
sgtatham Dec 18, 2017
2065fb6
Minor refactoring of gtkapp.c -> gtkwin.c menu triggers.
sgtatham Dec 18, 2017
04184c8
Fill in some more of the OS X menu bar.
sgtatham Dec 18, 2017
faef0ea
Rewrite the OS X TODO a bit.
sgtatham Dec 18, 2017
eef8cac
osxlaunch: bodge to let me test-build on Linux.
sgtatham Dec 20, 2017
6b8cd49
osxlaunch: add diagnostics under an #ifdef.
sgtatham Dec 20, 2017
10e570c
osxlaunch: fix some uninitialised pointers.
sgtatham Dec 20, 2017
8ec55ef
osxlaunch: stop setting DYLD_LIBRARY_PATH.
sgtatham Dec 20, 2017
599bab8
Condition out AES-NI support if using a too-old clang.
sgtatham Dec 20, 2017
5f76048
Let puttyapp/ptermapp build against old Gtk 3.
jtn20 Dec 20, 2017
8fcc433
Don't grow logevent buf indefinitely
nicowilliams Jul 22, 2013
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
/*.tds
/*.td2
/*.map
/Makefile.bor
/Makefile.mgw
/Makefile.vc
/Makefile.lcc
Expand Down Expand Up @@ -128,7 +127,6 @@
/windows/*.td2
/windows/*.map
/windows/Makefile.clangcl
/windows/Makefile.bor
/windows/Makefile.mgw
/windows/Makefile.vc
/windows/Makefile.lcc
Expand Down
80 changes: 33 additions & 47 deletions Buildscr
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ module putty
ifeq "$(RELEASE)" "" set Ndate $(!builddate)
ifneq "$(Ndate)" "" in . do echo $(Ndate) | perl -pe 's/(....)(..)(..)/$$1-$$2-$$3/' > date
ifneq "$(Ndate)" "" read Date date
set Epoch 16214 # update this at every release
set Epoch 16351 # update this at every release
ifneq "$(Ndate)" "" in . do echo $(Ndate) | perl -ne 'use Time::Local; /(....)(..)(..)/ and print timegm(0,0,0,$$3,$$2-1,$$1) / 86400 - $(Epoch)' > days
ifneq "$(Ndate)" "" read Days days

Expand Down Expand Up @@ -139,8 +139,7 @@ ifneq "$(MAKEARGS)" "" set Makeargs $(Makeargs) $(MAKEARGS)
in putty do ./mksrcarc.sh
in putty do ./mkunxarc.sh '$(Autoconfver)' '$(Uxarcsuffix)' $(Docmakever)
in putty do perl mkfiles.pl
in putty/doc do make $(Docmakever) putty.hlp
in putty/doc do make $(Docmakever) chm
in putty/doc do make $(Docmakever) putty.hlp putty.chm

# Munge the installer script locally so that it reports the version
# we're really building.
Expand All @@ -157,50 +156,38 @@ in putty/icons do make
in putty do convert -size 164x312 'gradient:blue-white' -distort SRT -90 -swirl 180 \( -size 329x312 canvas:white \) +append \( icons/putty-48.png -geometry +28+24 \) -composite \( icons/pscp-48.png -geometry +88+96 \) -composite \( icons/puttygen-48.png -geometry +28+168 \) -composite \( icons/pageant-48.png -geometry +88+240 \) -composite windows/msidialog.bmp
in putty do convert -size 493x58 canvas:white \( icons/putty-48.png -geometry +440+5 \) -composite windows/msibanner.bmp

delegate windows
# Build the original binaries.
in putty/windows with visualstudio do/win mkdir buildold && nmake -f Makefile.vc BUILDDIR=buildold\ $(Makeargs) all cleantestprogs

# Build the VS2015 binaries. For the 32-bit ones, we set a subsystem
# version of 5.01, which allows the resulting files to still run on
# Windows XP.
in putty/windows with visualstudio2015_32bit do/win mkdir build32 && nmake -f Makefile.vc BUILDDIR=build32\ SUBSYSVER=,5.01 $(Makeargs) all cleantestprogs
in putty/windows with visualstudio2015_64bit do/win mkdir build64 && nmake -f Makefile.vc BUILDDIR=build64\ $(Makeargs) all cleantestprogs

# Code-sign the binaries, if the local bob config provides a script
# to do so. We assume here that the script accepts an -i option to
# provide a 'more info' URL, and an optional -n option to provide a
# program name, and that it can take multiple .exe filename
# arguments and sign them all in place.
ifneq "$(winsigncode)" "" in putty/windows do $(winsigncode) -i http://www.chiark.greenend.org.uk/~sgtatham/putty/ build*/*.exe

# Ignore exit code from hhc, in favour of seeing whether the .chm
# file was created. (Yuck; but hhc appears to return non-zero
# exit codes on whim.)
in putty/doc with htmlhelp do/win hhc putty.hhp & type putty.chm >nul

# Build a WiX MSI installer, for each of build32 and build64.
in putty/windows with wix do/win candle -arch x86 -dWin64=no -dBuilddir=build32\ -dWinver="$(Winver)" -dPuttytextver="$(Puttytextver)" installer.wxs && light -ext WixUIExtension -ext WixUtilExtension -sval installer.wixobj -o installer32.msi
in putty/windows with wix do/win candle -arch x64 -dWin64=yes -dBuilddir=build64\ -dWinver="$(Winver)" -dPuttytextver="$(Puttytextver)" installer.wxs && light -ext WixUIExtension -ext WixUtilExtension -sval installer.wixobj -o installer64.msi

# Build the old Inno Setup installer, for 32-bit only.
in putty/windows with innosetup do/win iscc putty.iss

# Sign the installers.
ifneq "$(winsigncode)" "" in putty/windows do $(winsigncode) -i http://www.chiark.greenend.org.uk/~sgtatham/putty/ -n "PuTTY Installer" installer32.msi installer64.msi Output/installer.exe
# Build the standard binaries, in both 32- and 64-bit flavours.
#
# For the 32-bit ones, we set a subsystem version of 5.01, which
# allows the resulting files to still run on Windows XP.
in putty/windows with clangcl32 do mkdir build32 && Platform=x86 make -f Makefile.clangcl BUILDDIR=build32/ SUBSYSVER=,5.01 $(Makeargs) all cleantestprogs
in putty/windows with clangcl64 do mkdir build64 && Platform=x64 make -f Makefile.clangcl BUILDDIR=build64/ $(Makeargs) all cleantestprogs

# Build the 'old' binaries, which should still run on all 32-bit
# versions of Windows back to Win95 (but not Win32s). These link
# against Visual Studio 2003 libraries (the more modern versions
# assume excessively modern Win32 API calls to be available), specify
# a subsystem version of 4.0, and compile with /arch:IA32 to prevent
# the use of modern CPU features like MMX which older machines also
# might not have.
in putty/windows with clangcl32_2003 do mkdir buildold && Platform=x86 make -f Makefile.clangcl BUILDDIR=buildold/ $(Makeargs) CCTARGET=i386-pc-windows-msvc13.0.0 SUBSYSVER=,4.0 EXTRA_windows=wincrt0.obj EXTRA_console=crt0.obj XFLAGS=/arch:IA32 all cleantestprogs

# Code-sign the Windows binaries, if the local bob config provides a
# script to do so in a cross-compiling way. We assume here that the
# script accepts an -i option to provide a 'more info' URL, an
# optional -n option to provide a program name, and an -N option to
# take the program name from an .exe's version resource, and that it
# can accept multiple .exe or .msi filename arguments and sign them
# all in place.
ifneq "$(cross_winsigncode)" "" in putty/windows do $(cross_winsigncode) -N -i https://www.chiark.greenend.org.uk/~sgtatham/putty/ build*/*.exe

# Build a WiX MSI installer, for each of build32 and build64.
in putty/windows with wixonlinux do candle -arch x86 -dWin64=no -dBuilddir=build32/ -dWinver="$(Winver)" -dPuttytextver="$(Puttytextver)" installer.wxs && light -ext WixUIExtension -ext WixUtilExtension -sval installer.wixobj -o installer32.msi -spdb
in putty/windows with wixonlinux do candle -arch x64 -dWin64=yes -dBuilddir=build64/ -dWinver="$(Winver)" -dPuttytextver="$(Puttytextver)" installer.wxs && light -ext WixUIExtension -ext WixUtilExtension -sval installer.wixobj -o installer64.msi -spdb

# Sign the Windows installers.
ifneq "$(cross_winsigncode)" "" in putty/windows do $(cross_winsigncode) -i https://www.chiark.greenend.org.uk/~sgtatham/putty/ -n "PuTTY Installer" installer32.msi installer64.msi

# Finished Windows builds.
return putty/windows/buildold/*.exe
return putty/windows/buildold/*.map
return putty/windows/build32/*.exe
return putty/windows/build32/*.map
return putty/windows/build64/*.exe
return putty/windows/build64/*.map
return putty/doc/putty.chm
return putty/windows/installer32.msi
return putty/windows/installer64.msi
return putty/windows/Output/installer.exe
enddelegate
in putty/doc do make mostlyclean
in putty/doc do make $(Docmakever)
in putty/windows/buildold do zip -k -j putty.zip `ls *.exe | grep -v puttytel` ../../doc/putty.chm ../../doc/putty.hlp ../../doc/putty.cnt
Expand All @@ -217,7 +204,6 @@ deliver putty/windows/build64/*.exe putty/w64/$@
deliver putty/windows/build64/putty.zip putty/w64/$@
deliver putty/windows/installer32.msi putty/w32/$(Ifilename32).msi
deliver putty/windows/installer64.msi putty/w64/$(Ifilename64).msi
deliver putty/windows/Output/installer.exe putty/w32/$(Ifilename32).exe
deliver putty/doc/puttydoc.zip putty/$@
deliver putty/doc/putty.chm putty/$@
deliver putty/doc/putty.hlp putty/$@
Expand Down
106 changes: 64 additions & 42 deletions CHECKLST.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,35 +24,38 @@ pre-releases on the website:
add a news announcement in components/news. (Previous naming
convention has been to name it in the form 'X.YZ-pre.mi'.)

Preparing to make a release
---------------------------
Things to do during the branch-stabilisation period:

Now that PuTTY is in git, a lot of the release preparation can be done
in advance, in local checkouts, and not pushed until the actual
process of _releasing_ it.
- Go through the source (including the documentation), and the
website, and review anything tagged with a comment containing the
word XXX-REVIEW-BEFORE-RELEASE. (Any such comments should state
clearly what needs to be done.)

To begin with, before dropping the tag, make sure everything is ready
for it:
- Do some testing of the Windows version with Minefield (you can
build a Minefield version using 'bob . XFLAGS=-DMINEFIELD'), and of
the Unix version with valgrind. In particular, any headline
features for the release should get a workout with memory checking
enabled!

- First of all, go through the source (including the documentation),
and the website, and review anything tagged with a comment
containing the word XXX-REVIEW-BEFORE-RELEASE.
(Any such comments should state clearly what needs to be done.)
Making a release candidate build
--------------------------------

- Also, do some testing of the Windows version with Minefield, and
of the Unix version with valgrind or efence or both. In
particular, any headline features for the release should get a
workout with memory checking enabled!
- Make a directory to hold all the release paraphernalia. I usually
call it ~/src/putty/X.YZ (where X.YZ will stand throughout for the
version number). In that directory, make a git clone of the PuTTY
repository, where you can make release-related commits and tags
tentatively, and keep them out of the way of any 'git push' you
might still be doing in other checkouts.

- Double-check that we have removed anything tagged with a comment
containing the words XXX-REMOVE-BEFORE-RELEASE or
XXX-REVIEW-BEFORE-RELEASE. ('git grep XXX-RE' should only show up
hits in this file itself.)

- Now update the version numbers and the transcripts in the docs, by
checking out the release branch and running
checking out the release branch in the release-specific checkout
and running

make distclean
./release.pl --version=X.YZ --setver

Then check that the resulting automated git commit has updated the
Expand All @@ -72,6 +75,42 @@ for it:
- If the release is on a branch (which I expect it generally will
be), merge that branch to master.

- Make a release-candidate build from the release tag, and put the
build.out and build.log dfiles somewhere safe. Normally I store
these in an adjacent directory, so I'll run a command like
bob -o ../X.YZ/build-X.YZ-rcN.out -l ../X.YZ/build-X.YZ-rcN.log -c X.YZ . RELEASE=X.YZ
This should generate a basically valid release directory as
`build-X.YZ-rcN.out/putty', and provide link maps and sign.sh
alongside that.

- Double-check in build-X.YZ-rcN.log that the release was built from
the right git commit.

- Make a preliminary gpg signature, but don't run the full release-
signing procedure. (We use the presence of a full set of GPG
signatures to distinguish _abandoned_ release candidates from the
one that ended up being the release.) In the 'build.X.YZ-rcN.out'
directory, run
sh sign.sh -r -p putty
and you should only have to enter the release key passphrase once,
which will generate a clearsigned file called
sha512sums-preliminary.gpg _outside_ the 'putty' subdirectory.

- For my own safety, make the release candidate build read-only.
chmod -R a-w build-X.YZ-rcN.out build-X.YZ-rcN.log

- Now do some checking of the release binaries, and pass them to the
rest of the team to do some as well. Do at least these things:
* make sure they basically work
* check they report the right version number
* if there's any easily observable behaviour difference between
the release branch and master, arrange to observe it
* test the Windows installer
* test the Unix source tarball.

Preparing to make the release
-----------------------------

- Write a release announcement (basically a summary of the changes
since the last release). Squirrel it away in
thyestes:src/putty-local/announce-<ver> in case it's needed again
Expand All @@ -96,33 +135,16 @@ for it:
branch (so that the wishlist mechanism can't automatically mark
them as fixed in the new release), add appropriate Fixed-in
headers for those.
* Add an entry to the @releases array in control/bugs2html.

- Make a release-candidate build from the release tag, and put the
build.out and build.log dfiles somewhere safe. Normally I store
these in an adjacent directory, so I'll run a command like
bob -o ../X.YZ/build-X.YZ-rcN.out -l ../X.YZ/build-X.YZ-rcN.log -c X.YZ . RELEASE=X.YZ
This should generate a basically valid release directory as
`build-X.YZ-rcN.out/putty', and provide link maps and sign.sh
alongside that.

- Double-check in build-X.YZ-rcN.log that the release was built from
the right git commit.

- Do a bit of checking of the release binaries:
* make sure they basically work
* check they report the right version number
* if there's any easily observable behaviour difference between
the release branch and master, arrange to observe it
* test the Windows installer
* test the Unix source tarball.

- Sign the release: in the `build-X.YZ-rcN.out' directory, type
- Sign the release in full. In the `build-X.YZ-rcN.out' directory,
re-verify that the preliminary signed checksums file has a correct
signature on it and also matches the files you're about to sign for real:
gpg -d sha512sums-preliminary.gpg | (cd putty; sha512sum -c)
If the combined output of that pipeline reports both a good
signature (from the release key) and a successful verification of
all the sha512sums, then all is well, so now run
sh sign.sh -r putty
and enter the passphrases a lot of times.

- For my own safety, make the release candidate build read-only.
chmod -R a-w build-X.YZ-rcN.out build-X.YZ-rcN.log
and enter the release key passphrase a lot of times.

The actual release procedure
----------------------------
Expand Down
2 changes: 1 addition & 1 deletion LATEST.VER
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.68
0.70
4 changes: 3 additions & 1 deletion LICENCE
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ PuTTY is copyright 1997-2017 Simon Tatham.
Portions copyright Robert de Bath, Joris van Rantwijk, Delian
Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry,
Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus
Kuhn, Colin Watson, Christopher Staite, and CORE SDI S.A.
Kuhn, Colin Watson, Christopher Staite, Lorenz Diener, Christian
Brabandt, Jeff Smith, Pavel Kryukov, Maxim Kuznetsov, Svyatoslav
Kuzmich, and CORE SDI S.A.

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
Expand Down
10 changes: 3 additions & 7 deletions README
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
This is the README for the source archive of PuTTY, a free Win32
This is the README for the source archive of PuTTY, a free Windows
and Unix Telnet and SSH client.

If you want to rebuild PuTTY from source, we provide a variety of
Expand Down Expand Up @@ -34,10 +34,6 @@ For building on Windows:
MSVC/putty/putty.dsp builds PuTTY itself, MSVC/plink/plink.dsp
builds Plink, and so on.

- windows/Makefile.bor is for the Borland C compiler. Type `make -f
Makefile.bor' while in the `windows' subdirectory to build all
the PuTTY binaries.

- windows/Makefile.mgw is for MinGW / Cygwin installations. Type
`make -f Makefile.mgw' while in the `windows' subdirectory to
build all the PuTTY binaries.
Expand Down Expand Up @@ -127,11 +123,11 @@ 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 <http://www.chiark.greenend.org.uk/~sgtatham/halibut/>.
found at <https://www.chiark.greenend.org.uk/~sgtatham/halibut/>.

The PuTTY home web site is

http://www.chiark.greenend.org.uk/~sgtatham/putty/
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
Expand Down
Loading