Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-trivial
authorJelmer Vernooij <jelmer@samba.org>
Fri, 25 Jan 2008 10:50:00 +0000 (11:50 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Fri, 25 Jan 2008 10:50:00 +0000 (11:50 +0100)
Conflicts:

source/scripting/python/samba/provision.py

source/configure.ac
source/dsdb/samdb/ldb_modules/repl_meta_data.c
source/pidl/lib/Parse/Pidl/Samba4/Header.pm
source/scripting/python/samba/provision.py

index 23fc1023ad4953935672c9d5830f4d1642e4e641..ed74bc1251ffa70d553c32593f1ef194c05470d7 100644 (file)
@@ -27,20 +27,20 @@ m4_include(lib/charset/config.m4)
 m4_include(lib/socket/config.m4)
 m4_include(nsswitch/nsstest.m4)
 
-AC_OUTPUT(lib/registry/registry.pc)
-AC_OUTPUT(librpc/dcerpc.pc)
-AC_OUTPUT(librpc/ndr.pc)
-AC_OUTPUT(torture/torture.pc)
-AC_OUTPUT(auth/gensec/gensec.pc)
-AC_OUTPUT(param/samba-config.pc)
-AC_OUTPUT(librpc/dcerpc_samr.pc)
+AC_CONFIG_FILES(lib/registry/registry.pc)
+AC_CONFIG_FILES(librpc/dcerpc.pc)
+AC_CONFIG_FILES(librpc/ndr.pc)
+AC_CONFIG_FILES(torture/torture.pc)
+AC_CONFIG_FILES(auth/gensec/gensec.pc)
+AC_CONFIG_FILES(param/samba-config.pc)
+AC_CONFIG_FILES(librpc/dcerpc_samr.pc)
 
 SMB_EXT_LIB_FROM_PKGCONFIG(LIBTALLOC, talloc >= 1.1.0,
        [],
        [
                m4_include(lib/talloc/libtalloc.m4)
                SMB_INCLUDE_MK(lib/talloc/config.mk)
-               AC_OUTPUT(lib/talloc/talloc.pc)
+               AC_CONFIG_FILES(lib/talloc/talloc.pc)
        ]
 )
 
@@ -49,7 +49,7 @@ SMB_EXT_LIB_FROM_PKGCONFIG(LIBTDB, tdb >= 1.1.0,
        [
                m4_include(lib/tdb/libtdb.m4)
                SMB_INCLUDE_MK(lib/tdb/config.mk)
-               AC_OUTPUT(lib/tdb/tdb.pc)
+               AC_CONFIG_FILES(lib/tdb/tdb.pc)
        ]
 )
 
@@ -60,7 +60,6 @@ SMB_EXT_LIB_FROM_PKGCONFIG(LIBLDB, ldb >= 0.9.1,
                SMB_INCLUDE_MK(lib/ldb/ldb_ildap/config.mk)
                SMB_INCLUDE_MK(lib/ldb/tools/config.mk)
                SMB_SUBSYSTEM(ldb_map, [], [LIBLDB])
-               AC_OUTPUT(lib/ldb/ldb.pc)
                define_ldb_modulesdir=no
        ],
        [
@@ -84,6 +83,7 @@ SMB_EXT_LIB_FROM_PKGCONFIG(LIBLDB, ldb >= 0.9.1,
                m4_include(lib/ldb/sqlite3.m4)
                m4_include(lib/ldb/libldb.m4)
                SMB_INCLUDE_MK(lib/ldb/config.mk)
+               AC_CONFIG_FILES(lib/ldb/ldb.pc)
        ]
 )
 SMB_INCLUDE_MK(lib/ldb/python.mk) 
index 5100b7cb7c89ea2e6a4bb9521b52980fd2b5c743..441dbc95983a9167079140c2949352ecc552a3ba 100644 (file)
@@ -509,6 +509,18 @@ static int replmd_modify_originating(struct ldb_module *module,
                return LDB_ERR_OPERATIONS_ERROR;
        }
 
+       /* TODO:
+        * - get the whole old object
+        * - if the old object doesn't exist report an error
+        * - give an error when a readonly attribute should
+        *   be modified
+        * - merge the changed into the old object
+        *   if the caller set values to the same value
+        *   ignore the attribute, return success when no
+        *   attribute was changed
+        * - calculate the new replPropertyMetaData attribute
+        */
+
        if (add_time_element(msg, "whenChanged", t) != 0) {
                talloc_free(down_req);
                return LDB_ERR_OPERATIONS_ERROR;
@@ -523,6 +535,11 @@ static int replmd_modify_originating(struct ldb_module *module,
                }
        }
 
+       /* TODO:
+        * - sort the attributes by attid with replmd_ldb_message_sort()
+        * - replace the old object with the newly constructed one
+        */
+
        ldb_set_timeout_from_prev_req(module->ldb, req, down_req);
 
        /* go on with the call chain */
index 14f472340c6610569e4d1a90e2d716144b901424..2e77ff01b8f31e3376a219033340de4f475de3b0 100644 (file)
@@ -86,6 +86,7 @@ sub HeaderStruct($$;$)
 {
        my($struct,$name,$tail) = @_;
        pidl "struct $name";
+       pidl $tail if defined($tail) and not defined($struct->{ELEMENTS});
        return if (not defined($struct->{ELEMENTS}));
        pidl " {\n";
        $tab_depth++;
@@ -178,6 +179,7 @@ sub HeaderUnion($$;$)
        my %done = ();
 
        pidl "union $name";
+       pidl $tail if defined($tail) and not defined($union->{ELEMENTS});
        return if (not defined($union->{ELEMENTS}));
        pidl " {\n";
        $tab_depth++;
index 4d99cd9cd965ee661a5addfcc6a7c5bbbee41e4c..f244679eb512763b414f7aea2b4e1472cc927c3b 100644 (file)
@@ -188,12 +188,16 @@ def provision_paths_from_lp(lp, dnsdomain, private_dir=None):
     paths = ProvisionPaths()
     if private_dir is None:
         private_dir = lp.get("private dir")
+        paths.keytab = "secrets.keytab"
+        paths.dns_keytab = "dns.keytab"
+    else:
+        paths.keytab = os.path.join(private_dir, "secrets.keytab")
+        paths.dns_keytab = os.path.join(private_dir, "dns.keytab")
+
     paths.shareconf = os.path.join(private_dir, "share.ldb")
     paths.samdb = os.path.join(private_dir, lp.get("sam database") or "samdb.ldb")
     paths.secrets = os.path.join(private_dir, lp.get("secrets database") or "secrets.ldb")
     paths.templates = os.path.join(private_dir, "templates.ldb")
-    paths.keytab = os.path.join(private_dir, "secrets.keytab")
-    paths.dns_keytab = "dns.keytab"
     paths.dns = os.path.join(private_dir, dnsdomain + ".zone")
     paths.winsdb = os.path.join(private_dir, "wins.ldb")
     paths.s4_ldapi_path = os.path.join(private_dir, "ldapi")
@@ -723,11 +727,11 @@ def provision(lp, setup_dir, message, paths, session_info,
         raise Exception("realm '%s' in smb.conf must match chosen realm '%s'" %
                 (lp.get("realm"), realm))
 
-    ldapi_url = "ldapi://%s" % urllib.quote(paths.s4_ldapi_path)
+    ldapi_url = "ldapi://%s" % urllib.quote(paths.s4_ldapi_path, safe="")
     
     if ldap_backend == "ldapi":
        # provision-backend will set this path suggested slapd command line / fedorads.inf
-       ldap_backend = "ldapi://" % urllib.quote(os.path.join(lp.get("private dir"), "ldap", "ldapi"), "")
+       ldap_backend = "ldapi://" % urllib.quote(os.path.join(lp.get("private dir"), "ldap", "ldapi"), safe="")
 
     assert realm is not None
     realm = realm.upper()