tdb-1.2.7 (recently added to the tree) makes it impossible to build samba-3.5.6: # USE="acl ads aio avahi caps client cups doc fam ldap netapi pam readline server smbclient swat winbind" MAKEOPTS="-j1" emerge samba [...] Compiling lib/tdb_validate.c In file included from lib/tdb_validate.h:26:0, from lib/tdb_validate.c:22: /usr/include/tdb.h:94:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’ /usr/include/tdb.h:96:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’ /usr/include/tdb.h:100:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/tdb.h:102:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:103:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:104:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/tdb.h:105:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘enum’ /usr/include/tdb.h:106:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘const’ /usr/include/tdb.h:107:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘TDB_DATA’ /usr/include/tdb.h:108:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:112:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:113:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:114:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:115:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:116:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘TDB_DATA’ /usr/include/tdb.h:117:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘TDB_DATA’ /usr/include/tdb.h:118:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:119:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:120:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:121:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:122:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:123:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:124:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:125:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:126:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:127:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:128:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:129:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘const’ /usr/include/tdb.h:130:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:131:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘tdb_log_func’ /usr/include/tdb.h:132:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/tdb.h:133:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:134:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:135:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:136:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:137:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:138:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:139:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:140:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘size_t’ /usr/include/tdb.h:141:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:142:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/tdb.h:143:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/tdb.h:144:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/tdb.h:145:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/tdb.h:146:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘unsigned’ /usr/include/tdb.h:147:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:152:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:153:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:154:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:155:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:156:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:157:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:158:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:160:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/tdb.h:163:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:164:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:167:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ /usr/include/tdb.h:168:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:169:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:170:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’ /usr/include/tdb.h:172:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’ lib/tdb_validate.c: In function ‘tdb_validate_child’: lib/tdb_validate.c:65:2: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’ lib/tdb_validate.c:78:2: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’ lib/tdb_validate.c: In function ‘tdb_validate’: lib/tdb_validate.c:110:2: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’ lib/tdb_validate.c:176:2: warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘int’ lib/tdb_validate.c: In function ‘traverse_copy_fn’: lib/tdb_validate.c:224:3: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’ The following command failed: x86_64-pc-linux-gnu-gcc -march=native -O2 -pipe -I. -I/var/tmp/portage/net-fs/samba-3.5.6/work/samba-3.5.6/source3 -Iinclude -I./include -I. -I. -I./../lib/replace -I./../lib/tevent -I./libaddns -I./librpc -I./.. -DHAVE_CONFIG_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -Iinclude -I./include -I. -I. -I./../lib/replace -I./../lib/tevent -I./libaddns -I./librpc -I./.. -I./../lib/popt -DLDAP_DEPRECATED -I/var/tmp/portage/net-fs/samba-3.5.6/work/samba-3.5.6/source3/lib -I.. -I../source4 -D_SAMBA_BUILD_=3 -D_SAMBA_BUILD_=3 -fPIC -c lib/tdb_validate.c -o lib/tdb_validate.o make: *** [lib/tdb_validate.o] Error 1 emake failed * ERROR: net-fs/samba-3.5.6 failed: * emake sbinprogs failed Note that with tdb-1.2.1-r1, samba-3.5.6 compiles with no problems.
Created attachment 258959 [details] complete build log
Ah, yes. Seems whoever did the release upstream had a bad day. http://gitweb.samba.org/?p=samba.git;a=commitdiff;h=62c4af99428abb2d4ac1b18454d72e0c8cbb67e8 partially fixes it, but as they were in process of switching to waf, they've still failed to define _PUBLIC_ for autotools build.
Actually, it seems that after that patch, correct solution would be 'append-flags -U_PUBLIC_'
...or rather -D_PUBLIC_
(In reply to comment #4) > ...or rather -D_PUBLIC_ -D_PUBLIC_=
This was a messy release, it seems like the next ebuild will need to use waf... Thanks for the patch. +*tdb-1.2.7-r1 (18 Jan 2011) + + 18 Jan 2011; Víctor Ostorga <vostorga@gentoo.org> -tdb-1.2.7.ebuild, + +tdb-1.2.7-r1.ebuild: + Set _PUBLIC_ in C file rather than header files bug #350720 patch thanks + to Rafał Mużyło <galtgendo@o2.pl>
Next release won't have a choice - upstream has been removing autotools from the whole samba in favor of waf.
LOL After I wrote comment 7, I took a look at http://samba.org/ftp/tdb/ - there's 1.2.9 and it's waf-only.