Commit graph

313 commits

Author SHA1 Message Date
Jamey Sharp
e4a30756ae Release libxcb Debian package version 1.1-1. 2007-11-24 15:02:28 -08:00
Jamey Sharp
e9f909add8 Merge branch 'master' into debian 2007-11-05 15:58:40 -08:00
Jamey Sharp
3c6c8f127c Release libxcb 1.1 2007-11-04 17:29:13 -08:00
Jamey Sharp
af50de26c1 Revert "Generate error constants as XCB_BAD_*, similar to Xlib."
Since several extensions named their errors like "BadFoo", this patch
results in names like XCB_EXT_BAD_BAD_FOO, which is really awful. Those
extensions are already kind of awful, as they produce structure names
like xcb_ext_bad_foo_error_t, which is redundant.

A patch that removes "Bad" from the XML extension descriptions, while
maintaining API and ABI compatibility in XCB, is needed before this
patch can be released.

This reverts commit 158c9b6ba1.
2007-11-04 17:26:21 -08:00
Jamey Sharp
a29fbc2645 Don't hold the xlib-xcb lock while sleeping: that allows deadlock.
With this patch, `ico -threads 2` runs without deadlock.

Many thanks to Christoph Pfister <christophpfister@gmail.com> for
pointing out the problem, providing detailed analyses, explaining it to
me repeatedly until I understood what was going on, and proposing and
reviewing possible solutions.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Acked-by: Christoph Pfister <christophpfister@gmail.com>
2007-10-28 13:28:18 -07:00
Jamey Sharp
f6b75d6090 Factor pthread_cond_wait(iolock) to _xcb_wait_io.
This parallels the _xcb_lock_io and _xcb_unlock_io factoring.
2007-10-28 11:56:08 -07:00
Jamey Sharp
4d828c5eba Don't abort() on locking assertions if LIBXCB_ALLOW_SLOPPY_LOCK is set.
But do still print a full backtrace, on platforms where that's
supported.

This commit follows the spirit of Novell's libxcb-sloppy-lock.diff.

I strongly opposed proposals like this one for a long time. Originally I
had a very good reason: libX11, when compiled to use XCB, would crash
soon after a locking correctness violation, so it was better to have an
informative assert failure than a mystifying crash soon after.

It took some time for me to realize that I'd changed the libX11
implementation (for unrelated reasons) so that it could survive most
invalid locking situations, as long as it wasn't actually being used
from multiple threads concurrently.

The other thing that has changed is that most of the code with incorrect
locking has now been fixed. The value of the assert is accordingly
lower.

However, remaining broken callers do need to be fixed. That's why libXCB
will still noisily print a stacktrace (if possible) on each assertion
failure, even when assert isn't actually invoked to abort() the program;
and that's why aborting is still default. This environment variable is
provided only for use as a temporary workaround for broken applications.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Acked-by: Josh Triplett <josh@freedesktop.org>
2007-10-23 11:44:20 -07:00
Egbert Eich
09045eaac3 Allow unix:<screen> style display names again.
https://bugzilla.novell.com/show_bug.cgi?id=289007
This notion is used in a lot of scripts.
2007-07-19 17:00:18 +02:00
Josh Triplett
65ffbc6cfd Send locking assertion backtraces to stderr. Improve the heading on the backtrace. 2007-06-13 23:46:37 -07:00
Christoph Pfister
605c778e69 Print backtraces in case an assert fails inside xlib/xcb.
As you know there are some nasty libs / apps doing locking
incorrectly. In order to improve the information given to the user
when he encounters such a situation (people don't run apps in gdb
normally) I created the patch attached.
It's very non-intrusive (and affects only xlib/xcb, Josh told me on
irc that it could be useful for other areas too, personally I don't
think that it's really needed at other places ...).

Some same outputs and the discussion of them:

    lxuser@pdln:/tmp$ ./main
    Got a backtrace:
    #0 /tmp/usr/lib/libxcb-xlib.so.0 [0xb7f9d728]
    #1 /tmp/usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb7f9d861]
    #2 ./test.so(function_a+0x11) [0xb7f9f3fd]
    #3 ./test.so(function_b+0x11) [0xb7f9f410]
    #4 ./main [0x80484a7]
    #5 /lib/libc.so.6(__libc_start_main+0xdc) [0xb7e60ebc]
    #6 ./main [0x80483f1]
    main: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
    Aborted

That's kinda the normal situation.

    lxuser@pdln:/tmp$ ./main
    Got a backtrace:
    #0 /tmp/usr/lib/libxcb-xlib.so.0 [0xb7f90728]
    #1 /tmp/usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb7f90861]
    #2 /tmp/test.so [0xb7f923cd]
    #3 /tmp/test.so(function_b+0x11) [0xb7f923e0]
    #4 ./main [0x80484ab]
    #5 /lib/libc.so.6(__libc_start_main+0xdc) [0xb7e53ebc]
    #6 ./main [0x80483f1]
    main: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
    Aborted

There are two possible reasons that the name doesn't appear in #2:
a) a hidden symbol or a symbol with statical linkage in a library
b) a symbol in an app not compiled with -rdynamic.
But in both cases you still know _where_ the caller is.

Note that in this example test.so was compiled with
-fomit-frame-pointer; this isn't an issue as _one_ (= the caller)
stack trace is still valid (as long as you don't have the insane idea
to compile xcb with -fo-f-p).

Another issue that may appear is "tail call elimination" (some entries
are mysteriously missing; this is quite ugly, but you still get enough
information so that you can do something useful with the issue e.g. by
disassembling the relevant parts with gdb).

Signed-off-by: Jamey Sharp <jamey@minilop.net>
2007-06-06 15:54:11 -07:00
Jamey Sharp
e20a31d72b xcb_poll_for_event: Return already-read events before read(2)ing again. 2007-06-02 18:29:37 -07:00
Josh Triplett
9b9f9f6ae1 libxcb1-dev: Conflicts and Replaces old libxcb0-dev packages from experimental
(Closes: #407376)
2007-05-22 12:04:01 -07:00
Ian Osgood
e097542517 Fix unit tests for FreeBSD
putenv() string must contain '='
environment failure test is invalid if argument is NULL
2007-05-21 19:02:13 -07:00
Josh Triplett
7ed407417c Changes for Debian package 1.0-2: incorporate Julien's NMU, add XS-Vcs-Browser, set distribution to unstable
* Incorporate NMU by Julien Cristau; thanks, Julien!
* Add XS-Vcs-Browser field to debian/control.
* Upload to unstable.
2007-05-21 18:58:47 -07:00
Josh Triplett
b8512bafee Commit changes from Julien Cristau's 1.0-1.1 NMU.
* Non-maintainer upload.
* libxcb1-dev needs a dependency on libpthread-stubs0-dev and versioned
  dependencies on libxau-dev and libxdmcp-dev, because they are needed by
  anything using xcb.pc (closes: #408409).
2007-05-21 18:50:30 -07:00
Matthias Hopf
2ec1383a68 Merge branch 'master' of git://anongit.freedesktop.org/git/xcb/libxcb 2007-04-18 12:46:08 +02:00
Ian Osgood
158c9b6ba1 Generate error constants as XCB_BAD_*, similar to Xlib.
The previous constants remain for compatibility, but should be deprecated.
2007-04-13 15:14:12 -07:00
TORRI Vincent
f7279d8c8a Merge branch 'master' of git+ssh://git.freedesktop.org/git/xcb/libxcb 2007-04-12 15:48:44 +02:00
TORRI Vincent
0925e470b2 remove the 7th bit of the response_type for the event loops 2007-04-12 15:46:05 +02:00
Matthias Hopf
3abd41625c Update autogen.sh to one that does objdir != srcdir 2007-04-11 17:31:31 +02:00
Eamon Walsh
eaa380efef Modify new attribute from previous patch so that it is necessary only on
extensions with split names.  Tested with diff and found no difference with
previous stylesheet header-file output.
2007-04-10 11:56:06 -04:00
Eamon Walsh
91be36f845 Replaces special-casing in c-client stylesheet with support
for new attribute.  Tested with diff and found no difference with
previous stylesheet header-file output.
2007-03-29 12:28:07 -07:00
TORRI Vincent
4a60950b74 add the first step toward the documentation of the request/reply functions. The arguments of the requests are not found yet. Josh, can you look at it ? 2007-02-27 13:35:02 +01:00
TORRI Vincent
bca41cdcdb and make the html code valid... 2007-02-07 20:08:27 +01:00
TORRI Vincent
acefe83bea font part 2007-02-07 20:04:10 +01:00
TORRI Vincent
8a8c1fa184 no more xid or id fields 2007-02-07 18:57:46 +01:00
TORRI Vincent
6cedaece0e add the complete cursor example. Make the html code valid 2007-02-06 09:31:54 +01:00
TORRI Vincent
ab22a4d616 add doxygen doc for the *_end functions 2007-01-22 11:40:15 +01:00
TORRI Vincent
342e9cefcc fix all the occurence where a drawable where considered as a union 2007-01-13 11:20:55 +01:00
Josh Triplett
70a72f65e4 Add autogen.sh to EXTRA_DIST. 2006-12-10 21:10:06 -08:00
Josh Triplett
867ae5eb5c Add tools/* to EXTRA_DIST. 2006-12-10 21:09:30 -08:00
Jamey Sharp
7fdef0b363 Add version to Build-Depends on xsltproc, requiring 1.1.19-1 or newer, to get the fix for bug 398327. 2006-12-10 20:14:08 -08:00
Jamey Sharp
e8b4dd86db Use a versioned Build-Depends on libpthread-stubs0-dev, to help buildds find it in experimental. 2006-12-10 20:09:10 -08:00
Jamey Sharp
78d16b3259 Install pkg-config files to /usr/lib/pkgconfig, not /usr/share/pkgconfig. 2006-12-10 16:33:41 -08:00
TORRI Vincent
67af2d24e4 add doc tag for the _next functions. It creates doxygen doc in the header files for these functions 2006-11-28 20:26:54 +01:00
TORRI Vincent
4c8777f87a Merge branch 'master' of git+ssh://git.freedesktop.org/git/xcb/libxcb 2006-11-28 20:15:27 +01:00
TORRI Vincent
e624cca7df add some output informations to configure script 2006-11-28 20:14:16 +01:00
Tilman Sauerbeck
f486075fa0 If enable_build_docs is "no", we don't even try to look for doxygen.
Also set BUILD_DOCS in that branch. Now the disable-build-docs works
as expected.
2006-11-27 21:46:45 -08:00
Tilman Sauerbeck
2e8e6debac Fixed evaluation of the disable-build-docs argument.
Now at least enable_build_docs is set correctly.
2006-11-27 21:46:45 -08:00
Ian Osgood
19dfaf93ac Fix unit tests for FreeBSD
putenv() string must contain '='
environment failure test is invalid if argument is NULL
2006-11-26 09:27:37 -08:00
Josh Triplett
3c0727554e Add new library, -dev, and -dbg packages for libxcb-xinerama. 2006-11-26 00:12:15 -08:00
Josh Triplett
a27bafa29a Use substitition variables in xcb-xinerama.pc.in, not instances of their values
xcb-xinerama.pc.in looked more like a generated .pc file; replace specific
instances of values provided by an invocation of configure with the general
substitution variables configure replaces.
(cherry picked from commit 98e2a5617e)
2006-11-25 23:56:38 -08:00
Jamey Sharp
978e8839cb NetBSD doesn't have AI_ADDRCONFIG: use it only if it's available.
(cherry picked from commit 3360d0c79e)
2006-11-25 23:47:51 -08:00
Josh Triplett
fe12aa7dbf XS-Vcs-Git, not XS-X-Vcs-Git. 2006-11-25 23:25:11 -08:00
Josh Triplett
9ead35f73b Remove debian/.gitignore; we don't build in a git tree, and it shouldn't ship. 2006-11-25 23:00:38 -08:00
Josh Triplett
98e2a5617e Use substitition variables in xcb-xinerama.pc.in, not instances of their values
xcb-xinerama.pc.in looked more like a generated .pc file; replace specific
instances of values provided by an invocation of configure with the general
substitution variables configure replaces.
2006-11-25 22:27:33 -08:00
Ian Osgood
e74cdcd02e Bug #9119: test xcb_popcount 2006-11-25 11:00:14 -08:00
Jamey Sharp
05d23a724d libXau didn't have a correct pkg-config file until 0.99.2: fail if an older version is found. 2006-11-24 16:22:13 -08:00
Jamey Sharp
3360d0c79e NetBSD doesn't have AI_ADDRCONFIG: use it only if it's available. 2006-11-24 13:24:05 -08:00
TORRI Vincent
818811a7ac replace all the _new functions with xcb_generate_id. repalce X11/XCB with xcb. Fix a description of the default background of a window 2006-11-24 12:33:15 +01:00