Bug 740846

Summary: Review Request: espresso - Extensible Simulation Package for Research on Soft matter
Product: [Fedora] Fedora Reporter: Thomas Spura <tomspur>
Component: Package ReviewAssignee: Jerry James <loganjerry>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: loganjerry, notting, package-review, susi.lehtola
Target Milestone: ---Flags: loganjerry: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: espresso-3.0.2-2.fc15 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-14 00:50:07 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Thomas Spura 2011-09-23 14:17:39 UTC
Spec URL: http://tomspur.fedorapeople.org/review/espresso.spec
SRPM URL: http://tomspur.fedorapeople.org/review/espresso-3.0.1-1.fc15.src.rpm
Description: 
ESPResSo can perform Molecular Dynamics simulations of bead-spring models
in various ensembles ((N,V,E), (N,V,T), and (N,p,T)).
ESPResSo contains a number of advanced algorithms, e.g.
    * DPD thermostat (for hydrodynamics)
    * P3M, MMM2D, MMM1D, ELC for electrostatic interactions
    * Lattice-Boltzmann for hydrodynamics


koji scratch build (with enabled mpi tests - they also fail in mpi4py and are disabled in the buildsystem. I'll just run them locally with every version):
http://koji.fedoraproject.org/koji/taskinfo?taskID=3372343

Current SHOULD on my list:
* use MPI_SUFFIX
* build a shared lib and not a static one

Both will be fixed in a new version from upstream.

$ rpmlint ~/rpmbuild/SRPMS/espresso-3.0.1-1.fc15.src.rpm ~/rpmbuild/RPMS/x86_64/espresso-* ~/rpmbuild/RPMS/noarch/espresso-common-3.0.1-1.fc15.noarch.rpm 
espresso.src:8: W: configure-without-libdir-spec
espresso.x86_64: W: no-documentation
espresso.x86_64: W: no-manual-page-for-binary Espresso
espresso-devel.x86_64: W: no-documentation
espresso-mpich2.x86_64: W: no-documentation
espresso-mpich2-devel.x86_64: W: no-documentation
espresso-openmpi.x86_64: W: no-documentation
espresso-openmpi-devel.x86_64: W: no-documentation
espresso-common.noarch: W: spelling-error %description -l en_US subpackages -> sub packages, sub-packages, prepackages
9 packages and 0 specfiles checked; 0 errors, 9 warnings.

All false-positive/ignorable:
* The packages require all the common package, which contains the documentation/license.
* configure is called with libdir

Comment 1 Susi Lehtola 2011-09-24 22:47:14 UTC
 %dir %{_libdir}/%{name}-openmpi/
 %dir %{_libdir}/%{name}-openmpi/bin/
 %dir %{_libdir}/%{name}-openmpi/lib/
is incorrect behavior. You need to place the libraries in
 %{_libdir}/openmpi/lib
and the binaries in 
 %{_libdir}/openmpi/bin.
These are added to the relevant paths automatically when the relevant MPI module is loaded.

And the same thing for mpich2.

Comment 2 Thomas Spura 2011-09-25 10:11:44 UTC
Thanks.

I misread the guidelines for that (seems I have looked in the compiler install section).

%changelog
- correctly install into _libdir/openmpi and not _libdir/name-openmpi

Spec URL: http://tomspur.fedorapeople.org/review/espresso.spec
SRPM URL: http://tomspur.fedorapeople.org/review/espresso-3.0.1-2.fc15.src.rpm

Comment 3 Susi Lehtola 2011-09-25 11:28:07 UTC
Please note as well that the MPI binaries should be suffixed _mpich2 and _openmpi (these are the corresponding $MPI_SUFFIX), not -mpich2 or -openmpi.

I also don't think shipping libraries without any header files is necessary. Please add the relevant headers or don't ship the development libraries at all.

Comment 4 Thomas Spura 2011-09-26 11:16:11 UTC
(In reply to comment #3)
> Please note as well that the MPI binaries should be suffixed _mpich2 and
> _openmpi (these are the corresponding $MPI_SUFFIX), not -mpich2 or -openmpi.

Changed.

> I also don't think shipping libraries without any header files is necessary.
> Please add the relevant headers or don't ship the development libraries at all.

Upstream prefers the later.

%changelog
- use correct MPI_SUFFIX
- don't install library as upstream doesn't support it anymore

Spec URL: http://tomspur.fedorapeople.org/review/espresso.spec
SRPM URL: http://tomspur.fedorapeople.org/review/espresso-3.0.1-3.fc15.src.rpm

Comment 5 Thomas Spura 2011-10-06 10:18:33 UTC
%changelog
- update to new version
- introduce configure_mpi

Jussi, is the configure_mpi solution ok?
It might be good to define such a macro systemwide, with adaptions to _libdir etc too.

Spec URL: http://tomspur.fedorapeople.org/review/espresso.spec
SRPM URL: http://tomspur.fedorapeople.org/review/espresso-3.0.2-1.fc15.src.rpm

Comment 6 Susi Lehtola 2011-10-06 10:24:09 UTC
Yes, looks good.

Comment 7 Jerry James 2011-10-26 19:47:26 UTC
Taking for review.  I notice that the output of configure shows a Tk version of none.  If the Tk front-end is desirable, just adding --with-tk to each of the %dconfigure_mpi invocations and Requiring tk-devel does the trick.  If not, just ignore my pathetic attempt to be helpful. :-)

Attempting to install after building results in this error:

# rpm -i espresso-* ../noarch/espresso-common-3.0.2-1.fc15.noarch.rpm
error: Failed dependencies:
	/usr/bin/tclsh8.4 is needed by espresso-common-3.0.2-1.fc15.noarch

That's because tools/trace_memory.tcl starts with "#!/usr/bin/tclsh8.4", which is the wrong version.  Adding this to %prep fixes the problem:

sed -i 's/tclsh8\.4/tclsh/' tools/trace_memory.tcl

Comment 8 Jerry James 2011-10-26 20:56:37 UTC
It would be good to add %{?_isa} to arch-specific Requires.  The two cases of this are the -openmpi subpackage, which should have this:

Requires: openmpi%{?_isa}

and the -mpich2 subpackage, which should have this:

Requires: mpich2%{?_isa}


+: OK
-: must be fixed
=: should be fixed (at your discretion)
N: not applicable

MUST:
[+] rpmlint output:
espresso.x86_64: W: no-documentation
espresso.x86_64: W: no-manual-page-for-binary Espresso
espresso-openmpi.x86_64: W: no-documentation
espresso-mpich2.x86_64: W: no-documentation
espresso-common.noarch: W: spelling-error %description -l en_US subpackages -> sub packages, sub-packages, prepackages
espresso.spec:8: W: configure-without-libdir-spec
5 packages and 1 specfiles checked; 0 errors, 6 warnings.

All of these warnings appear to be either harmless or bogus.  I wonder about the no-documentation warnings, though.  Why aren't the user guide (doc/ug/ug.pdf) and tutorial (doc/tutorials/tut2/tut2.pdf) included in one of these packages or in a -doc subpackage?

[+] follows package naming guidelines
[+] spec file base name matches package name
[+] package meets the packaging guidelines
[+] package uses a Fedora approved license
[+] license field matches the actual license
[+] license file is included in %doc
[+] spec file is in American English
[+] spec file is legible
[+] sources match upstream: md5sum is f277a9adc6e16ca530f46dd74c3c5826 for both
[+] package builds on at least one primary arch (tried x86_64)
[N] appropriate use of ExcludeArch
[-] all build requirements in BuildRequires: need autoconf and automake
[N] spec file handles locales properly
[N] ldconfig in %post and %postun
[+] no bundled copies of system libraries
[+] no relocatable packages
[+] package owns all directories that it creates
[+] no files listed twice in %files
[+] proper permissions on files
[+] consistent use of macros
[+] code or permissible content
[N] large documentation in -doc
[+] no runtime dependencies in %doc
[N] header files in -devel
[N] static libraries in -static
[N] .so in -devel
[N] -devel requires main package
[+] package contains no libtool archives
[N] package contains a desktop file, uses desktop-file-install
[+] package does not own files/dirs owned by other packages
[+] all filenames in UTF-8

SHOULD:
[N] query upstream for license text
[N] description and summary contain available translations
[-] package builds in mock: tried fedora-rawhide-i386: the build failed because autoreconf was not found.
[+] package builds on all supported arches: tried i386 and x86_64
[+] package functions as described: minimal testing only
[+] sane scriptlets
[+] subpackages require the main package: actually require the -common subpackage and mandated by the MPI packaging guidelines
[N] placement of pkgconfig files
[N] file dependencies versus package dependencies
[=] package contains man pages for binaries/scripts

Comment 9 Thomas Spura 2011-10-26 21:48:43 UTC
Thanks for the review.

(In reply to comment #7)
> Taking for review.  I notice that the output of configure shows a Tk version of
> none.  If the Tk front-end is desirable, just adding --with-tk to each of the
> %dconfigure_mpi invocations and Requiring tk-devel does the trick.  If not,
> just ignore my pathetic attempt to be helpful. :-)

ok, added.

> sed -i 's/tclsh8\.4/tclsh/' tools/trace_memory.tcl

added and pull requested at:
https://github.com/ottxor/espresso/pull/2

The pdf documents aren't added, because I think upstream's documaintation is better suited:
http://espressomd.org/wiki/Documentation
Anyone who really wants to have them, can download it there ;)

The no-documentation issues is an indication for having no COPYING in it, but that's in common and anything R that, so it should be fine.

Changelog:
- use _isa where possible
- add missing BR autoconf/automake
  koji build successful:
  http://koji.fedoraproject.org/koji/taskinfo?taskID=3462381

Comment 11 Jerry James 2011-10-26 22:19:55 UTC
Everything looks great now.  APPROVED.

Comment 12 Thomas Spura 2011-10-27 10:04:29 UTC
(In reply to comment #11)
> Everything looks great now.  APPROVED.

Thanks.

New Package SCM Request
=======================
Package Name: espresso
Short Description: Extensible Simulation Package for Research on Soft matter
Owners: tomspur
Branches: f15 f16 
InitialCC:

Comment 13 Gwyn Ciesla 2011-10-27 12:28:14 UTC
Git done (by process-git-requests).

Comment 14 Fedora Update System 2011-10-27 13:31:20 UTC
espresso-3.0.2-2.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/espresso-3.0.2-2.fc15

Comment 15 Fedora Update System 2011-10-27 13:31:29 UTC
espresso-3.0.2-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/espresso-3.0.2-2.fc16

Comment 16 Fedora Update System 2011-10-28 21:29:53 UTC
espresso-3.0.2-2.fc16 has been pushed to the Fedora 16 testing repository.

Comment 17 Fedora Update System 2011-11-14 00:50:07 UTC
espresso-3.0.2-2.fc16 has been pushed to the Fedora 16 stable repository.

Comment 18 Fedora Update System 2011-11-14 00:52:47 UTC
espresso-3.0.2-2.fc15 has been pushed to the Fedora 15 stable repository.