1.0 Requirements {#REQ001}
Requirements
Functional/feature bits should include the following items.
Python ConfigParser sample config
download rpms to a directory (flat)
download rpms to the usual files tree
download rpm URLs without a config file
maintain a manifest file for each config with valid URLs
If creatrepo is available
create yum-compatible rpm repo from files tree
1.1 REQ002 {#REQ002}
The software Shall provide the following ConfigParser defaults.
interpolation = ExtendedInterpolation
inline_comment_prefixes = None
empty_lines_in_values = False
Child links: SDD002, TST002
Attribute |
Value |
|---|---|
normative |
True |
1.2 REQ003 {#REQ003}
The software Shall self-validate the active configuration.
Child links: TST003, SDD004
Attribute |
Value |
|---|---|
normative |
True |
1.3 REQ004 {#REQ004}
The software Shall consider a configuration valid when it passes the following minimum rule criteria. Note that ConfigParser treats all values as strings so other types must be coerced after being extracted.
the rpmget section must be present and contain at least the following baseline keys and their allowed values
‘top_dir’: ‘any’
‘layout’: [‘flat’, ‘tree’]
‘pkg_tool’: [‘rpm’, ‘yum’, ‘dnf’]
‘repo_dir’: ‘any’
‘repo_tool’: [‘createrepo_c’, ‘createrepo’]
‘repo_args’: optional arg string (can be empty)
‘httpx_timeout’: ‘float’
there must be at least one string value matching the following criteria
starts with ‘http’
ends with ‘.rpm’
Child links: SDD003, TST003
Attribute |
Value |
|---|---|
normative |
True |
1.4 REQ005 {#REQ005}
The software Shall provide a command-line argument to run the validation checks.
Child links: SDD004
Attribute |
Value |
|---|---|
normative |
True |
1.5 REQ006 {#REQ006}
The software Shall support both a flat layout and the rpmdev-setuptree
layout, according to the cfg layout values flat or tree.
Child links: SDD003, TST004, SDD005
Attribute |
Value |
|---|---|
normative |
True |
1.6 REQ007 {#REQ007}
The software Shall create a default .rpmmacros file in top_dir when
the layout type is ‘tree’.
Child links: TST004, SDD005
Attribute |
Value |
|---|---|
normative |
True |
1.7 REQ008 {#REQ008}
The software Shall create a layout compatible with rpmdev-setuptree
when the user-requested layout is ‘tree’.
Child links: TST004
Attribute |
Value |
|---|---|
normative |
True |
1.8 REQ009 {#REQ009}
The software Shall support the createrepo tool for both creating
and updating rpm-metadata (repodata) from local rpm packages.
Child links: TST005
Attribute |
Value |
|---|---|
normative |
True |
1.9 REQ010 {#REQ010}
The software Shall support using a list of valid URLs as input in lieu of the user configuration file (ie, a “no config” mode).
Child links: TST006
Attribute |
Value |
|---|---|
normative |
True |
1.10 REQ011 {#REQ011}
The software Shall maintain a manifest file for each configuration with valid rpm urls.
Child links: SDD007, TST007
Attribute |
Value |
|---|---|
normative |
True |
1.11 REQ012 {#REQ012}
The rpm manifest Shall contain the configuration name and metadata for aech downloaded rpm file. The minimum file metadata should include the following:
file name
file mtime (download timestamp)
file digest using at least sha256
file size in bytes
Child links: SDD007, TST008
Attribute |
Value |
|---|---|
normative |
True |
1.12 REQ013 {#REQ013}
The manifest file Shall be maintained as valid JSON.
Child links: SDD007, TST008
Attribute |
Value |
|---|---|
normative |
True |