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.
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.
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.
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 {} \;
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.
(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.
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
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.
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.
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.
New version including -docs subpackage at: http://verdurin.fedorapeople.org/reviews/BEDTools/BEDTools.spec http://verdurin.fedorapeople.org/reviews/BEDTools/BEDTools-2.9.0-4.fc13.src.rpm
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
Adam, what's the status of this package?
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
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 ----------------
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:
Git done (by process-git-requests).
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
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
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
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.
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.
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
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.
Package Change Request ====================== Package Name: BEDTools New Branches: epel7 Owners: verdurin