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

Bug#229850: DEFAULT_HORIZ_SYNC and DEFAULT_VERT_REFRESH still ignored (updated patch)



On Sun, Sep 26, 2004 at 05:01:40PM -0400, Jay Berkenbilt wrote:
> There's at least one bug in configure_monitor that I found during my
> testing.  The place where configure_monitor decides to pre-answer the
> selection method with "Advanced" may be wrong.  If I leave it as it
> appears in the original file:
> 
>     db_subst xserver-xfree86/config/monitor/selection-method default "Advanced"
> 
> then the horiz-sync and vert-refresh debconf items never get set.  If
> I change it to this instead:
> 
>     db_set xserver-xfree86/config/monitor/selection-method "Advanced"
> 
> then everything works -- well, at least I get answers to those
> questions in the debconf database.

I cannot at present remember why I used db_subst default instead of the
latter construction.  It may have something to do with auto_answer.  I'll
review this, and may very well end up following your recommendation.

> I should point out that preinst and config do not appear to be in sync
> at the moment, or at least I don't have correct versions.  I used
> viewCVS from necrotic.deadbeast.net to grab the latest
> xserver-xfree86.config.in and xserver-xfree86.preinst.in along with
> shell-lib.sh.  I reconstructed config and preinst manually by
> inserting shell-lib.sh at the right place.  Upon doing this, I
> observed that there were no meaningful changes in either preinst or
> shell-lib.sh, which was not surprising since they still had an older
> svn revision.

Yeah, those files have not needed to change on the branch.

> Since the overall structure of config changed quite a
> bit, I couldn't just drop configure_monitor in and instead had to use
> the entire new config file.

Yes, I expected you'd have to.  I've really pounded the hell out of it.

> For whatever reason, discover decides that the vesa device, rather
> than the ATI device, is the right one for my card.  Even with correct
> settings, my monitor refresh rate is at 60Hz with the vesa driver and
> at 75Hz with the ati driver (which works fine as long as I don't load
> radeonfb).  I have a Radeon 9600 card.

As I think you have noted elsewhere, this sounds like a discover-data bug.

> Regardless of my DEBIAN_PRIORITY, I end up with a zero-length
> XF86Config file,

Very bad.  (I assume you mean XF86Config-4.)

> and I get asked three times (once in config and twice
> in preinst) whether I wish to try hardware autodetection.

Annoying.

> In the end, apt-get install aborts saying that
> xserver-xfree86/config/monitor/horiz-sync is not set and tells me to run
> dpkg-reconfigure xserver-xfree86.  Looking at
> /var/log/xserver-xfree86.config.log, I see this:
> 
> 2004-09-26 04:36:36 PM-0400 configure_monitor(): using "" selection
> method
> 
> which is what made me decide to try the change I described above.
> 
> After I make the change, I get:
> 
> 2004-09-26 04:42:11 PM-0400 configure_monitor(): using "Advanced" selection method

Sounds like you correctly diagnosed and fixed the problem.  The challenge
for me now is to figure out if there's still any justification for using
db_subst default.  To be honest I'm not sure that even works.

> I'll admit to not having a deep knowledge of debconf, so I'm not sure
> why the original code is wrong.  There is a db_get on
> xserver-xfree86/config/monitor/selection-method before the above
> message, but I never see the question.

db_get doesn't ask questions.  Only db_input does that.  Well, technically,
db_input enqueues a question for asking, and db_go runs the queue.

> In any case, the comment doesn't say that it wants to change the default:
> it says it wants to pre-answer the question, so I think the db_set is
> probably correct.

Probably so.

> I also can't see what in preinst is causing the autodetect_video_card
> question to be asked twice even though we've been through it already
> in config.

Very annoying.  Can you please send me your full config log file with the
db_subst->db-set change made?

> The good news is that, if I make the one-line change I made, at least
> I do eventually get an XF86Config-4 that has the correct refresh
> rates.

Okay, so with your one-line change, the only real problems are:
1) discover-data doesn't know about your video card
2) you get nagged to death about autodetecting the video card

Is that right?

> So obviously, there's some more work to do.... and I don't know how
> much of my testing problems were the result of my trying to cobble
> together configuration files from subversion.

Well, here's one way to find out.  I've just merged the latest changes onto
the trunk onto the debconf-overhaul branch, and run a diff between the two
trees:

$ svn diff ${xfree86_svn}trunk ${xfree86_svn}branches/debconf-overhaul | diffstat
 CHANGESETS                |  213 ++-
 TODO                      |  300 -----
 changelog                 |  108 +
 local/dexconf             |   27
 rules                     |   11
 xserver-xfree86.bug       |   16
 xserver-xfree86.config.in | 2564 ++++++++++++++++++++++++++++++----------------
 xserver-xfree86.templates |   26
 8 files changed, 1974 insertions(+), 1291 deletions(-)

Therefore, the above are the only files changed on the branch.

> Again, please let me know if you need additional testing.  I'll also try
> on some hardware that discover recognizes better to see whether some of
> the problems go away.

Okay.  If you could get me that config log, that would be great.  I don't
think there's a need for more testing on your part until I've made further
changes to configure_monitor(), though.

-- 
G. Branden Robinson                |    If you wish to strive for peace of
Debian GNU/Linux                   |    soul, then believe; if you wish to
branden@debian.org                 |    be a devotee of truth, then
http://people.debian.org/~branden/ |    inquire.     -- Friedrich Nietzsche

Attachment: signature.asc
Description: Digital signature


Reply to: