| |
@@ -1,17 +1,61 @@
|
| |
Name: bowtie
|
| |
- Version: 1.0.1
|
| |
- Release: 14%{?dist}
|
| |
+ Version: 1.2.3
|
| |
+ Release: 1%{?dist}
|
| |
Summary: An ultrafast, memory-efficient short read aligner
|
| |
|
| |
- # The tinythread component is zlib-like, SeqAn is LGPL
|
| |
- License: Artistic 2.0 and zlib and LGPLV3+
|
| |
+ # bowite: Artistic 2.0
|
| |
+ # tinythread.{h,cpp}: zlib
|
| |
+ # SeqAn: GPLv3 and LGPLv3+
|
| |
+ # SeqAn license info is not enough?
|
| |
+ # https://github.com/BenLangmead/bowtie/issues/106
|
| |
+ License: Artistic 2.0 and zlib and GPLv3 and LGPLv3+
|
| |
URL: http://bowtie-bio.sourceforge.net/index.shtml
|
| |
- Source0: http://downloads.sourceforge.net/%{name}-bio/%{name}-%{version}-src.zip
|
| |
- Patch0: %{name}-arm-gcc.patch
|
| |
- #Patch0: %{name}-script-shebang.patch
|
| |
- #Patch1: %{name}-gcc47.patch
|
| |
- BuildRequires: gcc-c++
|
| |
- BuildRequires: perl-generators
|
| |
+ # bowtie v1.2.3 archive file name is wrong.
|
| |
+ # https://github.com/BenLangmead/bowtie/issues/101
|
| |
+ Source0: http://downloads.sourceforge.net/%{name}-bio/%{name}-src-x86_64.zip
|
| |
+ # git clone https://github.com/BenLangmead/bowtie.git
|
| |
+ # cd bowtie
|
| |
+ # git checkout v1.2.3
|
| |
+ # tar czvf bowtie-1.2.3-tests.tgz scripts/test/
|
| |
+ Source1: bowtie-1.2.3-tests.tgz
|
| |
+ # Enable multiple CPU architecture builds.
|
| |
+ # https://github.com/BenLangmead/bowtie/pull/102
|
| |
+ Patch0: bowtie-enable-multi-arch.patch
|
| |
+ # Remove perl-Sys-Info module depenency, as it does not exist on Fedora.
|
| |
+ Patch1: bowtie-test-remove-perl-Sys-Info-dep.patch
|
| |
+ # Fix error narrowing conversion for non x86_64 architectures.
|
| |
+ # https://github.com/BenLangmead/bowtie/pull/95
|
| |
+ Patch2: bowtie-alphabet-error-narrowing.patch
|
| |
+ Requires: python3
|
| |
+ BuildRequires: gcc-c++
|
| |
+ BuildRequires: hostname
|
| |
+ BuildRequires: perl-interpreter
|
| |
+ BuildRequires: perl(Clone)
|
| |
+ BuildRequires: perl(Data::Dumper)
|
| |
+ BuildRequires: perl(Getopt::Long)
|
| |
+ BuildRequires: perl(Test::Deep)
|
| |
+ BuildRequires: python3
|
| |
+ BuildRequires: tbb-devel
|
| |
+ BuildRequires: zlib-devel
|
| |
+ # 32-bit CPU architectures are not supported for bowtie version >= 1.1.0.
|
| |
+ # https://github.com/BenLangmead/bowtie/commit/5f90d3fdad97a8181ddaa96c64faeef1f2b6edf9
|
| |
+ ExcludeArch: i686 armv7hl
|
| |
+
|
| |
+ # Bundled libraries
|
| |
+ # https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:Bundled_Libraries#Requirement_if_you_bundle
|
| |
+ # SeqAn
|
| |
+ # http://www.seqan.de/
|
| |
+ # TODO: Use system seqan instead of bundled one.
|
| |
+ # https://src.fedoraproject.org/rpms/seqan
|
| |
+ # Update to seqan 1.4.2
|
| |
+ # https://github.com/BenLangmead/bowtie/pull/105
|
| |
+ # Note SeqAn will be removed at tne next release of version 1.2.3.
|
| |
+ # https://github.com/BenLangmead/bowtie/issues/106#issuecomment-593426727
|
| |
+ Provides: bundled(seqan) = 1.1
|
| |
+ # TinyThread++
|
| |
+ # https://tinythreadpp.bitsnbites.eu/
|
| |
+ # https://gitorious.org/tinythread/tinythreadpp
|
| |
+ Provides: bundled(tiny-thread) = 1.1
|
| |
|
| |
|
| |
%description
|
| |
@@ -24,47 +68,98 @@
|
| |
%prep
|
| |
%setup -q
|
| |
|
| |
- #Fix compilation on ARM by removing hard-coded Makefile GCC directives
|
| |
- %patch0 -p1 -b .%{name}-arm-gcc.patch
|
| |
+ %patch0 -p1 -b .bowtie-enable-multi-arch.patch
|
| |
+ %patch2 -p1 -b .bowtie-alphabet-error-narrowing.patch
|
| |
|
| |
- #%patch0 -p1
|
| |
- #Fix compilation with GCC 4.7
|
| |
- #%patch1 -p1 -b .%{name}-gcc47.patch
|
| |
+ # Remove the directory to avoid building bowtie with bundled libraries.
|
| |
+ rm -rf third_party/
|
| |
|
| |
- %build
|
| |
- make %{?_smp_mflags} -p EXTRA_FLAGS="%{optflags}"
|
| |
+ # Fix shebang to use system python3.
|
| |
+ for file in $(find . -name "*.py") bowtie bowtie-*; do
|
| |
+ sed -i '1s|/usr/bin/env python|%{__python3}|' "${file}"
|
| |
+ done
|
| |
|
| |
+ # Invalid double quote characters are used in the code.
|
| |
+ # https://github.com/BenLangmead/bowtie/issues/104
|
| |
+ sed -i 's/“/"/g' processor_support.h
|
| |
+ sed -i 's/”/"/g' processor_support.h
|
| |
|
| |
- %install
|
| |
- rm -rf %{buildroot}
|
| |
|
| |
- mkdir -p %{buildroot}/%{_bindir}
|
| |
- mkdir -p %{buildroot}/%{_datadir}/bowtie
|
| |
+ %build
|
| |
+ # Set flags considering bowtie2's testing cases for each architecture.
|
| |
+ # https://github.com/BenLangmead/bowtie2/blob/master/.travis.yml
|
| |
+ # https://github.com/BenLangmead/bowtie/pull/102
|
| |
+ %ifnarch x86_64
|
| |
+ export POPCNT_CAPABILITY=0
|
| |
+ export NO_TBB=1
|
| |
+ %endif
|
| |
|
| |
+ # Set debug flag "-g" to prevent the error
|
| |
+ # "Empty %%files file debugsourcefiles.list".
|
| |
+ %make_build allall EXTRA_FLAGS="-g"
|
| |
|
| |
- install -m 0755 bowtie %{buildroot}/%{_bindir}
|
| |
- install -m 0755 bowtie-build %{buildroot}/%{_bindir}
|
| |
- install -m 0755 bowtie-inspect %{buildroot}/%{_bindir}
|
| |
|
| |
+ %install
|
| |
+ %make_install prefix="%{_usr}" DESTDIR="%{buildroot}"
|
| |
+
|
| |
+ mkdir -p %{buildroot}/%{_datadir}/bowtie
|
| |
cp -a reads %{buildroot}/%{_datadir}/bowtie/
|
| |
cp -a indexes %{buildroot}/%{_datadir}/bowtie/
|
| |
cp -a genomes %{buildroot}/%{_datadir}/bowtie/
|
| |
cp -a scripts %{buildroot}/%{_datadir}/bowtie/
|
| |
|
| |
+ # Install bowtie-*-debug commands used by `bowtie --debug`.
|
| |
+ for cmd in bowtie-*-debug; do
|
| |
+ cp -p "${cmd}" %{buildroot}/%{_bindir}/
|
| |
+ done
|
| |
+
|
| |
+ %check
|
| |
+ for cmd in bowtie bowtie-build bowtie-inspect; do
|
| |
+ ./"${cmd}" --version | grep 'version %{version}'
|
| |
+ done
|
| |
+
|
| |
+ tar xzvf %{SOURCE1}
|
| |
+ cat %{PATCH1} | patch -p1
|
| |
+
|
| |
+ %ifarch s390x
|
| |
+ # The tests works with the number of thread: 1 on s390x.
|
| |
+ # https://github.com/BenLangmead/bowtie/pull/105
|
| |
+ sed -i 's/--threads $nthreads/--threads 1/' scripts/test/simple_tests.pl
|
| |
+ %endif
|
| |
+
|
| |
+ # See Makefile simple-test target.
|
| |
+ scripts/test/simple_tests.pl --bowtie=./bowtie --bowtie-build=./bowtie-build
|
| |
|
| |
|
| |
%files
|
| |
- %doc MANUAL NEWS VERSION AUTHORS TUTORIAL doc/{manual.html,style.css} SeqAn-1.1/*GPL.txt
|
| |
+ %license LICENSE SeqAn-1.1/{GPL,LGPL}.txt
|
| |
+ %doc MANUAL NEWS VERSION AUTHORS TUTORIAL doc/{manual.html,style.css}
|
| |
%dir %{_datadir}/bowtie
|
| |
%{_bindir}/bowtie
|
| |
+ %{_bindir}/bowtie-align-l
|
| |
+ %{_bindir}/bowtie-align-l-debug
|
| |
+ %{_bindir}/bowtie-align-s
|
| |
+ %{_bindir}/bowtie-align-s-debug
|
| |
%{_bindir}/bowtie-build
|
| |
+ %{_bindir}/bowtie-build-l
|
| |
+ %{_bindir}/bowtie-build-l-debug
|
| |
+ %{_bindir}/bowtie-build-s
|
| |
+ %{_bindir}/bowtie-build-s-debug
|
| |
%{_bindir}/bowtie-inspect
|
| |
+ %{_bindir}/bowtie-inspect-l
|
| |
+ %{_bindir}/bowtie-inspect-l-debug
|
| |
+ %{_bindir}/bowtie-inspect-s
|
| |
+ %{_bindir}/bowtie-inspect-s-debug
|
| |
%{_datadir}/bowtie/genomes
|
| |
%{_datadir}/bowtie/indexes
|
| |
%{_datadir}/bowtie/reads
|
| |
%{_datadir}/bowtie/scripts
|
| |
|
| |
+
|
| |
%changelog
|
| |
+ * Fri Feb 28 2020 Jun Aruga <jaruga@redhat.com> - 1.2.3-1
|
| |
+ - Update to upstream release 1.2.3
|
| |
+
|
| |
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-14
|
| |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
| |
|
| |
This PR is to update bowtie to the latest version 1.2.3.
This PR is working in progress.
Because I am trying to use rpms/seaqn version 1.4.2 (= The latest version of 1.X) in
bowtie.spec
, sending the PR to the bowite upstream.https://github.com/BenLangmead/bowtie/pull/105
seqan
http://packages.seqan.de/
https://github.com/seqan/seqan
Because on Fedora, using dependency RPM is encouraged rather than using bundled library.
https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:Bundled_Libraries
Another note is right now
bowtie-arm-gcc.patch
is registered like a source.This is wrong state.
We can fix this by running
fepkg import
for the updatedbowite.spec
.Maybe we can use seqan-devel (version 1.4.2) as the build dependency.
See my upstream work to use seqan 1.4.2.
https://github.com/BenLangmead/bowtie/pull/105
https://koji.fedoraproject.org/koji/taskinfo?taskID=41998858
rpmlint
You can check the rpmlint like this.