Bug 827809

Summary: Review Request: genbackupdata - A program to generate test data for testing backup software
Product: [Fedora] Fedora Reporter: Michel Lind <michel>
Component: Package ReviewAssignee: Peter Lemenkov <lemenkov>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: lemenkov, notting, package-review, terje.rosten
Target Milestone: ---Flags: lemenkov: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-07-21 02:51:31 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:
Bug Depends On: 827803, 827804, 827805    
Bug Blocks: 827810    

Description Michel Lind 2012-06-03 06:29:47 UTC
Spec URL: http://salimma.fedorapeople.org/specs/admin/genbackupdata.spec
SRPM URL: http://salimma.fedorapeople.org/specs/admin/genbackupdata-1.6-1.fc17.src.rpm
Description:
genbackupdata creates or modifies directory trees in ways that
simulate real filesystems sufficiently well for performance testing of
backup software. For example, it can create files that are a mix of
small text files and big binary files, with the binary files
containing random binary junk which compresses badly. This can then be
backed up, and later the directory tree can be changed by creating new
files, modifying files, or deleting or renaming files. The backup can
then be run again.

The output is deterministic, such that for a given set of parameters
the same output always happens. Thus it is more efficient to
distribute genbackupdata and a set of parameters between people who
wish to benchmark backup software than distributing very large test
sets.

Fedora Account System Username: salimma

Comment 1 Mattia M. 2012-06-10 07:29:29 UTC
Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== Generic ====
[!]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.

The source package does not include the text of the license.


[!]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[-]: 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.
     Note: The package did not built BR could therefore not be checked or the
     package failed to build because of missing BR
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[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)
     Note: Clean would be needed if support for EPEL is required
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[-]: 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.
[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.
     Note: rm -rf would be needed if support for EPEL5 is required
[-]: 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.

In the Spec file, License field is GPLv2+. A copy of the license is missing from the source, so we cannot be certain which the real license is. Plus, the software author states the license is GPLv2+ in "README", but mentions GPLv3+ in "setup.py".


[x]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[?]: MUST Package does not generate any conflict.
[x]: 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 Requires correct, justified where necessary.
[!]: MUST Rpmlint output is silent.

rpmlint genbackupdata.spec

0 packages and 1 specfiles checked; 0 errors, 0 warnings.


rpmlint genbackupdata-1.6-1.fc17.src.rpm

genbackupdata.src: W: spelling-error %description -l en_US filesystems -> file systems, file-systems, ecosystems
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
/home/rpmmaker/genbackupdata/827809/genbackupdata_1.6.orig.tar.gz :
  MD5SUM this package     : 3626750ba2cf0e44d392ec3820de24f3
  MD5SUM upstream package : 3626750ba2cf0e44d392ec3820de24f3

[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.
[-]: 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.
[!]: SHOULD Reviewer should test that the package builds in mock.
[x]: 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 Dist tag is present.
[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).
[?]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[-]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX is a working URL.
[x]: 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.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues:
[!]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
See: http://fedoraproject.org/wiki/Packaging/Guidelines#Architecture_Support
[!]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
     Note: The package did not built BR could therefore not be checked or the
     package failed to build because of missing BR
See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2


Generated by fedora-review 0.1.3
External plugins:

Comment 2 Mattia M. 2012-06-10 07:38:13 UTC
I tried to review your package.
Nevertheless, as you can see, I decided not to officially assign the review to myself, since this is my first attempt and I don't want my errors or misunderstandings to affect review quality.
So, my "review draft" can be considered as a starting point for anyone else wanting to officially review your package.

Comment 3 Michel Lind 2012-06-10 15:43:50 UTC
(In reply to comment #2)
> I tried to review your package.
> Nevertheless, as you can see, I decided not to officially assign the review
> to myself, since this is my first attempt and I don't want my errors or
> misunderstandings to affect review quality.

Hi Mattia, no problem at all -- let's go through the points you flagged in the review, so you can do a full review next time :)


(In reply to comment #1)
> 
> ==== Generic ====
> [!]: MUST Package is licensed with an open-source compatible license and
> meets
>      other legal requirements as defined in the legal section of Packaging
>      Guidelines.
> 
> The source package does not include the text of the license.
> 
This is a separate issue - there's another item in the review saying the source package should include the license. For this you can check the license on the project website

> [!]: MUST Package successfully compiles and builds into binary rpms on at
>      least one supported primary architecture.
As some of the dependencies (python-ttystatus, in this case) have not been built yet, you probably need to either wait until they are, or build and install them yourself for the review.

> [!]: MUST All build dependencies are listed in BuildRequires, except for any
>      that are listed in the exceptions section of Packaging Guidelines.
>      Note: The package did not built BR could therefore not be checked or the
>      package failed to build because of missing BR
This should probably be a question mark -- you flag this item if the build requirements are incomplete (e.g. as evidenced by the package not building in mock, or the build output indicating that some features that should be enabled are not enabled)

> [?]: MUST Package requires other packages for directories it uses.
Fair enough, since you couldn't see what files are generated

> [!]: MUST License field in the package spec file matches the actual license.
> 
> In the Spec file, License field is GPLv2+. A copy of the license is missing
> from the source, so we cannot be certain which the real license is. Plus,
> the software author states the license is GPLv2+ in "README", but mentions
> GPLv3+ in "setup.py".
> 
Aha, thanks, will try and clarify

> [!]: MUST Rpmlint output is silent.
As you can see, the "failure" is often due to rpmlint's dictionary not understanding technical terms. If you don't think the words it picked up are actually misspelled, you can just check this ('x') if there are no other issues

> [!]: SHOULD Reviewer should test that the package builds in mock.
ps you can install packages not found in standard repos yet using mock: mock <insert your normal mock options here> install path-to-rpm1 path-to-rpm2 ...

The last missing dependency has actually been approved yesterday, so I'll build it for Rawhide, F17 and F16 in the next couple of hours, and then add them to the "buildroot overrides" so that they are available to our Koji build servers *before* the update review period is over. You'd still need to install them by hand if you're testing using mock, though (see instructions above) -- just go to koji.fedoraproject.org and search for the package name and you'll be able to find and download the RPM.

Don't worry about not doing a full review this time :) You got tripped up by the package's dependencies not being fully available yet, but it makes for a more interesting process.

Comment 4 Peter Lemenkov 2012-06-29 10:24:52 UTC
I'll do a formal review for this.

Comment 5 Peter Lemenkov 2012-06-29 10:26:52 UTC
First of all it FTBFS in Rawhide:

http://koji.fedoraproject.org/koji/taskinfo?taskID=4207113

Michel, could you please take a look on this. It fails during unit-testing - maybe there are some missing BuildRequires?

Comment 6 Michel Lind 2012-06-29 13:00:19 UTC
(In reply to comment #5)
> Michel, could you please take a look on this. It fails during unit-testing -
> maybe there are some missing BuildRequires?

Hi Peter - thanks for taking this review! No, not a missing BR; the upstream coverage test is meant to be run before building, and so it got tripped up by the build directory.

Spec URL: http://salimma.fedorapeople.org/specs/admin/genbackupdata.spec
SRPM URL: http://salimma.fedorapeople.org/specs/admin/genbackupdata-1.6-2.fc17.src.rpm

Koji scratch build (F17):
http://koji.fedoraproject.org/koji/taskinfo?taskID=4207450

Comment 7 Peter Lemenkov 2012-06-29 13:11:42 UTC
REVIEW:

Legend: + = PASSED, - = FAILED, 0 = Not Applicable

+ rpmlint is silent (except false positives about spelling):

work ~/Desktop: rpmlint genbackupdata-1.6-2.fc17.*
genbackupdata.noarch: W: spelling-error %description -l en_US filesystems -> file systems, file-systems, ecosystems
genbackupdata.src: W: spelling-error %description -l en_US filesystems -> file systems, file-systems, ecosystems
2 packages and 0 specfiles checked; 0 errors, 2 warnings.
work ~/Desktop: 

+ The package is named according to the  Package Naming Guidelines.
+ The spec file name matches the base package %{name}, in the format %{name}.spec.
+ The package meets the Packaging Guidelines.
+ The package is licensed with a Fedora approved license and meets the Licensing Guidelines.
+ The License field in the package spec file matches the actual license (GPLv3 or later).
0 No file with the licensing info provided in tarball.
+ The spec file is written in American English.
+ The spec file for the package is legible.
+ The sources used to build the package, match the upstream source, as provided in the spec URL.

sulaco ~/rpmbuild/SOURCES: sha256sum genbackupdata_1.6.orig.tar.gz*
e8951dda46c51abd9371b7f486417555a3b8fc48d3c84a0302f8987a9bc2ec42  genbackupdata_1.6.orig.tar.gz
e8951dda46c51abd9371b7f486417555a3b8fc48d3c84a0302f8987a9bc2ec42  genbackupdata_1.6.orig.tar.gz.1
sulaco ~/rpmbuild/SOURCES: 


+ The package successfully compiles and builds into binary rpms on at least one primary architecture.
+ All build dependencies are listed in BuildRequires.
0 No need to handle locales.
0 No shared library files.
+ The package does NOT bundle copies of system libraries.
+ The package is not designed to be relocatable.
+ The package owns all directories that it creates.
+ The package does not list a file more than once in the spec file's %files listings.
+ Permissions on files are set properly.
+ The package consistently uses macros.
+ The package contains code, or permissible content.
0 No extremely large documentation files.
+ Anything, the package includes as %doc, does not affect the runtime of the application.
0 No header files.
0 No static libraries.
0 No pkgconfig(.pc) files.
0 The package doesn't contain library files with a suffix (e.g. libfoo.so.1.1).
0 No devel sub-package.
+ The package does NOT contain any .la libtool archives.
0 Not a GUI application.
+ The package does not own files or directories already owned by other packages.
+ All filenames in rpm packages are valid UTF-8.

I didn't find any other issues so this package is

APPROVED

Comment 8 Michel Lind 2012-07-07 06:02:02 UTC
Thanks, Peter!

New Package SCM Request
=======================
Package Name: genbackupdata
Short Description: A program to generate test data for testing backup software
Owners: salimma
Branches: f16 f17
InitialCC:

Comment 9 Gwyn Ciesla 2012-07-07 13:34:14 UTC
Git done (by process-git-requests).

Comment 10 Terje Røsten 2012-07-09 10:21:20 UTC
Seems to be imported and can be closed?

Comment 11 Fedora Update System 2012-07-10 05:14:01 UTC
genbackupdata-1.6-2.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/genbackupdata-1.6-2.fc17

Comment 12 Fedora Update System 2012-07-10 05:14:13 UTC
genbackupdata-1.6-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/genbackupdata-1.6-2.fc16

Comment 13 Fedora Update System 2012-07-10 20:50:34 UTC
genbackupdata-1.6-2.fc17 has been pushed to the Fedora 17 testing repository.

Comment 14 Fedora Update System 2012-07-21 02:51:31 UTC
genbackupdata-1.6-2.fc16 has been pushed to the Fedora 16 stable repository.

Comment 15 Fedora Update System 2012-07-21 02:53:03 UTC
genbackupdata-1.6-2.fc17 has been pushed to the Fedora 17 stable repository.

Comment 16 Michel Lind 2012-10-17 06:51:39 UTC
Package Change Request
======================
Package Name: genbackupdata
New Branches: el6

Comment 17 Gwyn Ciesla 2012-10-17 14:03:29 UTC
Misformatted request.

Comment 18 Michel Lind 2012-10-18 07:34:29 UTC
Package Change Request
======================
Package Name: genbackupdata
New Branches: el6
Owners: salimma

Comment 19 Gwyn Ciesla 2012-10-18 11:09:38 UTC
Git done (by process-git-requests).