summaryrefslogtreecommitdiff
path: root/source4/lib/samba3/PLAN
blob: dd2f8e00057553238e8f77952a00198356118824 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Three possible viable approaches:
 1) TDB conversion approach. Read in TDB dump out LDIF (one-way)
  - samr.ldb: from tdbsam/smbpasswd, account_policy.tdb, secrets.tdb, group_mapping.tdb
  - registry.ldb: from registry.tdb
  - wins.ldif: from wins.tdb/wins.dat
  - smb.conf/ea's: generated from the old smb.conf + share_info.tdb
  - winbind.ldif: from winbindd_idmap.tdb (custom file format, not used 
										   by samba4 yet as it doesn't
										   have Winbind yet)

  (one-way upgrades can be done by using ldbsearch -a on these dynamically
  generated ldb's)
  Since TDB's are local, there isn't much point in writing back backwards 
  compatible data.

 2) samr "mapping" backend (alternative for samr.ldb) (two-way)
    This would allow users to keep mixed domains containing Samba3 and Samba4.

 3) The vampire way of doing things (one-way)
  - samba3 pidl backend 
  - Samba4 vampire + server side samsync support in Samba3
  - unixinfo (\unixinfo)
   - in Samba4 (client side)
   - in Samba3 (server side)
  - winsrepl (thru seperate pipe?)
  - enum/add shares (\srvsvc)
  - enum/add registry (\winreg)
  - enum/add printers (\winreg, perhaps also \spoolss(?))
  - convert smb.conf (using Jerry's registry hack)

(going with a combination of 1 and 2)

ldb mapping backend:
 - do search in new and old (mapped) backend and merge results

Upgrade process:
 - take libdir & smb.conf
 - read various tdb files / old smb.conf 
 - write new smb.conf (ejs)
  - list of parameters to keep.. generate some of the others
 - add generated LDIF (ejs). Call out to current provisioning