summaryrefslogtreecommitdiffstats
path: root/TODO
blob: c16778b59267c55ee8e7aa030724cabbdeea699c (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
  * Try replacing `sed` "arrays" with `eval` "arrays" in `install_find_pkgs()`
    and `install_get_pkgs()`, using `tr` to sanitize package names (as in
    opkbuild).  Benchmark.  This essentially replaces one `sed` command per
    package (in `install_get_pkgs()`) with two `tr` commands (one per function;
    no need to convert case as in opkbuild), which should reduce the algorithmic
    complexity of installations from O(*n*) (where *n* is the number of packages
    in the archive) to something closer to O(1).
  * Add interactive frontend for installers:
    - Clean up `install_system()` and `installer-pc` output
      + Maybe write everything to an installation log file in `${root}/var/log/`
    - New `lib/tui.sh` interface to `lib/tui/select.sh` and `lib/tui/dialog.sh`
      backends (with `configure` looking for **dialog**)
    - Make `install_system()` accept an output callback to use instead of
      `info()`
    - Add a `prof_get_platforms_by_tag(suite, tag, plat_cb)` function that calls
      `${plat_cb} "${name}" "${desc}"` on each matching platform
      + ProteanOS implementation: download and parse (control file)
        <http://files.proteanos.com/pub/proteanos-archplat-lists/${suite}/plat>
    - Add library functions for a `select` implementation, pretty-printing sizes
      in decimal and binary units, and searching for block devices
    - Implement an interactive mode of `installer-pc`:
      + Change usage to `[-a <arch> -p <plat> [-m <mirror>] <suite> <device>]`
        (i.e. make all arguments optional)
      + Get a `Manifest` of suites from profile, present options to user
      + Call `prof_get_platforms_by_tag()` with a "pc" tag
      + Call a profile function to get architectures (with names and
        descriptions) for a given suite and platform
      + Pass a tui function as the output callback to `install_system()`
  * Make `installer-pc` check architecture compatibility (host CPU and kernel
    vs. those of system to install)?
    - Can't do a "foreign" installation, unless LILO is not to be installed (as
      on libreboot-specific platforms)