For the current 0.17 development cycle, MacOS X and Windows builds have been switched from OCE 0.17 (OCC 6.8.0) to OCCT 7.0.0 for a while now. Ubuntu Daily Builds have been left in the dust with the now obsolete OCE 0.17, and I'd like to help getting this situation remedied so that all platforms share the same OCC version.
I've started looking into creating an Open Cascade 7.0.0 debian package. It's a major version change, which means we cannot simply use and lightly edit the contents of the existing oce package debian folder. I once built a package for a major version change, and I remember I had to heavily edit all the *-dev.install files. I'm also certain that I wrote about it on the forum, Yorik even gave me some help, but I can't locate any relevant forum topic. So I'll have to relearn how to do it, and I'll be documenting the process as thoroughly as I can this time. Maybe keeping local notes as well.
After poking here and there on the opencascade.org website, I found this relevant section in the documentation about the changes brought by OCCT 7.0.0:
Legacy persistence for shapes and OCAF data based on Storage_Schema (toolkits TKPShape, TKPLCAF, TKPCAF, TKShapeShcema, TLStdLSchema, TKStdSchema, and TKXCAFSchema) has been removed in OCCT 7.0.0.
These toolkits are referenced in liboce-ocaf10.install, liboce-ocaf-dev.install, liboce-ocaf-lite10.install and liboce-ocaf-lite-dev.install. They should be removed, and the lists of files the -dev.install files contain need to be regenerated.
Visualization CAF attributes have been moved into a new toolkit TKVCAF. If your application uses the classes from TPrsStd package then add link to TKVCAF library.
I'm guessing this new toolkit should be added to the visualization install files.
EDIT 2016/09/22: found this file listing modules for separate classes: adm/MODULES
- Open CASCADE now relies on VTK (this is not needed as FreeCAD uses VTK independently from OCC), FreeCAD does as well, we may need to create a VTK7 package first
- The CMakeLists.txt file sets cmake 2.8.12 as the minimum required version, trusty barely complies with the same version. This means it won't build on Ubuntu 12.04 LTS, but I believe we stopped supporting it anyway.
- Should we create a git repo on Launchpad for the debian packaging? I guess it would make sense.
- Should we also clone the OCC git repo to Launchpad? Or simply put everything, the upstream sources and the debian folder into the same repo? Kind of like the Debian Science guys are doing: https://anonscm.debian.org/cgit/debian-science/packages/oce.git/
- Regarding the package naming, I'm really not fond of how the liboce runtime packages get an arbitrary number bumped for each OCE release (liboce-foundation10, liboce-modeling10, etc.). I propose we add the real OCC version number to the package name: libopencascade7 (without minor version and maintenance version digits since they are zero). When OCC is updated to 7.1, we can name the new packages libopencascade7.1. Minor maintenance version digits (i.e. 7.0.1) should not change the package name, we'd just provide an updated package. But I doubt this will happen, OCCT does not seem to publish maintenance versions.
- I seem to recall that vejmarie needed to patch netgen 5.1 to get it working. Is it still the case? (Found this patch from looo, what about wmayer's?)
- What about VTK7? Does it need to be patched too?
- Adding support for TBB parallel processing (libtbb2?) along with vejmarie's patch to improve read time on STEP files (topic: Re: STEP file read might be crazy long ...)
- TBB might also be useful for Boolean operations: OCCT Forum / Current Progress - Parallelization of Boolean Operations Algorithm
That's it for now...