McStasMcXtrace / iFit

a simple library to analyze data (with McCode and Phonons/DFT hooks). :warning: this project has been moved to https://gitlab.com/soleil-data-treatment/soleil-software-projects/remote-desktop
http://ifit.mccode.org
Other
5 stars 5 forks source link

Complex dependency issue arising from MCRinstaller (rpm from deb via alien) #161

Open willend opened 6 years ago

willend commented 6 years ago

Starting to deploy build infrastructure for McStas at ESS DMSC, I have found a funny problem when trying to install mcstas-suite-perl or mcstas-tools-perl-2.4.1:

[root@pwillendrup-test2 ~]# yum install mcstas-tools-perl-2.4.1
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package mcstas-tools-perl-2.4.1.x86_64 0:1.0-1 will be installed

... snippet cut away ...

Dependencies Resolved

===============================================================================================================================================================================================================
 Package                                                          Arch                                    Version                                          Repository                                     Size
===============================================================================================================================================================================================================
Installing:
 mcstas-tools-perl-2.4.1                                          x86_64                                  1.0-1                                            mccode                                        139 k
Installing for dependencies:
 MCRInstaller                                                     x86_64                                  7.13-2011                                        mccode                                        180 M

Secondly, installing it anyway fails with

Transaction check error:
  file / from install of MCRInstaller-7.13-2011.x86_64 conflicts with file from package filesystem-3.2-20.el7.x86_64

Digging manually through automatically generated perl dependencies, it seems that 1) mcstas-suite-perl requires 2) mcstas-tools-perl which requires 3) perl-PDL (epel) which requires libGL.so and libGLU.so

The natural way to fill the dependencies under 3) would be to

yum install mesa-libGL mesa-libGLU

but the dependency is for whatever reason attempted filled using MCRinstaller which ships a version of these .so's. (If I indeed install the mesa libs' MCRinstaller does NOT become a dependency?!?)

I have a feeling the reason is that the rpm which was converted from a deb via the 'alien' utility is really quite malformed....

I propose (and may even volunteer) to make a new version of the MCRinstaller rpm using CMake - which should fix this issue...

willend commented 6 years ago

So, the issue is indeed that the alien-generated RPM file includes LOADS of autogenerated Provides like

Provides: libGL.so 

The problem is then that one does not really get access to the original 'spec' file of the rpm - but there seems to be a hack, available from a 'real'/non-debian RPM system:

Using

rpmrebuild -e -p MCRInstaller-7.13-2011.x86_64.rpm 

will bring up an editor.

I will try to see if I can get that spec, edit it for sanity and repackage...

willend commented 6 years ago

It seems the output RPM package that one gets when sanitising using rpmrebuild -e -p may work OK.

My plan is to replace the package at packages.mccode org by this resulting rpm

willend commented 6 years ago

Morale looks to be that one can not simply 'use alien for the rpm'... Leads to nastyness... :-)

willend commented 6 years ago

Just tested: The last available rpm-based ifit (1.3.3) also exhibit problematic behaviour, i.e. during installation you get

[root@pwillendrup-test2 ~]# yum install ifit
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package ifit.x86_64 0:1.3-3 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch               Version           Repository          Size
================================================================================
Installing:
 ifit             x86_64             1.3-3             mccode              22 M

Transaction Summary
================================================================================
Install  1 Package

Total size: 22 M
Installed size: 23 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test

Transaction check error:
  file / from install of ifit-1.3-3.x86_64 conflicts with file from package filesystem-3.2-20.el7.x86_64

Error Summary
-------------

Can likely be remedied also using rpmrebuild -e -p, but maybe we should indeed make a set of cmake CMakeLists.txt inspired from the McStas side - which should result in more reasonable support for rpm based systems?