update post 1.8.x notes
[openafs-wiki.git] / archive / OpenAFS18Notes.mdwn
1 # Notes related to an OpenAFS 1.8 branch
2
3 The current plan is to make a branch for 1.8 off of master on or about
4 24 September 2014.
5 This will allow all of the improvements and cleanup that have accumulated
6 on master to be in a stable release series, while letting potentially
7 destabilizing changes such as rxgk and pthreaded bos land on master to
8 settle.
9
10 A 1.8 release would also bring the possibility of using shared libraries,
11 which are now available with the use of libtool.  Currently (on master),
12 all executable binaries are still linked mostly statically, and most of
13 the shared libraries that are produced during the build are not installed
14 to the destination tree.  Exceptions are libafshcrypto.so, libkopenafs.so,
15 and librokenafs.so.  We could consider installing more shared libraries,
16 and using dynamic linking for executables, either before or after the
17 branch point.  Doing so would involve deciding on what sorts of ABI
18 stability guarantees should be provided.
19
20 The remainder of this page has three separate lists, for things to be
21 done before branching, things to be removed from the 1.8 branch after
22 it is created, and things to be removed from master after the 1.8 branch
23 is created.
24
25 Things to be done pre-branching (aka before pre1):
26
27 * [done] Make roken, hcrypto, and kopenafs use libtool to build
28 * [done] Make sure libtool is used properly elsewhere, in particular to install
29   shared versions of libafsrpc and libafsauthent, which we ship in
30   1.6 but do not currently install on master
31 * [done] Relatedly, verify that the libraries we do ship do not depend on things
32   that we don't ship.
33 * [done; unfeasible]
34   (Optional) Look at the feasibility of installing shared liboafs_foo,
35   and using dynamic linkage for the client utilities.
36 * (rxosd is not going to make it unless someone steps up to do the work;
37   we can't block the branch indefinitely on it.)
38 * [we have some experience/results here] Do install and run testing on
39   various platforms; check for memory leaks in servers, etc..
40 * [done] Relatedly, check that the kernel module is properly built and loadable
41   on a variety of linuxen.
42 * [done] Draft Debian packaging (which will help with a lot of the libtool
43   validation).
44 * [done] Whitespace cleanup.
45 * [the time for this has passed] Any other tree-wide cleanup that people want to get in.
46 * [partially? done]
47   Adjust the default behavior of configure (pthreaded ubik?  more?)
48 * [some work was done] Beg and plead for documentation updates.
49 * [done] Tie the installation of the pam module to --enable/disable-kauth
50 * [done] fix issues with HOST_TO_ZERO and tmay (see gerrit 11287/11290 and related)
51 * [done] Go through outstanding changes against master and determine
52   which should get pulled in for 1.8
53 * [done] Document KeyFileExt and how to migrate keys from 1.6 to 1.8 format
54   (akeyconvert was written)
55 * [done] Document asetkey list for KeyFileExt keys
56 * [done] remove vos release -stayup
57 * [partially done, for salvager changes]
58   Investigate volume header update issues; volume update time is not
59   changed by admin operations that alter metadata such as quota, which
60   could subsequently get lost.
61
62 Things to be done before 1.8 release (but not necessarily before branching):
63
64 * Documentation fixes (which ones?)
65 * [reverted] Investigate "lockless path through d_revalidate" for potential issues (?)
66 * Consider defaulting Unix CMs to have crypt mode be the default, and use
67   authenticated connections to the VL server.
68
69 Things to be removed from 1.8 post-branch:
70
71 * `src/rxgk`; it is not going to be usable in 1.8
72 * `src/mcas`; it is not going to be usable in 1.8
73
74 Things to be removed from master post-branch:
75
76 * Several `tfoo` can probably be moved to just `foo`; things like
77   `tptserver`, `tvlserver`, `tvolser`, `tsalvaged`.  I'm not sure whether
78   `tbudb` and/or `tbutc` are ready.
79 * push to empty out libutil as much as possible.
80 * convert xstat et all from LWP to pthread
81 * rip out LWP support (move to kauth?)
82 * it is tempting to remove kauth, but probably not possible due to agreements with IBM., move to historical?
83 * `make dest` support?  Pretty-please?
84 * upserver ? Note: This is still in use at numerous sites, so is not currently a good candidate for removal
85 * non-DA fileserver and associated bitmap-later and fast-restart configure knobs
86 * inode fileserver? and src/fsck
87
88 Other candidates for removal:
89 * src/afsinstall
90 * src/afsweb
91 * src/JAVA and TechNotes-JavaAPI