Skip to content
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

noarch run_exports shouldn't include *_perl5 #67

Closed
wants to merge 2 commits into from

Conversation

timsnyder
Copy link

@timsnyder timsnyder commented Feb 8, 2024

fixes #58

Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@timsnyder
Copy link
Author

I'm not 💯 % sure that this will fix #58 but I think it will. I guess to test it fully, I'd have to use the built package here to build one of the downstream noarch packages and see that they will work on Windows.

Also @mingwandroid is still a code owner here 😭

@timsnyder
Copy link
Author

@conda-forge-admin, please rerender

@timsnyder
Copy link
Author

@mbargull you might want to take a look at this since you were the last to modify the run_exports.noarch in 9695e1f as a part of #49

My reasoning for this PR was put into the issue at #58 (comment)

@mbargull
Copy link
Member

mbargull commented Feb 8, 2024

we shouldn't specify *_perl5 or *_strawberry in the run_exports.noarch

The problem occurs because noarch packages are only built on linux-64 and pickup the run_exports from the unix perl package and *_perl5 isn't satisfiable on Windows because perl on windows is _strawberry.

This is exactly working as intended.
Unless someone puts in the work to build Perl on Windows from source so that we can align the directory structures on all platforms, we need to have a distinction between builds that have already been built with one or the other layout.
With gh-49 we got at least Windows and macOS packages aligned so that we could have noarch Perl packages (which we couldn't do at all before).
Our Windows packages are still just a repackaging on Strawberry Perl's builds which have another layout.
If we'd drop the *_perl5 build string match, we'd let those noarch packages built for the lib/perl5/... layout install on Windows, but the user wouldn't be able to use the installed packages at all since the repackaged Strawberry Perl doesn't look at the paths they are installed at.
Adding *_perl5/*_strawberry constraints lets us ensure users don't install broken packages.
The problem is that the package manager doesn't give us any facility to say "use can't install the package because of ".

If you'd want certain packages available (on usable!) on Windows, too, you'd need 2 builds:

  • one build for noarch which can be use on Linux/macOS,
  • another one explicitly for Windows.(ideally without noarch since the Strawberry Perl layout is only used on Windows).

The other/better solution would be to get someone to work on a Windows build with a directory layout we have on the other platforms too (I won't be able to look into this anytime soon, unfortunately).

@mbargull mbargull closed this Feb 8, 2024
@mbargull
Copy link
Member

mbargull commented Feb 8, 2024

Also @mingwandroid is still a code owner here 😭

Ray would certainly be someone I would've liked to work with on these pesky Windows issues 😐

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

noarch: generic packaged feedstock fails on windows over not finding _perl5
2 participants