The CDROM_SET_NAMES is used in quake2-data quake1-data and rune ebuild (and perhaps others I am not aware of), but is not declared anywhere. It should make it possible to choose from one of several CDs.
Created attachment 90862 [details] possible usage in combination with two other CDs Would be cool if the CDROM_SET_NAMES would also work in combination with one or several other CDs. This is an example of an ebuild I wrote.
your example is wrong ... you can use CDROM_NAME or CDROM_NAME_1 / CDROM_NAME_2, not both
ive added support for CDROM_NAME_SET to eutils.eclass if this variable is set, then the code will setup CDROM_NAME_# automatically
You implemented it the wrong way. This variable should include several CDs from which only ONE is needed in cases where the files are located different on different CDs (see quake2-data ebuild or one of the others as an example).
Created attachment 90973 [details] corrected example I corrected the example and enhanced it a bit, so you see better what I mean. I wanted to show the usage of a CDROM_SET_NAME in combination with other CDs. I hope you understand it now, it would be cool if things like this would work, otherways we have to use hacks like in Paul Bredburys tidied unreal tournament ebuild (#134156).
oh that ... yeah i remember not implementing that on purpose and just declearing CDROM_SET_NAMES in ebuilds to remind myself to add support for it some day :p
what a weird typo in that last post ... s/declearing/declaring/
Perhaps it is easier not to use correct english sentences to discribe what CDs are needed, but more like a list: You need: one of Bla CD/Blu CD/Bli CD (CDROM_ROOT_1) and Blub CD (CDROM_ROOT_2) and Foo CD (CDROM_ROOT_3) one of Dsdf CD/Easa CD (CDROM_ROOT_4) This is probably easier to implement and surely easier and faster to read. Just an idea though.
Implementation wise it would perhaps be more intelligent to kick the CDROM_SET_NAMES flag and only use CDROM_NAME_#, but allow multiple names listed under one. Example: export CDROM_NAME_1=("Unreal Tournament" "Unreal Tournament GotY CD1") export CDROM_NAME_2="Unreal Gold CD" and later on export CDROM_SET_# variables.
Created attachment 133309 [details] example This is a new approach of how this could be done, it makes CDROM_SET_NAMES obsolete and provides a much more versatile interface for ebuild programmers.
This eclass is about to have a near rewrite applied to it. Please see the #gentoo-dev archives if you're curious. This issue is one I was well aware of and I have preserved the existing behaviour of using an array for each disc across all sets rather than for each set. To make things less confusing, I have renamed the array to CDROM_NAMES. As noted, there are ebuilds already setting CDROM_SET_NAMES but this is already completely ignored as they all use a single disc. While I liked some of Patrick's ideas above, I decided not to over-complicate what is essentially an aesthetic feature of a relatively little-used eclass. You can still have per-set disc names after the first disc though. Include all the disc names for all the sets in CDROM_NAMES initially. After the first disc has been detected, use CDROM_SET to redefine CDROM_NAMES to just include the names from the detected set before calling cdrom_load_next_cd.
This has now been pushed.