diff --git a/PyCBC-2.0.2.tar.gz b/PyCBC-2.0.2.tar.gz
deleted file mode 100644
index cf027cd..0000000
--- a/PyCBC-2.0.2.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6313b9c94ebef8702aff64c7da77ce979005b04b6683d75fb165a2c457ab6702
-size 16852407
diff --git a/PyCBC-2.0.4.tar.gz b/PyCBC-2.0.4.tar.gz
new file mode 100644
index 0000000..6741c2e
--- /dev/null
+++ b/PyCBC-2.0.4.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:29e351ce532f59fed176efd2e1bad5acc1cbb0cf9301e4cd720e8acfed390934
+size 16919197
diff --git a/_multibuild b/_multibuild
new file mode 100644
index 0000000..fcc7b97
--- /dev/null
+++ b/_multibuild
@@ -0,0 +1,3 @@
+
+ test
+
diff --git a/python-PyCBC.changes b/python-PyCBC.changes
index 46ffc4c..4011e5e 100644
--- a/python-PyCBC.changes
+++ b/python-PyCBC.changes
@@ -1,3 +1,15 @@
+-------------------------------------------------------------------
+Fri Jul 1 11:22:33 UTC 2022 - Ben Greiner
+
+- Update to version 2.0.4
+ * Add Multisignal models and fix issue where loading MKLblibs
+ before FFTW can in some cases cause a segfault.
+- Release 2.0.3
+ * Adds support for hierarchical inference models and astropy 5.1
+ release.
+- Update requirements
+- Test in multibuild flavor in order to verify requirements.
+
-------------------------------------------------------------------
Mon Mar 7 22:43:17 UTC 2022 - Atri Bhattacharya
diff --git a/python-PyCBC.spec b/python-PyCBC.spec
index bdc675a..33e110d 100644
--- a/python-PyCBC.spec
+++ b/python-PyCBC.spec
@@ -1,5 +1,5 @@
#
-# spec file for package python-PyCBC
+# spec file
#
# Copyright (c) 2022 SUSE LLC
#
@@ -16,68 +16,66 @@
#
-%bcond_without tests
+%global flavor @BUILD_FLAVOR@%{nil}
+%if "%{flavor}" == "test"
+%define psuffix -test
+%bcond_without test
+%else
+%define psuffix %{nil}
+%bcond_with test
+%endif
# Python2 no longer supported by PyCBC
%define skip_python2 1
%define modname PyCBC
-Name: python-PyCBC
-Version: 2.0.2
+Name: python-PyCBC%{psuffix}
+Version: 2.0.4
Release: 0
Summary: Core library to analyze gravitational-wave data
License: GPL-3.0-or-later
URL: http://www.pycbc.org/
Source0: https://github.com/gwastro/pycbc/archive/v%{version}.tar.gz#/%{modname}-%{version}.tar.gz
-BuildRequires: %{python_module Cython}
+BuildRequires: %{python_module Cython >= 0.29}
BuildRequires: %{python_module devel >= 3.7}
-BuildRequires: %{python_module numpy-devel}
-BuildRequires: %{python_module numpy}
+BuildRequires: %{python_module numpy-devel >= 1.16.0}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: python-rpm-macros
-Requires: python-astropy
-Requires: python-beautifulsoup4
-Requires: python-decorator
-Requires: python-h5py
+# Note: The definitive specification is setup.py, not requirements.txt!
+Requires: python-Cython >= 0.29
+Requires: python-Jinja2
+Requires: python-Mako >= 1.0.1
+Requires: python-Pillow
+Requires: python-astropy >= 2.0.3
+Requires: python-beautifulsoup4 >= 4.6.0
+Requires: python-gwdatafind
+Requires: python-h5py >= 3.0
+# SECTION lalsuite, see below
Requires: python-lal
Requires: python-lalframe
Requires: python-lalpulsar
Requires: python-lalsimulation
-Requires: python-ligo-lw
+# /SECTION
+Requires: python-ligo-lw >= 1.7.0
Requires: python-ligo-segments
Requires: python-lscsoft-glue
-Requires: python-numpy
-Requires: python-requests
-Requires: python-scipy
+Requires: python-matplotlib >= 1.5.1
+Requires: python-mpld3 >= 0.3
+Requires: python-numpy >= 1.16.0
+Requires: python-pegasus-wms.api >= 5.0.1
+Requires: python-scipy >= 0.16
Requires: python-tqdm
-Recommends: python-gwdatafind
-Recommends: python-ligo-segments
+Conflicts: python-astropy = 4.0.5
+Conflicts: python-astropy = 4.2.1
+Conflicts: python-lal = 7.2
+Conflicts: python-numpy = 1.19.0
ExclusiveArch: x86_64
-%if %{with tests}
-# SECTION Test Requirements
-BuildRequires: %{python_module Mako}
-BuildRequires: %{python_module astropy}
-BuildRequires: %{python_module beautifulsoup4}
-BuildRequires: %{python_module decorator}
-BuildRequires: %{python_module gwdatafind}
-BuildRequires: %{python_module h5py}
-BuildRequires: %{python_module lalframe}
-BuildRequires: %{python_module lalpulsar}
-BuildRequires: %{python_module lalsimulation}
-BuildRequires: %{python_module lal}
-BuildRequires: %{python_module ligo-lw}
-BuildRequires: %{python_module ligo-segments}
-BuildRequires: %{python_module lscsoft-glue}
-BuildRequires: %{python_module matplotlib}
-BuildRequires: %{python_module mpld3}
+%if %{with test}
+BuildRequires: %{python_module PyCBC = %{version}}
BuildRequires: %{python_module pyFFTW}
BuildRequires: %{python_module pytest}
-BuildRequires: %{python_module requests}
-BuildRequires: %{python_module testsuite}
-BuildRequires: %{python_module tqdm}
-# /SECTION
%endif
%python_subpackages
@@ -92,6 +90,7 @@ of detected sources.
Summary: PyCBC utilities to analyze gravitational-wave data
Requires: python3-PyCBC = %{version}
Obsoletes: python3-%{modname} <= 1.18.0
+BuildArch: noarch
%description -n %{modname}-utils
PyCBC is a software package used to explore astrophysical sources of
@@ -105,10 +104,10 @@ the default python3 flavour.
%prep
%autosetup -p1 -n pycbc-%{version}
-sed -i "/emcee==/d" setup.py
-sed -i "s/,<1.19//" setup.py
+# there is no python metadata in the distribution to provide "lalsuite"
+sed -i '/lalsuite/d' setup.py
-# FOR REAL BINARIES SET HASHBANG TO PYTHON3 DIRECTLY
+# FOR REAL EXECUTABLES SET HASHBANG TO PYTHON3 DIRECTLY
sed -E -i "1{s|^#\!\s*/usr/bin/env python|#\!%{_bindir}/python3|}" \
bin/pycbc_* \
bin/*/pycbc_*
@@ -121,43 +120,47 @@ sed -E -i "1{/^#\!\s*\/usr\/bin/d}" \
pycbc/results/*.py
%build
+%if !%{with test}
%python_build
+%endif
%install
+%if !%{with test}
%python_install
sed -E -i "1 s|^#\!\s*/usr/bin/env\s*bash|#\!/bin/bash|" %{buildroot}%{_bindir}/run_pycbc_inference
%python_expand chmod -x %{buildroot}%{$python_sitearch}/pycbc/results/static/js/fancybox/2.1.5/jquery.fancybox*.js
%python_expand %fdupes %{buildroot}%{$python_sitearch}
-
-%if %{with tests}
-%check
-# Tests that either require network or don't work due to unpackaged modules
-rm -fr \
- examples/workflow/data_checker/daily_test.py \
- test/test_calibration.py \
- test/test_chisq.py \
- test/test_distributions.py \
- test/test_dq.py \
- test/test_fft*.py \
- test/test_frame.py \
- test/test_frequencyseries.py \
- test/test_infmodel.py
-
-%{python_expand pushd test # for tests
-export PYTHONPATH=%{buildroot}%{$python_sitearch}
-export PYTHONDONTWRITEBYTECODE=1
-pytest-%{$python_version}
-popd
-}
%endif
+%if %{with test}
+%check
+# Tests that either require network or don't work due to unpackaged modules
+# can't use pytest --ignore because of a special arg parser in test/utils.py
+rm -r \
+ test/test_infmodel.py \
+ test/test_fft_mkl_threaded.py \
+ test/test_fftw_openmp.py \
+ test/test_dq.py \
+ test/test_chisq.py
+
+pushd test
+%{python_expand # can't use the macro because of a special arg parser in test/utils.py
+export PYTHONDONTWRITEBYTECODE=1
+pytest-%{$python_bin_suffix}
+}
+popd
+%endif
+
+%if !%{with test}
%files -n %{modname}-utils
-%{_bindir}/*
+%{_bindir}/pycbc_*
+%{_bindir}/run_pycbc_inference
%files %{python_files}
-%{python_sitearch}/pycbc/
-%{python_sitearch}/%{modname}-%{version}-py%{python_version}.egg-info/
+%{python_sitearch}/pycbc
+%{python_sitearch}/%{modname}-%{version}*-info
+%endif
%changelog