diff --git a/boost-1.74.patch b/boost-1.74.patch deleted file mode 100644 index 020b7f0..0000000 --- a/boost-1.74.patch +++ /dev/null @@ -1,34 +0,0 @@ -From a392907978506408482d0bdd388534455ba8dfba Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jean-No=C3=ABl=20Grad?= -Date: Wed, 28 Oct 2020 21:22:39 +0100 -Subject: [PATCH] core: Add guard for boost 1.74.0 - -This include guards against an issue -in boost::serialization from boost 1.74.0 that leads to compiler error -"explicit specialization of undeclared template struct 'version'" when -including . More details in tickets: -https://github.com/boostorg/serialization/issues/210 -https://github.com/boostorg/serialization/issues/217 - ---- - src/core/grid_based_algorithms/lb_particle_coupling.hpp | 9 +++++++++ - 1 file changed, 9 insertions(+) - ---- a/src/core/grid_based_algorithms/lb_particle_coupling.hpp -+++ b/src/core/grid_based_algorithms/lb_particle_coupling.hpp -@@ -25,6 +25,15 @@ - - #include - -+/* This include guards against an issue -+ * in boost::serialization from boost 1.74.0 that leads to compiler error -+ * "explicit specialization of undeclared template struct 'version'" when -+ * including . More details in tickets: -+ * https://github.com/boostorg/serialization/issues/210 -+ * https://github.com/boostorg/serialization/issues/217 -+ */ -+#include -+ - #include - #include - diff --git a/espresso-4.2.0.tar.gz b/espresso-4.2.0.tar.gz deleted file mode 100644 index bf5454b..0000000 --- a/espresso-4.2.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:080bbf6bec5456192ce4e1bc0ddebb9e8735db723d3062ec87154f1ac411aaab -size 14000445 diff --git a/espresso-4.2.1.tar.gz b/espresso-4.2.1.tar.gz new file mode 100644 index 0000000..3b3327c --- /dev/null +++ b/espresso-4.2.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d74b46438b0d013cac35602e28f3530686446a3a307f6771baf15395066bdad5 +size 13458982 diff --git a/fix-broken-fft-check.patch b/fix-broken-fft-check.patch deleted file mode 100644 index d9ffb42..0000000 --- a/fix-broken-fft-check.patch +++ /dev/null @@ -1,260 +0,0 @@ -From 12b1c3a77060a0d402984ce88b230744fa31c79d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jean-No=C3=ABl=20Grad?= -Date: Thu, 1 Sep 2022 13:37:40 +0200 -Subject: [PATCH] core: Fix broken FFT check - -Properly check the magnitude of complex residuals. Add a parameter -to disable the check for debugging purposes. ---- - src/core/electrostatics/p3m.cpp | 8 +++++--- - src/core/electrostatics/p3m.hpp | 3 ++- - src/core/p3m/fft.cpp | 2 +- - .../unit_tests/EspressoSystemStandAlone_test.cpp | 2 +- - src/python/espressomd/electrostatics.py | 7 +++++++ - src/script_interface/electrostatics/CoulombP3M.hpp | 6 ++++-- - .../electrostatics/CoulombP3MGPU.hpp | 6 ++++-- - testsuite/python/coulomb_interface.py | 6 ++++-- - testsuite/python/icc_interface.py | 14 ++++++++++---- - testsuite/python/save_checkpoint.py | 1 + - testsuite/python/test_checkpoint.py | 2 ++ - 11 files changed, 41 insertions(+), 16 deletions(-) - -diff --git a/src/core/electrostatics/p3m.cpp b/src/core/electrostatics/p3m.cpp -index d0d059157f1..b06300fed9e 100644 ---- a/src/core/electrostatics/p3m.cpp -+++ b/src/core/electrostatics/p3m.cpp -@@ -270,9 +270,11 @@ void CoulombP3M::init() { - } - - CoulombP3M::CoulombP3M(P3MParameters &¶meters, double prefactor, -- int tune_timings, bool tune_verbose) -+ int tune_timings, bool tune_verbose, -+ bool check_complex_residuals) - : p3m{std::move(parameters)}, tune_timings{tune_timings}, -- tune_verbose{tune_verbose} { -+ tune_verbose{tune_verbose}, check_complex_residuals{ -+ check_complex_residuals} { - - m_is_tuned = !p3m.params.tuning; - p3m.params.tuning = false; -@@ -490,7 +492,7 @@ double CoulombP3M::long_range_kernel(bool force_flag, bool energy_flag, - } - - /* Back FFT force component mesh */ -- auto const check_complex = !p3m.params.tuning; -+ auto const check_complex = !p3m.params.tuning and check_complex_residuals; - for (int d = 0; d < 3; d++) { - fft_perform_back(p3m.E_mesh[d].data(), check_complex, p3m.fft, comm_cart); - } -diff --git a/src/core/electrostatics/p3m.hpp b/src/core/electrostatics/p3m.hpp -index 4f682bf7fa8..a8d02b055b4 100644 ---- a/src/core/electrostatics/p3m.hpp -+++ b/src/core/electrostatics/p3m.hpp -@@ -89,13 +89,14 @@ struct CoulombP3M : public Coulomb::Actor { - - int tune_timings; - bool tune_verbose; -+ bool check_complex_residuals; - - private: - bool m_is_tuned; - - public: - CoulombP3M(P3MParameters &¶meters, double prefactor, int tune_timings, -- bool tune_verbose); -+ bool tune_verbose, bool check_complex_residuals); - - bool is_tuned() const { return m_is_tuned; } - -diff --git a/src/core/p3m/fft.cpp b/src/core/p3m/fft.cpp -index 55ff03c66d3..2c1d193155c 100644 ---- a/src/core/p3m/fft.cpp -+++ b/src/core/p3m/fft.cpp -@@ -738,7 +738,7 @@ void fft_perform_back(double *data, bool check_complex, fft_data_struct &fft, - for (int i = 0; i < fft.plan[1].new_size; i++) { - fft.data_buf[i] = data[2 * i]; /* real value */ - // Vincent: -- if (check_complex && (data[2 * i + 1] > 1e-5)) { -+ if (check_complex and std::abs(data[2 * i + 1]) > 1e-5) { - printf("Complex value is not zero (i=%d,data=%g)!!!\n", i, - data[2 * i + 1]); - if (i > 100) -diff --git a/src/core/unit_tests/EspressoSystemStandAlone_test.cpp b/src/core/unit_tests/EspressoSystemStandAlone_test.cpp -index 94cbc51a24d..ddf19a283ed 100644 ---- a/src/core/unit_tests/EspressoSystemStandAlone_test.cpp -+++ b/src/core/unit_tests/EspressoSystemStandAlone_test.cpp -@@ -115,7 +115,7 @@ static void mpi_set_tuned_p3m_local(double prefactor) { - 0.654, - 1e-3}; - auto solver = -- std::make_shared(std::move(p3m), prefactor, 1, false); -+ std::make_shared(std::move(p3m), prefactor, 1, false, true); - ::Coulomb::add_actor(solver); - } - -diff --git a/src/python/espressomd/electrostatics.py b/src/python/espressomd/electrostatics.py -index 6b91ec6d355..60a12cc4483 100644 ---- a/src/python/espressomd/electrostatics.py -+++ b/src/python/espressomd/electrostatics.py -@@ -155,6 +155,7 @@ def default_params(self): - "mesh_off": [-1., -1., -1.], - "prefactor": 0., - "check_neutrality": True, -+ "check_complex_residuals": True, - "tune": True, - "timings": 10, - "verbose": True} -@@ -231,6 +232,9 @@ class P3M(_P3MBase): - check_neutrality : :obj:`bool`, optional - Raise a warning if the system is not electrically neutral when - set to ``True`` (default). -+ check_complex_residuals: :obj:`bool`, optional -+ Raise a warning if the backward Fourier transform has non-zero -+ complex residuals when set to ``True`` (default). - - """ - _so_name = "Coulomb::CoulombP3M" -@@ -281,6 +285,9 @@ class P3MGPU(_P3MBase): - check_neutrality : :obj:`bool`, optional - Raise a warning if the system is not electrically neutral when - set to ``True`` (default). -+ check_complex_residuals: :obj:`bool`, optional -+ Raise a warning if the backward Fourier transform has non-zero -+ complex residuals when set to ``True`` (default). - - """ - _so_name = "Coulomb::CoulombP3MGPU" -diff --git a/src/script_interface/electrostatics/CoulombP3M.hpp b/src/script_interface/electrostatics/CoulombP3M.hpp -index 147ee7d0af7..0f167cfa442 100644 ---- a/src/script_interface/electrostatics/CoulombP3M.hpp -+++ b/src/script_interface/electrostatics/CoulombP3M.hpp -@@ -69,6 +69,8 @@ class CoulombP3M : public Actor { - {"timings", AutoParameter::read_only, - [this]() { return actor()->tune_timings; }}, - {"tune", AutoParameter::read_only, [this]() { return m_tune; }}, -+ {"check_complex_residuals", AutoParameter::read_only, -+ [this]() { return actor()->check_complex_residuals; }}, - }); - } - -@@ -85,8 +87,8 @@ class CoulombP3M : public Actor { - get_value(params, "accuracy")}; - m_actor = std::make_shared( - std::move(p3m), get_value(params, "prefactor"), -- get_value(params, "timings"), -- get_value(params, "verbose")); -+ get_value(params, "timings"), get_value(params, "verbose"), -+ get_value(params, "check_complex_residuals")); - }); - set_charge_neutrality_tolerance(params); - } -diff --git a/src/script_interface/electrostatics/CoulombP3MGPU.hpp b/src/script_interface/electrostatics/CoulombP3MGPU.hpp -index d212a5e671f..3fe11a9de85 100644 ---- a/src/script_interface/electrostatics/CoulombP3MGPU.hpp -+++ b/src/script_interface/electrostatics/CoulombP3MGPU.hpp -@@ -70,6 +70,8 @@ class CoulombP3MGPU : public Actor { - {"timings", AutoParameter::read_only, - [this]() { return actor()->tune_timings; }}, - {"tune", AutoParameter::read_only, [this]() { return m_tune; }}, -+ {"check_complex_residuals", AutoParameter::read_only, -+ [this]() { return actor()->check_complex_residuals; }}, - }); - } - -@@ -86,8 +88,8 @@ class CoulombP3MGPU : public Actor { - get_value(params, "accuracy")}; - m_actor = std::make_shared( - std::move(p3m), get_value(params, "prefactor"), -- get_value(params, "timings"), -- get_value(params, "verbose")); -+ get_value(params, "timings"), get_value(params, "verbose"), -+ get_value(params, "check_complex_residuals")); - }); - m_actor->request_gpu(); - set_charge_neutrality_tolerance(params); -diff --git a/testsuite/python/coulomb_interface.py b/testsuite/python/coulomb_interface.py -index eff174e6e08..a5a1dc6b828 100644 ---- a/testsuite/python/coulomb_interface.py -+++ b/testsuite/python/coulomb_interface.py -@@ -59,7 +59,8 @@ def tearDown(self): - system, espressomd.electrostatics.P3M, - dict(prefactor=2., epsilon=0., mesh_off=[0.6, 0.7, 0.8], r_cut=1.5, - cao=2, mesh=[8, 10, 8], alpha=12., accuracy=0.01, tune=False, -- check_neutrality=True, charge_neutrality_tolerance=7e-12)) -+ check_neutrality=True, charge_neutrality_tolerance=7e-12, -+ check_complex_residuals=False)) - test_p3m_cpu_non_metallic = tests_common.generate_test_for_actor_class( - system, espressomd.electrostatics.P3M, - dict(prefactor=2., epsilon=3., mesh_off=[0.6, 0.7, 0.8], r_cut=1.5, -@@ -78,7 +79,8 @@ def tearDown(self): - system, espressomd.electrostatics.P3MGPU, - dict(prefactor=2., epsilon=0., mesh_off=[0.6, 0.7, 0.8], r_cut=1.5, - cao=2, mesh=[8, 10, 8], alpha=12., accuracy=0.01, tune=False, -- check_neutrality=True, charge_neutrality_tolerance=7e-12)) -+ check_neutrality=True, charge_neutrality_tolerance=7e-12, -+ check_complex_residuals=False)) - test_p3m_gpu_non_metallic = tests_common.generate_test_for_actor_class( - system, espressomd.electrostatics.P3MGPU, - dict(prefactor=2., epsilon=3., mesh_off=[0.6, 0.7, 0.8], r_cut=1.5, -diff --git a/testsuite/python/icc_interface.py b/testsuite/python/icc_interface.py -index 2b968d2432b..6eadca2d0e7 100644 ---- a/testsuite/python/icc_interface.py -+++ b/testsuite/python/icc_interface.py -@@ -121,15 +121,21 @@ def test_exceptions_small_r_cut(self): - - @utx.skipIfMissingFeatures(["P3M"]) - def test_exceptions_large_r_cut(self): -- icc, (_, p) = self.setup_icc_particles_and_solver(max_iterations=1) -- p3m = espressomd.electrostatics.P3M(**self.valid_p3m_parameters()) -+ icc, (_, p) = self.setup_icc_particles_and_solver( -+ max_iterations=1, convergence=10.) -+ p3m = espressomd.electrostatics.P3M( -+ check_complex_residuals=False, **self.valid_p3m_parameters()) - - self.system.actors.add(p3m) - self.system.actors.add(icc) -- - with self.assertRaisesRegex(Exception, f"Particle with id {p.id} has a charge .+ that is too large for the ICC algorithm"): -- p.q = 1e9 -+ p.q = 1e8 - self.system.integrator.run(0) -+ -+ self.system.actors.remove(icc) -+ self.system.part.clear() -+ icc, (_, p) = self.setup_icc_particles_and_solver(max_iterations=1) -+ self.system.actors.add(icc) - with self.assertRaisesRegex(Exception, "ICC failed to converge in the given number of maximal steps"): - p.q = 0. - self.system.integrator.run(0) -diff --git a/testsuite/python/save_checkpoint.py b/testsuite/python/save_checkpoint.py -index 09ebda6f002..55ab1b37b82 100644 ---- a/testsuite/python/save_checkpoint.py -+++ b/testsuite/python/save_checkpoint.py -@@ -125,6 +125,7 @@ - cao=1, - alpha=1.0, - r_cut=1.0, -+ check_complex_residuals=False, - timings=15, - tune=False) - if 'ELC' in modes: -diff --git a/testsuite/python/test_checkpoint.py b/testsuite/python/test_checkpoint.py -index 17363085c3f..98f9959f68f 100644 ---- a/testsuite/python/test_checkpoint.py -+++ b/testsuite/python/test_checkpoint.py -@@ -504,6 +504,7 @@ def test_p3m(self): - reference = {'prefactor': 1.0, 'accuracy': 0.1, 'mesh': 3 * [10], - 'cao': 1, 'alpha': 1.0, 'r_cut': 1.0, 'tune': False, - 'timings': 15, 'check_neutrality': True, -+ 'check_complex_residuals': False, - 'charge_neutrality_tolerance': 1e-12} - for key in reference: - self.assertIn(key, state) -@@ -519,6 +520,7 @@ def test_elc(self): - p3m_reference = {'prefactor': 1.0, 'accuracy': 0.1, 'mesh': 3 * [10], - 'cao': 1, 'alpha': 1.0, 'r_cut': 1.0, 'tune': False, - 'timings': 15, 'check_neutrality': True, -+ 'check_complex_residuals': False, - 'charge_neutrality_tolerance': 7e-12} - elc_reference = {'gap_size': 6.0, 'maxPWerror': 0.1, - 'delta_mid_top': 0.9, 'delta_mid_bot': 0.1, diff --git a/hdf5.patch b/hdf5.patch deleted file mode 100644 index 1f9d87f..0000000 --- a/hdf5.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- - src/core/CMakeLists.txt | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/src/core/CMakeLists.txt -+++ b/src/core/CMakeLists.txt -@@ -127,6 +127,10 @@ add_subdirectory(reaction_methods) - add_subdirectory(scafacos) - add_subdirectory(virtual_sites) - -+if(H5MD) -+ target_link_libraries(EspressoCore PUBLIC ${HDF5_LIBRARIES}) -+endif(H5MD) -+ - if(WITH_TESTS) - add_subdirectory(unit_tests) - endif(WITH_TESTS) diff --git a/missing_size_t.patch b/missing_size_t.patch deleted file mode 100644 index 8fdd3d0..0000000 --- a/missing_size_t.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- - src/config/config.hpp | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/src/config/config.hpp -+++ b/src/config/config.hpp -@@ -37,6 +37,8 @@ - #define MPICH_SKIP_MPICXX - #endif - -+#include -+ - #include "config-features.hpp" - - /** P3M: Default for offset of first mesh point from the origin (left diff --git a/numpy-1.24.patch b/numpy-1.24.patch deleted file mode 100644 index 228c500..0000000 --- a/numpy-1.24.patch +++ /dev/null @@ -1,36 +0,0 @@ -commit bff5e2703d4371f06f281d48181431558066d566 -Author: Jean-Noël Grad -Date: Tue Dec 20 19:36:34 2022 +0100 - -tests: Replace deprecated numpy option - -Option 'normed' in numpy.histogramdd was deprecated since 1.15 and -removed in 1.24. - ---- - testsuite/python/observable_profile.py | 2 +- - testsuite/python/observable_profileLB.py | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - ---- a/testsuite/python/observable_profile.py -+++ b/testsuite/python/observable_profile.py -@@ -51,7 +51,7 @@ def test_density_profile(self): - obs_bin_centers = density_profile.bin_centers() - np_hist, np_edges = tests_common.get_histogram( - np.copy(self.system.part.all().pos), self.kwargs, 'cartesian', -- normed=True) -+ density=True) - np_hist *= len(self.system.part) - np.testing.assert_array_almost_equal(obs_data, np_hist) - for i in range(3): ---- a/testsuite/python/observable_profileLB.py -+++ b/testsuite/python/observable_profileLB.py -@@ -91,7 +91,7 @@ def test_velocity_profile(self): - obs_edges = obs.call_method("edges") - _, np_edges = tests_common.get_histogram( - np.zeros([1, 3]), LB_VELOCITY_PROFILE_PARAMS, 'cartesian', -- normed=True) -+ density=True) - for i in range(3): - np.testing.assert_array_almost_equal(obs_edges[i], np_edges[i]) - for x in range(obs_data.shape[0]): diff --git a/python3-espressomd.changes b/python3-espressomd.changes index 09193a8..d161d55 100644 --- a/python3-espressomd.changes +++ b/python3-espressomd.changes @@ -1,3 +1,198 @@ +------------------------------------------------------------------- +Tue Apr 18 10:43:03 UTC 2023 - Jean-Noel Grad + +- Update to 4.2.1: + This release provides a number of corrections for the ESPResSo + 4.2 line. We recommend that this release be used for all + production simulations. The interface has not been changed + between ESPResSo 4.2.0 and 4.2.1. However, some bugs were + discovered which can affect simulation results. No further bug + fix releases will be provided for the 4.2 line. + + Added functionality + ------------------- + + * P3M and DipolarP3M can now be used with the hybrid + decomposition cell system with 1 MPI rank (#4678). + * Lattice-Boltzmann can now be used with the N-square and + hybrid decomposition cell systems with 2 or more MPI ranks + (#4676). + + Changed requirements + -------------------- + * The nbconvert version requirement was bumped to 6.5.1 to + patch an XSS vulnerability (#4658). + + Improved documentation + ---------------------- + * The user guide now documents how to improve the + reproducibility of simulations that have checkpointing + enabled (#4677). + * The user guide now reflects that the lattice-Boltzmann + profile observables can be used in parallel (#4583). + * The active matter tutorial now uses an adequate engine + dipole for the swimmer particle (#4585). + * The error analysis tutorials have been improved (#4597). + * The tutorials can now be used in VS Code Jupyter (both the + desktop and web versions) and the mathematical formula are + now correctly displayed (#4531). + * All ESPResSo-specific CMake options are now documented in + the installation chapter of the user guide (#4608). + * Python package installation instructions no longer feature + package version numbers; instead, `requirements.txt` is used + as a constraint file (#4638). + * MMM1D algorithms now properly document their parameter names + (#4677). + * Reaction methods now cite the relevant literature (#4681). + * Caveats for chain analysis methods are now documented + (#4698). + * Minor formatting issues in Sphinx and typos in Python + docstrings were addressed (#4608). + + Interface changes + ----------------- + * A new boolean property + `System.virtual_sites.override_cutoff_check` was introduced + to allow disabling the cutoff range checks from virtual + sites (#4623). + + Removed functionality + --------------------- + * The unused and untested `Analysis.v_kappa()` method was + removed (#4534). + + Improved testing + ---------------- + * Improve unit testing of core functionality: P3M, MMM1D, OIF, + virtual sites, script interface factory (#4631). + + Bug fixes + --------- + * The checkpointing mechanism now properly restores the + particle quaternion and all derived quantities (#4637). + Release 4.2.0 introduced a regression that caused checkpoint + files to overwrite the particle quaternion/director by a + unit vector pointing along the z direction, when the + `DIPOLES` feature was part of the myconfig file. This lead + to incorrect trajectories when reloading a simulation from + a checkpoint file, if the particle director played a role in + the simulation (ex: relative virtual sites, Gay-Berne + potential, anisotropic particles, active particles, etc.). + In addition, the angular velocity in body frame was restored + with the wrong orientation. Since the default myconfig file + contains `DIPOLES`, most ESPResSo users were affected. + * The checkpointing mechanism now properly restores LB + boundaries (#4649). Release 4.2.0 introduced a regression + where reloading LB populations would accidentally reset LB + boundary flags. + * The checkpointing mechanism now restores P3M and DipolarP3M + solvers without triggering a re-tune (#4677). In previous + releases, the checkpointing code would automatically re-tune + these algorithms during a reload, causing tiny deviations in + the forces that were problematic for trajectory + reproducibility. + * Brownian dynamics now integrates the rotational dynamics of + rotatable particles whose position is fixed in 3D space + (#4548). + * Langevin dynamics now properly integrates particles with + anisotropic friction (#4683, #4690). + * A regression that caused virtual sites to incorrectly count + their image box when crossing a periodic boundary has been + fixed (#4564, #4707). + * Particles can no longer be created or updated with a + negative mass or a null mass (#4679). + * Particles created without a user-specified type can now + participate in reactions (#4589). + * When a Monte Carlo displacement move is rejected, the + original particle velocity is now restored (#4589). + * Reaction methods now raise an exception when accidentally + calling `method.reaction(steps=20)` instead of + `method.reaction(reaction_steps=20)` (#4666). Since 4.2.0 + the `steps` argument was ignored, in which case the default + value `reaction_steps=1` would used by the core. Note that + in the next minor release of ESPResSo, the `reaction_steps` + argument will be renamed to `steps`. + * Reaction methods now rebuild the list of free particle ids + every time `WidomInsertion::calculate_particle_insertion_potential_energy()` + and `ReactionAlgorithm::do_reaction()` are called (#4609). + This was needed to allow multiple concurrent reactions, as + well as avoiding subtle bugs when both the user and a + reaction method tried to create a new particle with an id + that used to belong to a deleted particle. + * When all particles are cleared, the reaction methods type + map is now also cleared (#4645). In the past, it was + possible to attempt a reaction on particles that had just + been cleared from the system, which would raise an + exception. This bug affected all ESPResSo releases since + 4.0. + * The `System.part.pairs()` method now returns the correct + particle pairs when particle ids aren't both contiguous and + starting from 0 (#4628). The regression was introduced in + release 4.2.0. + * The auto-exclusions feature no longer adds spurious + exclusions to particle ids in the range [1, distance] + (#4654). This bug would potentially break the physics of the + system and potentially raise an exception in a system with + non-contiguous particle ids. This regression was introduced + in release 2.2.0b. + * The structure factor analysis code no longer double-counts + particles when the same particle type is provided twice + (#4534). + * The minimal distance distribution analysis code no longer + has an arbitrary cutoff distance when the simulation box is + aperiodic (open boundaries); this would cause spurious + artifacts to appear in the histogram at + `r = np.sum(system.box_l)` when particles were further apart + than this arbitrary distance (#4534). + * The cluster analysis functions are now disabled for systems + with Lees-Edwards periodic boundaries, since the cluster + analysis position wrapping code doesn't properly handle the + shear offset (#4698). + * The chain analysis methods now raise an error when the + number of chains or beads per chain is invalid (#4708). + * The observable tests now longer rely on deprecated numpy + options that were removed in numpy 1.24 (#4635). + * The visualizer `*_arrows_type_materials` options now have an + effect on arrow materials (#4686). + * The visualizer exception handling mechanism has been made + less brittle (#4686). + * The visualizer no longer raises exception when the optional + dependency `freeglut` isn't installed (#4691). + * The visualizer can randomly freeze when using collision + detection or bond breakage; a temporary workaround has been + introduced that fixes the issue for simulations that use + only 1 MPI rank (#4686). + * The `__dir__()` method of script interface objects no longer + raises an exception (#4674). + * Compilation and testsuite issues involving missing or + incorrect feature guards were addressed (#4562, #4648). + * The build system no longer silently ignores invalid external + feature definitions in `myconfig.hpp` and CMake files + (#4608). This issue would only affect feature developers, + as well as users of very old compilers, and would lead to + ESPResSo builds missing features. + + Under the hood changes + ---------------------- + * The Clang 14 and AppleClang 14 compilers are now supported + (#4601). + * Several Clang 14 compiler diagnostics have been addressed + (#4606). + * Boost 1.81 and later versions are now supported (#4655). + * Compiler errors on non-x86 architectures were addressed + (#4538). + * Test tolerances were adjusted for non-x86 architectures + (#4708). + * The pypresso script now prints a warning when running with + MCA binding policy "numa" on NUMA architectures that are not + supported in singleton mode by Open MPI 4.x (#4607). + * The config file generator has been rewritten to properly + handle external features and compiler errors (#4608). + * Security hardening for GitHub Workflows (#4577, #4638) and + Codecov (#4600). + * Deployment of the user guide to GitHub Pages now relies on + cloud providers to fetch JavaScript dependencies (#4656). + ------------------------------------------------------------------- Thu Jan 26 19:46:39 UTC 2023 - Jean-Noel Grad diff --git a/python3-espressomd.spec b/python3-espressomd.spec index 9944581..8b3bbe2 100644 --- a/python3-espressomd.spec +++ b/python3-espressomd.spec @@ -35,25 +35,15 @@ %define pkgname espresso %define modname %{pkgname}md Name: python3-%{modname} -Version: 4.2.0 +Version: 4.2.1 Release: 0 Summary: Parallel simulation software for soft matter research License: GPL-3.0-or-later Group: Productivity/Scientific/Chemistry URL: http://espressomd.org Source: https://github.com/%{modname}/%{pkgname}/releases/download/%{version}/%{pkgname}-%{version}.tar.gz -# PATCH-FIX-UPSTREAM boost-1.74.patch gh#espressomd/espresso#3864 -Patch0: boost-1.74.patch -# PATCH-FIX-OPENSUSE missing_size_t.patch gh#espressomd/espresso#4274 -Patch1: missing_size_t.patch -# PATCH-FIX-OPENSUSE hdf5.patch gh#espressomd/espresso#3543 -Patch2: hdf5.patch -# PATCH-FIX-OPENSUSE rpath.patch boo#1198352 -Patch3: rpath.patch -# PATCH-FIX-UPSTREAM fix-broken-fft-check.patch gh#espressomd/espresso#4567 -Patch4: fix-broken-fft-check.patch -# PATCH-FIX-UPSTREAM numpy-1.24.patch gh#espressomd/espresso#4635 -Patch5: numpy-1.24.patch +# PATCH-FIX-UPSTREAM setuptools.patch gh#espressomd/espresso#4709 +Patch0: setuptools.patch # According to gh#espressomd/espresso#4537 32bit architectures are not supported any more ExcludeArch: %{ix86} BuildRequires: cmake @@ -112,6 +102,7 @@ export HDF5_USE_SHLIB=yes # we don't install {i,}pypresso scripts as they aren't needed when installing in /usr %cmake \ -DCMAKE_SHARED_LINKER_FLAGS='-Wl,--as-needed -Wl,-z,now' \ + -DCMAKE_SKIP_RPATH=ON \ -DLIBDIR=%{_libdir} \ -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ -DPYTHON_INSTDIR=%{python3_sitearch} \ @@ -124,10 +115,6 @@ find %{buildroot}%{python3_sitearch} -name \*.so \ -exec chrpath -r %{python3_sitearch} '{}' \; %check -# gh#espressomd/espresso#3315 -%ifarch i586 -%define testargs ARGS='-E collision_detection' -%endif LD_LIBRARY_PATH='%{buildroot}/%{python3_sitearch}/espressomd::%{_libdir}/mpi/gcc/%{mpiver}/%{_lib}' make -C build check CTEST_OUTPUT_ON_FAILURE=1 %{?testargs:%{testargs}} %files diff --git a/rpath.patch b/rpath.patch deleted file mode 100644 index 3a51e65..0000000 --- a/rpath.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- - CMakeLists.txt | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -21,6 +21,8 @@ - - cmake_minimum_required(VERSION 3.16) - message(STATUS "CMake version: ${CMAKE_VERSION}") -+set(CMAKE_SKIP_RPATH ON) -+ - if(POLICY CMP0076) - # make target_sources() convert relative paths to absolute - cmake_policy(SET CMP0076 NEW) diff --git a/setuptools.patch b/setuptools.patch new file mode 100644 index 0000000..f030250 --- /dev/null +++ b/setuptools.patch @@ -0,0 +1,18 @@ +diff --git a/testsuite/python/unittest_decorators.py b/testsuite/python/unittest_decorators.py +index 109f89cc8..a9a0e5200 100644 +--- a/testsuite/python/unittest_decorators.py ++++ b/testsuite/python/unittest_decorators.py +@@ -20,5 +20,5 @@ + import sys + import importlib +-import setuptools ++import pkg_resources + import unittest + +@@ -75,5 +75,5 @@ def skipIfUnmetModuleVersionRequirement(module, version_requirement): + except ImportError: + return skipIfMissingModules(module) +- if not setuptools.version.pkg_resources.packaging.specifiers.SpecifierSet( ++ if not pkg_resources.packaging.specifiers.SpecifierSet( + version_requirement).contains(_module.__version__): + return unittest.skip(