[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#221570: debconf chooses wrong resolution at High priority



severity 221570 normal
retitle 221570 xserver-xfree86: [debconf] monitor/mode-list can be used to choose a mode not in display/modes's default list
thanks

On Tue, Nov 18, 2003 at 11:26:55PM -0500, Joe Drew wrote:
> Package: xserver-xfree86
> Version: 4.2.1-14
> Severity: important
> 
> On my iBook with my debconf priority set to High, I got the option to
> set my highest resolution supported (via the medium-complexity modeline
> selector), but the default for resolutions to be used by X was set to
> 800x600 and 640x480, not including 1024x768 (which is all my iBook
> supports). Since my priority was set to High, I couldn't add 1024x768 to
> this and I got a useless screen until manually running dpkg-reconfigure.

I'm writing up a fix for this that makes the logic look a little like
this:

  db_get xserver-xfree86/config/monitor/selection-method
  case "$RET" in
    Simple)
[...]
    Medium)
      run db_input "$PRIORITY" \
        xserver-xfree86/config/monitor/mode-list
      db_go
      db_get xserver-xfree86/config/monitor/mode-list
      case "$RET" in
        "640x480 @ 60Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "28-33"
          db_set xserver-xfree86/config/monitor/vert-refresh "43-72"
          DEFAULT_MODES="640x480"
          ;;
        "640x480 @ 72Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "28-38"
          db_set xserver-xfree86/config/monitor/vert-refresh "43-72"
          DEFAULT_MODES="640x480"
          ;;
        "800x600 @ 60Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "28-38"
          db_set xserver-xfree86/config/monitor/vert-refresh "43-72"
          DEFAULT_MODES="800x600"
          ;;
        "800x600 @ 72Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "28-48"
          db_set xserver-xfree86/config/monitor/vert-refresh "43-72"
          DEFAULT_MODES="800x600"
          ;;
        "800x600 @ 85Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-54"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-85"
          DEFAULT_MODES="800x600"
          ;;
        "1024x768 @ 60Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "28-49"
          db_set xserver-xfree86/config/monitor/vert-refresh "43-72"
          DEFAULT_MODES="1024x768"
          ;;
        "1024x768 @ 70Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-57"
          db_set xserver-xfree86/config/monitor/vert-refresh "43-72"
          DEFAULT_MODES="1024x768"
          ;;
        "1024x768 @ 75Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-60"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-75"
          DEFAULT_MODES="1024x768"
          ;;
        "1152x864 @ 75Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-68"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-85"
          DEFAULT_MODES="1152x864"
          ;;
        "1280x960 @ 60Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-60"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-75"
          DEFAULT_MODES="1280x960"
          ;;
        "1280x960 @ 85Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-92"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-85"
          DEFAULT_MODES="1280x960"
          ;;
        "1600x1200 @ 60Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-75"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-85"
          DEFAULT_MODES="1600x1200"
          ;;
        "1600x1200 @ 75Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-94"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-75"
          DEFAULT_MODES="1600x1200"
          ;;
        "1600x1200 @ 85Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-107"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-85"
          DEFAULT_MODES="1600x1200"
          ;;
        "1792x1344 @ 75Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-107"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-85"
          DEFAULT_MODES="1792x1344"
          ;;
        "1792x1344 @ 60Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-84"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-75"
          DEFAULT_MODES="1792x1344"
          ;;
        "1856x1392 @ 60Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-87"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-75"
          DEFAULT_MODES="1856x1392"
          ;;
        "1856x1392 @ 75Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-113"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-75"
          DEFAULT_MODES="1856x1392"
          ;;
        "1920x1440 @ 60Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-90"
          db_set xserver-xfree86/config/monitor/vert-refresh "50-75"
          DEFAULT_MODES="1920x1440"
          ;;
        "1920x1440 @ 75Hz")
          db_set xserver-xfree86/config/monitor/horiz-sync "30-130"
          db_set xserver-xfree86/config/monitor/vert-refresh "60-160"
          DEFAULT_MODES="1920x1440"
          ;;
      esac
      ;;
    Advanced)
[...]
  esac

  # Configure available video modes.  For certain drivers we will override any
  # existing value of $DEFAULT_MODES, because they only support certain modes.
  # Otherwise, the existing value of $DEFAULT_MODES is preserved.
  db_get xserver-xfree86/config/device/driver
  case "$RET" in
    newport)
      DEFAULT_DEPTH=8
      DEFAULT_MODES="1280x1024"
      ;;
    vga)
      DEFAULT_DEPTH=4
      DEFAULT_MODES="640x480"
      ;;
    *)
      DEFAULT_DEPTH=24
      DEFAULT_MODES=${DEFAULT_MODES:="800x600, 640x480"}
      ;;
  esac

  observe "\"xserver-xfree86/config/device/driver\" is \"$RET\"; set default" \
          "color depth to $DEFAULT_DEPTH and available video modes to" \
          "\"$DEFAULT_MODES\""

  set_db_priority "medium"

  # list of desired display modes
  auto_answer db_input "$PRIORITY" xserver-xfree86/config/display/modes \
    "$DEFAULT_MODES"

This should ensure that if a mode is picked explicitly, it ends up as
the sole default video mode (unless there are extenuating circumstances
like the newport or vga drivers).  People configuring at a lower
question priority will be asked the display/modes question and can
remove the default mode, add others, etc.

Comments?

-- 
G. Branden Robinson                |     If God had intended for man to go
Debian GNU/Linux                   |     about naked, we would have been
branden@debian.org                 |     born that way.
http://people.debian.org/~branden/ |

Attachment: signature.asc
Description: Digital signature


Reply to: