[Bug 821727] Review Request: dolfin - the C++/Python interface of FEniCS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=821727

Ryan Curtin <ryan@xxxxxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ryan@xxxxxxxxxxxx

--- Comment #4 from Ryan Curtin <ryan@xxxxxxxxxxxx> ---
Hello there,

This is an unofficial review.  Instead of pasting all the items which passed
the guidelines successfully (like a lot of reviews) I prefer to just post the
issues; it's shorter that way.

> MUST: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review.

rpmlint is very noisy.  Many of these problems I may address later on, but for
now here is a dump of the output.

Checking: dolfin-openmpi-devel-1.0.0-0.3.fc17.i686.rpm
          dolfin-1.0.0-0.3.fc17.i686.rpm
          dolfin-mpich2-devel-1.0.0-0.3.fc17.i686.rpm
          dolfin-mpich2-1.0.0-0.3.fc17.i686.rpm
          dolfin-doc-1.0.0-0.3.fc17.i686.rpm
          dolfin-openmpi-1.0.0-0.3.fc17.i686.rpm
          dolfin-devel-1.0.0-0.3.fc17.i686.rpm
          dolfin-1.0.0-0.3.fc17.src.rpm
          dolfin-debuginfo-1.0.0-0.3.fc17.i686.rpm
dolfin-openmpi-devel.i686: I: enchant-dictionary-not-found en_US
dolfin-openmpi-devel.i686: W: only-non-binary-in-usr-lib
dolfin-openmpi-devel.i686: W: no-documentation
dolfin-openmpi-devel.i686: E: non-executable-script
/usr/lib/openmpi/share/dolfin/demo/undocumented/quadrature/python/demo_quadrature.py
0644L /usr/bin/env
dolfin.i686: W: name-repeated-in-summary C DOLFIN
dolfin.i686: W: unstripped-binary-or-object
/usr/lib/python2.7/site-packages/dolfin/_cpp.so
dolfin.i686: E: binary-or-shlib-defines-rpath
/usr/lib/python2.7/site-packages/dolfin/_cpp.so
['/builddir/build/BUILD/dolfin-1.0.0/serial/dolfin']
dolfin.i686: W: shared-lib-calls-exit /usr/lib/libdolfin.so.1.0.0
exit@GLIBC_2.0
dolfin.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/dolfin_utils/pjobs/torque.py 0644L
/usr/bin/env
dolfin.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/dolfin_utils/pjobs/sge.py 0644L /usr/bin/env
dolfin.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/dolfin_utils/pjobs/pjobs.py 0644L /usr/bin/env
dolfin-mpich2-devel.i686: W: only-non-binary-in-usr-lib
dolfin-mpich2-devel.i686: W: no-documentation
dolfin-mpich2-devel.i686: E: non-executable-script
/usr/lib/mpich2/share/dolfin/demo/undocumented/quadrature/python/demo_quadrature.py
0644L /usr/bin/env
dolfin-mpich2.i686: W: shared-lib-calls-exit
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 exit@GLIBC_2.0
dolfin-mpich2.i686: W: unstripped-binary-or-object
/usr/lib/python2.7/site-packages/mpich2/dolfin/_cpp.so
dolfin-mpich2.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/mpich2/dolfin_utils/pjobs/torque.py 0644L
/usr/bin/env
dolfin-mpich2.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/mpich2/dolfin_utils/pjobs/sge.py 0644L
/usr/bin/env
dolfin-mpich2.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/mpich2/dolfin_utils/pjobs/pjobs.py 0644L
/usr/bin/env
dolfin-mpich2.i686: E: invalid-locale-man-dir
/usr/share/man/mpich2/man1/dolfin-convert.1.gz
dolfin-mpich2.i686: W: file-not-in-%lang
/usr/share/man/mpich2/man1/dolfin-convert.1.gz
dolfin-mpich2.i686: E: invalid-locale-man-dir
/usr/share/man/mpich2/man1/dolfin-order.1.gz
dolfin-mpich2.i686: W: file-not-in-%lang
/usr/share/man/mpich2/man1/dolfin-order.1.gz
dolfin-mpich2.i686: E: invalid-locale-man-dir
/usr/share/man/mpich2/man1/dolfin-plot.1.gz
dolfin-mpich2.i686: W: file-not-in-%lang
/usr/share/man/mpich2/man1/dolfin-plot.1.gz
dolfin-mpich2.i686: E: invalid-locale-man-dir
/usr/share/man/mpich2/man1/dolfin-version.1.gz
dolfin-mpich2.i686: W: file-not-in-%lang
/usr/share/man/mpich2/man1/dolfin-version.1.gz
dolfin-doc.i686: W: hidden-file-or-dir
/usr/share/doc/dolfin-doc-1.0.0/sphinx-python/build/html/.buildinfo
dolfin-doc.i686: W: hidden-file-or-dir
/usr/share/doc/dolfin-doc-1.0.0/sphinx-cpp/build/html/.buildinfo
dolfin-doc.i686: W: doc-file-dependency
/usr/share/doc/dolfin-doc-1.0.0/sphinx-python/source/demo/undocumented/quadrature/python/demo_quadrature.py
/usr/bin/env
dolfin-openmpi.i686: W: unstripped-binary-or-object
/usr/lib/python2.7/site-packages/openmpi/dolfin/_cpp.so
dolfin-openmpi.i686: W: shared-lib-calls-exit
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 exit@GLIBC_2.0
dolfin-openmpi.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/openmpi/dolfin_utils/pjobs/pjobs.py 0644L
/usr/bin/env
dolfin-openmpi.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/openmpi/dolfin_utils/pjobs/torque.py 0644L
/usr/bin/env
dolfin-openmpi.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/openmpi/dolfin_utils/pjobs/sge.py 0644L
/usr/bin/env
dolfin-openmpi.i686: E: invalid-locale-man-dir
/usr/share/man/openmpi-i386/man1/dolfin-convert.1.gz
dolfin-openmpi.i686: W: file-not-in-%lang
/usr/share/man/openmpi-i386/man1/dolfin-convert.1.gz
dolfin-openmpi.i686: E: invalid-locale-man-dir
/usr/share/man/openmpi-i386/man1/dolfin-order.1.gz
dolfin-openmpi.i686: W: file-not-in-%lang
/usr/share/man/openmpi-i386/man1/dolfin-order.1.gz
dolfin-openmpi.i686: E: invalid-locale-man-dir
/usr/share/man/openmpi-i386/man1/dolfin-plot.1.gz
dolfin-openmpi.i686: W: file-not-in-%lang
/usr/share/man/openmpi-i386/man1/dolfin-plot.1.gz
dolfin-openmpi.i686: E: invalid-locale-man-dir
/usr/share/man/openmpi-i386/man1/dolfin-version.1.gz
dolfin-openmpi.i686: W: file-not-in-%lang
/usr/share/man/openmpi-i386/man1/dolfin-version.1.gz
dolfin-devel.i686: W: no-documentation
dolfin-devel.i686: E: non-executable-script
/usr/share/dolfin/demo/undocumented/quadrature/python/demo_quadrature.py 0644L
/usr/bin/env
dolfin.src: W: name-repeated-in-summary C DOLFIN
dolfin.src:337: W: macro-in-comment %if
dolfin.src:341: W: macro-in-comment %else
dolfin.src:342: W: macro-in-comment %{_mandir}
dolfin.src:342: W: macro-in-comment %{_arch}
dolfin.src:343: W: macro-in-comment %endif
dolfin.src:47: W: mixed-use-of-spaces-and-tabs (spaces: line 47, tab: line 27)
9 packages and 0 specfiles checked; 21 errors, 30 warnings.

(( ryan @ samedi )) ~/review-work/dolfin $ rpmlint dolfin
dolfin.i686: W: name-repeated-in-summary C DOLFIN
dolfin.i686: W: unstripped-binary-or-object
/usr/lib/python2.7/site-packages/dolfin/_cpp.so
dolfin.i686: E: binary-or-shlib-defines-rpath
/usr/lib/python2.7/site-packages/dolfin/_cpp.so
['/builddir/build/BUILD/dolfin-1.0.0/serial/dolfin']
dolfin.i686: W: unused-direct-shlib-dependency /usr/lib/libdolfin.so.1.0.0
/lib/libboost_thread-mt.so.1.48.0
dolfin.i686: W: unused-direct-shlib-dependency /usr/lib/libdolfin.so.1.0.0
/lib/libboost_math_tr1-mt.so.1.48.0
dolfin.i686: W: unused-direct-shlib-dependency /usr/lib/libdolfin.so.1.0.0
/lib/libamd.so.2
dolfin.i686: W: unused-direct-shlib-dependency /usr/lib/libdolfin.so.1.0.0
/lib/libblas.so.3
dolfin.i686: W: unused-direct-shlib-dependency /usr/lib/libdolfin.so.1.0.0
/lib/libcamd.so.2
dolfin.i686: W: unused-direct-shlib-dependency /usr/lib/libdolfin.so.1.0.0
/lib/libcolamd.so.2
dolfin.i686: W: unused-direct-shlib-dependency /usr/lib/libdolfin.so.1.0.0
/lib/libccolamd.so.2
dolfin.i686: W: unused-direct-shlib-dependency /usr/lib/libdolfin.so.1.0.0
/usr/lib/atlas/liblapack.so.3
dolfin.i686: W: shared-lib-calls-exit /usr/lib/libdolfin.so.1.0.0
exit@GLIBC_2.0
dolfin.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/dolfin_utils/pjobs/torque.py 0644L
/usr/bin/env
dolfin.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/dolfin_utils/pjobs/sge.py 0644L /usr/bin/env
dolfin.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/dolfin_utils/pjobs/pjobs.py 0644L /usr/bin/env
1 packages and 0 specfiles checked; 4 errors, 11 warnings.

(( ryan @ samedi )) ~/review-work/dolfin $
LD_LIBRARY_PATH="/usr/lib/openmpi/lib/" rpmlint dolfin-openmpi
dolfin-openmpi.i686: W: spelling-error Summary(en_US) runtime -> run time,
run-time, rudiment
dolfin-openmpi.i686: W: unstripped-binary-or-object
/usr/lib/python2.7/site-packages/openmpi/dolfin/_cpp.so
dolfin-openmpi.i686: W: unused-direct-shlib-dependency
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 /lib/libboost_thread-mt.so.1.48.0
dolfin-openmpi.i686: W: unused-direct-shlib-dependency
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 /lib/libboost_math_tr1-mt.so.1.48.0
dolfin-openmpi.i686: W: unused-direct-shlib-dependency
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 /lib/libamd.so.2
dolfin-openmpi.i686: W: unused-direct-shlib-dependency
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 /lib/libblas.so.3
dolfin-openmpi.i686: W: unused-direct-shlib-dependency
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 /lib/libcamd.so.2
dolfin-openmpi.i686: W: unused-direct-shlib-dependency
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 /lib/libcolamd.so.2
dolfin-openmpi.i686: W: unused-direct-shlib-dependency
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 /lib/libccolamd.so.2
dolfin-openmpi.i686: W: unused-direct-shlib-dependency
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 /usr/lib/atlas/liblapack.so.3
dolfin-openmpi.i686: W: unused-direct-shlib-dependency
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 /lib/libdl.so.2
dolfin-openmpi.i686: W: shared-lib-calls-exit
/usr/lib/openmpi/lib/libdolfin.so.1.0.0 exit@GLIBC_2.0
dolfin-openmpi.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/openmpi/dolfin_utils/pjobs/pjobs.py 0644L
/usr/bin/env
dolfin-openmpi.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/openmpi/dolfin_utils/pjobs/torque.py 0644L
/usr/bin/env
dolfin-openmpi.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/openmpi/dolfin_utils/pjobs/sge.py 0644L
/usr/bin/env
dolfin-openmpi.i686: E: invalid-locale-man-dir
/usr/share/man/openmpi-i386/man1/dolfin-convert.1.gz
dolfin-openmpi.i686: W: file-not-in-%lang
/usr/share/man/openmpi-i386/man1/dolfin-convert.1.gz
dolfin-openmpi.i686: E: invalid-locale-man-dir
/usr/share/man/openmpi-i386/man1/dolfin-order.1.gz
dolfin-openmpi.i686: W: file-not-in-%lang
/usr/share/man/openmpi-i386/man1/dolfin-order.1.gz
dolfin-openmpi.i686: E: invalid-locale-man-dir
/usr/share/man/openmpi-i386/man1/dolfin-plot.1.gz
dolfin-openmpi.i686: W: file-not-in-%lang
/usr/share/man/openmpi-i386/man1/dolfin-plot.1.gz
dolfin-openmpi.i686: E: invalid-locale-man-dir
/usr/share/man/openmpi-i386/man1/dolfin-version.1.gz
dolfin-openmpi.i686: W: file-not-in-%lang
/usr/share/man/openmpi-i386/man1/dolfin-version.1.gz
1 packages and 0 specfiles checked; 7 errors, 16 warnings.

(( ryan @ samedi )) ~/review-work/dolfin $
LD_LIBRARY_PATH="/usr/lib/mpich2/lib/" rpmlint dolfin-mpich2
dolfin-mpich2.i686: W: spelling-error Summary(en_US) runtime -> run time,
run-time, rudiment
dolfin-mpich2.i686: W: unused-direct-shlib-dependency
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 /lib/libboost_thread-mt.so.1.48.0
dolfin-mpich2.i686: W: unused-direct-shlib-dependency
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 /lib/libboost_math_tr1-mt.so.1.48.0
dolfin-mpich2.i686: W: unused-direct-shlib-dependency
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 /lib/libamd.so.2
dolfin-mpich2.i686: W: unused-direct-shlib-dependency
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 /lib/libblas.so.3
dolfin-mpich2.i686: W: unused-direct-shlib-dependency
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 /lib/libcamd.so.2
dolfin-mpich2.i686: W: unused-direct-shlib-dependency
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 /lib/libcolamd.so.2
dolfin-mpich2.i686: W: unused-direct-shlib-dependency
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 /lib/libccolamd.so.2
dolfin-mpich2.i686: W: unused-direct-shlib-dependency
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 /usr/lib/atlas/liblapack.so.3
dolfin-mpich2.i686: W: shared-lib-calls-exit
/usr/lib/mpich2/lib/libdolfin.so.1.0.0 exit@GLIBC_2.0
dolfin-mpich2.i686: W: unstripped-binary-or-object
/usr/lib/python2.7/site-packages/mpich2/dolfin/_cpp.so
dolfin-mpich2.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/mpich2/dolfin_utils/pjobs/torque.py 0644L
/usr/bin/env
dolfin-mpich2.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/mpich2/dolfin_utils/pjobs/sge.py 0644L
/usr/bin/env
dolfin-mpich2.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/mpich2/dolfin_utils/pjobs/pjobs.py 0644L
/usr/bin/env
dolfin-mpich2.i686: E: invalid-locale-man-dir
/usr/share/man/mpich2/man1/dolfin-convert.1.gz
dolfin-mpich2.i686: W: file-not-in-%lang
/usr/share/man/mpich2/man1/dolfin-convert.1.gz
dolfin-mpich2.i686: E: invalid-locale-man-dir
/usr/share/man/mpich2/man1/dolfin-order.1.gz
dolfin-mpich2.i686: W: file-not-in-%lang
/usr/share/man/mpich2/man1/dolfin-order.1.gz
dolfin-mpich2.i686: E: invalid-locale-man-dir
/usr/share/man/mpich2/man1/dolfin-plot.1.gz
dolfin-mpich2.i686: W: file-not-in-%lang
/usr/share/man/mpich2/man1/dolfin-plot.1.gz
dolfin-mpich2.i686: E: invalid-locale-man-dir
/usr/share/man/mpich2/man1/dolfin-version.1.gz
dolfin-mpich2.i686: W: file-not-in-%lang
/usr/share/man/mpich2/man1/dolfin-version.1.gz
1 packages and 0 specfiles checked; 7 errors, 15 warnings.

> MUST: Development files must be in a -devel package.

The dolfin-doc package contains a large number of source files, which appear to
be demo files.  This seems okay to me, but it may be worth going through all
those files and ensuring that only examples are included in the doc subpackage.
 To me it looks like many of the demo source files (such as, perhaps
'sphinx-cpp/source/demo/undocumented/periodic/cpp/Poisson.h) may not actually
be necessary in that package.

In addition, the dolfin-devel package seems to both include the headers in
/usr/include as well as a bunch of demos in /usr/share/dolfin/demo.  I am not
sure the demos are necessary in the devel subpackage and I would suggest that
they should appear only in the doc subpackage.

> MUST Rpath absent or only used for internal libs.

>From rpmlint:

> dolfin-openmpi.i686: W: unstripped-binary-or-object /usr/lib/python2.7/site-packages/openmpi/dolfin/_cpp.so
> dolfin-mpich2.i686: W: unstripped-binary-or-object /usr/lib/python2.7/site-packages/mpich2/dolfin/_cpp.so
> dolfin.i686: W: unstripped-binary-or-object /usr/lib/python2.7/site-packages/dolfin/_cpp.so

CMake should automatically be stripping at install-time, so I am not sure what
is happening here.

> %description
> DOLFIN is the C++/Python interface of FEniCS, providing a consistent 
> PSE (Problem Solving Environment) for ordinary and partial
> differential equations.

This could be rewrapped to have fewer lines and still be fewer than 80
characters per line.  Yes, that is pedantry... sorry...

To be even more unnecessarily pedantic, many of the subpackage descriptions do
not have punctuation at the end of the sentences.

> MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example.

The rpmlint output from earlier lists a couple files with potentially incorrect
permissions.

dolfin.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/dolfin_utils/pjobs/torque.py 0644L
/usr/bin/env
dolfin.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/dolfin_utils/pjobs/sge.py 0644L /usr/bin/env
dolfin.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/dolfin_utils/pjobs/pjobs.py 0644L /usr/bin/env

dolfin-openmpi.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/openmpi/dolfin_utils/pjobs/pjobs.py 0644L
/usr/bin/env
dolfin-openmpi.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/openmpi/dolfin_utils/pjobs/torque.py 0644L
/usr/bin/env
dolfin-openmpi.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/openmpi/dolfin_utils/pjobs/sge.py 0644L
/usr/bin/env

dolfin-mpich2.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/mpich2/dolfin_utils/pjobs/torque.py 0644L
/usr/bin/env
dolfin-mpich2.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/mpich2/dolfin_utils/pjobs/sge.py 0644L
/usr/bin/env
dolfin-mpich2.i686: E: non-executable-script
/usr/lib/python2.7/site-packages/mpich2/dolfin_utils/pjobs/pjobs.py 0644L
/usr/bin/env

> SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.

This package has no LICENSE file; just wanted to point that out.

> [!]: MUST Buildroot is not present
>     Note: Buildroot is not needed unless packager plans to package for EPEL5
> See: http://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot_tag

It looks like you are packaging for EPEL5, due to the cmake28 macro bits, so
%{buildroot} should be defined.

> [!]: MUST Package has no %clean section with rm -rf %{buildroot} (or
>      $RPM_BUILD_ROOT)
>     Note: Clean is needed only if supporting EPEL
> See: http://fedoraproject.org/wiki/Packaging/Guidelines#.25clean

Somewhat self-explanatory.

> [!]: MUST Package requires pkgconfig, if .pc files are present. (EPEL5)
>      Note: Only applicable for EL-5
> See: http://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies#EL5

That should be simple to fix.

The package seems to build okay and a very simple test seems to indicate that
it runs properly, too.

Hopefully this review is helpful...

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
package-review mailing list
package-review@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/package-review



[Index of Archives]     [Fedora Legacy]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]