Dear Fink developers,

As some of you know, the "pkgconfig" system is being used extensively with
GNOME2 packages and possibly with other systems as well.  The pkgconfig
system aims to solve the problem of multiple versions of a shared library
by (1) carefully giving different names to different major versions of
the library, (2) storing header files in unique subdirectories, 
(3) keeping track of appropriate CFLAGS and LDFLAGS to pass to the
compiler and linker, and (4) keeping track of dependencies on other
pkgconfig-using packages.

Fink's shared library system, with -shlibs and -dev splitoffs, aims to
solve the same problem.  These two systems are not interfacing as well
as they might.  In particular, the pkgconfig files are being stored 
in the -dev splitoffs where they belong, but to function properly
they should perhaps "Depend" on other -dev splitoffs.  However, adding
those dependencies would violate Fink policy and in fact would defeat
the goal of the Fink policy regarding -dev splitoffs.

I have a two-part policy to propose.  The first part is a short-term
solution to the problem, and should be non-controversial.  I intend to
start implementing it right away.

The second part is a proposed longer-term solution to the problem,
which may be controversial.  I encourage discussion about it.

SHORT TERM SOLUTION:
 Although we should not allow a -dev splitoff to Depend on another -dev
 splitoff, we can use the "Recommends" field to specify the other -dev
 splitoffs which are relevant.  This will be useful for package
 maintainers, who will simply need to consult the "Recommends" field
 to find out which things they need to add to the "BuildDepends" line
 in their own packages.

LONG TERM SOLUTION:
 It seems to me that in the long term, for packages using pkgconfig we
 can allow both the headers and the root dylib symlink to go into the
 -shlibs package, i.e., we can merge the -dev and -shlibs packages in
 such a case.  This is because the pkgconfig system is explicitly
 designed to allow multiple versions to be installed simultaneously.

The reason that the "long term solution" can't be implemented immediately
is because of our existing -dev packages.  We could create new versions
of packages in which foo-shlibs "provides" foo-dev, but that won't work
for any package that has a versioned depedency on foo-dev.  Thus, the
process of converting from the short-term to the long-term solution may
be a rather long one (assuming that folks like the long-term solution).

Feedback appreciated.

  -- Dave






-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to