s3:waf: Make PARAM and SMBREGISTRY a subsystem of smbconf only
authorAndreas Schneider <asn@samba.org>
Tue, 22 Nov 2016 12:47:32 +0000 (13:47 +0100)
committerMichael Adam <obnox@samba.org>
Sun, 4 Dec 2016 15:35:22 +0000 (16:35 +0100)
This is the only way to resolve cirular dependencies with these
libraries.  I've tried several ways but this is the only way to do it
correctly. In future we should try to seperate them by passing down
information or making a more lightweight loadparm mechanism.

+---------+                       +-------------+
|         |                       |             |
|  param  <---------+    +--------+ smbregistry |
|         |         |    |        |             |
+----+----+         |    |        +------^------+
     |          +---+----v--+            |
     |          |           |            |
     +---------->  smbconf  +------------+
                |           |
                +-----------+

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
examples/fuse/wscript_build
source3/libsmb/wscript
source3/nmbd/wscript_build
source3/param/wscript_build
source3/rpcclient/wscript_build
source3/smbd/notifyd/wscript_build
source3/utils/wscript_build
source3/winbindd/wscript_build
source3/wscript_build

index aa32ecb1cc0c96cf2cbeefc8a63e19bda26e4640..9ec5fc0a0f2e8929637d2757b217fe4e32d5399b 100644 (file)
@@ -3,5 +3,5 @@
 if bld.env.HAVE_FUSE:
     bld.SAMBA_BINARY('smb2mount',
                      source='smb2mount.c clifuse.c',
-                     deps='param popt_samba3 libsmb fuse',
+                     deps='smbconf popt_samba3 libsmb fuse',
                      install=False)
index 4f8b217167375ad9a15cf1693a438f8d3d5a2a2a..6d862f71998738752e05c18e4d0337be28ecc970 100644 (file)
@@ -19,7 +19,7 @@ def build(bld):
                               libsmb_setget.c''',
                        public_deps='''
                                    talloc
-                                   param
+                                   smbconf
                                    libsmb
                                    KRBCLIENT
                                    msrpc3
index 0d1b267fcfd1f9ab6b80e3a1a2a00519353bc523..843c900a4bafb25d43480a28e06f4a0797c2b068 100644 (file)
@@ -33,7 +33,7 @@ bld.SAMBA3_BINARY('nmbd',
                  deps='''
                  talloc
                  tevent
-                 param
+                 smbconf
                  libsmb
                  popt_samba3
                  ''',
index 6c440f1c7c7bc604e0ad6b002267330afe50f7a7..c60e917dba0ab8f796504af0df8c662c30070f24 100644 (file)
@@ -6,7 +6,7 @@ bld.SAMBA3_SUBSYSTEM('PARAM_UTIL',
 
 bld.SAMBA3_SUBSYSTEM('LOADPARM_CTX',
                      source='loadparm_ctx.c',
-                     deps='''talloc param''')
+                     deps='''talloc smbconf''')
 
 bld.SAMBA_GENERATOR('s3_param_proto_h',
                     source= '../../script/generate_param.py ../../docs-xml/smbdotconf/parameters.all.xml',
@@ -16,18 +16,18 @@ bld.SAMBA_GENERATOR('s3_param_proto_h',
 
 bld.SAMBA3_PYTHON('pys3param',
                   source='pyparam.c',
-                  deps='param',
+                  deps='smbconf',
                   public_deps='samba-hostconfig pytalloc-util talloc',
                   realname='samba/samba3/param.so')
 
 bld.SAMBA3_SUBSYSTEM('param_service',
                      source='service.c',
-                     deps = 'USER_UTIL param PRINTING')
+                     deps = 'USER_UTIL smbconf PRINTING')
 
 bld.SAMBA3_BINARY('test_lp_load',
                  source='test_lp_load.c',
                  deps='''
                  talloc
-                 param
+                 smbconf
                  popt_samba3''',
                  install=False)
index 7f13c108cd76993cefdcb111f4c9899ca0056abc..c24a5670db93a8541d5a656fc3176c8b11c647cc 100644 (file)
@@ -28,7 +28,7 @@ bld.SAMBA3_BINARY('rpcclient',
                  popt_samba3
                  pdb
                  libsmb
-                 param
+                 smbconf
                  ndr-standard
                  msrpc3
                  SMBREADLINE
index d9976bd521c7ae3852785697c37e80a1e391eba8..55cfd8837c4637c8d579bbe023d281cc11c7c82a 100644 (file)
@@ -8,12 +8,12 @@ bld.SAMBA3_BINARY('notifyd-tests',
                   source='tests.c',
                   install=False,
                   deps='''
-                    param
+                       smbconf
                   ''')
 
 bld.SAMBA3_BINARY('notifydd',
                   source='notifydd.c',
                   install=False,
                   deps='''notifyd
-                    param
+                       smbconf
                   ''')
index bf9479288c9242cb09f675a172655b60c428acdf..0b9356a79804662a503e042d41048b022dfc0169 100644 (file)
@@ -9,14 +9,14 @@ bld.SAMBA3_BINARY('profiles',
                  deps='''
                  talloc
                  popt_samba3
-                 param
+                 smbconf
                  REGFIO''')
 
 bld.SAMBA3_BINARY('smbcontrol',
                  source='smbcontrol.c',
                  deps='''
                  talloc
-                 param
+                 smbconf
                  popt_samba3
                  PRINTBASE''')
 
@@ -24,7 +24,7 @@ bld.SAMBA3_BINARY('smbtree',
                  source='smbtree.c',
                  deps='''
                  talloc
-                 param
+                 smbconf
                  libsmb
                  msrpc3
                  popt_samba3
@@ -34,7 +34,7 @@ bld.SAMBA3_BINARY('smbpasswd',
                  source='smbpasswd.c',
                  deps='''
                  talloc
-                 param
+                 smbconf
                  pdb
                  PASSWD_UTIL
                  PASSCHANGE''')
@@ -43,7 +43,7 @@ bld.SAMBA3_BINARY('pdbedit',
                  source='pdbedit.c',
                  deps='''
                  talloc
-                 param
+                 smbconf
                  popt_samba3
                  pdb
                  PASSWD_UTIL''')
@@ -59,7 +59,7 @@ bld.SAMBA3_BINARY('nmblookup',
                  source='nmblookup.c',
                  deps='''
                  talloc
-                 param
+                 smbconf
                  popt_samba3
                  LIBNMB''')
 
@@ -85,7 +85,7 @@ bld.SAMBA3_BINARY('eventlogadm',
                  source='eventlogadm.c',
                  deps='''
                  talloc
-                 param
+                 smbconf
                  LIBEVENTLOG''')
 
 bld.SAMBA3_BINARY('sharesec',
@@ -110,7 +110,7 @@ bld.SAMBA3_BINARY('smbfilter',
                  source='smbfilter.c',
                  deps='''
                  talloc
-                 param
+                 smbconf
                  LIBNMB''',
                  install=False)
 
@@ -149,14 +149,14 @@ bld.SAMBA3_BINARY('samba-regedit',
                             regedit_wrap.c regedit_treeview.c
                             regedit_valuelist.c regedit_dialog.c
                             regedit_hexedit.c regedit_list.c""",
-                  deps='ncurses menu panel form registry param popt_samba3 smbregistry',
+                  deps='ncurses menu panel form registry smbconf popt_samba3',
                   enabled=bld.env.build_regedit)
 
 bld.SAMBA3_BINARY('testparm',
                  source='testparm.c',
                  deps='''
                  talloc
-                 param
+                 smbconf
                  popt_samba3''')
 
 bld.SAMBA3_BINARY('net',
@@ -218,7 +218,7 @@ bld.SAMBA3_BINARY('net',
                  popt_samba3
                  pdb
                  libsmb
-                 param
+                 smbconf
                  KRBCLIENT
                  ndr-standard
                  msrpc3
index 47c9bb1a142687511d7af25b734b8719d25cff5e..3f780930c6eca4381d8367b135da1ac3ab46fa5b 100644 (file)
@@ -116,7 +116,7 @@ bld.SAMBA3_MODULE('idmap_autorid',
 
 bld.SAMBA3_LIBRARY('nss_info',
                    source='nss_info.c',
-                   deps='samba-util param',
+                   deps='samba-util smbconf',
                    private_library=True)
 
 bld.SAMBA3_MODULE('nss_info_template',
index 6fa3ce6944a7da15e1b81795fbac1425fdbcc3ec..2ecf8a73e06e81de946dd22089714225a44a058a 100755 (executable)
@@ -57,7 +57,7 @@ bld.SAMBA3_LIBRARY('netapi',
 
 bld.SAMBA3_LIBRARY('gse',
                    source='librpc/crypto/gse_krb5.c librpc/crypto/gse.c',
-                   deps='krb5samba gensec param KRBCLIENT secrets3',
+                   deps='krb5samba gensec smbconf KRBCLIENT secrets3',
                    private_library=True)
 
 bld.SAMBA3_LIBRARY('msrpc3',
@@ -213,26 +213,6 @@ bld.SAMBA3_SUBSYSTEM('SERVER_MUTEX',
                      source='lib/server_mutex.c',
                      deps='talloc')
 
-bld.SAMBA3_SUBSYSTEM('param',
-                   source='''
-                          param/loadparm.c
-                          lib/sharesec.c
-                          lib/ldap_debug_handler.c
-                          lib/util_names.c
-                          ''',
-                   deps='''
-                        samba-util
-                        PARAM_UTIL
-                        ldap
-                        lber
-                        LOADPARM_CTX
-                        samba3core
-                        smbconf
-                        param_local.h
-                        param_global.h
-                        cups
-                        ''')
-
 # this includes only the low level parse code, not stuff
 # that requires knowledge of security contexts
 bld.SAMBA3_SUBSYSTEM('REG_PARSE_PRS',
@@ -246,7 +226,8 @@ bld.SAMBA3_SUBSYSTEM('REG_API_REGF',
                     source='registry/reg_api_regf.c',
                     deps='samba-util')
 
-bld.SAMBA3_LIBRARY('smbregistry',
+# Do not link against this use 'smbconf'
+bld.SAMBA3_SUBSYSTEM('SMBREGISTRY',
                    source='''
                           registry/reg_api.c
                           registry/reg_dispatcher.c
@@ -272,10 +253,9 @@ bld.SAMBA3_LIBRARY('smbregistry',
                         errors3
                         dbwrap
                         samba3-util
-                        ''',
-                   allow_undefined_symbols=True,
-                   private_library=True)
+                        ''')
 
+# Do not link against this use 'smbconf'
 bld.SAMBA3_SUBSYSTEM('REG_SMBCONF',
                     source='''
                            registry/reg_backend_smbconf.c
@@ -283,7 +263,7 @@ bld.SAMBA3_SUBSYSTEM('REG_SMBCONF',
                            registry/reg_util_token.c
                            registry/reg_api_util.c
                            ''',
-                    deps='smbregistry')
+                    deps='SMBREGISTRY')
 
 bld.SAMBA3_SUBSYSTEM('REG_FULL',
                     source='''
@@ -298,7 +278,7 @@ bld.SAMBA3_SUBSYSTEM('REG_FULL',
                            registry/reg_init_full.c
                            registry/reg_perfcount.c''',
                     deps='''
-                         REG_SMBCONF
+                         smbconf
                          tdb-wrap3
                          ''')
 
@@ -451,7 +431,7 @@ bld.SAMBA3_SUBSYSTEM('samba3core',
                         SAMBA_VERSION
                         PTHREADPOOL
                         interfaces
-                        param
+                        smbconf
                         dbwrap
                         samba3-util
                         errors3
@@ -529,7 +509,7 @@ bld.SAMBA3_LIBRARY('secrets3',
                           ''',
                    deps='''
                         NDR_SECRETS
-                        param
+                        smbconf
                         samba3util
                         dbwrap
                         ''',
@@ -537,7 +517,7 @@ bld.SAMBA3_LIBRARY('secrets3',
 
 bld.SAMBA3_LIBRARY('smbldap',
                     source='lib/smbldap.c',
-                    deps='ldap lber samba-util param',
+                    deps='ldap lber samba-util smbconf',
                     enabled=bld.CONFIG_SET("HAVE_LDAP"),
                     private_library=False,
                     abi_directory='lib/ABI',
@@ -568,7 +548,7 @@ bld.SAMBA3_LIBRARY('ads',
                         ldap
                         lber
                         KRBCLIENT
-                        param
+                        smbconf
                         LIBNMB
                         libsmb
                         DCUTIL
@@ -584,6 +564,27 @@ bld.SAMBA3_SUBSYSTEM('LIBADS_PRINTER',
                     source='libads/ldap_printer.c',
                     deps='samba-util krb5samba')
 
+# Only smbconf should link against this subsystem, else we will create
+# a circular dependency.
+bld.SAMBA3_SUBSYSTEM('SMBCONF_PARAM',
+                   source='''
+                          param/loadparm.c
+                          lib/sharesec.c
+                          lib/ldap_debug_handler.c
+                          lib/util_names.c
+                          ''',
+                   deps='''
+                        samba-util
+                        PARAM_UTIL
+                        ldap
+                        lber
+                        LOADPARM_CTX
+                        samba3core
+                        param_local.h
+                        param_global.h
+                        cups
+                        ''')
+
 bld.SAMBA3_LIBRARY('smbconf',
                    source='''
                           lib/smbconf/smbconf_init.c
@@ -598,9 +599,8 @@ bld.SAMBA3_LIBRARY('smbconf',
                         charset
                         cli_smb_common
                         errors3
-                        param
+                        SMBCONF_PARAM
                         samba-util
-                        smbregistry
                         talloc
                         util_reg
                         ''',
@@ -826,7 +826,7 @@ bld.SAMBA3_LIBRARY('printing_migrate',
                          cli_spoolss
                          RPC_NDR_WINREG
                          LIBCLI_WINREG
-                         param
+                         smbconf
                          ''',
                     private_library=True)
 
@@ -1037,7 +1037,7 @@ bld.SAMBA3_LIBRARY('libcli_netlogon3',
                         RPC_NDR_NETLOGON
                         INIT_NETLOGON
                         cliauth
-                        param
+                        smbconf
                         NETLOGON_CREDS_CLI''',
                    private_library=True)
 
@@ -1048,7 +1048,7 @@ bld.SAMBA3_LIBRARY('cli_spoolss',
                           ''',
                    deps='''
                         RPC_NDR_SPOOLSS
-                        param
+                        smbconf
                         secrets3''',
                    private_library=True)
 
@@ -1116,7 +1116,7 @@ bld.SAMBA3_BINARY('client/smbclient',
                  deps='''
                       talloc
                       popt_samba3
-                      param
+                      smbconf
                       ndr-standard
                       SMBREADLINE
                       libsmb
@@ -1131,7 +1131,7 @@ bld.SAMBA3_BINARY('smbspool',
                  deps='''
                       talloc
                       popt_samba3
-                      param
+                      smbconf
                       libsmb
                       samba3core
                       ''')
@@ -1149,7 +1149,7 @@ bld.SAMBA3_BINARY('locktest2',
                  source='torture/locktest2.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       libsmb
                       LOCKING
                       ''',
@@ -1166,7 +1166,7 @@ bld.SAMBA3_BINARY('smbstatus',
                  source=smbstatus_source,
                  deps='''
                       talloc
-                      param
+                      smbconf
                       popt_samba3
                       smbd_base
                       LOCKING
@@ -1209,7 +1209,7 @@ bld.SAMBA3_BINARY('smbtorture' + bld.env.suffix3,
                         ''',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       libsmb
                       msrpc3
                       TLDAP
@@ -1228,7 +1228,7 @@ bld.SAMBA3_BINARY('smbconftort',
                  source='lib/smbconf/testsuite.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       popt_samba3
                       ''',
                  install=False)
@@ -1242,7 +1242,7 @@ bld.SAMBA3_BINARY('msgtest',
                  source='torture/msgtest.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       ''',
                  install=False)
 
@@ -1250,7 +1250,7 @@ bld.SAMBA3_BINARY('msg_sink',
                  source='torture/msg_sink.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       ''',
                  install=False)
 
@@ -1258,7 +1258,7 @@ bld.SAMBA3_BINARY('msg_source',
                  source='torture/msg_source.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       ''',
                  install=False)
 
@@ -1282,6 +1282,7 @@ bld.SAMBA3_BINARY('vfstest',
                  deps='''
                       vfs
                       popt_samba3
+                      smbconf
                       SMBREADLINE
                       ''',
                  install=False)
@@ -1290,7 +1291,7 @@ bld.SAMBA3_BINARY('versiontest',
                  source='lib/version_test.c',
                  deps='''
                       SAMBA_VERSION
-                      param
+                      smbconf
                       ''',
                  install=False)
 
@@ -1310,7 +1311,7 @@ bld.SAMBA3_BINARY('vlp',
                  source='printing/tests/vlp.c',
                  deps='''
                       talloc
-                      param
+                      smbconf
                       ''',
                  install=False)