Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 2252229 - Review Request: sandia-omega-h - Reliable mesh adaptation
Summary: Review Request: sandia-omega-h - Reliable mesh adaptation
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ankur Sinha (FranciscoD)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: fedora-neuro, NeuroFedora 2071248
TreeView+ depends on / blocked
 
Reported: 2023-11-30 09:30 UTC by Sandro
Modified: 2024-03-13 13:53 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2024-03-13 13:53:17 UTC
Type: ---
Embargoed:
sanjay.ankur: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 6707554 to 6743703 (deleted)
2023-12-12 10:48 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 6743703 to 7131945 (deleted)
2024-03-10 17:07 UTC, Fedora Review Service
no flags Details | Diff

Description Sandro 2023-11-30 09:30:20 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/gui1ty/neuro-sig/fedora-rawhide-x86_64/06707494-sandia-omega-h/sandia-omega-h.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/gui1ty/neuro-sig/fedora-rawhide-x86_64/06707494-sandia-omega-h/sandia-omega-h-10.1.0-8.fc40.src.rpm
Description: 
Omega_h is a C++14 library that implements tetrahedron and triangle
mesh adaptativity, with a focus on scalable HPC performance using
(optionally) MPI and OpenMP or CUDA. It is intended to provided
adaptive functionality to existing simulation codes. Mesh adaptivity
allows one to minimize both discretization error and number of degrees
of freedom live during the simulation, as well as enabling moving
object and evolving geometry simulations. Omega_h will do this for you
in a way that is fast, memory-efficient, and portable across many
different architectures.

Fedora Account System Username: gui1ty

Copr Build: https://copr.fedorainfracloud.org/coprs/gui1ty/neuro-sig/build/6707494/

Comment 1 Sandro 2023-11-30 09:36:48 UTC
Since this is the first package in C/C++ I built from scratch, I'm open to all criticism and suggestions.

In particular, I would welcome comments on enabling `Omega_h_THROW`. The default is off and the comment reads "errors throw exceptions instead of abort".

Comment 2 Fedora Review Service 2023-11-30 10:03:02 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6707554
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2252229-sandia-omega-h/fedora-rawhide-x86_64/06707554-sandia-omega-h/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 3 Sandro 2023-12-09 11:21:19 UTC
Ping? It's been more than a week since this bug was assigned. No activity since.

Comment 4 Benson Muite 2023-12-10 20:38:25 UTC
Some warnings from fedora-review:
sandia-omega-h-openmpi-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-openmpi-doc/example/castle/osh_castle
sandia-omega-h-openmpi-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-openmpi-doc/example/field_on_square/osh_field_on_square
sandia-omega-h-openmpi-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-openmpi-doc/example/gradient/osh_gradient
sandia-omega-h-openmpi-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-openmpi-doc/example/laplacian/osh_laplacian
sandia-omega-h-mpich-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-mpich-doc/example/castle/osh_castle
sandia-omega-h-mpich-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-mpich-doc/example/field_on_square/osh_field_on_square
sandia-omega-h-mpich-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-mpich-doc/example/gradient/osh_gradient
sandia-omega-h-mpich-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-mpich-doc/example/laplacian/osh_laplacian
sandia-omega-h-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-doc/example/castle/osh_castle
sandia-omega-h-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-doc/example/field_on_square/osh_field_on_square
sandia-omega-h-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-doc/example/gradient/osh_gradient
sandia-omega-h-doc.aarch64: W: unstripped-binary-or-object /usr/share/doc/sandia-omega-h-doc/example/laplacian/osh_laplacian
sandia-omega-h-openmpi-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-openmpi-doc/example/castle/osh_castle
sandia-omega-h-openmpi-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-openmpi-doc/example/field_on_square/osh_field_on_square
sandia-omega-h-openmpi-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-openmpi-doc/example/gradient/osh_gradient
sandia-omega-h-openmpi-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-openmpi-doc/example/laplacian/osh_laplacian
sandia-omega-h-mpich-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-mpich-doc/example/castle/osh_castle
sandia-omega-h-mpich-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-mpich-doc/example/field_on_square/osh_field_on_square
sandia-omega-h-mpich-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-mpich-doc/example/gradient/osh_gradient
sandia-omega-h-mpich-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-mpich-doc/example/laplacian/osh_laplacian
sandia-omega-h-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-doc/example/castle/osh_castle
sandia-omega-h-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-doc/example/field_on_square/osh_field_on_square
sandia-omega-h-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-doc/example/gradient/osh_gradient
sandia-omega-h-doc.aarch64: W: spurious-executable-perm /usr/share/doc/sandia-omega-h-doc/example/laplacian/osh_laplacian
sandia-omega-h-openmpi-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-openmpi-doc/example/castle/osh_castle (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/build-openmpi/src:/usr/lib64/openmpi/lib)
sandia-omega-h-openmpi-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-openmpi-doc/example/field_on_square/osh_field_on_square (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/build-openmpi/src:/usr/lib64/openmpi/lib)
sandia-omega-h-openmpi-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-openmpi-doc/example/gradient/osh_gradient (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/build-openmpi/src:/usr/lib64/openmpi/lib)
sandia-omega-h-openmpi-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-openmpi-doc/example/laplacian/osh_laplacian (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/build-openmpi/src:/usr/lib64/openmpi/lib)
sandia-omega-h-mpich-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-mpich-doc/example/castle/osh_castle (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/build-mpich/src:/usr/lib64/mpich/lib)
sandia-omega-h-mpich-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-mpich-doc/example/field_on_square/osh_field_on_square (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/build-mpich/src:/usr/lib64/mpich/lib)
sandia-omega-h-mpich-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-mpich-doc/example/gradient/osh_gradient (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/build-mpich/src:/usr/lib64/mpich/lib)
sandia-omega-h-mpich-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-mpich-doc/example/laplacian/osh_laplacian (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/build-mpich/src:/usr/lib64/mpich/lib)
sandia-omega-h-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-doc/example/castle/osh_castle (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/redhat-linux-build/src)
sandia-omega-h-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-doc/example/field_on_square/osh_field_on_square (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/redhat-linux-build/src)
sandia-omega-h-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-doc/example/gradient/osh_gradient (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/redhat-linux-build/src)
sandia-omega-h-doc.aarch64: E: binary-or-shlib-defines-rpath /usr/share/doc/sandia-omega-h-doc/example/laplacian/osh_laplacian (RUNPATH: /builddir/build/BUILD/omega_h-10.1.0/redhat-linux-build/src)
sandia-omega-h-openmpi-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-openmpi-doc/example/castle/CMakeFiles/osh_castle.dir/main.cpp.o
sandia-omega-h-openmpi-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-openmpi-doc/example/castle/osh_castle
sandia-omega-h-openmpi-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-openmpi-doc/example/field_on_square/CMakeFiles/osh_field_on_square.dir/main.cpp.o
sandia-omega-h-openmpi-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-openmpi-doc/example/field_on_square/osh_field_on_square
sandia-omega-h-openmpi-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-openmpi-doc/example/gradient/CMakeFiles/osh_gradient.dir/main.cpp.o
sandia-omega-h-openmpi-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-openmpi-doc/example/gradient/osh_gradient
sandia-omega-h-openmpi-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-openmpi-doc/example/laplacian/CMakeFiles/osh_laplacian.dir/main.cpp.o
sandia-omega-h-openmpi-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-openmpi-doc/example/laplacian/osh_laplacian
sandia-omega-h-mpich-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-mpich-doc/example/castle/CMakeFiles/osh_castle.dir/main.cpp.o
sandia-omega-h-mpich-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-mpich-doc/example/castle/osh_castle
sandia-omega-h-mpich-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-mpich-doc/example/field_on_square/CMakeFiles/osh_field_on_square.dir/main.cpp.o
sandia-omega-h-mpich-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-mpich-doc/example/field_on_square/osh_field_on_square
sandia-omega-h-mpich-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-mpich-doc/example/gradient/CMakeFiles/osh_gradient.dir/main.cpp.o
sandia-omega-h-mpich-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-mpich-doc/example/gradient/osh_gradient
sandia-omega-h-mpich-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-mpich-doc/example/laplacian/CMakeFiles/osh_laplacian.dir/main.cpp.o
sandia-omega-h-mpich-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-mpich-doc/example/laplacian/osh_laplacian
sandia-omega-h-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-doc/example/castle/CMakeFiles/osh_castle.dir/main.cpp.o
sandia-omega-h-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-doc/example/castle/osh_castle
sandia-omega-h-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-doc/example/field_on_square/CMakeFiles/osh_field_on_square.dir/main.cpp.o
sandia-omega-h-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-doc/example/field_on_square/osh_field_on_square
sandia-omega-h-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-doc/example/gradient/CMakeFiles/osh_gradient.dir/main.cpp.o
sandia-omega-h-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-doc/example/gradient/osh_gradient
sandia-omega-h-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-doc/example/laplacian/CMakeFiles/osh_laplacian.dir/main.cpp.o
sandia-omega-h-doc.aarch64: E: arch-dependent-file-in-usr-share /usr/share/doc/sandia-omega-h-doc/example/laplacian/osh_laplacian

Comment 5 Sandro 2023-12-12 10:16:30 UTC
I guess I will need to install the examples in %{_libdir}. I have disabled examples for now. I also fixed the issue with %{summary} in the sub packages.

Spec URL: https://download.copr.fedorainfracloud.org/results/gui1ty/neuro-sig/fedora-rawhide-x86_64/06743645-sandia-omega-h/sandia-omega-h.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/gui1ty/neuro-sig/fedora-rawhide-x86_64/06743645-sandia-omega-h/sandia-omega-h-10.1.0-11.fc40.src.rpm

Comment 6 Fedora Review Service 2023-12-12 10:48:03 UTC
Created attachment 2003927 [details]
The .spec file difference from Copr build 6707554 to 6743703

Comment 7 Fedora Review Service 2023-12-12 10:48:05 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6743703
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2252229-sandia-omega-h/fedora-rawhide-x86_64/06743703-sandia-omega-h/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 8 Sandro 2023-12-31 12:09:17 UTC
Ping? Again.

I appreciate you taking on the review. I'm less pleased with the way things move. First, you just take the review without doing anything for over a week. After I pinged you, you just throw a bunch of error/warning messages into a comment. I fix those within a couple of days. Yet, nothing moves forward, again, for almost three weeks. I see you currently have 45 review request assigned to you. Isn't that a bit ambitious?

As you might have noticed, the package under review is a dependency for an update to an already existing package. Therefore, I would like to keep this moving, so that the python-steps update can get unstuck.

Comment 9 Benson Muite 2023-12-31 12:31:19 UTC
It is somewhat surprising to find an experience packager has not read automated fedora-review output and is still expecting a quick review. Sorry for delaying the review. Have set assignee to default in case someone else can get to it as would expect to be able to do so later this week. Happy New Year.  May you experience speed and pleasant reviews in 2024.

Comment 10 Ankur Sinha (FranciscoD) 2024-02-26 13:52:05 UTC
Thanks for your work on this both, I'll take it up now and let's hope we can get it over the line.

Comment 11 Ankur Sinha (FranciscoD) 2024-03-06 12:10:32 UTC
Getting a mock build failure here, unfortunately:

```
[ 32%] Building CXX object src/CMakeFiles/omega_h.dir/Omega_h_gmsh.cpp.o
cd /builddir/build/BUILD/omega_h-10.1.0/redhat-linux-build/src && /usr/bin/g++ -Domega_h_EXPORTS -I/builddir/build/BUILD/omega_h-10.1.0/src -I/builddir/build/BUILD/omega_h-10.1.0/redhat-linux-build/src -I/builddir/build/BUILD/omega_h-10.1.0/tpl -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -DNDEBUG -std=c++14 -fPIC -W -Wall -Wextra -Werror -MD -MT src/CMakeFiles/omega_h.dir/Omega_h_gmsh.cpp.o -MF CMakeFiles/omega_h.dir/Omega_h_gmsh.cpp.o.d -o CMakeFiles/omega_h.dir/Omega_h_gmsh.cpp.o -c /builddir/build/BUILD/omega_h-10.1.0/src/Omega_h_gmsh.cpp
/builddir/build/BUILD/omega_h-10.1.0/src/Omega_h_filesystem.cpp: In member function ‘Omega_h::filesystem::directory_iterator::directory_iterator(Omega_h::filesystem::directory_iterator&&)’:
/builddir/build/BUILD/omega_h-10.1.0/src/Omega_h_filesystem.cpp:389:10: error: ‘*this_4(D).impl’ is used uninitialized [-Werror=uninitialized]
  389 |   delete impl;
      |          ^~~~
cc1plus: all warnings being treated as errors
gmake[2]: *** [src/CMakeFiles/omega_h.dir/build.make:597: src/CMakeFiles/omega_h.dir/Omega_h_filesystem.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: Leaving directory '/builddir/build/BUILD/omega_h-10.1.0/redhat-linux-build'
gmake[1]: *** [CMakeFiles/Makefile2:130: src/CMakeFiles/omega_h.dir/all] Error 2
gmake[1]: Leaving directory '/builddir/build/BUILD/omega_h-10.1.0/redhat-linux-build'
gmake: *** [Makefile:149: all] Error 2
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.oIAulw (%build)
    Bad exit status from /var/tmp/rpm-tmp.oIAulw (%build)
Child return code was: 1
EXCEPTION: [Error('Command failed: \n # /usr/bin/systemd-nspawn -q -M ee298c0989c54cdba36841344057d0dc -D /var/lib/mock/fedora-rawhide-x86_64/root -a -u mockbuild --capability=cap_ipc_lock --bind=/tmp/mock-resolv.efe4veym:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin \'--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"\' \'--setenv=PS1=<mock-chroot> \\s-\\v\\$ \' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c \'/usr/bin/rpmbuild -bb --noclean --target x86_64 --nodeps /builddir/build/SPECS/sandia-omega-h.spec\'\n', 1)]
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
             ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/mockbuild/util.py", line 612, in do_with_status
    raise exception.Error("Command failed: \n # %s\n%s" % (cmd_pretty(command, env), output), child.returncode)
mockbuild.exception.Error: Command failed: 
 # /usr/bin/systemd-nspawn -q -M ee298c0989c54cdba36841344057d0dc -D /var/lib/mock/fedora-rawhide-x86_64/root -a -u mockbuild --capability=cap_ipc_lock --bind=/tmp/mock-resolv.efe4veym:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin '--setenv=PROMPT_COMMAND=printf "\033]0;<mock-chroot>\007"' '--setenv=PS1=<mock-chroot> \s-\v\$ ' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c '/usr/bin/rpmbuild -bb --noclean --target x86_64 --nodeps /builddir/build/SPECS/sandia-omega-h.spec'

Mock Version: 5.5

```

Comment 12 Ankur Sinha (FranciscoD) 2024-03-06 12:24:25 UTC
I'm also a bit confused about upstream's versioning.

https://github.com/sandialabs/omega_h/tags 

v10.1.0 is the highest tag, but not the latest. v9.x is the latest one. The `main` branch is also on v9.x, and so is `develop`. I see no other v10.x releases either.

🤔

Comment 13 Sandro 2024-03-06 16:37:49 UTC
(In reply to Ankur Sinha (FranciscoD) from comment #11)
> Getting a mock build failure here, unfortunately:

I suspect that's due to changes that have now landed in rawhide / f40. It did build before in Copr. I will look into it and provide an update.

(In reply to Ankur Sinha (FranciscoD) from comment #12)
> I'm also a bit confused about upstream's versioning.
> 
> https://github.com/sandialabs/omega_h/tags 
> 
> v10.1.0 is the highest tag, but not the latest. v9.x is the latest one. The
> `main` branch is also on v9.x, and so is `develop`. I see no other v10.x
> releases either.
> 
> 🤔

It looks like v10.1.0 tag was an accident, indeed and I should probably use the most recent tag instead? It doesn't help that there are no official releases anywhere. Not even on Sandia's website: https://www.sandia.gov/ccr/software/omega-h/

I can think of two options:

1) Ask upstream what they consider the latest version and what happened to v10.1.0.
2) Ask STEPS folks which version they are using and package that. This might also be deducible from the STEPS sources.

If it turns out v10.1.0 was an accident and is thus not the latest version, would that require any additional steps to get this package approved?

Comment 14 Ankur Sinha (FranciscoD) 2024-03-08 11:14:51 UTC
From the STEPS files, it looks like upstream uses version 9.34.13, which is the latest tag in the omega-h repo:
https://github.com/sanjayankur31/STEPS/blob/11380f78cf2110a55d6694ac1e8a6929ae7b69f0/CMake/BundleOmega_h.cmake#L14

But they do say "an external omega-h may be used" in the readme, so it doesn't suggest a hard version dependency? While packaging it anyway, we need to package the latest version. So, either we make an assumption and use the one the latest tag (v9x), or we ask on the repo for clarification. (I'm personally inclined to go with the v9 series because they seem to be actively developed)

Comment 15 Sandro 2024-03-08 12:22:39 UTC
Using the latest tag according to timestamp makes perfect sense and it aligns with what STEPS is using.

Spec URL: https://gui1ty.fedorapeople.org/review/sandia-omega-h.spec
SRPM URL: https://gui1ty.fedorapeople.org/review/sandia-omega-h-9.34.13-1.fc41.src.rpm

I removed the 10.x builds from Copr. It's now providing 9.34.13: https://copr.fedorainfracloud.org/coprs/gui1ty/neuro-sig/package/sandia-omega-h/

Comment 16 Ankur Sinha (FranciscoD) 2024-03-09 16:14:24 UTC
Looks pretty good. A few things we need to look at.


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

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


Issues:
=======

- I don't think %ldconfig_scriptlets is required any more. The guidelines now say: "It is not necessary to call ldconfig when installing shared libraries."
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_shared_libraries

- Licenses may need a look

- may need to look at whether it bundles Random123/pss (and other things?)

- the -{openmpi,mpich}-devel sub packages should probably also Require: {openmpich/mpich}-devel I think, since they'll be required for development?

- any reason we're not building the tests for the standard build? (but there are still some default tests that are run in %check)

- we could generate man pages for the binaries

===== 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.
[?]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.

I see a few license. We'll have to see which ones apply:

licensecheck -r . | sed '/UNKNOWN/ d'
./omega_h-9.34.13/LICENSE: BSD 2-Clause with views sentence
./omega_h-9.34.13/README.md: *No copyright* BSD 2-Clause License
./omega_h-9.34.13/doc/xsdk-compatibility.md: *No copyright* BSD 2-Clause License
./omega_h-9.34.13/misc/flamegraph.pl: Common Development and Distribution License
./omega_h-9.34.13/misc/stackcollapse-perf.pl: Common Development and Distribution License
./omega_h-9.34.13/src/Omega_h_any.hpp: Boost Software License 1.0
./omega_h-9.34.13/src/Omega_h_rbtree.hpp: NTP License
./omega_h-9.34.13/tpl/pss/parallel_stable_sort.hpp: BSD 3-Clause License
./omega_h-9.34.13/tpl/pss/pss_common.hpp: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/array.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/philox.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/clangfeatures.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/compilerfeatures.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/gccfeatures.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/iccfeatures.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/msvcfeatures.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/nvccfeatures.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/open64features.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/openclfeatures.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/pgccfeatures.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/sse.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/sunprofeatures.h: BSD 3-Clause License
./omega_h-9.34.13/tpl/random123/features/xlcfeatures.h: BSD 3-Clause License


[x]: License file installed when any subpackage combination is installed.
[x]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/lib64/openmpi/include,
     /usr/lib64/openmpi/lib, /usr/lib64/mpich/lib, /usr/lib64/cmake,
     /usr/lib64/mpich, /usr/lib64/openmpi/bin, /usr/lib64/mpich/include,
     /usr/lib64/mpich/bin, /usr/lib64/openmpi/lib/cmake,
     /usr/lib64/openmpi, /usr/lib64/mpich/lib/cmake

^
Looks fine, the openmpi/mpich packages provide these.

[?]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib64/openmpi/lib/cmake
^
This is owned by openmpi-devel but that isn't required by the package so it's unowned.
I think perhaps the {openmpi,mpich}-devel sub-packages should require the {openmpi,mpich}-devel packages too, since they'll be required for development?

[x]: %build honors applicable compiler flags or justifies otherwise.
[?]: Package contains no bundled libraries without FPC exception.
^
Bundles Random123 and pss? We need to take a look at whether they are used and replace them with system variants if possible.

[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.
[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).
[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]: 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]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 8847 bytes in 3 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.
[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 sandia-
     omega-h-devel , sandia-omega-h-mpich , sandia-omega-h-mpich-devel ,
     sandia-omega-h-openmpi , sandia-omega-h-openmpi-devel

^
Seems to be fine.

[?]: Package functions as described.
^
Not tested this out yet

[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:
[!]: Spec file according to URL is the same as in SRPM.
     Note: Spec file as given by url is not the same as in SRPM (see
     attached diff).
     See: (this test has no URL)
[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.


Rpmlint
-------
Checking: sandia-omega-h-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-devel-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-mpich-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-mpich-devel-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-openmpi-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-openmpi-devel-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-debuginfo-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-debugsource-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-9.34.13-1.fc41.src.rpm
=========================================================================== rpmlint session starts ==========================================================================
rpmlint: 2.5.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/tmprv6e1nkt')]
checks: 32, packages: 9

sandia-omega-h.src: E: spelling-error ('adaptativity', '%description -l en_US adaptativity -> adaptability, captivity')
sandia-omega-h.src: E: spelling-error ('adaptivity', '%description -l en_US adaptivity -> captivity')
sandia-omega-h.src: E: spelling-error ('discretization', '%description -l en_US discretization -> discretionary, discretion, discrimination')
sandia-omega-h.x86_64: E: spelling-error ('adaptativity', '%description -l en_US adaptativity -> adaptability, captivity')
sandia-omega-h.x86_64: E: spelling-error ('adaptivity', '%description -l en_US adaptivity -> captivity')
sandia-omega-h.x86_64: E: spelling-error ('discretization', '%description -l en_US discretization -> discretionary, discretion, discrimination')
sandia-omega-h-mpich.x86_64: E: spelling-error ('adaptativity', '%description -l en_US adaptativity -> adaptability, captivity')
sandia-omega-h-mpich.x86_64: E: spelling-error ('adaptivity', '%description -l en_US adaptivity -> captivity')
sandia-omega-h-mpich.x86_64: E: spelling-error ('discretization', '%description -l en_US discretization -> discretionary, discretion, discrimination')
sandia-omega-h-openmpi.x86_64: E: spelling-error ('adaptativity', '%description -l en_US adaptativity -> adaptability, captivity')
sandia-omega-h-openmpi.x86_64: E: spelling-error ('adaptivity', '%description -l en_US adaptivity -> captivity')
sandia-omega-h-openmpi.x86_64: E: spelling-error ('discretization', '%description -l en_US discretization -> discretionary, discretion, discrimination')
sandia-omega-h.spec: W: patch-not-applied Patch0: build_flags_and_so_version.patch
sandia-omega-h-mpich-devel.x86_64: W: only-non-binary-in-usr-lib
sandia-omega-h-openmpi-devel.x86_64: W: only-non-binary-in-usr-lib
sandia-omega-h.x86_64: W: no-manual-page-for-binary ascii_vtk2osh
sandia-omega-h.x86_64: W: no-manual-page-for-binary msh2osh
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh2vtk
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_adapt
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_box
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_calc
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_eval_implied
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_filesystem
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_fix
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_part
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_reorder
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_scale
sandia-omega-h.x86_64: W: no-manual-page-for-binary oshdiff
sandia-omega-h.x86_64: W: no-manual-page-for-binary vtkdiff
sandia-omega-h-devel.x86_64: W: no-documentation
sandia-omega-h-mpich-devel.x86_64: W: no-documentation
sandia-omega-h-openmpi-devel.x86_64: W: no-documentation
=================================== 9 packages and 0 specfiles checked; 12 errors, 20 warnings, 120 filtered, 12 badness; has taken 3.3 s ===================================




Rpmlint (debuginfo)
-------------------
Checking: sandia-omega-h-openmpi-debuginfo-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-mpich-debuginfo-9.34.13-1.fc41.x86_64.rpm
          sandia-omega-h-debuginfo-9.34.13-1.fc41.x86_64.rpm
=========================================================================== rpmlint session starts ==========================================================================
rpmlint: 2.5.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/tmpmqwf_gnb')]
checks: 32, packages: 3

===================================== 3 packages and 0 specfiles checked; 0 errors, 0 warnings, 106 filtered, 0 badness; has taken 2.1 s ====================================





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.5.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: 32, packages: 10

sandia-omega-h-openmpi.x86_64: E: spelling-error ('adaptativity', '%description -l en_US adaptativity -> adaptability, captivity')
sandia-omega-h-openmpi.x86_64: E: spelling-error ('adaptivity', '%description -l en_US adaptivity -> captivity')
sandia-omega-h-openmpi.x86_64: E: spelling-error ('discretization', '%description -l en_US discretization -> discretionary, discretion, discrimination')
sandia-omega-h.x86_64: E: spelling-error ('adaptativity', '%description -l en_US adaptativity -> adaptability, captivity')
sandia-omega-h.x86_64: E: spelling-error ('adaptivity', '%description -l en_US adaptivity -> captivity')
sandia-omega-h.x86_64: E: spelling-error ('discretization', '%description -l en_US discretization -> discretionary, discretion, discrimination')
sandia-omega-h-mpich.x86_64: E: spelling-error ('adaptativity', '%description -l en_US adaptativity -> adaptability, captivity')
sandia-omega-h-mpich.x86_64: E: spelling-error ('adaptivity', '%description -l en_US adaptivity -> captivity')
sandia-omega-h-mpich.x86_64: E: spelling-error ('discretization', '%description -l en_US discretization -> discretionary, discretion, discrimination')
sandia-omega-h-openmpi-devel.x86_64: W: only-non-binary-in-usr-lib
sandia-omega-h-mpich-devel.x86_64: W: only-non-binary-in-usr-lib
sandia-omega-h.x86_64: W: no-manual-page-for-binary ascii_vtk2osh
sandia-omega-h.x86_64: W: no-manual-page-for-binary msh2osh
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh2vtk
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_adapt
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_box
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_calc
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_eval_implied
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_filesystem
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_fix
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_part
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_reorder
sandia-omega-h.x86_64: W: no-manual-page-for-binary osh_scale
sandia-omega-h.x86_64: W: no-manual-page-for-binary oshdiff
sandia-omega-h.x86_64: W: no-manual-page-for-binary vtkdiff
sandia-omega-h-openmpi-devel.x86_64: W: no-documentation
sandia-omega-h-mpich-devel.x86_64: W: no-documentation
sandia-omega-h-devel.x86_64: W: no-documentation
 10 packages and 0 specfiles checked; 9 errors, 19 warnings, 228 filtered, 9 badness; has taken 10.3 s 



Source checksums
----------------
https://github.com/sandialabs/omega_h/archive/v9.34.13/omega_h-9.34.13.tar.gz :
  CHECKSUM(SHA256) this package     : 2eadfd6d634abc0b50396a82fd446f8f0b586ba6e64788c47827162c2aadec02
  CHECKSUM(SHA256) upstream package : 2eadfd6d634abc0b50396a82fd446f8f0b586ba6e64788c47827162c2aadec02


Requires
--------
sandia-omega-h (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libomega_h.so.9()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.15)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libz.so.1()(64bit)
    libz.so.1(ZLIB_1.2.0)(64bit)
    rtld(GNU_HASH)

sandia-omega-h-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(x86-64)
    sandia-omega-h(x86-64)

sandia-omega-h-mpich (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libmpi.so.12()(64bit)(mpich-x86_64)
    libomega_h.so.9()(64bit)(mpich-x86_64)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.15)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libz.so.1()(64bit)
    libz.so.1(ZLIB_1.2.0)(64bit)
    mpich
    rtld(GNU_HASH)

sandia-omega-h-mpich-devel (rpmlib, GLIBC filtered):
    sandia-omega-h-mpich(x86-64)

sandia-omega-h-openmpi (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libm.so.6()(64bit)
    libmpi.so.40()(64bit)(openmpi-x86_64)
    libomega_h.so.9()(64bit)(openmpi-x86_64)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.15)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libz.so.1()(64bit)
    libz.so.1(ZLIB_1.2.0)(64bit)
    openmpi
    rtld(GNU_HASH)

sandia-omega-h-openmpi-devel (rpmlib, GLIBC filtered):
    sandia-omega-h-openmpi(x86-64)

sandia-omega-h-debuginfo (rpmlib, GLIBC filtered):

sandia-omega-h-debugsource (rpmlib, GLIBC filtered):



Provides
--------
sandia-omega-h:
    libomega_h.so.9()(64bit)
    sandia-omega-h
    sandia-omega-h(x86-64)

sandia-omega-h-devel:
    cmake(Omega_h)
    cmake(omega_h)
    sandia-omega-h-devel
    sandia-omega-h-devel(x86-64)

sandia-omega-h-mpich:
    libomega_h.so.9()(64bit)(mpich-x86_64)
    sandia-omega-h-mpich
    sandia-omega-h-mpich(x86-64)

sandia-omega-h-mpich-devel:
    sandia-omega-h-mpich-devel
    sandia-omega-h-mpich-devel(x86-64)

sandia-omega-h-openmpi:
    libomega_h.so.9()(64bit)(openmpi-x86_64)
    sandia-omega-h-openmpi
    sandia-omega-h-openmpi(x86-64)

sandia-omega-h-openmpi-devel:
    sandia-omega-h-openmpi-devel
    sandia-omega-h-openmpi-devel(x86-64)

sandia-omega-h-debuginfo:
    debuginfo(build-id)
    sandia-omega-h-debuginfo
    sandia-omega-h-debuginfo(x86-64)

sandia-omega-h-debugsource:
    sandia-omega-h-debugsource
    sandia-omega-h-debugsource(x86-64)



Diff spec file in url and in SRPM
---------------------------------
--- /home/asinha/dump/fedora-reviews/2252229-sandia-omega-h/srpm/sandia-omega-h.spec	2024-03-09 14:51:30.715420879 +0000
+++ /home/asinha/dump/fedora-reviews/2252229-sandia-omega-h/srpm-unpacked/sandia-omega-h.spec	2024-03-08 00:00:00.000000000 +0000
@@ -1,2 +1,12 @@
+## START: Set by rpmautospec
+## (rpmautospec version 0.6.1)
+## RPMAUTOSPEC: autorelease, autochangelog
+%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
+    release_number = 1;
+    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
+    print(release_number + base_release_number - 1);
+}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
+## END: Set by rpmautospec
+
 %global forgeurl https://github.com/sandialabs/omega_h
 
@@ -440,3 +450,39 @@
 
 %changelog
-%autochangelog
+## START: Generated by rpmautospec
+* Fri Mar 08 2024 Sandro <devel> - 9.34.13-1
+- Package version 9.34.13
+
+* Tue Dec 12 2023 Sandro <devel> - 10.1.0-11
+- Fix summary of various sub packages
+
+* Tue Dec 12 2023 Sandro <devel> - 10.1.0-10
+- Disable examples
+
+* Tue Dec 12 2023 Sandro <devel> - 10.1.0-9
+- Add conditional for Omega_h_THROW bool
+
+* Thu Nov 30 2023 Sandro <devel> - 10.1.0-8
+- Add examples as additional doc package
+
+* Wed Nov 29 2023 Sandro <devel> - 10.1.0-7
+- Add build option for OpenMP
+
+* Wed Nov 29 2023 Sandro <devel> - 10.1.0-6
+- Enable and run tests
+
+* Wed Nov 29 2023 Sandro <devel> - 10.1.0-5
+- Fix MPI libs installed into wrong directory
+
+* Wed Nov 29 2023 Sandro <devel> - 10.1.0-4
+- Add corresponding suffix to MPI binaries
+
+* Tue Nov 28 2023 Sandro <devel> - 10.1.0-3
+- Add OpenMPI build
+
+* Tue Nov 28 2023 Sandro <devel> - 10.1.0-2
+- Add MPICH build
+
+* Mon Nov 27 2023 Sandro <devel> - 10.1.0-1
+- Initial package
+## END: Generated by rpmautospec


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

Comment 17 Sandro 2024-03-10 15:46:09 UTC
(In reply to Ankur Sinha (FranciscoD) from comment #16)
> Issues:
> =======
> 
> - I don't think %ldconfig_scriptlets is required any more. The guidelines
> now say: "It is not necessary to call ldconfig when installing shared
> libraries."
> https://docs.fedoraproject.org/en-US/packaging-guidelines/#_shared_libraries

I dropped it. I can't remember where I picked that up.
 
> - Licenses may need a look

I ran scancode on the src/ and tpl/ dirs and updated the Licens field accordingly.
 
> - may need to look at whether it bundles Random123/pss (and other things?)

Good catch. Random123 was bundled. I'm now using the system Random123. In pss/ there's only two header files, both with an acceptable license. Apparently pss is an acronym for parallel stable sort. I couldn't find a suitable package in the repos.

I think it's okay leaving it in. Not sure if I need to add a provides bundled.

> - the -{openmpi,mpich}-devel sub packages should probably also Require:
> {openmpich/mpich}-devel I think, since they'll be required for development?

Why? I haven't seen that done in any of the MPI packages I've touched so far.
 
> - any reason we're not building the tests for the standard build? (but there
> are still some default tests that are run in %check)

No reason. Just an oversight. It's enabled now for all builds.
 
> - we could generate man pages for the binaries

I included generated man pages now for the binaries of the standard package where it makes (kind of) sense. Unfortunately, most of the binaries do not implement `--help` throwing errors regarding missing or unknown arguments. Some even dump core.

I'm not sure it makes sense at all. But I left it in for now so you can see for yourself.

Spec URL: https://gui1ty.fedorapeople.org/review/sandia-omega-h.spec
SRPM URL: https://gui1ty.fedorapeople.org/review/sandia-omega-h-9.34.13-2.fc41.src.rpm

Comment 18 Fedora Review Service 2024-03-10 17:07:59 UTC
Created attachment 2020991 [details]
The .spec file difference from Copr build 6743703 to 7131945

Comment 19 Fedora Review Service 2024-03-10 17:08:02 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7131945
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2252229-sandia-omega-h/fedora-rawhide-x86_64/07131945-sandia-omega-h/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 20 Ankur Sinha (FranciscoD) 2024-03-12 12:37:06 UTC
I think this looks good now XXX APPROVED XXX

A few things to tweak before import:

- please version the shared objects in the %files sections: we avoid using wildcards there so that any version bumps in shared objects get caught in builds

https://docs.fedoraproject.org/en-US/packaging-guidelines/#_listing_shared_library_files

(In reply to Sandro from comment #17)
> (In reply to Ankur Sinha (FranciscoD) from comment #16)
 <snip>
> > - may need to look at whether it bundles Random123/pss (and other things?)
> 
> Good catch. Random123 was bundled. I'm now using the system Random123. In
> pss/ there's only two header files, both with an acceptable license.
> Apparently pss is an acronym for parallel stable sort. I couldn't find a
> suitable package in the repos.
> 
> I think it's okay leaving it in. Not sure if I need to add a provides
> bundled.

Yeh, I think that's fine too.

> 
> > - the -{openmpi,mpich}-devel sub packages should probably also Require:
> > {openmpich/mpich}-devel I think, since they'll be required for development?
> 
> Why? I haven't seen that done in any of the MPI packages I've touched so far.

Hrm, we probably should update our other packages too. If someone is developing against the library's mpi variant, they'll also need to link against the mpi libraries and all that too, so they'd need to mpi-devel packages that provide the unversioned-shared objects.

> I included generated man pages now for the binaries of the standard package
> where it makes (kind of) sense. Unfortunately, most of the binaries do not
> implement `--help` throwing errors regarding missing or unknown arguments.
> Some even dump core.
> 
> I'm not sure it makes sense at all. But I left it in for now so you can see
> for yourself.

Ugh, that's unfortunate. If they error and don't produce usable man pages it's better to skip them.

Comment 21 Sandro 2024-03-12 13:45:40 UTC
Thanks for the review!

I implemented the final changes:

- Use full name including version for libraries in %files
- Add Requires for {mpich,openmpi}-devel to the respective subpackages

I will leave the man pages in. They at least give an indication of available options. I already filtered out some troublesome man pages.

Comment 22 Fedora Admin user for bugzilla script actions 2024-03-12 13:46:49 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/sandia-omega-h

Comment 23 Fedora Update System 2024-03-13 13:50:13 UTC
FEDORA-2024-03cedb84cd (sandia-omega-h-9.34.13-5.fc41) has been submitted as an update to Fedora 41.
https://bodhi.fedoraproject.org/updates/FEDORA-2024-03cedb84cd

Comment 24 Fedora Update System 2024-03-13 13:53:17 UTC
FEDORA-2024-03cedb84cd (sandia-omega-h-9.34.13-5.fc41) has been pushed to the Fedora 41 stable repository.
If problem still persists, 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.