Blob Blame History Raw
%global with_py2OpenMS 1
%global with_py3OpenMS 1

%global with_check 0

Name:      openms
Summary:   LC/MS data management and analyses
Version:   2.3.0
Release:   7%{?dist}
License:   BSD
URL:       http://www.openms.de/
Source0:   https://github.com/OpenMS/OpenMS/archive/Release%{version}.tar.gz#/OpenMS-Release%{version}.tar.gz

##TOPPView, TOPPAS, INIFileEditor .desktop and icon files
Source1:   https://raw.githubusercontent.com/OpenMS/OpenMS/develop/src/openms_gui/source/VISUAL/ICONS/TOPPView.png
Source2:   https://raw.githubusercontent.com/OpenMS/OpenMS/develop/src/openms_gui/source/VISUAL/ICONS/TOPPAS.png
Source3:   https://raw.githubusercontent.com/OpenMS/OpenMS/develop/src/openms_gui/source/VISUAL/ICONS/INIFileEditor.png
Source4:   inifileeditor.desktop

BuildRequires: qt-devel
BuildRequires: qt-x11
BuildRequires: qtwebkit-devel
BuildRequires: cmake
BuildRequires: coin-or-Cbc-devel
BuildRequires: coin-or-Cgl-devel
BuildRequires: coin-or-Clp-devel
BuildRequires: coin-or-CoinUtils-devel
BuildRequires: coin-or-Osi-devel
BuildRequires: libsvm-devel
BuildRequires: gcc-c++
BuildRequires: gsl-devel
BuildRequires: glpk-devel
BuildRequires: xerces-c-devel
BuildRequires: boost-devel
BuildRequires: seqan-devel <= 1.4.2
BuildRequires: sqlite-devel
BuildRequires: wildmagic5-devel
BuildRequires: zlib-devel
BuildRequires: bzip2-devel
BuildRequires: tbb-devel
BuildRequires: eigen3-devel
BuildRequires: desktop-file-utils
BuildRequires: fido-pi
BuildRequires: percolator
BuildRequires: libappstream-glib

## Build documentation
## Doxygen useful only on SVN versions  
BuildRequires: doxygen, dos2unix, graphviz
BuildRequires: texlive, texlive-a4wide, texlive-xtab

##Xvfb is needed to run a virtual X server used by some tests
BuildRequires: xorg-x11-server-Xvfb, gnuplot

Requires: fido-pi%{?_isa}
Requires: percolator%{?_isa}
Requires: R-core%{?_isa}
Requires: %{name}-data%{?_isa} = %{version}-%{release}

##Remove -O0 flag for tests compiling
Patch0: %{name}-remove_testflag.patch

##Fix SyntaxError: in Python3
Patch1: %{name}-fix_print_error.patch

%description
OpenMS is a C++ library for LC-MS data management and analyses.
It offers an infrastructure for the rapid development of mass spectrometry
related software. OpenMS is free software available under the three clause BSD
license and runs under Windows, MacOSX and Linux.

It comes with a vast variety of pre-built and ready-to-use tools for proteomics
and metabolomics data analysis (TOPPTools) and
powerful 2D and 3D visualization(TOPPView).

OpenMS offers analyses for various quantitation protocols,
including label-free quantitation, SILAC, iTRAQ, SRM, SWATH, etc.

It provides built-in algorithms for de-novo identification and database search,
as well as adapters to other state-of-the art tools like XTandem, Mascot,
OMSSA, etc.
It supports easy integration of OpenMS built tools into workflow engines like
Knime, Galaxy, WS-Pgrade, and TOPPAS via the TOPPtools concept and
a unified parameter handling via a 'common tool description' (CTD) scheme.

The OpenMS Proteomics Pipeline is a pipeline for 
the analysis of HPLC-MS data. 
It consists of several small applications that 
can be chained to create analysis pipelines tailored 
for a specific problem.

The TOPP tools are divided into several subgroups:
 
 - Graphical Tools
 - File Handling
 - Signal Processing and Preprocessing
 - Quantitation
 - Map Alignment
 - Protein/Peptide Identification
 - Protein/Peptide Processing
 - Targeted Experiments
 - Peptide Property Prediction
 - Misc

%package tools
Summary: OpenMS tools
Requires: %{name}-data%{?_isa} = %{version}-%{release}
%description tools
Besides TOPP, OpenMS offers a range of other tools. 
They are not included in TOPP as they are not part of 
typical analysis pipelines, but they still might be 
very helpful to you.

The UTILS tools are divided into several subgroups:
 
 - Maintenance
 - Signal Processing and Preprocessing
 - File handling
 - Algorithm evaluation
 - Peptide identification
 - Quantitation
 - Misc
 - Metabolite identification
 - Quality control

%if 0%{?with_py2OpenMS}
%package -n python2-openms
Summary: OpenMS Python2 bindings
%{?python_provide:%python_provide python2-%{name}}

BuildRequires: python2-setuptools
BuildRequires: python2-devel
BuildRequires: python2-numpy
BuildRequires: python2-nose
BuildRequires: python2-autowrap >= 0.8.0
BuildRequires: python2-Cython
BuildRequires: python2-wheel
BuildRequires: python2-biopython
Requires: python2-biopython%{?_isa}
Requires: %{name}-data%{?_isa} = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}

%description -n python2-openms
This package contains Python bindings for a large part of the OpenMS library
for mass spectrometry based proteomics.  It thus provides providing facile 
access to a feature-rich, open-source algorithm library 
for mass-spectrometry based proteomics analysis. 
These Python bindings allow raw access to the data-structures and algorithms 
implemented in OpenMS, specifically those for file access 
(mzXML, mzML, TraML, mzIdentML among others), basic signal processing 
(smoothing, filtering, de-isotoping and peak-picking) and complex data analysis 
(including label-free, SILAC, iTRAQ and SWATH analysis tools).
%endif

%if 0%{?with_py3OpenMS}
%package -n python3-openms
Summary: OpenMS Python3 bindings
%{?python_provide:%python_provide python3-%{name}}

BuildRequires: python3-setuptools
BuildRequires: python3-devel
BuildRequires: python3-numpy
BuildRequires: python3-nose
BuildRequires: python3-autowrap >= 0.8.0
BuildRequires: python3-Cython
BuildRequires: python3-wheel
BuildRequires: python3-biopython
Requires: %{name}-data%{?_isa} = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}

%description -n python3-openms
This package contains Python3 bindings for a large part of the OpenMS library
for mass spectrometry based proteomics.  It thus provides providing facile 
access to a feature-rich, open-source algorithm library 
for mass-spectrometry based proteomics analysis. 
These Python bindings allow raw access to the data-structures and algorithms 
implemented in OpenMS, specifically those for file access 
(mzXML, mzML, TraML, mzIdentML among others), basic signal processing 
(smoothing, filtering, de-isotoping and peak-picking) and complex data analysis 
(including label-free, SILAC, iTRAQ and SWATH analysis tools).
%endif

%package devel
Summary: OpenMS header files
%description devel
OpenMS development files.

%package data
Summary: The OpenMS data files
%description data
The OpenMS data files.

%package doc
Summary: OpenMS documentation
BuildArch: noarch
%description doc
HTML documentation of OpenMS.

%prep
%setup -qc

mv OpenMS-Release%{version} py2build
pushd py2build
rm -rf cmake/MacOSX

%patch0 -p0

# Remove invalid tags
sed -e 's| <project_group></project_group>||g' -i share/OpenMS/DESKTOP/*.appdata.xml
popd

%if 0%{?with_py3OpenMS}
cp -a py2build py3build
pushd py3build
dos2unix share/OpenMS/examples/simulation/FASTAProteinAbundanceSampling.py
%patch1 -p0
popd
%endif

%build
pushd py2build
mkdir -p build && cd build
export LDFLAGS="%{__global_ldflags} -Wl,-z,now -Wl,--as-needed"
%cmake -Wno-dev -DCMAKE_CXX_COMPILER_VERSION:STRING=$(gcc -dumpversion) \
 -DCMAKE_COLOR_MAKEFILE:BOOL=ON \
%if 0%{?with_check}
 -DBUILD_TESTING:BOOL=ON -DBUILD_EXAMPLES:BOOL=ON -DENABLE_TOPP_TESTING:BOOL=ON -DENABLE_CLASS_TESTING:BOOL=ON \
%else
 -DBUILD_TESTING:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DENABLE_TOPP_TESTING:BOOL=OFF -DENABLE_CLASS_TESTING:BOOL=OFF \
%endif
 -DCMAKE_CXX_FLAGS_RELEASE:STRING="-Wno-cpp $RPM_OPT_FLAGS -Wl,-z,relro -Wl,-z,now" -DCMAKE_C_FLAGS_RELEASE:STRING="-Wno-cpp $RPM_OPT_FLAGS -Wl,-z,relro -Wl,-z,now " \
 -DCMAKE_VERBOSE_MAKEFILE=TRUE -DCMAKE_PREFIX_PATH=%{_prefix} \
 -DENABLE_SVN=OFF -DCMAKE_BUILD_TYPE=Release -DBOOST_USE_STATIC=OFF \
 -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=NO \
 -DMT_ENABLE_OPENMP=ON -DENABLE_GCC_WERROR:BOOL=OFF \
 -DFIDO_BINARY:FILEPATH=%{_bindir}/Fido -DFIDOCHOOSEPARAMS_BINARY:FILEPATH=%{_bindir}/FidoChooseParameters \
 -DPERCOLATOR_BINARY:FILEPATH=%{_bindir}/percolator \
 -DBOOST_USE_STATIC:BOOL=OFF -DBoost_INCLUDE_DIR:PATH=%{_includedir} \
 -DBoost_IOSTREAMS_LIBRARY_RELEASE:FILEPATH=%{_libdir}/libboost_iostreams.so \
 -DBoost_MATH_C99_LIBRARY_RELEASE:FILEPATH=%{_libdir}/libboost_math_c99.so \
 -DBoost_REGEX_LIBRARY_RELEASE:FILEPATH=%{_libdir}/libboost_regex.so \
 -DENABLE_TUTORIALS:BOOL=OFF -DENABLE_UNITYBUILD:BOOL=OFF \
 -DHAS_XSERVER:BOOL=OFF \
 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
 -DINSTALL_BIN_DIR:PATH=bin -DINSTALL_CMAKE_DIR:PATH=%{_lib}/cmake/OpenMS \
 -DINSTALL_DOC_DIR:PATH=share/doc/openms-doc -DINSTALL_INCLUDE_DIR:PATH=include \
 -DINSTALL_LIB_DIR:PATH=%{_lib}/OpenMS -DINSTALL_SHARE_DIR:PATH=share/OpenMS \
 -DPACKAGE_TYPE:STRING=none -DWITH_GUI:BOOL=ON \
 -DXercesC_INCLUDE_DIRS:PATH=%{_includedir}/xercesc \
 -DXercesC_LIBRARY_RELEASE:FILEPATH=%{_libdir}/libxerces-c.so \
 -DOPENMS_DISABLE_UPDATE_CHECK:BOOL=OFF -DENABLE_UPDATE_CHECK:BOOL=OFF -DGIT_TRACKING:BOOL=OFF \
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
 -DOPENMS_64BIT_ARCHITECTURE:BOOL=ON \
%else
 -DOPENMS_64BIT_ARCHITECTURE:BOOL=OFF \
%endif
%if 0%{?with_py2OpenMS}
 -DPYOPENMS=ON -DPYTHON_EXECUTABLE:FILEPATH=%{__python2} \
 -DCYTHON_EXECUTABLE:FILEPATH=%{_bindir}/cython ..
%else
 -DPYOPENMS=OFF ..
%endif

%if 0%{?with_check}
make -O --jobs 4 OpenMS TOPP UTILS GUI
%else
%make_build OpenMS TOPP UTILS GUI
%endif

%if 0%{?with_py2OpenMS}
make -O --jobs 1 pyopenms
%endif

# Remove spurious exe permissions
 for i in `find . -type f \( -name "*.cpp" -o -name "*.h" \)`; do
 chmod a-x $i
done

cd ..
popd

##Python3 bindings
%if 0%{?with_py3OpenMS}
pushd py3build
mkdir -p build && cd build
export LDFLAGS="%{__global_ldflags} -Wl,-z,now -Wl,--as-needed"
%cmake -Wno-dev -DCMAKE_CXX_COMPILER_VERSION:STRING=$(gcc -dumpversion) \
 -DCMAKE_COLOR_MAKEFILE:BOOL=ON -DBUILD_TESTING:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DENABLE_TOPP_TESTING:BOOL=OFF -DENABLE_CLASS_TESTING:BOOL=OFF \
 -DCMAKE_CXX_FLAGS_RELEASE:STRING="-Wno-cpp $RPM_OPT_FLAGS -Wl,-z,relro -Wl,-z,now" -DCMAKE_C_FLAGS_RELEASE:STRING="-Wno-cpp $RPM_OPT_FLAGS -Wl,-z,relro -Wl,-z,now " \
 -DCMAKE_VERBOSE_MAKEFILE=TRUE -DCMAKE_PREFIX_PATH=%{_prefix} \
 -DENABLE_SVN=OFF -DCMAKE_BUILD_TYPE=Release -DBOOST_USE_STATIC=OFF \
 -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=NO \
 -DMT_ENABLE_OPENMP=ON -DENABLE_GCC_WERROR:BOOL=OFF \
 -DFIDO_BINARY:FILEPATH=%{_bindir}/Fido -DFIDOCHOOSEPARAMS_BINARY:FILEPATH=%{_bindir}/FidoChooseParameters \
 -DPERCOLATOR_BINARY:FILEPATH=%{_bindir}/percolator \
 -DBOOST_USE_STATIC:BOOL=OFF -DBoost_INCLUDE_DIR:PATH=%{_includedir} \
 -DBoost_IOSTREAMS_LIBRARY_RELEASE:FILEPATH=%{_libdir}/libboost_iostreams.so \
 -DBoost_MATH_C99_LIBRARY_RELEASE:FILEPATH=%{_libdir}/libboost_math_c99.so \
 -DBoost_REGEX_LIBRARY_RELEASE:FILEPATH=%{_libdir}/libboost_regex.so \
 -DENABLE_TUTORIALS:BOOL=OFF -DENABLE_UNITYBUILD:BOOL=OFF \
 -DHAS_XSERVER:BOOL=OFF \
 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
 -DINSTALL_BIN_DIR:PATH=bin -DINSTALL_CMAKE_DIR:PATH=%{_lib}/cmake/OpenMS \
 -DINSTALL_DOC_DIR:PATH=share/doc/openms-doc -DINSTALL_INCLUDE_DIR:PATH=include \
 -DINSTALL_LIB_DIR:PATH=%{_lib}/OpenMS -DINSTALL_SHARE_DIR:PATH=share/OpenMS \
 -DPACKAGE_TYPE:STRING=none -DWITH_GUI:BOOL=ON \
 -DXercesC_INCLUDE_DIRS:PATH=%{_includedir}/xercesc \
 -DXercesC_LIBRARY_RELEASE:FILEPATH=%{_libdir}/libxerces-c.so \
 -DOPENMS_DISABLE_UPDATE_CHECK:BOOL=OFF -DENABLE_UPDATE_CHECK:BOOL=OFF -DGIT_TRACKING:BOOL=OFF \
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
 -DOPENMS_64BIT_ARCHITECTURE:BOOL=ON \
%else
 -DOPENMS_64BIT_ARCHITECTURE:BOOL=OFF \
%endif
 -DPYOPENMS=ON -DPYTHON_EXECUTABLE:FILEPATH=%{__python3} \
 -DCYTHON_EXECUTABLE:FILEPATH=%{_bindir}/cython3 ..

%if 0%{?with_check}
make -O --jobs 4 OpenMS TOPP UTILS GUI
%else
%make_build OpenMS TOPP UTILS GUI
%endif

make -O --jobs 1 pyopenms
cd ..
popd
%endif ##if with_py3OpenMS

%install
pushd py2build/build
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
xvfb-run -a make install DESTDIR=%{buildroot}

%if 0%{?with_py2OpenMS}
## pyOpenMS installation
cd pyOpenMS
%{__python2} setup.py install --skip-build --root %{buildroot}

## Fix standard permissions 
chmod 0755 %{buildroot}%{python2_sitearch}/pyopenms/*.so
cd ..
%endif
popd

%if 0%{?with_py3OpenMS}
pushd py3build/build
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
xvfb-run -a make install DESTDIR=%{buildroot}

cd pyOpenMS
%{__python3} setup.py install --skip-build --root %{buildroot}
cd ..
popd
%endif

##Install TOPPAS/TOPPView .png icons
mkdir -p %{buildroot}%{_datadir}/icons/TOPP/pixmaps
install -pm 644 %{SOURCE1} %{buildroot}%{_datadir}/icons/TOPP
install -pm 644 %{SOURCE2} %{buildroot}%{_datadir}/icons/TOPP
install -pm 644 %{SOURCE3} %{buildroot}%{_datadir}/icons/TOPP

##Install TOPPAS/TOPPView/inifileeditor .desktop files
mkdir -p %{buildroot}%{_datadir}/applications
desktop-file-install \
 --set-key=Exec --set-value="env LD_LIBRARY_PATH=%{_libdir}/OpenMS OPENMS_DATA_PATH=%{_datadir}/OpenMS TOPPAS %U" \
 --set-icon=%{_datadir}/icons/TOPP/TOPPAS.png \
 --set-key=StartupNotify --set-value=true \
 --dir=%{buildroot}%{_datadir}/applications py2build/share/OpenMS/DESKTOP/TOPPAS.desktop

desktop-file-install \
 --set-key=Exec --set-value="env LD_LIBRARY_PATH=%{_libdir}/OpenMS OPENMS_DATA_PATH=%{_datadir}/OpenMS TOPPView %U" \
 --set-icon=%{_datadir}/icons/TOPP/TOPPView.png \
 --set-key=StartupNotify --set-value=true \
 --dir=%{buildroot}%{_datadir}/applications py2build/share/OpenMS/DESKTOP/TOPPView.desktop

desktop-file-install \
 --set-key=Exec --set-value="env LD_LIBRARY_PATH=%{_libdir}/OpenMS OPENMS_DATA_PATH=%{_datadir}/OpenMS INIFileEditor %U" \
 --dir=%{buildroot}%{_datadir}/applications %{SOURCE4}

##Install appdata files
mkdir -p %{buildroot}%{_datadir}/metainfo
install -pm 644 py2build/share/OpenMS/DESKTOP/*.appdata.xml %{buildroot}%{_datadir}/metainfo

##HTML files copied
##I want package them by using %%doc macro
cp -a %{buildroot}%{_datadir}/doc/openms-doc/html html
cp -p %{buildroot}%{_datadir}/doc/openms-doc/index.html ./
rm -rf %{buildroot}%{_datadir}/doc/openms-doc/html
rm -f %{buildroot}%{_datadir}/doc/openms-doc/index.html

## Fix R script
sed -i "1 s|^#!/usr/bin/env Rscript\b|#!/usr/bin/Rscript|" %{buildroot}%{_datadir}/OpenMS/SCRIPTS/plot_trafo.R
chmod 0755 %{buildroot}%{_datadir}/OpenMS/SCRIPTS/plot_trafo.R

%check
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml
%if 0%{?with_check}
pushd py2build/build
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
export PATH=$PWD/bin:$PATH
export OPENMS_DATA_PATH=$PWD/share/OpenMS:$OPENMS_DATA_PATH
## starting tests
xvfb-run -a ctest -V -R OpenMS_ --force-new-ctest-process %{?_smp_mflags}
%endif

%files
%{_bindir}/TOPPView
%{_bindir}/TOPPAS
%{_bindir}/INIFileEditor
%{_bindir}/DTAExtractor
%{_bindir}/FileConverter
%{_bindir}/FileInfo
%{_bindir}/FileMerger
%{_bindir}/IDMerger
%{_bindir}/IDRipper
%{_bindir}/IDFileConverter
%{_bindir}/MapStatistics
%{_bindir}/SpectraMerger
%{_bindir}/TextExporter
%{_bindir}/MzTabExporter
%{_bindir}/BaselineFilter
%{_bindir}/InternalCalibration
%{_bindir}/MapNormalizer
%{_bindir}/MassTraceExtractor
%{_bindir}/NoiseFilterGaussian
%{_bindir}/NoiseFilterSGolay
%{_bindir}/PeakPickerHiRes
%{_bindir}/PeakPickerWavelet
%{_bindir}/PrecursorMassCorrector
%{_bindir}/HighResPrecursorMassCorrector
%{_bindir}/Resampler
%{_bindir}/SpectraFilterBernNorm
%{_bindir}/SpectraFilterMarkerMower
%{_bindir}/SpectraFilterNLargest
%{_bindir}/SpectraFilterNormalizer
%{_bindir}/SpectraFilterParentPeakMower
%{_bindir}/SpectraFilterScaler
%{_bindir}/SpectraFilterSqrtMower
%{_bindir}/SpectraFilterThresholdMower
%{_bindir}/SpectraFilterWindowMower
%{_bindir}/TOFCalibration
%{_bindir}/AdditiveSeries
%{_bindir}/Decharger
%{_bindir}/EICExtractor
%{_bindir}/FeatureFinderCentroided
%{_bindir}/FeatureFinderIsotopeWavelet
%{_bindir}/FeatureFinderMetabo
%{_bindir}/FeatureFinderMRM
%{_bindir}/FeatureLinkerUnlabeledKD
%{_bindir}/IsobaricAnalyzer
%{_bindir}/ProteinQuantifier 
%{_bindir}/ProteinResolver
%{_bindir}/SeedListGenerator
%{_bindir}/ConsensusMapNormalizer
%{_bindir}/MapAlignerIdentification
%{_bindir}/MapAlignerPoseClustering
%{_bindir}/MapAlignerSpectrum
%{_bindir}/MapRTTransformer
%{_bindir}/FeatureLinkerLabeled
%{_bindir}/FeatureLinkerUnlabeled
%{_bindir}/FeatureLinkerUnlabeledQT
%{_bindir}/CompNovo
%{_bindir}/CompNovoCID
%{_bindir}/InspectAdapter
%{_bindir}/MascotAdapter
%{_bindir}/MascotAdapterOnline
%{_bindir}/MyriMatchAdapter
%{_bindir}/OMSSAAdapter
%{_bindir}/PepNovoAdapter
%{_bindir}/XTandemAdapter
%{_bindir}/SpecLibSearcher
%{_bindir}/ConsensusID
%{_bindir}/FalseDiscoveryRate
%{_bindir}/IDConflictResolver
%{_bindir}/IDFilter
%{_bindir}/IDMapper
%{_bindir}/IDPosteriorErrorProbability
%{_bindir}/IDRTCalibration
%{_bindir}/PeptideIndexer
%{_bindir}/ProteinInference
%{_bindir}/InclusionExclusionListCreator
%{_bindir}/PrecursorIonSelector
%{_bindir}/MRMMapper
%{_bindir}/MetaProSIP
%{_bindir}/OpenSwathDecoyGenerator
%{_bindir}/OpenSwathChromatogramExtractor
%{_bindir}/OpenSwathAnalyzer
%{_bindir}/OpenSwathRTNormalizer
%{_bindir}/OpenSwathFeatureXMLToTSV
%{_bindir}/OpenSwathConfidenceScoring
%{_bindir}/OpenSwathAssayGenerator
%{_bindir}/PTModel
%{_bindir}/PTPredict
%{_bindir}/RTModel
%{_bindir}/RTPredict
%{_bindir}/GenericWrapper
%{_bindir}/ExecutePipeline
%{_bindir}/FeatureFinderIdentification
%{_bindir}/FeatureFinderMultiplex
%{_bindir}/FidoAdapter
%{_bindir}/LowMemPeakPickerHiRes
%{_bindir}/LowMemPeakPickerHiResRandomAccess
%{_bindir}/MRMTransitionGroupPicker
%{_bindir}/MSGFPlusAdapter
%{_bindir}/MetaboliteSpectralMatcher
%{_bindir}/OpenSwathWorkflow
%{_bindir}/PeakPickerIterative
%{_bindir}/PercolatorAdapter
%{_bindir}/SimpleSearchEngine
%{_bindir}/IDScoreSwitcher
%{_bindir}/MzMLSplitter
%{_bindir}/LuciphorAdapter
%{_bindir}/DatabaseFilter
%{_bindir}/RNPxlSearch
%{_datadir}/metainfo/*.appdata.xml
%{_datadir}/applications/TOPPAS.desktop
%{_datadir}/applications/TOPPView.desktop
%{_datadir}/applications/inifileeditor.desktop
%{_datadir}/icons/TOPP/
%{_libdir}/OpenMS/

%files tools
%{_bindir}/CometAdapter
%{_bindir}/MetaboliteAdductDecharger
%{_bindir}/OpenPepXL
%{_bindir}/OpenPepXLLF
%{_bindir}/PSMFeatureExtractor
%{_bindir}/SiriusAdapter
%{_bindir}/XFDR
%{_bindir}/RNPxlSearch
%{_bindir}/SpectraSTSearchAdapter
%{_bindir}/DatabaseFilter
%{_bindir}/TargetedFileConverter
%{_bindir}/FileFilter
%{_bindir}/IDDecoyProbability
%{_bindir}/IDEvaluatorGUI
%{_bindir}/OpenMSInfo
%{_bindir}/ExternalCalibration
%{_bindir}/OpenSwathFileSplitter
%{_bindir}/MultiplexResolver
%{_bindir}/TICCalculator
%{_bindir}/PhosphoScoring
%{_bindir}/INIUpdater
%{_bindir}/RNPxlXICFilter
%{_bindir}/FuzzyDiff
%{_bindir}/XMLValidator
%{_bindir}/SemanticValidator
%{_bindir}/CVInspector
%{_bindir}/IDSplitter
%{_bindir}/OpenSwathMzMLFileCacher
%{_bindir}/FFEval
%{_bindir}/IDEvaluator
%{_bindir}/LabeledEval
%{_bindir}/RTEvaluation
%{_bindir}/TransformationEvaluation
%{_bindir}/Digestor
%{_bindir}/DigestorMotif
%{_bindir}/DecoyDatabase
%{_bindir}/SequenceCoverageCalculator
%{_bindir}/IDExtractor
%{_bindir}/IDMassAccuracy 
%{_bindir}/SpecLibCreator
%{_bindir}/RNPxl
%{_bindir}/ERPairFinder
%{_bindir}/MRMPairFinder
%{_bindir}/FeatureFinderSuperHirn
%{_bindir}/ImageCreator
%{_bindir}/MassCalculator
%{_bindir}/MSSimulator
%{_bindir}/SvmTheoreticalSpectrumGeneratorTrainer
%{_bindir}/DeMeanderize
%{_bindir}/OpenSwathDIAPreScoring
%{_bindir}/OpenSwathRewriteToFeatureXML
%{_bindir}/AccurateMassSearch
%{_bindir}/QCCalculator
%{_bindir}/QCImporter
%{_bindir}/QCEmbedder
%{_bindir}/QCExporter
%{_bindir}/QCExtractor
%{_bindir}/QCMerger
%{_bindir}/QCShrinker

%files data
%doc py2build/CHANGELOG py2build/AUTHORS py2build/README
%license py2build/LICENSE
%{_datadir}/OpenMS/
%exclude %{_datadir}/OpenMS/examples/external_code/*.h
%exclude %{_datadir}/OpenMS/examples/external_code/*.cpp

%files doc
%doc py2build/CHANGELOG py2build/AUTHORS py2build/README
%license py2build/LICENSE
%doc html index.html

%files devel
%license py2build/LICENSE
%doc py2build/CHANGELOG py2build/AUTHORS py2build/README
%{_includedir}/OpenMS/
%{_datadir}/OpenMS/examples/external_code/*.h
%{_datadir}/OpenMS/examples/external_code/*.cpp

%if 0%{?with_py2OpenMS}
%files -n python2-openms
%license py2build/src/pyOpenMS/License.txt
%{python2_sitearch}/pyopenms/
%{python2_sitearch}/pyopenms-*.egg-info/
%endif

%if 0%{?with_py3OpenMS}
%files -n python3-openms
%license py3build/src/pyOpenMS/License.txt
%{python3_sitearch}/pyopenms/
%{python3_sitearch}/pyopenms-*.egg-info/
%endif

%changelog
* Sun Feb 11 2018 Antonio Trande <sagitter@fedoraproject.org> - 2.3.0-7
- Compile pyOpenMS
- Set Python2 required packages
- Disable rpaths skipping

* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Mon Feb 05 2018 Antonio Trande <sagitter@fedoraproject.org> - 2.3.0-5
- Rebuild for boost-1.66
- Remove obsolete scriptlets

* Wed Jan 10 2018 Antonio Trande <sagitter@fedoraproject.org> - 2.3.0-4
- Set maximum required version of seqan

* Fri Jan 05 2018 Antonio Trande <sagitter@fedoraproject.org> - 2.3.0-3
- Tests disabled

* Fri Jan 05 2018 Antonio Trande <sagitter@fedoraproject.org> - 2.3.0-2
- Fix R script

* Wed Jan 03 2018 Antonio Trande <sagitter@fedoraproject.org> - 2.3.0-1
- Update to OpenMS-2.3.0
- Drop obsolete GCC7 patches

* Thu Dec 21 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.2.0-7
- Appdata file moved into metainfo data directory

* Mon Nov 13 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.2.0-6
- Rebuild OpenMS-2.2.0
- Remove obsolete patch

* Fri Oct 13 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.2.0-5
- Rebuild for wildmagic5-5.17

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Mon Jul 24 2017 Björn Esser <besser82@fedoraproject.org> - 2.2.0-3
- Rebuilt for Boost 1.64

* Sun Jul 23 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.2.0-2
- Rebuild for boost-1.64

* Wed Jun 28 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.2.0-1
- Update to 2.2.0
- Include patch for GCC-7

* Sat Jun 10 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.1.0-9.20170131gitbde813
- Rebuild for wildmagic5-5.15

* Fri Apr 14 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.1.0-8.20170131gitbde813
- Rebuild for biopython-1.69

* Wed Apr 05 2017 Jerry James <loganjerry@gmail.com> - 2.1.0-7.20170131gitbde813
- Rebuild for glpk 4.61

* Tue Feb 07 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.1.0-6.20170131gitbde813
- Rebuild for boost-1.63

* Tue Jan 31 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.1.0-5.20170131gitbde813
- Rebuild for GCC-7.0.1
- Add CMAKE_CXX_COMPILER_VERSION option

* Fri Jan 27 2017 Jonathan Wakely <jwakely@redhat.com> - 2.1.0-4
- Rebuilt for Boost 1.63

* Fri Jan 06 2017 Antonio Trande <sagitter@fedoraproject.org> - 2.1.0-3
- Fix desktop icons

* Wed Dec 28 2016 Rich Mattes <richmattes@gmail.com> - 2.1.0-2
- Rebuild for eigen3-3.3.1

* Tue Nov 22 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.1.0-1
- Update to 2.1.0 (stable release)
- Drop old patch

* Thu Nov 10 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.1.0-0.1
- Update to 2.1.0 (pre-release)
- Patched to fix PyOpenMS
- Python bindings disabled (upstream issue #2286)

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0-35.20160121git6f51b3
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Fri Jun 24 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-34.20160121git6f51b3
- Rebuild for Biopython-1.67

* Tue May 17 2016 Jonathan Wakely <jwakely@redhat.com> - 2.0.0-33.20160121git6f51b3
- Rebuilt for linker errors in boost (#1331983)

* Sat Mar 12 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-32.20160121git6f51b3
- Rebuild for GLPK-4.59

* Fri Feb 19 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-31.20160121git6f51b3
- Rebuild for GLPK-4.58

* Mon Feb 15 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-30.20160121git6f51b3
- Macros removed from Obsolets tags

* Sun Feb 14 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-29.20160121git6f51b3
- PyOpenMS disabled on x86 arches
- Remove invalid tags from appdata files

* Sun Feb 14 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-28.20160121git6f51b3
- Specified the number of Make jobs
- Patched for GCC-6

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-27.20160121git6f51b3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Wed Jan 27 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-26.20160121git6f51b3
- Fixed package dependency

* Tue Jan 26 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-25.20160121git6f51b3
- Data sub-package arched

* Mon Jan 25 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-24.20160121git6f51b3
- Disabled HAS_XSERVER option

* Fri Jan 22 2016 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-23.20160121git6f51b3
- Update to commit #6f51b3
- Excluded some tests
- Added python provides macros
- Rebuild for wildmagic5-5.14
- Fixed Python2 sub-package
- Removed tutorials

* Thu Dec 10 2015 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-22.20151210gitf19f8b
- Update to commit #f19f8b
- Python3 binding
- Added python-biopython as BR package

* Wed Nov 04 2015 Antonio Trande <sagitter@fedoraproject.org> - 2.0.0-21.20150529git88dc25
- Hardened builds on <F23

* Thu Aug 27 2015 Jonathan Wakely <jwakely@redhat.com> - 2.0.0-20.20150529git88dc25
- Rebuilt for Boost 1.59

* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0-19.20150529git88dc25
- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159

* Fri Jul 24 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-18.20150529git88dc25
- Rebuild again

* Sat Jul 18 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-17.20150529git88dc25
- Rebuild for Boost upgrade to 1.58.0

* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.0-16.20150529git88dc25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Fri Jun 12 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-15.20150529git88dc25
- memleak test excluded again

* Tue Jun 09 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-14.20150529git88dc25
- Exclude TOPP_OpenSwathAssayGenerator_test_1_out1 test

* Tue Jun 09 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-13.20150529git88dc25
- Update to the post-release #88dc25
- Packaged MetaProSIP and OpenSwathAssayGenerator
- Obsolete wrong python2-openms 2.0.0
- Replaced XTandem with fido-pi

* Fri May 15 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-12
- Bug fix in upstream desktop files

* Fri May 15 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-11
- Fix PeakPickerWavelet test
- Set environment variables in desktop files

* Fri May 08 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-10
- Excluded TOPP_XTandemAdapter_ test

* Fri May 08 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-9
- Rebuild after XTandem update
- Try to execute XTandem test

* Sat May 02 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-8
- memleaks test excluded

* Sat May 02 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-7
- mzML unittests patched
- PyOpenMS compiled without parallel make
- PyOpenMS tests disabled

* Fri May 01 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-6
- Source archive re-compressed by upstream
- Sym-linked the library pyopenms/libSuperHirn.so

* Fri May 01 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-5
- SPEC cleanups

* Thu Apr 30 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-4
- Patched pyOpenMS version definition
- Removed 'pyopenms_bdist_egg' make target

* Thu Apr 30 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-3
- PyOpenMS is still compiled against Python2 on Linux

* Mon Apr 13 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-2
- Fix make test

* Sat Apr 11 2015 Antonio Trande <sagitter@fedoraproject.org> 2.0.0-1
- Update to the release 2.0

* Mon Jan 26 2015 Petr Machata <pmachata@redhat.com> - 1.11.1-12
- Rebuild for boost 1.57.0

* Sat Dec 13 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-11
- Parallel make disabled

* Fri Dec 12 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-10
- Parallel make just on Fedora 20+

* Mon Dec 08 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-9
- Fixed unused-direct-shlib-dependency warnings
- Fixed residual spurious executable permissions
- Avoided python shared object stripping
- Added a patch (Patch5) to detect additional QT libraries

* Fri Dec 05 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-8
- Fixed INIFileEditor .desktop file
- Fixed some spurious executable permissions

* Fri Dec 05 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-7
- Fixed some cmake options
- Fixed %%post/%%postun/%%posttrans
- Added TOPP and Tutorial tests
- Fixed iCPP warnings of the PNG files
- Built a noarch data sub-package
- python-openms's data file directory linked to /usr/share/OpenMS  
- TOPP tests disabled (some of them fail)

* Tue Oct 07 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-6
- Added conditional arch macro

* Mon Oct 06 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-5
- Included XTandem BR

* Mon Sep 29 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-4
- Added cmake's options for TBB
- Added nested C++ templates patch (Patch4)

* Mon Jun 30 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-3
- Added setuptools patch
- Added library patch
- pyOpenMS building enabled
- Performed pyOpenMS tests
- Added .desktop files and related .xpm icons

* Sun Jun 01 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-2
- Check disabled
- pyOpenMS building disabled
- Added a macro for pyOpenMS

* Thu May 22 2014 Antonio Trande <sagitter@fedoraproject.org> 1.11.1-1
- First package