summaryrefslogtreecommitdiffstats
path: root/TODO
blob: 2b44f4c00af7f082541d12bc370ed281e1130c4e (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
For 2.0.0:
  * Handle maintainer scripts, conffiles, and md5sums in oh-gencontrol.
  * Write substitution variable library functions.
  * Do substitutions in control generation.
  * Write new architecture library functions.
  * Rewrite oh-buildopk, oh-installdocs, and oh-installfiles.
  * Rewrite oh-checkbuilddeps.
    - Support version and architecture specifications.
  * Rewrite oh-strip.
    - Find all normal files.
    - Use the "file" program to identify executables and shared objects.
  * Finish documenting library functions.
    - Document standard output and error stream usage.
  * Document new utility interfaces.

Future Plans:
  * Check on file ownership and modes.
  * Make oh-strip obey a missing '-l' option.
  * Package signing. [1]
  * Compress documentation files. [2]
  * Write an 'opkcreate' script like dh_make to create a new source package.
  * Build platform-specific binary packages only when really necessary. [3]
  * Write a tool similar to debhelper's dh_auto_configure.

Notes:
 1: Requires opkg to be built with GnuPG and GPGME.
 2: Follow the model of debhelper's dh_compress.
 3: Currently, if a source package contains a file named 'config', all of its
    binary packages are built for the target platform architecture.  For
    example, the 'opkg' source package installs platform configuration for the
    'opkg' binary package; as a result, even 'libopkg.1' and 'libopkg.1-dbg'
    (though not 'libopkg.1-dev', which is built for the "all" architecture) are
    built for the target platform architecture.  This problem is minor, since it
    will only bloat package archives with functionally identical binary packages
    and will not affect managed systems.
    A solution to this issue is to separate build-time and run-time
    configuration files into different lists in the source package format.
    Build-time configuration files would be listed in a file named 'config' in
    the package root (as they are now), and run-time configuration files would
    be listed in 'config' files in binary package metadata directories (e.g.
    'opkg.pkg/config' in the case of 'opkg').  Then, opkhelper will build each
    binary package for the target platform only if there are build-time
    configuration files for the source package or there are run-time
    configuration files for the binary package.