FS#30125 - Support for logical OR in dependencies
Attached to Project:
Pacman
Opened by Hubert Kario (tomato) - Sunday, 03 June 2012, 11:44 GMT
Last edited by Dave Reisner (falconindy) - Monday, 11 June 2012, 23:47 GMT
Opened by Hubert Kario (tomato) - Sunday, 03 June 2012, 11:44 GMT
Last edited by Dave Reisner (falconindy) - Monday, 11 June 2012, 23:47 GMT
|
Details
Summary and Info:
Most game packages (like recent offerings from Humble Indie Bundle: Psychonauts, Limbo, Bastion, Swords & Sworcery, Amnesia) require libraries for 3D acceleration. Adding "ati-dri" for any of those packages, makes them unusable for users of nVidia or Intel video cards. Same thing by adding "catalyst", "intel-dri", etc. The only way to sanely support all GPUs, is by adding logical or for dependencies: "ati-dri" || "nvidia-tools" || "intel-dri" and so on. Adding them to optdepends isn't a good solution either, there both OSS and proprietary drivers for nVidia and Ati (4 packages), lib32 and native versions (4 more packages) and Intel (2 more packages) totalling 10 packages, without actual optdependencies (like libtxc_dxtn for OSS drivers). Steps to Reproduce: 1. On clean system with basic Xorg packages install game requiring 3D acceleration (for example: Psychonauts). 2. Run game 3. Game crashes or runs very slow because of missing DRI apis. |
This task depends upon
Closed by Dave Reisner (falconindy)
Monday, 11 June 2012, 23:47 GMT
Reason for closing: Won't implement
Additional comments about closing: Unmaintainable, and such situations only apply to AUR packages and binary blobs.
Monday, 11 June 2012, 23:47 GMT
Reason for closing: Won't implement
Additional comments about closing: Unmaintainable, and such situations only apply to AUR packages and binary blobs.
Sorry, but IMO this is turning the problem on its head. The packager knows best what packages are needed for his package to work. Creating virtual packages won't work as this requires coordinated change in all dependent packages. Somehow I don't see it happening for "just some AUR package".
Case in point: theoretically the games I mentioned should only require libgl or lib32-libgl. But when run using OSS Radeon drivers, they actually depended on ati-dri or lib32-ati-dri!
And the reason those packages do not provide anything is that no-one has ever asked.
On the other hand we could have an application Foo that can use curl or wget to download files off the Internet, so we create a "http-ftp-downloader" meta package. But then comes a package Bar that can use curl, wget or axel. If we add provides "http-ftp-downloader" to axel it can result in breakage of package Foo. And not only that, but wget and curl are not exactly interchangeable -- they have completely different options.
Also, what meta-package you suggest that all accelerated driver packages ("ati-dri", "catalyst-utils", "nouveau-dri", "nvidia-utils", "intel-dri") should provide? I'm sure it's not libgl.
There are also cases where a package needs a font. But with the number of fonts available, using "provides" might be better.
Seriously though, some explanation? "It's spamming" isn't a real one...
Please re-open the
FS#30171(nvidia-utils), or should I really open a new bug with exact same description?FS#30251,FS#30250. Somehow I don't think this will get any better.