Re: Splitting up OpenCascade packages
On Thu, 2008-01-10 at 15:35 -0600, Jason Kraftcheck wrote:
> Greetings,
>
> I think the OpenCascade Debian packages would be more useful if they were
> split up further, and slightly differently. I've included a description
> of how I think the packages should be split, and a few scripts that will
> hopefully make maintenance of the split packages easier.
>
> Warning: I don't clam to be an expert on OpenCascade--there are most
> likely aspects of the following that I am mistaken about.
>
> Motivations for dividing OpenCascade libraries into multiple packages:
> Primary: I may need a package containing core libraries that does
> not depend on X11, such that it can be installed on a
> compute node w/out also installing X client libraries.
> Secondary: I and many others will most likely never want the WOK*
> or test harness stuff.
> Tertiary: I would like core stuff separate from the Lite OpenCascade
> Application Framework, as I do not intend to use the latter.
>
> Suggested Packages:
> OpenCascade-Common : Stuff requried by both OpenCascade and WOK*.
> OpenCascade-Core : The CAD/Solid Modelling Components
> OpenCascade-Vis : Visualization Components
> OpenCascade-OCAFLite : Lightweight Application Framework
> OpenCascade-OCAF : Application Framework
> OpenCascade-Test : Test harness, test code, and DRAWEXE
> OpenCascade-WOK : OpenCascade Developement Tools
> OpenCascade-*-dev : dev packages for all of the above
>
> Attached Files:
> pkgdep.ps : graph of dependencies amongst proposed packages
> - items that depend on X are orange
> libdep.ps : graph of dependencies amongst OpenCascade libraries
> - items that depend on X are orange
> - direct dependencies not shown if also implied indirectly
> (otherwise graph is unreadable mess.)
> libdepdot : Bash script to generate graphviz input for libdep.ps
> modmap.txt : map between OpenCascade Modules and proposed packages
> pkgsrc.txt : List of ToolKits and other source directories for each
> proposed package. NOTE: The WOK package should also
> include a bunch of stuff from the "wok" directory.
> occfiles : Perl script to generate lists of headers, libraries,
> and executables from a list of ToolKits and source
> directories such as specified for each proposed
> package in 'pkgsrc.txt'. NOTE: Doesn't handle
> data files (tcl, fonts, etc.) yet. NOTE: Must be
> run after OpenCascade is compiled so it can determine
> which libs and executables are actually built.
> toolkits : reduce list of directories in ros/src/ to a list of
> ToolKits and any directories that are not included
> in any ToolKit.
>
> * WOK: OpenCascade's combined source code repository system, build
> system, and IDL parser. Not required unless modifying
> OpenCascade. Not used to build on Linux.
This is really beautiful, I find your motivation compelling, and the
division is elegent. Thanks very much!
I have a couple of reactions:
-common is a name generally used for architecture-independent deps, e.g.
openmpi-common has a bunch of data files in /usr/share, so I'd use
-kernel or -base or something similar.
You're using ldd to generate these dependencies. But several of the
libraries are over-linked, that is linked to libraries where they don't
call any symbols, hence the thousand-odd warnings generated by
dh_shlibdeps at the end of the build. I wonder if the graphs are
simpler, and have fewer X links, than you make them out to.
Splitting up the libs should be no problem. Splitting up the headers
among the -dev packages will be a herculean task! There are some
fifteen thousand of them, including nearly four thousand beginning with
the word "Handle"!! Are you volunteering? :-)
dpkg -c libopencascade6.2-dev_6.2.0-6_amd64.deb | grep include | wc
I'm uploading -6 to the usual place now, with STLport stricken from its
presence so I can build Salomé (though that's still having trouble...).
I'll start -7 tomorrow, or when I hear from you, whichever comes later.
Thanks again!
-Adam
--
GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6
Engineering consulting with open source tools
http://www.opennovation.com/
Reply to: