Samba 4: Failed build on Ubuntu 12.04

Alexander Bokovoy ab at samba.org
Mon Sep 10 04:22:40 MDT 2012


On Mon, Sep 10, 2012 at 12:35 PM, Andrew Bartlett <abartlet at samba.org> wrote:
> On Mon, 2012-09-10 at 12:28 +0300, Alexander Bokovoy wrote:
>> On Mon, Sep 10, 2012 at 12:12 AM, steve <steve at steve-ss.com> wrote:
>> > On 09/09/2012 09:41 PM, Alexander Bokovoy wrote:
>> >>
>> >> On Sun, Sep 9, 2012 at 8:54 PM, steve <steve at steve-ss.com> wrote:
>> >>>
>> >>> Please: What is ABI? This box has been building fine until the latest
>> >>> git:
>> >>>
>> >>> [3719/3954] abi_check: bin/default/source3/libpdb.so
>> >>> libpdb.so: symbol pdb_nds_get_password has been removed - please update
>> >>> major version
>> >>>      signature: int (struct smbldap_state *, char *, size_t *, char *)
>> >>> libpdb.so: symbol priv2ld has been removed - please update major version
>> >>>      signature: LDAP *(struct ldapsam_privates *)
>> >>> libpdb.so: symbol get_userattr_list has been removed - please update
>> >>> major
>> >>> version
>> >>>      signature: const char **(TALLOC_CTX *, int)
>> >>> libpdb.so: symbol smbldap_search_domain_info has been removed - please
>> >>> update major version
>> >>>      signature: NTSTATUS (struct smbldap_state *, LDAPMessage **, const
>> >>> char
>> >>> *, bool)
>> >>> libpdb.so: symbol ldapsam_search_suffix_by_name has been removed - please
>> >>> update major version
>> >>>      signature: int (struct ldapsam_privates *, const char *, LDAPMessage
>> >>> **,
>> >>> const char **)
>> >>> libpdb.so: symbol pdb_ipa_init has been removed - please update major
>> >>> version
>> >>>      signature: NTSTATUS (void)
>> >>> libpdb.so: symbol pdb_nds_set_password has been removed - please update
>> >>> major version
>> >>>      signature: int (struct smbldap_state *, char *, const char *)
>> >>> libpdb.so: symbol pdb_nds_init has been removed - please update major
>> >>> version
>> >>>      signature: NTSTATUS (void)
>> >>> libpdb.so: symbol groupmap_attr_list has changed - please update major
>> >>> version
>> >>>      old_signature: 0xXXXX
>> >>>      new_signature: {attrib = 3, name = 0xXXXX "gidNumber"}, {attrib =
>> >>> 30,
>> >>> name = 0xXXXX "sambaSID"}, {attrib = 31, name = 0xXXXX "sambaGroupType"},
>> >>> {attrib = 40, name = 0xXXXX "sambaSIDList"}, {attrib = 16, name = 0xXXXX
>> >>> "description"}, {attrib = 12, name = 0xXXXX "displayName"}, {attrib = 11,
>> >>> name = 0xXXXX "cn"}, {attrib = 24, name = 0xXXXX "objectClass"}, {attrib
>> >>> =
>> >>> 0, name = 0xXXXX}
>> >>> libpdb.so: symbol pdb_init_ldapsam has been removed - please update major
>> >>> version
>> >>>      signature: NTSTATUS (struct pdb_methods **, const char *)
>> >>> libpdb.so: symbol groupmap_attr_list_to_delete has changed - please
>> >>> update
>> >>> major version
>> >>>      old_signature: 0xXXXX
>> >>>      new_signature: {attrib = 30, name = 0xXXXX "sambaSID"}, {attrib =
>> >>> 31,
>> >>> name = 0xXXXX "sambaGroupType"}, {attrib = 16, name = 0xXXXX
>> >>> "description"},
>> >>> {attrib = 12, name = 0xXXXX "displayName"}, {attrib = 40, name = 0xXXXX
>> >>> "sambaSIDList"}, {attrib = 0, name = 0xXXXX}
>> >>> Waf: Leaving directory `/home/steve/samba-master/bin'
>> >>> Build failed: ABI for libpdb.so has changed - please fix library version
>> >>> then build with --abi-update
>> >>> See http://wiki.samba.org/index.php/Waf#ABI_Checking for more information
>> >>> If you have not changed any ABI, and your platform always gives this
>> >>> error,
>> >>> please configure with --abi-check-disable to skip this check
>> >>>
>> >>> I have not changed ABI. I have no idea what it is. I am an end user. Do I
>> >>> try ./configure.developer --abi-check-disable? If so what am I missing?
>> >>
>> >> There are few symbols which are pulled into libpdb because of other
>> >> subsystems are included as part of module dependencies. Your
>> >> configuration seem not to build them. You can use --abi-check-disable
>> >> right now but I'll track down what exactly triggers these and update
>> >> the definitions so that irrelevant symbols are not leaking through.
>> >> There were few I've masked already.
>> >>
>> >> ABI check is good in general, we need to work on cleaning up libpdb
>> >> like I did with libsmbldap last week.
>> >>
>> > Hi
>> > Can confirm that with:
>> >
>> > --abi-check-disable
>> > now builds on Ubuntu 12.04.
>> >
>> > Can you tell me when you have the patch and I'd gladly test it. The problem
>> > is that it comes right near the end of make and on a slow box with only 384
>> > RAM that's near on an hour.
>> >
>> > BTW builds out of the box on openSUSE so may be something Debian/Ubuntu
>> > specific.
>> Not sure how specific it is, I just tried the
>>
>> ./configure --abi-check --enable-debug
>>
>> build (no additional options) on up to date Ubuntu 12.04 LTS and had
>> no issues whatsoever.  All ABI checks went fine.
>
> Just excluding pdb_nds_* should be enough to fix it (none of the other
> modules seem to be written as multiple compilation units with a pdb_
> prefix).  It would happen when the ldap backends are included and
> static, rather than real modules.
Yep.

Attached is the patch that works for me. I decided to generate version
script with these symbols always filtered out as it does not hurt but
simplifies logic. No vnum change on pdb because we have not yet
released a version with versioned pdb.
-- 
/ Alexander Bokovoy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pdb-ignore-nds-symbols.patch
Type: application/octet-stream
Size: 2833 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20120910/bc51904b/attachment.obj>


More information about the samba-technical mailing list