Skip to content

mesa-legacy: new package#11543

Closed
codeandkey wants to merge 1 commit intospack:developfrom
ResearchIT:package/mesa-legacy
Closed

mesa-legacy: new package#11543
codeandkey wants to merge 1 commit intospack:developfrom
ResearchIT:package/mesa-legacy

Conversation

@codeandkey
Copy link
Copy Markdown
Contributor

@codeandkey codeandkey commented May 23, 2019

See discussion in #11537, #11542 -- migrating the mesa package to the meson build system broke many packages requiring python2.x. This PR introduces a new package mesa-legacy which is a snapshot of mesa from commit a698ac9, directly before the migration to meson.

Copy link
Copy Markdown
Member

@baberlevi baberlevi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like this approach is consistent with what's been done for other packages, e.g. singularity-legacy

@adamjstewart
Copy link
Copy Markdown
Member

Interesting. At first glance, I'm not a huge fan of "legacy" packages, but it does make life a lot easier whenever a package changes its build system. @tgamblin @alalazo how do we feel about this being the official approach to handling a build system change?

Possible caveats:

  • What happens when a package changes its build system twice? foo-legacy-legacy?
  • There could be problems with dependency resolution. We could make both legacy/non-legacy versions virtual providers, but that seems complex.
  • What do other package managers do?

@alalazo
Copy link
Copy Markdown
Member

alalazo commented May 24, 2019

What happens when a package changes its build system twice? foo-legacy-legacy?

I think at some point - maybe when the release process will be more stable / frequent? - we should start deprecating the oldest versions of packages (meaning removing the versions and cleaning recipes from anything that is specific to them).

There could be problems with dependency resolution. We could make both legacy/non-legacy versions virtual providers, but that seems complex.

There could be another approach based on repositories. If, instead of naming the old package mesa-legacy, we move it to a new repository builtin-legacy we avoid the issue with dependencies. Ideally builtin-legacy should have lower precedence than builtin so that if a user wants the old package he needs to specify e.g. foo ^builtin-legacy.mesa. What do you think?

What do other package managers do?

I'm not aware of other package managers doing that, but I can have a look around and report here what found 🙂

@chuckatkins
Copy link
Copy Markdown

Rather than just resurrect the previous package, I think better would be to create a mesa18 package that uses the autotools build and only contains the last 18.x release before autotools was deprecated. The initial motivator for the mesa package rework was to address numerous problems with how variants, options, and virtual packages were handled and much of that has already been plummed through downstream dependents, thus the previous mesa package won't really suffice. Making a "legacy" package with the new variants will produce a more compatible result.

What do other package managers do?

This does happen often enough. Most package managers I've seen use an unversioned name for the current package and a versioned name for the previous version when the break occurred. For example, for package foo had a major break between v2 and v3 then you would have package foo2 for Foo v2.x and package foo for the current Foo v3.x A good example of this is how Qt is often handled. Many package managers will now have the packages qt3, qt4, and qt, for handling Qt versions 3, 4, and 5 (current) respectively. Hence my suggestion for creating a mesa18 package.

I can very quickly pull one together that builds the same as the new meson one with the same variants and options. I'll push it up shortly.

@chuckatkins
Copy link
Copy Markdown

#11553, I believe is likely a better solution since it uses the same variants and configurations as the new meson build, just with the autools configuration.

@adamjstewart
Copy link
Copy Markdown
Member

I really like @alalazo's builtin-legacy suggestion!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants