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
pure_install target does not exist on MB:T #7
Comments
Sounds reasonable enough.
Neither of them implement it currently, but I was planning to do that. It's reasonably high on the todo list
Personally, I hate the proliferation of install actions. MB now has not only install but also fake_install and pure_install. Both of them really should have been flags instead of separate actions, if only to enable combining them. I suppose that is a discussion for the Build.PL spec |
Is it possible to somehow fix this in general way (i.e. auto-detect MBT in Gentoo's perl-module.eclass) and force using "install" instead of "pure_install"? I'm somewhat tired of adding manually Update: Oops, I've just found I've already proposed a patch for this issue at https://bugs.gentoo.org/show_bug.cgi?id=495044 about a year ago. :) So, looks like solution exists, but no one wanna use it. |
This is not really the place to discuss gentoo interop with MBT ;). I think the solution you want is to bug g-cpan to inject the right code automatically if it detects MBT, mostly, because eventually we're going to HAVE to have some sort of "Use toolchain X" marker IMHO. Automagicing it at install time is just dangerous given our install time can't dynamically pull in dependencies. |
That the defeats the purpose of the spec. I'd rather add --pure to MB (before adding any perllocal support) and have gentoo switch to that. |
Unforutnately, that just brings the problem back, because we'll have to, in order to support that, know whether the module in question uses MB or MBT, and then inject dependency on only one of those two of the required minimum version to support And we can't inject dependencies after existing dependencies are specified in the ebuild itself due to how ebuilds work. ( We can inject dependencies earlier based on some other variable if its placed in the right location, but reading This can work: PERL_TOOLKIT="mb"
inherit perl-module # inject version upgrades due to 'mb' existing
DEPEND="virutal/perl-Module-Build" This can't inherit perl-module # injections can only happen here and DEPEND doesnt exist yet
DEPEND="virutal/perl-Module-Build" |
No it doesn't. The install action is already pure today for both. It's not guaranteed to stay pure in the future. Or am I missing something?
It's not clear to me what you mean here, I'm only superficially familiar with Gentoo terminology. |
@Leont, if you just add support for |
Oh. I see, for some reason I was expecting passing
Its really mostly due to the fact we need some such markers anyway for QA purposes, because periodically, upstream change how they tool things, but gentoo downstream developers fail to update dependencies respectively. And the result is you have code building where the dependencies may not be satisfied, and there being no automatic way to satisfy them, leading to a downstream brekage for users. Hence, we need some sort of QA process to make sure that the code being built matches the expectations outlined in the ebuild. And its much more straight forward and failsafe to have a system where we declare "I expect this distrubition to need Module::Build::Tiny" and have code validate that belief, than it is to do it the other way around. But thats more aspects of our downstream QA process where obvious forward declarations of "How will this be built" need to be vivid and readable by the users installer long in advance of the .tar.gz's being fetched from CPAN. Gentoo workflow for users is:
5.iii can't change 2, 3 or 4, so that is where we place QA checks to make sure the sources and the build recipie are somewhat cohesive, in the hope that somebody will install it and notice that QA warning if it occurs while the ebuild in question is in "testing" so that its advice is heeded prior to stabilization, as it is unacceptable for stable ebuilds to fail at any point in installation or require manual intervention after the graph iteration has begun, and as much configuration/error detection as possible should occur before the main install loop. breathes |
I think what we could ask for here now is simply to document that
If all those claims are indeed true, and can be documented as such as guarantees of sorts, I believe we can codify to that standard. |
I won't, unless the Build.PL process concludes otherwise (which I don't think it will)
I also maintain MB., keeping them in sync is the easy part. And what @kentfredric just said. |
https://metacpan.org/module/Module::Build#pure_install
The target
./Build pure_install
is documented as a method ofModule::Build
that will remainpure
in the eventModule::Build
eventually adds support for mungingperllocal.pod
.Gentoo have been using this method, despite the fact its current implementation means it is just a proxy for
install
, because for us, modification ofperllocal.pod
is both impossible ( fatal access violation ) and the generation of such a file in aDESTDIR=
tree is undesirable ( filesystem collision )I'm not sure if
Module::Build
has yet implementedperllocal.pod
modification, or whereMBT
stands on the eventual modification of that file.Either way, the existence of an equivalent method makes MBT more compatible with wrapping code.
The text was updated successfully, but these errors were encountered: