forked from rpminspect/rpminspect
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
159 lines (128 loc) · 4.92 KB
/
TODO
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
+==============================+
| rpminspect and librpminspect |
+==============================+
The tests below are the categories handled by rpmdiff-checker, which
is the ancestor to rpminspect. Red Hat associates may recognize these
as the grid categories on the rpmdiff webui. Each test category may
perform a couple of tests. As tests are documented and implemented,
the specifics will be noted during the work in progress.
* indicates the logic for the tests has moved to librpminspect
! means the work is in-progress
Unranked tests categories to migrate (might also decide to skip them):
----------------------------------------------------------------------
TEST_SCRIPT
TEST_STRIP
TEST_TRIGGERS
Other:
- Check for presence of required external program in abidiff,
kmidiff, and other functions that fork and exec another program.
- Add a 'rebase' inspection that just fails if packages are being
rebased but not on the rebaseable list. This should be off by
default but then enabled in a maintenance profile. Maybe???
- Modify downloading builds and packages to go to a download cache
directory. Modify -k/--keep so it retains builds in the
download cache and then -k with -d (debug) specified, keep the
builds but also the workdir files.
- Add a command line option to set the build type for local builds
(e.g., need a way to specify a local subdirectory is a regular
Koji build or a module).
Test categories that have been migrated:
----------------------------------------
*TEST_CHANGED (changedfiles)
*TEST_DESKTOP (desktop)
*TEST_EMPTYRPM (emptyrpm)
*TEST_FILELIST (addedfiles and removedfiles)
*TEST_JAVABYTECODE (javabytecode)
*TEST_MANPAGE (manpage)
*TEST_OWNERSHIP (ownership)
*TEST_SHELLSYNTAX (shellsyntax)
*TEST_XML (xml)
*TEST_IPV6 (part of elf inspection in rpminspect)
*TEST_EXECSHIELD (elf)
*TEST_NEEDED (DT_NEEDED)
*TEST_UPSTREAM (upstream; the BZ 'Rebase' keyword check against the
Errata Tool bug list was not migrated, see below)
*TEST_PERMS (permissions and capabilities)
*TEST_MODPARM (kmod)
*TEST_MODPCIID (kmod)
*TEST_RPMCHANGE (arch and subpackages)
*TEST_CHANGELOG (changelog)
*TEST_PATHNAMES (pathmigration; the forbidden init paths are added
to forbidden_path_prefixes in the config file and
those are caught by 'addedfiles')
*TEST_SIZE (filesize)
*TEST_SYMLINK (symlinks)
*TEST_SPECFILE (disttag, license, and files)
*TEST_TYPES (types)
*TEST_FILEMOVE (movedfiles)
*TEST_ABI (abidiff and kmidiff)
*TEST_CONFIG (config and doc)
*TEST_PATCHES (patches)
*TEST_VIRUS (virus)
*TEST_POLITICS (politics)
*TEST_RPATH (runpath)
*TEST_METADATA (only checks for bad words, valid license, valid vendor,
and valid buildhost)
*TEST_REQUIRES (rpmdeps)
Test categories excluded (see MISSING):
---------------------------------------
TEST_BUILDLOG
TEST_RPMLINT
TEST_UPSTREAM (only the rebase keyword check)
TEST_ELFLINT
TEST_MULTILIB
TEST_SPECFILE (only the 32-bit x86 $RPM_OPT_FLAGS check)
TEST_METADATA (the 'fedora without red hat' string check)
+============+
| test suite |
+============+
Integration tests to write for rpminspect
-----------------------------------------
The test suite needs more integration tests written. The following
inspections lack integration tests:
modularity
javabytecode
changedfiles (compare only)
removedfiles (compare only)
addedfiles (compare only)
annocheck
DT_NEEDED
capabilities
arch
subpackages
pathmigration
abidiff
kmidiff
Need unit tests for run_cmd() verifying NULL as the last parameter.
+=======+
| Other |
+=======+
General functionality
---------------------
* In the [inspections] section in config files, all for "ALL = on"
and "ALL = off" to toggle everything. Similar to the command
line option.
* Add verbose runtime reporting. This is currently only available
for downloading packages. Need to figure out how to separate it
from the test results.
* Text mode reporting formatting. Allow a user-specified column width
and align output on columns.
* Migrate to a TOML config file format--or a config file format that
looks similar to something you would see in /etc but that we have
our own parser for. YAML is not ideal. Though support for YAML
must remain as it is already established and supported. It would be
nice to move the defaults over to not YAML.
* Drop the need to fork/exec msgunfmt and just read in the po files
directly. This should be possible and will give us the information
necessary for comparison purposes.
* Drop the need to fork/exec desktop-file-validate if a library
mechanism can be found instead.
Documentation
-------------
Developer guide
Testing guide
User guide
Use Doxygen for the C source but tie that in with Sphinx so
publishing can be done on readthedocs.io
Also rpminspect.yaml.5 documenting the configuration file and the
profile configuration files.