#50288: UPDATE: gpsd-3.16 ---------------------+-------------------------- Reporter: fw@… | Owner: ryandesign@… Type: update | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: gpsd | ---------------------+-------------------------- Comment (by fw@…): Replying to [comment:6 g5pw@…]:
Wow, that's great work! Just a small nitpick: there's no need to explicitly depend on python2_select since python2.7 has a runtime dependency on it. With that corrected I'll happily commit it.
I thought about that, but I disagree, since I think it's bad practice to rely on an indirect dependency for something which is a direct requirement. For example, if I have a C program that uses something in foo.h, it will of course include foo.h. If foo.h needs something from bar.h, it will include bar.h. But if my code also *directly* uses something from bar.h, then it should also include bar.h explicitly, rather than relying on the internal include within foo.h. In this case, since the Python {{{gpsd}}} code needs a {{{python2}}} command, it's appropriate for it to explicitly depend on {{{python2_select}}} (which is imperfect in that it doesn't guarantee that {{{python2_select}}} has been *used*, but it's the best we can do with dependencies). And strictly speaking, there's no reason in principle why {{{python27}}} needs a dependency on {{{python2_select}}}, since it probably has no {{{python2}}} commands of its own. That dependency is presumably only there for convenience, given that it's fairly inexpensive, making it particularly dangerous to rely on it. Once {{{gpsd}}}'s Python code has been updated to be compatible with Python 3, the {{{python2}}} issue will become moot.
Another thing: if you {{{cd}}} in the port directory and run {{{svn diff port.patch}}} svn should output a patch of everything in one, making applying it easier.
I've attached a diff of that form. -- Ticket URL: <https://trac.macports.org/ticket/50288#comment:7> MacPorts <https://www.macports.org/> Ports system for OS X