# Drop automatic provides of shared modules not used by anything else %global __provides_exclude %{?__provides_exclude:__provides_exclude|}^lib %global __requires_exclude %{?__requires_exclude:__requires_exclude|}^libalign_format.so %global __requires_exclude %__requires_exclude|^libbiblio.so %global __requires_exclude %__requires_exclude|^libblastdb_format.so %global __requires_exclude %__requires_exclude|^libblastdb.so %global __requires_exclude %__requires_exclude|^libblastinput.so %global __requires_exclude %__requires_exclude|^libblast_services.so %global __requires_exclude %__requires_exclude|^libblast.so %global __requires_exclude %__requires_exclude|^libblastxml2.so %global __requires_exclude %__requires_exclude|^libblastxml.so %global __requires_exclude %__requires_exclude|^libcomposition_adjustment.so %global __requires_exclude %__requires_exclude|^libconnect.so %global __requires_exclude %__requires_exclude|^libcreaders.so %global __requires_exclude %__requires_exclude|^libentrez2cli.so %global __requires_exclude %__requires_exclude|^libentrez2.so %global __requires_exclude %__requires_exclude|^libgbseq.so %global __requires_exclude %__requires_exclude|^libgene_info.so %global __requires_exclude %__requires_exclude|^libgeneral.so %global __requires_exclude %__requires_exclude|^libgenome_collection.so %global __requires_exclude %__requires_exclude|^libid1.so %global __requires_exclude %__requires_exclude|^libid2.so %global __requires_exclude %__requires_exclude|^libid2_split.so %global __requires_exclude %__requires_exclude|^libigblast.so %global __requires_exclude %__requires_exclude|^libmedlars.so %global __requires_exclude %__requires_exclude|^libmedline.so %global __requires_exclude %__requires_exclude|^libmlacli.so %global __requires_exclude %__requires_exclude|^libmla.so %global __requires_exclude %__requires_exclude|^libncbi_xloader_blastdb_rmt.so %global __requires_exclude %__requires_exclude|^libncbi_xloader_blastdb.so %global __requires_exclude %__requires_exclude|^libncbi_xloader_genbank.so %global __requires_exclude %__requires_exclude|^libncbi_xreader_cache.so %global __requires_exclude %__requires_exclude|^libncbi_xreader_id1.so %global __requires_exclude %__requires_exclude|^libncbi_xreader_id2.so %global __requires_exclude %__requires_exclude|^libncbi_xreader.so %global __requires_exclude %__requires_exclude|^libpubmed.so %global __requires_exclude %__requires_exclude|^libpub.so %global __requires_exclude %__requires_exclude|^libscoremat.so %global __requires_exclude %__requires_exclude|^libseqcode.so %global __requires_exclude %__requires_exclude|^libseqdb.so %global __requires_exclude %__requires_exclude|^libseqedit.so %global __requires_exclude %__requires_exclude|^libseqmasks_io.so %global __requires_exclude %__requires_exclude|^libseqset.so %global __requires_exclude %__requires_exclude|^libseq.so %global __requires_exclude %__requires_exclude|^libseqsplit.so %global __requires_exclude %__requires_exclude|^libsequtil.so %global __requires_exclude %__requires_exclude|^libsubmit.so %global __requires_exclude %__requires_exclude|^libtables.so %global __requires_exclude %__requires_exclude|^libtaxon1.so %global __requires_exclude %__requires_exclude|^libtest_boost.so %global __requires_exclude %__requires_exclude|^libtest_mt.so %global __requires_exclude %__requires_exclude|^libvalid.so %global __requires_exclude %__requires_exclude|^libvariation.so %global __requires_exclude %__requires_exclude|^libwritedb.so %global __requires_exclude %__requires_exclude|^libxalgoblastdbindex.so %global __requires_exclude %__requires_exclude|^libxalgodustmask.so %global __requires_exclude %__requires_exclude|^libxalgosegmask.so %global __requires_exclude %__requires_exclude|^libxalgowinmask.so %global __requires_exclude %__requires_exclude|^libxalnmgr.so %global __requires_exclude %__requires_exclude|^libxblastformat.so %global __requires_exclude %__requires_exclude|^libxblast.so %global __requires_exclude %__requires_exclude|^libxcgi.so %global __requires_exclude %__requires_exclude|^libxcleanup.so %global __requires_exclude %__requires_exclude|^libxcompress.so %global __requires_exclude %__requires_exclude|^libxconnect.so %global __requires_exclude %__requires_exclude|^libxconnext.so %global __requires_exclude %__requires_exclude|^libxformat.so %global __requires_exclude %__requires_exclude|^libxhtml.so %global __requires_exclude %__requires_exclude|^libxncbi.so %global __requires_exclude %__requires_exclude|^libxnetblastcli.so %global __requires_exclude %__requires_exclude|^libxnetblast.so %global __requires_exclude %__requires_exclude|^libxobjmgr.so %global __requires_exclude %__requires_exclude|^libxobjread.so %global __requires_exclude %__requires_exclude|^libxobjsimple.so %global __requires_exclude %__requires_exclude|^libxobjutil.so %global __requires_exclude %__requires_exclude|^libxregexp.so %global __requires_exclude %__requires_exclude|^libxser.so %global __requires_exclude %__requires_exclude|^libxutil.so Name: ncbi-blast+ Version: 2.2.31 Release: 4%{?dist} License: Public Domain and MIT Url: http://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=BlastDocs&DOC_TYPE=Download Source0: ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-%{version}+-src.tar.gz # Ignore unknown ./configure options to be able to use configure rpm macro Patch1: ncbi-blast+-2.2.28-configure.patch Patch2: ncbi-blast+-2.2.30-gcc5.patch Summary: NCBI BLAST+ finds regions of similarity between biological sequences BuildRequires: hostname BuildRequires: boost-devel BuildRequires: bzip2-devel BuildRequires: pcre-devel BuildRequires: zlib-devel BuildRequires: gnutls-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel %description The NCBI Basic Local Alignment Search Tool (BLAST) finds regions of local similarity between sequences. The program compares nucleotide or protein sequences to sequence databases and calculates the statistical significance of matches. BLAST can be used to infer functional and evolutionary relationships between sequences as well as help identify members of gene families. %prep %setup -q -n ncbi-blast-%{version}+-src %patch1 -p1 %patch2 -p1 # Remove executable mode from header files find c++ -type f -name *.h -exec chmod -x {} \; find c++ -type f -name *.hpp -exec chmod -x {} \; find c++ -type f -name *.cpp -exec chmod -x {} \; # Remove sources of all projects we do not build rm -rf c++/src/build-system/project_tree_builder_gui/ rm -rf c++/src/util/compress/bzip2 rm -rf c++/src/util/compress/zlib %build export CFLAGS="%{optflags} -Wno-narrowing" export CPPFLAGS="%{optflags} -Wno-narrowing" pushd c++ # We are not using configure macro here, because ncbi-blast has special # configure script which does not understand all options passed to it # by configure macro... # This package also contains runpath. This is expected and according to # guidelines, because rpath is used for internal libraries shared across # various tools in this packages. If we link them statically, the binary # .rpm would have >100MB. %configure --with-dll --with-mt --without-autodep \ --without-makefile-auto-update --with-flat-makefile --without-caution \ --without-dbapi --without-lzo --with-runpath=%{_libdir}/ncbi-blast+ \ --with-build-root=BUILD --without-strip --with-symbols popd pushd c++/BUILD/build make -f Makefile.flat all_projects="algo/blast/ app/ objmgr/ objtools/align_format/ objtools/blast/" %{_smp_mflags} popd %install mkdir -p %{buildroot}/%_bindir mkdir -p %{buildroot}/%{_libdir}/ncbi-blast+ install -p -m755 c++/BUILD/lib/*.so %{buildroot}/%{_libdir}/ncbi-blast+ pushd c++/BUILD/bin install -p -m755 blastp blastn blastx tblastn tblastx psiblast rpsblast \ rpstblastn blast_formatter deltablast makembindex segmasker dustmasker \ windowmasker makeblastdb makeprofiledb blastdbcmd blastdb_aliastool \ convert2blastmask blastdbcheck legacy_blast.pl update_blastdb.pl \ %{buildroot}/%_bindir popd %files %doc c++/scripts/projects/blast/ChangeLog %doc c++/scripts/projects/blast/README %doc c++/scripts/projects/blast/LICENSE %_bindir/* %{_libdir}/ncbi-blast+ %changelog * Tue Aug 25 2015 Jan Kaluza - 2.2.31-4 - fix broken requires * Wed Jul 29 2015 Fedora Release Engineering - 2.2.31-3 - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 * Wed Jul 22 2015 David Tardon - 2.2.31-2 - rebuild for Boost 1.58 * Mon Jul 20 2015 Jan Kaluza - 2.2.31-1 - update to new upstream version 2.2.31 * Thu Jun 18 2015 Ralf Corsépius - 2.2.30-4 - Add gcc-5.x support (ncbi-blast+-2.2.30-gcc5.patch, Fix FTBFS). * Wed Jun 17 2015 Fedora Release Engineering - 2.2.30-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Tue Jan 27 2015 Petr Machata - 2.2.30-2 - Rebuild for boost 1.57.0 * Wed Nov 05 2014 Jan Kaluza - 2.2.30-1 - update to new upstream versino 2.2.30 * Sun Aug 17 2014 Fedora Release Engineering - 2.2.29-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Sat Jun 07 2014 Fedora Release Engineering - 2.2.29-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Thu May 22 2014 Petr Machata - 2.2.29-3 - Rebuild for boost 1.55.0 - Don't directly include internal GCC headers (ncbi-blast+-2.2.29-ptr.patch) * Tue Jan 28 2014 Jan Kaluza - 2.2.29-2 - build with debugging symbols (#1058441) * Thu Jan 23 2014 Jan Kaluza - 2.2.29-1 - update to new upstream version 2.2.29 * Thu Oct 03 2013 Jan Kaluza - 2.2.28-2 - use RPM configure macro instead of ./configure (#1007956) * Tue Aug 20 2013 Jan Kaluza - 2.2.28-1 - changed .spec file to fit Fedora Packaging Guidelines * Mon Jul 21 2008 Christiam Camacho - 2.2.26-1 - See ChangeLog file