Re: [PATCH edid-decode v2] data: Add Dell UP2715k 5k EDID with DisplayID
Hi Adam Would you also merge this test data please? Thanks Mark On Tue, 07 Feb 2017 11:12:06 +, Mark Ferry wrote: > Test data for DisplayID extension parsing. > > --- > data/dell-up2715k-dp | Bin 0 -> 384 bytes > 1 file changed, 0 insertions(+), 0 deletions(-) > create mode 100644 data/dell-up2715k-dp > > diff --git a/data/dell-up2715k-dp b/data/dell-up2715k-dp > new file mode 100644 > index > ..18404713e9c29f265e315e385cd7fe71dc657fa2 > GIT binary patch > literal 384 > zcmZSh4+abZYqmKA8<-f%N;0x+wNa|DDpFk&V7y(8J0L`ngQ1aOGs8uOl@5&!7Y{H3 > zL0BBaf&~jS0}K>Q8A1aT85pD(7#RLDxEXpm` zdV@s%GRS(%Z!u%!QUC*{6HLrJAC)=T*_#;|7 z3WO>d7=#$angj$G{&U)MgG~my8WI}J3^qO&7+U`G&1cYWkY~u}uw`IkU||r5WnlTw > l2@$jB)&PoeG91~1EEWhBV`t#vXk_4EVPIhr!0P0y69BOUMF9W+ > > literal 0 > HcmV?d1 -- Cognomen Ltd http://cognomen.co.uk +44 7855 790184 signature.asc Description: Digital signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH edid-decode v2] data: Add Dell UP2715k 5k EDID with DisplayID
On Wed, 2017-03-29 at 13:43 +0100, Mark Ferry wrote: > Hi Adam > > Would you also merge this test data please? My apologies! This patch didn't show up in the patchwork client, it gets confused by binary patches. Merged, thanks! remote: E: failed to hash rev cb0ee55074d1d50e8e976026d6de759dc5494624. remote: I: 0 patch(es) updated to state Accepted. To ssh://git.freedesktop.org/git/xorg/app/edid-decode 24ebe51..cb0ee55 master -> master There's a bug filed about the patchwork issue: https://github.com/dlespiau/patchwork/issues/191 - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH xserver] dix: Don't leak swapped events
On Wed, 2017-03-29 at 10:28 +1000, Peter Hutterer wrote: > On Tue, Mar 28, 2017 at 01:42:21PM -0400, Adam Jackson wrote: > > for (i = 0; i < count; i++) { > > -eventFrom = &events[i]; > > -eventTo = swapEvent; > > +xEvent swapped; > > as keith already pointed out, this will break for generic events. but you > can still get the same effect by switching to > unsigned char buffer[eventlength]; > xEvent *swapped = buffer; > and get rid of the heap allocation this way. Are we okay with VLAs now? I mean, I am, just it's not currently one of the C extensions we require. - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH xserver] xfree86: Remove driver entity hooks and private
On Tue, 2017-03-28 at 12:48 -0700, Eric Anholt wrote: > > Adam Jackson writes: > > > No driver is using these, as far as I know. > > If we're going to leave the args in place for xf86ConfigPciEntity, could > we assert that init/enter/leave are NULL, to catch if a driver *did* > exist that used them? We sure could, let's do that. I didn't take them out because I didn't feel like fixing up literally every driver just for this. One of these days we'll have a less boilerplatey driver model... > The docs for xf86ConfigPciEntity() should probably also note that > enter/init/leave are unused. The docs for xf86ConfigIsaEntity(), on the > other hand, should probably be deleted :) Will do. - ajax ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
[PATCH xserver v2] xfree86: Remove driver entity hooks and private
No driver is using these, as far as I know. v2: Tripwire the entity hook arguments to xf86Config*Entity, fix documentation (Eric Anholt) Signed-off-by: Adam Jackson --- hw/xfree86/common/xf86.h | 3 -- hw/xfree86/common/xf86Bus.c| 43 - hw/xfree86/common/xf86Bus.h| 4 -- hw/xfree86/common/xf86Events.c | 4 -- hw/xfree86/common/xf86Helper.c | 6 +-- hw/xfree86/common/xf86Init.c | 3 -- hw/xfree86/common/xf86PM.c | 3 -- hw/xfree86/common/xf86Priv.h | 2 - hw/xfree86/common/xf86pciBus.c | 8 ++-- hw/xfree86/doc/ddxDesign.xml | 87 +++--- 10 files changed, 12 insertions(+), 151 deletions(-) diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h index ee24835..f1a5bd6 100644 --- a/hw/xfree86/common/xf86.h +++ b/hw/xfree86/common/xf86.h @@ -154,9 +154,6 @@ extern _X_EXPORT GDevPtr xf86GetDevFromEntity(int entityIndex, int instance); extern _X_EXPORT void xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn, int entityIndex); extern _X_EXPORT EntityInfoPtr xf86GetEntityInfo(int entityIndex); -extern _X_EXPORT Bool xf86SetEntityFuncs(int entityIndex, EntityProc init, - EntityProc enter, EntityProc leave, - void *); extern _X_EXPORT Bool xf86IsEntityPrimary(int entityIndex); extern _X_EXPORT ScrnInfoPtr xf86FindScreenForEntity(int entityIndex); diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c index 9836803..6bbf489 100644 --- a/hw/xfree86/common/xf86Bus.c +++ b/hw/xfree86/common/xf86Bus.c @@ -313,19 +313,6 @@ xf86IsEntityPrimary(int entityIndex) } Bool -xf86SetEntityFuncs(int entityIndex, EntityProc init, EntityProc enter, - EntityProc leave, void *private) -{ -if (entityIndex >= xf86NumEntities) -return FALSE; -xf86Entities[entityIndex]->entityInit = init; -xf86Entities[entityIndex]->entityEnter = enter; -xf86Entities[entityIndex]->entityLeave = leave; -xf86Entities[entityIndex]->private = private; -return TRUE; -} - -Bool xf86DriverHasEntities(DriverPtr drvp) { int i; @@ -543,38 +530,12 @@ xf86GetDevFromEntity(int entityIndex, int instance) } /* - * xf86AccessEnter() -- gets called to save the text mode VGA IO - * resources when reentering the server after a VT switch. - */ -void -xf86AccessEnter(void) -{ -int i; - -for (i = 0; i < xf86NumEntities; i++) -if (xf86Entities[i]->entityEnter) -xf86Entities[i]->entityEnter(i, xf86Entities[i]->private); -} - -void -xf86AccessLeave(void) -{ -int i; - -for (i = 0; i < xf86NumEntities; i++) -if (xf86Entities[i]->entityLeave) -xf86Entities[i]->entityLeave(i, xf86Entities[i]->private); -} - -/* * xf86PostProbe() -- Allocate all non conflicting resources * This function gets called by xf86Init(). */ void xf86PostProbe(void) { -int i; - if (fbSlotClaimed && ( #if (defined(__sparc__) || defined(__sparc)) && !defined(__OpenBSD__) sbusSlotClaimed || @@ -590,10 +551,6 @@ xf86PostProbe(void) )) FatalError("Cannot run in framebuffer mode. Please specify busIDs " " for all framebuffer devices\n"); - -for (i = 0; i < xf86NumEntities; i++) -if (xf86Entities[i]->entityInit) -xf86Entities[i]->entityInit(i, xf86Entities[i]->private); } int diff --git a/hw/xfree86/common/xf86Bus.h b/hw/xfree86/common/xf86Bus.h index c59625d..52b497a 100644 --- a/hw/xfree86/common/xf86Bus.h +++ b/hw/xfree86/common/xf86Bus.h @@ -48,10 +48,6 @@ typedef struct { DriverPtr driver; int chipset; int entityProp; -EntityProc entityInit; -EntityProc entityEnter; -EntityProc entityLeave; -void *private; Bool active; Bool inUse; BusRec bus; diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 9a8f432..7b5d1df 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -445,8 +445,6 @@ xf86VTLeave(void) for (i = 0; i < xf86NumGPUScreens; i++) xf86GPUScreens[i]->LeaveVT(xf86GPUScreens[i]); -xf86AccessLeave(); /* We need this here, otherwise */ - if (!xf86VTSwitchAway()) goto switch_failed; @@ -472,7 +470,6 @@ xf86VTLeave(void) switch_failed: DebugF("xf86VTSwitch: Leave failed\n"); -xf86AccessEnter(); for (i = 0; i < xf86NumScreens; i++) { if (!xf86Screens[i]->EnterVT(xf86Screens[i])) FatalError("EnterVT failed for screen %d\n", i); @@ -517,7 +514,6 @@ xf86VTEnter(void) if (xorgHWAccess) xf86EnableIO(); -xf86AccessEnter(); for (i = 0; i < xf86NumScreens; i++) { xf86Screens[i]->vtSema = TRUE; if (!xf86Screens[i]->EnterVT(xf86Screens[i])) diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c in
Re: [PATCH xserver] dix: Don't leak swapped events
Peter Hutterer writes: > as keith already pointed out, this will break for generic events. but you > can still get the same effect by switching to >unsigned char buffer[eventlength]; >xEvent *swapped = buffer; > and get rid of the heap allocation this way. You'll have to use 'uint64_t buffer[eventlength/8]' to get the alignment fixed up, but otherwise, this looks good. Although, frankly, having a malloc'd buffer which gets resized as necessary is far from the worse thing this code could do, and avoids stack overflow problems if 'eventlength' turns out to be mis-computed. -- -keith signature.asc Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH xserver] dix: Don't leak swapped events
Adam Jackson writes: > Are we okay with VLAs now? I mean, I am, just it's not currently one of > the C extensions we require. I'd be happy to just use malloc like the code currently does. -- -keith signature.asc Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH rendercheck 4/5] Convert the manpage for Meson's configure script.
Peter Hutterer writes: > On Fri, Mar 24, 2017 at 01:17:49PM -0700, Eric Anholt wrote: >> --- >> man/rendercheck.man | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/man/rendercheck.man b/man/rendercheck.man >> index b7be417d5c37..8b7dccab7725 100644 >> --- a/man/rendercheck.man >> +++ b/man/rendercheck.man >> @@ -1,5 +1,5 @@ >> .ds q \N'34' >> -.TH rendercheck 1 __xorgversion__ >> +.TH rendercheck 1 "rendercheck @rendercheckversion@" "X Version 11" > > don't you need a change to the meson.build file now? It still has code for > __xorgversion__ in it now and this one seems to be the empty string in the > final man page. Yeah, the manpage generation was a mess. I'm going to send out a new version now. signature.asc Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
[PATCH rendercheck v3 3/4] Simplify manpage variable substitution for Meson.
The previous code was contorting itself to do the substitution in the same source format as the xorg automake macros. Now that automake is gone, we can simplify it. Signed-off-by: Eric Anholt --- man/rendercheck.man | 2 +- meson.build | 15 --- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/man/rendercheck.man b/man/rendercheck.man index b7be417d5c37..3d0e16f16f0f 100644 --- a/man/rendercheck.man +++ b/man/rendercheck.man @@ -1,5 +1,5 @@ .ds q \N'34' -.TH rendercheck 1 __xorgversion__ +.TH rendercheck 1 "rendercheck @version@" "X Version 11" .SH NAME rendercheck \- simple tests of the X Render extension. .SH SYNOPSIS diff --git a/meson.build b/meson.build index 25b8e4381ec1..e9f5bf45eb9a 100644 --- a/meson.build +++ b/meson.build @@ -48,19 +48,12 @@ executable( install: true, ) -man_xorgversion = '"rendercheck @0@" "X Version 11"'.format(project_version) - -custom_target( -'manpage', +man_config = configuration_data() +man_config.set('version', project_version) +rendercheck_man = configure_file( input: 'man/rendercheck.man', output: 'rendercheck.1', -command: [ -'sed', -'-e', - 's/__xorgversion__/@0@/'.format(man_xorgversion), - '@INPUT@' -], -capture: true, +configuration: man_config, install: true, install_dir: join_paths(get_option('mandir'), 'man1'), ) -- 2.11.0 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
[PATCH rendercheck v3 4/4] Explain how to build using meson in the README.
Signed-off-by: Eric Anholt --- README | 8 1 file changed, 8 insertions(+) diff --git a/README b/README index f5af0b0c64eb..2f8ec1ab0e46 100644 --- a/README +++ b/README @@ -10,3 +10,11 @@ Tests currently include: - Linear gradients - Repeating sources/masks at POT and non-POT sizes - Some regression tests for bugs from freedesktop.org bugzilla. + +rendercheck uses the Meson build system, which uses the "ninja" build +backend on Linux. The three commands to configure (building into the +build/ directory), build, and install are: + +meson build +ninja -C build +sudo ninja -C build install -- 2.11.0 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
[PATCH rendercheck v3 2/4] Remove the autotools build system.
Signed-off-by: Eric Anholt --- .gitignore | 79 - Makefile.am | 43 --- autogen.sh | 17 - configure.ac| 29 - main.c | 6 - man/Makefile.am | 38 --- meson.build | 1 - 7 files changed, 213 deletions(-) delete mode 100644 Makefile.am delete mode 100755 autogen.sh delete mode 100644 configure.ac delete mode 100644 man/Makefile.am diff --git a/.gitignore b/.gitignore index 009669fbff0e..67020331ba6e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,80 +1 @@ -# -# X.Org module default exclusion patterns -# The next section if for module specific patterns -# -# Do not edit the following section -# GNU Build System (Autotools) -aclocal.m4 -autom4te.cache/ -autoscan.log -ChangeLog -compile -config.guess -config.h -config.h.in -config.log -config-ml.in -config.py -config.status -config.status.lineno -config.sub -configure -configure.scan -depcomp -.deps/ -INSTALL -install-sh -.libs/ -libtool -libtool.m4 -ltmain.sh -lt~obsolete.m4 -ltoptions.m4 -ltsugar.m4 -ltversion.m4 -Makefile -Makefile.in -mdate-sh -missing -mkinstalldirs -*.pc -py-compile -stamp-h? -symlink-tree -texinfo.tex -ylwrap - -# Do not edit the following section -# Edit Compile Debug Document Distribute -*~ -*.[0-9] -*.[0-9]x -*.bak -*.bin -core -*.dll -*.exe -*-ISO*.bdf -*-JIS*.bdf -*-KOI8*.bdf -*.kld -*.ko -*.ko.cmd -*.lai -*.l[oa] -*.[oa] -*.obj -*.patch -*.so -*.pcf.gz -*.pdb -*.tar.bz2 -*.tar.gz -# -# Add & Override patterns for rendercheck -# -# Edit the following section as needed -# For example, !report.pc overrides *.pc. See 'man gitignore' -# -rendercheck version.h diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index f77cb4f2a651.. --- a/Makefile.am +++ /dev/null @@ -1,43 +0,0 @@ -SUBDIRS = man - -bin_PROGRAMS = rendercheck - -rendercheck_SOURCES = \ - main.c \ - ops.c \ - rendercheck.h \ - tests.c \ - t_blend.c \ - t_bug7366.c \ - t_composite.c \ - t_dstcoords.c \ - t_fill.c \ - t_gradient.c \ - t_gtk_argb_xbgr.c \ - t_libreoffice_xrgb.c \ - t_repeat.c \ - t_shmblend.c \ - t_srccoords.c \ - t_tsrccoords.c \ - t_tsrccoords2.c \ - t_triangles.c - -AM_CFLAGS = $(RC_CFLAGS) $(CWARNFLAGS) -AM_CPPFLAGS = -D_GNU_SOURCE -rendercheck_LDADD = $(RC_LIBS) - -MAINTAINERCLEANFILES = ChangeLog INSTALL -EXTRA_DIST = \ - doc/AddingNewTests \ - doc/TODO \ -autogen.sh - -.PHONY: ChangeLog INSTALL - -INSTALL: - $(INSTALL_CMD) - -ChangeLog: - $(CHANGELOG_CMD) - -dist-hook: ChangeLog INSTALL diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 5b20136d3e79.. --- a/autogen.sh +++ /dev/null @@ -1,17 +0,0 @@ -#! /bin/sh - -srcdir=`dirname "$0"` -test -z "$srcdir" && srcdir=. - -ORIGDIR=`pwd` -cd "$srcdir" - -autoreconf -v --install || exit 1 -cd "$ORIGDIR" || exit $? - -git config --local --get format.subjectPrefix || -git config --local format.subjectPrefix "PATCH rendercheck" - -if test -z "$NOCONFIGURE"; then -exec "$srcdir"/configure "$@" -fi diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 2a427934d70c.. --- a/configure.ac +++ /dev/null @@ -1,29 +0,0 @@ -# -*- Autoconf -*- -# Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.60) -AC_INIT([rendercheck], -[1.5], -[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], -[rendercheck]) - -AC_CONFIG_SRCDIR([Makefile.am]) -AM_INIT_AUTOMAKE([foreign dist-bzip2]) - -# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS -m4_ifndef([XORG_MACROS_VERSION], - [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])]) -XORG_MACROS_VERSION(1.8) -XORG_DEFAULT_OPTIONS -XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-shadow]) - -# Checks for header files. -AC_CHECK_HEADERS([err.h]) - -# Checks for pkg-config packages -PKG_CHECK_MODULES(RC, [xrender xext x11 xproto >= 7.0.17]) - -AC_CONFIG_FILES([Makefile - man/Makefile]) - -AC_OUTPUT diff --git a/main.c b/main.c index 86346f031707..5ec80901ad51 100644 --- a/main.c +++ b/main.c @@ -26,9 +26,7 @@ #include #include #include -#ifdef HAVE_VERSION_H #include "version.h" -#endif bool is_verbose = false, minimalrendering = false; int enabled_tests = ~0;/* Enable all tests by default */ @@ -292,11 +290,7 @@ int main(int argc, char **argv) /* Print the version string. Bail out if --version was requested and * continue otherwise. */ -#ifdef HAVE_VERSION_H printf("rendercheck %s\n", VERSION); -#else - puts(PACKAGE_STRING); -#endif if (print_version)
[PATCH rendercheck v3 1/4] Add a meson build system.
Meson allows the configure step to be run faster (.3 seconds compared to autogen.sh's 3.9 seconds on my system) and a full rebuild (touch rendercheck.h; make) to run faster (.05s instead of .07s). Rendercheck is pretty much the best case scenario for autotools, with limited configure-time autodetection, non-recursive make, and no libtool, so it seems like an interesting test-case to start with for meson conversion. v2: Add missing check for err.h v3: Add a linebreak after printing the version (by Peter), fix manpage variable substitution (anholt). Signed-off-by: Eric Anholt --- .gitignore | 1 + main.c | 7 +++ meson.build | 67 + 3 files changed, 75 insertions(+) create mode 100644 meson.build diff --git a/.gitignore b/.gitignore index 0c428075e54f..009669fbff0e 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,4 @@ core # For example, !report.pc overrides *.pc. See 'man gitignore' # rendercheck +version.h diff --git a/main.c b/main.c index 0d3d14637aaa..86346f031707 100644 --- a/main.c +++ b/main.c @@ -26,6 +26,9 @@ #include #include #include +#ifdef HAVE_VERSION_H +#include "version.h" +#endif bool is_verbose = false, minimalrendering = false; int enabled_tests = ~0;/* Enable all tests by default */ @@ -289,7 +292,11 @@ int main(int argc, char **argv) /* Print the version string. Bail out if --version was requested and * continue otherwise. */ +#ifdef HAVE_VERSION_H + printf("rendercheck %s\n", VERSION); +#else puts(PACKAGE_STRING); +#endif if (print_version) return 0; diff --git a/meson.build b/meson.build new file mode 100644 index ..bb4171d598c0 --- /dev/null +++ b/meson.build @@ -0,0 +1,67 @@ +project('rendercheck', 'c') +project_version = '1.5' +cc = meson.get_compiler('c') + +if cc.has_header('err.h') +add_project_arguments('-DHAVE_ERR_H', language: 'c') +endif + +add_project_arguments('-D_GNU_SOURCE', language: 'c') +add_project_arguments('-DHAVE_VERSION_H', language: 'c') + +srcs = [ +'main.c', +'ops.c', +'tests.c', +'t_blend.c', +'t_bug7366.c', +'t_composite.c', +'t_dstcoords.c', +'t_fill.c', +'t_gradient.c', +'t_gtk_argb_xbgr.c', +'t_libreoffice_xrgb.c', +'t_repeat.c', +'t_shmblend.c', +'t_srccoords.c', +'t_tsrccoords.c', +'t_tsrccoords2.c', +'t_triangles.c', +] + +version_config = configuration_data() +version_config.set_quoted('VERSION', project_version) + +configure_file( +output: 'version.h', +configuration: version_config, +) + +executable( +'rendercheck', +srcs, +dependencies: [ +dependency('xrender'), +dependency('xext'), +dependency('x11'), +dependency('xproto', version: '>= 7.0.17'), +], +install: true, +) + +man_xorgversion = '"rendercheck @0@" "X Version 11"'.format(project_version) + +custom_target( +'manpage', +input: 'man/rendercheck.man', +output: 'rendercheck.1', +command: [ +'sed', +'-e', + 's/__xorgversion__/@0@/'.format(man_xorgversion), + '@INPUT@' +], +capture: true, +install: true, +install_dir: join_paths(get_option('mandir'), 'man1'), +) -- 2.11.0 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH xserver v2] xfree86: Remove driver entity hooks and private
Adam Jackson writes: > No driver is using these, as far as I know. > > v2: Tripwire the entity hook arguments to xf86Config*Entity, fix > documentation (Eric Anholt) Reviewed-by: Eric Anholt signature.asc Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel