Bug 204435

Summary: [NEW PORT] graphics/py-mayavi: Application and library for 3D visualization and plotting in Python
Product: Ports & Packages Reporter: vladimir.chukharev
Component: Individual Port(s)Assignee: Kurt Jaeger <pi>
Status: Closed FIXED    
Severity: Affects Only Me CC: koobs, miwi, pi, python, vladimir.chukharev
Priority: --- Keywords: feature, patch, patch-ready
Version: LatestFlags: vladimir.chukharev: maintainer-feedback+
Hardware: Any   
OS: Any   
URL: https://reviews.freebsd.org/D4181
Bug Depends on: 204430, 204431, 204432, 204433    
Bug Blocks:    
Attachments:
Description Flags
Shar file of the port
none
Logs of a build in poudriere
none
New shar file with complete license info
vladimir.chukharev: maintainer-approval+
Resuls of QA tests for new shar
none
New files/patch-setup.py vladimir.chukharev: maintainer-approval+

Description vladimir.chukharev 2015-11-10 17:07:53 UTC
Created attachment 162973 [details]
Shar file of the port

Application and library for 3D visualization and plotting in Python.
Seems like the best in its class.

The port is not yet ready for commit. See known problems in freebsd/pors mailing list, e.g. on https://groups.google.com/forum/#!topic/mailing.freebsd.ports/bM8Ua-DY1es
Probably, submitting my request for help via google was a mistake.
Comment 1 vladimir.chukharev 2015-11-10 17:10:58 UTC
Created attachment 162974 [details]
Logs of a build in poudriere
Comment 2 Kubilay Kocak freebsd_committer freebsd_triage 2015-11-11 03:45:24 UTC
Thanks Vladimir!

On initial review:

* Using PyPI (CHEESESHOP) for distribution files is preferred unless desirable files are missing from the sdist (LICENSE, test suite, etc)
* If a LICENSE file exists in WRKSRC, add LICENSE_FILE=${WRKSRC}/path/to/LICENSE
* I'm not confident that the declared dependencies are all BUILD_DEPENDENCIES. See:

https://github.com/enthought/mayavi/blob/master/mayavi/__init__.py#L10

* GH_PROJECT defaults to PORTNAME, this entry is not needed
* Instead of a pre-configure check for the/a python vtk module, there should be a (slave) port for either vtk with the option enabled (vtkX-python) OR, a port for py-pyvtk (https://pypi.python.org/pypi/PyVTK) if this is the module that is used. A pre-configure check assists port users who can rebuild vtk w/ PYTHON, but not package users.
* Group USE{S_*} lines with USES at the top, and USE_* sorted
Comment 3 vladimir.chukharev 2015-12-05 10:26:59 UTC
Please see dicussions on https://reviews.freebsd.org/D4181
Comment 4 vladimir.chukharev 2016-03-11 23:58:05 UTC
Created attachment 168029 [details]
New shar file with complete license info

Update the shar file with the port, now with all license information.
Comment 5 vladimir.chukharev 2016-03-12 00:03:57 UTC
Created attachment 168030 [details]
Resuls of QA tests for new shar

The logs contain warnings and error, all from docs generating parts. I do not see any bad consequences for the application on the run.
Comment 6 Martin Wilke freebsd_committer freebsd_triage 2016-03-14 02:29:45 UTC
back to pool
Comment 7 vladimir.chukharev 2016-03-30 13:08:29 UTC
All known issues are addressed by now.
Comment 8 Kubilay Kocak freebsd_committer freebsd_triage 2016-08-04 11:12:11 UTC
Should have been reassigned to the open pool (not just python@)
Comment 9 Kurt Jaeger freebsd_committer freebsd_triage 2016-08-04 18:33:45 UTC
testbuilding 4.5.0 @work
Comment 10 Kurt Jaeger freebsd_committer freebsd_triage 2016-08-05 05:21:59 UTC
Testbuild shows a little bug in the PLIST, which seems not trivial to fix:

http://people.freebsd.org/~pi/logs/graphics__py-mayavi-11a-1470337152.txt

Any suggestions ? Is the directory %%PYTHON_SITELIBDIR%%/mayavi/tools/static/
missing ?
Comment 11 Kubilay Kocak freebsd_committer freebsd_triage 2016-08-05 07:40:00 UTC
(In reply to Kurt Jaeger from comment #10)

Probably [1] another case of "Resolve Distutils install_data command contains directories in --record <RECORDFILE>" [2] 

[1] https://github.com/enthought/mayavi/blob/master/setup.py#L406
[2] https://wiki.freebsd.org/Python

Options:

1) Try to patch out the above line from setup.py
2) Create the directory post-install:

Former is preferred over the latter unless the directory isn't empty (I'm guessing it is?)

Can you add this port to the examples in in the Wiki [2] so that we can chase them up if needed later

It would be nice to resolve this upstream ultimately, so please report the bug/issue
Comment 12 vladimir.chukharev 2016-08-05 08:07:11 UTC
Created attachment 173306 [details]
New files/patch-setup.py

This changed patch file fixes plist for me.
Comment 13 vladimir.chukharev 2016-08-05 08:51:34 UTC
The updated application needs a Python3 style print function instead of a print statement. The (recursively) updated mayavi2 app passes all my tests with this change applied.

I will contact upstream about the patch.

Thanks!
Comment 14 Kurt Jaeger freebsd_committer freebsd_triage 2016-08-05 17:27:35 UTC
testbuilds look fine.
Comment 15 commit-hook freebsd_committer freebsd_triage 2016-08-06 07:05:11 UTC
A commit references this bug:

Author: pi
Date: Sat Aug  6 07:04:37 UTC 2016
New revision: 419732
URL: https://svnweb.freebsd.org/changeset/ports/419732

Log:
  New port: graphics/py-mayavi

  3D Scientific Data Visualization and Plotting

  The Mayavi project includes two related packages for 3-dimensional
  visualization:
    Mayavi: A tool for easy and interactive visualization of data, with
            seamless integration with Python scientific libraries.
    TVTK:   A Traits-based wrapper for the Visualization Toolkit, a popular
            open-source visualization library.

  These libraries operate at different levels of abstraction. TVTK
  manipulates visualization objects, while Mayavi lets you operate
  on your data, and then see the results. Most users either use the
  Mayavi user interface or program to its scripting interface; you
  probably don't need to interact with TVTK unless you want to create
  a new Mayavi module.

  WWW: http://code.enthought.com/projects/mayavi/

  PR:		204435
  Submitted by:	Vladimir Chukharev <vladimir.chukharev@gmail.com>

Changes:
  head/graphics/Makefile
  head/graphics/py-mayavi/
  head/graphics/py-mayavi/Makefile
  head/graphics/py-mayavi/distinfo
  head/graphics/py-mayavi/files/
  head/graphics/py-mayavi/files/patch-setup.py
  head/graphics/py-mayavi/files/patch-tvtk_setup.py
  head/graphics/py-mayavi/pkg-descr
Comment 16 Kurt Jaeger freebsd_committer freebsd_triage 2016-08-06 07:07:04 UTC
Committed, thanks!