Jean McCormack wrote: > > There are several issues with respect to the addition of software selection > in the installer that need to be addressed.
My first comment is to agree with Glynn, that I think this would be better handled as a first-boot task using Visual Panels or the packagemanager GUI itself somehow. Not only will that help keep the installer substantially simpler, but it would avoid some of the complexities that you're going to run into by trying to deal with this during install time. If you were producing a Live DVD that contained all of the software, it might make more sense, but providing functionality for network-based installs inside the installer seems like a needless duplication of functionality already provided by packagemanager or pkg(1). With that said, I've provided suggestions below based on the assumption that this is part of the installer (although again, I don't think it necessarily should be). As they might be useful in the LiveDVD scenario I mentioned. I'd also like to mention that should such a LiveDVD ever occur, folks should be aware that a snapshot of the current 2009.06 repository (for *just* the 2009.06 release + unbundleds) requires about 7.2 GiB of space with most of that gzip compressed. > 1) The user interface > > A user should have the option to install different software collections > (Desktop, AMP, HPC, ... etc.) > during installation that accompany the default installation. Each > collection should not include the 'kitchen sink' but be representative > of a useful and popular selection of software that users typically use > for that task. > > Frank has a screen shot of what he has come up with here: > http://xdesign.sfbay.sun.com/projects/solaris/subprojects/install/design/screensSlim08-11.html > > > If the number of collection choices is larger than about 6, we may have > to add a "Software" screen following the Welcome screen. I see two paths: 1) Collections as group packages that were created for the convenience of users. -- Advantages: * This would work fairly well given that we already have group packages for many bits (Sun Studio, gcc, GNOME Development, netbeans, clustertools, etc.). * Allows you to avoid hard-coding summaries and descriptions of the collection, icons, etc. and place them into the package metadata. * Doesn't require coordination with whatever groups are responsible for producing the packages contained within a collection for metadata updates. * Selection of packages within a collection is fairly easy as they are just the dependencies of the group package. -- Disadvantages: * Those packages would need a generic metadata tag to make it easy to be able to identify them or a special categorisation. 2) Collections are simply packages that have been tagged with an additional, special category. -- Advantages: Selection of individual packages within a collection is easy. -- Disadvantages: Addition of an unnecessary category that will show up in package manager and other places. Higher maintenance as it requires coordination among the various groups that produce the packages contained within a collection. Whatever you do, you shouldn't be hard-coding the list of these collections. It should simply be obtained using the pkg(5) api. > 2) What do we want to display in terms of data for the user with regard > to software collections? > > -Do we want to display the list of packages included in a software > collection to the users? -Do we want to provide the ability for users > to pick and choose > outside the collections? There's a fine line here between convenience and insanity. I do not believe that you should provide "general package installation selection" functionality from within the installer. Not only will that mean that you end up duplicating a lot of the functionality that the package manager provides, but it will just make it painful for you later on whenever bigger changes happen in the packaging system. Another issue that you're going to encounter is that pkg(5) can't tell you the space required to install a given collection ahead of time (actually it can't tell you that at all at the moment; an api change is still pending). That means that the offer of installing additional collections really can't happen until you have an installed image (that is, you've used cpio or whatever to install the 'base system image'). This is because you will have to ask ips to create an 'install plan', which you can use afterwards to determine how much space will be required and it needs an image to do that. You could possibly attempt to use the LiveCD itself as the image, but the last time I checked, the LiveCD didn't leave much free space on the ramdisk and ips may need a lot of that, or memory, to calculate some of what you asked it for. > 3) How can we maintain the list of packages now, since IPS does not > currently provide an API for querying for the info.classification tag? > > Evan did some research on this, the summary of which follows: > "The current Package Manager is maintaining it's own set of > "collections" or groupings and that using the currently available tools > we would have to do the same, using something like the .p5i files to > define these. No, .p5i files would not be the way to define these :) See my response to #1. Admittedly, you could hack something up using .p5i files today, but there would be little point in doing so since that would not be much different than hard-coding the list of packages in each collection, etc. > Going forward the IPS client API will be enhanced to allow us to use the > info.classification tag and query IPS for this information for > dynamically building up these collections or groupings. " Correct. Cheers, -- Shawn Walker