On 2016-11-22 23:07-0500 Hazen Babcock wrote:

>
> On 11/20/2016 01:12 PM, Tom Schoonjans wrote:
>> That’s exactly how I do it though: trial and error :-)
>
> I think I have at least sort of figured out travis-vi. To make it easier
> I've been doing all the experiments on a personal copy of the PLplot
> repo. It is pretty cool to be able to build 5 different versions at the
> same time :).
>
> If anyone is interested, you can see the results of all the tests here:
> https://travis-ci.org/HazenBabcock/PLplot/builds
>
> So far I have learned the new fortran95 bindings fail with gfortran4.8
> (and presumably lower). I also had trouble with ada, wxwidgets, lua and
> ocaml, but I'm not sure whether these are dependency issues.

Hi Hazen:

Sorry for the length of this, but I have a lot to say that should be a
big help to you for testing purposes.

Indeed those raw testing reports are certainly quite interesting to
me, and here are some suggestions for improvements based on looking in
detail at the results from one of those raw reports
(<https://travis-ci.org/HazenBabcock/PLplot/jobs/178182918>).

* -- WARNING: CMAKE_VERSION = 3.2.2 is in the range from 3.2 through
   3.3.1 which has a compromised find ability that was fixed in 3.3.2.
   Please upgrade to 3.3.2 or greater.

In other words, the cmake version (supplied by your distro?) is not
recommended at all, and I suggest you build and use the latest CMake
release (currently 3.7.0) instead, but note you should be able to
build into your testing scripts a check of recent tags for the git
version of the master branch for CMake to figure out whenever they
release another version.  I plan to automate that process myself for
the cmake script I am putting together to collect ctest results and
publish them at my.cdash.org because otherwise I will forget to do
that update and end up testing latest PLplot against some older
version of cmake that nobody uses any more.  For that cmake script I
actually plan not only to run the PLplot build and ctest against the
latest CMake version and also some fixed CMake versions such as CMake
version 3.7.0 (once that is different from latest CMake version and
currently required for users of rolling software releases such as
Debian testing and MinGW-w64/MSYS2 unless they are willing to
build their own CMake version from scratch), CMake version 3.6.2 (currently
required by Cygwin users unless ...), and CMake version 3.0.2 (currently 
required
by Debian stable users unless ...).

* Currently, your PLplot version is at least 3 commits behind. (I can
tell that from the form of the cmake output which probably means I
should get a life other than testing and developing PLplot.  :-) )

I assume you are deliberately not upgrading PLplot until you are ready
to merge into SF master the files you need to support these tests. But
when you are ready to test the latest PLplot, you could do the git
fetch, etc., from our SF repository by hand, but that would become a
pretty tough maintenance issue since you would likely have to remember
to do that PLplot upgrade on a daily basis. Therefore, I advise you to
automate your PLplot update process (which is what I plan to do for
the script I referred to above.)

* application-specific initialization failed: no display name and no
   $DISPLAY environment variable

   Error in startup script: no display name and no $DISPLAY environment
   variable
   [....]
   -- Looking for Tk version with wish - not found
   -- WARNING: setting ENABLE_tk to OFF

From this cmake output message, it appears you don't have any X
display available to you during testing. If you cannot fix that issue,
I suggest you specifically disable Tk (-DENABLE_tk=OFF) to get rid of
the above warning.

* -- Looking for itcl.h - not found
   -- WARNING: Disabling Itcl interface code

On Debian Jessie, the package you need to install is called itcl3-dev
and I presume that the package names I mention for that distro will
also be relevant for Ubuntu as well since that is based on Debian. But
it turns out from your raw test results that you _did_ install
itcl3-dev.  I looked carefully at the Ubuntu install messages for that
package and except for one system update issue, (see below) all seems
to be well there so itcl.h was very likely installed fine, but cmake
is just plain not finding it.  Therefore, I am virtually positive this
problem is an example of one of the many known find problems with your
version of CMake.  So you should address that issue by building and
using the latest CMake (see the remarks about that above), and I am
pretty sure once you do that, this issue with finding itcl.h will
"magically" disappear.

* Updating your Ubuntu distro to make it self-consistent (and a lot more
secure)

Your detailed install messages for itcl3-dev seemed to successful
as noted above, but they did include the following warning message
about 110 packages that needed updating.

0 upgraded, 2 newly installed, 0 to remove and 110 not upgraded.

To reduce that "not upgraded" number to 0, do the following:

sudo apt-get update
sudo apt-get dist-upgrade

The first of those commands updates the lists of _potential_ packages
you should upgrade, and the second of those commands actually does
those updates.  I suspect as a result of the first command, there will
be far more than the 110 packages mentioned above that need updating
to bring your system into self-consistency and to also make it much
more secure because many of those updates are related to security. 
But the second of those commands does those necessary updates and
should bring the "not upgraded" count to 0.  (Note as a matter of
standard maintenance of your Ubuntu system I would reccommend doing
the two sudo commands above at least a couple of times a month, and
depending on the pace of upgrading packages by the Ubuntu packagers,
you might want to do those two commands much more often than that.)

* -- WARNING: no working Ada compiler so disabling Ada binding and
examples.

You need to install a package that contains the
gnatmake command.  On Debian Jessie the name of that package is gnat-4.9.


* -- Could NOT find Lua (missing:  LUA_EXECUTABLE LUA_VERSION
LUA_LIBRARIES LUA_INCLUDE_DIR)
   -- WARNING: Lua library and/or header not found. Disabling Lua binding

On Debian Jessie, the packages you need to install are called
liblua5.2-dev (for the development version of the lua library) and lua5.2
(for the lua executable).

* -- WARNING: no working D compiler so disabling D binding and examples.

On Debian Jessie, the package you need to install is called gdc.

* -- WARNING: SHAPELIB not found.  Setting HAVE_SHAPELIB to OFF.

On Debian Jessie, the package you need to install is called libshp-dev.

* -- pyqt: SIP_EXECUTABLE = SIP_EXECUTABLE-NOTFOUND
   -- WARNING: sip not found so setting ENABLE_pyqt4 / ENABLE_pyqt5 to OFF.

On Debian Jessie, the package you need to install is called sip-dev.

* --   package 'lasi' not found
        [...]
   -- WARNING: pango, pangoft2, or lasi not found with pkg-config.

    Setting PLD_psttf to OFF.  Please install all of these packages

       and/or set the environment variable PKG_CONFIG_PATH appropriately.

On Debian Jessie, the package you need to install is called liblasi-dev.

* -- wxWidgets_FOUND           : FALSE
   -- wxWidgets_INCLUDE_DIRS    :
   -- wxWidgets_LIBRARY_DIRS    :
   -- wxWidgets_LIBRARIES       :
   -- wxWidgets_CXX_FLAGS       :
   -- wxWidgets_USE_FILE        : UsewxWidgets
   -- WARNING: wxWidgets or its libraries not found so setting all wxwidgets 
devices to OFF.
   -- WARNING: PLD_wxwidgets is OFF so setting ENABLE_wxwidgets to OFF.
   -- WARNING: ENABLE_wxwidgets is OFF so setting all wxwidgets devices to OFF.

On Debian Jessie, the package you need to install is called 
libwxgtk3.0-dev.

* -- Looking for haru pdf header and library
   -- Looking for haru pdf header and library - not found
   -- WARNING: Setting PLD_pdf to OFF.

On Debian Jessie, the package you need to install is called libhpdf-dev.

* -- WARNING: The ocamlc application not found. Disabling OCaml binding

On Debian Jessie, I discovered by running

apt-file search ocamlc

that the package ocaml-nox contains that needed executable.  However,
I happen to know that ocaml-nox is a dependency of the "ocaml" package
which advertises itself as providing everything you need for ocaml
development so I would recommend you install ocaml (which
automatically installs its dependency, ocaml-nox as well) instead of
just ocaml-nox alone.

There may be additional ocaml-related executables or libraries, you
need once our build system finds ocamlc installed on your platform,
but look in the raw output from the cmake command for any relevant
WARNING messages about that. Such messages will likely include what
executable is still missing, and in that case the apt-file command
should help you to figure out what additional packages you need to
install to support our ocaml bindind and examples.

* -- checking for module 'gtk+-x11-2.0'
   --   package 'gtk+-x11-2.0' not found
   -- WARNING: gtk+-x11-2.0 not found.  extXdrawable_demo not built.

On Debian Jessie, the package you need to install is called
libgtk2.0-dev.

* make[2]: Circular examples/python/x00 <- examples/python/x00
dependency dropped.

And many, many more such messages.

I don't have a clue whether that is a CI analysis error or your
old version of CMake actually produces bad Makefiles as claimed,
but it will be interesting to see if this issue dissapears once
you move to modern cmake.

N.B. All my comments above are relevant to testing the latest PLplot,
testing all components of PLplot whose dependencies should be readily
accessible on Ubuntu, and preparing your Ubuntu system to be
consistent and secure.  So once you address all the above issues all
the cmake WARNINGS I mentioned above should be gone (i.e., the
WARNINGS that remain should never refer to missing components), and
your PLplot testing environment should become as powerful as mine.

But despite these temporary limitations of your current tests, I want
to congratulate you on at least one test result you have produced
which is already useful to me because it definitely confirms my
previous suspicion (from problematic results for gfortran-4.8 when
Arjen first started implementing this new Fortran binding) that
gfortran-4.8 does not support the iso_c_binding module (first
introduced for Fortran 2003) well enough to build the new binding.  So
as a result of your current tests, I can now state in the release
notes that gfortran-4.9 (which works well for you there and which also
works well for me here with Debian Jessie) is the minimum version of
gfortran that can be used with the new binding.

Anyhow, thanks very much for the interesting testing results you have
already generated, and I look forward to more of those with the above
issues addressed.

By the way, will there be a graphical summary somewhere of which
ctests failed and which did not for your latest test results? (That
sort of display is what you should soon find at my.cdash.org from my
own nightly ctest-based testing results.)

Also, after writing the above I have now read a bit more about the
<https://en.wikipedia.org/wiki/Travis_CI> continuous integration
available for free to gitHub users and also followed up by reading
<https://docs.travis-ci.com/user/customizing-the-build/#Customizing-the-Build-Step>
The "apt-get update" and apt-get install commands are specifically
mentioned in that latter document so I presume "apt-get dist-upgrade"
is also available, and I highly recommend including that.
I also find from
<https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments>
that both Ubuntu 12.04 LTS (precise) and  14.04 LTS (trusty) with
both the 64-bit Server Edition.

From looking at
<http://packages.ubuntu.com/search?keywords=cmake&searchon=names&suite=all&section=all>
no offical version of Ubuntu supplies the version (3.2.2) that you get
from Travis.  I assume that is because precise was released more than 4 years
ago, and trusty was released more than two years ago so neither of them
provides access to modern CMake-3.

In any case, I suggest you specify "trusty" rather than the default "precise"
because the latter is much too old and may include such old versions
of PLplot dependencies that PLplot is no longer compatible with them.
See
<https://docs.travis-ci.com/user/trusty-ci-environment/#Image-differences-from-Precise>
for how to switch from precise to trusty.

I am now wondering whether it is possible to use the same simple
method to get access to the latest officially released Ubuntu which is
called yakkety and which gives you access to CMake-3.5.2 and many
other recent versions of the PLplot dependencies so that would be a
really powerful and interesting test environment.

Also, note that travis-ci gives you a fresh system for every test
which implies it might be possible to change that system anyway you
like since they are no consequences other than possibly a temporarily
broken system and therefore a broken test result.  So assuming the
above idea for getting access to yakkety does not work, the
possibility exists that if you follow the ideas in
<https://www.howtoforge.com/tutorial/ubuntu-rolling-release/> (an
article about how to change Ubuntu to a rolling release, but the same
idea can be used to change from one official version to another) you
can change Ubuntu versions with just 3 key commands (if you don't
count the two extra cat commands to figure out whether the key sed
command actually worked properly or not)

sudo cat /etc/apt/sources.list
sudo sed -i 's/trusty/yakkety/g' /etc/apt/sources.list
sudo cat /etc/apt/sources.list

Those cat commands are not necessary, but they should tell you what is
going on with the key /etc/apt/sources.list file before and after the
sed command changed that system file.

Then follow up with the usual
sudo apt-get update
sudo apt-get dist-upgrade

Note, if travis-ci somehow precludes you from switching Ubuntu from
trusty to Ubuntu yakkety (admittedly a pretty drastic change) in
either of the two ways above, then that would force you to build
cmake-3.7.0 as part of each of your tests, and that would obviously be
slower than the above change to yakkety (if allowed by travis-ci).

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to