Opened 5 years ago
Last modified 12 months ago
#60545 assigned defect
opensubdiv depends on py stub ports
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | jasonliu-- (Jason Liu) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.2 |
Keywords: | Cc: | cooljeanius (Eric Gallager) | |
Port: | opensubdiv |
Description
opensubdiv depends on port:py-docutils and port:py-pygments. This isn't correct because these are stub ports. They don't actually install anything. They merely declare a dependency on one of their subports that do provide those files for a specific version of python.
You should instead depend on those specific python version subports and ensure that the build system uses the matching version of python. For example, depend on port:py38-docutils and port:py38-pygments and ensure that wherever the build system needs to use those modules, it invokes python as ${prefix}/bin/python3.8
and not as python
or python3
or /usr/bin/env python3
or whatever it's currently doing.
I believe this block in the portfile also relates to the above:
# Make it so that OpenSubdiv is able to find MacPorts' Docutils. if {![file exists ${prefix}/bin/rst2html.py]} { set files [glob -directory ${prefix}/bin "rst2html-*.py"] foreach f $files { if {[regexp {rst2html-.*\.py} $f result]} { reinplace "s|rst2html.py|${result}|g" \ ${worksrcpath}/cmake/FindDocutils.cmake } } }
What I think this is doing is building with ${prefix}/bin/rst2html.py
if it exists (but I know of no circumstance in which it would exist unless the user created it manually), and otherwise pick some python version of rst2html.py that happens to be installed. You don't know which python version. It could be the one you declared a dependency on, or it could be some other one the user already had installed.
This is not how ports should behave. Builds should be reproducible and should not vary based on the ports that the user might happen to have installed. Nonreproducible builds are harder to debug.
Change History (2)
comment:1 Changed 2 years ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius added |
---|
comment:2 Changed 12 months ago by ryandesign (Ryan Carsten Schmidt)
Owner: | set to jasonliu-- |
---|---|
Status: | new → assigned |