Bug 1350257 - Review Request: petsc - Portable Extensible Toolkit for Scientific Computation
Summary: Review Request: petsc - Portable Extensible Toolkit for Scientific Computation
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Dave Love
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1382916
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-06-26 20:09 UTC by Antonio T. (sagitter)
Modified: 2017-02-07 04:33 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2016-11-10 03:28:53 UTC
Type: ---
Embargoed:
dave.love: fedora-review+


Attachments (Terms of Use)
el6 support (1.93 KB, patch)
2016-07-28 14:30 UTC, Dave Love
no flags Details | Diff
cgns fix (380 bytes, patch)
2016-08-24 09:08 UTC, Dave Love
no flags Details | Diff

Description Antonio T. (sagitter) 2016-06-26 20:09:31 UTC
Spec URL: http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/plain/petsc.spec

SRPM URL: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-x86_64/00362535-petsc/petsc-3.7.2-2.fc25.src.rpm

Description:
PETSc, pronounced PET-see (the S is silent), is a suite of data structures
and routines for the scalable (parallel) solution of scientific applications
modeled by partial differential equations.

Fedora Account System Username: sagitter

This package is for Fedora and EPEL7.

Comment 1 Antonio T. (sagitter) 2016-06-28 10:29:56 UTC
Spec URL: https://sagitter.fedorapeople.org/petsc/petsc.spec
SRPM URL: https://sagitter.fedorapeople.org/petsc/petsc-3.7.2-5.fc24.src.rpm

- Packaged all documentation files

Tests are disabled but they do not work on koji only (I guess).
Please, test with

rpmbuild --recompile --with check petsc-3.7.2-5.fc24.src.rpm

Comment 2 Antonio T. (sagitter) 2016-07-10 19:24:41 UTC
Spec URL: https://sagitter.fedorapeople.org/petsc/petsc.spec
SRPM URL: https://sagitter.fedorapeople.org/petsc/petsc-3.7.2-6.fc24.src.rpm

- Packed additional header files
- Tests performed on EPEL7

Comment 3 Dave Love 2016-07-28 14:29:20 UTC
I should probably take this, as I've packaged an earlier version.  However, I'm about to go on holiday for 10 days, so I won't set the flag in case someone else steps in.  (I'd been waiting ages to get hypre through as a dependency.)

I'd want it to support el6, though, which is probably still the predominant distribution in HPC.  I'll attach a patch, but I could maintain for el6 if necessary.

There are some components that could be added: at least scotch (I don't know how it is in comparison with metis, but there's ptscotch already) and cgnslib, with hypre in stable soon.  Any reason to avoid them?

I know Fedora linear algebra is a disaster area, but I wince whenever I see reference BLAS used rather than openblas (or atlas where necessary).  Is there any harm in linking against openblas?

Comment 4 Dave Love 2016-07-28 14:30:04 UTC
Created attachment 1185140 [details]
el6 support

Comment 5 Antonio T. (sagitter) 2016-07-28 17:17:44 UTC
>There are some components that could be added: at least scotch

I don't see any configure option to pass libscotch to petsc, just --with-ptscotch that requires --with-mpi.

> Is there any harm in linking against openblas?

I guess that in the PETSc code is not considered openblas libraries; or at least looks so in petsc-3.7.2/config/BuildSystem/config/packages/BlasLapack.py

SPEC: http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/plain/petsc.spec

SRPM: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-i386/00428640-petsc/petsc-3.7.2-8.fc26.src.rpm

- Support el6
- Add cgnslib support
- Rebuild with Hypre support

Comment 6 Dave Love 2016-08-09 16:27:17 UTC
I had trouble running the review tool as I have to use a VM, and the build takes a lot of memory, but there are some problems and queries I have with the spec anyhow.

 * I think the --with-mpi-lib and --with-mpi-include configure args should be removed.
   They aren't necessary, and running pkg-config actually fails.  The %(env is
   evaluated at the wrong time and causes complaints, but there's no config file
   anyhow in at least el6, and it's unnecessary -- the mpi compiler wrapper will
   find the bits.  Are the other pkg-configs actually necessary?

 * The Requires: for petsc64-devel is misplaced and its description line is too long.

 * Why do the main packages require gfortran?  That can't be right.

 * The Fortran .mod files should be in -devel packages.

 * Do you have an opinion on whether a complex version is useful?
   Debian builds that, but only slepc-complex depends on it.

Could you fix the problems, and I'll run the review tool properly, but it will probably be OK then.

Comment 7 Dave Love 2016-08-09 16:39:29 UTC
Oh, something else.  PAPI is a mess on el6.  You need to ensure you get v5 for at least sandybridge+.  This is what I had to do for scorep:

# The messing with linkage paths here and below is due to the mess of          
# the papi package there.  %%_libdir/libpapi.so is papi v4 with a              
# soname of libpapi.so (bz #1300664).                                          
export LDFLAGS='-Wl,--as-needed -L%{_libdir}/papi-5.1.1/usr/lib'
%global configure_opts --enable-shared --disable-static --disable-silent-rules %{?el6:--with-papi-header=%{_libdir}/papi-5.1.1%{_includedir} --with-papi-lib=%{_libdir}/papi-5.1.1/usr/lib}

Comment 8 Antonio T. (sagitter) 2016-08-10 17:33:10 UTC
(In reply to Dave Love from comment #6)
> I had trouble running the review tool as I have to use a VM, and the build
> takes a lot of memory, but there are some problems and queries I have with
> the spec anyhow.
> 
>  * I think the --with-mpi-lib and --with-mpi-include configure args should
> be removed.
>    They aren't necessary, and running pkg-config actually fails.  The %(env
> is
>    evaluated at the wrong time and causes complaints, but there's no config
> file
>    anyhow in at least el6, and it's unnecessary -- the mpi compiler wrapper
> will
>    find the bits.  Are the other pkg-configs actually necessary?

Any better option instead of pkg-config calls for mpi libs?

> 
>  * The Requires: for petsc64-devel is misplaced and its description line is
> too long.

Fixed.

> 
>  * Why do the main packages require gfortran?  That can't be right.

It requires libgfortran ...
Or I'm in wrong?

> 
>  * The Fortran .mod files should be in -devel packages.

Fixed.

> 
>  * Do you have an opinion on whether a complex version is useful?
>    Debian builds that, but only slepc-complex depends on it.

I have not idea

(In reply to Dave Love from comment #7)
> Oh, something else.  PAPI is a mess on el6.  You need to ensure you get v5
> for at least sandybridge+.  This is what I had to do for scorep:
> 
> # The messing with linkage paths here and below is due to the mess of       
> 
> # the papi package there.  %%_libdir/libpapi.so is papi v4 with a           
> 
> # soname of libpapi.so (bz #1300664).                                       
> 
> export LDFLAGS='-Wl,--as-needed -L%{_libdir}/papi-5.1.1/usr/lib'
> %global configure_opts --enable-shared --disable-static
> --disable-silent-rules
> %{?el6:--with-papi-header=%{_libdir}/papi-5.1.1%{_includedir}
> --with-papi-lib=%{_libdir}/papi-5.1.1/usr/lib}

I have added compiler/linker flags with a rpath.

SPEC: http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/plain/petsc.spec?id=8078b81e4d137eeacba114630538415b19396e08

SRPM: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-x86_64/00440220-petsc/petsc-3.7.2-9.fc26.src.rpm

Copr builds: http://copr-fe.cloud.fedoraproject.org/coprs/sagitter/petsc/build/440220/

Comment 9 Dave Love 2016-08-15 16:10:11 UTC
Sorry for the delay.  I think this needs more work than I realized and I need to look at it further and check local builds.  Some immediate comments from the last go:

* I doubt think pkg-config is needed, even where the attempted use isn't broken.  Where components aren't on the mpicc paths, you can specify the sub-directories easily.

* libgfortran is in its own package, and the dependencies for it are dealt with automatically as usual.

* You don't need an rapth for PAPI on el6.

It's probably not worth making a new spec until I have time to look at it in detail and make more comments.

Comment 10 Antonio T. (sagitter) 2016-08-15 19:06:22 UTC
(In reply to Dave Love from comment #9)
> Sorry for the delay.  I think this needs more work than I realized and I
> need to look at it further and check local builds.  Some immediate comments
> from the last go:
> 
> * I doubt think pkg-config is needed, even where the attempted use isn't
> broken.  Where components aren't on the mpicc paths, you can specify the
> sub-directories easily.
> 
> * libgfortran is in its own package, and the dependencies for it are dealt
> with automatically as usual.
> 
> * You don't need an rapth for PAPI on el6.
> 
> It's probably not worth making a new spec until I have time to look at it in
> detail and make more comments.

SPEC: http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/plain/petsc.spec?id=4b6c29a4ed6b12fc9867f6f0575b762ee3729d2a

SRPM: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-i386/00441577-petsc/petsc-3.7.2-9.fc26.src.rpm

Comment 11 Benson Muite 2016-08-22 15:44:47 UTC
OpenBLAS or ATLAS would be nice. Am looking  at adding CLBLAS in future - will there be options to allow users to choose BLAS library being used? Netlib blas is still useful for checking correct results - even if it may be slow. Complex version would be very helpful.

Comment 12 Dave Love 2016-08-24 09:07:10 UTC
OK, I've now spent some time looking at this and building it; sorry for the delay.

The %() stuff needs removing.  It can only work for things in the
build root, and it's not necessary -- you can see errors in the build
output and from rpmlint.

I'd forgotten that I had a more recent cgns installed; the epel6
version won't work, and needs to be conditionalized out.  I also found
it needed a patch I'll attach to avoid a clash with complex.h.

EPEL needs Require: openmpi%{_isa}, which I think is harmless elsewhere.

MPI headers should be in $MPI_INCLUDE/include/petsc, similarly to the serial ones.

The other instances of "environment(modules)" need conditionalizing for el6.

Why is matplotlib required?

What is the SETOPT_FLAGS=... business about?  It looks wrong and
everything seems to work without it.

I still think it should use openblas (as below).

I think it's better to remove use of pkg-config, which isn't
necessary, and simplify the configure args.  I think the spec would be
lot more maintainable and easier to follow by simplifying it.  I think
the constant with_... conditions should be removed to start with --
add comments about what doesn't work where appropriate.  You could
abstract the common configure options and simplify them a lot,
especially if you ensure the with_... macros are always defined.  The
following works for me (compacted a bit for posting):

  %global common_args --with-shared-libraries=1 \\\
   --with-petsc-arch=%{_arch} --with-fortran-interfaces=1 --with-debugging=0 \\\
   --with-precision=double --with-clanguage=C \\\
   COPTFLAGS="$RPM_OPT_FLAGS -O3" CXXOPTFLAGS="$RPM_OPT_FLAGS -O3" \\\
   FOPTFLAGS="$RPM_OPT_FLAGS -I%{_fmoddir} -O3" \\\
   --with-gmp=1 --with-openmp=1 --with-libpng=1 --with-hwloc=1 --with-metis=1 \\\
  %if %{with_cgns} \
   --with-cgns=1 \\\
  %endif \
   --with-valgrind=1 --with-valgrind-dir=%{_prefix} --with-papi=1 \\\
  %if 0%{?el6} \
   --with-papi-include=%{_libdir}/papi-5.1.1/%{_includedir} --with-papi-lib=%{_libdir}/papi-5.1.1/%{_prefix}/lib/libpapi.so \\\
  %else \
   --with-papi-include=%{_includedir} --with-papi-lib=libpapi.so \\\
  %endif \
  %if %{with_suitesparse} \
   --with-suitesparse=1 \\\
   --with-suitesparse-include=%{_includedir}/suitesparse \\\
   --with-suitesparse-lib=[libumfpack.so,libklu.so,libcholmod.so,libbtf.so,libccolamd.so,libcolamd.so,libcamd.so,libamd.so,libsuitesparseconfig.so] \\\
  %endif \
  %if %{with_superlu} && ! %{arch64} \
   --with-superlu=1 \\\
   --with-superlu-include=%{_includedir}/SuperLU \\\
   --with-superlu-lib=libsuperlu.so \\\
  %endif \
  %if %{with_opencl} \
   --with-opencl=1 \\\
  %endif

...

  %if 0%{?with_openmpi}
  pushd buildopenmpi_dir
  %{_openmpi_load}
  %configure \
   %{common_args} \
   --with-blas-lib=libopenblas.so --with-lapack-lib=libopenblas.so \
   --with-scalapack=1 --with-hdf5=1 \
  %if %{with_netcdf}
   --with-netcdf=1 \
  %endif
   --with-ptscotch=1 --with-hypre=1 --with-sundials=1 \
   --with-hypre-include=$MPI_INCLUDE/hypre --with-hypre-lib=$MLI_LIB/hypre/libHYPRE.so

  make \
   V=1 MAKE_NP=%{?_smp_mflags} PETSC_DIR=%{_builddir}/%{name}-%{version}/buildopenmpi_dir
  popd
  %{_openmpi_unload}
  %endif

I guess it's worth adding the -O3 to restore vectorization over the
RPM defaults.

Assuming it's not going to be supported on el5, you could clean up the
spec according to the packaging guidelines (no Group:, %clean etc.).

I hope that doesn't seem too picky.  I think it's worthwhile making the
maintenance changes on something like this.  (Some of the comments
apply to my version too, as a result of looking at it again.)

Comment 13 Dave Love 2016-08-24 09:08:10 UTC
Created attachment 1193550 [details]
cgns fix

Comment 14 Dave Love 2016-08-24 09:09:17 UTC
Oops.  openblas should be conditional on

%ifarch %{ix86} x86_64 armv7hl ppc64le

Comment 15 Dave Love 2016-08-24 09:23:43 UTC
(In reply to benson_muite from comment #11)
> OpenBLAS or ATLAS would be nice. 

ATLAS, at least as packaged, is a factor of several slower for dgemm on recent
x86.  (I don't know how much use petsc actually makes of BLAS, and with the
Fedora linear algebra mess it may be a lottery whether something else linked
against reference BLAS wins.)

> Am looking  at adding CLBLAS in future -
> will there be options to allow users to choose BLAS library being used?

There should be, and the default should be the most efficient for the architecture.
You can find a workaround at https://loveshack.fedorapeople.org/blas-subversion.html
which links to orion's proposal for sorting things out which I, or someone
else, need to run with now.

> Netlib blas is still useful for checking correct results 

It also has (had) bugs, of course; see the Fedora changelog for one that
was uncovered by R, I think.

Comment 16 Antonio T. (sagitter) 2016-08-24 09:43:23 UTC
(In reply to Dave Love from comment #12)
> OK, I've now spent some time looking at this and building it; sorry for the
> delay.
> 
> The %() stuff needs removing.  It can only work for things in the
> build root, and it's not necessary -- you can see errors in the build
> output and from rpmlint.

What do you mean with "%() stuff"?

> 
> I'd forgotten that I had a more recent cgns installed; the epel6
> version won't work, and needs to be conditionalized out.  I also found
> it needed a patch I'll attach to avoid a clash with complex.h.
> 
> EPEL needs Require: openmpi%{_isa}, which I think is harmless elsewhere.
> 
> MPI headers should be in $MPI_INCLUDE/include/petsc, similarly to the serial
> ones.
> 
> The other instances of "environment(modules)" need conditionalizing for el6.
> 
> Why is matplotlib required?

It's there by mistake.

> 
> What is the SETOPT_FLAGS=... business about?  It looks wrong and
> everything seems to work without it.

-D_FORTIFY_SOURCE looks not recognized by 'configure'.

> 
> I still think it should use openblas (as below).
> 
> I think it's better to remove use of pkg-config, which isn't
> necessary, and simplify the configure args.  I think the spec would be
> lot more maintainable and easier to follow by simplifying it.  I think
> the constant with_... conditions should be removed to start with --
> add comments about what doesn't work where appropriate.  You could
> abstract the common configure options and simplify them a lot,
> especially if you ensure the with_... macros are always defined.  The
> following works for me (compacted a bit for posting):
> 
>   %global common_args --with-shared-libraries=1 \\\
>    --with-petsc-arch=%{_arch} --with-fortran-interfaces=1 --with-debugging=0
> \\\
>    --with-precision=double --with-clanguage=C \\\
>    COPTFLAGS="$RPM_OPT_FLAGS -O3" CXXOPTFLAGS="$RPM_OPT_FLAGS -O3" \\\
>    FOPTFLAGS="$RPM_OPT_FLAGS -I%{_fmoddir} -O3" \\\
>    --with-gmp=1 --with-openmp=1 --with-libpng=1 --with-hwloc=1
> --with-metis=1 \\\
>   %if %{with_cgns} \
>    --with-cgns=1 \\\
>   %endif \
>    --with-valgrind=1 --with-valgrind-dir=%{_prefix} --with-papi=1 \\\
>   %if 0%{?el6} \
>    --with-papi-include=%{_libdir}/papi-5.1.1/%{_includedir}
> --with-papi-lib=%{_libdir}/papi-5.1.1/%{_prefix}/lib/libpapi.so \\\
>   %else \
>    --with-papi-include=%{_includedir} --with-papi-lib=libpapi.so \\\
>   %endif \
>   %if %{with_suitesparse} \
>    --with-suitesparse=1 \\\
>    --with-suitesparse-include=%{_includedir}/suitesparse \\\
>   
> --with-suitesparse-lib=[libumfpack.so,libklu.so,libcholmod.so,libbtf.so,
> libccolamd.so,libcolamd.so,libcamd.so,libamd.so,libsuitesparseconfig.so] \\\
>   %endif \
>   %if %{with_superlu} && ! %{arch64} \
>    --with-superlu=1 \\\
>    --with-superlu-include=%{_includedir}/SuperLU \\\
>    --with-superlu-lib=libsuperlu.so \\\
>   %endif \
>   %if %{with_opencl} \
>    --with-opencl=1 \\\
>   %endif
> 
> ...
> 
>   %if 0%{?with_openmpi}
>   pushd buildopenmpi_dir
>   %{_openmpi_load}
>   %configure \
>    %{common_args} \
>    --with-blas-lib=libopenblas.so --with-lapack-lib=libopenblas.so \
>    --with-scalapack=1 --with-hdf5=1 \
>   %if %{with_netcdf}
>    --with-netcdf=1 \
>   %endif
>    --with-ptscotch=1 --with-hypre=1 --with-sundials=1 \
>    --with-hypre-include=$MPI_INCLUDE/hypre
> --with-hypre-lib=$MLI_LIB/hypre/libHYPRE.so
> 
>   make \
>    V=1 MAKE_NP=%{?_smp_mflags}
> PETSC_DIR=%{_builddir}/%{name}-%{version}/buildopenmpi_dir
>   popd
>   %{_openmpi_unload}
>   %endif
> 
> I guess it's worth adding the -O3 to restore vectorization over the
> RPM defaults.
> 
> Assuming it's not going to be supported on el5, you could clean up the
> spec according to the packaging guidelines (no Group:, %clean etc.).
> 
> I hope that doesn't seem too picky.  I think it's worthwhile making the
> maintenance changes on something like this.  (Some of the comments
> apply to my version too, as a result of looking at it again.)

I am working on.

Comment 17 Dave Love 2016-08-24 13:57:37 UTC
(In reply to Antonio Trande from comment #16)

> What do you mean with "%() stuff"?

 --known-endian=%(%{__python2} -c "import sys;print sys.byteorder") \

> > What is the SETOPT_FLAGS=... business about?  It looks wrong and
> > everything seems to work without it.
> 
> -D_FORTIFY_SOURCE looks not recognized by 'configure'.

I'm not sure whether I have the build output now, but I had no trouble with
the default flags from rpm.  I'll check when I have a chance.  (I'm surprised
changing underscores to hyphens worked at all, as it's syntactically incorrect.)

[Do argue if you think any of the comments were misguided, of course.]

Comment 18 Antonio T. (sagitter) 2016-08-25 12:47:15 UTC
(In reply to Dave Love from comment #12)
> 
> I'd forgotten that I had a more recent cgns installed; the epel6
> version won't work, and needs to be conditionalized out.  I also found
> it needed a patch I'll attach to avoid a clash with complex.h.
> 

Is this patch for epel6 only?

With cgns, the build fails on Fedora 24:

/usr/include/cgnslib.h:984:52: error: expected ')' before '__extension__' 

Log: https://paste.fedoraproject.org/413802/

Comment 19 Dave Love 2016-08-25 13:29:33 UTC
(In reply to Antonio Trande from comment #18)
> Is this patch for epel6 only?

It's not relevant for epel6 because that doesn't have a recent enough cgns (which needs to be conditionalized out).

> With cgns, the build fails on Fedora 24:
> 
> /usr/include/cgnslib.h:984:52: error: expected ')' before '__extension__' 

That's what the patch fixes.  See the definition of "I" in complex.h if I recall correctly.  I've sent it to the petsc maintainers.  (The fix should possibly be
in glibc or cgnslib in the end.)

Comment 20 Antonio T. (sagitter) 2016-08-26 12:10:18 UTC
SPEC: http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/plain/petsc.spec?id=79c67a625efcd1f39a24705c8ce881977f2bb0b1

SRPM: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-x86_64/00446542-petsc/petsc-3.7.2-11.fc26.src.rpm

SuperLU support works with superlu-2.5.0, see previous build:
http://copr-fe.cloud.fedoraproject.org/coprs/sagitter/petsc/build/446367/

> --known-endian=$(%{__python2} -c "import sys;print sys.byteorder") \

Is this option totally useless?

Comment 21 Dave Love 2016-09-05 15:38:30 UTC
Apologies for the delay, what with being away, and having to spend a
lot more time on this than I expected.

(In reply to Antonio Trande from comment #20)
> SPEC:
> http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/
> plain/petsc.spec?id=79c67a625efcd1f39a24705c8ce881977f2bb0b1
> 
> SRPM:
> https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-
> rawhide-x86_64/00446542-petsc/petsc-3.7.2-11.fc26.src.rpm

Unfortunately I still can't run fedora-review as I get gcc ICEs which I guess
are due to memory in the largest VM I can run sensibly.  I assume that's due
to MAKE_NP=%{?_smp_mflags}, which seems to be converted to just -j and goes wild.

> SuperLU support works with superlu-2.5.0, see previous build:
> http://copr-fe.cloud.fedoraproject.org/coprs/sagitter/petsc/build/446367/

I assume that means 5.2

> > --known-endian=$(%{__python2} -c "import sys;print sys.byteorder") \
> 
> Is this option totally useless?

Well, configure tests that anyway, doesn't it?

I still find the spec difficult to follow with the redundancy and
conditionals for things which are constant, but I guess that's not
blocking.

Please fix the build not to use just -j ("MAKE_NP=%{?_smp_mflags}"
isn't valid).  I wasted a lot of time figuring out why it won't build
in the VM I need for fedora-review -- the build was going wild,
leading to threads being killed without useful diagnostics.

The build tries to run hostname, which isn't in the BRs on f24, at
least.  I'm not sure it's worth bothering about, though, as it's a
pain to pick up with different package and binary names in different
epel/fedora versions, and not having it doesn't stop anything working.

I think the architecture condition for openblas should match what the
openblas spec uses, i.e.
%ifarch x86_64 %{ix86} armv7hl %{power64} aarch64

For el6, use environment-modules consistently for build- and
install-time requires, rather than the installation requiring Lmod.
You'll need to define _modulesdir for el6 if you use it.

Can we avoid the need for a module anyhow?  It doesn't make a lot of
sense for a library like this.  I don't understand the environment
variable usage, but presumably the values could be hard-wired for the
packaging.

I still don't understand the SETOPT_FLAGS thing, which definitely
isn't necessary, and why flags are set separately (and differently?)
at compile- and run-time.  None of that seems to be necessary.

Delete the .html files under /usr/include.  Maybe the .html should go
into a -doc package, but I think I figured that wasn't useful before.

I don't think the /usr/share/petsc*/conf directories should be in the
main packages (or even in the -devel ones?)

There is now version 3.7.3, but let's persist with this one for the review.

Comment 22 Antonio T. (sagitter) 2016-09-05 19:55:13 UTC
(In reply to Dave Love from comment #21)
> Apologies for the delay, what with being away, and having to spend a
> lot more time on this than I expected.
> 
> (In reply to Antonio Trande from comment #20)
> > SPEC:
> > http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/
> > plain/petsc.spec?id=79c67a625efcd1f39a24705c8ce881977f2bb0b1
> > 
> > SRPM:
> > https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-
> > rawhide-x86_64/00446542-petsc/petsc-3.7.2-11.fc26.src.rpm
> 
> 
> For el6, use environment-modules consistently for build- and
> install-time requires, rather than the installation requiring Lmod.
> You'll need to define _modulesdir for el6 if you use it.
> 
> Can we avoid the need for a module anyhow?  It doesn't make a lot of
> sense for a library like this.  I don't understand the environment
> variable usage, but presumably the values could be hard-wired for the
> packaging.
> 
> 
> I don't think the /usr/share/petsc*/conf directories should be in the
> main packages (or even in the -devel ones?)
> 

Do you think that modules and conf are useless?

> I still don't understand the SETOPT_FLAGS thing, which definitely
> isn't necessary, and why flags are set separately (and differently?)
> at compile- and run-time.  None of that seems to be necessary.
> 

Configure does not like -D_FORTIFY_SOURCE flag. I set SETOPT_FLAGS in order to indulge a specific test.
Only Make flags are effectively used for building.

Comment 23 Dave Love 2016-09-07 13:41:43 UTC
(In reply to Antonio Trande from comment #22)
> > I don't think the /usr/share/petsc*/conf directories should be in the
> > main packages (or even in the -devel ones?)
> > 
> 
> Do you think that modules and conf are useless?

I'd like to avoid the module, but th file that is used lives in /etc/modulefiles.
The other files there don't seem to be connected with running the library.
How are they used?

> 
> > I still don't understand the SETOPT_FLAGS thing, which definitely
> > isn't necessary, and why flags are set separately (and differently?)
> > at compile- and run-time.  None of that seems to be necessary.
> > 
> 
> Configure does not like -D_FORTIFY_SOURCE flag. I set SETOPT_FLAGS in order
> to indulge a specific test.
> Only Make flags are effectively used for building.

What are the actual errors you get, and how does it help to define an invalid macro name (which I'd expect to give an error)?  I said those bits don't seem to be necessary because I'd removed them and built the package OK for epel and fedora.

Comment 24 Antonio T. (sagitter) 2016-09-07 19:09:43 UTC
(In reply to Dave Love from comment #23)
> (In reply to Antonio Trande from comment #22)
> > > I don't think the /usr/share/petsc*/conf directories should be in the
> > > main packages (or even in the -devel ones?)
> > > 
> > 
> > Do you think that modules and conf are useless?
> 
> I'd like to avoid the module, but th file that is used lives in
> /etc/modulefiles.
> The other files there don't seem to be connected with running the library.
> How are they used?
> 
> > 
> > > I still don't understand the SETOPT_FLAGS thing, which definitely
> > > isn't necessary, and why flags are set separately (and differently?)
> > > at compile- and run-time.  None of that seems to be necessary.
> > > 
> > 
> > Configure does not like -D_FORTIFY_SOURCE flag. I set SETOPT_FLAGS in order
> > to indulge a specific test.
> > Only Make flags are effectively used for building.
> 
> What are the actual errors you get, and how does it help to define an
> invalid macro name (which I'd expect to give an error)?  I said those bits
> don't seem to be necessary because I'd removed them and built the package OK
> for epel and fedora.

The error does not appear anymore ...
Probably it was caused by a bad configuration.

SPEC: http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/plain/petsc.spec?id=68d5a2fc3455718701b624ad8eed2a66cb1812b4

SRPM: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-x86_64/00450395-petsc/petsc-3.7.2-12.fc26.src.rpm

Comment 25 Dave Love 2016-09-13 11:30:36 UTC
I'm still trying to get fedora-review run properly on the current version.  It's now failing for a different reason that looks like a Fedora bug...

In the meantime, something that needs investigating is that rpmlint reports a bunch of unused-direct-shlib-dependency warnings due to the configured options apparently not being acted on, like these.  Can you debug that?  (I haven't tried, and I don't think it happened with the older petsc versions that I'd worked on.)

petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libhwloc.so.5
petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libhdf5.so.10
petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libquadmath.so.0
petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libstdc++.so.6
petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libgomp.so.1

These issues with what should be a straightforward library must be trying to tell us something...

Comment 26 Antonio T. (sagitter) 2016-09-13 12:33:28 UTC
>%configure CFLAGS=$SETOPT_FLAGS CXXFLAGS=$SETOPT_FLAGS FCFLAGS=$SETOPT_FLAGS 
> FFLAGS=$SETOPT_FLAGS LDFLAGS=$LDFLAGS \

Line above is a legacy of older configuration, it's a mistake.
Fixing it, i obtain again the following error about unrecognizable flag:

===============================================================================
             Configuring PETSc to compile on your system                       
===============================================================================
*******************************************************************************
                ERROR in COMMAND LINE ARGUMENT to ./configure 
-------------------------------------------------------------------------------
The option -Wp,-D_FORTIFY_SOURCE should probably be -Wp,-D-FORTIFY-SOURCE
*******************************************************************************

Current configuration is:

%if %{with debug}
 CFLAGS="-Og -g %{__global_ldflags} -Wl,--as-needed %{?el6:-L%{_libdir}/papi-5.1.1/%{_prefix}/lib} -L%{_libdir}"
 CXXFLAGS="-Og -g"
 FCFLAGS="-Og -g -I%{_fmoddir}"
 FFLAGS="-Og -g -I%{_fmoddir}"
%else
 CFLAGS="%{optflags} -O3 %{__global_ldflags} -Wl,--as-needed %{?el6:-L%{_libdir}/papi-5.1.1/%{_prefix}/lib} -L%{_libdir}"
 CXXFLAGS="%{optflags} -O3"
 FCFLAGS="%{optflags} -O3 -I%{_fmoddir}"
 FFLAGS="%{optflags} -O3 -I%{_fmoddir}"
%endif
%configure CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS FCFLAGS=$FCFLAGS FFLAGS=$FFLAGS LDFLAGS=$LDFLAGS
...

Comment 27 Dave Love 2016-09-13 16:59:57 UTC
(In reply to Antonio Trande from comment #26)
> >%configure CFLAGS=$SETOPT_FLAGS CXXFLAGS=$SETOPT_FLAGS FCFLAGS=$SETOPT_FLAGS 
> > FFLAGS=$SETOPT_FLAGS LDFLAGS=$LDFLAGS \
> 
> Line above is a legacy of older configuration, it's a mistake.
> Fixing it, i obtain again the following error about unrecognizable flag:

In what version of Fedora?  I built without that in EPEL6 and f24 and/or rawhide -- I don't remember.  Anyhow, if it breaks the build, it's a good excuse to not to use the default rpm flags but the ones that configure would supply, as I was going to suggest anyhow.  While _FORTIFY_SOURCE might catch the odd bug, security is surely irrelevant for something like this.  I can't remember what the rules say, but will check.

Comment 28 Antonio T. (sagitter) 2016-09-13 17:30:43 UTC
> In what version of Fedora?

Fedora 24.

> Anyhow, if it breaks the build, it's a good excuse to not to use the default 
> rpm flags but the ones that configure would supply, as I was going to suggest > anyhow.

Really, it does not break the build, just does not pass Configure checks.

Comment 29 Dave Love 2016-09-27 13:10:13 UTC
Apologies for the delay due to other commitments.  I eventually managed to run fedora-review and look at the results, though only on f24 as rawhide, which the guidelines specify, seems to have a bug preventing it working which I don't have time to investigate.

I still think the conditionals for things which aren't ever used, or always are, are confusing, but they're probably not strictly against the guidelines.
As an example, gmp isn't used, but could be; I can believe it's not useful, but I can't tell whether excluding it is an error when it's there but never used.

Is there specific info needed (needsinfo flag)?

Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated


Issues:
=======
- All build dependencies are listed in BuildRequires, except for any that
  are listed in the exceptions section of Packaging Guidelines.
  Note: These BR are not needed: gcc-c++
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2
- 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 %license.
  Note: License file license.html is not marked as %license
  See:
  http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text

The above are ignorable.  (license.html is redundant.)

- The module file is not now installed -- what's its status?
- The el6 definition of _modulesdir is wrong
- If the default %optflags cause trouble (-Wp?) filter out the
  problematic part rather than replacing with something bogus, but I
  don't see the problem on epel6 or f24


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[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.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "MIT/X11 (BSD like)", "BSD (2 clause)", "Unknown or generated".
     14092 files have unknown license. Detailed output of licensecheck in
     /vagrant/1350257-petsc/licensecheck.txt

OK: MIT-licensed stuff not installed, rest covered by the overall
licence.

[x]: License file installed when any subpackage combination is installed.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/lib64/gfortran
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib64/gfortran,
     /usr/include/mpich-x86_64, /usr/lib64/openmpi/lib,
     /usr/lib64/gfortran/modules, /usr/lib64/mpich, /usr/include/openmpi-
     x86_64, /usr/lib64/mpich/lib, /usr/lib64/gfortran/modules/mpich,
     /usr/lib64/openmpi, /usr/lib64/gfortran/modules/openmpi

Require the mpi -devel packages.

[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).

The rpmlint complaint is unavoidable.

[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[!]: Requires correct, justified where necessary.

{openmpi,mpich}-devel packages should require {openmpi-mpich}-devel 

[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).

The ones that need addressing are the unused-direct-shlib-dependencys,
which suggest the configured options aren't being properly used.

[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[!]: Final provides and requires are sane (see attachments).

Should be resolved with the unused library issue

[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in petsc-
     doc , petsc64 , petsc64-devel , petsc-openmpi , petsc-openmpi-devel ,
     petsc-mpich , petsc-mpich-devel , petsc-debuginfo

OK: These are spurious.

[x]: Package functions as described.
[!]: Latest version is packaged.

Let's update after review.

[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[x]: Scriptlets must be sane, if used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[!]: %check is present and all tests pass.

Not run -- why not?  (I thought they were previously.)

[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[!]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
     Note: Arch-ed rpms have a total of 3184640 bytes in /usr/share

Remove /usr/share/petsc to fix this.  It's not runtime stuff and
doesn't appear to be useful.

[x]: Rpmlint is run on debuginfo package(s).
     Note: There are rpmlint messages (see attachment).
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: petsc-3.7.2-12.fc24.x86_64.rpm
          petsc-devel-3.7.2-12.fc24.x86_64.rpm
          petsc-doc-3.7.2-12.fc24.noarch.rpm
          petsc64-3.7.2-12.fc24.x86_64.rpm
          petsc64-devel-3.7.2-12.fc24.x86_64.rpm
          petsc-openmpi-3.7.2-12.fc24.x86_64.rpm
          petsc-openmpi-devel-3.7.2-12.fc24.x86_64.rpm
          petsc-mpich-3.7.2-12.fc24.x86_64.rpm
          petsc-mpich-devel-3.7.2-12.fc24.x86_64.rpm
          petsc-debuginfo-3.7.2-12.fc24.x86_64.rpm
          petsc-3.7.2-12.fc24.src.rpm
petsc.x86_64: W: spelling-error %description -l en_US scalable -> salable, callable, calculable
petsc.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc.x86_64: W: no-documentation
petsc-devel.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-devel.x86_64: W: only-non-binary-in-usr-lib
petsc-devel.x86_64: W: no-documentation
petsc-doc.noarch: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc64.x86_64: W: spelling-error %description -l en_US scalable -> salable, callable, calculable
petsc64.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc64.x86_64: W: no-documentation
petsc64.x86_64: W: one-line-command-in-%post /sbin/ldconfig
petsc64.x86_64: W: one-line-command-in-%postun /sbin/ldconfig
petsc64-devel.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc64-devel.x86_64: W: only-non-binary-in-usr-lib
petsc64-devel.x86_64: W: no-documentation
petsc-openmpi.x86_64: W: spelling-error %description -l en_US scalable -> salable, callable, calculable
petsc-openmpi.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-openmpi.x86_64: W: no-documentation
petsc-openmpi.x86_64: E: library-without-ldconfig-postin /usr/lib64/openmpi/lib/libpetsc.so.3.7.2
petsc-openmpi.x86_64: E: library-without-ldconfig-postun /usr/lib64/openmpi/lib/libpetsc.so.3.7.2
petsc-openmpi-devel.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-openmpi-devel.x86_64: W: only-non-binary-in-usr-lib
petsc-openmpi-devel.x86_64: W: no-documentation
petsc-mpich.x86_64: W: spelling-error %description -l en_US scalable -> salable, callable, calculable
petsc-mpich.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-mpich.x86_64: W: no-documentation
petsc-mpich.x86_64: E: library-without-ldconfig-postin /usr/lib64/mpich/lib/libpetsc.so.3.7.2
petsc-mpich.x86_64: E: library-without-ldconfig-postun /usr/lib64/mpich/lib/libpetsc.so.3.7.2
petsc-mpich-devel.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-mpich-devel.x86_64: W: only-non-binary-in-usr-lib
petsc-mpich-devel.x86_64: W: no-documentation
petsc-debuginfo.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc.src: W: spelling-error %description -l en_US scalable -> salable, callable, calculable
petsc.src: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc.src:517: E: hardcoded-library-path in %{_prefix}/lib/libpapi.so
petsc.src:632: E: hardcoded-library-path in %{_prefix}/lib/libpapi.so
petsc.src:766: E: hardcoded-library-path in %{_prefix}/lib/libpapi.so
petsc.src:906: E: hardcoded-library-path in %{_prefix}/lib/libpapi.so
11 packages and 0 specfiles checked; 8 errors, 30 warnings.




Rpmlint (debuginfo)
-------------------
Checking: petsc-debuginfo-3.7.2-12.fc24.x86_64.rpm
petsc-debuginfo.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
1 packages and 0 specfiles checked; 0 errors, 1 warnings.





Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
petsc-doc.noarch: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-mpich-devel.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-mpich-devel.x86_64: W: only-non-binary-in-usr-lib
petsc-mpich-devel.x86_64: W: no-documentation
petsc-openmpi-devel.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-openmpi-devel.x86_64: W: only-non-binary-in-usr-lib
petsc-openmpi-devel.x86_64: W: no-documentation
petsc64-devel.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc64-devel.x86_64: W: only-non-binary-in-usr-lib
petsc64-devel.x86_64: W: no-documentation
petsc64.x86_64: W: spelling-error %description -l en_US scalable -> salable, callable, calculable
petsc64.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libhwloc.so.5
petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libhdf5.so.10
petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libquadmath.so.0
petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libstdc++.so.6
petsc64.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc64.so.3.7.2 /lib64/libgomp.so.1
petsc64.x86_64: W: no-documentation
petsc64.x86_64: W: one-line-command-in-%post /sbin/ldconfig
petsc64.x86_64: W: one-line-command-in-%postun /sbin/ldconfig
petsc-openmpi.x86_64: W: spelling-error %description -l en_US scalable -> salable, callable, calculable
petsc-openmpi.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libmumps_common-5.0.2.so
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libcmumps-5.0.2.so
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libsmumps-5.0.2.so
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libzmumps-5.0.2.so
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libpord-5.0.2.so
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libscalapack.so.2
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libmpiblacs.so.2
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /lib64/libsundials_nvecserial.so.0
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /lib64/libhwloc.so.5
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libptesmumps.so.0
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libptscotcherr.so.0
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libscotcherr.so.0
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libnetcdf.so.11
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libhdf5hl_fortran.so.10
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libhdf5_hl.so.10
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libhdf5_fortran.so.10
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libmpi_usempif08.so.11
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libmpi_usempi_ignore_tkr.so.6
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /lib64/libquadmath.so.0
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /usr/lib64/openmpi/lib/libmpi_cxx.so.1
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /lib64/libstdc++.so.6
petsc-openmpi.x86_64: W: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libpetsc.so.3.7.2 /lib64/libgomp.so.1
petsc-openmpi.x86_64: W: no-documentation
petsc-openmpi.x86_64: E: library-without-ldconfig-postin /usr/lib64/openmpi/lib/libpetsc.so.3.7.2
petsc-openmpi.x86_64: E: library-without-ldconfig-postun /usr/lib64/openmpi/lib/libpetsc.so.3.7.2
petsc-debuginfo.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc.x86_64: W: spelling-error %description -l en_US scalable -> salable, callable, calculable
petsc.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libmetis.so.0
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libbtf.so.1
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libccolamd.so.2
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libcolamd.so.2
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libcamd.so.2
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libsuitesparseconfig.so.4
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libhwloc.so.5
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libhdf5.so.10
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libquadmath.so.0
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libstdc++.so.6
petsc.x86_64: W: unused-direct-shlib-dependency /usr/lib64/libpetsc.so.3.7.2 /lib64/libgomp.so.1
petsc.x86_64: W: no-documentation
petsc-mpich.x86_64: W: spelling-error %description -l en_US scalable -> salable, callable, calculable
petsc-mpich.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libmumps_common-5.0.2.so
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libcmumps-5.0.2.so
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libsmumps-5.0.2.so
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libzmumps-5.0.2.so
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libpord-5.0.2.so
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libscalapack.so.2
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libmpiblacs.so.2
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /lib64/libsundials_nvecserial.so.0
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /lib64/libhwloc.so.5
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libptesmumps.so.0
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libptscotcherr.so.0
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libscotcherr.so.0
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libnetcdf.so.11
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libhdf5hl_fortran.so.10
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libhdf5_hl.so.10
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libhdf5_fortran.so.10
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /lib64/libquadmath.so.0
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /usr/lib64/mpich/lib/libmpicxx.so.12
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /lib64/libstdc++.so.6
petsc-mpich.x86_64: W: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libpetsc.so.3.7.2 /lib64/libgomp.so.1
petsc-mpich.x86_64: W: no-documentation
petsc-mpich.x86_64: E: library-without-ldconfig-postin /usr/lib64/mpich/lib/libpetsc.so.3.7.2
petsc-mpich.x86_64: E: library-without-ldconfig-postun /usr/lib64/mpich/lib/libpetsc.so.3.7.2
petsc-devel.x86_64: W: invalid-url URL: https://www.mcs.anl.gov/petsc <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)>
petsc-devel.x86_64: W: only-non-binary-in-usr-lib
petsc-devel.x86_64: W: no-documentation
10 packages and 0 specfiles checked; 4 errors, 86 warnings.



Requires
--------
petsc-doc (rpmlib, GLIBC filtered):

petsc-mpich-devel (rpmlib, GLIBC filtered):
    libpetsc.so.3.7()(64bit)(mpich-x86_64)
    petsc-mpich(x86-64)

petsc-openmpi-devel (rpmlib, GLIBC filtered):
    libpetsc.so.3.7()(64bit)(openmpi-x86_64)
    petsc-openmpi(x86-64)

petsc64-devel (rpmlib, GLIBC filtered):
    libpetsc64.so.3.7()(64bit)
    petsc64(x86-64)

petsc64 (rpmlib, GLIBC filtered):
    /bin/sh
    environment(modules)
    gcc-gfortran(x86-64)
    libc.so.6()(64bit)
    libcgns.so.3.2()(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.3()(64bit)
    libgfortran.so.3(GFORTRAN_1.0)(64bit)
    libgomp.so.1()(64bit)
    libhdf5.so.10()(64bit)
    libhwloc.so.5()(64bit)
    libjpeg.so.62()(64bit)
    libjpeg.so.62(LIBJPEG_6.2)(64bit)
    libm.so.6()(64bit)
    libopenblas64.so.0()(64bit)
    libpapi.so.5.4.3.0()(64bit)
    libpetsc64.so.3.7()(64bit)
    libpng16.so.16()(64bit)
    libpng16.so.16(PNG16_0)(64bit)
    libpthread.so.0()(64bit)
    libquadmath.so.0()(64bit)
    libstdc++.so.6()(64bit)
    rtld(GNU_HASH)

petsc-openmpi (rpmlib, GLIBC filtered):
    environment(modules)
    libHYPRE.so.0.0()(64bit)(openmpi-x86_64)
    libc.so.6()(64bit)
    libcgns.so.3.2()(64bit)
    libcmumps-5.0.2.so()(64bit)(openmpi-x86_64)
    libdl.so.2()(64bit)
    libdmumps-5.0.2.so()(64bit)(openmpi-x86_64)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.3()(64bit)
    libgfortran.so.3(GFORTRAN_1.0)(64bit)
    libgomp.so.1()(64bit)
    libhdf5.so.10()(64bit)(openmpi-x86_64)
    libhdf5_fortran.so.10()(64bit)(openmpi-x86_64)
    libhdf5_hl.so.10()(64bit)(openmpi-x86_64)
    libhdf5hl_fortran.so.10()(64bit)(openmpi-x86_64)
    libhwloc.so.5()(64bit)
    libjpeg.so.62()(64bit)
    libjpeg.so.62(LIBJPEG_6.2)(64bit)
    libm.so.6()(64bit)
    libmpi.so.12()(64bit)(openmpi-x86_64)
    libmpi_cxx.so.1()(64bit)(openmpi-x86_64)
    libmpi_mpifh.so.12()(64bit)(openmpi-x86_64)
    libmpi_usempi_ignore_tkr.so.6()(64bit)(openmpi-x86_64)
    libmpi_usempif08.so.11()(64bit)(openmpi-x86_64)
    libmpiblacs.so.2()(64bit)(openmpi-x86_64)
    libmumps_common-5.0.2.so()(64bit)(openmpi-x86_64)
    libnetcdf.so.11()(64bit)(openmpi-x86_64)
    libopenblas.so.0()(64bit)
    libpapi.so.5.4.3.0()(64bit)
    libpetsc.so.3.7()(64bit)(openmpi-x86_64)
    libpng16.so.16()(64bit)
    libpng16.so.16(PNG16_0)(64bit)
    libpord-5.0.2.so()(64bit)(openmpi-x86_64)
    libptesmumps.so.0()(64bit)(openmpi-x86_64)
    libpthread.so.0()(64bit)
    libptscotch.so.0()(64bit)(openmpi-x86_64)
    libptscotcherr.so.0()(64bit)(openmpi-x86_64)
    libquadmath.so.0()(64bit)
    libscalapack.so.2()(64bit)(openmpi-x86_64)
    libscotch.so.0()(64bit)(openmpi-x86_64)
    libscotcherr.so.0()(64bit)(openmpi-x86_64)
    libsmumps-5.0.2.so()(64bit)(openmpi-x86_64)
    libstdc++.so.6()(64bit)
    libsundials_cvode.so.1()(64bit)
    libsundials_nvecparallel.so.0()(64bit)(openmpi-x86_64)
    libsundials_nvecserial.so.0()(64bit)
    libzmumps-5.0.2.so()(64bit)(openmpi-x86_64)
    rtld(GNU_HASH)

petsc-debuginfo (rpmlib, GLIBC filtered):

petsc (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    environment(modules)
    libamd.so.2()(64bit)
    libbtf.so.1()(64bit)
    libc.so.6()(64bit)
    libcamd.so.2()(64bit)
    libccolamd.so.2()(64bit)
    libcgns.so.3.2()(64bit)
    libcholmod.so.3()(64bit)
    libcolamd.so.2()(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.3()(64bit)
    libgfortran.so.3(GFORTRAN_1.0)(64bit)
    libgomp.so.1()(64bit)
    libhdf5.so.10()(64bit)
    libhwloc.so.5()(64bit)
    libjpeg.so.62()(64bit)
    libjpeg.so.62(LIBJPEG_6.2)(64bit)
    libklu.so.1()(64bit)
    libm.so.6()(64bit)
    libmetis.so.0()(64bit)
    libopenblas.so.0()(64bit)
    libpapi.so.5.4.3.0()(64bit)
    libpetsc.so.3.7()(64bit)
    libpng16.so.16()(64bit)
    libpng16.so.16(PNG16_0)(64bit)
    libpthread.so.0()(64bit)
    libquadmath.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libsuitesparseconfig.so.4()(64bit)
    libumfpack.so.5()(64bit)
    rtld(GNU_HASH)

petsc-mpich (rpmlib, GLIBC filtered):
    environment(modules)
    libHYPRE.so.0.0()(64bit)(mpich-x86_64)
    libc.so.6()(64bit)
    libcgns.so.3.2()(64bit)
    libcmumps-5.0.2.so()(64bit)(mpich-x86_64)
    libdl.so.2()(64bit)
    libdmumps-5.0.2.so()(64bit)(mpich-x86_64)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.3()(64bit)
    libgfortran.so.3(GFORTRAN_1.0)(64bit)
    libgomp.so.1()(64bit)
    libhdf5.so.10()(64bit)(mpich-x86_64)
    libhdf5_fortran.so.10()(64bit)(mpich-x86_64)
    libhdf5_hl.so.10()(64bit)(mpich-x86_64)
    libhdf5hl_fortran.so.10()(64bit)(mpich-x86_64)
    libhwloc.so.5()(64bit)
    libjpeg.so.62()(64bit)
    libjpeg.so.62(LIBJPEG_6.2)(64bit)
    libm.so.6()(64bit)
    libmpi.so.12()(64bit)(mpich-x86_64)
    libmpiblacs.so.2()(64bit)(mpich-x86_64)
    libmpicxx.so.12()(64bit)(mpich-x86_64)
    libmpifort.so.12()(64bit)(mpich-x86_64)
    libmumps_common-5.0.2.so()(64bit)(mpich-x86_64)
    libnetcdf.so.11()(64bit)(mpich-x86_64)
    libopenblas.so.0()(64bit)
    libpapi.so.5.4.3.0()(64bit)
    libpetsc.so.3.7()(64bit)(mpich-x86_64)
    libpng16.so.16()(64bit)
    libpng16.so.16(PNG16_0)(64bit)
    libpord-5.0.2.so()(64bit)(mpich-x86_64)
    libptesmumps.so.0()(64bit)(mpich-x86_64)
    libpthread.so.0()(64bit)
    libptscotch.so.0()(64bit)(mpich-x86_64)
    libptscotcherr.so.0()(64bit)(mpich-x86_64)
    libquadmath.so.0()(64bit)
    libscalapack.so.2()(64bit)(mpich-x86_64)
    libscotch.so.0()(64bit)(mpich-x86_64)
    libscotcherr.so.0()(64bit)(mpich-x86_64)
    libsmumps-5.0.2.so()(64bit)(mpich-x86_64)
    libstdc++.so.6()(64bit)
    libsundials_cvode.so.1()(64bit)
    libsundials_nvecparallel.so.0()(64bit)(mpich-x86_64)
    libsundials_nvecserial.so.0()(64bit)
    libzmumps-5.0.2.so()(64bit)(mpich-x86_64)
    rtld(GNU_HASH)

petsc-devel (rpmlib, GLIBC filtered):
    libpetsc.so.3.7()(64bit)
    petsc(x86-64)



Provides
--------
petsc-doc:
    petsc-doc

petsc-mpich-devel:
    petsc-mpich-devel
    petsc-mpich-devel(x86-64)

petsc-openmpi-devel:
    petsc-openmpi-devel
    petsc-openmpi-devel(x86-64)

petsc64-devel:
    petsc64-devel
    petsc64-devel(x86-64)

petsc64:
    libpetsc64.so.3.7()(64bit)
    petsc64
    petsc64(x86-64)

petsc-openmpi:
    libpetsc.so.3.7()(64bit)(openmpi-x86_64)
    petsc-openmpi
    petsc-openmpi(x86-64)

petsc-debuginfo:
    petsc-debuginfo
    petsc-debuginfo(x86-64)

petsc:
    libpetsc.so.3.7()(64bit)
    petsc
    petsc(x86-64)

petsc-mpich:
    libpetsc.so.3.7()(64bit)(mpich-x86_64)
    petsc-mpich
    petsc-mpich(x86-64)

petsc-devel:
    petsc-devel
    petsc-devel(x86-64)



Source checksums
----------------
http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.7.2.tar.gz :
  CHECKSUM(SHA256) this package     : 36681dd0df97e0d5cd182d902e89f527eb8f441f05271159dac5340acb4cf0ec
  CHECKSUM(SHA256) upstream package : 36681dd0df97e0d5cd182d902e89f527eb8f441f05271159dac5340acb4cf0ec


Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -b 1350257
Buildroot used: fedora-24-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 30 Orion Poplawski 2016-09-27 17:08:55 UTC
(In reply to Dave Love from comment #29)
> Issues:
> =======
> - All build dependencies are listed in BuildRequires, except for any that
>   are listed in the exceptions section of Packaging Guidelines.
>   Note: These BR are not needed: gcc-c++

Actually, current guidelines would have you list gcc-c++

Comment 31 Antonio T. (sagitter) 2016-09-29 13:06:32 UTC
Sorry, I have already updated to 3.7.3

SPEC: http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/plain/petsc.spec?id=ea9cded7030999e4f51dde529cae5647e5cc5173

SRPM: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-x86_64/00459215-petsc/petsc-3.7.3-1.fc26.src.rpm

> [!]: %check is present and all tests pass.
> 
> Not run -- why not?  (I thought they were previously.)

They're passed on my PC but not on COPR or Koji, i don't know why.

Comment 32 Dave Love 2016-09-29 14:18:28 UTC
(In reply to Orion Poplawski from comment #30)
> Actually, current guidelines would have you list gcc-c++

Yes, though I always listed it as documentation.  However, it's just occurred to me that g++ doesn't actually get run, according to the output, so that BR can be dropped in the final version.

Comment 33 Dave Love 2016-09-29 14:21:20 UTC
(In reply to Antonio Trande from comment #31)
> Sorry, I have already updated to 3.7.3

I'll check it a.s.a.p.

> > [!]: %check is present and all tests pass.
> > 
> > Not run -- why not?  (I thought they were previously.)
> 
> They're passed on my PC but not on COPR or Koji, i don't know why.

Is that just the MPI ones?  If so, it's probably because openmpi needs ssh but doesn't require it.  I should check how to avoid the rsh component.

Comment 34 Antonio T. (sagitter) 2016-09-29 15:28:18 UTC
(In reply to Dave Love from comment #33)
> (In reply to Antonio Trande from comment #31)
> > Sorry, I have already updated to 3.7.3
> 
> I'll check it a.s.a.p.
> 
> > > [!]: %check is present and all tests pass.
> > > 
> > > Not run -- why not?  (I thought they were previously.)
> > 
> > They're passed on my PC but not on COPR or Koji, i don't know why.
> 
> Is that just the MPI ones?  If so, it's probably because openmpi needs ssh
> but doesn't require it.  I should check how to avoid the rsh component.

No.
'ex50' example is already failed with serial libraries first:

export LD_LIBRARY_PATH=%{?el6:%{_libdir}/papi-5.1.1/%{_prefix}/lib:}%{_libdir}:$RPM_BUILD_ROOT%{_libdir}
export PETSC_DIR=%{_builddir}/%{name}-%{version}/%{name}-%{version}
export PETSC_ARCH=%{_arch}

# Linear Poisson equation on a 2D grid
make ex50 -C %{name}-%{version}/src/ksp/ksp/examples/tutorials
%{name}-%{version}/src/ksp/ksp/examples/tutorials/ex50 -da_grid_x 4 -da_grid_y 4 -mat_view

Comment 35 Dave Love 2016-10-04 13:17:46 UTC
The fact that the check behaves differently in local mock, koji, and copr suggests a real problem with undefined behaviour, which I think we should worry about; I don't have time to debug it.  Maybe orion has an opinion, as he's watching?

There's still this:
     Note: Directories without known owners: /usr/lib64/gfortran,
     /usr/lib64/gfortran/modules

Regarding the unused-direct-shlib-dependencys, I meant to find out why the configured libraries aren't getting used, rather than just adding --as-needed.  It seems to be a build bug, but again I don't have time to investigate.  It's the sort of thing I might raise a bug report about as a user of the package, and the packaging I did of older versions didn't have this issue, e.g. metis is used.

I didn't notice before that fftw isn't configured because there's no bcond for it.  It's an example of the conditionals being confusing when they don't have an obvious purpose.  Is there any reason not to build against fftw?

Also, I still don't understand the module file.  The tests run (locally, for me) 
without it, so why is it needed?

Comment 36 Antonio T. (sagitter) 2016-10-05 10:39:29 UTC
(In reply to Dave Love from comment #35)
> The fact that the check behaves differently in local mock, koji, and copr
> suggests a real problem with undefined behaviour, which I think we should
> worry about; I don't have time to debug it.  Maybe orion has an opinion, as
> he's watching?
> 

> 
> Regarding the unused-direct-shlib-dependencys, I meant to find out why the
> configured libraries aren't getting used, rather than just adding
> --as-needed.  It seems to be a build bug, but again I don't have time to
> investigate.  It's the sort of thing I might raise a bug report about as a
> user of the package, and the packaging I did of older versions didn't have
> this issue, e.g. metis is used.
> 
> I didn't notice before that fftw isn't configured because there's no bcond
> for it.  It's an example of the conditionals being confusing when they don't
> have an obvious purpose.  Is there any reason not to build against fftw?

PETSc needs fftw-mpi libraries; it does not work with fftw actually available on Fedora/EPEL.

> 
> Also, I still don't understand the module file.  The tests run (locally, for
> me) 
> without it, so why is it needed?

Sorry, which modules?

Comment 37 Dave Love 2016-10-10 14:42:13 UTC
(In reply to Antonio Trande from comment #36)
> PETSc needs fftw-mpi libraries; it does not work with fftw actually
> available on Fedora/EPEL.

OK, so we should get rid of that (and chase the change for fftw mpi support...).

> > Also, I still don't understand the module file.  The tests run (locally, for
> > me) 
> > without it, so why is it needed?
> 
> Sorry, which modules?

The environment modules file.  It seems useless.

Well done on debugging the test failures.  Perhaps the -64 packages should be omitted pending a fix -- up to you how long to wait.

Also the discussion with the PETSc folks suggests cleaning up the stuff that isn't used, or probably isn't useful, like papi.

I'm happier now those issues are understood, thanks.

Comment 38 Orion Poplawski 2016-10-10 14:59:32 UTC
(In reply to Dave Love from comment #37)
> (In reply to Antonio Trande from comment #36)
> > PETSc needs fftw-mpi libraries; it does not work with fftw actually
> > available on Fedora/EPEL.
> 
> OK, so we should get rid of that (and chase the change for fftw mpi
> support...).

fftw with mpi support: https://bodhi.fedoraproject.org/updates/FEDORA-2016-ae8fc16aac

Comment 39 Dave Love 2016-10-11 12:57:36 UTC
(In reply to Orion Poplawski from comment #38)

> fftw with mpi support:
> https://bodhi.fedoraproject.org/updates/FEDORA-2016-ae8fc16aac

Thanks.  (I was going to suggest an update for relevant changes in 3.3.5.)
If it's used for petsc, it will have to be conditioned out for EPEL, if that's not obvious.

I've just realized that rpmlint complaints about %_libdir/gfortran don't go away
if you require gfortran; it doesn't own the directory in Fedora, just the
modules sub-directory, and in rhel, it doesn't own either.  I'll report that, but
it looks as if explicit %dirs are needed for the .mod files.

Comment 40 Antonio T. (sagitter) 2016-10-14 10:57:35 UTC
(In reply to Orion Poplawski from comment #38)
> (In reply to Dave Love from comment #37)
> > (In reply to Antonio Trande from comment #36)
> > > PETSc needs fftw-mpi libraries; it does not work with fftw actually
> > > available on Fedora/EPEL.
> > 
> > OK, so we should get rid of that (and chase the change for fftw mpi
> > support...).
> 
> fftw with mpi support:
> https://bodhi.fedoraproject.org/updates/FEDORA-2016-ae8fc16aac

Thank you Orion.

New release:

SPEC: http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/plain/petsc.spec?id=6dfb01819ef4d5619b440cd52e096bb15a5bd826

SRPM: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-x86_64/00465011-petsc/petsc-3.7.4-5.fc26.src.rpm

Comment 41 Dave Love 2016-10-19 16:17:46 UTC
I still don't understand why the environment module is needed.

Why has it reverted to using -O2?

gmp is linked, but apparently never referenced, so presumably it can be dropped.

Comment 42 Antonio T. (sagitter) 2016-10-19 16:24:30 UTC
(In reply to Dave Love from comment #41)
> I still don't understand why the environment module is needed.

And i still don't understand of what env module you are talking.. :)

Comment 43 Dave Love 2016-10-19 16:51:28 UTC
(In reply to Antonio Trande from comment #42)
> (In reply to Dave Love from comment #41)
> > I still don't understand why the environment module is needed.
> 
> And i still don't understand of what env module you are talking.. :)

I beg your pardon -- I don't know why I thought it was still there...

I guess it's about OK now, though I still find the spec hard to follow.

I'm still interested in the optimization, though.  I'd at least expect
vectorization to be worthwhile, even if it only uses sse2 in this case, but
I don't have time to do any benchmarking.  Do you have any numbers?

Comment 44 Antonio T. (sagitter) 2016-10-19 17:25:18 UTC
(In reply to Dave Love from comment #43).
> 
> I'm still interested in the optimization, though.  I'd at least expect
> vectorization to be worthwhile, even if it only uses sse2 in this case, but
> I don't have time to do any benchmarking.  Do you have any numbers?

No, honestly.

SPEC: http://copr-dist-git.fedorainfracloud.org/cgit/sagitter/petsc/petsc.git/plain/petsc.spec?id=fea4ae21425e6d3bd973f1e7fda507edcde60317

SRPM: https://copr-be.cloud.fedoraproject.org/results/sagitter/petsc/fedora-rawhide-i386/00467031-petsc/petsc-3.7.4-6.fc26.src.rpm

Comment 46 Dave Love 2016-10-24 15:43:25 UTC
I hadn't spotted the condition excluding powerpc generally.  That should only be on el6.  I'll approve it if you'll fix that, but I've just realized the review isn't actually assigned, bother.  Let me sort that out...

Oh, and I have packaging for superlu_dist which is a possible addition.  I could put it up for review if it would be useful.

Comment 47 Dave Love 2016-10-24 15:48:30 UTC
Approved now.  Thanks for the effort.  Maybe I should offer something similar, like trilinos...

Comment 48 Antonio T. (sagitter) 2016-10-24 16:00:12 UTC
(In reply to Dave Love from comment #46)
> I hadn't spotted the condition excluding powerpc generally.  That should
> only be on el6.  I'll approve it if you'll fix that, but I've just realized
> the review isn't actually assigned, bother.  Let me sort that out...
> 

Okay.

> Oh, and I have packaging for superlu_dist which is a possible addition.  I
> could put it up for review if it would be useful.

If i'm not wrong, superlu_dist needs 'parmetis' that is not distributed under open license.

Comment 49 Gwyn Ciesla 2016-10-24 17:51:05 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/petsc

Comment 50 Dave Love 2016-10-25 09:29:14 UTC
(In reply to Antonio Trande from comment #48)
> If i'm not wrong, superlu_dist needs 'parmetis' that is not distributed
> under open license.

There is a scotch substitute for enough of it (ptscotchparmetis) though it's affected by #1386707 with openmpi.  See https://copr.fedorainfracloud.org/coprs/loveshack/livhpc/package/superlu_dist/

Comment 51 Fedora Update System 2016-10-31 11:26:21 UTC
petsc-3.7.4-12.fc23 has been submitted as an update to Fedora 23. https://bodhi.fedoraproject.org/updates/FEDORA-2016-185beddccc

Comment 52 Fedora Update System 2016-10-31 11:26:31 UTC
petsc-3.7.4-12.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-8fb059d3f1

Comment 53 Fedora Update System 2016-10-31 11:26:37 UTC
petsc-3.7.4-12.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-fd925b5d70

Comment 54 Fedora Update System 2016-11-01 02:21:24 UTC
petsc-3.7.4-12.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-8fb059d3f1

Comment 55 Fedora Update System 2016-11-01 18:19:32 UTC
petsc-3.7.4-12.fc23 has been pushed to the Fedora 23 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-185beddccc

Comment 56 Fedora Update System 2016-11-01 18:22:13 UTC
petsc-3.7.4-12.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-fd925b5d70

Comment 57 Fedora Update System 2016-11-10 03:28:53 UTC
petsc-3.7.4-12.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 58 Fedora Update System 2016-11-10 15:52:55 UTC
petsc-3.7.4-12.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 59 Fedora Update System 2016-11-19 21:06:04 UTC
petsc-3.7.4-12.fc25 has been pushed to the Fedora 25 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.