I've been looking at uqm today to see how we could do this. I did come
up with one method that does work (at least in Fedora 13), though it
will be a bit of a pain for autodownloader. For uqm, it looks something
like this:
uqm is in Fedora
autodownloader is in Fedora
uqm-content is in RPM Fusion
Remove Requires: autodownloader from uqm
Add Requires: uqm(data) to uqm
Add Provides: uqm(data) to autodownloader
Add Provides: uqm(data) to uqm-content
When installing uqm, if RPM Fusion isn't enabled, autodownloader gets
downloaded and installed, and then the game data gets downloaded the
first time uqm is run. If RPM Fusion is enabled, yum will prefer
uqm-content, which mean uqm will run the first time without needing to
download anything.
This should consistently work because, in the newer yum versions, one of
the tests for choosing which package to install as a dependency is to
compare how many letters match (i.e. uqm and uqm-content both start with
uqm, while autodownloader doesn't, so uqm-content would be preferred
over autodownloader).
Do note that there are no conflicts between autodownloader and
uqm-content, so there's no problem if someone installs the game without
RPM Fusion, thus getting autodownloader, and then enables RPM Fusion and
installs uqm-content. The game would proceed to use the content from
uqm-content rather than try to download it with autodownloader.
The drawback of this method is that, for each game, a new version of
autodownloader will have to be pushed with updated Provides *before* we
can put the game data in RPM Fusion.
Thoughts? Comments? Stones to throw at me? :)
Jonathan