Bug 468579 - Review Request: PyQuante - Python Quantum Chemistry
Summary: Review Request: PyQuante - Python Quantum Chemistry
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Fabian Affolter
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-10-26 11:11 UTC by Susi Lehtola
Modified: 2009-03-09 23:11 UTC (History)
3 users (show)

Fixed In Version: 1.6.3-1.fc10
Clone Of:
Environment:
Last Closed: 2009-03-09 22:44:20 UTC
Type: ---
Embargoed:
mail: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Susi Lehtola 2008-10-26 11:11:35 UTC
Spec URL: http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante.spec
SRPM URL: http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante-1.6.1-1.fc9.src.rpm

Description:
PyQuante is an open-source suite of programs for developing quantum chemistry
methods. The program is written in the Python programming language, but has
many "rate-determining" modules also written in C for speed. The resulting
code, though not as fast as Jaguar, NWChem, Gaussian, or GAMESS, is much
easier to understand and modify. The goal of this software is not necessarily
to provide a working quantum chemistry program (although it will hopefully do
that), but rather to provide a well-engineered set of tools so that scientists
can construct their own quantum chemistry programs without going through the
tedium of having to write every low-level routine.


rpmlint output:

PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Minimizers.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/IO/XYZ.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/GridPoint.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/qmmd.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/pyints.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/PGBF.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/MINDO3_Parameters.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/DFunctionals.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/IO/Molf.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Constants.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Basis/Tools.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Atom.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/dft.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Molecule.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/leapfrog.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/OEP.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/EN2.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Lebedev.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/fermi_dirac.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/ThomasFermi.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/MINDO3.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/pressure.py 0644
PyQuante.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python2.5/site-packages/PyQuante/pressure.py
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/DMP.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Bunch.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/IO/Cube.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/LA2.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Dynamics.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/IO/Jaguar.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/AnalyticDerivatives.py 0644
PyQuante.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python2.5/site-packages/PyQuante/AnalyticDerivatives.py
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Wavefunction.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/force.py 0644
PyQuante.x86_64: E: wrong-script-end-of-line-encoding /usr/lib64/python2.5/site-packages/PyQuante/force.py
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/NumWrap.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/MolecularGrid.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/CGBF.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/IO/Matlab.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/CI.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Element.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/PyQuante2.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Convergence.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/NEB.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/AtomicGrid.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/DFunctionalsOld.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Slater.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Solvers.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/MP.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/HFGF.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/rys.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/hgp.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/hartree_fock.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/Legendre.py 0644
PyQuante.x86_64: E: non-executable-script /usr/lib64/python2.5/site-packages/PyQuante/rohf.py 0644
PyQuante.x86_64: W: invalid-license Modified BSD
PyQuante-debuginfo.x86_64: W: invalid-license Modified BSD
2 packages and 0 specfiles checked; 54 errors, 2 warnings.

Comment 1 Fabian Affolter 2008-10-27 00:02:21 UTC
Only some quick comment about the rpmlint output and your spec file...

Spec file:

Detail about packaging python stuff: https://fedoraproject.org/wiki/Packaging/Python

Name: PyQuante
 - The name of your package should be lower case
   https://fedoraproject.org/wiki/Packaging/NamingGuidelines#Case_Sensitivity

BuildRequires
 - 'BuildRequires:   python' is missing

% files
 - Please follow the guidelines https://fedoraproject.org/wiki/Packaging/Python#System_Architecture

%changelog
 - E mail address is missing
   https://fedoraproject.org/wiki/Packaging/Guidelines#Changelogs

rpmlint output:

(In reply to comment #0)
> PyQuante.x86_64: E: non-executable-script
> /usr/lib64/python2.5/site-packages/PyQuante/Minimizers.py 0644

You can add something like 'find  *.py -type f | xargs chmod a+x' to fix this.

> PyQuante.x86_64: E: wrong-script-end-of-line-encoding
> /usr/lib64/python2.5/site-packages/PyQuante/pressure.py

If you have to remove DOS line endings in this file 'sed -i 's/\r$//' file.py'

> PyQuante.x86_64: W: invalid-license Modified BSD
> PyQuante-debuginfo.x86_64: W: invalid-license Modified BSD

For a valid license for Fedora, please take a look at https://fedoraproject.org/wiki/Licensing

Comment 2 Fabian Affolter 2008-11-13 13:13:25 UTC
ping?

Comment 3 Susi Lehtola 2008-11-13 13:46:23 UTC
Sorry, I'll get right on it.

Comment 4 Susi Lehtola 2008-11-13 14:13:27 UTC
(In reply to comment #1)
> Only some quick comment about the rpmlint output and your spec file...
> 
> Spec file:
> 
> Detail about packaging python stuff:
> https://fedoraproject.org/wiki/Packaging/Python
> 
> Name: PyQuante
>  - The name of your package should be lower case
>    https://fedoraproject.org/wiki/Packaging/NamingGuidelines#Case_Sensitivity

The author refers to the software as PyQuante, also the python modules are called PyQuante. Refer to ORBit in Naming Guidelines.

> BuildRequires
>  - 'BuildRequires:   python' is missing

It is already required by python-setuptools-devel (and numpy too?).
 
> % files
>  - Please follow the guidelines
> https://fedoraproject.org/wiki/Packaging/Python#System_Architecture

Hmm, I thought I already was following them. I can't find anything wrong with using %{python_sitearch} as defined in the Python guidelines. PyQuante contains compiled C code in the modules..

>> PyQuante.x86_64: E: non-executable-script
>> /usr/lib64/python2.5/site-packages/PyQuante/Minimizers.py 0644
>
>You can add something like 'find  *.py -type f | xargs chmod a+x' to fix this.

If I do that then I get script-without-shebang errors.
Besides, the files in site-packages don't need to be executable, since they just contain modules used by the frontend software.

Check your python-sitelib directory, only a small minority of the .py files are executable. rpmlint shouldn't complain about this.

> > PyQuante.x86_64: W: invalid-license Modified BSD
> > PyQuante-debuginfo.x86_64: W: invalid-license Modified BSD
> 
> For a valid license for Fedora, please take a look at
> https://fedoraproject.org/wiki/Licensing

Yeah, but the license is not word-for-word BSD.

http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante.spec
http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante-1.6.1-2.fc9.src.rpm

Comment 5 Fabian Affolter 2008-11-14 11:20:59 UTC
(In reply to comment #4)
> (In reply to comment #1)
> > Name: PyQuante
> >  - The name of your package should be lower case
> >    https://fedoraproject.org/wiki/Packaging/NamingGuidelines#Case_Sensitivity
> 
> The author refers to the software as PyQuante, also the python modules are
> called PyQuante. Refer to ORBit in Naming Guidelines.

OK 

> > BuildRequires
> >  - 'BuildRequires:   python' is missing
> 
> It is already required by python-setuptools-devel (and numpy too?).

python is no longer in the default packageset. 
https://fedoraproject.org/wiki/Packaging/Python#BuildRequires

> > % files
> >  - Please follow the guidelines
> > https://fedoraproject.org/wiki/Packaging/Python#System_Architecture
> 
> Hmm, I thought I already was following them. I can't find anything wrong with
> using %{python_sitearch} as defined in the Python guidelines. PyQuante contains
> compiled C code in the modules..

I guess that I have had %{python_sitearch}/* in my mind.  But I can remember if I thought about %{python_sitearch}/modulename/*

> >> PyQuante.x86_64: E: non-executable-script
> >> /usr/lib64/python2.5/site-packages/PyQuante/Minimizers.py 0644
> >
> >You can add something like 'find  *.py -type f | xargs chmod a+x' to fix this.
> 
> If I do that then I get script-without-shebang errors.
> Besides, the files in site-packages don't need to be executable, since they
> just contain modules used by the frontend software.
> 
> Check your python-sitelib directory, only a small minority of the .py files are
> executable. rpmlint shouldn't complain about this.

I will take a look at it.
 
> > > PyQuante.x86_64: W: invalid-license Modified BSD
> > > PyQuante-debuginfo.x86_64: W: invalid-license Modified BSD
> > 
> > For a valid license for Fedora, please take a look at
> > https://fedoraproject.org/wiki/Licensing
> 
> Yeah, but the license is not word-for-word BSD.

The license looks like MIT 'Old Style with legal disclaimer 3'
http://fedoraproject.org/wiki/Licensing/MIT

Comment 6 Susi Lehtola 2008-11-21 14:45:39 UTC
Fixed license tag to BSD (the license is almost the same as New BSD 3 clause license, only difference is

BSD:
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS AS IS

PyQuante:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS


I don't think there's anything wrong with the %files section, since the package doesn't end up owning any directories or files it shouldn't.


http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante.spec
http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante-1.6.1-3.fc9.src.rpm

Comment 7 Susi Lehtola 2009-02-05 17:40:04 UTC
Ping; Fabian, are you going to review the package?

Comment 8 Fabian Affolter 2009-02-23 23:18:13 UTC
- '%{!?python_sitelib: ...' is not needed at the top of the spec file.
- Source URL should be 
  http://downloads.sourceforge.net/pyquante/%{name}-%{version}.tar.gz

- (In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #1)
> > >> PyQuante.x86_64: E: non-executable-script
> > >> /usr/lib64/python2.5/site-packages/PyQuante/Minimizers.py 0644
> > >
> > >You can add something like 'find  *.py -type f | xargs chmod a+x' to fix this.
> > 
> > If I do that then I get script-without-shebang errors.
> > Besides, the files in site-packages don't need to be executable, since they
> > just contain modules used by the frontend software.
> > 
> > Check your python-sitelib directory, only a small minority of the .py files are
> > executable. rpmlint shouldn't complain about this.

Will upstream fix this?  If the modules only are used by the frontend then the shebang can be removed (and then the rpmlint errors will disappear, I guess)

Comment 9 Fabian Affolter 2009-02-23 23:21:26 UTC
Is the line encodings fixing not better be done in the %prep section?

Comment 10 Susi Lehtola 2009-02-24 11:46:13 UTC
Okay, I've removed the shebangs, and the package still works.
rpmlint output is now clean.

http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante.spec
http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante-1.6.1-4.fc10.src.rpm

Comment 11 Susi Lehtola 2009-02-24 18:54:10 UTC
Added tests directory.

http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante.spec
http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante-1.6.1-5.fc10.src.rpm


Also, I've contacted upstream about the shebangs; they will be removed in the next release.

Comment 12 Susi Lehtola 2009-02-25 20:30:56 UTC
Coordinated fixes with upstream. Rpmlint output is now clean.

http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante.spec
http://theory.physics.helsinki.fi/~jzlehtol/rpms/PyQuante-1.6.3-1.fc10.src.rpm

Comment 13 Fabian Affolter 2009-03-07 11:51:16 UTC
Package Review
==============

Package: 

Key:
 - = N/A
 x = Check
 ! = Problem
 ? = Not evaluated

=== REQUIRED ITEMS ===
 [x] Package is named according to the Package Naming Guidelines.
 [x] Spec file name must match the base package %{name}, in the format %{name}.spec.
 [x] Package meets the Packaging Guidelines
 [x] Package successfully compiles and builds into binary RPMs on at least one
supported architecture.
     Tested on: F10/i386
 [x] Rpmlint output:
     Source RPM:
     [fab@laptop24 SRPMS]$ rpmlint PyQuante-1.6.3-1.fc10.src.rpm 
     1 packages and 0 specfiles checked; 0 errors, 0 warnings.
     Binary RPM(s):
     [fab@laptop24 i386]$ rpmlint PyQuante-1.6.3-1.fc10.i386.rpm 
     1 packages and 0 specfiles checked; 0 errors, 0 warnings.
 [x] Package is not relocatable.
 [x] Buildroot is correct
     master   : %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
     spec file: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 [x] Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines.
 [x] License field in the package spec file matches the actual license.
     License type: BSD
 [x] If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc.

 [x] Spec file is legible and written in American English.
 [x] Sources used to build the package matches the upstream source, as provided
in the spec URL.
     Upstream source: 5e44d1e67a4f62da69ade7e26e53ab7b
     Build source:    5e44d1e67a4f62da69ade7e26e53ab7b
 [x] Package is not known to require ExcludeArch.
 [x] All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines.
 [-] The spec file handles locales properly.  %find_lang used for locales.
 [-] %{optflags} or RPM_OPT_FLAGS are honoured.
 [-] ldconfig called in %post and %postun if required.
 [x] %install starts with rm -rf %{buildroot} or $RPM_BUILD_ROOT.
 [x] Package must own all directories that it creates.
 [x] Package requires other packages for directories it uses.
 [x] Package does not own files or directories owned by other packages.
 [x] Package does not contain duplicates in %files.
 [x] Permissions on files are set properly. %defattr(-,root,root,-) is in every %files section.
 [x] Package uses nothing in %doc for runtime.
 [x] Package has a %clean section, which contains rm -rf %{buildroot} or $RPM_BUILD_ROOT.
 [x] Package consistently uses macros.
 [x] Package contains code, or permissable content.

 [-] Large documentation files are in a -doc subpackage, if required.
 [-] Header files in -devel subpackage, if present.
 [-] Fully versioned dependency in subpackage, if present.
 [-] Static libraries in -devel subpackage, if present.
 [-] Package requires pkgconfig, if .pc files are present.
 [-] Development .so files in -devel subpackage, if present.
 [-] Package does not contain any libtool archives (.la).
 [x] -debuginfo subpackage is present and looks complete.
 [-] Package contains a properly installed %{name}.desktop file if it is a GUI application.

=== SUGGESTED ITEMS ===
 [-] Timestamps preserved with cp and install.
 [-] Uses parallel make (%{?_smp_mflags})
 [x] Latest version is packaged.
 [-] Package does not include license text files separate from upstream.
 [-] Description and summary sections in the package spec file contains
translations for supported Non-English languages, if available.
 [x] Reviewer should test that the package builds in mock.
     Tested on: F10/i386
 [x] Package should compile and build into binary RPMs on all supported
architectures.
     Tested:  http://koji.fedoraproject.org/koji/taskinfo?taskID=1228388
 [x] Package functions as described.
 [-] Scriptlets must be sane, if used.
 [-] The placement of pkgconfig(.pc) files is correct.
 [-] File based requires are sane.
 [x] Changelog in allowed format

I see no further blocker, package APPROVED

Comment 14 Susi Lehtola 2009-03-07 13:10:53 UTC
Thanks for the review.

New Package CVS Request
=======================
Package Name: PyQuante
Short Description: Python Quantum Chemistry
Owners: jussilehtola
Branches: F-9 F-10
InitialCC:

Comment 15 Kevin Fenzi 2009-03-07 17:10:29 UTC
cvs done.

Comment 16 Susi Lehtola 2009-03-07 23:37:06 UTC
Oh, I need EPEL branches, too. Sorry.

Package Change Request
======================
Package Name: PyQuante
New Branches: EL-5
Owners: jussilehtola

Comment 17 Fedora Update System 2009-03-08 00:05:36 UTC
PyQuante-1.6.3-1.fc10 has been submitted as an update for Fedora 10.
http://admin.fedoraproject.org/updates/PyQuante-1.6.3-1.fc10

Comment 18 Fedora Update System 2009-03-08 00:06:21 UTC
PyQuante-1.6.3-1.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/PyQuante-1.6.3-1.fc9

Comment 19 Kevin Fenzi 2009-03-08 00:12:46 UTC
cvs done.

Comment 20 Fedora Update System 2009-03-09 22:44:14 UTC
PyQuante-1.6.3-1.fc10 has been pushed to the Fedora 10 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 21 Fedora Update System 2009-03-09 23:11:07 UTC
PyQuante-1.6.3-1.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.