[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: