-
Notifications
You must be signed in to change notification settings - Fork 138
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
Always use > not perldoc -d
#973
Conversation
perldoc -d $path is limited because perldoc SETUID's to `UID=nobody` if `UID=0`, which basically guarantees that `perldoc -d $path` will not be able to write anywhere in the working directory. Though using redirection may be limited on some platforms, any competing solution should change the code executed depending on platform. On UNIX as UID=0, -d should **always** be avoided because of perldocs inherent defects.
Note: On my However, without this patch, installation fails due to This may be a function of how we're running it, our glue layer in bash can be seen here: |
This commit breaks perldoc detection on Windows (with Strawberry Perl 5.18.0.1)
Please revert it. |
So to summarize the technical issues. make does not build documentation, make installable does. So I recommend to build documentation in the default target, So please revert #973, raise up the installable target which includes docs to all, On Jul 14, 2013, at 9:45 AM, François Perrad notifications@github.com wrote:
|
@rurban I tend to agree with you. Is there a way to make the current way work on Windows? Also, would you be willing to create a branch that builds docs in the default target? Is that going to significantly increase compile times? |
On Jul 14, 2013, at 11:22 AM, leto notifications@github.com wrote:
Unfortunately I don't have time. I'm super busy with p5p, B::C, p2 and php (!) deadlines. |
I reverted the commit, @fperrad . Please let me know if that resolves it for you. |
If you made it so the docs were made during However, We'll maybe end up locally patching it to work, but we really do try make bugs get fixed upstream wherever possible. https://bugs.gentoo.org/show_bug.cgi?id=454058 ( Though, here I think the real bug is perldoc dropping privs, which it says it does for "security reasons", but there's no documentation about the actual security risk its trying to avoid, "LETS JUST RUN EVERYTHING AS NOBODY, MAKES TOTAL SENSE!" ) |
@kentfredric I am dedicated to making it easy for Gentoo to package Parrot. It seems we are genuinely running into undocumented and possibly untested behavior in perldoc. Would you agree? The reason I had to revert your commit is because it caused problems on one of our supported platforms and that is not acceptable. We don't have continuous integration on Windows, so we have to sometimes merge to master and get feedback from our Windows developers. This is Less Than Awesome. Your contribution is valuable and will not be lost. I will create a branch for it and hopefully @fperrad will help us test your code and make it compatible with his setup. He is a long-time Parrot core developer and wrote the Lua implementation on Parrot. If not, I know others that like this kind of thing. |
@leto : now, works fine, thanks |
@leto We've been patching it downstream for a while, and until recently the > redirection hack worked. However, it no longer does, and due to UID dropping perldoc can no longer even read the source file. No amount of So I've taken a little look into how perldoc works, and it appears its easy to make a script that just uses the modules within Perldoc that you actually need to do the work you're doing, and you can do so without the sillyness of dropping to UID=0. |
Implemented a better fix with #1028 in the 6.1.0 release |
perldoc -d $path is limited because perldoc SETUID's to
UID=nobody
ifUID=0
, which basically guarantees thatperldoc -d $path
will not beable to write anywhere in the working directory.
Though using redirection may be limited on some platforms, any competing
solution should change the code executed depending on platform.
On UNIX as UID=0, -d should always be avoided because of perldocs
inherent defects.