53e5276
Name:		bowtie
a1f2cd1
Version:	1.2.3
a1f2cd1
Release:	1%{?dist}
53e5276
Summary:	An ultrafast, memory-efficient short read aligner
53e5276
a1f2cd1
# bowite: Artistic 2.0
a1f2cd1
# tinythread.{h,cpp}: zlib
a1f2cd1
# SeqAn: GPLv3 and LGPLv3+
a1f2cd1
# SeqAn license info is not enough?
a1f2cd1
# https://github.com/BenLangmead/bowtie/issues/106
a1f2cd1
License:	Artistic 2.0 and zlib and GPLv3 and LGPLv3+
53e5276
URL:		http://bowtie-bio.sourceforge.net/index.shtml
a1f2cd1
# bowtie v1.2.3 archive file name is wrong.
a1f2cd1
# https://github.com/BenLangmead/bowtie/issues/101
a1f2cd1
Source0:	http://downloads.sourceforge.net/%{name}-bio/%{name}-src-x86_64.zip
a1f2cd1
# git clone https://github.com/BenLangmead/bowtie.git
a1f2cd1
# cd bowtie
a1f2cd1
# git checkout v1.2.3
a1f2cd1
# tar czvf bowtie-1.2.3-tests.tgz scripts/test/
a1f2cd1
Source1:	bowtie-1.2.3-tests.tgz
a1f2cd1
# Enable multiple CPU architecture builds.
a1f2cd1
# https://github.com/BenLangmead/bowtie/pull/102
a1f2cd1
Patch0:		bowtie-enable-multi-arch.patch
a1f2cd1
# Remove perl-Sys-Info module depenency, as it does not exist on Fedora.
a1f2cd1
Patch1:		bowtie-test-remove-perl-Sys-Info-dep.patch
a1f2cd1
# Fix error narrowing conversion for non x86_64 architectures.
a1f2cd1
# https://github.com/BenLangmead/bowtie/pull/95
a1f2cd1
Patch2:		bowtie-alphabet-error-narrowing.patch
a1f2cd1
Requires:	python3
a1f2cd1
BuildRequires:	gcc-c++
a1f2cd1
BuildRequires:	hostname
a1f2cd1
BuildRequires:	perl-interpreter
a1f2cd1
BuildRequires:	perl(Clone)
a1f2cd1
BuildRequires:	perl(Data::Dumper)
a1f2cd1
BuildRequires:	perl(Getopt::Long)
a1f2cd1
BuildRequires:	perl(Test::Deep)
a1f2cd1
BuildRequires:	python3
a1f2cd1
BuildRequires:	tbb-devel
a1f2cd1
BuildRequires:	zlib-devel
a1f2cd1
# 32-bit CPU architectures are not supported for bowtie version >= 1.1.0.
a1f2cd1
# https://github.com/BenLangmead/bowtie/commit/5f90d3fdad97a8181ddaa96c64faeef1f2b6edf9
a1f2cd1
ExcludeArch: i686 armv7hl
a1f2cd1
a1f2cd1
# Bundled libraries
a1f2cd1
# https://fedoraproject.org/wiki/Bundled_Libraries?rd=Packaging:Bundled_Libraries#Requirement_if_you_bundle
a1f2cd1
# SeqAn
a1f2cd1
# http://www.seqan.de/
a1f2cd1
# TODO: Use system seqan instead of bundled one.
a1f2cd1
# https://src.fedoraproject.org/rpms/seqan
a1f2cd1
# Update to seqan 1.4.2
a1f2cd1
# https://github.com/BenLangmead/bowtie/pull/105
a1f2cd1
# Note SeqAn will be removed at tne next release of version 1.2.3.
a1f2cd1
# https://github.com/BenLangmead/bowtie/issues/106#issuecomment-593426727
a1f2cd1
Provides: bundled(seqan) = 1.1
a1f2cd1
# TinyThread++
a1f2cd1
# https://tinythreadpp.bitsnbites.eu/
a1f2cd1
# https://gitorious.org/tinythread/tinythreadpp
a1f2cd1
Provides: bundled(tiny-thread) = 1.1
53e5276
53e5276
53e5276
%description
53e5276
53e5276
Bowtie, an ultrafast, memory-efficient short read aligner for short
53e5276
DNA sequences (reads) from next-gen sequencers. Please cite: Langmead
53e5276
B, et al. Ultrafast and memory-efficient alignment of short DNA
53e5276
sequences to the human genome. Genome Biol 10:R25.
53e5276
53e5276
%prep
53e5276
%setup -q
53e5276
a1f2cd1
%patch0 -p1 -b .bowtie-enable-multi-arch.patch
a1f2cd1
%patch2 -p1 -b .bowtie-alphabet-error-narrowing.patch
a070867
a1f2cd1
# Remove the directory to avoid building bowtie with bundled libraries.
a1f2cd1
rm -rf third_party/
53e5276
a1f2cd1
# Fix shebang to use system python3.
a1f2cd1
for file in $(find . -name "*.py") bowtie bowtie-*; do
a1f2cd1
  sed -i '1s|/usr/bin/env python|%{__python3}|' "${file}"
a1f2cd1
done
53e5276
a1f2cd1
# Invalid double quote characters are used in the code.
a1f2cd1
# https://github.com/BenLangmead/bowtie/issues/104
a1f2cd1
sed -i 's/“/"/g' processor_support.h
a1f2cd1
sed -i 's/”/"/g' processor_support.h
53e5276
53e5276
a1f2cd1
%build
a1f2cd1
# Set flags considering bowtie2's testing cases for each architecture.
a1f2cd1
# https://github.com/BenLangmead/bowtie2/blob/master/.travis.yml
a1f2cd1
# https://github.com/BenLangmead/bowtie/pull/102
a1f2cd1
%ifnarch x86_64
a1f2cd1
export POPCNT_CAPABILITY=0
a1f2cd1
export NO_TBB=1
a1f2cd1
%endif
53e5276
a1f2cd1
# Set debug flag "-g" to prevent the error
a1f2cd1
# "Empty %%files file debugsourcefiles.list".
a1f2cd1
%make_build allall EXTRA_FLAGS="-g"
53e5276
53e5276
a1f2cd1
%install
a1f2cd1
%make_install prefix="%{_usr}" DESTDIR="%{buildroot}"
a1f2cd1
a1f2cd1
mkdir -p %{buildroot}/%{_datadir}/bowtie
53e5276
cp -a reads %{buildroot}/%{_datadir}/bowtie/
53e5276
cp -a indexes %{buildroot}/%{_datadir}/bowtie/
53e5276
cp -a genomes %{buildroot}/%{_datadir}/bowtie/
53e5276
cp -a scripts %{buildroot}/%{_datadir}/bowtie/
53e5276
a1f2cd1
# Install bowtie-*-debug commands used by `bowtie --debug`.
a1f2cd1
for cmd in bowtie-*-debug; do
a1f2cd1
  cp -p "${cmd}" %{buildroot}/%{_bindir}/
a1f2cd1
done
a1f2cd1
a1f2cd1
%check
a1f2cd1
for cmd in bowtie bowtie-build bowtie-inspect; do
a1f2cd1
  ./"${cmd}" --version | grep 'version %{version}'
a1f2cd1
done
a1f2cd1
a1f2cd1
tar xzvf %{SOURCE1}
a1f2cd1
cat %{PATCH1} | patch -p1
a1f2cd1
a1f2cd1
%ifarch s390x
a1f2cd1
# The tests works with the number of thread: 1 on s390x.
a1f2cd1
# https://github.com/BenLangmead/bowtie/pull/105
a1f2cd1
sed -i 's/--threads $nthreads/--threads 1/' scripts/test/simple_tests.pl
a1f2cd1
%endif
a1f2cd1
a1f2cd1
# See Makefile simple-test target.
a1f2cd1
scripts/test/simple_tests.pl --bowtie=./bowtie --bowtie-build=./bowtie-build
53e5276
53e5276
53e5276
%files
a1f2cd1
%license LICENSE SeqAn-1.1/{GPL,LGPL}.txt
a1f2cd1
%doc MANUAL NEWS VERSION AUTHORS TUTORIAL doc/{manual.html,style.css}
53e5276
%dir %{_datadir}/bowtie
53e5276
%{_bindir}/bowtie
a1f2cd1
%{_bindir}/bowtie-align-l
a1f2cd1
%{_bindir}/bowtie-align-l-debug
a1f2cd1
%{_bindir}/bowtie-align-s
a1f2cd1
%{_bindir}/bowtie-align-s-debug
53e5276
%{_bindir}/bowtie-build
a1f2cd1
%{_bindir}/bowtie-build-l
a1f2cd1
%{_bindir}/bowtie-build-l-debug
a1f2cd1
%{_bindir}/bowtie-build-s
a1f2cd1
%{_bindir}/bowtie-build-s-debug
53e5276
%{_bindir}/bowtie-inspect
a1f2cd1
%{_bindir}/bowtie-inspect-l
a1f2cd1
%{_bindir}/bowtie-inspect-l-debug
a1f2cd1
%{_bindir}/bowtie-inspect-s
a1f2cd1
%{_bindir}/bowtie-inspect-s-debug
53e5276
%{_datadir}/bowtie/genomes
53e5276
%{_datadir}/bowtie/indexes
53e5276
%{_datadir}/bowtie/reads
53e5276
%{_datadir}/bowtie/scripts
53e5276
a1f2cd1
53e5276
%changelog
a1f2cd1
* Fri Feb 28 2020 Jun Aruga <jaruga@redhat.com> - 1.2.3-1
a1f2cd1
- Update to upstream release 1.2.3
a1f2cd1
7b3850d
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-13
7b3850d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
7b3850d
f9df311
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-12
f9df311
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
f9df311
84095ee
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-11
84095ee
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
84095ee
1f3ffba
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-10
1f3ffba
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
1f3ffba
8b5bd87
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-9
8b5bd87
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
8b5bd87
a5d1549
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-8
a5d1549
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
a5d1549
ddc8a03
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-7
ddc8a03
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
ddc8a03
f4239ae
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-6
f4239ae
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
f4239ae
3c60eaf
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.1-5
3c60eaf
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
3c60eaf
2facf96
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 1.0.1-4
2facf96
- Rebuilt for GCC 5 C++11 ABI change
2facf96
b07a2bf
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.1-3
b07a2bf
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
b07a2bf
a15f767
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.1-2
a15f767
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
a15f767
7c00d21
* Mon Jun 02 2014 Adam Huffman <bloch@verdurin.com> - 1.0.1-1
7c00d21
- Update to upstream release 1.0.1
7c00d21
89027f5
* Wed Dec 04 2013 Adam Huffman <bloch@verdurin.com> - 1.0.0-2
89027f5
- Correct licence information (thanks to Dave Love)
89027f5
- Reorganise documentation (thanks to Dave Love)
a070867
- Fix compilation on ARM
89027f5
89027f5
1ebfc81
* Wed Aug 07 2013 Adam Huffman <bloch@verdurin.com> - 1.0.0-1
1ebfc81
- Update to stable upstream release 1.0.0
c644d5b
- Remove unnecessary script patch
1ebfc81
1ebfc81
88b993a
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12.7-8
88b993a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
88b993a
038407c
* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 0.12.7-7
038407c
- Perl 5.18 rebuild
038407c
a882f15
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12.7-6
a882f15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
a882f15
bf8c2c0
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12.7-5
bf8c2c0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
bf8c2c0
51044c5
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12.7-4
51044c5
- Rebuilt for c++ ABI breakage
51044c5
179ce90
* Mon Jan  9 2012 Adam Huffman <verdurin@fedoraproject.org> - 0.12.7-3
179ce90
- add patch to fix compilation with GCC 4.7
179ce90
53e5276
* Mon Jun 27 2011 Adam Huffman <bloch@verdurin.com> - 0.12.7-2
53e5276
- add missing doc/ 
53e5276
- add patch to fix Perl script without shebang
53e5276
53e5276
* Mon Sep 13 2010 Adam Huffman <bloch@verdurin.com> - 0.12.7-1
53e5276
- new upstream release 0.12.7
53e5276
- changelog at http://bowtie-bio.sourceforge.net/index.shtml
53e5276
53e5276
* Tue Aug 31 2010 Adam Huffman <bloch@verdurin.com> - 0.12.5-3
53e5276
- really fix compilation flags
53e5276
53e5276
* Wed Aug 25 2010 Adam Huffman <bloch@verdurin.com> - 0.12.5-2
53e5276
- fix compilation flags
53e5276
53e5276
* Mon Aug  2 2010 Adam Huffman <bloch@verdurin.com> - 0.12.5-1
53e5276
- initial version
53e5276