FS#18142 - [mesa] strict dependency on dri2proto not needed ?

Attached to Project: Arch Linux
Opened by Xavier (shining) - Wednesday, 03 February 2010, 10:26 GMT
Last edited by Jan de Groot (JGC) - Saturday, 06 February 2010, 07:41 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan de Groot (JGC)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

mesa 7.7 depends on dri2proto=2.1

I need dri2proto 2.2 to build mesa git locally. This won't affect the system mesa 7.7 at all since dri2proto is just 2 headers.
Maybe the real problem is that dri2proto should be a makedepends rather than a depends ?

namcap.py /home/pkg/mesa-7.7-1-x86_64.pkg.tar.gz
mesa W: Dependency included but already satisfied ('libx11')
mesa W: Dependency included and not needed ('dri2proto')
mesa W: Dependency included and not needed ('libdrm')

It's quite weird to force the usage of -Ud when upgrading to dri2proto 2.2

Afaik these proto are backward compatible, mesa 7.7 should still build with 2.2 so it could be :
makedepends=(dri2proto>=2.1)
But I should double-check this.

In any cases, is there any reason for not doing the depends->makedepends change ?
This task depends upon

Closed by  Jan de Groot (JGC)
Saturday, 06 February 2010, 07:41 GMT
Reason for closing:  Won't fix
Comment by Jan de Groot (JGC) - Wednesday, 03 February 2010, 11:37 GMT
Mesa depends on the dri2proto version it was built against, nothing newer, nothing older. Installing a newer proto on your system than mesa was built against will make programs assume they can use new features that aren't implemented in libraries.
Comment by Xavier (shining) - Wednesday, 03 February 2010, 13:55 GMT
  • Field changed: Percent Complete (100% → 0%)
I don't really mind if it's not fixed, but can we please discuss it a bit first ?

14:10 < zhasha> there is some truth to the matter. if you build mesa with a newer dri2proto you might inadvertently trigger some feature X doesn't have. I do believe though, that mesa checks for that sort of stuff instead of just assuming
14:10 < jcristau> the protocol is versioned for a reason
14:11 < jcristau> if mesa doesn't check, that's a bug, and it should be fixed
Comment by Jan de Groot (JGC) - Wednesday, 03 February 2010, 14:06 GMT
Point is, upgrading random protocols on your system without rebuilding all libraries against it will cause failures. We've seen this with glproto or xproto in the past when libx11 and mesa were built against different protocol versions, causing white screens when using compositing managers. As distribution we set dependencies as packaged, installing other versions of protocols will break things.

As you're building mesa from git, you're also replacing the mesa package, so I see no need to change this in the mesa package. Note that the quote you reopened the bug with specifies "if you build mesa with a newer dri2proto", we're not building anything, we're installing a binary package here. The binary package has a strict dependency, and to gain that, so does the PKGBUILD. You're free to change it on your system, but the mesa package in the repositories will stay strict.
Comment by Xavier (shining) - Wednesday, 03 February 2010, 22:29 GMT
I am building mesa from git but I am not replacing the mesa package. Is that wrong ?
Nouveau doesn't recommend to install it system-wide : http://nouveau.freedesktop.org/wiki/GalliumHowto
"It's not recommended to install this library, but you can test if it works by setting LD_LIBRARY_PATH and LIBGL_DRIVERS_PATH to /path/to/mesa/lib. Here is an example with Openarena ..."
That way I can control exactly which application are using the unstable nouveau gallium driver, and I can be prepared for system crashes / gpu lockups / whatever. By default, the system-wide software mesa is used, and that setup has served me well for several months.

If we are not building anything, there is no problem, it's just a header.
If the user is building something and upgraded dri2proto, he obvious knows he did that, doesn't he ?

The xorg people are apparently saying that building different components against different protocol versions should work as the protocol itself is versioned, and that it's a bug if it doesn't work.
Besides if the specific situation of newer dri2proto and mesa with an older libx11 caused problems, I would be the first to have them as it's exactly what I did on my 3 arch systems.

Anyway I am obviously not blocked by this in any way. I upgraded dri2proto 3 weeks ago right after mesa git required it, I just had to make pacman skip depends or to hack the mesa db entry, and all was well.
It's just a very minor annoyance, and the first one I encounter since I started building all git nouveau bits.

So it has been very good over all. And thanks for the always up-to-date Xorg server and stack, this helps a lot :)

Loading...