Update TODO
[bitbake.git] / doc / TODO
1 TODO:
2
3 [x] oe package
4         [ ] Remove duplicated implementations, and convert everyone to the new
5             data and parse methods.
6         [ ] API Sanity Audit.
7         [ ] Comment/Docs Audit.
8         [.] Implement API testing using doctest.
9         [ ] Alter 'export' handling, to support exporting a var without
10             defining the variable.
11                 format:
12                 export [VAR[=value] ...]
13         [ ] More complex variable setting/conditionals
14                 Options:
15                 [ ] Add support for 'anonymous' OE functions in .oe{,class} files.
16                     These functions are to be executed immediately at parse time,
17                     thereby giving one the ability to exert more control over the set
18                     of variables.
19                 [ ] if/else blocks for conditional variable setting
20         [ ] Split oemake's knowledge of AVAILABLE OEFILES from its
21             knowledge of which packages are to be built.
22                 [ ] Define structure and data exchange format(s) for
23                     upstream OE metadata repositories.
24                     Possibly follow an 'apt-get' style.  Cache the
25                     metadata locally, with a command to update.
26
27         * Build requirements
28                 [ ] Code will not be automatically updated from CVS
29                         [ ] Solve by making Fetch use md5.
30                 [ ] Real life test case: Opie
31         [ ] Add "noinherit", as a means of removing an item from the
32             list of classes to inherit.
33         [ ] Need a way to specify that you cannot build a given .oe,
34             from the .oe.  Along the lines of portage's ability for
35             an ebuild to specify that it isnt buildable for a given
36             architecture or set of architectures.
37         [ ] .oe needs access to PROVIDES information that oemake is
38             currently populating.  Move the default set of the .oe
39             provides into the .oe parser rather than oemake.
40         [ ] Write helper functions ala ebuild's dobin/dodoc/etc and debian's dh_*.
41                 [ ] Note, if we do this using actual commands within the .oe file
42                     as opposed to shell helpers, the buildsystem is then aware
43                     of what files are libs, what are includes, etc, and we could
44                     then do a sane automatic population of staging based on that
45                     information. 
46         [ ] Metadata exchange through multiple oebuild/oemake/oespawn executions
47             (i.e. to set qpedir/qtdir for all builds from the qt/opie/qtopia .oe's)
48         [ ] Possibility: split staging by package, and maintain links based on
49             the base atom vs base+version, that sort of thing.  Automatically add
50             proper include and lib paths to the flags variables based on the items
51             in DEPENDS.  This 1) prevent unintentional include/link to the wrong
52             version of things, if multiple versions of things are floating around,
53             and 2) gives us a means of do_clean wiping out a given package's staging
54             items.
55         [ ] Split staging by package
56                 [ ] When a package populates staging, create links for every item
57                     that this .oe Provides.
58                         [ ] Wouldnt be a bad idea to make use of update-alternatives
59                             to manage buildroot's staging links, thereby allowing us
60                             to deal with multiple provides sanely (priority).
61                 [ ] More complex set of FLAGS vars, to account for the various DEPENDS.
62                 [ ] Example:
63                         ipkg depends on virtual/libc, puts staging_dir/libc in flags.
64                         glibc staging creates symlinks for every atom it PROVIDES,
65                         and installs its staging files into the glibc-ver-rev dir.
66         
67 [ ] oebuild
68         [ ] Implement and test check_md5, taking nostamp into account.
69         [ ] Add '--undo'/'-u' cmdline opt that calls the 'undo' task
70             for the supplied task.
71         [ ] Add '--rebuild'/'-r' cmdline opt that calls the 'undo' task
72             for the entire upward path in the digraph, then builds that task.
73             (same thing done when the md5 changes on an affected var in
74              check_md5)
75
76 [.] oemake
77         [ ] Check for recursive dependency
78         [ ] Deal with multiple provides
79
80 [.] oemaked
81         [ ] Monitor the stamps for a given .oe file as well, to ensure
82             changes in build state as well as changes to build metadata result
83             in a rebuild.
84
85 [ ] oerootfs
86 [ ] oeimage
87
88 [ ] packages
89         [ ] add cross binutils and binutils
90         [ ] add gcc
91         [ ] figure out where to put the glibc install into the toolchain dir,
92             which is only needed by gcc pass 2.
93         [ ] add qtopia 1.6.1
94         [.] add qt 2.3.6
95         [ ] convert packages from OpenZaurus buildroot