Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 467472 - multiple sci-libs/opencascade installations
Summary: multiple sci-libs/opencascade installations
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Michael Weber (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 438466 451406
  Show dependency tree
 
Reported: 2013-04-27 09:59 UTC by Michael Weber (RETIRED)
Modified: 2013-06-24 17:01 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Weber (RETIRED) gentoo-dev 2013-04-27 09:59:51 UTC
In order to resolve bug 438466, I've added a number of version bumps.
The compilation takes ages and I try to have multiple versions slot'ed in combination with app-admin/eselect-opencascade to manage the env.d/51opencascade file.

The only in-tree consumer is media-gfx/freecad, which loads opencascade libs on runtime. 

Version 6.5/6.5.0 and i.e. 6.5.5 have different symbols exported, and a Freecad 0.12.5284 installation build against 6.5/6.5.0 crashed, when opencascade 6.5.5 is active.

Example, loading an dfx file.
Exception (Sat Apr 27 11:42:49 2013): /usr/lib64/Part.so: undefined symbol: _ZNK18Standard_Transient8HashCodeEi 
Stack Trace: Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/Mod/Draft/importDXF.py", line 43, in <module>
    import FreeCAD, os, Part, math, re, string, Mesh, Draft

This runtime crashed are not detectable by repoman.

One solution would be an ABI-slot for opencascade, and force freecad rebuild after opencascade update (new portage/eapi feature).

Another attempt is an eselect module to switch between opencascade installationa. With some problems:
 - system-wide / root access needed
 - LDPATH affects the state of ld.so.{conf,cache} so user-overloads have to set LD_LIBRARY_ATH
 - are multiple versions of opencascade really needed? - esp. version 6.3

Assuming opencascade-6.5.0 and 6.5.5 installed, 6.5.5 eselect'ed, 
my attempt to source the 6.5.0 env-file as regular user before freecad startup 
fails.

eval $(sed -e 's|^\(PATH\)=\(.*\)|\1=\2:\$\1|' \
  -e 's|^LDPATH=\(.*\)|LD_LIBRARY_PATH=\1:$LD_LIBRARY_PATH|' \
  /etc/env.d/opencascade/6.5.0)