tornavis/build_files/buildbot
Patrick Mours 3bb3b26c8f Cycles: Add CUDA 11 build support
With this patch the build system checks whether the "CUDA10_NVCC_EXECUTABLE" CMake
variable is set and if so will use that to build sm_30 kernels. Similarily for sm_8x kernels it
checks "CUDA11_NVCC_EXECUTABLE". All other kernels are built using the default CUDA
toolkit. This makes it possible to use either the CUDA 10 or CUDA 11 toolkit by default and
only selectively use the other for the kernels where its a hard requirement.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D9179
2020-10-13 15:15:44 +02:00
..
codesign Cleanup: pep8 (indentation, spacing, long lines) 2020-10-02 11:59:16 +10:00
config Fix (harmless) PCRE not found warning when configuring CMake on Linux 2020-04-02 17:09:01 +02:00
README.md Buildbot: Cleanup, remove unused script and change naming 2020-06-17 17:39:17 +02:00
buildbot_utils.py Cleanup: pep8 (indentation, spacing, long lines) 2020-10-02 11:59:16 +10:00
codesign_server_linux.py Initial implementation of code signing routines 2019-11-13 09:24:41 +01:00
codesign_server_macos.py Codesign: Add codesign for macOS worker 2020-02-03 17:03:51 +01:00
codesign_server_windows.bat Initial implementation of code signing routines 2019-11-13 09:24:41 +01:00
codesign_server_windows.py Codesign: Add codesign for macOS worker 2020-02-03 17:03:51 +01:00
worker_bundle_dmg.py Fix buildbot macOS packaging error after recent changes 2020-08-04 17:13:09 +02:00
worker_codesign.cmake Buildbot: Cleanup, remove unused script and change naming 2020-06-17 17:39:17 +02:00
worker_codesign.py Buildbot: Cleanup, remove unused script and change naming 2020-06-17 17:39:17 +02:00
worker_compile.py Cycles: Add CUDA 11 build support 2020-10-13 15:15:44 +02:00
worker_pack.py Cleanup: pep8 (indentation, spacing, long lines) 2020-10-02 11:59:16 +10:00
worker_test.py Cleanup: pep8 (indentation, spacing, long lines) 2020-10-02 11:59:16 +10:00
worker_update.py Buildbot: Cleanup, remove unused script and change naming 2020-06-17 17:39:17 +02:00

README.md

Blender Buildbot

Code signing

Code signing is done as part of INSTALL target, which makes it possible to sign files which are aimed into a bundle and coming from a non-signed source (such as libraries SVN).

This is achieved by specifying worker_codesign.cmake as a post-install script run by CMake. This CMake script simply involves an utility script written in Python which takes care of an actual signing.

Configuration

Client configuration doesn't need anything special, other than variable SHARED_STORAGE_DIR pointing to a location which is watched by a server. This is done in config_builder.py file and is stored in Git (which makes it possible to have almost zero-configuration buildbot machines).

Server configuration requires copying config_server_template.py under the name of config_server.py and tweaking values, which are platform-specific.

Windows configuration

There are two things which are needed on Windows in order to have code signing to work:

  • TIMESTAMP_AUTHORITY_URL which is most likely set http://timestamp.digicert.com
  • CERTIFICATE_FILEPATH which is a full file path to a PKCS #12 key (.pfx).

Tips

Self-signed certificate on Windows

It is easiest to test configuration using self-signed certificate.

The certificate manipulation utilities are coming with Windows SDK. Unfortunately, they are not added to PATH. Here is an example of how to make sure they are easily available:

set PATH=C:\Program Files (x86)\Windows Kits\10\App Certification Kit;%PATH%
set PATH=C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64;%PATH%

Generate CA:

makecert -r -pe -n "CN=Blender Test CA" -ss CA -sr CurrentUser -a sha256 ^
         -cy authority -sky signature -sv BlenderTestCA.pvk BlenderTestCA.cer

Import the generated CA:

certutil -user -addstore Root BlenderTestCA.cer

Create self-signed certificate and pack it into PKCS #12:

makecert -pe -n "CN=Blender Test SPC" -a sha256 -cy end ^
         -sky signature ^
         -ic BlenderTestCA.cer -iv BlenderTestCA.pvk ^
         -sv BlenderTestSPC.pvk BlenderTestSPC.cer

pvk2pfx -pvk BlenderTestSPC.pvk -spc BlenderTestSPC.cer -pfx BlenderTestSPC.pfx