aboutsummaryrefslogtreecommitdiffstats
path: root/BUGS
blob: 07192b92c4ad7cc8fa25bb3c57a547180e42268c (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
Significant bugs:


- fix problems with file resolution
- fix wandering problems
- use -v properly
- problem when you specify no filters.
- segfault when you specify no project



- using sscanf() for doing parsing is a bad idea
- separation of packages only works now for WR LDAT
- calculate full paths, rather than guessing that paths with no directory can be ignored. This requires replacing strace with a custom LD_PRELOAD library



Missing features:

1. Removing false positives when building local binaries. 

Many packages first compile a local binary, then use this local binary to compile some other source for the target.  This situation can be detected when local include and libraries are accessed, but then a binary in the target is executed.

This should be treated as a warning. 

2. Process trees

Track the processes that accessed the files, and create a file tree.

3. Correlate to console output

Use timestamped console output to correlate to the file accesses, which helps figure out where in a package build a file is being accessed.  Create an interactive tool to guide the user through this.

4. Detect when a local binary is accessed when a build system-provided tool could be used

Many build systems provide versions of tools that are sometimes found on the hos distribution. This situation can be detected by correlating binaries accessed to a list of build system-provided binaries. 

5. Mult-distribution predictive requirements generation

Sometimes, it is useful to generate a required package list without having to do the profile on the host.  This could be done by having access to that distribution's package database and comparing to a list of files accessed.  Note that this can never be accurate, since files are found in different places, and library versions may be different.

6. Know how to read Wind River Linux required.txt files.

The following script could be used (thanks to Derek Buitenhuis):

#!/usr/bin/perl

use strict;
use warnings;

while(<STDIN>) {
    # Skip comments and blank lines
    next if (/^#/ or /^\s*\n/);
    # Only keep the first word
    s/(^.+)\s.+/$1/;
    print;
}