Bug 199539

Summary: math/plplot: upgrading to 5.11.0
Product: Ports & Packages Reporter: Thierry Thomas <thierry>
Component: Individual Port(s)Assignee: Thierry Thomas <thierry>
Status: Closed FIXED    
Severity: Affects Some People CC: adamw, marino, thierry, woodsb02
Priority: --- Keywords: patch-ready
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Preliminary version of patch from plplot-5.10.0 to plplot-5.11.0
none
Patch to update math/plplot to 5.11.0
none
Successful poudriere testport on FreeBSD 10.1 amd64 with all options unset
none
Successful poudriere testport on FreeBSD 10.1 amd64 with all options set
none
Patch math/plplot-ada to fix LIB_DEPENDS on plplot.so and bump PORTREVISION
marino: maintainer-approval+
Successful poudriere testport on FreeBSD10.1 amd64 for math/plplot-ada
none
Patch science/gnudatalanguage to fix build with plplot 5.11.0
woodsb02: maintainer-approval? (thierry)
Successful poudriere testport on FreeBSD10.1 amd64 for science/gnudatalanguage none

Description Thierry Thomas freebsd_committer freebsd_triage 2015-04-19 11:15:28 UTC
Created attachment 155725 [details]
Preliminary version of patch from plplot-5.10.0 to plplot-5.11.0

/!\ This patch is not yet ready to be committed!

The included patch upgrades math/plplot from 5.10.0 to 5.11.0, but despite its versionning, this implies some important changes:

- as is, the option TCLTK is broken, because x11-toolkits/itk and lang/itcl are not compatible => see PR ports/199521

- the library names have been modified, and the consumer ports are not yet ready
See https://sourceforge.net/p/gnudatalanguage/discussion/338691/thread/dc2dd534/?limit=25 for the problem with science/gnudatalanguage.
Comment 1 Ben Woods freebsd_committer freebsd_triage 2015-04-20 14:24:58 UTC
Created attachment 155771 [details]
Patch to update math/plplot to 5.11.0

Thierry, you and I must be on the same wavelength... I have been working on this patch for a lot of the weekend, independent of you. Talk about unnecessary overlap! However, our patches have a LOT of similarities!

I have attached my patch, which builds successfully with poudriere testport with all options disabled and all options enabled.

Differences with my patch:
 - Convert to new options helpers
 - iwidgets is only BUILD_DEPENDS
 - No issues with tcl/tk/itcl/itk when building as you reported
 - wxgtk 2.6 or 2.8 can be used (http://sourceforge.net/p/plplot/wiki/WxWidgets/)
 - Removed PLD_wxpng build flag (http://sourceforge.net/p/plplot/mailman/message/33915239/)
 - Remove LUA_MODLIBDIR as this isn't required and breaks plist checks
 - Remove patches which now only modify source code comments (other diffs upstreamed)
 - take maintainership

Thoughts?
Comment 2 Ben Woods freebsd_committer freebsd_triage 2015-04-20 14:27:31 UTC
Created attachment 155772 [details]
Successful poudriere testport on FreeBSD 10.1 amd64 with all options unset
Comment 3 Ben Woods freebsd_committer freebsd_triage 2015-04-20 14:27:52 UTC
Created attachment 155773 [details]
Successful poudriere testport on FreeBSD 10.1 amd64 with all options set
Comment 4 Thierry Thomas freebsd_committer freebsd_triage 2015-04-20 19:33:53 UTC
Comment on attachment 155725 [details]
Preliminary version of patch from plplot-5.10.0 to plplot-5.11.0

The patch submitted by Ben Woods is better (it solves the itk / itcl problem).
Comment 5 Thierry Thomas freebsd_committer freebsd_triage 2015-04-20 19:38:54 UTC
Thanks Ben, your patch is great!

But we cannot commit it yet, because science/gnudatalanguage and math/plplot-ada must support this new version (marino added to Cc: list for plplot-ada).
Comment 6 John Marino freebsd_committer freebsd_triage 2015-04-20 19:43:11 UTC
Ben, maybe you can supply a poudriere log for plplot-ada using the new plplot?

If we get luckily it will build out of the box.
Comment 7 Ben Woods freebsd_committer freebsd_triage 2015-04-21 15:46:34 UTC
poudriere testport of math/plplot-ada fails with the following errors:
=======================<phase: configure      >============================
===>   plplot-ada-5.11.0 depends on file: /usr/local/gcc-aux/bin/ada - found
===>   plplot-ada-5.11.0 depends on shared library: libplplotd.so - not found
===>    Verifying for libplplotd.so in /usr/ports/math/plplot
===>   Installing existing package /packages/All/plplot-5.11.0.txz
pkg-static: Insufficient privileges to add packages
*** Error code 77

I am currently trying to understand what is causing this error - any help would be appreciated. I do not see this error when performing poudriere testport of math/plplot-ada without having made my changes to math/plplot... so this seems to be influenced by this patch.
Comment 8 John Marino freebsd_committer freebsd_triage 2015-04-21 15:55:11 UTC
I am running an older poudriere on freebsd 10, I suppose I could try it and see if I see the same problem.

I would think this is a pkg or poudriere bug.
Comment 9 Thierry Thomas freebsd_committer freebsd_triage 2015-04-21 16:23:48 UTC
I guess that the problem is libplplotd.so being renamed to libplplot.so (without 'D').
Comment 10 John Marino freebsd_committer freebsd_triage 2015-04-21 16:31:09 UTC
(In reply to Thierry Thomas from comment #9)

ah, right.  it's breaking the dependency specification.
Comment 11 John Marino freebsd_committer freebsd_triage 2015-04-21 16:33:22 UTC
Ben, given that, come up with a patch that:
1) fixes the dependency
2) bumps PORTREVISION

If that allows adaplot to build, then attach the patch the PR.  both will need to be committed simultaneously.
Comment 12 Ben Woods freebsd_committer freebsd_triage 2015-04-21 22:57:06 UTC
(In reply to Thierry Thomas from comment #9)
> I guess that the problem is libplplotd.so being renamed to libplplot.so (without 'D').

You are spot on Thierry - thanks for the heads up... I had spent too long looking through poudriere and pkg code to try and find a bug there!

I'll submit patches for math/plplot-ada and science/gnudatalanguage
Comment 13 Ben Woods freebsd_committer freebsd_triage 2015-04-21 22:58:24 UTC
Created attachment 155822 [details]
Patch math/plplot-ada to fix LIB_DEPENDS on plplot.so and bump PORTREVISION
Comment 14 Ben Woods freebsd_committer freebsd_triage 2015-04-21 22:58:57 UTC
Created attachment 155823 [details]
Successful poudriere testport on FreeBSD10.1 amd64 for math/plplot-ada
Comment 15 John Marino freebsd_committer freebsd_triage 2015-04-21 23:01:42 UTC
Comment on attachment 155822 [details]
Patch math/plplot-ada to fix LIB_DEPENDS on plplot.so and bump PORTREVISION

approved
Comment 16 Ben Woods freebsd_committer freebsd_triage 2015-04-22 11:27:20 UTC
Created attachment 155842 [details]
Patch science/gnudatalanguage to fix build with plplot 5.11.0

 - Change LIB_DEPENDS from libplplotd.so to libplplot.so
 - Add patch-CMakeModules_FindPlplot.cmake to remove 'd' from library names in search
 - Add patch-src_plotting__contour.cpp to change plstream::fill/tr to plcallback::fill/tr as per note 1.3 in plplot-5.11.0 release notes:

http://sourceforge.net/p/plplot/plplot/ci/plplot-5.11.0/tree/README.release

1.3 Backwards-incompatible change to our C++ API
The plstream methods fill, tr0, tr1, tr2, and tr2p have been changed,
fixing a bug where the correct stream was not selected. This means
these functions are no longer static and can no longer be used as
callbacks in the shades method and its variants, the cont method, the
imagefr method, and the vect method. Instead a plcallback namespace
has been created which includes these methods as C-style
functions. Code which previously used the plstream methods above will
need to be recompiled and rebuilt using the plcallback versions (i.e.,
replace all plstream::fill callback use by plcallback::fill and
similarly for tr0, tr1, tr2, and tr2p).  Please see the documentation
for a full description.
Comment 17 Ben Woods freebsd_committer freebsd_triage 2015-04-22 11:28:04 UTC
Created attachment 155843 [details]
Successful poudriere testport on FreeBSD10.1 amd64 for science/gnudatalanguage
Comment 18 Thierry Thomas freebsd_committer freebsd_triage 2015-04-22 19:54:21 UTC
Patch for science/gnudatalanguage approved!
Comment 19 Thierry Thomas freebsd_committer freebsd_triage 2015-04-22 20:16:20 UTC
Committed, thanks!
Comment 20 commit-hook freebsd_committer freebsd_triage 2015-04-22 20:17:00 UTC
A commit references this bug:

Author: thierry
Date: Wed Apr 22 20:16:11 UTC 2015
New revision: 384520
URL: https://svnweb.freebsd.org/changeset/ports/384520

Log:
  - Upgrade math/plplot to 5.11.0
    Announcement at
    <https://sourceforge.net/p/plplot/plplot/ci/plplot-5.11.0/tree/README.release>

  - Take maintainership

  - Chase dependencies.

  PR:		ports/199539
  Submitted by:	Ben Woods <woodsb02 (at) gmail.com>
  Approved by:	marino (for plplot-ada), /me (for gnudatalanguage)

Changes:
  head/math/plplot/Makefile
  head/math/plplot/distinfo
  head/math/plplot/files/patch-bindings__tk-x-plat__plolotter.c
  head/math/plplot/files/patch-bindings__tk__plframe.c
  head/math/plplot/files/patch-bindings__tk__plserver.c
  head/math/plplot/files/patch-bindings__tk__tkMain.c
  head/math/plplot/files/patch-cmake_modules_FindVGA.cmake
  head/math/plplot/files/patch-cmake_modules_csiro.cmake
  head/math/plplot/files/patch-cmake_modules_instdirs.cmake
  head/math/plplot/files/patch-cmake_modules_linuxvga.cmake
  head/math/plplot/files/patch-cmake_modules_pkg-config.cmake
  head/math/plplot/files/patch-doc__docbook__src__tcl.xml
  head/math/plplot/files/patch-examples__python__CMakeLists.txt
  head/math/plplot/files/patch-examples__tk__xtk01.c
  head/math/plplot/files/patch-examples__tk__xtk02.c
  head/math/plplot/files/patch-examples__tk__xtk04.c
  head/math/plplot/files/patch-include_plConfig.h
  head/math/plplot/files/patch-include_plConfig.h.in
  head/math/plplot/files/patch-plplot_test__CMakeLists.txt
  head/math/plplot/files/patch-scripts__CMakeLists.txt
  head/math/plplot/files/patch-util__plrender.c
  head/math/plplot/pkg-plist
  head/math/plplot-ada/Makefile
  head/science/gnudatalanguage/Makefile
  head/science/gnudatalanguage/files/patch-CMakeLists.txt
  head/science/gnudatalanguage/files/patch-CMakeModules_FindPlplot.cmake
  head/science/gnudatalanguage/files/patch-CMakeModules_Findlibps.cmake
  head/science/gnudatalanguage/files/patch-src__base64.hpp
  head/science/gnudatalanguage/files/patch-src__basic_fun.cpp
  head/science/gnudatalanguage/files/patch-src__gshhs.cpp
  head/science/gnudatalanguage/files/patch-src__gsl_fun.cpp
  head/science/gnudatalanguage/files/patch-src__str.cpp
  head/science/gnudatalanguage/files/patch-src_plotting__contour.cpp
Comment 21 John Marino freebsd_committer freebsd_triage 2015-04-25 07:06:06 UTC
Heh, I forgot that plplot-ada PORTVERSION is always the same as the main plplot version, so the PORTREVISION bump was totally unnecessary.

I was looking at it because plplot-ada has been updated upstream (so I would need to bump portrevision anyway).  It just means that it comes in at "2" rather than the normal "0"
Comment 22 John Marino freebsd_committer freebsd_triage 2015-04-25 07:09:09 UTC
ah, I think portscout confused me.

The bindings must be within plplot itself, so there is nothing more to update.  When portscout saw the plplot new version available, then it alerted me that plplot-ada also had a new version available.

So really the update is done, just with an extra PORTREVISION bump.

sorry, I forgot how this port worked.
Comment 23 Ben Woods freebsd_committer freebsd_triage 2015-04-25 07:10:42 UTC
All good, guess we can take out the bonus portrevision when we next update plplot.