PygtkDebconf
3180
Comment: put some of the stuff back under rationale
|
3193
needs priority
|
Deletions are marked like this. | Additions are marked like this. |
Line 8: | Line 8: |
* Priority: | * Priority: NeedsPriority |
PygtkDebconf
Status
Created: Date(2005-04-26T06:56:56Z) by OliverGrawert
Priority: NeedsPriority
People: OliverGrawertLead, ColinWatsonSecond
Contributors: OliverGrawert
Interested: JuanjeOjeda, MichaelVogt
Status: BrainDump, BreezyGoal, UduBof, DistroSpecification, NewSpec
- Branch:
- Malone Bug:
- Packages:
- Depends:
- Dependents:
UduSessions: 1, 4, 8, etc
Introduction
The goal is to have an installer on the Live CD with a pretty graphical user interface. PyGTK should allow rapid development of such a GUI.
Rationale
The Debian packaging system uses DebConf to ask questions of the user during package install.
Package install <=============> confmodule <=======> debconf script shell calls stdio
The debconf system then chooses how to present the questions to the user:
- via a GUI (GTK, Qt, etc)
- text based (newt)
- no question -- take answer from Debconf database
The frontends are not cleanly separated from debconf, and must be implemented in the same language as the core debconf implementation. There are two debconf implementations (C and Perl). The C implementation is more amenable to having frontend bindings to other languages implemented in the future, but for a number of reasons it is not yet ready for mainstream use by the distribution outside the installer (although this is a long-term goal among debconf implementors).
For this reason, it may be best to write a normal PyGTK application that, on completion, primes the debconf database with answers and then kicks off the install.
Scope and Use Cases
Implementation Plan
It does not seem possible for an independent program to manipulate the debconf database directly. However, you can run arbitrary programs under debconf, which can then communicate with debconf in the same way that package install scripts do.
For example, to set a number of debconf keys, a shell script like the following could be used:
. /usr/share/debconf/confmodule db_set $KEY1 $VALUE1 db_set $KEY2 $VALUE2 ...
The script would then be invoked like this:
$ debconf -fnoninteractive program.sh
The noninteractive flag ensures that no debconf dialogs will be displayed. By not poking around in the debconf internals, this approach should function properly with both C-DebConf and Perl-DebConf.
With this particular model, the install process might run like this:
- installer prompts the user for required data
- installer writes data to a file
- installer runs "debconf -fnoninteractive install-values.sh"
install-values.sh reads the data file written by the installer, and calls db_set for each key.
- installer starts the package install phase.
Data Preservation and Migration
This is for installing new systems, so there is no data to preserve or migrate.
Packages Affected
User Interface Requirements
Outstanding Issues
UDU BOF Agenda
UDU Pre-Work
UbuntuDownUnder/BOFs/PygtkDebconf (last edited 2008-08-06 16:14:48 by localhost)