From 542953f964f376abeb2bc74fbef063757d3f125b Mon Sep 17 00:00:00 2001 From: wiz Date: Wed, 22 Feb 2012 15:27:13 +0000 Subject: Update to 0.62, keeping all pkgsrc patches which have not been fed upstream (hi roy! hi rillig!) 2011-12-10 PuTTY 0.62 released PuTTY 0.62 is out, containing only bug fixes from 0.61, in particular a security fix preventing passwords from being accidentally retained in memory. 2011-11-27 PuTTY 0.62 pre-release builds available PuTTY 0.61 had a few noticeable bugs in it (but nothing security-related), so we are planning to make a 0.62 release containing just bug fixes. The Wishlist page lists the bugs that will be fixed by the 0.62 release. The Download page now contains pre-release snapshots of 0.62, which contain those bug fixes and should be otherwise stable. (The usual development snapshots, containing other development since 0.61, are also still available.) 2011-07-12 PuTTY 0.61 is released PuTTY 0.61 is out, after over four years (sorry!), with new features, bug fixes, and compatibility updates for Windows 7 and various SSH server software. --- security/putty/Makefile | 22 +++++------- security/putty/distinfo | 26 ++++++-------- security/putty/options.mk | 10 ++++++ security/putty/patches/patch-aa | 21 ----------- security/putty/patches/patch-ac | 13 ------- security/putty/patches/patch-ad | 33 ------------------ security/putty/patches/patch-ae | 13 ------- security/putty/patches/patch-af | 13 ------- security/putty/patches/patch-ag | 13 ------- security/putty/patches/patch-ai | 13 ------- security/putty/patches/patch-aj | 13 ------- security/putty/patches/patch-ak | 26 -------------- security/putty/patches/patch-al | 28 --------------- security/putty/patches/patch-am | 48 -------------------------- security/putty/patches/patch-an | 29 ---------------- security/putty/patches/patch-import.c | 26 ++++++++++++++ security/putty/patches/patch-terminal.c | 46 ++++++++++++++++++++++++ security/putty/patches/patch-unix_Makefile.gtk | 35 +++++++++++++++++++ security/putty/patches/patch-unix_gtkwin.c | 27 +++++++++++++++ security/putty/patches/patch-unix_uxnet.c | 17 +++++++++ security/putty/patches/patch-windows_window.c | 26 ++++++++++++++ 21 files changed, 205 insertions(+), 293 deletions(-) create mode 100644 security/putty/options.mk delete mode 100644 security/putty/patches/patch-aa delete mode 100644 security/putty/patches/patch-ac delete mode 100644 security/putty/patches/patch-ad delete mode 100644 security/putty/patches/patch-ae delete mode 100644 security/putty/patches/patch-af delete mode 100644 security/putty/patches/patch-ag delete mode 100644 security/putty/patches/patch-ai delete mode 100644 security/putty/patches/patch-aj delete mode 100644 security/putty/patches/patch-ak delete mode 100644 security/putty/patches/patch-al delete mode 100644 security/putty/patches/patch-am delete mode 100644 security/putty/patches/patch-an create mode 100644 security/putty/patches/patch-import.c create mode 100644 security/putty/patches/patch-terminal.c create mode 100644 security/putty/patches/patch-unix_Makefile.gtk create mode 100644 security/putty/patches/patch-unix_gtkwin.c create mode 100644 security/putty/patches/patch-unix_uxnet.c create mode 100644 security/putty/patches/patch-windows_window.c diff --git a/security/putty/Makefile b/security/putty/Makefile index ea28a5fae1f..279de1aa8e9 100644 --- a/security/putty/Makefile +++ b/security/putty/Makefile @@ -1,14 +1,14 @@ -# $NetBSD: Makefile,v 1.22 2011/12/10 20:50:51 cheusov Exp $ +# $NetBSD: Makefile,v 1.23 2012/02/22 15:27:13 wiz Exp $ # -DISTNAME= putty-0.60 -PKGREVISION= 2 +DISTNAME= putty-0.62 CATEGORIES= security -MASTER_SITES= http://the.earth.li/~sgtatham/putty/0.60/ +MASTER_SITES= http://the.earth.li/~sgtatham/putty/0.62/ MAINTAINER= pkgsrc-users@NetBSD.org HOMEPAGE= http://www.chiark.greenend.org.uk/~sgtatham/putty/ COMMENT= Free implementation of Telnet and SSH for Win32 and Unix platforms +LICENSE= mit PKG_DESTDIR_SUPPORT= user-destdir @@ -20,24 +20,17 @@ MAKE_FLAGS+= mandir=${PREFIX}/${PKGMANDIR} INSTALLATION_DIRS= bin ${PKGMANDIR}/man1 -PKG_OPTIONS_VAR= PKG_OPTIONS.putty -PKG_SUPPORTED_OPTIONS= inet6 - -.include "../../mk/bsd.options.mk" +.include "options.mk" .if empty(OPSYS:MLinux) CFLAGS+= -DHAVE_NO_SETRESUID .endif -.if !empty(PKG_OPTIONS:Minet6) -CFLAGS+= -DIPV6 -.endif - .if !empty(OPSYS:M*BSD) || ${OPSYS} == "DragonFly" || ${OPSYS} == "Darwin" CFLAGS+= -DOMIT_UTMP .endif -# Unix98 ptys were added some weeks ago in NetBSD -current, +# Unix98 ptys were added some time ago in NetBSD -current, # so use it if we have the device, otherwise use the old style. .if !exists(/dev/ptmx) CFLAGS+= -DBSD_PTYS @@ -46,5 +39,6 @@ CFLAGS+= -DBSD_PTYS LDFLAGS.SunOS+= -lsocket -lnsl CFLAGS.SunOS+= -DBSD_COMP -.include "../../x11/gtk/buildlink3.mk" +.include "../../x11/gtk2/buildlink3.mk" +.include "../../mk/dlopen.buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/security/putty/distinfo b/security/putty/distinfo index f54306e019f..893c816d595 100644 --- a/security/putty/distinfo +++ b/security/putty/distinfo @@ -1,17 +1,11 @@ -$NetBSD: distinfo,v 1.9 2011/12/10 20:50:51 cheusov Exp $ +$NetBSD: distinfo,v 1.10 2012/02/22 15:27:13 wiz Exp $ -SHA1 (putty-0.60.tar.gz) = 8d99f8f1077b7ab25f014126b5d812a1ad55ce37 -RMD160 (putty-0.60.tar.gz) = 9c56ee4d2d05f5b1079c65f19a5d9d06b596aba3 -Size (putty-0.60.tar.gz) = 1743711 bytes -SHA1 (patch-aa) = 4949b10698c445fa16a28a8818c7448959f45135 -SHA1 (patch-ac) = 61cc8640417931a04152d4f4a1d6daa420d85496 -SHA1 (patch-ad) = 02b6d4a1869e40cf891f2ff8710b2aa27b5b23ba -SHA1 (patch-ae) = 82bd150f0dfb59eda57e4d9bca7abfc8093090a9 -SHA1 (patch-af) = 549688da80048f57530f23d59799c04f09ddbdca -SHA1 (patch-ag) = 2012609deff68e4931538b1a987c02b532bf04be -SHA1 (patch-ai) = 3965e71c222d7db61d5d852dedf8fb3ec082c9a1 -SHA1 (patch-aj) = 7c22c5cb2c41445fa70dfff9e6d756af444daf06 -SHA1 (patch-ak) = 2ca42d1ea913505d7d265a3fde71e09aa292d75f -SHA1 (patch-al) = dd8d49697806d9087b9691c3bb48fe32b70a77e1 -SHA1 (patch-am) = 4dc40f37310f8bcebee3e41bb684c89bae9323e3 -SHA1 (patch-an) = 8411855d0a21b0ddb490384990003a3cfc58edcf +SHA1 (putty-0.62.tar.gz) = 5898438614117ee7e3704fc3f30a3c4bf2041380 +RMD160 (putty-0.62.tar.gz) = 48324416005eb4b14654fc9e0e14d39f20971507 +Size (putty-0.62.tar.gz) = 1783106 bytes +SHA1 (patch-import.c) = c2dc26aa851a326ea89e782ef93ae7bfdc916366 +SHA1 (patch-terminal.c) = 48c3c928711bf7f461c0fd66490b0412f165f75b +SHA1 (patch-unix_Makefile.gtk) = 0ad8226e2ad8e6e40d3eb9ddef4b22e7d07b7895 +SHA1 (patch-unix_gtkwin.c) = ead5e3dea292e6054afa3b9b1a9bc93fc1aff642 +SHA1 (patch-unix_uxnet.c) = 50e39093ece97b189da4a736713b59ed72c162d9 +SHA1 (patch-windows_window.c) = 0c9f4ad5870e63793278d6f04cae88154611e596 diff --git a/security/putty/options.mk b/security/putty/options.mk new file mode 100644 index 00000000000..ea902fe368c --- /dev/null +++ b/security/putty/options.mk @@ -0,0 +1,10 @@ +# $NetBSD: options.mk,v 1.1 2012/02/22 15:27:13 wiz Exp $ + +PKG_OPTIONS_VAR= PKG_OPTIONS.putty +PKG_SUPPORTED_OPTIONS= inet6 + +.include "../../mk/bsd.options.mk" + +.if !empty(PKG_OPTIONS:Minet6) +CFLAGS+= -DIPV6 +.endif diff --git a/security/putty/patches/patch-aa b/security/putty/patches/patch-aa deleted file mode 100644 index 8d76cd07599..00000000000 --- a/security/putty/patches/patch-aa +++ /dev/null @@ -1,21 +0,0 @@ -$NetBSD: patch-aa,v 1.5 2007/10/13 09:14:16 obache Exp $ - ---- unix/Makefile.gtk.orig 2007-04-29 13:41:48.000000000 +0200 -+++ unix/Makefile.gtk 2007-10-03 09:26:39.000000000 +0200 -@@ -99,14 +99,14 @@ - # TOOLPATH = /opt/gcc/bin - CC = $(TOOLPATH)cc - --CFLAGS = -O2 -Wall -Werror -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ -+CFLAGS += -O2 -Wall -Werror -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ - -I../mac/ -I../macosx/ `gtk-config --cflags` -D _FILE_OFFSET_BITS=64 - XLDFLAGS = $(LDFLAGS) `gtk-config --libs` - ULDFLAGS = $(LDFLAGS) - INSTALL=install - INSTALL_PROGRAM=$(INSTALL) - INSTALL_DATA=$(INSTALL) --prefix=/usr/local -+prefix= ${PREFIX} - exec_prefix=$(prefix) - bindir=$(exec_prefix)/bin - mandir=$(prefix)/man diff --git a/security/putty/patches/patch-ac b/security/putty/patches/patch-ac deleted file mode 100644 index 963221e915d..00000000000 --- a/security/putty/patches/patch-ac +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-ac,v 1.2 2005/04/13 16:45:46 rillig Exp $ - ---- logging.c.orig 2005-04-06 23:11:53.000000000 +0200 -+++ logging.c 2005-04-06 23:12:15.000000000 +0200 -@@ -361,7 +361,7 @@ - char c; - s++; - size = 0; -- if (*s) switch (c = *s++, tolower(c)) { -+ if (*s) switch (c = *s++, tolower((unsigned char)c)) { - case 'y': - size = strftime(buf, sizeof(buf), "%Y", tm); - break; diff --git a/security/putty/patches/patch-ad b/security/putty/patches/patch-ad deleted file mode 100644 index 86fc24f932b..00000000000 --- a/security/putty/patches/patch-ad +++ /dev/null @@ -1,33 +0,0 @@ -$NetBSD: patch-ad,v 1.3 2011/12/10 20:50:51 cheusov Exp $ - ---- unix/uxnet.c.orig 2006-12-09 15:44:31.000000000 +0000 -+++ unix/uxnet.c -@@ -17,6 +17,15 @@ - #include - #include - -+/* This is a hack for solaris, it keeps SIOCATMARK here. */ -+#ifndef SIOCATMARK -+#include -+#endif -+/* For Unix flavors that don't define INADDR_NONE */ -+#ifndef INADDR_NONE -+#define INADDR_NONE 0xffffffff -+#endif -+ - #define DEFINE_PLUG_METHOD_MACROS - #include "putty.h" - #include "network.h" -@@ -448,10 +457,10 @@ static int try_connect(Actual_Socket soc - #endif - struct sockaddr_in a; - struct sockaddr_un au; -- const struct sockaddr *sa; -+ const struct sockaddr *sa = NULL; - int err = 0; - short localport; -- int fl, salen; -+ int fl, salen = 0; - - if (sock->s >= 0) - close(sock->s); diff --git a/security/putty/patches/patch-ae b/security/putty/patches/patch-ae deleted file mode 100644 index ef6b31fc645..00000000000 --- a/security/putty/patches/patch-ae +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-ae,v 1.2 2005/04/13 16:45:46 rillig Exp $ - ---- charset/localenc.c.orig Tue Apr 5 21:37:48 2005 -+++ charset/localenc.c Tue Apr 12 10:29:00 2005 -@@ -101,7 +101,7 @@ int charset_from_localenc(const char *na - p = name; - q = localencs[i].name; - while (*p || *q) { -- if (tolower(*p) != tolower(*q)) -+ if (tolower((unsigned char)*p) != tolower((unsigned char)*q)) - break; - p++; q++; - } diff --git a/security/putty/patches/patch-af b/security/putty/patches/patch-af deleted file mode 100644 index 5103591a951..00000000000 --- a/security/putty/patches/patch-af +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-af,v 1.2 2005/04/13 16:45:46 rillig Exp $ - ---- charset/mimeenc.c.orig 2005-04-06 23:14:37.000000000 +0200 -+++ charset/mimeenc.c 2005-04-06 23:14:57.000000000 +0200 -@@ -197,7 +197,7 @@ - p = name; - q = mimeencs[i].name; - while (*p || *q) { -- if (tolower(*p) != tolower(*q)) -+ if (tolower((unsigned char)*p) != tolower((unsigned char)*q)) - break; - p++; q++; - } diff --git a/security/putty/patches/patch-ag b/security/putty/patches/patch-ag deleted file mode 100644 index a3804667267..00000000000 --- a/security/putty/patches/patch-ag +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-ag,v 1.2 2005/04/13 16:45:46 rillig Exp $ - ---- terminal.c.orig 2005-04-06 23:15:37.000000000 +0200 -+++ terminal.c 2005-04-06 23:15:48.000000000 +0200 -@@ -5818,7 +5818,7 @@ - if (modifiers & PKM_CONTROL) - c &= 0x1f; - else if (modifiers & PKM_SHIFT) -- c = toupper(c); -+ c = toupper((unsigned char)c); - } - *p++ = c; - goto done; diff --git a/security/putty/patches/patch-ai b/security/putty/patches/patch-ai deleted file mode 100644 index eedfd7fc4ad..00000000000 --- a/security/putty/patches/patch-ai +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-ai,v 1.2 2005/04/13 16:45:46 rillig Exp $ - ---- charset/xenc.c.orig 2005-04-06 23:29:15.000000000 +0200 -+++ charset/xenc.c 2005-04-06 23:29:31.000000000 +0200 -@@ -80,7 +80,7 @@ - p = name; - q = xencs[i].name; - while (*p || *q) { -- if (tolower(*p) != tolower(*q)) -+ if (tolower((unsigned char)*p) != tolower((unsigned char)*q)) - break; - p++; q++; - } diff --git a/security/putty/patches/patch-aj b/security/putty/patches/patch-aj deleted file mode 100644 index a564dd211bb..00000000000 --- a/security/putty/patches/patch-aj +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-aj,v 1.2 2005/04/13 16:45:46 rillig Exp $ - ---- cmdgen.c.orig 2005-04-06 23:30:02.000000000 +0200 -+++ cmdgen.c 2005-04-06 23:30:15.000000000 +0200 -@@ -114,7 +114,7 @@ - void showversion(void) - { - char *verstr = dupstr(ver); -- verstr[0] = tolower(verstr[0]); -+ verstr[0] = tolower((unsigned char)verstr[0]); - printf("PuTTYgen %s\n", verstr); - sfree(verstr); - } diff --git a/security/putty/patches/patch-ak b/security/putty/patches/patch-ak deleted file mode 100644 index 13c7b5049b3..00000000000 --- a/security/putty/patches/patch-ak +++ /dev/null @@ -1,26 +0,0 @@ -$NetBSD: patch-ak,v 1.2 2005/04/13 16:45:46 rillig Exp $ - ---- import.c.orig Tue Apr 5 21:37:51 2005 -+++ import.c Tue Apr 12 10:27:13 2005 -@@ -680,8 +680,8 @@ int openssh_write(const Filename *filena - unsigned char *outblob; - int outlen; - struct mpint_pos numbers[9]; -- int nnumbers, pos, len, seqlen, i; -- char *header, *footer; -+ int nnumbers = 0, pos = 0, len = 0, seqlen = 0, i = 0; -+ char *header = NULL, *footer = NULL; - char zero[1]; - unsigned char iv[8]; - int ret = 0; -@@ -1441,8 +1441,8 @@ int sshcom_write(const Filename *filenam - unsigned char *outblob; - int outlen; - struct mpint_pos numbers[6]; -- int nnumbers, initial_zero, pos, lenpos, i; -- char *type; -+ int nnumbers = 0, initial_zero = 0, pos = 0, lenpos = 0, i = 0; -+ char *type = NULL; - char *ciphertext; - int cipherlen; - int ret = 0; diff --git a/security/putty/patches/patch-al b/security/putty/patches/patch-al deleted file mode 100644 index 98c81f4d8fd..00000000000 --- a/security/putty/patches/patch-al +++ /dev/null @@ -1,28 +0,0 @@ -$NetBSD: patch-al,v 1.1 2009/02/25 18:08:01 roy Exp $ - -Make the home/end keys work on BSD servers as well as Linux ones - -Index: windows/window.c -=================================================================== ---- windows/window.c (revision 8466) -+++ windows/window.c (working copy) -@@ -4189,8 +4189,17 @@ - p += sprintf((char *) p, "\x1BO%c", code + 'P' - 11); - return p - output; - } -- if (cfg.rxvt_homeend && (code == 1 || code == 4)) { -- p += sprintf((char *) p, code == 1 ? "\x1B[H" : "\x1BOw"); -+ /* Home/End */ -+ if (code == 1 || code == 4) { -+ /* Send the correct XTerm or rxvt codes for home/end -+ * We used to send ^[1~ and [4~ for Xterm, -+ * but those are Linux console */ -+ const char *he; -+ if (cfg.rxvt_homeend) -+ he = code == 1 ? "\x1B[7~" : "\x1B[8~"; -+ else -+ he = code == 1 ? "\x1BOH" : "\x1BOF"; -+ p += sprintf((char *) p, he); - return p - output; - } - if (code) { diff --git a/security/putty/patches/patch-am b/security/putty/patches/patch-am deleted file mode 100644 index e3f20caa757..00000000000 --- a/security/putty/patches/patch-am +++ /dev/null @@ -1,48 +0,0 @@ -$NetBSD: patch-am,v 1.1 2009/02/25 18:08:01 roy Exp $ - -Make the home/end keys work on BSD servers as well as Linux ones - -Index: terminal.c -=================================================================== ---- terminal.c (revision 8466) -+++ terminal.c (working copy) -@@ -6131,13 +6131,6 @@ - } - } - -- /* RXVT Home/End */ -- if (term->cfg.rxvt_homeend && -- (keysym == PK_HOME || keysym == PK_END)) { -- p += sprintf((char *) p, keysym == PK_HOME ? "\x1B[H" : "\x1BOw"); -- goto done; -- } -- - if (term->vt52_mode) { - int xkey; - -@@ -6158,11 +6151,23 @@ - goto done; - } - -+ /* Home/End */ -+ if (keysym == PK_HOME || keysym == PK_END) { -+ /* Send the correct XTerm or rxvt codes for home/end -+ * We used to send ^[1~ and [4~ for Xterm, -+ * but those are Linux console */ -+ const char *he; -+ if (term->cfg.rxvt_homeend) -+ he = keysym == PK_HOME ? "\x1B[7~" : "\x1B[8~"; -+ else -+ he = keysym == PK_HOME ? "\x1BOH" : "\x1BOF"; -+ p += sprintf((char *) p, he); -+ goto done; -+ } -+ - switch (keysym) { -- case PK_HOME: code = 1; break; - case PK_INSERT: code = 2; break; - case PK_DELETE: code = 3; break; -- case PK_END: code = 4; break; - case PK_PAGEUP: code = 5; break; - case PK_PAGEDOWN: code = 6; break; - default: code = 0; break; /* else gcc warns `enum value not used' */ diff --git a/security/putty/patches/patch-an b/security/putty/patches/patch-an deleted file mode 100644 index 398024755b1..00000000000 --- a/security/putty/patches/patch-an +++ /dev/null @@ -1,29 +0,0 @@ -$NetBSD: patch-an,v 1.1 2009/02/25 18:08:01 roy Exp $ - -Make the home/end keys work on BSD servers as well as Linux ones - -Index: unix/gtkwin.c -=================================================================== ---- unix/gtkwin.c (revision 8466) -+++ unix/gtkwin.c (working copy) -@@ -979,9 +979,17 @@ - use_ucsoutput = FALSE; - goto done; - } -- if (inst->cfg.rxvt_homeend && (code == 1 || code == 4)) { -- end = 1 + sprintf(output+1, code == 1 ? "\x1B[H" : "\x1BOw"); -- use_ucsoutput = FALSE; -+ /* Home/End */ -+ if (code == 1 || code == 4) { -+ /* Send the correct XTerm or rxvt codes for home/end -+ * We used to send ^[1~ and [4~ for Xterm, -+ * but those are Linux console */ -+ const char *he; -+ if (inst->cfg.rxvt_homeend) -+ he = code == 1 ? "\x1B[7~" : "\x1B[8~"; -+ else -+ he = code == 1 ? "\x1BOH" : "\x1BOF"; -+ end = 1 + sprintf(output+1, he); - goto done; - } - if (code) { diff --git a/security/putty/patches/patch-import.c b/security/putty/patches/patch-import.c new file mode 100644 index 00000000000..aa74a4e69ff --- /dev/null +++ b/security/putty/patches/patch-import.c @@ -0,0 +1,26 @@ +$NetBSD: patch-import.c,v 1.1 2012/02/22 15:27:16 wiz Exp $ + +--- import.c.orig 2010-04-12 11:02:06.000000000 +0000 ++++ import.c +@@ -717,8 +717,8 @@ int openssh_write(const Filename *filena + unsigned char *outblob; + int outlen; + struct mpint_pos numbers[9]; +- int nnumbers, pos, len, seqlen, i; +- char *header, *footer; ++ int nnumbers = 0, pos = 0, len = 0, seqlen = 0, i = 0; ++ char *header = NULL, *footer = NULL; + char zero[1]; + unsigned char iv[8]; + int ret = 0; +@@ -1513,8 +1513,8 @@ int sshcom_write(const Filename *filenam + unsigned char *outblob; + int outlen; + struct mpint_pos numbers[6]; +- int nnumbers, initial_zero, pos, lenpos, i; +- char *type; ++ int nnumbers = 0, initial_zero = 0, pos = 0, lenpos = 0, i = 0; ++ char *type = NULL; + char *ciphertext; + int cipherlen; + int ret = 0; diff --git a/security/putty/patches/patch-terminal.c b/security/putty/patches/patch-terminal.c new file mode 100644 index 00000000000..ee2213050f0 --- /dev/null +++ b/security/putty/patches/patch-terminal.c @@ -0,0 +1,46 @@ +$NetBSD: patch-terminal.c,v 1.1 2012/02/22 15:27:16 wiz Exp $ + +Make the home/end keys work on BSD servers as well as Linux ones + +--- terminal.c.orig 2011-07-16 11:27:05.000000000 +0000 ++++ terminal.c +@@ -6202,13 +6202,6 @@ void term_key(Terminal *term, Key_Sym ke + } + } + +- /* RXVT Home/End */ +- if (term->cfg.rxvt_homeend && +- (keysym == PK_HOME || keysym == PK_END)) { +- p += sprintf((char *) p, keysym == PK_HOME ? "\x1B[H" : "\x1BOw"); +- goto done; +- } +- + if (term->vt52_mode) { + int xkey; + +@@ -6229,11 +6222,23 @@ void term_key(Terminal *term, Key_Sym ke + goto done; + } + ++ /* Home/End */ ++ if (keysym == PK_HOME || keysym == PK_END) { ++ /* Send the correct XTerm or rxvt codes for home/end ++ * We used to send ^[1~ and [4~ for Xterm, ++ * but those are Linux console */ ++ const char *he; ++ if (term->cfg.rxvt_homeend) ++ he = keysym == PK_HOME ? "\x1B[7~" : "\x1B[8~"; ++ else ++ he = keysym == PK_HOME ? "\x1BOH" : "\x1BOF"; ++ p += sprintf((char *) p, he); ++ goto done; ++ } ++ + switch (keysym) { +- case PK_HOME: code = 1; break; + case PK_INSERT: code = 2; break; + case PK_DELETE: code = 3; break; +- case PK_END: code = 4; break; + case PK_PAGEUP: code = 5; break; + case PK_PAGEDOWN: code = 6; break; + default: code = 0; break; /* else gcc warns `enum value not used' */ diff --git a/security/putty/patches/patch-unix_Makefile.gtk b/security/putty/patches/patch-unix_Makefile.gtk new file mode 100644 index 00000000000..8e5031cf43e --- /dev/null +++ b/security/putty/patches/patch-unix_Makefile.gtk @@ -0,0 +1,35 @@ +$NetBSD: patch-unix_Makefile.gtk,v 1.1 2012/02/22 15:27:16 wiz Exp $ + +Allow adding CFLAGS from the pkgsrc environment. +Use pkgsrc infrastructure for deciding on whether to link against libdl or not. +Set prefix suitable for pkgsrc. + +--- unix/Makefile.gtk.orig 2011-12-10 12:35:15.000000000 +0000 ++++ unix/Makefile.gtk +@@ -119,14 +119,14 @@ GTK_CONFIG = sh -c 'pkg-config gtk+-2.0 + + unexport CFLAGS # work around a weird issue with krb5-config + +-CFLAGS = -O2 -Wall -Werror -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ ++CFLAGS += -O2 -Wall -Werror -g -I.././ -I../charset/ -I../windows/ -I../unix/ \ + -I../macosx/ $(shell $(GTK_CONFIG) --cflags) -D _FILE_OFFSET_BITS=64 + XLDFLAGS = $(LDFLAGS) $(shell $(GTK_CONFIG) --libs) + ULDFLAGS = $(LDFLAGS) + ifeq (,$(findstring NO_GSSAPI,$(COMPAT))) + ifeq (,$(findstring STATIC_GSSAPI,$(COMPAT))) +-XLDFLAGS+= -ldl +-ULDFLAGS+= -ldl ++XLDFLAGS+= ${DL_LIBS} ++ULDFLAGS+= ${DL_LIBS} + else + CFLAGS+= -DNO_LIBDL $(shell $(KRB5CONFIG) --cflags gssapi) + XLDFLAGS+= $(shell $(KRB5CONFIG) --libs gssapi) +@@ -136,7 +136,7 @@ endif + INSTALL=install + INSTALL_PROGRAM=$(INSTALL) + INSTALL_DATA=$(INSTALL) +-prefix=/usr/local ++prefix=${PREFIX} + exec_prefix=$(prefix) + bindir=$(exec_prefix)/bin + mandir=$(prefix)/man diff --git a/security/putty/patches/patch-unix_gtkwin.c b/security/putty/patches/patch-unix_gtkwin.c new file mode 100644 index 00000000000..544410063e3 --- /dev/null +++ b/security/putty/patches/patch-unix_gtkwin.c @@ -0,0 +1,27 @@ +$NetBSD: patch-unix_gtkwin.c,v 1.1 2012/02/22 15:27:17 wiz Exp $ + +Make the home/end keys work on BSD servers as well as Linux ones + +--- unix/gtkwin.c.orig 2011-05-07 10:57:19.000000000 +0000 ++++ unix/gtkwin.c +@@ -1033,9 +1033,17 @@ gint key_event(GtkWidget *widget, GdkEve + use_ucsoutput = FALSE; + goto done; + } +- if (inst->cfg.rxvt_homeend && (code == 1 || code == 4)) { +- end = 1 + sprintf(output+1, code == 1 ? "\x1B[H" : "\x1BOw"); +- use_ucsoutput = FALSE; ++ /* Home/End */ ++ if (code == 1 || code == 4) { ++ /* Send the correct XTerm or rxvt codes for home/end ++ * We used to send ^[1~ and [4~ for Xterm, ++ * but those are Linux console */ ++ const char *he; ++ if (inst->cfg.rxvt_homeend) ++ he = code == 1 ? "\x1B[7~" : "\x1B[8~"; ++ else ++ he = code == 1 ? "\x1BOH" : "\x1BOF"; ++ end = 1 + sprintf(output+1, he); + goto done; + } + if (code) { diff --git a/security/putty/patches/patch-unix_uxnet.c b/security/putty/patches/patch-unix_uxnet.c new file mode 100644 index 00000000000..7268e372779 --- /dev/null +++ b/security/putty/patches/patch-unix_uxnet.c @@ -0,0 +1,17 @@ +$NetBSD: patch-unix_uxnet.c,v 1.1 2012/02/22 15:27:17 wiz Exp $ + +--- unix/uxnet.c.orig 2009-08-06 22:55:15.000000000 +0000 ++++ unix/uxnet.c +@@ -526,10 +526,10 @@ static int try_connect(Actual_Socket soc + { + int s; + union sockaddr_union u; +- const union sockaddr_union *sa; ++ const union sockaddr_union *sa = NULL; + int err = 0; + short localport; +- int fl, salen, family; ++ int fl, salen = 0, family; + + /* + * Remove the socket from the tree before we overwrite its diff --git a/security/putty/patches/patch-windows_window.c b/security/putty/patches/patch-windows_window.c new file mode 100644 index 00000000000..c7087749845 --- /dev/null +++ b/security/putty/patches/patch-windows_window.c @@ -0,0 +1,26 @@ +$NetBSD: patch-windows_window.c,v 1.1 2012/02/22 15:27:17 wiz Exp $ + +Make the home/end keys work on BSD servers as well as Linux ones + +--- windows/window.c.orig 2011-07-16 11:26:19.000000000 +0000 ++++ windows/window.c +@@ -4302,8 +4302,17 @@ static int TranslateKey(UINT message, WP + p += sprintf((char *) p, "\x1BO%c", code + 'P' - 11); + return p - output; + } +- if (cfg.rxvt_homeend && (code == 1 || code == 4)) { +- p += sprintf((char *) p, code == 1 ? "\x1B[H" : "\x1BOw"); ++ /* Home/End */ ++ if (code == 1 || code == 4) { ++ /* Send the correct XTerm or rxvt codes for home/end ++ * We used to send ^[1~ and [4~ for Xterm, ++ * but those are Linux console */ ++ const char *he; ++ if (cfg.rxvt_homeend) ++ he = code == 1 ? "\x1B[7~" : "\x1B[8~"; ++ else ++ he = code == 1 ? "\x1BOH" : "\x1BOF"; ++ p += sprintf((char *) p, he); + return p - output; + } + if (code) { -- cgit v1.2.3