severity 583388 serious tag 583388 patch thanks (control bcc'd) Julien Cristau <jcristau@debian.org> (26/06/2010): > I can confirm this. Looks like a cdebconf/gtk issue, there are two > 'screenshot' and two 'go back' buttons on that screen, and syslog has: > > debconf: cdebconf_gtk (process:318): WARNING: cdebconf_gtk_choice_model_create_full failed. > debconf: cdebconf_gtk (process:318): WARNING: tag "keyboard-configuration/layout" failed to display! > > which I guess are related. Any cdebconf gurus could shed some light > on this? OK, let's call ourselves cdebconf gurus now that we found out what was causing this. 1. Replicate the issue on a regular system for easy debugging: DEBCONF_USE_CDEBCONF=1 /usr/lib/cdebconf/debconf-loadtemplate keyboard-configuration /usr/lib/cdebconf/debconf-loadtemplate /var/lib/dpkg/info/keyboard-configuration.templates DEBCONF_DEBUG=. XAUTHORITY=/home/jcristau/.Xauthority DEBIAN_FRONTEND=gtk DEBCONF_USE_CDEBCONF=1 DISPLAY=:0 /usr/lib/cdebconf/dpkg-reconfigure -plow keyboard-configuration 2. Realize what's going on: Splitting [I, Will, Save, The, Whole, List, Here,] … ERROR:/home/julien/src/debian.org/svn/d-i/packages/cdebconf/src/modules/frontend/gtk/choice_model.c:162:cdebconf_gtk_choice_model_create_full: assertion failed: (sorted_count == count) 3. Suspect what's causing this: Trailing comma in the (extra-long) keyboard layout choices? 4. Experiment: Remove the trailing comma from /var/lib/cdebconf/questions.dat, and try again. Same error, and the comma is back in that file. 5. Fix for real: Edit /var/lib/dpkg/info/keyboard-configuration.config, and add the following line in ask_debconf(), right before the if part, once all choices have been merged together: choices=`echo $choices | sed 's/,$//'` Patch (against svn) attached. 6. Profit: I'm going to call it a serious bug in console-setup-udeb, and a wishlist bug in cdebconf, which probably could be a bit more clueful and be able to deal gracefully with that extra comma. I'll leave commenting, objecting, cloning, reassigning, and whatevering to its maintainers. Many thanks to Julien for getting me started with the reproducibility in a regular environment. Mraw, KiBi.
--- a/debian/keyboard-configuration.config +++ b/debian/keyboard-configuration.config @@ -160,6 +160,8 @@ $choices2" | sed -e 's/$/,/'` choices=`echo $choices | sed 's/, *$//' | regex_unescape` + choices=`echo $choices | sed 's/,$//'` + if echo "$choices" | grep '[^\\\\],' >/dev/null; then db_subst $template CHOICES "$choices" default_description=`echo "$kbdnames$add" |
Attachment:
signature.asc
Description: Digital signature