Bug 2377370
| Summary: | petsc: Stop using deprecated %py3_build/%py3_install macros | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Miro Hrončok <mhroncok> |
| Component: | petsc | Assignee: | Antonio T. sagitter <sagitterghostproton.me> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | Keywords: | Reopened |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | petsc-3.24.3-4.fc44 | Doc Type: | --- |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2026-01-13 22:08:27 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 2376118, 2387582 | ||
|
Description
Miro Hrončok
2025-07-08 14:12:50 UTC
Looks like %pyproject_install is changing PETSc.cpython-313-x86_64-linux-gnu.so that is correctly compiled $ ldd ./PETSc.cpython-313-x86_64-linux-gnu.so linux-vdso.so.1 (0x00007f57a3d32000) libpetsc.so.3.23 => /home/sagitter/rpmbuild/BUILD/petsc-3.23.5-build/petsc-3.23.5/buildopenmpi_dir/x86_64/lib/libpetsc.so.3.23 (0x00007f57a1a00000) libmpi.so.40 => /usr/lib64/openmpi/lib/libmpi.so.40 (0x00007f57a1600000) libc.so.6 => /lib64/libc.so.6 (0x00007f57a140f000) libHYPRE.so.2.1 => /usr/lib64/openmpi/lib/libHYPRE.so.2.1 (0x00007f57a0e00000) libsuperlu_dist.so.8 => /usr/lib64/openmpi/lib/libsuperlu_dist.so.8 (0x00007f57a0ca2000) libdmumps-5.7.so => /usr/lib64/openmpi/lib/libdmumps-5.7.so (0x00007f57a0a00000) libscalapack.so.2 => /usr/lib64/openmpi/lib/libscalapack.so.2 (0x00007f57a0400000) libflexiblas.so.3 => /lib64/libflexiblas.so.3 (0x00007f57a0000000) libptscotch.so.7.0 => /usr/lib64/openmpi/lib/libptscotch.so.7.0 (0x00007f57a3584000) libscotch.so.7.0 => /usr/lib64/openmpi/lib/libscotch.so.7.0 (0x00007f57a34f0000) libmetis.so.0 => /lib64/libmetis.so.0 (0x00007f57a1992000) libhdf5.so.310 => /usr/lib64/openmpi/lib/libhdf5.so.310 (0x00007f579fa00000) libm.so.6 => /lib64/libm.so.6 (0x00007f579ff12000) libX11.so.6 => /lib64/libX11.so.6 (0x00007f579f8bb000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f579f600000) libmpi_mpifh.so.40 => /usr/lib64/openmpi/lib/libmpi_mpifh.so.40 (0x00007f57a13a2000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f57a34c4000) libpvfs2.so.2.9.7 => /lib64/libpvfs2.so.2.9.7 (0x00007f579f501000) libpsm2.so.2 => /lib64/libpsm2.so.2 (0x00007f57a0396000) libopen-pal.so.80 => /usr/lib64/openmpi/lib/libopen-pal.so.80 (0x00007f579f405000) libfabric.so.1 => /lib64/libfabric.so.1 (0x00007f579ee00000) libucp.so.0 => /lib64/libucp.so.0 (0x00007f579fe43000) libucs.so.0 => /lib64/libucs.so.0 (0x00007f579f3a2000) libucm.so.0 => /lib64/libucm.so.0 (0x00007f57a1385000) libuct.so.0 => /lib64/libuct.so.0 (0x00007f57a0c67000) libevent_core-2.1.so.7 => /lib64/libevent_core-2.1.so.7 (0x00007f57a09c7000) libevent_pthreads-2.1.so.7 => /lib64/libevent_pthreads-2.1.so.7 (0x00007f57a3d1d000) libhwloc.so.15 => /lib64/libhwloc.so.15 (0x00007f579f33e000) libpmix.so.2 => /lib64/libpmix.so.2 (0x00007f579ec17000) /lib64/ld-linux-x86-64.so.2 (0x00007f57a3d34000) libgomp.so.1 => /lib64/libgomp.so.1 (0x00007f579ebbf000) libptscotcherr.so.7.0 => /usr/lib64/openmpi/lib/libptscotcherr.so.7.0 (0x00007f57a3d17000) libptscotcherrexit.so.7.0 => /usr/lib64/openmpi/lib/libptscotcherrexit.so.7.0 (0x00007f57a3d13000) libcolamd.so.3 => /lib64/libcolamd.so.3 (0x00007f57a34bb000) libblas.so => /usr/lib64/openmpi/lib/libblas.so (0x00007f57a136b000) libmumps_common-5.7.so => /usr/lib64/openmpi/lib/libmumps_common-5.7.so (0x00007f579eb52000) libptscotchparmetisv3.so.7.0 => /usr/lib64/openmpi/lib/libptscotchparmetisv3.so.7.0 (0x00007f57a34b5000) libpord-5.7.so => /usr/lib64/openmpi/lib/libpord-5.7.so (0x00007f57a09ad000) libesmumps.so.7.0 => /usr/lib64/openmpi/lib/libesmumps.so.7.0 (0x00007f57a1989000) libscotcherr.so.7.0 => /usr/lib64/openmpi/lib/libscotcherr.so.7.0 (0x00007f57a34af000) libptesmumps.so.7.0 => /usr/lib64/openmpi/lib/libptesmumps.so.7.0 (0x00007f57a1980000) libmpi_usempif08.so.40 => /usr/lib64/openmpi/lib/libmpi_usempif08.so.40 (0x00007f579f87c000) libmpi_usempi_ignore_tkr.so.40 => /usr/lib64/openmpi/lib/libmpi_usempi_ignore_tkr.so.40 (0x00007f57a0c58000) libgfortran.so.5 => /lib64/libgfortran.so.5 (0x00007f579e800000) libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00007f579e7b9000) libz.so.1 => /lib64/libz.so.1 (0x00007f579e796000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f579fe2e000) liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f579e761000) libpcre2-posix.so.3 => /lib64/libpcre2-posix.so.3 (0x00007f57a1367000) libsz.so.2 => /lib64/libsz.so.2 (0x00007f57a0c4e000) libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f579e737000) libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f579e200000) libibverbs.so.1 => /lib64/libibverbs.so.1 (0x00007f579e717000) libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f57a0388000) librdmacm.so.1 => /lib64/librdmacm.so.1 (0x00007f579e6fb000) libefa.so.1 => /lib64/libefa.so.1 (0x00007f579e6ef000) libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007f579e6cd000) libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007f579e16b000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f579fe25000) libudev.so.1 => /lib64/libudev.so.1 (0x00007f579e124000) libmunge.so.2 => /lib64/libmunge.so.2 (0x00007f579e6c5000) libsuitesparseconfig.so.7 => /lib64/libsuitesparseconfig.so.7 (0x00007f579f877000) libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f579e079000) libXau.so.6 => /lib64/libXau.so.6 (0x00007f579e6bf000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f579e6b3000) But it is installed in buildroot as $ ldd ./PETSc.cpython-313-x86_64-linux-gnu.so linux-vdso.so.1 (0x00007faf07940000) libpetsc.so.3.23 => not found libmpi.so.12 => not found libc.so.6 => /lib64/libc.so.6 (0x00007faf06fe0000) /lib64/ld-linux-x86-64.so.2 (0x00007faf07942000) !? You can see this behavior in latest petsc-3.23.5 build (https://koji.fedoraproject.org/koji/taskinfo?taskID=135875152); tests are disabled because ./PETSc.cpython-313-x86_64-linux-gnu.so is not working. Since some days i'm trying to find a solution but without success. FEDORA-2025-8c03357409 (petsc-3.23.5-2.fc43) has been submitted as an update to Fedora 43. https://bodhi.fedoraproject.org/updates/FEDORA-2025-8c03357409 FEDORA-2025-8c03357409 (petsc-3.23.5-2.fc43) has been pushed to the Fedora 43 stable repository. If problem still persists, please make note of it in this bug report. (In reply to Antonio T. sagitter from comment #1) > Looks like %pyproject_install is changing > PETSc.cpython-313-x86_64-linux-gnu.so that is correctly compiled > > $ ldd ./PETSc.cpython-313-x86_64-linux-gnu.so > linux-vdso.so.1 (0x00007f57a3d32000) > libpetsc.so.3.23 => > /home/sagitter/rpmbuild/BUILD/petsc-3.23.5-build/petsc-3.23.5/ > buildopenmpi_dir/x86_64/lib/libpetsc.so.3.23 (0x00007f57a1a00000) > libmpi.so.40 => /usr/lib64/openmpi/lib/libmpi.so.40 (0x00007f57a1600000) > libc.so.6 => /lib64/libc.so.6 (0x00007f57a140f000) > libHYPRE.so.2.1 => /usr/lib64/openmpi/lib/libHYPRE.so.2.1 > (0x00007f57a0e00000) > libsuperlu_dist.so.8 => /usr/lib64/openmpi/lib/libsuperlu_dist.so.8 > (0x00007f57a0ca2000) > libdmumps-5.7.so => /usr/lib64/openmpi/lib/libdmumps-5.7.so > (0x00007f57a0a00000) > libscalapack.so.2 => /usr/lib64/openmpi/lib/libscalapack.so.2 > (0x00007f57a0400000) > libflexiblas.so.3 => /lib64/libflexiblas.so.3 (0x00007f57a0000000) > libptscotch.so.7.0 => /usr/lib64/openmpi/lib/libptscotch.so.7.0 > (0x00007f57a3584000) > libscotch.so.7.0 => /usr/lib64/openmpi/lib/libscotch.so.7.0 > (0x00007f57a34f0000) > libmetis.so.0 => /lib64/libmetis.so.0 (0x00007f57a1992000) > libhdf5.so.310 => /usr/lib64/openmpi/lib/libhdf5.so.310 (0x00007f579fa00000) > libm.so.6 => /lib64/libm.so.6 (0x00007f579ff12000) > libX11.so.6 => /lib64/libX11.so.6 (0x00007f579f8bb000) > libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f579f600000) > libmpi_mpifh.so.40 => /usr/lib64/openmpi/lib/libmpi_mpifh.so.40 > (0x00007f57a13a2000) > libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f57a34c4000) > libpvfs2.so.2.9.7 => /lib64/libpvfs2.so.2.9.7 (0x00007f579f501000) > libpsm2.so.2 => /lib64/libpsm2.so.2 (0x00007f57a0396000) > libopen-pal.so.80 => /usr/lib64/openmpi/lib/libopen-pal.so.80 > (0x00007f579f405000) > libfabric.so.1 => /lib64/libfabric.so.1 (0x00007f579ee00000) > libucp.so.0 => /lib64/libucp.so.0 (0x00007f579fe43000) > libucs.so.0 => /lib64/libucs.so.0 (0x00007f579f3a2000) > libucm.so.0 => /lib64/libucm.so.0 (0x00007f57a1385000) > libuct.so.0 => /lib64/libuct.so.0 (0x00007f57a0c67000) > libevent_core-2.1.so.7 => /lib64/libevent_core-2.1.so.7 (0x00007f57a09c7000) > libevent_pthreads-2.1.so.7 => /lib64/libevent_pthreads-2.1.so.7 > (0x00007f57a3d1d000) > libhwloc.so.15 => /lib64/libhwloc.so.15 (0x00007f579f33e000) > libpmix.so.2 => /lib64/libpmix.so.2 (0x00007f579ec17000) > /lib64/ld-linux-x86-64.so.2 (0x00007f57a3d34000) > libgomp.so.1 => /lib64/libgomp.so.1 (0x00007f579ebbf000) > libptscotcherr.so.7.0 => /usr/lib64/openmpi/lib/libptscotcherr.so.7.0 > (0x00007f57a3d17000) > libptscotcherrexit.so.7.0 => > /usr/lib64/openmpi/lib/libptscotcherrexit.so.7.0 (0x00007f57a3d13000) > libcolamd.so.3 => /lib64/libcolamd.so.3 (0x00007f57a34bb000) > libblas.so => /usr/lib64/openmpi/lib/libblas.so (0x00007f57a136b000) > libmumps_common-5.7.so => /usr/lib64/openmpi/lib/libmumps_common-5.7.so > (0x00007f579eb52000) > libptscotchparmetisv3.so.7.0 => > /usr/lib64/openmpi/lib/libptscotchparmetisv3.so.7.0 (0x00007f57a34b5000) > libpord-5.7.so => /usr/lib64/openmpi/lib/libpord-5.7.so (0x00007f57a09ad000) > libesmumps.so.7.0 => /usr/lib64/openmpi/lib/libesmumps.so.7.0 > (0x00007f57a1989000) > libscotcherr.so.7.0 => /usr/lib64/openmpi/lib/libscotcherr.so.7.0 > (0x00007f57a34af000) > libptesmumps.so.7.0 => /usr/lib64/openmpi/lib/libptesmumps.so.7.0 > (0x00007f57a1980000) > libmpi_usempif08.so.40 => /usr/lib64/openmpi/lib/libmpi_usempif08.so.40 > (0x00007f579f87c000) > libmpi_usempi_ignore_tkr.so.40 => > /usr/lib64/openmpi/lib/libmpi_usempi_ignore_tkr.so.40 (0x00007f57a0c58000) > libgfortran.so.5 => /lib64/libgfortran.so.5 (0x00007f579e800000) > libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00007f579e7b9000) > libz.so.1 => /lib64/libz.so.1 (0x00007f579e796000) > libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f579fe2e000) > liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f579e761000) > libpcre2-posix.so.3 => /lib64/libpcre2-posix.so.3 (0x00007f57a1367000) > libsz.so.2 => /lib64/libsz.so.2 (0x00007f57a0c4e000) > libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f579e737000) > libcrypto.so.3 => /lib64/libcrypto.so.3 (0x00007f579e200000) > libibverbs.so.1 => /lib64/libibverbs.so.1 (0x00007f579e717000) > libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f57a0388000) > librdmacm.so.1 => /lib64/librdmacm.so.1 (0x00007f579e6fb000) > libefa.so.1 => /lib64/libefa.so.1 (0x00007f579e6ef000) > libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007f579e6cd000) > libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007f579e16b000) > libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f579fe25000) > libudev.so.1 => /lib64/libudev.so.1 (0x00007f579e124000) > libmunge.so.2 => /lib64/libmunge.so.2 (0x00007f579e6c5000) > libsuitesparseconfig.so.7 => /lib64/libsuitesparseconfig.so.7 > (0x00007f579f877000) > libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f579e079000) > libXau.so.6 => /lib64/libXau.so.6 (0x00007f579e6bf000) > libcap.so.2 => /lib64/libcap.so.2 (0x00007f579e6b3000) > > But it is installed in buildroot as > > $ ldd ./PETSc.cpython-313-x86_64-linux-gnu.so > linux-vdso.so.1 (0x00007faf07940000) > libpetsc.so.3.23 => not found > libmpi.so.12 => not found > libc.so.6 => /lib64/libc.so.6 (0x00007faf06fe0000) > /lib64/ld-linux-x86-64.so.2 (0x00007faf07942000) > > !? > > You can see this behavior in latest petsc-3.23.5 build > (https://koji.fedoraproject.org/koji/taskinfo?taskID=135875152); tests are > disabled because ./PETSc.cpython-313-x86_64-linux-gnu.so is not working. > > Since some days i'm trying to find a solution but without success. I am not entirely sure I understand the problem. Could you please describe this better, preferably at python-devel mailing list or in another (not closed) bugzilla? Ticket reopened. > I am not entirely sure I understand the problem. Could you please describe this better, preferably at python-devel mailing list or in another (not closed) bugzilla? Sorry. I have modified PETSc SPEC file to use %pyproject_wheel and %pyproject_install; starting build release 3.23.5-2, the rpms are successfully built but the `PETSc.cpython-313-x86_64-linux-gnu.so` library is broke somewhere during RPM builds. If you try to locally rebuild this srpm https://koji.fedoraproject.org/koji/buildinfo?buildID=2787896, you'll see that the cpython library compiled in the buildsrc/buildopenmpi_dir/src/binding/petsc4py/build/lib.linux-x86_64-cpython-313/petsc4py/lib/x86_64/ (correctly compiled and linked to libmpi.so.40 in Fedora 42) is different by the same cpython library installed in the BUILDROOT/usr/lib64/python3.13/site-packages/openmpi/petsc4py/lib/x86_64/ (linked to libmpi.so.12 !!). This not happen if i switch back to the old %py3_install Could this have something to do with the fixPythonWheel added in https://gitlab.com/petsc/petsc/-/commit/5ee53db2299ec483123346965f05fffc8e6cbc9f ? Later amended by https://gitlab.com/petsc/petsc/-/commit/6e8294f68f5aed480a30b64681aaabebca5c529b Try adding this into %prep: sed -i 's/self.fixPythonWheel()/pass/' %{name}-%{version}/config/install.py And see if it helps. ------------- As a side note I realized you run %pyproject_buildrequires in %prep, not in %generate_buildrequires section. That does nothing. I have added the sed command, it did not work unfortunately. (In reply to Miro Hrončok from comment #7) > Could this have something to do with the fixPythonWheel added in > https://gitlab.com/petsc/petsc/-/commit/ > 5ee53db2299ec483123346965f05fffc8e6cbc9f ? > Later amended by > https://gitlab.com/petsc/petsc/-/commit/ > 6e8294f68f5aed480a30b64681aaabebca5c529b > > > Try adding this into %prep: > > sed -i 's/self.fixPythonWheel()/pass/' %{name}-%{version}/config/install.py > > And see if it helps. > > ------------- > > > As a side note I realized you run %pyproject_buildrequires in %prep, not in > %generate_buildrequires section. That does nothing. Let's revert the changes for now, then? (In reply to Miro Hrončok from comment #9) > Let's revert the changes for now, then? Yes. I will contact the upstream maintainer about this issue. Regard to my comment in upstream issue (https://gitlab.com/petsc/petsc/-/issues/1800#note_2686551393), can %pyproject_wheel be used two times in a SPEC file? Yes it can, but it was not designed with mpich/openmpi/etc. in mind. Likely one wheel overrides the other here. See also https://bugzilla.redhat.com/show_bug.cgi?id=2377285#c3 This package has changed maintainer in Fedora. Reassigning to the new maintainer of this component. FEDORA-2026-152ccac3c1 (petsc-3.24.3-4.fc44) has been submitted as an update to Fedora 44. https://bodhi.fedoraproject.org/updates/FEDORA-2026-152ccac3c1 FEDORA-2026-152ccac3c1 (petsc-3.24.3-4.fc44) has been pushed to the Fedora 44 stable repository. If problem still persists, please make note of it in this bug report. |