News for hackers. Stuff that matters.
Re:Pipfile for Python by bjt on Tuesday November 22, 2016 @11:11AM (#13015027)
The function calls in the Pipfile make me suspect it's going to be read and eval-ed within Python. And that makes me shudder.

Many packages have abused the executable nature of setup.py files by importing obscure packages or adding otherwise fragile logic. I would hate to see Pipfiles go the same way.

Strong +1 to making it a declarative format like YAML or TOML instead of something executable.

Re:Pipfile for Python by floatboth on Tuesday November 22, 2016 @12:42PM (#13015785)
That's how Bundler does it in the Ruby world, and I haven't really seen any logic in Gemfiles. Pretty much everyone sticks to the DSL. Of course there's someone who did that, but I personally haven't seen that, ever.
Re:Pipfile for Python by xapata on Tuesday November 22, 2016 @11:54AM (#13015376)
> eval ... makes me shudder

Why do you prefer using ``pip`` despite ``pip install`` using the package's ``setup.py`` (and therefore is an eval)?

Further, if you're using a package manager, I expect you won't be combing through the source to check for malicious code anyway.

Re:Pipfile for Python by quodlibetor on Tuesday November 22, 2016 @12:08PM (#13015513)
For the non-install case, like when you're running a package index, having to eval the dependency specifying is horrible.

This is also why wheels (the new python package format) use a static file instead of setup.py. The Python ecosystem has been trying to get off of "just eval setup.py" for years.

Re:Pipfile for Python by xapata on Tuesday November 22, 2016 @12:23PM (#13015622)
I'm not sure why avoiding arbitrary code execution during install is important when you're going to do arbitrary code execution shortly after. What else is the purpose of installing a package?
Re:Pipfile for Python by theptip on Tuesday November 22, 2016 @12:41PM (#13015775)
> For the non-install case, like when you're running a package index

You have just ignored the point that your parent point was making. It's not the install case that they were complaining about.

Re:Pipfile for Python by xapata on Wednesday November 23, 2016 @02:51AM (#13020912)
True. It's surprising to optimize for such a rare kind of user.
Re:Pipfile for Python by baq on Tuesday November 22, 2016 @03:23PM (#13017326)
trying to not run arbitrary code on the enterprise network is prudent.
Re:Pipfile for Python by xapata on Wednesday November 23, 2016 @02:52AM (#13020915)
But that'd happen anyway when the installed package gets executed.
Re:Pipfile for Python by bjt on Tuesday November 22, 2016 @04:03PM (#13017627)
My concern is more about fragile code than malicious code. I've had many experiences of packages where "python setup.py install" wouldn't work locally, and then I looked inside setup.py, and was confronted with a wall of conditional statements or dependencies on system libraries. Dependency declaration can, and should, be much simpler and more bulletproof than that.
Re:Pipfile for Python by xapata on Wednesday November 23, 2016 @08:32PM (#13027251)
That's the benefit of shipping binaries, but the downside is they're harder to patch / swap dependencies. Trade-offs, always.
Re:Pipfile for Python by djsumdog on Tuesday November 22, 2016 @01:11PM (#13016064)
Wasn't wheels suppose to fix that? IIRC you can't have executable code in a wheel unlike the setup.py.