- why do your users need to know how to compile with PETSc?
I provide two main packages: petsc and petsc-devel. petsc-devel contains header files, symlinks to dynamic library & more. petsc-devel should also be fully usable for personal development of PETSc dependent programs.
- Shouldn't this be handled by you?
I compile PETSc. That's what the users of my package will get from me. But they may link with it however they wish. And since the Makefile method is official & provided by upstream, I don't see a reason why I shouldn't take care in supporting it. The extra pkg-config variables are not standard and most systems integrating with PETSc using pkg-config will simply ignore these, but that isn't true for the Makefile.user.
- And also, can't you tell your users how to use PETSc? (for example not to use the Makefile.user)
This is a decision I leave to upstream. As a packager, I try to not alter the functionality of programs & libraries I package, because that would make my packages less trustworthy. If I'd believed that Makefile.user should be removed (which I don't), I would first write on this mailing list requesting its removal from PETSc or I would create an issue/MR on GitLab.
> And /usr/share/petsc/Makefile.user or /usr/share/petsc/CMakeLists.txt are officially supported ways of using PETSc,Those two files are not the "officially supported ways of using PETSc." They are examples of how to set up compilations using PETSc.
I do not view these two files as the only officially supported ways of linking with PETSc. If these files weren't part of PETSc, I wouldn't be compelled to support them. If that was the case, I would simply delete the offending lines in the pkg-config file. But these files are example build definition files provided by PETSc meant to be used in projects which depend on PETSc. Users of my package may or may not choose to use them.
> leaving junk flags in /usr/lib/pkgconfig/petsc.pc is not tolerable for me.Those are not junk flags, since they are not part of the pkg config standardhttps://people.freedesktop.org/~dbn/pkg-config-guide.html <https://people.freedesktop.org/~dbn/pkg-config-guide.html>
By "junk flags" I meant flags that were used when building PETSc for the petsc package. These flags got put into cflags_extra, which is then used in user projects thanks to Makefile.user.
OpenPGP_0x1A14CB3464CBE5BF.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature