Arch Linux

Please read this before reporting a bug:

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!

FS#28938 - [libgl] The replaces array is wrong

Attached to Project: Arch Linux
Opened by Connor Behan (connorbehan) - Friday, 16 March 2012, 05:42 GMT
Last edited by Andreas Radke (AndyRTR) - Thursday, 22 March 2012, 09:08 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Andreas Radke (AndyRTR)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


The DRI1 drivers, while no longer maintained, are not part of the libgl package and indicating replaces=('unichrome-dri' 'mach64-dri' 'mga-dri' 'r128-dri' 'savage-dri' 'sis-dri' 'tdfx-dri') is not appropriate.

Whether you want to keep offering the 7.11.2 versions of these packages is a separate issue. You could simply warn users with an install script that they have been dropped from the Arch repos but two messages:

by a very active mesa developer indicate that it should not be difficult at all to keep shipping those packages. At most one would want to recompile them each time a new libgl comes out which is what the maintainers were already doing.
This task depends upon

Closed by  Andreas Radke (AndyRTR)
Thursday, 22 March 2012, 09:08 GMT
Reason for closing:  Fixed
Additional comments about closing:  repaces array has been removed in 8.0.2-1
Comment by Andreas Radke (AndyRTR) - Friday, 16 March 2012, 06:35 GMT
Arch will keep shipping only latest upstream mesa/libgl/*-dri versions. And in Mesa 8.* old DRI1 drivers have been dropped some graphic architectures. That's an upstream decission. There's no reason to add a 2nd mesa7.x package to our repos.

You can stick with Mesa 7.x and maintain it your own or do this in AUR. These gfx cards are all so old that there's simply no reason to provide additional binary packages just for a few people.
Comment by Connor Behan (connorbehan) - Friday, 16 March 2012, 07:26 GMT
  • Field changed: Percent Complete (100% → 0%)
My issue is not that you are refusing to provide *-dri-7.11.2-# packages that depend on libgl-8.x (even though doing so is the easiest thing ever).

My issue is that the "replaces" array is completely wrong. Please take the DRI1 packages out of the array.
Comment by Andreas Radke (AndyRTR) - Friday, 16 March 2012, 07:28 GMT
If we won't have the replaces array the update wouldn't have removed the *-dri packages and keep the old ones. That's not wanted.

I don't what you think is wrong and this should be done with pacman's update mechanism.
Comment by Ionut Biru (wonder) - Friday, 16 March 2012, 07:37 GMT
the replaces is there for allowing you to upgrade to mesa 8. If they weren't there pacman will fail to update packages returning that

r128-dri-dri 7.11.-2 requires libgl=7.11

Do you want that and manually fixing this issue or seamless update?
Comment by Connor Behan (connorbehan) - Friday, 16 March 2012, 16:22 GMT
An update won't be seamless if it kills OpenGL support. Anyone who still has these drivers installed needs to think carefully about whether to upgrade to mesa 8, not have it swept under the rug.

If you want these packages to have a maintainer before taking them out of the replaces array, I'd be happy to do it if you make me a TU. They will NOT require a mesa-7.11 package to be in the repos at the same time. All we will have to do is recompile them with --disable-shared-dricore and depends=('libgl') instead of depends=('libgl=7.11').
Comment by Andreas Radke (AndyRTR) - Friday, 16 March 2012, 17:16 GMT
The update kills OpenGL support because there's simply none anymore. I still can't see any bug in our way we have packaged mesa.

Feel free to fix your local setup the way you need it.
Comment by Connor Behan (connorbehan) - Friday, 16 March 2012, 23:35 GMT
It should be very simple.

Build this package ONCE, put it in extra, orphan it and never worry about it again. Everything will still work. Much better than writing replaces=('something that will break your system if you replace it').
Comment by Andreas Radke (AndyRTR) - Saturday, 17 March 2012, 10:07 GMT
Ok, feel free to put your package into AUR. I don't want to get bug reports for these dri1 packages if they don't work well with libdrm/libgl/mesa >7.11 - so simply this won't happen in our repos. Upstream support has been dropped for some reason. We just follow that.
Comment by Thomas Bächler (brain0) - Wednesday, 21 March 2012, 13:25 GMT
I am sorry for interfering here, but you are wrong: Unless you remove those replaces=() from libgl, such an AUR package will be worthless. pacman will still prompt him to replace the packages on every -Syu.
Comment by Andreas Radke (AndyRTR) - Wednesday, 21 March 2012, 17:02 GMT
1) Making it a conflict array would still prevent installing mesa 7.11 dri packages.

2) Removing the replaces array would leave any mesa dri1 7.11 package installed when updating to mesa 8.0 that would surely break some stuff.

3) Maintaining an unsupported 2nd mesa branch in our repos is no option since upstream dropped it for good reasons.

So there's some user interaction required in any way when you want to stay with *-dri installed.

I think it's best to live without any dri1 package from now on and follow latest driver releases built with --disable-dri. If you want something different I won't support it.
Going to close this with "won't fix" soon.
Comment by Thomas Bächler (brain0) - Wednesday, 21 March 2012, 17:13 GMT
Option 2) isn't that bad. It means the users of these drivers can still break stuff and try to build their old dri1 drivers. Right now, we prevent them from having a package named "r128-dri", because on each upgrade, libgl tries to replace it.

If you still think wontfix is the right answer, go ahead, but I think that using replaces=(), we enforce unnecessary limitations with no benefits.