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

Packaging a difficult project

Hi all,

I have a software project that I plan on creating Debian packages for
which is non-standard in that it uses patched versions of GCC and Doxygen.


--- Project Description ---
EDoc++ is a compile time C++ exception analysis/documentation tool.

EDoc++ is a tool that analyses exception usage in C++ source code to
provide compile time/static analysis checks similar to that found in
other languages such as Java. EDoc++ can also generate detailed
information about exception propagation in various formats. One of which
can be used by doxygen in documenting exception information for API's.

This project is a little different from many "normal" packages in that
it has a set of patches against GCC 4.0.1 that create a "modified GCC"
that exports data while compiling C/C++ programs. This data is then used
for performing source code analysis (In particular analysing information
relevant to C++ exception propagation).
--- End: Project Description ---

Much of the project is easy to break into separate packages, I.e.
creating separate packages for the libs, apps and dev environments.
However the patched versions of GCC and Doxygen that are also required
by EDoc++ can't be installed in standard locations as they may conflict
with existing installed GCC and Doxygen.

The idea is that this patched GCC/Doxygen should be installed
"alongside" existing GCC/Doxygen versions and should not interfere with
them. Currently if the EDoc++ project is configured and built as shown

./configure --prefix=/usr &&
make &&
make install

Then the EDoc++ specific apps, libs etc are installed as expected into
/usr/bin ..., however the patched version of GCC and Doxygen are
installed to: /usr/edoc_patched/bin ...

When EDoc++ is configured and built, the patched source for GCC and
Doxygen are currently configured with a prefix like: gcc/configure

I have been thinking of setting the GCC & Doxygen prefix values to one
of: $bindir/edoc_patched, $datadir/edoc_patched or
$libexecdir/edoc_patched instead of $prefix/edoc_patched. I think the
important thing to note here though is that they can't have their prefix
the same as that of the "normal" programs i.e. /usr, otherwise there is
a chance of conflicts between patched and non-patched GCC/Doxygen.

Does anyone have suggestions as to how best I can tackle this problem in
a way that would be considered acceptable for inclusion in debian? The
current method works fine, but does not meet the debian policy requirements.

I plan on creating the following packages:


Would people suggest that the patched gcc/doxygen be included as part of
a main: edoc package, or as separate packages called: "edoc-gcc",


Reply to: