-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Perl CPAN Support, Frozen cpanm Command, Interactive Makefile.PL #1519
Comments
I've put in a merge request that fixes this. @wbraswell You can test using my fork and branch if you like. |
BTW I tried the environment variable approach but the variable was ignored. Forcing stdin to be enabled seemed to be the only effective way to prevent prompting. |
@liger1978 |
@liger1978
|
@liger1978 https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L211 https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L214 https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L219 https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L236 https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L242 Considering you have already created your own fork and pull request, and my code is currently full of manual checkpoint debug statements, therefore I will wait for you to make these additional 5 replacements and update your pull request. (If, for whatever reason, you want to cancel your own pull request, just let me know and I will clean up my code and make a pull request with all the changes to util.rb and cpan.rb needed to fix this issue.) Thank you! :-) |
I’ll have a look later today.
… On 4 Jul 2018, at 19:21, William N. Braswell, Jr. ***@***.***> wrote:
@liger1978
Okay I think I figured it out, in addition to the 1 location in cpan.rb where you have already replaced safesystem() with safesystemin(), we must also replace (at least) all the other places where safesystem() is called on cpanm, which are a total of 5 lines:
https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L211
https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L214
https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L219
https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L236
https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L242
Considering you have already created your own fork and pull request, and my code is currently full of manual checkpoint debug statements, therefore I will wait for you to make these additional 5 replacements and update your pull request.
(If, for whatever reason, you want to cancel your own pull request, just let me know and I will clean up my code and make a pull request with all the changes to util.rb and cpan.rb needed to fix this issue.)
Thank you! :-)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@liger1978
And after it is done executing this line successfully, we never see any of the actual STDOUT (or STDERR) which may have been produced, so in this example all of the output generated by the interactive configuration step of Inline::CPP is completely hidden from me, the developer. (This was part of the initial mystery of "why is this hanging?!?") I think this same hidden-output issue affects Can we somehow detect either fpm's own I am actually realizing now that this is very important, because during long complicated configure/build processes, I have no idea what is actually happening in the background w/out running |
Using my latest fork, which includes all new code from @liger1978 plus replacing the 5
After letting it run for a minute or two, it seems to be stopped on a call to
I let it run for 12 minutes and it was still frozen on the call to |
There are actually 2 different issues here, both related to |
I've pushed again to https://github.com/liger1978/fpm/tree/1519 which adds the extra required |
@jordansissel It may also be smart to use |
I only included it in cases where MakeMaker would be used (which is what uses |
Okay, is it possible that Build.PL will ever have an interactive configure or build process? |
Don't know, but haven't seen it. |
I understand. My own fork has |
BTW I've always had to use the |
I have not needed to use the |
Regarding Build.PL and prompting...
|
OK, but I think this is different. |
Okay I see. |
This prevents subprocesses from mistakenly getting stuck trying to read from a stdin that won't say anything ;) Fixes #1519.
This issue is solved by PR #1955 by @NicholasBHubbard, great job everyone! :-) |
fpm 1.15.0 is released and contains a fix for this issue :) |
When I try to run fpm for the Inline::CPP software on CPAN, it gets partway through the process and then hangs. If you just look at the output, you will think it is waiting for info about Parse::RecDescent, but I put a bunch of checkpoints in the code and it is actually getting well past that.
This is the line where it actually freezes:
https://github.com/jordansissel/fpm/blob/master/lib/fpm/package/cpan.rb#L242-L246
This is the command which is actually frozen:
If we run this command directly, we see it is interactive and is waiting on user input!
I'm not sure how to handle this just yet, let me know if you have any solutions, thanks! :-)
The text was updated successfully, but these errors were encountered: