summaryrefslogtreecommitdiffstats
path: root/TODO
blob: e03c2dc7a81f70cbb814fda8bf3ebbbff7adaeef (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Tasks
-----

  * Rewrite cache file handling.
    - Make a new library module with the following functions:
      * `ob_init_cache file`
      * `ob_read_cache`
      * `ob_set_cache_var name value`
    - Use `ob_set_cache_var` in `_ob_set_{source,binary}_parameter`.
    - Remove code to read cache file from `ob_parse_package_metadata`.
    - Remove code to write cache file from `ob_parse_package_metadata`.
    - TODO: Should `ob_{init,read}_cache` ever be called automatically?
      * If not, `ob_parse_package_metadata -c FILE` could be:
        - `ob_init_cache_file FILE; ob_read_cache || ob_parse_package_metadata`
  * Fix ob-applypatches to not fall over when it runs too much.
    - Current behavior: "I've been here already!  What do?  *trip*"
    - Track applied patches in ob-applypatches.
      * Copy each patch into the opkbuild cache.
      * Compare cached and current patches, and skip applied patches.
        - `ob-applypatches: Skipping applied patch "01_foo.patch"...`
        - `ob-applypatches: Warning: Patch "01_foo.patch" has been modified since it was applied`
  * General code auditing and cleanup:
    - Protect against command operands beginning with "-", e.g.:
      * `[ "x${foo}" = 'xbar' ]` instead of `[ "${foo}" = 'bar' ]`
      * `mkdir -p -- "${foo}"` instead of `mkdir -p "${foo}"`
    - Add more error handling.
  * See if ob-installdocs can/should handle non-directory non-regular files.
  * Write manual pages for functions and utilities.
  * Change/update option letters for `ob_parse_dep()`.
  * ob-buildopk: Build internal archives with ar, not tar.
  * ob-buildopk, ob-genchanges, ob-gencontrol, opkbuild: s/src-/src:/
  * Split distribution packaging from upstream sources in source packages.
    - Non-native package:
      * `src:foo` is the distribution packaging, and it depends on
        `src:foo:upstream`
      * If the revision isn't "1", don't build and upload upstream sources.
    - Native package:
      * `src:foo` is the whole package.
      * Upload everything always.
  * Drop mksysconf.
  * In executables, print error (using `printf`) and exit if
    `ob_set_text_domain()` fails.
  * In executables, exit on errors.
  * Support xz upstream archive decompression.
  * Maybe call separate decompressor utilities instead of using tar's seamless
    decompression.  This enables support for xz with BusyBox < 1.21.0 (commit
    dfc2473).  (Not really needed, since ProteanOS has used a sufficiently
    recent BusyBox since early 2014.)

Copyright
---------

Copyright (C) 2012, 2018, 2019  Patrick McDermott

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.  This file is offered as-is,
without any warranty.