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