1 | TODO -*- outline -*- |
---|
2 | ==== |
---|
3 | |
---|
4 | |
---|
5 | Most new TODO items are marked @todo in the source code and listed in |
---|
6 | the Doxygen-generated documentation in doc/schroot/html/todo.html |
---|
7 | |
---|
8 | |
---|
9 | PLANNED |
---|
10 | ------- |
---|
11 | |
---|
12 | * Add API to run multiple commands to replace auth::run(). |
---|
13 | |
---|
14 | * Add extra file permissions checking |
---|
15 | |
---|
16 | Both to run-parts, to ensure that shell scripts are owned by root and |
---|
17 | not world writable (as for config files). And also add the same |
---|
18 | permissions check to script-config files. |
---|
19 | |
---|
20 | * Generalise permissions checking |
---|
21 | |
---|
22 | Create a standard function which can use either stat, fstat or lstat |
---|
23 | and test for particular permissions. |
---|
24 | |
---|
25 | * SCHROOT_CONF error messages must also mention chroot.d. |
---|
26 | |
---|
27 | |
---|
28 | POTENTIAL |
---|
29 | --------- |
---|
30 | |
---|
31 | * Add tests for |
---|
32 | |
---|
33 | ** Auth |
---|
34 | ** AuthConv |
---|
35 | ** AuthConvTty |
---|
36 | ** AuthMessage |
---|
37 | ** Session |
---|
38 | ** schroot::Options |
---|
39 | ** schroot_releaselock::Options |
---|
40 | |
---|
41 | None of these are urgent and/or are difficult to test in an automated |
---|
42 | fashion. expect might be useful for testing the PAM wrappers. |
---|
43 | |
---|
44 | * Add tests for dchroot and dchroot-dsa classes. |
---|
45 | |
---|
46 | * Line reporting while parsing config files misses file name. |
---|
47 | |
---|
48 | log_warning() is used, because we don't throw an exception. The |
---|
49 | code has no knowledge of the file name, so can't report it. |
---|
50 | Outright errors throw, and the handler adds the needed context. |
---|
51 | |
---|
52 | * Unify fork/exec code into a spawn function. |
---|
53 | |
---|
54 | * Pass configured sysconfdir, pkglibexecdir prefix exec_prefix etc. to scripts. |
---|
55 | |
---|
56 | * Tests for chroots: |
---|
57 | |
---|
58 | ** -source chroots |
---|
59 | |
---|
60 | * logging should allow customisation of log level |
---|
61 | |
---|
62 | See end of Debian Bug #279408. |
---|
63 | |
---|
64 | ** log functions should have a severity (to complement existing I/W/E types) |
---|
65 | |
---|
66 | Similar to debug level, but for normal messages |
---|
67 | e.g. quiet/normal/verbose/extra verbose. |
---|
68 | |
---|
69 | ** config file should have a "message" key. |
---|
70 | |
---|
71 | Overridden by --quiet/--verbose options. |
---|
72 | |
---|
73 | * Create separate namespaces for chroots and sessions |
---|
74 | |
---|
75 | Note: how to deal with duplicated names in both namespaces for --all? |
---|
76 | Maybe just list twice, first chroots and then sessions? |
---|
77 | |
---|
78 | Have separate namespaces for |
---|
79 | * chroots (for --all-chroots) |
---|
80 | * chroot aliases (for chroot commands) |
---|
81 | * source chroots (for --all-source-chroots) |
---|
82 | * source chroot aliases (for source chroot commands; add --source option) |
---|
83 | * sessions (for all session commands) |
---|
84 | |
---|
85 | * Testcase for chroot-loopback |
---|
86 | |
---|
87 | * Add a read-only mount option for union underlay (both for |
---|
88 | devices and bind mounts). |
---|
89 | |
---|
90 | Union: Don't allow overlay/underlay to be user-specified? Or only |
---|
91 | allow underlay to be specified (but it's already specified in the |
---|
92 | chroot definition, so don't allow?). |
---|
93 | Note: Currently user settings are automatically overridden. |
---|
94 | |
---|
95 | Add directories under /var to man pages |
---|
96 | |
---|
97 | Add checks for unsupported features in setup scripts. |
---|
98 | |
---|
99 | Define operator &= and |= for enum types defining | and & operators. |
---|
100 | |
---|
101 | Header include order: chroot-facet depends upon sbuild-chroot being |
---|
102 | included first. Try to break this dependency. |
---|
103 | |
---|
104 | block-device used to allow sessions to work without writing out |
---|
105 | a session file; this will break across upgrades to the new |
---|
106 | version (since orphan mounts will not be accessible). |
---|
107 | |
---|
108 | --end-session --force should forcibly end "broken" sessions by |
---|
109 | manually umounting and purging mount and session directories and |
---|
110 | metadata. |
---|
111 | |
---|
112 | Chroot validation does not distinguish between chroots and sessions. |
---|
113 | Also, sbuild::session uses find_alias to find chroots, but it should |
---|
114 | specifically look for either chroots or sessions (and potentially |
---|
115 | also source chroots). Teach sbuild::chroot_config to treat all these |
---|
116 | separately. Aliases are only useful for SESSION_AUTOMATIC and BEGIN. |
---|