@@ -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 ):
@@ -989,7 +989,7 @@ def post_postproc_cuda(self, *args, **kwargs):
989
989
and replace them with a symlink to a corresponding installation under host_injections.
990
990
"""
991
991
if self .name == 'CUDA' :
992
- # This hook only acts on an installation under repositories that _we_ ship (*.eessi.io/versions)
992
+ # This hook only acts on an installation under repositories that _we_ ship (*.eessi.io/versions)
993
993
eessi_installation = bool (re .search (EESSI_INSTALLATION_REGEX , self .installdir ))
994
994
995
995
if eessi_installation :
@@ -1048,43 +1048,46 @@ def post_postproc_cudnn(self, *args, **kwargs):
1048
1048
and replace them with a symlink to a corresponding installation under host_injections.
1049
1049
"""
1050
1050
1051
- # We need to check if we are doing an EESSI-distributed installation
1052
- eessi_installation = bool (re .search (EESSI_INSTALLATION_REGEX , self .installdir ))
1053
-
1054
- if self .name == 'cuDNN' and eessi_installation :
1055
- print_msg ("Replacing files in cuDNN installation that we can not ship with symlinks to host_injections..." )
1056
-
1057
- allowlist = ['LICENSE' ]
1058
-
1059
- # read cuDNN LICENSE, construct allowlist based on section "2. Distribution" that specifies list of files that can be shipped
1060
- license_path = os .path .join (self .installdir , 'LICENSE' )
1061
- search_string = "2. Distribution. The following portions of the SDK are distributable under the Agreement:"
1062
- found_search_string = False
1063
- with open (license_path ) as infile :
1064
- for line in infile :
1065
- if line .strip ().startswith (search_string ):
1066
- found_search_string = True
1067
- # remove search string, split into words, remove trailing
1068
- # dots '.' and only retain words starting with a dot '.'
1069
- distributable = line [len (search_string ):]
1070
- # distributable looks like ' the runtime files .so and .dll.'
1071
- # note the '.' after '.dll'
1072
- for word in distributable .split ():
1073
- if word [0 ] == '.' :
1074
- # rstrip is used to remove the '.' after '.dll'
1075
- allowlist .append (word .rstrip ('.' ))
1076
- if not found_search_string :
1077
- # search string wasn't found in LICENSE file
1078
- raise EasyBuildError ("search string '%s' was not found in license file '%s';"
1079
- "hence installation may be replaced by symlinks only" ,
1080
- search_string , license_path )
1081
-
1082
- allowlist = sorted (set (allowlist ))
1083
- self .log .info ("Allowlist for files in cuDNN installation that can be redistributed: " + ', ' .join (allowlist ))
1084
-
1085
- # replace files that are not distributable with symlinks into
1086
- # host_injections
1087
- replace_non_distributable_files_with_symlinks (self .log , self .installdir , self .name , allowlist )
1051
+ if self .name == 'cuDNN' :
1052
+ # This hook only acts on an installation under repositories that _we_ ship (*.eessi.io/versions)
1053
+ eessi_installation = bool (re .search (EESSI_INSTALLATION_REGEX , self .installdir ))
1054
+
1055
+ if eessi_installation :
1056
+ print_msg ("Replacing files in cuDNN installation that we can not ship with symlinks to host_injections..." )
1057
+
1058
+ allowlist = ['LICENSE' ]
1059
+
1060
+ # read cuDNN LICENSE, construct allowlist based on section "2. Distribution" that specifies list of files that can be shipped
1061
+ license_path = os .path .join (self .installdir , 'LICENSE' )
1062
+ search_string = "2. Distribution. The following portions of the SDK are distributable under the Agreement:"
1063
+ found_search_string = False
1064
+ with open (license_path ) as infile :
1065
+ for line in infile :
1066
+ if line .strip ().startswith (search_string ):
1067
+ found_search_string = True
1068
+ # remove search string, split into words, remove trailing
1069
+ # dots '.' and only retain words starting with a dot '.'
1070
+ distributable = line [len (search_string ):]
1071
+ # distributable looks like ' the runtime files .so and .dll.'
1072
+ # note the '.' after '.dll'
1073
+ for word in distributable .split ():
1074
+ if word [0 ] == '.' :
1075
+ # rstrip is used to remove the '.' after '.dll'
1076
+ allowlist .append (word .rstrip ('.' ))
1077
+ if not found_search_string :
1078
+ # search string wasn't found in LICENSE file
1079
+ raise EasyBuildError ("search string '%s' was not found in license file '%s';"
1080
+ "hence installation may be replaced by symlinks only" ,
1081
+ search_string , license_path )
1082
+
1083
+ allowlist = sorted (set (allowlist ))
1084
+ self .log .info ("Allowlist for files in cuDNN installation that can be redistributed: " + ', ' .join (allowlist ))
1085
+
1086
+ # replace files that are not distributable with symlinks into
1087
+ # host_injections
1088
+ replace_non_distributable_files_with_symlinks (self .log , self .installdir , self .name , allowlist )
1089
+ else :
1090
+ print_msg (f"EESSI hook to respect cuDDN license not triggered for installation path { self .installdir } " )
1088
1091
else :
1089
1092
raise EasyBuildError ("cuDNN-specific hook triggered for non-cuDNN easyconfig?!" )
1090
1093
0 commit comments