{numlib}[foss/2023b] PETSc v3.21.2#20568
{numlib}[foss/2023b] PETSc v3.21.2#20568tanmoy1989 wants to merge 3 commits intoeasybuilders:developfrom
Conversation
|
Test report by @zao |
|
|
|
@zao: Thanks for checking it. What do you suggest now which part needs to be changed in the EasyConfig file? |
|
The command lines to the build system are constructed in the easyblock for PETSc, which may need adjustment to also consider the inner directory, see: |
|
hi @zao: I have built PETSc on one of our HPCs by modifying the following line (line #264): |
|
Mechanically, you would make a copy of the On modifying easyblocks, it's very important to realize that an easyblock is used for all versions of a software and not just the one you're currently thinking about. This means that any logic changes you make have to still be valid for older versions of the software. As I shared on Slack, my proposed hack for this would be to emit both the possible directories ( --- /eb/develop/easybuild-easyblocks/easybuild/easyblocks/p/petsc.py 2024-04-09 17:25:49.442891855 +0200
+++ /eb/custom/easyblocks/petsc.py 2024-07-02 13:53:49.271577563 +0200
@@ -262,7 +262,9 @@
ss_libs = [x if x != "SLIP_LU" else "SPEX" for x in ss_libs]
suitesparse_inc = os.path.join(suitesparse, "include")
- inc_spec = "-include=[%s]" % suitesparse_inc
+ # SuiteSparse can install its headers into a subdirectory of the include directory instead.
+ suitesparse_incs = [suitesparse_inc, os.path.join(suitesparse_inc, 'suitesparse')]
+ inc_spec = "-include=[%s]" % ','.join(suitesparse_incs)
suitesparse_libs = [os.path.join(suitesparse, "lib", "lib%s.so" % x.replace("_", "").lower())
for x in ss_libs]Once you have an easyblock PR submitted, you can say |
|
Test report by @zao |
|
See the above test report for another problem - with a revised easyblock to address suitesparse include the build now complains about not being able to link |
|
@boegelbot please test @ generoso |
|
@boegel: Request for testing this PR well received on login1 PR test command '
Test results coming soon (I hope)... Details- notification for comment with ID 2316019261 processed Message to humans: this is just bookkeeping information for me, |
|
Test report by @boegelbot |
|
@tanmoy1989 As @zao already pointed out, there's another fix required to make this installation work, it seems: It currently fails with: Is that not the case for your local installation as well? |
|
@boegel Ah yes, I got that error now; PETSc/3.21.0 wouldn't build against foss/2023b. Not sure why I didn't see this before - maybe I was using a different version of PETSc? I can see I have deployed globally PETSc/3.21.2 built against foss/2023b. Any suggestions how to proceed? |
It makes sense to me to update this PR to use PETSc 3.21.2 instead (or to close this one, and open a new PR) |
|
@boegel I have update the PR with PETSc/3.21.2 and changed the title too to reflect the change in the easyconfig. Thanks for the suggestion. |
|
@boegel Any updates on this, please? |
|
The 3.21.0 version needs to be removed from this PR. You got 2 ECs here now |
The old EC needs to be removed as there is a newer one
Updated software
|
|
I think I got the test issue sorted: However I think we should use #22084 for 2023b. 3.20.3 is the last release of 2023 to stay with the toolchain year. 3.21.2 is already from 29th May 2024. |
|
I'm strongly in favor of going forward with PETSc 3.22.x, see #22696 Sorry for not staying on top of this @tanmoy1989, the effort on getting EasyBuild 5.0 out the door has definitely impacted this PR... |
|
Closing this pr since PETSc-3.22.5-foss-2023b is now included in easyBuild. |
(created using
eb --new-pr)include/suitesparsesubdirectory for SuiteSparse headers easybuild-easyblocks#3391