rpm-rs / rpm

Other
47 stars 26 forks source link

Add rpm-lint integration test #28

Open drahnr opened 1 year ago

drahnr commented 1 year ago

Most users expect a rpm-lint run of a generated package to be flawless. We should aim for full compatibility. A first step would be to add a (currently failing) regression test against the builder API.

olivierlemasle commented 1 year ago

I've passed the full_rpm_sig.rpm generated during rpm-compat-tests to rpmlint and here are the results:

============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 31, packages: 1

test.x86_64: E: world-writable /etc/foobar/hugo/bazz.toml 777
test.x86_64: W: summary-not-capitalized some package
test.x86_64: E: script-without-shebang /etc/foobar/hugo/bazz.toml
test.x86_64: E: non-standard-executable-perm /etc/foobar/hugo/bazz.toml 777
test.x86_64: W: non-standard-dir-in-var honollulu
test.x86_64: W: non-conffile-in-etc /etc/Cargo.toml
test.x86_64: W: non-conffile-in-etc /etc/foobar/bazz.toml
test.x86_64: W: non-conffile-in-etc /etc/foobar/foo.toml
test.x86_64: W: non-conffile-in-etc /etc/foobar/hugo/aa.toml
test.x86_64: W: non-conffile-in-etc /etc/foobar/zazz.toml
test.x86_64: W: non-coherent-filename full_rpm_sig.rpm test-1.0.0-1.x86_64.rpm
test.x86_64: W: no-manual-page-for-binary awesome_link
test.x86_64: W: no-documentation
test.x86_64: E: no-buildhost-tag
test.x86_64: E: no-binary
test.x86_64: W: invalid-url URL dummy url
test.x86_64: E: executable-marked-as-config-file /etc/foobar/hugo/bazz.toml
test.x86_64: W: dangling-symlink /usr/bin/awesome_link /usr/bin/awesome
test.x86_64: W: conffile-without-noreplace-flag /etc/foobar/hugo/bazz.toml
 1 packages and 0 specfiles checked; 6 errors, 13 warnings, 6 badness; has taken 0.1 s 

I think all the errors and warnings could be solved just by builing a different package, with no change in the library (except conffile-without-noreplace-flag: cf #186).