Games doesent work in Fedora test 3

Mike A. Harris mharris at redhat.com
Fri Oct 24 05:55:34 UTC 2003


On Thu, 23 Oct 2003, nosp wrote:

>> That just shows you're using a method that is inherently 
>> flawed/broken to try to uninstall the package.  I don't recommend 
>> using apt for anything ever.  Use yum, or use rpm directly.
> 
>Hmm -- I'm not sure that apt is telling me anything that rpm doesn't
>tell me; actually apt shows me, quicker, how big an effect my desire to
>remove Mesa will have.  Here's what rpm tells me:

apt is telling you it'll gladly uninstall half your system if you 
like to remove Mesa.  RPM would tell you that there is 
dependancies on Mesa from other applications, then you'd say to 
yourself "yes, but I am uninstalling one libGL.so.1 and 
installing an alternative libGL.so.1, so when I'm done all 
dependancies will still be met", then you'd use --nodeps to 
uninstall Mesa, and then install Nvidia, and everything is happy.

 
>        libGL.so.1 is needed by (installed) xscreensaver-4.13-1
>        libGL.so.1 is needed by (installed) xmms-1.2.8-2.p
>        libGL.so.1 is needed by (installed) XFree86-libs-4.3.0-40
>        libGL.so.1 is needed by (installed) XFree86-tools-4.3.0-40
>---
>
>Clearly the dependency of XFree86-{libs,tools} on Mesa is the
>"problem."  I disagree that apt is flawed/broken.  But is there a
>solution to this?  Probably more relevant in response to your next
>point...see below.

Wrong.  There is absolutely *NO* dependancy on Mesa.  The 
dependancy is explicitly on libGL.so.1 as you quote above.  
*ANYTHING* that provides a library called libGL.so.1 by 
definition solves the dependancy, including Nvidia's libGL.so.1

I already gave you the solution, uninstall Mesa-libGL using rpm
with --nodeps, and immediately install the Nvidia packages.

Problem solved.  Works for hundreds of users, and can work for 
you too!

>> Normally the --nodeps would be strongly advised against for any 
>> other command.  In this case the idea is "We know we're 
>> uninstalling this package intentionally because we are installing 
>> an alternative package which provides the same functionality to 
>> the applications that require this one".
>
>Yes but then apt (and, I presume, yum) will tell me I have a
>broken package set installed (some packages are installed that
>depend on a package I don't have installed).  I can fix this by
>telling apt (prob. yum too) to pretend it has the missing Mesa
>rpm.  I would probably have to do the same trick to make rpm
>itself happy.  It's just inconvenient to tell all the packaging
>apps (rpm, apt, yum) individually that "yeah we really have Mesa
>even though it's not installed."

I gave you the solution that works properly.  I'm not going to 
bother repeating myself 500 times however or explain in detail 
how rpm or apt works.  You can use my solution, and have it work 
for you too, or you can think too much about it, and worry about 
it and keep a non-working system.  Your choice...

>I don't think any of this helps us with the original question,
>which was "how will Mike make the Mesa rpm explicitly conflict
>with the nvidia drivers."

Simple:

Conflicts: <Name of Nvidia package containing libGL.so.1>

That way Nvidia does not need to delete the files to avoid the 
conflict (which is wrong on so many levels it isn't funny), and 
users are alerted by RPM directly that the two packages conflict 
with libGL.  The proper solution to this is the one I've outlined 
above.  Nvidia's future rpm packages and installer can then stop 
deleting our rpm installed files and instead automate the process 
of doing:

rpm -e --nodeps XFree86-Mesa-libGL
rpm -Uvh Nvidia-package-name-containing-libGL

That will make life easier for users, for Nvidia, and for Red Hat 
IMHO, which is the end goal.  Remember, in previous releases 
there was no Mesa-libGL or Mesa-libGLU subpackages.  I created 
those 2 packages explicitly for one purpose - to allow 3rd party 
vendors to be able to easily replace either one or both of those 
libraries with their own custom libGL/libGLU (some vendors have 
their own libGLU for whatever strange reasons).

To date, I'm not aware of any vendors who have taken advantage of 
this unfortunately.  ;o(

>I just want to clarify that I think this effort to help smooth
>out this issue is very much appreciated by myself and, I
>imagine, other binary nvidia users.  So thanks -- my musings
>were merely a desire to get more insight into how you would
>tackle this problem.  The solution doesn't seem obvious to me
>because you have to make an rpm conflict with something that
>isn't installed by (an) rpm.  How would you do that?

You cant make an rpm conflict with something that is installed 
that is not an rpm.  I can make an rpm conflict with another rpm, 
which means people who install Nvidia's drivers with rpm would 
end up hopefully having a properly working system assuming Nvidia 
updates their rpms and driver installation procedure.  Users who 
install Nvidia's stuff without rpm are more or less on their own, 
and always will be, because rpm doesn't know anything about 
anything that isn't installed via rpm (and shouldn't).

>Could you make the rpm conflict with a file that only the nvidia
>installer created?  That would probably be too fragile a method,
>right?

Wether it would be technically possible via some ugly hack or not 
doesn't matter.  I wouldn't implement an ugly hack like that for 
any reason anyway.  People should use rpms, and if they don't 
then like has always been the case in the past for all software 
installation - they're on their own to solve whatever package 
conflicts or problems arise.

I want to make the situation better, but 3rd party vendors 
packaging stuff in rpms need to want to have things better too, I 
can only make things nicer on my side, but I can't make their 
side better.  I can help them to do so though if they're 
interested.


-- 
Mike A. Harris     ftp://people.redhat.com/mharris
OS Systems Engineer - XFree86 maintainer - Red Hat





More information about the fedora-test-list mailing list