Bug 1816301 - Review Request: openfoam - computational fluid dynamics
Summary: Review Request: openfoam - computational fluid dynamics
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL: http://www.openfoam.com
Whiteboard:
Depends On:
Blocks: FE-NEEDSPONSOR
TreeView+ depends on / blocked
 
Reported: 2020-03-23 18:45 UTC by mark.olesen
Modified: 2025-05-03 09:50 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)
The .spec file difference from Copr build 5572620 to 5590469 (661 bytes, patch)
2023-03-03 23:20 UTC, Jakub Kadlčík
no flags Details | Diff
rpm lint output (803.79 KB, text/plain)
2024-04-28 14:45 UTC, Benson Muite
no flags Details
license check (2.54 MB, text/plain)
2024-04-28 14:46 UTC, Benson Muite
no flags Details

Description mark.olesen 2020-03-23 18:45:27 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/openfoam/openfoam/epel-7-x86_64/01304439-openfoam1912/openfoam1912.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/openfoam/openfoam/epel-7-x86_64/01304439-openfoam1912/openfoam1912-1912-200312.el7.src.rpm
Description: herOpenFOAM has an extensive range of features to solve complex fluid flows involving chemical reactions, turbulence and heat
transfer, solid dynamics and electromagnetics
Fedora Account System Username: openfoam


My first Fedora package, seeking sponsor.

Comment 1 mark.olesen 2020-03-23 18:48:57 UTC
FE-NEEDSPONSOR

Comment 2 Ankur Sinha (FranciscoD) 2020-03-23 19:16:30 UTC
Hi Mark,

I'll help review this, and I can sponsor you when it's ready too.

Cheers,
Ankur

Comment 3 david08741 2020-03-23 19:26:08 UTC
Not a full review, but some comments:

Group: is deprecated, please remove

License should be: GPLv3+
https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#SoftwareLicenses

Name should probably not include the version:
Name:           openfoam

I am not sure whether this is a MUST, but the release should start at 1 and be bumped whenever you change the spec, without a new release:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_simple_versioning

%defattr(-,root,root,-) isn't needed, please remove
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_permissions

I don't think prefix should be set; it is certainly not allowed to use /opt

Buildroot should not be set:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections

'%package -n     %{name}-examples' -> '%package examples'

Comment 4 Benson Muite 2020-03-24 05:14:06 UTC
Can you check it builds on more than x86, in particular ARM-hfp and AArch64, see https://fedoraproject.org/wiki/Architectures

Comment 5 mark.olesen 2020-03-24 08:23:00 UTC
The upstream package is built regularly on ARM64 (with Clang, alternatively with Gcc) - we keep regular contact with ARM people as well.
Haven't had access to build with ARM-v7 recently, but it posed no issues a few years back. However, this architecture is not of particular interest any more (performance).

Comment 6 Benson Muite 2020-03-24 09:03:55 UTC
It should probably build in Copr with current SPEC file if more architecture boxes are checked. Aim is that most users should be able to run the software - portable optimized performance from the RPM is challenging.

Comment 7 mark.olesen 2020-03-24 12:13:26 UTC
(In reply to david08741 from comment #3)

Nice to get the reviews - it shows that people care!

> Not a full review, but some comments:
> 
> Group: is deprecated, please remove

OK for RedHat, probably leave for SuSE.

> License should be: GPLv3+
> https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#SoftwareLicenses

Interesting, any idea why are they not using or accepting https://spdx.org/licenses/?
Thought this would be "standard".

> Name should probably not include the version:
> Name:           openfoam
> 
> I am not sure whether this is a MUST, but the release should start at 1 and
> be bumped whenever you change the spec, without a new release:

These are both open to discussion and suggestion about how best to solve.
OpenFOAM releases on a 6-month cycle in Jun and Dec, with version (API) denoted as YYMM (eg, 1906, 1912).

Since the API and the internal models most certainly change between these releases, it is fairly standard practice to have multiple versions installed or installable on the system. There are various reasons that this is desirable:

- allows testing, porting of user models to the updated framework
- allows back-to-back comparison of simulation results, validation cases etc.
- avoids automatic upgrades of major versions. For some industries it is normal to continue with a particular major version for the development lifetime of a product (eg, a vehicle).

The best way that I came up with was to have numbered packages (eg, openfoam1912, openfoam1906, etc) and use a top-level "openfoam" meta-package to define what is the most current release. I guess it could be comparable to having Qt4, Qt5, kde4, kde5, etc, except that the release numbers update every 6 months.

On copr, I'm just now experimenting with using the bugfix (patch) value for the version. The patch value follows a YYMMDD value. This means that the current spec would then have

Name: openfoam1912
Version: 200316    # <- 2020-03-16

The release could than have the usual increment I guess?

> %defattr(-,root,root,-) isn't needed, please remove
OK

> I don't think prefix should be set; it is certainly not allowed to use /opt

This was also something that was discussed off-line (Fedora and Debian).
Need to have isolated, version-specific directories, but using an "alternatives" framework does not appear to be a good fit.
We have approximately 300 executables and 160 libraries to deal with. I can't imagine fitting them all into alternatives. Besides which, the choice of which OpenFOAM version to use should be a user choice, not a systems choice.

Did look at trying to drop everything into /usr/lib/, or even install as multi-arch, but without proper guidance decided on /opt for the moment.

I am most certainly open to suggestions.

> Buildroot should not be set:
> https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections

OK, might have been working from some older docs.

> '%package -n     %{name}-examples' -> '%package examples'

Nice, much cleaner.

Comment 8 Ankur Sinha (FranciscoD) 2020-04-10 08:39:53 UTC
(In reply to mark.olesen from comment #7)
> (In reply to david08741 from comment #3)
> 
> Nice to get the reviews - it shows that people care!
> 
> > Not a full review, but some comments:
> > 
> > Group: is deprecated, please remove
> 
> OK for RedHat, probably leave for SuSE.

If you intend to use the same spec, you'll have to resort to using conditionals:
http://ftp.rpm.org/max-rpm/s1-rpm-specref-conditionals.html

The Fedora conditionals are listed here:
https://docs.fedoraproject.org/en-US/packaging-guidelines/DistTag/#_conditionals

I do not know what the conditionals for SuSE are, so you'll have to refer to their documentation. 

> 
> > License should be: GPLv3+
> > https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#SoftwareLicenses
> 
> Interesting, any idea why are they not using or accepting
> https://spdx.org/licenses/?
> Thought this would be "standard".

The Red Hat/Fedora legal team oversees the licensing, so we stick to what they suggest :)

> 
> > Name should probably not include the version:
> > Name:           openfoam
> > 
> > I am not sure whether this is a MUST, but the release should start at 1 and
> > be bumped whenever you change the spec, without a new release:
> 
> These are both open to discussion and suggestion about how best to solve.
> OpenFOAM releases on a 6-month cycle in Jun and Dec, with version (API)
> denoted as YYMM (eg, 1906, 1912).
> 
> Since the API and the internal models most certainly change between these
> releases, it is fairly standard practice to have multiple versions installed
> or installable on the system. There are various reasons that this is
> desirable:
> 
> - allows testing, porting of user models to the updated framework
> - allows back-to-back comparison of simulation results, validation cases etc.
> - avoids automatic upgrades of major versions. For some industries it is
> normal to continue with a particular major version for the development
> lifetime of a product (eg, a vehicle).
> 
> The best way that I came up with was to have numbered packages (eg,
> openfoam1912, openfoam1906, etc) and use a top-level "openfoam" meta-package
> to define what is the most current release. I guess it could be comparable
> to having Qt4, Qt5, kde4, kde5, etc, except that the release numbers update
> every 6 months.
> 
> On copr, I'm just now experimenting with using the bugfix (patch) value for
> the version. The patch value follows a YYMMDD value. This means that the
> current spec would then have
> 
> Name: openfoam1912
> Version: 200316    # <- 2020-03-16
> 
> The release could than have the usual increment I guess?

This is OK. No problem here as long as the various openfoam packages don't conflict with each other.

> 
> > %defattr(-,root,root,-) isn't needed, please remove
> OK
> 
> > I don't think prefix should be set; it is certainly not allowed to use /opt
> 
> This was also something that was discussed off-line (Fedora and Debian).
> Need to have isolated, version-specific directories, but using an
> "alternatives" framework does not appear to be a good fit.
> We have approximately 300 executables and 160 libraries to deal with. I
> can't imagine fitting them all into alternatives. Besides which, the choice
> of which OpenFOAM version to use should be a user choice, not a systems
> choice.
> 
> Did look at trying to drop everything into /usr/lib/, or even install as
> multi-arch, but without proper guidance decided on /opt for the moment.
> 
> I am most certainly open to suggestions.

As noted, /opt certainly cannot be used. The best solution here depends on the software. If it's only the binaries we need to worry about, they can simply be suffixed with the version. This also clearly tells the user what version they are using. This is how mpi variants for packages are built, for example. Libraries are much trickier, especially if they use the same names between variants. Are the soname versions different at least? Otherwise even using /opt will only work if the LD_LIBRARY_PATH is updated each time to give the correct version preference, right?

> 
> > Buildroot should not be set:
> > https://docs.fedoraproject.org/en-US/packaging-guidelines/#_tags_and_sections
> 
> OK, might have been working from some older docs.
> 
> > '%package -n     %{name}-examples' -> '%package examples'
> 
> Nice, much cleaner.

Comment 9 Ankur Sinha (FranciscoD) 2020-04-10 08:46:33 UTC
The most convenient + cleanest way to enable multiple versions to be installed on a system in parallel would probably be environment modules:
https://docs.fedoraproject.org/en-US/packaging-guidelines/EnvironmentModules/

That's how we include MPI based builds for tools. Would you take a look and see what you think?

This is a fairly standard MPI build where an environment module is defined for nest-mpich and nest-openmpi. (Here, they're all built in the same spec file since they're part of the same package)
https://src.fedoraproject.org/rpms/nest/blob/master/f/nest.spec

Comment 10 david08741 2020-04-10 10:32:14 UTC
I agree, modules is probably the best way.
That way back-to-back comparisons can use the same script, just different module load before.

There is a documentation for MPI, which includes how to setup module files:
https://fedoraproject.org/wiki/Packaging:MPI

Some parts might be useful

Comment 11 mark.olesen 2020-04-16 16:38:02 UTC
Currently rebuilding with the various suggested changes, with /usr/lib/openfoam for the common root (instead of /opt).

I would still ideally like to have some more granularity in subpackages, similar to my current section of .deb files.
However, I'm not sure if the interdependencies can be properly described in a single .spec file.

The subpackages
- myPackage-develop : source code headers and project-specific build scripts.
- myPackage-tools : binaries for project-specific build tools.
- myPackage-common : version information and share files
- myPackage-examples : tutorials

The dependencies:

myPackage
- Requires: myPackage-common
- Suggests: myPackage-examples

myPackage-develop
- Requires: myPackage
- Requires: myPackage-tools

myPackage-common
- Requires: n/a

myPackage-examples
- Requires: n/a


Is it possible to describe these interdependencies in a spec format?

/mark

Comment 12 david08741 2020-04-16 16:58:10 UTC
(In reply to mark.olesen from comment #11)
> Currently rebuilding with the various suggested changes, with
> /usr/lib/openfoam for the common root (instead of /opt).

I cannot find the relevent guidelines right now, but it would be better if you would put header files in /usr/include/openfoam<v>.
Also, you should probably use %{_libdir} rather then hard-coding /usr/lib/ so that /usr/lib64 is used on 64bit systems.
Another reason is https://docs.fedoraproject.org/en-US/packaging-guidelines/#_macros

> I would still ideally like to have some more granularity in subpackages,
> similar to my current section of .deb files.
> However, I'm not sure if the interdependencies can be properly described in
> a single .spec file.

This is no issue. See e.g. https://src.fedoraproject.org/rpms/nest/blob/master/f/nest.spec which does this.

> 
> The subpackages
> - myPackage-develop : source code headers and project-specific build scripts.

Probably should be called myPackage-devel

Comment 13 Ankur Sinha (FranciscoD) 2020-04-16 17:01:19 UTC
(In reply to david08741 from comment #12)
> (In reply to mark.olesen from comment #11)
> > Currently rebuilding with the various suggested changes, with
> > /usr/lib/openfoam for the common root (instead of /opt).
> 
> I cannot find the relevent guidelines right now, but it would be better if
> you would put header files in /usr/include/openfoam<v>.
> Also, you should probably use %{_libdir} rather then hard-coding /usr/lib/
> so that /usr/lib64 is used on 64bit systems.
> Another reason is
> https://docs.fedoraproject.org/en-US/packaging-guidelines/#_macros

This covers it:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_filesystem_layout

We adhere quite strictly to the Filesystem Hierarchy Standard. So %{_includedir} is /usr/include, and so on.

> 
> > I would still ideally like to have some more granularity in subpackages,
> > similar to my current section of .deb files.
> > However, I'm not sure if the interdependencies can be properly described in
> > a single .spec file.
> 
> This is no issue. See e.g.
> https://src.fedoraproject.org/rpms/nest/blob/master/f/nest.spec which does
> this.

+1 you can make lots of such dependencies in the spec without any trouble.

> 
> > 
> > The subpackages
> > - myPackage-develop : source code headers and project-specific build scripts.
> 
> Probably should be called myPackage-devel

+1

The relevant guideline is here:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages

Comment 14 mark.olesen 2020-04-16 17:29:29 UTC
The nest example is very nice. I've been struggling to find a definitive guide of what is actually allowed in a spec file. The rpm.org has things, but seems to be out of date.

Will get back when I have something to re-review.

/mark

Comment 15 mark.olesen 2020-04-27 21:54:15 UTC
A quick question for understanding packaging:

If I now package under /usr/lib/openfoam/PKG instead of tossing things into /opt/PKG, rpmlint complains if I do not include /usr/lib/openfoam in the %files list.

But if I package openfoamVER1 as /usr/lib/openfoam/openfoamVER1 and  openfoamVER2 as /usr/lib/openfoam/openfoamVER2, who is supposed to "own" the directory?
Both, neither?

In a non-RPM world I would think that the last one out should try to remove the directory if possible, but that sounds like a bad hack. Or does one simply state that /usr/lib/openfoam belongs to each package and just rely on the fact that a rmdir of a non-empty directory should fail?

Thanks,
/mark

Comment 16 david08741 2020-05-05 08:57:53 UTC
Why would put them in /usr/lib/openfoam, rather then in /usr/lib/?
That would be much nicer, imho, as if you only have one openfoam, it is not unnecessarily one level deeper.

Besides that, you MUST not install in /usr/lib. Header files need to go to %{_includedir}/openfoamVER, libs go to %{_libdir}/openfoamVER etc.
See [1] for the specific directories.

If you want to put them in openfoam/openfoamVER/ rather then directly openfoamVER, then there are two options, create a package openfoam-filesystyem that owns the shared openfoam/ directories.
The other one is co-owning, as you mentioned. See [2] for more on directory ownership.

[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/
[2] https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_and_directory_ownership

Comment 17 mark.olesen 2020-05-12 16:19:52 UTC
Sorry about taking longer to get back to you, caught up in other build issues.

(In reply to david08741 from comment #16)
> Why would put them in /usr/lib/openfoam, rather then in /usr/lib/?
> That would be much nicer, imho, as if you only have one openfoam, it is not
> unnecessarily one level deeper.

There are a few issues with putting everything into /usr/bin and /usr/lib directly.
We have a forest of around 160 libraries and another 300 binaries that most people don't appreciate having dumped into regular locations
(cf, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918112)

Another vital thing is that we want to support installation of different versions at the same time. This is fairly common in an engineering environment. Someone might need to use openfoam1812 until their current vehicle goes into production, but use openfoam1912 for newer projects. Or just as importantly, might wish to verify how some particular result may be change between versions.

> Besides that, you MUST not install in /usr/lib. Header files need to go to
> %{_includedir}/openfoamVER, libs go to %{_libdir}/openfoamVER etc.
> See [1] for the specific directories.

This doesn't work very well at all with OpenFOAM. For good or bad, we have a large number of headers and templated code spread across many directories. The homegrown wmake (wrapped make) system creates a web of symlinks for the headers, templates. If we start relocating these out of the source context, we need to rewrite a substantial amount of the wmake system to accommodate this and introduce loads of problems.

> If you want to put them in openfoam/openfoamVER/ rather then directly
> openfoamVER, then there are two options, create a package
> openfoam-filesystyem that owns the shared openfoam/ directories.
> The other one is co-owning, as you mentioned. See [2] for more on directory
> ownership.

An openfoam-filesystem owner package sounds OK. But would prefer to get most of the current package on its way first. Otherwise I fear that we will near leave the starting blocks.

/mark

Comment 19 Dave Love 2020-09-09 13:20:29 UTC
I'll comment as I'd previously packaged openfoam and started on making it comply with Fedora-isms.

The approach of putting it in its own tree (under %_libdir) is appropriate, and it isn't a special case in that respect, but I can't see where it actually goes now -- %prefix doesn't seem to be defined.  I would expect the source under /usr/src, but I don't know if there's policy on that.

However, the packaging isn't at all right yet.  I haven't checked in detail, but I noticed: Fedora doesn't allow conditionals for other distributions (which I think is unfortunate), you need serial and openblas and mpich packages (unless mpich won't work for some reason), I don't understand the bit about CGAL missing in f32.

Comment 20 mark.olesen 2020-09-09 14:22:13 UTC
Hi Dave,

(In reply to Dave Love from comment #19)
> I'll comment as I'd previously packaged openfoam and started on making it
> comply with Fedora-isms.
> 
> The approach of putting it in its own tree (under %_libdir) is appropriate,
> and it isn't a special case in that respect, but I can't see where it
> actually goes now -- %prefix doesn't seem to be defined.

An earlier comment stated that %prefix should not be defined (some policy).
I had originally tried to make them relocatable, but that runs counter to what we now have.

> I would expect the
> source under /usr/src, but I don't know if there's policy on that.

Generally true, but the structure of OpenFOAM expects its source under the project-directory.
If we put it elsewhere, we would need to patch OpenFOAM like mad and do lots of tests to see that we haven't broken anything.
For what it's worth, I've at least split off into proper sub-packages to avoid installing sources unless a '-devel' package is selected.

> However, the packaging isn't at all right yet.  I haven't checked in detail,
> but I noticed: Fedora doesn't allow conditionals for other distributions
> (which I think is unfortunate),

Some sed'ing will work there, but it does seem a bit unfortunate.

> you need serial and openblas and mpich
> packages (unless mpich won't work for some reason),

Doing a proper multibuild (serial and various MPI flavours) is still work-in-progress. I have a proof of concept for adding in additional MPI layers

https://build.opensuse.org/package/show/home:openfoam/openfoam2006mpi

but still haven't worked out a good way to manage the resulting configurations.
If we actually need to get multi-build working for this to be a Fedora package, I fear that we will never get finished.

/mark

Comment 21 Package Review 2021-09-10 00:45:21 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time, but it seems
that the review is still being working out by you. If this is right, please
respond to this comment clearing the NEEDINFO flag and try to reach out the
submitter to proceed with the review.

If you're not interested in reviewing this ticket anymore, please clear the
fedora-review flag and reset the assignee, so that a new reviewer can take
this ticket.

Without any reply, this request will shortly be resetted.

Comment 22 mark.olesen 2021-09-10 07:22:49 UTC
Was prompted by the automatic review. I am still interested in submitting the package. In the meantime the spec file has been massively reworked to have a constant name, include all meta-packages, slots in properly with the newer Fedora mpi-lib structure etc.

/mark

Comment 23 Ankur Sinha (FranciscoD) 2021-09-10 07:52:40 UTC
That sounds good, Mark. Please submit the update spec/srpm whenever you are ready and we can continue the review.

Comment 24 Package Review 2022-09-11 00:45:22 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time, but it seems
that the review is still being working out by you. If this is right, please
respond to this comment clearing the NEEDINFO flag and try to reach out the
submitter to proceed with the review.

If you're not interested in reviewing this ticket anymore, please clear the
fedora-review flag and reset the assignee, so that a new reviewer can take
this ticket.

Without any reply, this request will shortly be resetted.

Comment 26 Ankur Sinha (FranciscoD) 2023-01-09 13:47:36 UTC
Thanks, I'll do a round of review this week.

Comment 27 Ankur Sinha (FranciscoD) 2023-02-27 10:53:11 UTC
Hi Mark,

The build fails for rawhide related to a GCC change from the looks of it:

```
primitives/strings/word/word.C:180:32: error: 'uintptr_t' was not declared in this scope
  180 |     buf << "0x" << std::hex << uintptr_t(ptr);
      |                                ^~~~~~~~~
primitives/strings/word/word.C:33:1: note: 'uintptr_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
   32 | #include <sstream>
  +++ |+#include <cstdint>
   33 | 
make: *** [/builddir/build/BUILD/OpenFOAM-v2006/wmake/rules/General/transform:35: /builddir/build/BUILD/OpenFOAM-v2006/build/linux64GccDPInt32Opt/src/OpenFOAM/primitives/strings/word/word.o] Error 1
make: *** Waiting for unfinished jobs....
Done logging to 'log.build'
+ :
+ '[' -f log.build ']'
++ cat log.build
++ sed -ne 's/.*bin *= *\([0-9][0-9]*\).*/\1/p;'
++ sed -ne '$p'
+ bins=
++ cat log.build
++ sed -ne 's/.*lib *= *\([0-9][0-9]*\).*/\1/p;'
++ sed -ne '$p'
+ libs=
+ '[' 0 = 0 ']'

```

Should be an easy fix (but there may be more places where these tiny tweaks are required):

https://gcc.gnu.org/gcc-13/porting_to.html

I'll do another round of review once it builds.

Cheers,
Ankur

Comment 28 mark.olesen 2023-02-27 13:11:16 UTC
Thanks for the heads-up on this. I've opened a corresponding issue (https://develop.openfoam.com/Development/openfoam/-/issues/2714) for more follow ups.

Do you need a newer spec file? I see from the log that you are building v2006 - the last release was v2212 (Dec 2022).
[Hard to believe that it's been that long already]

Comment 29 Ankur Sinha (FranciscoD) 2023-02-27 13:33:13 UTC
Ah, could you put a link to the updated spec/srpm please? I use `fedora-review` for the first round, and it picks the spec/srpm from the latest comment in the bug here.

Comment 31 Jakub Kadlčík 2023-02-27 14:11:40 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5572620
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-1816301-openfoam/fedora-rawhide-x86_64/05572620-openfoam2212/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 33 Jakub Kadlčík 2023-03-03 23:20:55 UTC
Created attachment 1947793 [details]
The .spec file difference from Copr build 5572620 to 5590469

Comment 34 Jakub Kadlčík 2023-03-03 23:20:58 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/5590469
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-1816301-openfoam/fedora-rawhide-x86_64/05590469-openfoam2212/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 35 Package Review 2024-03-03 00:45:26 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time, but it seems
that the review is still being working out by you. If this is right, please
respond to this comment clearing the NEEDINFO flag and try to reach out the
submitter to proceed with the review.

If you're not interested in reviewing this ticket anymore, please clear the
fedora-review flag and reset the assignee, so that a new reviewer can take
this ticket.

Without any reply, this request will shortly be resetted.

Comment 36 Ankur Sinha (FranciscoD) 2024-03-17 21:54:26 UTC
Mark, I'm a bit busy at the moment and going away on leave too, so I won't be able to look at this for at least two months. So, I'm going to unassign this so that others may take it on. I'll check back when I have time and if it hasn't moved by then, I'll take it up again and continue. Sorry for that all the wait.

Cheers,
Ankur

Comment 37 Benson Muite 2024-03-18 07:32:46 UTC
Cannot sponsor, but happy to review.

Comment 38 Benson Muite 2024-03-25 13:04:17 UTC
Is it possible to update to latest release of OpenFOAM, 2312?

Comment 39 mark.olesen 2024-04-02 18:23:09 UTC
(In reply to Benson Muite from comment #38)
> Is it possible to update to latest release of OpenFOAM, 2312?

Not sure if these are good enough, or if we need something else. BTW: thanks for taking this up!

Spec URL: https://download.copr.fedorainfracloud.org/results/openfoam/openfoam/centos-stream-8-x86_64/06780146-openfoam2312/openfoam2312.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/openfoam/openfoam/centos-stream-8-x86_64/06780146-openfoam2312/openfoam2312-2312.1-231221.el8.src.rpm
Description: herOpenFOAM has an extensive range of features to solve complex fluid flows involving chemical reactions, turbulence and heat
transfer, solid dynamics and electromagnetics
Fedora Account System Username: openfoam

Comment 41 Benson Muite 2024-04-27 22:49:01 UTC
Initial comments:
a) License should use SPDX identifier, probably GPL-3.0-or-later is appropriate:
https://docs.fedoraproject.org/en-US/legal/spdx/
b) Download URL should follow format in:
https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#_sourceforge_net
Might consider using GitLab format and download from https://develop.openfoam.com rather than from SourceForge
https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#_git_tags

Comment 42 Benson Muite 2024-04-28 07:19:49 UTC
[fedora-review-service-build]

Comment 43 Benson Muite 2024-04-28 14:17:28 UTC
Package Review
==============

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


Issues:
=======
- Package does not contain duplicates in %files.
  Note: warning: File listed twice: /usr/lib/.build-
  id/9d/ec59265760f725a4bd76835838a211e1d424bf
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_duplicate_files
- If (and only if) the source package includes the text of the license(s)
  in its own file, then that file, containing the text of the license(s)
  for the package is included in %license.
  Note: License file COPYING is not marked as %license
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/LicensingGuidelines/#_license_text
- The License field must be a valid SPDX expression.
  Note: Not a valid SPDX expression 'GPLv3+'. 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
- Package is not relocatable.
  Note: Package has a "Prefix:" tag
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_relocatable_packages


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

C/C++:
[ ]: Provides: bundled(gnulib) in place as required.
     Note: Sources not installed
[ ]: Package does not contain kernel modules.
[ ]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[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]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.
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", "GNU General Public License, Version
     3", "*No copyright* GNU General Public License v3.0 or later", "GNU
     General Public License", "*No copyright* GNU General Public License,
     Version 3", "GNU General Public License v3.0 or later", "*No
     copyright* Creative Commons Attribution 3.0 and/or GNU General Public
     License, Version 3", "*No copyright* Public domain", "*No copyright*
     GNU General Public License", "Boost Software License 1.0 and/or GNU
     General Public License v3.0 or later", "*No copyright* Creative
     Commons Attribution 3.0", "GNU Lesser General Public License, Version
     2.1", "GNU Lesser General Public License v2.1 or later [obsolete FSF
     postal address (Temple Place)]", "GNU General Public License v3.0 or
     later and/or Public domain". 15374 files have unknown license.
     Detailed output of licensecheck in
     /home/fedora/temp/1816301-openfoam2312/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/openmpi, /usr/lib64/openmpi/lib
[ ]: Package must own all directories that it creates.
     Note: Directories without known owners:
     /usr/lib/openfoam/openfoam2312, /usr/lib/openfoam/openfoam2312/wmake,
     /usr/lib/openfoam
[ ]: %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.
[ ]: 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]: 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]: 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]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

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

Generic:
[!]: Sources can be downloaded from URI in Source: tag
     Note: Could not download Source0:
     https://sourceforge.net/projects/openfoam/files/v2312/OpenFOAM-v2312_240220.tgz
     See: https://docs.fedoraproject.org/en-US/packaging-
     guidelines/SourceURL/
[ ]: 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
     openfoam2312-common , openfoam2312-devel , openfoam2312-tools ,
     openfoam2312-tutorials , openfoam2312-default , openfoam , openfoam-
     devel , openfoam-default
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[ ]: Scriptlets must be sane, if used.
[ ]: 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.
[!]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define foam_api 2312, %define
     foam_patch 240220, %define full_version %{foam_api}.%{foam_patch},
     %define tar_filename OpenFOAM-v%{foam_api}_%{foam_patch}.tgz, %define
     tar_filename OpenFOAM-v%{foam_api}.tgz, %define mpi_vers 4, %define
     mpi_vers 2, %define mpi_vers 1, %define mpi_ext %{?mpi_vers}, %define
     hpc_mpi_package gnu-%{mpi_family}%{?mpi_vers}-hpc, %define
     projectTarDir OpenFOAM-v%{foam_api}, %define projectDir
     openfoam%{foam_api}, %define shell_session
     %{_bindir}/openfoam%{foam_api}, %define shell_session_generic
     %{_bindir}/openfoam, %define dirInstaller bin/tools/install-dirs,
     %define binInstaller bin/tools/install-platform, %define
     __debug_install_post %{nil}, %define mpi_prefix
     %{_libdir}/mpi/gcc/openmpi%{?mpi_ext}
[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]: SourceX is a working URL.

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

Generic:
[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: openfoam2312-2312.240220-240422.fc41.x86_64.rpm
          openfoam2312-common-2312.240220-240422.fc41.noarch.rpm
          openfoam2312-devel-2312.240220-240422.fc41.noarch.rpm
          openfoam2312-tools-2312.240220-240422.fc41.x86_64.rpm
          openfoam2312-doc-2312.240220-240422.fc41.noarch.rpm
          openfoam2312-tutorials-2312.240220-240422.fc41.noarch.rpm
          openfoam2312-default-2312.240220-240422.fc41.x86_64.rpm
          openfoam-2312.240220-240422.fc41.noarch.rpm
          openfoam-devel-2312.240220-240422.fc41.noarch.rpm
          openfoam-default-2312.240220-240422.fc41.x86_64.rpm
          openfoam2312-2312.240220-240422.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/tmp849ykoyp')]
checks: 32, packages: 11

Warnings and errors about duplicate files, missing sonames, position independent executables,
unused-direct-shlib-dependency, unstripped-binary-or-object

 10 packages and 0 specfiles checked; 53006 errors, 87507 warnings, 204 filtered, 53006 badness; has taken 579.2 s 



Unversioned so-files
--------------------
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/dummy/libMGridGen.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/dummy/libPstream.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/dummy/libkahipDecomp.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/dummy/libmetisDecomp.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/dummy/libptscotchDecomp.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/dummy/libscotchDecomp.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libButcherTable.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libDPMTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libDSMC.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libODE.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libPDFTransportModel.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libSLGThermo.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libSloanRenumber.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libVoFphaseCompressibleTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libVoFphaseTurbulentTransportModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libWallModelledLES.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libadjointOptimisation.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libalphaFieldFunctions.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libatmosphericModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libbarotropicCompressibilityModel.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libblockMesh.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libchemistryModel.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libcoalCombustion.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libcombustionModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libcompressibleMultiPhaseTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libcompressibleSystem.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libcompressibleTransportModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libcompressibleTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libcompressibleTwoPhaseMixtureTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libcompressibleTwoPhaseSystem.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libconversion.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libdecompose.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libdecompositionMethods.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libdistributed.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libdistributionModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libdriftFluxRelativeVelocityModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libdriftFluxTransportModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libdynamicFvMesh.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libdynamicMesh.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libengine.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liberrorEstimator.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libextrude2DMesh.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libextrudeModel.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfaAvalanche.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfaDecompose.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfaOptions.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfaReconstruct.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfieldFunctionObjects.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfieldMomentInversion.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfileFormats.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfiniteArea.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfluidThermophysicalModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libforces.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfvMotionSolvers.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfvOptionPhaseMeanVelocityForce.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libfvOptions.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libgenericPatchFields.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libgeometricVoF.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libhelpTypes.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libhermiteQuadrature.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libimmiscibleIncompressibleTwoPhaseMixture.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libincompressibleInterPhaseTransportModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libincompressibleMultiphaseSystems.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libincompressibleTransportModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libincompressibleTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libinitialisationFunctionObjects.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libinterfaceProperties.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libinterfaceTrackingFvMesh.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liblagrangian.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liblagrangianFunctionObjects.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liblagrangianIntermediate.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liblagrangianSpray.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liblagrangianTurbulence.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liblaminarFlameSpeedModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liblaserDTRM.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liblumpedPointMotion.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmeshLibrary.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmeshTools.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmixing.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmolecularMeasurements.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmolecule.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmomentAdvection.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmomentGenerationModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmomentInversion.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmomentSets.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmultiphaseInterFoam.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmultiphaseMixtureThermo.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libmultiphaseSystem.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/liboverset.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpairPatchAgglomeration.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpbeInterfacialModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpbePhaseModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpbeTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpdEulerianInterfacialModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpdPhaseSystem.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpdTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpdrFields.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libphaseChangeTwoPhaseMixtures.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libphaseCompressibleTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libphaseFunctionObjects.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libphaseTemperatureChangeTwoPhaseMixtures.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpopulationBalance.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpotential.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libpyrolysisModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libquadratureApproximation.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libquadratureNode.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libradiationModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/librandomProcesses.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/librandomProcessesFunctionObjects.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libreactingMultiphaseSystem.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libreactingTwoPhaseSystem.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libreactionThermophysicalModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libreconstruct.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libregionCoupling.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libregionFaModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libregionModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/librenumberMethods.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/librhoCentralFoam.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/librigidBodyDynamics.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/librigidBodyMeshMotion.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/librunTimePostProcessing.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsampling.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsaturationModel.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libscotchDecomp.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsixDoFRigidBodyMotion.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsixDoFRigidBodyState.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsnappyHexMesh.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsolidChemistryModel.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsolidParticle.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsolidSpecie.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsolidThermo.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsolverFunctionObjects.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libspecie.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsurfMesh.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsurfaceFeatureExtract.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsurfaceFilmDerivedFvPatchFields.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libsurfaceFilmModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libtabulatedWallFunctions.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libthermalBaffleModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libthermoTools.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libthermophysicalProperties.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libtopoChangerFvMesh.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libturbulenceModelSchemes.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libturbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libtwoPhaseMixture.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libtwoPhaseMixtureThermo.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libtwoPhaseProperties.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libtwoPhaseReactingTurbulenceModels.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libtwoPhaseSurfaceTension.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libutilityFunctionObjects.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libvandermonde.so
openfoam2312: /usr/lib/openfoam/openfoam2312/platforms/linux64GccDPInt32Opt/lib/libwaveModels.so
openfoam2312: /usr/lib64/openmpi/lib/openfoam2312/libPstream.so

Requires
--------
openfoam2312 (rpmlib, GLIBC filtered):
    /bin/sh
    environment(modules)
    libButcherTable.so()(64bit)
    libDPMTurbulenceModels.so()(64bit)
    libDSMC.so()(64bit)
    libODE.so()(64bit)
    libOpenFOAM.so()(64bit)
    libPDFTransportModel.so()(64bit)
    libPstream.so()(64bit)
    libSLGThermo.so()(64bit)
    libSloanRenumber.so()(64bit)
    libVoFphaseCompressibleTurbulenceModels.so()(64bit)
    libVoFphaseTurbulentTransportModels.so()(64bit)
    libadjointOptimisation.so()(64bit)
    libalphaFieldFunctions.so()(64bit)
    libatmosphericModels.so()(64bit)
    libbarotropicCompressibilityModel.so()(64bit)
    libblockMesh.so()(64bit)
    libboost_system.so.1.83.0()(64bit)
    libc.so.6()(64bit)
    libchemistryModel.so()(64bit)
    libcoalCombustion.so()(64bit)
    libcombustionModels.so()(64bit)
    libcompressibleMultiPhaseTurbulenceModels.so()(64bit)
    libcompressibleSystem.so()(64bit)
    libcompressibleTransportModels.so()(64bit)
    libcompressibleTurbulenceModels.so()(64bit)
    libcompressibleTwoPhaseMixtureTurbulenceModels.so()(64bit)
    libcompressibleTwoPhaseSystem.so()(64bit)
    libconversion.so()(64bit)
    libdecompose.so()(64bit)
    libdecompositionMethods.so()(64bit)
    libdistributed.so()(64bit)
    libdistributionModels.so()(64bit)
    libdriftFluxRelativeVelocityModels.so()(64bit)
    libdriftFluxTransportModels.so()(64bit)
    libdynamicFvMesh.so()(64bit)
    libdynamicMesh.so()(64bit)
    libengine.so()(64bit)
    liberrorEstimator.so()(64bit)
    libextrude2DMesh.so()(64bit)
    libextrudeModel.so()(64bit)
    libfaAvalanche.so()(64bit)
    libfaDecompose.so()(64bit)
    libfaOptions.so()(64bit)
    libfaReconstruct.so()(64bit)
    libfftw3.so.3()(64bit)
    libfieldFunctionObjects.so()(64bit)
    libfieldMomentInversion.so()(64bit)
    libfileFormats.so()(64bit)
    libfiniteArea.so()(64bit)
    libfiniteVolume.so()(64bit)
    libfluidThermophysicalModels.so()(64bit)
    libforces.so()(64bit)
    libfvMotionSolvers.so()(64bit)
    libfvOptionPhaseMeanVelocityForce.so()(64bit)
    libfvOptions.so()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_4.0.0)(64bit)
    libgenericPatchFields.so()(64bit)
    libgeometricVoF.so()(64bit)
    libgomp.so.1()(64bit)
    libgomp.so.1(GOMP_1.0)(64bit)
    libgomp.so.1(GOMP_2.0)(64bit)
    libgomp.so.1(GOMP_4.0)(64bit)
    libgomp.so.1(GOMP_4.5)(64bit)
    libgomp.so.1(OMP_1.0)(64bit)
    libhelpTypes.so()(64bit)
    libhermiteQuadrature.so()(64bit)
    libimmiscibleIncompressibleTwoPhaseMixture.so()(64bit)
    libincompressibleInterPhaseTransportModels.so()(64bit)
    libincompressibleMultiphaseSystems.so()(64bit)
    libincompressibleTransportModels.so()(64bit)
    libincompressibleTurbulenceModels.so()(64bit)
    libinterfaceProperties.so()(64bit)
    libkahipDecomp.so()(64bit)
    liblagrangian.so()(64bit)
    liblagrangianIntermediate.so()(64bit)
    liblagrangianSpray.so()(64bit)
    liblagrangianTurbulence.so()(64bit)
    liblaminarFlameSpeedModels.so()(64bit)
    liblaserDTRM.so()(64bit)
    liblumpedPointMotion.so()(64bit)
    libm.so.6()(64bit)
    libmeshLibrary.so()(64bit)
    libmeshTools.so()(64bit)
    libmetisDecomp.so()(64bit)
    libmixing.so()(64bit)
    libmolecularMeasurements.so()(64bit)
    libmolecule.so()(64bit)
    libmomentAdvection.so()(64bit)
    libmomentGenerationModels.so()(64bit)
    libmomentInversion.so()(64bit)
    libmomentSets.so()(64bit)
    libmpi.so.40()(64bit)(openmpi-x86_64)
    libmultiphaseInterFoam.so()(64bit)
    libmultiphaseMixtureThermo.so()(64bit)
    libmultiphaseSystem.so()(64bit)
    liboverset.so()(64bit)
    libpairPatchAgglomeration.so()(64bit)
    libpbeInterfacialModels.so()(64bit)
    libpbePhaseModels.so()(64bit)
    libpbeTurbulenceModels.so()(64bit)
    libpdEulerianInterfacialModels.so()(64bit)
    libpdPhaseSystem.so()(64bit)
    libpdTurbulenceModels.so()(64bit)
    libpdrFields.so()(64bit)
    libphaseChangeTwoPhaseMixtures.so()(64bit)
    libphaseCompressibleTurbulenceModels.so()(64bit)
    libphaseTemperatureChangeTwoPhaseMixtures.so()(64bit)
    libpopulationBalance.so()(64bit)
    libpotential.so()(64bit)
    libptscotchDecomp.so()(64bit)
    libpyrolysisModels.so()(64bit)
    libquadratureApproximation.so()(64bit)
    libquadratureNode.so()(64bit)
    libradiationModels.so()(64bit)
    librandomProcesses.so()(64bit)
    libreactingMultiphaseSystem.so()(64bit)
    libreactingTwoPhaseSystem.so()(64bit)
    libreactionThermophysicalModels.so()(64bit)
    libreadline.so.8()(64bit)
    libreconstruct.so()(64bit)
    libregionCoupling.so()(64bit)
    libregionFaModels.so()(64bit)
    libregionModels.so()(64bit)
    librenumberMethods.so()(64bit)
    librhoCentralFoam.so()(64bit)
    librigidBodyDynamics.so()(64bit)
    libsampling.so()(64bit)
    libsaturationModel.so()(64bit)
    libscotch.so.7.0.4()(64bit)
    libscotchDecomp.so()(64bit)
    libscotcherrexit.so()(64bit)
    libsixDoFRigidBodyMotion.so()(64bit)
    libsnappyHexMesh.so()(64bit)
    libsolidChemistryModel.so()(64bit)
    libsolidSpecie.so()(64bit)
    libsolidThermo.so()(64bit)
    libspecie.so()(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.6)(64bit)
    libstdc++.so.6(CXXABI_1.3.8)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    libsurfMesh.so()(64bit)
    libsurfaceFeatureExtract.so()(64bit)
    libsurfaceFilmDerivedFvPatchFields.so()(64bit)
    libsurfaceFilmModels.so()(64bit)
    libtabulatedWallFunctions.so()(64bit)
    libthermoTools.so()(64bit)
    libthermophysicalProperties.so()(64bit)
    libtopoChangerFvMesh.so()(64bit)
    libturbulenceModelSchemes.so()(64bit)
    libturbulenceModels.so()(64bit)
    libtwoPhaseMixture.so()(64bit)
    libtwoPhaseMixtureThermo.so()(64bit)
    libtwoPhaseProperties.so()(64bit)
    libtwoPhaseReactingTurbulenceModels.so()(64bit)
    libtwoPhaseSurfaceTension.so()(64bit)
    libvandermonde.so()(64bit)
    libwaveModels.so()(64bit)
    libz.so.1()(64bit)
    openfoam2312-common
    openmpi
    ptscotch-openmpi
    rtld(GNU_HASH)
    scotch

openfoam2312-common (rpmlib, GLIBC filtered):
    /bin/bash
    /bin/sh
    findutils
    gawk
    m4
    make

openfoam2312-devel (rpmlib, GLIBC filtered):
    /bin/bash
    /bin/sh
    openfoam2312
    openfoam2312-tools

openfoam2312-tools (rpmlib, GLIBC filtered):
    binutils
    gcc-c++
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libm.so.6()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    openfoam2312-common
    rtld(GNU_HASH)

openfoam2312-doc (rpmlib, GLIBC filtered):
    /bin/sh
    openfoam2312-common

openfoam2312-tutorials (rpmlib, GLIBC filtered):
    /bin/bash
    /bin/sh
    openfoam2312-common

openfoam2312-default (rpmlib, GLIBC filtered):
    openfoam2312-devel
    openfoam2312-doc
    openfoam2312-tutorials

openfoam (rpmlib, GLIBC filtered):
    /bin/sh
    com.openfoam
    openfoam2312

openfoam-devel (rpmlib, GLIBC filtered):
    com.openfoam-devel
    openfoam
    openfoam2312-devel

openfoam-default (rpmlib, GLIBC filtered):
    com.openfoam-default
    openfoam-devel
    openfoam2312-default



Provides
--------
openfoam2312:
    com.openfoam
    libButcherTable.so()(64bit)
    libDPMTurbulenceModels.so()(64bit)
    libDSMC.so()(64bit)
    libMGridGen.so()(64bit)
    libODE.so()(64bit)
    libOpenFOAM.so()(64bit)
    libPDFTransportModel.so()(64bit)
    libPstream.so()(64bit)
    libPstream.so()(64bit)(openmpi-x86_64)
    libSLGThermo.so()(64bit)
    libSloanRenumber.so()(64bit)
    libVoFphaseCompressibleTurbulenceModels.so()(64bit)
    libVoFphaseTurbulentTransportModels.so()(64bit)
    libWallModelledLES.so()(64bit)
    libadjointOptimisation.so()(64bit)
    libalphaFieldFunctions.so()(64bit)
    libatmosphericModels.so()(64bit)
    libbarotropicCompressibilityModel.so()(64bit)
    libblockMesh.so()(64bit)
    libchemistryModel.so()(64bit)
    libcoalCombustion.so()(64bit)
    libcombustionModels.so()(64bit)
    libcompressibleMultiPhaseTurbulenceModels.so()(64bit)
    libcompressibleSystem.so()(64bit)
    libcompressibleTransportModels.so()(64bit)
    libcompressibleTurbulenceModels.so()(64bit)
    libcompressibleTwoPhaseMixtureTurbulenceModels.so()(64bit)
    libcompressibleTwoPhaseSystem.so()(64bit)
    libconversion.so()(64bit)
    libdecompose.so()(64bit)
    libdecompositionMethods.so()(64bit)
    libdistributed.so()(64bit)
    libdistributionModels.so()(64bit)
    libdriftFluxRelativeVelocityModels.so()(64bit)
    libdriftFluxTransportModels.so()(64bit)
    libdynamicFvMesh.so()(64bit)
    libdynamicMesh.so()(64bit)
    libengine.so()(64bit)
    liberrorEstimator.so()(64bit)
    libextrude2DMesh.so()(64bit)
    libextrudeModel.so()(64bit)
    libfaAvalanche.so()(64bit)
    libfaDecompose.so()(64bit)
    libfaOptions.so()(64bit)
    libfaReconstruct.so()(64bit)
    libfieldFunctionObjects.so()(64bit)
    libfieldMomentInversion.so()(64bit)
    libfileFormats.so()(64bit)
    libfiniteArea.so()(64bit)
    libfiniteVolume.so()(64bit)
    libfluidThermophysicalModels.so()(64bit)
    libforces.so()(64bit)
    libfvMotionSolvers.so()(64bit)
    libfvOptionPhaseMeanVelocityForce.so()(64bit)
    libfvOptions.so()(64bit)
    libgenericPatchFields.so()(64bit)
    libgeometricVoF.so()(64bit)
    libhelpTypes.so()(64bit)
    libhermiteQuadrature.so()(64bit)
    libimmiscibleIncompressibleTwoPhaseMixture.so()(64bit)
    libincompressibleInterPhaseTransportModels.so()(64bit)
    libincompressibleMultiphaseSystems.so()(64bit)
    libincompressibleTransportModels.so()(64bit)
    libincompressibleTurbulenceModels.so()(64bit)
    libinitialisationFunctionObjects.so()(64bit)
    libinterfaceProperties.so()(64bit)
    libinterfaceTrackingFvMesh.so()(64bit)
    libkahipDecomp.so()(64bit)
    liblagrangian.so()(64bit)
    liblagrangianFunctionObjects.so()(64bit)
    liblagrangianIntermediate.so()(64bit)
    liblagrangianSpray.so()(64bit)
    liblagrangianTurbulence.so()(64bit)
    liblaminarFlameSpeedModels.so()(64bit)
    liblaserDTRM.so()(64bit)
    liblumpedPointMotion.so()(64bit)
    libmeshLibrary.so()(64bit)
    libmeshTools.so()(64bit)
    libmetisDecomp.so()(64bit)
    libmixing.so()(64bit)
    libmolecularMeasurements.so()(64bit)
    libmolecule.so()(64bit)
    libmomentAdvection.so()(64bit)
    libmomentGenerationModels.so()(64bit)
    libmomentInversion.so()(64bit)
    libmomentSets.so()(64bit)
    libmultiphaseInterFoam.so()(64bit)
    libmultiphaseMixtureThermo.so()(64bit)
    libmultiphaseSystem.so()(64bit)
    liboverset.so()(64bit)
    libpairPatchAgglomeration.so()(64bit)
    libpbeInterfacialModels.so()(64bit)
    libpbePhaseModels.so()(64bit)
    libpbeTurbulenceModels.so()(64bit)
    libpdEulerianInterfacialModels.so()(64bit)
    libpdPhaseSystem.so()(64bit)
    libpdTurbulenceModels.so()(64bit)
    libpdrFields.so()(64bit)
    libphaseChangeTwoPhaseMixtures.so()(64bit)
    libphaseCompressibleTurbulenceModels.so()(64bit)
    libphaseFunctionObjects.so()(64bit)
    libphaseTemperatureChangeTwoPhaseMixtures.so()(64bit)
    libpopulationBalance.so()(64bit)
    libpotential.so()(64bit)
    libptscotchDecomp.so()(64bit)
    libpyrolysisModels.so()(64bit)
    libquadratureApproximation.so()(64bit)
    libquadratureNode.so()(64bit)
    libradiationModels.so()(64bit)
    librandomProcesses.so()(64bit)
    librandomProcessesFunctionObjects.so()(64bit)
    libreactingMultiphaseSystem.so()(64bit)
    libreactingTwoPhaseSystem.so()(64bit)
    libreactionThermophysicalModels.so()(64bit)
    libreconstruct.so()(64bit)
    libregionCoupling.so()(64bit)
    libregionFaModels.so()(64bit)
    libregionModels.so()(64bit)
    librenumberMethods.so()(64bit)
    librhoCentralFoam.so()(64bit)
    librigidBodyDynamics.so()(64bit)
    librigidBodyMeshMotion.so()(64bit)
    librunTimePostProcessing.so()(64bit)
    libsampling.so()(64bit)
    libsaturationModel.so()(64bit)
    libscotchDecomp.so()(64bit)
    libsixDoFRigidBodyMotion.so()(64bit)
    libsixDoFRigidBodyState.so()(64bit)
    libsnappyHexMesh.so()(64bit)
    libsolidChemistryModel.so()(64bit)
    libsolidParticle.so()(64bit)
    libsolidSpecie.so()(64bit)
    libsolidThermo.so()(64bit)
    libsolverFunctionObjects.so()(64bit)
    libspecie.so()(64bit)
    libsurfMesh.so()(64bit)
    libsurfaceFeatureExtract.so()(64bit)
    libsurfaceFilmDerivedFvPatchFields.so()(64bit)
    libsurfaceFilmModels.so()(64bit)
    libtabulatedWallFunctions.so()(64bit)
    libthermalBaffleModels.so()(64bit)
    libthermoTools.so()(64bit)
    libthermophysicalProperties.so()(64bit)
    libtopoChangerFvMesh.so()(64bit)
    libturbulenceModelSchemes.so()(64bit)
    libturbulenceModels.so()(64bit)
    libtwoPhaseMixture.so()(64bit)
    libtwoPhaseMixtureThermo.so()(64bit)
    libtwoPhaseProperties.so()(64bit)
    libtwoPhaseReactingTurbulenceModels.so()(64bit)
    libtwoPhaseSurfaceTension.so()(64bit)
    libutilityFunctionObjects.so()(64bit)
    libvandermonde.so()(64bit)
    libwaveModels.so()(64bit)
    openfoam2312
    openfoam2312(x86-64)

openfoam2312-common:
    openfoam2312-common

openfoam2312-devel:
    com.openfoam-devel
    openfoam2312-devel

openfoam2312-tools:
    openfoam2312-tools
    openfoam2312-tools(x86-64)

openfoam2312-doc:
    com.openfoam-doc
    openfoam2312-doc

openfoam2312-tutorials:
    com.openfoam-tutorials
    openfoam2312-tutorials

openfoam2312-default:
    com.openfoam-default
    openfoam2312-default
    openfoam2312-default(x86-64)

openfoam:
    openfoam

openfoam-devel:
    openfoam-devel

openfoam-default:
    openfoam-default
    openfoam-default(x86-64)



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


Comments:
a) See rpmlint attachment.
b) Would expect most libraries to be put in /usr/lib64 rather than /usr/lib which is for 32 bit applications
c) The sub-packages
openfoam2312-default-2312.240220-240422.fc41.x86_64.rpm 
openfoam-devel-2312.240220-240422.fc41.noarch.rpm
openfoam-default-2312.240220-240422.fc41.x86_64.rpm
do not contain any files. Why are these needed?
d) The name of the package should just be openfoam not openfoam%{foam_api}. If multiple installations of
OpenFOAM are needed, each one would need to go through a review process.  Typically, the latest version of a 
package available when a Fedora release is made is included in that Fedora version.  Once a package has
been reviewed and included in Fedora, a separate review is not needed to upgrade the version.

Comment 44 Benson Muite 2024-04-28 14:43:32 UTC
Fedora does support modules if you wish to support multiple packages.  Once
the first package is reviewed, the rest should  be easier.

Comment 45 Benson Muite 2024-04-28 14:45:31 UTC
Created attachment 2029783 [details]
rpm lint output

Comment 46 Benson Muite 2024-04-28 14:46:16 UTC
Created attachment 2029784 [details]
license check

Comment 48 Benson Muite 2024-04-30 02:45:52 UTC
Thanks for the updates. 

a) In the spec file, can you change
Prefix:         /usr/lib/openfoam
to
Prefix:         %{_libdir}/openfoam

See
https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/

b) Please also change
Release:        240429%{?dist}
to
Release:        1%{?dist}

This is used to indicate changes in the spec file, for example due to rebuilds or changes
to other options when the sources are not changed.  It is independent of the actual
release version of the sources.

c) In the files listing, please change

%{prefix}/%{projectDir}/COPYING
%{prefix}/%{projectDir}/README.md
%{prefix}/%{projectDir}/ThirdParty/README

to

%license %{prefix}/%{projectDir}/COPYING
%doc %{prefix}/%{projectDir}/README.md
%doc %{prefix}/%{projectDir}/ThirdParty/README

so that appropriate metainformation is added to the RPM package.

d) Is there any way to get wmake to mostly use Fedora specific build flags? See
https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/#_macros_providing_compiler_and_linker_flags

Comment 49 mark.olesen 2024-04-30 10:22:52 UTC
> a) In the spec file, can you change
> Prefix:         /usr/lib/openfoam
> to
> Prefix:         %{_libdir}/openfoam

OK to leave as is?
With the %{_libdir} macro it would expand to /usr/lib64 on openSUSE (for example), since their site CONFIG_SITE has %{_lib} as lib64 for x86_64.
I'd prefer to have a fixed/known install location, and also reuse as much as of the spec as possible for both targets.

> b) Please also change
> Release:        240429%{?dist}
> to
> Release:        1%{?dist}
> 
> This is used to indicate changes in the spec file, for example due to
> rebuilds or changes
> to other options when the sources are not changed.  It is independent of the
> actual release version of the sources.

Interesting. On previous copr builds it seems to ignore the auto increment entirely (but my memory might be foggy), which is why I forced to have the build date there too.
I can revert back without problem. Interesting, the openSUSE builds
prefer "0" instead of "1" for their Release, which is where they slap
in the special handling. Would "0%{?dist}" also work for Fedora, or
just "1%{?dist}" ?

With the "1%{?dist}" (or "0%{?dist}") I guess that the previously built versions (with the date as release stamp) will mask out the revised one. I'll need to see how to fix that I guess.

> c) In the files listing, please change
> 
> %{prefix}/%{projectDir}/COPYING
> %{prefix}/%{projectDir}/README.md
> %{prefix}/%{projectDir}/ThirdParty/README

DONE

> d) Is there any way to get wmake to mostly use Fedora specific build flags?

We have provision for passing in extra stuff via the
FOAM_EXTRA_CFLAGS FOAM_EXTRA_CXXFLAGS FOAM_EXTRA_LDFLAGS
environment variables. Just not entirely sure should then be in there
for the spec file...

Something like this?
#-----
%build

# Mimic set_build_flags macro, but with wmake names
%if 0%{?fedora}%{?rhel}
FOAM_EXTRA_CFLAGS="${FOAM_EXTRA_CFLAGS:-%{?build_cflags}}"
FOAM_EXTRA_CXXFLAGS="${FOAM_EXTRA_CXXFLAGS:-%{?build_cxxflags}}"
FOAM_EXTRA_LDFLAGS="${FOAM_EXTRA_LDFLAGS:-%{?build_ldflags}}"
export FOAM_EXTRA_CFLAGS FOAM_EXTRA_CXXFLAGS FOAM_EXTRA_LDFLAGS
%endif

Comment 50 Benson Muite 2024-04-30 16:24:33 UTC
>> a) In the spec file, can you change
>> Prefix:         /usr/lib/openfoam
>> to
>> Prefix:         %{_libdir}/openfoam

> OK to leave as is?
> With the %{_libdir} macro it would expand to /usr/lib64 on openSUSE (for example), since their site CONFIG_SITE has %{_lib} as lib64 > for x86_64.
> I'd prefer to have a fixed/known install location, and also reuse as much as of the spec as possible for both targets.

Probably adding an if statement is preferable if the behavior on OpenSUSE should differ. Otherwise an
exemption is needed:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_multilib_exempt_locations

>> b) Please also change
>> Release:        240429%{?dist}
>> to
>> Release:        1%{?dist}
>> 
>> This is used to indicate changes in the spec file, for example due to
>> rebuilds or changes
>> to other options when the sources are not changed.  It is independent of the
>> actual release version of the sources.

> Interesting. On previous copr builds it seems to ignore the auto increment entirely (but my memory might be foggy), which is why I
> forced to have the build date there too.
> I can revert back without problem. Interesting, the openSUSE builds
> prefer "0" instead of "1" for their Release, which is where they slap
> in the special handling. Would "0%{?dist}" also work for Fedora, or
> just "1%{?dist}" ?

Fedora starts at 1. This is incremented for very spec file change without a corresponding source version change.
It is possible to use the %autorelease macro to manage this.
See https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/

> With the "1%{?dist}" (or "0%{?dist}") I guess that the previously built versions (with the date as release stamp) will mask out the
> revised one. I'll need to see how to fix that I guess.

Can bump the epoch if there are many people using the copr build.  You could also create a new copr repo, and delete both
copr repos once the package is accepted.

>> c) In the files listing, please change
>> 
>> %{prefix}/%{projectDir}/COPYING
>> %{prefix}/%{projectDir}/README.md
>> %{prefix}/%{projectDir}/ThirdParty/README

> DONE

Thanks.

>> d) Is there any way to get wmake to mostly use Fedora specific build flags?

> We have provision for passing in extra stuff via the
> FOAM_EXTRA_CFLAGS FOAM_EXTRA_CXXFLAGS FOAM_EXTRA_LDFLAGS
> environment variables. Just not entirely sure should then be in there
> for the spec file...

> Something like this?
> #-----
> %build

> # Mimic set_build_flags macro, but with wmake names
> %if 0%{?fedora}%{?rhel}
> FOAM_EXTRA_CFLAGS="${FOAM_EXTRA_CFLAGS:-%{?build_cflags}}"
> FOAM_EXTRA_CXXFLAGS="${FOAM_EXTRA_CXXFLAGS:-%{?build_cxxflags}}"
> FOAM_EXTRA_LDFLAGS="${FOAM_EXTRA_LDFLAGS:-%{?build_ldflags}}"
> export FOAM_EXTRA_CFLAGS FOAM_EXTRA_CXXFLAGS FOAM_EXTRA_LDFLAGS
> %endif

This seems better.

e) Please name the latest release version openfoam without anything additional see:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#multiple

Comment 51 mark.olesen 2024-05-07 13:10:21 UTC
I'll try to find some time for this next week.
The release index I can manage reasonably easily - provided that I have a bumped upstream patch version to start from, should be possible without colliding with previous builds.
Will also adjust the spec file to "openfoam.spec" and leave the others (openfoam2306, openfoam2212 etc) as maintenance versions (as per openSUSE).
The openfoam packages are designed to permit installation of a number of different release/maintenance versions, which is why we have "openfoam" as the meta package and "openfoam2312" as the concrete package etc. There are a number of cases where the user does actually want to have multiple versions installed - primarily for back-to-back comparisons, possible regression tests, transitioning coding between versions etc.

Comment 52 Package Review 2025-05-03 09:50:39 UTC
Package was never imported.
The ticket status is being reset, since creating the repository will require a fresh approval.
Let us know if you're still interested in this package.


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