Bug 201349 - math/py-networkx: Make run-time dependencies optional per upstream documentation
Summary: math/py-networkx: Make run-time dependencies optional per upstream documentation
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Thomas Zander
Keywords: patch, patch-ready
Depends on:
Reported: 2015-07-04 23:04 UTC by John W. O'Brien
Modified: 2015-11-19 22:10 UTC (History)
5 users (show)

See Also:
bugzilla: maintainer-feedback? (dikshie)

math/py-networkx: Make most run-time dependencies optional (2.61 KB, patch)
2015-07-04 23:04 UTC, John W. O'Brien
no flags Details | Diff
poudriere testport log for py27-networkx-1.9.1_1 (190.04 KB, text/plain)
2015-07-05 03:05 UTC, John W. O'Brien
no flags Details
poudriere testport log for py34-networkx-1.9.1_1 (173.84 KB, text/plain)
2015-07-05 03:05 UTC, John W. O'Brien
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description John W. O'Brien 2015-07-04 23:04:00 UTC
Created attachment 158355 [details]
math/py-networkx: Make most run-time dependencies optional

Several ports currently identified as run-time dependencies for math/py-networkx cannot yet be built under py3k. Specifically, graphics/py-graphviz, math/py-matplotlib, and science/py-scikit-sparse. Consequently, math/py-networkx cannot be built under py3k either, even though it is otherwise py3k-compatible.

The attached patch works around this problem by making most run-time dependencies optional, which is consistent with the upstream project documentation (https://networkx.github.io/documentation/networkx-1.9.1/install.html#requirements). A user who wishes to build the port against py3k can elect to disable the problematic optional dependencies.

Note: I am aware of the stock option descriptions defined in Mk/bsd.options.desc.mk, but choose not to implicitly use them in order to more precisely describe the effect of the option on the depending port.

While here, update WWW in pkg-descr.
Comment 1 Yuri Victorovich freebsd_committer 2015-07-04 23:19:45 UTC
FYI There are many py- ports that are 2.X-only due to similar problems. There are quite a bit of differences between 2.X and 3.X. That's why 2.X is still the default.

Such problems should really be reported to their respected upstreams, which I did today for science/py-scikit-sparse. And upstreams should be urged to apply patches and make releases. Patching them at the ports level isn't the right thing to do.

Ex. graphics/py-graphviz upstream is very responsive.
Comment 2 John W. O'Brien 2015-07-04 23:34:51 UTC
Yuri, I agree with you. In the case of science/py-scikit-learn, the patch seemed sufficiently trivial that the ports tree could realize a quick win while we wait for turn-around from upstream (thank you for propagating my patch, by the way). In the case of math/py-networkx, I think optional dependencies should be made optional anyway, while simultaneously giving some relief to py3k users who may be able to forgo the rendering capabilities in the interim. While we do the things you said we should do, we shouldn't let laggards hold back py3k-compatible ports unnecessarily.

My next stop, by the way, was going to be graphics/py-graphviz, which appears to have py3k support already in its 1.3 release candidate.
Comment 3 Yuri Victorovich freebsd_committer 2015-07-04 23:56:10 UTC
Comment 4 John W. O'Brien 2015-07-05 01:10:24 UTC
This patch can be applied, and would be useful, independent of #201346 or equivalent bugs against the other two py3k-incompatible ports. To that end, I'm removing the "depends-on" and changing the title accordingly.

QA artifacts to follow after I've gone and enjoyed this evening's fireworks.
Comment 5 John W. O'Brien 2015-07-05 03:05:00 UTC
Created attachment 158364 [details]
poudriere testport log for py27-networkx-1.9.1_1
Comment 6 John W. O'Brien 2015-07-05 03:05:19 UTC
Created attachment 158365 [details]
poudriere testport log for py34-networkx-1.9.1_1
Comment 7 John W. O'Brien 2015-07-05 03:06:10 UTC
% portlint -AC math/py-networkx
WARN: Makefile: for new port, make $FreeBSD$ tag in comment section empty, to make SVN happy.
WARN: Makefile: new ports should not set PORTREVISION.
0 fatal errors and 2 warnings found.
Comment 8 commit-hook freebsd_committer 2015-07-25 10:45:24 UTC
A commit references this bug:

Author: riggs
Date: Sat Jul 25 10:44:37 UTC 2015
New revision: 392870
URL: https://svnweb.freebsd.org/changeset/ports/392870

  Allow for many run dependencies to be OPTIONs,
  as by upstream suggestion

  PR:		201349
  Submitted by:	john@saltant.com
  Approved by:	maintainer timeout