Bug#1102465: petsc: PETSc was configured with one MPICH/Open MPI mpi.h version but now appears to be compiling using an older version

Paul Gevers elbrus at debian.org
Sat Apr 12 06:27:48 BST 2025


Hi Drew,

On Fri, 11 Apr 2025 12:23:45 +0200 Drew Parsons <dparsons at debian.org> wrote:
> Two alternative actions could be taken.
> 
> 1) We could remove upstream's mpich version check, as you suggested.
> I'm reluctant to take this step, however. Upstream is careful with
> their code, I imagine they put the version check there for a reason.


But in Debian as you explain below, it doesn't really serve a purpose as 
we're a distribution that ships things together. But ...

> 2) We could add an mpich versioned depends to the petsc packages, so
> when a new petsc build is tested in testing, it pulls any new mpich
> version with it.  But this would not actually achieve anything.


It does. It shows to all people inspecting the situation exactly what's 
going on. It would ensure that the migration software triggers the right 
combinations. The other way around, it might also prevent mpich from 
migrating too early in the future (with an upper bound, I haven't 
checked if that's the case here). It would also prevent people from 
doing partial upgrades (yes, not officially supported yet but we're 
getting better at it since autopkgtest catch so many of those and a lot 
of maintainers add versioned Depends). It would prevent running those 
tests (several are quite long running) over and over again (we retry 
after a day) because a passing test is remembered for a long time.

> So this option would significantly complicate build scripts
> (significantly, because only the 32-bit arches use mpich, so complex
> logic would need to be added to debian/rules to differentiate the
> different mpi-default conditions),


This is a valid argument too, I don't deny that at all. (Although, you 
don't have to make it complex and could add things manually (now). I 
agree that's probably a PITA.)

> and would provide no functional gain.


But this I disagree with. Why would we even have invented versioned 
Depends in the first place if people agreed this were true?

I'm not saying the petsc package should have this logic, I leave that up 
to you, but I do think there's more value in it than you seem to see.

So, coming back to point 1, I think that version testing in Debian 
usually is wrong. The best case is when upstream gets it right. The 
great thing is we have versioned Depends to express that at install 
time. Worse case upstream is wrong, usually too tight. We see that *a 
lot* and the version checks make it harder for packages to migrate as 
they need packages to be upgraded in lock step. Regularly because the 
migration doesn't see *why* the tests fail, it doesn't know there's a 
solution by testing together and migrating together if not expressed in 
relations. And then even upstream may have overseen a problem that we 
only catch while testing in Debian. Again, a versioned dependency can 
express what we find during unstable-to-testing integration.

Paul

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20250412/1092beb9/attachment.sig>


More information about the debian-science-maintainers mailing list