Bug 805304

Summary: Review Request: faf - Bug analysis framework for Fedora
Product: [Fedora] Fedora Reporter: Karel Klíč <kklic>
Component: Package ReviewAssignee: Jiri Popelka <jpopelka>
Status: CLOSED DEFERRED QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: abrt-devel-list, jpopelka, package-review, rmarko, rvokal
Target Milestone: ---Flags: rmarko: fedora-review-
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-11-21 16:57:07 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Karel Klíč 2012-03-20 20:18:44 UTC
Spec URL: http://kklic.fedorapeople.org/faf.spec
SRPM URL: http://kklic.fedorapeople.org/faf-0.4-1.fc16.src.rpm
Description:
Faf is a programmable platform for analysis of packages, packaging
issues, bug reports and other artifacts produced within Fedora
operating system development.

$ rpmlint faf-0.4-1.fc16.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

$ rpmlint faf-client-0.4-1.fc16.noarch.rpm 
faf-client.noarch: W: spelling-error Summary(en_US) Kobo -> Kobe, Hobo
faf-client.noarch: W: spelling-error %description -l en_US Kobo -> Kobe, Hobo
faf-client.noarch: W: no-documentation
faf-client.noarch: W: no-manual-page-for-binary faf-client
1 packages and 0 specfiles checked; 0 errors, 4 warnings.

$ rpmlint faf-hub-0.4-1.fc16.noarch.rpm 
faf-hub.noarch: W: spelling-error Summary(en_US) Kobo -> Kobe, Hobo
faf-hub.noarch: W: spelling-error %description -l en_US Kobo -> Kobe, Hobo
faf-hub.noarch: W: no-documentation
faf-hub.noarch: W: non-standard-uid /var/spool/faf/hub faf
faf-hub.noarch: E: non-standard-dir-perm /var/spool/faf/hub 0770L
faf-hub.noarch: W: non-standard-uid /var/spool/faf/hub/upload faf
faf-hub.noarch: E: non-standard-dir-perm /var/spool/faf/hub/upload 0770L
faf-hub.noarch: W: non-standard-uid /var/spool/faf/hub/tasks faf
faf-hub.noarch: E: non-standard-dir-perm /var/spool/faf/hub/tasks 0770L
faf-hub.noarch: W: no-manual-page-for-binary faf-hub
1 packages and 0 specfiles checked; 3 errors, 7 warnings.

$ rpmlint faf-worker-0.4-1.fc16.noarch.rpm 
faf-worker.noarch: W: spelling-error Summary(en_US) Kobo -> Kobe, Hobo
faf-worker.noarch: W: spelling-error %description -l en_US Kobo -> Kobe, Hobo
faf-worker.noarch: W: no-documentation
faf-worker.noarch: W: non-standard-uid /var/spool/faf/worker faf
faf-worker.noarch: E: non-standard-dir-perm /var/spool/faf/worker 0770L
faf-worker.noarch: W: no-manual-page-for-binary faf-worker
1 packages and 0 specfiles checked; 1 errors, 5 warnings.

$ rpmlint faf-0.4-1.fc16.x86_64.rpm 
faf.x86_64: W: non-standard-uid /var/log/faf faf
faf.x86_64: W: non-standard-gid /var/log/faf faf
faf.x86_64: E: non-standard-dir-perm /var/log/faf 0775L
faf.x86_64: E: non-executable-script /usr/share/faf/wrappers/gcc 0644L /usr/bin/python
faf.x86_64: E: non-executable-script /usr/lib/python2.7/site-packages/pyfaf/libsolv.py 0644L /usr/bin/python
faf.x86_64: W: non-standard-gid /usr/bin/faf-chroot-helper faf
faf.x86_64: E: setuid-binary /usr/bin/faf-chroot-helper root 04750L
faf.x86_64: E: non-standard-executable-perm /usr/bin/faf-chroot-helper 04750L
faf.x86_64: E: non-standard-executable-perm /usr/bin/faf-chroot-helper 04750L
faf.x86_64: E: script-without-shebang /usr/lib/python2.7/site-packages/pyfaf/config.py
faf.x86_64: W: non-standard-uid /var/log/faf/build faf
faf.x86_64: W: non-standard-gid /var/log/faf/build faf
faf.x86_64: E: non-standard-dir-perm /var/log/faf/build 0775L
faf.x86_64: E: non-executable-script /usr/lib/python2.7/site-packages/pyfaf/koji.py 0644L /usr/bin/python
faf.x86_64: E: non-executable-script /usr/share/faf/wrappers/g++ 0644L /usr/bin/python
faf.x86_64: E: non-executable-script /usr/lib/python2.7/site-packages/pyfaf/cache/koji_build_funfin_report.py 0644L /usr/bin/python
faf.x86_64: E: non-executable-script /usr/share/faf/wrappers/ld 0644L /usr/bin/python
faf.x86_64: E: non-executable-script /usr/lib/python2.7/site-packages/pyfaf/argparse.py 0644L /usr/bin/python
faf.x86_64: W: devel-file-in-non-devel-package /usr/bin/faf-config
faf.x86_64: W: non-standard-uid /var/spool/faf faf
faf.x86_64: W: non-standard-gid /var/spool/faf faf
faf.x86_64: E: non-standard-dir-perm /var/spool/faf 0775L
faf.x86_64: W: non-standard-gid /var/lib/faf faf
faf.x86_64: E: non-standard-dir-perm /var/lib/faf 02775L
faf.x86_64: W: log-files-without-logrotate /var/log/faf
faf.x86_64: W: no-manual-page-for-binary faf-stats-abrt-bugs-opened
faf.x86_64: W: no-manual-page-for-binary faf-funfin-analyze-binary
faf.x86_64: W: no-manual-page-for-binary faf-bugzilla-pull-attachments
faf.x86_64: W: no-manual-page-for-binary faf-stats-abrt-crashes
faf.x86_64: W: no-manual-page-for-binary faf-debuginfo-analyze-builds
faf.x86_64: W: no-manual-page-for-binary faf-debuginfo-report-bugzilla
faf.x86_64: W: no-manual-page-for-binary faf-debuginfo-report-log
faf.x86_64: W: no-manual-page-for-binary faf-bugzilla-pull-comments
faf.x86_64: W: no-manual-page-for-binary faf-btserver-func-stats
faf.x86_64: W: no-manual-page-for-binary faf-abrt-dup-bugs
faf.x86_64: W: no-manual-page-for-binary faf-chroot
faf.x86_64: W: no-manual-page-for-binary faf-btserver-prepare-actions
faf.x86_64: W: no-manual-page-for-binary faf-llvm-build
faf.x86_64: W: no-manual-page-for-binary faf-stats-abrt-bugs-remaining-opened
faf.x86_64: W: no-manual-page-for-binary faf-refreshrepo
faf.x86_64: W: no-manual-page-for-binary faf-btserver-cgi
faf.x86_64: W: no-manual-page-for-binary faf-funfin-analyze-builds
faf.x86_64: W: no-manual-page-for-binary faf-fedora-pkgdb-pull-packages
faf.x86_64: W: no-manual-page-for-binary faf-koji-pull-tags
faf.x86_64: W: no-manual-page-for-binary faf-bugzilla-pull-users
faf.x86_64: W: no-manual-page-for-binary faf-koji-pull-rpms
faf.x86_64: W: no-manual-page-for-binary faf-btserver-commit-actions-bugzilla
faf.x86_64: W: no-manual-page-for-binary faf-btserver-print-actions
faf.x86_64: W: no-manual-page-for-binary faf-abrt-backtraces
faf.x86_64: W: no-manual-page-for-binary faf-abrt-dup-improvements
faf.x86_64: W: no-manual-page-for-binary faf-funfin-report
faf.x86_64: W: no-manual-page-for-binary faf-btserver-create-optimized-backtraces
faf.x86_64: W: no-manual-page-for-binary faf-stats-abrt-development
faf.x86_64: W: no-manual-page-for-binary faf-btserver-distance
faf.x86_64: W: no-manual-page-for-binary faf-fedora-pkgdb-pull-collections
faf.x86_64: W: no-manual-page-for-binary faf-chroot-helper
faf.x86_64: W: no-manual-page-for-binary faf-fedora-pkgdb
faf.x86_64: W: no-manual-page-for-binary faf-funfin-analyze-build
faf.x86_64: W: no-manual-page-for-binary faf-btserver-cluster
faf.x86_64: W: no-manual-page-for-binary faf-stats-abrt-bugs-closed
faf.x86_64: W: no-manual-page-for-binary faf-debuginfo-build-debugsources
faf.x86_64: W: no-manual-page-for-binary faf-debuginfo-analyze-build
faf.x86_64: W: no-manual-page-for-binary faf-stats-abrt-users
faf.x86_64: W: no-manual-page-for-binary faf-dwarf-files
1 packages and 0 specfiles checked; 15 errors, 49 warnings.

$ rpmlint faf-debuginfo-0.4-1.fc16.x86_64.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

Comment 1 Jiri Popelka 2012-06-29 15:39:39 UTC
Package Review
==============

Key:
- = N/A
x = Pass
! = Fail

[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[x]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: MUST Sources contain only permissible code or content.
[x]: MUST %config files are marked noreplace or the reason is justified.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[!]: MUST Package requires other packages for directories it uses.

For example the main package installs
%{_sysconfdir}/httpd/conf.d/faf.conf
but doesn't require httpd. faf-hub subpackage does, but it's not required
by the main package.

[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Fully versioned dependency in subpackages, if present.
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[-]: MUST Large documentation files are in a -doc subpackage, if required.
[!]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.

What about ?
%doc COPYING AUTHORS Changelog NEWS README

[!]: MUST License field in the package spec file matches the actual license.

I see that faf-chroot-helper.c and faf-dwarf-files.c are under GPLv2+.

And a lot of python files (e.g. /usr/bin/faf-worker)
doesn't contain the license note at all, could you check them ?

[!]: MUST License file installed when any subpackage combination is installed.
[x]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST No %config files under /usr.
[x]: MUST Package does not generate any conflict.
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Requires correct, justified where necessary.
Seems reasonable.

[!]: MUST Rpmlint output is silent.

faf.i686: E: non-executable-script /usr/share/faf/wrappers/gcc 0644L /usr/bin/python
faf.i686: E: non-executable-script /usr/lib/python2.7/site-packages/pyfaf/libsolv.py 0644L /usr/bin/python
If these (there are more) are not supposed to be executable,
then I'd suggest to remove the shebang.

faf.i686: E: setuid-binary /usr/bin/faf-chroot-helper root 04750L
faf.i686: E: non-standard-executable-perm /usr/bin/faf-chroot-helper 04750L
faf.i686: E: non-standard-dir-perm /var/lib/faf 02775L
Could you comment these just for record ?

[!]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.

faf-0.4.tar.xz :
  MD5SUM this package     : c085c0b2b7911cf0bde8e0faddeb887d
  MD5SUM upstream package : 694155d812195ccf8bf57211f02c0e49

[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: MUST File names are valid UTF-8.
[x]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD Dist tag is present.
[!]: SHOULD Scriptlets must be sane, if used.

Could you comment '%post hub' ?

[x]: SHOULD SourceX is a working URL.
[!]: SHOULD Spec use %global instead of %define.
see https://fedoraproject.org/wiki/Packaging/Guidelines#.25global_preferred_over_.25define

Comment 3 Richard Marko 2014-11-21 16:57:07 UTC
No longer relevant as most of the FAF was rewritten since this review was started. We'll submit new review soon.