Bug 689488 - (vcftools) Review Request: vcftools - VCF file manipulation tools
Review Request: vcftools - VCF file manipulation tools
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Mario Blättermann
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2011-03-21 12:28 EDT by Adam Huffman
Modified: 2013-04-12 10:13 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-09-01 17:11:20 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
mario.blaettermann: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)
Patch to vcftools.spec (2.04 KB, patch)
2011-05-01 21:05 EDT, Jack Tanner
no flags Details | Diff
Patch to perl/Makefile (510 bytes, patch)
2011-05-01 21:05 EDT, Jack Tanner
no flags Details | Diff

  None (edit)
Description Adam Huffman 2011-03-21 12:28:05 EDT
Spec URL: http://verdurin.fedorapeople.org/reviews/vcftools/vcftools.spec
SRPM URL: http://verdurin.fedorapeople.org/reviews/vcftools/vcftools-0.1.4a-1.fc16.src.rpm
Description: 
A program package designed for working with VCF files, such as those
generated by the 1000 Genomes Project. The aim of VCFtools is to
provide methods for working with VCF files: validating, merging,
comparing and calculate some basic population genetic statistics.
Comment 1 Adam Huffman 2011-03-21 12:30:53 EDT
There are two errors found by rpmlint:


vcftools.src:35: E: hardcoded-library-path in %{buildroot}/usr/lib/FaSlice.pm
A library path is hardcoded to one of the following paths: /lib, /usr/lib. It
should be replaced by something like /%{_lib} or %{_libdir}.

vcftools.src:36: E: hardcoded-library-path in %{buildroot}/usr/lib/Vcf.pm
A library path is hardcoded to one of the following paths: /lib, /usr/lib. It
should be replaced by something like /%{_lib} or %{_libdir}.

This is because some of the installation paths are hardcoded in the Makefiles, so I had to move files in the .spec.  If it's preferable to patch the Makefile, let me know.
Comment 2 Jack Tanner 2011-05-01 15:17:33 EDT
FYI, the spec works for the new vcftools 0.1.5 with the following changes.

First, the tarball is not _v0.1.5.tar.gz, just _0.1.5.tar.gz.

Second, compare-vcf, query-vcf and and merge-vcf have been renamed to vcf-compare, vcf-query, and vcf-merge.
Comment 3 Jack Tanner 2011-05-01 15:36:29 EDT
Actually, no, it doesn't work.

Error: Package: vcftools-0.1.5-1.el6.x86_64 (/vcftools-0.1.5-1.el6.x86_64)
           Requires: perl(VcfStats)

The spec file probably needs to be patched to include VcfStats.pm under the perl mv step and under %files. Also, it looks like vcftools_0.1.5/perl/Makefile needs to be patched to include to VcfStats.pm in the MOD target. [I haven't tried this, just taking notes.]
Comment 4 Jack Tanner 2011-05-01 21:05:18 EDT
Created attachment 496148 [details]
Patch to vcftools.spec
Comment 5 Jack Tanner 2011-05-01 21:05:55 EDT
Created attachment 496149 [details]
Patch to perl/Makefile
Comment 6 Jack Tanner 2011-05-01 21:06:25 EDT
vcftools 0.1.15 builds and installs with the enclosed patches.
Comment 7 Adam Huffman 2011-05-03 09:21:49 EDT
I've applied your patches with some changes and other fixes.  Results are at:

http://verdurin.fedorapeople.org/reviews/vcftools/vcftools.spec

http://verdurin.fedorapeople.org/reviews/vcftools/vcftools-0.1.5-2.fc16.src.rpm

Thanks for the assistance.
Comment 10 Alex Lancaster 2012-01-05 16:09:27 EST
koji scratch build worked fine: 

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

I'll try to have a look at this in more detail soon.
Comment 11 Mario Blättermann 2012-07-28 16:02:34 EDT
Scratch build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=4339151

$ rpmlint -i -v *
vcftools.i686: I: checking
vcftools.i686: I: checking-url http://vcftools.sourceforge.net/ (timeout 10 seconds)
vcftools.i686: W: no-manual-page-for-binary vcftools
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-stats
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary fill-aa
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-annotate
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-subset
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-concat
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-to-tab
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-compare
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-isec
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-query
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary fill-an-ac
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-validator
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-sort
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-merge
Each executable in standard binary directories should have a man page.

vcftools.i686: W: no-manual-page-for-binary vcf-convert
Each executable in standard binary directories should have a man page.

vcftools.src: I: checking
vcftools.src: I: checking-url http://vcftools.sourceforge.net/ (timeout 10 seconds)
vcftools.src: I: checking-url http://downloads.sourceforge.net/vcftools/vcftools_0.1.7.tar.gz (timeout 10 seconds)
vcftools.x86_64: I: checking
vcftools.x86_64: I: checking-url http://vcftools.sourceforge.net/ (timeout 10 seconds)
vcftools.x86_64: W: no-manual-page-for-binary vcftools
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-stats
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary fill-aa
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-annotate
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-subset
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-concat
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-to-tab
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-compare
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-isec
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-query
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary fill-an-ac
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-validator
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-sort
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-merge
Each executable in standard binary directories should have a man page.

vcftools.x86_64: W: no-manual-page-for-binary vcf-convert
Each executable in standard binary directories should have a man page.

vcftools-debuginfo.i686: I: checking
vcftools-debuginfo.i686: I: checking-url http://vcftools.sourceforge.net/ (timeout 10 seconds)
vcftools-debuginfo.x86_64: I: checking
vcftools-debuginfo.x86_64: I: checking-url http://vcftools.sourceforge.net/ (timeout 10 seconds)
5 packages and 0 specfiles checked; 0 errors, 30 warnings.


A lot of because of missing man pages, nothing of interest so far.
Formal review will follow.
Comment 12 Mario Blättermann 2012-07-28 16:23:44 EDT
---------------------------------
key:

[+] OK
[.] OK, not applicable
[X] needs work
---------------------------------

[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}.
[+] MUST: The package must meet the Packaging Guidelines.
[+] MUST: The package must be licensed with a Fedora approved license.
    GPLv3
[+] MUST: The License field in the package spec file must match the actual
license.
[.] MUST: The file containing the text of the license(s) for the package must
be included in %doc.

    The upstream developers doesn't ship a license file, only a license
    declaration within README.

[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source.
    $ md5sum *
    d3e68027a7fe40d3f8cb28c3006c7248  vcftools_0.1.7.tar.gz
    d3e68027a7fe40d3f8cb28c3006c7248  vcftools_0.1.7.tar.gz.orig

[+] MUST: The package MUST successfully compile and build into binary rpms on
at least one primary architecture.
- See Koji build above.
[.] MUST: If the package does not successfully compile, build or work on an
architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[.] MUST: The spec file MUST handle locales properly.
[.] MUST: If a package installs files below %{_datadir}/icons, the icon cache
must be updated.
[.] MUST: Packages storing shared library files (not just symlinks) must call
ldconfig in %post and %postun.
[.] MUST: Packages must NOT bundle copies of system libraries.
[.] MUST: If the package is designed to be relocatable, ...
[+] MUST: A package must own all directories that it creates. 
[+] MUST: A Fedora package must not list a file more than once in %files.
[+] MUST: Permissions on files must be set properly.
[+] MUST: Packages must not provide RPM dependency information when that
information is not global in nature, or are otherwise handled.
[.] MUST: When filtering automatically generated RPM dependency information,
the filtering system implemented by Fedora must be used.
[+] MUST: Each package must consistently use macros.
[+] MUST: The package must contain code, or permissable content.
[.] MUST: Large documentation files must go in a -doc subpackage.
[+] MUST: Files in %doc must not affect the runtime of the application.
[.] MUST: Header files must be in a -devel package.
[.] MUST: Static libraries must be in a -static package.
[.] MUST: If a package contains library files with a suffix (e.g.
libfoo.so.1.1), ...
[.] MUST: devel packages must require the base package using a fully versioned
dependency.
[.] MUST: Packages must NOT contain any .la libtool archives.
[.] MUST: Packages containing GUI applications must include a %{name}.desktop
file
[+] MUST: .desktop files must be properly installed with desktop-file-install
in the %install section.
[+] MUST: Packages must not own files or directories already owned by other
packages.
[+] MUST: All filenames in rpm packages must be valid UTF-8.

[.] SHOULD: If the source package does not include license text(s) as a
    separate file from upstream, the packager SHOULD query upstream...

[+] SHOULD: Timestamps of files should be preserved.
[+] SHOULD: The reviewer should test that the package builds in mock.
    See Koji build above (which uses mock anyway)
[.] SHOULD: The reviewer should test that the package functions as described.
    Not tested. Due to the age of the package I assume it has been tested
    by the packager.

[+] SHOULD: If scriptlets are used, those scriptlets must be sane.
[.] SHOULD: Usually, subpackages other than devel should require the base
package using a fully versioned dependency.
[.] SHOULD: pkgconfig(.pc) files should be placed in a -devel pkg.
[.] SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin,
/usr/bin, or /usr/sbin ...
[.] SHOULD: Your package should contain man pages for binaries/scripts.
    Currently no man pages available.

--------------------------------------

PACKAGE APPROVED

--------------------------------------


Adam, if you don't want to provide your package for EPEL <6, then please remove "BuildRoot:", the %clean section and %defattr.

BTW, there is a new version 0.1.9 available from SourceForge.
Comment 13 Adam Huffman 2012-07-29 06:04:29 EDT
Thanks for the review.  I do intend to maintain it for EPEL5, so I'll keep those otherwise obsolete parts.
Comment 14 Adam Huffman 2012-07-29 06:08:05 EDT
New Package SCM Request
=======================
Package Name: vcftools
Short Description: VCF file manipulation tools
Owners: verdurin
Branches: f16 f17 el5 el6
InitialCC:
Comment 15 Gwyn Ciesla 2012-07-29 14:13:02 EDT
Git done (by process-git-requests).
Comment 16 Mario Blättermann 2012-08-23 04:01:02 EDT
@Adam, there were no builds yet for the targeting branches. Would be nice to be able to close this review request soon.
Comment 17 Adam Huffman 2012-08-23 07:31:30 EDT
(In reply to comment #16)
> @Adam, there were no builds yet for the targeting branches. Would be nice to
> be able to close this review request soon.

Oops, yes, I forgot.  Built them all this morning.
Comment 18 Mario Blättermann 2012-09-01 17:11:20 EDT
All packages except the EPEL ones are now in the updates repo. I close this bug.

Note You need to log in before you can comment on or make changes to this bug.