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

Packaging a difficult project



Hi all,

I was directed here from debian-mentors with my question.


--- Original Post ---

I have a software project that I plan on creating Debian packages for
which is quite different from many other packages in that it also installs patched versions of GCC and Doxygen (That must not conflict with existing installs of these programs).

http://edoc.sourceforge.net/

--- 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.
--- End: Project Description ---



This project has a set of patches against GCC 4.0.1 that create a "modified GCC" which 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).


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
below:

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

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

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

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:

edoc
edoc-doc
libedoc
libedoc-dev
libedocbfd
libedocbfd-dev

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

Thanks,
Brendon.




Reply to: