status of the s4 waf build - go to stage 3?

Stefan (metze) Metzmacher metze at samba.org
Sun Apr 25 03:06:36 MDT 2010


Stefan (metze) Metzmacher schrieb:
> tridge at samba.org schrieb:
>> Hi Brad,
>>
>>  > After your encouragement today, I gave this a try.
>>
>> thanks!
>>
>>  > The libLIBFOO stuff looks a bit strange - perhaps something not getting 
>>  > substituted correctly?
>>
>> no, that's just what the libraries are called. I kept the same names
>> as the old build system. The difference is that most of these libs got
>> rolled into the binaries or other libraries as objects in the old
>> system, instead of being built as shared libs.
>>
>> We could certainly rename these libs to use better names :-)
>>
>>  > Also, the pkgconfig files don't have the right filenames (no -samba4 suffix).
>>  > [bradh-dev at repens lib]$ cat pkgconfig/dcerpc.pc 
>>  > prefix=${prefix}
>>  > exec_prefix=${prefix}
>>  > libdir=${prefix}/lib
>>  > includedir=${prefix}/include
>>  > 
>>  > Name: dcerpc
>>  > Description: DCE/RPC client library
>>  > Requires: ndr
>>  > Version: 0.0.1
>>  > Libs: -L${libdir} -ldcerpc 
>>  > Cflags: -I${includedir} -DHAVE_IMMEDIATE_STRUCTURES=1
>>  > 
>>  > So that isn't going to work for openchange.
>>
>> The reason this happens is that it is using library bundling, and the
>> build system is trying to avoid possible conflicts with installed
>> system libraries. So the pkgconfig and library names are actually as
>> they are supposed to be.
>>
>> For libs like libtdb.so, this bundling avoids problems with a
>> user-installed tdb library conflicting with a system installed tdb
>> library. 
>>
>> I suggest you have a read of this:
>>
>>   http://wiki.samba.org/index.php/Waf#working_with_libraries
>>
>> which should explain how the library handling works with the waf build.
>>
>> There are a few ways we could make this work for openchange:
>>
>>  1) you could use the --bundled-libraries configure option to force
>>  Samba4 so not use the bundled library extension for the libraries you
>>  need
>>
>>  2) we could mark some of these libraries as not needing
>>  bundling. This means we'd be saying that they will not be packaged
>>  separately
>>
>>  3) we could add a configure option to put the bundled library name in
>>  the pkgconfig file.
>>
>> Probably (1) is the simplest for your builds. See the web page above
>> for more information on this. You may also like to use
>> --builtin-libraries to force some of the libraries to be rolled into
>> the other libs (as per the old build system).
> 
> I think 2) is the correct thing to do for non standalone libraries,
> which need to be exposed as public libraries. (all libraries which
> provide a .pc file).

3) would be also ok...

metze


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20100425/61297f7f/attachment.pgp>


More information about the samba-technical mailing list