The package rpms/bowtie2.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/bowtie2.git/commit/?id=5a5cc222bffbf....
Change: +%ifnarch x86_64
Thanks.
Full change: ============
commit 5a5cc222bffbf8fb11622102366a53d8a023a245 Author: Jun Aruga jaruga@redhat.com Date: Tue May 5 20:58:11 2020 +0200
Initial import (rhbz#1824348).
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..575d5f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/v2.4.1.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 6b09bc3..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# bowtie2 - -The bowtie2 package \ No newline at end of file diff --git a/bowtie2-makefile-cxxflags.patch b/bowtie2-makefile-cxxflags.patch new file mode 100644 index 0000000..d3f7e5c --- /dev/null +++ b/bowtie2-makefile-cxxflags.patch @@ -0,0 +1,31 @@ +diff --git a/Makefile b/Makefile +index 9b6a46e..df5a817 100644 +--- a/Makefile ++++ b/Makefile +@@ -207,18 +207,18 @@ else ifeq (amd64,$(shell uname -m)) + else ifeq (aarch64,$(shell uname -m)) + BITS := 64 + SSE_FLAG := +- CXXFLAGS := -fopenmp-simd +- CPPFLAGS := -Ithird_party/simde ++ CXXFLAGS += -fopenmp-simd ++ CPPFLAGS += -Ithird_party/simde + else ifeq (s390x,$(shell uname -m)) + BITS := 64 + SSE_FLAG := +- CXXFLAGS := -fopenmp-simd +- CPPFLAGS := -Ithird_party/simde ++ CXXFLAGS += -fopenmp-simd ++ CPPFLAGS += -Ithird_party/simde + SANITIZER_FLAGS := + else ifeq (ppc64le,$(shell uname -m)) + BITS := 64 + SSE_FLAG := +- CXXFLAGS := -fopenmp-simd ++ CXXFLAGS += -fopenmp-simd + CPPFLAGS += -Ithird_party/simde + SANITIZER_FLAGS := + endif +-- +2.25.4 + diff --git a/bowtie2.spec b/bowtie2.spec new file mode 100644 index 0000000..c8d4954 --- /dev/null +++ b/bowtie2.spec @@ -0,0 +1,134 @@ +Name: bowtie2 +Version: 2.4.1 +Release: 1%{?dist} +# Use the word "ultra fast" rather than "ultrafast". +# https://github.com/BenLangmead/bowtie2/issues/291 +Summary: An ultra fast and memory-efficient read aligner +# * bowtie2: GPLv3+ +# * TinyThread++: zlib, for files: tinythread.{h,cpp} fast_mutex.h +# https://tinythreadpp.bitsnbites.eu/ +# https://gitorious.org/tinythread/tinythreadpp +License: GPLv3+ and zlib +URL: http://bowtie-bio.sourceforge.net/bowtie2/index.shtml +Source0: https://github.com/BenLangmead/%%7Bname%7D/archive/v%%7Bversion%7D.tar.gz +# Fix to build with given CXXFLAGS. +# https://github.com/BenLangmead/bowtie2/pull/296 +Patch0: bowtie2-makefile-cxxflags.patch +BuildRequires: gcc-c++ +BuildRequires: help2man +BuildRequires: libasan +BuildRequires: libubsan +BuildRequires: perl-generators +BuildRequires: perl-interpreter +BuildRequires: perl(Clone) +BuildRequires: perl(File::Which) +BuildRequires: perl(FindBin) +BuildRequires: perl(Sys::Hostname) +BuildRequires: perl(Test::Deep) +BuildRequires: perl(lib) +BuildRequires: python3 +%ifarch x86_64 +BuildRequires: tbb-devel +%else +BuildRequires: simde-devel +%endif +BuildRequires: zlib-devel +# * 32-bit CPU architectures: not supported. See Makefile. +# * s390x: not ready to ship it. We take the conservative way. +# as it is used for the research. +# https://github.com/BenLangmead/bowtie2/issues/286 +ExcludeArch: %{ix86} %{arm} s390x + +# TinyThread++ +Provides: bundled(tiny-thread) = 1.1 + +%description + +Bowtie 2 is an ultra fast and memory-efficient tool for aligning sequencing +reads to long reference sequences. It is particularly good at aligning reads +of about 50 up to 100s or 1,000s of characters, and particularly good at +aligning to relatively long (e.g. mammalian) genomes. Bowtie 2 indexes the +genome with an FM Index to keep its memory footprint small: for the human +genome, its memory footprint is typically around 3.2 GB. Bowtie 2 supports +gapped, local, and paired-end alignment modes. + +%prep +%autosetup + +# Remove the directory to avoid building bowtie with bundled libraries. +rm -rf third_party + +# Invalid double quote characters are used in the code. +# https://github.com/BenLangmead/bowtie2/issues/278 +sed -e 's//"/g' -e 's//"/g' -i processor_support.h + +# Fix shebang to use the system interpreters. +sed -i '1s|/usr/bin/env perl|%{_bindir}/perl|' bowtie2 +for file in bowtie2-{build,inspect}; do + sed -i '1s|/usr/bin/env python3|%{__python3}|' "${file}" +done + +%build +# Set build flags. +# https://src.fedoraproject.org/rpms/redhat-rpm-config/blob/master/f/buildflag... +%set_build_flags +# Set flags considering the upstream testing cases for each architecture. +# https://github.com/BenLangmead/bowtie2/blob/master/.travis.yml +%ifnarch x86_64 +export POPCNT_CAPABILITY=0 +export NO_TBB=1 +%endif + +# Build with the target "all" rather than "allall" +# to skip the builds of debug and sanitized binaries +# saving the build time. +%make_build all + +%install +%make_install PREFIX="%{_prefix}" + +mkdir -p %{buildroot}%{_mandir}/man1 +# Set version string explicitly to avoid showing the wrong command. +# https://github.com/BenLangmead/bowtie2/issues/294 +for cmd in bowtie2 bowtie2-{build,inspect}; do + help2man -N -s 1 -o "%{buildroot}%{_mandir}/man1/${cmd}.1" \ + --version-string="%{version}" \ + "%{buildroot}%{_bindir}/${cmd}" +done + +%check +for cmd in bowtie2 bowtie2-{build,inspect}; do + ./"${cmd}" --version | grep 'version %{version}' +done + +# Skip tests for the debug and sanitized binaries not shipped. +sed -i '/my $binary_type/ s/"release", "debug", "sanitized"/"release"/' \ + scripts/test/simple_tests.pl + +# See scripts/test/simple_tests.sh for the options. +ASAN_OPTIONS="halt_on_error=1" \ +UBSAN_OPTIONS="halt_on_error=1" \ +scripts/test/simple_tests.pl \ + --bowtie2=./bowtie2 \ + --bowtie2-build=./bowtie2-build \ + --compressed + +%files +%doc AUTHORS MANUAL MANUAL.markdown NEWS TUTORIAL +%license LICENSE +%{_bindir}/bowtie2 +%{_bindir}/bowtie2-align-l +%{_bindir}/bowtie2-align-s +%{_bindir}/bowtie2-build +%{_bindir}/bowtie2-build-l +%{_bindir}/bowtie2-build-s +%{_bindir}/bowtie2-inspect +%{_bindir}/bowtie2-inspect-l +%{_bindir}/bowtie2-inspect-s +%{_mandir}/man1/bowtie2.1* +%{_mandir}/man1/bowtie2-build.1* +%{_mandir}/man1/bowtie2-inspect.1* + +%changelog +* Sat Mar 28 2020 Jun Aruga jaruga@redhat.com - 2.4.1-1 +- Initial package diff --git a/sources b/sources new file mode 100644 index 0000000..472934d --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (v2.4.1.tar.gz) = b9bd5e0009b8a05b85f882ea79ce4984b46eed1658012b0225120ce3de66f81fda5dd200c95ce144bed808334f959c2fe986849b0a644d85514d388b00282f67