Bug 26062 - conflict between openmpi-4.0.1-1.mga7.x86_64 and lib64openmpi-devel-2.1.1-4.1.mga6.x86_64
Summary: conflict between openmpi-4.0.1-1.mga7.x86_64 and lib64openmpi-devel-2.1.1-4.1...
Status: NEW
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 7
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
URL:
Whiteboard: MGA7-64-OK
Keywords: validated_update
Depends on:
Blocks:
 
Reported: 2020-01-12 22:57 CET by Olivier FAURAX
Modified: 2020-01-22 19:13 CET (History)
4 users (show)

See Also:
Source RPM: openmpi
CVE:
Status comment:


Attachments

Description Olivier FAURAX 2020-01-12 22:57:42 CET
During update from 6 to 7 :

L'installation a échoué :	le fichier /usr/share/openmpi/mpic++-wrapper-data.txt de l'installation de openmpi-4.0.1-1.mga7.x86_64 entre en conflit avec le fichier du paquet lib64openmpi-devel-2.1.1-4.1.mga6.x86_64
	le fichier /usr/share/openmpi/mpicc-wrapper-data.txt de l'installation de openmpi-4.0.1-1.mga7.x86_64 entre en conflit avec le fichier du paquet lib64openmpi-devel-2.1.1-4.1.mga6.x86_64
	le fichier /usr/share/openmpi/mpifort-wrapper-data.txt de l'installation de openmpi-4.0.1-1.mga7.x86_64 entre en conflit avec le fichier du paquet lib64openmpi-devel-2.1.1-4.1.mga6.x86_64
David Walser 2020-01-13 15:32:38 CET

Assignee: bugsquad => eatdirt

Comment 1 Chris Denice 2020-01-13 15:41:17 CET
Being dishonest, I could say what I have been told a while ago: "We don't support the upgrade of devel files" :)

What's the standard fix here? Obsolete/Provides of the versionned openmpi packages or something more subtle with the files?
Comment 2 Olivier FAURAX 2020-01-13 15:58:39 CET
OK, fine, but at least this should be written somewhere, and the uninstallation of *-devel should be suggested in the doc before upgrading.
Comment 3 Chris Denice 2020-01-13 16:00:13 CET
I completely agree! That comment was not for you :)

I think we should support the upgrade of devel-files, that's why I am asking to more expert packagers the correct way to fix it!
Comment 4 David Walser 2020-01-13 20:28:01 CET
That was incorrect Chris, we do support this (we just don't support co-installing 32-bit and 64-bit devel packages).

The reason this kind of conflict happens (and it doesn't just affect -devel's, but any package with subpackages) is because of a file being moved from one subpackage to another.  When you do that, you have to add, on the subpackage the file is moved *to* a Conflicts: package the file was moved *from* < the version-release when the move happened.

So in this case, the openmpi package itself would have a Conflicts: %{_lib}openmpi-devel (there should be a better variable name for that in the SPEC) < 4.0.1-1.
Comment 5 Chris Denice 2020-01-14 14:43:18 CET
Thanks for the info.

We should have an automated way to spot this, or better, overcome this during upgrade!!

These kinds of move of a file happen all the time upstream, and they are impossible to track since the package at time "t" is always fine. So if upgrading mageia fails due to this, then, Houston, we have a problem!!!
Comment 6 Olivier FAURAX 2020-01-14 16:46:34 CET
Perhaps we could have a very big test pre-release that will install ALL the packages of Mageia N, and then, launch an upgrade.
We could disable some big packages (e.g 0ad-data) to speedup the process, and I bet this would reveal some hidden conflicts.
Comment 7 Chris Denice 2020-01-14 18:26:20 CET
@David
That's a packaging issues from my side, these files have been matched by a "*" in both the devel and openmpi %files sections. I don't understand how I did not get a warning/error?
Comment 8 Chris Denice 2020-01-14 18:56:48 CET
I have uploaded version 4.0.1-1.1 for mga 7 in updates_testing.

You can test if the offending files are now correctly packaged by installing the "lib(64)openmpi-devel" package and the "openmpi" package. Then, doing:

rpm -ql lib64openmpi-devel | grep .txt

should return:

/usr/share/openmpi/mpiCC-wrapper-data.txt
/usr/share/openmpi/mpic++-wrapper-data.txt
/usr/share/openmpi/mpicc-wrapper-data.txt
/usr/share/openmpi/mpicxx-wrapper-data.txt
/usr/share/openmpi/mpif77-wrapper-data.txt
/usr/share/openmpi/mpif90-wrapper-data.txt
/usr/share/openmpi/mpifort-wrapper-data.txt
/usr/share/openmpi/ortecc-wrapper-data.txt

And doing:

rpm -ql openmpi | grep .txt

should return a long list of *.txt files, but NOT the ones above!


Suggested advisory:
========================

Updated openmpi package to version 4.0.1-1.1 to fix double packaging issues preventing a proper upgrade from mga6 to mga7.


References:
========================
https://bugs.mageia.org/show_bug.cgi?id=26062

Updated packages in core/updates_testing:
========================
lib(64)openmpi40-4.0.1-1.1.mga7
lib(64)openmpi-devel-4.0.1-1.1.mga7
lib(64)openmpi-static-devel-4.0.1-1.1.mga7
openmpi-4.0.1-1.1.mga7


Source RPMs: 
openmpi-4.0.1-1.1.mga7.src.rpm

CC: (none) => eatdirt
Assignee: eatdirt => qa-bugs

Comment 9 David Walser 2020-01-14 19:37:00 CET
Chris, actually the double packaging *does* result in a warning, but you never know if you don't look at the build logs.  Most packagers only look at the build logs when their packages fail to build, not when they build successfully.
Comment 10 Chris Denice 2020-01-14 21:23:49 CET
Good to know. I think we should promote that to a build failure, in view of the consequences for distro upgrade!
Comment 11 David Walser 2020-01-14 22:21:47 CET
Such warnings usually do not result in conflicts and failures.  You could argue that the build system should send an e-mail if there are warnings (if rpmbuild/iurt makes that possible to detect through return code), but it certainly should not be fatal.  As to this specific issue, it's not something that can be automatically detected.  Packagers just have to be careful to make sure to add in the proper Conflicts when moving files from one subpackage to another.
Comment 12 Herman Viaene 2020-01-22 14:42:58 CET
MGA7-64 Plasma on Lenovo B50
No installation issues, so the update is OK for its purpose.
Took inspiration for further testing from bug 2787.
$ mpicc --version
gcc (Mageia 8.3.1-0.20191101.1.mga7) 8.3.1 20191101
Copyright © 2018 Free Software Foundation, Inc.
etc....

$ mpirun --version
mpirun (Open MPI) 4.0.1
Report bugs to http://www.open-mpi.org/community/help/

$ mpif90 --version
GNU Fortran (Mageia 8.3.1-0.20191101.1.mga7) 8.3.1 20191101
Copyright © 2018 Free Software Foundation, Inc.
etc......

$ mpicc --help
Gebruik: gcc [opties] bestand...
Opties:
  -pass-exit-codes         Exit with highest error code from a phase.
  --help                   Display this information.
  --target-help            Display target specific command line options.
  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].
etc....

Copied an example file from /usr/share/doc/lib64openmpi-devel/examples/ and compiled it.
$ mpicxx -o hello.out hello_cxx.cc 
$ ./hello.out 
Hello, world!  I am 0 of 1(Open MPI v4.0.1, package: Open MPI iurt@rabbit.mageia.org Distribution, ident: 4.0.1, repo rev: v4.0.1, Mar 26, 2019, 117)

Looks good enough for me.

Whiteboard: (none) => MGA7-64-OK
CC: (none) => herman.viaene

Comment 13 Thomas Andrews 2020-01-22 19:13:56 CET
Validating. Advisory in Comment 8.

CC: (none) => andrewsfarm, sysadmin-bugs
Keywords: (none) => validated_update


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