Subject: Re: bug#22932: 25.0.92; X protocol error: BadRequest (invalid request code or no such operation) on protocol request 149

From: Ken Raeburn <[email-masked]>
Date: Tue, 8 Mar 2016 15:43:38 -0500

On Tue, Mar 8, 2016 at 3:10 PM, John Eismeier <[email-masked]> wrote:

>
> Ken,
>
> I am running Ubuntu 14.04 LTS.
>
>
> xrandr  -v
> xrandr program version       1.4.1
> Server reports RandR version 1.2
>

How odd! I'm running Ubuntu 12.04 LTS at work and its X server reports
support for 1.3.

>
> What should I do next ?  I still need to run this revision of the OS
> with our current product development strategy.
>

Well, I think I see where the issue is. The code as written -- at least in
that function -- assumes that if your libraries have the newer function,
then your server supports it. That doesn't seem to be the case here.

In reading up on this today, I've already run across a few web pages
showing which RandR requests were added in 1.3 and how to test the protocol
version supported by the server. If you want to dig into X11 programming
you're welcome to help out :-), otherwise I'll try to make some time this
evening to look into coding the run-time protocol version checks.

In the meantime, if you want something that just runs without crashing this
way, you could disable the use of the XRANDR extension. The configure
script isn't set up to make that easy from the command line, but you could
edit the config files generated. After running configure, look in
src/config.h for the line:

#define HAVE_XRANDR 1

... and comment it out. Then finish building Emacs normally. From a quick
test on my system that seems to work okay, though I don't know off the top
of my head what functionality might be diminished by losing the xrandr
support.

Ken