Bug 2238263 - Review Request: dbcsr - Distributed Block Compressed Sparse Row matrix library
Summary: Review Request: dbcsr - Distributed Block Compressed Sparse Row matrix library
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Benson Muite
QA Contact: Fedora Extras Quality Assurance
URL: https://cp2k.github.io/dbcsr/develop/
Whiteboard:
Depends On: 2240311
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-09-11 03:34 UTC by Orion Poplawski
Modified: 2023-10-10 15:55 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2023-10-10 15:55:09 UTC
Type: Bug
Embargoed:
benson_muite: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 6393237 to 6394175 (380 bytes, patch)
2023-09-11 13:22 UTC, Fedora Review Service
no flags Details | Diff

Description Orion Poplawski 2023-09-11 03:34:00 UTC
Spec URL: https://orion.fedorapeople.org/dbcsr.spec
SRPM URL: https://orion.fedorapeople.org/dbcsr-2.6.0-1.fc40.src.rpm
Description:
DBCSR stands for Distributed Blocked Compressed Sparse Row.

DBCSR is a library designed to efficiently perform sparse matrix-matrix
multiplication, among other operations.  It is MPI and OpenMP parallel and
can exploit Nvidia and AMD GPUs via CUDA and HIP.

Fedora Account System Username: orion

Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=106019125

Looks like mpich tests are failing on s390x, filed upstream: https://github.com/cp2k/dbcsr/issues/703

Comment 1 Fedora Review Service 2023-09-11 03:58:06 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6393237
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2238263-dbcsr/fedora-rawhide-x86_64/06393237-dbcsr/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Orion Poplawski 2023-09-11 13:20:06 UTC
Now ignoring test failure on s390x:

https://koji.fedoraproject.org/koji/taskinfo?taskID=106020270

[fedora-review-service-build]

Comment 3 Fedora Review Service 2023-09-11 13:22:20 UTC
Created attachment 1988156 [details]
The .spec file difference from Copr build 6393237 to 6394175

Comment 4 Fedora Review Service 2023-09-11 13:22:22 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6394175
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2238263-dbcsr/fedora-rawhide-x86_64/06394175-dbcsr/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 5 Benson Muite 2023-09-11 18:01:33 UTC
[fedora-review-service-build]

Comment 6 Fedora Review Service 2023-09-11 18:48:21 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6394932
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2238263-dbcsr/fedora-rawhide-x86_64/06394932-dbcsr/fedora-review/review.txt

Please take a look if any issues were found.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 7 Benson Muite 2023-09-11 19:00:46 UTC
Package Review
==============

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


Issues:
=======
- The License field must be a valid SPDX expression.
  Note: Not a valid SPDX expression 'GPLv2+'. It seems that you are using
  the old Fedora license abbreviations. Try `license-fedora2spdx' for
  converting it to SPDX.
  See: https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1


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

C/C++:
[ ]: Package does not contain kernel modules.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[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.
[ ]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* GNU General Public
     License", "GNU General Public License, Version 2", "Boost Software
     License 1.0", "BSD 2-Clause License". 171 files have unknown license.
     Detailed output of licensecheck in
     /home/FedoraPackaging/reviews/dbcsr/2238263-dbcsr/licensecheck.txt
[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/lib64/mpich/lib/cmake, /usr/lib64/openmpi/lib/cmake,
     /usr/lib64/gfortran/modules, /usr/lib64/mpich/include,
     /usr/lib64/openmpi/include, /usr/lib64/gfortran/modules/mpich,
     /usr/lib64/gfortran/modules/openmpi
[ ]: %build honors applicable compiler flags or justifies otherwise.
[ ]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[ ]: 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).
[x]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
[ ]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[ ]: Useful -debuginfo package or justification otherwise.
[ ]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 31575 bytes in 3 files.
[ ]: 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).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[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 must not depend on deprecated() packages.
[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]: 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.
[x]: Final provides and requires are sane (see attachments).
[ ]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in dbcsr-
     openmpi , dbcsr-openmpi-devel , dbcsr-mpich , dbcsr-mpich-devel
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[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]: 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:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: dbcsr-2.6.0-1.fc38.x86_64.rpm
          dbcsr-devel-2.6.0-1.fc38.x86_64.rpm
          dbcsr-openmpi-2.6.0-1.fc38.x86_64.rpm
          dbcsr-openmpi-devel-2.6.0-1.fc38.x86_64.rpm
          dbcsr-mpich-2.6.0-1.fc38.x86_64.rpm
          dbcsr-mpich-devel-2.6.0-1.fc38.x86_64.rpm
          dbcsr-debuginfo-2.6.0-1.fc38.x86_64.rpm
          dbcsr-debugsource-2.6.0-1.fc38.x86_64.rpm
          dbcsr-2.6.0-1.fc38.src.rpm
=========================================================== rpmlint session starts ==========================================================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmp8yo3fcnc')]
checks: 31, packages: 9

dbcsr.src: W: strange-permission dbcsr-2.6.0.tar.gz 660
dbcsr.src: W: strange-permission dbcsr-flags.patch 660
dbcsr.src: W: strange-permission dbcsr-fmoddir.patch 660
dbcsr.src: W: strange-permission dbcsr.spec 660
dbcsr-mpich-devel.x86_64: W: only-non-binary-in-usr-lib
dbcsr-openmpi-devel.x86_64: W: only-non-binary-in-usr-lib
dbcsr-devel.x86_64: W: no-documentation
dbcsr-mpich-devel.x86_64: W: no-documentation
dbcsr-openmpi-devel.x86_64: W: no-documentation
dbcsr-debugsource.x86_64: E: files-duplicated-waste 7503395
============================ 9 packages and 0 specfiles checked; 1 errors, 9 warnings, 1 badness; has taken 6.3 s ===========================




Rpmlint (debuginfo)
-------------------
Checking: dbcsr-openmpi-debuginfo-2.6.0-1.fc38.x86_64.rpm
          dbcsr-debuginfo-2.6.0-1.fc38.x86_64.rpm
          dbcsr-mpich-debuginfo-2.6.0-1.fc38.x86_64.rpm
=========================================================== rpmlint session starts ==========================================================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmplayen9lk')]
checks: 31, packages: 3

============================ 3 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 4.4 s ===========================





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 31, packages: 10

dbcsr-openmpi.x86_64: E: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libdbcsr_c.so.2.6.0 /lib64/libm.so.6
dbcsr-openmpi.x86_64: E: unused-direct-shlib-dependency /usr/lib64/openmpi/lib/libdbcsr_c.so.2.6.0 /lib64/libgcc_s.so.1
dbcsr-mpich.x86_64: E: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libdbcsr_c.so.2.6.0 /lib64/libm.so.6
dbcsr-mpich.x86_64: E: unused-direct-shlib-dependency /usr/lib64/mpich/lib/libdbcsr_c.so.2.6.0 /lib64/libgcc_s.so.1
dbcsr-mpich.x86_64: E: undefined-non-weak-symbol /usr/lib64/mpich/lib/libdbcsr.so.2.6.0 MPI_UNWEIGHTED	(/usr/lib64/mpich/lib/libmpifort.so.12)
dbcsr-mpich.x86_64: E: undefined-non-weak-symbol /usr/lib64/mpich/lib/libdbcsr.so.2.6.0 MPI_F_STATUSES_IGNORE	(/usr/lib64/mpich/lib/libmpifort.so.12)
...
PMPI_Pack_size	(/usr/lib64/mpich/lib/libmpifort.so.12)
dbcsr-mpich.x86_64: E: undefined-non-weak-symbol /usr/lib64/mpich/lib/libdbcsr_c.so.2.6.0 PMPI_Status_set_elements	(/usr/lib64/mpich/lib/libmpifort.so.12)
dbcsr-mpich-devel.x86_64: W: only-non-binary-in-usr-lib
dbcsr-openmpi-devel.x86_64: W: only-non-binary-in-usr-lib
dbcsr-mpich-devel.x86_64: W: no-documentation
dbcsr-openmpi-devel.x86_64: W: no-documentation
dbcsr-devel.x86_64: W: no-documentation
dbcsr-debugsource.x86_64: E: files-duplicated-waste 7503395
 10 packages and 0 specfiles checked; 1621 errors, 5 warnings, 1621 badness; has taken 13.2 s 



Source checksums
----------------
https://github.com/cp2k/dbcsr/releases/download/v2.6.0/dbcsr-2.6.0.tar.gz :
  CHECKSUM(SHA256) this package     : c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6
  CHECKSUM(SHA256) upstream package : c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6


Requires
--------
dbcsr (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libflexiblas.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.5()(64bit)
    libgfortran.so.5(GFORTRAN_10)(64bit)
    libgfortran.so.5(GFORTRAN_8)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    libmvec.so.1()(64bit)
    rtld(GNU_HASH)

dbcsr-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(x86-64)
    dbcsr(x86-64)

dbcsr-openmpi (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libdbcsr.so.2.6()(64bit)(openmpi-x86_64)
    libflexiblas.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.5()(64bit)
    libgfortran.so.5(GFORTRAN_10)(64bit)
    libgfortran.so.5(GFORTRAN_8)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    libmpi_mpifh.so.40()(64bit)(openmpi-x86_64)
    libmvec.so.1()(64bit)
    rtld(GNU_HASH)

dbcsr-openmpi-devel (rpmlib, GLIBC filtered):
    dbcsr-openmpi(x86-64)

dbcsr-mpich (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libdbcsr.so.2.6()(64bit)(mpich-x86_64)
    libflexiblas.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.5()(64bit)
    libgfortran.so.5(GFORTRAN_10)(64bit)
    libgfortran.so.5(GFORTRAN_8)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    libmpifort.so.12()(64bit)(mpich-x86_64)
    libmvec.so.1()(64bit)
    rtld(GNU_HASH)

dbcsr-mpich-devel (rpmlib, GLIBC filtered):
    dbcsr-mpich(x86-64)

dbcsr-debuginfo (rpmlib, GLIBC filtered):

dbcsr-debugsource (rpmlib, GLIBC filtered):



Provides
--------
dbcsr:
    dbcsr
    dbcsr(x86-64)
    libdbcsr.so.2.6()(64bit)

dbcsr-devel:
    cmake(DBCSR)
    cmake(dbcsr)
    dbcsr-devel
    dbcsr-devel(x86-64)

dbcsr-openmpi:
    dbcsr-openmpi
    dbcsr-openmpi(x86-64)
    libdbcsr.so.2.6()(64bit)(openmpi-x86_64)
    libdbcsr_c.so.2.6()(64bit)(openmpi-x86_64)

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

dbcsr-mpich:
    dbcsr-mpich
    dbcsr-mpich(x86-64)
    libdbcsr.so.2.6()(64bit)(mpich-x86_64)
    libdbcsr_c.so.2.6()(64bit)(mpich-x86_64)

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

dbcsr-debuginfo:
    dbcsr-debuginfo
    dbcsr-debuginfo(x86-64)
    debuginfo(build-id)

dbcsr-debugsource:
    dbcsr-debugsource
    dbcsr-debugsource(x86-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2238263 -m fedora-38-x86_64
Buildroot used: fedora-38-x86_64
Active plugins: C/C++, Shell-api, Generic
Disabled plugins: Python, Haskell, R, Ocaml, SugarActivity, PHP, Ruby, Perl, fonts, Java
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comments:
a) dbcsr-2.6.0/tools/build_libsmm/ seems to be under BSD-2-Clause. 
b) Please use SPDX identifier GPL-2.0-only instead of GPLv2
c) Any idea why there are so many undefined-non-weak-symbol warnings when using Mpich and not with OpeMPI?

Comment 8 Orion Poplawski 2023-09-12 00:24:17 UTC
a) tools/* seems to not be needed, so I've removed it in %prep
b) Fixed
c) I'm not quite sure why it's different, but I suspect that fedora review doesn't know that it needs to load the appropriate mpi modules before evaluating symbols.  It checks out okay manually:

$ LD_LIBRARY_PATH=/usr/lib64/mpich/lib ldd -r /usr/lib64/mpich/lib/libdbcsr.so.2.6.0
        linux-vdso.so.1 (0x00007ffcdc2dc000)
        libflexiblas.so.3 => /lib64/libflexiblas.so.3 (0x00007f0497800000)
        libgfortran.so.5 => /lib64/libgfortran.so.5 (0x00007f0497400000)
        libmvec.so.1 => /lib64/libmvec.so.1 (0x00007f0497706000)
        libmpifort.so.12 => /usr/lib64/mpich/lib/libmpifort.so.12 (0x00007f0497313000)
        libgomp.so.1 => /lib64/libgomp.so.1 (0x00007f0498016000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f0497231000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f0497bdc000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f0496e00000)
        libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00007f0497b94000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f049809d000)
        libmpi.so.12 => /usr/lib64/mpich/lib/libmpi.so.12 (0x00007f0496600000)
        libhwloc.so.15 => /lib64/libhwloc.so.15 (0x00007f04971d3000)
        libfabric.so.1 => /lib64/libfabric.so.1 (0x00007f0495e00000)
        libyaksa.so.0 => /lib64/libyaksa.so.0 (0x00007f0493a00000)
        libudev.so.1 => /lib64/libudev.so.1 (0x00007f049719b000)
        librdmacm.so.1 => /lib64/librdmacm.so.1 (0x00007f0497ff6000)
        libefa.so.1 => /lib64/libefa.so.1 (0x00007f0497b88000)
        libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007f04976e1000)
        libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007f0497105000)
        libpsm2.so.2 => /lib64/libpsm2.so.2 (0x00007f049709c000)
        libibverbs.so.1 => /lib64/libibverbs.so.1 (0x00007f049707a000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f0497b7e000)
        libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f0497b6f000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007f04976d7000)

Comment 9 Dominik 'Rathann' Mierzejewski 2023-09-12 11:37:33 UTC
Thanks for submitting this, Orion. After this is built, we can look at unbundling dbcsr from cp2k package.

Comment 10 Cristian Le 2023-09-12 12:28:26 UTC
- I like the compact design in `elpa`[1], what do you think of using similar `pushd`, `popd` approach with `%cmake -S ../`.
  There the `module load mpi/openmpi-%{_arch}` are called manually. Maybe these can work with `lua` for loops?
- `-DCMAKE_INSTALL_LIBDIR:PATH=lib` should be `MPI_LIB` I don't see `$MPI_HOME` to be documented.
- `-DCMAKE_PREFIX_PATH` should not be necessary. Are there cmake modules installed specific for mpi flavours? Even so they should be handled by `%{_openmpi_load}`
- What is the purpose of `%global _vpath_builddir %{_vendor}-%{_target_os}-build`?
- ```
  # Tests fail - reported https://github.com/cp2k/dbcsr/issues/703
  %ctest || :
  ```
  Are all the tests failing, if not, how about filtering the specific test? `ctest -E <regex_of_test>`
- `Release: 1%{?dist}` Should be using `rpmautospec`. Can convert it with using `rpmautospec convert`
- ```
  # SONAME is based on major.minor version
  %global sover 2.6
  Version: %{sover}.0
  ```
  I think it is best not to rely on a macro here. E.g. packit would override the `Version` text
- ```
  %global git 0
  %global snapshot 20230905
  %global commit 4d60929fea25d66ef58ab66eaced315242d8c029
  %global shortcommit %(c=%{commit}; echo ${c:0:7})
  ```
  Are these meant to be used in production, e.g. releasing an untagged commit version?

[1] https://src.fedoraproject.org/rpms/elpa/blob/rawhide/f/elpa.spec#_258

Comment 11 Orion Poplawski 2023-09-13 03:52:21 UTC
(In reply to Cristian Le from comment #10)
> - I like the compact design in `elpa`[1], what do you think of using similar
> `pushd`, `popd` approach with `%cmake -S ../`.
>   There the `module load mpi/openmpi-%{_arch}` are called manually. Maybe
> these can work with `lua` for loops?

I've reworked it now to use loops.  The differences between the mpi builds doesn't make it as clean as it might be, but probably better.  Thoughts?

> - `-DCMAKE_INSTALL_LIBDIR:PATH=lib` should be `MPI_LIB` I don't see
> `$MPI_HOME` to be documented.

Sure.  Hmm, seems like we should document MPI_HOME then.

> - `-DCMAKE_PREFIX_PATH` should not be necessary. Are there cmake modules
> installed specific for mpi flavours? Even so they should be handled by
> `%{_openmpi_load}`

I suppose I just copied that from something that needed it.  Dropped.

> - What is the purpose of `%global _vpath_builddir
> %{_vendor}-%{_target_os}-build`?

This resets the previous declarations of _vpath_builddir.  This sets the cmake build directory.  Reworked now.

> - ```
>   # Tests fail - reported https://github.com/cp2k/dbcsr/issues/703
>   %ctest || :
>   ```
>   Are all the tests failing, if not, how about filtering the specific test?
> `ctest -E <regex_of_test>`

I prefer to be able to easily see if the test is still failing in the future.

> - `Release: 1%{?dist}` Should be using `rpmautospec`. Can convert it with
> using `rpmautospec convert`

I'm still not a fan of rpmautospec.

> - ```
>   # SONAME is based on major.minor version
>   %global sover 2.6
>   Version: %{sover}.0
>   ```
>   I think it is best not to rely on a macro here. E.g. packit would override
> the `Version` text
> - ```
>   %global git 0
>   %global snapshot 20230905
>   %global commit 4d60929fea25d66ef58ab66eaced315242d8c029
>   %global shortcommit %(c=%{commit}; echo ${c:0:7})
>   ```
>   Are these meant to be used in production, e.g. releasing an untagged
> commit version?

Yes.

> [1] https://src.fedoraproject.org/rpms/elpa/blob/rawhide/f/elpa.spec#_258

Comment 12 Cristian Le 2023-09-13 07:24:10 UTC
> > - `Release: 1%{?dist}` Should be using `rpmautospec`. Can convert it with
> > using `rpmautospec convert`
>
> I'm still not a fan of rpmautospec.

I thought this is already supposed to be enforced with f38 onwards
https://fedoraproject.org/wiki/Changes/Rpmautospec_by_Default

> I've reworked it now to use loops.  The differences between the mpi builds doesn't make it as clean as it might be, but probably better.  Thoughts?

I think it does make it look neater. But you're missing pushd/popd or equivalents. I will do some experimentation around [1]. I like the approach there where a macro is defined. I want to test if it can be combined with inline evaluation of a for loop (like adding a bash for loop to the `dconfigure` definition there)

> I prefer to be able to easily see if the test is still failing in the future.

Fair point. For this reason I like to implement packit upstream and have an open PR to monitor the progress of that.


A few final points on my side:
- ```
  export CFLAGS="%{optflags} -fPIC"
  export CXXFLAGS="%{optflags} -fPIC"
  export FFLAGS="%{optflags} -fPIC"
  ```
  This is already handled by `BUILD_SHARED_LIBS`. It can be necessary if upstream uses object libraries and doesn't patch those

- `%{_libdir}/libdbcsr.so.%{sover}*`
  I prefer simply `%{_libdir}/libdbcsr.so.*`. Thoughts?


[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/MPI/#_a_sample_spec_file

Comment 13 Dominik 'Rathann' Mierzejewski 2023-09-13 08:34:01 UTC
(In reply to Cristian Le from comment #12)
> - `%{_libdir}/libdbcsr.so.%{sover}*`
>   I prefer simply `%{_libdir}/libdbcsr.so.*`. Thoughts?

Your preference is actually discouraged these days as it will miss SONAME changes:

https://docs.fedoraproject.org/en-US/packaging-guidelines/#_shared_libraries
...
Shared libraries installed directly into %{_libdir} SHOULD NOT be listed in the
%files section of the spec by using a glob in a way that conceals important parts
of the file name (e.g. libfoo.so*), since changes to the SONAME also result in
a changed file name in most cases.

Comment 14 Cristian Le 2023-09-13 08:59:53 UTC
But in this case `%sover == %version` so it will always be changed when a non-minor version is changed. This should be an issue upstream in that the SOVERSION is changing too much. It should adopt symver and only take the major to be soversion.

I am not sure just avoiding the glob is sufficient. I would say using the `rpminspect` and in this case `rpmdeplint` [1] like it is done in `bohdi` catch these errors much better. If they could be implemented as default in zuul [2], that would be ideal.

[1] https://github.com/fedora-ci/rpmdeplint-pipeline
[2] https://pagure.io/fedora-zuul-jobs/issue/181

Comment 15 Orion Poplawski 2023-09-14 03:09:26 UTC
(In reply to Cristian Le from comment #12)
> > > - `Release: 1%{?dist}` Should be using `rpmautospec`. Can convert it with
> > > using `rpmautospec convert`
> >
> > I'm still not a fan of rpmautospec.
> 
> I thought this is already supposed to be enforced with f38 onwards
> https://fedoraproject.org/wiki/Changes/Rpmautospec_by_Default

It's recommended as the default, but it doesn't say it's required.  Any way, if the other maintainers (esp. Dominik) really want it, I'm fine switching.

> > I've reworked it now to use loops.  The differences between the mpi builds doesn't make it as clean as it might be, but probably better.  Thoughts?
> 
> I think it does make it look neater. But you're missing pushd/popd or
> equivalents. I will do some experimentation around [1]. I like the approach
> there where a macro is defined. I want to test if it can be combined with
> inline evaluation of a for loop (like adding a bash for loop to the
> `dconfigure` definition there)

There's no need for pushd/popd - _vpath_builddir handles configuring the build directories.

> > I prefer to be able to easily see if the test is still failing in the future.
> 
> Fair point. For this reason I like to implement packit upstream and have an
> open PR to monitor the progress of that.
> 
> 
> A few final points on my side:
> - ```
>   export CFLAGS="%{optflags} -fPIC"
>   export CXXFLAGS="%{optflags} -fPIC"
>   export FFLAGS="%{optflags} -fPIC"
>   ```
>   This is already handled by `BUILD_SHARED_LIBS`. It can be necessary if
> upstream uses object libraries and doesn't patch those

It's needed for a particular cmake test that dbcsr does.  I hope to report that upstream at some point.

> - `%{_libdir}/libdbcsr.so.%{sover}*`
>   I prefer simply `%{_libdir}/libdbcsr.so.*`. Thoughts?

Nope, as Dominik stated, we're keeping explicit mention of the SONAME scheme.

> [1]
> https://docs.fedoraproject.org/en-US/packaging-guidelines/MPI/
> #_a_sample_spec_file

I had a typo in my last spec.  I hopefully have fixed that now, new scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=106164819

Comment 16 Cristian Le 2023-09-14 13:16:50 UTC
> `%global _vpath_builddir %{_vendor}-%{_target_os}-build-${mpi:-serial}`

Oh interesting, it is a really neat approach, and it should be documented in the packaging guidelines. I am adopting a slight variant, and adding some comments for other packagers who want to use it as reference:

> # Note: The following works beause:
> # - %%global: macros are evaluated explicitly at definition, $variables are not expanded
> # - %%define: macros are evaluated in-place, $variables are also expanded
> %global _vpath_builddir %{_target_platform}_${mpi:-serial}

I am experimenting with using `%{?}` and `%define` to do in-place expansion so that the `%cmake` build step can look cleaner and more consistent with non-mpi builds, e.g. `-DCP2K_USE_MPI=%{?$mpi:ON}%{!?$mpi:OFF}`
Otherwise, maybe using environment variable expansion: `${MPI_LIB:+-DCMAKE_INSTALL_LIBDIR:PATH=$MPI_LIB}`. So far no much luck other than delving into writing lua macros.

Can you check that the test are properly run in parallel? Looking at the timings for `mpich` variant, it looks really bad [1].

I do not see that PROCESSORS [1] property is set, and I don't think the upstream definition [2] takes into account `ctest -j2` that is used by default in `%ctest`. From what I read in `ProcessorCount`[3], it gets the system's max number of processors. If you know of similar discussions, let me know, I have a similar design issue to solve.

[1] Github: https://github.com/LecrisUT/fedora-cp2k/pulls Copr: https://copr.fedorainfracloud.org/coprs/lecris/cp2k/builds/
[2] https://cmake.org/cmake/help/latest/prop_test/PROCESSORS.html#prop_test:PROCESSORS
[3] https://github.com/cp2k/dbcsr/blob/579110dc00580dcdc06d3beef31bccd0378cf1dc/tests/CMakeLists.txt#L2C1-L14C9
[4] https://cmake.org/cmake/help/latest/module/ProcessorCount.html

Comment 17 Orion Poplawski 2023-09-15 04:17:34 UTC
I'm not sure about the processors - but in the koji build I see:
Tests will run with 3 MPI ranks and 2 OpenMP threads each

so it seems like something it getting detected.

Benson - any more concerns or are we good here?   Thanks.

Comment 18 Benson Muite 2023-09-15 07:50:21 UTC
[fedora-review-service-build]

Comment 19 Cristian Le 2023-09-15 09:27:23 UTC
> I'm not sure about the processors - but in the koji build I see:
> Tests will run with 3 MPI ranks and 2 OpenMP threads each

I have just ran locally `ctest -j 2 -N -V` and it is reporting
```
19: Test command: /opt/intel/oneapi/mpi/2021.10.0/bin/mpiexec "-n" "8" "./dbcsr_tensor_test"
19: Working Directory: /dbcsr/cmake-build-debug-intel/tests
19: Environment variables: 
19:  OMP_NUM_THREADS=2
  Test #19: dbcsr_tensor_test
```

My `nproc` is 16, and with `ctest -j 2`, it means that it runs 2 mpi jobs at maximum nproc. This is not good because the OS scheduler with have to constantly be switching. Looking at the `%ctest` macro [1], it seems that it does not explicitly adds `-j 2`, so maybe you can specify it for MPI jobs to be `%ctest -j 1`. Alternatively you can manually set `TEST_MPI_RANKS` to `$(nproc)/$TEST_OMP_THREADS/$ctest_jobs`.

[1] https://src.fedoraproject.org/rpms/cmake/blob/rawhide/f/macros.cmake.in#_47

Comment 20 Benson Muite 2023-09-16 05:58:23 UTC
Will need one more day to get to this. Sorry for the delay.

Comment 21 Orion Poplawski 2023-09-21 03:53:23 UTC
Benson, just a friendly ping.  Thanks.

Comment 22 Benson Muite 2023-09-22 07:43:44 UTC
fedora review does not complete at present. Error message:

-- FYPP preprocessor found.
-- Configuring done (5.5s)
CMake Error: CMake can not determine linker language for target: fypp_DBCSR_FORTRAN_SRCS
-- Generating done (0.1s)
CMake Warning:
  Manually-specified variables were not used by the project:
    CMAKE_INSTALL_DO_STRIP
    INCLUDE_INSTALL_DIR
    LIB_INSTALL_DIR
    LIB_SUFFIX
    SHARE_INSTALL_PREFIX
    SYSCONF_INSTALL_DIR
CMake Generate step failed.  Build files cannot be regenerated correctly.
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.GET0PH (%build)
    Bad exit status from /var/tmp/rpm-tmp.GET0PH (%build)
Child return code was: 1


[fedora-review-service-build]

Comment 23 Orion Poplawski 2023-09-22 14:21:34 UTC
I'm stumped, but I think it's a change in cmake or fypp.  Scratch build in f37 with cmake 3.27.4-6/fypp 3.1-6 succeeds in running cmake.  https://koji.fedoraproject.org/koji/taskinfo?taskID=106541192

Comment 24 Benson Muite 2023-10-01 20:10:33 UTC
Package Review
==============

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



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

C/C++:
[ ]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
[x]: Package does not contain kernel modules.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[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: "Unknown or generated", "*No copyright* GNU General Public
     License", "GNU General Public License, Version 2", "Boost Software
     License 1.0". 144 files have unknown license. Detailed output of
     licensecheck in /home/fedora/2238263-dbcsr/licensecheck.txt
[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/openmpi/lib/cmake,
     /usr/lib64/gfortran/modules/openmpi, /usr/lib64/mpich/lib/cmake,
     /usr/lib64/gfortran, /usr/lib64/mpich/include,
     /usr/lib64/gfortran/modules, /usr/lib64/openmpi/include,
     /usr/lib64/gfortran/modules/mpich
[x]: %build honors applicable compiler flags or justifies otherwise.
[ ]: 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).
[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.
[x]: Requires correct, justified where necessary.
[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.
[ ]: Package is not known to require an ExcludeArch tag.
[ ]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Test run failed
[ ]: 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).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[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 must not depend on deprecated() packages.
[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]: 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.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in dbcsr-
     openmpi , dbcsr-openmpi-devel , dbcsr-mpich , dbcsr-mpich-devel
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[ ]: %check is present and all tests pass.
[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]: 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:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.

Rpmlint
-------
Checking: dbcsr-2.6.0-1.fc40.aarch64.rpm
          dbcsr-devel-2.6.0-1.fc40.aarch64.rpm
          dbcsr-openmpi-2.6.0-1.fc40.aarch64.rpm
          dbcsr-openmpi-devel-2.6.0-1.fc40.aarch64.rpm
          dbcsr-mpich-2.6.0-1.fc40.aarch64.rpm
          dbcsr-mpich-devel-2.6.0-1.fc40.aarch64.rpm
          dbcsr-debuginfo-2.6.0-1.fc40.aarch64.rpm
          dbcsr-debugsource-2.6.0-1.fc40.aarch64.rpm
          dbcsr-2.6.0-1.fc40.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmp941baknm')]
checks: 31, packages: 9

dbcsr.src: W: strange-permission dbcsr-2.6.0.tar.gz 660
dbcsr.src: W: strange-permission dbcsr-flags.patch 660
dbcsr.src: W: strange-permission dbcsr-fmoddir.patch 660
dbcsr.src: W: strange-permission dbcsr.spec 660
dbcsr-mpich-devel.aarch64: W: only-non-binary-in-usr-lib
dbcsr-openmpi-devel.aarch64: W: only-non-binary-in-usr-lib
dbcsr-devel.aarch64: W: no-documentation
dbcsr-mpich-devel.aarch64: W: no-documentation
dbcsr-openmpi-devel.aarch64: W: no-documentation
dbcsr-debugsource.aarch64: E: files-duplicated-waste 7492578
 9 packages and 0 specfiles checked; 1 errors, 9 warnings, 1 badness; has taken 1.7 s 




Rpmlint (debuginfo)
-------------------
Checking: dbcsr-openmpi-debuginfo-2.6.0-1.fc40.aarch64.rpm
          dbcsr-mpich-debuginfo-2.6.0-1.fc40.aarch64.rpm
          dbcsr-debuginfo-2.6.0-1.fc40.aarch64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpbl9_knez')]
checks: 31, packages: 3

 3 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 0.9 s 





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 31, packages: 10

dbcsr-mpich.aarch64: E: undefined-non-weak-symbol /usr/lib64/mpich/lib/libdbcsr.so.2.6.0 MPI_UNWEIGHTED (/usr/lib64/mpich/l
ib/libmpifort.so.12)
....
dbcsr-mpich.aarch64: E: undefined-non-weak-symbol /usr/lib64/mpich/lib/libdbcsr_c.so.2.6.0 PMPI_Status_set_elements     (/u
sr/lib64/mpich/lib/libmpifort.so.12)
dbcsr-mpich-devel.aarch64: W: only-non-binary-in-usr-lib
dbcsr-openmpi-devel.aarch64: W: only-non-binary-in-usr-lib
dbcsr-devel.aarch64: W: no-documentation
dbcsr-mpich-devel.aarch64: W: no-documentation
dbcsr-openmpi-devel.aarch64: W: no-documentation
dbcsr-debugsource.aarch64: E: files-duplicated-waste 7492578
 10 packages and 0 specfiles checked; 1705 errors, 5 warnings, 1705 badness; has taken 3.0 s 



Source checksums
----------------
https://github.com/cp2k/dbcsr/releases/download/v2.6.0/dbcsr-2.6.0.tar.gz :
  CHECKSUM(SHA256) this package     : c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6
  CHECKSUM(SHA256) upstream package : c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6


Requires
--------
dbcsr (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libflexiblas.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.5()(64bit)
    libgfortran.so.5(GFORTRAN_10)(64bit)
    libgfortran.so.5(GFORTRAN_8)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    rtld(GNU_HASH)

dbcsr-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(aarch-64)
    dbcsr(aarch-64)

dbcsr-openmpi (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libdbcsr.so.2.6()(64bit)(openmpi-aarch64)
    libflexiblas.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.5()(64bit)
    libgfortran.so.5(GFORTRAN_10)(64bit)
    libgfortran.so.5(GFORTRAN_8)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    libmpi_mpifh.so.40()(64bit)(openmpi-aarch64)
    rtld(GNU_HASH)

dbcsr-openmpi-devel (rpmlib, GLIBC filtered):
    dbcsr-openmpi(aarch-64)

dbcsr-mpich (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libdbcsr.so.2.6()(64bit)(mpich-aarch64)
    libflexiblas.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.5()(64bit)
    libgfortran.so.5(GFORTRAN_10)(64bit)
    libgfortran.so.5(GFORTRAN_8)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    libmpifort.so.12()(64bit)(mpich-aarch64)
    rtld(GNU_HASH)

dbcsr-mpich-devel (rpmlib, GLIBC filtered):
    dbcsr-mpich(aarch-64)

dbcsr-debuginfo (rpmlib, GLIBC filtered):

dbcsr-debugsource (rpmlib, GLIBC filtered):



Provides
--------
dbcsr:
    dbcsr
    dbcsr(aarch-64)
    libdbcsr.so.2.6()(64bit)

dbcsr-devel:
    cmake(DBCSR)
    cmake(dbcsr)
    dbcsr-devel
    dbcsr-devel(aarch-64)

dbcsr-openmpi:
    dbcsr-openmpi
    dbcsr-openmpi(aarch-64)
    libdbcsr.so.2.6()(64bit)(openmpi-aarch64)
    libdbcsr_c.so.2.6()(64bit)(openmpi-aarch64)

dbcsr-openmpi-devel:
    dbcsr-openmpi-devel
    dbcsr-openmpi-devel(aarch-64)

dbcsr-mpich:
    dbcsr-mpich
    dbcsr-mpich(aarch-64)
    libdbcsr.so.2.6()(64bit)(mpich-aarch64)
    libdbcsr_c.so.2.6()(64bit)(mpich-aarch64)

dbcsr-mpich-devel:
    dbcsr-mpich-devel
    dbcsr-mpich-devel(aarch-64)

dbcsr-debuginfo:
    dbcsr-debuginfo
    dbcsr-debuginfo(aarch-64)
    debuginfo(build-id)

dbcsr-debugsource:
    dbcsr-debugsource
    dbcsr-debugsource(aarch-64)


Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2238263
Buildroot used: fedora-rawhide-aarch64
Active plugins: C/C++, Shell-api, Generic
Disabled plugins: Haskell, Ocaml, Java, Python, SugarActivity, Perl, R, fonts, PHP
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comments:
a) Have made pull requests to the fedora repositories for OpenMPI and MPICH packages
to own some of the directories listed above without owners.  Probably further pull
requests are needed for the gfortran subdirectories.
b) Documentation requires Ford which am packaging:
https://github.com/Fortran-FOSS-Programmers/ford
c) s390x build fails:
https://koji.fedoraproject.org/koji/taskinfo?taskID=106962999

Comment 25 Orion Poplawski 2023-10-03 02:39:59 UTC
make sure you have the latest version - that seems to build okay:

https://koji.fedoraproject.org/koji/taskinfo?taskID=107009010

Comment 26 Benson Muite 2023-10-06 21:53:58 UTC
Package Review
==============

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



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

C/C++:
[ ]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
[ ]: Package does not contain kernel modules.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[ ]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[ ]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Unknown or generated", "*No copyright* GNU General Public
     License", "GNU General Public License, Version 2", "Boost Software
     License 1.0". 144 files have unknown license. Detailed output of
     licensecheck in /home/fedora/2238263-dbcsr/licensecheck.txt
[ ]: 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/modules,
     /usr/lib64/openmpi/lib/cmake, /usr/lib64/gfortran,
     /usr/lib64/gfortran/modules/mpich, /usr/lib64/gfortran/modules/openmpi
[ ]: %build honors applicable compiler flags or justifies otherwise.
[ ]: Package contains no bundled libraries without FPC exception.
[ ]: Changelog in prescribed format.
[ ]: Sources contain only permissible code or content.
[ ]: Package contains desktop file if it is a GUI application.
[ ]: Development files must be in a -devel package
[ ]: Package uses nothing in %doc for runtime.
[ ]: Package consistently uses macros (instead of hard-coded directory
     names).
[ ]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
[ ]: 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.
[ ]: Spec file is legible and written in American English.
[ ]: Package contains systemd file(s) if in need.
[ ]: Useful -debuginfo package or justification otherwise.
[ ]: Package is not known to require an ExcludeArch tag.
[ ]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Test run failed
[ ]: 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).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[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 must not depend on deprecated() packages.
[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]: 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).
[ ]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in dbcsr-
     openmpi , dbcsr-openmpi-devel , dbcsr-mpich , dbcsr-mpich-devel
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[ ]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[ ]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[ ]: %check is present and all tests pass.
[ ]: 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]: 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:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: dbcsr-2.6.0-1.fc40.aarch64.rpm
          dbcsr-devel-2.6.0-1.fc40.aarch64.rpm
          dbcsr-openmpi-2.6.0-1.fc40.aarch64.rpm
          dbcsr-openmpi-devel-2.6.0-1.fc40.aarch64.rpm
          dbcsr-mpich-2.6.0-1.fc40.aarch64.rpm
          dbcsr-mpich-devel-2.6.0-1.fc40.aarch64.rpm
          dbcsr-debuginfo-2.6.0-1.fc40.aarch64.rpm
          dbcsr-debugsource-2.6.0-1.fc40.aarch64.rpm
          dbcsr-2.6.0-1.fc40.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmphjjbzss8')]
checks: 31, packages: 9

dbcsr.src: W: strange-permission dbcsr-2.6.0.tar.gz 660
dbcsr.src: W: strange-permission dbcsr-flags.patch 660
dbcsr.src: W: strange-permission dbcsr-fmoddir.patch 660
dbcsr.src: W: strange-permission dbcsr.spec 660
dbcsr-mpich-devel.aarch64: W: only-non-binary-in-usr-lib
dbcsr-openmpi-devel.aarch64: W: only-non-binary-in-usr-lib
dbcsr-devel.aarch64: W: no-documentation
dbcsr-mpich-devel.aarch64: W: no-documentation
dbcsr-openmpi-devel.aarch64: W: no-documentation
dbcsr-debugsource.aarch64: E: files-duplicated-waste 7446481
 9 packages and 0 specfiles checked; 1 errors, 9 warnings, 1 badness; has taken 1.5 s 




Rpmlint (debuginfo)
-------------------
Checking: dbcsr-openmpi-debuginfo-2.6.0-1.fc40.aarch64.rpm
          dbcsr-mpich-debuginfo-2.6.0-1.fc40.aarch64.rpm
          dbcsr-debuginfo-2.6.0-1.fc40.aarch64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpk4a89edy')]
checks: 31, packages: 3

 3 packages and 0 specfiles checked; 0 errors, 0 warnings, 0 badness; has taken 0.8 s 





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 31, packages: 10

dbcsr-mpich.aarch64: E: undefined-non-weak-symbol /usr/lib64/mpich/lib/libdbcsr.so.2.6.0 MPI_UNWEI
GHTED   (/usr/lib64/mpich/lib/libmpifort.so.12)
...
dbcsr-mpich.aarch64: E: undefined-non-weak-symbol /usr/lib64/mpich/lib/libdbcsr_c.so.2.6.0 PMPI_Status_set_elements       (/usr/lib64/mpich/lib/libmpifort.so.12)
dbcsr-openmpi-devel.aarch64: W: only-non-binary-in-usr-lib
dbcsr-mpich-devel.aarch64: W: only-non-binary-in-usr-lib
dbcsr-openmpi-devel.aarch64: W: no-documentation
dbcsr-devel.aarch64: W: no-documentation
dbcsr-mpich-devel.aarch64: W: no-documentation
dbcsr-debugsource.aarch64: E: files-duplicated-waste 7446481
 10 packages and 0 specfiles checked; 1705 errors, 5 warnings, 1705 badness; has taken 3.1 s 



Source checksums
----------------
https://github.com/cp2k/dbcsr/releases/download/v2.6.0/dbcsr-2.6.0.tar.gz :
  CHECKSUM(SHA256) this package     : c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6
  CHECKSUM(SHA256) upstream package : c67b02ff9abc7c1f529af446a9f01f3ef9e5b0574f220259128da8d5ca7e9dc6


Requires
--------
dbcsr (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libflexiblas.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.5()(64bit)
    libgfortran.so.5(GFORTRAN_10)(64bit)
    libgfortran.so.5(GFORTRAN_8)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    rtld(GNU_HASH)

dbcsr-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(aarch-64)
    dbcsr(aarch-64)

dbcsr-openmpi (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libdbcsr.so.2.6()(64bit)(openmpi-aarch64)
    libflexiblas.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.5()(64bit)
    libgfortran.so.5(GFORTRAN_10)(64bit)
    libgfortran.so.5(GFORTRAN_8)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    libmpi_mpifh.so.40()(64bit)(openmpi-aarch64)
    rtld(GNU_HASH)

dbcsr-openmpi-devel (rpmlib, GLIBC filtered):
    dbcsr-openmpi(aarch-64)

dbcsr-mpich (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    libdbcsr.so.2.6()(64bit)(mpich-aarch64)
    libflexiblas.so.3()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgfortran.so.5()(64bit)
    libgfortran.so.5(GFORTRAN_10)(64bit)
    libgfortran.so.5(GFORTRAN_8)(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libgomp.so.1(OMP_2.0)(64bit)
    libgomp.so.1(OMP_3.0)(64bit)
    libm.so.6()(64bit)
    libmpifort.so.12()(64bit)(mpich-aarch64)
    rtld(GNU_HASH)

dbcsr-mpich-devel (rpmlib, GLIBC filtered):
    dbcsr-mpich(aarch-64)

dbcsr-debuginfo (rpmlib, GLIBC filtered):

dbcsr-debugsource (rpmlib, GLIBC filtered):



Provides
--------
dbcsr:
    dbcsr
    dbcsr(aarch-64)
    libdbcsr.so.2.6()(64bit)

dbcsr-devel:
    cmake(DBCSR)
    cmake(dbcsr)
    dbcsr-devel
    dbcsr-devel(aarch-64)

dbcsr-openmpi:
    dbcsr-openmpi
    dbcsr-openmpi(aarch-64)
    libdbcsr.so.2.6()(64bit)(openmpi-aarch64)
    libdbcsr_c.so.2.6()(64bit)(openmpi-aarch64)

dbcsr-openmpi-devel:
    dbcsr-openmpi-devel
    dbcsr-openmpi-devel(aarch-64)

dbcsr-mpich:
    dbcsr-mpich
    dbcsr-mpich(aarch-64)
    libdbcsr.so.2.6()(64bit)(mpich-aarch64)
    libdbcsr_c.so.2.6()(64bit)(mpich-aarch64)

dbcsr-mpich-devel:
    dbcsr-mpich-devel
    dbcsr-mpich-devel(aarch-64)

dbcsr-debuginfo:
    dbcsr-debuginfo
    dbcsr-debuginfo(aarch-64)
    debuginfo(build-id)

dbcsr-debugsource:
    dbcsr-debugsource
    dbcsr-debugsource(aarch-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2238263
Buildroot used: fedora-rawhide-aarch64
Active plugins: Generic, C/C++, Shell-api
Disabled plugins: Java, Ocaml, Haskell, R, Python, fonts, PHP, SugarActivity, Perl
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comments:
a) Mostly seems ok. Any way to fix directory ownership problems?

Comment 27 Orion Poplawski 2023-10-08 02:20:18 UTC
I think the ownership issues are mostly resolved, and are minor in any case.  openmpi-devel and mpich-devel now own the cmake and gfortran/modules paths.  gcc-fortran owns /usr/lib64/gfortran/modules, but I don't think it's appropriate to have dbcsr-devel require gcc-fortran as it could be use by other languages.

Comment 28 Benson Muite 2023-10-08 05:47:20 UTC
Guidelines require use of Requires: gcc-gfortran%{_isa}
https://docs.fedoraproject.org/en-US/packaging-guidelines/Fortran/#_packaging_of_fortran_programs
for any package with Fortran modules, though this does not mention MPI.

Will make pull requests so openmpi and mpich own %{_fmoddir}/openmpi and %{_fmoddir}/mpich respectively.

Comment 29 Orion Poplawski 2023-10-09 23:59:23 UTC
Added Requires: gcc-gfortran%{_isa} to -devel.

Comment 31 Fedora Admin user for bugzilla script actions 2023-10-10 14:38:08 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/dbcsr

Comment 32 Orion Poplawski 2023-10-10 15:55:09 UTC
Checked in and built.  Thanks everyone.


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