From 4a6f936431e3b13d0e86cf50b9fb416ecfbbd10865da5166187699fc637525fc Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Tue, 16 Oct 2018 08:05:48 +0000 Subject: [PATCH] Accepting request 642129 from home:cjunghans:branches:devel:languages:python MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - added change from request #639007 - rename package to python3-espressomd - install COPYING for all packages - change license to GPL-3.0-or-later - added sonum define - Version bump to 4.0.0 - Rename pacakge to python-espressomd - Dropped 1830.patch - merged upstream - Dropped doc package - under rework in 4.0.0 - New features: - Reaction ensemble methods for the modelling of chemical reactions, including constant pH and Wang-Landau schemes. - Polarisable particles via the Drude-oscillator scheme. - Steepest-descent energy minimization scheme. - Methods for active particles (swimmer_reaction, dipolar swimmers). - GPU-accelerated P3M method for electrostatic interactions. - GPU-accelerated direct summation and Barnes-Hutt schemes for dipolar interactions under open boundary conditions. - Support for the electrostatic and magnetostatics method provided by the ScaFaCoS library. - Immersed boundary method for soft immersed objects in an LB fluid. - Virtual sites acting as inertialess tracers in an LB fluid usable as part of the immersed boundary method or independently. - New bonded quartic and Coulomb interactions. - Possibility to tune the skin parameter. - Support for saving to the h5md file format for molecular dynamics data. - Connection to the MD Analysis Python package. - A rotate_system command was added, which rotates the particle positions around the system’s center of mass. - Added 2255.patch to fix numpy issue on i586 - Added 2259.patch to fix numpy issue on big-endian platforms - Added 2265.patch to fix test on i586 - add 1830.patch to fix install - update version 3.3.1+git20180203.f74064d * many many small fixes * support for newer cython - adapt to new openlmi package - source mpivars.h during build - use individual libboost-*-devel packages instead of boost-devel - RPM group fixup - switched to cmake build-system - build python module - dropped header as they are for internal use only - dropped pkg-config files as nothing depends on libs yet - update version 3.3.1+git20160803.6ed0518.tar.gz * overhaul of buildsystem * many many small fixes - fix boo#985147 * there's a commit that removed redefinition of malloc and realloc which fixed build for gcc 6. but it's too hard to cherry pick, so update to the latest git version is a good idea - there's no --without-mpi option left in configure.ac, so "-openmpi" sub-package is meaningless now (everything has openmpi support) and since there's no two main packages any more, "-common" sub-package is also meaningless now (and it doesn't contains data), merged. - add sub-package: "-devel", "libEspresso0", "libEspressoTcl0" - add generate_headers.rb to gather those .hpp that're really used into "-devel" sub-package - create pkgconfig files - add some texlive BuildRequires to build pdf documentation. - update version 3.3.1+git20160622.6aa229c: * added edge statistics for meshes used by object-in-fluid * added pos_folded property * Adapted simple LB tests to current interface. * system.part.writevtk() * redesigned exclusions and added slice input * Scafacos: Add long range energy to correct place in energy data structure * Correction to scafacos energy calculation: Check cutoff in near field contrib * Scafacos: Sort out conditional compilation and cython includes * Scafacos: methods shared between electrostatics and dipolar calculations - Update to version 3.3.1 * A lot of changes; please read the NEWS file - version bumped to 3.3.0 - Highlights of this release include: - Calculation of the electrokinetic equations via the ELECTROKINETICS feature, - the Shan/Chen method for multi component lattice Boltzmann fluids, - the P3M and MMM1D methods can now be computed on a GPU, - ESPResSo now has a rudimentary Python interface. For a complete list of the changes in the release, please refer to: http://download.savannah.gnu.org/releases/espressomd/NEWS - build openmpi and non-mpi version - initial commit OBS-URL: https://build.opensuse.org/request/show/642129 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python3-espressomd?expand=0&rev=1 --- .gitattributes | 23 +++++++ .gitignore | 1 + 2255.patch | 27 ++++++++ 2259.patch | 37 ++++++++++ 2265.patch | 56 +++++++++++++++ espresso-4.0.0.tar.gz | 3 + python3-espressomd.changes | 124 +++++++++++++++++++++++++++++++++ python3-espressomd.spec | 138 +++++++++++++++++++++++++++++++++++++ 8 files changed, 409 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 2255.patch create mode 100644 2259.patch create mode 100644 2265.patch create mode 100644 espresso-4.0.0.tar.gz create mode 100644 python3-espressomd.changes create mode 100644 python3-espressomd.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/2255.patch b/2255.patch new file mode 100644 index 0000000..07a0b96 --- /dev/null +++ b/2255.patch @@ -0,0 +1,27 @@ +diff --git a/src/core/unit_tests/ParallelScriptInterface_test.cpp b/src/core/unit_tests/ParallelScriptInterface_test.cpp +index 7374ed99ca..0195b4f7d1 100644 +--- a/src/core/unit_tests/ParallelScriptInterface_test.cpp ++++ b/src/core/unit_tests/ParallelScriptInterface_test.cpp +@@ -174,7 +174,7 @@ BOOST_AUTO_TEST_CASE(parameter_lifetime) { + } + + int main(int argc, char **argv) { +- mpi::environment mpi_env; ++ mpi::environment mpi_env(argc, argv); + mpi::communicator world; + callbacks = Utils::make_unique( + world, /* abort_on_exit */ false); +diff --git a/src/python/espressomd/utils.pyx b/src/python/espressomd/utils.pyx +index 9e29f0bd21..24ecb31c86 100644 +--- a/src/python/espressomd/utils.pyx ++++ b/src/python/espressomd/utils.pyx +@@ -331,6 +331,8 @@ def is_valid_type(value, t): + if t == int: + return isinstance(value, (int, np.integer, np.long)) + elif t == float: +- return isinstance(value, (float, np.float16, np.float32, np.float64, np.float128, np.longdouble)) ++ if hasattr(np, 'float128'): ++ return isinstance(value, (float, np.float16, np.float32, np.float64, np.float128, np.longdouble)) ++ return isinstance(value, (float, np.float16, np.float32, np.float64, np.longdouble)) + else: + return isinstance(value, t) diff --git a/2259.patch b/2259.patch new file mode 100644 index 0000000..baed32f --- /dev/null +++ b/2259.patch @@ -0,0 +1,37 @@ +From 81f9b86cca275f053e914c7c42e864c3af9fed8e Mon Sep 17 00:00:00 2001 +From: Michael Kuron +Date: Thu, 13 Sep 2018 11:09:40 +0200 +Subject: [PATCH] Fix PARTIAL_PERIODIC on big-endian platforms + +--- + src/core/global.cpp | 2 +- + src/core/utils/serialization/List.hpp | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/core/global.cpp b/src/core/global.cpp +index 75959c3246..9164c5e0b4 100644 +--- a/src/core/global.cpp ++++ b/src/core/global.cpp +@@ -147,7 +147,7 @@ const std::unordered_map fields{ + {&nptiso.piston, Datafield::Type::DOUBLE, 1, + "npt_piston"}}, /* 27 from pressure.cpp */ + {FIELD_PERIODIC, +- {&periodic, Datafield::Type::BOOL, 3, ++ {&periodic, Datafield::Type::INT, 1, + "periodicity"}}, /* 28 from grid.cpp */ + {FIELD_SKIN, + {&skin, Datafield::Type::DOUBLE, 1, "skin"}}, /* 29 from integrate.cpp */ +diff --git a/src/core/utils/serialization/List.hpp b/src/core/utils/serialization/List.hpp +index fdc2d172ee..ae7fc37db3 100644 +--- a/src/core/utils/serialization/List.hpp ++++ b/src/core/utils/serialization/List.hpp +@@ -20,6 +20,9 @@ along with this program. If not, see . + #define CORE_UTILS_SERIALIZATION_LIST_HPP + + #include ++#if BOOST_VERSION >= 106400 && BOOST_VERSION < 106500 ++#include ++#endif + #include + + #include "core/utils/List.hpp" diff --git a/2265.patch b/2265.patch new file mode 100644 index 0000000..225298b --- /dev/null +++ b/2265.patch @@ -0,0 +1,56 @@ +From be29174ad76db081ff0111ac3b96c0a8f64aea5b Mon Sep 17 00:00:00 2001 +From: Michael Kuron +Date: Fri, 14 Sep 2018 13:14:01 +0200 +Subject: [PATCH 1/2] Fix unit test on 32-bit platform + +--- + src/core/unit_tests/field_coupling_couplings_test.cpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/core/unit_tests/field_coupling_couplings_test.cpp b/src/core/unit_tests/field_coupling_couplings_test.cpp +index 268d666eff..1dd7809eb8 100644 +--- a/src/core/unit_tests/field_coupling_couplings_test.cpp ++++ b/src/core/unit_tests/field_coupling_couplings_test.cpp +@@ -78,10 +78,10 @@ BOOST_AUTO_TEST_CASE(scaled) { + const int m_id; + }; + +- BOOST_CHECK((1.23 * 2.) == scaled_coupling(Particle(0), 2.)); +- BOOST_CHECK((default_val * 3.) == scaled_coupling(Particle(1), 3.)); +- BOOST_CHECK((3.45 * 4.) == scaled_coupling(Particle(2), 4.)); +- BOOST_CHECK((default_val * 5.) == scaled_coupling(Particle(3), 5.)); ++ BOOST_CHECK_CLOSE(1.23 * 2., scaled_coupling(Particle(0), 2.), 1e-14); ++ BOOST_CHECK_CLOSE(default_val * 3., scaled_coupling(Particle(1), 3.), 1e-14); ++ BOOST_CHECK_CLOSE(3.45 * 4., scaled_coupling(Particle(2), 4.), 1e-14); ++ BOOST_CHECK_CLOSE(default_val * 5., scaled_coupling(Particle(3), 5.), 1e-14); + } + } + + +From 005380040f5d7d9a50c450cdaf46639b333b8683 Mon Sep 17 00:00:00 2001 +From: Michael Kuron +Date: Fri, 14 Sep 2018 14:20:59 +0200 +Subject: [PATCH 2/2] formatting + +--- + src/core/unit_tests/field_coupling_couplings_test.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/core/unit_tests/field_coupling_couplings_test.cpp b/src/core/unit_tests/field_coupling_couplings_test.cpp +index 1dd7809eb8..b14fad8e5e 100644 +--- a/src/core/unit_tests/field_coupling_couplings_test.cpp ++++ b/src/core/unit_tests/field_coupling_couplings_test.cpp +@@ -79,9 +79,11 @@ BOOST_AUTO_TEST_CASE(scaled) { + }; + + BOOST_CHECK_CLOSE(1.23 * 2., scaled_coupling(Particle(0), 2.), 1e-14); +- BOOST_CHECK_CLOSE(default_val * 3., scaled_coupling(Particle(1), 3.), 1e-14); ++ BOOST_CHECK_CLOSE(default_val * 3., scaled_coupling(Particle(1), 3.), ++ 1e-14); + BOOST_CHECK_CLOSE(3.45 * 4., scaled_coupling(Particle(2), 4.), 1e-14); +- BOOST_CHECK_CLOSE(default_val * 5., scaled_coupling(Particle(3), 5.), 1e-14); ++ BOOST_CHECK_CLOSE(default_val * 5., scaled_coupling(Particle(3), 5.), ++ 1e-14); + } + } + diff --git a/espresso-4.0.0.tar.gz b/espresso-4.0.0.tar.gz new file mode 100644 index 0000000..06c41aa --- /dev/null +++ b/espresso-4.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e128847447eebd843de24be9b4ad14aa19c028ae48879a5a4535a9683836e6b +size 25767191 diff --git a/python3-espressomd.changes b/python3-espressomd.changes new file mode 100644 index 0000000..689be02 --- /dev/null +++ b/python3-espressomd.changes @@ -0,0 +1,124 @@ +------------------------------------------------------------------- +Fri Sep 28 23:13:13 UTC 2018 - Christoph Junghans + +- added change from request #639007 + - rename package to python3-espressomd + - install COPYING for all packages + - change license to GPL-3.0-or-later + - added sonum define + +------------------------------------------------------------------- +Fri Sep 7 15:36:54 UTC 2018 - junghans@votca.org + +- Version bump to 4.0.0 +- Rename pacakge to python-espressomd +- Dropped 1830.patch - merged upstream +- Dropped doc package - under rework in 4.0.0 +- New features: + - Reaction ensemble methods for the modelling of chemical reactions, including constant pH and Wang-Landau schemes. + - Polarisable particles via the Drude-oscillator scheme. + - Steepest-descent energy minimization scheme. + - Methods for active particles (swimmer_reaction, dipolar swimmers). + - GPU-accelerated P3M method for electrostatic interactions. + - GPU-accelerated direct summation and Barnes-Hutt schemes for dipolar interactions under open boundary conditions. + - Support for the electrostatic and magnetostatics method provided by the ScaFaCoS library. + - Immersed boundary method for soft immersed objects in an LB fluid. + - Virtual sites acting as inertialess tracers in an LB fluid usable as part of the immersed boundary method or independently. + - New bonded quartic and Coulomb interactions. + - Possibility to tune the skin parameter. + - Support for saving to the h5md file format for molecular dynamics data. + - Connection to the MD Analysis Python package. + - A rotate_system command was added, which rotates the particle positions around the system’s center of mass. +- Added 2255.patch to fix numpy issue on i586 +- Added 2259.patch to fix numpy issue on big-endian platforms +- Added 2265.patch to fix test on i586 + +------------------------------------------------------------------- +Mon Feb 12 19:25:01 UTC 2018 - junghans@votca.org + +- add 1830.patch to fix install +- update version 3.3.1+git20180203.f74064d + * many many small fixes + * support for newer cython + +------------------------------------------------------------------- +Wed Oct 25 12:43:08 UTC 2017 - junghans@votca.org + +- adapt to new openlmi package - source mpivars.h during build + +------------------------------------------------------------------- +Wed Feb 1 10:36:28 UTC 2017 - adam.majer@suse.de + +- use individual libboost-*-devel packages instead of boost-devel + +------------------------------------------------------------------- +Thu Sep 29 13:46:20 UTC 2016 - jengelh@inai.de + +- RPM group fixup + +------------------------------------------------------------------- +Wed Aug 3 17:54:16 UTC 2016 - junghans@votca.org + +- switched to cmake build-system +- build python module +- dropped header as they are for internal use only +- dropped pkg-config files as nothing depends on libs yet +- update version 3.3.1+git20160803.6ed0518.tar.gz + * overhaul of buildsystem + * many many small fixes + +------------------------------------------------------------------- +Sun Jun 26 07:35:00 UTC 2016 - i@marguerite.su + +- fix boo#985147 + * there's a commit that removed redefinition of malloc and realloc + which fixed build for gcc 6. but it's too hard to cherry pick, so + update to the latest git version is a good idea +- there's no --without-mpi option left in configure.ac, so "-openmpi" + sub-package is meaningless now (everything has openmpi support) + and since there's no two main packages any more, "-common" sub-package + is also meaningless now (and it doesn't contains data), merged. +- add sub-package: "-devel", "libEspresso0", "libEspressoTcl0" +- add generate_headers.rb to gather those .hpp that're really used + into "-devel" sub-package +- create pkgconfig files +- add some texlive BuildRequires to build pdf documentation. +- update version 3.3.1+git20160622.6aa229c: + * added edge statistics for meshes used by object-in-fluid + * added pos_folded property + * Adapted simple LB tests to current interface. + * system.part.writevtk() + * redesigned exclusions and added slice input + * Scafacos: Add long range energy to correct place in energy data structure + * Correction to scafacos energy calculation: Check cutoff in near field contrib + * Scafacos: Sort out conditional compilation and cython includes + * Scafacos: methods shared between electrostatics and dipolar calculations + +------------------------------------------------------------------- +Sun Nov 8 21:57:37 UTC 2015 - p.drouand@gmail.com + +- Update to version 3.3.1 + * A lot of changes; please read the NEWS file + +------------------------------------------------------------------- +Tue Aug 12 03:44:16 UTC 2014 - junghans@votca.org + +- version bumped to 3.3.0 +- Highlights of this release include: + - Calculation of the electrokinetic equations via the ELECTROKINETICS feature, + - the Shan/Chen method for multi component lattice Boltzmann fluids, + - the P3M and MMM1D methods can now be computed on a GPU, + - ESPResSo now has a rudimentary Python interface. + For a complete list of the changes in the release, please refer to: + http://download.savannah.gnu.org/releases/espressomd/NEWS + +------------------------------------------------------------------- +Fri Feb 7 17:41:18 UTC 2014 - junghans@votca.org + +- build openmpi and non-mpi version + +------------------------------------------------------------------- +Tue Feb 4 18:59:10 UTC 2014 - junghans@votca.org + +- initial commit + diff --git a/python3-espressomd.spec b/python3-espressomd.spec new file mode 100644 index 0000000..9109160 --- /dev/null +++ b/python3-espressomd.spec @@ -0,0 +1,138 @@ +# +# spec file for package python3-espressomd +# +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2014 Christoph Junghans +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define mpi_implem openmpi2 +%ifarch ppc64 +%define mpi_implem openmpi +%endif +%if 0%{?sle_version} == 120300 && 0%{?is_opensuse} +%define mpi_implem openmpi +%endif +%if 0%{?sle_version} == 120400 && !0%{?is_opensuse} +%define mpi_implem openmpi +%endif + +%define pkgname espresso +%define modname %{pkgname}md +%define sonum 4 +Name: python3-%{modname} +Version: 4.0.0 +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 2255.patch https://github.com/espressomd/espresso/pull/2255 - fix numpy issue on i586 +Patch0: 2255.patch +# PATCH-FIX-UPSTREAM 2259.patch https://github.com/espressomd/espresso/pull/2259 - fix numpy issue on big-endian platforms +Patch1: 2259.patch +# PATCH-FIX-UPSTREAM 2265.patch https://github.com/espressomd/espresso/pull/2265 - fix test on i586 +Patch2: 2265.patch +BuildRequires: cmake +BuildRequires: fftw3-devel +BuildRequires: gcc-c++ +# Currently libboost_mpi-devel and hdf5 use different mpi versions +# BuildRequires: hdf5-devel +BuildRequires: gsl-devel +BuildRequires: %{mpi_implem}-devel +BuildRequires: python3-Cython +BuildRequires: python3-devel +BuildRequires: python3-numpy-devel +%if 0%{?suse_version} > 1325 +BuildRequires: libboost_filesystem-devel +BuildRequires: libboost_mpi-devel +BuildRequires: libboost_system-devel +BuildRequires: libboost_test-devel +%else +BuildRequires: boost-devel +%endif + +%description +ESPResSo is a highly versatile software package for performing and analyzing +scientific Molecular Dynamics many-particle simulations of coarse-grained +atomistic or bead-spring models as they are used in soft-matter research in +physics, chemistry and molecular biology. It can be used to simulate systems +such as polymers, liquid crystals, colloids, ferrofluids and biological +systems, for example DNA and lipid membranes. + +%package -n libEspresso%{sonum} +Summary: Shared libraries for ESPResSo +Group: System/Libraries + +%description -n libEspresso%{sonum} +This package provides shared libraries for ESPResSo. + +%prep +%setup -q -n %{pkgname}-%{version} +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +chmod -x AUTHORS COPYING README NEWS ChangeLog + +%build +source %{_libdir}/mpi/gcc/%{mpi_implem}/bin/mpivars.sh + +# overwrite .so linker flags on SUSE distros: drop --no-undefined +# 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' \ + -DLIBDIR=%{_lib} \ + -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ + -DINSTALL_PYPRESSO=OFF + +make %{?_smp_mflags} + +%install +make -C build install DESTDIR=%{buildroot} +find %{buildroot}%{_prefix} -name "*.so" -exec chmod +x {} \; +find %{buildroot}%{_prefix} -name "gen_pxiconfig" -exec chmod +x {} \; +# no devel package +rm -f %{buildroot}%{_libdir}/lib*.so + +%check +# https://github.com/espressomd/espresso/issues/2258 +%ifnarch i586 %arm ppc64le +LD_LIBRARY_PATH='%{buildroot}/%{_libdir}::%{_libdir}/mpi/gcc/%{mpi_implem}/%{_lib}' make -C build check +%endif + +%post -n libEspresso%{sonum} -p /sbin/ldconfig +%postun -n libEspresso%{sonum} -p /sbin/ldconfig + +%files +%license COPYING +%doc README AUTHORS NEWS ChangeLog +%{python3_sitearch}/espressomd + +%files -n libEspresso%{sonum} +%license COPYING +%{_libdir}/libEspressoCore.so.%{sonum} +%{_libdir}/libActor.so.%{sonum} +%{_libdir}/libImmersedBoundary.so.%{sonum} +%{_libdir}/libObjectInFluid.so.%{sonum} +%{_libdir}/libAccumulators.so.%{sonum} +%{_libdir}/libConstraints.so.%{sonum} +%{_libdir}/libEspressoConfig.so.%{sonum} +%{_libdir}/libEspressoScriptInterface.so.%{sonum} +%{_libdir}/libObservables.so.%{sonum} +%{_libdir}/libShapes.so.%{sonum} +%{_libdir}/libVirtualSites.so.%{sonum} +%{_libdir}/libcluster_analysis.so.%{sonum} + +%changelog \ No newline at end of file