[patch] problems building / installing samba4 (for openchange)

Brad Hards bradh at frogmouth.net
Sat Jul 3 05:25:24 MDT 2010


Hi,

I'm trying to update openchange to use current samba4 (with waf build).

openchange uses both samba and some of the supporting libraries (e.g. talloc, ldb, libdcerpc). 
We have a script to do this:
http://trac.openchange.org/browser/branches/current-samba4/script/installsamba4.sh

Essentially the script checks out the samba tree (from git), builds talloc, tdb, tevent, ldb,
builds samba and installs samba. 

I frequently have problems with this process, mostly about missing include files. Today, ldb.h
was missing. This patch addresses that issue.

diff --git a/source4/dsdb/samdb/ldb_modules/wscript_build b/source4/dsdb/samdb/ldb_modules/wscript_build
index 577d495..e8ce78e 100644
--- a/source4/dsdb/samdb/ldb_modules/wscript_build
+++ b/source4/dsdb/samdb/ldb_modules/wscript_build
@@ -339,5 +339,5 @@ bld.SAMBA_MODULE('ldb_lazy_commit',
        subsystem='ldb',
        internal_module=not bld.CONFIG_SET('USING_SYSTEM_LDB'),
        init_function='LDB_MODULE(lazy_commit)',
-       deps='SAMDB'
+       deps='SAMDB ldb'
        )
diff --git a/source4/lib/ldb-samba/wscript_build b/source4/lib/ldb-samba/wscript_build
index a58316e..2b606bd 100644
--- a/source4/lib/ldb-samba/wscript_build
+++ b/source4/lib/ldb-samba/wscript_build
@@ -14,5 +14,5 @@ bld.SAMBA_SUBSYSTEM('LDBSAMBA',
 
 
 bld.SAMBA_PYTHON('python_samba__ldb', 'pyldb.c',
-                                deps='LDBSAMBA pyparam_util',
+                                deps='LDBSAMBA pyparam_util ldb',
                                 realname='samba/_ldb.so')
diff --git a/source4/lib/ldb/wscript b/source4/lib/ldb/wscript
index 9de9a5b..10e1ba0 100644
--- a/source4/lib/ldb/wscript
+++ b/source4/lib/ldb/wscript
@@ -199,11 +199,11 @@ def build(bld):
 
     LDB_TOOLS='ldbadd ldbsearch ldbdel ldbmodify ldbedit ldbrename'
     for t in LDB_TOOLS.split():
-        bld.SAMBA_BINARY(t, 'tools/%s.c' % t, deps='LIBLDB_CMDLINE',
+        bld.SAMBA_BINARY(t, 'tools/%s.c' % t, deps='LIBLDB_CMDLINE ldb',
                          manpages='man/%s.1' % t)
 
     # ldbtest doesn't get installed
-    bld.SAMBA_BINARY('ldbtest', 'tools/ldbtest.c', deps='LIBLDB_CMDLINE',
+    bld.SAMBA_BINARY('ldbtest', 'tools/ldbtest.c', deps='LIBLDB_CMDLINE ldb',
                      install=False)
 
 
diff --git a/source4/torture/wscript_build b/source4/torture/wscript_build
index 05b47e4..3d2579c 100644
--- a/source4/torture/wscript_build
+++ b/source4/torture/wscript_build
@@ -102,7 +102,7 @@ bld.SAMBA_MODULE('TORTURE_UNIX',
 bld.SAMBA_MODULE('TORTURE_LDAP',
        source='ldap/common.c ldap/basic.c ldap/schema.c ldap/uptodatevector.c ldap/cldap.c ldap/cldapbench.c ldap/ldap_sort.c 
ldap/nested_search.c',
        subsystem='smbtorture',
-       deps='LIBCLI_LDAP LIBCLI_CLDAP SAMDB POPT_CREDENTIALS torture LDBSAMBA',
+       deps='LIBCLI_LDAP LIBCLI_CLDAP SAMDB POPT_CREDENTIALS torture LDBSAMBA ldb',
        internal_module=True,
        autoproto='ldap/proto.h',
        init_function='torture_ldap_init'
diff --git a/source4/utils/net/wscript_build b/source4/utils/net/wscript_build
index 07aa8f7..c929ce8 100644
--- a/source4/utils/net/wscript_build
+++ b/source4/utils/net/wscript_build
@@ -12,7 +12,7 @@ bld.SAMBA_MODULE('net_drs',
 bld.SAMBA_BINARY('net',
        source='net.c net_password.c net_join.c net_vampire.c net_gpo.c',
        autoproto='net_proto.h',
-       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBSAMBA-NET popt POPT_SAMBA POPT_CREDENTIALS net_drs policy',
+       deps='LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL LIBSAMBA-NET popt POPT_SAMBA POPT_CREDENTIALS net_drs policy auth',
         needs_python=True
        )
 
diff --git a/source4/utils/wscript_build b/source4/utils/wscript_build
index a0b3ac5..32a23da 100644
--- a/source4/utils/wscript_build
+++ b/source4/utils/wscript_build
@@ -11,6 +11,6 @@ bld.SAMBA_BINARY('ntlm_auth',
 bld.SAMBA_BINARY('oLschema2ldif',
        source='oLschema2ldif.c',
        manpages='man/oLschema2ldif.1',
-       deps='LIBLDB_CMDLINE SAMDB'
+       deps='LIBLDB_CMDLINE SAMDB ldb'
        )
 

However that only makes samba build, not install.

The install step fails with this:
[1797/2072] Linking default/source4/lib/ldb/libildap.inst.so
gcc: no input files
Waf: Leaving directory `/home/bradh-dev/openchange/branches/current-samba4/samba4/source4/bin'
Build failed:  -> task failed (err #1): 
        {task: cc_link  -> libildap.inst.so}                                                                      
gmake: *** [install] Error 1
Error in Step1 (error code 2)


When I run it manually, I get 
[bradh-dev at repens source4]$ sudo WAF=WAF_MAKE=1 ../buildtools/bin/waf -vv install
....
[1797/2072] Linking default/source4/lib/ldb/libildap.inst.so
[1800/2072] Linking default/source4/dsdb/samdb/ldb_modules/libsamba_dsdb.inst.so
21:23:57 runner /usr/lib64/ccache/gcc -o /home/bradh-dev/openchange/branches/current-
samba4/samba4/source4/bin/default/source4/dsdb/samdb/ldb_modules/libsamba_dsdb.inst.so -shared
[1801/2072] Linking default/source4/dsdb/samdb/ldb_modules/libsamba_secrets.inst.so
[1802/2072] Linking default/source4/dsdb/samdb/ldb_modules/libobjectguid.inst.so
21:23:57 runner /usr/lib64/ccache/gcc -o /home/bradh-dev/openchange/branches/current-
samba4/samba4/source4/bin/default/source4/lib/ldb/libildap.inst.so -shared
21:23:57 runner /usr/lib64/ccache/gcc -o /home/bradh-dev/openchange/branches/current-
samba4/samba4/source4/bin/default/source4/dsdb/samdb/ldb_modules/libsamba_secrets.inst.so -shared
gcc: no input files
21:23:57 runner /usr/lib64/ccache/gcc -o /home/bradh-dev/openchange/branches/current-
samba4/samba4/source4/bin/default/source4/dsdb/samdb/ldb_modules/libobjectguid.inst.so -shared
gcc: no input files
gcc: no input files
gcc: no input files
Waf: Leaving directory `/home/bradh-dev/openchange/branches/current-samba4/samba4/source4/bin'
Build failed:
 -> task failed (err #1):                                                                                         
        {task: cc_link  -> libsamba_dsdb.inst.so}                                                                 
 -> task failed (err #1):                                                                                         
        {task: cc_link  -> libildap.inst.so}                                                                      
 -> task failed (err #1):                                                                                         
        {task: cc_link  -> libsamba_secrets.inst.so}                                                              
 -> task failed (err #1):                                                                                         
        {task: cc_link  -> libobjectguid.inst.so}                                                                 
  File "../buildtools/bin/waf", line 158, in <module>
        Scripting.prepare(t, cwd, VERSION, wafdir)                                                                
  File "/home/bradh-dev/openchange/branches/current-
samba4/samba4/buildtools/bin/.waf-1.5.17-164170d221747ffbb50f4a8b9ccc2b2a/wafadmin/Scripting.py", line 107, in prepare                                                          
        error(str(e))   

1. If the deps changes are OK, can they please be applied?
2. Any suggestions on what the problem with the install process could be?

Brad


More information about the samba-technical mailing list