-
Notifications
You must be signed in to change notification settings - Fork 211
Architecture-specific filtering of dependencies. #3429
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Done in the superclass for all EasyConfigs - Supports a list of dependencies to hard ignore for a given architecture. - Required to avoid Yasm on aarch64, but Yasm is required on x86_64 for performance when building x26[45].
@boegel This looks ok to me, but I'd like to get your input on the approach |
@boegel Is it possible for us to override |
The warning about hard filtering will be added irrespective of the filtered easyconfig being a dependency or not. Would it be preferable to only add the warning if the dependency is actually in use? (And if so, is there a pretty way to know that?) |
@@ -96,6 +97,9 @@ | |||
# prefix for names of local variables in easyconfig files | |||
LOCAL_VAR_PREFIX = 'local_' | |||
|
|||
ARCH_HARD_FILTER = { | |||
AARCH64: ['Yasm'], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I'm not a big fan of this approach...
I would rather implement something more flexible, where you can configure EasyBuild to opt-in to or opt-out of optional dependencies based on certain condition (i.e. aarch64
, GPU system, etc.).
In this particular case, configuring EasyBuild with --filter-deps=Yasm
should be sufficient?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's ugly for sure. Using --filter-deps=Yasm
should work, but it would need to always be done so for aarch64.
Dynamic dependencies would be interesting, could spiral into "we depend on cuda if we see a compatible GPU", but absolute exceptions like Yasm would need to be defined somewhere in EasyBuild itself. I have no good/better ideas on how to achieve that.
#3506 solves this on a case by case basis which should be enough to move forward. |
I agree, #3506 is a much better solution. Closing this. |
architecture.
x86_64 for performance when building x26[45].
Fixes easybuilders/easybuild-easyconfigs#11190