Skip to content

Latest commit

 

History

History
97 lines (63 loc) · 3.08 KB

TODO.md

File metadata and controls

97 lines (63 loc) · 3.08 KB

To Do List

Most new items are now marked with @todo in the source code and listed in the Doxygen-generated documentation in doc/schroot/html/todo.html. Note that the list is also somewhat dated, with some items having been mostly completed, and others obsoleted in the interim by architectural changes.

Planned changes

  • Add API to run multiple commands to replace auth::run().

  • Add extra file permissions checking.

Both of these changes are to run-parts, to ensure that shell scripts are owned by root and not world writable (as for config files). And also add the same permissions check to script-config files.

  • Generalise permissions checking.

    Create a standard function which can use either stat, fstat or lstat and test for particular permissions.

  • SCHROOT_CONF error messages must also mention chroot.d.

  • Document that database files on the root filesystem must not be directly shared inside the chroot.

    Setup scripts such as 20nssdatabases can blank them out.

  • Document all environment variables in schroot-setup(5).

Potential changes

  • Add tests for:
    • Auth.
    • AuthConv.
    • AuthConvTty.
    • AuthMessage.
    • Session.
    • schroot::Options.

None of these are urgent and/or are difficult to test in an automated fashion. expect might be useful for testing the PAM wrappers.

  • Line reporting while parsing config files misses file name.

    log_warning() is used, because we don't throw an exception. The code has no knowledge of the file name, so can't report it. Outright errors throw, and the handler adds the needed context.

  • Unify fork/exec code into a spawn function.

  • Tests for chroots:

    • -source chroots.
  • logging should allow customisation of log level.

    • See end of Debian Bug #279408.

    • log functions should have a severity (to complement existing I/W/E types).

      Similar to debug level, but for normal messages e.g. quiet/normal/verbose/extra verbose.

  • Add a read-only mount option for union underlay (both for devices and bind mounts).

  • Union mounts should allow overlay/underlay to be user-specified?

    Or only allow underlay to be specified (but it's already specified in the chroot definition, so don't allow?). Note: Currently user settings are automatically overridden.

  • Add directories under /var to man pages.

  • Add checks for unsupported features in setup scripts.

  • Define operator &= and |= for enum types defining | and & operators.

  • Header include order: chroot-facet depends upon schroot-chroot being included first. Try to break this dependency.

  • --end-session --force should forcibly end "broken" sessions by manually umounting and purging mount and session directories and metadata.

  • Chroot validation does not distinguish between chroots and sessions. Also, schroot::session uses find_alias to find chroots, but it should specifically look for either chroots or sessions (and potentially also source chroots). Teach schroot::chroot::config to treat all these separately. Aliases are only useful for SESSION_AUTOMATIC and BEGIN.