Bug 700962

Summary: Review Request: pydf - Fully colorized df clone written in python
Product: [Fedora] Fedora Reporter: Clint Savage <herlo1>
Component: Package ReviewAssignee: Adam Huffman <bloch>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bloch, fedora-package-review, notting
Target Milestone: ---Flags: bloch: fedora-review+
j: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: pydf-9-3.el5.1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-05-29 18:44:52 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 Clint Savage 2011-04-29 22:30:28 UTC
Spec URL: http://herlo.fedorapeople.org/rpms/pydf.spec
SRPM URL: http://herlo.fedorapeople.org/rpms/pydf-9-1.src.rpm
Description: pydf displays the amount of used and available space on your file systems, just like df, but in colors. The output format is completely customizable.

Comment 1 Adam Huffman 2011-04-30 14:13:51 UTC
Here's the output of a run through Tim Lauridsen's review tool:


Package Review
==============

Key:
- = N/A
x = Check
! = Problem
? = Not evaluated

[x] : MUST - Package successfully compiles and builds into binary rpms on at least one supported architecture.
[x] : MUST - %config files are marked noreplace or the reason is justified.
[x] : MUST - Package does not contain any libtool archives (.la)
[x] : MUST - Package use %makeinstall only when make install DESTDIR=... doesn't work.
[x] : MUST - Package is named according to the Package Naming Guidelines.
[x] : MUST - Sources used to build the package matches the upstream source, as provided in the spec URL.
        MD5SUM this package     : 71778fd7b6668ac157ea06a8867f2d20
        MD5SUM upstream package : 71778fd7b6668ac157ea06a8867f2d20
[x] : MUST - Spec file name must match the spec package %{name}, in the format %{name}.spec.
[-] : MUST - Package contains a properly installed %{name}.desktop using desktop-file-install file if it is a GUI application.
[-] : MUST - Fully versioned dependency in subpackages, if present.
[-] : MUST - Header files in -devel subpackage, if present.
[-] : MUST - ldconfig called in %post and %postun if required.
[-] : MUST - License file installed when any subpackage combination is installed.
[-] : MUST - The spec file handles locales properly.
[-] : MUST - Development .so files in -devel subpackage, if present.
[-] : MUST - Static libraries in -static subpackage, if present.
[!] : MUST - Spec file lacks Packager, Vendor, PreReq tags.
        Found : Packager: Adam Huffman <bloch>
        
[!] : MUST - Rpmlint output is silent.
        
        rpmlint pydf-9-1.src.rpm
        ================================================================================
        pydf.src: W: spelling-error Summary(en_US) df -> sf, ff, dd
        pydf.src: W: spelling-error %description -l en_US df -> sf, ff, dd
        pydf.src: W: spelling-error %description -l en_US customizable -> customization, customize, customable
        pydf.src:11: W: hardcoded-path-in-buildroot-tag /tmp/%{name}-%{version}-root
        pydf.src:6: W: mixed-use-of-spaces-and-tabs (spaces: line 6, tab: line 1)
        1 packages and 0 specfiles checked; 0 errors, 5 warnings.
        ================================================================================
        
        rpmlint pydf-9-1.noarch.rpm
        ================================================================================
        pydf.noarch: W: spelling-error Summary(en_US) df -> sf, ff, dd
        pydf.noarch: W: spelling-error %description -l en_US df -> sf, ff, dd
        pydf.noarch: W: spelling-error %description -l en_US customizable -> customization, customize, customable
        1 packages and 0 specfiles checked; 0 errors, 3 warnings.
        ================================================================================
        
[ ] : MUST - Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines.
[ ] : MUST - %build honors applicable compiler flags or justifies otherwise.
[ ] : MUST - All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines.
[ ] : MUST - Package contains no bundled libraries.
[ ] : MUST - Changelog in prescribed format.
[ ] : MUST - Sources contain only permissible code or content.
[ ] : MUST - Macros in Summary, %description expandable at SRPM build time.
[ ] : MUST - Package requires other packages for directories it uses.
[ ] : MUST - Package uses nothing in %doc for runtime.
[ ] : MUST - Package is not known to require ExcludeArch.
[ ] : MUST - Permissions on files are set properly.
[ ] : MUST - Package does not contain duplicates in %files.
[ ] : 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.
[ ] : MUST - License field in the package spec file matches the actual license.
[ ] : MUST - Package consistently uses macros. instead of hard-coded directory names.
[ ] : MUST - Package meets the Packaging Guidelines.
[ ] : MUST - No %config files under /usr.
[ ] : MUST - Package does not generates any conflict.
[ ] : MUST - Package does not contains kernel modules.
[ ] : MUST - Package contains no static executables.
[ ] : MUST - Package obeys FHS, except libexecdir and /usr/target.
[ ] : MUST - Package must own all directories that it creates.
[ ] : MUST - Package does not own files or directories owned by other packages.
[ ] : MUST - Package installs properly.
[ ] : MUST - Rpath absent or only used for internal libs.
[ ] : MUST - Package is not relocatable.
[ ] : MUST - Requires correct, justified where necessary.
[ ] : MUST - Spec file is legible and written in American English.
[ ] : MUST - Package contains a SysV-style init script if in need of one.
[ ] : MUST - File names are valid UTF-8.
[ ] : MUST - Useful -debuginfo package or justification otherwise.
[x] : SHOULD - Reviewer should test that the package builds in mock.
[x] : SHOULD - SourceX is a working URL.
[-] : SHOULD - Uses parallel make.
[-] : SHOULD - The placement of pkgconfig(.pc) files are correct.
[!] : SHOULD - Dist tag is present.
[!] : SHOULD - SourceX / PatchY prefixed with %{name}.
        Source:		http://kassiopeia.juls.savba.sk/~garabik/software/pydf/pydf_9.tar.gz (pydf_9.tar.gz)
        
[!] : SHOULD - Spec use %global instead of %define.
        %define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
        
[ ] : SHOULD - If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
[ ] : SHOULD - No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[ ] : SHOULD - Final provides and requires are sane (rpm -q --provides and rpm -q --requires).
[ ] : SHOULD - Package functions as described.
[ ] : SHOULD - Latest version is packaged.
[ ] : SHOULD - Package does not include license text files separate from upstream.
[ ] : SHOULD - Man pages included for all executables.
[ ] : SHOULD - Patches link to upstream bugs/comments/lists or are otherwise justified.
[ ] : SHOULD - Scriptlets must be sane, if used.
[ ] : SHOULD - Description and summary sections in the package spec file contains translations for supported Non-English languages, if available.
[ ] : SHOULD - Package should compile and build into binary rpms on all supported architectures.
[ ] : SHOULD - %check is present and all tests pass.
[ ] : SHOULD - Packages should try to preserve timestamps of original installed files.

Issues:
[!] : MUST - Spec file lacks Packager, Vendor, PreReq tags.
        Found : Packager: Adam Huffman <bloch>
- this can be ignored
        
[!] : MUST - Rpmlint output is silent.
        
        rpmlint pydf-9-1.src.rpm
        ================================================================================
        pydf.src: W: spelling-error Summary(en_US) df -> sf, ff, dd
        pydf.src: W: spelling-error %description -l en_US df -> sf, ff, dd
        pydf.src: W: spelling-error %description -l en_US customizable -> customization, customize, customable
        pydf.src:11: W: hardcoded-path-in-buildroot-tag /tmp/%{name}-%{version}-root
        pydf.src:6: W: mixed-use-of-spaces-and-tabs (spaces: line 6, tab: line 1)
        1 packages and 0 specfiles checked; 0 errors, 5 warnings.
        ================================================================================
        
        rpmlint pydf-9-1.noarch.rpm
        ================================================================================
        pydf.noarch: W: spelling-error Summary(en_US) df -> sf, ff, dd
        pydf.noarch: W: spelling-error %description -l en_US df -> sf, ff, dd
        pydf.noarch: W: spelling-error %description -l en_US customizable -> customization, customize, customable
        1 packages and 0 specfiles checked; 0 errors, 3 warnings.
        ================================================================================

You should also consider using macros consistently, rather than mixing styles as you are doing at present i.e. %{buildroot} rather than $RPM_BUILD_ROOT

Comment 2 Clint Savage 2011-05-02 01:44:46 UTC
Thank you for reviewing this package.  I've updated my package to accommodate most of what you recommended.  I will say that I normally use $RPM_BUILD_ROOT and that both the emacs and vim creation tools use this variable and thus have not updated this variable.

SRPM:http://herlo.fedorapeople.org/rpms/pydf-9-2.fc15.src.rpm
SPEC:http://herlo.fedorapeople.org/rpms/pydf.spec

Please have a look at the updated files and let me know if you have any questions/problems.

Cheers,

Clint

Comment 3 Adam Huffman 2011-05-02 09:46:51 UTC
Regarding $RPM_BUILD_ROOT, it is ultimately a matter of taste, though see:

https://fedoraproject.org/wiki/Packaging:Guidelines#Macros

 - I do think mixing the two styles is bad for readability.  It's something people picked up on with my own first packages.  It is a bit annoying that the spec file creation tools have those defaults, I agree - I tend to use 'rpmdev-newspec -m' to work around this.

Could you explain why you have

%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)

at the end?  That definition isn't referred to elsewhere and in any case it's preferred to use %global:

https://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_over_.25define

You also need to include COPYING in %doc.

Here's the formal review:


Package Review
==============

Key:
- = N/A
x = Check
! = Problem
? = Not evaluated

[x] : MUST - Package successfully compiles and builds into binary rpms on at least one supported architecture.
[x] : MUST - %config files are marked noreplace or the reason is justified.
[x] : MUST - Package does not contain any libtool archives (.la)
[x] : MUST - Package use %makeinstall only when make install DESTDIR=... doesn't work.
[x] : MUST - Package is named according to the Package Naming Guidelines.
[x] : MUST - Sources used to build the package matches the upstream source, as provided in the spec URL.
        MD5SUM this package     : 71778fd7b6668ac157ea06a8867f2d20
        MD5SUM upstream package : 71778fd7b6668ac157ea06a8867f2d20
[x] : MUST - Spec file name must match the spec package %{name}, in the format %{name}.spec.
[-] : MUST - Package contains a properly installed %{name}.desktop using desktop-file-install file if it is a GUI application.
[-] : MUST - Fully versioned dependency in subpackages, if present.
[-] : MUST - Header files in -devel subpackage, if present.
[-] : MUST - ldconfig called in %post and %postun if required.
[-] : MUST - License file installed when any subpackage combination is installed.
[-] : MUST - The spec file handles locales properly.
[-] : MUST - Development .so files in -devel subpackage, if present.
[-] : MUST - Static libraries in -static subpackage, if present.
[!] : MUST - Spec file lacks Packager, Vendor, PreReq tags.
        Found : Packager: Adam Huffman <bloch>
        
[!] : MUST - Rpmlint output is silent.
        
        rpmlint pydf-9-2.fc16.noarch.rpm
        ================================================================================
        pydf.noarch: W: spelling-error Summary(en_US) df -> sf, ff, dd
        pydf.noarch: W: spelling-error %description -l en_US df -> sf, ff, dd
        pydf.noarch: W: spelling-error %description -l en_US customizable -> customization, customize, customable
        1 packages and 0 specfiles checked; 0 errors, 3 warnings.
        ================================================================================
        
        rpmlint pydf-9-2.fc16.src.rpm
        ================================================================================
        pydf.src: W: spelling-error Summary(en_US) df -> sf, ff, dd
        pydf.src: W: spelling-error %description -l en_US df -> sf, ff, dd
        pydf.src: W: spelling-error %description -l en_US customizable -> customization, customize, customable
        1 packages and 0 specfiles checked; 0 errors, 3 warnings.
        ================================================================================
        
[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.
[-] : MUST - %build honors applicable compiler flags or justifies otherwise.
[-] : MUST - All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines.
[x] : MUST - Package contains no bundled libraries.
[x] : MUST - Changelog in prescribed format.
[x] : MUST - Sources contain only permissible code or content.
[-] : MUST - Macros in Summary, %description expandable at SRPM build time.
[-] : MUST - Package requires other packages for directories it uses.
[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.
[-] : 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.
[x] : MUST - License field in the package spec file matches the actual license.
[x] : MUST - Package consistently uses macros. instead of hard-coded directory names.
[x] : MUST - Package meets the Packaging Guidelines.
[x] : MUST - No %config files under /usr.
[x] : MUST - Package does not generates any conflict.
[x] : MUST - Package does not contains kernel modules.
[x] : MUST - Package contains no static executables.
[x] : MUST - Package obeys FHS, except libexecdir and /usr/target.
[-] : 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 - Rpath absent or only used for internal libs.
[?] : MUST - Package is not relocatable.
[x] : MUST - Requires correct, justified where necessary.
[x] : MUST - Spec file is legible and written in American English.
[-] : MUST - Package contains a SysV-style init script if in need of one.
[x] : MUST - File names are valid UTF-8.
[-] : MUST - Useful -debuginfo package or justification otherwise.
[x] : SHOULD - Reviewer should test that the package builds in mock.
[x] : SHOULD - Dist tag is present.
[x] : SHOULD - SourceX / PatchY prefixed with %{name}.
[x] : SHOULD - SourceX is a working URL.
[-] : SHOULD - Uses parallel make.
[-] : SHOULD - The placement of pkgconfig(.pc) files are correct.
[!] : SHOULD - Spec use %global instead of %define.
        %define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
        
[-] : SHOULD - If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
[x] : SHOULD - No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[ ] : SHOULD - Final provides and requires are sane (rpm -q --provides and rpm -q --requires).
[x] : SHOULD - Package functions as described.
[x] : SHOULD - Latest version is packaged.
[x] : SHOULD - Package does not include license text files separate from upstream.
[x] : SHOULD - Man pages included for all executables.
[-] : SHOULD - Patches link to upstream bugs/comments/lists or are otherwise justified.
[-] : SHOULD - Scriptlets must be sane, if used.
[-] : SHOULD - Description and summary sections in the package spec file contains translations for supported Non-English languages, if available.
[x] : SHOULD - Package should compile and build into binary rpms on all supported architectures.
[?] : SHOULD - %check is present and all tests pass.
[?] : SHOULD - Packages should try to preserve timestamps of original installed files.

Issues:
[!] : SHOULD - Spec use %global instead of %define.
        %define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)

[!] : 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.

Once these minor niggles are fixed, it should be okay.

Comment 4 Clint Savage 2011-05-02 14:48:24 UTC
Okay, okay. I give. :)  Not that it's an excuse, but I had actually fixed up everything and thought I had uploaded before rebuilding my machine this weekend. Guess I learned a lesson, verify *everything* before blowing things away.  I was so close, too! 

While redoing the spec file, I apparently missed the things you noted, thanks!

The %define date has been removed and I added the COPYING (and INSTALL). I'll look at $RPM_BUILD_ROOT vs %{buildroot} for the future, and thanks for the tip on rpmdev-newspec.

I've linked to the spec/srpm as usual.

SRPM: http://herlo.fedorapeople.org/rpms/pydf-9-3.fc15.src.rpm
SPEC: http://herlo.fedorapeople.org/rpms/pydf.spec

Cheers,

Clint

Comment 5 Adam Huffman 2011-05-10 22:40:48 UTC
Looks okay now - thanks for the new version.  Just one more thing - you should add '-p' to 'install' to preserve timestamps.

Comment 6 Clint Savage 2011-05-23 22:44:45 UTC
Okay, I've added the -p to the install lines. Minor enough of an issue, I didn't increment the package release, just updated them.

SRPM: http://herlo.fedorapeople.org/rpms/pydf-9-3.fc15.src.rpm
SPEC: http://herlo.fedorapeople.org/rpms/pydf.spec

I'm looking forward to fedora-review+ :)

Cheers,

Clint

Comment 7 Adam Huffman 2011-05-27 10:39:31 UTC
Thanks.

APPROVED

Comment 8 Clint Savage 2011-05-29 14:46:36 UTC
New Package SCM Request
=======================
Package Name: pydf
Short Description: Fully colorized df clone written in python
Owners: herlo
Branches: f15, f14, el5, el6
InitialCC:

Comment 9 Jason Tibbitts 2011-05-29 15:22:04 UTC
Git done (by process-git-requests).

Comment 10 Fedora Update System 2011-05-29 18:37:28 UTC
pydf-9-3.el5.1 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/pydf-9-3.el5.1

Comment 11 Fedora Update System 2011-05-29 18:40:00 UTC
pydf-9-3.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/pydf-9-3.fc15

Comment 12 Fedora Update System 2011-05-29 18:40:58 UTC
pydf-9-3.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/pydf-9-3.fc14

Comment 13 Fedora Update System 2011-05-29 18:41:41 UTC
pydf-9-3.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/pydf-9-3.el6

Comment 14 Fedora Update System 2011-06-03 05:35:03 UTC
pydf-9-3.fc15 has been pushed to the Fedora 15 stable repository.

Comment 15 Fedora Update System 2011-06-15 05:43:08 UTC
pydf-9-3.fc14 has been pushed to the Fedora 14 stable repository.

Comment 16 Fedora Update System 2011-06-16 00:33:45 UTC
pydf-9-3.el6 has been pushed to the Fedora EPEL 6 stable repository.

Comment 17 Fedora Update System 2011-06-16 00:34:34 UTC
pydf-9-3.el5.1 has been pushed to the Fedora EPEL 5 stable repository.