Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
willend opened this issue May 7, 2018 · 4 comments

Comments

@willend
Copy link
Contributor

willend commented May 7, 2018

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
  • i.e. MCRinstaller being requested, which should first of all not happen at all.. :-)

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
Copy link
Contributor Author

willend commented May 8, 2018

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

Provides: libGL.so 
  • actually for every binary object inside the rpm (mex'es, .so's etc...)
    Furthermore it also "includes" these files
%files
%dir %attr(0755, root, root) "/"
%dir %attr(0755, root, root) "/opt"

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
Copy link
Contributor Author

willend commented May 8, 2018

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
Copy link
Contributor Author

willend commented May 8, 2018

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

@willend
Copy link
Contributor Author

willend commented May 8, 2018

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
-------------
  • i.e. it "contains" /

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant