Falha ao compilar o Putty para Windows no Ubuntu

1

Eu estou tentando compilar putty para windows no Ubuntu 14.04. tenho a fonte daqui:

link

Foi o que fiz até obter o erro:

[17:45:20][~/putty-0.63]$ perl mkfiles.pl 

[17:46:42][~/putty-0.63]$ cd windows/

[17:46:44][~/putty-0.63/windows]$ make VER="-DSNAPSHOT=$(date '+%Y-%m-%d') -DSVN_REV='$(svnversion)' -DMODIFIED" TOOLPATH=i586-mingw32msvc- -f Makefile.cyg putty.exe
.
.
.

i586-mingw32msvc-windres   --define WIN32=1 --define _WIN32=1 --define WINVER=0x0400 --define SNAPSHOT=2015-02-18 --define SVN_REV='Unversioned directory' --define MODIFIED ../windows/putty.rc -o putty.res.o

i586-mingw32msvc-gcc   -mno-cygwin -Wall -O2 -D_WINDOWS -DDEBUG -DWIN32S_COMPAT -D_NO_OLDNAMES -DNO_MULTIMON -DNO_HTMLHELP -DNO_SECUREZEROMEMORY -I.././ -I../charset/ -I../windows/ -I../unix/ -I../macosx/ -DSECURITY_WIN32 -D_WIN32_IE=0x0500 -DWINVER=0x0500 -D_WIN32_WINDOWS=0x0410 -D_WIN32_WINNT=0x0500 -DSNAPSHOT=2015-02-18 -DSVN_REV='Unversioned directory' -DMODIFIED -c ../version.c

../version.c:63: warning: division by zero

../version.c:63: error: enumerator value for גvorpal_swordג is not an integer constant
make: *** [version.o] Error 1

Algo que eu possa fazer sobre isso?

    
por Yair Eshel Cahansky 18.02.2015 / 16:49

1 resposta

1

Os valores de SNAPSHOT e SVN_REV são usados para compor um valor de sshver como:

sshver = "PuTTY-Snapshot-SNAPSHOT:rSVN_REV"

com

SNAPSHOT=2015-02-18
SVN_REV=Unversioned directory

isso faz

sshver = "PuTTY-Snapshot-2015-02-18:rUnversioned directory"

O que viola uma afirmação na última linha do version.c que o sshver deve ter no máximo 40 caracteres.

/*
 * SSH local version string MUST be under 40 characters. Here's a
 * compile time assertion to verify this.
 */
enum { vorpal_sword = 1 / (sizeof(sshver) <= 40) };

Eles obviamente não testam sua compilação para o cenário "Diretório não versionado".

Não tenho certeza, de onde vem o "diretório não versionado" (não está no código-fonte).

Soluções:

  • Modifique a string "Diretório não versionado" (de onde quer que seja) para algo menor.
  • Tente usar o código-fonte "development", pois eles refatoraram completamente esse código desde 0.63, possivelmente corrigindo o problema.
    Consulte o link
por 18.02.2015 / 17:53