@@ -390,7 +390,7 @@ def parse_hook_freeimage_aarch64(ec, *args, **kwargs):
390
390
ec ['toolchainopts' ] = {}
391
391
ec ['toolchainopts' ]['pic' ] = True
392
392
ec ['toolchainopts' ]['extra_cflags' ] = '-DPNG_ARM_NEON_OPT=0'
393
- print_msg ("Changed toolchainopts for %s: %s" , ec .name , ec ['toolchainopts' ])
393
+ print_msg ("Changed toolchainopts for %s: %s" , ec .name , ec ['toolchainopts' ])
394
394
395
395
396
396
def parse_hook_zen4_module_only (ec , eprefix ):
@@ -973,7 +973,7 @@ def post_postproc_cuda(self, *args, **kwargs):
973
973
and replace them with a symlink to a corresponding installation under host_injections.
974
974
"""
975
975
if self .name == 'CUDA' :
976
- # This hook only acts on an installation under repositories that _we_ ship (*.eessi.io/versions)
976
+ # This hook only acts on an installation under repositories that _we_ ship (*.eessi.io/versions)
977
977
eessi_installation = bool (re .search (EESSI_INSTALLATION_REGEX , self .installdir ))
978
978
979
979
if eessi_installation :
@@ -1032,43 +1032,46 @@ def post_postproc_cudnn(self, *args, **kwargs):
1032
1032
and replace them with a symlink to a corresponding installation under host_injections.
1033
1033
"""
1034
1034
1035
- # We need to check if we are doing an EESSI-distributed installation
1036
- eessi_installation = bool (re .search (EESSI_INSTALLATION_REGEX , self .installdir ))
1037
-
1038
- if self .name == 'cuDNN' and eessi_installation :
1039
- print_msg ("Replacing files in cuDNN installation that we can not ship with symlinks to host_injections..." )
1040
-
1041
- allowlist = ['LICENSE' ]
1042
-
1043
- # read cuDNN LICENSE, construct allowlist based on section "2. Distribution" that specifies list of files that can be shipped
1044
- license_path = os .path .join (self .installdir , 'LICENSE' )
1045
- search_string = "2. Distribution. The following portions of the SDK are distributable under the Agreement:"
1046
- found_search_string = False
1047
- with open (license_path ) as infile :
1048
- for line in infile :
1049
- if line .strip ().startswith (search_string ):
1050
- found_search_string = True
1051
- # remove search string, split into words, remove trailing
1052
- # dots '.' and only retain words starting with a dot '.'
1053
- distributable = line [len (search_string ):]
1054
- # distributable looks like ' the runtime files .so and .dll.'
1055
- # note the '.' after '.dll'
1056
- for word in distributable .split ():
1057
- if word [0 ] == '.' :
1058
- # rstrip is used to remove the '.' after '.dll'
1059
- allowlist .append (word .rstrip ('.' ))
1060
- if not found_search_string :
1061
- # search string wasn't found in LICENSE file
1062
- raise EasyBuildError ("search string '%s' was not found in license file '%s';"
1063
- "hence installation may be replaced by symlinks only" ,
1064
- search_string , license_path )
1065
-
1066
- allowlist = sorted (set (allowlist ))
1067
- self .log .info ("Allowlist for files in cuDNN installation that can be redistributed: " + ', ' .join (allowlist ))
1068
-
1069
- # replace files that are not distributable with symlinks into
1070
- # host_injections
1071
- replace_non_distributable_files_with_symlinks (self .log , self .installdir , self .name , allowlist )
1035
+ if self .name == 'cuDNN' :
1036
+ # This hook only acts on an installation under repositories that _we_ ship (*.eessi.io/versions)
1037
+ eessi_installation = bool (re .search (EESSI_INSTALLATION_REGEX , self .installdir ))
1038
+
1039
+ if eessi_installation :
1040
+ print_msg ("Replacing files in cuDNN installation that we can not ship with symlinks to host_injections..." )
1041
+
1042
+ allowlist = ['LICENSE' ]
1043
+
1044
+ # read cuDNN LICENSE, construct allowlist based on section "2. Distribution" that specifies list of files that can be shipped
1045
+ license_path = os .path .join (self .installdir , 'LICENSE' )
1046
+ search_string = "2. Distribution. The following portions of the SDK are distributable under the Agreement:"
1047
+ found_search_string = False
1048
+ with open (license_path ) as infile :
1049
+ for line in infile :
1050
+ if line .strip ().startswith (search_string ):
1051
+ found_search_string = True
1052
+ # remove search string, split into words, remove trailing
1053
+ # dots '.' and only retain words starting with a dot '.'
1054
+ distributable = line [len (search_string ):]
1055
+ # distributable looks like ' the runtime files .so and .dll.'
1056
+ # note the '.' after '.dll'
1057
+ for word in distributable .split ():
1058
+ if word [0 ] == '.' :
1059
+ # rstrip is used to remove the '.' after '.dll'
1060
+ allowlist .append (word .rstrip ('.' ))
1061
+ if not found_search_string :
1062
+ # search string wasn't found in LICENSE file
1063
+ raise EasyBuildError ("search string '%s' was not found in license file '%s';"
1064
+ "hence installation may be replaced by symlinks only" ,
1065
+ search_string , license_path )
1066
+
1067
+ allowlist = sorted (set (allowlist ))
1068
+ self .log .info ("Allowlist for files in cuDNN installation that can be redistributed: " + ', ' .join (allowlist ))
1069
+
1070
+ # replace files that are not distributable with symlinks into
1071
+ # host_injections
1072
+ replace_non_distributable_files_with_symlinks (self .log , self .installdir , self .name , allowlist )
1073
+ else :
1074
+ print_msg (f"EESSI hook to respect cuDDN license not triggered for installation path { self .installdir } " )
1072
1075
else :
1073
1076
raise EasyBuildError ("cuDNN-specific hook triggered for non-cuDNN easyconfig?!" )
1074
1077
0 commit comments