Skip to content

CEP 28 implementation #5925

@wolfv

Description

@wolfv

Checklist

  • I added a descriptive title
  • I searched open reports and couldn't find a duplicate

What happened?

CEP 28 states:

When no allow list is available among all the JSON files, but only deny lists are available, a default C:/Windows/System32/*.dll glob is assumed. When no deny list is available among all the JSON files, but only allow lists are available, an empty deny list is assumed. When neither are available, conda build tools should fall back to the current method (as of August 2025).

When both allow lists and deny lists are available, allow lists among all the JSON files are processed first and then deny lists are processed.

However, in the code I see:

def _get_dsolists(build_prefix, host_prefix, subdir):
    result = merge_dicts_of_lists(
        _get_dsolists_prefix(build_prefix, subdir),
        _get_dsolists_prefix(host_prefix, subdir),
    )
    if subdir.startswith("win-") and (result["allow"] or result["deny"]):
        result["allow"].extend(_expand_dsolist(["C:/Windows/System32/**/*.dll"]))
    return result

Meaning, when either allow or deny are found, the default is added.

I would have expected:

if subdir.startswith("win-") and (not result["allow"] and result["deny"]):
    result["allow"].extend(_expand_dsolist(["C:/Windows/System32/**/*.dll"]))

Can you clarify if there is a mistake in my understanding @isuruf? I am happy either way!

PS: if you have a minute to review: prefix-dev/rattler-build#2173 that would be highly appreciated. I am considering to blanket switch to searching dlls from this path instead of using the hard-coded allowlist.

Conda Info

Conda Config

Conda list

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    type::bugdescribes erroneous operation, use severity::* to classify the type

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions