Mark:

>>> One final nit -- are we really interested in delivering raptor.pc?   
>>> It's not really been common practice up until now to deliver those 
>>> ./configure artifacts.
>> raptor.pc is needed.
>> In fact,a  library bundled one pc file is recommended, since 
>> pkg-config can use it to get CFLAGS, LIB flags.
>> and pkg-config is used very often.
>>
>> IMO, raptor-confg , which can be used to get CFLAGS and LIBS , will be 
>> removed in its future version.
>> since release a pc file is more common.
> 
> Well for good or bad, I've noticed .pc files before, questioned them, 
> and the teams have simply removed them.  

In general, this would be bad.  The only time you would not want to
deliver a .pc file would be in the situation where the interfaces were
truly private and you didn't want users to ever build against them.
For example, if you delivered a library without the header files
specifically so that users would not link against the library, then
it wouldn't make sense to deliver any associated .pc files.

I can't think of a situation where you would not want to deliver the
.pc file if you did deliver the header files and other resources
needed for building with the module's interfaces.

> Knowing now that they're part 
> and parcel for projects is fine, so I don't have a problem if providing 
> them is a norm.  Something to note here is that it seems like a somewhat 
> emergent interface artifact standard, and that it's probably safe to 
> *expect* this build configuration interface to be present for most FOSS 
> type projects, much like header files or libraries.

If you read the pkg-config manpage, you will see that the pkg-config
interfaces (such as the normal default location for .pc files) are
Committed.  Most free/open source modules which use autotools also use
pkg-config to determine if needed dependencies are present, and to
figure out what arguments are needed to compile and link against a
given library.  The pkg-config interfaces (e.g. the keys in the .pc
file are very stable, and have not broken in a backwards incompatible
way since pkg-config was first introduced in Solaris 10.  In practice,
the .pc file namespace also tends to be very stable.  Modules don't
tend to change the .pc filenames they use, for example.

Since we integrated pkg-config in Solaris 10, I have never heard of
any interface stability problem that has arisen from the various .pc
files installed on Solaris.

> Is there any 
> internal guidance or documentation on this, or is this just an unspoken 
> common practice among teams nowadays?  We might want to make sure that 
> this expectation is communicated to external contributors and systems as 
> well (e.g. SourceJuicer).

The Desktop team normally ships all .pc files provided with free
software modules, unless we don't ship the headers or other needed files
required to build against the module.  Unless there is a need to deny
people the ability to easily build against a given module, it doesn't
make sense to not ship the .pc file.

To my knowledge, pkg-config is only used by various FOSS project, and
I don't believe it is used by many projects written internally at Sun.
However, if Sun were to write a module that made use of pkg-config, then
there should be some common sense rules about naming the .pc file
sensibly, especially if there is a desire for multiple versions of the
module to be parallel installable.

Brian

Reply via email to