Bug 620385 - Review Request: BEDTools - A flexible suite of utilities for comparing genomic features
Review Request: BEDTools - A flexible suite of utilities for comparing genomi...
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Martin Gieseking
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-08-02 07:54 EDT by Adam Huffman
Modified: 2015-07-20 12:42 EDT (History)
3 users (show)

See Also:
Fixed In Version: BEDTools-2.10.1-1.el5
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-11-16 17:58:51 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
martin.gieseking: fedora‑review+
kevin: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Adam Huffman 2010-08-02 07:54:29 EDT
Spec URL: http://verdurin.fedorapeople.org/reviews/BEDTools/BEDTools.spec
SRPM URL: http://verdurin.fedorapeople.org/reviews/BEDTools/BEDTools-2.8.3-1.fc12.src.rpm
Description: 

The BEDTools utilities allow one to address common genomics tasks such
as finding feature overlaps and computing coverage. The utilities are
largely based on four widely-used file formats: BED, GFF/GTF, VCF, and
SAM/BAM. Using BEDTools, one can develop sophisticated pipelines that
answer complicated research questions by "streaming" several BEDTools
together.
Comment 1 Adam Huffman 2010-08-02 08:15:04 EDT
rpmlint BED*
BEDTools.src:11: W: mixed-use-of-spaces-and-tabs (spaces: line 11, tab: line 1)

- this is the comment relating to the Source URL on Google Code

BEDTools.src: W: invalid-url Source0: BEDTools.v2.8.3.tar.gz

- see above

BEDTools.x86_64: E: script-without-shebang /usr/share/BEDTools/genomes/mouse.mm8.genome
BEDTools.x86_64: E: script-without-shebang /usr/share/BEDTools/genomes/human.hg19.genome
BEDTools.x86_64: E: script-without-shebang /usr/share/BEDTools/genomes/mouse.mm9.genome
BEDTools.x86_64: E: script-without-shebang /usr/share/BEDTools/genomes/human.hg18.genome
BEDTools.x86_64: E: script-without-shebang /usr/share/BEDTools/data/rmsk.hg18.chr21.bed
BEDTools.x86_64: E: script-without-shebang /usr/share/BEDTools/data/knownGene.hg18.chr21.bed

- when I tried to fix these, those two directories took on very strange permissions, so I'd welcome guidance here
- they're not scripts

BEDTools.x86_64: W: no-manual-page-for-binary complementBed
BEDTools.x86_64: W: no-manual-page-for-binary genomeCoverageBed
BEDTools.x86_64: W: no-manual-page-for-binary mergeBed
BEDTools.x86_64: W: no-manual-page-for-binary pairToPair
BEDTools.x86_64: W: no-manual-page-for-binary groupBy
BEDTools.x86_64: W: no-manual-page-for-binary fastaFromBed
BEDTools.x86_64: W: no-manual-page-for-binary slopBed
BEDTools.x86_64: W: no-manual-page-for-binary bedToIgv
BEDTools.x86_64: W: no-manual-page-for-binary overlap
BEDTools.x86_64: W: no-manual-page-for-binary subtractBed
BEDTools.x86_64: W: no-manual-page-for-binary bamToBed
BEDTools.x86_64: W: no-manual-page-for-binary intersectBed
BEDTools.x86_64: W: no-manual-page-for-binary maskFastaFromBed
BEDTools.x86_64: W: no-manual-page-for-binary bed12ToBed6
BEDTools.x86_64: W: no-manual-page-for-binary bedToBam
BEDTools.x86_64: W: no-manual-page-for-binary sortBed
BEDTools.x86_64: W: no-manual-page-for-binary windowBed
BEDTools.x86_64: W: no-manual-page-for-binary closestBed
BEDTools.x86_64: W: no-manual-page-for-binary linksBed
BEDTools.x86_64: W: no-manual-page-for-binary shuffleBed
BEDTools.x86_64: W: no-manual-page-for-binary coverageBed
BEDTools.x86_64: W: no-manual-page-for-binary pairToBed

- there are no man pages
- I've included the manual file

3 packages and 0 specfiles checked; 6 errors, 24 warnings.

There's also a separate PDF manual at http://bedtools.googlecode.com/files/BEDTools-User-Manual.v3.pdf - I've contacted upstream to clarify its licencing.
Comment 2 Adam Huffman 2010-08-25 11:11:21 EDT
New version (including new upstream release) at:

http://verdurin.fedorapeople.org/reviews/BEDTools/BEDTools-2.9.0-1.fc13.src.rpm

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

I've fixed the Source0 URL.
Comment 3 Martin Gieseking 2010-08-29 08:57:12 EDT
Hi Adam,

some initial comments:

- the license seems to be GPLv2+ (according to the source file headers)

- file LICENSE is missing in %doc

- The package contains the "curl" sources (in src/utils/curl). You should remove 
  them and rely on the corresponding Fedora package instead.

- set the file permissions of the data files to 644, e.g. with
  find %{buildroot}%{_datadir}/%{name} -type f -exec chmod 0644 {} \;
Comment 4 Adam Huffman 2010-08-31 06:45:04 EDT
Martin,

Thanks for taking a look.  New version addressing your comments is at:

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

http://verdurin.fedorapeople.org/reviews/BEDTools/BEDTools-2.9.0-2.fc13.src.rpm

I've contacted upstream about the library bundling.  So far as I can see, it's not actually referred to in any of the individual Makefiles.

There is an extra warning from rpmlint now, relating to the removal of the curl directory:

BEDTools.src:32: W: rpm-buildroot-usage %prep rm -rf %{buildroot}/src/utils/curl
$RPM_BUILD_ROOT should not be touched during %build or %prep stage, as it may
break short circuit builds.

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

Here are the warnings for the binary packages:

BEDTools.x86_64: W: no-manual-page-for-binary complementBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary genomeCoverageBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary mergeBed
Each executable in standard binary directories should have a man page.
BEDTools.x86_64: W: no-manual-page-for-binary pairToPair
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary groupBy
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary fastaFromBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary slopBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary bedToIgv
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary overlap
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary subtractBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary bamToBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary intersectBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary maskFastaFromBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary bed12ToBed6
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary bedToBam
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary unionBedGraphs
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary sortBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary windowBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary closestBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary linksBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary shuffleBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary coverageBed
Each executable in standard binary directories should have a man page.

BEDTools.x86_64: W: no-manual-page-for-binary pairToBed
Each executable in standard binary directories should have a man page.

1 packages and 0 specfiles checked; 0 errors, 23 warnings.
Comment 5 Martin Gieseking 2010-08-31 08:09:26 EDT
(In reply to comment #4)
> So far as I can see, it's
> not actually referred to in any of the individual Makefiles.

Yes, you're right. The BED tools don't seem to require any of the curl sources. Nonetheless, it's probably a good idea to remove them, just to ensure they're not linked.


> BEDTools.src:32: W: rpm-buildroot-usage %prep rm -rf
> %{buildroot}/src/utils/curl
> $RPM_BUILD_ROOT should not be touched during %build or %prep stage, as it may
> break short circuit builds.

rpmlint is correct here. :)
Simply replace "rm -rf %{buildroot}/src/utils/curl" with "rm -rf src/utils/curl" to remove the curl folder. Directory %{buildroot} only contains the installed folders and files that are going to be added to the final package(s), i.e. the files installed in %install.

The remaining rpmlint warnings can be ignored as long as no manpages are available.
Comment 6 Adam Huffman 2010-08-31 12:58:49 EDT
The upstream author said that nothing is using curl at the moment, though that may change in the future.  In any case, he's happy with what I've done for the RPM.

New version at:

http://verdurin.fedorapeople.org/reviews/BEDTools/BEDTools-2.9.0-3.fc13.src.rpm

http://verdurin.fedorapeople.org/reviews/BEDTools/BEDTools.spec
Comment 7 Martin Gieseking 2010-08-31 13:23:13 EDT
Thanks for the confirmation. It's also great to hear that the upstream developer is responsive and happy with your work. Did he also answered your question about the license of the user manual? The pdf file would probably be a valuable addition to the package.
Comment 8 Adam Huffman 2010-08-31 15:03:50 EDT
He said GPLv2 "while I've not indicated as much".  I'll make a -manual subpackage as it's rather lacking in documentation at the moment.
Comment 9 Martin Gieseking 2010-08-31 15:19:06 EDT
OK. If you want to put the pdf file in a subpackage, I suggest to use suffix -doc as recommended in https://fedoraproject.org/wiki/Packaging/Guidelines#PackageDocumentation.
Comment 11 Martin Gieseking 2010-09-01 11:02:03 EDT
Here's the formal review. The package looks good now. Just one thing:
Since upstream said the pdf file is licensed under GPLv2, you should reflect that in a License field of the -docs package. Alternatively, ask the developer if he really meant GPLv2, or if GPLv2+ is also OK. In the latter case, you don't need a separate License tag. Maybe he can add a corresponding notice in the pdf file, too.

$ rpmlint /var/lib/mock/fedora-13-i386/result/*.rpm
BEDTools.i686: W: no-manual-page-for-binary complementBed
BEDTools.i686: W: no-manual-page-for-binary genomeCoverageBed
BEDTools.i686: W: no-manual-page-for-binary mergeBed
BEDTools.i686: W: no-manual-page-for-binary pairToPair
BEDTools.i686: W: no-manual-page-for-binary groupBy
BEDTools.i686: W: no-manual-page-for-binary fastaFromBed
BEDTools.i686: W: no-manual-page-for-binary slopBed
BEDTools.i686: W: no-manual-page-for-binary bedToIgv
BEDTools.i686: W: no-manual-page-for-binary overlap
BEDTools.i686: W: no-manual-page-for-binary subtractBed
BEDTools.i686: W: no-manual-page-for-binary bamToBed
BEDTools.i686: W: no-manual-page-for-binary intersectBed
BEDTools.i686: W: no-manual-page-for-binary maskFastaFromBed
BEDTools.i686: W: no-manual-page-for-binary bed12ToBed6
BEDTools.i686: W: no-manual-page-for-binary bedToBam
BEDTools.i686: W: no-manual-page-for-binary unionBedGraphs
BEDTools.i686: W: no-manual-page-for-binary sortBed
BEDTools.i686: W: no-manual-page-for-binary windowBed
BEDTools.i686: W: no-manual-page-for-binary closestBed
BEDTools.i686: W: no-manual-page-for-binary linksBed
BEDTools.i686: W: no-manual-page-for-binary shuffleBed
BEDTools.i686: W: no-manual-page-for-binary coverageBed
BEDTools.i686: W: no-manual-page-for-binary pairToBed
BEDTools.src: W: invalid-url Source1: http://bedtools.googlecode.com/files/BEDTools-User-Manual.v3.pdf HTTP Error 404: Not Found
BEDTools.src: W: invalid-url Source0: http://bedtools.googlecode.com/files/BEDTools.v2.9.0.tar.gz HTTP Error 404: Not Found
4 packages and 0 specfiles checked; 0 errors, 25 warnings.

All above warnings can be ignored:
- no manual pages available
- invalid URL warnings are false positive

---------------------------------
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.
[X] MUST: The License field in the package spec file must match the actual license.
    - add License: GPLv2 to the -docs package

[+] MUST: The file containing the text of the license(s) for the package must be included in %doc.
    - no separate license file available for pdf file
    => docs package doesn't require a license file

[+] 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 BEDTools*
    85e66413587f3f1cbb5e9530c20c6d1e  BEDTools-User-Manual.v3.pdf
    85e66413587f3f1cbb5e9530c20c6d1e  BEDTools-User-Manual.v3.pdf.1
    a0ac1e63fe4a7ae72e33fd91c24ac3da  BEDTools.v2.9.0.tar.gz
    a0ac1e63fe4a7ae72e33fd91c24ac3da  BEDTools.v2.9.0.tar.gz.1

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
[.] MUST: If the package does not successfully compile, build or work ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[.] MUST: The spec file MUST handle locales properly.
[.] MUST: Packages storing shared libraries 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: 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: .so files must go in a -devel package.
[.] MUST: devel packages must require the base package.
[+] MUST: Packages must NOT contain any .la libtool archives.
[.] MUST: Packages containing GUI applications must include a %{name}.desktop file.
[+] 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) ...
[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
[+] SHOULD: The reviewer should test that the package functions as described.
[.] SHOULD: If scriptlets are used, those scriptlets must be sane.
[.] SHOULD: Usually, subpackages other than devel should require the base package.
    - doc package doesn't require the base package

[.] 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...
[X] SHOULD: your package should contain man pages for binaries/scripts. 
    - would be great if upstream could add manual pages for the utilities, 
      but that's optional, of course
Comment 12 Martin Gieseking 2010-09-12 10:12:31 EDT
Adam, what's the status of this package?
Comment 13 Adam Huffman 2010-09-12 11:07:00 EDT
Martin, I was waiting for a reply from upstream about the licensing of the PDF.  In case you're happy to proceed without that, I've made a new version with GPLv2 added to -docs.

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

http://verdurin.fedorapeople.org/reviews/BEDTools/BEDTools-2.9.0-5.fc13.src.rpm
Comment 14 Martin Gieseking 2010-09-12 11:48:35 EDT
Ah OK, thanks for the update. Sorry, I didn't intend to urge you. 

To me, the current status of the package is fine since the License field reflects the latest feedback from upstream. If you get additional information, you can update the spec file later on.

----------------
Package APPROVED
----------------
Comment 15 Adam Huffman 2010-09-13 08:50:07 EDT
New Package SCM Request
=======================
Package Name: BEDTools
Short Description: A flexible suite of utilities for comparing genomic features
Owners: verdurin
Branches: F12 F13 F14 EL5 EL6
InitialCC:
Comment 16 Kevin Fenzi 2010-09-14 00:36:11 EDT
Git done (by process-git-requests).
Comment 17 Fedora Update System 2010-09-14 06:26:13 EDT
BEDTools-2.9.0-5.fc13 has been submitted as an update for Fedora 13.
https://admin.fedoraproject.org/updates/BEDTools-2.9.0-5.fc13
Comment 18 Fedora Update System 2010-09-14 06:35:30 EDT
BEDTools-2.9.0-5.fc12 has been submitted as an update for Fedora 12.
https://admin.fedoraproject.org/updates/BEDTools-2.9.0-5.fc12
Comment 19 Fedora Update System 2010-09-14 06:43:08 EDT
BEDTools-2.9.0-5.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/BEDTools-2.9.0-5.el5
Comment 20 Fedora Update System 2010-09-23 00:56:04 EDT
BEDTools-2.9.0-5.fc12 has been pushed to the Fedora 12 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 21 Fedora Update System 2010-09-23 00:59:51 EDT
BEDTools-2.9.0-5.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 22 Fedora Update System 2011-01-05 10:58:46 EST
BEDTools-2.10.1-1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/BEDTools-2.10.1-1.el5
Comment 23 Fedora Update System 2011-01-27 13:24:09 EST
BEDTools-2.10.1-1.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 24 Adam Huffman 2015-07-19 06:11:51 EDT
Package Change Request
======================
Package Name: BEDTools
New Branches: epel7
Owners: verdurin
Comment 25 Kevin Fenzi 2015-07-20 12:42:51 EDT
Git done (by process-git-requests).

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