godot: Cannot compile Godot with Mono: Windows certificate authentication issues.

Godot version: I’ve tried the 3.1 tag and e205cbb, both with and without my own custom changes for a C# feature I’m working on.

OS/device including version: Windows 10

Issue description: When attempting to make a Mono build of Godot, following the procedure in the docs, I encounter certificate authentication issues that I do not know how to fix.

Steps to reproduce:

  1. Clone the godot repository.
  2. Follow the instructions on building Godot with Mono support.
    1. Get prerequisite libraries and programs
    2. Run mozroots --import --sync. Downloads 155 root certificates. But it also states that it is deprecated and that you should use cert-sync instead, which expects an argument in a “PEM” format.
    3. No documentation mentions anything about this. There is no indication of anything following the PEM format, so I don’t know what I would plug into cert-sync anyway.
  3. Attempt to build godot with scons platform=windows module_mono_enabled=yes mono_glue=no tools=yes (I used -j6 too).

Observe the following error:

[100%] MSBuild auto-detection: using msbuild version '15.0' from 'C:\Program Files\Mono\lib\mono\msbuild\15.0\bin'.
WARNING: Error reading msbuild project information, ensure that your input solution or project file is valid. NETCore and UAP projects will be skipped, only packages.config files will be restored.
Restoring NuGet package DotNet.Glob.2.1.1.
WARNING: Unable to find version '2.1.1' of package 'DotNet.Glob'.
  C:\Users\Will_Nations\.nuget\packages\: Package 'DotNet.Glob.2.1.1' is not found on source 'C:\Users\Will_Nations\.nuget\packages\'.
  C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Package 'DotNet.Glob.2.1.1' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'.
  https://api.nuget.org/v3/index.json: Unable to load the service index for source https://api.nuget.org/v3/index.json.
  An error occurred while sending the request
  Error: TrustFailure (Authentication failed, see inner exception.)
  Authentication failed, see inner exception.
  Ssl error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED
    at D:\j\workspace\build-package-win-mono\2019-02\external\boringssl\ssl\handshake_client.c:1132

WARNING: Unable to find version '2.1.1' of package 'DotNet.Glob'.
  C:\Users\Will_Nations\.nuget\packages\: Package 'DotNet.Glob.2.1.1' is not found on source 'C:\Users\Will_Nations\.nuget\packages\'.
  C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Package 'DotNet.Glob.2.1.1' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'.
  https://api.nuget.org/v3/index.json: Unable to load the service index for source https://api.nuget.org/v3/index.json.
  An error occurred while sending the request
  Error: TrustFailure (Authentication failed, see inner exception.)
  Authentication failed, see inner exception.
  Ssl error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED
    at D:\j\workspace\build-package-win-mono\2019-02\external\boringssl\ssl\handshake_client.c:1132


Errors in packages.config projects
    Unable to find version '2.1.1' of package 'DotNet.Glob'.
      C:\Users\Will_Nations\.nuget\packages\: Package 'DotNet.Glob.2.1.1' is not found on source 'C:\Users\Will_Nations\.nuget\packages\'.
      C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\: Package 'DotNet.Glob.2.1.1' is not found on source 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\'.
      https://api.nuget.org/v3/index.json: Unable to load the service index for source https://api.nuget.org/v3/index.json.
      An error occurred while sending the request
      Error: TrustFailure (Authentication failed, see inner exception.)
      Authentication failed, see inner exception.
      Ssl error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED
        at D:\j\workspace\build-package-win-mono\2019-02\external\boringssl\ssl\handshake_client.c:1132

NuGet Config files used:
    C:\Users\Will_Nations\AppData\Roaming\NuGet\NuGet.Config
    C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config

Feeds used:
    C:\Users\Will_Nations\.nuget\packages\
    https://api.nuget.org/v3/index.json
    C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
scons: *** [bin\GodotSharp\Tools\GodotSharpTools.dll] RuntimeError : GodotSharpTools: NuGet restore failed
Traceback (most recent call last):
  File "C:\Users\Will_Nations\Documents\GitHub\godot\modules\mono\SCsub", line 312, in mono_build_solution
    subprocess.check_call([nuget_path, 'restore', sln_path])
  File "C:\Users\Will_Nations\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 328, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['C:\\Program Files\\Mono\\bin\\nuget.bat', 'restore', 'C:\\Users\\Will_Nations\\Documents\\GitHub\\godot\\modules\\mono\\editor\\GodotSharpTools\\GodotSharpTools.sln']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\users\will_nations\appdata\local\programs\python\python37\lib\site-packages\scons-3.0.1\SCons\Action.py", line 1197, in execute
    result = self.execfunction(target=target, source=rsources, env=env)
  File "C:\Users\Will_Nations\Documents\GitHub\godot\modules\mono\SCsub", line 314, in mono_build_solution
    raise RuntimeError('GodotSharpTools: NuGet restore failed')
RuntimeError: GodotSharpTools: NuGet restore failed
scons: building terminated because of errors.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 23 (21 by maintainers)

Most upvoted comments

Well, if I manually call nuget myself, then it works. It only DOESN’T work when using scons. As I mentioned, I was able to resolve the problem by following aaronfranke’s suggestion in the other Issue, but neikeq said that we shouldn’t have to do that, so I re-opened this Issue to help debug this use case of it failing without the user manually calling nuget.