diff --git a/security/putty/Makefile b/security/putty/Makefile index 01e847854e31..6c45dc6061af 100644 --- a/security/putty/Makefile +++ b/security/putty/Makefile @@ -1,113 +1,107 @@ PORTNAME= putty -PORTVERSION= 0.76 +PORTVERSION= 0.77 CATEGORIES= security MASTER_SITES= http://the.earth.li/~sgtatham/putty/${PORTVERSION}/ \ ftp://ftp.chiark.greenend.org.uk/users/sgtatham/putty-latest/ MAINTAINER= mandree@FreeBSD.org -COMMENT= Secure shell and telnet client -# test plan: test ALL 4 GSSAPI_* options, ALL 3 GTK options, WITH_DEBUG=yes build. +COMMENT= Secure shell and telnet client including xterm emulator +# test plan: test ALL 4 GSSAPI_* options, GTK3 yes/no, WITH_DEBUG=yes build. LICENSE= MIT LICENSE_FILE= ${PATCH_WRKSRC}/LICENCE -USES= cpe gmake pkgconfig +USES= cmake cpe perl5 pkgconfig +USE_PERL5= build -MAKEFILE= Makefile.gtk -MAKE_ARGS+= "prefix=${PREFIX}" - -CONFLICTS_INSTALL?= pssh putty-gtk2 putty-nogtk - -PATCH_WRKSRC= ${WRKDIR}/${DISTNAME} -WRKSRC= ${WRKDIR}/${DISTNAME}/unix +CONFLICTS_INSTALL?= pssh putty-nogtk PLIST_FILES= bin/plink \ bin/pscp \ bin/psftp \ + bin/psusan \ bin/puttygen \ - man/man1/plink.1.gz \ - man/man1/pscp.1.gz \ - man/man1/psftp.1.gz \ - man/man1/puttygen.1.gz - -OPTIONS_DEFAULT= GSSAPI_BASE GTK3 -OPTIONS_RADIO= TOOLKIT -OPTIONS_RADIO_TOOLKIT= GTK2 GTK3 + share/man/man1/plink.1.gz \ + share/man/man1/pscp.1.gz \ + share/man/man1/psftp.1.gz \ + share/man/man1/psusan.1.gz \ + share/man/man1/puttygen.1.gz + +OPTIONS_DEFINE= GTK3 +OPTIONS_DEFAULT= GSSAPI_NONE GTK3 OPTIONS_SINGLE= GSSAPI_SELECT -OPTIONS_SINGLE_GSSAPI_SELECT= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT \ +OPTIONS_SINGLE_GSSAPI_SELECT= GSSAPI_MIT \ + GSSAPI_DYNAMIC \ GSSAPI_NONE +GSSAPI_DYNAMIC_DESC= EXPERIMENTAL dynamic runtime load of GSS libs .include -CFLAGS+= -DBSD_PTYS -DHAVE_FUTIMES -DIPV6 -DOMIT_UTMP -LDFLAGS+= -lm -Wl,--as-needed +LDFLAGS+= -Wl,--as-needed -.if (${PORT_OPTIONS:MGTK2} || ${PORT_OPTIONS:MGTK3}) && !defined(WITHOUT_X11) +# XXX FIXME this is simplified on these assumptions: +# - we only support GTK3 in FreeBSD +# (Putty would support EOL GTK2 and GTK1 as well) +# - Putty 0.77 cannot have X11 without the gdk/gdkx.h header i. e. GTK. +.if ${PORT_OPTIONS:MGTK3} && !defined(WITHOUT_X11) USES+= xorg USE_XORG= x11 -. if ${PORT_OPTIONS:MGTK3} USES+= gnome USE_GNOME= cairo gdkpixbuf2 gtk30 -MAKE_ARGS+= GTK_CONFIG="pkg-config gtk+-3.0 x11 --cflags" \ - PUTTY_WITH_GTK=yes -. elif ${PORT_OPTIONS:MGTK2} - USES+= gnome -USE_GNOME= cairo gdkpixbuf2 gtk20 -MAKE_ARGS+= GTK_CONFIG="pkg-config gtk+-2.0 x11 --cflags" \ - PUTTY_WITH_GTK=yes -. endif +CMAKE_ARGS+= -DPUTTY_GTK_VERSION:STRING=3 PLIST_FILES+= bin/pageant \ bin/pterm \ bin/putty \ - bin/puttytel \ - man/man1/pageant.1.gz \ - man/man1/pterm.1.gz \ - man/man1/putty.1.gz \ - man/man1/puttytel.1.gz \ + share/man/man1/pageant.1.gz \ + share/man/man1/pterm.1.gz \ + share/man/man1/putty.1.gz \ share/pixmaps/putty.ico DESKTOP_ENTRIES= "PuTTY" \ "${COMMENT}" \ "${PREFIX}/share/pixmaps/${PORTNAME}.ico" \ "${PORTNAME}" \ "" \ false .else -MAKE_ARGS+= GTK_CONFIG=: +# XXX FIXME HACK ALERT +# PUTTY_GTK_VERSION=OFF is not a valid choice, but manages to +# skip all version comparisons for GTK in cmake/gtk.cmake: +CMAKE_ARGS+= -DPUTTY_GTK_VERSION:STRING=OFF +# this is standard stuff: +CMAKE_ARGS+= -DCMAKE_DISABLE_FIND_PACKAGE_X11:BOOL=TRUE .endif -.if ${PORT_OPTIONS:MGSSAPI_BASE} -USES+= gssapi:base,flags -MAKE_ARGS+= KRB5CONFIG=${KRB5CONFIG} -.elif ${PORT_OPTIONS:MGSSAPI_HEIMDAL} +.if ${PORT_OPTIONS:MGSSAPI_HEIMDAL} +# does not compile currently +BROKEN= GSSAPI_HEIMDAL does not compile as of putty 0.77 USES+= gssapi:heimdal,flags -MAKE_ARGS+= KRB5CONFIG=${KRB5CONFIG} +CMAKE_ARGS+= -DPUTTY_GSSAPI:STRING=STATIC .elif ${PORT_OPTIONS:MGSSAPI_MIT} USES+= gssapi:mit,flags -MAKE_ARGS+= KRB5CONFIG=${KRB5CONFIG} +CMAKE_ARGS+= -DPUTTY_GSSAPI:STRING=STATIC +.elif ${PORT_OPTIONS:MGSSAPI_DYNAMIC} +CMAKE_ARGS+= -DPUTTY_GSSAPI:STRING=DYNAMIC .else -_COMPAT= -DNO_GSSAPI -.endif - -_COMPAT+= -DOMIT_UTMP - -.if defined(WITH_DEBUG) -CFLAGS+= -DDEBUG -XFLAGS= -DDEBUG -_COMPAT+= -DDEBUG +# XXX FIXME buglet in putty 0.77: PUTTY_GSSAPI=OFF +# does not appear to get NO_GSSAPI into .build/CMakeFiles/cmake.h, +# so we shove it down explicitly: +CMAKE_ARGS+= -DPUTTY_GSSAPI:STRING=OFF -DNO_GSSAPI=ON .endif -MAKE_ARGS+= CC="${CC}" \ - COMPAT="${_COMPAT}" \ - INSTALL_DATA="${INSTALL_DATA}" \ - INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ - XFLAGS="${XFLAGS}" +post-patch: + # we don't want to inherit FreeBSD commits + # as PUTTY Git commit revisions, + # so pretend we do not have Git: + ${REINPLACE_CMD} '/FindGit/d' \ + ${WRKSRC}/cmake/setup.cmake \ + ${WRKSRC}/doc/CMakeLists.txt post-install: -.if ${PORT_OPTIONS:MGTK2} || ${PORT_OPTIONS:MGTK3} +.if ${PORT_OPTIONS:MGTK3} @${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps - ${INSTALL_DATA} ${WRKSRC}/../windows/putty.ico \ + ${INSTALL_DATA} ${WRKSRC}/windows/putty.ico \ ${STAGEDIR}${PREFIX}/share/pixmaps/ .endif .include diff --git a/security/putty/distinfo b/security/putty/distinfo index 7766cc079336..0aa2ce19786d 100644 --- a/security/putty/distinfo +++ b/security/putty/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1626561798 -SHA256 (putty-0.76.tar.gz) = 547cd97a8daa87ef71037fab0773bceb54a8abccb2f825a49ef8eba5e045713f -SIZE (putty-0.76.tar.gz) = 2735687 +TIMESTAMP = 1653681200 +SHA256 (putty-0.77.tar.gz) = 419a76f45238fd45f2c76b42438993056e74fa78374f136052aaa843085beae5 +SIZE (putty-0.77.tar.gz) = 2619481 diff --git a/security/putty/files/patch-sshgssc.c b/security/putty/files/patch-ssh_gssc.c similarity index 88% rename from security/putty/files/patch-sshgssc.c rename to security/putty/files/patch-ssh_gssc.c index 824e547c51ea..91db8b14c57e 100644 --- a/security/putty/files/patch-sshgssc.c +++ b/security/putty/files/patch-ssh_gssc.c @@ -1,11 +1,11 @@ ---- sshgssc.c.orig 2019-03-16 12:26:36 UTC -+++ sshgssc.c +--- ssh/gssc.c.orig 2022-05-24 16:56:27 UTC ++++ ssh/gssc.c @@ -75,7 +75,7 @@ static Ssh_gss_stat ssh_gssapi_acquire_cred(struct ssh gssctx->maj_stat = gss->inquire_cred_by_mech(&gssctx->min_stat, cred, (gss_OID) GSS_MECH_KRB5, - GSS_C_NO_NAME, + NULL, &time_rec, NULL, NULL); diff --git a/security/putty/files/patch-unix_Makefile.gtk b/security/putty/files/patch-unix_Makefile.gtk deleted file mode 100644 index 381b7f6bc899..000000000000 --- a/security/putty/files/patch-unix_Makefile.gtk +++ /dev/null @@ -1,61 +0,0 @@ ---- unix/Makefile.gtk.orig 2021-05-02 07:21:01 UTC -+++ unix/Makefile.gtk -@@ -104,7 +104,7 @@ GTK_CONFIG = sh -c 'pkg-config gtk+-3.0 x11 $$0 2>/dev - - unexport CFLAGS # work around a weird issue with krb5-config - --CFLAGS = -O2 -Wall -std=gnu99 -Wvla -g -I.././ -I../charset/ -I../windows/ \ -+CFLAGS := $(CFLAGS) -Wall -std=gnu11 -Wvla -I.././ -I../charset/ -I../windows/ \ - -I../unix/ $(shell $(GTK_CONFIG) --cflags) -D _FILE_OFFSET_BITS=64 - XLDFLAGS = $(LDFLAGS) $(shell $(GTK_CONFIG) --libs) - ULDFLAGS = $(LDFLAGS) -@@ -131,9 +131,14 @@ man1dir=$(mandir)/man1 - .SUFFIXES: - - -+ifdef PUTTY_WITH_GTK - all: cgtest fuzzterm osxlaunch pageant plink pscp psftp psocks psusan pterm \ - ptermapp putty puttyapp puttygen puttytel testcrypt testsc \ - testzlib uppity -+else -+all: cgtest fuzzterm osxlaunch plink pscp psftp \ -+ puttygen testcrypt testsc testzlib uppity -+endif - - cgtest: cgtest.o conf.o console.o ecc.o import.o marshal.o memory.o \ - millerrabin.o misc.o mpint.o mpunsafe.o notiming.o pockle.o \ -@@ -1805,10 +1810,12 @@ xpmputty.o: ../unix/xpmputty.c - - install: - mkdir -p $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir) -- $(INSTALL_PROGRAM) -m 755 pageant $(DESTDIR)$(bindir)/pageant - $(INSTALL_PROGRAM) -m 755 plink $(DESTDIR)$(bindir)/plink - $(INSTALL_PROGRAM) -m 755 pscp $(DESTDIR)$(bindir)/pscp - $(INSTALL_PROGRAM) -m 755 psftp $(DESTDIR)$(bindir)/psftp -+ $(INSTALL_PROGRAM) -m 755 puttygen $(DESTDIR)$(bindir)/puttygen -+ifdef PUTTY_WITH_GTK -+ $(INSTALL_PROGRAM) -m 755 pageant $(DESTDIR)$(bindir)/pageant - $(INSTALL_PROGRAM) -m 755 pterm $(DESTDIR)$(bindir)/pterm - if test -n "$(UTMP_GROUP)"; then \ - chgrp $(UTMP_GROUP) $(DESTDIR)$(bindir)/pterm && \ -@@ -1818,16 +1825,18 @@ install: - chmod 4755 $(DESTDIR)$(bindir)/pterm; \ - fi - $(INSTALL_PROGRAM) -m 755 putty $(DESTDIR)$(bindir)/putty -- $(INSTALL_PROGRAM) -m 755 puttygen $(DESTDIR)$(bindir)/puttygen - $(INSTALL_PROGRAM) -m 755 puttytel $(DESTDIR)$(bindir)/puttytel - $(INSTALL_DATA) -m 644 ../doc/pageant.1 $(DESTDIR)$(man1dir)/pageant.1 -+endif - $(INSTALL_DATA) -m 644 ../doc/plink.1 $(DESTDIR)$(man1dir)/plink.1 - $(INSTALL_DATA) -m 644 ../doc/pscp.1 $(DESTDIR)$(man1dir)/pscp.1 - $(INSTALL_DATA) -m 644 ../doc/psftp.1 $(DESTDIR)$(man1dir)/psftp.1 -+ $(INSTALL_DATA) -m 644 ../doc/puttygen.1 $(DESTDIR)$(man1dir)/puttygen.1 -+ifdef PUTTY_WITH_GTK - $(INSTALL_DATA) -m 644 ../doc/pterm.1 $(DESTDIR)$(man1dir)/pterm.1 - $(INSTALL_DATA) -m 644 ../doc/putty.1 $(DESTDIR)$(man1dir)/putty.1 -- $(INSTALL_DATA) -m 644 ../doc/puttygen.1 $(DESTDIR)$(man1dir)/puttygen.1 - $(INSTALL_DATA) -m 644 ../doc/puttytel.1 $(DESTDIR)$(man1dir)/puttytel.1 -+endif - - install-strip: - $(MAKE) install INSTALL_PROGRAM="$(INSTALL_PROGRAM) -s" diff --git a/security/putty/files/patch-unix_uxnet.c b/security/putty/files/patch-unix_network.c similarity index 81% rename from security/putty/files/patch-unix_uxnet.c rename to security/putty/files/patch-unix_network.c index 5b49ab4de5a1..19e87ca62c99 100644 --- a/security/putty/files/patch-unix_uxnet.c +++ b/security/putty/files/patch-unix_network.c @@ -1,16 +1,16 @@ ---- unix/uxnet.c.orig 2019-03-16 12:26:37 UTC -+++ unix/uxnet.c +--- unix/network.c.orig 2022-05-24 16:56:28 UTC ++++ unix/network.c @@ -11,8 +11,13 @@ #include #include #include +#ifdef __FreeBSD__ +#include #include +#else +#include #include +#endif #include #include #include diff --git a/security/putty/files/patch-unix_uxpgnt.c b/security/putty/files/patch-unix_pageant.c similarity index 74% rename from security/putty/files/patch-unix_uxpgnt.c rename to security/putty/files/patch-unix_pageant.c index bd12c993c2e8..acfcf94966be 100644 --- a/security/putty/files/patch-unix_uxpgnt.c +++ b/security/putty/files/patch-unix_pageant.c @@ -1,11 +1,11 @@ ---- unix/uxpgnt.c.orig 2019-03-16 12:26:38 UTC -+++ unix/uxpgnt.c -@@ -241,7 +241,7 @@ void pageant_fork_and_print_env(bool retain_tty) +--- unix/pageant.c.orig 2022-05-24 16:56:28 UTC ++++ unix/pageant.c +@@ -330,7 +330,7 @@ void pageant_fork_and_print_env(bool retain_tty) /* Get out of our previous process group, to avoid being * blasted by passing signals. But keep our controlling tty, * so we can keep checking to see if we still have one. */ - setpgrp(); + setpgrp(0,0); } else { /* Do that, but also leave our entire session and detach from * the controlling tty (if any). */ diff --git a/security/putty/files/patch-unix_uxpty.c b/security/putty/files/patch-unix_uxpty.c deleted file mode 100644 index bd56447ced52..000000000000 --- a/security/putty/files/patch-unix_uxpty.c +++ /dev/null @@ -1,10 +0,0 @@ ---- unix/uxpty.c.orig 2019-03-16 12:26:38 UTC -+++ unix/uxpty.c -@@ -13,7 +13,6 @@ - #include - #include - #include --#include - #include - #include - #include