Launchpad Entry: enabling-additional-components
Created: 2006-06-20 by MichaelVogt
Contributors: MichaelVogt, MattZimmerman, SebastianHeinlein
Packages affected: synaptic, gnome-app-install, software-preferences, ubiquity, debian-installer, adept
Summary
The unsupported "universe" and "multiverse" components are currently turned off by default in Ubuntu. We want to enable them by default.
Rationale
Enabling universe and multiverse is one of the first things that people usually do. We should enable them by default and make sure that we show clearly in the various GUIs what is supported and what is unsupported.
Use cases
- Alice wants to install a new audio codec that is only available in universe.
- Bob is very interested in gaming and thinks the list of games in main is too limited. He likes to install games from multiverse and does not care if those are not officially supported.
- Mallory always wondered why he had to do a additional click and download in gnome-app-install when he wanted to install his first application from universe.
Scope
Gnome-app-install, synaptic and adept needs to be modified to show better what component a package comes from. The installer needs to ship a sources.list with universe and multiverse enabled.
Design
We have unsupported software available, but we make it easy for the user to turn off unsupported software if he wants. To permanently turn it off the user just needs to click on "universe", "multiverse" in the software preferences dialog.
Software Preferences
The software preferences dialog needs to present the available official repositories in the canonical order (main, restricted, universe, multiverse) and it must be easy and one-click to turn it off permanently. The descriptions are:
- Canonical supported Open Source software (main)
- Proprietary drivers for devices (restricted)
- Community maintained open source software (universe)
- Software restricted by copyright or legal issues (multiverse)
There will also be a command-line switch to turn components on/off. It will be:
-e ENABLE_COMPONENT, --enable-component=ENABLE_COMPONENT -x DISABLE_COMPONENT, -disable-component=DISABLE_COMPONENT
Gnome-App-Install
Gnome-app-install gets a "Show" option menu with the following options:
- All available applications
- All Open Source Applications
- Supported Ubuntu Applications
- Third party applications
- Installed Applications
The default is "Supported Ubuntu applications". This way the user can decide what applications he wants to see. If he is only interested in free software he does not have to change the default (note that "restricted" does not have to be included in the above list because it does not ship desktop files). In addition to the filter all applications in gnome-app-install get a little emblem that indicates graphically where the application comes from and what support status it has (plus a tooltip to explain the emblem). If the list of "All available applications" is equal to the list of Supported Ubuntu applications we should ensure that the former is not displayed in the GUI.
A new button is added to g-a-i that lets you go to the software preferences dialog quickly to turn off unsupported software easily. When universe/multiverse software was disabled globally g-a-i shouldn't show them at all. This can be archived by checking the "X-AppInstall-Component" field against the global settings in the sources.list and filtering out applications that do not match.
When the user selects a universe/multiverse package for the first time a dialog is popped up (just like the current dialog) that explains about the issue that the package is coming from universe and how to detect it.
Implementation note: The default is currently "All available applications". We warn on the first install of "universe" or "multiverse" so the user knows what he is doing when he selects applications from different categories. A button to run "software-propoerties" was added, but I would rather want to get rid of it again because a user how only uses "gnome-app-install" and "update-manager" to manage his software does not need to change anything there. It is enough to set "Supported Ubuntu Applications" and he will never see universe/multiverse again. The software-propoerties is important for synaptic users, but those already have it available via Settings/Repositories.
Synaptic
Synaptic will follow gnome-app-install and have the emblems in the GUI with the appropriate explanation. The sections view already distinguishes between "main", "universe", "multiverse".
A new default view "Component" (in addition to Section, Status, Search Results) will be added that includes "main", "restricted", "universe", "multiverse", "3rd party". The custom filter property will be extended to support the component as a match rule. With the various sorting options that the treeview offers this should give the user enough flexibility to easily see what non-supported/non-free packages he has installed.
The "Components" view will default to "main" on the first start and synaptic will automatically save the last view that the user had selected so that if he always wants to see "main" packages he just does not change the view.
The repository editor to permanently turn off the repositories are available via "Preferences/Repositories".
Implementation notes: The components view is called "Origin" view and shows server and component for all packages. Synaptic will show a emblem for supported package along with a tooltip in the description of the package. A filter rule to match against origin is available as well.
Adept
Adept needs to have an easy option to see what software sources is supported and what is not and needs a better repository editor that makes it easy to turn off unsupported software. This is specified as part of KubuntuFeistyAdeptChanges.
Installer
The installer installs Packages.gz files for all components. This ensures that the user does not have to download the full Packages file on the first apt-get update (because apt uses If-Modified-Since on the available Packages file). This is important for users behind dialup connections because for them the hit of the 3.5MB of the Packages.bz2 file is pretty big.
Command-line
We assume for the command-line users that they will pay attention to the "Section" of the "apt-cache show" output. In addition we should provide a convenient way to disable the non-free repositories. In addition to the current "software-properties --enable-component=" we should provide a "software-properties --disable-component=" commandline argument. We could also tell the user (analog to the current "The following NEW packages will be installed:" message) about unsupported packages that are installed (also this might be too much clutter).
Backoff plan
As a backoff plan we will just keep the situation as it is now (multiverse/universe disabled) and use "software-properties --enable-component=universe" if universe is required.
Implementation
The following steps should be taken to update the UIs:
- Make sure that turning off universe/multiverse is just a matter of three clicks (deselect, select, apply) - DONE
- update gnome-app-install to make the available filtering more flexible and make it easy to only view supported applications - DONE
- update synaptic to support a icon for the components - DONE
- add support in synaptic for the "Components" view - DONE
- add support in synaptic for the component matching in the custom filters - DONE
- add support in adept for the supported icon (check with Riddell who can do this)
- add support in the KDE repository editor to make disabling the components easy (check with Riddell who can do this)
See "ImplementationNotes" in for the details of the implemenation.
Comments
NoahSlater: Please do not enable multiverse by default as this is non-free software and should only be available as an option. I believe this to be in direct contravention to Ubuntu's policy: 2. Licence Freedom. Ubuntu includes only Free Software applications. You are free to modify or change any aspect of your Ubuntu system.
I disagree because the software is not installed by default; it is merely available by default. By your logic, Ubuntu should not be able to connect to the Internet which is covered in all manner of proprietary software. If Ubuntu started distributing with Multiverse applications pre-installed then even I would be angry, but that has not happened and will not happen. -DylanMccall. February 16, 2007.
SebastianHeinlein: I would vote for moving Software Sources from the System menu, since gnome-app-install does work above the source handling. It provides its own abstraction. So the dialog could be moved to Synaptics' preferences menu and update-manager's (not yet existing) preferences button. This way gnome-app-install won't be on the same interaction level anymore and we would avoid to synchronize them.
- I agree with removing "Software Sources" from the "System" menu, and accessing it instead from the tool(s) for which it applies.
I'm unsure about the choice of items for g-a-i's "Show" menu. Do they make it impossible to show Ubuntu-supported and third-party applications simultaneously? And why does every item in the menu include the word "applications"?