NoMoreFood / putty-cac

Windows Secure Shell Client With Support For Smart Cards, Certificates, & FIDO Keys
474 stars 43 forks source link

PuTTY 0.78 installer and old versions #105

Closed bluikko closed 1 year ago

bluikko commented 1 year ago

The release notes for PuTTY 0.78 list that older versions won't be uninstalled:

0.78 or later Windows installer will not automatically uninstall 0.77 or earlier, due to a change we've made to work around a bug.

I would suggest that PuTTY-CAC MSI installers will continue to uninstall old versions. This will make it much easier to keep it updated as most users will likely not care for old versions.

NoMoreFood commented 1 year ago

@bluikko I'll see what I can do. I really don't muck with the installer logic much currently, but if I can make it uninstall the older versions easily I will. PuTTY CAC 0.78 should be out in the next few days.

PuTTY 0.78 supports signed OpenSSH certs which might have some usefulness for PuTTY CAC depending on how the signing process works, but I will have to save that investigation for an update release. I was really hoping he'd add support for standardized x509 certificates (e.g., x509v3-ssh-rsa) which definitely would be useful for some use cases I know of, but so few devices support it.

andreydanil commented 1 year ago

Any ETA on the 0.78 builds? I see that the 0.78 code has been merged, however, I'm having build issues.

I do have the Prerequisites installed

To build, I'm running:

I also have installed CMAKE and all of the C++ tools in VS2022.

First build errors

-- Performing Test HAVE_GCP_RESULTSW
-- Performing Test HAVE_GCP_RESULTSW - Success
-- Performing Test HAVE_DWMAPI_H
-- Performing Test HAVE_DWMAPI_H - Success
CMake Error at CMakeLists.txt:11 (add_subdirectory):
  The source directory

    C:/Users/..../Documents/GitHub/putty-cac-git/code/doc

  does not contain a CMakeLists.txt file.

...
-- Configuring incomplete, errors occurred!
See also "C:/Users/.../Documents/GitHub/putty-cac-git/build/x64/CMakeFiles/CMakeOutput.log".
See also "C:/Users/.../Documents/GitHub/putty-cac-git/build/x64/CMakeFiles/CMakeError.log".
MSBuild version 17.3.1+2badb37d1 for .NET Framework
MSBUILD : error MSB1009: Project file does not exist.
Switch: pageant.vcxproj
The system cannot find the path specified.

Checking the CMakeLists.txt file, there are errors such as

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629\include\arm64_neon.h(17,1): fatal  error C1189: #error:  This header is specific to ARM64 targets [C:\Users\...\Documents\GitHub\putty-cac-git\build\x64\CMakeFiles\CMakeScratch\TryCompile-dr375b\cmTC_cfedf.vcxproj]
  1. Can you please provide a more detail build process? It would be best to create a pipeline for this package.
  2. Can you please provide an ETA when the exe files are provided for the 0.78 merge?

Thanks!

NoMoreFood commented 1 year ago

@andreydanil

  1. Try grabbing the latest files. Apparently the upstream code had an improper .gitignore entry that was preventing a file relevant to the Make process from getting committed. I will report that issue to the PuTTY maintainer.
  2. Probably this weekend. I need to do some more concerted testing and want to try to address the behavior that @bluikko mentioned.
andreydanil commented 1 year ago

@NoMoreFood thank you Bryan. The latest code doesn't throw the build issues. I appreciate the quick help!

NoMoreFood commented 1 year ago

@bluikko I didn't agree with the upstream change that incidentally prevented the installer from upgrading/uninstalling previous versions so I just didn't merge that part. If you want you can validate using the pre-release: https://github.com/NoMoreFood/putty-cac/releases/tag/0.78

NoMoreFood commented 1 year ago

I released 0.78 which I don't think will have this issue... so closing this for now.