Bug 496880

Summary: Review Request: wannier90 - Maximally-localised Wannier functions
Product: [Fedora] Fedora Reporter: Susi Lehtola <susi.lehtola>
Component: Package ReviewAssignee: Richard W.M. Jones <rjones>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, notting, rjones
Target Milestone: ---Flags: rjones: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 1.1-4.fc11 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-06-16 01:28:41 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 Susi Lehtola 2009-04-21 14:31:50 UTC
Spec URL:
http://theory.physics.helsinki.fi/~jzlehtol/rpms/wannier90.spec

SRPM URL:
http://theory.physics.helsinki.fi/~jzlehtol/rpms/wannier90-1.1-1.fc10.src.rpm

Upstream URL:
http://wannier.org/


Description:
Wannier90 is a program for calculating maximally-localised Wannier functions
(MLWF) from a set of Bloch energy bands that may or may not be attached to or
mixed with other bands. The formalism works by minimising the total spread of
the MLWF in real space. This is done in the space of unitary matrices that
describe rotations of the Bloch bands at each k-point. As a result, wannier90
is independent of the basis set used in the underlying calculation to obtain
the Bloch states. Therefore, it may be interfaced straightforwardly to any
electronic structure code. The locality of MLWF can be exploited to compute
band-structure, density of states and Fermi surfaces at modest computational
cost.

Furthermore, wannier90 is able to output MLWF for visualisation and other
post-processing purposes. Wannier functions are already used in a wide variety
of applications. These include analysis of chemical bonding in real space;
calculation of dielectric properties via the modern theory of polarisation;
and as an accurate and minimal basis set in the construction of model
Hamiltonians for large-scale systems, in linear-scaling quantum Monte Carlo
calculations, and for efficient computation of material properties, such as
the anomalous Hall coefficient.


rpmlint output:
wannier90.x86_64: W: unstripped-binary-or-object /usr/lib64/libwannier.so
wannier90.x86_64: W: no-soname /usr/lib64/libwannier.so
3 packages and 1 specfiles checked; 0 errors, 2 warnings.

I have no idea why rpm doesn't strip the library...

Comment 1 Susi Lehtola 2009-04-21 18:29:26 UTC
Branched the library into its own package.

Spec URL:
http://theory.physics.helsinki.fi/~jzlehtol/rpms/wannier90.spec

SRPM URL:
http://theory.physics.helsinki.fi/~jzlehtol/rpms/wannier90-1.1-2.fc10.src.rpm

Comment 2 Richard W.M. Jones 2009-05-15 11:11:54 UTC
Taking for review.

Comment 3 Richard W.M. Jones 2009-05-15 11:24:22 UTC
Builds OK in Koji.
http://koji.fedoraproject.org/koji/taskinfo?taskID=1355896

Comment: the name of the executable is 'wannier90.x'.  Not a
blocker, but a little unusual.

Comment 4 Richard W.M. Jones 2009-05-15 11:28:50 UTC
rpmlint says:

wannier90-devel.i586: W: no-documentation

It would be worth adding at least the license file to this
package, I think.

wannier90-libs.i586: W: unstripped-binary-or-object /usr/lib/libwannier.so

You probably want to strip this one, although I guess this
might break debuginfo.

wannier90-libs.i586: W: no-soname /usr/lib/libwannier.so

This is a consequence of upstream's peculiar build process.
Persuade them to use libtool :-)

Comment 5 Richard W.M. Jones 2009-05-15 11:31:52 UTC
Comment: Would be worth including the examples/ subdirectory
from the source, particularly since it is mentioned in the README
file.

Comment 6 Richard W.M. Jones 2009-05-15 11:42:43 UTC
? rpmlint output

Please see comment 4.  I think at least some of
these are worth fixing.

+ package name satisfies the packaging naming guidelines
+ specfile name matches the package base name
+ package should satisfy packaging guidelines
+ license meets guidelines and is acceptable to Fedora
  GPLv2+
+ license matches the actual package license
+ %doc includes license file
+ spec file written in American English
+ spec file is legible
+ upstream sources match sources in the srpm
  2a547276e25d2345480ec3717c6c2f3f / 6259705
+ package successfully builds on at least one architecture
  built in Koji
n/a ExcludeArch bugs filed
+ BuildRequires list all build dependencies
n/a %find_lang instead of %{_datadir}/locale/*
+ binary RPM with shared library files must call ldconfig in %post and %postun
+ does not use Prefix: /usr
+ package owns all directories it creates
+ no duplicate files in %files
+ %defattr line
+ %clean contains rm -rf $RPM_BUILD_ROOT
+ consistent use of macros
+ package must contain code or permissible content
n/a large documentation files should go in -doc subpackage
  (documentation is 740K unpacked, but this is still not a
  really significant part of the whole package)
+ files marked %doc should not affect package
+ header files should be in -devel
n/a static libraries should be in -static
n/a packages containing pkgconfig (.pc) files need 'Requires: pkgconfig'
+ libfoo.so must go in -devel
  (in -libs, which is also OK)
+ -devel must require the fully versioned base
  (requires -libs, which is OK)
+ packages should not contain libtool .la files
n/a packages containing GUI apps must include %{name}.desktop file
+ packages must not own files or directories owned by other packages
+ %install must start with rm -rf %{buildroot} etc.
+ filenames must be valid UTF-8

Optional:

n/a if there is no license file, packager should query upstream
n/a translations of description and summary for non-English languages, if available
+ reviewer should build the package in mock
+ the package should build into binary RPMs on all supported architectures
+ review should test the package functions as described
  (I tested it ran on the examples)
+ scriptlets should be sane
n/a pkgconfig files should go in -devel
+ shouldn't have file dependencies outside /etc /bin /sbin /usr/bin or /usr/sbin


-----

I would like to hear your feedback on comments 3, 4 and 5.

Comment 7 Susi Lehtola 2009-05-15 12:41:36 UTC
(In reply to comment #3)
> Comment: the name of the executable is 'wannier90.x'.  Not a
> blocker, but a little unusual.  

I don't want to break compatibility with upstream, so I'm keeping the name of the binary as is.

(In reply to comment #4)
> wannier90-devel.i586: W: no-documentation
> 
> It would be worth adding at least the license file to this
> package, I think.

IMHO it's not needed, since the devel package requires the base package that contains the documentation along with the license.


> wannier90-libs.i586: W: unstripped-binary-or-object /usr/lib/libwannier.so
> 
> You probably want to strip this one, although I guess this
> might break debuginfo.

Merged this with the main package, as I made the executable link to the shared library.

The warning was caused by find-debuginfo.sh not finding the non-executable library, it works now.

> wannier90-libs.i586: W: no-soname /usr/lib/libwannier.so
> 
> This is a consequence of upstream's peculiar build process.
> Persuade them to use libtool :-)  

Upstream builds a static library, I changed the makefile to build a shared library instead.


(In reply to comment #5)
> Comment: Would be worth including the examples/ subdirectory
> from the source, particularly since it is mentioned in the README
> file.  

Done.

http://theory.physics.helsinki.fi/~jzlehtol/rpms/wannier90.spec
http://theory.physics.helsinki.fi/~jzlehtol/rpms/wannier90-1.1-3.fc10.src.rpm


rpmlint output:
wannier90.x86_64: W: no-soname /usr/lib64/libwannier.so
wannier90-devel.x86_64: W: no-documentation
3 packages and 0 specfiles checked; 0 errors, 2 warnings.

These can be ignored, as mentioned above.

Comment 8 Richard W.M. Jones 2009-05-15 14:24:05 UTC
OK, I checked the updated package, and this now
looks good.

------------------------------
APPROVED by rjones
------------------------------

Comment 9 Susi Lehtola 2009-05-15 14:28:41 UTC
Thanks for the review!

New Package CVS Request
=======================
Package Name: wannier90
Short Description: Maximally-localised Wannier functions 
Owners: jussilehtola
Branches: F-10 F-11 EL-5
InitialCC:

Comment 10 Kevin Fenzi 2009-05-15 23:51:44 UTC
cvs done.

Comment 11 Fedora Update System 2009-05-16 08:22:36 UTC
wannier90-1.1-4.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/wannier90-1.1-4.fc10

Comment 12 Fedora Update System 2009-05-16 08:23:51 UTC
wannier90-1.1-4.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/wannier90-1.1-4.fc11

Comment 13 Fedora Update System 2009-05-19 02:01:42 UTC
wannier90-1.1-4.fc11 has been pushed to the Fedora 11 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update wannier90'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-5080

Comment 14 Fedora Update System 2009-05-19 02:08:07 UTC
wannier90-1.1-4.fc10 has been pushed to the Fedora 10 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update wannier90'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F10/FEDORA-2009-5115

Comment 15 Fedora Update System 2009-06-16 01:28:35 UTC
wannier90-1.1-4.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 16 Fedora Update System 2009-06-16 02:10:39 UTC
wannier90-1.1-4.fc11 has been pushed to the Fedora 11 stable repository.  If problems still persist, please make note of it in this bug report.