View Issue Details

IDProjectCategoryView StatusLast Update
0001335FreeCADBugpublic2015-01-25 14:39
Reporterbeckcb Assigned Toyorik  
PrioritylowSeveritymajorReproducibilityalways
Status closedResolutionfixed 
PlatformLinuxOSDebian Sid UnstableOS VersionDebian 3.11.10-1
Product Versiontrunk 
Summary0001335: CMake/make errors regarding versions of libcoin and libfreetype and pivy
DescriptionI tried to cmake and make FreeCAD from fresh sourceforge git repository
on Debian Sid 64bit.
Suppose I get into versioning trouble with libcoin and libfreetype.
As dpkg -l shows libcoin80 and libfreetype6 is installed.

Do also get errors when running make indicating depreciated function calls and
files not found.

I know this is very fresh software versions, but
maybe something to look into for the package maintainer/developer anyway??

I do not expect a high priority or feedback on this report.
This is mostly for your awareness and information.
Steps To Reproducegit pull on master branch
cmake .
make

Eg:
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$ cd /LxSrc/Src.dwl/freecad.sf.git;git pull;cd ../freecad-build;cmake ../freecad.git .
Additional Information
Output of commands following:
================================================================
 
The cmake run following:
==========================
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$ cd /LxSrc/Src.dwl/freecad.sf.git;git pull;cd ../freecad-build;cmake ../freecad.git .
Already up-to-date.
-- prefix: /usr/local
-- datadir: data
-- docdir: doc
-- includedir: include
-- Boost version: 1.54.0
-- Found the following Boost libraries:
-- filesystem
-- program_options
-- regex
-- signals
-- system
-- thread
-- Found Xerces-C: /usr/lib/x86_64-linux-gnu/libxerces-c.so
-- PyCXX found:
-- Headers: /LxSrc/Src.dwl/freecad.sf.git/src
-- Sources: /LxSrc/Src.dwl/freecad.sf.git/src/CXX
-- OpenCASCADE Community Edition has been found.

========= LOOK HERE ===============
-- Could NOT find Freetype (missing: FREETYPE_INCLUDE_DIRS)
FreeType2 library is not available. Part module will lack of makeWireString().
========= LOOK HERE ===============

-- matplotlib-1.3.1 has been found.
-- Platform is 64-bit, set -D_OCC64
-- Build type:
git
/LxSrc/Src.dwl/freecad-build/src/Build/Version.h written

========= LOOK HERE ===============
-- Coin3D doc is not installed
========= LOOK HERE ===============

-- Configuring done
-- Generating done
-- Build files have been written to: /LxSrc/Src.dwl/freecad-build
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$


The output of dpkg package listing:
=====================================
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$ dpkg -l libfreetype*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=======================================-========================-========================-===================================================================================
ii libfreetype6:amd64 2.5.1-2 amd64 FreeType 2 font engine, shared library files
ii libfreetype6:i386 2.5.1-2 i386 FreeType 2 font engine, shared library files
ii libfreetype6-dev 2.5.1-2 amd64 FreeType 2 font engine, development files


cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$ dpkg -l libcoin*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=======================================-========================-========================-===================================================================================
un libcoin20-dev <none> <none> (no description available)
un libcoin20-doc <none> <none> (no description available)
un libcoin40-dev <none> <none> (no description available)
un libcoin40-doc <none> <none> (no description available)
un libcoin60-dev <none> i386 (no description available)
un libcoin60-doc <none> <none> (no description available)
ii libcoin80 3.1.4~abc9f50-4 amd64 high-level 3D graphics kit implementing the Open Inventor API
ii libcoin80-dev 3.1.4~abc9f50-4 amd64 high-level 3D graphics devkit with Open Inventor and VRML97 support
ii libcoin80-doc 3.1.4~abc9f50-4 all high-level 3D graphics kit with Open Inventor and VRML97 support
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$


Just tried to run make
make terminates with errors
==============================
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$ make
[ 0%] Building CXX object src/3rdParty/Pivy-0.5/CMakeFiles/coin.dir/coin_wrap.cpp.o
In file included from /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/Pivy-0.5/coin_header_includes.h:145:0,
                 from /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/Pivy-0.5/coin_wrap.cpp:3930:
/usr/include/Inventor/elements/SoGLTexture3EnabledElement.h:36:2: error: #error Deprecated: use SoMultiTextureEnabledElement instead
 #error Deprecated: use SoMultiTextureEnabledElement instead
  ^
In file included from /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/Pivy-0.5/coin_header_includes.h:190:0,
                 from /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/Pivy-0.5/coin_wrap.cpp:3930:
/usr/include/Inventor/elements/SoTexture3EnabledElement.h:36:2: error: #error Deprecated: use SoMultiTextureEnabledElement instead
 #error Deprecated: use SoMultiTextureEnabledElement instead
  ^
In file included from /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/Pivy-0.5/coin_wrap.cpp:3930:0:
/LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/Pivy-0.5/coin_header_includes.h:668:40: fatal error: Inventor/scxml/ScXMLInvoke.h: No such file or directory
 #include <Inventor/scxml/ScXMLInvoke.h>
                                        ^
compilation terminated.
make[2]: *** [src/3rdParty/Pivy-0.5/CMakeFiles/coin.dir/coin_wrap.cpp.o] Error 1
make[1]: *** [src/3rdParty/Pivy-0.5/CMakeFiles/coin.dir/all] Error 2
make: *** [all] Error 2
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$


Operating system:
===================
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$ uname -a
Linux b9Lap 3.11-2-amd64 #1 SMP Debian 3.11.10-1 (2013-12-04) x86_64 GNU/Linux
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$
TagsNo tags attached.
FreeCAD Information

Activities

yorik

2013-12-19 13:00

administrator   ~0003951

Indeed pivy fails to compile with the most recent coin version. You can work around this easily by disabling the built-in pivy, which is not needed anyway on debian, because there is a python-pivy package available from the repo:
cmake -DFREECAD_USE_EXTERNAL_PIVY=true (or using cmake-gui from the build dir)
As for freetype, I have this version installed (debian testing) and cmake isn't complaining, don't know what's wrong there...
ii libfreetype6:amd6 2.5.1-1
ii libfreetype6:i386 2.5.1-1
ii libfreetype6-dev 2.5.1-1
My freetype-related cmake settings are these:
FREETYPE_INCLUDE_DIR_freetype2: /usr/include/freetype2
FREETYPE_INCLUDE_DIR_ft2build: /usr/include
Maybe check with cmake-gui what are yours set to...

beckcb

2013-12-19 19:13

reporter   ~0003952

Thank you for the tip on pivy and cmake-gui.
I worked my way through the cmake config/installation process and tried to
document the errors I encontered:

================================================================================
To get the CMAKE pass without errormessages I had to manually do the following:
================================================================================
This is done as of: Dec. 19th 2013.
with a fresh pull from git repo.

The following comments is meant as a constructive feedback to the FreeCAD maintainers/developers.
Hope is that there comes something useful out of it.
Take it as is. ;-)
========================
Error: CMake complaints that COIN_DOC is not installed:

Had to set following Variables manually:
COIN3D_DOC_PATH /usr/share/doc/libcoin80-doc
COIN3D_DOC_TAGFILE /usr/share/doc/libcoin80-doc/html/coin.tag.gz

Result: CMake output
Coin3D doc is installed
  Tag file: /usr/share/doc/libcoin80-doc/html/coin.tag.gz
  Location: /usr/share/doc/libcoin80-doc

Variables should be set as default some place

===========
  CMake Error: Shiboken_DIR_NOTFOUND
  
  Had to install
  libshiboken-dev

==========
  
CMake Error:
PySide_DIR PySide_DIR-NOTFOUND
Installed python-pyside metapackage (Maybe not necessary??)
and
installed libpyside-dev
PySide_DIR now points at /usr/lib/x86_64-linux-gnu/cmake/PySide-1.2.1

===========
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
NGLIB_INCLUDE_DIR
   used as include directory in directory /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/salomesmesh
   used as include directory in directory /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/salomesmesh
   used as include directory in directory /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/salomesmesh
   used as include directory in directory /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/salomesmesh
   used as include directory in directory /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/salomesmesh
   used as include directory in directory /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/salomesmesh
   used as include directory in directory /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/salomesmesh
   used as include directory in directory /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/salomesmesh
   used as include directory in directory /LxSrc/Src.dwl/freecad.sf.git/src/3rdParty/salomesmesh
   
To get rid of this I did:
Installed libnglib-dev
Set NGLIB_INCLUDE_DIR /usr/local

and
Error:
NGLIB_LIBRARIES NGLIB_LIBRARIES-NOTFOUND
Set NGLIB_LIBRARIES to /usr/lib

Would appreciate info message: Check that libnglib-dev is installed properly.

===============
FREECAD_USE_FREETYPE Set to Boolean yes

But CANNOT FIND FREETYPE_INCLUDE_DIRS in the Makefile
I have CMAKE version 2.8.12.1-1
As far as I can se the file /usr/share/cmake-2.8/Modules/FindFreetype.cmake
is the same for Debian Testing(Jessie) and Debian Sid (Unstable)
The version of libfreeType6-dev is different. 2.5.1-1 and 2.5.1-2 but that shouldn't
influence on the cmake procedure I think

Here is a dump of the CMakeCache.txt file.
It shows 2 different include paths for freetype.
One for freetype2 and another for ft2build.
By looking at the comments in Fretype.cmake file I think there might be som bugs there?

cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$ cat CMakeCache.txt | grep FREETYPE
FREECAD_USE_FREETYPE:BOOL=ON
FREETYPE_INCLUDE_DIR_freetype2:PATH=FREETYPE_INCLUDE_DIR_freetype2-NOTFOUND
FREETYPE_INCLUDE_DIR_ft2build:PATH=/usr/include/freetype2
FREETYPE_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libfreetype.so
//ADVANCED property for variable: FREETYPE_INCLUDE_DIR_freetype2
FREETYPE_INCLUDE_DIR_freetype2-ADVANCED:INTERNAL=1
//ADVANCED property for variable: FREETYPE_INCLUDE_DIR_ft2build
FREETYPE_INCLUDE_DIR_ft2build-ADVANCED:INTERNAL=1
//ADVANCED property for variable: FREETYPE_LIBRARY
FREETYPE_LIBRARY-ADVANCED:INTERNAL=1
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$


The CMake output complains about FREETYPE_INCLUDE_DIRS Not found.
I manually adds an entry in CMAKE-GUI as follows:
FREETYPE_INCLUDE_DIRS equal /usr/include/freetype2

Now the CMAKE goes throug errorfree.
Something missing in config files somwhere I suppose, but I'm not shure where.

=========
I also has these variables undefined, but do not know where to set them
Looks like they wants path to a file

NETGEN_DIR_gen NETGEN_DIR_csg-NOTFOUND
NETGEN_DIR_geom2d NETGEN_DIR_geom2d-NOTFOUND
NETGEN_DIR_gprim NETGEN_DIR_gprim-NOTFOUND
NETGEN_DIR_la NETGEN_DIR_la-NOTFOUND
NETGEN_DIR_mesh NETGEN_DIR_mesh-NOTFOUND
NETGEN_DIR_occ NETGEN_DIR_occ-NOTFOUND
NETGEN_DIR_stigeom NETGEN_DIR_stlgeom-NOTFOUND
===================

At this point CMAKE passes through without any showstop error.

===================================
So then I try to run make:
===================================

Running of make stops as follows:
===================================
Linking CXX shared library ../../../lib/StdMeshers.so
[ 6%] Built target StdMeshers
Scanning dependencies of target FreeCADBase
[ 6%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/swigpyrun.cpp.o
make[2]: *** No rule to make target `/usr/lib/libboost_filesystem.so', needed by `lib/libFreeCADBase.so'. Stop.
make[1]: *** [src/Base/CMakeFiles/FreeCADBase.dir/all] Error
make: *** [all] Error 2
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$

--------------
When running find I get the following output:
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$ find /usr -name libboost_filesystem.so
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so
cbe@b9Lap:/LxSrc/Src.dwl/freecad-build$

Should the cmake system config automaticlly setup the library paths for 64 bits system some place to avoid this error in the future?
=====================================

Conclusion:
===========
If somebody with the proper knowledge and authority could go through this list and update variables with default values for Debian Sid and
other OS versions etc, I would appreciate it. And maybe also a little update on "Linux compile wiki" regarding library dependencies.

Also a more informative cmake output message on which library which is missing when errors occurs would be appreciated.
Aka: "This error occurs probably because lib.....-dev is not installed."

I think it would save a lot of manual work hours wrestling with the config/compile.
These manhours could instead be used to test freecad functionality.
And it will remove major showstoppers for everybody trying to do a compile.

Thanks in advance.

yorik

2013-12-19 20:09

administrator   ~0003953

Most of these unconfigured packages (pyside, shiboken, netgen, etc) are because of changes being made right now, actually, and not totally complete.

Sorry you lost a lot of manual work hours wrestling with the config/compile, although it's expected when dealing with very latest code... Thanks a lot for taking the time to list all problems, though, it'll certainky be useful.

The freetype issue I really don't know, AFAIK you're the first person to meet that problem. But it indeed looks like a problem in the freetype cmake stuff...

I'll summarize here the cmake problems to be solved on our side, for later:

- Coin doc not found (known problem) (I thought that was fixed already...)
- Pyside and shiboken not listed in package dependencies (wait for final switch to pyside)
- Netgen (related to assembly, wait for full merge of the assembly branch)

beckcb

2013-12-20 03:03

reporter   ~0003954

Please don't get me wrong. I don't mind using time fiddeling around freecad.
As long as it's helful, and moves the project a little bit in right direction.
Many thanks for quick and friendly respons ;-)

Jriegel

2013-12-23 07:43

administrator   ~0003972

netgen is a dependency of the FEM workbench and already in master.
Also I think we can add the dependency of PySide already (additional to PyQt) to see effects downstream already...

yorik

2013-12-23 13:32

administrator   ~0003973

Hm I'm checking the netgen stuff, there is apparently some mismatch in the debian repo, salome and the netgen plugin are only available in experimental repo, and depends on liboce3, while only 6 and 7 are available in testing and sid...

Maybe better to wait until they sort that stuff out, otherwise it'll make freecad pretty unbuildable...

But indeed pyside/shiboken we can already add.

yorik

2015-01-24 19:57

administrator   ~0005718

AFAICS:

- pyside and shiboken are now listed as dependencies everywhere (correctly used in debian and ubuntu packages, and listed in the wiki docs

- libcoin60 / libcoin80 is normally solved in both debian and ubuntu now

- netgen is now available in debian and ubuntu, but turned off by default in cmake for non-windows platforms, so it's not an absolute requirement

The only thing I would do here, is to turn off FREECAD_USE_EXTERNAL_PIVY for non-MSVC platforms (it doesn't work since a long time anyway).

Is that okay for you Werner? I think we can then close this bug report...

wmayer

2015-01-24 23:19

administrator   ~0005724

> The only thing I would do here, is to turn off FREECAD_USE_EXTERNAL_PIVY for non-MSVC platforms (it doesn't work since a long time anyway).
Sorry, but shouldn't it turned ON instead of OFF?

yorik

2015-01-25 00:42

administrator   ~0005727

Yes of course, sorry, that's what I meant.

wmayer

2015-01-25 11:12

administrator   ~0005730

> Is that okay for you Werner? I think we can then close this bug report...
OK, just go ahead.

Related Changesets

FreeCAD: master 0da2e4c4

2015-01-25 15:17:36

yorik

Details Diff
Disabled internal pivy building by default on non-windows platforms - fixes 0001335 Affected Issues
0001335
mod - CMakeLists.txt Diff File

Issue History

Date Modified Username Field Change
2013-12-19 01:43 beckcb New Issue
2013-12-19 13:00 yorik Note Added: 0003951
2013-12-19 19:13 beckcb Note Added: 0003952
2013-12-19 20:09 yorik Note Added: 0003953
2013-12-20 03:03 beckcb Note Added: 0003954
2013-12-23 07:43 Jriegel Note Added: 0003972
2013-12-23 13:32 yorik Note Added: 0003973
2015-01-24 19:00 wmayer Severity crash => major
2015-01-24 19:00 wmayer Additional Information Updated
2015-01-24 19:57 yorik Note Added: 0005718
2015-01-24 23:19 wmayer Note Added: 0005724
2015-01-25 00:42 yorik Note Added: 0005727
2015-01-25 11:12 wmayer Note Added: 0005730
2015-01-25 14:39 yorik Changeset attached => FreeCAD Master master 0da2e4c4
2015-01-25 14:39 yorik Assigned To => yorik
2015-01-25 14:39 yorik Status new => closed
2015-01-25 14:39 yorik Resolution open => fixed