Spec URL: http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools.spec SRPM URL: http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools-1.20-2.fc13.src.rpm Description: This is a Perl interface to the SAMtools sequence alignment interface. See http://samtools.sourceforge.net/.
rpmlint -i perl-Bio-SamTools-* /home/adam/rpmbuild/SPECS/perl-Bio-SamTools.spec /home/adam/rpmbuild/SRPMS/perl-Bio-SamTools-1.20-2.fc13.src.rpm perl-Bio-SamTools.x86_64: W: private-shared-object-provides /usr/lib64/perl5/auto/Bio/DB/Sam/Sam.so Sam.so()(64bit) A shared object soname provides is provided by a file in a path from which other packages should not directly load shared objects from. Such shared objects should thus not be depended on and they should not result in provides in the containing package. Get rid of the provides if appropriate, for example by filtering it out during build. Note that in some cases this may require disabling rpmbuild's internal dependency generator. perl-Bio-SamTools.x86_64: W: no-manual-page-for-binary bamToGBrowse.pl Each executable in standard binary directories should have a man page. 3 packages and 1 specfiles checked; 0 errors, 2 warnings. I would welcome guidance on that first warning.
The warning means the package installs shared library into non-system-wide path. This is absolutely correct for perl module as the library is intended only for Perl interpreter that know where to find it. Tha dark side of the warning is the library name is provided by generated RPM package (see rpm -pq --provides). It just pollutes RPM dependency space as the library cannot and should not be used by other packages directly. Solution is to filter the string out of package Provides. See <https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Removing_items_from_the_provides_stream_.28post-scan_filtering.29> for how-to.
Or since it's a perl package, just add a %{?perl_default_filter} line somewhere above %description https://fedoraproject.org/wiki/PackagingDraft:Perl#General_Case
BuildRequires: samtools-devel does not exist in rawhide nor F13. Which Fedora release are you targeting? After replacing samtools-devel with samtools I got interactive setup: /usr/bin/perl Build.PL installdirs=vendor 'optimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' This module requires samtools 0.1.4 or higher (samtools.sourceforge.net). Please enter the location of the bam.h and compiled libbam.a files: Despite I have samtools-0.1.8 installed. Please fix BuildRequires first.
Ah, you beat me to it. Was just about to send this and our comments clashed: New version with the filtering added: http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools.spec http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools-1.20-3.fc13.src.rpm Please note that to build it needs the samtools-devel package. I've made one locally and asked Rasmus (primary maintainer of samtools) to accept my changes that provide the subpackage (I'm a co-maintainer of samtools). As it stands the samtools package does not include the header files needed by perl-Bio-SamTools. You've caught me out with your swift response - I only contacted Rasmus earlier today.
In case you want to try my unofficial version: http://verdurin.fedorapeople.org/rpms/samtools/samtools.spec http://verdurin.fedorapeople.org/rpms/samtools/samtools-0.1.8-2.fc13.src.rpm but I'd understand if you wanted to wait for official builds. There's also a scratch build here: http://koji.fedoraproject.org/koji/taskinfo?taskID=2449529
It still cannot find the development files because sub find_sam in Build.PL does not expect /usr/include/samtools and /usr/lib64.
Have you solved it? Following changes in spec file can do that. Note the Patch0 is not needed. --- perl-Bio-SamTools.spec.old 2010-09-06 17:21:04.000000000 +0200 +++ perl-Bio-SamTools.spec 2011-03-02 18:09:20.547956138 +0100 @@ -6,7 +6,6 @@ Group: Development/Libraries URL: http://search.cpan.org/dist/Bio-SamTools/ Source0: http://search.cpan.org/CPAN/authors/id/L/LD/LDS/Bio-SamTools-1.20.tar.gz -Patch0: %{name}-include.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: perl >= 0:5.008 #BuildRequires: perl(Bio::Root::Version) >= 1.005009001 @@ -28,10 +27,9 @@ %prep %setup -q -n Bio-SamTools-%{version} -%patch0 -p1 +sed -i 's|= find_sam(|= ("%{_includedir}/samtools", "%{_libdir}"|' Build.PL %build -export SAMTOOLS="/usr/share/samtools" %{__perl} Build.PL installdirs=vendor optimize="$RPM_OPT_FLAGS" ./Build
New version with Petr's changes at: http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools.spec http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools-1.21-3.fc16.src.rpm There is a version of samtools-devel available in updates-testing and rawhide.
Source file is original. Ok. Description verified from README. License is GPL+ or Artistic 2.0 (LICENSE, lib/Bio/DB/Sam.pm). FIX: Correct License tag to reflect Artistic license version. See https://fedoraproject.org/wiki/Licensing:Main#Good_Licenses for license names. TODO: Replace version string with %{version} macro in Source0. It will make upgrades smoother. TODO: Remove unused commented-out code from spec file. TODO: You can remove BuildRoot definition and it's purge in %install section and %clean section as this is obsolete in Fedora. FIX: Remove samtools-devel from Requires. Or is there any reason? TODO: Instead of depending on perl-bioperl, find requires modules as put them into spec file in perl(MODULE_NAME) notation. This is preferred method in perl packages as it allows moving modules between RPM packages. TODO: BuildRequire perl(Exporter) (lib/Bio/DB/Sam/Constants.pm:69) as it can dual-live in the future (http://search.cpan.org/~ferreira/Exporter/). TODO: BuildRequire perl(File::Spec) (lib/Bio/DB/Sam/SamToGBrowse.pm:3) as it can dual-live in the future (http://search.cpan.org/~smueller/PathTools/). TODO: BuildRequire perl(File::Temp) (lib/Bio/DB/Sam/SamToGBrowse.pm) as it can dual-live in the future (http://search.cpan.org/~tjenness/File-Temp/). TODO: BuildRequire perl(Cwd) (lib/Bio/DB/Sam.pm:2078) as it can dual-live in the futurue (http://search.cpan.org/~smueller/PathTools/). TODO: BuildRequire perl(Test) for (t/01sam.t:18) as it can dual-live in the future (http://search.cpan.org/~sburke/Test/). All tests pass. Ok. $ rpmlint perl-Bio-SamTools.spec ../SRPMS/perl-Bio-SamTools-1.21-3.fc14.src.rpm ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm perl-Bio-SamTools.x86_64: E: devel-dependency samtools-devel perl-Bio-SamTools.x86_64: W: no-manual-page-for-binary bamToGBrowse.pl 2 packages and 1 specfiles checked; 1 errors, 1 warnings. FIX: Is the samtools-devel needed at run time? $ rpm -q -lv -p ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm -rwxr-xr-x 1 root root 1913 bře 14 11:26 /usr/bin/bamToGBrowse.pl drwxr-xr-x 2 root root 0 bře 14 11:26 /usr/lib64/perl5/Bio drwxr-xr-x 2 root root 0 bře 14 11:26 /usr/lib64/perl5/Bio/DB drwxr-xr-x 2 root root 0 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Bam -rw-r--r-- 1 root root 11025 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Bam/AlignWrapper.pm -rw-r--r-- 1 root root 17097 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Bam/Alignment.pm -rw-r--r-- 1 root root 335 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Bam/FetchIterator.pm -rw-r--r-- 1 root root 2499 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Bam/Pileup.pm -rw-r--r-- 1 root root 1993 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Bam/PileupWrapper.pm -rw-r--r-- 1 root root 4571 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Bam/Query.pm -rw-r--r-- 1 root root 402 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Bam/ReadIterator.pm -rw-r--r-- 1 root root 1026 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Bam/Target.pm drwxr-xr-x 2 root root 0 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Sam -rw-r--r-- 1 root root 73347 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Sam.pm -rw-r--r-- 1 root root 2358 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Sam/Constants.pm -rw-r--r-- 1 root root 11636 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Sam/SamToGBrowse.pm -rw-r--r-- 1 root root 2284 bře 14 11:26 /usr/lib64/perl5/Bio/DB/Sam/Segment.pm drwxr-xr-x 2 root root 0 bře 14 11:26 /usr/lib64/perl5/auto/Bio drwxr-xr-x 2 root root 0 bře 14 11:26 /usr/lib64/perl5/auto/Bio/DB drwxr-xr-x 2 root root 0 bře 14 11:26 /usr/lib64/perl5/auto/Bio/DB/Sam -rwxr-xr-x 1 root root 277096 bře 14 11:26 /usr/lib64/perl5/auto/Bio/DB/Sam/Sam.so drwxr-xr-x 2 root root 0 bře 14 11:26 /usr/share/doc/perl-Bio-SamTools-1.21 -rw-r--r-- 1 root root 4850 zář 21 20:39 /usr/share/doc/perl-Bio-SamTools-1.21/Changes -rw-r--r-- 1 root root 1156 zář 21 20:39 /usr/share/doc/perl-Bio-SamTools-1.21/DISCLAIMER -rw-r--r-- 1 root root 23937 zář 21 20:39 /usr/share/doc/perl-Bio-SamTools-1.21/LICENSE -rw-r--r-- 1 root root 1946 zář 21 20:39 /usr/share/doc/perl-Bio-SamTools-1.21/README -rw-r--r-- 1 root root 2492 bře 14 11:26 /usr/share/man/man3/Bio::DB::Bam::AlignWrapper.3pm.gz -rw-r--r-- 1 root root 7437 bře 14 11:26 /usr/share/man/man3/Bio::DB::Bam::Alignment.3pm.gz -rw-r--r-- 1 root root 2908 bře 14 11:26 /usr/share/man/man3/Bio::DB::Bam::Pileup.3pm.gz -rw-r--r-- 1 root root 2249 bře 14 11:26 /usr/share/man/man3/Bio::DB::Bam::PileupWrapper.3pm.gz -rw-r--r-- 1 root root 2917 bře 14 11:26 /usr/share/man/man3/Bio::DB::Bam::Query.3pm.gz -rw-r--r-- 1 root root 1886 bře 14 11:26 /usr/share/man/man3/Bio::DB::Bam::Target.3pm.gz -rw-r--r-- 1 root root 20019 bře 14 11:26 /usr/share/man/man3/Bio::DB::Sam.3pm.gz -rw-r--r-- 1 root root 2409 bře 14 11:26 /usr/share/man/man3/Bio::DB::Sam::Constants.3pm.gz File permissions and layout are Ok. $ rpm -q --requires -p ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm |sort | uniq -c 1 libc.so.6(GLIBC_2.2.5)(64bit) 1 libc.so.6(GLIBC_2.3.4)(64bit) 1 libc.so.6(GLIBC_2.3)(64bit) 1 libc.so.6(GLIBC_2.4)(64bit) 1 libc.so.6(GLIBC_2.7)(64bit) 1 libc.so.6()(64bit) 1 libgcc_s.so.1(GCC_3.0)(64bit) 1 libgcc_s.so.1(GCC_3.3.1)(64bit) 1 libgcc_s.so.1()(64bit) 1 libz.so.1(ZLIB_1.2.2)(64bit) 1 libz.so.1(ZLIB_1.2.3.3)(64bit) 1 libz.so.1()(64bit) 1 perl(base) 1 perl(Bio::DB::Bam::Alignment) 1 perl(Bio::DB::Bam::AlignWrapper) 1 perl(Bio::DB::Bam::FetchIterator) 1 perl(Bio::DB::Bam::PileupWrapper) 1 perl(Bio::DB::Bam::Query) 1 perl(Bio::DB::Bam::ReadIterator) 1 perl(Bio::DB::Bam::Target) 1 perl(Bio::DB::Sam) 1 perl(Bio::DB::Sam::Constants) 1 perl(Bio::DB::Sam::SamToGBrowse) 1 perl(Bio::DB::Sam::Segment) 1 perl-bioperl 1 perl(Bio::PrimarySeq) 1 perl(Bio::SeqFeature::Lite) 1 perl(Carp) 1 perl(constant) 1 perl(Cwd) 1 perl(Exporter) 1 perl(File::Basename) 1 perl(File::Spec) 1 perl(File::Temp) 1 perl(:MODULE_COMPAT_5.12.3) 1 perl(strict) 1 perl(warnings) 1 rpmlib(CompressedFileNames) <= 3.0.4-1 1 rpmlib(FileDigests) <= 4.6.0-1 1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 1 rpmlib(PayloadIsXz) <= 5.2-1 2 rpmlib(VersionedDependencies) <= 3.0.3-1 1 rtld(GNU_HASH) 1 samtools-devel >= 0.1.8 1 /usr/bin/perl Here you can see some perl-bioperl modules discovered by rpmbuild you can put into spec files as BuildRequires instead of perl-bioperl. Please be aware this is just informative. There can be other not discovered dependencies. $ rpm -q --provides -p ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm |sort | uniq -c 1 perl(Bio::DB::Bam) 1 perl(Bio::DB::Bam::Alignment) 1 perl(Bio::DB::Bam::AlignWrapper) 1 perl(Bio::DB::Bam::FetchIterator) 1 perl(Bio::DB::Bam::Pileup) 1 perl(Bio::DB::Bam::PileupWrapper) 1 perl(Bio::DB::Bam::Query) 1 perl(Bio::DB::Bam::ReadIterator) 1 perl(Bio::DB::Bam::SplitAlignmentPart) 1 perl(Bio::DB::Bam::Target) 1 perl(Bio::DB::Sam::Constants) 1 perl(Bio::DB::Sam::Fai) 1 perl(Bio::DB::Sam::SamToGBrowse) 1 perl(Bio::DB::Sam::Segment) 1 perl(Bio::DB::Sam::Segment::Iterator) 1 perl(Bio::DB::Sam) = 1.21 1 perl-Bio-SamTools(x86-64) = 1.21-3.fc14 1 perl-Bio-SamTools = 1.21-3.fc14 1 perl(Bio::SeqFeature::Coverage) Binary provides are Ok. $ resolvedeps-f16 ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm Binary dependencies resolvable. Ok. Package builds in F16 (http://koji.fedoraproject.org/koji/taskinfo?taskID=2910808). Ok. Otherwise package is in line with Fedora and perl packaging guide lines. TODO: Consider upgrading the package to latest upstream version (1.27 currently). Please correct all `FIX' prefixed issues, consider fixing all `TODO' items and provide new spec file. Resolution: Package NOT approved.
Petr, Many thanks for the comments with explanations. I've updated to the latest upstream source and applied most of the required changes. I'll look tonight in more detail to check which bioperl modules are required.
(In reply to comment #10) > Source file is original. Ok. > Description verified from README. > > License is GPL+ or Artistic 2.0 (LICENSE, lib/Bio/DB/Sam.pm). > FIX: Correct License tag to reflect Artistic license version. See > https://fedoraproject.org/wiki/Licensing:Main#Good_Licenses for license names. > Done. > TODO: Replace version string with %{version} macro in Source0. It will make > upgrades smoother. > Done, though some people seem to prefer using the numbers for easier downloading - a matter of preference, I suppose. > TODO: Remove unused commented-out code from spec file. > Done. > TODO: You can remove BuildRoot definition and it's purge in %install section > and %clean section as this is obsolete in Fedora. > I'm hoping to build for EPEL5 - isn't this still needed there? > FIX: Remove samtools-devel from Requires. Or is there any reason? > Done - will do more testing on this to make it's not needed. > TODO: Instead of depending on perl-bioperl, find requires modules as put them > into spec file in perl(MODULE_NAME) notation. This is preferred method in perl > packages as it allows moving modules between RPM packages. > Done. I looked through the source and couldn't find anything beyond what's listed below. > TODO: BuildRequire perl(Exporter) (lib/Bio/DB/Sam/Constants.pm:69) as it can > dual-live in the future (http://search.cpan.org/~ferreira/Exporter/). > TODO: BuildRequire perl(File::Spec) (lib/Bio/DB/Sam/SamToGBrowse.pm:3) as it > can dual-live in the future (http://search.cpan.org/~smueller/PathTools/). > TODO: BuildRequire perl(File::Temp) (lib/Bio/DB/Sam/SamToGBrowse.pm) as it can > dual-live in the future (http://search.cpan.org/~tjenness/File-Temp/). > TODO: BuildRequire perl(Cwd) (lib/Bio/DB/Sam.pm:2078) as it can dual-live in > the futurue (http://search.cpan.org/~smueller/PathTools/). > TODO: BuildRequire perl(Test) for (t/01sam.t:18) as it can dual-live in the > future (http://search.cpan.org/~sburke/Test/). > Done. > All tests pass. Ok. > > $ rpmlint perl-Bio-SamTools.spec ../SRPMS/perl-Bio-SamTools-1.21-3.fc14.src.rpm > ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm > perl-Bio-SamTools.x86_64: E: devel-dependency samtools-devel > perl-Bio-SamTools.x86_64: W: no-manual-page-for-binary bamToGBrowse.pl > 2 packages and 1 specfiles checked; 1 errors, 1 warnings. > FIX: Is the samtools-devel needed at run time? > See above - removed. > $ rpm -q -lv -p ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm > -rwxr-xr-x 1 root root 1913 bře 14 11:26 > /usr/bin/bamToGBrowse.pl > drwxr-xr-x 2 root root 0 bře 14 11:26 > /usr/lib64/perl5/Bio > drwxr-xr-x 2 root root 0 bře 14 11:26 > /usr/lib64/perl5/Bio/DB > drwxr-xr-x 2 root root 0 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Bam > -rw-r--r-- 1 root root 11025 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Bam/AlignWrapper.pm > -rw-r--r-- 1 root root 17097 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Bam/Alignment.pm > -rw-r--r-- 1 root root 335 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Bam/FetchIterator.pm > -rw-r--r-- 1 root root 2499 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Bam/Pileup.pm > -rw-r--r-- 1 root root 1993 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Bam/PileupWrapper.pm > -rw-r--r-- 1 root root 4571 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Bam/Query.pm > -rw-r--r-- 1 root root 402 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Bam/ReadIterator.pm > -rw-r--r-- 1 root root 1026 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Bam/Target.pm > drwxr-xr-x 2 root root 0 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Sam > -rw-r--r-- 1 root root 73347 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Sam.pm > -rw-r--r-- 1 root root 2358 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Sam/Constants.pm > -rw-r--r-- 1 root root 11636 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Sam/SamToGBrowse.pm > -rw-r--r-- 1 root root 2284 bře 14 11:26 > /usr/lib64/perl5/Bio/DB/Sam/Segment.pm > drwxr-xr-x 2 root root 0 bře 14 11:26 > /usr/lib64/perl5/auto/Bio > drwxr-xr-x 2 root root 0 bře 14 11:26 > /usr/lib64/perl5/auto/Bio/DB > drwxr-xr-x 2 root root 0 bře 14 11:26 > /usr/lib64/perl5/auto/Bio/DB/Sam > -rwxr-xr-x 1 root root 277096 bře 14 11:26 > /usr/lib64/perl5/auto/Bio/DB/Sam/Sam.so > drwxr-xr-x 2 root root 0 bře 14 11:26 > /usr/share/doc/perl-Bio-SamTools-1.21 > -rw-r--r-- 1 root root 4850 zář 21 20:39 > /usr/share/doc/perl-Bio-SamTools-1.21/Changes > -rw-r--r-- 1 root root 1156 zář 21 20:39 > /usr/share/doc/perl-Bio-SamTools-1.21/DISCLAIMER > -rw-r--r-- 1 root root 23937 zář 21 20:39 > /usr/share/doc/perl-Bio-SamTools-1.21/LICENSE > -rw-r--r-- 1 root root 1946 zář 21 20:39 > /usr/share/doc/perl-Bio-SamTools-1.21/README > -rw-r--r-- 1 root root 2492 bře 14 11:26 > /usr/share/man/man3/Bio::DB::Bam::AlignWrapper.3pm.gz > -rw-r--r-- 1 root root 7437 bře 14 11:26 > /usr/share/man/man3/Bio::DB::Bam::Alignment.3pm.gz > -rw-r--r-- 1 root root 2908 bře 14 11:26 > /usr/share/man/man3/Bio::DB::Bam::Pileup.3pm.gz > -rw-r--r-- 1 root root 2249 bře 14 11:26 > /usr/share/man/man3/Bio::DB::Bam::PileupWrapper.3pm.gz > -rw-r--r-- 1 root root 2917 bře 14 11:26 > /usr/share/man/man3/Bio::DB::Bam::Query.3pm.gz > -rw-r--r-- 1 root root 1886 bře 14 11:26 > /usr/share/man/man3/Bio::DB::Bam::Target.3pm.gz > -rw-r--r-- 1 root root 20019 bře 14 11:26 > /usr/share/man/man3/Bio::DB::Sam.3pm.gz > -rw-r--r-- 1 root root 2409 bře 14 11:26 > /usr/share/man/man3/Bio::DB::Sam::Constants.3pm.gz > File permissions and layout are Ok. > > $ rpm -q --requires -p ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm > |sort | uniq -c > 1 libc.so.6(GLIBC_2.2.5)(64bit) > 1 libc.so.6(GLIBC_2.3.4)(64bit) > 1 libc.so.6(GLIBC_2.3)(64bit) > 1 libc.so.6(GLIBC_2.4)(64bit) > 1 libc.so.6(GLIBC_2.7)(64bit) > 1 libc.so.6()(64bit) > 1 libgcc_s.so.1(GCC_3.0)(64bit) > 1 libgcc_s.so.1(GCC_3.3.1)(64bit) > 1 libgcc_s.so.1()(64bit) > 1 libz.so.1(ZLIB_1.2.2)(64bit) > 1 libz.so.1(ZLIB_1.2.3.3)(64bit) > 1 libz.so.1()(64bit) > 1 perl(base) > 1 perl(Bio::DB::Bam::Alignment) > 1 perl(Bio::DB::Bam::AlignWrapper) > 1 perl(Bio::DB::Bam::FetchIterator) > 1 perl(Bio::DB::Bam::PileupWrapper) > 1 perl(Bio::DB::Bam::Query) > 1 perl(Bio::DB::Bam::ReadIterator) > 1 perl(Bio::DB::Bam::Target) > 1 perl(Bio::DB::Sam) > 1 perl(Bio::DB::Sam::Constants) > 1 perl(Bio::DB::Sam::SamToGBrowse) > 1 perl(Bio::DB::Sam::Segment) > 1 perl-bioperl > 1 perl(Bio::PrimarySeq) > 1 perl(Bio::SeqFeature::Lite) > 1 perl(Carp) > 1 perl(constant) > 1 perl(Cwd) > 1 perl(Exporter) > 1 perl(File::Basename) > 1 perl(File::Spec) > 1 perl(File::Temp) > 1 perl(:MODULE_COMPAT_5.12.3) > 1 perl(strict) > 1 perl(warnings) > 1 rpmlib(CompressedFileNames) <= 3.0.4-1 > 1 rpmlib(FileDigests) <= 4.6.0-1 > 1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 > 1 rpmlib(PayloadIsXz) <= 5.2-1 > 2 rpmlib(VersionedDependencies) <= 3.0.3-1 > 1 rtld(GNU_HASH) > 1 samtools-devel >= 0.1.8 > 1 /usr/bin/perl > Here you can see some perl-bioperl modules discovered by rpmbuild you can put > into spec files as BuildRequires instead of perl-bioperl. Please be aware this > is just informative. There can be other not discovered dependencies. > See above - I've manually checked for other bioperl module dependencies. > $ rpm -q --provides -p ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm > |sort | uniq -c > 1 perl(Bio::DB::Bam) > 1 perl(Bio::DB::Bam::Alignment) > 1 perl(Bio::DB::Bam::AlignWrapper) > 1 perl(Bio::DB::Bam::FetchIterator) > 1 perl(Bio::DB::Bam::Pileup) > 1 perl(Bio::DB::Bam::PileupWrapper) > 1 perl(Bio::DB::Bam::Query) > 1 perl(Bio::DB::Bam::ReadIterator) > 1 perl(Bio::DB::Bam::SplitAlignmentPart) > 1 perl(Bio::DB::Bam::Target) > 1 perl(Bio::DB::Sam::Constants) > 1 perl(Bio::DB::Sam::Fai) > 1 perl(Bio::DB::Sam::SamToGBrowse) > 1 perl(Bio::DB::Sam::Segment) > 1 perl(Bio::DB::Sam::Segment::Iterator) > 1 perl(Bio::DB::Sam) = 1.21 > 1 perl-Bio-SamTools(x86-64) = 1.21-3.fc14 > 1 perl-Bio-SamTools = 1.21-3.fc14 > 1 perl(Bio::SeqFeature::Coverage) > Binary provides are Ok. > > $ resolvedeps-f16 ../RPMS/x86_64/perl-Bio-SamTools-1.21-3.fc14.x86_64.rpm > Binary dependencies resolvable. Ok. > > Package builds in F16 > (http://koji.fedoraproject.org/koji/taskinfo?taskID=2910808). Ok. > > Otherwise package is in line with Fedora and perl packaging guide lines. > > TODO: Consider upgrading the package to latest upstream version (1.27 > currently). > Done. > > Please correct all `FIX' prefixed issues, consider fixing all `TODO' items and > provide new spec file. > Spec: http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools.spec SRPM: http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools-1.27-1.fc16.src.rpm > Resolution: Package NOT approved.
(In reply to comment #12) > (In reply to comment #10) > > TODO: Replace version string with %{version} macro in Source0. It will make > > upgrades smoother. > > > > Done, though some people seem to prefer using the numbers for easier > downloading - a matter of preference, I suppose. Use of spectool (from the rpmdevtools package) avoids this problem. Use %{version} in your source URLs and then to download the source, you can do: spectool --gf mypackage.spec The tool parses the spec file like rpm would to evaluate what to use for %{version} and then uses wget to do the download. Very handy!
Okay - will mention that the next time someone complains in a review - thanks.
Standalone spec file and spec file in SRPM differ. I will use the standalone one in this review. Spec file changes: --- perl-Bio-SamTools.spec 2011-03-13 02:06:15.000000000 +0100 +++ perl-Bio-SamTools.spec.1 2011-03-14 22:52:48.000000000 +0100 @@ -1,24 +1,28 @@ Name: perl-Bio-SamTools -Version: 1.21 -Release: 3%{?dist} +Version: 1.27 +Release: 1%{?dist} Summary: Bio::SamTools Perl module -License: GPL+ or Artistic +License: Artistic 2.0 Group: Development/Libraries URL: http://search.cpan.org/dist/Bio-SamTools/ -Source0: http://search.cpan.org/CPAN/authors/id/L/LD/LDS/Bio-SamTools-1.21.tar.gz -#Patch0: %%{name}-%%{version}-includes.patch +Source0: http://search.cpan.org/CPAN/authors/id/L/LD/LDS/Bio-SamTools-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: perl >= 0:5.008 -#BuildRequires: perl(Bio::Root::Version) >= 1.005009001 -BuildRequires: perl-bioperl -BuildRequires: perl(ExtUtils::CBuilder) -BuildRequires: perl(Module::Build) -BuildRequires: samtools-devel >= 0.1.8 -BuildRequires: zlib-devel -#Requires: perl(Bio::Root::Version) >= 1.005009001 +BuildRequires: perl(Bio::PrimarySeq) +BuildRequires: perl(Bio::SeqFeature::Lite) +BuildRequires: perl(ExtUtils::CBuilder) +BuildRequires: perl(ExtUtils::MakeMaker) +BuildRequires: perl(Module::Build) +BuildRequires: perl(Exporter) +BuildRequires: perl(File::Spec) +BuildRequires: perl(File::Temp) +BuildRequires: perl(Cwd) +BuildRequires: perl(Test) +BuildRequires: samtools-devel >= 0.1.8 +BuildRequires: zlib-devel + Requires: perl-bioperl Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) -Requires: samtools-devel >= 0.1.8 %{?perl_default_filter} @@ -32,7 +36,6 @@ sed -i 's|= find_sam(|= ("%{_includedir}/samtools", "%{_libdir}"|' Build.PL %build -#export SAMTOOLS="/usr/include/samtools" %{__perl} Build.PL installdirs=vendor optimize="$RPM_OPT_FLAGS" ./Build @@ -60,6 +63,13 @@ %{_bindir}/bamToGBrowse.pl %changelog +* Mon Mar 14 2011 Adam Huffman <bloch> - 1.27-1 +- new upstream version 1.27 +- remove unnecessary runtime samtools-devel R +- more fine-grained module BR for bioperl and others +- fix license +- remove commented cruft + * Sun Mar 13 2011 Adam Huffman <bloch> - 1.21-3 - better fix for samtools headers from Petr Pisar Source file is original. Ok. > License is GPL+ or Artistic 2.0 (LICENSE, lib/Bio/DB/Sam.pm). > FIX: Correct License tag to reflect Artistic license version. See > https://fedoraproject.org/wiki/Licensing:Main#Good_Licenses for license names. > -License: GPL+ or Artistic +License: Artistic 2.0 FIX: The package is dual-licensed. User can select between GPL+ and Artistic 2.0. Please mention both licenses in the License tag. > > TODO: You can remove BuildRoot definition and it's purge in %install > > section and %clean section as this is obsolete in Fedora. > > I'm hoping to build for EPEL5 - isn't this still needed there? Yes, it's needed for EPEL5. Then keeping the BuildRoot code makes sense if you want one spec file for Fedora and EPEL. Build time dependencies are Ok. All tests pass. Ok. > FIX: Remove samtools-devel from Requires. Or is there any reason? -Requires: samtools-devel >= 0.1.8 Ok. > FIX: Is the samtools-devel needed at run time? $ rpmlint perl-Bio-SamTools.spec ../SRPMS/perl-Bio-SamTools-1.27-1.fc14.src.rpm ../RPMS/x86_64/perl-Bio-SamTools-*1.27-1.fc14.x86_64.rpm perl-Bio-SamTools.x86_64: W: no-manual-page-for-binary bamToGBrowse.pl 3 packages and 1 specfiles checked; 0 errors, 1 warnings. rpmlint Ok. $ rpm -q -lv -p ../RPMS/x86_64/perl-Bio-SamTools-1.27-1.fc14.x86_64.rpm -rwxr-xr-x 1 root root 1913 bře 16 15:03 /usr/bin/bamToGBrowse.pl drwxr-xr-x 2 root root 0 bře 16 15:03 /usr/lib64/perl5/Bio drwxr-xr-x 2 root root 0 bře 16 15:03 /usr/lib64/perl5/Bio/DB drwxr-xr-x 2 root root 0 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Bam -rw-r--r-- 1 root root 11125 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Bam/AlignWrapper.pm -rw-r--r-- 1 root root 17097 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Bam/Alignment.pm -rw-r--r-- 1 root root 335 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Bam/FetchIterator.pm -rw-r--r-- 1 root root 2499 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Bam/Pileup.pm -rw-r--r-- 1 root root 1993 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Bam/PileupWrapper.pm -rw-r--r-- 1 root root 4596 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Bam/Query.pm -rw-r--r-- 1 root root 402 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Bam/ReadIterator.pm -rw-r--r-- 1 root root 1046 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Bam/Target.pm drwxr-xr-x 2 root root 0 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Sam -rw-r--r-- 1 root root 73642 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Sam.pm -rw-r--r-- 1 root root 2358 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Sam/Constants.pm -rw-r--r-- 1 root root 12201 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Sam/SamToGBrowse.pm -rw-r--r-- 1 root root 2284 bře 16 15:03 /usr/lib64/perl5/Bio/DB/Sam/Segment.pm drwxr-xr-x 2 root root 0 bře 16 15:03 /usr/lib64/perl5/auto/Bio drwxr-xr-x 2 root root 0 bře 16 15:03 /usr/lib64/perl5/auto/Bio/DB drwxr-xr-x 2 root root 0 bře 16 15:03 /usr/lib64/perl5/auto/Bio/DB/Sam -rwxr-xr-x 1 root root 278152 bře 16 15:03 /usr/lib64/perl5/auto/Bio/DB/Sam/Sam.so drwxr-xr-x 2 root root 0 bře 16 15:03 /usr/share/doc/perl-Bio-SamTools-1.27 -rw-r--r-- 1 root root 5766 pro 20 21:32 /usr/share/doc/perl-Bio-SamTools-1.27/Changes -rw-r--r-- 1 root root 1156 pro 20 21:32 /usr/share/doc/perl-Bio-SamTools-1.27/DISCLAIMER -rw-r--r-- 1 root root 23937 pro 20 21:32 /usr/share/doc/perl-Bio-SamTools-1.27/LICENSE -rw-r--r-- 1 root root 1946 pro 20 21:32 /usr/share/doc/perl-Bio-SamTools-1.27/README -rw-r--r-- 1 root root 2491 bře 16 15:03 /usr/share/man/man3/Bio::DB::Bam::AlignWrapper.3pm.gz -rw-r--r-- 1 root root 7437 bře 16 15:03 /usr/share/man/man3/Bio::DB::Bam::Alignment.3pm.gz -rw-r--r-- 1 root root 2908 bře 16 15:03 /usr/share/man/man3/Bio::DB::Bam::Pileup.3pm.gz -rw-r--r-- 1 root root 2249 bře 16 15:03 /usr/share/man/man3/Bio::DB::Bam::PileupWrapper.3pm.gz -rw-r--r-- 1 root root 2917 bře 16 15:03 /usr/share/man/man3/Bio::DB::Bam::Query.3pm.gz -rw-r--r-- 1 root root 1886 bře 16 15:03 /usr/share/man/man3/Bio::DB::Bam::Target.3pm.gz -rw-r--r-- 1 root root 20078 bře 16 15:03 /usr/share/man/man3/Bio::DB::Sam.3pm.gz -rw-r--r-- 1 root root 2409 bře 16 15:03 /usr/share/man/man3/Bio::DB::Sam::Constants.3pm.gz File layout and permission are Ok. $ rpm -q --requires -p ../RPMS/x86_64/perl-Bio-SamTools-1.27-1.fc14.x86_64.rpm | sort | uniq -c 1 libc.so.6(GLIBC_2.2.5)(64bit) 1 libc.so.6(GLIBC_2.3.4)(64bit) 1 libc.so.6(GLIBC_2.3)(64bit) 1 libc.so.6(GLIBC_2.4)(64bit) 1 libc.so.6(GLIBC_2.7)(64bit) 1 libc.so.6()(64bit) 1 libgcc_s.so.1(GCC_3.0)(64bit) 1 libgcc_s.so.1(GCC_3.3.1)(64bit) 1 libgcc_s.so.1()(64bit) 1 libz.so.1(ZLIB_1.2.2)(64bit) 1 libz.so.1(ZLIB_1.2.3.3)(64bit) 1 libz.so.1()(64bit) 1 perl(base) 1 perl(Bio::DB::Bam::Alignment) 1 perl(Bio::DB::Bam::AlignWrapper) 1 perl(Bio::DB::Bam::FetchIterator) 1 perl(Bio::DB::Bam::PileupWrapper) 1 perl(Bio::DB::Bam::Query) 1 perl(Bio::DB::Bam::ReadIterator) 1 perl(Bio::DB::Bam::Target) 1 perl(Bio::DB::Sam) 1 perl(Bio::DB::Sam::Constants) 1 perl(Bio::DB::Sam::SamToGBrowse) 1 perl(Bio::DB::Sam::Segment) 1 perl-bioperl 1 perl(Bio::PrimarySeq) 1 perl(Bio::SeqFeature::Lite) 1 perl(Carp) 1 perl(constant) 1 perl(Cwd) 1 perl(Exporter) 1 perl(File::Basename) 1 perl(File::Spec) 1 perl(File::Temp) 1 perl(:MODULE_COMPAT_5.12.3) 1 perl(strict) 1 perl(warnings) 1 rpmlib(CompressedFileNames) <= 3.0.4-1 1 rpmlib(FileDigests) <= 4.6.0-1 1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 1 rpmlib(PayloadIsXz) <= 5.2-1 2 rpmlib(VersionedDependencies) <= 3.0.3-1 1 rtld(GNU_HASH) 1 /usr/bin/perl FIX: Is the dependency on perl-bioperl required? In other words, is explicit `Requires: perl-bioperl' statement in spec file needed? Does this package use some scripts or data files directly from perl-bioperl? Or are autodiscovered perl() dependencies, that are part of perl-bioperl, sufficient?. If the later is true, remove the Requires statement from spec file. $ rpm -q --provides -p ../RPMS/x86_64/perl-Bio-SamTools-1.27-1.fc14.x86_64.rpm | sort | uniq -c 1 perl(Bio::DB::Bam) 1 perl(Bio::DB::Bam::Alignment) 1 perl(Bio::DB::Bam::AlignWrapper) 1 perl(Bio::DB::Bam::FetchIterator) 1 perl(Bio::DB::Bam::Pileup) 1 perl(Bio::DB::Bam::PileupWrapper) 1 perl(Bio::DB::Bam::Query) 1 perl(Bio::DB::Bam::ReadIterator) 1 perl(Bio::DB::Bam::SplitAlignmentPart) 1 perl(Bio::DB::Bam::Target) 1 perl(Bio::DB::Sam::Constants) 1 perl(Bio::DB::Sam::Fai) 1 perl(Bio::DB::Sam::SamToGBrowse) 1 perl(Bio::DB::Sam::Segment) 1 perl(Bio::DB::Sam::Segment::Iterator) 1 perl(Bio::DB::Sam) = 1.27 1 perl-Bio-SamTools(x86-64) = 1.27-1.fc14 1 perl-Bio-SamTools = 1.27-1.fc14 1 perl(Bio::SeqFeature::Coverage) Binary provides Ok. $ resolvedeps-f16 ../RPMS/x86_64/perl-Bio-SamTools-1.27-1.fc14.x86_64.rpm Binary dependencies resolvable. Ok. Package builds in F16 (http://koji.fedoraproject.org/koji/taskinfo?taskID=2917368). Ok. Otherwise package is in line with Fedora and perl packaging guidelines. Please correct all `FIX' prefixed issues and submit new spec file. Resolution: Package NOT approved.
New version at: http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools.spec http://verdurin.fedorapeople.org/reviews/perl-Bio-SamTools/perl-Bio-SamTools-1.27-2.fc16.src.rpm
Changed in SPEC file: --- perl-Bio-SamTools.spec 2011-03-14 22:52:48.000000000 +0100 +++ perl-Bio-SamTools.spec.1 2011-03-18 13:56:12.000000000 +0100 @@ -1,8 +1,8 @@ Name: perl-Bio-SamTools Version: 1.27 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Bio::SamTools Perl module -License: Artistic 2.0 +License: GPL+ or Artistic 2.0 Group: Development/Libraries URL: http://search.cpan.org/dist/Bio-SamTools/ Source0: http://search.cpan.org/CPAN/authors/id/L/LD/LDS/Bio-SamTools-%{version}.tar.gz @@ -21,7 +21,7 @@ BuildRequires: samtools-devel >= 0.1.8 BuildRequires: zlib-devel -Requires: perl-bioperl +#Requires: perl-bioperl Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %{?perl_default_filter} @@ -63,6 +63,9 @@ %{_bindir}/bamToGBrowse.pl %changelog +* Fri Mar 18 2011 Adam Huffman <bloch> - 1.27-2 +- remove perl-bioperl reqs. and fix license + * Mon Mar 14 2011 Adam Huffman <bloch> - 1.27-1 - new upstream version 1.27 - remove unnecessary runtime samtools-devel R > FIX: The package is dual-licensed. User can select between GPL+ and Artistic > 2.0. Please mention both licenses in the License tag. -License: Artistic 2.0 +License: GPL+ or Artistic 2.0 Ok. > FIX: Is the dependency on perl-bioperl required? In other words, is explicit > `Requires: perl-bioperl' statement in spec file needed? Does this package use > some scripts or data files directly from perl-bioperl? Or are autodiscovered > perl() dependencies, that are part of perl-bioperl, sufficient?. If the later > is true, remove the Requires statement from spec file. -Requires: perl-bioperl +#Requires: perl-bioperl Ok. $ rpmlint perl-Bio-SamTools.spec ../SRPMS/perl-Bio-SamTools-1.27-2.fc14.src.rpm ../RPMS/x86_64/perl-Bio-SamTools-*1.27-2.* perl-Bio-SamTools.x86_64: W: no-manual-page-for-binary bamToGBrowse.pl 3 packages and 1 specfiles checked; 0 errors, 1 warnings. rpmlint Ok. $ rpm -q --requires -p ../RPMS/x86_64/perl-Bio-SamTools-1.27-2.fc14.x86_64.rpm |sort |uniq -c 1 libc.so.6(GLIBC_2.2.5)(64bit) 1 libc.so.6(GLIBC_2.3.4)(64bit) 1 libc.so.6(GLIBC_2.3)(64bit) 1 libc.so.6(GLIBC_2.4)(64bit) 1 libc.so.6(GLIBC_2.7)(64bit) 1 libc.so.6()(64bit) 1 libgcc_s.so.1(GCC_3.0)(64bit) 1 libgcc_s.so.1(GCC_3.3.1)(64bit) 1 libgcc_s.so.1()(64bit) 1 libz.so.1(ZLIB_1.2.2)(64bit) 1 libz.so.1(ZLIB_1.2.3.3)(64bit) 1 libz.so.1()(64bit) 1 perl(base) 1 perl(Bio::DB::Bam::Alignment) 1 perl(Bio::DB::Bam::AlignWrapper) 1 perl(Bio::DB::Bam::FetchIterator) 1 perl(Bio::DB::Bam::PileupWrapper) 1 perl(Bio::DB::Bam::Query) 1 perl(Bio::DB::Bam::ReadIterator) 1 perl(Bio::DB::Bam::Target) 1 perl(Bio::DB::Sam) 1 perl(Bio::DB::Sam::Constants) 1 perl(Bio::DB::Sam::SamToGBrowse) 1 perl(Bio::DB::Sam::Segment) 1 perl(Bio::PrimarySeq) 1 perl(Bio::SeqFeature::Lite) 1 perl(Carp) 1 perl(constant) 1 perl(Cwd) 1 perl(Exporter) 1 perl(File::Basename) 1 perl(File::Spec) 1 perl(File::Temp) 1 perl(:MODULE_COMPAT_5.12.3) 1 perl(strict) 1 perl(warnings) 1 rpmlib(CompressedFileNames) <= 3.0.4-1 1 rpmlib(FileDigests) <= 4.6.0-1 1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 1 rpmlib(PayloadIsXz) <= 5.2-1 2 rpmlib(VersionedDependencies) <= 3.0.3-1 1 rtld(GNU_HASH) 1 /usr/bin/perl Binary requires are Ok. $ resolvedeps-f16 ../RPMS/x86_64/perl-Bio-SamTools-1.27-2.fc14.x86_64.rpm Binary dependencies resolvable. Ok. Package builds in F16 (http://koji.fedoraproject.org/koji/taskinfo?taskID=2928058). Ok. Package is in line with Fedora and perl packaging guidelines. Resolution: Package APPROVED.
New Package SCM Request ======================= Package Name: perl-Bio-SamTools Short Description: Bio::SamTools Perl module Owners: verdurin Branches: f14 f15 el5 el6 InitialCC: perl-sig
Git done (by process-git-requests).