@Andrew: I have CC'd you because you are the maintainer for the liblasi-dev Debian (and indirectly Ubuntu) package, and this e-mail provides some background (scan below to the error involving freetype) for a bug report I just made for that package at <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=845497>. Also, note comments below about an even worse issue for this package (it is based on old buggy version where Hazen ran afoul of one of those bugs).
Hi Hazen: I was glad to see most of my suggestions improved test completeness right away. I will respond below to the ones where there is still a problem, but when you reply please post the exact URL of the relevant report that failed (or succeeded) because they are tough to find amongst all the many different build reports you are generating. On 2016-11-23 12:23-0500 Hazen Babcock wrote: > On 11/23/2016 06:08 AM, Alan W. Irwin wrote: > >> * -- 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. > > I changed the builds to download and install cmake-3.7.0, which seems to be > working. Excellent news. Just out of curiosity, is cmake-3.7.0 actually provided as an official package by travis-ci, is this the Linux binary version supplied by Kitware, or do you build cmake-3.7.0 for each test? >> * -- Looking for itcl.h - not found >> -- WARNING: Disabling Itcl interface code > > This is still failing with cmake-3.7.0 and the itcl3 and itcl3-dev packages. That sounds like a Tcl find issue. Short story, please try the cmake option -DTCL_INCLUDE_PATH:PATH=/usr/include/tcl8.5 to see if that solves the issue. The (somewhat) longer story is as follows: To analyze this situation further, if you look at <http://packages.ubuntu.com/trusty/amd64/tcl-dev/filelist>, tcl.h should be found at /usr/include/tcl8.5/tcl.h, and if you look at <http://packages.ubuntu.com/trusty/amd64/itcl3-dev/filelist>, itcl.h should be found at /usr/include/tcl8.5/itcl.h Yet your report says the tcl.h location (${TCL_INCLUDE_PATH}) is /usr/include/tcl! That would be OK if that was the result of some Ubuntu consistent symlink /usr/include/tcl -> /usr/include/tcl8.5 since then itcl.h would still be found consistently in that same symlinked directory. But since itcl.h is not found, I assume the trouble is due to some Ubuntu trusty symlink for tcl.h that is inconsistent with the itcl.h location. Thus, to achieve the required consistency, I suggest you try setting TCL_INCLUDE_PATH as above. >> 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 > > I suspect that you can't do that, but I have not actually tried. It is definitely worthwhile on the Debian platform(or Debian derivative platforms such as Ubuntu) to always do that standard upgrade to get access to the latest bug fixes and security fixes. Therefore, I do suggest you do give it a try, and if it works always use it from then on in your tests. > >> On Debian Jessie, the package you need to install is called liblasi-dev. > > This causes the build to fail with: > > Scanning dependencies of target psttf > [ 20%] Building CXX object drivers/CMakeFiles/psttf.dir/psttf.cc.o > In file included from > /home/travis/build/HazenBabcock/PLplot/drivers/psttf.cc:44:0: > /usr/include/LASi.h:14:30: fatal error: freetype/ftglyph.h: No such file or > directory > compilation terminated. > make[2]: *** [drivers/CMakeFiles/psttf.dir/psttf.cc.o] Error 1 > make[1]: *** [drivers/CMakeFiles/psttf.dir/all] Error 2 > make: *** [all] Error 2 > > So I think we are still missing something, a freetype package perhaps? @Andrew: One aspect of the problem is a packaging bug for liblasi-dev which I have documented at <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=845497>. Also, I have looked at the Release notes for lasi-1.1.2, and the fundamental motivation for that release was to solve issues like the above. So I am pretty sure you put packaging lasi-1.1.2 on your ToDo list at the time of that release, but never got around to it because the Debian package is still for an outdated version, lasi-1.1.0. Should I make an official bug report about this or is this reminder enough? @Hazen: Solution of the above two liblasi-dev packaging bugs will likely solve this issue, but especially until that second issue (old upstream version) is fixed there is not much you can do so I suggest setting -DPLD_psttf=OFF (with a comment about why because you will want to review this once the above package fixes are made and the results are propagated to travis-ci). Also, I just noticed there continues to be a freetype issue that is independent of -dev psttf (or -dev psttfc). When you look at this again, please give me the URL of the relevant report, but from the old report I have been analyzing had the following result for freetype: -- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.5.2") -- FREETYPE_CFLAGS = -I/usr/include/freetype2 -- FREETYPE_LIBRARIES = /usr/lib/x86_64-linux-gnu/libfreetype.so Fonts not found - disabling freetype I suspect you have to install some truetype fonts to solve this issue. There is a lot of choice available, but one TTF package I install is fonts-freefont-ttf which contains a very large range of TrueType glyphs, and it appears that that package is also provided by Ubuntu trusty. > >> On Debian Jessie, the package you need to install is called >> libwxgtk3.0-dev. > > This causes the build to fail with: > [ 14%] Building CXX object > bindings/wxwidgets/CMakeFiles/plplotwxwidgets.dir/wxPLplotstream.cpp.o > In file included from /usr/include/c++/5/type_traits:35:0, > from /usr/include/wx-3.0/wx/strvararg.h:25, > from /usr/include/wx-3.0/wx/string.h:46, > from /usr/include/wx-3.0/wx/memory.h:15, > from /usr/include/wx-3.0/wx/object.h:19, > from /usr/include/wx-3.0/wx/wx.h:15, > from > /home/travis/build/HazenBabcock/PLplot/bindings/wxwidgets/wxPLplotstream.cpp:22: > /usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file > requires compiler and library support for the ISO C++ 2011 standard. This > support must be enabled with the -std=c++11 or -std=gnu++11 compiler options. > #error This file requires compiler and library support \ > ^ > In file included from /usr/include/wx-3.0/wx/string.h:46:0, > from /usr/include/wx-3.0/wx/memory.h:15, > from /usr/include/wx-3.0/wx/object.h:19, > from /usr/include/wx-3.0/wx/wx.h:15, > from > /home/travis/build/HazenBabcock/PLplot/bindings/wxwidgets/wxPLplotstream.cpp:22: > /usr/include/wx-3.0/wx/strvararg.h:345:18: error: ‘is_enum’ in namespace > ‘std’ does not name a template type > typedef std::is_enum<T> is_enum; > ^ > /usr/include/wx-3.0/wx/strvararg.h:349:54: error: ‘is_enum’ was not declared > in this scope > enum { value = wxFormatStringSpecifierNonPodType<is_enum::value>::value > }; > ^ > /usr/include/wx-3.0/wx/strvararg.h:349:68: error: template argument 1 is > invalid > enum { value = wxFormatStringSpecifierNonPodType<is_enum::value>::value > }; > ^ > make[2]: *** > [bindings/wxwidgets/CMakeFiles/plplotwxwidgets.dir/wxPLplotstream.cpp.o] > Error 1 > make[1]: *** [bindings/wxwidgets/CMakeFiles/plplotwxwidgets.dir/all] Error 2 > make: *** [all] Error 2 > > Not sure how to set compiler flags, I will have to investigate further. Or > maybe cmake should be doing this for us? Try setting the environment variable CXXFLAGS as a workaround. But I don't need to do that here so I suspect the problem is a fundamental mismatch between the old wxwidgets system libraries available to you on Ubuntu trusty and the (much newer) g++ compiler versions that are available to you with travis-ci. So I suspect that workaround won't help much, and you will have to set -DPLD_wxwidgets=OFF (or drop installing the wxwidgets development libraries) until travis-ci makes a newer set of Linux libraries available. >> * make[2]: Circular examples/python/x00 <- examples/python/x00 >> dependency dropped. >> >> And many, many more such messages. > > Using cmake-3.7.0 seems to have fixed this. Excellent. I was quite concerned by that issue, but that good result with cmake-3.7.0 confirms my prejudices against early versions of CMake such as 3.1.x through 3.4.x. The CMake developers actually didn't introduce too many changes for 3.0.2 compared to 2.8.x so that remains a reasonably reliable version outside of one known permission issue I had to work around in the PLplot build system. But there was a flood of CMake changes for 3.1.x onwards so it took many subsequent versions to wring out all the bugs that were introduced by those changes. >> 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). > > I used the cmake-3.7.0 binary so that I don't have to compile it. It would be > nice if they provided more recent distros but I'm not holding my breath.. Well, my opinion is CMake-3.7.0 + trusty is marginal rather than a disastrous combination. So travis-ci will eventually have to move to something newer, and it is beginning to get urgent. So "eventually" may come soon since they have supported precise and trusty (released in April of 2012 and 2014) which are both LTS (long-term-support) Ubuntu distributions. The next LTS Ubuntu distribution was xenial (16.04LTS) which from the numerical code was released in April this year. So it is disappointing that travis-ci has not yet moved to xenial in the 7 months since that release, but perhaps that will happen "real soon now"? By the way, I also view my own platform, Debian stable = Jessie (released in April 2015 so a year newer than trusty) as marginal (i.e., on the edge of being too old). So sometime in the next few months I plan to switch to Debian stretch (the "testing" rolling release). Note stretch is in a freeze state now or soon will be in preliminary preparation for releasing it as the next Debian stable release some time in 2017. So Debian stretch should already be a pretty reliable testing platform for PLplot. 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