--- xorg-server-1.18.4.orig/.dir-locals.el +++ xorg-server-1.18.4/.dir-locals.el @@ -0,0 +1 @@ +((c-mode . ((c-basic-offset . 4) (indent-tabs-mode . nil)))) \ No newline at end of file --- xorg-server-1.18.4.orig/ChangeLog +++ xorg-server-1.18.4/ChangeLog @@ -1,3700 +1,3 @@ -commit 8b312db7d1d98be67f0283d982428545cf948a66 -Author: Adam Jackson -Date: Tue Jul 19 13:27:08 2016 -0400 - - xserver 1.18.4 - - Signed-off-by: Adam Jackson - -commit 42a74080ffe93502904ede7555652f01ab11d12d -Author: Michel Dänzer -Date: Wed Mar 30 18:23:04 2016 +0900 - - os: Use strtok instead of xstrtokenize in ComputeLocalClient - - Fixes leaking the memory pointed to by the members of the array returned - by xstrtokenize. - - Reviewed-by: Adam Jackson - (cherry picked from commit e156c0ccb530897d3a428255bd5585f7ea7b9b41) - -commit 3c4cead499f10dabac20ab87728746ec41dae799 -Author: Adam Jackson -Date: Mon Mar 28 18:11:09 2016 +0900 - - os: Treat ssh as a non-local client (v4) - - By the time we get to ComputeLocalClient, we've already done - NextAvailableClient → ReserveClientIds → DetermineClientCmd (assuming - we're built with #define CLIENTIDS), so we can look up the name of the - client process and refuse to treat ssh's X forwarding as if it were - local. - - v2: (Michel Dänzer) - * Only match "ssh" itself, not other executable names starting with - that prefix. - * Ignore executable path for the match. - v3: (Michel Dänzer) - * Use GetClientCmdName (Mark Kettenis) - * Perform check on Windows as well, but only ignore path on Cygwin - (Martin Peres, Emil Velikov, Jon Turney) - v4: (Michel Dänzer) - * Cut of any colon and whatever comes after it. (Adam Jackson) - * Add bugzilla reference. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93261 - - Signed-off-by: Adam Jackson - Signed-off-by: Michel Dänzer - (cherry picked from commit adefbaee499b9679c6cac21f52ec6545af2b36b5) - -commit aebfc6ad9be5bd33b7e0a813d424c81d6214ab07 -Author: Michel Dänzer -Date: Fri Jul 1 12:34:20 2016 +0900 - - glamor: Translate solid text background region after clipping - - Fixes incorrect clipping for redirected windows which don't happen to be - located at the top left corner of the screen. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96742 - Signed-off-by: Michel Dänzer - Reviewed-by: Adam Jackson - (cherry picked from commit e8e36755abb17872d669b88d33ca9adc511029a0) - -commit 7a08d8d82007367a90197f9e9d549dbf0bc9ca2e -Author: Adam Jackson -Date: Tue Jul 12 10:04:18 2016 -0400 - - xfree86: Fix fallback driver sort order for Xorg -configure (v2) - - The intent here was that fallback drivers would be at the end of the - list in order, but if a fallback driver happened to be at the end of the - list already that's not what would happen. Rather than open-code - something smarter, just use qsort. - - Note that qsort puts things in ascending order, so somewhat backwardsly - fallbacks are greater than native drivers, and vesa is greater than - modesetting. - - v2: Use strcmp to compare non-fallback drivers so we get a predictable - result if your libc's qsort isn't stable (Keith Packard) - - Reviewed-by: Keith Packard - Signed-off-by: Adam Jackson - (cherry picked from commit 32a9504c69183485b0b796fa3966cd1e39992365) - -commit 8ff830d1ea4c3572b8fb770009c73c40007e132a -Author: Andrew Eikum -Date: Wed Jul 6 14:13:09 2016 -0500 - - shm: Also censor images returned by ShmGetImage - - We currently censor images from dix's GetImage, but not from - ShmGetImage. This is a method to bypass XACE, creating a potential - leak. We should censor in both methods. - - Reviewed-by: Adam Jackson - Signed-off-by: Andrew Eikum - (cherry picked from commit 4926845a57fa8b53e18ea7d3434bf5539e9b7782) - -commit d4cbb1155a79a3dc1dc74cc155dbcfc303273856 -Author: Rui Matos -Date: Wed Jul 13 19:19:09 2016 +0200 - - xwayland: Update RR state on wl_output.done instead of wl_output.mode - - Otherwise if the geometry changes but the mode doesn't we end up with - the previous geometry from RR's point of view. - - Fixes https://bugzilla.gnome.org/show_bug.cgi?id=768710 - - Reviewed-by: Jonas Ådahl - Signed-off-by: Rui Matos - (cherry picked from commit cf6730c503f8090a5d1b80918fe253fc2c5bc090) - -commit 65c5eab6000f108762b7ef6b63869525222ff99d -Author: Michel Dänzer -Date: Tue Jun 28 17:22:47 2016 +0900 - - dix: Work around non-premultiplied ARGB cursor data - - Some games incorrectly use non-premultiplied ARGB cursor data, presumably - because that's what Windows uses. On some hardware (and with SWcursor), - this breaks areas of the cursor which are supposed to be transparent - (and presumably also translucent areas, but that's less noticeable). - - This change checks for pixels with alpha == 0 and any non-alpha component - != 0. If any such pixel is found, the data is assumed to be - non-premultiplied and fixed up by multiplying the RGB components with the - alpha component. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92309 - Signed-off-by: Michel Dänzer - Reviewed-by: Alex Deucher - (cherry picked from commit 401a8d6e1379133863e3271374dc21850d0d3cab) - -commit c0b02ce45f48450d2896a424dc1eb9a2827ed4c5 -Author: Hans De Goede -Date: Thu Jul 7 10:55:04 2016 +0200 - - linux: Do not try to open /dev/vc/0, fix error msg when /dev/tty0 open fails - - /dev/vc/0 is a devfs thing which is long dead, so stop trying to open - /dev/vc/0, besides being a (small) code cleanup this will also fix the - "parse_vt_settings: Cannot open /dev/tty0 (%s)\n" error message to - display the actual error, rather then the -ENOENT from also trying - /dev/vc/0. - - BugLink: https://patchwork.freedesktop.org/patch/8768/ - Reported-by: Chad Versace - Suggested-by: Julien Cristau - Signed-off-by: Hans de Goede - Reviewed-by: Julien Cristau - Reviewed-by: Chad Versace - (cherry picked from commit 033888e7766d226a179357d970223428c19c4b53) - -commit b377a806693ec86df1743d7ddd5a931c88050ebb -Author: Adam Jackson -Date: Mon Jul 18 12:46:51 2016 -0400 - - modesetting: resubmit dirty rects on EINVAL (v2) - - This error code can mean we're submitting more rects at once than the - driver can handle. If that happens, resubmit one at a time. - - v2: Make the rect submit loop more error-proof (Walter Harms) - - Signed-off-by: Adam Jackson - Reviewed-by: Michael Thayer - (cherry picked from commit 4b311d23e84356bd0e9e736aeed7448dd6382118) - -commit f091528457cc62fa9bd6cd24aeebacffb7296419 -Author: Dave Airlie -Date: Wed Jul 22 12:14:06 2015 -0400 - - modesetting: Implement 32->24 bpp conversion in shadow update - - 24bpp front buffers tend to be the least well tested path for client - rendering. On the qemu cirrus emulation, and on some Matrox G200 server - chips, the hardware can't do 32bpp at all. It's better to just allocate - a 32bpp shadow and downconvert in the upload hook than expose a funky - pixmap format to clients. - - [ajax: Ported from RHEL and separate modesetting driver, lifted kbpp - into the drmmode struct, cleaned up commit message, fixed 16bpp] - - Reviewed-by: Adam Jackson - Signed-off-by: Dave Airlied - Reviewed-by: Alex Deucher - [hdegoede@redhat.com: rebase, also use kbpp for rotate shadow fb] - Signed-off-by: Hans de Goede - - (cherry picked from commit 21217d02168d1883b2d1f64399aec494f96a8b9d) - -commit d8eccab378dd8fe5a36dd31ff91561da47ec9ecf -Author: Hans de Goede -Date: Wed Jun 1 15:14:32 2016 +0200 - - modesetting: Only add main fb if necessary - - If we're doing reverse-prime; or doing rotation the main fb is not used, - and there is no reason to add it in this case. - - Signed-off-by: Hans de Goede - Reviewed-by: Dave Airlie - (cherry picked from commit 4313122dea0df9affc280ee698e929489061ccc6) - -commit 23a7010f3438e053f66c9fb0c4a13456fe33bf72 -Author: Adam Jackson -Date: Tue Jul 19 13:08:31 2016 -0400 - - Revert "modesetting: Load on GPU-s with 0 outputs" - - This reverts commit 713a21cc702561931ed5e84c3a5c3d7e7c580725. - -commit effd785aa8a97c9a044d86bde7ad63645cbca176 -Author: Takashi Iwai -Date: Mon Feb 16 17:00:55 2015 +0100 - - modesetting: Fix hw cursor check at the first call - - With the previous patch, the modesetting driver can now return whether - the driver supports hw cursor. However, it alone doesn't suffice, - unfortunately. drmmode_load_cursor_argb_check() is called in the - following chain: - - xf86CursorSetCursor() - -> xf86SetCursor() - -> xf86DriverLoadCursorARGB() - -> xf86_load_cursor_argb() - -> xf86_crtc_load_cursor_argb() - -> drmmode_load_cursor_argb_check() - - *but* at first with drmmode_crtc->cursor_up = FALSE. Then the - function doesn't actually set the cursor but returns TRUE - unconditionally. The actual call of drmmode_set_cursor() is done at - first via the show_cursor callback, and there is no check of sw cursor - fallback any longer at this place. Since it's called only once per - cursor setup, so the xserver still thinks as if the hw cursor is - supported. - - This patch is an ad hoc fix to correct the behavior somehow: it does - call drmmode_set_cursor() at the very first time even if cursor_up is - FALSE, then quickly hides again. In that way, whether the hw cursor - is supported is evaluated in the right place at the right time. - - Of course, it might be more elegant if we have a more proper mechanism - to fall back to sw cursor at any call path. But it'd need more - rework, so I leave this workaround as is for now. - - Signed-off-by: Takashi Iwai - Reviewed-by: Adam Jackson - Signed-off-by: Hans de Goede - (cherry picked from commit af916477c65a083ec496ac3f088d766b410e8b6e) - -commit 61094504a774ac763cb457d1f4bf2a1476e03f56 -Author: Takashi Iwai -Date: Mon Feb 16 17:00:54 2015 +0100 - - modesetting: Use load_cursor_argb_check for sw cursor fallback - - The modesetting driver still has an everlasting bug of invisible - cursor on cirrus and other KMS drivers where no hardware cursor is - supported. This patch is a part of an attempt to address it. - - This patch particularly converts the current load_cursor_argb callback - of modesetting driver to load_cursor_argb_check so that it can return - whether the driver handles the hw cursor or falls back to the sw - cursor. - - Signed-off-by: Takashi Iwai - Reviewed-by: Kenneth Graunke - [hdegoede@redhat.com: Add extra comment suggested by Kenneth] - Signed-off-by: Hans de Goede - - (cherry picked from commit 14c21ea1c9496638b1feb8e6145c440fb4f1d14b) - -commit 15f8aaa786ac89509843f22dcb5f446effba1024 -Author: Takashi Iwai -Date: Mon Feb 16 17:00:53 2015 +0100 - - modesetting: Fix the error check from DRM_IOCTL_MODE_CURSOR2 - - The error value isn't always -EINVAL, e.g. the kernel drm core returns - -ENXIO when the corresponding ops doesn't exist. Without this fix, - DRM_IOCTL_MODE_CURSOR2 would be dealt as success even if it - shouldn't. - - Signed-off-by: Takashi Iwai - Reviewed-by: Michel Dänzer - Reviewed-by: Kenneth Graunke - Signed-off-by: Hans de Goede - (cherry picked from commit 074cf58769b38550a3f35d5ecb73333330cb2aed) - -commit ee0fd6b2c68d88ef3511fe1796dd50601785ead0 -Author: Peter Hutterer -Date: Tue Jun 28 11:42:41 2016 +1000 - - xkb: add a cause to the xkb indicator update after a keymap change - - Regression introduce by ac164e58870d which calls - XkbUpdateAllDeviceIndicators() with two NULL arguments. A few layers down into - the stack and we triggered a NULL-pointer dereference. In theory a NULL cause - is acceptable since we don't actually change modifier state here. Instead of - updating all places to check for NULL just set the cause to the client - request and go to the pub. - - https://bugs.freedesktop.org/show_bug.cgi?id=96384 - - Signed-off-by: Peter Hutterer - Reviewed-by: Julien Cristau - Reviewed-by: Daniel Stone - (cherry picked from commit d135100d6b17e54262a12aeaebe0fe2fe48da3bb) - -commit 54ba95861e5ae54051d3963e5e7ced7d69a6de7b -Author: Guilherme Quentel Melo -Date: Tue May 10 00:29:58 2016 +0000 - - glx: avoid memory leak when using indirect rendering - - When multiple processes are using GL with indirect rendering a race - condition can make drawables refcount never drop to zero. - - This situation could happen when there are many X clients using indirect - GLX: - - 1 - client1: calls glXMakeCurrent - - 2 - client2: calls glXMakeCurrent - This is the first context switch for this client. So old_context_tag=0 - - 3 - client1: calls glXRender - For the client, its context is already current. - For the server side lastGLContext points to client2's context. - - Reviewed-by: Adam Jackson - Signed-off-by: Guilherme Quentel Melo - (cherry picked from commit a134d1e7eada0ac90fb622f45833c87b72c9aa06) - -commit be8eb5c4a1dda472d54f96bd54ee3e9421daf2e7 -Author: Keith Packard -Date: Tue Jun 14 17:09:07 2016 -0700 - - glamor: Use DestroyPixmap instead of FreePicture for glyph atlas pixmap - - Nice of FreePicture to take a void * instead of a PicturPtr so that - this error wasn't caught by the compiler. - - Noticed when resetting the X server left a dangling pixmap around. - - Signed-off-by: Keith Packard - Reviewed-by: Michel Dänzer - (cherry picked from commit 2d6230e77348e550c90e00c007b113ce38c81d12) - -commit 5c549168a2947c56727a7546baee21d04c46d563 -Author: Olivier Fourdan -Date: Mon Jun 6 09:22:28 2016 +0200 - - wayland: clear resource for pixmap on unrealize - - On cursor unrealize, the associated pixmap is destroyed, make sure we - clear the pointer from the private resource and check for the value - being non-null when setting or destroying the cursor. - - Signed-off-by: Olivier Fourdan - Reviewed-by: Adam Jackson - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96246 - (cherry picked from commit edd24aa50b17849b904a3ac5429e333bac9bac9c) - -commit f05a5859102409fe203bcffa96c0231c8b406659 -Author: Michel Dänzer -Date: Fri Jun 3 10:25:20 2016 +0900 - - xwayland: Call eglBindAPI after eglInitialize - - Current Mesa Git master checks that the EGL display actually supports - the API passed to eglBindAPI, which can only succeed after - eglInitialize. - - Signed-off-by: Michel Dänzer - Reviewed-by: Pekka Paalanen - (cherry picked from commit 166d4c817897f5aa197f639bf06b5b3e04994496) - -commit e4bf0e5ad5503c9a1d08080bca0b826ac64bd389 -Author: Michel Dänzer -Date: Fri Jun 3 10:25:19 2016 +0900 - - glamor: Call eglBindAPI after eglInitialize - - Current Mesa Git master checks that the EGL display actually supports - the API passed to eglBindAPI, which can only succeed after - eglInitialize. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96344 - Reviewed-by: Adam Jackson - Signed-off-by: Michel Dänzer - (cherry picked from commit d798b8318adf298bc23166e74f31e49805f0d881) - -commit e02d2174570e42800c21a2205f83dd286881469f -Author: Michel Dänzer -Date: Thu May 26 19:01:59 2016 +0900 - - glamor: Cannot use copies when accessing outside of composite source - - Commit b64108fa ("glamor: Check for composite operations which are - equivalent to copies") failed to copy conditions from exaComposite which - ensure that the composite operation doesn't access outside of the source - picture. - - This fixes rendercheck regressions from the commit above. - - Reviewed-by: Keith Packard - (cherry picked from commit 5ff75da317539e87cca429185d710d0eeb9d9222) - -commit f5b224a0e20f1d44d4ab1aeeddbb4e2d40dec998 -Author: Keith Packard -Date: Fri May 27 10:55:02 2016 -0700 - - glamor: Adjust for drawable x/y in composite's copy optimization - - Patch b64108fa305e956e4edaae9d53071ff0abee268e added a short cut that - identifies composite operations that can be performed with a simple - copy instead. - - glamor_copy works in absolute coordinates, so the dx and dy values - passed in need to be converted from drawable-relative to absolute by - adding the drawable x/y values. - - Signed-off-by: Keith Packard - Reviewed-by: Alex Deucher - (cherry picked from commit 8b9b4387e8473810f6174519ee76818fcaae725d) - -commit fad7cab684199b7a0e721e59bb25b1eb6f1a9aa8 -Author: Keith Packard -Date: Fri May 13 16:19:38 2016 -0700 - - glamor: Preserve GL_RED bits in R channel when destination is GL_RED [v2] - - A1 and A8 pixmaps are usually stored in the Red channel to conform - with more recent GL versions. When using these pixmaps as mask values, - that works great. When using these pixmaps as source values, then the - value we want depends on what the destination looks like. - - For RGBA or RGB destinations, then we want to use the Red channel - for A values and leave RGB all set to zero. - - For A destinations, then we want to leave the R values in the Red - channel so that they end up in the Red channel of the output. - - This patch adds a helper function, glamor_bind_texture, which performs - the glBindTexture call along with setting the swizzle parameter - correctly for the Red channel. The swizzle parameter for the Alpha - channel doesn't depend on the destination as it's safe to leave it - always swizzled from the Red channel. - - This fixes incorrect rendering in firefox for this page: - - https://gfycat.com/HoarseCheapAmericankestrel - - while not breaking rendering for this page: - - https://feedly.com - - v2: Add change accidentally left in patch for missing - glDisable(GL_COLOR_LOGIC_OP). - Found by Emil Velikov - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=63397 - Signed-off-by: Keith Packard - Tested-by: Michel Dänzer - (cherry picked from commit 181a4bd0cc436f89582408196038ff37032f9bac) - -commit 0c9a6d4093d6cdfadecb9a703cfb090e43ccf6aa -Author: Keith Packard -Date: Sat May 14 08:22:17 2016 -0700 - - glamor: glamor_make_current sooner in glamor_composite_with_shader - - glamor_make_current is supposed to be called before any GL APIs. - - Signed-off-by: Keith Packard - Reviewed-by: Michel Dänzer - (cherry picked from commit b07bc700b3cf2f5c8912fc5b9e0dad2baf395525) - -commit e63e9b8f197889b6c162ba36988d6e5656cb0c10 -Author: Keith Packard -Date: Fri May 13 04:25:43 2016 -0700 - - glamor: Disable logic ops when doing compositing [v4] - - If the logic op gets left enabled, it overrides the blending - operation, causing incorrect contents on the display. - - v2: Disable only on non-ES2, but disable even for PictOpSrc - - v3: Found another place this is needed in - glamor_composite_set_shader_blend - - v4: Remove change dependent on new glamor_set_composite_texture - API. This belongs in a different patch. - Found by Emil Velikov - - Signed-off-by: Keith Packard - Reviewed-by: Michel Dänzer - (cherry picked from commit 743b6f231e999d8b2909228412266dc13cc433c5) - -commit d37329cba42fa8e72fe4be8a7be18e512268b5bd -Author: Michel Dänzer -Date: Wed May 25 19:09:23 2016 +0900 - - glamor: Check for composite operations which are equivalent to copies - - Increases x11perf -compwinwin500 numbers by a factor of 10 for me with - radeonsi. - - Conditions copied from exaComposite(). - - Signed-off-by: Michel Dänzer - Reviewed-by: Alex Deucher - (cherry picked from commit b64108fa305e956e4edaae9d53071ff0abee268e) - -commit 009304ef129f21b286086f3c841b60c5f865241a -Author: Michel Dänzer -Date: Tue May 24 18:12:42 2016 +0900 - - glamor: Fix sampling outside of RGBx source/mask pictures - - RENDER requires that sampling outside of any source/mask picture results - in alpha == 0.0. - - The OpenGL border colour cannot set alpha = 0.0 if the texture format - doesn't have an alpha channel, so we have to use the RepeatFix handling - in that case. - - Also, only force alpha = 1.0 when sampling inside of RGBx source/mask - pictures. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94514 - Signed-off-by: Michel Dänzer - Reviewed-by: Alex Deucher - (cherry picked from commit 4711ebc174206b5a50e6ae8a7f974cd835e4ebd3) - -commit 888e5f636a32945b0a1f59d6db6e143d094cc2a0 -Author: Andrew Comminos -Date: Tue Dec 29 23:41:27 2015 -0800 - - Input: Send XI2 FocusOut NotifyPointer events to the pointer window. - - This changes XInput 2's propagation of NotifyPointer focus out events to - include the pointer window as well, similar to core events. This fixes - a potential permanent focus in GDK when the focus moves to PointerRoot. - - Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93539 - - Signed-off-by: Andrew Comminos - Reviewed-by: Peter Hutterer - Signed-off-by: Peter Hutterer - (cherry picked from commit 2fbf5c2f91d33efbda573c4be036248b1d8ed7f1) - -commit 81bd4fc18c407ebe8e535ffbe83b7578261e1643 -Author: Michel Dänzer -Date: Fri Apr 1 18:24:00 2016 +0900 - - EXA: Honour op parameter to exaGlyphs even if maskFormat == NULL - - Reported-by: Uli Schlachter - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94775 - Signed-off-by: Michel Dänzer - Reviewed-by: Uli Schlachter - (cherry picked from commit 140c2f1a54dbc2503311e9a011e841aa1f277cbd) - -commit e849aecb65aabe2fc6abeab6e0ab0a721710c25c -Author: Andreas Schwab -Date: Thu Apr 28 14:47:33 2016 +0200 - - x86emu: Change include order to avoid conflict with system header - - R_SP is also defined in on m68k. Also remove duplicate - definitions. - - Reviewed-by: Adam Jackson - Signed-off-by: Andreas Schwab - (cherry picked from commit 23dfa017298ceceac818f83779858e490c7757b6) - -commit 0f947779c7afcdaf246849b627c13a11987a4bbf -Author: Dave Airlie -Date: Fri Mar 11 09:22:00 2016 +1000 - - glamor: add glamor_finish API - - Some drivers are calling glFinish, they really should be doing this. - - This also is needed for some reverse prime scenarios. - - Signed-off-by: Dave Airlie - Reviewed-by: Michel Dänzer - Reviewed-by: Eric Anholt - (cherry picked from commit aa4e757130010dd3202f10ec6cb0c306c1dbcfbc) - -commit d25bb3ae9de1661ed0988a44119abeb52d52d4b7 -Author: Marek Chalupa -Date: Mon Apr 25 11:33:00 2016 +0200 - - xwayland-shm: fortify fallocate against EINTR - - If posix_fallocate or ftruncate is interrupted by signal while working, - we return -1 as fd and the allocation process returns BadAlloc error. - That causes xwayland clients to abort with 'BadAlloc (insufficient - resources for operation)' even when there's a lot of resources - available. - - Fix it by trying again when we get EINTR. - - Signed-off-by: Marek Chalupa - Reviewed-by: Pekka Paalanen - (cherry picked from commit f48b0534f110397246809d279225afedb28aa233) - -commit acbfff1d3b27bb71faf2fe95061de8414b536004 -Author: Alexandre Courbot -Date: Wed Mar 23 13:47:37 2016 +0900 - - configure.ac: Keep environment CFLAGS when testing - - DRI2 detection could fail if configure is invoked with a sysroot passed - as CFLAGS. Ideally configure should invoke gcc with the sysroot argument - passed to the configure script, but for some reason this is not done by - AC_COMPILE_IFELSE. - - Fix this by ensuring CFLAGS are preserved when checking for stuff. - - Signed-off-by: Alexandre Courbot - Reviewed-by: Emil Velikov - (cherry picked from commit 4cc32880737c2d3e568fdb4867b2dba10fb3998a) - -commit 1c811298eb953bb56e2ca05b1a881f88c0703df3 -Author: Simon Thum -Date: Tue Apr 5 14:29:47 2016 +0200 - - dix/ptraccel: Fix memory leak in InitPredictableAccelerationScheme - - This was quite unlikely except in situations where a proper startup - would have been impossible anyway, but since automated checks don't - grade likelyhood just fix it. - - Detected by Jeremy Huddleston's clang checks. - - Signed-off-by: Simon Thum - Reviewed-by: Peter Hutterer - Signed-off-by: Peter Hutterer - (cherry picked from commit c8e5fc30575a309c25970fc68b9184c07bb74df4) - -commit 51441379a35077e868dae86e6b24cfa31d6dd1f8 -Author: Olivier Fourdan -Date: Thu Mar 17 09:53:58 2016 +0100 - - glamor: fix wrong offset on composite rectangles - - When using PictOpSrc, the destination is wrongly shifted back to (0, 0). - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94568 - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit 8437955515ad59b0bfcd6598248e7f0ffc706370) - -commit 713a21cc702561931ed5e84c3a5c3d7e7c580725 -Author: Hans de Goede -Date: Tue Jun 14 11:58:01 2016 +0200 - - modesetting: Load on GPU-s with 0 outputs - - In newer laptops with switchable graphics, the GPU may have 0 outputs, - in this case the modesetting driver should still load if the GPU is - SourceOffload capable, so that it can be used as an offload source provider. - - Signed-off-by: Hans de Goede - Reviewed-by: Eric Engestrom - (cherry picked from commit 60ad701a6a8cb9f1eacb72acfe2cb8d3b7a865dc) - -commit a9f970fe28d76bd2c57b44aa02ac38eb8aab8acf -Author: Hans de Goede -Date: Thu Jun 16 15:21:03 2016 +0200 - - modesetting: Fix swapping of provider sink / source capabilities - - When a card has import capability it can be an offload _sink_, not - a source and vice versa for export capability. - - This commit fixes the modesetting driver to properly set these - capabilities, this went unnoticed sofar because most gpus have both - import and export capability. - - Signed-off-by: Hans de Goede - Reviewed-by: Eric Engestrom - (cherry picked from commit 94a1c77259ce39ba59ad87615df39b570ffab435) - -commit 0dc1a58b9379c79ede8c40b2e6f008dc0868a40e -Author: Lyude Paul -Date: Mon Jun 13 15:31:02 2016 -0400 - - modesetting: Clear drmmode->fb_id before unflipping - - [fix copied from 40191d82370e in xf86-video-ati] - - Without this, we end up setting rotated CRTCs back to their previous - framebuffer right after we perform a rotation. Reproducer: - - - Have two monitors connected at the same resolution - - Rotate one monitor from normal straight to inverted - - Watch as the monitor you didn't rotate either freezes or shows intense - flickering - - Signed-off-by: Lyude - Reviewed-by: Hans de Goede - Signed-off-by: Hans de Goede - (cherry picked from commit 848089e0dde38f043c85332785520946103e77c1) - -commit 619730cac614ff8306e17edd07ae860051c700b7 -Author: Hans de Goede -Date: Wed Jun 1 14:59:38 2016 +0200 - - modesetting: Properly cleanup fb for reverse-prime-offload - - drmmode_set_scanout_pixmap_gpu(pix) adds drmmod->fb_id through a call - to drmmode_xf86crtc_resize(), but on a subsequent - drmmode_set_scanout_pixmap_gpu(NULL) it would not remove the fb. - - This keeps the crtc marked as busy, which causes the dgpu to not - being able to runtime suspend, after an output attached to the dgpu - has been used once. Which causes burning through an additional 10W - of power and the laptop to run quite hot. - - This commit adds the missing remove fb call, allowing the dgpu to runtime - suspend after an external monitor has been plugged into the laptop. - - Note this also makes drmmode_set_scanout_pixmap_gpu(NULL) match the - behavior of drmmode_set_scanout_pixmap_cpu(NULL) which was already - removing the fb. - - Signed-off-by: Hans de Goede - Reviewed-by: Dave Airlie - (cherry picked from commit b8ef71fb07a8ba9587aeaca942b4de20b59266ca) - -commit 768e40e6c41dba3c7039db437d7b5be36f1477f5 -Author: Dave Airlie -Date: Fri Apr 29 14:01:33 2016 +1000 - - modesetting: set capabilities up after glamor and enable offload caps. - - This moves the capabilites setting to after glamor is initialised, and - enables the offload caps in cases where they work. This enables DRI2 - PRIME support with modesetting. - - Reviewed-by: Alex Deucher - Signed-off-by: Dave Airlie - (cherry picked from commit 2378adde6770385c06f7efcd32f270d00d49ce3f) - -commit 69f9319568609f23cf313995cd65400180de9345 -Author: Dave Airlie -Date: Fri Apr 29 14:01:32 2016 +1000 - - xf86Crtc: don't set the root window property on slave GPUs. - - Slave GPUs don't have a root window to set this on, so don't. - - This fixes some crashes I saw just playing around. - - Reviewed-by: Alex Deucher - Signed-off-by: Dave Airlie - (cherry picked from commit 258588224d6b35de12f97d9092efa5cb3e426550) - -commit 5b4ced6d3a4c309e1792ac49017fb961a7262e7f -Author: Dave Airlie -Date: Fri Apr 29 14:01:31 2016 +1000 - - modesetting: set driverPrivate to NULL after closing fd. - - Otherwise ms_ent_priv will return NULL and things will fall apart. - - Reviewed-by: Alex Deucher - Signed-off-by: Dave Airlie - (cherry picked from commit a41a171bcbae9aeafac2865faa904f15d9b59925) - -commit cbbf4b0da098636e3d23407d62c3f41402c3f401 -Author: Dave Airlie -Date: Fri Apr 29 14:01:30 2016 +1000 - - randr/provider: only allow slave gpu to be offload sources. - - The other way around makes no sense. - - Reviewed-by: Alex Deucher - Signed-off-by: Dave Airlie - (cherry picked from commit fc1f61b75c9712e24ff665f95d62771f39eba1c7) - -commit cc7c0b0e3c7f7af624c3b1bc360f7c6ff99ea3be -Author: Peter Hutterer -Date: Wed May 4 20:36:18 2016 +1000 - - xkb: after changing the keymap, force an indicator update - - When NumLock is on and a new keymap is applied, the next modifier state - change will turn off that LED (but leave the state enabled). The cause - for this is a bit convoluted: - - * the SLI explicitState is copied from the current state in - ProcXkbGetKbdByName. Thus, if NumLock is on, that state is 0x2. - * on the next modifier key press (e.g. Shift), XkbApplyState() calls into - XkbUpdateIndicators() -> XkbUpdateLedAutoState() to update SLIs (if any) - for the currently changed modifier. But it does so with a mask only for - the changed modifier (i.e. for Shift). - * XkbUpdateLedAutoState() calculates the state based on this mask and - ends up with 0 because we don't have a Shift LED and we masked out the - others. - * XkbUpdateLedAutoState() compares that state with the previous state - (which is still 0x2) and then proceeds to turn the LED off - - This doesn't happen in the normal case because either the mask - encompasses all modifiers or the state matches of the masked-out - modifiers matches the old state. - - Avoid this issue by forcing an SLI update after changing the keymap. - This updates the sli->effectiveState and thus restores everything to - happy working order. - - https://bugzilla.redhat.com/show_bug.cgi?id=1047151 - - Signed-off-by: Peter Hutterer - Reviewed-by: Daniel Stone - (cherry picked from commit ac164e58870d70640381e68b776eb95578c7fbd3) - -commit bcb633cae6c976b3416c736acab71c065adf5ee7 -Author: Peter Hutterer -Date: Wed Mar 9 10:45:48 2016 +1000 - - Xi: don't deliver emulated motion events for non-emulating touches - - The touchpoint knows whether it should be emulating or not and we have a check - for that later. Check for this before we generate the event and try to deliver - it, lest we trigger a bug warning. - - https://bugzilla.redhat.com/show_bug.cgi?id=1282252 - - Signed-off-by: Peter Hutterer - (cherry picked from commit f641ae412287ecb7a3437987e2ba1646a8443aa4) - -commit da4c6e1aaae6f564cbde7981898582018108622e -Author: Chris Wilson -Date: Sat Feb 14 09:58:44 2015 +0000 - - present: Fix presentation of flips out of order - - The flip queue currently only holds events submitted to the driver for - flipping, awaiting the completion notifier. It is short. We therefore - can speed up interrupt processing by keeping the small number of events - ready to be flipped on the end of the flip queue. By appending the - events to the flip_queue in the order that they become ready, we also - resolve one issue causing Present to display frames out of order. - - Signed-off-by: Chris Wilson - Reviewed-and-tested-by: Mario Kleiner - Signed-off-by: Hans de Goede - (cherry picked from commit bab0f450a719a11799491043b82c2f293fed27fe) - -commit 1a3577259f7d3d4c91f8a6eff1a5d466dabb45ee -Author: Chris Wilson -Date: Sat Feb 14 09:58:43 2015 +0000 - - present: Improve scaling of vblank handler - - With large numbers of queued vblank, the list iteration on every - interupt dominates processing time. If we reorder the list to be in - ascending event order, then not only is also likely to be in order for - notification queries (i.e. the notification will be near the start of - the list), we can also stop iterating when past the target event_id. - - Signed-off-by: Chris Wilson - Reviewed-and-tested-by: Mario Kleiner - Signed-off-by: Hans de Goede - (cherry picked from commit fbe660b7652b945bdd8e3eb0780179d83cc7de96) - -commit db258a27f021c80281ed4f89df897dfda0ffce9f -Author: Maarten Lankhorst -Date: Wed Oct 2 15:47:54 2013 +0200 - - exa: only draw valid trapezoids - - Fixes freedesktop.org bug https://bugs.freedesktop.org/show_bug.cgi?id=67484 - - If t->bottom is close to MIN_INT, removing top can wraparound, so do the check properly. - A similar fix should also be applied to pixman. - - Signed-off-by: Maarten Lankhorst - Reviewed-by: Hans de Goede - Signed-off-by: Hans de Goede - (cherry picked from commit c6511d0142040654140bdedd6f03d43af0abba21) - -commit 62bf33d0d105beb257619ef6b77919d01b04d401 -Author: Adam Jackson -Date: Wed Jun 1 14:27:23 2016 -0400 - - xfree86: Don't swallow ±iglx command line flag - - We want to notice that it's set, but still pass it through to dix. - Return 0 to indicate this. - - Signed-off-by: Adam Jackson - Reviewed-by: Peter Hutterer - (cherry picked from commit 7cf80b9714864c3c4eb9898ff1b7d657ecd16df7) - -commit d7ae950c1d08724144514151afe47a3fd8e84f3c -Author: Adam Jackson -Date: Mon May 9 13:28:08 2016 -0400 - - xfree86: Add IndirectGLX server flag (v2) - - Not all display managers make it easy (or possible) to modify the - command line flags passed to the server, so add a way to get to it from - xorg.conf. - - v2: Fix the FlagOptions list to not have IGLX after the terminator (Alan - Coopersmith) - - Reviewed-by: Alan Coopersmith - Signed-off-by: Adam Jackson - (cherry picked from commit 4fca18dc03669bada75175df289fbee41275208e) - -commit 02f9b3c18f6561d47b518bdcd6043a0ec8995c32 -Author: Olivier Fourdan -Date: Fri Apr 1 13:38:11 2016 +0200 - - xwayland: Fix compiler warning in GLAMOR Xv - - XvWindowMask is defined as 0x00020000 and cannot fit in the XvAdaptor - type which is defined as an unsigned char, thus causing a compiler - warning: - - xwayland-glamor-xv.c: In function ‘xwl_glamor_xv_add_adaptors’: - xwayland-glamor-xv.c:339:16: warning: large integer implicitly - truncated to unsigned type [-Woverflow] - - This XvWindowMask value is actually not used for XvAdaptor itself but by - the server in its xf86xv implementation, so we don't even need that mask - in our xwayland-glamor-xv implementation. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit e8e5d839968e22cf42a6e1982a07b02c6f4a4562) - -commit a482b0b6c7d4e66276190acab25c945d74da1178 -Author: Adam Jackson -Date: Fri Apr 8 11:26:36 2016 -0400 - - kdrive: Nuke a bunch of dead code - - gcc6 says: - - keyboard.c:46:21: warning: ‘linux_to_x’ defined but not used - - Only referenced by a bunch of long if-0'd code, so chuck it all out. - - Reviewed-by: Julien Cristau - Signed-off-by: Adam Jackson - (cherry picked from commit c33250945b45adc447154239f0cf48fb9b2d7335) - -commit 0dfa816af2a383449804b891f4a9f8c431e00528 -Author: Adam Jackson -Date: Fri Apr 8 11:24:50 2016 -0400 - - dix: Squash some new gcc6 warnings - - -Wlogical-op now tells us: - - devices.c:1685:23: warning: logical ‘and’ of equal expressions - - Reviewed-by: Julien Cristau - Signed-off-by: Adam Jackson - (cherry picked from commit a5dd7b890f4f3a5245639591c73303c5a087b38a) - -commit 98499770640c747128f212b1ebb6bd42775f3b72 -Author: Jeremy Huddleston Sequoia -Date: Sat May 7 00:43:33 2016 -0700 - - XQuartz: Fix default CFBundleVersion - - m4/shell variable name collision broke the case when the configure - option was not used - - Signed-off-by: Jeremy Huddleston Sequoia - (cherry picked from commit 1bb932bf1417ff319a594d7e40f6813a26936784) - -commit 1a81f2a51955e5c8a9d1d80cc008e2927ddd0123 -Author: Jeremy Huddleston Sequoia -Date: Tue May 3 23:43:06 2016 -0700 - - XQuartz: Update copyright years - - Signed-off-by: Jeremy Huddleston Sequoia - (cherry picked from commit 059d5ef30490233f410ca87084c7697b87e5b05e) - -commit 73987379d73cd6ef2701dad7e3027f9363cb81b4 -Author: Jeremy Huddleston Sequoia -Date: Tue May 3 23:42:34 2016 -0700 - - XQuartz: Add --with-bundle-version and --with-bundle-version-string configure options - - Signed-off-by: Jeremy Huddleston Sequoia - (cherry picked from commit d6ba4f2c52da150a9a92bdb00efe7902d17033bd) - -commit bab72d3905bdafe4815ab1dc5509988c8e467769 -Author: Jeremy Huddleston Sequoia -Date: Tue May 3 23:21:38 2016 -0700 - - XQuartz: Add --with-sparkle-feed-url configure option - - Signed-off-by: Jeremy Huddleston Sequoia - (cherry picked from commit c1614928c10a8f8400f99acfd1b7f96d503af7ec) - -commit a1915ad14d89bdcd0f2a6607d6d1cb8f90201158 -Author: Jeremy Huddleston Sequoia -Date: Tue May 3 23:14:24 2016 -0700 - - XQuartz: Update release feed URL to use new https URL - - Signed-off-by: Jeremy Huddleston Sequoia - (cherry picked from commit 299b01eabf827a7435b5d6004d50637ac710bbc7) - -commit ab5f69e5419b34f21cfd30d38374d14103a88f40 -Author: Jeremy Huddleston Sequoia -Date: Tue May 3 23:24:44 2016 -0700 - - XQuartz: Fix the help text for --with-bundle-id-prefix - - Signed-off-by: Jeremy Huddleston Sequoia - (cherry picked from commit 16d6733c63727d910eb516d7f6950f4675281f2d) - -commit 3600f8600f1a876409c3a7f2b29f036156b2c7c6 -Author: Jeremy Huddleston Sequoia -Date: Tue May 3 23:16:46 2016 -0700 - - XQuartz: Remove --with-launchd-id-prefix - - It's been deprecated for years. - - Signed-off-by: Jeremy Huddleston Sequoia - (cherry picked from commit 214a66b661dcb56ebb9776e34049753f65c7510a) - -commit 9454cd51da9b38b974cff7c8b7125901f6403848 -Author: Adam Jackson -Date: Mon Apr 4 14:39:36 2016 -0400 - - xserver 1.18.3 - - Signed-off-by: Adam Jackson - -commit 082d5ea9a8f882c5ab7c30c481e2d9a5c5f11376 -Author: Olivier Fourdan -Date: Mon Mar 21 09:53:17 2016 +0100 - - xwayland: Pretend we support viewport in vidmode - - Some games (namely openttd) will raise an XError and fail with a - BadValue if their request to XF86VidModeSetViewPort fails. - - Support only the default zoom and viewport, fail for everything else. - - Signed-off-by: Olivier Fourdan - Reviewed-by: Hans de Goede - (cherry picked from commit 44e1c97ca6fe992bbb6ef9ecb0b82a113adfa57e) - -commit fcb89adb4a6cde585923e63d3c34df465aa78d1b -Author: Olivier Fourdan -Date: Thu Mar 17 14:39:45 2016 +0100 - - xwayland: do not include frequency in mode name - - Some applications (e.g. using lwjgl) try to parse the output of the - xrandr command and get confused with the mode name returned by Xwayland, - because it contains "@[frequency]" (e.g. "1024x640@60.0Hz"). - - Remove the @[frequency] part of the mode name to match what is found in - usual mode names on regular X servers to please those applications. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94589 - - Signed-off-by: Olivier Fourdan - Reviewed-by: Daniel Stone - (cherry picked from commit 6e3a6e30a6ac66942a0756a5d079993181f02e34) - -commit b8f9fd83189bd5593793c1cfcbfedb5150d7c5a5 -Author: Michel Dänzer -Date: Thu Mar 24 17:34:23 2016 +0900 - - xfree86/modes: Make sure the HW cursor is hidden when it should be - - When the HW cursor is hidden (e.g. because xf86CursorResetCursor - triggers a switch from HW cursor to SW cursor), the driver isn't - notified of this for disabled CRTCs. If the HW cursor was shown when the - CRTC was disabled, it may still be displayed when the CRTC is enabled - again. - - Prevent this by explicitly hiding the HW cursor again after setting a - mode if it's currently supposed to be hidden. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94560 - Reviewed-by: Adam Jackson - Signed-off-by: Michel Dänzer - (cherry picked from commit 418fe365b45a143680d3b4143dc60f7cdc5a3507) - -commit 1211d483d4581ee5ccbd50c654d30cf3318fe7c6 -Author: Sonny Jiang -Date: Mon Mar 28 16:36:50 2016 +0900 - - DRI2: add Polaris PCI IDs - - Signed-off-by: Sonny Jiang - Reviewed-by: Alex Deucher (Polaris10) - Reviewed-by: Michel Dänzer (Polaris11) - - (Ported from Mesa commit f00c840578a70e479ffb99f6b64c73dc420179fa) - - Signed-off-by: Michel Dänzer - Reviewed-by: Alex Deucher - (cherry picked from commit 1c90797565385426ad63bd2108085c8466695c0b) - -commit 07ad2fde78f07e98caaf3e9b6b67af15359fefe4 -Author: Michel Dänzer -Date: Thu Mar 24 17:42:47 2016 +0900 - - present: Only requeue for next MSC after flip failure - - This code was added to deal with the driver present hook failing, in - which case we need to wait for the next MSC before executing the - presentation. - - However, it could also take effect in cases where the driver incorrectly - thinks the current MSC matches the target one (e.g. due to the kernel - interface only supporting 32-bit MSC values), in which case it could - result in the presentation getting requeued over and over. - - To prevent such issues, check specifically for the target MSC - immediately following the current MSC. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94596 - Signed-off-by: Michel Dänzer - Reviewed-by: Keith Packard - (cherry picked from commit 3b385105b2d19a1c55e9779ae88d775185eea231) - -commit e8f785f82ec8d3a76ae377c7430b1945180cba00 -Author: Adam Jackson -Date: Wed Mar 23 14:42:08 2016 -0400 - - vfb: Re-add LD_EXPORT_SYMBOLS_FLAG to LDFLAGS - - Accidentally removed, breaks Xvfb on cygwin. - - Reviewed-by: Yaakov Selkowitz - Signed-off-by: Adam Jackson - (cherry picked from commit 8ac0e05cc6c6e87b223ba7cb31d8856771c5d41a) - -commit fb8ddcf1cb0f47257370c3d6a895a5a41bea8dc0 -Author: Dave Airlie -Date: Wed Mar 16 10:45:54 2016 +1000 - - glamor: swizzle RED to 0 for alpha textures - - I'm pretty sure Eric suspected this could cause a problem, and we - couldn't find a test. Well loading feedly in firefox seems to trigger - badness that this solves. - - bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94554 - Reviewed-by: Adam Jackson - Signed-off-by: Dave Airlie - Tested-by: Timo Aaltonen - (cherry picked from commit a288cf58a0dc0f965a6f964c76bb86bb1989d797) - -commit 1bffe77769a9dce623e4a587ed3895ba003c257b -Author: Chris Wilson -Date: Sun Mar 13 13:54:01 2016 +0000 - - Xext/vidmode: Reduce verbosity of GetModeLine debug messages - - In commit f175cf45aebcdda53f3ae49c0eaf27da1f194e92 - Author: Olivier Fourdan - Date: Wed Feb 10 09:34:34 2016 +0100 - - vidmode: move to a separate library of its own - - the verbosity of some old debug messages (which print the reply to every - GetModeLine client request and others) was increased leading to lots of - log spam. Downgrade the logging back to DebugF. - - [ajax: Fix a typo so it compiles.] - - Reviewed-by: Adam Jackson - References: https://bugs.freedesktop.org/show_bug.cgi?id=94515 - Signed-off-by: Chris Wilson - Cc: Olivier Fourdan - (cherry picked from commit 75eecf28ae3709181a51571132b0accd9cae316e) - -commit 93d4224ccf3dee5a51815a66f76c905450419b50 -Author: Adam Jackson -Date: Fri Mar 11 16:38:52 2016 -0500 - - xserver 1.18.2 - - Signed-off-by: Adam Jackson - -commit d88f8ffeb7ec0304d793388be5b65a293505bc3b -Author: Adam Jackson -Date: Fri Mar 11 13:50:32 2016 -0500 - - vidmode: Remove stray vidmodeproc.h from EXTRA_DIST - - Was removed from the tree in: - - commit f175cf45aebcdda53f3ae49c0eaf27da1f194e92 - Author: Olivier Fourdan - Date: Wed Feb 10 09:34:34 2016 +0100 - - vidmode: move to a separate library of its own - - but not removed from the Makefile, which broke 'make dist'. - - Signed-off-by: Adam Jackson - (cherry picked from commit 744c292ae49dd1f9d33b860d2b4f0ae27023809b) - -commit 643359fb03c51244c9ed5f5efab4c84594259e8c -Author: Dave Airlie -Date: Tue Feb 9 16:54:22 2016 +1000 - - present: fail flipping if we have any slave outputs - - Due to the way present currently works, we don't ever check with the - secondary adapters if we can flip at all. - - We shouldn't flip if the secondary adapters are attached to the pixmap - currently, however using the current check_flip callback isn't possible - as it passes the Window to the driver (something we shouldn't be doing), - so the slave driver can never get it's own screen ptr back. - - For now to fix the problem just block flips if we have any slaves - configured. We can fix the ABI up later, but this fix can be backported - to stable. - - Signed-off-by: Dave Airlie - Reviewed-by: Keith Packard - (cherry picked from commit 47bc7fcaa567b0d9e2627b4a21b112e96f81725b) - -commit 3e480c6f5168e7da1521bdcc15ed8b5b8762612d -Author: Adam Jackson -Date: Thu Jan 21 12:47:57 2016 -0500 - - glx: Implement GLX_EXT_fbconfig_packed_float - - The tokens for this are already defined by GLX_ARB_fbconfig_float, which - we already support, so just add the extension to the list and let the - driver provide those configs if it wants. - - Reviewed-by: Eric Anholt - Signed-off-by: Adam Jackson - (cherry picked from commit ef3005da3d5dc92b3ee5a0ee78164e739a3216dc) - -commit b9f7edda0634955711870bb1389095525d4496e3 -Author: Adam Jackson -Date: Mon May 18 13:00:02 2015 -0400 - - glx: Implement GLX_EXT_stereo_tree - - This is correct as it is, but only because we know no DRI drivers - implement stereo. - - v2: Use new ATTRIB macro - - Reviewed-by: James Jones - Reviewed-by: Eric Anholt - Signed-off-by: Adam Jackson - (cherry picked from commit d15cb654b6ba365dac9a62064e277adebde2fdab) - -commit 2b3363418a425bf432b55927d8f8dd93c004c791 -Author: Adam Jackson -Date: Thu Mar 3 16:50:02 2016 -0500 - - glx: Add GLX_SCREEN to the GetDrawableAttributes response - - libglvnd would like to use this to map from drawable to screen, so it - can know which driver to dispatch to. Refer to the spec proposal here: - - https://lists.freedesktop.org/archives/mesa-dev/2016-March/109543.html - - Reviewed-by: Eric Anholt - Signed-off-by: Adam Jackson - (cherry picked from commit a18238877bbf9aab95843d849a6f434275e9cd6c) - -commit 2541d765fdd1006d649063882e3a667438f1d30e -Author: Adam Jackson -Date: Thu Mar 10 12:29:34 2016 -0500 - - glx: Macroize building the attribute list in DoGetDrawableAttributes - - No functional change, just a little easier to read and harder to get - wrong. - - Reviewed-by: Eric Anholt - Signed-off-by: Adam Jackson - (cherry picked from commit 47c1d6b7abcfb1c6b478367bbc2e869c91485bc0) - -commit 2a7b6ea1a54a4c8174669c1ca38c4665505c4637 -Author: Eric Anholt -Date: Mon Feb 1 13:58:15 2016 -0800 - - ephyr: Fix redisplay with glamor on GLES. - - glamor_transfer.c is still totally broken, though. - - Reviewed-by: Adam Jackson - Signed-off-by: Eric Anholt - (cherry picked from commit c01094c5312fbd84146dd83122e5256a8e57d092) - -commit 5af20f15636aa2ede3dac1af9e9afa063564130c -Author: Olivier Fourdan -Date: Wed Mar 9 16:45:18 2016 +0100 - - glamor: do not build Xv support when --disable-xv - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit 25ce263fd88684be9370025f93ba3a2bfc72ff1a) - -commit 9fc05b85e544638ccc4b811c19e64312b387c799 -Author: Olivier Fourdan -Date: Wed Mar 9 16:21:18 2016 +0100 - - xwayland: add glamor Xv adaptor - - This adds an Xv adaptor using glamor. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit da7724d3d277c6c8a814881785b716896802629a) - -commit 1aa9a2be313c51a78af9bceea865dcf069e9cebe -Author: Michel Dänzer -Date: Mon Dec 21 17:54:08 2015 +0900 - - modesetting: Allow CRTC transforms to actually take effect - - Setting crtc->transformPresent to FALSE was preventing the transform - from actually taking effect and putting RandR into a confused state. - - Now that the RandR 1.2 cursor code handles transforms correctly, we can - allow them to properly take effect. - - Reviewed-by: Keith Packard - (cherry picked from commit 24042b4e367803dd64f3fcdc1bef7b2bf36c4145) - -commit aa8770bf546a58e534ad2d0e0180f7e1013e24e9 -Author: Michel Dänzer -Date: Wed Oct 21 18:33:46 2015 +0900 - - xfree86: Re-set current cursor after RandR 1.2 CRTC configuration change - - Add xf86CursorResetCursor, which allows switching between HW and SW - cursor depending on the current state. - - Call it from xf86DisableUnusedFunctions, which is called after any CRTC - configuration change such as setting a mode or disabling a CRTC. This - makes sure that SW cursor is used e.g. while a transform is in use on - any CRTC or while there are active PRIME output slaves, and enables HW - cursor again once none of those conditions are true anymore. - - Reviewed-by: Keith Packard - (cherry picked from commit b04767c84deafc44993723add4b1c5163fc11711) - -commit 870d4e2e6b40f911049a5286d605814d2401741d -Author: Michel Dänzer -Date: Thu Dec 24 12:56:03 2015 +0900 - - xfree86/modes: Check for CRTC transforms in xf86_use_hw_cursor(_argb) (v2) - - We currently don't handle transforms for the HW cursor image, so return - FALSE to signal a software cursor must be used if a transform is in use - on any CRTC. - - v2: Check crtc->transformPresent instead of crtc->transform_in_use. The - latter is TRUE for rotation as well, which we handle correctly. - - Reviewed-by: Keith Packard - (cherry picked from commit a4ffa8721debb34bd36fd4624890d9c26886c618) - -commit af87ab62878334ee9d4e75c472fc80178329b4dd -Author: Michel Dänzer -Date: Thu Dec 24 16:20:49 2015 +0900 - - xfree86/modes: Refactor xf86_use_hw_cursor_argb to use xf86_use_hw_cursor (v2) - - This reduces code duplication. - - v2: No functional change this time. - - Reviewed-by: Keith Packard - (cherry picked from commit c3e4e9fc5d84bfc17b3ed63f67488ea25ba150ce) - -commit 87c23dc47160d7524b82b60abbc70d285708f7cb -Author: Michel Dänzer -Date: Tue Feb 23 17:19:03 2016 +0900 - - glamor: Source pictures are always depth 32 - - We were using the destination pixmap depth to determine the source - picture format. - - Fixes incorrect text rendering with some MATE desktop GTK3 themes. - - Reviewed-by: Adam Jackson - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94246 - Signed-off-by: Michel Dänzer - (cherry picked from commit a3e681eafa5355b8bb3b099d47983f14f0d5e197) - -commit 0220275531552a5400c22b56105257586f390260 -Author: Michel Dänzer -Date: Tue Feb 23 17:19:02 2016 +0900 - - glamor: Factor out glamor_set_color_depth from glamor_set_color - - The former takes explicit screen and depth parameters instead of - deriving them from a pixmap. - - Reviewed-by: Adam Jackson - Signed-off-by: Michel Dänzer - (cherry picked from commit b05ae79ee3bebef9790c97eedc033d1ffb3ec39a) - -commit 79985270f1d63a8b186640b81d0eb142ac532e6e -Author: Hans de Goede -Date: Wed Feb 10 16:40:43 2016 +0100 - - glamor: Fix XvPutImage when src_y != 0 - - We already take src_y into account when uploading the src data by - starting at the top line of the src data when uploading. - - Adjust src_y accordingly when rendering. - - Signed-off-by: Hans de Goede - (cherry picked from commit 947e94a341fa153258e9e86060b83af95934672b) - -commit ddca8e1647d3b79f803f4080be648e5475055fe8 -Author: Rui Matos -Date: Fri Mar 4 16:24:48 2016 +0100 - - build: Enable vidmode independently from Xorg - - This allows building Xwayland without Xorg and still include the - vidmode extension. - - v2: Use PKG_CHECK_EXISTS instead of PKG_CHECK_MODULES - - Signed-off-by: Rui Matos - Reviewed-by: Emil Velikov - (cherry picked from commit 40a164b8f4e720b0d6ebf228ee175eb397ffeec2) - -commit 7680f558e1584a191554658ff7b3b75c75d35e06 -Author: Julien Cristau -Date: Mon Mar 7 23:20:34 2016 +0100 - - xfixes: avoid double free if AddResource fails - - pChc is already freed through CursorFreeHideCount → - deleteCursorHideCount. - - Reviewed-by: Rémi Cardona - Signed-off-by: Julien Cristau - (cherry picked from commit 2be527b1d4ce2b0412c4484539a8c9607645ec6d) - -commit b7e1f25005f7b552870fe782fc927c9dc97f5ed0 -Author: Julien Cristau -Date: Mon Mar 7 23:20:33 2016 +0100 - - render: free already allocated formats in PictureInit failure case - - Probably pointless, if this fails you're not likely to get far... - - Reviewed-by: Rémi Cardona - Signed-off-by: Julien Cristau - (cherry picked from commit 4217db89ecd480fda2ee74fecba06c6713c2a0f0) - -commit 518a0c179f99e9ea33e9cd56ce215661d27cabb6 -Author: Julien Cristau -Date: Mon Mar 7 23:20:32 2016 +0100 - - record: don't call RecordDeleteContext when AddResource fails - - Reviewed-by: Rémi Cardona - Signed-off-by: Julien Cristau - (cherry picked from commit 054f80717812d4781741cd05393623fe6f6c627f) - -commit dae9c195a9db4d210855a16efce2037f3af454e1 -Author: Julien Cristau -Date: Mon Mar 7 23:20:31 2016 +0100 - - xwin: no need to free auth data if AddResource fails - - This is taken care of by SecurityDeleteAuthorization - - Reviewed-by: Rémi Cardona - Signed-off-by: Julien Cristau - (cherry picked from commit d0c1a5bc61a3d151f2234aa3820862f16c0f00c7) - -commit 4bbaffc8134a72d4e2dd21d4def1afc9ad29e815 -Author: Julien Cristau -Date: Mon Mar 7 23:20:30 2016 +0100 - - modesetting: avoid double free if AddResource fails - - ms_dri2_frame_event_client_gone or ms_dri2_frame_event_drawable_gone - already free the resource. - - Reviewed-by: Rémi Cardona - Signed-off-by: Julien Cristau - (cherry picked from commit acf263df81ad6813e0233033610fb44521cab1b4) - -commit 8616bd95de43aa63c959b0c978f1001ac38c0222 -Author: Julien Cristau -Date: Mon Mar 7 23:20:29 2016 +0100 - - dmx/glxProxy: don't free the glx pixmap twice if AddResource fails - - Reviewed-by: Rémi Cardona - Signed-off-by: Julien Cristau - (cherry picked from commit 164753f158e78f615f903467bfd234d7c58244ef) - -commit dcbf88aea74a00a8e09ffdc4de2b555911eb90fb -Author: Julien Cristau -Date: Mon Mar 7 23:20:28 2016 +0100 - - glx: don't call pGlxDraw->destroy() if AddResource fails - - AddResource will have called DrawableGone, which takes care of the - destruction. - - Reviewed-by: Rémi Cardona - Signed-off-by: Julien Cristau - (cherry picked from commit 59b9c3d5e4bf05aeaaac2ee4ea12c301a67aae2c) - -commit ab197ee9478a0e4e7a276c03645657b4f22ae9c0 -Author: Julien Cristau -Date: Mon Mar 7 23:20:26 2016 +0100 - - xvmc: Fix unchecked AddResource - - Reviewed-by: Rémi Cardona - Signed-off-by: Julien Cristau - (cherry picked from commit 119d5c0e2f800737c949ef760c5fe25d963200bf) - -commit bd022f03143723ac326b39d6e67853650aa1bf1d -Author: Jonas Ådahl -Date: Tue Mar 8 20:05:33 2016 +0800 - - xwayland: Correctly detect whether posix_fallocate exists - - We had HAVE_POSIX_FALLOCATE checks, but no such macros were ever - defined anywhere. This commit makes it so that this macro is defined if - the posix_fallocate is detected during configure. - - Signed-off-by: Jonas Ådahl - Reviewed-by: Julien Cristau - (cherry picked from commit a2c3c34b44b866440a152511e682c98879ee13b7) - -commit 23d9b2a566cdaeff71deae9c3a221ebf0cb5f550 -Author: Julien Cristau -Date: Tue Mar 1 21:39:01 2016 +0100 - - xv: fix double free in AddResource failure case - - XvdiDestroyVideoNotifyList already frees the list if AddResource fails, - so don't do it twice. And set tpn->client to NULL explicitly to avoid - confusing uninitialized memory with a valid value. - - Reviewed-by: Adam Jackson - Signed-off-by: Julien Cristau - (cherry picked from commit 939ce0bae68b682b57675f65c901653c1a094ebb) - -commit 90b854b2acc58a9936e9810f58b0bd1973697210 -Author: Adam Jackson -Date: Tue Mar 1 14:09:30 2016 -0500 - - dri1: Fix unchecked AddResource - - Signed-off-by: Adam Jackson - Reviewed-by: Julien Cristau - (cherry picked from commit 05e1bcf56e1c511a1ef539acfe11e37727e1179e) - -commit 0e3cc3d042a2da1ed781f6691dd7aca72d87046b -Author: Adam Jackson -Date: Tue Mar 1 14:09:29 2016 -0500 - - xv: Fix unchecked AddResource - - Reviewed-by: Julien Cristau - Signed-off-by: Adam Jackson - (cherry picked from commit 093f9505c12565cc19bdf6e33b263f31d104c3ef) - -commit 3d7bfe02cc3ad0f16403a073f1182d7019c98be3 -Author: Olivier Fourdan -Date: Tue Mar 1 17:03:44 2016 +0100 - - vidmode: build without xf86vidmodeproto - - git commit f175cf45: - - vidmode: move to a separate library of its own - - introduced a regression where the xserver would not build when - xf86vidmodeproto is not installed even if the configure option - "--disable-xf86vidmode" is specified. - - Fix build failure when xf86vidmodeproto is not installed. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit ac4d8c7cee13947b688ebb26035f06f7744db201) - -commit a49e7b9c2ebeb2e2ccb922265798234a8ce9d242 -Author: Olivier Fourdan -Date: Mon Feb 8 17:48:26 2016 +0100 - - xwayland: fix a crash on output removal - - On output removal, the CRTC that was added in xwl_output_create() - is not removed in xwl_output_destroy() and would cause a segmentation - fault later on in ProcRRGetMonitors(): - - (EE) Segmentation fault at address 0x100000001 - (EE) - (EE) 10: ? (?+0x29) [0x29] - (EE) 9: /usr/bin/Xwayland (_start+0x29) [0x423299] - (EE) 8: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7fdd80e7f580] - (EE) 7: /usr/bin/Xwayland (dix_main+0x3b3) [0x544ef3] - (EE) 6: /usr/bin/Xwayland (Dispatch+0x31e) [0x54109e] - (EE) 5: /usr/bin/Xwayland (ProcRRGetMonitors+0x9b) [0x4ca18b] - (EE) 4: /usr/bin/Xwayland (RRMonitorMakeList+0x269) [0x4c9ba9] - (EE) 3: /usr/bin/Xwayland (RRMonitorSetFromServer+0x118) [0x4c9198] - (EE) 2: /usr/bin/Xwayland (MakeAtom+0x30) [0x530710] - (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7fdd80e93b1f] - (EE) 0: /usr/bin/Xwayland (OsSigHandler+0x29) [0x5792d9] - - Remove the output CRTC in xwl_output_destroy() to avoid the crash. - - Signed-off-by: Olivier Fourdan - Reviewed-by: Daniel Stone - (cherry picked from commit 2116f03be04240e961649ca750a7aa5438b8446c) - -commit c7735f102aa9daa604f304f2e8a2131fcdd652e8 -Author: Michel Dänzer -Date: Thu Feb 18 17:33:19 2016 +0900 - - present: Call present_restore_screen_pixmap from present_set_abort_flip - - After present_set_abort_flip, the screen pixmap will be used for all - screen drawing, so we need to restore the current flip pixmap contents - to the screen pixmap here as well. - - Improves flashing / stutter e.g. when something like a popup menu appears - on top of a flipping fullscreen window or when switching out of - fullscreen. - - Note that this means present_set_abort_flip now relies on screen->root - being non-NULL, but that's already the case in other present code. - - Reviewed-by: Keith Packard - Reviewed-by: Chris Wilson - (cherry picked from commit 1bee4e254ca0305cb23e574b4c8b250d276ee998) - -commit 05d9de4e9ac515176f41f9fd649935ae990d8fb3 -Author: Michel Dänzer -Date: Thu Feb 18 17:20:45 2016 +0900 - - present: Factor code for restoring screen pixmap out of present_unflip (v2) - - The following fix will use the refactored function. - - The logic in the refactored function is slightly simplified, exploiting - the fact that this function is only ever called with a valid flip - pixmap. - - v2: Assert that flip_pixmap is non-NULL instead of testing and bailing - on NULL, preserve test for flip_window being non-NULL before calling - present_set_tree_pixmap for it (Keith Packard) - - Reviewed-by: Chris Wilson (v1) - Reviewed-by: Keith Packard - (cherry picked from commit 4611e902c291b8a789f374cff3300f74645bc2b2) - -commit 49b2a0fb0e6ae0793171b5dbfe517fe06647c06d -Author: Michel Dänzer -Date: Thu Feb 18 18:23:47 2016 +0900 - - present: Only update screen pixmap from flip pixmap once per unflip - - present_unflip may be called several times from present_check_flip_window - during the same unflip. We can only copy to the screen pixmap the first - time, otherwise we may scribble over other windows. The flip pixmap - contents don't get updated after the first time anyway. - - Fixes at least the following problems, which were introduced by commit - 806470b9 ("present: Copy unflip contents back to the Screen Pixmap"): - - On xfwm4 without compositing, run glxgears and put its window into - fullscreen mode to start flipping. While in fullscreen, open the xfwm4 - window menu by pressing Alt-Space. The window menu was invisible most - of the time because it was getting scribbled over by a repeated unflip - copy. - - When switching a flipping window out of fullscreen, a repeated unflip - copy could leave artifacts of the flip pixmap on the desktop. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94325 - - Reviewed-by: Keith Packard - Reviewed-by: Chris Wilson - (cherry picked from commit 72328e5eb98a3f27e1f0a0e17beae6db447bd87c) - -commit d5b8bc69e2652d8b9b13065b6528d2e8b8188b57 -Author: Michel Dänzer -Date: Tue Dec 8 12:52:17 2015 +0900 - - dri3: Refuse to work for remote clients (v2) - - Prevents clients forwarded via SSH from hanging while waiting for the - reply from the DRI3Open request. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93261 - - v2: Return BadMatch instead of BadRequest (Keith Packard) - - Reviewed-by: Keith Packard - (cherry picked from commit 43eb5b6047c9b35c337e553ec054f08bdc835abb) - -commit 15454c5d26b00931b2099ccc6da356a1e5b6f88c -Author: Olivier Fourdan -Date: Wed Feb 10 09:35:39 2016 +0100 - - xwayland: add partial xvidmode extension support - - Older games (mostly those based on SDL 1.x) rely on the XVidMode - extension and would refuse to run without. - - Add a simple, limited and read-only xvidmode support that reports the - current mode used so that games that rely on xvidmode extension can run - on XWayland. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87806 - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit 6070a749d953951bacbfb149c5c36451293aad35) - -commit f2b346f9ba86ba304baac5ed29f8caf3fefbdba0 -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:25 2016 +0100 - - vidmode: remove redundant DIX function - - The API signature of the DIX xf86VidModeGetGammaRampSize() is now - identical to the xf86cmap's xf86GetGammaRampSize() and all it does is - actually call xf86GetGammaRampSize() so we can save one vfunc. - - Remove uneeded xf86VidModeGetGammaRampSize() function. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit b430f53bb753f9b064ab62d014820c1c3c76a841) - -commit d381d59e44f675d01ca9ecab5a58c4864ae56c29 -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:24 2016 +0100 - - vidmode: remove redundant check - - The DIX already checks for VidModePrivateKey to get the vfunc, so - checking for this again in the DDX is redundant. - - Remove the redundant function xf86VidModeAvailable() from the DDX. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit 48fccde2bfb60efdbf45a96fa53bcd9a6570bf89) - -commit 349b71a37e4a87e3650b5c0df9651b2ce967293e -Author: Olivier Fourdan -Date: Wed Feb 10 09:34:34 2016 +0100 - - vidmode: move to a separate library of its own - - XVidMode extension might be useful to non hardware servers as well (e.g. - Xwayand) so that applications that rely on it (e.g. lot of older games) - can at least have read access to XVidMode. - - But the implementation is very XFree86 centric, so the idea is to add - a bunch of vfunc that other non-XFree86 servers can hook up into to - provide a similar functionality. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87806 - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit f175cf45aebcdda53f3ae49c0eaf27da1f194e92) - -commit 860669b1867178fe46df9da98591ea5a47f427f1 -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:22 2016 +0100 - - vidmode: rename DDX functions - - To avoid confusion as to what belongs on the DDX and what not. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit 17097e083b2392c8989474f6e0da8cc234329e9c) - -commit 64053645cfd950bb0b6c3fda8deb60e1e540ce69 -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:21 2016 +0100 - - vidmode: move display mode definitions - - To be able to reuse the VidMode extension in a non-hardware server, the - display mode definitions need to be accessible from DIX. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit ddfb8c009ac651209eb0087aaf86b54e1446e8b2) - -commit 227b533bf414e03e9a73d0d9e47a761fc597c360 -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:20 2016 +0100 - - vidmode: remove mode access from public API - - The mode access functions (namely VidModeCreateMode(), - VidModeCopyMode(), VidModeGetModeValue() and VidModeSetModeValue()) are - used only in xf86VidMode code and do not need to be available anywhere - else. - - Remove these functions from the public VidMode API and move them as - static where they are used. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit e29a64de662112b8ebcd3f20c89df0e8c51890ef) - -commit 9824faaa58efe55a372d7dd0f6c5cbf84e77af61 -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:19 2016 +0100 - - vidmode: use appropriate DisplayModePtr type - - The API uses an untyped pointer (void *) where a DisplayModePtr is - expected. - - Clean up the API to use the appropriate type, as DisplayModePtr is - really all that will be passed there. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit b7962ade5265a21ac7c60da6cc07ece15ef7e648) - -commit 3b52aee6dddc2cd2780f729e9389a1515c544c61 -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:18 2016 +0100 - - vidmode: remove VidModeGetMonitor() - - VidModeGetMonitor() is used solely in ProcXF86VidModeGetMonitor() to - get a untyped monitor pointer that is passed back straight again to - VidModeGetMonitorValue(). - - This is actually useless as VidModeGetMonitorValue() could as well get - the monitor from the ScreenPtr just like VidModeGetMonitor() does. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit 12f714fd95dc9d912c0bf2524005a73ec6e8ee4f) - -commit b241fd6413775f76a5faaea0f685a8294322e2fc -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:17 2016 +0100 - - vidmode: use ScreenPtr instead of screen index - - New code passes ScreenPtr instead of the screen index. - - Change the VidMode functions to take a ScreenPtr. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit f6f7e21133c13c34f306a191137d566e83b40929) - -commit 2028b9066ddbbeaf585e154d19c2672cccdda9bb -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:16 2016 +0100 - - vidmode: get rid of the CloseScreen wrapper - - As we rely on dixRegisterPrivateKey() to allocate the memory for us that - will be free automatically, we do not need the CloseScreen wrapper - anymore. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit 6e898ef080df93e885ead9d6fee8854b34e0216f) - -commit cb3a8768db1b7b2f98f62e3075aa0dd2a46edd9d -Author: Olivier Fourdan -Date: Fri Feb 5 09:48:15 2016 +0100 - - vidmode: use appropriate API - - dixRegisterPrivateKey() can allocate memory that will be freed when the - screen is teared down. - - No need to calloc() and free the memory ourself using a broken ref - counting method. - - Reviewed-by: Adam Jackson - Signed-off-by: Olivier Fourdan - (cherry picked from commit 341f3bccafde71754a9ed2303df9908e509c6d31) - -commit 45d17e6bb0ee35662913cd6ce378460aa7e461cc -Author: Chris Wilson -Date: Fri Feb 12 11:59:53 2016 +0000 - - dri2: Allow many blocked clients per-drawable - - This patch was motivated by the need to fix the use-after-free in - dri2ClientWake, but in doing so removes an arbitrary restriction that - limits DRI2 to only blocking the first client on each drawable. In order - to fix the use-after-free, we need to avoid touching our privates in the - ClientSleep callback and so we want to only use that external list as - our means of controlling sleeps and wakeups. We thus have a list of - sleeping clients at our disposal and can manage multiple events and - sources. - - Reviewed-by: Adam Jackson - Signed-off-by: Chris Wilson - (cherry picked from commit d8882954570aba656d5a7be7d357feaba21cb099) - -commit 204e85786f24c1ab734ab9ee015efbb790dee130 -Author: Chris Wilson -Date: Fri Feb 12 11:59:52 2016 +0000 - - dix: Add ClientSignalAll() - - This is a variant of ClientSignal() that signals all clients with an - optional matching sleeping client, function and closure. - - Reviewed-by: Adam Jackson - Signed-off-by: Chris Wilson - (cherry picked from commit bc3634010c096dffd1935c0c6cf8ba37534ae3d8) - -commit c06a4b4a2422e937eda36a4ec10bdafc71001be7 -Author: Jon Turney -Date: Tue Aug 11 15:45:57 2015 +0100 - - xwin: Add SKIPTASKBAR hint to _NET_WM_WINDOW_TYPE_DOCK type windows - - Signed-off-by: Jon Turney - Reviewed-by: Colin Harrison - (cherry picked from commit f7d1e5acdf5ed4ab4ed5c18727aa6f3d379ef560) - -commit 6f099c7bd59039834c7b45289310b003b81cb3e3 -Author: Jon Turney -Date: Thu Jul 2 19:21:11 2015 +0100 - - xwin: In multiwindow mode, look up the HWND for the parent window - - Rather than only looking at the foreground window to see if it matches - the WM_TRANSIENT_FOR window XID, lookup that XID and fetch the HWND from - the window privates. - - Signed-off-by: Jon Turney - Reviewed-by: Colin Harrison - (cherry picked from commit e7f87f8f76e5ac9479a71e3daf2cfdefd4b5f684) - -commit 41cbb7da4e9337d4136d378f5fa45365f41f02e4 -Author: Jon Turney -Date: Mon Feb 22 17:41:14 2016 +0000 - - xwin: Keyboard layout updates - - layout zh_TW doesn't exist (anymore), try something else for that. - - layout it variant mac doesn't seem to exist anymore, try to handle - Macintosh keyboards (running under Parallels on Mac) and other oddities - in a more generic way, by falling back to matching only on the language - identifer part of the input locale identifer. - - v2: - Fix typo of 0xa0000 for 0xa000 - - Signed-off-by: Jon Turney - Reviewed-by: Colin Harrison - (cherry picked from commit 8c2006ddc5abbd4ac374dabf1cfdd3df8fc88779) - -commit da7745065ee27d62cc2eba4e860118459917dad9 -Author: Colin Harrison -Date: Wed Nov 19 22:33:39 2014 +0000 - - xwin: Add a tentative entry for the Korean keyboard to the list of known keyboard layouts - - Signed-off-by: Colin Harrison - Reviewed-by: Jon Turney - (cherry picked from commit 8c97a0078e7fe22e6159fa53490dfca2f4d267a9) - -commit c1eb12f89c2391cd99a834da6b342f104da1eb5c -Author: Jon Turney -Date: Tue Feb 10 14:36:37 2015 +0000 - - xwin: Update to XRANDR 1.2 internal interface to ensure an output is reported by XRANDR - - If using the X server internal XRANDR 1.0 interface, it seems we must - register a display size with RRRegisterSize() in order to make - RRGetInfo() call RRScanOldConfig() to generate an output and crtc for - us. - - Without this, the following GDM bug means that an XDMCP session to GDM - cannot be started. - - https://bugzilla.gnome.org/show_bug.cgi?id=736054 - - Instead, use the more recent XRANDR 1.2 internal interface to explicitly - create the output and crtc, and maintain a single mode which represents - the current display size. - - Also don't emit a RRScreenSizeNotify when a RRScreenSizeSize is done - which has no effect, this seems to throw the GDM greeter into a loop... - - v2: Maintain reference count for the mode we maintain more correctly, to - avoid double free causing a crash on shutdown - - Connect crtc to output, so a subsequent RRSetCrtcConfig request doesn't - change anything, so we don't fail due to our lack of rrSetConfig or - rrCrtcSet hooks. - - See https://cygwin.com/ml/cygwin-xfree/2015-02/msg00032.html - - v3: - Raise limit on X display size from 4Kx4K to 32Kx32K - - Signed-off-by: Jon Turney - Reviewed-by: Colin Harrison - (cherry picked from commit a4d8a64c4ba467964476c4a1486da698bd6aed9e) - -commit 771a668188793e7261ae2cbf7d7289b8a133316a -Author: Jon Turney -Date: Sat Oct 18 17:31:57 2014 +0100 - - xwin: Use WM_CLIPBOARDUPDATE clipboard API - - Windows Vista and later have a saner clipboard API where the clipboard - viewer linked list is no longer maintained by applications. Use it - where available. - - Signed-off-by: Jon Turney - Reviewed-by: Colin Harrison - (cherry picked from commit 008efebda801b9b80e2ab3f2c95aeef8c82102ee) - -commit 00199e8c822fcf6a933637410e44e08ac659f682 -Author: Jon Turney -Date: Wed Jul 9 14:26:54 2014 +0100 - - xwin: Check that window position is visible on non-rectangular virtual desktops - - Improve the check that window position is visible to work correctly for - non-rectangular virtual desktops - - Signed-off-by: Jon Turney - Reviewed-by: Colin Harrison - (cherry picked from commit de7f1fd6f8f10f07b366ae5428a8c65a224bda98) - -commit 0fb47bd27919a7f1e47db3bd3f97fd9a07ccc517 -Author: Jon Turney -Date: Thu May 8 11:40:39 2014 +0100 - - xwin: Correctly interpret WM_HINTS, WM_NORMAL_HINTS properties on x86_64 - - Signed-off-by: Jon Turney - Reviewed-by: Colin Harrison - (cherry picked from commit a9e73131b6453e0fa2da5360e84af7a2eae3b205) - -commit 1e143cff16835dd69559ca5646f313dad3db75ab -Author: Jon Turney -Date: Thu Mar 13 18:04:17 2014 +0000 - - xwin: Improve handling of no-decoration motif hint - - When motif decoration hint asks for no decoration, don't add sysmenu, - mimimize or maximimize controls. - - (This fixes a problem with e.g. fbpanel having a minimize control, but - gtk's panel_configure_event() doesn't like the state we put the window - into when we minimize it, causing it to spin) - - Signed-off-by: Jon Turney - Reviewed-by: Colin Harrison - (cherry picked from commit d7cef6fbe23381b31c163468f349feee2f1b1eba) - -commit f0c2a3527797cf2bfbfa4697c294ae087c1e4423 -Author: Jon Turney -Date: Fri Mar 28 16:57:48 2014 +0000 - - xwin: XGetWMNormalHints() returns non-zero on success - - XGetWMNormalHints() doesn't actually return a Status value. On success - it returns a non-zero value, not Success. - - Signed-off-by: Jon Turney - Reviewed-by: Colin Harrison - (cherry picked from commit f75404be3ad94c8da493688397712c65ea66cb90) - -commit e457e93e5d33cbec387e40051fbabf6cf76d6af3 -Author: Michel Dänzer -Date: Wed Feb 24 16:52:59 2016 +0900 - - present: Only requeue if target MSC is not reached after an unflip - - While present_pixmap decrements target_msc by 1 for present_queue_vblank, - it leaves the original vblank->target_msc intact. So incrementing the - latter for requeueing resulted in the requeued presentation being - executed too late. - - Also, no need to requeue if the target MSC is already reached. - - This further reduces stutter when a popup menu appears on top of a - flipping fullscreen window. - - Reviewed-by: Chris Wilson - Signed-off-by: Michel Dänzer - (cherry picked from commit b4ac7b142fa3c536e9b283cfd34b94d82c03aac6) - -commit eb5108b87017128f394ae31b5b7cd85dd8819bca -Author: Michel Dänzer -Date: Wed Feb 24 16:52:58 2016 +0900 - - present: Requeue if flip driver hook fails and target MSC not reached - - For flipping, we wait for the MSC before the target MSC and then call - the driver flip hook. If the latter fails, we have to wait for the - target MSC before falling back to a copy, or else it's executed too - early. - - Fixes glxgears running at unbounded framerate (not synchronized to the - refresh rate) in fullscreen if the driver flip hook fails. - - Reviewed-by: Chris Wilson - Signed-off-by: Michel Dänzer - (cherry picked from commit e7a35b9e16aa12970908f5d55371bb1b862f8f24) - -commit cf30b7cfd6d91da16c762332617fc165d82f17d2 -Author: Michel Dänzer -Date: Wed Feb 24 16:52:57 2016 +0900 - - present: Move msc_is_(equal_or_)after to the top of present.c - - To make them usable from any other function in the file. No functional - change. - - Reviewed-by: Chris Wilson - Signed-off-by: Michel Dänzer - (cherry picked from commit 1a9f8c4623c4e6b6955cb6d5f44d29c244dfd32a) - -commit 8869f45a965a7b12bb7fe03ba226167e1f821c1e -Author: Laércio de Sousa -Date: Mon Feb 22 16:04:12 2016 -0300 - - kdrive/evdev: update keyboard LEDs (#22302) - - Implement missing parts in kdrive evdev driver for - correct update of evdev keyboard LEDs. - - Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=22302 - - [ajax: Fixed deref-before-null-check bug] - - Reviewed-by: Adam Jackson - Signed-off-by: Laércio de Sousa - (cherry picked from commit 0461bca0cb2f7918c77ed45d2cbc756cf65021be) - -commit 05f3cf659be44caf00e801a5bcd9362a1a87aa46 -Author: Jon TURNEY -Date: Mon Feb 22 16:20:00 2016 +0000 - - Fix build on Cygwin by ensuring WIN32 check triggers only on MinGW - - The type of fd_mask was changed in Cygwin 2.4.0 headers from 'long' to - 'unsigned long'. This exposes an existing problem with winauth.c, which - includes Xwindows.h (which includes windows.h, which defines WIN32), - before including osdep.h, which causes the now conflicting definition of - fd_mask in osdep.h to be exposed: - - In file included from ../os/osdep.h:198:18: error: conflicting types for - ‘fd_mask’ typedef long int fd_mask; /usr/include/sys/select.h:46:23: - note: previous declaration of ‘fd_mask’ was here typedef unsigned long - fd_mask; - - Adjust the include guards in osdep.h to make sure we only use WIN32 - guarded code when not compiling for Cygwin (i.e. WIN32 && !__CYGWIN__) - - This isn't a very elegant, but unfortunately appears to be the best - solution, since it doesn't seem to be possible to write the test in a - positive form. - - Future work: Should also audit of all the other uses of WIN32 in - xserver, and make sure they are correct. - - Reviewed-by: Adam Jackson - Signed-off-by: Jon Turney - (cherry picked from commit 30b7d7995ef70b7473e0fb170eb8ae23b8d1f4a7) - -commit 10e46504711427ed5280fdeb974a08b888f47034 -Author: Jonas Ådahl -Date: Fri Feb 19 15:08:12 2016 +0800 - - xwayland: Prefix shm tmp file names with xwayland - - Prefix the temporary file names used for allocating pixmaps with - "xwayland-" instead of "weston-". This makes it less confusing while - looking at the file names of the currently open fds of the Xwayland - process. - - Reviewed-by: Adam Jackson - Signed-off-by: Jonas Ådahl - (cherry picked from commit 544b4149268561d3d794aa540172831fa7550a20) - -commit de7f91c079d7168c107bb8b8dbe651eebd8e9a12 -Author: Marc-Andre Lureau -Date: Fri Feb 12 22:52:07 2016 +0100 - - dri2: add virtio-gpu pci ids - - Add virtio-gpu legacy + 1.0 pci ids, allowing them to use - modesetting + glamor with dri2. - - Signed-off-by: Marc-André Lureau - Reviewed-by: Dave Airlie - (cherry picked from commit 5627708e5f447d0e360bbc9eb8d1c4e58c5046d0) - -commit 16573a4c35cb71f204b37ad1c3b3d115e84b2cd8 -Author: Daniel Stone -Date: Fri Feb 12 16:36:59 2016 +0000 - - dix: Add hybrid full-size/empty-clip mode to SetRootClip - - 216bdbc735 removed the SetRootClip call in the XWayland output-hotplug - handler when running rootless (e.g. as a part of Weston/Mutter), since - the root window has no storage, so generating exposures will result in - writes to invalid memory. - - Unfortunately, preventing the segfault also breaks sprite confinement. - SetRootClip updates winSize and borderSize for the root window, which - when combined with RRScreenSizeChanged calling ScreenRestructured, - generates a new sprite-confinment area to update it to the whole screen. - - Removing this call results in the window geometry being reported - correctly, but winSize/borderSize never changing from their values at - startup, i.e. out of sync with the root window geometry / screen - information in the connection info / XRandR. - - This patch introduces a hybrid mode, where we update winSize and - borderSize for the root window, enabling sprite confinement to work - correctly, but keep the clip emptied so exposures are never generated. - - Signed-off-by: Daniel Stone - Tested-by: Olivier Fourdan - Reviewed-by: Adam Jackson - (cherry picked from commit e957a2e5dd288f515f3e93724823542c20333f6a) - -commit 29d1c5a8e4127d5fd1a0d41f8e1474e9dfdb9638 -Author: Keith Packard -Date: Tue Feb 16 20:03:57 2016 -0800 - - randr: Send ConfigNotify when manual monitor list changes - - This lets clients know that the layout of the monitors on the screen - has changed so they can adapt appropriately. - - Signed-off-by: Keith Packard - Reviewed-by: Dave Airlie - (cherry picked from commit dbe8d03c42f01332b3dc41fe9290aed142f1436f) - -commit fc3eef6024355206ea429eb5e2d36001fa47a884 -Author: Adam Jackson -Date: Wed Feb 10 11:13:04 2016 -0500 - - dri2: Use the work queue to manage client sleeps - - In commit e43abdce964f5ed9689cf908af8c305b39a5dd36 - Author: Chris Wilson - Date: Wed Feb 3 09:54:46 2016 +0000 - - dri2: Unblock Clients on Drawable release - - we try to wake up any blocked clients at drawable destruction. But by - the time we get there, CloseDownConnection has already torn down state - that AttendClient wants to modify. - - Using ClientSleep instead of IgnoreClient puts a wakeup function on a - workqueue, and the queue will be cleared for us in CloseDownClient - before (non-neverretain) resource teardown. - - Tested-by: Chris Wilson - Reviewed-by: Chris Wilson - Signed-off-by: Adam Jackson - (cherry picked from commit eddf848c44349c7ebc7da9957bffb3630f3faaa9) - -commit 9db37e05a96d1488b7cb30b7e1ccd4c73b38d915 -Author: Chris Wilson -Date: Wed Feb 3 09:54:46 2016 +0000 - - dri2: Unblock Clients on Drawable release - - If the Window is destroyed by another client, such as the window - manager, the original client may be blocked by DRI2 awaiting a vblank - event. When this happens, DRI2DrawableGone forgets to unblock that - client and so the wait never completes. - - Note Present/xshmfence is also suspectible to this race. - - Testcase: dri2-race/manager - Signed-off-by: Chris Wilson - Cc: Ville Syrjälä - Reviewed-by: Ville Syrjälä - (cherry picked from commit e43abdce964f5ed9689cf908af8c305b39a5dd36) - -commit 7be0e08cd91ed4be18eefb04018be36dcf0f427e -Author: Adam Jackson -Date: Wed Dec 9 09:10:13 2015 -0500 - - autogen: Set a default subject prefix for patches - - Per discussion at XDC2015, we want this so we can easily distinguish - which module a patch is for. There's no way to set this in the - server-side config, so setting a default at autogen time is about the - best we can do. - - Reviewed-by: Eric Anholt - Signed-off-by: Adam Jackson - (cherry picked from commit a722d617a092f08f69086630f5cfb598d4a21cc7) - -commit c388b2d52177eb7f66a63a8454cee1990b4813d9 -Author: Jan Burgmeier -Date: Thu Feb 4 14:06:43 2016 +0100 - - Fix XineramaQueryScreens for reverse prime - - Make sure we account for slave CRTCs when building the monitor list, - since that's what rrxinerama uses to fake Xinerama geometry. - - [ajax: Slightly more informative commit message.] - - Bugzilla: https://bugs.freedesktop.org/92313 - Reviewed-by: Dave Airlie - (cherry picked from commit 7bb64d8c1de9659f11da7917772919b071e9db82) - -commit 18155405875608f3a46db465aa9753d66b099f8e -Author: Rui Matos -Date: Wed Feb 3 16:14:09 2016 +0100 - - xwayland: Clear pending cursor frame callbacks on pointer enter - - The last cursor frame we commited before the pointer left one of our - surfaces might not have been shown. In that case we'll have a cursor - surface frame callback pending which we need to clear so that we can - continue submitting new cursor frames. - - Signed-off-by: Rui Matos - Reviewed-by: Bryce Harrington - Acked-by: Pekka Paalanen - Reviewed-by: Daniel Stone - Reviewed-by: Jonas Ådahl - (cherry picked from commit 87d5534f701242d7c23aa20545a6292a0779c89c) - -commit eac170e469cb66a7e5a47d00c56ddc53c63cca85 -Author: Chris Wilson -Date: Wed Feb 3 09:54:43 2016 +0000 - - dri2: Only invalidate the immediate Window upon SetWindowPixmap - - All callers of SetWindowPixmap will themselves be traversing the Window - heirarchy updating the backing Pixmap of each child and so we can forgo - doing the identical traversal inside the DRI2SetWindowPixmap handler. - - Reported-by: Loïc Yhuel - Link: http://lists.x.org/archives/xorg-devel/2015-February/045638.html - Signed-off-by: Chris Wilson - Cc: Ville Syrjälä - Reviewed-by: Ville Syrjälä - (cherry picked from commit b7d392931a309d0fe754869efb456ccd0385f3aa) - -commit 2fc1752ac39a9325dbc5f8e700fc566ea6f8240f -Author: Eric Anholt -Date: Wed Jan 27 11:26:16 2016 -0800 - - glamor: Flip around conditionals in RepeatNone fixups. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 2c3e8768443caa66d78775ea79bb16a5faae3a3c) - -commit 4acebf257e37e075a14b3acecce27d050b18bba8 -Author: Eric Anholt -Date: Wed Jan 27 11:21:05 2016 -0800 - - glamor: Cut down a bunch of conditional handling for RepeatFix. - - For hardware that doesn't do actual jumps for conditionals (i915, - current vc4 driver), this reduces the number of texture fetches - performed (assuming the driver isn't really smart about noticing that - the same sampler is used on each side of an if just with different - coordinates). - - No performance difference on i965 with x11perf -magpixwin100 (n=40). - Improves -magpixwin100 by 12.9174% +/- 0.405272% (n=5) on vc4. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit e82c8c81df80de487aa795d69e874a0811c537ea) - -commit d1c0873228a115ee0ebf46afaf335b8b97a5bbdc -Author: Eric Anholt -Date: Wed Jan 27 11:15:27 2016 -0800 - - glamor: Clarify how the repeat values being passed around work. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 2c3273861cdf874b165ce5a1953102187f71b48e) - -commit b0b160aafc151b1fdf1840134bc344e3ce2f3e85 -Author: Eric Anholt -Date: Wed Jan 27 11:10:14 2016 -0800 - - glamor: Clean up formatting of RepeatFix shader code. - - All sorts of weird indentation, and some cuddled conditional - statements deep in the if tree. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 990a8ee01324332ee9b4a4bb124ce8f73be24349) - -commit 12e4e3ac31b05b501df74c4fa37274830e30662a -Author: Eric Anholt -Date: Wed Jan 27 10:24:17 2016 -0800 - - glamor: Clarify some logic in RepeatFix handling. - - wh ratios are != 1.0 only when large, so with that we can simplify - down how we end up with RepeatFix being used. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 20cb5b2d65ce63ea7934b77f1520387550c778a8) - -commit d5c9c541c5d325453ddb9ebcdcf36bc6ef0af4aa -Author: Eric Anholt -Date: Tue Jan 26 17:29:48 2016 -0800 - - glamor: Simplify the pixmap box looping. - - We had a double loop across h and w, and passed the current x and y - out to callers who then used w to multiply/add to an index. Instead, - just single loop across w * h. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 07f0d90e4a8b05ef968b1ef47acda7c9f4580340) - -commit 68bd172432de069aa242d21b3af505867417ae45 -Author: Eric Anholt -Date: Tue Jan 26 15:56:27 2016 -0800 - - glamor: Reuse the glamor_program_alpha_* enums for Render. - - This is a step toward using glamor_program.c for Render acceleration. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 0dbce65b08f4812dcaa4b77cd37aebac334c47a2) - -commit 6a71251b3985d6dd7c1ab1fa6e13f1edaa33a5c5 -Author: Eric Anholt -Date: Tue Jan 26 15:47:01 2016 -0800 - - glamor: Drop extra SHADER_IN type for no mask present. - - We can just hand in a constant mask and the driver will optimize away - the multiplication for us. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 9b676786de32f06aedf9d4c9535c10fda247335a) - -commit 2db5bf7a1297a84e516ce87b24dd3982e7674bb2 -Author: Eric Anholt -Date: Tue Jan 26 15:19:50 2016 -0800 - - glamor: Convert XV to using glamor_program.c. - - One less custom path! By following the common glamor_program.c use - pattern, we get the ability to handle large pixmaps as the - destination. It's also one less place where glamor_utils.h coordinate - transformation happens. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 03f34f85563c81e1655626e10f75fd7e21393c92) - -commit 9be8478467fc4827ca8edc035f0a6d1cca78fbe0 -Author: Eric Anholt -Date: Tue Jan 26 14:52:08 2016 -0800 - - glamor: Simplify XV vertex setup. - - We were clipping the drawn rectangle to each clip box, then expanding - the box to a big triangle to avoid tearing, then drawing each triangle - to the destination through a scissor. If we're using a scissor for - clipping, though, then we don't need to clip the drawn primitive on - the CPU in the first place. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit f368a0ba3aa58e5260d839d11d2f3aef75feaeaf) - -commit d23fe3229c17cb0dfb4210041efbdc36fc365dad -Author: Eric Anholt -Date: Tue Jan 26 14:18:48 2016 -0800 - - glamor: Set up XV sampler uniforms once at program build time. - - No sense doing it on every draw. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 294e45b60d99cf7d11c657288bbe2670b56775f3) - -commit ef993dbbed24f1fe68fd4c66f0035e6c74cde10d -Author: Eric Anholt -Date: Tue Jan 26 13:39:18 2016 -0800 - - glamor: Drop dead glamor_pict_format_is_compatible(). - - This hasn't been used since 2f80c7791bb0b11f261cb1e3e0d89163dcdd0342 - (GLAMOR_SEPARATE_TEXTURE removal). - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 5d7bef2eedfd965359dd4eebb6ab806cdad5b83f) - -commit f031c5edbf36a029800d0f8574aea226a4b5b82f -Author: Eric Anholt -Date: Tue Jan 26 15:08:17 2016 -0800 - - glamor: Drop comment about dead yInverted flag. - - Wait long enough, and you don't need to think about it at all. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 4494a450405cf539743cbcfe6907bf5bdd2d80cb) - -commit f1a03379c44c467b92753748165380e33e2e28c8 -Author: Eric Anholt -Date: Tue Jan 26 13:34:00 2016 -0800 - - glamor: Rename the *y_inverted helpers to not say "inverted". - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit f7c24e6ac345aab91df5fc959f239a33f37113b1) - -commit 83395e6a99c0665490948c92da9bd768954f8c9e -Author: Eric Anholt -Date: Tue Jan 26 13:31:59 2016 -0800 - - glamor: Drop dead *_from_x_coord_y() functions. - - They've been dead since the yInverted removal - (e310387f443b6333edf02c8980daa303505382b4). - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 1fcb6f4cbf3d6514716435a0e79c0e6d53c31a3a) - -commit 558ea399664b767c3f9c1acc18f4b2d341d6929c -Author: Eric Anholt -Date: Thu Jan 21 16:01:14 2016 -0800 - - glamor: Clarify when Render fallbacks happen due to an unsupported op. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 9ef11f13af7f552dadb4a90c248e525a257e0a2c) - -commit 7c63e80e3f9de3d1b8132a40be6f932e772e0d69 -Author: Eric Anholt -Date: Wed Jan 27 11:35:03 2016 -0800 - - glamor: Label programs before linking them. - - i965 does most of its compiling at link time, so our debug output for - its shaders didn't have the name on. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit b8229cc5f5298a37a4735dd002b0e0ebfc8bc75a) - -commit 14e2b6f9d87921b39c0874e1a74dff2f9e396f78 -Author: Eric Anholt -Date: Wed Jan 27 16:11:17 2016 -0800 - - ephyr: Make sure we have GLX_ARB_create_context before calling it. - - This should fix aborts()s from epoxy on old software stacks. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - Reviewed-by: Kenneth Graunke - (cherry picked from commit 68f236ebd4b268a9e525d623986999d230feb453) - -commit cd9ae6d1a259f3229df4c110903658d1bede8554 -Author: Adam Jackson -Date: Tue Dec 8 17:41:37 2015 -0500 - - xfree86: Build parser for DRI config file subsection unconditionally - - This applies regardless of which DRI you're asking for. Worse, leaving - it out means breaking the config file syntax in a pointless way, since - non-DRI servers can safely just parse it and ignore it. - - Reviewed-by: Eric Anholt - Signed-off-by: Adam Jackson - (cherry picked from commit 953b71270cf12c59c8a836c9be403d07fb01fa22) - -commit 3da08902dd5961ea6f70431fce813f294d0f8547 -Author: Dave Airlie -Date: Wed Jan 27 16:46:06 2016 -0800 - - ephyr: catch X errors if we try to create a core context and fail. - - This stops Xephyr failing on GLXBadFBConfig. - - Signed-off-by: Dave Airlie - Reviewed-by: Dave Airlie - (cherry picked from commit d8ecbe563991cc689e95a8cb9d510e920eaceea0) - -commit 4c6ca0aae5a301140eadc97313be954bd6a5fe18 -Author: Dave Airlie -Date: Tue Jan 19 08:06:25 2016 +1000 - - xwayland: add support for use core profile for glamor. (v2) - - This adds support to Xwayland to try and use OpenGL core - profile for glamor first. - - v1.1: use version defines. - v2: let glamor work out core profile itself. - - Signed-off-by: Dave Airlie - Reviewed-by: Eric Anholt - (cherry picked from commit 6978c8ee666a9224213173e7680e2d71b1094bab) - -commit b0fa782081f933e84f068228ca35fa5c25c9a4b3 -Author: Dave Airlie -Date: Tue Jan 19 07:59:59 2016 +1000 - - glamor: add core profile support to EGL glamor. (v2) - - v1.1: use version defines. - v2: let glamor work it out itself - - Signed-off-by: Dave Airlie - Reviewed-by: Eric Anholt - (cherry picked from commit 79c3925532bc0d098c9a4da6d5117bdada56e0af) - -commit 181ea41e71934a0c575322a8be9234f2e64ef8db -Author: Keith Packard -Date: Wed Sep 10 19:05:08 2014 -0700 - - ephyr: Create 3.1 core profile context if possible (v3) - - On desktop GL, ask for a 3.1 core profile context if that's available, - otherwise create a generic context. - - v2: tell glamor the profile is a core one. - v2.1: add/use GL version defines - v3: let glamor work out core itself - - Signed-off-by: Keith Packard - Signed-off-by: Dave Airlie - Reviewed-by: Eric Anholt - (cherry picked from commit 98c3504dcfcec227b9c7798a0bd287941cec0691) - -commit d7f03d57454de989025de2a2ef644d43eead9ddf -Author: Dave Airlie -Date: Mon Jan 11 14:00:35 2016 +1000 - - glamor: add core profile support. (v2) - - Glamor works out from the profile if it is - core. - - This flag is used to disable quads for rendering. - - v1.1: split long line + make whitespace conform (Michel) - v1.2: add GL 3.1 version defines - v2: move to having glamor work out the profile. - - Signed-off-by: Dave Airlie - Reviewed-by: Eric Anholt - (cherry picked from commit 564d9f0f8c17bb3c13aa3ca36da7825454dc5de3) - -commit 0cd5b9525a8f661c6b2545c21ce1ba21577c009e -Author: Keith Packard -Date: Wed Sep 10 19:02:55 2014 -0700 - - glamor: Use GL_RED instead of GL_ALPHA if we have texture_swizzle (v3) - - GL_RED is supported by core profiles while GL_ALPHA is not; use GL_RED - for one channel objects (depth 1 to 8), and then swizzle them into the - alpha channel when used as a mask. - - [airlied: updated to master, add swizzle to composited glyphs and xv paths] - - v2: consolidate setting swizzle into the texture creation code, it - should work fine there. Handle swizzle when setting color as well. - v3: Fix drawing to a8 with Render (changes by anholt, reviewed by airlied). - - Signed-off-by: Keith Packard - Signed-off-by: Dave Airlie - Reviewed-by: Eric Anholt - (cherry picked from commit e6754dcb59ee21abb42421a28f4e467295584f67) - -commit 7bd0f79c38cac71d433b1ec7e56a6ff7c2550bcc -Author: Eric Anholt -Date: Thu Jun 18 11:14:41 2015 -0700 - - glamor: Delay making pixmaps shareable until we need to. - - If a pixmap isn't getting exported as a dmabuf, then we don't need to - make an EGLImage/GBM bo for it. This should reduce normal pixmap - allocation overhead, and also lets the driver choose non-scanout - formats which may be much higher performance. - - On Raspberry Pi, where scanout isn't usable as a texture source, this - improves x11perf -copypixwin100 from about 4300/sec to 5780/sec under - xcompmgr -a, because we no longer need to upload our x11perf window to - a tiled temporary in order to render it to the screen. - - v2: Just use pixmap->usage_hint instead of a new field. Drop the - changes that started storing gbm_bos in the pixmap priv due to - lifetime issues. - v3: Fix a missing gbm_bo_destroy() on the pixmap-from-fd success path. - - [ajax: Restore glamor_egl_create_argb8888_based_texture for ABI reasons. - I'm not aware of any driver using it directly, but.] - - Signed-off-by: Eric Anholt - Reviewed-by: Michel Dänzer - (cherry picked from commit 51984dddfcc7133ed3c1f20d03514aa98c9a7831) - -commit ec9b79c8d497522f87697e434f55086f185e65e7 -Author: Eric Anholt -Date: Thu Jun 18 11:26:46 2015 -0700 - - glamor: Simplify DRI3 pixmap-from-fd, using GBM. - - This GBM import path was introduced in 10.2, which we already require. - - Signed-off-by: Eric Anholt - Reviewed-by: Michel Dänzer - (cherry picked from commit 6be33fd044949330e0b2b4185882c9664d2f90b4) - -commit fba0d8a3c9deff557f8a9735fc907556e4e861aa -Author: Eric Anholt -Date: Wed Jan 20 12:33:25 2016 -0800 - - glamor: Drop duplicated GLAMOR_DEFAULT_PRECISIONs in render accel. - - We only need it once at the top of the shader, so just put it - there. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - (cherry picked from commit 5042b0652b9fe5fed57a233880c3429ba390d86d) - -commit 389761e592184d78969469914d1aba5d281824fd -Author: Dave Airlie -Date: Tue Jan 12 18:13:46 2016 +1000 - - glamor: Add support for CA rendering in a single pass. - - It's been on the list to add dual source blending support to avoid the - two pass componentAlpha code. Radeon has done this for a while in - EXA, so let's add support to bring glamor up to using it. - - This adds dual blend to both render and composite glyphs paths. - - Initial results show close to doubling of speed of x11perf -rgb10text. - - v2: Fix breakage of all of CA acceleration for systems without - GL_ARB_blend_func_extended. Add CA support for all the ops we - support in non-CA mode when blend_func_extended is present. Clean - up some comments and formatting. (changes by anholt) - - Signed-off-by: Dave Airlie - Signed-off-by: Eric Anholt - (cherry picked from commit e7308b6c77561df44c04f81509f8ada678705d94) - -commit 2e79da2dce15b25534ea83eb453cb9b762a2e29f -Author: Eric Anholt -Date: Thu Jan 21 12:01:02 2016 -0800 - - glamor: Drop the composite_with_copy path entirely. - - I originally inherited this from the EXA code, without determining - whether it was really needed. Regular composite should end up doing - the same thing, since it's all just shaders anyway. To the extent - that it doesn't, we should fix composite. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - (cherry picked from commit cab14a9a08ff06bc4cbef79c7be8f1d07c07ebf9) - -commit aad8e4714a2bdeada5c7ae42d2047cf6a4720d19 -Author: Keith Packard -Date: Wed Sep 10 16:17:52 2014 -0700 - - glamor: Use vertex array objects - - Core contexts require the use of vertex array objects, so switch both glamor - and ephyr/glamor over. - - Signed-off-by: Keith Packard - Reviewed-by: Eric Anholt - Signed-off-by: Dave Airlie - (cherry picked from commit 49aa5e3ea4eecea0562c05a4e52962985a56e510) - -commit 6691f523332a5993d3e90e16d8edff7f3b85c4ae -Author: Dave Airlie -Date: Tue Jan 19 10:34:14 2016 +1000 - - glamor/xv: add vbo support (v2.1) - - This converts the Xv code to using VBOs instead of - client ptrs. This is necessary to move towards using - the core profile later. - - v2: put all boxes into single vbo, use draw arrays - to offset things. (Eric) - v2.1: brown paper bag with releasing vbo. - - Reviewed-by: Eric Anholt - Signed-off-by: Dave Airlie - (cherry picked from commit d99204fb5e09ce7be36485d4226f7ad6d6eb24cc) - -commit eabe0e0b3685b5ab38c3597f238e92a3e4598441 -Author: Dave Airlie -Date: Mon Jan 11 14:00:04 2016 +1000 - - glamor: use vbos in gradient/picture code. - - This converts two client arrays users to using vbos, - this is necessary to move to using core profile later. - - Reviewed-by: Eric Anholt - Signed-off-by: Dave Airlie - (cherry picked from commit 5582ad1b9b29934498cf3fef305d3a988130cd52) - -commit 23e60f917a5af652cd83b8a3a9951c79838721b3 -Author: Adam Jackson -Date: Mon Feb 8 18:32:57 2016 -0500 - - xserver 1.18.1 - - Signed-off-by: Adam Jackson - -commit a0d49b1c660f2453d07ce23bf86b0ef717f3d2c8 -Author: Timo Aaltonen -Date: Wed Jan 27 14:18:50 2016 +0200 - - dri2: Sync i915_pci_ids.h and i965_pci_ids.h from mesa - - Adds Skylake, Kabylake and Broxton allowing them to use - modesetting + glamor with dri2. - - Signed-off-by: Timo Aaltonen - Reviewed-by: Andreas Boll - (cherry picked from commit 50ca286d79f6304b972ea74487308e7794a170fb) - -commit bc4b234d6f4b7b211f7a9750a97524e9652d0e6e -Author: Adam Jackson -Date: Wed Jan 27 11:50:13 2016 -0500 - - modesetting: Require sufficiently new libdrm - - Bugzilla: https://bugs.freedesktop.org/93883 - Signed-off-by: Adam Jackson - Reviewed-by: Alex Deucher - Reviewed-by: Julien Cristau - (cherry picked from commit bf23db42a4e5943129501223a47b48884cdeb62f) - -commit 0b95625cecc7dc2cb6aff61edbc8366e8ffd516f -Author: Dave Airlie -Date: Tue Jan 19 02:01:09 2016 +0000 - - glamor: don't do copy if we have 0 boxes to copy. - - This happens if you run twm + mplayer + xclock and drag - the clock over the mplayer. If we don't catch it, we cause - an illegal draw elements command to be passed to GL. - - Signed-off-by: Dave Airlie - Reviewed-by: Eric Anholt - (cherry picked from commit 1fd82c764d5b24107e60f2173e30e5d24a2f2667) - -commit 71be56c426bd9b66cbc5ab23923f4564e066cd75 -Author: Eric Anholt -Date: Thu Jan 21 11:30:15 2016 -0800 - - glamor: Fix copy-like Render operations between 15 and 16 depth. - - Reading and writing to 16-depth pixmaps using PICT_x1r5g5b5 ends up - failing, unless you're doing a straight copy at the same bpp where the - misinterpretation matches on both sides. - - Fixes rendercheck/blend/over and renderhceck/blend/src in piglit. - - Please cherry-pick this to active stable branches. - - Signed-off-by: Eric Anholt - Reviewed-by: Dave Airlie - (cherry picked from commit 510c8605641803f1f5b5d2de6d3bb422b148e0e7) - -commit 6a4f771c5da99d5f723d61e1a780390a5e6b161b -Author: Adam Jackson -Date: Wed Jan 20 15:43:10 2016 -0500 - - glx: Fix GLX_EXT_create_context_es2_profile support - - As of v4 of this extension, any GLES version number may be requested (to - enable GLES3 and later). To comply with this, simply remove the API - version checks and leave it to the DRI driver to validate. This happens - to also enable using GLES1 in direct contexts, so if that's the dire - situation you find yourself in, your client driver at least stands a - chance of working. - - v4 also specifies that both extension strings should be advertised for - compatibility with clients written against v1 of the extension spec, so - add the es_profile bit to the extension list and enable it whenever we - would enable es2_profile. - - Reviewed-by: Ilia Mirkin - Signed-off-by: Adam Jackson - (cherry picked from commit bc415fb1e0031ad23bda6e9c3f4664532876a0e5) - -commit ff562c9f98bbce91b61b06dfc51aa30c14180cdd -Author: Michel Dänzer -Date: Fri Jan 15 18:22:21 2016 +0900 - - present: Handle wraparound when comparing MSC values - - When a window moves from one CRTC to another, present_window_to_crtc_msc - updates window_priv->msc_offset according to the delta between the - current MSC values of the old and new CRTC: - - window_priv->msc_offset += new_msc - old_msc; - - window_priv->msc_offset is initially 0, so if new_msc < old_msc, - window_priv->msc_offset wraps around and becomes a large number. If the - window_msc parameter passed in is small (in particular if it's 0, such as - is the case when the client just wants to know the current window MSC - value), the returned CRTC MSC value may still be a large number. In that - case, the existing MSC comparisons in pixmap_present weren't working as - intended, resulting in scheduling a wait far into the future when the - target MSC had actually already passed. This would result in the client - (e.g. the Chromium browser) hanging when moving its window between CRTCs. - - In order to fix this, introduce msc_is_(equal_or_)after helper functions - which take the wraparound into account for comparing two MSC values. - - Signed-off-by: Michel Dänzer - Reviewed-by: Keith Packard - Reviewed-by: Martin Peres - Signed-off-by: Keith Packard - (cherry picked from commit 25eca80265654cfbf8768024e027426fedeb0918) - -commit 9505783c2270b6da13cc5691b94f48ff72d7b625 -Author: Michel Dänzer -Date: Tue Jan 12 15:42:47 2016 +0900 - - glamor: Disable debugging messages other than GL API errors - - According to Nicolai Hähnle, the relevant specification says "All - messages are initially enabled unless their assigned severity is - DEBUG_SEVERITY_LOW", so we need to explicitly disable the messages we - don't want to get. Failing that, we were accidentally logging e.g. - shader stats intended for shader-db. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93659 - Tested-by: Laurent Carlier - Reviewed-by: Emil Velikov - Signed-off-by: Michel Dänzer - Reviewed-by: Eric Anholt - (cherry picked from commit 1db6de7b6a6ee240eb50a13fe1fa1e135d7cb93b) - -commit 9e45b28e998a4e0aacd1224b5d4f479ee453fdb9 -Author: Dave Airlie -Date: Tue Jan 12 14:19:24 2016 +1000 - - glamor: store old fonts in double width textures. - - There is a problem with some fonts that the height necessary - to store the font is greater than the max texture size, which - causes a fallback to occur. We can avoid this by storing two - macro columns side-by-side in the texture and adjusting - the calculations to suit. - - This fixes - xfd -fn -*-*-*-*-*-*-*-*-*-*-*-*-*-* - falling back here, when it picks - -arabic-newspaper-medium-r-normal--32-246-100-100-p-137-iso10646-1 - - Reviewed-by: Keith Packard - Signed-off-by: Dave Airlie - (cherry picked from commit 8116fd8a760b5935645def1b2c3b155c05927850) - -commit f673c6cffb033286bf4f31fbb64f0863dfbe77f6 -Author: Dave Airlie -Date: Mon Jan 11 17:02:57 2016 +1000 - - glamor: fallback if font is too large for FBO size. - - running xfontsel on haswell here, with a max texture size - of 8kx8k, one font wants 9711 height. This fallsback to - sw in this case. - - A proper solution probably involves using an array texture. - - Reviewed-by: Keith Packard - Signed-off-by: Dave Airlie - (cherry picked from commit 64081d0eacf3e53a029b8e8b63096cc153e98549) - -commit f7da9e4cd8237795cea4c0cf82148bdd18ec0f92 -Author: Adam Jackson -Date: Wed Jan 6 10:03:23 2016 -0500 - - os: Failure to remove a non-existent log file is not an error - - Signed-off-by: Adam Jackson - Reviewed-by: Alan Coopersmith - (cherry picked from commit 6dcb73375e0ce389315d55587623eb84e9d13543) - -commit 4dfb05aaae9dc7a45294f60ebd3ad454a4707966 -Author: Thomas Klausner -Date: Wed Nov 11 13:32:05 2015 +0100 - - Fix build when XSERVER_PLATFORM_BUS is not defined. - - Reviewed-by: Adam Jackson - Signed-off-by: Thomas Klausner - (cherry picked from commit 862cbf4c870c9ed913206c6ef4988bdb470e1c39) - -commit 88f2aa2940b6fb9deea0a1b53d05df02912dc17c -Author: Thomas Klausner -Date: Tue Jan 5 12:51:41 2016 -0500 - - Fix uninitialized variable warnings reported by clang - - v2: Move initializing pos into the first clause of the for statement. We - have to keep this macro equivalent to a plain for statement from the - user's perspective, otherwise callers need to {} things to keep control - flow correct. [ajax] - - Signed-off-by: Thomas Klausner - Acked-by: Michel Dänzer - (cherry picked from commit 63f83d1b7f496d05b409352749cdb6674d71cf80) - -commit 320b169c225fa05d83928bad438c4b15481cea1f -Author: Alan Coopersmith -Date: Fri Jan 1 18:11:14 2016 -0800 - - Use unique logfile names when starting server with -displayfd - - Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93212 - - Previously all X servers started with -displayfd would overwrite - Xorg.0.log - now a temporary name of Xorg.pid-.log is used - until after -displayfd finds an open display - then it is renamed - to the traditional Xorg..log name. - - Reviewed-by: Adam Jackson - Signed-off-by: Alan Coopersmith - (cherry picked from commit edcb6426f20c3be5dd5f50b76a686754aef2f64e) - -commit a32b85bf192bd15e9585e4c13a24407634478b05 -Author: Alan Coopersmith -Date: Fri Jan 1 18:10:08 2016 -0800 - - modesetting should not reference gbm when it's not defined - - Fixes build errors of: - present.c: In function 'ms_do_pageflip': - present.c:410:17: error: 'drmmode_bo' has no member named 'gbm' - new_front_bo.gbm = glamor_gbm_bo_from_pixmap(screen, new_front); - ^ - present.c:412:22: error: 'drmmode_bo' has no member named 'gbm' - if (!new_front_bo.gbm) { - ^ - present.c: In function 'ms_present_check_flip': - present.c:536:36: error: 'drmmode_bo' has no member named 'gbm' - if (drmmode_crtc->rotate_bo.gbm) - ^ - Introduced by commit 13c7d53d - - Reviewed-by: Adam Jackson - Signed-off-by: Alan Coopersmith - (cherry picked from commit fe8562f5316d8c74ca074ad145295c65ddff5fc2) - -commit 4457fd45efef85b567d4a0ac085d252ffe49020d -Author: Siim Põder -Date: Mon Jun 8 22:14:12 2015 +0000 - - vfb: add randr support (v2) - - The motivation for getting this is chrome remote desktop that runs under - Xvfb and wants to use RANDR to adjust screen size according to the - remote desktop client screen size. Apparently there are other use cases - as well, the bug mentions gnome-settings-daemon testing. - - [ajax: massaged commit message] - - Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=26391 - Reviewed-by: Adam Jackson - Signed-off-by: Lambros Lambrou - Signed-off-by: Mike Frysinger - Signed-off-by: Michal Srb - Signed-off-by: Siim Põder - (cherry picked from commit 3d68d1f26709ecb5ce22a9baa0d3d8162574ed6a) - -commit 5a89a6336d6b70781101e6395c276649956b9d80 -Author: Adam Jackson -Date: Tue Dec 8 15:56:17 2015 -0500 - - glxproxy: Silence shadowed-variable warnings - - Reviewed-by: Peter Hutterer - Signed-off-by: Adam Jackson - (cherry picked from commit b5f04a79df8b5aab8b558461261d14721f0b3e41) - -commit c10def69e1d92741ab79eee0b26ae80d143c93fb -Author: Adam Jackson -Date: Tue Dec 8 15:53:35 2015 -0500 - - glxproxy: Silence set-but-unused-variable warnings - - Reviewed-by: Peter Hutterer - Signed-off-by: Adam Jackson - (cherry picked from commit 18729a211a5fdd4f733e44eded754a0e6210b687) - -commit e36834cee865152dee5fbe1e8d480b7010466f75 -Author: Adam Jackson -Date: Tue Dec 8 16:04:44 2015 -0500 - - dmx: Run 'doxygen -u' to upgrade the doxygen config file - - Also change the dot font setting back to the default of Helvetica as - doxygen no longer ships FreeSans. - - Reviewed-by: Peter Hutterer - Signed-off-by: Adam Jackson - (cherry picked from commit bc996fa4e3c06f65eafe0a88ef491dbf01f31422) - -commit bb9bdb213250dbd28a61f91dba2145d20ef5f569 -Author: Adam Jackson -Date: Tue Dec 8 16:00:19 2015 -0500 - - dmx: Silence unused variable warning in dmxcompat - - Reviewed-by: Peter Hutterer - Signed-off-by: Adam Jackson - (cherry picked from commit a55e0bc56fd8f9da8f066dc344af19535dd092ca) - -commit 1f5afbba4513c0e0d2d8827f3bbbbc383fd918f0 -Author: Adam Jackson -Date: Tue Dec 8 15:37:12 2015 -0500 - - dmx: Silence lex/yacc-related config parser warnings - - Reviewed-by: Peter Hutterer - Signed-off-by: Adam Jackson - (cherry picked from commit 2730ccb803c55af74dbdd1bfd982fc23e643554d) - -commit b63a8cc4f24012267b0cb88bc358e68ab3ceb427 -Author: Laércio de Sousa -Date: Thu Dec 3 08:05:59 2015 -0200 - - systemd-logind.c: don't parse VT settings for non-seat0 X servers - - Since non-seat0 X servers no longer touch VTs, I believe these settings - are unnecessary. - - Signed-off-by: Laércio de Sousa - Reviewed-by: Hans de Goede - (cherry picked from commit 718223d27452862eedcf1bee6278eae6040d45ea) - -commit a8b746948db1871c0b28663b99fa839582693087 -Author: Bob Ham -Date: Fri Dec 4 12:30:47 2015 +0000 - - xserver: Fix configure.ac check for libsystemd/-daemon - - The configure script looks for the libsystemd-daemon pkg-config - module. If the configure script finds it, the script will add - libsystemd-daemon to a list of modules which are used to consolidate - CFLAGS and LIBS. - - The check for libsystemd-daemon was altered to fallback to libsystemd - if libsystemd-daemon was not found (libsystemd-daemon was brought into - libsystemd). Unfortunately, the configure script still adds - "libsystemd-daemon" to the list of modules to consolidate, instead of - "libsystemd". With this patch, we set a variable depending on which - pkg-config module is found and add that to the module list instead. - - Changes since v1: - - Rearranged logic so that we do a versioned check for libsystemd - first, then look for libsystemd-daemon. - - Cleaned up the check a bit, only performing the module checks if we - don't have --with-systemd-daemon=no, in a similar style to - --with-dtrace. - - Changed the variable name to LIBSYSTEMD_DAEMON as per feedback. - - Reviewed-by: Adam Jackson - Signed-off-by: Bob Ham - (cherry picked from commit 7c0ba32ddd5f1d5c65279365fa307dec3433caf3) - -commit b564cc9121bade2fee22eb14edd360036b7ba0b9 -Author: Michel Dänzer -Date: Thu Dec 3 17:04:09 2015 +0900 - - prime: Damage full destination rectangle when we start dirty tracking - - This makes sure that the destination pixmap contents will be fully - initialized. Without this, a PRIME output starts out with garbage. - - Signed-off-by: Michel Dänzer - Reviewed-by: Alex Deucher - (cherry picked from commit 530d3e5ca0a02039b04ec6a677bbb4e05b78e5f4) - -commit 00f65597c80d01e1c0759527ed1c72bc5af46c29 -Author: Adam Jackson -Date: Mon Dec 7 17:03:02 2015 -0500 - - x86emu: Squash a warning - - Apologies, should have caught this one when applying the previous x86emu - patch. - - Signed-off-by: Adam Jackson - (cherry picked from commit 2a52c06e235bd79f91851121f53f7c1808fde321) - -commit 4415b0cd6f1ddd75f2dc8b2096a89716baa38405 -Author: Julian Pidancet -Date: Sun Jul 1 18:49:25 2012 +0100 - - x86emu: Correctly handle 0x66 prefix for some instructions - - (Sorry for double posting) - - I repost this patch because I havn't got any replies from maintainers - since I posted the initial patch back in March. - - Some instructions are not emulated correctly by x86emu when they - are prefixed by the 0x66 opcode. - I've identified problems in the emulation of these intructions: ret, - enter, leave, iret and some forms of call. - - Most of the time, the problem is that these instructions should push or - pop 32-bit values to/from the stack, instead of 16bit, when they are - prefixed by the 0x66 special opcode. - - The SeaBIOS project aims to produce a complete legacy BIOS - implementation as well as a VGA option ROM, entirely written in C and - using the GCC compiler. - - In 16bit code produced by the GCC compiler, the 0x66 prefix is used - almost everywhere. This patch is necessary to allow the SeaBIOS VGA - option ROM to function with Xorg when using the vesa driver. - - SeaBIOS currently use postprocessing on the ROM assembly output to - replace the affected instruction with alternative unaffected instructions. - This is obviously not very elegant, and this fix in x86emu would be - more appropriate. - - v2: - Decrement BP instead of EBP in accordance with the Intel Manual - - Assign EIP instead of IP when poping the return address from the - stack in 32-bit operand size mode in ret_far_IMM, ret_far, and iret - - When poping EFLAGS from the stack in iret in 32-bit operand size - mode, apply some mask to preserve Read-only flags. - - v3: - Rebase - - Reviewed-by: Adam Jackson - Signed-off-by: Julian Pidancet - (cherry picked from commit 59b618227ebd024e57720aaaea17596953f5b80e) - -commit cc0cefed4f098ce6e933f2142a4fee93df5f652d -Author: Chris Wilson -Date: Sun Feb 8 09:47:42 2015 +0000 - - present: Do not replace Pixmaps on redirected Window on unflip - - When unflipping, we may find that our flip window has been redirected. - If we replace the redirected Window with the Screen Pixmap we then have - mutliple fullscreen Windows believing that their own the Screen Pixmap - - multiple fullscreen Windows that are being flipped by Clients, and so - continue to flip causing popping between e.g. the compositor and the - game. - - [ajax: Fix up present_execute() hunk to account for changes introduced - in fe07ec19e212a68076560d243a2a935c54589068] - - Signed-off-by: Chris Wilson - Reviewed-by: Michel Dänzer - (cherry picked from commit 72f0724cdc65dc9abbbf70b9feb6cce7c2b9f8a0) - -commit cfeea6382b5aaac0dcf59d88f7735b0703c9929f -Author: Chris Wilson -Date: Sun Feb 8 09:47:41 2015 +0000 - - present: When cancelling a pending synchronous flip, requeue it - - The vblank event request for a synchronous flip is scheduled for the - vblank before the target flip msc (so that the flip itself appears at - the right frame). If we cancel that flip and so wish to schedule a - copy instead, that copy needs to be postponed by a frame in order for it - be performed at the requested time. - - Signed-off-by: Chris Wilson - Reviewed-by: Michel Dänzer - (cherry picked from commit 180b09912c0d2c4a43b5a08678bcad4b818924c7) - -commit 4d48ceb8a15fcf521e8be3dba2756b69e54f20cc -Author: Chris Wilson -Date: Sun Feb 8 09:47:40 2015 +0000 - - present: Requery pending flips with the right sync_flip mode - - When verifying whether a pending flip is still valid, we need to pass - down the orignal sync_flip mode (e.g. if the driver only supports sync - flips, verifying a async flip will falsely fail). - - Signed-off-by: Chris Wilson - Reviewed-by: Michel Dänzer - (cherry picked from commit b2d55338f6b8f43ebcb49994abad123a797248cf) - -commit 54c74aa952ac7eecaeeb3f3cba6d2fe8a98cf450 -Author: Dave Airlie -Date: Mon Nov 16 09:05:27 2015 +1000 - - modesetting: create entities for pci and old probe. (v2) - - This moves the code from the platform case into - a common function, and calls that from the - other two. - - v2: Emil convinced me we don't need to lookup pEnt - here, so let's not bother. - - Reported-by: Mark Kettenis - Reviewed-by: Mark Kettenis - Signed-off-by: Dave Airlie - (cherry picked from commit 548a3d5fd69bb059bbaf26ededdc94c212712cd7) - -commit d94118fa1b75ea773857b7bbeda96ac181feb994 -Author: Dave Airlie -Date: Mon Nov 16 09:05:26 2015 +1000 - - modesetting: drop platform_dev pointer. - - This isn't used anywhere, so no point storing it until we need it. - - Reviewed-by: Mark Kettenis - Signed-off-by: Dave Airlie - (cherry picked from commit 771016f0705909c908917b4ccaeafc950ba93c05) - -commit 067c4dd5ce06c2f17d54c3b89e23efbc0822a194 -Author: Arkadiusz Miśkiewicz -Date: Mon Nov 16 11:06:57 2015 +0100 - - Xorg.wrap: activate libdrm based detection for KMS drivers - - Xorg.wrap includes code guarded with WITH_LIBDRM for detecting KMS drivers. - Unfortunately it is never activated since code missed to include file - which defines WITH_LIBDRM. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92894 - Signed-off-by: Arkadiusz Miśkiewicz - Reviewed-by: Michel Dänzer - Signed-off-by: Hans de Goede - (cherry picked from commit 19b0249a5e07b9fc008e5d8709d7e489874415de) - -commit 8f41c32bb5f3b962d4db105f96d47d8b74f5af79 -Author: Olivier Fourdan -Date: Tue Dec 1 17:16:03 2015 +0100 - - xwayland: Update screen size on output removal - - When unplugging an output, it's still listed in xrandr and the size - of the root window still includes the removed output. - - The RR output should be destroyed when its Wayland counterpart is - destroyed and the screen dimensions must be updated in both the done - and the destroy handlers. - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92914 - Signed-off-by: Olivier Fourdan - Reviewed-by: Marek Chalupa - (cherry picked from commit ab9837cc6a11f46b9df780f131b69de3822c3dd9) - -commit 2b356cb50139601dcd5393646aad30552fa778a1 -Author: Jonas Ådahl -Date: Wed Oct 7 12:01:53 2015 +0800 - - xwayland: Always update the wl_pointer cursor on pointer focus - - In Wayland, a client (in this case XWayland) should set the cursor - surface when it receives pointer focus. Not doing this will leave the - curser at whatever it was previously. - - When running on XWayland, the X server will not be the entity that - controls what actual pointer cursor is displayed, and it wont be notified - about the pointer cursor changes done by the Wayland compositor. This - causes X11 clients running via XWayland to end up with incorrect pointer - cursors because the X server believes that, if the cursor was previously - set to the cursor C, if we receive Wayland pointer focus over window W - which also has the pointer cursor C, we do not need to update it. This - will cause us to end up with the wrong cursor if cursor C was not the - same one that was already set by the Wayland compositor. - - This patch works around this by, when receiving pointer focus, getting - the private mipointer struct changing the "current sprite" pointer to - an invalid cursor in order to trigger the update path next time a cursor - is displayed by dix. - - Reviewed-by: Adam Jackson - Signed-off-by: Jonas Ådahl - (cherry picked from commit 07941a50a547f2ca094e242588298695f48903ed) - -commit 74354c4b0086ea1a952b5591846803719e3e3e91 -Author: Olivier Fourdan -Date: Mon Nov 23 08:51:48 2015 +0100 - - xwayland: Do not set root clip when rootless - - Otherwise the server may try to draw onto the root window when closing - down, but when running rootless the root window has no storage thus - causing a memory corruption. - - Thanks to Adam Jackson for helping tracking this down! - - Reviewed-by: Adam Jackson - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93045 - Signed-off-by: Olivier Fourdan - Tested-by: Marek Chalupa - (cherry picked from commit 51a4399b94f9adfac5f7718d4cbf73f793dcca56) - -commit 0a500c3cc74e39a01be24053e152dd52469dd908 -Author: Marek Chalupa -Date: Fri Nov 27 14:27:46 2015 +0100 - - xwayland: check if creating xwl_output succeeded - - check return values of RR.*Create calls - - v2. do not bail out if we don't have any output - - Signed-off-by: Marek Chalupa - Reviewed-by: Olivier Fourdan - (cherry picked from commit 5b2ca3413203210d112a08a4e20d14382abae437) - -commit c2e6eddb1bfc5106596729bc3f0a6a381f5be9f4 -Author: Marek Chalupa -Date: Fri Nov 27 14:59:27 2015 +0100 - - xwayland: fix memory leaks on error paths in xwl_realize_window - - don't leak memory when realizing window fails - - v2. take care of all memory allocation and return values, - not just one leak - - Signed-off-by: Marek Chalupa - Reviewed-by: Olivier Fourdan - (cherry picked from commit 646ebea456b4c5251ae997eab8d9b971f97de836) - -commit 68168c764662c0ce4ac8193d293b8befd934f666 -Author: Egbert Eich -Date: Tue Nov 24 17:37:36 2015 +0100 - - kdrive/UnregisterFd: Fix off by one - - The number of FDs has been decremented already, therefore the - number contained the index of the top one that is to me moved down. - - This problem was introduced by: - commit 1110b71e360195aab040d835b54540ab558638c5 - Author: Chris Clayton - - kdrive: fix build error on gcc 4.8 for out-of-bounds array access - - The reason for the warning was likely a confused compiler. - Hoping to reduce the confusion by moving the decrement behind the end - if the copy loop. - - Signed-off-by: Egbert Eich - Reviewed-by: Peter Hutterer - (cherry picked from commit 44d0fd435a4eaf45e252b4f00409152a6d599dfc) - -commit 84fbfa8a7d40553c5129a667b532ea3a8b63bfb3 -Author: Adam Jackson -Date: Thu Nov 19 12:21:08 2015 -0500 - - xnest: Fix needless build dependency on xcb-util-keysyms - - This was added in: - - commit 43014795087a0a8774dd9687f5967329b15f06a2 - Author: Olivier Fourdan - Date: Mon Jan 5 16:44:22 2015 +0100 - - Synchronize capslock in Xnest and Xephyr - - Which is fine if you're building both, but if you don't happen to have - xcb-util-keysyms' headers installed Xnest will configure as enabled but - fail to build. - - Fortunately has a corresponding #define, so use that instead. - - Signed-off-by: Adam Jackson - Reviewed-by: Olivier Fourdan - (cherry picked from commit 4affa75a90d2455c81087b930126ad7adfd019f0) - -commit 115913d9ec8f7961e9a5789972aeb33da9cfd1e4 -Author: Peter Hutterer -Date: Mon Nov 23 07:59:24 2015 +1000 - - xfree86: fix minor memory leak - - xf86*StrOption returns a strdup - - Signed-off-by: Peter Hutterer - Reviewed-by: Hans de Goede - (cherry picked from commit 71ba82690158f46d50a455e69a83ee0d685bb274) - -commit c9bd60790c6636a7911ca479e0f9439bc118d74c -Author: Eric Anholt -Date: Sun Oct 18 19:16:20 2015 -0700 - - glamor: No need to glFlush before destroying a pixmap. - - I assume this was a workaround for an old, broken, closed driver. The - driver doesn't get to throw away rendering just because the rendering - context's shared-across-processes render target is getting freed from - the local address space. If the rendering isn't to a shared render - target, then we *do* want to throw away the rendering to it. - - Signed-off-by: Eric Anholt - Reviewed-by: Michel Dänzer - (cherry picked from commit 98a1993536add730b7ec29a9e37f62b1cd70ad31) - -commit 9379c6a3f6109fe2cca3bf2dc45dc92fcf1e302f -Author: Eric Anholt -Date: Thu Nov 5 16:35:56 2015 -0800 - - glamor: Fix segfault in fallback picture uploading. - - If the source/mask pixmap is a pixmap that doesn't have an FBO - attached, and it doesn't match the Render operation's size, then we'll - composite it to a CPU temporary (not sure why). We would take the - PictFormatShort from the source Picture, make a pixmap of that depth, - and try to look up the PictFormat description from the depth and the - PictFormatShort. However, the screen's PictFormats are only attached - to the screen's visuals' depths. So, with an x2r10g10b10 short format - (depth 30), we wouldn't find the screen's PictFormat for it - (associated with depth 32). - - Instead of trying to look up from the screen, just use the pFormat - that came from our source picture. The only time we need to look up a - PictFormat when we're doing non-shader gradients, which we put in - a8r8g8b8. - - Signed-off-by: Eric Anholt - Reviewed-by: Michel Dänzer - (cherry picked from commit 9a5972801f7789833062e5711e77483b643eef92) - -commit 6bb58ea2a9c1931f4e04075f19ed22bb50b1d709 -Author: Eric Anholt -Date: Thu Nov 5 16:03:14 2015 -0800 - - glamor: Fix assert failures when fallback picture upload alloc fails. - - If the glTexImage (or glTexSubImage) out-of-memories, error out - cleanly so that we can fall back to software. - - Signed-off-by: Eric Anholt - Reviewed-by: Michel Dänzer - (cherry picked from commit e7aa4d3c7420d45cca2b7e1e69e22cebc64d5b74) - -commit ade2ed4f8bb66127ad46df22b12d201dad318c3d -Author: Eric Anholt -Date: Thu Nov 5 15:13:55 2015 -0800 - - glamor: Fix rendering when core font texture allocation fails. - - Signed-off-by: Eric Anholt - Reviewed-by: Michel Dänzer - (cherry picked from commit ff8ef975df9cd99ec6f0b8b8047445091bf35ef0) - -commit 90fe7266ab67aa3e45a0a68c71987c70c0496504 -Author: Eric Anholt -Date: Thu Nov 5 15:05:11 2015 -0800 - - glamor: Fix crashes when the glyph atlas allocation fails. - - We already have a fallback path, so we just need to jump to it when we - hit the failure. - - Signed-off-by: Eric Anholt - Reviewed-by: Michel Dänzer - (cherry picked from commit a6b05d10da2fe476f46e6dc4ad8a603964735905) - -commit 701b4347aca1a9b81492b05cf3ae35fe0499325c -Author: Eric Anholt -Date: Thu Nov 5 14:47:42 2015 -0800 - - glamor: Handle GL_OUT_OF_MEMORY when allocating texture images. - - The spec allows general undefined behavior when GL_OOM is thrown. But - if the driver happens to throw the error at this point, it probably - means the pixmap was just too big, so we should delete that texture - and have this pixmap fall back to software. - - Signed-off-by: Eric Anholt - Reviewed-by: Michel Dänzer - (cherry picked from commit de959ec939b262cb1cb4c0b6146826e3092843f9) - -commit 73799de77f551c22308af1e7ef0b2f83ae49b0e0 -Author: Eric Anholt -Date: Mon Nov 9 15:47:05 2015 -0800 - - glamor: Avoid GL errors from mapping with size == 0. - - GL 4.5 / GLES 3.0 require throwing GL errors at map time, and Mesa - before that might throw errors accidentally if a malloc(0) call was - made to return the mapping. - - Signed-off-by: Eric Anholt - Reviewed-by: Rob Clark - (cherry picked from commit 74be466d40080545117628c376cb59b696db33bc) - -commit 7727e433459675f80cb38857a6c82ebb29393072 -Author: Michael Stapelberg -Date: Tue Nov 3 03:51:48 2015 -0800 - - Also dump passive grabs on XF86LogGrabInfo - - Signed-off-by: Michael Stapelberg - Reviewed-by: Peter Hutterer - Signed-off-by: Peter Hutterer - (cherry picked from commit a6cddb8c04ddc3c48aae3f3611ad9f336fecb09d) - commit 43fb888bd01cf9d3d277e77a52a3d0c93ccff8bd Author: Adam Jackson Date: Mon Nov 9 16:00:26 2015 -0500 --- xorg-server-1.18.4.orig/config/dbus-api +++ xorg-server-1.18.4/config/dbus-api @@ -0,0 +1,40 @@ +D-BUS Configuration API v2 +---------------------------- + +The X server will register the bus name org.x.config.displayN, and the +object /org/x/config/N, where N is the display number. + +Currently only hotplugging of input devices is supported. + +org.x.config.input: + org.x.config.input.version: + Returns one unsigned int32, which is the API version. + + org.x.config.input.add: + Takes an argument of key/value option pairs in arrays, e.g.: + [ss][ss][ss][ss] + is the signature for four options. These options will be passed + to the input driver as with any others. + Option names beginning with _ are not allowed; they are reserved + for internal use. + + Returns a number of signed int32s. Positive integers are the + device IDs of new devices; negative numbers are X error codes, + as defined in X.h. BadMatch will be returned if the options + given do not match any device. BadValue is returned for a malformed + message. (Example: 8 is new device ID 8; -8 is BadMatch.) + + Notably, BadAlloc is never returned: the server internally signals + to D-BUS that the attempt failed for lack of memory. + + org.x.config.input.remove: + Takes one uint32 argument, which is the device ID to remove, i.e.: + u + is the signature. + + Returns one signed int32 which represents an X status as defined in + X.h. See org.x.config.input.add. Error codes are negative numbers. + + org.x.config.input.listDevices: + Lists the currently active devices. No argument. + Return value is sequence of [ ] [ ] ..., i.e. [us]. --- xorg-server-1.18.4.orig/damageext/damageext.h +++ xorg-server-1.18.4/damageext/damageext.h @@ -0,0 +1,33 @@ +/* + * Copyright © 2002 Keith Packard + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Keith Packard not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. Keith Packard makes no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#ifdef HAVE_DIX_CONFIG_H +#include +#endif + +#ifndef _DAMAGEEXT_H_ +#define _DAMAGEEXT_H_ + +void + DamageExtensionInit(void); + +#endif /* _DAMAGEEXT_H_ */ --- xorg-server-1.18.4.orig/debian/README.source +++ xorg-server-1.18.4/debian/README.source @@ -0,0 +1,66 @@ +------------------------------------------------------ +Quick Guide To Patching This Package For The Impatient +------------------------------------------------------ + +1. Make sure you have quilt installed +2. Unpack the package as usual with "dpkg-source -x" +3. Run the "patch" target in debian/rules +4. Create a new patch with "quilt new" (see quilt(1)) +5. Edit all the files you want to include in the patch with "quilt edit" + (see quilt(1)). +6. Write the patch with "quilt refresh" (see quilt(1)) +7. Run the "clean" target in debian/rules + +Alternatively, instead of using quilt directly, you can drop the patch in to +debian/patches and add the name of the patch to debian/patches/series. + +------------------------------------ +Guide To The X Strike Force Packages +------------------------------------ + +The X Strike Force team maintains X packages in git repositories on +git.debian.org in the pkg-xorg subdirectory. Most upstream packages +are actually maintained in git repositories as well, so they often +just need to be pulled into git.debian.org in a "upstream-*" branch. +Otherwise, the upstream sources are manually installed in the Debian +git repository. + +The .orig.tar.gz upstream source file could be generated using this +"upstream-*" branch in the Debian git repository but it is actually +copied from upstream tarballs directly. + +Due to X.org being highly modular, packaging all X.org applications +as their own independent packages would have created too many Debian +packages. For this reason, some X.org applications have been grouped +into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils, +x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils. +Most packages, including the X.org server itself and all libraries +and drivers are, however maintained independently. + +The Debian packaging is added by creating the "debian-*" git branch +which contains the aforementioned "upstream-*" branch plus the debian/ +repository files. +When a patch has to be applied to the Debian package, two solutions +are involved: +* If the patch is available in one of the upstream branches, it + may be git'cherry-picked into the Debian repository. In this + case, it appears directly in the .diff.gz. +* Otherwise, the patch is added to debian/patches/ which is managed + with quilt as documented in /usr/share/doc/quilt/README.source. + +---------------------------------------------- +Updating xorg-server to a new upstream release +---------------------------------------------- + +* The abibumpcheck target helps us notice any ABI bump: + - A major ABI bump means drivers have to be rebuilt. + - A minor ABI bump means the version in serverminver has to be + bumped. + Reference documentation about dependencies is available at: + http://pkg-xorg.alioth.debian.org/reference/dependencies.html +* We have to keep track of the SDK_REQUIRED_MODULES variable in + configure.ac. It is used to determine xorg-server.pc's dependencies + so xserver-xorg-dev's dependencies have to be adjusted when this + variable changes. This variable is set to a list of modules, but is + updated a few times. It's probably a good idea to use: + git grep SDK_REQUIRED_MODULES= -- configure.ac --- xorg-server-1.18.4.orig/debian/changelog +++ xorg-server-1.18.4/debian/changelog @@ -0,0 +1,8637 @@ +xorg-server (2:1.18.4-1ubuntu9) zesty; urgency=medium + + * control: Depend on libxfont1-dev. + + -- Timo Aaltonen Thu, 15 Dec 2016 13:44:15 +0200 + +xorg-server (2:1.18.4-1ubuntu8) zesty; urgency=medium + + * xvfb-run: Bump default bitdepth to 16 so that GLX works. + + -- Timo Aaltonen Thu, 15 Dec 2016 12:33:01 +0200 + +xorg-server (2:1.18.4-1ubuntu7) zesty; urgency=medium + + * modesetting-unifdef-slave-support.diff: Fix modesetting slave output + names. (LP: #1636397) + + -- Timo Aaltonen Tue, 25 Oct 2016 10:48:45 +0300 + +xorg-server (2:1.18.4-1ubuntu6) yakkety; urgency=medium + + * debian/patches/xmir.patch: + - Don't call epoxy every frame (LP: #1617932) + - Ignore 'unknown 11 event' (LP: #1617925) + - Improve root window resizing code + - Make randr mode names simpler + + -- Robert Ancell Wed, 07 Sep 2016 15:50:30 +1200 + +xorg-server (2:1.18.4-1ubuntu5) yakkety; urgency=medium + + * drm_device_keep_trying.patch: Dropped, shouldn't be needed anymore, and + causes issues on non-x86 archs. (LP: #1581076) + + -- Timo Aaltonen Fri, 02 Sep 2016 13:59:52 +0300 + +xorg-server (2:1.18.4-1ubuntu4) yakkety; urgency=medium + + * debian/patches/xmir.patch: + - Fix button/menu focus failures (LP: #1590553) + - Implement XWMHints properly + - Add smooth touchpad scroll support (LP: #1603917) + - Fix key repeat order + - Remove links to Unity8 bugs that are now fixed. + + -- Robert Ancell Thu, 28 Jul 2016 14:31:22 +1200 + +xorg-server (2:1.18.4-1ubuntu3) yakkety; urgency=medium + + * debian/patches/xmir.patch: + - Fix bottom/right edge corruption. (LP: #1510849) + - Fix key repeat. (LP: #1591356) + - Don't delete outputs without replacing them. (LP: #1504422) (LP: #1602561) + - Xmir -debug: Log WM types by name and number. + - Implement fake GLX frame notification/timing. + - Improve focus tracking. + + -- Robert Ancell Thu, 21 Jul 2016 11:42:03 +0200 + +xorg-server (2:1.18.4-1ubuntu2) yakkety; urgency=medium + + * debian/control, debian/rules: + - Build xmir for arm64 (LP: #1604851). + + -- Łukasz 'sil2100' Zemczak Wed, 20 Jul 2016 18:55:21 +0200 + +xorg-server (2:1.18.4-1ubuntu1) yakkety; urgency=medium + + * Merge from debian. + * glamor-disable-logic-ops-when-doing-compositing.diff: Dropped, + upstream. + + -- Timo Aaltonen Wed, 20 Jul 2016 08:22:32 +0300 + +xorg-server (2:1.18.4-1) unstable; urgency=medium + + * New upstream stable release. + * os-treat-ssh-as-a-non-local-client.diff, upstream-fixes.diff: + Dropped, upstream. + + -- Timo Aaltonen Wed, 20 Jul 2016 06:00:21 +0300 + +xorg-server (2:1.18.3-2) unstable; urgency=medium + + * Drop 08_xfree86_fix_ia64_inx_outx.diff from the tree, it wasn't + applied anyway since Dec'14. + * 06_use-intel-only-on-pre-gen4.diff: Use modesetting driver on intel + gen4 and newer. + * upstream-fixes.diff: Add fixes from 1.18-branch until effd785aa8a97c9. + * Document modesetting-on-intel in the NEWS file. + + -- Timo Aaltonen Tue, 19 Jul 2016 05:59:24 +0300 + +xorg-server (2:1.18.3-1ubuntu7) yakkety; urgency=medium + + * glamor-disable-logic-ops-when-doing-compositing.diff: Fix + libreoffice with glamor. (LP: #1575000) + + -- Timo Aaltonen Tue, 05 Jul 2016 02:08:01 +0300 + +xorg-server (2:1.18.3-1ubuntu6) yakkety; urgency=medium + + * debian/patches/xmir.patch: + - Add focus/unfocus event passing (LP: #1582471) + + -- Robert Ancell Wed, 01 Jun 2016 11:07:46 +1200 + +xorg-server (2:1.18.3-1ubuntu5) yakkety; urgency=medium + + * randr-adjust-masters-last-set-time.diff, + randr-do-not-check-the-screen-size.diff: + Fix issues changing display mode on prime setups. (LP: #1586260) + + -- Timo Aaltonen Fri, 27 May 2016 11:51:56 +0300 + +xorg-server (2:1.18.3-1ubuntu4) yakkety; urgency=medium + + * debian/patches/xmir.patch: + - Fix recently added keymap code + + -- Robert Ancell Wed, 04 May 2016 09:11:32 +1200 + +xorg-server (2:1.18.3-1ubuntu3) yakkety; urgency=medium + + * debian/patches/xmir.patch: + - Pass keymap from Mir to Xkb (LP: #1566487) + * debian/patches/xmir-fixes.diff: + - Merged into xmir.patch + + -- Robert Ancell Fri, 29 Apr 2016 14:36:49 +0200 + +xorg-server (2:1.18.3-1ubuntu2) xenial; urgency=medium + + * Disable 190_cache-xkbcomp_output_for_fast_start_up.patch for now, + compiling the keymap fails in current xenial for some reason. + (LP: #1566878) + + -- Timo Aaltonen Thu, 07 Apr 2016 12:10:12 +0300 + +xorg-server (2:1.18.3-1ubuntu1) xenial; urgency=medium + + * Merge from Debian. + * fix-xineramaqueryscreens-for-reverse-prime.diff, + glamor-factor-out-glamor-set-color.diff, + glamor-source-pictures-are-always-depth-32.diff: + Deleted, upstream. + * xmir-fixes.diff: Updated for glamor changes. + * 105_nvidia_autodetect.patch: Modified and renamed since it doesn't + need to handle fglrx anymore. + + -- Timo Aaltonen Sat, 12 Mar 2016 08:59:43 +0200 + +xorg-server (2:1.18.3-1) unstable; urgency=medium + + * New upstream release. + * Drop patches included upstream. + + -- Timo Aaltonen Tue, 05 Apr 2016 09:12:50 +0300 + +xorg-server (2:1.18.2-3) unstable; urgency=medium + + * regression fixes part2: + - replace revert-eb5108b870.diff with patch from upstream + - make-sure-hw-cursor-is-hidden-when-it-should.diff: Don't show an + extra cursor in some cases + * os-treat-ssh-as-a-non-local-client.diff: Allow remote clients to work + with DRI3. + + -- Timo Aaltonen Tue, 29 Mar 2016 10:38:47 +0300 + +xorg-server (2:1.18.2-2) unstable; urgency=medium + + * regression fixes/workarounds: + vidmode-reduce-verbosity-of-getmodeline.diff (Closes: #818634) + glamor-swizzle-red-to-0-for-alpha-textures.diff + revert-eb5108b870.diff (Closes: #818172) + + -- Timo Aaltonen Tue, 22 Mar 2016 09:47:25 +0200 + +xorg-server (2:1.18.2-1) unstable; urgency=medium + + * New upstream release. (Closes: #814982) + + -- Timo Aaltonen Sat, 12 Mar 2016 08:49:55 +0200 + +xorg-server (2:1.18.1-1ubuntu4) xenial; urgency=medium + + * glamor: Fix font rendering issue. (LP: #1555960) + + -- Timo Aaltonen Fri, 11 Mar 2016 09:36:40 +0200 + +xorg-server (2:1.18.1-1ubuntu3) xenial; urgency=medium + + * Merge xmir changes from 2:1.17.3-2ubuntu4. + * fix-xineramaqueryscreens-for-reverse-prime.diff: Fix unity-greeter + crash with nvidia prime. + + -- Timo Aaltonen Thu, 25 Feb 2016 11:49:23 +0200 + +xorg-server (2:1.18.1-1ubuntu2) xenial; urgency=medium + + * Merge xmir changes from 2:1.17.3-2ubuntu3. + + -- Timo Aaltonen Tue, 16 Feb 2016 10:02:03 +0200 + +xorg-server (2:1.18.1-1ubuntu1) xenial; urgency=medium + + * Merge from Debian experimental + * patches: Refreshed, dropped what's upstream. + * xmir-fixes.diff: Port xmir to 1.18. + * fix-ftbfs-ppc64el.patch: Dropped, not needed anymore. + + -- Timo Aaltonen Tue, 08 Dec 2015 19:47:06 +0200 + +xorg-server (2:1.18.1-1) unstable; urgency=medium + + * New upstream release. + * add_support_new_libsystemd.patch, + glamor-disable-debugging-msgs.diff, + update-intel-pciids.diff: + - dropped, upstream + + -- Timo Aaltonen Tue, 09 Feb 2016 10:27:18 +0200 + +xorg-server (2:1.18.0-3) unstable; urgency=medium + + * update-intel-pciids.diff: Sync dri2 mapping ids for intel. + * glamor-disable-debugging-msgs.diff: Make glamor less noisy with + recent mesa. + + -- Timo Aaltonen Wed, 27 Jan 2016 16:41:59 +0200 + +xorg-server (2:1.18.0-2) unstable; urgency=medium + + [ Laurent Bigonville ] + * Enable systemd socket activation support (Closes: #803254) + + [ Emilio Pozuelo Monfort ] + * Let xserver-xorg-dev depend on libxfont-dev, as dixfont.h needs + fontutil.h. + + -- Timo Aaltonen Tue, 26 Jan 2016 16:25:33 +0200 + +xorg-server (2:1.18.0-1) experimental; urgency=medium + + * New upstream release. + - drop xext-fix-udeb-build.diff, merged upstream + * Extend libgbm-dev build-dep to kfreebsd-any as well as linux-any. + + -- Julien Cristau Tue, 10 Nov 2015 22:40:43 +0100 + +xorg-server (2:1.17.99.902-1) experimental; urgency=medium + + * Team upload. + * New upstream release candidate. + * Bump x11proto-core and x11proto-randr dependencies per configure.ac. + * Stop passing deleted options to configure. + * Bump serverminver (video ABI 20.0, input ABI 22.1). + + -- Julien Cristau Thu, 29 Oct 2015 09:58:55 +0000 + +xorg-server (2:1.17.3-2ubuntu4) xenial; urgency=medium + + * debian/patches/xmir.patch: + - Revert swapinterval 0 change + + -- Robert Ancell Tue, 16 Feb 2016 09:35:17 -0800 + +xorg-server (2:1.17.3-2ubuntu3) xenial; urgency=medium + + * debian/patches/xmir.patch: + - Add ability to set title for XMir (LP: #1542028) + - Use swapinterval 0 (LP: #1502738) + - Add sufficient traversal hacks for Matchbox + + -- Robert Ancell Mon, 15 Feb 2016 17:32:21 -0800 + +xorg-server (2:1.17.3-2ubuntu2) xenial; urgency=medium + + * Disable mir on s390x. + + -- Dimitri John Ledkov Wed, 25 Nov 2015 16:11:38 +0000 + +xorg-server (2:1.17.3-2ubuntu1) xenial; urgency=medium + + [ Robert Ancell ] + * debian/patches/xmir.patch: + - Update to latest version + * debian/patches/xmir-rootless.patch: + - Merged into xmir.patch + + [ Timo Aaltonen ] + * Merge from Debian. (LP: #1511649) + * glamor-make-current-in-prepare-paths.diff, + linux-Do-not-call-FatalError-from-xf86CloseConsole.patch: + Dropped, upstream. + + -- Timo Aaltonen Tue, 10 Nov 2015 18:20:55 +0200 + +xorg-server (2:1.17.3-2) unstable; urgency=medium + + * Finalize xserver-xorg-core.NEWS. Thanks, Michael Biebl! + + -- Julien Cristau Tue, 27 Oct 2015 22:55:25 +0000 + +xorg-server (2:1.17.3-1) unstable; urgency=medium + + [ Julien Cristau ] + * New upstream release + - mi: fix typo in warning about overflowing queue (closes: #726041) + * Refresh 02_kbsd-input-devd.diff and 03_static-nettle.diff. + * Replace xorg-wrapper-envp.diff with a cherry-pick from master. + * New patch xext-fix-udeb-build.diff to fix build regression in 1.17.3. + * Add NEWS file for xserver-xorg-core with info about the -legacy split + (closes: #801487). + * Recommend libpam-systemd (closes: #802544, #802618, #802327, #802566, + probably others) + + [ Andreas Boll ] + * Use the correct repository for the Vcs-Git field (Closes: #801340). + Thanks, Vagrant Cascadian. + * Document new location for non-root Xorg log in the NEWS file. + + [ Samuel Thibault ] + * Fix xorg-wrapper on hurd (cherry-picked from master). + + -- Julien Cristau Tue, 27 Oct 2015 13:55:55 +0000 + +xorg-server (2:1.17.2-3) unstable; urgency=medium + + * Team upload. + [ Laurent Bigonville ] + * Move Xorg.wrap.1 man page from the xserver-xorg-core to + xserver-xorg-legacy package (Closes: #797661) + * Add a Breaks against systemd (<< 226-4~), before that version logind was + restarted on upgrade which makes the X server crash (See #798097) + * Bump Standards-Version to 3.9.6 (no further changes) + + [ Andreas Boll ] + * Update Vcs-* fields. + * Add upstream url. + + [ Julien Cristau ] + * Only reset environment in the Xorg wrapper if we didn't drop privileges. + + -- Laurent Bigonville Tue, 06 Oct 2015 09:06:22 +0200 + +xorg-server (2:1.17.2-2) experimental; urgency=medium + + [ Laurent Bigonville ] + * Enable logind support for the main build on Linux. + * Build and ship the setuid root wrapper from upstream, replacing + xserver-xorg's. + + [ Julien Cristau ] + * Take over x11-common's handling of the X wrapper; ship the wrapper in a + new xserver-xorg-legacy package. + * Patch the wrapper to reset Xorg's environment. I don't believe it needs + any variable there, and if that turns out to be wrong we can add a + whitelist or hardcode some values. + + -- Julien Cristau Wed, 19 Aug 2015 11:14:05 +0200 + +xorg-server (2:1.17.2-1.1) unstable; urgency=medium + + * Non-Maintainer Upload. + + [ Sven Joachim ] + * Install the whole usr/share/man/man4 directory into xserver-xorg-core, + fixes FTBFS on hurd where modesetting.4 does not exist (Closes: #794644). + + -- Samuel Thibault Tue, 11 Aug 2015 10:45:35 +0200 + +xorg-server (2:1.17.2-1ubuntu10) xenial; urgency=medium + + * debian/patches: + - linux-Do-not-call-FatalError-from-xf86CloseConsole.patch: Fix crashers + often occuring on shutdown (LP: #1237904) + - xmir.patch: Fix typo causing FTBFS + + -- Tim Lunn Mon, 26 Oct 2015 12:24:30 +1100 + +xorg-server (2:1.17.2-1ubuntu9) wily; urgency=medium + + * debian/patches/xmir.patch: + - Fix FTBFS due to change in Mir headers + + -- Robert Ancell Wed, 30 Sep 2015 16:15:39 +1300 + +xorg-server (2:1.17.2-1ubuntu8) wily; urgency=medium + + * debian/control: + - xmir depends on xserver-common (LP: #1500848) + + -- Robert Ancell Wed, 30 Sep 2015 14:56:38 +1300 + +xorg-server (2:1.17.2-1ubuntu7) wily; urgency=medium + + * glamor-make-current-in-prepare-paths.diff: Fix LO crashing the + server. (LP: #1443456) + + -- Timo Aaltonen Thu, 17 Sep 2015 12:04:08 +0300 + +xorg-server (2:1.17.2-1ubuntu6) wily; urgency=medium + + * os-make-sure-the-clientswritable-fd-set-is-initialized.diff: Fix + crashers caused by newer xproto bumping XFD_SETSIZE. (LP: #1484380) + + -- Timo Aaltonen Tue, 08 Sep 2015 10:30:31 +0300 + +xorg-server (2:1.17.2-1ubuntu5) wily; urgency=medium + + * disable-rotation-transform-gpuscreens.patch: Revert back to disabling + rotations on GPU screens. It won't work before 1.18. (LP: #1489696) + + -- Timo Aaltonen Wed, 02 Sep 2015 15:56:03 +0300 + +xorg-server (2:1.17.2-1ubuntu4) wily; urgency=medium + + * debian/patches/xmir-rootless.patch: + - Fix crash when running XMir in rootless mode (LP: #1472097) + + -- Robert Ancell Thu, 20 Aug 2015 16:31:37 +1200 + +xorg-server (2:1.17.2-1ubuntu3) wily; urgency=medium + + * debian/patches/xmir.patch: + - Fix red and blue channels being swapped on Android drivers (LP: #1471146) + + -- Robert Ancell Thu, 30 Jul 2015 15:31:29 +1200 + +xorg-server (2:1.17.2-1ubuntu2) wily; urgency=medium + + * debian/patches/xmir.patch: + - Fix cursor crash + * debian/patches/xmir-desktop-file-hint-flag.patch: + - Split Unity8 hack out from xmir.patch + + -- Robert Ancell Wed, 29 Jul 2015 14:18:31 +1200 + +xorg-server (2:1.17.2-1ubuntu1) wily; urgency=medium + + [ Timo Aaltonen ] + * Merge from Debian unstable. (LP: #1471185) + * fix-int10.patch: Dropped, upstream. + * pixman-validate.patch: Dropped, not upstream and not needed since + pixman got fixed. + * mi-dont-process-disabled.patch: This has been upstream for some time + now, drop it. + + [ Robert Ancell ] + * Add patch headers + * debian/xserver-xorg-core.install: + - Simplify man page install + + -- Robert Ancell Thu, 23 Jul 2015 11:04:33 +1200 + +xorg-server (2:1.17.2-1) unstable; urgency=medium + + [ Sven Joachim ] + * New upstream release. + + symbols: Fix sdksyms.sh to cope with gcc5 (Closes: #778187) + + os/access: fix regression in server interpreted auth (Closes: #784687) + + dix: Fix image byte order on big endian hardware (Closes: #785474) + + int10: Fix error check for pci_device_map_legacy (Closes: #787144) + + modesetting: Include dix-config.h from dumb_bo.c (Closes: #789823) + + unauthorised local client access in XWayland [CVE-2015-3164] + (Closes: #788410) + * Install the modesetting.4 manpage into xserver-xorg-core (Closes: #789646) + * Build xserver-xorg-core-udeb on all architectures again (Closes: #775205) + * Update debian/upstream/signing-key.asc. + + -- Julien Cristau Wed, 01 Jul 2015 18:07:40 +0200 + +xorg-server (2:1.17.1-2) unstable; urgency=medium + + * Disable libdrm support on hurd and in the kfreebsd udeb build, so we don't + try building the modesetting driver without libdrm. We should probably + revisit this later and ship modesetting_drv.so in d-i, but this should do + for now. + + -- Julien Cristau Mon, 04 May 2015 22:04:01 +0200 + +xorg-server (2:1.17.1-0ubuntu6) wily; urgency=medium + + * No change rebuild against Mir 0.14.0 + + -- Robert Ancell Thu, 16 Jul 2015 10:37:45 +1200 + +xorg-server (2:1.17.1-0ubuntu5) wily; urgency=medium + + * debain/patches/xmir.patch: + - Update from git branch, now builds against Mir 0.14.0 + * debian/patches/xmir-rootless.patch: + - Split out rootless support which requires more extensive changes to + existing X code. + * debian/control: + - Add build-depends on mir-client-platform-mesa-dev + + -- Robert Ancell Mon, 13 Jul 2015 11:33:23 +1200 + +xorg-server (2:1.17.1-0ubuntu4) wily; urgency=medium + + * debian/control: + - Rename xserver-xorg-xmir to xmir + - Build build-depends on libmirclient to 0.13.1 + * debian/xmir.install: + * debian/patches/xmir.patch: + - Use new XMir implementation + + -- Robert Ancell Wed, 03 Jun 2015 14:21:10 +1200 + +xorg-server (2:1.17.1-0ubuntu3) vivid; urgency=medium + + * Add a patch to fix vesa int10 failure. (LP: #1433198) + + -- Maarten Lankhorst Thu, 19 Mar 2015 10:13:08 +0100 + +xorg-server (2:1.17.1-0ubuntu2) vivid; urgency=medium + + * Use conflicts/replaces on modesetting. + + -- Maarten Lankhorst Thu, 12 Mar 2015 16:56:38 +0100 + +xorg-server (2:1.17.1-0ubuntu1) vivid; urgency=medium + + * Merge with 1.17 branch. + - ABI bumped. + - Patches refreshed. + - Modesetting moved to xorg-server. + + -- Maarten Lankhorst Thu, 12 Mar 2015 13:26:04 +0100 + +xorg-server (2:1.17.1-1) experimental; urgency=medium + + [ Maarten Lankhorst ] + * New upstream release 1.17.1. + * Enable the modesetting driver from xorg-server. + * Drop upstreamed patches: + - 09_Xserver-man-iglx.diff + * Disable 08_xfree86_fix_ia64_inx_outx.diff, no longer applies. + - Is this patch still needed because it seems to be handled now? + * Bump video abi to 19. + + [ Julien Cristau ] + * Bump debhelper compat level to 9. + * Update debian/copyright from upstream COPYING. + + -- Julien Cristau Sun, 03 May 2015 18:00:32 +0200 + +xorg-server (2:1.16.4-1) unstable; urgency=high + + * New upstream release + + dix: Allow zero-height PutImage requests (closes: #774308) + + os: Fix timer race conditions + + randr: attempt to fix primary on slave output + + config/udev: Respect seat assignments when assigned devices + + dix: make RegionInit legal C++ + + dri2: SourceOffloads may be for DRI3 only + + xkb: Don't swap XkbSetGeometry data in the input buffer + + xkb: Check strings length against request size (CVE-2015-0255) + + -- Julien Cristau Wed, 11 Feb 2015 01:26:07 +0100 + +xorg-server (2:1.16.2.901-1ubuntu3) vivid; urgency=medium + + * Fix FTBFS caused by the previous patch. + + -- Maarten Lankhorst Mon, 15 Dec 2014 16:11:00 +0100 + +xorg-server (2:1.16.2.901-1ubuntu2) vivid; urgency=medium + + * Fix FTBFS with the bool redefinition by undef'ing it after including mir. + + -- Maarten Lankhorst Sat, 13 Dec 2014 14:13:17 +0100 + +xorg-server (2:1.16.2.901-1ubuntu1) vivid; urgency=medium + + * Merge from released debian-unstable. + + -- Maarten Lankhorst Thu, 11 Dec 2014 16:17:07 +0100 + +xorg-server (2:1.16.2.901-1) unstable; urgency=medium + + * New upstream release + + fb: Fix Bresenham algorithms for commonly used small segments + + denial of service due to unchecked malloc in client authentication + [CVE-2014-8091] + + integer overflows calculating memory needs for requests [CVE-2014-8092, + CVE-2014-8093, CVE-2014-8094] + + out of bounds access due to not validating length or offset values in + requests [CVE-2014-8095, CVE-2014-8096, CVE-2014-8097, CVE-2014-8098, + CVE-2014-8099, CVE-2014-8100, CVE-2014-8101, CVE-2014-8102, + CVE-2014-8103] + See http://www.x.org/wiki/Development/Security/Advisory-2014-12-09/ + * Drop 06_Revert-fb-reorder-Bresenham-error-correction-to-avoi.diff, + obsoleted by the upstream fix (closes: #752156) + * 09_Xserver-man-iglx.diff: adjust Xserver man page, we disable indirect glx + contexts by default. + + -- Julien Cristau Tue, 09 Dec 2014 22:04:20 +0100 + +xorg-server (2:1.16.1.901-1ubuntu2) vivid; urgency=medium + + * Re-enable rotation in optimus mode with SNA. (LP: #1386620) + + -- Maarten Lankhorst Thu, 06 Nov 2014 12:19:07 +0100 + +xorg-server (2:1.16.1.901-1ubuntu1) vivid; urgency=medium + + * Merge from released debian-unstable. + + -- Maarten Lankhorst Wed, 05 Nov 2014 15:38:44 +0100 + +xorg-server (2:1.16.1.901-1) unstable; urgency=medium + + * New upstream release. + + Xext/shm: Detach SHM segment after Pixmap is released + + Fix present_notify to return right away when querying current or past msc + + Fix present_pixmap when using present_notify_msc + + xkb: ignore floating slave devices when updating from master + + fb: Fix invalid bpp for 24bit depth window + + -- Julien Cristau Mon, 03 Nov 2014 21:36:14 +0100 + +xorg-server (2:1.16.1-1ubuntu1) vivid; urgency=medium + + * Merge from released debian-unstable. + * New upstream micro release. + - Import another patch from the 1.16 branch to fix KVM terminals. + This is an alternative, better, fix for (LP: #1318119). + * Remove outdated breaks/replaces, only affects the lts. + * Refresh patch series for 1.16.1 + - Drop parts of the series for primary platform devices, upstream. + + -- Maarten Lankhorst Mon, 27 Oct 2014 11:05:40 +0100 + +xorg-server (2:1.16.1-1) unstable; urgency=medium + + * Add my key to debian/upstream/signing-key.asc. + * New upstream release. + * Update help text since -iglx is now the default (cherry-pick from master) + + -- Julien Cristau Mon, 22 Sep 2014 22:12:20 +0200 + +xorg-server (2:1.16.0.901-1) unstable; urgency=medium + + * New upstream release + + glx/present: Only send GLX_BufferSwapComplete for PresentCompleteKindPixmap (closes: #761393) + * glx: Disable indirect GLX contexts by default (cherry-pick from master) + + -- Julien Cristau Tue, 16 Sep 2014 15:44:55 +0200 + +xorg-server (2:1.16.0-2) unstable; urgency=medium + + * xserver-xorg-dev: /usr/share/xserver-xorg/configure_flags.mk + Provide the flags how the xserver was configured (closes: #757246). Based + on Ubuntu patch by Matthias Klose. Thanks, Yaroslav Halchenko! + + -- Julien Cristau Sun, 31 Aug 2014 11:58:36 -0700 + +xorg-server (2:1.16.0-1ubuntu1) utopic; urgency=medium + + [ Maarten Lankhorst ] + * New upstream release. + - Refresh patches. + * Merge from released debian sid. + + [ Christopher James Halse Rogers ] + * Refresh XMir patch + + -- Maarten Lankhorst Wed, 10 Sep 2014 12:30:55 +0200 + +xorg-server (2:1.16.0-1) unstable; urgency=medium + + * New upstream release + + Revert "dix: fix up coordinate scaling when external monitors are + present" (closes: #754822) + + -- Julien Cristau Fri, 18 Jul 2014 00:17:11 +0200 + +xorg-server (2:1.15.99.904-1) unstable; urgency=medium + + * New upstream release candidate. + * Make xserver-common Multi-Arch: foreign (closes: #693922) + * Add debian/upstream/signing-key.asc, and add pgpsigurlmangle option to + debian/watch, to allow uscan to verify tarball signatures. + * Upload to unstable. + + -- Julien Cristau Tue, 08 Jul 2014 15:22:20 +0200 + +xorg-server (2:1.15.99.903-3) experimental; urgency=medium + + * Set shared memory dir to /dev/shm (closes: #747894). + * Disable dri3 on kfreebsd again to fix FTBFS. + + -- Julien Cristau Tue, 10 Jun 2014 21:50:06 +0200 + +xorg-server (2:1.15.99.903-2) experimental; urgency=medium + + * Enable xwayland for the main build on linux (closes: #747950). + + -- Julien Cristau Thu, 05 Jun 2014 21:58:45 +0200 + +xorg-server (2:1.15.99.903-1) experimental; urgency=medium + + * New upstream release candidate + - reverted quirk for "Evoluent VerticalMouse 3" (closes: #739537) + - Xi: block SIGIOs while copying device classes around (closes: #744303) + - fix FTBFS on arm + - add support for mips64 (closes: #725801) + * Enable dri3 on kfreebsd, now xtrans 1.3.3 supports fd passing. + * Enable glamor. + * Don't run tests in parallel. + * Bump video ABI and serverminver. + * Explicitly disable xwayland. + + -- Julien Cristau Thu, 05 Jun 2014 20:14:56 +0200 + +xorg-server (2:1.15.99.902-1) experimental; urgency=medium + + * New upstream snapshot. + + fix Xephyr -screen (closes: #742028) + * Refresh patches. + * Bump video ABI to 17, input ABI to 21. + * Bump xtrans requirement to 1.3.3. + * Bump xproto and fontsproto requirements. + + -- Julien Cristau Tue, 15 Apr 2014 08:35:26 +0200 + +xorg-server (2:1.15.1-0ubuntu9) utopic; urgency=medium + + * xserver-xorg-dev: /usr/share/xserver-xorg/configure_flags.mk + Provide the flags how the xserver was configured. + + -- Matthias Klose Wed, 30 Jul 2014 22:49:51 +0200 + +xorg-server (2:1.15.1-0ubuntu8) utopic; urgency=medium + + * debian/patches/xfree86-pci-bus-probe-non-seat0.patch + - Upstream patch to fix "No devices detected" error for seats + other than seat0. (LP: #1209008) + + -- Alberts Muktupāvels Tue, 01 Jul 2014 17:12:51 +0300 + +xorg-server (2:1.15.1-0ubuntu7) utopic; urgency=medium + + * Rebuild against Mir 0.4.0. + + -- Łukasz 'sil2100' Zemczak Wed, 02 Jul 2014 12:33:10 +0200 + +xorg-server (2:1.15.1-0ubuntu6) utopic; urgency=medium + + * ppc64el-endian-fix.patch: Fix PPC endian assumptions (LP: #1333422) + + -- Adam Conrad Mon, 23 Jun 2014 23:47:15 -0600 + +xorg-server (2:1.15.1-0ubuntu5) utopic; urgency=low + + * Add upstream patch to fix some valgrind issues. + - xi-dont-copy-too-much.patch + * Fix crash related to suspend/shutdown. (LP: #1208473) + - mi-dont-process-disabled.patch + + -- Maarten Lankhorst Tue, 20 May 2014 11:32:41 +0200 + +xorg-server (2:1.15.1-0ubuntu4) utopic; urgency=low + + * Resize touch event history if the array is filled up. + - xi2-resize-touch.patch + + -- Maarten Lankhorst Wed, 07 May 2014 13:52:59 +0200 + +xorg-server (2:1.15.1-0ubuntu3) utopic; urgency=medium + + * Revive the old drm_device_keep_trying.patch. + - Removing the call to get_drm_info fixes switching to guest sessions. + + -- Maarten Lankhorst Mon, 28 Apr 2014 10:06:21 +0200 + +xorg-server (2:1.15.1-0ubuntu2) trusty; urgency=medium + + * Disable support for rotations and transforms + on gpu screens for now. (LP: #1308515) + + -- Maarten Lankhorst Wed, 16 Apr 2014 10:14:39 +0200 + +xorg-server (2:1.15.1-0ubuntu1) trusty; urgency=medium + + * Merge from unreleased debian unstable. + - Unbreaks KDE desktop effects on IVB+. (LP: #1294666) + + -- Maarten Lankhorst Mon, 14 Apr 2014 12:57:12 +0200 + +xorg-server (2:1.15.1-1) UNRELEASED; urgency=low + + * New upstream release. + + -- Maarten Lankhorst Mon, 14 Apr 2014 12:52:18 +0200 + +xorg-server (2:1.15.0.901-1) unstable; urgency=medium + + [ Robert Millan ] + * Add devd input backend for kFreeBSD, and use it instead of hal (closes: + #736765, #710196, #683833) + + [ Julien Cristau ] + * New upstream release + + -- Julien Cristau Mon, 31 Mar 2014 12:19:57 +0200 + +xorg-server (2:1.15.0-1ubuntu7) trusty; urgency=medium + + * Fix crash in RRCrtcDetachScanoutPixmap. (LP: #1280743) + + -- Maarten Lankhorst Thu, 13 Mar 2014 13:10:52 +0100 + +xorg-server (2:1.15.0-1ubuntu6) trusty; urgency=low + + * Add a small patch to hopefully fix FTBFS on ppc64el. + * Add breaks/replaces on xserver-common-lts-* to fix upgrades from precise. + + -- Maarten Lankhorst Thu, 13 Feb 2014 14:06:11 +0100 + +xorg-server (2:1.15.0-1ubuntu5) trusty; urgency=medium + + * Another no-change rebuild against latest Mir + + -- Łukasz 'sil2100' Zemczak Wed, 12 Feb 2014 18:33:20 +0100 + +xorg-server (2:1.15.0-1ubuntu4) trusty; urgency=low + + * Only set RR caps that are appropriate to main/gpu screen. (LP: #1277014) + + -- Maarten Lankhorst Mon, 10 Feb 2014 18:51:19 +0100 + +xorg-server (2:1.15.0-1ubuntu3) trusty; urgency=low + + * No-change rebuild against correct libgcrypt. + + -- Maarten Lankhorst Thu, 06 Feb 2014 09:38:39 +0000 + +xorg-server (2:1.15.0-1ubuntu2) trusty; urgency=medium + + * No-change rebuild against latest Mir + + -- Ricardo Salveti de Araujo Tue, 04 Feb 2014 20:35:47 -0200 + +xorg-server (2:1.15.0-1ubuntu1) trusty; urgency=low + + * New upstream release. + + -- Maarten Lankhorst Tue, 04 Feb 2014 15:45:00 +0000 + +xorg-server (2:1.15.0-2) unstable; urgency=medium + + [ Julien Cristau ] + * Bump debhelper compat level to 7. + * Upload to unstable. + + [ Yaroslav Halchenko ] + * Adding xorg-server-source binary package to provide a tarball with + original (patched, autoreconfed) sources of the xserver (Closes: + #730552) + + -- Julien Cristau Thu, 06 Feb 2014 16:14:15 +0100 + +xorg-server (2:1.15.0-1) experimental; urgency=low + + * New upstream release. + + -- Maarten Lankhorst Mon, 06 Jan 2014 11:00:39 +0100 + +xorg-server (2:1.14.99.904-2) experimental; urgency=medium + + * Pass VERBOSE=1 to make check to make debugging test failures possible. + * Disable dri3 on kfreebsd. xtrans doesn't enable fd passing there yet. + + -- Julien Cristau Sat, 14 Dec 2013 18:16:17 +0100 + +xorg-server (2:1.14.99.904-1) experimental; urgency=low + + [ Julien Cristau ] + * New upstream release candidate. + * Update (build-)dependencies: + - bump x11proto-xext-dev, x11proto-gl-dev, xtrans-dev, libgl1-mesa-dev + - add x11proto-present-dev, x11proto-dri3-dev, libxshmfence-dev + * Enable dri3 (on !hurd) and present extensions. + * Point to http://www.debian.org/support instead of the uploader's email + address in the Xorg log. + + [ Maarten Lankhorst ] + * Disable xorg-server's linux acpi and apm support. Can only cause bugs. + + -- Julien Cristau Thu, 12 Dec 2013 12:11:14 +0100 + +xorg-server (2:1.14.99.3-1) experimental; urgency=low + + * New upstream snapshot. + * Drop patches applied upstream: + - 02_improve-posix-saved-ids-check.diff + - 04_hashtabletest-s390x.diff + - 10_Include-missing-selection-h.diff + - os-move-arpa-inet.h-for-any-win32-system.patch + - xfree86-hurd-include-hurd.h.patch + * Update build-deps: + - bump libx11-dev to 2:1.6 for _XEatDataWords + - require xcb bits for Xephyr + - xserver-xorg-dev depends on x11proto-xf86bigfont-dev + * Bump ABI versions (should have been done upstream, but hasn't yet). + * Stop building Xfbdev. + * Reduce noise from dh_install --list-missing by deleting some files from the + udeb build after make install. + * Run abibumpcheck on build instead of clean so it's done on a patched tree. + * Remove Drew and Cyril from Uploaders. + + -- Julien Cristau Mon, 21 Oct 2013 23:46:34 +0200 + +xorg-server (2:1.14.5-1ubuntu4) trusty; urgency=medium + + * Build xserver-xorg-core-udeb on arm64 and ppc64el. + + -- Colin Watson Mon, 03 Feb 2014 15:44:50 +0000 + +xorg-server (2:1.14.5-1ubuntu3) trusty; urgency=low + + * Add a workaround for a linker crash bug. (LP: #1266492) + + -- Maarten Lankhorst Wed, 29 Jan 2014 16:13:36 +0100 + +xorg-server (2:1.14.5-1ubuntu2) trusty; urgency=medium + + * Don't build XMir on ppc64el. + + -- Matthias Klose Sun, 15 Dec 2013 22:42:40 +0100 + +xorg-server (2:1.14.5-1ubuntu1) trusty; urgency=low + + * Merge from released debian-unstable. + * Refresh xrandr-rroutputchanged-main.patch. + + -- Maarten Lankhorst Fri, 13 Dec 2013 11:24:16 +0100 + +xorg-server (2:1.14.5-1) unstable; urgency=low + + * New upstream release. + + -- Maarten Lankhorst Fri, 13 Dec 2013 11:10:46 +0100 + +xorg-server (2:1.14.4.901-0ubuntu2) trusty; urgency=low + + * Re-apply security update again. + + -- Maarten Lankhorst Tue, 10 Dec 2013 15:25:04 +0100 + +xorg-server (2:1.14.4.901-0ubuntu1) trusty; urgency=low + + * New upstream release with some optimus fixes. + * Include a patch to fix gpu screen output hotplugging. (LP: #1259561) + + -- Maarten Lankhorst Tue, 10 Dec 2013 15:09:07 +0100 + +xorg-server (2:1.14.4-1ubuntu2) trusty; urgency=low + + * SECURITY UPDATE: unsafe use of xkb cache files + - debian/patches/190_cache-xkbcomp_output_for_fast_start_up.patch: + updated to not use xkb cache files in /tmp when running a non-root + server. + - CVE-2013-1056 + + -- Marc Deslauriers Fri, 06 Dec 2013 11:15:23 -0500 + +xorg-server (2:1.14.4-1ubuntu1) trusty; urgency=low + + * Merge released debian-unstable. + * Cherry-pick fix to sync code. (LP: #1238410) + + -- Maarten Lankhorst Wed, 04 Dec 2013 13:54:02 +0100 + +xorg-server (2:1.14.4-1) unstable; urgency=low + + * New upstream release. + * Drop upstreamed patches. + - 02_improve-posix-saved-ids-check.diff + - 04_hashtabletest-s390x.diff + - 10_Include-missing-selection-h.diff + + -- Maarten Lankhorst Wed, 04 Dec 2013 13:09:36 +0100 + +xorg-server (2:1.14.3-5ubuntu1) trusty; urgency=low + + * Merge released debian-unstable to fix mesa-10 loading. + * Drop avoid-use-after-free.diff, upstreamed. + + -- Maarten Lankhorst Mon, 25 Nov 2013 16:17:49 +0100 + +xorg-server (2:1.14.3-5) unstable; urgency=low + + * Cherry-pick a upstream commit to fix mesa-10 driver loading. + + -- Maarten Lankhorst Mon, 25 Nov 2013 14:52:54 +0100 + +xorg-server (2:1.14.3-3ubuntu4) trusty; urgency=low + + * No-change rebuild for xmir to use the new Mir ABI. + + -- Mathieu Trudel-Lapierre Mon, 28 Oct 2013 13:36:02 -0400 + +xorg-server (2:1.14.3-3ubuntu3) trusty; urgency=low + + * pixman-validate.patch: Do not render invalid trapezoids. (LP: #1197921) + + -- Maarten Lankhorst Wed, 23 Oct 2013 12:11:27 +0200 + +xorg-server (2:1.14.3-3ubuntu2) saucy-proposed; urgency=low + + * avoid-use-after-free.diff: Fix CVE-2013-4396. + + -- Timo Aaltonen Tue, 15 Oct 2013 12:05:48 +0300 + +xorg-server (2:1.14.3-3ubuntu1) saucy; urgency=low + + * Merge from unreleased debian git. + * rrcrtc-brackets-are-hard.patch: Replace xf86-detach-scanout.patch + with this patch from Fedora. Should fix crashers on hybrid systems + (LP: #1210025) + * Drop include-selection-h.patch, not needed anymore. + + -- Timo Aaltonen Thu, 03 Oct 2013 15:30:22 +0300 + +xorg-server (2:1.14.3-4) unstable; urgency=high + + [ Timo Aaltonen ] + * rules: Drop defoma support from the font path. (Closes: #689233, + LP: #986061) + + [ Julien Cristau ] + * Avoid use-after-free in dix/dixfonts.c: doImageText(). Addresses + CVE-2013-4396. + + -- Julien Cristau Sat, 05 Oct 2013 15:57:55 +0200 + +xorg-server (2:1.14.3-3) unstable; urgency=low + + * Upload to unstable. + + -- Julien Cristau Sun, 22 Sep 2013 16:32:19 +0200 + +xorg-server (2:1.14.3-2) experimental; urgency=low + + * Delete test-driver on clean. + * Add a couple patches to fix FTBFS on hurd (closes: #720736). Thanks, Pino + Toscano! + + -- Julien Cristau Fri, 20 Sep 2013 00:21:41 +0200 + +xorg-server (2:1.14.3-1) experimental; urgency=low + + [ Julien Cristau ] + * Remove the Replaces: xdmx from xdmx-tools, that was before lenny. That + change was done in the 1.10.x timeframe and then lost when moving to + 1.11.x. + + [ Michele Cane ] + * New upstream release. + + -- Julien Cristau Sun, 15 Sep 2013 23:57:26 +0200 + +xorg-server (2:1.14.2.901-2ubuntu7) saucy; urgency=low + + * Make glx link against glapi for the dispatch table symbols. (LP: #1232000) + * Cherry pick a few related glx fixes from upstream. + + -- Maarten Lankhorst Tue, 01 Oct 2013 13:30:59 +0200 + +xorg-server (2:1.14.2.901-2ubuntu6) saucy; urgency=low + + * xmir.patch: Drop vestigial libatomic-ops dependency, fixing + driver FTBFS. + + -- Christopher James Halse Rogers Thu, 26 Sep 2013 08:29:44 -0700 + +xorg-server (2:1.14.2.901-2ubuntu5) saucy; urgency=low + + * xmir.patch: Drop input on loss of focus. Fixes "I'm sending all my + passwords to IRC when I switch to a VT" with associated + unity-system-compositor change. (LP: #1192843) + * xmir.patch: Add DPMS support (LP: #1193222) + * Drop os-use-libunwind-to-generate-backtraces.patch; this was not enabled + due to libunwind8-dev not shipping a pkg-config file. Now that it does, + this causes FTBFS on armhf. + + -- Christopher James Halse Rogers Tue, 24 Sep 2013 08:58:45 -0700 + +xorg-server (2:1.14.2.901-2ubuntu4) saucy; urgency=low + + * xmir.patch: Add XRandR support + * Bump serverminver for XMir API changes + + -- Christopher James Halse Rogers Thu, 29 Aug 2013 19:42:41 +1000 + +xorg-server (2:1.14.2.901-2ubuntu3) saucy; urgency=low + + * xmir.patch: Use the API we have, not the API we've documented + + -- Christopher James Halse Rogers Thu, 22 Aug 2013 15:18:55 +1000 + +xorg-server (2:1.14.2.901-2ubuntu2) saucy; urgency=low + + * xmir.patch: Update for new API + + -- Christopher James Halse Rogers Thu, 22 Aug 2013 14:23:40 +1000 + +xorg-server (2:1.14.2.901-2ubuntu1) saucy; urgency=low + + * Merge from released debian-experimental. + * Drop upstreamed prime patches. + * Refresh 228_autobind_gpu.patch. + * Pick up some more input fixes from upstream. + + -- Maarten Lankhorst Wed, 14 Aug 2013 10:52:17 +0200 + +xorg-server (2:1.14.2.901-2) experimental; urgency=low + + * Use libbsd-overlay to get missing declarations on kfreebsd and fix FTBFS. + Require dpkg-dev 1.16.1. + * Also improve POSIX_SAVED_IDS check to work on kbsd. + * Link against libnettle.a, to unbreak the udeb (there's no libnettle udeb). + * Fix a test failure on 64bit big-endian (s390x, ppc64, sparc64). + + -- Julien Cristau Sat, 03 Aug 2013 18:17:30 +0200 + +xorg-server (2:1.14.2.901-1) experimental; urgency=low + + * New upstream release + + [ Maarten Lankhorst ] + * Bump minimum required abi, randr, dri2 and gl protos. + * Remove upstreamed patches. + - 02_Add-libnettle-as-option-for-sha1.diff + - 04_int10-fix-pci_device_read_rom-usage.diff + - 07_Revert-kinput-allocate-enough-space-for-null-charact.diff + * Bump x11proto-input-dev and libpixman-1-dev minimum versions. + + [ Timo Aaltonen ] + * Refresh 02_Add-libnettle-as-option-for-sha1.diff. + * Remove 03_fix-panning.diff, upstream + * Refresh 04_int10-fix-pci_device_read_rom-usage.diff. + * Drop 09_EXA-Track...diff, upstream. + * control: Mark xvfb as M-A: foreign. + * control: Bump inputproto build-dep to 2.3. + + [ Robert Hooker ] + * Update to a newer git snapshot, 7fe5e6dfa5c1e71 + * Bump input ABI version in serverminver + * Bump libxi-dev build requirement to 2:1.6.99.1 + + [ Julien Cristau ] + * Merge sid branch up to 2:1.12.4-6.1. + * Drop old --disable-builddocs, --disable-xcalibrate configure options from + d/rules. + * Make build-deps match xserver-xorg-dev dependencies and configure checks. + + -- Julien Cristau Sat, 27 Jul 2013 13:18:28 +0200 + +xorg-server (2:1.14.2-0ubuntu9) saucy; urgency=low + + [ Maarten Lankhorst ] + * Fix crash in RRCrtcDetachScanoutPixmap. + * Add xmir module to xserver-xorg-core-dbg. + * Fix xf86DeleteDriver infinite loop. (LP: 1208715) + + [ Christopher James Halse Rogers ] + * Fix damage reporting (LP: 1206744) + + -- Christopher James Halse Rogers Tue, 06 Aug 2013 16:11:47 +1000 + +xorg-server (2:1.14.2-0ubuntu8) saucy; urgency=low + + * Don't build XMir on AArch64. + + -- Matthias Klose Mon, 05 Aug 2013 15:51:01 +0200 + +xorg-server (2:1.14.2-0ubuntu7) saucy; urgency=low + + * Don't have the -dev package depending on libmirclient-dev on powerpc + as unavailable + + -- Didier Roche Mon, 05 Aug 2013 12:33:48 +0200 + +xorg-server (2:1.14.2-0ubuntu6) saucy; urgency=low + + * As we don't build XMir on PPC we should not try to build the + xserver-xorg-xmir package, either. + + -- Christopher James Halse Rogers Mon, 05 Aug 2013 19:09:47 +1000 + +xorg-server (2:1.14.2-0ubuntu5) saucy; urgency=low + + * rules,control: Restrict XMir build to !powerpc, as we don't build Mir there + + -- Christopher James Halse Rogers Mon, 05 Aug 2013 18:46:43 +1000 + +xorg-server (2:1.14.2-0ubuntu4) saucy; urgency=low + + * Add xmir.patch; First upload with XMir support. + + -- Christopher James Halse Rogers Thu, 01 Aug 2013 13:00:41 +1000 + +xorg-server (2:1.14.2-0ubuntu3) saucy; urgency=low + + * Oops, refresh xf86-detach-scanout, embarassing bug in the for check. + + -- Maarten Lankhorst Tue, 30 Jul 2013 12:51:40 +0200 + +xorg-server (2:1.14.2-0ubuntu2) saucy; urgency=low + + * Add support for Aarch64. + + -- Matthias Klose Wed, 24 Jul 2013 14:24:25 +0200 + +xorg-server (2:1.14.2-0ubuntu1) saucy; urgency=low + + * New upstream release. (LP: #1156498) + * Remove upstreamed patch. + - xf86setdesired-hybrid.patch + + -- Maarten Lankhorst Tue, 16 Jul 2013 09:36:06 +0200 + +xorg-server (2:1.14.1-0ubuntu1) saucy; urgency=low + + * Fix null pointer deref on logout. (LP: #1194343) + + -- Maarten Lankhorst Thu, 11 Jul 2013 16:52:28 +0200 + +xorg-server (2:1.14.1-0ubuntu0.8) saucy; urgency=low + + * Use correct version for libxfixes3. + + -- Maarten Lankhorst Wed, 03 Jul 2013 12:03:57 +0200 + +xorg-server (2:1.14.1-0ubuntu0.7) saucy; urgency=low + + * Add build-depends on recent enough libxi-dev and libxfixes-dev + for the new pointer barriers. + * Add breaks on old libxi6, libxfixes3, unity. + + -- Maarten Lankhorst Wed, 03 Jul 2013 10:37:30 +0200 + +xorg-server (2:1.14.1-0ubuntu0.6) saucy; urgency=low + + * Add patch to fix nvidia regression. + - xf86-inactive-gpuscreen.patch + + -- Maarten Lankhorst Mon, 17 Jun 2013 14:18:35 +0200 + +xorg-server (2:1.14.1-0ubuntu0.5) saucy; urgency=low + + * Add patch to fix device enumeration with nvidia drivers. (LP: #1190546) + - xf86-fixup-detection.patch + + -- Maarten Lankhorst Thu, 13 Jun 2013 13:03:17 +0200 + +xorg-server (2:1.14.1-0ubuntu0.4) raring; urgency=low + + * Add patch to fix crash on hybrid systems during shutdown. (LP: #1185035) + - xf86-detach-scanout.patch + * Add patch to fix build error on saucy. + - include-selection-h.patch + + -- Maarten Lankhorst Tue, 28 May 2013 16:13:24 +0200 + +xorg-server (2:1.14.1-0ubuntu0.3) raring; urgency=low + + * Add patch to fixup optimus again. + - xf86-dont-enable-gpuscreens.patch + + -- Maarten Lankhorst Wed, 01 May 2013 09:38:59 +0200 + +xorg-server (2:1.14.1-0ubuntu0.2) raring; urgency=low + + * Add patch to run on outputless hybrid systems again. + - xf86setdesired-hybrid.patch + + -- Maarten Lankhorst Mon, 29 Apr 2013 11:29:10 +0200 + +xorg-server (2:1.14.1-0ubuntu0.1) raring; urgency=low + + [ Timo Aaltonen ] + * Merge from unreleased debian git. + * 500_pointer_barrier_thresholds.diff: Dropped, implemented upstream. + * Dropped upstreamed patches: + 165_man_xorg_conf_no_device_ident.patch + 233-xf86events-valgrind.patch + 236-use-fbdev-for-poulsbo-oaktrail-medfield.patch + * Dropped drm_device_keep_trying.patch, not needed anymore. + + [ Bryce Harrington ] + * 157_check_null_modes.patch: Dropped, patch included upstream. + * 162_null_crtc_in_rotation.patch: Dropped, no longer relevant + (see LP: 139990) + * 167_nullptr_xisbread.patch: Dropped, fixed differently upstream. + + [ Maarten Lankhorst ] + * Update to 1.14.0 release. + + -- Maarten Lankhorst Wed, 06 Mar 2013 14:49:21 +0100 + +xorg-server (2:1.13.3-0ubuntu13) saucy; urgency=low + + * Re-enable xf86-fixup-detection.patch. + * Add patch to fix nvidia regression. + - xf86-inactive-gpuscreen.patch + + -- Maarten Lankhorst Mon, 17 Jun 2013 14:16:05 +0200 + +xorg-server (2:1.13.3-0ubuntu12) saucy; urgency=low + + * Disable xf86-fixup-detection.patch for now as it breaks PRIME + with nvidia. + + -- Alberto Milone Fri, 14 Jun 2013 17:21:16 +0200 + +xorg-server (2:1.13.3-0ubuntu11) saucy; urgency=low + + * Add patch to fix device enumeration with nvidia drivers. (LP: #1190546) + - xf86-fixup-detection.patch + + -- Maarten Lankhorst Thu, 13 Jun 2013 13:00:58 +0200 + +xorg-server (2:1.13.3-0ubuntu10) saucy; urgency=low + + * Add patch to fix DPMS. (LP: #1184999) + - include-GPU-screens-in-DPMS-code.patch + * Add patch to fix crash on hybrid systems during shutdown. (LP: #1185035) + - xf86-detach-scanout.patch + + -- Maarten Lankhorst Tue, 28 May 2013 16:12:12 +0200 + +xorg-server (2:1.13.3-0ubuntu9) saucy; urgency=low + + * Cherry-pick patch from 1.14 to fix DRI1 regression. (LP: #1083032) + - dri1-fix-dri1-startup-since-459c6da0f907ba33d733c7e6.patch + + -- Tormod Volden Sun, 12 May 2013 11:30:46 +0200 + +xorg-server (2:1.13.3-0ubuntu8) saucy; urgency=low + + * Fixup build error on saucy. + + -- Maarten Lankhorst Wed, 08 May 2013 14:02:12 +0200 + +xorg-server (2:1.13.3-0ubuntu7) saucy; urgency=low + + * Add patch to fixup optimus again. + - xf86-dont-enable-gpuscreens.patch + + -- Maarten Lankhorst Wed, 01 May 2013 10:35:55 +0200 + +xorg-server (2:1.13.3-0ubuntu6) raring; urgency=low + + * SECURITY UPDATE: input event leak via inactive VT + - debian/patches/CVE-2013-1940.patch: fix flush input to work with + Linux evdev devices in hw/xfree86/os-support/shared/posix_tty.c. + - CVE-2013-1940 + + -- Jamie Strandboge Wed, 17 Apr 2013 09:41:17 -0500 + +xorg-server (2:1.13.3-0ubuntu5) raring; urgency=low + + [ Bryce Harrington ] + * Add no-nv.patch: Don't autoprobe -nv on linux. + * Refresh drm_device_keep_trying.patch (LP: #1161981) + - Set empty busid for usb devices + - Parse pci path more strictly. + - Make platform devices work correctly, try to obtain busid from + path if possible. + - Fallback if not possible (tegra). + + -- Maarten Lankhorst Mon, 08 Apr 2013 11:40:26 +0200 + +xorg-server (2:1.13.3-0ubuntu4) raring; urgency=low + + * Do not bother registering xv/xvmc on gpu screens. + - xfree86-no-xv-for-gpuscreens.patch + * Re-enable GLX on Xephyr. (LP: #1079096) + - xephyr-glx-register.patch + + -- Maarten Lankhorst Tue, 26 Mar 2013 16:16:14 +0100 + +xorg-server (2:1.13.3-0ubuntu3) raring; urgency=low + + * Refresh autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch + - Unbind offload sink and render slave simultaneously. + This prevents a use-after-free bug. + * Add config-add-no-removal.patch (LP: #1157614) + - Do not call device_remove when a device is hotplugged. + * Refresh drm_device_keep_trying.patch + - There is no need for drm master here. This might + reopen LP #982889, but I do not think spinning here + :is the correct answer. + + -- Maarten Lankhorst Thu, 21 Mar 2013 15:40:42 +0100 + +xorg-server (2:1.13.3-0ubuntu2) raring; urgency=low + + * Add patch to improve backtraces in the Xorg log. + - os-use-libunwind-to-generate-backtraces.patch + + -- Maarten Lankhorst Thu, 14 Mar 2013 16:12:16 +0100 + +xorg-server (2:1.13.3-0ubuntu1) raring; urgency=low + + * New upstream release. + * Drop patches applied upstream. + - 237_dix_save_touchpoint_last_coords_before_transform.patch + - randr-cleanup-provider-properly.patch + * Rework drm_device_keep_trying.patch (LP: #982889) + + -- Maarten Lankhorst Thu, 14 Mar 2013 08:41:51 +0100 + +xorg-server (2:1.13.2-0ubuntu3) raring; urgency=low + + * Add drm_device_keep_trying.patch: When kernel reports drm device is + not available, don't give up immediately, but keep retrying for a + little bit. Fixes boot failures due to a race condition with plymouth + or the kernel. Typical symptom is xserver error exit, "Cannot run in + framebuffer mode" and Xorg.0.log messages about "setversion 1.4 + failed". + (LP: #982889) + + -- Bryce Harrington Tue, 19 Feb 2013 07:58:24 -0800 + +xorg-server (2:1.13.2-0ubuntu2) raring; urgency=low + + * Restore selinux support now that audit has been promoted to main. + + -- Adam Conrad Sat, 09 Feb 2013 00:03:45 -0700 + +xorg-server (2:1.13.2-0ubuntu1) raring; urgency=low + + * New upstream release. + * control: Mark xvfb M-A: foreign. + * Refresh autobind patch from fedora, and cherry-pick some fixes from them for + reverse-optimus and hotplugging. + + -- Timo Aaltonen Tue, 29 Jan 2013 17:23:44 +0200 + +xorg-server (2:1.13.1.901-0ubuntu2) raring; urgency=low + + * Add 237_dix_save_touchpoint_last_coords_before_transform.patch: + Fix sensitive touch settings on Nexus 7 when input is transformed. + (LP: #1075415, #1076567, #1076627) + + -- Bryce Harrington Tue, 22 Jan 2013 13:51:16 -0800 + +xorg-server (2:1.13.1.901-0ubuntu1) raring; urgency=low + + * Merge from unreleased debian git. + + -- Timo Aaltonen Tue, 08 Jan 2013 16:40:30 +0200 + +xorg-server (2:1.13.0.902-0ubuntu1) raring; urgency=low + + [ Timo Aaltonen ] + * Merge from unreleased debian git. + * Dropped upstream patches: + - 229_udev-fix.diff + - 231-scan-pci-after-probing-devices.patch + - 235-composite-tracking.patch + - 237-dix-set-the-device-transformation-matrix.patch + + [ Maarten Lankhorst ] + * Dropped upstream patches: + - 230-fix-compat-output-selection.patch + * Merge 1.13.1.rc2 from unreleased debian git. + * Bump ABI_VIDEODRV_VERSION to 13.1 + - xf86UpdateDesktopDimensions is newly exported for nvidia blob + + -- Maarten Lankhorst Fri, 07 Dec 2012 09:14:37 +0100 + +xorg-server (2:1.13.0-0ubuntu8) raring; urgency=low + + * Revert the change to 500_pointer_barrier_thresholds.diff, causes + issues with unity launcher. + + -- Timo Aaltonen Mon, 19 Nov 2012 12:15:49 +0200 + +xorg-server (2:1.13.0-0ubuntu7) raring; urgency=low + + [ Maarten Lankhorst ] + * Add 233-xf86events-valgrind.patch to fix a xserver corruption + when acpid is stopped before Xorg is. + (LP: #1070481) + * Add 235-composite-tracking.patch to fix exa corruption. + (LP: #1010794) + + [ Bryce Harrington ] + * Add 236-use-fbdev-for-poulsbo-oaktrail-medfield.patch: Never use Intel + driver on Poulsbo/Oaktrail/Medfield. Thanks to Matthias Klumpp. + (LP: #1069031) + * Add 237-dix-set-the-device-transformation-matrix.patch: Fix pointer + jumping with absolute pointing device. Initializes device + transformation matrix to an identity matrix. Thanks to a7x. + (LP: #1041063) + + [ Tim Lunn ] + * 500_pointer_barrier_thresholds.diff: Update to fix gaps above + barriers at edge of screen + (LP: #1073724) + + -- Bryce Harrington Fri, 16 Nov 2012 11:37:26 -0800 + +xorg-server (2:1.13.0-0ubuntu6) quantal; urgency=low + + [ Timo Aaltonen ] + * patches/series: Reorganize our patches in categories in order to + make reviewing and rebasing easier. + + [ Maarten Lankhorst ] + * add 232-xf86compatoutput-valgrind.patch to silence a valgrind error + + -- Timo Aaltonen Mon, 08 Oct 2012 17:58:54 +0300 + +xorg-server (2:1.13.0-0ubuntu5) quantal; urgency=low + + * Update 228_autobind_gpu.patch to not crash when the device has no + randr provider. (LP: #1054051) + + -- Timo Aaltonen Tue, 25 Sep 2012 09:46:44 +0300 + +xorg-server (2:1.13.0-0ubuntu4) quantal; urgency=low + + * Add patches to fix issues with hybrid graphics: + - 230-fix-compat-output-selection.patch + Fix compat output selection when the GPU has no outputs + (LP: #1043458) + - 231-scan-pci-after-probing-devices.patch + Fix a race condition when dynamically powering off secondary GPU's + + -- Timo Aaltonen Thu, 20 Sep 2012 14:34:45 +0300 + +xorg-server (2:1.13.0-0ubuntu3) quantal; urgency=low + + * Try again with the right hotplug patch. + + -- Timo Aaltonen Mon, 17 Sep 2012 16:24:29 +0300 + +xorg-server (2:1.13.0-0ubuntu2) quantal; urgency=low + + [ Maarten Lankhorst ] + * Add patch to autobind gpu's + + [ Timo Aaltonen ] + * Add a patch to fix drm device hotplugging. + + -- Timo Aaltonen Mon, 17 Sep 2012 15:58:32 +0300 + +xorg-server (2:1.13.0-0ubuntu1) quantal; urgency=low + + * Merge from unreleased debian git. + + -- Timo Aaltonen Thu, 06 Sep 2012 12:25:51 +0300 + +xorg-server (2:1.12.99.905-0ubuntu3) quantal; urgency=low + + * debian/patches/111_armel-drv-fallbacks.patch: + - Now that the modesetting is part of xserver-xorg-video-all, enable the + arm specific drivers before modesetting is included, otherwise it'll + always be the default, even if we have arm-compatible drivers available + at the system (LP: #1041686) + + -- Ricardo Salveti de Araujo Sat, 25 Aug 2012 19:19:16 -0300 + +xorg-server (2:1.12.99.905-0ubuntu2) quantal; urgency=low + + * debian/patches/111_armel-drv-fallbacks.patch: + - Adding support for omapdrm based devices (using the omap xorg driver), + and make xorg to use the recently added platform probe functions, by + trying to probe the driver in case there's only one platform device + available and without a valid busID (case of Omap3 and Omap4 based + devices) (LP: #1040405) + + -- Ricardo Salveti de Araujo Thu, 23 Aug 2012 01:20:03 -0300 + +xorg-server (2:1.12.99.905-0ubuntu1) quantal; urgency=low + + [ Robert Hooker ] + * New upstream release snapshot (1.13-rc5) + + -- Timo Aaltonen Wed, 22 Aug 2012 18:29:26 +0300 + +xorg-server (2:1.12.99.904-0ubuntu2) quantal; urgency=low + + [ Maarten Lankhorst ] + * Remove disabled and unwanted patches + - 13_debian_add_xkbpath_env_variable.diff + - 200_randr-null.patch + - 217_revert_bgnonevisitwindow.patch + - 219_fedora-pointer-barriers.diff + + [ Christopher James Halse Rogers ] + * Bump build-dep on libdrm to 2.4.38-0ubuntu2 and rebuild to pick up correct + libdrm2-udeb dependencies on xserver-xorg-core-udeb + + -- Christopher James Halse Rogers Tue, 21 Aug 2012 16:07:00 +1000 + +xorg-server (2:1.12.99.904-0ubuntu1) quantal-proposed; urgency=low + + [ Maarten Lankhorst ] + * New upstream release snapshot (on the way to 1.13). + * Remove 172_cwgetbackingpicture_nullptr_check.patch: + - Code is removed now that XAA is gone. + + -- Timo Aaltonen Wed, 08 Aug 2012 14:35:03 +0300 + +xorg-server (2:1.12.99.904-1) UNRELEASED; urgency=low + + * New upstream release snapshot (on the way to 1.13). + * Bump minimum required abi, randr, dri2 and gl protos. + + -- Maarten Lankhorst Thu, 12 Jul 2012 13:54:50 +0200 + +xorg-server (2:1.12.99.902-0ubuntu1) quantal-proposed; urgency=low + + [ Maarten Lankhorst ] + * New upstream release snapshot (on the way to 1.13). + - Fixes QT5 app segfaults (LP: #1015292) + * Bump minimum required abi, randr, dri2 and gl protos. + * Refreshed patches to apply on x1.13 + * Remove patches merged upstream: + - 508_device_off_release_buttons.patch + - 510-dix-return-early-from-DisableDevice-if-the-device-is.patch + - 511-dix-move-freeing-the-sprite-into-a-function.patch + - 512-dix-free-the-sprite-when-disabling-the-device.patch + - 513-dix-disable-non-sprite-owners-first-when-disabling-p.patch + - 514-Xi-drop-forced-unpairing-when-changing-the-hierarchy.patch + - 515-dix-disable-all-devices-before-shutdown.patch + + [ Christopher James Halse Rogers ] + * debian/patches/100_rethrow_signals.patch: + - Drop, in favour of getting LightDM to pass -core to the server. This + upstream mechanism is significantly more reliable at dumping core in + my testing. We may later wish to improve this with some processing in + the apport hook. + + -- Julien Cristau Sat, 27 Jul 2013 13:18:28 +0200 + + +xorg-server (2:1.12.4-6.1) unstable; urgency=low + + * Non-maintainer upload. + * 10_Include-missing-selection-h.diff: Fix FTBFS with GCC 4.8. Include + selection.h in dix/window.c for the missing DeleteWindowFromAnySelections + function prototype. Patch by Gerardo Malazdrewicz (closes: #701372) + + -- Michael Biebl Thu, 25 Jul 2013 19:45:29 +0200 + +xorg-server (2:1.12.4-6) unstable; urgency=low + + * Touch: Fix duplicate TouchBegin selection with virtual devices + (closes: #696272) + * Xi: Don't check for TOUCH_END, it's never set + * Xi: Update the device after delivering the emulated pointer event + (closes: #702662) + * xf86: fix flush input to work with Linux evdev devices. Addresses + CVE-2013-1940. + + -- Julien Cristau Wed, 17 Apr 2013 12:12:30 +0200 + +xorg-server (2:1.12.4-5) unstable; urgency=low + + * dmx: don't include dmx-config.h from xdmxconfig (closes: #495816) + * xfree86: bail on misformed acpi strings (closes: #696110) + * dix: don't allow overriding a grab with a different type of grab + * dix: Set focus field on XI2 crossing events (closes: #699907) + * Link against -lbsd on kfreebsd. This gives us access to getpeereid(), and + makes MIT-SHM work with non-world-accessible segments (closes: #701469). + + -- Julien Cristau Sat, 23 Feb 2013 15:37:44 +0100 + +xorg-server (2:1.12.4-4) unstable; urgency=low + + * Fix memory leak in libnettle sha1 patch. Thanks, Yaakov Selkowitz! + * Cherry-pick from upstream: + - dix: set the device transformation matrix. Avoids cursor jumps in + virtualbox (closes: #694598) + + -- Julien Cristau Thu, 29 Nov 2012 19:27:31 +0100 + +xorg-server (2:1.12.4-3) unstable; urgency=low + + * Replace EXA patch from previous upload with the one actually applied + upstream (closes: #666468). + + -- Julien Cristau Mon, 05 Nov 2012 10:44:58 +0100 + +xorg-server (2:1.12.4-2) unstable; urgency=low + + * Fix Xephyr command line option parsing (closes: #689246). Thanks, Andrzej + Pietrasiewicz! + * Restore {in,out}{b,w,l} on ia64 (closes: #685750). Thanks, Stephan + Schreiber! + * EXA: Fall back earlier and more thoroughly from exaGlyphs (closes: + #666468). Patch by Michel Dänzer stolen from upstream bugzilla. + + -- Julien Cristau Wed, 24 Oct 2012 16:46:48 +0200 + +xorg-server (2:1.12.4-1) unstable; urgency=low + + * New upstream stable release. + * int10: fix pci_device_read_rom usage (closes: #686153). Thanks, Stephan + Schreiber! + * Revert 'Unload submodules' (closes: #686152). Seems to introduce a + regression, let's try that again later. Thanks, Stephan Schreiber! + * Revert "fb: reorder Bresenham error correction to avoid overshoot". Fixes + regression introduced in 1.12.3.902 (fdo#54168, closes: #688908) + * Add conflicts against obsolete evtouch input driver (hopefully closes: + #687268) + + -- Julien Cristau Sun, 30 Sep 2012 12:47:00 +0200 + +xorg-server (2:1.12.3.902-1) unstable; urgency=low + + * New upstream release candidate + + glx: Free DRI2 drawable reference to destroyed GLX drawable + (closes: #681265, #674668) + + dix: make sure the mask is set for emulated scroll events + (closes: #684051) + * 03_fix-panning.diff: disable cursor confinement when panning is enabled + (closes: #643693) + * Video ABI bumped to 12.1, serverminver to 2:1.12.3.901. + + -- Julien Cristau Tue, 21 Aug 2012 21:35:25 +0200 + +xorg-server (2:1.12.3-1) unstable; urgency=low + + * New upstream release. + * Install /var/lib/xkb/README.compiled in xserver-common. + + -- Julien Cristau Wed, 18 Jul 2012 08:36:57 +0200 + +xorg-server (2:1.12.1.902-1ubuntu1) quantal-proposed; urgency=medium + + [ Maarten Lankhorst ] + * Refresh patches to apply on x-server 1.12 + - patch-x-indent.sh from xorg-pkg-tools was used to redo coding style + * Deleted following patches because they have been committed upstream + - 224_return_BadWindow_not_BadMatch.diff + - 225_non-root_config_paths.patch + - 505_query_pointer_touchscreen.patch + - 506_touchscreen_pointer_emulation_checks.patch + - 507_touchscreen_fixes.patch + * Non-trivial refresh of 500_pointer_barrier_thresholds.diff, based on + xorg-edgers + * Rest was refreshed with patch-x-indent.sh to survive coding style changes + * Add upstream patches for proper device disabling: + - 510-dix-return-early-from-DisableDevice-if-the-device-is.patch + - 511-dix-move-freeing-the-sprite-into-a-function.patch + - 512-dix-free-the-sprite-when-disabling-the-device.patch + - 513-dix-disable-non-sprite-owners-first-when-disabling-p.patch + - 514-Xi-drop-forced-unpairing-when-changing-the-hierarchy.patch + - 515-dix-disable-all-devices-before-shutdown.patch + + [ Bryce Harrington ] + * Drop 209_add_legacy_bgnone_option.patch: lightdm and other *dm's have + switched to the new standard -background option. No need to continue + providing the legacy -nr synonym. + * Drop 201_report-real-dpi.patch: Commented out in series. + * Drop 198_nohwaccess.patch: Rootless-X no longer a development focus + for us; the patch would need reworked anyway to provide proper + support. + * Drop 166_nullptr_xinerama_keyrepeat.patch: Fixed differently upstream + in commit 24e682d0, as verified by original reporter. + + -- Bryce Harrington Mon, 04 Jun 2012 19:12:23 -0700 + +xorg-server (2:1.12.1.902-1) unstable; urgency=medium + + [ Julien Cristau ] + * xvfb-run: kill Xvfb when the script dies. + * xvfb-run: instead of waiting 3 seconds and hoping that's enough for Xvfb + to come up (and waiting 2.9 seconds too many in the general case), tell it + to send us SIGUSR1 when it's ready to accept connections. This reduces + "xvfb-run -- xterm -e true" from ~3.2s to ~0.4s on a quick test. + * xvfb-run: fix xauth handling; setting XAUTHORITY when starting an X server + isn't actually useful, we need to use the -auth command-line parameter + instead. Somehow this seems to have been broken all these years and + nobody noticed... + + [ Cyril Brulebois ] + * New upstream release candidate for the 1.12 stable branch: + - Bring the usual lot of stability fixes. + - Fix segfault on server shutdown (Closes: #671812). + - Refactor logging, fixing a format string vulnerability which could lead + to a denial of service (“only”, thanks to the fortified sources). This + is CVE-2012-2118 (Closes: #673148). + * Bump severity to “medium” for those two important fixes. + + -- Cyril Brulebois Sun, 20 May 2012 10:52:52 +0200 + +xorg-server (2:1.12.1-2) unstable; urgency=low + + * Merge from server-1.12-branch up to 22a1953c4a to get: + - many XI 2.2 fixes. + - “os: make timers signal-safe”; fixing infinite loops with the + synaptics tap handling code. + + -- Cyril Brulebois Mon, 07 May 2012 01:46:16 +0200 + +xorg-server (2:1.12.1-1) unstable; urgency=low + + * New upstream release. + * Upload to unstable. + + -- Cyril Brulebois Tue, 01 May 2012 01:56:32 +0200 + +xorg-server (2:1.12.0.902-1) experimental; urgency=low + + * New upstream release candidate (1.12.1 RC2). + * Refresh patches, yay for automated re-indenting… + + -- Cyril Brulebois Wed, 11 Apr 2012 19:31:09 +0000 + +xorg-server (2:1.12.0-1) experimental; urgency=low + + * New upstream release. + * Bump x11proto-input-dev in Build-Depends and Depends. + + -- Cyril Brulebois Mon, 05 Mar 2012 11:18:41 +0100 + +xorg-server (2:1.11.99.902-1) experimental; urgency=low + + * New upstream release candidate (1.12 RC2): + - Fix FTBFS on ia64 and mips*. + * Bump x11proto-input-dev build-dep. + + -- Cyril Brulebois Thu, 02 Feb 2012 03:15:00 +0100 + +xorg-server (2:1.11.99.901-1) experimental; urgency=low + + * New upstream release candidate (1.12 RC1). + * Bump input ABI and serverminver again. + * Bump x11proto-input-dev build-dep/dep. + + -- Cyril Brulebois Fri, 30 Dec 2011 00:01:35 +0100 + +xorg-server (2:1.11.99.2-1) experimental; urgency=low + + * New upstream snapshot. + * Bump input ABI and serverminver again. + + -- Cyril Brulebois Tue, 20 Dec 2011 11:39:51 +0100 + +xorg-server (2:1.11.99.1-1) experimental; urgency=low + + * New upstream release snapshot (on the way to 1.12). + * Bump libpciaccess-dev, x11proto-input-dev build-deps. + * Update xserver-xorg-dev's dependencies: + - Add libpixman-1-dev. + - Bump x11proto-input-dev. + * Update serverminver with new server and ABI versions. + * Drop patches (merged upstream): + - 07-xfree86-fix-build-with-xv-disabled.diff + - 15-nouveau.diff + + -- Cyril Brulebois Thu, 15 Dec 2011 18:49:10 +0100 + +xorg-server (2:1.11.4-0ubuntu11) quantal; urgency=low + + * Release buttons when device is disabled on suspend (LP: #968845) + - Add temporary patch 508_device_off_release_buttons.patch from upstream + + -- Chase Douglas Sat, 05 May 2012 13:17:34 -0700 + +xorg-server (2:1.11.4-0ubuntu10.1) precise-proposed; urgency=low + + [ Bryce Harrington ] + * Enable 227_null_ptr_midispcur.patch to apply + + [ Chase Douglas ] + * Update to xserver 1.12.1 for the input stack + * Drop patches merged upstream in 1.12.1: + - 501_touch_accept_end.patch + - 502_indirect_touch_window_set.patch + - 503_fix_mouse_warp.patch + - 504_implement_passive_touch_ungrab.patch + * Fix patch 506_touchscreen_pointer_emulation_checks.patch after upstream + review + * Fix various touchscreen issues (LP: #974887) + - Add temporary patch 506_touchscreen_fixes.patch, which is a combination of + multiple upstream patches + + -- Chase Douglas Thu, 19 Apr 2012 12:34:54 -0700 + +xorg-server (2:1.11.4-0ubuntu10) precise; urgency=low + + * Fix touchscreen pointer emulation (LP: #949791) + - Add temporary patch 506_touchscreen_pointer_emulation_checks.patch + + -- Chase Douglas Wed, 04 Apr 2012 16:53:33 -0700 + +xorg-server (2:1.11.4-0ubuntu9) precise; urgency=low + + * Report button press when touchscreen touch is active (LP: #972985) + - Add temporary patch 505_query_pointer_touchscreen.patch + - Fixes some compiz/unity touchscreen issues + + -- Chase Douglas Tue, 03 Apr 2012 19:04:01 -0700 + +xorg-server (2:1.11.4-0ubuntu8) precise; urgency=low + + [ Chase Douglas ] + * Fix crash at startup due to input option abi break (LP: #931397) + - Revert two commits from upstream 1.12 input stack + + [ Bryce Harrington ] + * debian/patches/227_null_ptr_midispcur.patch: + - Check for NULL pointer before dereferencing pointer from + miGetDCDevice. Fixes crash after connecting a bluetooth keyboard. + (LP: #930936) + + [ Chase Douglas ] + * Fix mouse warping and clipping (LP: #948938) + - Add temporary patch 503_fix_mouse_warp.patch + * Implement passive touch ungrab (LP: #968726) + - Add temporary patch 503_implement_passive_touch_ungrab.patch + * Bump lintian standards to 3.9.3 + + -- Chase Douglas Thu, 29 Mar 2012 18:09:19 -0700 + +xorg-server (2:1.11.4-0ubuntu7) precise; urgency=low + + * debian/patches/111_armel-drv-fallbacks.patch: + - Avoid loading the driver to test if it's available. Xorg will later load + and validate the module, and if it's already loaded it'll trigger an + error and invalidate the driver (LP: #959928) + + -- Ricardo Salveti de Araujo Tue, 20 Mar 2012 02:09:18 -0300 + +xorg-server (2:1.11.4-0ubuntu6) precise; urgency=low + + * debian/patches/500_pointer_barrier_thresholds.diff: + - Don't try to send events from the context of the SIGIO handler. That + leads to the dark side, or at least to server freezes when trying to + reveal the launcher in Unity (LP: #946954). May also fix other seemingly + random X server crashes. + - Add build-time tests to make check for barrier behaviour. These are + disabled, pending gtest, xorg-gtest, and xserver-xorg-video-dummy MIRs. + + -- Christopher James Halse Rogers Fri, 09 Mar 2012 19:16:02 +1100 + +xorg-server (2:1.11.4-0ubuntu5) precise; urgency=low + * Update to 1.12 input stack + * Drop input patches that have been merged upstream: + - 600-Revert-dix-deduplicate-callers-of-DeliverDeviceEvent.patch + - 601-Store-window-pointer-in-touch-listener-record.patch + - 602-Factor-out-TouchEnd-generation-and-delivery.patch + - 603-Export-TouchEventRejected-as-TouchRejected.patch + - 604-Move-AllowTouch-to-dix-touch.c-and-rename-to-TouchAc.patch + - 605-Check-for-proper-window-ID-when-processing-touch-all.patch + - 606-Implement-early-touch-reject.patch + - 607-Implement-touch-early-accept.patch + - 608-dix-fix-an-out-of-memory-crash.patch + - 609-Xi-handle-new-XIAllowEvents-request-in-inputproto-2..patch + - 610-Fix-scrolling.patch + - 611-Fix-touch-punt-crash.patch + - 612-Fix-vcp-touches-corruption.patch + - 613-Keep-vcp-touch-class.patch + * Fix indirect touch grab handling (LP: #929408) + - Add temporary patch 501_touch_accept_end.patch + - Add temporary patch 502_indirect_touch_window_set.patch + + -- Chase Douglas Wed, 07 Mar 2012 15:36:20 -0800 + +xorg-server (2:1.11.4-0ubuntu4) precise; urgency=low + + * debian/patches/500_pointer_barrier_thresholds.diff: + - Make the velocity calculation more robust on screen edges. Fixes reveal + behaviour on nVidia 295.20 driver, which now clamps the pointer to the + visible screen area. (LP: #937792) + + -- Christopher James Halse Rogers Tue, 21 Feb 2012 17:04:41 +1100 + +xorg-server (2:1.11.4-0ubuntu3) precise; urgency=low + + * Fix touch class memory corruption + - Add 612-Fix-vcp-touches-corruption.patch + - Add 613-Keep-vcp-touch-class.patch + + -- Chase Douglas Mon, 13 Feb 2012 15:54:04 -0800 + +xorg-server (2:1.11.4-0ubuntu2) precise; urgency=low + + * Fix crash when punting a touch to a non-existent owner + - Add 611-Fix-touch-punt-crash.patch + + -- Chase Douglas Mon, 13 Feb 2012 12:10:02 -0800 + +xorg-server (2:1.11.4-0ubuntu1) precise; urgency=low + + [ Chase Douglas ] + * Allow for non-root config paths so xorg-gtest can be run without root + - Add 225_non-root_config_paths.patch backported from upstream + + [ Alberto Milone] + * debian/patches/226_fall_back_to_autoconfiguration.patch: + - Fall back to autoconfiguration for graphics drivers in some cases + instead of letting X fail when configuration files are available. + + [ Chase Douglas ] + * Update to 1.11.99.902 input stack + * Update to 1.11.4 for everything else + * Drop input patches that have been merged upstream: + - 220_dont_scale_indirect.patch + - 221_pointer_motion_update_fix.patch + - 222_touch_valuators_absolute.patch + - 223_indirect_touch_x_y_valuators.patch + * Add reviewed input patches that have not been merged upstream yet: + - 600-Revert-dix-deduplicate-callers-of-DeliverDeviceEvent.patch + - 601-Store-window-pointer-in-touch-listener-record.patch + - 602-Factor-out-TouchEnd-generation-and-delivery.patch + - 603-Export-TouchEventRejected-as-TouchRejected.patch + - 604-Move-AllowTouch-to-dix-touch.c-and-rename-to-TouchAc.patch + - 605-Check-for-proper-window-ID-when-processing-touch-all.patch + - 606-Implement-early-touch-reject.patch + - 607-Implement-touch-early-accept.patch + - 608-dix-fix-an-out-of-memory-crash.patch + - 609-Xi-handle-new-XIAllowEvents-request-in-inputproto-2..patch + - 610-Fix-scrolling.patch (LP: #925785) + * Bump deps on x11proto-input-dev to 2.1.99.6 + + -- Chase Douglas Fri, 10 Feb 2012 16:27:25 -0800 + +xorg-server (2:1.11.3-0ubuntu10) precise; urgency=low + + * Drop 214_glx_dri_searchdirs.patch, drisearchdirs is no longer + exported in mesa's dri.pc because of multiarch and the only consumer + (dri-alternates) is no longer used. + + -- Robert Hooker Thu, 02 Feb 2012 12:08:55 -0500 + +xorg-server (2:1.11.3-0ubuntu9) precise; urgency=low + + * debian/patches/500_pointer_barrier_thresholds.diff: + - Implement proposed XFIXES 6.0 protocol. This protocol is subject to + change, use at own risk! + * debian/control: + - Bump build-dep on x11proto-fixes to pick up new protocol definition + + -- Christopher James Halse Rogers Fri, 27 Jan 2012 20:05:42 +1100 + +xorg-server (2:1.11.3-0ubuntu8) precise; urgency=low + + * debian/patches/224_return_BadWindow_not_BadMatch.diff: + - Fix the error values of a whole slew of window-related calls. + Fixes some gnome-settings-daemon aborts in XLib (LP: #903973) + + -- Christopher James Halse Rogers Mon, 23 Jan 2012 16:09:29 +1100 + +xorg-server (2:1.11.3-0ubuntu7) precise; urgency=low + + * Fixes for relative devices + - Add 220_dont_scale_indirect.patch + - Add 221_pointer_motion_update_fix.patch + - Add 222_touch_valuators_absolute.patch + - Add 223_indirect_touch_x_y_valuators.patch + + -- Chase Douglas Thu, 19 Jan 2012 16:23:28 -0800 + +xorg-server (2:1.11.3-0ubuntu6) precise; urgency=low + + * Bump Build-Depends on x11proto-input-dev to 2.1.99.5 + + -- Chase Douglas Tue, 17 Jan 2012 22:22:57 +0100 + +xorg-server (2:1.11.3-0ubuntu5) precise; urgency=low + + * Add Breaks clause for XInput changes + - qt4-x11 < 4:4.8.0-1ubuntu2 (crashes due to XI ABI change) + - utouch-geis < 2.2.3 (infinite loop if utouch XCB backend is unavailable) + - utouch-frame < 2.1.0 (crashes due to XI ABI change) + - unity < 5.0.0 (crashes if utouch stack is unavailable) + + -- Chase Douglas Tue, 17 Jan 2012 22:03:35 +0100 + +xorg-server (2:1.11.3-0ubuntu4) precise; urgency=low + + * Merge in input changes from upstream master through commit 954bb99 + * Remove temporary patch 220_grab_event_time.patch + + -- Chase Douglas Tue, 17 Jan 2012 19:52:04 +0100 + +xorg-server (2:1.11.3-0ubuntu3) precise; urgency=low + + * Add temporary patch for fixing grab time bug + - Add 220_grab_event_time.patch + + -- Chase Douglas Wed, 11 Jan 2012 07:41:04 -0800 + +xorg-server (2:1.11.3-0ubuntu2) precise; urgency=low + + * Merge in input changes from upstream master through commit 8722ad6 + * Remove temporary patch 220_test-loop.patch, merged upstream + + -- Chase Douglas Tue, 10 Jan 2012 10:48:31 +0100 + +xorg-server (2:1.11.3-0ubuntu1) precise; urgency=low + + * New upstream bugfix release + * Merge in input changes from upstream master through commit e7df42a + * Bump input ABI + * Bump x11proto-input-dev build dependency version + * Add temporary patch for fixing a test case loop + - Add 220_test-loop.patch + + -- Chase Douglas Thu, 22 Dec 2011 12:11:39 -0800 + +xorg-server (2:1.11.2.902-1ubuntu1) precise; urgency=low + + * Drop prototype XI multitouch patches + * Merge in input changes from upstream master through commit 7da7aa9 + * Bump input ABI + * Refresh patches + - Drop 210_pixman_null_ptr_check.patch, merged upstream + + -- Chase Douglas Wed, 14 Dec 2011 16:06:37 -0800 + +xorg-server (2:1.11.2.902-1) unstable; urgency=low + + [ Julien Cristau ] + * New upstream release candidate (1.11.3 RC2) + + -- Cyril Brulebois Sat, 10 Dec 2011 22:36:42 +0100 + +xorg-server (2:1.11.2.901-1) unstable; urgency=low + + * New upstream release candidate (1.11.3 RC1): + - As usual: Fixes for various crashes and correctness issues. + - In particular: Fix for crash when starting a game (in wine) twice + (Closes: #637448). + - Also: Fix crashes with server regeneration (Closes: #649420). + * Add some lintian overrides: + - xserver-xorg-core: breaks-without-version against virtual packages + is perfectly OK. + * Don't forget to ship xorg.conf.d(5) in xserver-xorg-core. + + -- Cyril Brulebois Tue, 29 Nov 2011 17:04:09 +0100 + +xorg-server (2:1.11.1.902-1) unstable; urgency=low + + * New upstream release candidate (1.11.2 RC2): + - Fixes for various crashes and correctness issues. + + -- Cyril Brulebois Wed, 02 Nov 2011 11:10:03 +0100 + +xorg-server (2:1.11.1.901-2) unstable; urgency=high + + * Merge from upstream to get CVEs fixed: + - Fix CVE-2011-4028: File disclosure vulnerability. + - Fix CVE-2011-4029: File permission change vulnerability. + * Set urgency to “high” accordingly. + + -- Cyril Brulebois Thu, 20 Oct 2011 15:04:53 +0200 + +xorg-server (2:1.11.1.901-1) unstable; urgency=low + + * New upstream release candidate (1.11.2 RC1) + + Disable check of double-aligned in test/input.c on Renesas SH + (closes: #636673) + * Use dpkg-buildflags to enable hardening with recent dpkg. + * Enable PIE with DEB_BUILD_MAINT_OPTIONS, but add -Bsymbolic to LDFLAGS to + reduce performance loss from PIE. + * Pass --disable-silent-rules to configure. + * Drop dh_testroot from clean target. + * Add dummy build-{arch,indep} targets depending on build. + + -- Julien Cristau Sat, 15 Oct 2011 19:05:41 +0200 + +xorg-server (2:1.11.1-1) unstable; urgency=high + + [ Cyril Brulebois ] + * Bump glproto dependency for xserver-xorg-dev (Closes: #639651). + * Set urgency to “high” since there were no issues other than the libwfb + one (see below) in the last 4 weeks. + + [ Julien Cristau ] + * New upstream bugfix release + - belatedly bump extension ABI major + - add missing fbFoo → wfbFoo renames for libwfb.so, fixing issues with the + nvidia driver (closes: #641344) + + -- Cyril Brulebois Sat, 24 Sep 2011 11:23:17 +0200 + +xorg-server (2:1.11.0-1ubuntu1~prep1) oneiric; urgency=low + + * Merge from Debian experimental. Remaining Ubuntu changes + - Fill in later + * Drop all XI2.1 multitouch patches, pending Chase's rework. + * 217_revert_bgnonevisitwindow.patch: + * 219_fedora-pointer-barriers.diff: + - Drop; included in the new upstream release. + + -- Christopher James Halse Rogers Sat, 10 Sep 2011 21:26:49 -0700 + +xorg-server (2:1.11.0-1) unstable; urgency=low + + [ Julien Cristau ] + * Make xvfb, xnest, xserver-xephyr and xserver-xfbdev provide the xserver + virtual package again. + + [ Cyril Brulebois ] + * New upstream release: + - Fix assertion failure when calling dixSetPrivate (Closes: #632549). + Thanks, Mohammed Sameer! + - Fix memcpy abuse in the fb layer (Closes: #626682). + + -- Cyril Brulebois Sun, 28 Aug 2011 12:53:06 +0200 + +xorg-server (2:1.10.99.901+git20110731-1) experimental; urgency=low + + [ Cyril Brulebois ] + * New upstream release candidate. + * Bump serverminver, as well as input and video ABI. + * Adapt 15-nouveau.diff to cope with the glxdricommon-ification of + GLX probing. Nouveau users might still see an error (EE) mentioning + the fallback to software rendering. + * Bump pixman build-dep/dep to 0.21.8. + * Bump xutils-dev build-dep for new macros. + * Drop libglib2.0-dev build-dep, no longer needed for unit tests. + * Bump x11proto-fixes-dev build-dep for pointer barriers support. + + [ Julien Cristau ] + * Update to git HEAD. + + DIX: Set backgroundState correctly for root window (Closes: #632134) + * Bump xproto, dri2proto and glproto build-dependencies. + * Merge packaging changes from the 1.10.x branch: + + Bump libgl1-mesa-dri versioned Recommends to 7.10.2-4, to lower the + odds of having a server built against multiarched mesa, installed + along a pre-multiarch mesa. The Breaks in mesa packages take care of + the other way round already. + + And since the server's binNMU managed to migrate to testing way too + early, add a Breaks against pre-multiarch libgl1-mesa-dri and + libgl1-mesa-dri-experimental. + + Bump Standards-Version to 3.9.2 (no changes). + + Add Breaks on drivers abandoned between lenny and squeeze. This helps + apt decide to remove them instead of removing all of X. Thanks, David + Kalnischkies! + * Drop obsolete 20-workaround-36986.diff. + * Fix patch stamp dependency. + + -- Julien Cristau Sun, 31 Jul 2011 22:15:07 +0200 + +xorg-server (2:1.10.4-1ubuntu1) oneiric; urgency=low + + [ Christopher James Halse Rogers ] + * Drop i8xx-disablement patch. 2.6.39 and later kernels contain a patch + which alledgedly fixes the cache-incoherency problems. (LP: #817814) + + [ Ricardo Salveti de Araujo ] + * debian/patches/112_armel-pvr-drv.patch: + - Include support for the pvr driver available on OMAP 4 (LP: #828494) + + [ Timo Aaltonen ] + * Merge from Debian unstable. + - Fixes Xephyr assert failure in dixGetPrivateAddr (LP: #821090) + * debian/rules: Modify the patch stampdir creation. + * Update patch 500_xi2.1.patch to apply. + * Refresh patches. + * debian/rules: Add PATH for the xvfb-run check, otherwise Xvfb is not found. + * debian/rules: Shift the xvfb-run test to be run later, to ensure that the + binaries are installed. + + [ Bryce Harrington ] + * debian/rules: Add check target invoking xvfb-run to test that it works + * debian/control: Add build dependency on xauth, required by xvfb-run + + [ Chase Douglas ] + * Add fixes for touch grab handling, courtesy of Carlos Garnacho + - 505_Xi_ensure_replayed_touch_events_have_devices.patch + - 506_Xi_ensure_touch_events_update_currentTime.patch + - 507_dix_Ensure_touch_events_are_delivered_to_next_client.patch + + -- Timo Aaltonen Fri, 09 Sep 2011 14:13:07 +0300 + +xorg-server (2:1.10.4-1) unstable; urgency=low + + [ Timo Aaltonen ] + * New upstream release. + + -- Cyril Brulebois Wed, 24 Aug 2011 10:44:42 +0200 + +xorg-server (2:1.10.3-1) unstable; urgency=medium + + [ Cyril Brulebois ] + * New upstream release (with just a version bump). + * Remove the Replaces: xdmx from xdmx-tools, that was before lenny. + * Add a Breaks: libgl1-mesa-dri-no-multiarch, to handle upgrades from + squeeze-backports (without multiarch) to wheezy (with multiarch). + * Set urgency to “medium” to speed things up. Migration to testing is + a prerequisite for squeeze backports. + + [ Julien Cristau ] + * Merge packaging changes lost from the 1.7 (squeeze) branch: + + Add Breaks on drivers abandoned between lenny and squeeze. This helps + apt decide to remove them instead of removing all of X. Thanks, David + Kalnischkies! + + Set default xkb rules to evdev on linux, to work around a wrong default in + configure.ac and an Xorg issue where it reverts to the default on reset. + Thanks to Bastian Blank for the report. + + -- Cyril Brulebois Sun, 07 Aug 2011 19:35:07 +0200 + +xorg-server (2:1.10.2.902-1ubuntu3) oneiric; urgency=low + + * debian/patches/220_xi21_always_deliver_raw_events.diff: + - Backport patch from the mailing list to deliver raw events regardless of + grab state. Bon appétit, DX! + + -- Christopher James Halse Rogers Mon, 11 Jul 2011 10:03:26 +1000 + +xorg-server (2:1.10.2.902-1ubuntu2) oneiric; urgency=low + + [ Bryce Harrington ] + * rules: patch needs to depend on stampdir, else it doesn't get created, + and 'debian/rules patch' malfunctions. + + [ Chase Douglas ] + * Fix event handling when neither X nor Y coordinates are set (LP: #806256) + - Added 504_fix_no_coords.patch + + [ Christopher James Halse Rogers ] + * rules: Add both /usr/lib/xorg/extra-modules and + /usr/lib/$MULTIARCH/xorg/extra-modules for extra modules. + Fixes GLX for the proprietary drivers after a mesa upgrade (LP: #807209) + + -- Christopher James Halse Rogers Fri, 08 Jul 2011 13:16:59 +1000 + +xorg-server (2:1.10.2.902-1ubuntu1) oneiric; urgency=low + + * Merge from Debian unstable. (LP: #441653) + - Update 500_xi2.1.patch to apply. + - Drop patch 218_randr-check-rotated-virtual-size-limits-correctly.diff, + fixed upstream. + * Update the crtc confinement patch with one that should work, with + further fixes from upstream. (LP: #389519) + * Dropped a bunch of old Breaks from xserver-xorg-core. + + -- Timo Aaltonen Tue, 05 Jul 2011 16:22:23 +0300 + +xorg-server (2:1.10.2.902-1) unstable; urgency=low + + * New upstream release (1.10.3 rc2): + - DIX: Set backgroundState correctly for root window (Closes: #632134). + * Drop 20-workaround-36986.diff, fixed upstream. + * Bump Standards-Version to 3.9.2 (no changes). + + -- Cyril Brulebois Sat, 02 Jul 2011 11:58:58 +0200 + +xorg-server (2:1.10.2-2) unstable; urgency=low + + * Bump libgl1-mesa-dri versioned Recommends to 7.10.2-4, to lower the + odds of having a server built against multiarched mesa, installed + along a pre-multiarch mesa. The Breaks in mesa packages take care of + the other way round already. + * And since the server's binNMU managed to migrate to testing way too + early, add a Breaks against pre-multiarch libgl1-mesa-dri and + libgl1-mesa-dri-experimental. + + -- Cyril Brulebois Fri, 17 Jun 2011 18:09:36 +0200 + +xorg-server (2:1.10.2-1ubuntu1) oneiric; urgency=low + + [ Timo Aaltonen ] + * Merge from Debian unstable, remaining changes: + - rules: + + Disable SELinux, libaudit-dev is not in main yet. (LP #406226) + + Add --with-extra-module-dir to support GL alternatives. + + Mention Ubuntu support in builderstring rather than package uploader's + email address. + + Enable multitouch gestures. + - control: + + Xvfb depends on xauth, x11-xkb-utils, recommends libgl1-mesa-dri. + (LP #500102) + + Add breaks for incompatible drivers. (LP #614993) + + Drop libaudit-dev from build-deps. + + Build-depend on newer mesa to pick up DRI search paths variable. + + Bump dependency on x11proto-input-dev for Xi 2.1 + + Drop linux-any specifier to make pbuilder less narky. + - local/xvfb-run*: Add correct docs about error codes. (LP #328205) + - debian/patches: + + 100_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 105_nvidia_fglrx_autodetect.patch: + Load proprietary drivers automatically when installed. + + 109_fix-swcursor-crash.patch: + Avoid dereferencing null pointer while reloading cursors during + resume. (LP #371405) + + 111_armel-drv-fallbacks.patch: + Add support for armel driver fallbacks. + + 122_xext_fix_card32_overflow_in_xauth.patch: + Fix server crash when “xauth generate” is called with large timeout. + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP #459512) + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + Cache keyboard settings. + + 191-Xorg-add-an-extra-module-path.patch: + Add support for the alternative module path. + + 198_nohwaccess.patch: + Adds a -nohwaccess argument to make X not access the hardware + ports directly. + + 200_randr-null.patch: + Clarify a pointer initialization. + + 206_intel_8xx_default_to_fbdev.patch: + Makes 8xx class intel GPUs default to fbdev for stability. (LP #633593) + + 208_switch_on_release.diff: + Switch keyboard layouts on key-release rather than key-press + (LP #36812) + + 209_add_legacy_bgnone_option.patch: + Add -nr as a synonym for -background none until all ?DM are updated for + the new option. + + 210_pixman_null_ptr_check.patch: + Catch NULL pointer access after pixman_image_create_bits() failure + (LP #705078) + + 214_glx_dri_searchdirs.patch: + Search in same paths as mesa for DRI drivers for AIGLX so we can handle + UMS fallback for radeon gracefully. + + 217_revert_bgnonevisitwindow.patch: + Revert a commit that causes brief graphical corruption. (LP: 726807) + + 218_randr-check-rotated-virtual-size-limits-correctly.diff: + Fix rotation with nvidia driver. (LP: 740933) + + 500_xi2.1.patch, + 501_xf86CoordinatesToWindow.patch, + 502_gestures-extension.patch: + Add Xi 2.1 and Gesture extension support. + + 503_fix_masked_transformed_valuators.patch: + Fix masked transformed valuator handling (LP #774938) + * Drop patch 215_glx_drawable_refcounting.diff, similar fix included + upstream. + * Drop patch 121_only_switch_vt_when_active.diff, doesn't seem to + work anymore. + * videoabiver, inputabiver, xserver-xorg-dev.install: + Drop changes that are obsolete post-natty. + * Add 219_fedora-pointer-barrier.diff: + Pointer barrier and cursor confinement patch backported to 1.10. + + [ Christopher James Halse Rogers ] + * debian/control: + Bump mesa-common-dev build-dep to pick up multiarch DRI paths. + + -- Christopher James Halse Rogers Wed, 15 Jun 2011 10:51:18 +1000 + +xorg-server (2:1.10.2-1) unstable; urgency=low + + * New upstream release. + * Add 20-workaround-36986.diff to avoid test failures on *i386. + * On GNU/kFreeBSD, enable HAL support for the main build, but disable it + for the udeb build, thanks to Robert Millan (Closes: #596586). + + -- Cyril Brulebois Mon, 30 May 2011 11:37:37 +0200 + +xorg-server (2:1.10.1.901-1) experimental; urgency=low + + * New upstream release (1.10.2 rc1): + - Comes with some Xi fixes. + - Comes with many GLX fixes. + + -- Cyril Brulebois Sat, 07 May 2011 13:27:28 +0200 + +xorg-server (2:1.10.1-2) unstable; urgency=low + + * Build xserver-xorg-core-udeb on hurd-i386. Thanks, Samuel Thibault! + * Upload to unstable. + + -- Julien Cristau Thu, 28 Apr 2011 13:28:58 +0200 + +xorg-server (2:1.10.1-1ubuntu3) oneiric; urgency=low + + * Add 218_randr-check-rotated-virtual-size-limits-correctly.diff + - Fix rotation with nvidia driver. (LP: #740933) + + -- Timo Aaltonen Fri, 20 May 2011 00:07:11 +0300 + +xorg-server (2:1.10.1-1ubuntu2) oneiric; urgency=low + + * Fix masked transformed valuator handling (LP: #774938) + - Added debian/patches/503_fix_masked_transformed_valuators.patch + + -- Bryce Harrington Tue, 17 May 2011 14:44:58 -0700 + +xorg-server (2:1.10.1-1ubuntu1) natty; urgency=low + + * Merge from Debian experimental (LP: #757972) + + -- Timo Aaltonen Tue, 19 Apr 2011 16:12:14 +0300 + +xorg-server (2:1.10.1-1) experimental; urgency=low + + * New upstream release. + + -- Cyril Brulebois Tue, 19 Apr 2011 03:08:08 +0200 + +xorg-server (2:1.10.0.902-1ubuntu1) natty; urgency=low + + * Merge from Debian experimental. + - dropped patches, included upstream: + 213_xichangehierarchy-check-oom.patch + 216_fix_sdksyms_build.diff, included upstream. + 218_getValuatorEvents_cleanup.patch + 219_xi1_handle_noncontinuous_valuator_data.patch + + -- Timo Aaltonen Mon, 11 Apr 2011 09:51:56 +0300 + +xorg-server (2:1.10.0.902-1) experimental; urgency=low + + * New upstream release (1.10.1 rc2). + + -- Cyril Brulebois Sat, 09 Apr 2011 04:18:28 +0200 + +xorg-server (2:1.10.0.901-1) experimental; urgency=low + + * New upstream release (1.10.1 rc1). + * Relax build-dep and dep on x11proto-randr-dev since the XRandR 1.4 + bits were finally reverted upstream. + * Remove patch: 16-construct-paths-in-doxygen.conf.diff (merged + upstream). + * Pass --enable-xcsecurity to the main build to restore the XC-SECURITY + extension, thanks to Stefan Fritsch's report (Closes: #599657). + + -- Cyril Brulebois Wed, 30 Mar 2011 02:22:56 +0200 + +xorg-server (2:1.10.0-0ubuntu3) natty; urgency=low + + [ Bryce Harrington ] + * patches/111_armel-drv-fallbacks.patch: Always fallback to -fbdev, + not just when no other X driver matches. (Thanks jcristau) + + [ Chase Douglas ] + * Fix jumpy cursor in XI 1.x applications. + (LP: #736500) + - Added 218_getValuatorEvents_cleanup.patch + - Added 219_xi1_handle_noncontinuous_valuator_data.patch + + -- Bryce Harrington Thu, 31 Mar 2011 23:58:07 -0700 + +xorg-server (2:1.10.0-0ubuntu2) natty; urgency=low + + [ Chase Douglas ] + * patches/500_xi2.1.patch: Process ownership properly when activating an + async passive grab. + (LP: #733483) + + [ Bryce Harrington ] + * 217_revert_bgnonevisitwindow.patch: Cherrypick from upstream. Drops + recent change that inhibits drawing backfill for non-bg-None windows. + This causes a regression on -ati (at least) where menus and other + windows display graphical corruption briefly. + (LP: #726807) + + -- Bryce Harrington Thu, 24 Mar 2011 15:27:40 -0700 + +xorg-server (2:1.10.0-0ubuntu1) natty; urgency=low + + * Update to new upstream final release. + + Drop 16-construct-paths-in-doxygen.conf.diff; included in new upstream. + * debian/patches/216_fix_sdksyms_build.diff: + + Cherry-pick from 1.10 branch, fixing the stale sdksyms.c file picked up + in the udeb build, causing the udeb build to fail with missing symbols. + * Merge from unreleased Debian experimental. Remaining Ubuntu changes: + - rules: + + Disable SELinux, libaudit-dev is not in main yet. (LP #406226) + + Enable xcsecurity. (LP #247537) + + Add --with-extra-module-dir to support GL alternatives. + + Mention Ubuntu support in builderstring rather than package uploader's + email address. + - control: + + Xvfb depends on xauth, x11-xkb-utils. (LP #500102) + + Add breaks for incompatible drivers. (LP #614993) + + Drop libaudit-dev from build-deps. + + Build-depend on newer mesa to pick up DRI search paths variable. + + Bump dependency on x11proto-input-dev for Xi 2.1 + + Drop linux-any specifier to make pbuilder less narky. + + Bump build-depends on mesa-common-dev to pick up dri.pc DRI search + paths change for 214_glx_dri_searchdirs.patch + - local/xvfb-run*: Add correct docs about error codes. (LP #328205) + - debian/patches: + + 100_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 105_nvidia_fglrx_autodetect.patch: + Load proprietary drivers automatically when installed. + + 109_fix-swcursor-crash.patch: + Avoid dereferencing null pointer while reloading cursors during + resume. (LP #371405) + + 111_armel-drv-fallbacks.patch: + Add support for armel driver fallbacks. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 122_xext_fix_card32_overflow_in_xauth.patch: + Fix server crash when “xauth generate” is called with large timeout. + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP #459512) + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + + 191-Xorg-add-an-extra-module-path.patch: + Add support for the alternatives module path. + + 198_nohwaccess.patch: + Adds a -nohwaccess argument to make X not access the hardware + ports directly. + + 200_randr-null.patch: + Clarify a pointer initialization. + + 206_intel_8xx_default_to_fbdev.patch: + Makes 8xx class intel GPUs default to fbdev for stability. (LP #633593) + + 208_switch_on_release.diff: + Switch keyboard layouts on key-release rather than key-press + (LP #36812) + + 209_add_legacy_bgnone_option.patch: + Add -nr as a synonym for -background none until all ?DM are updated for + the new option. + + 210_pixman_null_ptr_check.patch: + Catch NULL pointer access after pixman_image_create_bits() failure + (LP #705078) + + 213_xichangehierarchy-check-oom.patch: + Add NULL pointer check for out-of-memory conditions. (LP #720445) + + 214_glx_dri_searchdirs.patch: + Search in same paths as mesa for DRI drivers for AIGLX so we can handle + UMS fallback for radeon gracefully. + + 215_glx_drawable_refcounting.diff: + Prevents segfault on logout and server regenerate, and possibly other + times. (LP #711422) + + 500_xi2.1.patch, + 501_xf86CoordinatesToWindow.patch, + 502_gestures-extension.patch: + Add Xi 2.1 and Gesture extension support. + * debian/serverminver: + - Bump to 1.10.0-0ubuntu1~ for Xi 2.1 ABI + * New upstream release fixes crash in Record, trigerred by x11vnc + (LP: #525066) + * Refresh 500_xi2.1.patch for new upstream version + * debian/videoabiver: + - Bump to 10 for XRandR 1.4 revert. + + -- Cyril Brulebois Wed, 30 Mar 2011 02:22:56 +0200 + + +xorg-server (2:1.9.99.903-1) experimental; urgency=low + + * New upstream release candidate (1.10 rc3). + * Remove patch: 17-fix-ftbfs-on-sparc.diff (merged upstream). + * Remove patch: 20-update-gpu-pitch.diff (merged upstream). + * Refresh patch: 07-xfree86-fix-build-with-xv-disabled.diff + * Replace patch fixing out-of-tree-build: + - 16-oot-build.diff (dirty local hack). + + 16-construct-paths-in-doxygen.conf.diff (from upstream, + without the gitignore hunk to get patching working). + * Bump video ABI version, and serverminver accordingly. + + -- Cyril Brulebois Fri, 25 Feb 2011 15:22:39 +0100 + +xorg-server (2:1.9.99.902-3) experimental; urgency=low + + * Merge from master up to 93a7399370. + * New patch: 17-fix-ftbfs-on-sparc.diff; let's try it for real before + asking for its being merged upstream. + * Refresh all patches. + + -- Cyril Brulebois Wed, 23 Feb 2011 13:36:13 +0100 + +xorg-server (2:1.9.99.902-2ubuntu2) natty; urgency=low + + [ Timo Aaltonen ] + * Remove 169_mipointer_nullptr_checks.patch, fixed in another way + upstream since 1.6.1.901. + + [ Chase Douglas ] + * Cancel touch clients if emulated button press is delivered. + (LP: #725191) + * Check slave device touch selection mask during implicit grab. + (LP: #725241) + * Cancel slave touch selections when attached to master device. + (LP: #723904) + * Check for touch selections only when there are active clients. + (LP: #723900) + * Prevent pointer motion when more than one touch on touchpad. + (LP: #730881) + + [ Bryce Harrington ] + * Drop specification for linux-any. Breaks pbuilder test builds. + + -- Chase Douglas Mon, 07 Mar 2011 14:28:02 -0500 + +xorg-server (2:1.9.99.902-2ubuntu1) natty; urgency=low + + [ Christopher James Halse Rogers ] + * Merge from Debian experimental. Remaining Ubuntu changes: + - rules: + + Disable SELinux, libaudit-dev is not in main yet. (LP #406226) + + Enable xcsecurity. (LP #247537) + + Add --with-extra-module-dir to support GL alternatives. + + Mention Ubuntu support in builderstring rather than package uploader's + email address. + - control: + + Xvfb depends on xauth, x11-xkb-utils. (LP #500102) + + Add breaks for incompatible drivers. (LP #614993) + + Drop libaudit-dev from build-deps. + + Build-depend on newer mesa to pick up DRI search paths variable. + - local/xvfb-run*: Add correct docs about error codes. (LP #328205) + - debian/patches: + + 100_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 105_nvidia_fglrx_autodetect.patch: + Load proprietary drivers automatically when installed. + + 109_fix-swcursor-crash.patch: + Avoid dereferencing null pointer while reloading cursors during + resume. (LP: #371405) + + 111_armel-drv-fallbacks.patch: + Add support for armel driver fallbacks. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 122_xext_fix_card32_overflow_in_xauth.patch: + Fix server crash when “xauth generate” is called with large timeout. + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 169_mipointer_nullptr_checks.patch, + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP: #459512) + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + + 191-Xorg-add-an-extra-module-path.patch: + Add support for the alternatives module path. + + 198_nohwaccess.patch: + Adds a -nohwaccess argument to make X not access the hardware + ports directly. + + 200_randr-null.patch: + Clarify a pointer initialization. + + 206_intel_8xx_default_to_fbdev.patch: + Makes 8xx class intel GPUs default to fbdev for stability. (LP: #633593) + + 208_switch_on_release.diff: + Switch keyboard layouts on key-release rather than key-press + (LP #36812) + + 209_add_legacy_bgnone_option.patch: + Add -nr as a synonym for -background none until all ?DM are updated for + the new option. + + 210_pixman_null_ptr_check.patch: + Catch NULL pointer access after pixman_image_create_bits() failure + (LP #705078) + + 213_xichangehierarchy-check-oom.patch: + Add NULL pointer check for out-of-memory conditions. (LP #720445) + + 214_glx_dri_searchdirs.patch: + Search in same paths as mesa for DRI drivers for AIGLX so we can handle + UMS fallback for radeon gracefully. + * 211_glx_fix_bindtextimageext_length_check.patch: + * 212_fix_request_length_check_for_createglxpbuffersgix.patch: + - Drop; these cherry-picks are included in 1.10RC2 + * 214_glx_dri_searchdirs.patch: + - Fix dlclose/free snafu. (LP: #722563) + - Fix nouveau check to downgrade missing DRI error messages to info. + We don't support nouveau's 3D, so let's not complain too strenuously + when it's not installed. + * 215_glx_drawable_refcounting.diff: + - Refcount GLXDrawables to avoid use-after-free crashes. Patch from + xorg-devel mailing list. Prevents segfault on logout and server + regenerate, and possibly other times. (LP: #711422) + * debian/inputabiver, + debian/videoabiver, + debian/xserver-xorg-dev.install + - Temporarily re-add these to xserver-xorg-dev so we don't need to merge + all the driver changes from Debian en masse. These should be dropped + once all drivers have been merged from Debian, and certainly in Natty+1. + * debian/serverminver: + - Include 2ubuntu1 string; Xi 2.1 bumps the minor input ABI, so drivers + built against it need the Xi 2.1 patched server. + + [ Timo Aaltonen ] + * debian/patches/216_dix-valuator-count-of-0-is-valid.diff: + - For all but motion and proximity events, having no valuators is ok. + Regression from 1.9, keyboard events are not converted to protocol + events. (LP: #714696) + + [ Chase Douglas ] + * Add in preliminary xi2.1 support + - Added 500_xi2.1.patch + - Moved 202_xf86CoordinationsToWindows.patch to + 501_xf86CoordinatesToWindow.patch + - Moved 203_gestures-extension.patch to 502_gestures-extension.patch + - Bump dependency on x11proto-input for xi 2.1 + + -- Christopher James Halse Rogers Wed, 23 Feb 2011 09:40:07 +1100 + +xorg-server (2:1.9.99.902-2) experimental; urgency=low + + * Bump dependency on x11proto-randr-dev, needed since xorg-server.pc + pulls a newer randrproto version. + * Merge from debian-unstable (picking packaging updates from 2:1.9.4-3). + * Mention some basic checks to perform when updating to a new upstream + release, in README.source: ABI bumps and SDK_REQUIRED_MODULES updates. + * Accordingly: + - Bump the x11proto-xext-dev dependency. + - Don't bump the x11proto-kb-dev dependency (even etch had a + sufficient version). + + -- Cyril Brulebois Sun, 20 Feb 2011 07:02:20 +0100 + +xorg-server (2:1.9.99.902-1) experimental; urgency=low + + [ Christopher James Halse Rogers ] + * New upstream release (1.10 rc1) + * Drop 16-xaa-fbcomposite-fix-negative-size.diff, the mod macro that this + patch fixes is no longer used. + * debian/control: + - Bump x11proto-randr-dev and x11proto-xext-dev build-deps to 1.3.99 and + 7.1.99 for new XRandR and XSync extension protocols. + + [ Julien Cristau ] + * Bump serverminver and ABI versions. + + [ Cyril Brulebois ] + * New upstream release (1.10 rc2). + * bug script: Report libGL-related diversions. + * Bump serverminver again, since ABI_XINPUT_VERSION was bumped from 12.0 + to 12.2. + * Update debian/copyright from upstream COPYING. + * Add patch to work around out-of-tree issues: 16-oot-build.diff + + -- Cyril Brulebois Sat, 19 Feb 2011 15:29:54 +0100 + +xorg-server (2:1.9.99.901+git20110131.be3be758-0ubuntu6) natty; urgency=low + + * debian/patches/214_glx_dri_searchdirs.patch: + - Search for DRI drivers for AIGLX in the same set of directories as mesa. + Allows us to fall back to the classic radeon drivers when KMS is not + available. + * debian/rules: + - --disable-builddocs → --disable-devel-docs to match upstream rename. + Makes local builds faster and less prone to doxygen errors. + * debian/control: + - Bump build-depends on mesa to pick up new drisearchdirs variable in + dri.pc + + -- Christopher James Halse Rogers Fri, 18 Feb 2011 17:03:46 +1100 + +xorg-server (2:1.9.99.901+git20110131.be3be758-0ubuntu5) natty; urgency=low + + * Add 213_xichangehierarchy-check-oom.patch: Another NULL pointer check + for out-of-memory conditions, this time leading to a segfault in an + unchecked calloc in XISendDeviceHierarchyEvent(). + (LP: #720445) + + -- Bryce Harrington Wed, 16 Feb 2011 16:46:35 -0800 + +xorg-server (2:1.9.99.901+git20110131.be3be758-0ubuntu4) natty; urgency=low + + * Add 211_glx_fix_bindtextimageext_length_check.patch, + 212_fix_request_length_check_for_createglxpbuffersgix.patch: + - Correct wrong request size match for xGLXCreateGLXPbufferSGIXReq. + This can result in some invalid BadLength errors. + (LP: #714280) + + -- Bryce Harrington Mon, 14 Feb 2011 12:07:45 -0800 + +xorg-server (2:1.9.99.901+git20110131.be3be758-0ubuntu3) natty; urgency=low + + * Restore 208_switch_on_release.diff - the patch does not appear to be + upstream actually. Users confirm the fix regressed without it. + (LP: #711842) + * Add 210_pixman_null_ptr_check.patch: pixman_image_create_bits() can + return NULL under a variety of circumstances, thus needs checked + before dereferencing it in the pixman_image_set_has_client_clip() + call. + (LP: #705078, deb: 596155, fdo: 28882) + + -- Bryce Harrington Thu, 03 Feb 2011 22:42:52 -0800 + +xorg-server (2:1.9.99.901+git20110131.be3be758-0ubuntu1) natty; urgency=low + + * Merge from (unreleased) debian-experimental. Remaining Ubuntu changes: + - rules: + + Disable SELinux, libaudit-dev is not in main yet. (LP: #406226) + + Enable xcsecurity. (LP: #247537) + + Add --with-extra-module-dir to support GL alternatives. + - control: + + Xvfb depends on xauth, x11-xkb-utils. (LP: #500102) + + Add breaks for incompatible drivers. (LP: #614993) + + Drop libaudit-dev from build-deps. + - local/xvfb-run*: Add correct docs about error codes. (LP #328205) + - debian/patches: + + 100_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 109_fix-swcursor-crash.patch: + Avoid dereferencing null pointer while reloading cursors during + resume. (LP: #371405) + + 111_armel-drv-fallbacks.patch: + Add support for armel driver fallbacks. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 122_xext_fix_card32_overflow_in_xauth.patch: + Fix server crash when “xauth generate” is called with large timeout. + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 169_mipointer_nullptr_checks.patch, + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP: #459512) + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + + 191-Xorg-add-an-extra-module-path.patch: + Add support for the alternatives module path. + + 198_nohwaccess.patch: + Adds a -nohwaccess argument to make X not access the hardware + ports directly. + + 200_randr-null.patch: + Clarify a pointer initialization. + + 206_intel_8xx_default_to_fbdev.patch: + Makes 8xx class intel GPUs default to fbdev for stability. (LP: #633593) + * Refresh 121_only_switch_vt_when_active.diff for new upstream. + * Drop 187_edid_quirk_hp_nc8430.patch; upstream. + * Drop 189_xserver_1.5.0_bg_none_root.patch; functionality now upstream. + * Refresh 190_cache-xkbcomp_output_for_fast_start_up.patch for new upstream. + * Drop 197_xvfb-randr.patch: + - miRandR, which this used, has been removed from the server. + * Drop 204_fix-neg-sync-transition.patch; upstream. + * Drop 207_dga_master_device.patch; upstream. + * Drop 208_switch_on_release.diff; upstream. + * debian/patches/209_add_legacy_bgnone_option.patch: + - Add "-nr" as a synonym for "-background none" to ease the transition from + the old 189_xserver_1.5.0_bg_none_root.patch patch. Can be dropped once + all the ?DM have been updated to use the new option. + * debian/control: + - Add Breaks: to xserver-xorg-video-8 and current fglrx. These proprietary + drivers don't yet have appropriate dependency information, so manually + handle them here to prevent broken upgrades. + + -- Christopher James Halse Rogers Mon, 31 Jan 2011 19:45:19 +1100 + +xorg-server (2:1.9.4-3) unstable; urgency=low + + * Maintainer script clean-up: + - xserver-xorg-core.preinst.in: Remove, 1.5 is long gone. + - xserver-xorg-core.postinst.in: Remove, 1.5 is long gone, and 1.7.4 + was between lenny and squeeze. + - xserver-xorg-core.postrm.in: Rename as xserver-xorg-core.postrm, + handling upgrades from 1.5 is no longer needed, only keep the logs + removal and the #DEBHELPER# placeholder. + * Move remaining xsfbs bits to debian/rules: + - Create/clean stampdir/. + - Use quilt.make, $(QUILT_STAMPFN), unpatch. + - Define SOURCE_NAME and SOURCE_VERSION. + * Remove debian/xsfbs accordingly. + * Remove reference to xsfbs in README.source accordingly. + * Add patch: 20-update-gpu-pitch.diff (from upstream bug 33929), fixing + issues with the radeon driver (Closes: #613957). + + -- Cyril Brulebois Sun, 20 Feb 2011 05:35:50 +0100 + +xorg-server (2:1.9.4-2) unstable; urgency=low + + * Put an end to the dependency hell! Now that we have proper + dependencies between drivers and the server, remove xserver-xorg from + xserver-xorg-core's Depends (Closes: #362313). In a nutshell, one may + want to choose between installing: + - xserver-xorg-core: the server itself, with no strings attached. + - xserver-xorg: pulls the server and drivers, contains the X wrapper + and some documentation. + - xorg: pulls xserver-xorg as well as various X11 clients and fonts. + * bug script: Report KMS configuration files and their contents. + * bug script: Keep only one lspci call (with proper filtering), which + makes PCI IDs come back. + * bug script: Report libGL-related diversions. + * Stop providing xorg-input-abi-11.0 and xorg-video-abi-8.0 now that + drivers have reached unstable. + * Merge server-1.9-branch up to 0a4b0de9af. + + -- Cyril Brulebois Wed, 16 Feb 2011 23:17:07 +0100 + +xorg-server (2:1.9.4-1) unstable; urgency=low + + * The “squeeze is released, target sid!” upload. + * New upstream release. + * Unfuzzy all patches. + * Get rid of long obsolete NEWS file. + * Replace “--remaining-packages” with “-Nfoo -Nbar” in the “dh_strip -s” + call, to avoid non-stripped binaries if the build is resumed. + * Use “dh_prep” instead of deprecated “dh_clean -k”. + * Bump debhelper build-dep accordingly. + * Introduce dh_xsf_substvars, to be used in driver packages to set + appropriate substitution variables for Depends and Provides, before + calling dh_gencontrol. Ship it in xserver-xorg-dev. + * Also ship a debhelper sequence: xsf.pm, to insert dh_xsf_substvars + before dh_gencontrol. Usage: “dh $@ --with xsf” when using dh. + * Get rid of inputabiver and videoabiver files, they've been deprecated + for a while, and drivers should all have switched by now. + * rules: Only read the first line of debian/serverminver to set the + serverminver variable, used to prepare xinputdep and videodrvdep + files. + * rules: Keep only the major ABI version from pkg-config's output to + build xorg-{input,video}-abi-$ABI. To handle minor ABI versions, we + have the serverminver mechanism. + * To avoid having to binNMU all drivers to update their Depends from + xorg-*-abi-$MAJOR-$MINOR to xorg-*-abi-$MAJOR, add xorg-video-abi-8.0 + and xorg-input-abi-11.0 to the server's Provides temporarily (until + the next ABI bump). + * Add ${videoabi}, ${inputabi} to the udeb's Provides. There's no reason + for udebs to have loose dependencies. + * Accordingly, copy server's substvars as udeb's substvars once the + videoabi/inputabi variables are computed. + * Add an abibumpcheck target which checks for xinput and videodrv ABI + updates, based on the versions stored in debian/serverminver; make + clean depend on it to make sure such an update is noticed at the very + beginning of the build. + * Add current versions to debian/serverminver accordingly. + * Remove “xserver” from Provides, it's deprecated. + * Use architecture wildcards for build-deps. + * Make xserver-xfbdev linux-any; add armhf and powerpcspe to the udeb + (Closes: #585697, #605764). + * Cherry-pick, thanks to Samuel Thibault (Closes: #590715): + - xserver: enable TLS even if AIGLX is not enabled + * Update Uploaders list. Thanks, David & Steve & Brice! + * Bump Standards-Version to 3.9.1 (no changes needed). + + -- Cyril Brulebois Sat, 05 Feb 2011 10:40:55 +0100 + +xorg-server (2:1.9.3.902-1) experimental; urgency=low + + * New upstream release (1.9.4 rc2). + * Improve bug script: + - Stop reporting about roster and checksum for config file and server + symlink, they are no longer used. + - Replace printf with echo everywhere, it's slightly more readable and + all lines are newline-terminated anyway. + - Also use a “pecho” (pretty echo) function to underline some strings, + making the output slightly more readable. + - Fix listing xorg.conf.d's contents. Previously, that was only done + if xorg.conf existed. + - Check for local libraries by running ldd on the server. + - Check for obsolete libraries in the same way (/usr/X11R6/lib might + still exist in some cases, and be referenced in /etc/ld.so.conf, so + using ldd is sufficient to find out, see #546836 for an example). + + -- Cyril Brulebois Mon, 31 Jan 2011 14:00:41 +0100 + +xorg-server (2:1.9.3.901-1) experimental; urgency=low + + * New upstream release (1.9.4 rc1). + + -- Cyril Brulebois Sun, 09 Jan 2011 03:10:13 +0100 + +xorg-server (2:1.9.2.902-1) experimental; urgency=low + + * New upstream release (1.9.3 rc2). + * Drop 06_dont_trap_access_to_timer_and_keyboard.diff, merged upstream. + + -- Cyril Brulebois Sun, 05 Dec 2010 02:16:14 +0100 + +xorg-server (2:1.9.2-1) experimental; urgency=low + + * New upstream release. + + -- Cyril Brulebois Wed, 10 Nov 2010 00:10:19 +0100 + +xorg-server (2:1.9.0.902-1ubuntu4) natty; urgency=low + + * Add 208_switch_on_release.diff: Perform keyboard layout switches on + key-release rather than key-press events. This solves a very + long-standing issue where e.g. ++ fails when + ctrl+shift is configured for layout switching. + (LP: #36812) + + -- Bryce Harrington Thu, 06 Jan 2011 14:35:59 -0800 + +xorg-server (2:1.9.0.902-1ubuntu3) natty; urgency=low + + * Add 207_dga_master_device.patch: Cherrypick from upstream xserver git + to fix crash with a bluetooth keyboard when using XBMC full screen. + (LP: #597895) + + -- Bryce Harrington Thu, 06 Jan 2011 12:17:16 -0800 + +xorg-server (2:1.9.0.902-1ubuntu2) natty; urgency=low + + [ Christopher James Halse Rogers ] + * Cherry-pick 3effb61e from server-1.9 branch. Fixes a typo in Xinerama + support which caused Qt apps to crash X when using Xinerama multi-head + (LP: #650539) + + [ Robert Hooker ] + * Add 105_nvidia_fglrx_autodetect.patch, enables fglrx and nvidia to work + without an xorg.conf. + * debian/local/64-xorg-xkb.rules, control: Use keyboard-configuration + information for keymaps (/etc/default/keyboard) + + -- Robert Hooker Wed, 05 Jan 2011 11:29:17 -0500 + +xorg-server (2:1.9.0.902-1ubuntu1) natty; urgency=low + + * Merge from Debian experimental. Remaining Ubuntu changes: + - rules: + + Disable SELinux, libaudit-dev is not in main yet. (LP: #406226) + + Enable xcsecurity. (LP: #247537) + + Add --with-extra-module-dir to support GL alternatives. + - control: + + Xvfb depends on xauth, x11-xkb-utils. (LP: #500102) + + Add breaks for incompatible drivers. (LP: #614993) + + Drop libaudit-dev from build-deps. + - rules, local/64-xorg-xkb.rules: Don't use keyboard-configuration + until it's available. + - local/xvfb-run*: Add correct docs about error codes. (LP #328205) + - debian/patches: + + 100_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 109_fix-swcursor-crash.patch: + Avoid dereferencing null pointer while reloading cursors during + resume. (LP: #371405) + + 111_armel-drv-fallbacks.patch: + Add support for armel driver fallbacks. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 122_xext_fix_card32_overflow_in_xauth.patch: + Fix server crash when “xauth generate” is called with large timeout. + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 169_mipointer_nullptr_checks.patch, + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 187_edid_quirk_hp_nc8430.patch: + Quirk for another LPL monitor (LP: #380009) + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP: #459512) + + 189_xserver_1.5.0_bg_none_root.patch: + Create a root window with no background. + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + + 191-Xorg-add-an-extra-module-path.patch: + Add support for the alternatives module path. + + 197_xvfb-randr.patch: + Adds xrandr support to xvfb. (LP: #516123) + + 198_nohwaccess.patch: + Adds a -nohwaccess argument to make X not access the hardware + ports directly. + + 200_randr-null.patch: + Clarify a pointer initialization. + + 203_gestures-extension.patch: + + 202_xf86CoordinationsToWindows.patch: + Add gesture extension support (LP: #616678) + + 204_fix-neg-sync-transition.patch: + Fixes gnome screensaver fade being uninterruptable. (LP: #595555) + + 206_intel_8xx_default_to_fbdev.patch: + Makes 8xx class intel GPUs default to fbdev for stability. (LP: #633593) + * Drop 205_udev-product-ids.patch, merged upstream. + + -- Robert Hooker Mon, 18 Oct 2010 11:19:33 -0400 + +xorg-server (2:1.9.0.902-1) experimental; urgency=low + + * New upstream release (1.9.1 rc2). + * Drop 20-Revert-for-bug-30267.diff, merged upstream. + + -- Cyril Brulebois Sat, 16 Oct 2010 15:24:48 +0200 + +xorg-server (2:1.9.0.901-1) experimental; urgency=low + + [ Christopher James Halse Rogers ] + * New upstream release (1.9.0): + - Fixes crash in DamageUnregister on session close (LP: #343694) + - Fixes crash with extremely large windows exposed by xpdf (Closes: #320627) + * Drop 17-fix-DRI2-segfault-when-clientGone.diff: fixed upstream in more + generality. + + [ Cyril Brulebois ] + * New upstream release (1.9.1 rc1). + * Add patch: 20-Revert-for-bug-30267.diff, to fix FTBFS due to test + failures, see https://bugs.freedesktop.org/show_bug.cgi?id=30267 for + reference. + * Bump xutils-dev build-dep for new macros. + * Remove --disable-multibuffer from configure flags, that extension is + gone for real now. + + -- Cyril Brulebois Tue, 12 Oct 2010 22:13:20 +0200 + +xorg-server (2:1.9.0-0ubuntu6) maverick; urgency=low + + [ Chase Douglas ] + * Fix udev USB product ID parsing (LP: #628214) + - debian/patches: + + 205_udev-product-ids.patch + + [ Christopher James Halse Rogers ] + * debian/patches/206_intel_8xx_default_to_fbdev.patch: + - Don't autoload the intel driver on i830, i845g and i855. These are + still too unstable with KMS/GEM. X will autoload the fbdev driver + (if using KMS) or the vesa driver instead. (LP: #633593) + + -- Christopher James Halse Rogers Mon, 13 Sep 2010 18:48:54 +1000 + +xorg-server (2:1.9.0-0ubuntu5) maverick; urgency=low + + * debian/control: + - fix duplicated breaks for xserver-xorg-video-v4l + + -- Michael Vogt Wed, 08 Sep 2010 10:57:49 +0200 + +xorg-server (2:1.9.0-0ubuntu4) maverick; urgency=low + + * debian/control: + - add more "breaks" for leftover drivers that have no + xserver 1.9 abi version, thanks to Jean-Baptiste Lallement + (LP: #614993) + + -- Michael Vogt Tue, 31 Aug 2010 10:52:29 +0200 + +xorg-server (2:1.9.0-0ubuntu3) maverick; urgency=low + + * debian/control: + - add additional breaks for video drivers that have no ABI for + xserver 1.9 (LP: #614993) + - merge the "breaks" list from the debian git tree + + -- Michael Vogt Tue, 31 Aug 2010 10:04:01 +0200 + +xorg-server (2:1.9.0-0ubuntu2) maverick; urgency=low + + * debian/control: + - add explict breaks from xserver-xorg-core against + xserver-xorg-video-v4l (<< 1:0.2.0-4ubuntu1) to ensure that + upgrades with universe disabled work (LP: #614993) + + -- Michael Vogt Mon, 30 Aug 2010 15:40:07 +0200 + +xorg-server (2:1.9.0-0ubuntu1) maverick; urgency=low + + * Merge from (unreleased) Debian experimental. Remaining Ubuntu changes: + - rules, control: + + Disable SELinux, libaudit-dev is not in main yet (LP 406226). + Drop libaudit-dev from build-deps. + - rules: Enable xcsecurity (LP 247537). + - local/xvfb-run*: Add correct docs about error codes (LP 328205) + - rules: Add --with-extra-module-dir to support GL alternatives. + - control: Xvfb depends on xauth, x11-xkb-utils. (LP 500102) + - rules, local/64-xorg-xkb.rules: Don't use keyboard-configuration + until it's available. + - control: Update some versioned Breaks for Ubuntu versions. + - debian/patches: + + 100_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 109_fix-swcursor-crash.patch: + Avoid dereferencing null pointer while reloading cursors during + resume. (LP 371405) + + 111_armel-drv-fallbacks.patch: + Add support for armel driver fallbacks. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 122_xext_fix_card32_overflow_in_xauth.patch: + Fix server crash when “xauth generate” is called with large timeout. + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 169_mipointer_nullptr_checks.patch, + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 187_edid_quirk_hp_nc8430.patch: + Quirk for another LPL monitor (LP 380009) + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP 459512) + + 189_xserver_1.5.0_bg_none_root.patch: + Create a root window with no background. + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + Cache keyboard settings. + + 191-Xorg-add-an-extra-module-path.patch: + Add support for the alternatives module path. + + 197_xvfb-randr.patch: + Adds xrandr support to xvfb. (LP 516123) + + 198_nohwaccess.patch: + Adds a -nohwaccess argument to make X not access the hardware + ports directly. + + 200_randr-null.patch: + Clarify a pointer initialization. + + 203_gestures-extension.patch: + + 202_xf86CoordinationsToWindows.patch: + Add gesture extension support (LP: 616678) + + debian/serverminver: + Bump for gesture support + * New upstream release: + - Fixes crash in DamageUnregister on session close (LP: #343694) + - Fixes crash with extremely large windows exposed by xpdf (Closes: #320627) + * Drop 17-fix-DRI2-segfault-when-clientGone.diff: fixed upstream in more + generality. + * debian/patches/204_fix-neg-sync-transition.patch: + - Fix edge case in SYNC extension resulting in GNOME screensaver's + fade-to-screensaver being uninteruptible. (LP: #595555) + + -- Christopher James Halse Rogers Tue, 24 Aug 2010 15:44:10 +1000 + +xorg-server (2:1.8.99.905-1ubuntu3) maverick; urgency=low + + * Bump debian/serverminver for gesture support + + -- Chase Douglas Fri, 20 Aug 2010 16:35:22 -0400 + +xorg-server (2:1.8.99.905-1ubuntu2) maverick; urgency=low + + * Add in gesture support (LP: #616678) + - add debian/patches/203_gestures-extension.patch + and debian/patches/202_xf86CoordinationsToWindows.patch + - debian/rules: + - add configure option to enable gesture + + -- Chase Douglas Mon, 09 Aug 2010 14:33:40 +0000 + +xorg-server (2:1.8.99.905-1ubuntu1) maverick; urgency=low + + * Merge from (unreleased) Debian experimental. Remaining Ubuntu changes: + - rules, control: + + Disable SELinux, libaudit-dev is not in main yet (LP 406226). + Drop libaudit-dev from build-deps. + - rules: Enable xcsecurity (LP 247537). + - local/xvfb-run*: Add correct docs about error codes (LP 328205) + - rules: Add --with-extra-module-dir to support GL alternatives. + - control: Xvfb depends on xauth, x11-xkb-utils. (LP 500102) + - rules, local/64-xorg-xkb.rules: Don't use keyboard-configuration + until it's available. + - control: Update some versioned Breaks for Ubuntu versions. + - debian/patches: + + 100_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 109_fix-swcursor-crash.patch: + Avoid dereferencing null pointer while reloading cursors during + resume. (LP 371405) + + 111_armel-drv-fallbacks.patch: + Add support for armel driver fallbacks. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 122_xext_fix_card32_overflow_in_xauth.patch: + Fix server crash when “xauth generate” is called with large timeout. + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 169_mipointer_nullptr_checks.patch, + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 187_edid_quirk_hp_nc8430.patch: + Quirk for another LPL monitor (LP 380009) + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP 459512) + + 189_xserver_1.5.0_bg_none_root.patch: + Create a root window with no background. + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + Cache keyboard settings. + + 191-Xorg-add-an-extra-module-path.patch: + Add support for the alternatives module path. + + 197_xvfb-randr.patch: + Adds xrandr support to xvfb. (LP 516123) + + 198_nohwaccess.patch: + Adds a -nohwaccess argument to make X not access the hardware + ports directly. + + 200_randr-null.patch: + Clarify a pointer initialization. + * Update changelog entries for 1.8.1.902-1 which became 1.8.99.904-1 + * Drop 196_xvfbscreeninit-handling.patch: it's semantically empty, and now + doesn't apply. Merge remaining #include change into 197_xvfb-randr.patch + * New upstream version will start correctly when no outputs are connected, + as long as the video driver can dynamically resize the framebuffer + (true for all KMS drivers) (LP: #337889) + * New upstream version fixes crash on non-admin logout with KDE (LP: #569879) + * Refresh 111_armel-drv-fallbacks.patch to fix the build on armel + + -- Christopher James Halse Rogers Thu, 05 Aug 2010 11:25:14 +1000 + +xorg-server (2:1.8.99.905-1) experimental; urgency=low + + * Drop recommends on xbase-clients. + * Add xauth to xserver-common recommends. + * Bump Standards-Version to 3.9.0. + * Don't install serverminver, drivers shouldn't use this anymore. + * New upstream release candidate. + + -- Julien Cristau Sat, 17 Jul 2010 11:13:32 +0100 + +xorg-server (2:1.8.99.904-1) experimental; urgency=low + + [ Julien Cristau ] + * Install the upstream changelog in xserver-common, instead of duplicating + its 1MB in all other packages. + * Stop repacking the tarball: the non-modifiable README.DRI was removed + upstream. + * Bump build-deps on x11proto-core-dev, x11proto-dri2-dev, libxfont-dev. + * Bump xserver-xorg-dev dependency on x11proto-core-dev and + x11proto-dri2-dev, add dependency on x11proto-xinerama-dev. + * Bump serverminver, videoabiver, inputabiver. + + [ Christopher James Halse Rogers ] + * New upstream RC + - A number of DRI2 fixes. + - Fix for hanging OpenGL clients with multiple heads. + * 17-fix-DRI2-segfault-when-clientGone.diff: + - Pick up fix from https://bugs.freedesktop.org/show_bug.cgi?id=27497 to + fix server crash in DRI2SwapEvent handling (LP: #595182). + + -- Julien Cristau Fri, 09 Jul 2010 12:45:09 +0100 + +xorg-server (2:1.8.1.902-0ubuntu2) maverick; urgency=low + + * debian/rules: + - Drop the upstream changelog harder. We're scrabbling for CD space + and this is an easy 1MB saving. + + -- Christopher James Halse Rogers Wed, 30 Jun 2010 09:50:33 +1000 + +xorg-server (2:1.8.1.902-0ubuntu1) maverick; urgency=low + + * Merge from (unreleased) Debian experimental. Remaining changes: + - rules, control: + + Disable SELinux, libaudit-dev is not in main yet (LP 406226). + Drop libaudit-dev from build-deps. + - rules: Enable xcsecurity (LP 247537). + - local/xvfb-run*: Add correct docs about error codes (LP 328205) + - rules: Add --with-extra-module-dir to support GL alternatives. + - control: Xvfb depends on xauth, x11-xkb-utils. (LP 500102) + - rules, local/64-xorg-xkb.rules: Don't use keyboard-configuration + until it's available. + - control: Update some versioned Breaks for Ubuntu versions. + - debian/patches: + + 100_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 109_fix-swcursor-crash.patch: + Avoid dereferencing null pointer while reloading cursors during + resume. (LP 371405) + + 111_armel-drv-fallbacks.patch: + Add support for armel driver fallbacks. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 122_xext_fix_card32_overflow_in_xauth.patch: + Fix server crash when “xauth generate” is called with large timeout. + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 169_mipointer_nullptr_checks.patch, + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 187_edid_quirk_hp_nc8430.patch: + Quirk for another LPL monitor (LP 380009) + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP 459512) + + 189_xserver_1.5.0_bg_none_root.patch: + Create a root window with no background. + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + Cache keyboard settings. + + 191-Xorg-add-an-extra-module-path.patch: + Add support for the alternatives module path. + + 196_xvfb-fbscreeninit-handling.patch, 197_xvfb-randr.patch: + Adds xrandr support to xvfb. (LP 516123) + + 198_nohwaccess.patch: + Adds a -nohwaccess argument to make X not access the hardware + ports directly. + + 200_randr-null.patch: + Clarify a pointer initialization. + * Update changelog entries for previously unreleased Debian 1.8.1.901-1 + + -- Christopher James Halse Rogers Wed, 23 Jun 2010 11:19:49 +1000 + +xorg-server (2:1.8.1.901-1ubuntu1) maverick; urgency=low + + [ Timo Aaltonen ] + * Merged from Debian experimental, remaining changes: + - rules, control: + + Disable SELinux, libaudit-dev is not in main yet (LP 406226). + Drop libaudit-dev from build-deps. + - rules: Enable xcsecurity (LP 247537). + - local/xvfb-run*: Add correct docs about error codes (LP 328205) + - rules: Add --with-extra-module-dir to support GL alternatives. + - control: Xvfb depends on xauth, x11-xkb-utils, recommends + libgl1-mesa-dri. (LP 500102) + - rules, local/64-xorg-xkb.rules: Don't use keyboard-configuration + until it's available. + - debian/patches: + + 100_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 109_fix-swcursor-crash.patch: + Avoid dereferencing null pointer while reloading cursors during + resume. (LP 371405) + + 111_armel-drv-fallbacks.patch: + Add support for armel driver fallbacks. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 122_xext_fix_card32_overflow_in_xauth.patch: + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 169_mipointer_nullptr_checks.patch, + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 187_edid_quirk_hp_nc8430.patch: + Quirk for another LPL monitor (LP 380009) + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP 459512) + + 189_xserver_1.5.0_bg_none_root.patch: + Create a root window with no background. + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + Cache keyboard settings. + + 191-Xorg-add-an-extra-module-path.patch: + Add support for the alternatives module path. + + 196_xvfb-fbscreeninit-handling.patch, 197_xvfb-randr.patch: + Adds xrandr support to xvfb. (LP 516123) + + 198_nohwaccess.patch: + Adds a -nohwaccess argument to make X not access the hardware + ports directly. + + 200_randr-null.patch: + Clarify a pointer initialization. + * Dropped patches: + - 106_nouveau_autodetect.patch: obsoleted by 15-nouveau.diff + - 112_xaa-fbcomposite-fix-negative-size.patch: adopted by Debian + - 113_quell_nouveau_aiglx.patch: obsoleted by 15-nouveau.diff + - 115_xext_fix_cursor_ref_counting.patch: merged upstream + - 116_fix_typos_in_swap_functions.patch: merged upstream + - 118_xkb_fix_garbage_init.patch: merged upstream + - 123_exa_sys_ptr_nullpointer_check.patch: merged upstream + - 199_xfvb-help-typo.patch: merged upstream + * debian/xserver-xorg-core.preinst.in: Drop the removal of the wrong + alternative, obsolete by now. + * debian/control: Build the udeb and bump the relaxed build-deps. + * debian/local/xvfb-run: Don't disable composite, seems to run fine + with it nowadays. + + [ Robert Hooker ] + * Fix 190_cache-xkbcomp_output_for_fast_start_up.patch so it works. + * Drop 164_trap-aspect-ratios.patch: obsolete. + * debian/rules: Adjust confflag targets so xcsecurity isn't enabled for udeb + with disabled xace. + * Drop 184_virtual_devices_autodetect.patch: It's a noop with todays autoconfig. + + [ Bryce Harrington ] + * debian/rules: Don't reference the package uploader for support; instead point + users to the standard Ubuntu support page. + (LP: #589811) + + [ Christopher James Halse Rogers ] + * Add debian/gbp.conf pointing at ubuntu branch. + * Drop 109_fix-swcursor-crash.patch; merged upstream in 3a3edb2c. + * 122_xext_fix_card32_overflow_in_xauth.patch: Update to most recent patch + on patchwork. This patch actually works! (tested with + “xauth generate :0 . trusted timeout 99999999) (LP: #519049) + + -- Bryce Harrington Mon, 07 Jun 2010 14:50:49 -0700 + +xorg-server (2:1.8.1.901-1) experimental; urgency=low + + [ Julien Cristau ] + * New upstream release + * Merge changes from 2:1.7.7-2. + + [ Christopher James Halse Rogers ] + * 16-xaa-fbcomposite-fix-negative-size.diff: + - mi hunk merged upstream. Update to keep just the fbpict.c hunk. + + -- Julien Cristau Mon, 07 Jun 2010 23:22:48 +0200 + +xorg-server (2:1.8.1-1) experimental; urgency=low + + * New upstream release + - 02_Add-libgcrypt-and-libnettle-as-options-for-sha1.diff: partly merged + upstream, rest renamed to 02_Add-libnettle-as-option-for-sha1.diff and + ported to new version + - 05_only_call_gamma_set_if_nonnull.diff: merged upstream + - 07-xfree86-fix-build-with-xv-disabled.diff: rediffed + - 08-config-xorg-conf-d.diff: merged upstream + - 09-inputclass-sans-abi9.diff: likewise + - 10-config-libudev-backend.diff: likewise + - 11-xfree86-fix-video-fallback.diff: likewise + - 12-xfree86-dont-complain-about-missing-coredevices.diff: likewise + - 13-unbreak-input-abi.diff: obsolete + - 14-tone-down-nidr-errors.diff: merged upstream + - 15-nouveau.diff: rediffed + - 17-xfree86-saner-conf-search-paths.diff: merged upstream + - 18-Add-10-evdev.conf.diff: likewise + * Bump xutils-dev build-dep for new macros. + * Add build-dep on xfonts-utils for fontutil.pc. + * Bump build-deps on mesa, glproto and dri2proto. + * Drop obsolete configure options --disable-xsdl and + --disable-null-root-cursor. + * --enable-werror has been replaced by --enable-strict-compilation, adjust + rules. + * xdmx-tools.install: xdmx was renamed to dmxinfo. + * Bump debian/serverminver and ABI versions. + + -- Julien Cristau Wed, 12 May 2010 18:01:39 +0200 + +xorg-server (2:1.7.7-2) unstable; urgency=low + + * autoconfig: load the nouveau driver for nvidia hw. Stolen from F13. + * Try to catch non-event devices when running udevadm info in the bug + script. + * Pull from upstream server-1.7-nominations branch + - dix: make DeviceEvent coordinates signed for Xinerama (closes: #581763) + - xfree86: dga needs to use the master keyboard state (closes: #576393) + - Fix null pointer dereference in xf86_reload_cursors (closes: #507916) + + -- Julien Cristau Thu, 03 Jun 2010 17:00:18 +0200 + +xorg-server (2:1.7.7-1) unstable; urgency=low + + [ Timo Aaltonen ] + * Update patch 17; Add missing __datadir__ to cpprules.in. + + [ Cyril Brulebois ] + * Add listing files under /etc/X11/xorg.conf.d in bug script. + * Fix typo in 10-mouse.conf: s/Mouse/Pointer/ (Closes: #579130). + + [ Julien Cristau ] + * Drop the GLX 1.4 patches to fix server crashes with DRI2 (closes: + #567677). + * Change driver ABI Conflicts to Breaks. Drop old Conflicts/Replaces on + pre-modular xserver packages. + * Unset PRERELEASE to avoid the prerelease warning in the log. + * New upstream release: + - fixes Xvfb crash with XI2 (closes: #575905) + - EXA: Check sys_ptr isn't NULL before passing it to the UploadToScreen + hook (closes: #576656) + * 19-exa-handle-pixmap-create-destroy-in-lower-layers.diff is now upstream, + remove it. + * Drop mention of input_id from debian/copyright since we stopped shipping + it a while back. + + -- Julien Cristau Tue, 04 May 2010 15:17:59 +0200 + +xorg-server (2:1.7.6.901-3) unstable; urgency=low + + [ Julien Cristau ] + * On !linux, install mouse and kbd catchall snippets in the xorg.conf.d + directory. Fixes FTBFS on those archs. + + [ Cyril Brulebois ] + * Cherry-pick “exa: handle pixmap create/destroy in lower layers” which + fixes server crashes when pixmaps are created in the course of + software fallbacks (Closes: #576816). Many thanks to Arthur Marsh for + the tests! + + -- Cyril Brulebois Mon, 19 Apr 2010 15:26:15 +0200 + +xorg-server (2:1.7.6.901-2) unstable; urgency=low + + * Fix dependency generation: Replace PKG_CONFIG_DIR with PKG_CONFIG_PATH + (/usr/share/xserver-xorg/{videodrv,xinput}dep may lack a version + otherwise). + + -- Cyril Brulebois Sat, 17 Apr 2010 18:38:17 +0200 + +xorg-server (2:1.7.6.901-1) unstable; urgency=low + + * New upstream release candidate. + - Fix crash when all glyphs of a given depth are freed, but not all + glyphsets (closes: #568533) + + [ Cyril Brulebois ] + * Steal patch 112_xaa-fbcomposite-fix-negative-size.patch from ubuntu, + and rename it 16-xaa-fbcomposite-fix-negative-size.diff as it's now + applied in Debian as well. It fixes arithmetic bugs in mod(); thanks to + Bryce Harrington. + * Merge 'xsfbs/debian-unstable' to fix target dependencies, which fixes + useless rebuilds. + * Add support for “noudeb” in DEB_BUILD_OPTIONS to disable building the + udeb flavour (even on architectures where udebs are supposed to be + built) to speed up debug builds. When this is used, the udeb is still + built, but rather empty… + * Modify bug script to include kernel version (from /proc/version) since + the uname in Xorg.*.log might not give enough details (like the Debian + revision). + + [ Julien Cristau ] + * Remove from debian/rules an obsolete reference to + /usr/share/debhelper/dh_make/debianm/rules. + * Make xserver-xorg-core provide ABI-versioned virtual packages for drivers + to depend on. This is a first step in making our ABI handling saner (see + #573371). + * xvfb-run: don't rely on /tmp/X$i-lock to bump $SERVERNUM in auto-servernum + mode (closes: #577195). Thanks, Jozef Kutej! + * Bump serverminver for new handling of input config. + * Add Breaks on input drivers installing files in /usr/lib/X11/xorg.conf.d + since we're changing the path. + * Stop looking for x11_driver property in udev, since we're migrating the + drivers over to xorg.conf.d anyway. + * Install 10-evdev.conf in /usr/share/X11/xorg.conf.d (from upstream, patch + 18-Add-10-evdev.conf.diff). + + [ Timo Aaltonen ] + * Add 17-xfree86-saner-conf-search-paths.diff. Allows using another + xorg.conf.d directory for local changes. + + -- Cyril Brulebois Sat, 17 Apr 2010 16:55:39 +0200 + +xorg-server (2:1.7.6-2ubuntu8) lucid-updates; urgency=low + + [Bryce Harrington] + * Add 123_exa_sys_ptr_nullpointer_check.patch: Patch from upstream to + verify a pointer is not NULL before dereferencing it. Fixes X + segfault in miCopyRegion which occurs while using firefox (e.g. typing + into fields in AOL). Issue found by Jerry Lamos. + (LP: #539772) + * Add 19-exa-handle-pixmap-create-destroy-in-lower-layers.diff: Patch + from Debian to fix X segfault on mouse click in xfig, when pixmaps + are created in the course of software fallbacks. + (LP: #553647) + + [Martin Pitt] + * debian/local/64-xorg-xkb.rules: Ignore XKBMODEL=="SKIP" and + XKBVARIANT=="U.S. English", which happen to get into + /etc/default/console-setup in some cases like the VMWare automatic + installer. + (LP: #548891) + + -- Bryce Harrington Wed, 28 Apr 2010 13:10:44 -0700 + +xorg-server (2:1.7.6-2ubuntu7) lucid; urgency=low + + * Drop 117_fix_crash_with_createglyphset.patch + - Dupe of patch 110 + * Drop 03_fedora_glx_versioning.diff, 04_fedora_glx14-swrast.diff + - These patches were brought in by Debian to provide glx 1.4 support + which Fedora backported from xserver 1.8, however testing in + Ubuntu showed they caused a crash when closing Clutter apps (#550218), + and graphics corruption when opening windows. Dropping these patches + returns us to GLX 1.2, which has been found to be stable; Debian has + also dropped these two patches. + (Fixes #565903). + * Drop 114_dri2_make_sure_x_drawable_exists.patch + - This was an early attempt by upstream which fixed the aforementioned + Clutter crash, but which introduced a memory leak. + (Fixes #565981) + + -- Bryce Harrington Thu, 22 Apr 2010 17:24:38 -0700 + +xorg-server (2:1.7.6-2ubuntu6) lucid; urgency=low + + * Add 122_xext_fix_card32_overflow_in_xauth.patch: Prevent overflow + of a CARD32 variable millis by doing bounds checking. This is a + patch currently in discussion at fdo #27134, so this patch can be + dropped in favor of whatever upstream decides to include. + (LP: #519049) + + -- Bryce Harrington Thu, 15 Apr 2010 14:10:53 -0700 + +xorg-server (2:1.7.6-2ubuntu5) lucid; urgency=low + + * Update patches in previous upload to fix FTBS issue. + + -- Bryce Harrington Thu, 15 Apr 2010 11:03:01 -0700 + +xorg-server (2:1.7.6-2ubuntu4) lucid; urgency=low + + * Add several cherrypicks of fixes from upstream git tree which fix various + issues and that look safe with low or no risk of regression. + + 115_xext_fix_cursor_ref_counting.patch: Xext: Fix cursor reference + counting hazard. + + 116_fix_typos_in_swap_functions.patch: Fixes typos in several of the + glxcmdsswap routines. + + 117_fix_crash_with_createglyphset.patch: Fixes crash introduced in + FindGlyphsByHash() if one client disconnects while a second is in + the middle of doing certain Glyph operations. + + 118_xkb_fix_garbage_init.patch: Fixes typo that can cause garbage + bits to get appended on the xkbControlsNotify changedControls mask + because it was uninitialized on the stack. + + -- Bryce Harrington Wed, 14 Apr 2010 18:49:56 -0700 + +xorg-server (2:1.7.6-2ubuntu3) lucid; urgency=low + + * add support for omapfb to 111_armel-drv-fallbacks.patch + + -- Alexander Sack Mon, 12 Apr 2010 14:43:42 +0200 + +xorg-server (2:1.7.6-2ubuntu2) lucid; urgency=low + + [Bryce Harrington] + * Add 113_quell_nouveau_aiglx.patch: Don't emit error message about + AIGLX on nouveau. 3D is not supported yet on -nouveau so this error + message serves only to confuse bug reporters. + (LP: #529590) + + [Robert Sarvatt] + * Add 114_dri2_make_sure_x_drawable_exists.patch: Makes sure + a corresponding X drawable exists before trying to use it, fixing + xserver segfaults under DRI2 when closing down GLX apps. + (LP: #550218) + + -- Bryce Harrington Wed, 31 Mar 2010 16:37:45 -0700 + +xorg-server (2:1.7.6-2ubuntu1) lucid; urgency=low + + [ Timo Aaltonen ] + * Merge from Debian unstable. (LP: #546933) + + [ Michael Casadevall ] + * Updated 111_armel-drv-fallbacks.patch to also add support for finding + dovefb devices in addition to imx51 ones. (LP: #550701) + + -- Timo Aaltonen Tue, 30 Mar 2010 22:01:12 +0300 + +xorg-server (2:1.7.6-2) unstable; urgency=low + + [ Timo Aaltonen ] + * Add 08-config-xorg-conf-d.diff, 09-inputclass-sans-abi9.diff, + 10-config-libudev-backend.diff. Backport xorg.conf.d, inputclass + and libudev support from xserver 1.8. Replaces the patches we had + before. This allows us to migrate from a temporary udev based + input device configuration straight to the long term solution + introduced in 1.8. + * Add 11-xfree86-fix-video-fallback.diff from SUSE. Allows the video + fallback method to work when there's an xorg.conf around. + * Add 12-xfree86-dont-complain-about-missing-coredevices.diff. + No reason to complain about these, unless AEI is off. + * Add 13-unbreak-input-abi.diff. Keep the old NewInputDeviceRequest(), + rename the new as NIDR18() and call it from NIDR(). This way we + don't break the input ABI. + * Add 14-tone-down-nidr-errors.diff. Use X_INFO instead of X_ERROR. + + [ Julien Cristau ] + * 15-keep-udev-x11-driver.diff: keep looking for the x11_driver udev + property as a transitional measure. This should allow the new server to + work while drivers aren't transitioned to xorg.conf.d yet. + + -- Timo Aaltonen Tue, 30 Mar 2010 21:32:52 +0300 + +xorg-server (2:1.7.6-1ubuntu3) lucid; urgency=low + + * Extend 112_xaa-fbcomposite-fix-negative-size.patch to also correct a + mod() definition in the mi code which suffers the same flaw. + + -- Bryce Harrington Mon, 29 Mar 2010 14:15:07 -0700 + +xorg-server (2:1.7.6-1ubuntu2) lucid; urgency=low + + * Add 112_xaa-fbcomposite-fix-negative-size.patch: Prevent 3rd-party + controllable Xorg crash/exploit when XAA and compositing is in use. + Be more careful in sign-changes with mod(). + (LP: #551193) + + -- Bryce Harrington Mon, 29 Mar 2010 13:37:06 -0700 + +xorg-server (2:1.7.6-1ubuntu1) lucid; urgency=low + + [Timo Aaltonen] + * Merge from Debian unstable. + * Drop patch 107, included in Debian. + * Drop patch 108, included upstream. + * control: Drop the udeb, we don't need it for lucid. + * control: Relax/drop some build-deps caused by the udeb. + + [Bryce Harrington] + * Add 110_findglyphbyhash-fix.patch from upstream to fix a sporadic + crash in FindGlyphByHash. + (LP: #401045) + * Renumber patch 201_armel-drv-fallbacks.patch to 111 + + -- Bryce Harrington Wed, 24 Mar 2010 12:04:20 -0700 + +xorg-server (2:1.7.6-1) unstable; urgency=low + + [ Brice Goglin ] + * Add 06_dont_trap_access_to_timer_and_keyboard.diff, + thanks Samuel Thibault. + + [ Timo Aaltonen ] + * New upstream release, closes: #574354. + + [ Julien Cristau ] + * Don't build xserver-xorg-core-udeb on sparc. The linker fails because + relocations have to be truncated when building statically against + libnettle. + + -- Cyril Brulebois Tue, 23 Mar 2010 16:59:08 +0100 + +xorg-server (2:1.7.5.902-1) unstable; urgency=low + + [ Julien Cristau ] + * config/udev: fix adding unnamed devices. + * Build two flavours, one for the main package and one for the udeb. + * Add patch to fix Xorg build with XV disabled. + + [ Timo Aaltonen ] + * Add 16-config-dont-filter-input-subsys.diff so for instance serial + wacom devices are initialized by the udev backend (LP: #522318, + closes: #568236). + + [ Brice Goglin ] + * New upstream release. + + Allow for missing or disabled compat_output, closes: #572268, #554450. + + Reenable RECORD extension, closes: #570680. + + dix: try to ring the bell even if the current device doesn't have one, + closes: #564200. + * Refresh patches. + * Fix typo in xvfb-run.1, thanks Joey Hess, closes: #527490. + * Add 06_dont_trap_access_to_timer_and_keyboard.diff, + thanks Samuel Thibault. + + [ Cyril Brulebois ] + * Add udeb needed for the graphical installer: xserver-xorg-core-udeb. + * Version/Bump some B-D to make sure xserver-xorg-core-udeb gets its + dependencies on the (recently-added) udebs rather than on the + libraries: + - libpciaccess-dev + - libudev-dev + - libxau-dev + - libxfont-dev + * Replace 02_Add-libgcrypt-as-an-option-for-sha1.diff with + 02_Add-libgcrypt-and-libnettle-as-options-for-sha1.diff so that it's + also possible to link against libnettle. Link (unconditionally) + statically against libnettle.a to avoid an extra udeb for a few bytes. + * Add nettle-dev to Build-Depends; and pass --with-sha1=libnettle for + the udeb build (and --with-sha1=libgcrypt for the main build). + * Add myself to Uploaders. + * Tweak builderstring to use the name of the person responsible for the + upload instead of an host-specific one (Closes: #574017). + + -- Cyril Brulebois Mon, 15 Mar 2010 22:19:01 +0100 + +xorg-server (2:1.7.5-1ubuntu4) lucid; urgency=low + + * 201_armel-drv-fallbacks.patch: use imx driver if available on + armel imx51 systems; the current test checks for mxc_gpu + devices listed in /sys/devices/platform and ensures that the + imx_drv module can be loaded; if both succeed, imx driver is + used instead of fbdev; note: the mxc_gpu device test should be + replaced with parsing output of /proc/fb once the mxc driver + provides reasonable content there. + + -- Alexander Sack Wed, 24 Mar 2010 13:03:41 +0100 + +xorg-server (2:1.7.5-1ubuntu3) lucid; urgency=low + + * Add 109_fix-swcursor-crash.patch: Avoid dereferencing null pointer + while reloading cursors during resume. + (LP: #371405) + + -- Bryce Harrington Thu, 11 Mar 2010 17:16:12 -0800 + +xorg-server (2:1.7.5-1ubuntu2) lucid; urgency=low + + [ Bryce Harrington ] + [Timo Aaltonen] + * Add 107_dont_filter_input_subsys.diff so for instance serial wacom + devices are initialized by the udev backend (LP: #522318) + + [Bryce Harrington] + * Add 108_reenable_record_ext.patch: Upstream patch to make the + record callback work with the new internal core/Xi events mechanism + instead of xEvents. With this fix, the record extension can be + re-enabled. + (LP: #315456) + + -- Timo Aaltonen Tue, 02 Mar 2010 17:09:33 +0200 + +xorg-server (2:1.7.5-1ubuntu1) lucid; urgency=low + + [ Bryce Harrington ] + [Robert Hooker] + * Add 106_nouveau_autodetect.patch: makes nouveau the default driver + for supported cards when not explicitly named in xorg.conf. + + [Timo Aaltonen] + * Merge from Debian unstable. + * Drop patch 101, included in Debian. + + [Robert Collins] + * Add 199_xfvb-help-typo.patch to fix typo in help for xvfb (fdo #32990) + * Add 200_randr-null.patch to clarify a pointer initialization (fdo #26389) + + -- Timo Aaltonen Fri, 19 Feb 2010 13:24:15 +0200 + +xorg-server (2:1.7.5-1) unstable; urgency=low + + [ Julien Cristau ] + * Remove myself from Uploaders + + [ Brice Goglin ] + * New upstream release. + + Restore lastDeviceEventTime update in dixSaveScreens, + closes: #563816. + + Don't double-swap the RandR PropertyNotify event, + closes: #569036. + + Xi: reset the sli pointers after copying device classes, + closes: #566147. + * Bump Standards-Version to 3.8.4. + + -- Brice Goglin Tue, 16 Feb 2010 08:00:27 +0100 + +xorg-server (2:1.7.4-2) unstable; urgency=low + + [ Julien Cristau ] + * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no + good reason. Thanks, Colin Watson! + + [ Brice Goglin ] + * Add 05_only_call_gamma_set_if_nonnull.diff to unbreak the nv driver, + closes: #564203. + + -- Brice Goglin Wed, 20 Jan 2010 23:51:26 +0100 + +xorg-server (2:1.7.4-1) unstable; urgency=low + + [ Timo Aaltonen ] + * New upstream release. + + [ Julien Cristau ] + * Don't call config_init() until after InitInput() has initialized the event + queue, so that devices don't get enabled too early (closes: #564256, + #564324). + + -- Julien Cristau Tue, 12 Jan 2010 10:49:22 +0000 + +xorg-server (2:1.7.3.902-1ubuntu12) lucid; urgency=low + + * Add 198_nohwaccess.patch: Needed for rootless X. Adds a -nohwaccess + argument to make X not access the hardware ports directly. + + -- Bryce Harrington Fri, 05 Feb 2010 22:17:20 -0800 + +xorg-server (2:1.7.3.902-1ubuntu11) lucid; urgency=low + + * Add 196_xvfb-fbscreeninit-handling.patch and 197_xvfb-randr.patch: + Adds xrandr support to xvfb. Thanks lifeless! + (LP: #516123) + + -- Bryce Harrington Thu, 04 Feb 2010 10:56:12 -0800 + +xorg-server (2:1.7.3.902-1ubuntu10) lucid; urgency=low + + * 100_rethrow_signals.patch: Fix SigAbortServer to cleanly exit(1) on a + non-signal crash, as the original upstream code does. Not exiting leads to + continuing back into the code which threw the error, which eventually + leads to writing into the already closed log file and other operations + which cause segfaults. + * Re-enable 100_rethrow_signals.patch. Hello apport. + + -- Martin Pitt Wed, 03 Feb 2010 17:29:53 -0800 + +xorg-server (2:1.7.3.902-1ubuntu9) lucid; urgency=low + + * Fully disable 100_rethrow_signals.patch as it seems to still cause + crashes. Goodbye apport. + (LP: #506510) + + -- Bryce Harrington Mon, 18 Jan 2010 23:31:08 -0800 + +xorg-server (2:1.7.3.902-1ubuntu8) lucid; urgency=low + + * Drop 160_log_timestamping.patch. The bootup time objectives have been + met so this patch is no longer required. + + -- Bryce Harrington Sat, 16 Jan 2010 02:28:30 -0800 + +xorg-server (2:1.7.3.902-1ubuntu7) lucid; urgency=low + + * Update 100_rethrow_signals.patch: Don't log more error messages after + the log has been closed, else it causes a SIGSEGV (signal 11) crash + under several different conditions, including on even ordinary error + exits. + (LP: #506510, #507345, #506977, #504497, #507083) + + -- Bryce Harrington Fri, 15 Jan 2010 15:22:34 -0800 + +xorg-server (2:1.7.3.902-1ubuntu6) lucid; urgency=low + + * debian/xserver-xorg-core.preinst.in: + - Correct the name of the alternative that we need to remove. + Thanks to Steve Langasek for spotting the error. + + -- Alberto Milone Thu, 14 Jan 2010 12:50:19 +0100 + +xorg-server (2:1.7.3.902-1ubuntu5) lucid; urgency=low + + * debian/xserver-xorg-core.preinst.in: + - Make sure that the alternative which was previously provided by + xserver-xorg-core is removed. + + -- Alberto Milone Tue, 12 Jan 2010 11:37:49 +0100 + +xorg-server (2:1.7.3.902-1ubuntu4) lucid; urgency=low + + * debian/patches/191-Xorg-add-an-extra-module-path.patch: + - Patch from Mandriva to allow the use of an extra-modules-dir so that + the modules installed in this dir will override the ones in the + default directory. + * debian/rules: + - Remove alternatives stuff introduced in a previous upload. + - Configure with --with-extra-module-dir="/usr/lib/xorg/extra-modules". + - Do not install libglx.so and libdri.so in a different place any more. + - Do not install ld.so.conf file any more. Mesa will deal with this. + * debian/xserver-xorg-core.links: + - Do not create link to /usr/lib/xvmcconfig-standard/XvMCConfig. + - Remove links file. + * debian/xserver-xorg-core.postinst.in: + - Do not install an alternative any more. Mesa will deal with this. + * debian/xserver-xorg-core.prerm.in: + - Remove file. + + -- Alberto Milone Mon, 11 Jan 2010 14:48:35 +0100 + +xorg-server (2:1.7.3.902-1ubuntu3) lucid; urgency=low + + [ Julien Cristau ] + * Don't call config_init() until after InitInput() has initialized the event + queue, so that devices don't get enabled too early (closes: #564256, + #564324). (LP: #504254) + + -- Timo Aaltonen Sat, 09 Jan 2010 19:34:30 +0200 + +xorg-server (2:1.7.3.902-1ubuntu2) lucid; urgency=low + + * debian/rules: + - Make sure that /usr/lib/standard-x11/ld.so.conf points to + the libraries provided by mesa. + + -- Alberto Milone Fri, 08 Jan 2010 18:55:52 +0100 + +xorg-server (2:1.7.3.902-1ubuntu1) lucid; urgency=low + + [ Timo Aaltonen ] + * Merge from Debian unstable. + + [ Michael Vogt ] + * Add 101_nv-crash-fix.diff: Do not crash if gamma_set is NULL. + (LP: #494627) + + [ Alberto Milone ] + * Install libglx.so and libdri.so in /usr/lib/standard-x11 as X + seems to prefer the file in /usr/lib/xorg/modules/extensions/standard/ + over links in /usr/lib/xorg/modules/extensions/. + + -- Timo Aaltonen Fri, 08 Jan 2010 14:21:15 +0200 + +xorg-server (2:1.7.3.902-1) unstable; urgency=low + + [ Timo Aaltonen ] + * Run udevadm trigger on postinst, and depend on udev [linux-any]. + + [ Julien Cristau ] + * Add xserver-common dependency on x11-xkb-utils for xkbcomp. + * Remove our copy of input_id, add Depends on new enough udev instead. + * New upstream release. + * Make xserver-common recommend xfonts-base, some clients don't work without + those. + * Upload to unstable. + + -- Julien Cristau Wed, 06 Jan 2010 17:44:59 +0000 + +xorg-server (2:1.7.3.901-1ubuntu5) lucid; urgency=low + + * Use alternatives to make it easier to switch between X11 and 3rd + party modules. + * Add link to /usr/lib/xvmcconfig-standard/XvMCConfig and use it + for alternatives. + + -- Alberto Milone Mon, 04 Jan 2010 12:08:17 +0100 + +xorg-server (2:1.7.3.901-1ubuntu4) lucid; urgency=low + + * xvfb: Depend again on xauth. Depend on x11-xkb-utils. LP: #500102. + + -- Matthias Klose Thu, 24 Dec 2009 12:20:02 +0100 + +xorg-server (2:1.7.3.901-1ubuntu3) lucid; urgency=low + + * Update 100_rethrow_signals.patch to work with xserver 1.7 + + -- Bryce Harrington Fri, 18 Dec 2009 18:55:56 -0800 + +xorg-server (2:1.7.3.901-1ubuntu2) lucid; urgency=low + + [ Alberto Milone ] + * debian/patches/190_cache-xkbcomp_output_for_fast_start_up.patch: + Make the patch build again with xserver 1.7. + + [ Timo Aaltonen ] + * Enable patch 190 now that it works. + + -- Timo Aaltonen Tue, 15 Dec 2009 14:49:39 +0200 + +xorg-server (2:1.7.3.901-1ubuntu1) lucid; urgency=low + + * Merge from Debian experimental. + + -- Timo Aaltonen Mon, 14 Dec 2009 11:34:33 +0200 + +xorg-server (2:1.7.3.901-1) experimental; urgency=low + + [ Julien Cristau ] + * Enable GLX 1.4 on DRI2 and swrast (from upstream, via F12). + * xserver-xorg-dev: add Depends on x11proto-kb-dev and libxkbfile-dev for + xkbsrv.h (closes: #559676). Thanks, Ron! + * Update input_id to the version in udev 149. + * Update xserver-xorg-core bug script to run udevadm info instead of lshal. + + [ Brice Goglin ] + * New upstream release. + + Refresh patches. + + -- Brice Goglin Sat, 12 Dec 2009 17:46:45 +0100 + +xorg-server (2:1.7.2-2ubuntu2) lucid; urgency=low + + * local/64-xorg-xkb.rules: Use "program" instead of "file" when + grepping the XKB settings from console-setup. + + -- Timo Aaltonen Tue, 08 Dec 2009 13:17:04 +0200 + +xorg-server (2:1.7.2-2ubuntu1) lucid; urgency=low + + * Merge from Debian experimental. Remaining Ubuntu changes: + - debian/rules, debian/control: + + Disable SELinux, libaudit-dev is not in main yet (LP 406226). + Drop libaudit-dev from build-deps. + - debian/rules: Enable xcsecurity (LP 247537). + - local/xvfb-run*: Add correct docs about error codes (LP 328205) + - local/xvfb-run: Use "-extension Composite" to fix xvfb-run crashing. + - debian/patches: + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 135_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 169_mipointer_nullptr_checks.patch, + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 164_trap-aspect-ratios.patch: + Correct monitor EDIDs that have misreported aspect ratios. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 187_edid_quirk_hp_nc8430.patch: + Quirk for another LPL monitor (LP: #380009) + + 188_default_primary_to_first_busid.patch: + Pick the first device and carry on (LP 459512) + + 189_xserver_1.5.0_bg_none_root.patch: + Create a root window with no background. + + 190_cache-xkbcomp_output_for_fast_start_up.patch: + Cache keyboard settings. + * debian/control: Drop obsolete Conflicts/Breaks against -psb, + -synaptics and -evdev. + * debian/local/xserver-xephyr.1: Delete, upstream has Xephyr.1 now. + * Dropped patches: + - 101_fedora_xserver-1.3.0-document-fontpath-correctly.patch: + Upstream dropped it. + - 102_ubuntu_sharevts_load_cpu.patch: Upstream. + - 103_psb_auto.patch: Fallback to vesa done differently upstream. + - 110_fedora_no_move_damage.patch: Upstream dropped it. + - 140_quell_acpi_errmsgs.patch: Superseded. + - 153_make_dmx_compile.patch: Xdmx is fixed upstream. + - 156_exevents_copykeyclass_nullptrcheck.patch: No longer needed. + Appropriate checks are done on the pointers prior to CopyKeyClass + being called now. + - 158_raise_maxclients.patch: Breaks binary drivers. We've had this + reverted for some time now, may as well just get rid of it entirely. + - 174_set_bg_pixmap_of_cow_to_none.patch: Upstream + - 177_animated_cursor_change_master.patch: Different fix upstream. + - 180_fedora_no_synaptics_mouse_synthesis.patch: Superseded. + - 181_fedora_log_proc_cmdline.patch: Upstream. + - 185_dix_badwindow.patch: Upstream. + - 186_autoconfig_geode.patch: Upstream. + * 189_xserver_1.5.0_bg_none_root.patch: Fetched a new version. + * 135_rethrow_signals.patch, 168_glibc_trace_to_stderr.patch: + Disabled until fixed to work with the current version. + * 160_log_timestamping.patch: Updated and re-enabled for boot speed + testing in Lucid. This patch should be disabled by beta2. + * 169_mipointer_nullptr_checks.patch: Updated. MIPOINTER() still + can return NULL under some circumstances, and its return values + are still being dereferenced without checking for NULL. + * 188_default_primary_to_first_busid.patch: Updated. Still looks to be + relevant for certain multi-card systems. + * 190_cache-xkbcomp_output_for_fast_start_up.patch: Updated. + * control, local/64-xorg-xkb.rules: Don't depend on keyboard-configuration + until we have it. + * rules, local/64-xorg-xkb.rules: Use input_id from udev. + + -- Timo Aaltonen Mon, 07 Dec 2009 15:30:18 +0200 + +xorg-server (2:1.7.2-2) experimental; urgency=low + + [ Julien Cristau ] + * debian/rules: upstream build system got fixed, no need to remove + configure-generated files. + * Steal input_id helper from udev, install it in /lib/xorg. Thanks, Martin + Pitt! + + [ Brice Goglin ] + * Cherry pick upstream commit to fix the ABI. + + -- Brice Goglin Mon, 30 Nov 2009 20:10:27 +0100 + +xorg-server (2:1.7.2-1) experimental; urgency=low + + * New upstream release + + Xorg sets umask to 022 (closes: #555308) + * Delete 09_debian_xserver_rtff.diff. Was disabled since 1.3.99, and is not + necessary since the fall back to builtin fonts was added. + * Change the server's dependency on xserver-common to >= ${source:Version}, + to allow installation of different versions of the various servers. + * Add build-dep on libglib2.0-dev, xkb-data and x11-xkb-utils for unit + tests, and run the tests unless nocheck is in DEB_BUILD_OPTIONS. + * Cherry-pick upstream commit to turn ModeDebug on during server startup, + replacing our Turn-on-ModeDebug-by-default.patch. + * Number our patches to make it easier to keep track of things. Requested + by the Ubuntu folks. + * xvfb-run: retry a few times if Xvfb can't be started when using + --auto-servernum, to make concurrent invocations work (closes: #521075). + Thanks, Kees Cook! + * Use libudev instead of libhal for input hotplug on linux. + * Add udev rule to get keymap from /etc/default/keyboard. + + -- Julien Cristau Sat, 28 Nov 2009 16:48:43 +0100 + +xorg-server (2:1.7.0-1) experimental; urgency=low + + * Add missing Conflicts on xserver-xorg-video-5 and xserver-xorg-input-4. + * Add xkb-data to xserver-common's Depends. XKB is mandatory in 1.7. + * Make all servers depend on xserver-common (= ${source:Version}). + * New upstream release + + fixes Xvfb crashes (closes: #529927) + + fixes DGA init crash (closes: #548716) + + -- Julien Cristau Sun, 04 Oct 2009 15:57:01 +0200 + +xorg-server (2:1.6.99.903-1) experimental; urgency=low + + * New upstream snapshot. + + doesn't fill log file with errors when acpid isn't running + (closes: #487904, #500583) + + adds autoconfig for geode variants (closes: #544988) + + fixes idle time computation (closes: #542064) + + Xnest uses the host's mouse acceleration and speed (closes: #325181) + + Xephyr now has a manpage (closes: #427121) + + Xdmx works again (closes: #541254) + * Update build deps + * Update patch stack: + - 20_hurd-i386.diff applied upstream + - fedora-bad-fbdev-thats-mine.patch applied upstream + - fedora-pci-primary.diff superseded upstream + - fedora-vboxvideo.diff applied upstream + - kfreebsd-ftbfs.diff applied upstream + - Add-libgcrypt-as-an-option-for-sha1.diff refreshed + - Turn-on-ModeDebug-by-default.patch refreshed + * Cleanup some libtool cruft in debian/rules clean. + * Bump serverminver, videoabiver and inputabiver. + * Bump debhelper compat level to 5: + - handle dh_strip behaviour change + - fix xserver-xorg-core.install + * Bump Standards-Version to 3.8.3. + + -- Julien Cristau Tue, 29 Sep 2009 17:51:05 +0200 + +xorg-server (2:1.6.4-2ubuntu6) lucid; urgency=low + + * 189_xserver_1.5.0_bg_none_root.patch: Moblin patch to allow X to + create a root window with no background by passing the -nr + argument. This will make X no longer clear the framebuffer when it + starts, thus eliminating a flicker between bootsplash and gdm. -nr + is ignored if this feature is not supported by the driver. This patch + is not upstream yet. + TESTERS: Watch for screen corruption issues during X or app start. + * 190_cache-xkbcomp_output_for_fast_start_up.patch: Causes the X + Keyboard Compiler (xkbcomp) to create a cache file of the keyboard + settings. This will make the 2nd and later boots slightly faster. + TESTERS: Watch for issues relating to keyboard customizations not + taking effect properly following boot. + + -- Bryce Harrington Mon, 23 Nov 2009 13:59:44 -0800 + +xorg-server (2:1.6.4-2ubuntu5) lucid; urgency=low + + * Rework xvfb-run patch to wait for server to come up before checking + status (LP: #481591, Debian bug 521075). + + -- Kees Cook Fri, 13 Nov 2009 16:15:36 -0800 + +xorg-server (2:1.6.4-2ubuntu4) karmic; urgency=low + + * Add 188_default_primary_to_first_busid.patch: X can abort if multiple + video devices are present, and none are marked as primary. This makes + X just pick the first one it sees and carry on. + (LP: #459512) + + -- Bryce Harrington Mon, 26 Oct 2009 10:05:44 -0700 + +xorg-server (2:1.6.4-2ubuntu3) karmic; urgency=low + + * local/xvfb-run: Fix race condition in xvfb-run that can cause + concurrent invocations to fail. + (LP: #348052) + + -- Bryce Harrington Wed, 14 Oct 2009 15:21:51 -0700 + +xorg-server (2:1.6.4-2ubuntu2) karmic; urgency=low + + * Add 187_edid_quirk_hp_nc8430.patch: Quirk for another LPL monitor, to + fix huge font sizes due to invalid EDID from the hardware. + (LP: #380009) + + -- Bryce Harrington Tue, 13 Oct 2009 02:25:46 -0700 + +xorg-server (2:1.6.4-2ubuntu1) karmic; urgency=low + + * Merge from Debian unstable. (LP: #447010) + Remaining Ubuntu changes: + - debian/control: + + set Conflicts: xkb-data (<< 0.9), since xkb-path is + different from previous releases + + do not Conflict with xserver-xorg-video + + xvfb Depends on xauth, xfonts-base + + Set Maintainer to Ubuntu Core Developers + - debian/rules: + + build using -fno-stack-protector + + --with-os-vendor=Ubuntu + - debian/xserver-xorg-core.install: + + Add ioport, pcitweak, scanpci scripts & man pages + - debian/patches: + + 101_fedora_xserver-1.3.0-document-fontpath-correctly.patch: + Specify correct paths to fonts + + 102_ubuntu_sharevts_load_cpu.patch: + close console fd only when ShareVTs + + 103_psb_auto.patch: + Autodetect poulsbo devices (but use -vesa since -psb is broken) + + 110_fedora_no_move_damage.patch: + further aiglx support + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 135_rethrow_signals.patch: + When aborting, re-raise signals for apport + + 140_quell_acpi_errmsgs.patch: + Avoid generating extraneous warnings when acpi is missing + + 153_make_dmx_compile.patch: + Change xcalloc -> calloc, so that dmx compiles. + + 156_exevents_copykeyclass_nullptrcheck.patch, + 157_check_null_modes.patch, 162_null_crtc_in_rotation.patch, + 166_nullptr_xinerama_keyrepeat.patch, 167_nullptr_xisbread.patch + 169_mipointer_nullptr_checks.patch, + 172_cwgetbackingpicture_nullptr_check.patch: + Fix various segfaults in xserver by checking pointers for NULL + values before dereferencing them. + + 164_trap-aspect-ratios.patch: + Correct monitor EDIDs that have misreported aspect ratios. + + 165_man_xorg_conf_no_device_ident.patch + Correct man page + + 168_glibc_trace_to_stderr.patch: + Report abort traces to stderr instead of terminal + + 174_set_bg_pixmap_of_cow_to_none.patch: + Set background pixmap of composite overlay window to no background + + 177_animated_cursor_change_master.patch: + Don't create animated cursors for slave devices + + 180_fedora_no_synaptics_mouse_synthesis.patch: + Don't synthesize a mouse section if a synaptics device is found + + 181_fedora_log_proc_cmdline.patch: + Dump /proc/cmdline in the log file too + + 184_virtual_devices_autodetect.patch: + Use vesa for qemu device, which is not supported by cirrus + + 185_dix_badwindow.patch: + Don't return BadMatch from GetProperty if window isn't actually a window + + 186_autoconfig_geode.patch + Perform autodetection correctly for various geode devices + * Update 184_virtual_devices_autodetect.patch to only include inserting + cirrus, since vbox is covered by the new fedora patch. + * Drop patches already included upstream: + - 187_lastdeviceeventtime-no-reset.patch + - 178_glx_flush_cache.patch + - 179_glx_cleanup_drawables.patch + - 183_dont_reset_event_time.patch + - 182_negative_sync_transitions.patch + * Ubuntu bugs fixed as of this release: + - Generate key up event only when key is released. (Fixed previously) + (LP: #403339) + - Fix XDPMS change event idle handling + (LP: #114336, #152999) + - Don't shutdown the libhal ctx if it failed to initialize. Fixes + crash if HAL or dbus is not running or is interrupted. + (LP: #114336) + - Fix crash if SendCoreEvents is off. Don't send events through + master in this case. + (LP: #368135) + - Fix SWCursor check in xf86CursorSetCursor to prevent cursor image + showing up on every screen with Xinerama. + (LP: #357901) + + -- Bryce Harrington Fri, 09 Oct 2009 12:01:52 -0700 + +xorg-server (2:1.6.4-2) unstable; urgency=low + + * Add fix-dga-removal.patch, closes: #548724. + + -- Brice Goglin Wed, 30 Sep 2009 22:40:29 +0200 + +xorg-server (2:1.6.4-1) unstable; urgency=low + + * New upstream release. + * Update 20_hurd-i386.diff, thanks Samuel Thibault, closes: #548606. + * Drop render-return-the-supported-version.patch, applied upstream. + + -- Brice Goglin Mon, 28 Sep 2009 07:23:07 +0200 + +xorg-server (2:1.6.3.901-1) unstable; urgency=low + + [ Julien Cristau ] + * Add patch stolen from Fedora to add the vboxvideo driver to the + autodetection routine (closes: #540884). + * Add built-ins to the default font path so that non-Xorg servers can use + them (closes: #542707). Thanks, Josselin Mouette! + * Add avr32 to the libselinux-dev/libaudit-dev build-deps (closes: #543540). + Thanks, Bradley Smith! + * Add patch to return the actually supported version in RenderQueryVersion + rather than whatever renderproto version the server built against. + * New upstream release. + + idle counter computation fixes (closes: #542064) + * Cherry-pick three more patches nominated on + http://www.x.org/wiki/Server16Branch: + - Don't reset the lastDeviceEventTime when doing DPMS actions + - dri2: Don't crash if pPriv is NULL + - EXA: Only take special code path for 1x1 fill for pixmaps + + [ David Nusinow ] + * Update xsfbs to 5693792171d885769e58dcccc053c08b11acd12a + + -- Julien Cristau Mon, 14 Sep 2009 15:33:46 +0200 + +xorg-server (2:1.6.3-1ubuntu7) karmic; urgency=low + + * Add 187_lastdeviceeventtime-no-reset.patch: Avoids resetting IDLETIME on + DPMS events. Cherrypick from upstream. + (LP: #397839) + + -- Loïc Minier Mon, 28 Sep 2009 10:54:08 +0200 + +xorg-server (2:1.6.3-1ubuntu6) karmic; urgency=low + + * Add 186_autoconfig_geode.patch: Add autoconfiguration support for + older geode cards. Cherrypick from upstream. + (LP: #423866) + + -- Bryce Harrington Tue, 08 Sep 2009 15:43:28 -0700 + +xorg-server (2:1.6.3-1ubuntu5) karmic; urgency=low + + * Add 185_dix_badwindow.patch: dixLookupWindow may return BadMatch if + the window in question isn't actually a window. In this case, + GetProperty needs to return BadWindow - not BadMatch. Fixes unexpected + crash in some GNOME applications not expecting to get BadMatch returned + from this function call. + (LP: #321041) + + -- Bryce Harrington Thu, 03 Sep 2009 18:27:04 -0700 + +xorg-server (2:1.6.3-1ubuntu4) karmic; urgency=low + + * Add 184_virtual_devices_autodetect.patch: Automatic driver detection + for vbox and kvm for non-cirrus devices. + (LP: #338219, #348497) + + -- Bryce Harrington Mon, 24 Aug 2009 14:58:22 -0700 + +xorg-server (2:1.6.3-1ubuntu3) karmic; urgency=low + + * Add 183_dont_reset_event_time.patch: Upstream cherrypick. + Fix another random display blanking issue. When we turn off DPMS with + DPMSModeOff and do dixSaveScreens, don't reset the event time else + session clients using IDLETIME will be reset. + See http://blogs.gnome.org/hughsie/2009/08/17/ + + -- Bryce Harrington Wed, 19 Aug 2009 10:21:45 -0700 + +xorg-server (2:1.6.3-1ubuntu2) karmic; urgency=low + + * Add 182_negative_sync_transitions.patch: Upstream cherrypick. + Fix random blanking display when system is not idle, caused by + mishandling of negative transition triggers in XSync. + (LP: #397839) + + -- Bryce Harrington Fri, 14 Aug 2009 11:21:09 -0700 + +xorg-server (2:1.6.3-1ubuntu1) karmic; urgency=low + + * Merge from Debian unstable. + * control: Drop libaudit-dev from build-deps, since SELinux-support + is still disabled anyway. + * Drop 182_fedora_quirk_pea.patch, included in 1.6.3. + + -- Timo Aaltonen Wed, 05 Aug 2009 14:11:01 +0300 + +xorg-server (2:1.6.3-1) unstable; urgency=low + + * New upstream release. + + -- Brice Goglin Sat, 01 Aug 2009 08:55:40 +0200 + +xorg-server (2:1.6.2.901-1ubuntu3) karmic; urgency=low + + * Add 182_fedora_quirk_pea.patch: Quirk for Peacock Ergovision 19 + to use first detailed mode. + * Add 181_fedora_log_proc_cmdline.patch: Log the /proc/cmdline into + Xorg.0.log + * Add 180_fedora_no_synaptics_mouse_synthesis.patch: Don't synthesise a + mouse section if synaptics devices are found. + (LP: #406291, #405281, #396908) + * Actually enable patches 178 and 179 + + -- Bryce Harrington Tue, 04 Aug 2009 02:37:12 -0700 + +xorg-server (2:1.6.2.901-1ubuntu2) karmic; urgency=low + + * Add 178_glx_flush_cache.patch and 179_glx_cleanup_drawables.patch: + - Cleanup destroyed windows and drawables, to prevent crash during + compiz startup. + (LP: #408293) + + -- Bryce Harrington Mon, 03 Aug 2009 07:55:12 -0700 + +xorg-server (2:1.6.2.901-1ubuntu1) karmic; urgency=low + + [ Timo Aaltonen ] + * Merge from Debian unstable. (LP: #403316) + * Drop 170_primary_pci_video_device.patch, included in Debian + + -- Timo Aaltonen Tue, 28 Jul 2009 15:34:16 +0300 + +xorg-server (2:1.6.2.901-1) unstable; urgency=low + + * New upstream release candidate. + * Bump mesa Build-Depends to >= 7.5 to fix DRI2 madness again, + closes: #538637. + + -- Brice Goglin Mon, 27 Jul 2009 00:17:42 +0200 + +xorg-server (2:1.6.2-1) unstable; urgency=low + + [ Brice Goglin ] + * New upstream release. + + Fixes dri2 madness introduced in previous upload + (closes: #534522, #536019, #534766, #534771, #534890). + + Fixes xkb bogus length in write keyboard desc, closes: #529625. + + Fixes SWCursor being multiply rendered, closes: #526260. + + Drop Change-default-for-ExaOptimizeMigration-to-false.diff, + applied upstream. + + Pull upstream server-1.6-branch up to commit 606f6dba. + * Bump serverminver to 2:1.6.2 for the dri2 upstream changes in the + previous upload. + + [ Julien Cristau ] + * Bump xserver-xorg-dev's dependency on dri2proto to >= 2.1 for the same + reason. + * Don't set PCI_TXT_IDS_DIR, we don't use that anymore. + * xserver-xorg-core.bug.script: add a newline between X log and lshal + output. + + -- Brice Goglin Mon, 13 Jul 2009 23:35:13 +0200 + +xorg-server (2:1.6.1.901-3) unstable; urgency=low + + [ Julien Cristau ] + * xvfb-run: don't pass the magic cookie to xauth on the command line + (CVE-2009-1573; closes: #526678). Thanks, Loïc Minier! + * xvfb-run: use mktemp to create the temporary directory. + * Change default for ExaOptimizeMigration to false. This option still + causes visual corruption in some cases. Thanks, Michel Dänzer! + * Only include hal info for keyboards, mice, touchpads and tablets in the + bug script. + * In the bug script, grep dmesg for agp in addition to drm. + * Add patch stolen from Fedora to disable the fbdev driver when it's loaded + together with a PCI or SBUS driver, instead of calling FatalError (closes: + #508476). + * Add patch stolen from Fedora to try and detect the primary PCI device by + mapping the legacy VGA bios and comparing the vendor and device ids. + Previously if there was more than one VGA device and the config didn't + specify BusIDs, the server would just fail to start, so this hack should + improve things. + * Update configure options: + + use --enable-xvfb instead of --enable-vfb + + drop --disable-builtin-fonts, --enable-xtrap, --disable-kdrive-vesa, + --disable-lbx, --disable-xprint, --disable-xorgconfig, --disable-xorgcfg + which don't exist anymore + + use --disable-config-hal and --disable-dri on hurd-i386 + + reorder options to match configure.ac, and use explicit + --enable/--disable instead of using the defaults / autodetection + * Don't recommend xfonts-base. libXfont provides builtin versions of the + fixed and cursor fonts, which are the only required ones. Keep xfonts-* + packages in Suggests for xserver-xorg-core. + * Bump Standards-Version to 3.8.2 now that we have README.source. + * Drop Build-Conflicts on xlibs-static-dev; it's only in oldstable at this + point. + * Pull from upstream server-1.6-branch as of June 23rd (commit dbac41b). + * Bump build-dep on dri2proto to 2.1 for new protocol. + * Bump build-dep on libselinux1-dev to 2.0.80 for avc_netlink_acquire_fd. + + [ David Nusinow ] + * Add README.source + + -- Julien Cristau Tue, 23 Jun 2009 19:52:10 +0200 + +xorg-server (2:1.6.1.901-2ubuntu2) karmic; urgency=low + + * Add xserver-1.5.0-bad-fbdev-thats-mine.patch - If no xorg.conf is + specified, framebuffer device can erroneously grab the PCI. Make + it fail instead in this case. + (LP: #383407) + + -- Bryce Harrington Wed, 24 Jun 2009 15:24:44 -0700 + +xorg-server (2:1.6.1.901-2ubuntu1) karmic; urgency=low + + * Merge from Debian unstable. + * Dropped patches: + - obsolete: + 100_xserver_exa_force_greedy.patch + 107_fedora_dont_backfill_bg_none.patch + - upstream: + 163_thinko_in_xf86targetpreferred.patch + 171_xkb_geometry_copying.patch + 173_edid_quirk_philips_lcd.patch + 175_set_pointer_screen_in_xtestfakeinput.patch + 176_quell_warning_exacopydirty.patch + - included by Debian: 999_default_modedebug_on.patch + * Disable 143_default_to_vesa.patch for now, breaks autoconfiguration + when the pci-ids directory exists but has no match. (LP: #379504) + * Disable SELinux support for now, because libaudit-dev needs to be + moved to main first. + + -- Timo Aaltonen Sun, 24 May 2009 00:32:37 +0300 + +xorg-server (2:1.6.1.901-2) unstable; urgency=low + + * Merge from upstream server-1.6-branch (commit a9f85dce). + * Fix FTBFS on kfreebsd (closes: #525475). Thanks, Petr Salinger! + + -- Julien Cristau Thu, 14 May 2009 17:37:40 +0200 + +xorg-server (2:1.6.1.901-1) experimental; urgency=low + + * New upstream development release + + fixes crash in CheckMotion with xinerama (closes: #524853) + + Refresh 20_hurd-i386.diff + + [ Brice Goglin ] + * Add 20_hurd-i386.diff to fix FTBFS on hurd-i386, + thanks Samuel Thibault! (closes: #523970) + + [ David Nusinow ] + * Have the reportbug script append lshal and drm info. + The drm info comes from grepping dmesg output. + + [ Julien Cristau ] + * Properly initialize libgcrypt in the libgcrypt patch (closes: #524822). + Thanks, Sven Joachim! + + -- David Nusinow Mon, 11 May 2009 21:50:37 -0400 + +xorg-server (2:1.6.1-1) unstable; urgency=low + + [ Julien Cristau ] + * Disable dri2 on hurd-i386. Thanks, Samuel Thibault! + + [ Brice Goglin ] + * New upstream release. + + -- Brice Goglin Wed, 15 Apr 2009 13:30:51 +0200 + +xorg-server (2:1.6.0-1) unstable; urgency=low + + [ David Nusinow ] + * Add 0001-xorg.conf-5-refer-to-mousedrv-4-.-Debian-394058.patch to + refer to correct (semi-obsolete) mouse driver manpage. + closes: #394058 + + [ Julien Cristau ] + * New upstream release. + * 0001-mi-force-the-paired-kbd-device-before-CopyKeyClass.patch: remove, + included upstream. + * Turn on ModeDebug by default. + * Use libgcrypt for SHA1 instead of OpenSSL's libcrypto. + * Build the xselinux extension on Linux architectures. + * Remove build-dependencies on x11proto-evie-dev, x11proto-trap-dev, + x11proto-xf86misc-dev; the corresponding extensions are removed. + * Remove build-dependencies on x11proto-print-dev, libfreetype6-dev and + xfonts-utils since we don't build Xprt anymore. + * Fix lintian warnings about xserver-xorg-core.NEWS formatting. + * Move -dbg package to new section debug, add ${misc:Depends} where missing. + * Remove unused 06_use_proc_instead_of_sysfs_for_pci_domains.diff, obsoleted + by pci-rework. + * Merge changelog entries 2:1.4.2-9 to 2:1.4.2-11. + * Upload to unstable. + + -- Julien Cristau Thu, 09 Apr 2009 00:36:40 +0100 + +xorg-server (2:1.6.0-0ubuntu15) karmic; urgency=low + + * Re-enable 999_default_modedebug_on.patch to provide debug info in + Xorg.0.log for development series. + + -- Bryce Harrington Sun, 10 May 2009 22:35:02 -0700 + +xorg-server (2:1.6.0-0ubuntu14) jaunty; urgency=low + + * Add 177_animated_cursor_change_master.patch: Fixes crash when using + animated cursors. + (LP: #358009) + + -- Bryce Harrington Wed, 08 Apr 2009 18:52:56 -0700 + +xorg-server (2:1.6.0-0ubuntu13) jaunty; urgency=low + + * Add 176_quell_warning_exacopydirty.patch: Quells innocuous but scary + sounding "exaCopyDirty: Pending damage region empty!" warning, as it + can lead to false-positives with bug reporters. + + -- Bryce Harrington Wed, 08 Apr 2009 14:49:36 -0700 + +xorg-server (2:1.6.0-0ubuntu12) jaunty; urgency=low + + * local/xvfb-run: Revert change from 2:1.6.0-0ubuntu9; prevents running + multiple times. + (LP: #357338. Reopen 348052 rejecting patch) + + -- Bryce Harrington Tue, 07 Apr 2009 15:21:32 -0700 + +xorg-server (2:1.6.0-0ubuntu11) jaunty; urgency=low + + * Add 175_set_pointer_screen_in_xtestfakeinput.patch: Fixes issue when + using Vino, mouse cursor can get stuck in the upper left corner of the + screen. The POINTER_SCREEN flag must be set explicitly for XTest core events to avoid + out-of-range events when the lastSlave was an SD with an explicit axis range. + Device events sent through XTest don't need this flag, they are expected to be + in the valuator range of the device anyway. + (LP: #337926) + + -- Bryce Harrington Mon, 06 Apr 2009 17:22:35 -0700 + +xorg-server (2:1.6.0-0ubuntu10) jaunty; urgency=low + + * debian/patches/174_set_bg_pixmap_of_cow_to_none.patch: + - Set bg pixmap of composite overlay window to None. + Thanks to Havoc Pennington for the patch. + (LP: #356254). + + -- Alberto Milone Mon, 06 Apr 2009 15:06:14 +0200 + +xorg-server (2:1.6.0-0ubuntu9) jaunty; urgency=low + + * local/xvfb-run: Fixes race condition with concurrent invocations + (LP: #348052) + * local/xvfb-run, xvfb-run.1: Add correct docs about error codes + (LP: #328205) + * local/xserver-xephyr.1, rules, xserver-xephyr.install: Add man page + for xephyr + (LP: #134906) + + -- Bryce Harrington Wed, 01 Apr 2009 20:37:22 -0700 + +xorg-server (2:1.6.0-0ubuntu8) jaunty; urgency=low + + * Add 173_edid_quirk_philips_lcd.patch : + Quirk for wrongly reported screen dimensions. + Fixes "huge fonts" issues. + (LP: #353074) + + -- Tormod Volden Wed, 01 Apr 2009 19:47:13 +0200 + +xorg-server (2:1.6.0-0ubuntu7) jaunty; urgency=low + + * Add 172_cwgetbackingpicture_nullptr_check.patch: + - cwGetBackingPicture can segfault when minimizing/maximizing firefox with + a flash video playing. This appears to be a race condition in which the + backing picture's data is not always fully defined. + (LP: #319402) + + -- Bryce Harrington Mon, 30 Mar 2009 22:20:17 -0700 + +xorg-server (2:1.6.0-0ubuntu6) jaunty; urgency=low + + * Add 171_xkb_geometry_copying.patch: + - Fixes crash when plugging/unplugging USB devices due to incorrect + copying of XKB geometry base_color and label_color. Patch + cherrypicked from upstream. + (LP: #333222, #321946) + + -- Bryce Harrington Fri, 27 Mar 2009 19:58:33 -0700 + +xorg-server (2:1.6.0-0ubuntu5) jaunty; urgency=low + + [Tormod Volden] + * Disable 160_log_timestamping.patch before the beta, this was only used + for testing, and the patch also has a serious stack corruption bug. + (LP: #328035) + + [Bryce Harrington] + * Disable 999_default_modedebug_on.patch before the beta, this was used + only for testing. + * Add 169_mipointer_nullptr_checks.patch: + - MIPOINTER() can return NULL in some circumstances, so always check + its return value before dereferencing. + - Fixes crash with keyrepeat on non-primary screen on -nvidia when + using Xinerama (and probably other serious mipointer-related crashes) + (LP: #324465) + * Add 170_primary_pci_video_device.patch: + - Patch from redhat + - Fixes failure when multiple video cards are present. Xserver currently + exits with an error "(EE) No device detected" in such cases. + (LP: #267241) + + -- Bryce Harrington Tue, 24 Mar 2009 09:57:17 -0700 + +xorg-server (2:1.6.0-0ubuntu4) jaunty; urgency=low + + * Add 168_glibc_trace_to_stderr.patch: + - Catch glibc internal abort traces on stderr instead of to the + controlling terminal (LP: #345748). + + -- Kees Cook Thu, 19 Mar 2009 22:39:33 -0700 + +xorg-server (2:1.6.0-0ubuntu3) jaunty; urgency=low + + * Add 165_man_xorg_conf_no_device_ident.patch: + - Device identifier no longer necessary in Screen section of + xorg.conf. Update man page accordingly. + (LP: #261577) + * Add 166_nullptr_xinerama_keyrepeat.patch: + - Avoids null pointer dereference when holding down keys on + non-primary screen when using TwinView / Xinerama on -nvidia. + (LP: #324465) + * Add 167_nullptr_xisbread.patch: + - Avoids null pointer dereference in XisbRead to prevent a (difficult + to reproduce) crash during or after a resume from RAM. + (LP: #324368) + + -- Bryce Harrington Thu, 19 Mar 2009 00:17:40 -0700 + +xorg-server (2:1.6.0-0ubuntu2) jaunty; urgency=low + + * Add 163_thinko_in_xf86targetpreferred.patch: + - For monitors that do not define a "preferred" mode, if the monitor + is not connected to the first output, X wouldn't pick up the mode + correctly, resulting in a "No modes" error in Xorg.0.log and dropping + user to failsafe-X mode. + (LP: #335214) + * Add 164_trap-aspect-ratios.patch: + - Some monitors fib in the EDID they provide, giving their physical + dimensions in the global block, and their aspect ratio(!) in + the detailed timings. This totally messes up DPI calculations + resulting in huge fonts. + (LP: #320930) + + -- Bryce Harrington Wed, 18 Mar 2009 20:47:12 -0700 + +xorg-server (2:1.6.0-0ubuntu1) jaunty; urgency=low + + [ Bryce Harrington ] + * New upstream release + - Fixes segfault during X startup for drivers with RANDR < 1.2 + (LP: #319210) + - Fixes EDID for monitors that incorrectly report aspect ratio instead + of resolution (LP: #311485) + - Fixes issue where X stops responding to mouse clicks after some time + if using Xinerama. (LP: #296167) + * Add 162_null_crtc_in_rotation.patch: Fixes crash when two displays on + separate cards are attached. X doesn't work with multiple cards yet, + but crashing is not an appropriate way to handle such a situation. + (LP: #139990) + + [ Timo Aaltonen ] + * 159_xinerama_focus.patch, + 161_force_paired_kbd_device.patch: + - Dropped, applied upstream + + -- Bryce Harrington Fri, 06 Mar 2009 14:44:31 -0800 + +xorg-server (2:1.5.99.902-1) experimental; urgency=low + + * New upstream release candidate. + * xserver-xorg-core.install: there are no more font modules. + * 0001-mi-force-the-paired-kbd-device-before-CopyKeyClass.patch: new patch, + fixes a crash with some multimedia keyboards (closes: #513384). + + -- Julien Cristau Sat, 31 Jan 2009 19:32:31 +0100 + +xorg-server (2:1.5.99.902-0ubuntu7) jaunty; urgency=low + + * Add 161_force_paired_kbd_device.patch: Fixes issue where a multimedia + keyboard (or keyboard-like device) sends its multimedia key events + through the mouse device file. In this case, pair the device with the + master before processing the events. Patch cherrypicked from upstream. + (LP: #318261) + + -- Bryce Harrington Tue, 17 Feb 2009 17:20:51 -0800 + +xorg-server (2:1.5.99.902-0ubuntu6) jaunty; urgency=low + + * Add 999_default_modedebug_on.patch. Defaults ModeDebug to on. + Upstream requests that users include this option when forwarding bugs + upstream, thus it should be carried at least during development and + reverted by -beta. Performance won't be impacted, and boot time will + be slowed only a negligible amount, as it merely adds a few additional + prints. + + -- Bryce Harrington Tue, 10 Feb 2009 14:06:38 -0800 + +xorg-server (2:1.5.99.902-0ubuntu5) jaunty; urgency=low + + * Revert 158_raise_maxclients.patch. Breaks -nvidia. Binary drivers FTL. + (LP: #326344) + + -- Bryce Harrington Mon, 09 Feb 2009 13:51:04 -0800 + +xorg-server (2:1.5.99.902-0ubuntu4) jaunty; urgency=low + + * 160_log_timestamping.patch: Only add timestamp on tagged messages + (LP: #285787) + + -- Tormod Volden Fri, 06 Feb 2009 23:33:11 +0100 + +xorg-server (2:1.5.99.902-0ubuntu3) jaunty; urgency=low + + * Add 160_log_timestamping.patch: Show timestamps in Xorg.*.log + files. + (LP: #285787) + + -- Bryce Harrington Fri, 06 Feb 2009 06:28:48 -0800 + +xorg-server (2:1.5.99.902-0ubuntu2) jaunty; urgency=low + + [Bryce Harrington] + * Add 157_check_null_modes.patch: Catch null pointer dereference in + video mode selection, which can cause xserver crash when using SDL + applications with qemu/kvm. + (LP: #300310) + * Add 158_raise_maxclients.patch to raise max number of clients from 256 + to 512. Trade-off is that this reduces client resources available to + 1,048,576 total resources (which should still be ample). + (LP: #260138) + + [Steven Harms] + * 159_xinerama_focus.patch: Resolves xinerama focus issues + with multiple screens + (LP: #41301) + + -- Bryce Harrington Wed, 04 Feb 2009 22:33:28 -0800 + +xorg-server (2:1.5.99.902-0ubuntu1) jaunty; urgency=low + + * New upstream release candidate. + + -- Timo Aaltonen Sat, 31 Jan 2009 11:03:52 +0200 + +xorg-server (2:1.5.99.901-2) experimental; urgency=low + + [ Julien Cristau ] + * Bump libdrm-dev build-dep to help out sbuild. + + [ Timo Aaltonen ] + * debian/rules: Disable builtin fonts (LP: #308649, closes: #512706) + + -- Julien Cristau Fri, 23 Jan 2009 21:16:14 +0100 + +xorg-server (2:1.5.99.901-1ubuntu1) jaunty; urgency=low + + * Merge with Debian experimental. + * debian/rules: Include xorg-server.conf for dbus support. + + -- Timo Aaltonen Fri, 23 Jan 2009 13:53:33 +0200 + +xorg-server (2:1.5.99.901-1) experimental; urgency=low + + * New upstream release candidate. + + adds autodetection of sbus devices (closes: #483942). + Thanks, Bernhard R. Link! + + RandR version 1.3 adds panning (closes: #509699). + + fixes a crash with XAA and fb24_32ReformatTile (closes: #443480). + + correctly sets RAW mode on the console when xorg.conf is absent + (closes: #505746). + + [ Timo Aaltonen ] + * debian/control: + - Add x11proto-dri2-dev to build-depends. + - Bump the x11proto-randr-dev build-dep version to 1.2.99.3. + - Bump the libpixman-1-dev build-dep version to 0.13.2. + - Bump the xtrans-dev build-dep version to 1.2.2. + - Bump the x11proto-xext-dev build-dep version to 7.0.3. + - Bump the x11proto-input-dev build-dep version to 1.5. + - Bump the libgl1-mesa-dev and mesa-common-dev build-dep to + 7.2+git20081209.a0d5c3cf. + - Bump the x11proto-core build-dep to 7.0.13. + - Add a build-dep on libxinerama-dev. + - Conflict xserver-xorg-video-4, xserver-xorg-input-2.1. + * debian/rules: + - Enable dri2 again. + * debian/patches: + 02_Disable-DRI-in-Xephyr.patch + 03_glx-init-infinite-loop.diff + - Dropped, implemented upstream. + 13_debian_add_xkbpath_env_variable.diff + - Disabled for now, needs to be reimplemented or dropped. + * debian/{input,video}abiver: Bump the input (4) and videoabiver (5). + * debian/serverminver: Bump to 2:1.5.99.901. + + [ Julien Cristau ] + * Ditch the GLX Public License and the CID Font Code Public License from + debian/copyright. The CID code has been removed a while ago, and all code + under the GLXPL has been relicensed to the SGI Free Software License B 2.0. + This finally closes: #211765. + + [ Yves-Alexis Perez ] + * debian/control: update deps for xserver-xorg-dev: + - libpixman-1-dev (>= 0.13.2-1) + - x11proto-core-dev (>= 7.0.14) + - x11proto-input-dev (>= 1.5.0) + - x11proto-xext-dev (>= 7.0.4) + - x11proto-randr-dev (>= 1.2.99.3) + - add x11proto-dri2-dev + + -- Julien Cristau Wed, 21 Jan 2009 20:59:34 +0100 + +xorg-server (2:1.5.99.901-0ubuntu1) jaunty; urgency=low + + [ Timo Aaltonen ] + * debian/rules: Enable dbus-support. + * Merge current server-1.6-branch. + * Disable patch 107 for now, to see what kind of a performance hit + it'll be. The problem it causes is random garbage on windows + while apps are being loaded. + (LP: #254468) + * Remove patches 150, 151, 152, 154, applied upstream. + + [ Bryce Harrington ] + * 156_exevents_copykeyclass_nullptrcheck.patch: Add several NULL pointer + checks in CopyKeyClass to prevent SEGFAULT seen when pressing button + on an ATI USB remote control. + (LP: #311254) + + -- Timo Aaltonen Sat, 17 Jan 2009 16:17:58 +0200 + +xorg-server (2:1.5.99.3-0ubuntu3) jaunty; urgency=low + + [Timo Aaltonen] + * debian/rules: Disable builtin fonts (LP: #308649) + + [Bryce Harrington] + * 135_rethrow_signals.patch: Update for 1.6 and re-enable. + (LP: #226668) + + -- Bryce Harrington Tue, 16 Dec 2008 19:04:14 -0800 + +xorg-server (2:1.5.99.3-0ubuntu2) jaunty; urgency=low + + * Merge server-1.6-branch (LP: #308225). + + -- Timo Aaltonen Tue, 16 Dec 2008 10:00:58 +0200 + +xorg-server (2:1.5.99.3-0ubuntu1) jaunty; urgency=low + + * Merge from debian experimental git branch. + * Dropped patches: + - 103_inputproto_1.4.3_is_fine.patch: obsolete + - 137_add_device_property_support.patch: upstream + - 138_look_at_all_bytes_of_dev_enabled.diff: upstream + - 141_improved_driver_selection.patch: upstream + - 150_no_visibility_notify_on_unredirect.patch: upstream + * 110_fedora_no_move_damage.patch modified to use new function names. + * Renumbered 142_psb_auto.patch to 103. + * Add a couple of patches from the proposed queue: + - 150_dont-update-vcp-valuators.patch + The VCP doesn't need to update the valuators anyway since it cannot + send XI events. Just skip that bit. + - 151_allow-null-as-rulesfile.patch + If no rules file is given, simply re-use the previous one. If no + RF is given the first time this function is called, use the + built-in default. + - 152_let-the-ddx-decide-on-the-xkbrulesdefaults.patch + Rather than assuming rules in the CoreKeyboardProc, init the default + rules in InitCoreDevices, then re-use them later. + * Add 153_make_dmx_compile.patch + - Change xcalloc -> calloc, so that dmx compiles. Not tested if it + also works. + * Drop patch 136, since SwitchCoreKeyboard is gone, and patches 151/152 + basically reimplement the functionality. + * Add 154_force-copykeyclass-for-key-events.patch, to fix fdo + bug 19048. Without this the server default layout would always be + used. + + [ Bryce Harrington ] + * Patch 135 updated so that apport actually works now, but leave it + disabled until the code is updated for 1.6. + + -- Timo Aaltonen Mon, 15 Dec 2008 11:34:53 +0200 + + +xorg-server (2:1.5.3-1ubuntu1) jaunty; urgency=low + + * Merge from debian-experimental, remaining changes: + + debian/control: + - x11proto-input-dev, libxi-dev build-deps bumped because of + input properties. + - Conflict with xserver-xorg-video-psb << 0.15.0-0ubuntu1~804um5 + as these versions didn't have an ABI provide. + - Breaks old synaptics, evdev which didn't have properties. + + debian/patches: + - 100_xserver_exa_force_greedy.patch + Provide a mechanism for drivers to force greedy mode on. + - 101_fedora_xserver-1.3.0-document-fontpath-correctly.patch + Fixes document fontpaths shown in the man page. + - 102_ubuntu_sharevts_load_cpu.patch + Close console fd only when using --sharevts. + - 103_inputproto_1.4.3_is_fine.patch: + Don't require inputproto 1.4.4 in configure.ac. + - 107_fedora_dont_backfill_bg_none.patch + Disable backfilling of windows created with bg=none, which + would otherwise force a framebuffer readback. + - 110_fedora_no_move_damage.patch + Disable damage notifications on move for manually redirected windows. + - 121_only_switch_vt_when_active.diff + Add a check to prevent the X server from changing the VT when + killing GDM from the console. + - 135_rethrow_signals.patch + Currently Xorg "eats" its crash signals, issuing an error message + that it caught the signal and then aborts. This patch raises the + signal it caught, so that subsequent crash handlers (i.e. apport) + can also catch and act on it. + - 136_fedora_force_switchcorekeyboard_for_evdev.patch + Allow clients to set the layout. + - 137_add_device_property_support.patch + Add support for input-device properties (XI 1.5). + - 138_look_at_all_bytes_of_dev_enabled.diff: dev->enabled has type + Bool, which is typedef'd to int, but is used in comparisons with + CARD8 data, which gives incorrect logic on big endian systems, + causing failure to initialize keyboard and mouse. + - 140_quell_acpid_errmsgs.patch: Don't fill the server log with errors + from not being able to connect to acpid. + - 141_improved_driver_selection.patch + Allow returning multiple drivers to try for a given PCI id. + Also includes support for fallback drivers, but only when + not using an xorg.conf. + - 142_psb_auto.patch + Autoload vesa for the psb hardware, psb being broken currently. + - 143_default_to_vesa.patch: If no matching driver is found in the + .ids files, set "vesa" as a fallback default, otherwise a driver + may be selected regardless of whether it actually provides support + for the chipset by videoPtrToDriverList() based on its vendor id. + - 150_no_visibility_notify_on_unredirect.patch + Do not sent VisibilityNotify events when MapUnmapEvents + are disabled + + debian/local/xvfb-run: disable the Composite-extension for xvfb. + + debian/serverminver: Bump the serverminver because of the newer + properties API. + + debian/rules: + Add --enable-xcsecurity --enable-appgroup. The SECURITY module was + disabled by default as part of the SELinux merge. However, we need + the security module for xauth on Kubuntu, else ubiquity fails. + (LP 247537) + * Changes done: + - debian/control: xfvb doesn't need to Depend on xauth, xfonts-base + anymore, Recommends are pulled in by default now. + + -- Timo Aaltonen Wed, 26 Nov 2008 13:42:11 +0200 + +xorg-server (2:1.5.3-1) experimental; urgency=low + + [ Loic Minier ] + * Shut up rmdir error when trying to remove dirs; this might confuse + debconf. + + [ Julien Cristau ] + * New upstream release. + * Fix infinite loop on server reset when swrast_dri.so is missing. Only + push swrast on the glx provider stack on first generation, so we don't + turn the stack into a circular list (closes: #500287). + * Enable the record extension (closes: #504303). + * Merge changes from 2:1.4.2-8. + + -- Julien Cristau Tue, 11 Nov 2008 23:17:14 +0100 + +xorg-server (2:1.5.2-2ubuntu3) intrepid; urgency=low + + * 138_look_at_all_bytes_of_dev_enabled.diff: dev->enabled has type + Bool, which is typedef'd to int, but is used in comparisons with + CARD8 data, which gives incorrect logic on big endian systems, + causing failure to initialize keyboard and mouse. + (LP: #281610) + + -- Bryce Harrington Thu, 23 Oct 2008 07:31:47 -0700 + +xorg-server (2:1.5.2-2ubuntu2) intrepid; urgency=low + + * 143_default_to_vesa.patch: If no matching driver is found in the + .ids files, set "vesa" as a fallback default, otherwise a driver + may be selected regardless of whether it actually provides support + for the chipset by videoPtrToDriverList() based on its vendor id. + (LP: #261977) + + -- Bryce Harrington Thu, 23 Oct 2008 06:21:18 -0700 + +xorg-server (2:1.5.2-2ubuntu1) intrepid; urgency=low + + * debian/patches/150_no_visibility_notify_on_unredirect.patch + - do not sent VisibilityNotify events when MapUnmapEvents + are disabled (LP: #278112) + + -- Michael Vogt Sat, 18 Oct 2008 00:05:30 +0200 + +xorg-server (2:1.5.2-1ubuntu4) intrepid; urgency=low + + * Update patch 142_psb_auto to only try vesa, not even psb, as this requires + the psb driver to be loadable, and it's not available anymore (and broken + anyway). + + -- Loic Minier Wed, 15 Oct 2008 18:14:28 +0200 + +xorg-server (2:1.5.2-1ubuntu3) intrepid; urgency=low + + * Shut up rmdir error when trying to remove dirs; this might confuse + debconf. + + -- Loic Minier Wed, 15 Oct 2008 17:57:13 +0200 + +xorg-server (2:1.5.2-1ubuntu2) intrepid; urgency=low + + * Update patch 142_psb_auto to also try psb and vesa for 0x8109. + * Apply and drop patch 123_no_composite_for_xvfb_run which was changing + files below debian/ (xvfb-run, to disable the Composite extension by + default). + + -- Loic Minier Wed, 15 Oct 2008 15:27:23 +0200 + +xorg-server (2:1.5.2-1ubuntu1) intrepid; urgency=low + + * Merge from debian-experimental. + * Update patch 142_psb_auto to try vesa if psb fails; thanks Oliver Grawert. + * Refresh patch 100_xserver_exa_force_greedy to apply cleanly. + * Let xserver-xorg-core conflict with xserver-xorg-video-psb + << 0.15.0-0ubuntu1~804um5 as these versions didn't have an ABI provide. + + -- Loic Minier Tue, 14 Oct 2008 23:03:06 +0200 + +xorg-server (2:1.5.2-1) experimental; urgency=low + + * New upstream bugfix release. + * debian/rules: define PCI_TXT_IDS_DIR to unbreak the pci id matching using + plain text files provided by drivers. + * Don't pass --with-serverconfig-path to configure, we only used to override + it for Xprint. + * Re-introduce the xserver-common package, containing + /usr/lib/xorg/protocol.txt and the Xserver(1) manpage for now. + * debian/rules: Use filter instead of findstring for noopt in + DEB_BUILD_OPTIONS. + * Remove obsolete conffile /etc/X11/xserver/SecurityPolicy on upgrades. + * Merge changes from 2:1.4.2-7. + + -- Julien Cristau Sat, 11 Oct 2008 20:20:28 +0200 + +xorg-server (2:1.5.1-1ubuntu3) intrepid; urgency=low + + * Pull upstream changes from server-1.5-branch including b595b65e: + - Fix GKVE with key_code > 255 (LP: #274203) + - DGA: Fix ProcXF86DGASetViewPort for missing support in driver. + Fixes a segfault when trying to activate a DGA mode without + checking whether DGA modesetting is at all possible. + - Check nextEnabledOutput()'s return in bestModeForAspect() + In case no enabled outputs, we will reference wrong index of + output array. + - int10: Fix a nasty memory leak. + - int10: Don't warn when scanning for devices we don't have. + Some BIOSes (hi XGI!) will attempt to enumerate the PCI bus by + asking for the config space of every possible device number. + This despite perfectly functional BIOS methods to enumerate the + bus exactly. + - int10: Remove useless check. + If you have more than one PCI device with the same d/b/d/f, you're + already in trouble. + - http://bugs.freedesktop.org/show_bug.cgi?id=14373 + xkb: squash canonical types into explicit ones on core reconstruction. + xkb: fix core keyboard map generation. + - xkb: fix use of uninitialized variable. + - Remove usage of mfbChangeWindowAttributes missed in e4d11e58c... + - Only build dri2 when DRI2 is enabled. + * Merge patches 138 and 139 into 137, and update the properties API to + match the current version in master (final API for XI 1.5). + (LP: #274728) + * Bump the build-dep on x11proto-input-dev and libxi-dev. + * Bump the serverminver because of newer properties API. + * Add Breaks against current synaptics and evdev, since they use the old + API and need to be updated with the server. + + -- Timo Aaltonen Fri, 10 Oct 2008 11:16:56 +0300 + +xorg-server (2:1.5.1-1ubuntu2) intrepid; urgency=low + + * Merge with Debian experimental: + - debian/rules: define PCI_TXT_IDS_DIR to unbreak the pci id matching + using plain text files provided by drivers. (LP: #261977) + + -- Timo Aaltonen Fri, 26 Sep 2008 12:05:12 +0300 + +xorg-server (2:1.5.1-1ubuntu1) intrepid; urgency=low + + * Merge with Debian experimental. (LP: #269388) + + -- Timo Aaltonen Wed, 24 Sep 2008 19:33:34 +0300 + +xorg-server (2:1.5.1-1) experimental; urgency=low + + * New upstream bugfix release. + * 02_Disable-DRI-in-Xephyr.patch: don't use DRI in Xephyr, as it doesn't + work correctly. + * Merge changelog from 2:1.4.2-6 (all changes are upstream now). + + -- Julien Cristau Wed, 24 Sep 2008 17:49:18 +0200 + +xorg-server (2:1.5.0-1ubuntu1) intrepid; urgency=low + + * Merge with Debian experimental. + * 141_improved_driver_selection.patch + - Allow returning multiple drivers to try for a given PCI id. + Also includes support for fallback drivers, but only when + not using an xorg.conf. + * 142_psb_auto.patch + - Renamed, refreshed. + + -- Timo Aaltonen Tue, 09 Sep 2008 11:44:13 +0300 + +xorg-server (2:1.5.0-1) experimental; urgency=low + + * New upstream release. + * Kill patch 50_Make-RandRQueryVersion-return-1.1-for-swapped-client.patch, + 1.2 requests are properly swapped now. + * Bump videoabiver to 4 to match ABI_VIDEODRV_VERSION. Yes, that means + rebuilding video drivers; sorry about that. + + -- Julien Cristau Thu, 04 Sep 2008 02:05:47 +0200 + +xorg-server (2:1.4.99.906-2ubuntu5) intrepid; urgency=low + + * Bump the serverminver because of input properties. + + -- Timo Aaltonen Wed, 03 Sep 2008 16:03:28 +0300 + +xorg-server (2:1.4.99.906-2ubuntu4) intrepid; urgency=low + + [ Bryce Harrington ] + * 140_quell_acpid_errmsgs.patch: Don't fill the server log with errors + from not being able to connect to acpid. (LP: #247195) + + -- Timo Aaltonen Wed, 03 Sep 2008 10:48:24 +0300 + +xorg-server (2:1.4.99.906-2ubuntu3) intrepid; urgency=low + + [ Bryce Harrington ] + * 135_rethrow_signals.patch: Update to make it catch and throw a + wider variety of signals, and do a clean shutdown of the X server + (code borrowed from FatalError()). + + -- Bryce Harrington Mon, 01 Sep 2008 13:19:46 -0700 + +xorg-server (2:1.4.99.906-2ubuntu2) intrepid; urgency=low + + * 103_inputproto_1.4.3_is_fine.patch: + - Don't require inputproto 1.4.4 in configure.ac.. + + -- Timo Aaltonen Thu, 28 Aug 2008 13:24:05 +0300 + +xorg-server (2:1.4.99.906-2ubuntu1) intrepid; urgency=low + + * Merge with Debian experimental. + * Dropped patches, upstream: + 130_fedora_fix_procxkbsetxyz_to_work_on_all.patch + 131_remove_open-coded_strcasestr.patch + 132_add_parsing_for_xkb.options.patch + 133_support_strlist_for_xkboptions.patch + 134_protect_against_out_of_bounds.patch + * control: Fix build-dep on inputproto to >= 1.4.3-2ubuntu2 for + DeviceControlChanged. + + -- Timo Aaltonen Thu, 28 Aug 2008 12:39:33 +0300 + +xorg-server (2:1.4.99.906-2) experimental; urgency=low + + * Pull from server-1.5-branch as of Aug 27th + + input devices from xorg.conf aren't ignored if there is no ServerLayout + option (closes: #492140) + * Bump build-dep on inputproto to >= 1.4.4 for DeviceControlChanged. + * Merge in changes from 2:1.4.2-3 to 2:1.4.2-5. + + -- Julien Cristau Thu, 28 Aug 2008 00:33:02 +0200 + +xorg-server (2:1.4.99.906-1ubuntu4) intrepid; urgency=low + + * 137_add_device_property_support.patch, + 138_xi_expose_enable_disabledevice.patch, + 139_xi_protect_against_null_handlers.patch: + - Add support for input-device properties. + * debian/control: Bump the build-depends on x11proto-input-dev + and libxi-dev. + + -- Timo Aaltonen Fri, 22 Aug 2008 09:00:14 +0300 + +xorg-server (2:1.4.99.906-1ubuntu3) intrepid; urgency=low + + * 130_fedora_fix_procxkbsetxyz_to_work_on_all.patch + 136_fedora_force_switchcorekeyboard_for_evdev.patch + - Allow clients to set the layout. + * Drop 130_fedora_call_switchcorekeyboard.patch, obsoleted. + + -- Timo Aaltonen Wed, 06 Aug 2008 13:30:28 +0300 + +xorg-server (2:1.4.99.906-1ubuntu2) intrepid; urgency=low + + * Add 135_rethrow_signals.patch + - Currently Xorg "eats" its crash signals, issuing an error message + that it caught the signal and then aborts. This patch raises the + signal it caught, so that subsequent crash handlers (i.e. apport) + can also catch and act on it. + + -- Bryce Harrington Tue, 05 Aug 2008 16:20:46 -0700 + +xorg-server (2:1.4.99.906-1ubuntu1) intrepid; urgency=low + + * Merge with debian experimental, 1.5RC6 (LP: #247120, #253021) + * Drop 120_fedora_xserver-xaa-evict-pixmaps.patch, because offscreen + pixmaps are already disabled by default. + * Drop 124_fix_randr_no_crtc.patch, fixed upstream. + * Add 130_fedora_call_switchcorekeyboard.patch, a hack to fix fd.o bug + #16364. Breaks if the first hotplugged keyboard is not the wanted + keyboard. + * Patches from upstream master: + 131_remove_open-coded_strcasestr.patch + - pre-requisite for the rest + 132_add_parsing_for_xkb.options.patch + - parsing xkb.options didn't work (fd.o #16874) + 133_support_strlist_for_xkboptions.patch + - allow using a list for xkb.options like before. + 134_protect_against_out_of_bounds.patch + - protect against potential out-of-bounds indexing. + + -- Timo Aaltonen Tue, 05 Aug 2008 01:49:42 +0300 + +xorg-server (2:1.4.99.906-1) experimental; urgency=low + + * debian/rules: drop useless handling of nostrip in DEB_BUILD_OPTIONS (this + is taken care of by dh_strip); make the rules files and xsfbs.mk + parallel-safe, and enable parallel=n using example code from Debian + Policy. + * debian/rules: put the source package name and version in builderstring + instead of osvendor, add builder email as well; don't explicitly set + osname, configure sets it to $(uname -srm) by default. + * New upstream release candidate. + - fixes 64-bit Xephyr (closes: #491569) + - work around the DIX losing physical monitor dimensions for randr 1.1 + drivers, in particular nvidia (closes: #488987) + - make sure RANDR reports refresh as 0 if pixel clock is 0 (closes: + #490258) + - doesn't try to load dri2 when it's not built (closes: #491651) + * Switch to running autoreconf at build time, and build-depend on automake, + libtool and xutils-dev. + * Reformat the SGI Free Software License B, to shut up over 1000 lintian + warnings. + + -- Julien Cristau Sun, 27 Jul 2008 18:30:45 +0200 + +xorg-server (2:1.4.99.905-0ubuntu5) intrepid; urgency=low + + * debian/rules: + Added --enable-record. By default, xorg-server does not build the + RECORD extension. Added the record module (for Xnee and other purposes). + + -- Chris Nasho Thu, 31 Jul 2008 17:26:00 -0400 + +xorg-server (2:1.4.99.905-0ubuntu4) intrepid; urgency=low + + * debian/rules: + Add --enable-xcsecurity --enable-appgroup. The SECURITY module was + disabled by default in commit 86b2e59bfb79bd042a13c35fbb4ccecec576f629, + as part of the SELinux merge. However, we need the security module + for xauth on Kubuntu, else ubiquity fails. (Ref. LP 247537) + + -- Bryce Harrington Wed, 16 Jul 2008 06:01:45 -0700 + +xorg-server (2:1.4.99.905-0ubuntu3) intrepid; urgency=low + + * patches/124_fix_randr_no_crtc.patch: + + In certain circumstances, xrandr multiscreen initialization fails + to associate crtcs with monitors, resulting in startup failures + in some GDK-based applications when using -vesa. This occurs + because mode-Clock, mode->HTotal, and mode->VTotal are all 0. + (LP: #246585) + + -- Bryce Harrington Tue, 15 Jul 2008 07:01:13 -0700 + +xorg-server (2:1.4.99.905-0ubuntu2) intrepid; urgency=low + + * Merge with debian git, new changes: + - Build with --enable-glx-tls, we build mesa with TLS support + (otherwise swrast_dri.so might fail to load due to unresolved + symbols). + - Make the servers recommend libgl1-mesa-dri (>= 7.1~rc1). Without + this package, the GLX extension fails to initialise (and takes the + server down) due to missing swrast_dri.so. + + -- Timo Aaltonen Mon, 07 Jul 2008 11:44:39 +0300 + +xorg-server (2:1.4.99.905-0ubuntu1) intrepid; urgency=low + + * Merge with Debian experimental, remaining changes: + * debian/control: + - Change maintainer address. + - xvfb Depends on xauth, xfonts-base. + * debian/patches: + - 100_xserver_exa_force_greedy.patch + Provide a mechanism for drivers to force greedy mode on. + - 101_fedora_xserver-1.3.0-document-fontpath-correctly.patch + Fixes document fontpaths shown in the man page. + - 102_ubuntu_sharevts_load_cpu.patch + Close console fd only when using --sharevts. + - 104_psb_auto.patch + Add automatic detection of Poulsbo hardware when running without a + Device definition. + - 107_fedora_dont_backfill_bg_none.patch + Disable backfilling of windows created with bg=none, which + would otherwise force a framebuffer readback. + - 110_fedora_no_move_damage.patch + Disable damage notifications on move for manually redirected windows. + - 120_fedora_xserver-xaa-evict-pixmaps.patch + A hack to evict XAA pixmaps and disable the pixmap cache when the first + texture is bound. + - 121_only_switch_vt_when_active.diff + Add a check to prevent the X server from changing the VT when + killing GDM from the console. + - 123_no_composite_for_xvfb_run.patch + Use "-extension Composite" to fix xvfb-run crashing. + * Cleaned up patches: + - upstream, either directly or otherwise implemented: + 103_fedora_openchrome.patch, 105_reduce_wakeups_from_smart_scheduler.diff + 108_fedora_honor_displaysize.patch, 109_glx_fail_if_no_texture_bound.diff + 144_fedora_xserver-1.3.0-xnest-exposures.patch, + 146_X86EMU-added-blacklist-for-I-O-port-in-0-0xFF-range.patch, + 147_X86EMU-pass-the-correct-bus-dev-fn-tag-to-pci-emula.patch, + 148_dix_touchscreen_fixes.diff, + 149_add_quirks_for_physical_screen_size_issues.patch, + 150_edid_quirk_lp154w01.patch, 151_x86emu_handle_cpuid.patch, + 153_exa_skip_empty_glyphs.diff, 154_fix_rotation_for_multimon.diff, + 155_exa_fix_off-by-one.diff, 156_resize_composite_overlay.diff, + 157_fix_exa_pixmap_width.diff, 158_xkb_wrapping.diff, + 159_xkb_default_to_null.diff, 160_default_to_intel.diff, + 161_fix_big_endian_cursor.diff, 162_cve-2007-6429.diff, + 163_fix_untrusted_access.diff, 164_fix_context_sharing.diff, + 165_fedora_xserver-1.5.0-xaa-option-inversion.patch, + 166_fix_lpl_monitors.diff, 167_xf86AutoConfig_geode_addition.diff, + 168_closedir.patch, + 170_xorg-xserver-1.4-cve-2008-1377.diff, + 171_xorg-xserver-1.4-cve-2008-1379.diff, + 172_xorg-xserver-1.4-cve-2008-2360.diff, + 173_xorg-xserver-1.4-cve-2008-2361.diff, + 174_xorg-xserver-1.4-cve-2008-2362.diff + - obsolete: + 101_fedora-apm-typedefs.patch + 104_fedora_init_origins_fix.patch + 142_fedora_xserver-1.3.0-no-pseudocolor-composite.patch + 169_xf86AutoConfig_choose_default_driver_if_no_pci.patch + - unnecessary: + 106_ubuntu_fpic_libxf86config.patch (the lib is not shipped) + + -- Timo Aaltonen Fri, 04 Jul 2008 13:39:34 +0300 + +xorg-server (2:1.4.99.905-1) experimental; urgency=low + + [ Julien Cristau ] + * New upstream release candidate + - fixes FTBFS on alpha (closes: #472205); won't work, though, because + of #485528 + - fixes FTBFS on GNU/kFreeBSD (closes: #482550) + * 001_ubuntu_add_extra_modelines_from_xorg.patch: remove, replace with + 001_fedora_extramodes.patch stolen from fedora 9 cvs, rev 1.8. + * xvfb: recommend xauth instead of xbase-clients. + * xserver-xfbdev: recommend xfonts-base. + * debian/rules: drop our special handling for stripping modules, which I + think dates back to the days of the custom module loader. + * debian/rules: drop some remaining xprintisms. + * bump serverminver to 2:1.4.99.905. + * Stop build-depending on mesa-swx11-source (mesa 7.1 will build the + software driver itself), and don't pass --with-mesa-source to configure. + * Build with --enable-glx-tls, we build mesa with TLS support (otherwise + swrast_dri.so might fail to load due to unresolved symbols). + * Make the servers recommend libgl1-mesa-dri (>= 7.1~rc1). Without this + package, the GLX extension fails to initialise (and takes the server down) + due to missing swrast_dri.so. + + [ Timo Aaltonen ] + * Re-enable dri & glx. + * Add a build-dep on mesa-common-dev (>= 7.1~rc1) and bump the desired + version of libgl1-mesa-dev respectively. + * Bump the libdrm-dev build-dep version to 2.3.1. + + -- Julien Cristau Sun, 13 Jul 2008 23:33:05 +0200 + +xorg-server (2:1.4.99.902-1) experimental; urgency=low + + * Add postrm script for xserver-xorg-core, to remove + /var/log/Xorg.*.log{,.old} on purge (closes: #343384). + * Use dh_* -s instead of -a in binary-arch, to fix FTBFS on s390 (which + doesn't build xserver-xfbdev). + * New upstream release candidate. + + refresh 13_debian_add_xkbpath_env_variable.diff + + doesn't crash when there is no pci device (closes: #472823) + + includes a quirk for LPL monitors with broken EDID (closes: #473260) + + XKB is now enabled in Xnest (closes: #164379) + * Stop building Xprt, and drop related patches; it will be provided as a + separate package. + + -- Julien Cristau Fri, 23 May 2008 00:58:45 +0200 + +xorg-server (2:1.4.99.901-2) experimental; urgency=low + + * xserver-xorg-dev needs to depend on libpciaccess-dev. + * Pull from upstream server-1.5-branch as of March 21st (commit 98249dfa). + + fixes build on ia64 (closes: #471663) + * Add missing conflicts on xserver-xorg-input-2. + + -- Julien Cristau Fri, 21 Mar 2008 22:40:36 +0100 + +xorg-server (2:1.4.99.901-1) experimental; urgency=low + + [ Julien Cristau ] + * New upstream release candidate + * Update patches: + + 001_ubuntu_add_extra_modelines_from_xorg.patch: remove useless + whitespace changes + + 02_libvgahw_gcc4_volatile_fix.diff: delete, the gcc bug this was working + around is fixed for a long time + + 03_auto_load_driver.diff, 04_auto_load_driver_no_conf.diff, + 05_kill_type1.diff, 07_autoconfig_screen_with_device_section.diff, + 08_better_dpms_logging.diff, 10_dont_look_in_home_for_config.diff, + 11_dont_crash_on_bad_dri_mode.diff, 14_default_screen_section.diff, + 21_glx_align_fixes.patch, 40_default_dpi_96.patch, + 41_vbe_filter_less.diff, + 42_dont_break_grab_and_focus_for_window_when_redirecting.diff, + 43_allow_override_BIOS_EDID_preferred_mode.diff, + 44_preferredmode_infinite_loop.diff, + 45_only_XF86_APM_CAPABILITY_CHANGED_for_video_change_acpi_events.diff, + 46_reduce_wakeups_from_smart_scheduler.patch, + 47_fbdevhw_magic_numbers.diff, 51_xkb-and-loathing.diff, + 93_xprint_fonts_fix: remove, applied upstream + + 06_use_proc_instead_of_sysfs_for_pci_domains.diff: disable for now, + shouldn't be needed with pciaccess + + 13_debian_add_xkbpath_env_variable.diff: refresh + + 94_xprint_XSERVER_LIBS: disable, should be fixed upstream + * Disable glx, dri and dri2 for now. + * Re-enable dmx, build the xdmx and xdmx-tools packages. + * Add build-deps on libpciaccess-dev and libssl-dev for Xorg, bump build-dep + on libpixman-1-dev to >= 0.9.5. + * Add build-dep on libxv-dev for Xephyr. + * Drop XS- prefix from Vcs-* debian/control fields. + * Bump videoabiver to 2.9, inputabiver to 2.1, serverminver to 2:1.4.99.901. + * Drop obsolete --with-rgb-path configure option. + * /etc/X11/xserver/SecurityPolicy is gone, don't install it. + * Don't build-dep on "foo (>= bar-1)", to fix lintian warnings. + + [ Drew Parsons ] + * Remove 94_xprint_XSERVER_LIBS (not needed in xserver 1.5). + + [ Brice Goglin ] + * Build the Xfbdev server for real now, in new package xserver-xfbdev, + closes: #439764. + + -- Julien Cristau Fri, 14 Mar 2008 13:46:48 +0100 + +xorg-server (2:1.4.2-11) unstable; urgency=low + + * Bump x11proto-input-dev build-dep to >= 1.5.0 to fix keyboard layout + breakage with new libxi built against the same. Closes: #515976 + + -- David Nusinow Thu, 19 Feb 2009 21:52:24 -0500 + +xorg-server (2:1.4.2-10) unstable; urgency=medium + + * Cherry-pick from upstream: GLcore: make googleearth not crash the server + on sw-rendering (closes: #495483). + + -- Julien Cristau Fri, 09 Jan 2009 02:26:06 +0100 + +xorg-server (2:1.4.2-9) unstable; urgency=low + + * Cherry-pick patches from upstream to make xf86ScaleAxis() work correctly. + * Steal patch from Fedora: more sanity checks to stop vmmouse from + segfaulting the server (closes: #503459). + + -- Julien Cristau Thu, 13 Nov 2008 23:32:47 +0100 + +xorg-server (2:1.4.2-8) unstable; urgency=low + + * Add patch from Petr Salinger to fix PCI domain support on kfreebsd + (closes: #499501). + * xfree86: xf86SetDepthBpp needs to respect the driver's depth24flags. + Instead of forcing a 32bpp framebuffer, we pick a value that the driver + actually supports (closes: #504819, #486925); cherry-picked from upstream + git. + + -- Julien Cristau Tue, 11 Nov 2008 20:46:52 +0100 + +xorg-server (2:1.4.2-7) unstable; urgency=low + + * Update debian/copyright to the SGI Free Software License B, version 2.0. + It now mirrors the free X11 license used by X.Org. + http://www.sgi.com/company_info/newsroom/press_releases/2008/september/opengl.html + * Not closing bug#211765 for now, because GL/glx/glxext.c and + hw/dmx/glxProxy/glxext.c are covered by the GLX Public License, which is + still not free. SGI has since released their code under FreeB, but that + doesn't necessarily apply to contributions from other people. Hopefully + this can be cleared up soon, though. + * xvfb-run: append to $ERRORFILE instead of truncating it, so the error + output from Xvfb is not deleted when we run 'xauth remove'. + + -- Julien Cristau Tue, 30 Sep 2008 00:39:58 +0200 + +xorg-server (2:1.4.2-6) unstable; urgency=low + + * Xevie: always set rep.length to 0 (closes: #497337). Thanks, Thorvald + Natvig! + * Xevie: swap replies if necessary, to not confuse clients with a different + endianness. + * Cherry-picked from upstream git: + XF86VidMode: Correct a NULL pointer dereference (closes: #498289) + + -- Julien Cristau Mon, 15 Sep 2008 01:21:13 +0200 + +xorg-server (2:1.4.2-5) unstable; urgency=low + + * Don't pretend we support randr 1.2 when queried by swapped clients. The + dispatch code for RandR 1.2 requests would return BadImplementation anyway + (closes: #495833). + * Cherry-picked from upstream: + + exa: fix assert logic thinko. + + -- Julien Cristau Tue, 26 Aug 2008 19:27:34 +0200 + +xorg-server (2:1.4.2-4) unstable; urgency=low + + * Re-enable patch 47_fbdevhw_magic_numbers.diff, fixes xen framebuffer + (closes: #493901). Thanks, Olivier Tétard! If someone knows why I + disabled it a year ago, I'd love to know. + + -- Julien Cristau Fri, 15 Aug 2008 19:15:54 +0200 + +xorg-server (2:1.4.2-3) unstable; urgency=low + + * Add Romanian debconf translation (closes: #489069). Thanks, Eddy + Petrișor! + * Update Dutch debconf translation (closes: #491663). Thanks, Thijs + Kinkhorst! + * Pull from server-1.4-branch: + - Xi: ChangeDeviceControl presence events should set the appropriate + devchange + - Fix potential crasher in xf86CrtcRotate() + * Cherry-picked from 1.5: + - Work around the DIX losing mmWidth/mmHeight for RandR 1.1 DDXen + (closes: #491526). + + -- Julien Cristau Sat, 02 Aug 2008 23:22:32 +0200 + +xorg-server (2:1.4.2-2) unstable; urgency=low + + [ Julien Cristau ] + * GLX: zero the buffer used in __glXDisp_GetVisualConfigs (backport from + upstream). + + [ Brice Goglin ] + * Cherry-pick various patches from upstream: + - Fix incorrect test regarding keyboard map. + - xfree86: append, not prepend, new input devices to xf86InputDevs. + + -- Julien Cristau Fri, 18 Jul 2008 10:53:26 +0200 + +xorg-server (2:1.4.2-1) unstable; urgency=low + + [ Julien Cristau ] + * New upstream release. + * Security fixes from the previous upload are included upstream. + * Cherry-pick patches from upstream git to make the LeftOf and Above options + in xorg.conf actually work (closes: #466526). + * 48_xaa_nooffscreenpixmaps.diff: disable XAA offscreen pixmaps by default; + they can be enabled with Option "XaaOffscreenPixmaps" (closes: #478277, + #433331). + * Cherry-pick various patches from upstream for Xorg's modes code: + - add quirks for monitors with broken EDID (closes: #473260) + - fix max clock computation + - inherit the preferred mode from the global configuration (so if you have + Modes "800x600" in the Display subsection the server will honor it + instead of ignoring it) + * Backport patch from upstream git to fix emulation of int1A PCI BIOS + services (closes: #404885). Thanks, Robert de Bath! + + [ Brice Goglin ] + * Update patches to not require -p0, closes: #485185. + + -- Julien Cristau Thu, 26 Jun 2008 01:57:18 +0200 + +xorg-server (2:1.4.1~git20080517-2) unstable; urgency=high + + * High urgency upload for security fixes. + * New patch from upstream to fix multiple security issues reported by + iDefense: + CVE-2008-2360 - RENDER Extension heap buffer overflow + CVE-2008-2361 - RENDER Extension crash + CVE-2008-2362 - RENDER Extension memory corruption + CVE-2008-1379 - MIT-SHM arbitrary memory read + CVE-2008-1377 - RECORD and Security extensions memory corruption + + -- Julien Cristau Mon, 09 Jun 2008 14:59:04 +0200 + +xorg-server (2:1.4.1~git20080517-1) unstable; urgency=low + + [ Julien Cristau ] + * Pass -DPRE_RELEASE=0 in CPPFLAGS, so we don't print the pre-release + warning in the Xorg log. + * Pull from upstream server-1.4-branch + + drop patch 40_default_dpi_96.patch applied upstream + + refresh patches 03_auto_load_driver.diff and + 04_auto_load_driver_no_conf.diff + * Don't build-depend on packages with a -1 debian revision. + * Drop the XS- prefix from Vcs-* control fields. + * Add x11-common to the Depends field of xnest, xvfb and xserver-xephyr (its + init script sets up the /tmp/.X11-unix directory). + * Re-enable the dmx DDX, and build the xdmx and xdmx-tools packages (the + build is now fixed upstream); closes: #449254. + + [ Drew Parsons ] + * Patch 95_xprint_disable_dbus disables dbus in Xprint by providing + dummy config functions. Taken from upstream commit + 2a3d1421e0cc18822ae8f478fcc272e16a9e9340, with removal of + CONFIG_LIB from configure.ac shifted to 94_xprint_XSERVER_LIBS. + Closes: #472180. + * Enable the xprint DDX, and build the xprint and xprint-common packages. + + -- Julien Cristau Sun, 18 May 2008 13:36:11 +0200 + +xorg-server (2:1.4.1~git20080507-1) unstable; urgency=low + + * Pull from upstream server-1.4-branch, highlights: + - the server should now scale input events correctly + - xkb keymap failures now give an explanation instead of just a 'failed to + load' message + * Drop patch 51_xkb-and-loathing.diff, applied upstream + * Refresh patches 13_debian_add_xkbpath_env_variable.diff, + 21_glx_align_fixes.patch, 46_reduce_wakeups_from_smart_scheduler.patch and + 94_xprint_XSERVER_LIBS. + * chmod +x configure in debian/rules clean so we can build a git snapshot + where configure is not in the tarball. + * Cherry-pick fix from upstream's master branch to re-arm the DPMS timer + when re-enabling DPMS (closes: #397197). + + -- Julien Cristau Thu, 08 May 2008 15:34:38 +0200 + +xorg-server (2:1.4.1~git20080131-4) unstable; urgency=low + + * fix AlwaysCore handling: enabling AlwaysCore in xorg.conf 1) is the + default, and 2) shouldn't prevent the device from sending core events + (closes: #461760). + + -- Julien Cristau Tue, 29 Apr 2008 20:14:22 +0200 + +xorg-server (2:1.4.1~git20080131-3) unstable; urgency=low + + * XKB: Fix processInputProc wrapping (cherry-picked from upstream). + Thanks to Thomas Jaeger. This should fix the bug with some keys getting + stuck (closes: #473165). + * xkb: when copying the keymap, make sure the structs default to 0/NULL + (cherry-picked from upstream). Fixes a crash and closes: #461783. + * __glXDRIbindTexImage: Fail if no texture bound to pixmap's texture target + (cherry-picked from upstream). + * EXA: Fix off-by-one in polyline drawing (cherry-picked from upstream). + * EXA: Skip empty glyphs (cherry-picked from upstream). + * Fix overly-restrictive integer overflow check in EXA pixmap creation + (cherry-picked from upstream). Fixes BadAlloc errors returned by + XCreatePixmap for pixmaps of width 8192 or greater (closes: #471782). + + Following patches by Bart Trojanowski, stolen from the ubuntu package: + * 15_X86EMU-added-blacklist-for-I-O-port-in-0-0xFF-range.patch + - Restrict access to I/O ports in range 0-0xFF from x86emu. + * 16_X86EMU-pass-the-correct-bus-dev-fn-tag-to-pci-emula.patch + - Fix improper emulation of PCI access General Software BIOS. + * Add 17_x86emu_handle_cpuid.patch to fix X86EMU CPUID handling. + (closes: #451089). + + -- Julien Cristau Wed, 02 Apr 2008 00:20:15 +0200 + +xorg-server (2:1.4.1~git20080131-2) unstable; urgency=low + + [ Brice Goglin ] + * Add 46_reduce_wakeups_from_smart_scheduler.patch to reduce + power consumption, closes: #462700. + + [ Drew Parsons ] + * Restore Xprint, cherry-picking commits + f7f79724fdea0cc6fda0e90e56431df937d49335 and + d67e210f3458b62d7d4a6032aabfda0004d661c1 from master (xserver 1.5). + Include patch 94_xprint_XSERVER_LIBS to give new meaning of + XSERVER_LIBS as expected in configure.ac from master (see commit + a02db0d500cac20d0f0f107d27c064a175018421). Delete + 94_xprint_XSERVER_LIBS when we upgrade to xserver 1.5. + + [ Julien Cristau ] + * Re-enable patch 51_xkb-and-loathing.diff: ignore SIGALRM around calls to + Popen()/Pclose() to fix a hang when opening menus in OpenOffice.org + (once again closes: #433131) + * Refresh all patches to make patch-audit happy. + * Pull from upstream server-1.4-branch as of March 14th. + * 42_dont_break_grab_and_focus_for_window_when_redirecting.diff removed, + applied upstream. + * Don't build xprint just yet, because it needs NEW processing. + + [ David Nusinow ] + * Add 11_dont_crash_on_bad_dri_mode. See bugzilla #13860 + + -- Julien Cristau Fri, 14 Mar 2008 15:18:16 +0100 + +xorg-server (2:1.4.1~git20080131-1ubuntu12) intrepid; urgency=low + + * Fix multiple security issues: + + CVE-2008-2360 - RENDER Extension heap buffer overflow + + CVE-2008-2361 - RENDER Extension crash + + CVE-2008-2362 - RENDER Extension memory corruption + + CVE-2008-1379 - MIT-SHM arbitrary memory read + + CVE-2008-1377 - RECORD and Security extensions memory corruption + + -- Bryce Harrington Wed, 11 Jun 2008 10:54:15 -0700 + +xorg-server (2:1.4.1~git20080131-1ubuntu11) intrepid; urgency=low + + * 169_xf86AutoConfig_choose_default_driver_if_no_pci.patch + - Choose the default driver for the platform instead of the generic + default (vesa) if there is no PCI info. Without this, on platforms + like PS3 where fbdev should be used rather than vesa, the system + will fail to start up. (LP: #219424) + + -- Bryce Harrington Tue, 13 May 2008 13:09:17 -0700 + +xorg-server (2:1.4.1~git20080131-1ubuntu10) intrepid; urgency=low + + [Timo Aaltonen] + * 166_fix_lpl_monitors.diff: + - fix LPL monitors properly (LP: #204065) + + [Martin-Eric Racine] + * 167_xf86AutoConfig_geode_addition.diff: + - Autodetect geode video devices (LP: #219630) + + [Bryce Harrington] + * 166_fix_lpl_monitors.diff: + - Modified to apply to Ubuntu + * 168_closedir.patch: + - Fix crash on PS3 due to closing a dir that wasn't successfully opened + (LP: #217647) + + -- Bryce Harrington Tue, 13 May 2008 00:03:40 -0700 + +xorg-server (2:1.4.1~git20080131-1ubuntu9) hardy; urgency=low + + * debian/patches/series, + debian/patches/165_fedora_xserver-1.5.0-xaa-option-inversion.patch: + - Turn on patch included in previous commit - obviously accidentially + forgotten. + - Now that its really enabled, make it apply to 1.4.1 code base + accordingly. (LP: #182038) + + -- Alexander Sack Tue, 15 Apr 2008 18:23:51 +0200 + +xorg-server (2:1.4.1~git20080131-1ubuntu8) hardy; urgency=low + + * debian/patches/165_fedora_xserver-1.5.0-xaa-option-inversion.patch: + - Turn XAA Offscreen Pixmaps off by default, and use + XaaOffscreenPixmaps "true" to turn them on. This setting was an + early pre-EXA HW optimization attempt that didn't pan out; upstream is + deprecating XAA in favor of EXA generally, and for situations where + XAA is still in use recommends NOT using this optimization hack, since + they found it often just made performance worse, and sometimes created + visualization bugs. People wishing to gain added performance should be + experimenting with EXA anyway, not this setting. (closes LP: #182038) + + -- Bryce Harrington Mon, 21 Apr 2008 12:30:53 -0700 + +xorg-server (2:1.4.1~git20080131-1ubuntu7) hardy; urgency=low + + * 159_xkb_default_to_null.diff: + When copying the keymap, make sure the structs default to 0/NULL. + (LP: #184651) + * 160_default_to_intel.diff: + Default to using intel instead of i810. (LP: #158709) + * 161_fix_big_endian_cursor.diff: + Fix RandR 1.2 driver interface conversion of two colour cursors to + ARGB. (LP: #141118) + * Fixes from the upstream 1.4-branch: + - 162_cve-2007-6429.diff: + CVE-2007-6429: Always test for size+offset wrapping. + - 163_fix_untrusted_access.diff: + Security: Fix for fdo bug #14480: untrusted access broken in 7.3. + - 164_fix_context_sharing.diff: + Fix context sharing between direct/indirect contexts + + -- Timo Aaltonen Wed, 09 Apr 2008 11:06:04 +0300 + +xorg-server (2:1.4.1~git20080131-1ubuntu6) hardy; urgency=low + + * 157_fix_exa_pixmap_width.diff: + A patch from upstream to allow wider pixmaps with EXA (LP: #205599) + * 158_xkb_wrapping.diff: + A patch reviewed by upstream that prevents keys from getting stuck under + certain situations. (LP: #194214) + * 51_xkb-and-loathing.diff: + Re-enable. Ignore SIGALRM around calls to Popen()/Pclose() to fix a hang + when opening menus in OpenOffice.org. (LP: #204137) + + -- Timo Aaltonen Sun, 30 Mar 2008 19:18:32 +0300 + +xorg-server (2:1.4.1~git20080131-1ubuntu5) hardy; urgency=low + + * Add some patches from upstream 1.4-branch or proposed set: + - 109_glx_fail_if_no_texture_bound.diff + + __glXDRIbindTexImage: Fail if no texture bound to pixmap's texture + target. + - 153_exa_skip_empty_glyphs.diff + + Fix a crasher when EXA and RenderAccel is in use. + - 154_fix_rotation_for_multimon.diff + + Fix rotation for multi-monitor situation. + - 155_exa_fix_off-by-one.diff + + Fix off-by-one in polyline drawing. + - 156_resize_composite_overlay.diff + + Resize composite overlay window when the root window changes. + (LP: #199700) + + -- Timo Aaltonen Thu, 13 Mar 2008 18:21:41 +0200 + +xorg-server (2:1.4.1~git20080131-1ubuntu4) hardy; urgency=low + + * Add 152_xserver_exa_force_greedy.patch to provide a mechanism for + drivers to force greedy mode on. (LP: #177492, others) + + -- Bryce Harrington Tue, 19 Feb 2008 13:38:16 -0800 + +xorg-server (2:1.4.1~git20080131-1ubuntu3) hardy; urgency=low + + [ Bryce Harrington ] + * Add 150_edid_quirk_lp154w01.patch to fix font size on LGPhilipsLCD + LP154W01-TLAE (LP: #127827) + * Add 149_add_quirks_for_physical_screen_size_issues.patch to help + address various common EDID issues (like monitors that report in + centimeters instead of millimeters, etc.) (LP: #151311) + + [ Timo Aaltonen ] + * Add 151_x86emu_handle_cpuid.patch to fix X86EMU CPUID handling. + (LP: #180742) + + -- Timo Aaltonen Tue, 19 Feb 2008 17:48:05 +0200 + +xorg-server (2:1.4.1~git20080131-1ubuntu2) hardy; urgency=low + + * Add patch 148_dix_touchscreen_fixes.diff from Matthew Garrett to fix + touchscreen issues with DIX. + http://lists.freedesktop.org/archives/xorg-commit/2008-February/014648.html + + -- Steve Kowalik Fri, 08 Feb 2008 10:30:04 +1100 + +xorg-server (2:1.4.1~git20080131-1ubuntu1) hardy; urgency=low + + [ Timo Aaltonen ] + * Merge with Debian unstable, remaining changes: + * debian/control: + - Change maintainer address. + - set Conflicts: xkb-data (<< 0.9), since xkb-path is + different compared to Dapper. + - xvfb Depends on xauth, xfonts-base. + * debian/patches: + - 101_fedora-apm-typedefs.patch: + Temporary hack from Fedora for broken kernels that don't publish the + /dev/apm_bios types. + - 102_ubuntu_sharevts_load_cpu.patch: + Close console fd only when using --sharevts. + - 103_fedora_openchrome.patch: + Patch from Fedora to use openchrome instead of via. + - 104_fedora_init_origins_fix.patch + Multihead initialization. + - 105_reduce_wakeups_from_smart_scheduler.diff: + Patch from upstream to reduce wakeups and improve battery life. + - 106_ubuntu_fpic_libxf86config.patch + Add -fPIC to makefiles for xfree86/parser. + - 107_fedora_dont_backfill_bg_none.patch + Disable backfilling of windows created with bg=none, which + otherwise would force a framebuffer readback. + - 110_fedora_no_move_damage.patch + Disable damage notifications on move for manually redirected windows. + - 120_fedora_xserver-xaa-evict-pixmaps.patch: + New version of the hack to copy textures from video memory. Shouldn't + break EXA anymore. + - 121_only_switch_vt_when_active.diff + Add a check to prevent the X server from changing the VT when + killing GDM from the console. + - 123_no_composite_for_xvfb_run.patch + Use "-extension Composite" to fix xvfb-run crashing. + - 133_psb_auto.patch + Add automatic detection of Poulsbo hardware when running + without a Device definition. + - 139_fedora_xserver-1.3.0-document-fontpath-correctly.patch + Fixes document fontpaths shown in the man page. + - 142_fedora_xserver-1.3.0-no-pseudocolor-composite.patch + Composite on 8bpp pseudocolor root windows appears to fail, so just + disable it on anything pseudocolor for safety. + - 144_fedora_xserver-1.3.0-xnest-exposures.patch: + Only collect xnest exposures for xexposes with non-zero height and width. + * 108_fedora_honor_displaysize.patch: + - Patch from upstream/Fedora to honor the DisplaySize-setting. + (LP: #135738, b.fd.o #9758) + * Drop patch 100_avoid_acpi_insanity.diff, superseded by patch 45. + + [ Bart Trojanowski, Martin-Eric Racine ] + * 146_X86EMU-added-blacklist-for-I-O-port-in-0-0xFF-range.patch + - Restrict access to I/O ports in range 0-0xFF from x86emu. + (LP: #140051) + * 147_X86EMU-pass-the-correct-bus-dev-fn-tag-to-pci-emula.patch + - Fix improper emulation of PCI access General Software BIOS. + (LP: #140051) + + -- Timo Aaltonen Tue, 05 Feb 2008 18:57:14 +0200 + +xorg-server (2:1.4.1~git20080131-1) unstable; urgency=low + + [ Brice Goglin ] + * Add 45_only_XF86_APM_CAPABILITY_CHANGED_for_video_change_acpi_events.diff + to prevent XF86_APM_CAPABILITY_CHANGED from being issued for all ACPI + events, thanks Sjoerd Simons, closes: #461463. + + [ David Nusinow ] + * Update Japanese translation from Hideki Yamane. closes: #462761 + * New upstream pull + + Fixes crashes due to absent LED's being referenced + + -- David Nusinow Thu, 31 Jan 2008 21:43:12 -0500 + +xorg-server (2:1.4.1~git20080118-1ubuntu2) hardy; urgency=low + + * Remove the DPI patch for real this time, conflicts with the upstream + commit that was pulled. + * 105_reduce_wakeups_from_smart_scheduler.diff: + Patch from upstream to reduce wakeups and improve battery life. + + -- Timo Aaltonen Sat, 19 Jan 2008 20:26:41 +0200 + +xorg-server (2:1.4.1~git20080118-1ubuntu1) hardy; urgency=low + + * Merge with Debian unstable, remaining changes: + * debian/control: + - Change maintainer address. + - set Conflicts: xkb-data (<< 0.9), since xkb-path is + different compared to Dapper. + - xvfb Depends on xauth, xfonts-base. + * debian/patches: + - 100_avoid_acpi_insanity.diff + Don't send a configuration change event just because somebody's pressed + a brightness key. + - 101_fedora-apm-typedefs.patch: + Temporary hack from Fedora for broken kernels that don't publish the + /dev/apm_bios types. + - 102_ubuntu_sharevts_load_cpu.patch: + Close console fd only when using --sharevts. + - 103_fedora_openchrome.patch: + Patch from Fedora to use openchrome instead of via. + - 104_fedora_init_origins_fix.patch + Multihead initialization. + - 106_ubuntu_fpic_libxf86config.patch + Add -fPIC to makefiles for xfree86/parser. + - 107_fedora_dont_backfill_bg_none.patch + Disable backfilling of windows created with bg=none, which + otherwise would force a framebuffer readback. + - 110_fedora_no_move_damage.patch + Disable damage notifications on move for manually redirected windows. + - 120_fedora_xserver-xaa-evict-pixmaps.patch: + New version of the hack to copy textures from video memory. Shouldn't + break EXA anymore. + - 121_only_switch_vt_when_active.diff + Add a check to prevent the X server from changing the VT when + killing GDM from the console. + - 123_no_composite_for_xvfb_run.patch + Use "-extension Composite" to fix xvfb-run crashing. + - 133_psb_auto.patch + Add automatic detection of Poulsbo hardware when running + without a Device definition. + - 139_fedora_xserver-1.3.0-document-fontpath-correctly.patch + Fixes document fontpaths shown in the man page. + - 142_fedora_xserver-1.3.0-no-pseudocolor-composite.patch + Composite on 8bpp pseudocolor root windows appears to fail, so just + disable it on anything pseudocolor for safety. + - 144_fedora_xserver-1.3.0-xnest-exposures.patch: + Only collect xnest exposures for xexposes with non-zero height and width. + + -- Timo Aaltonen Sat, 19 Jan 2008 02:40:00 +0200 + +xorg-server (2:1.4.1~git20080118-1) unstable; urgency=low + + [ Brice Goglin ] + * Add 42_dont_break_grab_and_focus_for_window_when_redirecting.diff + to prevent password authentication bypass, closes: #449108. + + [ Julien Cristau ] + * New upstream snapshot + + includes the security fixes from the previous version + + fixes regression introduced by the fix for CVE-2007-6429 in the MIT-SHM + extension (closes: #461410) + + -- Brice Goglin Fri, 18 Jan 2008 22:20:32 +0100 + +xorg-server (2:1.4.1~git20080105-2) unstable; urgency=low + + [ David Nusinow ] + * Improve dpms logging patch to correctly label message type + + [ Brice Goglin ] + * Grab upstream commit db9ae863536fff80b5463d99e71dc47ae587980d + to set DEFAULT_DPI to 96 instead of 75. + + [ Julien Cristau ] + * Fix multiple security issues + + CVE-2007-6427: XInput Extension Memory Corruption + + CVE-2007-6428: TOG-CUP Extension Memory Corruption + + CVE-2007-6429: EVI Extension Integer Overflow, + MIT-SHM Extension Integer Overflow + + CVE-2007-5760: XFree86-Misc Extension Invalid Array Index + + CVE-2007-5958: file existence disclosure + + CVE-2008-0006: PCF font parser buffer overflow + * Bump Standards-Version to 3.7.3 (no changes). + + -- Julien Cristau Thu, 17 Jan 2008 15:10:03 +0100 + +xorg-server (2:1.4.1~git20080105-1ubuntu1) hardy; urgency=low + + * Merge with Debian unstable, remaining changes: + * debian/control: + - Change maintainer address. + - set Conflicts: xkb-data (<< 0.9), since xkb-path is + different compared to Dapper. + - xvfb Depends on xauth, xfonts-base. + * debian/patches: + - 100_avoid_acpi_insanity.diff + Don't send a configuration change event just because somebody's pressed + a brightness key. + - 101_fedora-apm-typedefs.patch: + Temporary hack from Fedora for broken kernels that don't publish the + /dev/apm_bios types. + - 102_ubuntu_sharevts_load_cpu.patch: + Close console fd only when using --sharevts. + - 104_fedora_init_origins_fix.patch + Multihead initialization. + - 106_ubuntu_fpic_libxf86config.patch + Add -fPIC to makefiles for xfree86/parser. + - 107_fedora_dont_backfill_bg_none.patch + Disable backfilling of windows created with bg=none, which + otherwise would force a framebuffer readback. + - 110_fedora_no_move_damage.patch + Disable damage notifications on move for manually redirected windows. + - 120_fedora_xserver-xaa-evict-pixmaps.patch: + New version of the hack to copy textures from video memory. Shouldn't + break EXA anymore. + - 121_only_switch_vt_when_active.diff + Add a check to prevent the X server from changing the VT when + killing GDM from the console. + - 123_no_composite_for_xvfb_run.patch + Use "-extension Composite" to fix xvfb-run crashing. + - 133_psb_auto.patch + Add automatic detection of Poulsbo hardware when running + without a Device definition. + - 138_fedora_xserver-1.3.0-default-dpi.patch + Changes default dpi to 96. + - 139_fedora_xserver-1.3.0-document-fontpath-correctly.patch + Fixes document fontpaths shown in the man page. + - 142_fedora_xserver-1.3.0-no-pseudocolor-composite.patch + Composite on 8bpp pseudocolor root windows appears to fail, so just + disable it on anything pseudocolor for safety. + - 144_fedora_xserver-1.3.0-xnest-exposures.patch: + Only collect xnest exposures for xexposes with non-zero height and width. + * debian/patches/103_fedora_openchrome.patch: + - Patch from Fedora to use openchrome instead of via. + + -- Timo Aaltonen Tue, 08 Jan 2008 18:05:21 +0200 + +xorg-server (2:1.4.1~git20080105-1) unstable; urgency=low + + * Don't reference non-existent bug-reporting.txt file in xvfb-run.1 + * New upstream git pull, again from the server-1.4-branch + + Drop 08_xkb_infinite_loop.diff, it's upstream now + * Improve logging when DPMS is enabled implicitly + + Adds 08_better_dpms_logging.diff + + -- David Nusinow Sun, 06 Jan 2008 16:56:38 -0500 + +xorg-server (2:1.4.1~git20071212-1ubuntu2) hardy; urgency=low + + * debian/patches/101_fedora-apm-typedefs.patch: + - Temporary hack from Fedora for broken kernels that don't publish the + /dev/apm_bios types. + + -- Timo Aaltonen Mon, 17 Dec 2007 11:54:46 +0200 + +xorg-server (2:1.4.1~git20071212-1ubuntu1) hardy; urgency=low + + * Merge with Debian unstable, remaining changes: + * debian/control: + - Change maintainer address. + - set Conflicts: xkb-data (<< 0.9), since xkb-path is + different compared to Dapper. + - xvfb Depends on xauth, xfonts-base. + * debian/patches: + - 100_avoid_acpi_insanity.diff + Don't send a configuration change event just because somebody's pressed + a brightness key. + - 102_ubuntu_sharevts_load_cpu.patch: + Close console fd only when using --sharevts. + - 104_fedora_init_origins_fix.patch + Multihead initialization. + - 106_ubuntu_fpic_libxf86config.patch + Add -fPIC to makefiles for xfree86/parser. + - 107_fedora_dont_backfill_bg_none.patch + Disable backfilling of windows created with bg=none, which + otherwise would force a framebuffer readback. + - 110_fedora_no_move_damage.patch + Disable damage notifications on move for manually redirected windows. + - 120_fedora_xserver-xaa-evict-pixmaps.patch: + New version of the hack to copy textures from video memory. Shouldn't + break EXA anymore. + - 121_only_switch_vt_when_active.diff + Add a check to prevent the X server from changing the VT when + killing GDM from the console. + - 123_no_composite_for_xvfb_run.patch + Use "-extension Composite" to fix xvfb-run crashing. + - 133_psb_auto.patch + Add automatic detection of Poulsbo hardware when running + without a Device definition. + - 138_fedora_xserver-1.3.0-default-dpi.patch + Changes default dpi to 96. + - 139_fedora_xserver-1.3.0-document-fontpath-correctly.patch + Fixes document fontpaths shown in the man page. + - 142_fedora_xserver-1.3.0-no-pseudocolor-composite.patch + Composite on 8bpp pseudocolor root windows appears to fail, so just + disable it on anything pseudocolor for safety. + - 144_fedora_xserver-1.3.0-xnest-exposures.patch: + Only collect xnest exposures for xexposes with non-zero height and width. + + -- Timo Aaltonen Thu, 13 Dec 2007 13:43:35 +0200 + +xorg-server (2:1.4.1~git20071212-2) unstable; urgency=low + + * Add patch 08_xkb_infinite_loop.diff from upstream bug#13511: papers over + an infinite loop in event processing (closes: #451989). + + -- Julien Cristau Sat, 22 Dec 2007 00:02:01 +0100 + +xorg-server (2:1.4.1~git20071212-1) unstable; urgency=low + + [ Julien Cristau ] + * debian/rules: Use lsb_release -i -s to get the vendor name, instead of + hardcoding "Debian". + * debian/control: build-dep on lsb-release. + * Cherry-pick commit f30abe30 from master: edid quirk for MAX 0x77e monitor. + * Add patch 44_preferredmode_infinite_loop.diff from upstream git: fixes an + infinite loop when PreferredMode is used in xorg.conf. + + [ David Nusinow ] + * New upstream version. This is based on the server-1.4-branch, and includes + all the changes in the 1.4.0.90 (pre-)release as well as additional fixes. + This is primarily a bugfix release + + Remove 12_bgPixel_fix_64bit_issue.diff. Applied upstream + + -- David Nusinow Wed, 12 Dec 2007 20:19:11 -0500 + +xorg-server (2:1.4.1~git20071119-1ubuntu1) hardy; urgency=low + + * Merge with Debian unstable, remaining changes: + * debian/control: + - Change maintainer address. + - set Conflicts: xkb-data (<< 0.9), since xkb-path is + different compared to Dapper. + - xvfb Depends on xauth, xfonts-base. + * debian/rules: + - --with-os-vendor=Ubuntu + * debian/patches: + - 100_avoid_acpi_insanity.diff + Don't send a configuration change event just because somebody's pressed + a brightness key. + - 102_ubuntu_sharevts_load_cpu.patch: + Close console fd only when using --sharevts. + - 104_fedora_init_origins_fix.patch + Multihead initialization. + - 106_ubuntu_fpic_libxf86config.patch + Add -fPIC to makefiles for xfree86/parser. + - 107_fedora_dont_backfill_bg_none.patch + Disable backfilling of windows created with bg=none, which + otherwise would force a framebuffer readback. + - 110_fedora_no_move_damage.patch + Disable damage notifications on move for manually redirected windows. + - 121_only_switch_vt_when_active.diff + Add a check to prevent the X server from changing the VT when + killing GDM from the console. + - 123_no_composite_for_xvfb_run.patch + Use "-extension Composite" to fix xvfb-run crashing. + - 133_psb_auto.patch + Add automatic detection of Poulsbo hardware when running + without a Device definition. + - 138_fedora_xserver-1.3.0-default-dpi.patch + Changes default dpi to 100. + - 139_fedora_xserver-1.3.0-document-fontpath-correctly.patch + Fixes document fontpaths shown in the man page. + - 142_fedora_xserver-1.3.0-no-pseudocolor-composite.patch + Composite on 8bpp pseudocolor root windows appears to fail, so just + disable it on anything pseudocolor for safety. + - 144_fedora_xserver-1.3.0-xnest-exposures.patch: + Only collect xnest exposures for xexposes with non-zero height and width. + * Bring back old changelog entries. + * debian/patches/120_fedora_xserver-xaa-evict-pixmaps.patch: + - New version of the hack to copy textures from video memory. Shouldn't + break EXA anymore. + + -- Timo Aaltonen Tue, 20 Nov 2007 15:35:59 +0200 + +xorg-server (2:1.4.1~git20071119-1) unstable; urgency=low + + * Ship a .orig.tar.gz that's been autoreconf'ed. Closes: #451891 + * Re-enable validation of the screen section of xorg.conf + Modify 14_default_screen_section.diff. This also fixes a problem where the + server can't find the device section when it is specified in the screen + section. Closes: #451950 + + -- David Nusinow Mon, 19 Nov 2007 20:38:04 -0500 + +xorg-server (2:1.4.1~git20071117-1) unstable; urgency=low + + [ Julien Cristau ] + * Add conflict on xserver-xorg-input-wacom (<< 0.7.8) to xserver-xorg-core. + That driver is built against the old ABI, but doesn't provide + xserver-xorg-input. + + [ David Nusinow ] + * Add 14_default_screen_section.diff. This allows you to not have a screen + section in your xorg.conf. A basic default one with a simple identifier + will be created for you in this case using all default values + + [ Christian Perrier ] + * Debconf translations: + * Galician. Closes: #444764 + * German. Closes: #444917 + * Brazilian Portuguese. Closes: #445266 + * Russian. Closes: #443859 + * Portuguese. Closes: #445051 + * Slovak. Closes: #446418, #448220 + + [ Brice Goglin ] + * Bump x11proto-core-dev build-dependency to >= 7.0.9, + thanks Max Kellermann, closes: #446869. + + [ David Nusinow ] + * New upstream stable snapshot + + fixes a bunch of input-related bugs, notably keyboard leds + (closes: #440743 and its pile of duplicates) + * Remove patches merged in this snapshot + + 08_exa_fix_exaFillRegionTiled_fallback.diff + + 11_exa_no_negative_tile_offsets.diff + + 42_fix_RemoveGeneralSocket_crash_from_dbus.diff + + 44_XKB_mapping_changes_for_all_core-sending_devices.diff + + 45_GetKeyboardEvents_reject_out-of-range_keycodes.diff + * Make xephyr recommend xfonts-base. Closes: #451542 + + -- David Nusinow Sat, 17 Nov 2007 18:54:02 -0500 + +xorg-server (2:1.4.1~git20071105-1ubuntu2) hardy; urgency=low + + * Brown paper bag release: include all the patches. + + -- Timo Aaltonen Sat, 10 Nov 2007 15:24:28 +0200 + +xorg-server (2:1.4.1~git20071105-1ubuntu1) hardy; urgency=low + + * Merge with Debian unstable, remaining changes: + * debian/control: + - Change maintainer address. + - set Conflicts: xkb-data (<< 0.9), since xkb-path is + different compared to Dapper. + - xvfb Depends on xauth, xfonts-base. + * debian/rules: + - --with-os-vendor=Ubuntu + * debian/patches: + - 100_avoid_acpi_insanity.diff + Don't send a configuration change event just because somebody's pressed + a brightness key. + - 102_ubuntu_sharevts_load_cpu.patch: + Close console fd only when using --sharevts. + - 104_fedora_init_origins_fix.patch + Multihead initialization. + - 106_ubuntu_fpic_libxf86config.patch + Add -fPIC to makefiles for xfree86/parser. + - 107_fedora_dont_backfill_bg_none.patch + Disable backfilling of windows created with bg=none, which + otherwise would force a framebuffer readback. + - 110_fedora_no_move_damage.patch + Disable damage notifications on move for manually redirected windows. + - 121_only_switch_vt_when_active.diff + Add a check to prevent the X server from changing the VT when + killing GDM from the console. + - 123_no_composite_for_xvfb_run.patch + Use "-extension Composite" to fix xvfb-run crashing. + - 133_psb_auto.patch + Add automatic detection of Poulsbo hardware when running + without a Device definition. + - 138_fedora_xserver-1.3.0-default-dpi.patch + Changes default dpi to 100. + - 139_fedora_xserver-1.3.0-document-fontpath-correctly.patch + Fixes document fontpaths shown in the man page. + - 142_fedora_xserver-1.3.0-no-pseudocolor-composite.patch + Composite on 8bpp pseudocolor root windows appears to fail, so just disable + it on anything pseudocolor for safety. + - 144_fedora_xserver-1.3.0-xnest-exposures.patch: + Only collect xnest exposures for xexposes with non-zero height and width. + + -- Timo Aaltonen Sat, 10 Nov 2007 13:07:55 +0200 + +xorg-server (2:1.4-3) unstable; urgency=low + + [ David Nusinow ] + * Minor cleanups of 03_autoload_drivers.diff. Thanks to Julien for + spotting all these ugly bits + + Newline after #else when picking the driver (this is the failsafe + choice) + + Change by hacked "ids" file name suffix check to use strncmp and check + for ".ids" + + Use strncpy instead of strncat unnecessarily + * Add support for a partially configured device section + Implemented in 03_autoload_driver.diff. Now if you have a device section + but lack a driver, it'll use the settings. This will allow you to just + have a device section and enable EXA but not have to specify the driver or + anything else. + * Add 07_autoconfig_screen_with_device_section.diff + This patch allows the Screen section to not specify a device section. If + this happens, the server will automatically use the first device section + listed in the xorg.conf instead + + [ Brice Goglin ] + * Allow building the Xfbdev server in new package xserver-xfbdev, but leave + it disabled for now (see #439764). + * Add upstream commit 27ad5d74c20f01516a1bff73be283f8982fcf0fe as patch + 44_XKB_mapping_changes_for_all_core-sending_devices.diff to fix broken + xmodmap invocation in .xsession, closes: #443044. + * Add upstream commit 0e800ca4651a947ccef239e6fe7bf64aab92257c as patch + 45_GetKeyboardEvents_reject_out-of-range_keycodes.diff to fix crash + in GetKeyboardValuatorEvents, closes: #443697. + + [ Christian Perrier ] + * Debconf templates and debian/control reviewed by the debian-l10n- + english team as part of the Smith review project. Closes: #442210 + * Debconf translation updates: + - Swedish. Closes: #443047 + - Czech. Closes: #443100 + - French + - Vietnamese. Closes: #443174 + - Italian. Closes: #422414 + * New debconf translations + - Hungarian. Closes: #442956 + - Thai. Closes: #442962 + - Tamil. Closes: #443027 + - Basque. Closes: #443156 + - Hebrew. Closes: #443204 + - Bulgarian. Closes: #443226 + - Finnish. Closes: #443611 + + [ Julien Cristau ] + * Add patch backported from upstream commit + 13949f997289068354e83bc83e50d97b8232efb1 to remove the type1 module: patch + 05_kill_type1.diff replaces 48_disable_type1.diff, and is now enabled in + debian/patches/series. + * Don't build kdrive-based servers we're not shipping. + * Use ${binary:Version} instead of ${Source-Version}. + * Add 08_exa_fix_exaFillRegionTiled_fallback.diff by Michel Dänzer to punt + on fallback case not handled correctly in exaFillRegionTiled (backported + from master's c7d6d1f5); closes: #444203. + * Add 11_exa_no_negative_tile_offsets.diff by Michel Dänzer to make sure + tile offsets passed to drivers are never negative (backported from + master's 006f6525). + * Add 12_bgPixel_fix_64bit_issue.diff by Hong Liu: bgPixel (unsigned long) + is 64-bit on x86_64, so -1 != 0xffffffff (master's 9adea807). + + -- Julien Cristau Sat, 29 Sep 2007 16:14:35 +0200 + +xorg-server (2:1.4-2) unstable; urgency=low + + [ Brice Goglin ] + * Add 42_fix_RemoveGeneralSocket_crash_from_dbus.diff to fix a crash + when leaving, closes: #440547. + * Add 43_allow_override_BIOS_EDID_preferred_mode.diff to allow overriding + BIOD/EDID preferred mode with Option PreferredMode in the config file. + + [ David Nusinow ] + * Upload to unstable + + -- David Nusinow Sun, 16 Sep 2007 14:24:18 -0400 + +xorg-server (2:1.4-1) experimental; urgency=low + + * New upstream release (X.Org 7.3) + + RandR doesn't mark Xinerama as active when no crtcs are enabled + (closes: #431746) + * Add proper depends to xserver-xorg-dev: + x11proto-core-dev, x11proto-input-dev (>= 1.4), x11proto-xext-dev, + x11proto-video-dev, x11proto-randr-dev (>= 1.2), x11proto-render-dev (>= + 2:0.9.3), x11proto-fonts-dev + * Bump serverminver to 2:1.4, videoabiver to 2, inputabiver to 2. + + -- Julien Cristau Mon, 10 Sep 2007 14:35:38 +0200 + +xorg-server (2:1.3.99.2-1) experimental; urgency=low + + [ David Nusinow ] + * Refactor auto_load_driver patch to allow the same method to be used when + there is no xorg.conf present + * Add 04_auto_load_driver_no_config.diff to use my auto_load_driver method + when there's no xorg.conf present + + [ Brice Goglin ] + * Simplify output redirections in the reportbug script, + thanks Justin Pryzby, closes: #358390. + * Add missing URL in long descriptions, update links to the upstream + module, fix some capitalization, thanks Christian Perrier. + + [ Julien Cristau ] + * New upstream release candidate. + + bump build dep on renderproto to >= 0.9.3, and on pixman to >= 0.9.4-2. + + bump video abi version and serverminver. + * Drop the Conflict on fglrx-driver, which is taken care of by the abi + version. + + -- Julien Cristau Tue, 04 Sep 2007 17:32:19 +0200 + +xorg-server (2:1.3.99.0-2) experimental; urgency=low + + * Improve 03_auto_load_driver.diff + + Move memory cleanup and directory closing to after the end label to + prevent leaks. Thanks Julien. + + Allow a driver to claim everything from a specific vendor. It does so by + only specifying a vendor ID and leaving the latter four digits empty. + + -- David Nusinow Sun, 19 Aug 2007 16:06:54 -0400 + +xorg-server (2:1.3.99.0-1) experimental; urgency=low + + [ Julien Cristau, David Nusinow ] + * New upstream release candidate. + + X is now more tolerant of devices without a CtrlProc (closes: #269860). + + cvt(1) and gtf(1) typos fixed (closes: #432065). + + Make sure DRIScreenPrivIndex is -1 when no DRI screen private is + allocated. (closes: #413697). + + __glXDRIscreenProbe: Use drmOpen/CloseOnce (closes: #419614). + + segfault in swrast_Triangle fixed in mesa (closes: #407502). + + the Xvfb manpage doesn't refer to /usr/tmp anymore (closes: #270257). + + typos in Xserver(1) fixed (closes: #306688). + + * Remove patches that were pushed upstream + + 03_xnest_manpage_overhaul.diff + + 04_read_rom_in_chunks.diff + + 05_module_defaults.diff + + 07_stolen_from_HEAD_xorgconf_manpage.diff + + 08_s390_servermd.diff + + 12_security_policy_in_etc.diff + + 16_s390_fix.diff + + 18_execinfo_configured.patch + + 23_kfreebsd_support.diff + + 24_hurd_ioperm_fix.diff + + 32_disable_sparc_pci_bridge.diff + + 39_alpha_build_flags.patch + + 40_consolidate_portPriv_pDraw_assignments.diff + + 42_only_run_special_key_behaviours_on_non-XKB.diff + + 44_fedora-xephyr-keysym-madness.diff (different fix applied upstream) + + 45_CVE-2007-2437.diff + + 46_export-ramdac-symbols.diff + + 49_map_keyboard_driver_to_kbd.diff + + 50_alpha_no_include_asm_pci.h.diff + + 94_use_default_font_path.diff + + 125_glx_remove-stray__GLinterface.diff, + 126_glxproxy_remove-stray__GLinterface.diff and + 127_mesa-6.5.3-compat.diff (obsolete) + + * Update other patches: + + 09_debian_xserver_rtff.diff disabled (doesn't apply, and isn't even + used AFAICS; + + 11_define_XFree86Server.diff dropped, to be fixed in drivers instead; + + 13_debian_add_xkbpath_env_variable.diff refreshed; + + 21_glx_align_fixes.patch updated; + + 43_xephyr_crash_at_exit.diff dropped (doesn't apply); + + 47_fbdevhw_magic_numbers.diff disabled for now; + + 48_disable_type1.diff disabled for now; + + 51_xkb-and-loathing.diff disabled for now. + + [ Julien Cristau ] + * Add build-dep on x11proto-input-dev (>= 1.4.2), libpixman-1-dev + (>= 0.9.0), libdbus-1-dev, libhal-dev (except on hurd-i386 for the last + two). + * Bump build-dep on mesa-swx11-source to >> 7.0.1~rc2-1. + * Bump serverminver to this version, videoabiver to 1.9, inputabiver to + 0.9 (so this doesn't clash with a release and drivers have to be + rebuilt). + * Bump build-dep on compositeproto to >= 0.4. + * Install the upstream changelog. + * Disable the xprint and dmx DDX for now, they fail to build. + * xserver-xorg-dev needs a dependency on libpixman-1-dev. + * Add explanations about our tarball and upstream URL to debian/copyright. + + [ Drew Parsons ] + * Update Xprint build to include pixman. + + [ David Nusinow ] + * Add 03_auto_load_driver.diff. This patch allows the server to select a + driver and automatically create a Devices section when none is specified + in your xorg.conf. It chooses the driver based on a set of PCI ID's that + the driver itself provides in /usr/share/xserver-xorg/pci. If no driver + claims the PCI ID of your primary video card, then it will choose a + fallback based on your system. + + -- Julien Cristau Sat, 18 Aug 2007 18:28:49 +0200 + +xorg-server (2:1.3.0.0.dfsg-13) UNRELEASED; urgency=low + + [ Debconf templates translations ] + * Italian added. Closes: #422414 + * Slovak added. Closes: #438578 + + -- Christian Perrier Sun, 26 Aug 2007 12:09:52 +0200 + +xorg-server (2:1.3.0.0.dfsg-12ubuntu8) gutsy; urgency=low + + * Add 145_glx_visuals_bound_check.patch to fix issue where mesa + incorrectly counts its visuals and can free too many of them during + video mode changes (VT switch, restart, hibernate, etc.) such as + when running Compiz. (closes LP: #127101) + + -- Bryce Harrington Fri, 28 Sep 2007 15:48:08 -0700 + +xorg-server (2:1.3.0.0.dfsg-12ubuntu7) gutsy; urgency=low + + * Drop 143_fedora_xserver-1.3.0-randr12-config-hack.patch + as it causes failure to detect proper resolution on some intel + hardware. (closes LP: #144956) + + -- Bryce Harrington Tue, 25 Sep 2007 14:42:59 -0700 + +xorg-server (2:1.3.0.0.dfsg-12ubuntu6) gutsy; urgency=low + + * Drop 214_Bug_9680-_Remove_bogus_blank_length_limiting_in_xf86SetModeCrtc.patch + as it is causing black bars to appear on screen for i810 users. + (closes LP: #137604 + several dupes) + + -- Bryce Harrington Thu, 20 Sep 2007 14:35:54 -0700 + +xorg-server (2:1.3.0.0.dfsg-12ubuntu5) gutsy; urgency=low + + [ Kees Cook ] + * debian/patches/132_composite-no-clipping.diff: Adjusted WindowRec + structure order and RedirectDraw logic to avoid nvidia crashes + (fixes LP: #130325). + * debian/patches/100_security_fdo-bug-7447.diff: Composite used for + pixmap population on redirect. [CVE-2007-4730] + + -- Bryce Harrington Tue, 18 Sep 2007 17:20:14 -0700 + +xorg-server (2:1.3.0.0.dfsg-12ubuntu4) gutsy; urgency=low + + * debian/patches/133_psb_auto.patch: Add automatic detection of + Poulsbo hardware when running without a Device definition. + * Added some cherry-picked patches from fedora: + - 134_fedorda_xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch: + Fixes race condition where someone does a VT_ACTIVATE + between another ACTIVATE/WAITACTIVE by adding a fail. + (Potentially might address Ubuntu bugs 134478 and/or 134982) + - 135_fedora_xorg-x11-server-1.1.1-xkb-in-xnest.patch: Fixes issue when + starting a session in an xnest nest environment as a different user, + where keyboard map does not get preserved. Removes + NO_HW_ONLY_EXTS check to address this issue. (RedHat bug 193431; + Potentially may address Ubuntu bug 44846) + - 136_fedora_xserver-1.2.0-honor-displaysize.patch: Fixes issue if monitor + width and height have been specified, xserver would override them + with the hsize/vsize detected from DDC. + - 137_fedora_xserver-1.2.0-vfprintf.patch: Fixes typo 'vfprinf' + - 138_fedora_xserver-1.3.0-default-dpi.patch: Changes default dpi to 100. + (Addresses Ubuntu bugs 118745, 107320, many others...) + - 139_fedora_xserver-1.3.0-document-fontpath-correctly.patch: Fixes + document fontpaths shown in the man page. + - 140_fedora_xserver-1.3.0-domain-obiwan.patch: Fixes longstanding bug in + domain support. + - 141_fedora_xserver-1.3.0-edid-quirk-backports.patch: Adds quirk for + Samsung SyncMaster 225BW. + - 142_fedora_xserver-1.3.0-no-pseudocolor-composite.patch: Composite on + 8bpp pseudocolor root windows appears to fail, so just disable it + on anything pseudocolor for safety. + - 143_fedora_xserver-1.3.0-randr12-config-hack.patch: Adds check to use + the screen's xrandr modes if a preferred mode was not specified. + - 144_fedora_xserver-1.3.0-xnest-exposures.patch: Only collect xnest + exposures for xexposes with non-zero height and width. + + -- Bryce Harrington Fri, 7 Sep 2007 14:23:23 -0700 + +xorg-server (2:1.3.0.0.dfsg-12ubuntu3) gutsy; urgency=low + + * Added some cherry-picked patches from xserver 1.3.99: + - 202_Add_quirk_for_Acer_AL1706_monitor_to_force_60hz_refresh.patch: + The Acer AL1706 monitor reports support for 75hz via EDID, but + does not sync when this range is given, so force it to 60hz. + - 205_Bug_10770-_Inputdevs_isnt_a_valid_config_file_keyword.patch: + Fixes typo in config file parser. + - 208_Bug_6620-_Fixed_a_missing_else_in_ATIPseudoDMAInit.patch: + Fixes issue where registers were written twice on R200, sometimes + also putting bad values in atis->cce_pri_size. + - 214_Bug_9680-_Remove_bogus_blank_length_limiting_in_xf86SetModeCrtc.patch: + Fixes situation where when a specific mode is requested by monitor + or user, xorg would tweak it to something incorrect. + - 216_Bug_9041-_Check_the_return_code_in_xf86MapDomainMemory.patch: + Fixes issue where mmap return value was being ignored and failing + to issue fatal error as it should. + - 221_ExaOffscreenMarkUsed-_Dont_crash_when_theres_no_offscreen_memory.patch: + Fixes crash when there is no offscreen memory for EXA. + - 222_Fix_a_crash_when_rotating_the_screen.patch: + Fixes crash when rotating screen with xrandr. + - 223_Fix_bug_8871-scrolling_corruption_with_a_compositing_manager.patch: + Fixes scrolling corruption with composite due to incorrectly + generated GraphicsExposes. + - 224_Fix_calculations_in_x86_emulator_for_the_long_long_case_Andreas_Schwab.patch: + Fixes long long multiplication when in x86 emulator. + - 227_Fix_sync_polarity_on_Samsung_SyncMaster_205BW_monitor.patch: + Adds quirk for Samsung SyncMaster 205BW + - 230_In___glXCreateARGBConfig_insert_the_new_GL_mode_at_the__end__of_the_linked_list.patch: + Fixes insertion order of linked list that can cause GLX clients to + fail when attempting to use the last GLX mode/visual. + - 231_In_dmxBackendMouGetInfo_initialize_the_info-minval_maxval_arrays_to_the_size_of_the_backend_display.patch: + Fixes potential issue in X input where axis clipping code in + GetPointerEvents() constrains the pointer's coordinate range to a + max of 0, causing the mouse to not move. + - 234_Reapply_patch_to_fix_AMD_CPU_detection.patch: + Fixes AMD Geode CPU detection. + - 236_Syncmaster_226_monitor_needs_60Hz_refresh_10545.patch: + Adds quirk for Samsung SyncMaster 226BW. + - 238_Update_pci.ids_to_2007-07-16_snapshot.patch: + Updates our pci ids to support more current hardware. + Remove nvidia ids in extrapci.ids that are now in pci.ids. + Add nvidia ids to extrapci.ids that are in xf86-video-nv but not pci.ids + - 241_XFree86-_Treat_evdev_and_vmmouse_as_mouse_drivers_bug_10512_10559.patch: + Fix issue where a default mouse device gets automatically added + when an evdev or vmmouse section has already been specified. + - 243_exaDriverInit-_Fail_if_pScreenInfo_or_a_member_of_it_is_invalid.patch: + Fix crash in EXA when pScreenInfo or a member of it is invalid. + - 244_fix_an_occasional_crash_in_GetWindowName_bug-_9798.patch: + Fixes crash by adding check of XmbTextPropertyToTextList()'s + return code. + - 245_regenerated_to_fix_bug_10371.patch: + Fixes issue where if DRI is disabled, GL_MAX_TEXTURE_COORDS_ARB + value is not returned correctly from glGetIntegerv(). + + -- Bryce Harrington Fri, 31 Aug 2007 18:36:22 -0700 + +xorg-server (2:1.3.0.0.dfsg-12ubuntu2) gutsy; urgency=low + + * Don't send a configuration change event just because somebody's pressed + a brightness key + + -- Matthew Garrett Sun, 26 Aug 2007 16:17:15 +0100 + +xorg-server (2:1.3.0.0.dfsg-12ubuntu1) gutsy; urgency=low + + * Merge from debian unstable, remaining changes: + - debian/control: + + set Conflicts: xkb-data (<< 0.9), since xkb-path is + different from previous releases + + do not Conflict with xserver-xorg-video + + xvfb Depends on xauth, xfonts-base + + Set Maintainer to Ubuntu Core Developers + - debian/rules: + + --with-os-vendor=Ubuntu + - debian/xserver-xorg-core.install: + + Add ioport, pcitweak, scanpci scripts & man pages + - debian/patches: + + 102_ubuntu_sharevts_load_cpu.patch: + close console fd only when ShareVTs + + 104_fedora_init_origins_fix.patch: + multihead initialization + + 106_ubuntu_fpic_libxf86config.patch: + Add -fPIC to makefiles for xfree86/parser + + 107_fedora_dont_backfill_bg_none.patch + 110_fedora_no_move_damage.patch, + 114_fedora_no_composite_in_xnest.patch, + 120_fedora_disable_offscreen_pixmaps.patch: + further aiglx support + + 119_ubuntu_enable_composite.diff: + enable composite + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 123_no_composite_for_xvfb_run.patch: + use "-extension Composite" to fix xvfb-run crashing + + 125_glx_remove-stray__GLinterface.diff, + 126_glxproxy_remove-stray__GLinterface.diff, + 127_mesa-6.5.3-compat.diff: + Patches needed to build against newer Mesa. + + 132_composite-no-clipping.diff: + Change the semantics of manual-redirect Composite windows so that + they do not clip sibling or parent drawing. Needed by hildon-desktop + to prevent home applets from clipping. + - debian/apport.py: Add apport hook for automatically attaching + files useful for debugging X crashes: Xorg.0.log, xorg.conf, + lsmod, lspci, and /proc/version + + -- Timo Aaltonen Tue, 21 Aug 2007 22:01:38 +0300 + +xorg-server (2:1.3.0.0.dfsg-12) unstable; urgency=low + + [ Brice Goglin ] + * Add 51_xkb-and-loathing.diff to fix a hang in OpenOffice.org + when opening menus, closes: #433131. + * Install the exa(4) and fbdevhw(4) manpages. + + [ Julien Cristau ] + * Update the xorg.conf(5) manpage to get documentation for RandR 1.2 + options: + + 07_stolen_from_HEAD_xorgconf_manpage.diff: new patch; + + 07_xorgconf_manpage_overhaul.diff dropped; + + 34_xorg.conf_man_typos.patch dropped; + + 05_module_defaults.diff, 94_use_default_font_path.diff: dropped hunks + applying to hw/xfree86/doc/man/xorg.conf.man.pre. + * Add patch 11_define_XFree86Server.diff: XFree86Server needs to be defined + in xorg-server.h and exported to drivers. + * Add patches 125_glx_remove-stray__GLinterface.diff + 126_glxproxy_remove-stray__GLinterface.diff and 127_mesa-6.5.3-compat.diff + to build with mesa >= 6.5.3, and bump build-dependency on + mesa-swx11-source. + * Include the Debian package version in OSVENDOR to make it appear in the + X log. + + -- Julien Cristau Thu, 09 Aug 2007 16:32:14 +0200 + +xorg-server (2:1.3.0.0.dfsg-11) unstable; urgency=low + + * Yet another alpha build fix: also remove the asm/pci.h include from + os-support/linux/lnx_axp.c. Include "lnx.h" and instead. + + -- Julien Cristau Sat, 14 Jul 2007 20:09:35 +0200 + +xorg-server (2:1.3.0.0.dfsg-10) unstable; urgency=medium + + * hw/xfree86/common/compiler.h and declare incompatible + prototypes for outb and friends, so change the patch from -9 to not + #include and rely on declarations in lnx.h itself for the + IOBASE_* macros. + + -- Julien Cristau Sat, 14 Jul 2007 18:06:14 +0200 + +xorg-server (2:1.3.0.0.dfsg-9) unstable; urgency=medium + + * Include instead of in + hw/xfree86/os-support/linux/lnx.h, as the latter isn't exported to + userspace anymore; fixes FTBFS on alpha. Thanks, Steve Langasek! + + -- Julien Cristau Sat, 14 Jul 2007 12:17:10 +0200 + +xorg-server (2:1.3.0.0.dfsg-8) unstable; urgency=medium + + * Medium-urgency upload to get the fix for #428794 in testing faster, + hopefully. + + [ Brice Goglin ] + * Add 47_fbdevhw_magic_numbers.diff: patch by Adam Jackson to keep the + fbdev2xfree_timing() function from changing the pixel clock value if the + fbdev driver claims that it is 0. + + [ Julien Cristau ] + * Don't build the type1 font module. + * Add patch by Alan Coopersmith to map (case-insensitively) the old + "keyboard" input driver to "kbd" (addresses: #428794). I'm not + reassigning the bug to xserver-xorg-core for now so as not to break + testing by letting xserver-xorg-input-keyboard transition before the fixed + xorg-server. + + -- Julien Cristau Sat, 14 Jul 2007 01:48:20 +0200 + +xorg-server (2:1.3.0.0.dfsg-7) unstable; urgency=low + + [ Brice Goglin ] + * Add 40_consolidate_portPriv_pDraw_assignments.diff to avoid a crash + in xf86XVReputVideo (closes: #424899, #431655). + * Add 41_vbe_filter_less.diff to not reject VESA modes early since + xf86ValidateModes should handle them just fine (closes: #424684). + * Add 42_only_run_special_key_behaviours_on_non-XKB.diff to fix special + keys in Xephyr (closes: #415025). + * Add 43_xephyr_crash_at_exit.diff to avoid crashing Xephyr when first + client disconnect (closes: #420421). + + -- Julien Cristau Wed, 04 Jul 2007 23:42:40 +0200 + +xorg-server (2:1.3.0.0.dfsg-6ubuntu3) gutsy; urgency=low + + * debian/patches/series: + - Re-enable 132_composite-no-clipping.diff with fix from upstream + + -- Bryce Harrington Wed, 25 Jul 2007 16:39:29 -0700 + +xorg-server (2:1.3.0.0.dfsg-6ubuntu2) gutsy; urgency=low + + * debian/patches/series: + - don't apply 132_composite-no-clipping.diff for now, it doesn't work + correctly when using compiz + + -- Sebastien Bacher Fri, 13 Jul 2007 17:03:42 +0100 + +xorg-server (2:1.3.0.0.dfsg-6ubuntu1) gutsy; urgency=low + + * Merge from Debian unstable. Remaining Ubuntu changes: + - debian/control: + + set Conflicts: xkb-data (<< 0.9), since xkb-path is + different from previous releases + + do not Conflict with xserver-xorg-video + + xvfb Depends on xauth, xfonts-base + + Set Maintainer to Ubuntu Core Developers + - debian/rules: + + build using -fno-stack-protector + + --with-os-vendor=Ubuntu + - debian/xserver-xorg-core.install: + + Add ioport, pcitweak, scanpci scripts & man pages + - debian/patches: + + 102_ubuntu_sharevts_load_cpu.patch: + close console fd only when ShareVTs + + 104_fedora_init_origins_fix.patch: + multihead initialization + + 106_ubuntu_fpic_libxf86config.patch: + Add -fPIC to makefiles for xfree86/parser + + 107_fedora_dont_backfill_bg_none.patch: + Re-enable to see if it helps with performance regressions. + + 108_fedora_gl_include_inferiors.patch, + 110_fedora_no_move_damage.patch, + 114_fedora_no_composite_in_xnest.patch: + further aiglx support + + 119_ubuntu_enable_composite.diff: + enable composite + + 120_fedora_disable_offscreen_pixmaps.patch: + update to the latest version from Fedora (rev. 1.6, was 1.1) + Despite being a hack, it works and is needed for compositing + managers to work properly. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 123_no_composite_for_xvfb_run.patch: + use "-extension Composite" to fix xvfb-run crashing + - 125_glx_remove-stray__GLinterface.diff, + 126_glxproxy_remove-stray__GLinterface.diff, + 127_mesa-6.5.3-compat.diff: + Mesa 6.5.3 build support + * debian/apport.py: Add apport hook for automatically attaching + files useful for debugging X crashes: Xorg.0.log, xorg.conf, + lsmod, lspci, and /proc/version + * debian/patches/132_composite-no-clipping.diff: Change the + semantics of manual-redirect Composite windows so that they do not + clip sibling or parent drawing. Needed by hildon-desktop to prevent + home applets from clipping. + + -- Bryce Harrington Mon, 2 Jul 2007 12:47:44 -0700 + +xorg-server (2:1.3.0.0.dfsg-6) unstable; urgency=low + + * Change fglrx conflict to << 8.37.6 (closes: #424975). + + -- Julien Cristau Fri, 01 Jun 2007 14:58:39 +0200 + +xorg-server (2:1.3.0.0.dfsg-5) unstable; urgency=low + + [ Brice Goglin ] + * Add 24_hurd_ioperm_fix.diff to fix xf86Enable/DisableIO on Hurd with + recent GNU Mach. Thanks Samuel Thibault! + * Add 06_use_proc_instead_of_sysfs_for_pci_domains.diff since sysfs-based + PCI management code is broken at least on sparc and powerpc. + Closes: #422077, #422095. Thanks to Jim Watson for testing! + * Install the Xephyr README, closes: #395888. + * Update 07_xorgconf_manpage_overhaul.diff to drop the reference to the + xorg.conf example which we do not install since Xserver 1.3 does automatic + configuration, the manpage is very well documented, and we generate a + config file during installation. Closes: #222932. + * Fix warning in /etc/init.d/xprint when /usr/lib/X11/fonts does not exist. + Closes: #422352. Thanks Cristian Ionescu-Idbohrn! + * Pull upstream commit 9c80eda826448822328bb678a7d284cc43fffb17 to disable + RandR's fake xinerama geometry when there's more than one protocol screen + (closes: #420679). + + [ Julien Cristau ] + * Add patch to make sure that the ramdac symbols are present in the server + and drivers can use them (closes: #423129). + * xserver-xorg-core Conflicts with fglrx-driver, which broke with 1.3. + We'll need to make this versioned (or drop it) when fglrx is fixed. + + -- Julien Cristau Wed, 16 May 2007 15:17:55 +0200 + +xorg-server (2:1.3.0.0.dfsg-4ubuntu2) gutsy; urgency=low + + * Build-Depend on mesa 6.5.3 + * Apply Mandriva patches to build against mesa 6.5.3 + - 125_glx_remove-stray__GLinterface.diff + - 126_glxproxy_remove-stray__GLinterface.diff + - 127_mesa-6.5.3-compat.diff + + -- Kyle McMartin Sat, 26 May 2007 18:12:35 +0000 + +xorg-server (2:1.3.0.0.dfsg-4ubuntu1) gutsy; urgency=low + + * Merge from Debian unstable. Remaining Ubuntu changes: + - debian/control: + + set Conflicts: xkb-data (<< 0.9), since xkb-path is + different from previous releases + + do not Conflict with xserver-xorg-video + + xvfb Depends on xauth, xfonts-base + + Set Maintainer to Ubuntu Core Developers + - debian/rules: + + build using -fno-stack-protector + + --with-os-vendor=Ubuntu + - debian/xserver-xorg-core.install: + + Add ioport, pcitweak, scanpci scripts & man pages + - debian/patches: + + 102_ubuntu_sharevts_load_cpu.patch: + close console fd only when ShareVTs + + 104_fedora_init_origins_fix.patch: + multihead initialization + + 106_ubuntu_fpic_libxf86config.patch: + Add -fPIC to makefiles for xfree86/parser + + 107_fedora_dont_backfill_bg_none.patch: + Re-enable to see if it helps with performance regressions. + + 108_fedora_gl_include_inferiors.patch, + 110_fedora_no_move_damage.patch, + 114_fedora_no_composite_in_xnest.patch: + further aiglx support + + 119_ubuntu_enable_composite.diff: + enable composite + + 120_fedora_disable_offscreen_pixmaps.patch: + update to the latest version from Fedora (rev. 1.6, was 1.1) + Despite being a hack, it works and is needed for compositing + managers to work properly. + + 121_only_switch_vt_when_active.diff: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + 123_no_composite_for_xvfb_run.patch: + use "-extension Composite" to fix xvfb-run crashing + * Drop 124_fix-pdripriv_null_deref.patch. Already fixed in GLX code. + See upstream FDO bug #8537 + + -- Bryce Harrington Mon, 14 May 2007 16:40:03 -0700 + +xorg-server (2:1.3.0.0.dfsg-4) unstable; urgency=low + + * Cherry-pick patch from upstream git to fix security issue in the Xrender + extension: malicious clients can cause a division by zero in the server + (closes: #422936). Reference: CVE-2007-2437. Thanks, Micah Anderson! + + -- Julien Cristau Wed, 09 May 2007 02:11:08 +0200 + +xorg-server (2:1.3.0.0.dfsg-3) unstable; urgency=low + + * Include 94_use_default_font_path.diff. This patch is like Eugene's patch + to always look in the default font path from the past, but now we provide + an option to disable looking in the default font path at runtime. This + will allow people to specify additional font paths in their xorg.conf + without losing their current paths. This will also help avoid people + having ye olde "fixed font" problem. + * Fix compilation warnings for 05_module_defaults.diff. Previously the patch + used a generic pointer for the options record, but now we use the actual + XF86OptionsPtr type. + + -- David Nusinow Thu, 26 Apr 2007 22:39:52 -0400 + +xorg-server (2:1.3.0.0.dfsg-2) unstable; urgency=low + + * Add Brice Goglin's fix for 05_module_defaults.diff, so that it also works + when there is no module section at all. Thanks to Michel Dänzer for + helping also. + + -- David Nusinow Sat, 21 Apr 2007 09:34:12 -0400 + +xorg-server (2:1.3.0.0.dfsg-1) unstable; urgency=low + + * Upload to unstable. + * Add XS-Vcs-* to debian/control. + * Remove non-free file hw/xfree86/doc/README.DRI from the upstream tarball. + * Bump serverminver to 2:1.3.0.0. + + -- Julien Cristau Fri, 20 Apr 2007 07:54:14 +0200 + +xorg-server (2:1.3.0.0-1) experimental; urgency=low + + * New upstream release + + -- David Nusinow Thu, 19 Apr 2007 22:27:05 -0400 + +xorg-server (2:1.2.99.905-3) experimental; urgency=low + + [ Julien Cristau ] + * xvfb now Recommends: xfonts-base (closes: #314598). + + [ David Nusinow ] + * Add 05_module_defaults.diff. This provides default modules loading + capabilities for the server that may be overrided easily. Previously the + server would load a set of default modules, but only if none were + specified in the xorg.conf, or if you didn't have a xorg.conf at all. This + patch provides a default set and you can add only the "Load" instructions + to xorg.conf that you want without losing the defaults. Similarly, if you + don't want to load a module that's loaded by default, you can add + "Disable modulename" to your xorg.conf (see man xorg.conf in this release + for details). See upstream bug #10541 for more. + + -- David Nusinow Sun, 15 Apr 2007 11:17:45 -0400 + +xorg-server (2:1.2.99.905-2) experimental; urgency=low + + * Install the cvt and gtf utilities and their manpages (closes: #414792). + * Build the xserver-xorg-core-dbg package, which contains debugging symbols + for Xorg and /usr/lib/xorg/modules/**/*.so + + -- Julien Cristau Mon, 09 Apr 2007 20:38:22 +0200 + +xorg-server (2:1.2.99.905-1) experimental; urgency=low + + * New upstream release candidate. + + includes fix for CVE-2007-1003: XC-MISC Extension ProcXCMiscGetXIDList() + Memory Corruption. + + -- Julien Cristau Fri, 06 Apr 2007 12:05:40 +0200 + +xorg-server (2:1.2.99.903-1) experimental; urgency=low + + [ Drew Parsons ] + * Add exclude entries to dh_install in debian/rules. + + [ Julien Cristau ] + * Prepare packaging to ship debugging symbols for xserver-xorg-core in + xserver-xorg-core-dbg, but leave it commented out so we can get rc3 in the + archive first. + * New upstream release candidate. + + bump serverminver to 2:1.2.99.903. + + -- Julien Cristau Tue, 27 Mar 2007 07:33:29 +0200 + +xorg-server (2:1.2.99.902-1) experimental; urgency=low + + [ Drew Parsons ] + * Bring xprint back into the xorg fold. + - include existing patches: + - 91_ttf2pt1 allows Xprint to use ttf2pt1 for Type1 font handling + (but extract and apply manually the patch to + hw/xprint/ps/Makefile.am so it may be applied by autoconf) + - 91_ttf2pt1_updates brings ttf2pt1 into the modern X11R7.1 world + - 92_xprint-security-holes-fix.patch places PS/PDF file output + into the user's home directory (~/Xprintjobs), more secure than + a shared /tmp/Xprintjobs + - 93_spooltodir_check_file_exists ensures output filenames are + less than 256 characters in length + - 93_xprint_fonts_fix released references to font names after use. + - enable freetype support for Xprint. + - add descriptions to debian/control and Build-Dependency on + x11proto-print-dev + * Run autoreconf to update changes to hw/xprint/ps/Makefile.am. + + [ Brice Goglin ] + * Apply patch from adrian@smop.co.uk to our xvfb-run wrapper + to check whether Xvfb started ok and fix its cleanup + (closes: #351042). + + [ Julien Cristau ] + * New upstream release candidate. + * Bump serverminver to 2:1.2.99.902. + * Drop patch 42_build_int10_submodules.diff, and use x86emu on all + architectures instead (closes: #410879). + * Refresh patches: + + 12_security_policy_in_etc.diff + + 21_glx_align_fixes.patch + + 23_kfreebsd_support.diff + * Delete a few files generated by configure on clean, since they seem to + have been included in the tarball. + + -- Julien Cristau Thu, 15 Mar 2007 04:28:00 +0100 + +xorg-server (2:1.2.99.901-1) experimental; urgency=low + + * New upstream release candidate. + + Remove patches 24 (hurd support), 35 (randr byteswap) and 43 (set damage + version), applied upstream. + + Bump build-dep on x11proto-randr-dev to >= 1.2, and on + x11proto-damage-dev to >= 1.1. + + -- Julien Cristau Wed, 7 Mar 2007 19:58:53 +0100 + +xorg-server (2:1.2.0-6) experimental; urgency=low + + * Set videoabiver to 1.0, same as in xorg-server 1.1. + + -- Julien Cristau Fri, 2 Mar 2007 16:38:12 +0100 + +xorg-server (2:1.2.0-5) experimental; urgency=low + + * Add input ABI versioning metadata. Rename serverabiver file to + videoabiver, and add inputabiver. Bump serverminver to 2:1.2.0-5 to deal + with this change. + + -- David Nusinow Thu, 1 Mar 2007 22:09:45 -0500 + +xorg-server (2:1.2.0-4) experimental; urgency=low + + [ Julien Cristau ] + * Don't strip modules when DEB_BUILD_OPTIONS contains nostrip. Thanks, + Cyril Brulebois! + + [ David Nusinow ] + * Move serverabiver file to serverminver. Use serverabiver to store the + actual video ABI version number (1.1 right now). This will allow drivers + to automatically generate their Provides: xserver-xorg-video-* line when + built against a particular server version. The rename of the files + is to better denote what they actually are. + * Bump the serverminver to 2:1.2.0-4 because of this change + + -- David Nusinow Wed, 21 Feb 2007 21:53:51 -0500 + +xorg-server (2:1.2.0-3ubuntu8) feisty; urgency=low + + * SECURITY UPDATE: arbitrary code execution with root privs via integer + overflows in MISC-XC. + * Add debian/patches/131_misc_xc_overflows.patch: upstream fixes. + * References + CVE-2007-1003 + + -- Kees Cook Thu, 29 Mar 2007 17:46:44 -0700 + +xorg-server (2:1.2.0-3ubuntu7) feisty; urgency=low + + * debian/patches/120_fedora_disable_offscreen_pixmaps.patch + - update to the latest version from Fedora (rev. 1.6, was 1.1) + + -- Timo Aaltonen Fri, 30 Mar 2007 10:39:01 +0300 + +xorg-server (2:1.2.0-3ubuntu6) feisty; urgency=low + + * debian/{rules,xsfbs/xsfbs.mk,serverminver,inputabiver} + - Import changes from current debian package, needed for the new intel + driver. + - Rename serverabiver to videoabiver, value 1.0. + - Set serverminver as this version. + * debian/patches: + 129_remove_extra_i2c_bittimeout.patch + 130_slow_down_ddc_i2c.patch + - Patches from server-1.3 branch, which make probing the monitor more + robust. + + -- Timo Aaltonen Thu, 29 Mar 2007 00:56:17 +0300 + +xorg-server (2:1.2.0-3ubuntu5) feisty; urgency=low + + * debian/patches/120_fedora_disable_offscreen_pixmaps.diff + - Re-enable. Despite being a hack, it works and is needed for compositing + managers to work properly. (LP: #89189) + + -- Timo Aaltonen Tue, 27 Mar 2007 02:33:31 +0300 + +xorg-server (2:1.2.0-3ubuntu4) feisty; urgency=low + + * debian/patches/107_fedora_dont_backfill_bg_none.patch: + - Re-enable to see if it helps with performance regressions. + * debian/patches/127_check_for_clientgone.patch: + - A fix from upstream. (LP: #60288) + * debian/patches/128_fix_client_privates_leak.patch + - Plug a memory leak. (LP: #92882) + * debian/rules + - Fix a typo in --with-default-font-path. + + -- Timo Aaltonen Sat, 17 Mar 2007 00:38:09 +0200 + +xorg-server (2:1.2.0-3ubuntu3) feisty; urgency=low + + * debian/patches: + - Rename 019_ubuntu_enable_composite.diff to 119_* so that it is in line + with the rest of our patches + - Re-add 126_debian_always_use_default_font_path.diff. This was dropped + by Debian but needed by us since we still have legacy fontpaths in + old configurations, so new paths need to be appended to the list. + + -- Timo Aaltonen Wed, 28 Feb 2007 11:54:18 +0200 + +xorg-server (2:1.2.0-3ubuntu2) feisty; urgency=low + + * debian/control: + - xvfb Depends on xauth, xfonts-base + + -- Sebastien Bacher Tue, 27 Feb 2007 23:31:06 +0100 + +xorg-server (2:1.2.0-3ubuntu1) feisty; urgency=low + + * Don't drop 42_build_int10_submodules.diff, it's useful + * 019_ubuntu_enable_composite.diff: + - enable composite + * debian/control: + - fixed Maintainer email + * debian/xserver-xorg-core.install: + - list ioport, gtf, pcitweak and scanpci + and manpages for scanpci, gtf, pcitweak + + [ Timo Aaltonen ] + * Merge with Debian, remaining changes: + - debian/rules: + + build using -fno-stack-protector + + --with-os-vendor=Ubuntu + - debian/control: + + don't Conflict with xserver-xorg-video + - refreshed and renamed patches + 102_ubuntu_sharevts_load_cpu.patch + 104_fedora_init_origins_fix.patch + 106_ubuntu_fpic_libxf86config.patch + 114_fedora_no_composite_in_xnest.patch + 121_only_switch_vt_when_active.diff + 124_fix-pdripriv_null_deref.patch + - dropped for now: + 42_build_int10_submodules.diff - causes "some regression" + * dropped patches (comments from Michel Daenzer): + - 107_fedora_dont_backfill_bg_none.patch + "Breaks X semantics and thus can't go in upstream. Apps/toolkits + need to be fixed not to use background none windows." + - 108_fedora_gl_include_inferiors.patch + "Breaks GLX semantics and should no longer be necessary now that + the GLX compositing managers default to using the Composite + Overlay Window." + - 120_fedora_disable_offscreen_pixmaps.diff + "Last time I looked at this, it was a gross hack to work around XAA + deficiencies in offscreen pixmap handling, which makes the server + die immediately when trying to use GLX_EXT_texture_from_pixmap + with EXA, due to calling XAA functions without checking it's + active or even loaded." + * debian/control: + - set Conflicts: xkb-data (<< 0.9), since xkb-path is + different from previous releases + * debian/patches/125_randr-version-supported.diff: + - The server supports protocol 1.1, make sure we use it. + + -- Sebastien Bacher Mon, 26 Feb 2007 09:36:38 +0100 + +xorg-server (2:1.2.0-3) experimental; urgency=low + + [ Julien Cristau ] + * Pass --with-os-name and --with-os-vendor to configure. + * Bump serverabiver to 2:1.2.0-1. + * Add patch from upstream git to set the supported damage version from the + server, instead of from the damage headers. xserver 1.2.0 supports damage + 1.0, not 1.1. + + -- Julien Cristau Sat, 17 Feb 2007 12:03:03 +0100 + +xorg-server (2:1.2.0-2) experimental; urgency=low + + * Delete useless debian/substvars. + * Change my email address in debian/control. + * Fix patch 42_build_int10_submodules.diff. The definition of + xf86InitInt10() was moved to int10/helper_exec.c between 1.1.1 and 1.2.0, + so we move it to int10/helper_mem.c, which we build in the main int10 + module, not the vm86 and x86emu submodules. Thanks to Cédric Augonnet and + Brice Goglin for the report and testing. + + -- Julien Cristau Sat, 10 Feb 2007 20:57:57 +0100 + +xorg-server (2:1.2.0-1) experimental; urgency=low + + * New upstream release. + + 40_xorg-xserver-1.1.0-dbe-render.diff dropped. + + 38_GetDrawableAttributes.patch dropped. + + 37_build-mesa-mipmap.patch dropped. + + 33_Xserver_man_typos.patch dropped. + + 24_hurd_support.diff massively reduced. + + 13_debian_add_xkbpath_env_variable.diff refreshed. + + 07_xorgconf_manpage_overhaul.diff updated. + + 42_build_int10_submodules.diff updated. + * Bump build-dep on mesa-swx11-source to >= 6.5.2. + * Version build-dependencies on x11proto-composite-dev and x11proto-kb-dev + to match configure.ac. + * Add build-dep on libxfixes-dev (needed for Xdmx). + + -- Julien Cristau Fri, 9 Feb 2007 20:54:27 +0100 + +xorg-server (2:1.1.99.903-1) experimental; urgency=low + + * New upstream release candidate. + * Forward-port patches: + * 07_xorgconf_manpage_overhaul.diff: refresh + * 12_security_policy_in_etc.diff: refresh + * 21_glx_align_fixes.patch: refresh + * 23_kfreebsd_support.diff: refresh + * 24_hurd_support.diff: refresh + * 34_xorg.conf_man_typos.patch: refresh + * 36_fix_ffs.patch: remove, applied upstream + * Bump build-dependency on libdrm-dev to (>= 2.3.0) because that is the X + server's minimum requirement. + + -- Thierry Reding Sat, 2 Dec 2006 12:44:59 +0100 + +xorg-server (2:1.1.99.902-1) experimental; urgency=low + + * Update to latest upstream release candidate. + * Forward-port patches: + * 02_libvgahw_gcc4_volatile_fix.diff: update + * 04_read_rom_in_chunks.diff: update + * 05_arm_cache_flush.diff: remove, applied upstream + * 06_arm_is_not_x86_and_has_no_vga.diff: remove, applied upstream + * 07_xorgconf_manpage_overhaul.diff: update + * 08_s390_servermd.diff: update + * 09_debian_xserver_rtff.diff: update + * 12_security_policy_in_etc.diff: update + * 13_debian_add_xkbpath_env_variable.diff: update + * 15_symlink_mesa.diff: remove, fixed upstream + * 16_s390_fix.diff: update + * 17_ignoreabi.diff: remove, applied upstream + * 18_execinfo_only_for_backtrace.patch: remove, applied upstream + * 18_execinfo_configured.patch: remove, applied upstream + * 19_configurable_misc_utils.patch: remove, applied upstream + * 20_mesa_6.5.1.diff: remove, applied upstream + * 21_glx_align_fixes.patch: update + * 22_xkb_cycle_3layouts.diff: remove, applied upstream + * 23_kfreebsd_support.diff: update, partially applied upstream + * 24_hurd_support.diff: update, partially applied upstream + * 25_tfp_damage.diff: remove, applied upstream + * 26_aiglx_happy_vt_switch.diff: remove, applied upstream + * 27_aiglx_locking.diff: remove, applied upstream + * 28_mesa_copy_sub_buffer.diff: remove, applied upstream + * 29_mesa_reseed_makefile.diff: remove, fixed upstream + * 30_fix_vmode_switch.diff: remove, fixed upstream + * 31_blocksigio.diff: remove, fixed upstream + * 32_disable_sparc_pci_bridge.diff: update + * 34_xorg.conf_man_typos.patch: update + * 35_randr_byteswap.patch: update + * 36_fix_ffs.patch: update + * 37_Fix-__glXDRIbindTexImage-for-32-bpp-on-big-endian-platforms.diff: + remove, applied upstream + * Upstream no longer ships a changelog, so don't try to install it. + * Add 37_build-mesa-mipmap.patch that adds the missing mipmap.c to libmain's + sources. + * Add 38_GetDrawableAttributes.patch which readds support for the + GetDrawableAttributes extension that's needed for compiz to work properly. + + -- Thierry Reding Fri, 1 Dec 2006 20:32:34 +0100 + +xorg-server (2:1.1.1-21) unstable; urgency=emergency + + * Security update. + * Fix integer overflow in the ProcXCMiscGetXIDList() function in the XC-MISC + extension. Reference: CVE-2007-1003. + + -- Julien Cristau Wed, 04 Apr 2007 00:34:51 +0200 + +xorg-server (2:1.1.1-20) unstable; urgency=low + + * xephyr: Add patch from upstream git to fix memory leak in + ephyrScreenFini(). Thanks, Guillem Jover! + + -- Julien Cristau Tue, 6 Mar 2007 22:20:14 +0100 + +xorg-server (2:1.1.1-19) unstable; urgency=high + + [ Drew Parsons ] + * Removed spurious space in default font line + (/usr/X11R6/lib/X11/fonts/Type1 not "/usr/X11R6/lib/ X11/fonts/Type1") + + [ David Nusinow ] + * Conflict with and replace xserver-common, because that package used to + provide the SecurityPolicy file. This is an RC bugfix because it breaks + upgrades, so it gets a high urgency. Thanks Christian Tsotras and Lionel + Elie Mamane for reporting and it. Closes: #402658 + + -- David Nusinow Wed, 28 Feb 2007 21:48:19 -0500 + +xorg-server (2:1.1.1-18) unstable; urgency=medium + + * Add patch from Fedora to make xephyr work on 64bit architectures + (closes: #405928). + + -- Julien Cristau Fri, 16 Feb 2007 22:20:08 +0100 + +xorg-server (2:1.1.1-17) unstable; urgency=medium + + * Make the int10 module usable on i386 with a 64bit kernel (closes: #409730). + + New patch 42_build_int10_submodules.diff, which allows us to build vm86 + and x86emu as two separate submodules, and make the int10 module itself + fall back to loading x86emu if vm86 calls fail. + + Add workaround for https://bugs.freedesktop.org/show_bug.cgi?id=7299 to + the above patch: move definition of Int10Current from int10/xf86int10.c + to int10/helper_mem.c. + + Drop the part of 39_alpha_build_flags.patch applying to + hw/xfree86/os-support/linux/Makefile.in, and run autoreconf with all + patches applied. + + -- Julien Cristau Wed, 7 Feb 2007 20:37:19 +0100 + +xorg-server (2:1.1.1-16) unstable; urgency=medium + + * New patch 41_xfree86_linux_acpi_fix_tokenizing.diff from upstream git to + fix a crash on acpi events (closes: #409443). + + -- Julien Cristau Sat, 3 Feb 2007 22:56:04 +0100 + +xorg-server (2:1.1.1-15) unstable; urgency=high + + * High-urgency upload for security bugfix. + * New patch 40_xorg-xserver-1.1.0-dbe-render.diff to fix multiple integer + overflows in the dbe and render extensions. + CVE IDs: CVE-2006-6101 CVE-2006-6102 CVE-2006-6103 + * Add myself to Uploaders, and remove Fabio and Branden, with their + permission. They're of course welcome back when they have more time! + + -- Julien Cristau Tue, 9 Jan 2007 15:45:46 +0100 + +xorg-server (2:1.1.1-14) unstable; urgency=high + + * The "let's drop 20 years of build logic and replace it with autoconf in a + single release, trust me, what could go wrong? " release + * High-urgency upload for RC bugfix + * New patch 39_alpha_build_flags.patch: no really, when they said + lnx_ev56.c should be built with -mcpu=ev56, they really meant it. + Closes: #392500. + + -- Steve Langasek Sun, 7 Jan 2007 15:19:08 -0800 + +xorg-server (2:1.1.1-13) unstable; urgency=medium + + [ Julien Cristau ] + * xserver-xorg-core recommends xfonts-base and suggests xfonts-100dpi | + xfonts-75dpi and xfonts-scalable. Also add explanation about fonts to the + long description, stolen from the old xserver-common package (closes: + #400654). + + [ David Nusinow ] + * This is important for upgrades to etch, and has no notable risk, so bump + priority to medium. + + -- David Nusinow Fri, 29 Dec 2006 19:57:51 -0500 + +xorg-server (2:1.1.1-12) unstable; urgency=low + + [ Julien Cristau ] + * Delete hw/xfree86/common/xf86Build.h in debian/rules clean, since it's + wrongly included in the upstream tarball. + + [ David Nusinow ] + * Pull fix for the ignore_abi.diff patch. This one's a major brown bag on my + part. Thanks Michel Dänzer. + * Add 38_wait_for_something_force_timer_reset.diff which forces the server + to reset timers when they've overrun in some cases rather than wait + forever. Patch by Daniel Stone. Thanks Michel Dänzer for pointing the + changes out. Closes: #374026 + + -- David Nusinow Tue, 12 Dec 2006 21:13:20 -0500 + +xorg-server (2:1.1.1-11) unstable; urgency=low + + [ Drew Parsons ] + * Patches 33_Xserver_man_typos.patch and 34_xorg.conf_man_typos.patch + fix minor typos in Xserver and xorg.conf man pages. + Closes: #364556, #308899. + * Add patch 35_randr_byteswap.patch from upstream. Fixes a client/server + byteswapping problem. Closes: #291100. + + [ Julien Cristau ] + * Don't build-depend on libdrm-dev on hurd-i386 (closes: #358015). Thanks, + Samuel Thibault. + * Update hurd support patch (closes: #356300). Thanks, Samuel Thibault. + * Add reportbug script stolen from the monolith, to add the user's config + and log file in every bug report. + * Delete hw/xfree86/common/xf86Build.h from our source tree, so that the + build date is correctly calculated at build time, and not hardcoded to + 07 July 2006. Thanks to Jurij Smakov for noticing. + * Add patch 36_fix_ffs.patch by Jurij Smakov to fix infinite loop in ffs() + if called with an argument of 0 (closes: #395564). + * Add patch 37_Fix-__glXDRIbindTexImage-for-32-bpp-on-big-endian-platforms + from upstream git to fix color issue on big endian platforms + (closes: #392453). Thanks to Michel Dänzer for the patch! + * Fix typo in xvfb-run (closes: #337703). + * Install xdmxconfig and its manpage in xdmx-tools (closes: #393991). + * Add Replaces: xdmx (<= 2:1.1.1-10) to xdmx-tools because of the xmdxconfig + manpage move. + + -- David Nusinow Fri, 24 Nov 2006 15:44:52 -0500 + +xorg-server (2:1.1.1-10) unstable; urgency=low + + [ Denis Barbier ] + * Fix video mode switching. Closes: #391052 + * Fix FTBFS on kfreebsd-i386 and kfreebsd-amd64. Thanks Petr Salinger. + Closes: #363517 + + [ David Nusinow ] + * Add depends on xserver-xorg so that /etc/X11/X gets installed. Thanks + Frans Pop. Closes: #392295 + * Add 31_blocksigio.diff. This patch by Alan Hourihane, and it prevents a + race condition when a driver tries to set the cursor state when the server + is in the middle of switching resolution. Thanks to Frans Pop for + reporting the bug, Michel Dänzer for reading through the backtrace and + diagnosing the problem, and Alan for the final patch. Closes: #390646. + + [ Jurij Smakov ] + * Add 32_disable_sparc_pci_bridge.diff. Disable PCI bridge handling on + sparc, which is broken and causes filesystem corruption (by poking + the PCI bus in the wrong places) on some machines. Closes: #392312. + + [ Drew Parsons ] + * Use __appmansuffix__ not __mansuffix__ in + 03_xnest_manpage_overhaul.diff. Closes: #390599. + * Install upstream ChangeLog. Closes: #365274. + + -- David Nusinow Mon, 16 Oct 2006 21:59:51 -0400 + +xorg-server (2:1.1.1-9) unstable; urgency=low + + [ Jurij Smakov ] + * Add 21_glx_align_fixes.patch to reintroduce the setting of __GLX_ALIGN64 + variable, lost during the modular transition. This setting is essential + for architectures with strong alignment requirements. Patch affects + alpha, sparc, amd64, ia64 and s390, mimicking the behaviour of the + monolithic build. Closes: #388125. + + [ Denis Barbier ] + * Add 22_xkb_cycle_3layouts.diff to fix layout switching when 3 layouts + are present. Thanks Ivan Pascal for the patch. Closes: #345803 + + [ David Nusinow ] + * Add kFreeBSD support patch (23). Thanks to Robert Millan, Petr Salinger, + Daniel Stone, and Michael Banck for input and patch writing. + Closes: #363517 + * Add hurd support patch (24). Thanks Samuel Thibault, Daniel Stone, and + Michael Banck. Closes: #356300 + * Disable the explicit enabling of dri in the configure. The configure + script autodetects whether or not to use this anyway, and enabling it + explicitly breaks the build on hurd. Thanks Samuel Thibault and Michael + Banck. Closes: #358015 + * Add several patches written by Kristian Høgsberg for allowing compiz to + work with AIGLX. These patches were vetted by Theirry Reding with valuable + advice from Michel Dänzer, and feedback from Kristian himself. + - 25_tfp_damage.diff + - 26_aiglx_happy_vt_switch.diff + - 27_aiglx_locking.diff + - 28_mesa_copy_sub_buffer.diff + - 29_mesa_reseed_makefile.diff + - update of 20_mesa_6.5.1.diff + * Remove bizarre wholesale inclusion of another patch in the 23_kbsd patch + + [ Eugene Konev ] + * Use --with-default-font-path instead of --with-fontdir. + * Set RGBPath through --with-rgb-path. + * Drop 11_debian_always_use_default_font_path.diff. + * Drop 14_debian_always_look_in_our_module_path.diff. + * Ship SecurityPolicy in xserver-xorg-core. + + -- David Nusinow Thu, 28 Sep 2006 23:59:35 -0400 + +xorg-server (2:1.1.1-8) unstable; urgency=low + + * Update mesa symlink patch to the latest from HEAD + * Add 20_mesa_6.5.1.diff to allow the server to build with mesa 6.5.1 + * Bump build-dep versions on x11proto-gl to 1.4.8, and mesa to 6.5.1 + + -- David Nusinow Mon, 25 Sep 2006 22:21:37 -0400 + +xorg-server (2:1.1.1-7) unstable; urgency=low + + * Fix s390 build issue. Thanks Bastian Blank for the report and Eugene Konev + for the patch. Closes: #388628. + * Disable build of various utilities that we don't ship anyway. Patch thanks + to Eugene Konev. + + -- David Nusinow Thu, 21 Sep 2006 23:07:16 -0400 + +xorg-server (2:1.1.1-6) unstable; urgency=low + + * Upload 7.1 to unstable. + + [ Drew Parsons ] + * Added SGI FreeB licence to debian/copyright. Closes: #368563. + * Apply upstream patches 18_execinfo_only_for_backtrace.patch, to use + execinfo.h for and only for backtrace. Applied git patch + 5a3488ccac8e5dabd9fc98bc41ef178ead1b2faf directly into configure scripts, + activated with autoreconf. Closes: #363218. + * Only requires build-depends version of x11proto-gl-dev on 1.4.6. + + [ Steve Langasek ] + * Add versioned build-depends on x11proto-fixes-dev (>= 4.0), to + ensure the package is built against the right protocol version. + Closes: #383778. + + -- David Nusinow Mon, 18 Sep 2006 18:30:07 -0400 + +xorg-server (2:1.1.1-5) experimental; urgency=low + + * Fix error in 16_s390_fix.diff caused by my idiot copying. Thanks Yannick + Roehlly and Daniel Stone. + + -- David Nusinow Sun, 27 Aug 2006 23:25:21 +0000 + +xorg-server (2:1.1.1-4) experimental; urgency=low + + [ Drew Parsons ] + * Tighten dependencies between X11R7.1 server and video drivers. + xserver-xorg-core no longer Depends: xserver-xorg-video-all + | xserver-xorg-video but instead Conflicts: xserver-xorg-video. + (closes: #383873) + The dependency on xserver-xorg-video-all | xserver-xorg-video-1.0 is + managed by the xserver-xorg binary package (not included here in + order to avoid circular dependencies). (closes: #362313) + * Likewise remove Depends: xserver-xorg-input-all | xserver-xorg-input + (again, handled by xserver-xorg) to avoid circular dependency with drivers. + + [ David Nusinow ] + * Epoch bump + * Add 17_ignoreabi.diff to allow users to simply set a value in xorg.conf + rather than pass -ignoreABI to the server every time it starts + + -- David Nusinow Wed, 23 Aug 2006 22:03:06 +0000 + +xorg-server (1:1.1.1-3) unstable; urgency=low + + * Add 16_s390_fix.diff to fix FTBFS on s390. Thanks Bastian Blank. + (closes: #362641) + * Bump build-depends version of libgl1-mesa-dev to 6.5.x package we have in + experimental currently + * Bump build-depends version of x11proto-gl-dev to 1.4.7 or greater + + -- David Nusinow Tue, 22 Aug 2006 00:57:31 +0000 + +xorg-server (1:1.1.1-2) experimental; urgency=low + + [ Drew Parsons ] + * Updated mesa-swx11-source build-depends to (>> 6.5.0), required + for xserver 1.1.1. (closes: #383334) + + [ David Nusinow ] + * Enable and ship xephyr + * Hack off the 'x' manpage suffix + * Install Xnest manpage + * Bump policy version to 3.7.2.0. No changes necessary. + + -- David Nusinow Wed, 16 Aug 2006 21:14:44 +0000 + +xorg-server (1:1.1.1-1) experimental; urgency=low + + [ David Nusinow ] + * New upstream release + * Move patch target call so that we don't try and build twice + * Remove obsolete 15_security_allocate_local.diff and + 16_SECURITY_setuid.diff + * Add 15_symlink_mesa.diff + + -- David Nusinow Sun, 6 Aug 2006 16:12:25 +0000 + +xorg-server (2:1.0.2-10) unstable; urgency=low + + * Upload to unstable to fixed messed up last upload which was supposed to go + to experimental. Brown bag o' joy. + + -- David Nusinow Tue, 22 Aug 2006 19:31:08 +0000 + +xorg-server (1:1.1.1-0ubuntu14) feisty; urgency=low + + * Add 'debian/patches/38_Fix-pDRIPriv_NULL_deref.patch': NULL-init DRI + screen private data, thanks to Tormod Volden (LP: #60288). + + -- Kees Cook Sat, 10 Feb 2007 20:27:44 -0800 + +xorg-server (1:1.1.1-0ubuntu13) feisty; urgency=low + + * 19_revert_xkb_change_breaking_XkbGetKeyboard.patch: + - patch from fedora (with extra Makefile.in change), revert change that + broke XkbGetKeyboard() (Ubuntu: #58083) + * 37_Fix-__glXDRIbindTexImage-for-32-bpp-on-big-endian-platforms.diff: + - upstream patch copied from the Debian package, fix blue screen with + compiz on ppc (Ubuntu: #58373) + + -- Sebastien Bacher Fri, 12 Jan 2007 12:17:28 +0100 + +xorg-server (1:1.1.1-0ubuntu12.1) edgy-security; urgency=low + + * SECURITY UPDATE: Arbitrary code execution with root privileges via heap + overflows in DBE and Render extensions. + * Add 'debian/patches/021_ubuntu_dbe-render_overflows.diff' from + upstream + * References + CVE-2006-6101 CVE-2006-6102 CVE-2006-6103 + + -- Kees Cook Mon, 8 Jan 2007 12:45:41 -0800 + +xorg-server (1:1.1.1-0ubuntu12) edgy; urgency=low + + * debian/patches/17_no_composite_for_xvfb.patch: + - fix a crasher by not using composite for Xvfb when using -render + * debian/patches/18_no_composite_for_xvfb_run.patch: + - use "-extension Composite" to fix xvfb-run crashing + + -- Sebastien Bacher Fri, 13 Oct 2006 17:12:49 +0200 + +xorg-server (1:1.1.1-0ubuntu11) edgy; urgency=low + + * debian/patches/16_only_switch_vt_when_active.patch: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + -- Ryan Lortie Thu, 21 Sep 2006 01:26:35 -0400 + +xorg-server (1:1.1.1-0ubuntu10) edgy; urgency=low + + * Build xserver-xephyr from xorg-server package. Malone: #57077, #57084 + + -- Tollef Fog Heen Wed, 6 Sep 2006 12:57:32 +0200 + +xorg-server (1:1.1.1-0ubuntu9) edgy; urgency=low + + * Enable composite extension by default + * Add patch from fd.o bugzilla #7916 to avoid aiglx hangs on vt + switches + + -- Matthew Garrett Sat, 26 Aug 2006 03:20:31 +0100 + +xorg-server (1:1.1.1-0ubuntu8) edgy; urgency=low + + * Steal patch from Fedora to allow compiz to trigger the disabling of + XAA off-screen pixmaps + + -- Matthew Garrett Wed, 23 Aug 2006 21:26:08 +0100 + +xorg-server (1:1.1.1-0ubuntu7) edgy; urgency=low + + * (temporarily) Removed Breaks: section from xserver-xorg-core (necessary + until apt-get properly supports this feature) + * Tightened Build-Depends: mesa-swx11-source to >= + 6.5.0.git.20060810-0ubuntu1 + * Tightened Build-Depends of libgl1-mesa-dev to >= + 6.5.0.git.20060810-0ubuntu1 + + -- Rodrigo Parra Novo Tue, 15 Aug 2006 07:26:07 -0300 + +xorg-server (1:1.1.1-0ubuntu6) edgy; urgency=low + + * Tightened Build-Depends of mesa-swx11-source to version 6.5.0.git.20060809 + * Removed patch 003_fedora_root_window_black_pattern.patch (not necessary + for Ubuntu) + + -- Rodrigo Parra Novo Fri, 11 Aug 2006 11:41:29 -0300 + +xorg-server (1:1.1.1-0ubuntu5) edgy; urgency=low + + * Renamed 003_ubuntu_sharevts_load_cpu.patch to + 002_ubuntu_sharevts_load_cpu.patch + * Added 003_fedora_root_window_black_pattern.patch (black background + pattern instead of default X background pattern. Feel free to revert if + you feel strongly against this one) + * Added 005_fdo4320_composite_fastpath.patch and + 016_fdo7482_xdmx_render_fix.patch (upstream bug fixes, bug numbers + annotated on patch names) + * Added 004_fedora_init_origins_fix.patch (multihead initialization) + * Added 006_ubuntu_fpic_libxf86config.patch + * Added 007_fedora_dont_backfill_bg_none.patch + * Added 008_fedora_gl_include_inferiors.patch, + 009_fedora_mesa_copy_sub_buffer.patch, + 010_fedora_no_move_damage.patch, + 012_fedora_tfp_damage.patch and + 014_fedora_no_composite_in_xnest.patch (further aiglx support) + * 011_fedora_pci_scan_fixes.patch (pci scan fixes - testing is needed to + check if an extra upstream patch for pci domains is also necessary) + * Added 015_fedora_sane_default_mode.patch (tweak default mode - please feel + free to revert this patch if you feel strongly against it) + * Added 017_fedora_add_missing_headers_to_sdk.patch + * Added 018_ubuntu_linux_kernel_include_fixes.patch and + 013_ubuntu_symlink_mesa_source.patch (build fixes against current + linux-kernel-modules * mesa-swx11-source - these already existed before, + but were applied directly to the source tree, instead of being quilt + patches) + * Just for reference: debian patch #02 is candidate for removal on next + upload. I'll refrain from removing it now to diminish the chances of this + being a breaks-for-everyone release + * Moved SecurityPolicy example from /usr/share/doc/examples/ to + /usr/share/doc/xserver-xorg-core/ + + -- Rodrigo Parra Novo Mon, 7 Aug 2006 17:21:05 -0300 + +xorg-server (1:1.1.1-0ubuntu4) edgy; urgency=low + + * Added new Breaks: section to xorg-server-core: + xserver-xorg-driver-all, xserver-xorg-driver-apm, + xserver-xorg-driver-ark, xserver-xorg-driver-ati, + xserver-xorg-driver-chips, xserver-xorg-driver-cirrus, + xserver-xorg-driver-cyrix, xserver-xorg-driver-dummy, + xserver-xorg-driver-fbdev, xserver-xorg-driver-glint, + xserver-xorg-driver-i128, xserver-xorg-driver-i740, + xserver-xorg-driver-i810, xserver-xorg-driver-imstt, + xserver-xorg-driver-mga, xserver-xorg-driver-neomagic, + xserver-xorg-driver-newport, xserver-xorg-driver-nsc, + xserver-xorg-driver-nv, xserver-xorg-driver-rendition, + xserver-xorg-driver-s3, xserver-xorg-driver-s3virge, + xserver-xorg-driver-savage, xserver-xorg-driver-siliconmotion, + xserver-xorg-driver-sis, xserver-xorg-driver-sisusb, + xserver-xorg-driver-tdfx, xserver-xorg-driver-tga, + xserver-xorg-driver-trident, xserver-xorg-driver-tseng, + xserver-xorg-driver-v4l, xserver-xorg-driver-vesa, + xserver-xorg-driver-vga, xserver-xorg-driver-via, + xserver-xorg-driver-vmware, xserver-xorg-driver-voodoo, + xserver-xorg-video-all (<< 7.0.22ubuntu7), + xserver-xorg-video-apm (<< 1:1.1.1-0ubuntu1), + xserver-xorg-video-ark (<< 1:0.6.0-0ubuntu1), + xserver-xorg-video-ati (<< 1:6.6.1-0ubuntu1), + xserver-xorg-video-chips (<< 1:1.1.1-0ubuntu1), + xserver-xorg-video-cirrus (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-cyrix (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-dummy (<< 1:0.2.0-0ubuntu1), + xserver-xorg-video-fbdev (<< 1:0.3.0-0ubuntu1), + xserver-xorg-video-glint (<< 1:1.1.1-0ubuntu1), + xserver-xorg-video-i128 (<< 1:1.2.0-0ubuntu1), + xserver-xorg-video-i740 (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-i810 (<< 1:1.6.1-0ubuntu1), + xserver-xorg-video-imstt (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-mga (<< 1:1.4.1-0ubuntu1), + xserver-xorg-video-neomagic (<< 1:1.1.1-0ubuntu1), + xserver-xorg-video-newport (<< 1:0.2.0-0ubuntu1), + xserver-xorg-video-nsc (<< 1:2.8.1-0ubuntu1), + xserver-xorg-video-nv (<< 1:1.2.0-0ubuntu1), + xserver-xorg-video-rendition (<< 1:4.1.0-0ubuntu1), + xserver-xorg-video-s3 (<< 1:0.4.1-0ubuntu1), + xserver-xorg-video-s3virge (<< 1:1.9.1-0ubuntu1), + xserver-xorg-video-savage (<< 1:2.1.1-0ubuntu1), + xserver-xorg-video-siliconmotion (<< 1:1.4.1-0ubuntu1), + xserver-xorg-video-sis (<< 1:0.9.1-0ubuntu1), + xserver-xorg-video-sisusb (<< 1:0.8.1-0ubuntu1), + xserver-xorg-video-tdfx (<< 1:1.2.1-0ubuntu1), + xserver-xorg-video-tga (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-trident (<< 1:1.2.1-0ubuntu1), + xserver-xorg-video-tseng (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-v4l (<< 1:0.1.1-0ubuntu1), + xserver-xorg-video-vesa (<< 1:1.2.1-0ubuntu1), + xserver-xorg-video-vga (<< 1:4.1.0-0ubuntu1), + xserver-xorg-video-via (<< 1:0.2.1-0ubuntu1), + xserver-xorg-video-vmware (<< 1:10.13.0-0ubuntu1), + xserver-xorg-video-voodoo (<< 1:1.1.0-oubuntu1) + + -- Rodrigo Parra Novo Tue, 1 Aug 2006 22:59:55 -0300 + +xorg-server (1:1.1.1-0ubuntu3) edgy; urgency=low + + * Build with -fno-stack-protector (see LP#54650) + + -- Matt Zimmerman Mon, 31 Jul 2006 16:28:59 -0700 + +xorg-server (1:1.1.1-0ubuntu2) edgy; urgency=low + + * (sparc only) removed stale inclusion of asm/kbio.h on + hw/xfree86/os-support/linux/lnx_io.c and + hw/xfree86/os-support/linux/lnx_kbd.c + * Update debian/serverabiver to 1:1.1.1 + + -- Rodrigo Parra Novo Mon, 31 Jul 2006 12:53:22 -0300 + +xorg-server (1:1.1.1-0ubuntu1) edgy; urgency=low + + * New Upstream version + * Changed Build-Depends from mesa-swrast-source to mesa-swx11-source, + following Debian package nomenclature + * Re-did 12_security_policy_in_etc.diff for 1.1.1 + * Dropped 15_security_allocate_local.diff (applied upstream) + * Dropped 16_SECURITY_setuid.diff (applied upstream) + * Dropped 000_ubuntu_fix_read_kernel_mapping.patch (applied upstream) + * Dropped 002_ubuntu_fix_for_certain_intel_chipsets.patch (applied upstream) + * Updated versioned Build-Depends on mesa-swx11-source to version + 6.5.0.cvs.20060725-0ubuntu1 + * Added arrayobj.c, arrayobj.h, bitset.h & rbadaptors.h to + GL/symlink-mesa.sh (linked from mesa-swx11-source) + * Added arrayobj.c to default build target on GL/mesa/main + + -- Rodrigo Parra Novo Tue, 25 Jul 2006 20:06:28 -0300 + +xorg-server (2:1.0.2-10) unstable; urgency=low + + * Upload to unstable to fixed messed up last upload which was supposed to go + to experimental. Brown bag o' joy. + + -- David Nusinow Tue, 22 Aug 2006 19:31:08 +0000 + +xorg-server (1:1.0.2-9) UNRELEASED; urgency=high + + [ Denis Barbier ] + * Fix 13_debian_add_xkbpath_env_variable.diff, XKBPATH environment + variable was not always taken into account. + + [ David Nusinow ] + * Remove two Ubuntu packaging holdovers. Have xvfb recommend xbase-clients + rather than xauth, and have xserver-xorg-core recommend xkb-data rather + than xkeyboard-config. Thanks Sterling MacNay. + * Security update. Fix for setuid privledge escalation vulernabilities. + See http://lists.freedesktop.org/archives/xorg/2006-June/016146.html for + the full advisory. + + [ Jurij Smakov ] + * Stop including the non-existent asm/kbio.h header file in + hw/xfree86/os-support/linux/lnx_{io,kbd}.c to avoid the build failure + on sparc. + + -- David Nusinow Sat, 1 Jul 2006 17:20:45 -0400 + +xorg-server (1:1.0.2-8) unstable; urgency=low + + * Move xserverrc back to xbase-clients. Thanks Benjamin Mesing. + * Add 15_security_allocate_local.diff. This fixes Bug fd.o bug #6642. + Fix buffer overflow in Render. (CVE 2006-1526). Patch by Eric Anholt. + + -- David Nusinow Tue, 2 May 2006 21:47:17 -0400 + +xorg-server (1:1.0.2-7) unstable; urgency=low + + * Ship xserverrc again in /etc/X11/xinit. Thanks Bastian Kleineidam and + Vasilis Vasaitis. (closes: #357713) + + -- David Nusinow Wed, 26 Apr 2006 00:01:16 -0400 + +xorg-server (1:1.0.2-6) unstable; urgency=low + + [ David Nusinow ] + * Use -DNO_INLINE on s390. Thanks Bastian Blank and Julien Cristau. + (closes: #362641) + * Re-add xvfb-run and manpage to xvfb package. Thanks Josselin Mouette and + Jamie Wilkinson. (closes: #363494) + * Add 014_debian_always_look_in_our_module_path.diff. This will cause the + server to always look in the default module path even if they've specified + an alternate path in their xorg.conf file via the ModulePath option. A + note to users: you should remove this part of your xorg.conf unless you + need it, as the server will look in the right place for modules if you + don't specify a location. + * Run dh_install with --list-missing + * Add missing manpages all around. Thanks Roland Mas and Jan Hudec. + (closes: #362489, #364199) + * Actually install apps to xdmx-tools. Thanks Xavier Bestel. + (closes: #356813) + + [ Denis Barbier ] + * Add 13_debian_add_xkbpath_env_variable.diff so that the server takes + the XKBPATH environment variable into account. (closes: #363229) + + -- David Nusinow Sat, 22 Apr 2006 17:06:23 -0400 + +xorg-server (1:1.0.2-5) unstable; urgency=low + + * Add 11_debian_always_use_default_font_path.diff from Eugene Konev. This + patch causes the server to add the default font path to whatever the user + has specified. Right now, that's /usr/share/fonts/X11, as defined on + configure in debian/rules. Thanks Eugene, this will definitely go a long + way. + * Document how to get rid of error loading glcore (and other modules) in + NEWS.Debian. Thanks Matej Vela and others. + * Provide the virtual 'xserver' package. Thanks Steve Langasek and Daniel + Stone. (closes: #362750) + * Add 12_security_policy_in_etc.diff from Eugene Konev. This will allow us + to tell the server on configure to look in /etc/X11/xserver for the + SecurityPolicy file. Thanks Joey Hess and Eugene. (closes: #362246) + + -- David Nusinow Mon, 17 Apr 2006 00:34:08 -0400 + +xorg-server (1:1.0.2-4) unstable; urgency=low + + * Document the need to update paths in xserver-xorg-core's NEWS file. + (closes: #362077, #362244, #362431) + * Make xserver-xorg-core Architecture: any. (closes: #362150) + * Build with --with-fontdir=/usr/share/fonts/X11. Remove + --with-default-font-path option to make this work. Thanks Eugene Konev. + + -- David Nusinow Thu, 13 Apr 2006 23:54:06 -0400 + +xorg-server (1:1.0.2-3) unstable; urgency=low + + * Add build-conflicts on xlibs-static-dev. Thanks Zephaniah E. Hull. + + -- David Nusinow Tue, 11 Apr 2006 18:44:51 -0400 + +xorg-server (1:1.0.2-2) unstable; urgency=low + + * Upload to unstable + * Add versioned build-dep on libdmx-dev. Thanks Frank Lichtenheld. + (closes: #361752) + + -- David Nusinow Mon, 10 Apr 2006 19:34:04 -0400 + +xorg-server (1:1.0.2-1) experimental; urgency=low + + [ David Nusinow ] + * New upstream release. Fixes CVE-2006-0745 + + [ Denis Barbier ] + * Set XKB base path to /usr/share/X11/xkb. + + -- David Nusinow Mon, 20 Mar 2006 21:41:04 -0500 + +xorg-server (1:1.0.2-0ubuntu10) dapper; urgency=low + + * Backport a fix for Intel bridge handling: + debian/patches/002_fix_for_certain_intel_chipsets.patch + (Closes Ubuntu: #29880) + + -- Paul Sladen Sun, 14 May 2006 19:01:32 +0100 + +xorg-server (1:1.0.2-0ubuntu9) dapper; urgency=low + + * Add 1680x1050 60 and 85Hz Modelines. Thanks to Bart Verwilst for the data. + (Closes Ubuntu: #6096) + + -- Fabio M. Di Nitto Fri, 05 May 2006 12:38:22 +0200 + +xorg-server (1:1.0.2-0ubuntu8) dapper; urgency=low + + * Fix "XCB rendertest crashes server": + - Add patch 001-CVE-2006-1526.patch.dpatch. + (CVE-2006-1526) + + -- Fabio M. Di Nitto Wed, 03 May 2006 09:01:09 +0200 + +xorg-server (1:1.0.2-0ubuntu7) dapper; urgency=low + + * Ship again xorg.conf(5) + (Closes Ubuntu: #33703) + + -- Fabio M. Di Nitto Mon, 01 May 2006 13:37:40 +0200 + +xorg-server (1:1.0.2-0ubuntu6) dapper; urgency=low + + * Fix severe internal memory corruption: + - Add patch: 000-fix-read-kernel-mapping.patch.dpatch. + (freedesktop bugzilla: #6472) + + -- Fabio M. Di Nitto Fri, 21 Apr 2006 08:07:33 +0200 + +xorg-server (1:1.0.2-0ubuntu5) dapper; urgency=low + + * Fix CPU load when using -sharevts: + - Add patch: 991_sharevts-load-cpu.patch + (Thanks for the initial patch to Michael Witrant) + (Closes Ubuntu: #33611) + + -- Fabio M. Di Nitto Mon, 10 Apr 2006 13:30:26 +0200 + +xorg-server (1:1.0.2-0ubuntu4) dapper; urgency=low + + * Fix SecurityPolicy path to /etc/X11/xserver/SecurityPolicy + and ship an example. NOTE: this file is NOT installed by default, + the WARNING you see in Xorg.0.log is an harmless WARNING. + Add patch: 990_ubuntu_fix_security_policy_path.patch. + (Close Ubuntu: #31608) + + * Readd manpages to the different packages. + + * Ship again ioport, gtf, pcitweak and scanpci. + (Closes Ubuntu: #37720) + + -- Fabio M. Di Nitto Tue, 04 Apr 2006 16:33:00 +0200 + +xorg-server (1:1.0.2-0ubuntu3) dapper; urgency=low + + * What about shipping xorg-server.m4 to make developer life easier? + + -- Fabio M. Di Nitto Thu, 23 Mar 2006 10:32:55 +0100 + +xorg-server (1:1.0.2-0ubuntu2) dapper; urgency=low + + * xserver-xorg-dev Depends: x11proto-randr-dev. + (Closes Ubuntu: #35594) + + -- Fabio M. Di Nitto Wed, 22 Mar 2006 08:09:46 +0100 + +xorg-server (1:1.0.2-0ubuntu1) dapper; urgency=low + + * New upstream release: + - Drop patches: + + CVE-2006-0745 + + add-missing-sparc-include + + fix-backtrace + + fix-crash-on-null-addr + + * UVF execption granted by mdz. + + -- Fabio M. Di Nitto Tue, 21 Mar 2006 05:39:01 +0100 + +xorg-server (1:1.0.1-2) experimental; urgency=low + + [ David Nusinow ] + * Add versioned dependency on x11-common + * Remove old cruft in our patches directory + * Port patches from trunk + + 030_libvgahw_gcc4_volatile_fix.diff + + general/026_xc_programs_manpage_overhaul.diff + + arm/303_arm_cache_flush.diff + + arm/315_arm_is_not_x86_and_has_no_vga.diff + + general/099e_xorgconf_manpage_overhaul.diff + + s390/500_s390_support.diff + + debian/910_debian_Xserver_RTFF.diff + * add 04_read_rom_in_chunks.diff. This reads PCI ROM in large chunks rather + than one byte at a time. This patch by Alex Williamson and forwarded to us + by Dann Frazier. Thanks to both of them. (closes: #353168) + * Don't build xserver-xorg-core on s390. This means putting all the other + arches as being explicitly listed. Damn !s390. + * Version the conflict with xserver-xfree86 to allow for the transition + package to be installed + * Remove README.DRI, as it is non-free. Add it to prune list. + * Add 10_dont_look_in_home_for_config.diff to prevent looking in a user's + home directory for xorg.conf. Thanks Daniel Stone for the patch. + + -- David Nusinow Sun, 12 Mar 2006 16:18:13 -0500 + +xorg-server (1:1.0.1-1) experimental; urgency=low + + * First upload to Debian + * Add bison and flex to the build-depends + * Define INSTALL in debian/rules + * Add xserver-xorg-core dependency xserver-xorg-video-all | + xserver-xorg-video. The former is a metapackage that depends on all the + video drivers we ship and the latter is a virtual package that each video + driver provides. This scheme will install the metapackage by default but + will permit any single video driver to satsify the dependency. Do the same + thing for the input drivers. + * switch dpatch build-dependency to quilt + * Deal with mesa packaging rename: build-dep on mesa-swrast-source -> + mesa-swx11-source + * Change xserver-core depends to be on x11-common rather than xorg-common + * Have xserver-xorg-dev install the files in /usr/share/aclocal so we get + xorg-server.m4 + * Manually set permissions on serverabiver installation + * Set the default font path to /usr/share/fonts/X11 instead of + /usr/share/X11/fonts. Thanks Eugene Konev. + + -- David Nusinow Mon, 20 Feb 2006 00:18:45 -0500 + +xorg-server (1:1.0.1-0ubuntu8) dapper; urgency=low + + * [SECURITY] Fix CVE-2006-0745. + + -- Fabio M. Di Nitto Tue, 21 Mar 2006 05:33:50 +0100 + +xorg-server (1:1.0.1-0ubuntu7) dapper; urgency=low + + * debian/control: + - xvfb Depends on xfonts-base too, fix pointed by fabbione + + -- Sebastien Bacher Fri, 3 Mar 2006 22:21:56 +0100 + +xorg-server (1:1.0.1-0ubuntu5) dapper; urgency=low + + * Add missing include on sparc. Fix FTBFS. + + -- Fabio M. Di Nitto Wed, 01 Feb 2006 13:45:41 +0100 + +xorg-server (1:1.0.1-0ubuntu4) dapper; urgency=low + + * Backport from upstream HEAD at Daniel's request: + - Add forgotten HAVE_BACKTRACE define, so that we actually get + backtraces when Xorg segfaults. + + -- Colin Watson Fri, 27 Jan 2006 13:47:56 +0000 + +xorg-server (1:1.0.1-0ubuntu3) dapper; urgency=low + + * Depend on x11-common rather than xorg-common and xserver-common + + -- Tollef Fog Heen Wed, 18 Jan 2006 17:13:12 +0100 + +xorg-server (1:1.0.1-0ubuntu2) dapper; urgency=low + + * Add flex to build-deps, fixing FTBFS. + + -- Tollef Fog Heen Wed, 18 Jan 2006 12:34:03 +0100 + +xorg-server (1:1.0.1-0ubuntu1) dapper; urgency=low + + * New upstream release. + + -- Daniel Stone Fri, 6 Jan 2006 08:00:52 +1100 + +xorg-server (1:1.0.0-0ubuntu1) dapper; urgency=low + + * New upstream release. + + fbCompositeGeneral is now around 97.3% less stuffed (closes: + Ubuntu#20286). + + 'Fix' mouse issues in the DIX by adding XFree86Server defines (sigh; + closes: Ubuntu#20200). + + Fix Emulate3Buttons mouse posting (closes: Ubuntu#11308). + * Bump Build-Depends on libxt-dev (appdefaultdir), libdrm-dev (libdrm2), and + mesa-swrast-source (new files). + * Add --with-fontdir and scotch --with-default-font-path to fix font paths + for non-Xorg servers (closes: Ubuntu#20157). + * Fix path to SecurityPolicy and RGB_DB. + * Move update-linux-hardened-support call to xserver-xorg-core postinst + (from xserver-xorg postinst). + * Add patch to os/access.c so we don't crash on a null-addressed interface + (closes: Ubuntu#20414). + + -- Daniel Stone Tue, 13 Dec 2005 07:27:13 +1100 + +xorg-server (1:0.99.3-0ubuntu6) dapper; urgency=low + + * Fix xserver-xorg-dev Depends field to only depend on the headers this + this package actually uses. + * Re-add xvfb-run to xfvb (closes: Ubuntu#20157). + + -- Daniel Stone Mon, 5 Dec 2005 15:04:14 +1100 + +xorg-server (1:0.99.3-0ubuntu5) dapper; urgency=low + + * Add -ffunction-sections where needed + * Depend: xserver-common: needed for dexconf and /usr/X11R6/bin/X + + -- LaMont Jones Sat, 26 Nov 2005 05:15:36 +0000 + +xorg-server (1:0.99.3-0ubuntu4) dapper; urgency=low + + * Add two more dependencies to build the other half of the video drivers: + - x11proto-xext-dev, x11proto-video-dev + + -- Adam Conrad Fri, 25 Nov 2005 02:36:44 +1100 + +xorg-server (1:0.99.3-0ubuntu3) dapper; urgency=low + + * Add a few dependencies to xorg-server-dev as the path of least resistance + to get all the various input and video drivers to build again: + - For the video drivers: x11proto-randr-dev, x11proto-render-dev, + x11proto-fonts-dev, x11proto-xf86dri-dev, libdrm-dev + - For the input drivers: x11proto-core-dev, x11proto-input-dev, + x11proto-randr-dev (why do input drivers want randr?) + + -- Adam Conrad Thu, 24 Nov 2005 18:51:25 +1100 + +xorg-server (1:0.99.3-0ubuntu2) dapper; urgency=low + + * Add missing libfreetype6-dev build-depends. + + -- Daniel Stone Thu, 24 Nov 2005 10:26:44 +1100 + +xorg-server (1:0.99.3-0ubuntu1) dapper; urgency=low + + * New upstream release. + + -- Daniel Stone Mon, 21 Nov 2005 14:13:41 +1100 + +xorg-server (1:0.99.2+cvs.20051025-3) dapper; urgency=low + + * Version mesa-swrast-source Build-Dep to 6.4.0 or higher, so GLcore is a + little less crash-happy (e.g. when moving your glxgears window). + * Export /usr/share/xserver-xorg/serverabiver to xserver-xorg-dev, which + describes the relationship needed from a driver on xserver-xorg-core. + + -- Daniel Stone Fri, 28 Oct 2005 13:00:26 +1000 + +xorg-server (1:0.99.2+cvs.20051025-2) dapper; urgency=low + + * Add Build-Deps on libxaw7-dev, libxmu-dev, libxt-dev, libxpm-dev, + libx11-dev, libxtst-dev, and libxres-dev for DMX utils. + + -- Daniel Stone Wed, 26 Oct 2005 14:34:40 +1000 + +xorg-server (1:0.99.2+cvs.20051025-1) dapper; urgency=low + + * Update to new upstream version. + * All applicable patches have been committed upstream, bar #989 and #990. + + -- Daniel Stone Thu, 20 Oct 2005 10:26:33 +1000 + +xorg-server (1:0.99.0+cvs.20050901-1) breezy; urgency=low + + * First xorg-server release. + + -- Daniel Stone Wed, 6 Jul 2005 15:48:17 +1000 --- xorg-server-1.18.4.orig/debian/compat +++ xorg-server-1.18.4/debian/compat @@ -0,0 +1 @@ +9 --- xorg-server-1.18.4.orig/debian/control +++ xorg-server-1.18.4/debian/control @@ -0,0 +1,444 @@ +Source: xorg-server +Section: x11 +Priority: optional +Maintainer: Ubuntu X-SWAT +XSBC-Original-Maintainer: Debian X Strike Force +Build-Depends: + debhelper (>= 9), + po-debconf, + dpkg-dev (>= 1.16.1), + quilt, + lsb-release, + pkg-config, + bison, + flex, + automake, + libtool, + xauth, + xutils-dev (>= 1:7.6+4), + xfonts-utils (>= 1:7.5+1), + x11proto-bigreqs-dev (>= 1:1.1.0), + x11proto-composite-dev (>= 1:0.4), + x11proto-core-dev (>= 7.0.28), + x11proto-damage-dev (>= 1.1), + x11proto-fixes-dev (>= 1:5.0), + x11proto-fonts-dev (>= 2.1.3), + x11proto-kb-dev (>= 1.0.3), + x11proto-xinerama-dev, + x11proto-randr-dev (>= 1.5.0), + x11proto-record-dev (>= 1.13.99.1), + x11proto-render-dev (>= 2:0.11), + x11proto-resource-dev (>= 1.2.0), + x11proto-scrnsaver-dev, + x11proto-video-dev, + x11proto-xcmisc-dev (>= 1.2.0), + x11proto-xext-dev (>= 7.2.99.901), + x11proto-xf86bigfont-dev (>= 1.2.0), + x11proto-xf86dga-dev (>= 2.0.99.1), + x11proto-xf86vidmode-dev (>= 2.2.99.1), + x11proto-present-dev, + x11proto-dri3-dev, + xtrans-dev (>= 1.3.5), + libxau-dev (>= 1:1.0.5-2), + x11proto-input-dev (>= 2.3), + x11proto-dri2-dev (>= 2.8), + libxdmcp-dev (>= 1:0.99.1), + libxfont1-dev (>= 1:1.4.2), + libxkbfile-dev (>= 1:0.99.1), + libpixman-1-dev (>= 0.27.2), + libpciaccess-dev (>= 0.12.901), + libgcrypt-dev, + nettle-dev, + libudev-dev (>= 151-3) [linux-any], + libselinux1-dev (>= 2.0.80) [linux-any], + libaudit-dev [linux-any], + x11proto-xf86dri-dev (>= 2.1.0), + libdrm-dev (>= 2.4.46) [!hurd-i386], + x11proto-gl-dev (>= 1.4.17), + libgl1-mesa-dev (>= 9.2), + libxmuu-dev (>= 1:0.99.1), + libxext-dev (>= 1:0.99.1), + libx11-dev (>= 2:1.6), + libxrender-dev (>= 1:0.9.0), + libxi-dev (>= 2:1.6.99.1), + x11proto-dmx-dev (>= 1:2.2.99.1), + libdmx-dev (>= 1:1.0.1), + libxpm-dev (>= 1:3.5.3), + libxaw7-dev (>= 1:0.99.1), + libxt-dev (>= 1:0.99.1), + libxmu-dev (>= 1:0.99.1), + libxtst-dev (>= 1:0.99.1), + libxres-dev (>= 1:0.99.1), + libxfixes-dev (>= 1:3.0.0), + libxv-dev, + libxinerama-dev, + libxshmfence-dev (>= 1.1) [!hurd-i386], +# glamor + libepoxy-dev [linux-any kfreebsd-any], + libegl1-mesa-dev [linux-any kfreebsd-any], + libgbm-dev (>= 10.2) [linux-any kfreebsd-any], +# XCB bits for Xephyr + libxcb1-dev, + libxcb-shape0-dev, + libxcb-render0-dev, + libxcb-render-util0-dev, + libxcb-util0-dev, + libxcb-image0-dev, + libxcb-icccm4-dev, + libxcb-shm0-dev, + libxcb-keysyms1-dev, + libxcb-randr0-dev, + libxcb-xv0-dev, + libxcb-glx0-dev, + libxcb-xf86dri0-dev (>= 1.6), +# unit tests + xkb-data, + x11-xkb-utils, +# getpeereid() + libbsd-dev [kfreebsd-any], +# xwayland + libwayland-dev [linux-any], +#logind + libdbus-1-dev (>= 1.0) [linux-any], +# systemd-daemon + libsystemd-dev [linux-any], +# XMir + libmirclient-dev (>= 0.13.1) [!powerpc !ppc64el !s390x], + mir-client-platform-mesa-dev, +Standards-Version: 3.9.6 +Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/xserver/xorg-server.git +Vcs-Browser: https://anonscm.debian.org/cgit/pkg-xorg/xserver/xorg-server.git +Homepage: http://www.x.org/ + +Package: xserver-xorg-core +Architecture: any +Depends: + xserver-common (>= ${source:Version}), + keyboard-configuration [linux-any kfreebsd-any], + udev (>= 149) [linux-any], + devd [kfreebsd-any], +# for glamor; not a shlibdep because we use epoxy + libegl1-mesa [linux-any kfreebsd-any] | libegl1 [linux-any kfreebsd-any], + ${shlibs:Depends}, + ${misc:Depends}, +Recommends: + libgl1-mesa-dri (>= 7.10.2-4), + libpam-systemd, +Suggests: xfonts-100dpi | xfonts-75dpi, xfonts-scalable +Breaks: + xserver-xorg-video, + xserver-xorg-video-1.0, + xserver-xorg-video-1.9, + xserver-xorg-video-2, + xserver-xorg-video-4, + xserver-xorg-video-5, + xserver-xorg-video-6, + xserver-xorg-input, + xserver-xorg-input-2, + xserver-xorg-input-2.1, + xserver-xorg-input-4, + xserver-xorg-input-7, + xserver-xorg-input-wacom (<< 0.7.8), + xserver-xorg-input-joystick (<= 1:1.5.0-3), + xserver-xorg-input-synaptics (<= 1.2.2-1), + xserver-xorg-input-tslib (<= 0.0.6-3), + xserver-xorg-input-vmmouse (<= 1:12.6.5-4), + xserver-xorg-input-wacom (<= 0.10.5+20100415-1), + xserver-xorg-video-cyrix (<= 1:1.1.0-8), + xserver-xorg-video-i810 (<< 2:2.4), + xserver-xorg-video-imstt (<= 1:1.1.0-7), + xserver-xorg-video-nsc (<= 1:2.8.3-4), + xserver-xorg-video-sunbw2 (<= 1:1.1.0-5), + xserver-xorg-video-v4l (<< 1:0.2.0), + xserver-xorg-video-vga (<= 1:4.1.0-8), + libgl1-mesa-dri (<< 7.10.2-4), + libgl1-mesa-dri-experimental (<< 7.10.2-4), + xserver-xorg (<< 1:7.7+10~), + systemd (<< 226-4~), +Replaces: + xserver-xorg-video-modesetting, + xserver-xorg (<< 1:7.7+10~), +Conflicts: + xserver-xorg-input-evtouch, + xserver-xorg-video-modesetting, +Provides: + ${videoabi}, + ${inputabi}, + xserver-xorg-video-modesetting, +Description: Xorg X server - core server + The Xorg X server is an X server for several architectures and operating + systems, which is derived from the XFree86 4.x series of X servers. + . + The Xorg server supports most modern graphics hardware from most vendors, + and supersedes all XFree86 X servers. + . + More information about X.Org can be found at: + + . + This package is built from the X.org xserver module. + +Package: xserver-xorg-core-udeb +XC-Package-Type: udeb +Section: debian-installer +# exclude sparc because of linker errors +Architecture: any +Depends: +# merged: xserver-common (>= ${source:Version}), + xkb-data-udeb, + x11-xkb-utils-udeb, +# disabled: keyboard-configuration [linux-any kfreebsd-any], + udev-udeb (>= 149) [linux-any], + devd-udeb [kfreebsd-any], + ${shlibs:Depends}, + ${misc:Depends}, +Provides: + ${videoabi}, + ${inputabi}, +Description: Xorg X server - core server + This is a udeb, or a microdeb, for the debian-installer. + +Package: xserver-xorg-dev +Architecture: any +Depends: + libpixman-1-dev (>= 0.27.2), + x11proto-core-dev (>= 7.0.28), + x11proto-input-dev (>= 2.3), + x11proto-xext-dev (>= 7.2.99.901), + x11proto-video-dev, + x11proto-randr-dev (>= 1.5.0), + x11proto-render-dev (>= 2:0.11), + x11proto-dri2-dev (>= 2.8), + x11proto-gl-dev (>= 1.4.17), + x11proto-fonts-dev (>= 2.1.3), + x11proto-xinerama-dev, + x11proto-kb-dev, + x11proto-xf86dri-dev, + x11proto-resource-dev (>= 1.2.0), + x11proto-scrnsaver-dev, + x11proto-xf86bigfont-dev (>= 1.2.0), + x11proto-dri3-dev, + x11proto-present-dev, + libxfont1-dev, + libxkbfile-dev, + libpciaccess-dev, + mesa-common-dev, + libmirclient-dev [!powerpc !ppc64el], + mir-client-platform-mesa-dev, + ${misc:Depends}, +Description: Xorg X server - development files + This package provides development files for the X.Org ('Xorg') X server. + This is not quite the same as the DDK (Driver Development Kit) from the + XFree86 4.x and X.Org 6.7, 6.8 and 6.9 series of servers; it provides + headers and a pkg-config file for drivers using autotools to build + against. + . + Unless you are developing or building a driver, you probably want + xserver-xorg and/or xserver-xorg-core instead. + . + More information about X.Org can be found at: + + . + This package is built from the X.org xserver module. + +Package: xdmx +Architecture: any +Depends: + xserver-common (>= ${source:Version}), + ${shlibs:Depends}, + ${misc:Depends}, +Description: distributed multihead X server + Xdmx is a proxy X server that uses one or more other X servers as its + display device(s). It provides multi-head X functionality for displays that + might be located on different machines. Xdmx functions as a front-end X server + that acts as a proxy to a set of back-end X servers. All of the visible + rendering is passed to the back-end X servers. Clients connect to the Xdmx + front-end, and everything appears as it would in a regular multi-head + configuration. If Xinerama is enabled (e.g., with +xinerama on the command + line), the clients see a single large screen. + . + More information about X.Org can be found at: + + . + This package is built from the X.org xserver module. + +Package: xdmx-tools +Architecture: any +Depends: + xdmx, + ${shlibs:Depends}, + ${misc:Depends}, +Description: Distributed Multihead X tools + This package provides a collection of tools used for administration of + the Xdmx server; see the xdmx package for more information. + . + More information about X.Org can be found at: + + . + This package is built from the X.org xserver module. + +Package: xnest +Architecture: any +Depends: + xserver-common (>= ${source:Version}), + ${shlibs:Depends}, + ${misc:Depends}, +Recommends: libgl1-mesa-dri (>= 7.1~rc1) +Provides: xserver +Description: Nested X server + Xnest is a nested X server that simply relays all its requests to another + X server, where it runs as a client. This means that it appears as another + window in your current X session. Xnest relies upon its parent X server + for font services. + . + Use of the Xephyr X server instead of Xnest is recommended. + . + More information about X.Org can be found at: + + . + This package is built from the X.org xserver module. + +Package: xvfb +Architecture: any +Depends: + xserver-common (>= ${source:Version}), + ${shlibs:Depends}, + ${misc:Depends}, + xauth, + x11-xkb-utils +Recommends: + libgl1-mesa-dri +Provides: xserver +Multi-Arch: foreign +Description: Virtual Framebuffer 'fake' X server + Xvfb provides an X server that can run on machines with no display hardware + and no physical input devices. It emulates a dumb framebuffer using virtual + memory. The primary use of this server was intended to be server testing, + but other novel uses for it have been found, including testing clients + against unusual depths and screen configurations, doing batch processing with + Xvfb as a background rendering engine, load testing, as an aid to porting the + X server to a new platform, and providing an unobtrusive way to run + applications that don't really need an X server but insist on having one + anyway. + . + This package also contains a convenience script called xvfb-run which + simplifies the automated execution of X clients in a virtual server + environment. This convenience script requires the use of the xauth + program. + . + More information about X.Org can be found at: + + . + This package is built from the X.org xserver module. + +Package: xserver-xephyr +Architecture: any +Depends: + xserver-common (>= ${source:Version}), + ${shlibs:Depends}, + ${misc:Depends}, +Recommends: libgl1-mesa-dri (>= 7.1~rc1) +Provides: xserver +Description: nested X server + Xephyr is an X server that can be run inside another X server, + much like Xnest. It is based on the kdrive X server, and as a + result it supports newer extensions than Xnest, including render and + composite. + . + More information about X.Org can be found at: + + . + This package is built from the X.org xserver module. + +Package: xserver-xorg-core-dbg +Architecture: any +Depends: + xserver-xorg-core (= ${binary:Version}), + ${misc:Depends}, +Priority: extra +Section: debug +Description: Xorg - the X.Org X server (debugging symbols) + The Xorg X server is an X server for several architectures and operating + systems, which is derived from the XFree86 4.x series of X servers. + . + The Xorg server supports most modern graphics hardware from most vendors, + and supersedes all XFree86 X servers. + . + This package provides debugging symbols for the Xorg X server and associated + modules. + +Package: xserver-common +Architecture: all +Multi-Arch: foreign +Depends: + x11-common, + xkb-data, + x11-xkb-utils, + ${misc:Depends}, +Recommends: + xfonts-base, + xauth, +Replaces: xserver-xorg-core (<< 2:1.5.2) +Description: common files used by various X servers + This package provides files necessary for all X.Org based X servers. + +Package: xmir +Architecture: amd64 arm64 armhf i386 +Depends: + xserver-common (>= ${source:Version}), + ${shlibs:Depends}, + ${misc:Depends}, +Description: Xmir X server + This package provides an X server running on top of Mir, using Mir + input devices for input and forwarding either the root window or individual + top-level windows as wayland surfaces. + +Package: xserver-xorg-xmir +Architecture: all +Depends: ${shlibs:Depends}, + ${misc:Depends}, + xmir, +Description: Xmir X server (transitional package) + This is a transitional package to ease upgrades to xmir. + It can be safely removed. + +Package: xorg-server-source +Architecture: all +Depends: + ${misc:Depends}, +Description: Xorg X server - source files + This package provides original Debian (with Debian patches already + applied, and autotools files updated) sources for the X.Org ('Xorg') + X server shipped in a tarball. This enables other projects re-using + X server codebase (e.g. VNC servers) to (re-)use officially + Debian-supported version of the X xserver for their builds. + . + Unless you are building a software product using X server sources, + you probably want xserver-xorg and/or xserver-xorg-core instead. + +Package: xwayland +Architecture: linux-any +Depends: + xserver-common (>= ${source:Version}), + ${shlibs:Depends}, + ${misc:Depends}, +Description: Xwayland X server + This package provides an X server running on top of wayland, using wayland + input devices for input and forwarding either the root window or individual + top-level windows as wayland surfaces. + +Package: xserver-xorg-legacy +Architecture: any +Priority: extra +Depends: + xserver-common (>= ${source:Version}), + ${shlibs:Depends}, + ${misc:Depends}, +Breaks: + x11-common (<< 1:7.7+10~), + xserver-xorg-core (<< 2:1.17.2-3~), +Replaces: + x11-common (<< 1:7.7+10~), + xserver-xorg-core (<< 2:1.17.2-3~), +Description: setuid root Xorg server wrapper + This package provides a wrapper for the Xorg X server, which is + necessary for legacy drivers and non-Linux kernels. --- xorg-server-1.18.4.orig/debian/copyright +++ xorg-server-1.18.4/debian/copyright @@ -0,0 +1,1847 @@ +The following is the 'standard copyright' agreed upon by most contributors, +and is currently the canonical license preferred by the X.Org Foundation. +This is a slight variant of the common MIT license form published by the +Open Source Initiative at http://www.opensource.org/licenses/mit-license.php + +Copyright holders of new code should use this license statement where +possible, and insert their name to this list. Please sort by surname +for people, and by the full name for other entities (e.g. Juliusz +Chroboczek sorts before Intel Corporation sorts before Daniel Stone). + +Copyright © 2011 Dave Airlie +Copyright © 2000-2001 Juliusz Chroboczek +Copyright © 1998 Egbert Eich +Copyright © 2006-2007 Intel Corporation +Copyright © 2006 Nokia Corporation +Copyright © 2006-2008 Peter Hutterer +Copyright © 2006 Adam Jackson +Copyright © 2009-2010 NVIDIA Corporation +Copyright © 1987, 2003-2006, 2008-2010 Oracle and/or its affiliates. +Copyright © 1999 Keith Packard +Copyright © 2007-2009 Red Hat, Inc. +Copyright © 2005-2008 Daniel Stone +Copyright © 2006-2009 Simon Thum +Copyright © 2003-2008, 2013 Geert Uytterhoeven +Copyright © 2006 Luc Verhaegen + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + + + +The following licenses are 'legacy': usually MIT/X11 licenses with the name +of the copyright holder(s) in the license statement, but also some BSD-like +licenses. + + +Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved. +Copyright (C) Colin Harrison 2005-2008 + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the XFree86 Project. + + +Copyright 1997 by The XFree86 Project, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of the XFree86 Project, Inc. +not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. The Xfree86 +Project, Inc. makes no representations about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1985-1998, 2001 The Open Group +Copyright 2002 Red Hat Inc., Durham, North Carolina. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +Copyright (c) 1987, 1989-1990, 1992-1995 X Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + + +Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Copyright © 1999-2000 SuSE, Inc. +Copyright © 2007 Red Hat, Inc. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of SuSE not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. SuSE makes no representations about the +suitability of this software for any purpose. It is provided "as is" +without express or implied warranty. + +SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE +BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1987-1991, 1993 by Digital Equipment Corporation, Maynard, Massachusetts. +Copyright 1991 Massachusetts Institute of Technology, Cambridge, Massachusetts. +Copyright 1991, 1993 Olivetti Research Limited, Cambridge, England. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, +Copyright 1994 Quarterdeck Office Systems. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Digital and +Quarterdeck not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +DIGITAL AND QUARTERDECK DISCLAIM ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT +OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE +OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1997 Digital Equipment Corporation. +All rights reserved. + +This software is furnished under license and may be used and copied only in +accordance with the following terms and conditions. Subject to these +conditions, you may download, copy, install, use, modify and distribute +this software in source and/or binary form. No title or ownership is +transferred hereby. + +1) Any source code used, modified or distributed must reproduce and retain + this copyright notice and list of conditions as they appear in the + source file. + +2) No right is granted to use any trade name, trademark, or logo of Digital + Equipment Corporation. Neither the "Digital Equipment Corporation" + name nor any trademark or logo of Digital Equipment Corporation may be + used to endorse or promote products derived from this software without + the prior written permission of Digital Equipment Corporation. + +3) This software is provided "AS-IS" and any express or implied warranties, + including but not limited to, any implied warranties of merchantability, + fitness for a particular purpose, or non-infringement are disclaimed. + In no event shall DIGITAL be liable for any damages whatsoever, and in + particular, DIGITAL shall not be liable for special, indirect, + consequential, or incidental damages or damages for lost profits, loss + of revenue or loss of use, whether such damages arise in contract, + negligence, tort, under statute, in equity, at law or otherwise, even + if advised of the possibility of such damage. + + +Copyright (c) 1991, 1996-1997 Digital Equipment Corporation, Maynard, Massachusetts. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING, +BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Digital Equipment Corporation +shall not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from Digital +Equipment Corporation. + + +SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008) +Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice including the dates of first publication and +either this permission notice or a reference to +http://oss.sgi.com/projects/FreeB/ +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +Copyright (c) 1994, 1995 Hewlett-Packard Company + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the Hewlett-Packard +Company shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the Hewlett-Packard Company. + + +Copyright 1989 by Hewlett-Packard Company, Palo Alto, California. +All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Hewlett-Packard not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +HEWLETT-PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +HEWLETT-PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +Copyright 2001-2004 Red Hat Inc., Durham, North Carolina. +Copyright (c) 2003 by the XFree86 Project, Inc. +Copyright 2004-2005 Red Hat Inc., Raleigh, North Carolina. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation on the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +Copyright © 2008 Red Hat, Inc. +Partly based on code Copyright © 2000 SuSE, Inc. + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without +fee, provided that the above copyright notice appear in all copies +and that both that copyright notice and this permission notice +appear in supporting documentation, and that the name of Red Hat +not be used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. Red +Hat makes no representations about the suitability of this software +for any purpose. It is provided "as is" without express or implied +warranty. + +Red Hat DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN +NO EVENT SHALL Red Hat BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of SuSE not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. SuSE makes no representations about the +suitability of this software for any purpose. It is provided "as is" +without express or implied warranty. + +SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE +BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright © 2006 Red Hat, Inc. +(C) Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sub license, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +RED HAT, INC, OR PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Copyright (c) 1995 X Consortium +Copyright 2004 Red Hat Inc., Durham, North Carolina. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation on the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT, THE X CONSORTIUM, +AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Software without prior written +authorization from the X Consortium. + + +Copyright 1998-2000 Precision Insight, Inc., Cedar Park, Texas. +Copyright 2000 VA Linux Systems, Inc. +Copyright (c) 2002, 2008, 2009 Apple Computer, Inc. +Copyright (c) 2003-2004 Torrey T. Lyons. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +(C) Copyright IBM Corporation 2003 +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + + +(C) Copyright IBM Corporation 2004-2005 +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sub license, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +IBM, +AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +Copyright (c) 1997 Metro Link Incorporated + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Except as contained in this notice, the name of the Metro Link shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from Metro Link. + + +Copyright 1995-1998 by Metro Link, Inc. +Copyright (c) 1997 Matthieu Herrb + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Metro Link, Inc. not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Metro Link, Inc. makes no +representations about the suitability of this software for any purpose. + It is provided "as is" without express or implied warranty. + +METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1998 by Metro Link Incorporated + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Metro Link +Incorporated not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. Metro Link Incorporated makes no representations +about the suitability of this software for any purpose. It is +provided "as is" without express or implied warranty. + +METRO LINK INCORPORATED DISCLAIMS ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS, IN NO EVENT SHALL METRO LINK INCORPORATED BE +LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +Copyright (c) 2000 by Conectiva S.A. (http://www.conectiva.com) + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +CONECTIVA LINUX BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Except as contained in this notice, the name of Conectiva Linux shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from +Conectiva Linux. + + +Copyright (c) 2001, Andy Ritger aritger@nvidia.com +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +o Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +o Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. +o Neither the name of NVIDIA nor the names of its contributors + may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT +NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +Copyright 1992 Vrije Universiteit, The Netherlands + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of the Vrije Universiteit not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. The Vrije Universiteit makes no +representations about the suitability of this software for any purpose. +It is provided "as is" without express or implied warranty. + +The Vrije Universiteit DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL The Vrije Universiteit BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1998 by Concurrent Computer Corporation + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Concurrent Computer +Corporation not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. Concurrent Computer Corporation makes no representations +about the suitability of this software for any purpose. It is +provided "as is" without express or implied warranty. + +CONCURRENT COMPUTER CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS, IN NO EVENT SHALL CONCURRENT COMPUTER CORPORATION BE +LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +Copyright © 2004 Nokia + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Nokia not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Nokia makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +NOKIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL NOKIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +(c)Copyright 1988,1991 Adobe Systems Incorporated. +All rights reserved. + +Permission to use, copy, modify, distribute, and sublicense this software and its +documentation for any purpose and without fee is hereby granted, provided that +the above copyright notices appear in all copies and that both those copyright +notices and this permission notice appear in supporting documentation and that +the name of Adobe Systems Incorporated not be used in advertising or publicity +pertaining to distribution of the software without specific, written prior +permission. No trademark license to use the Adobe trademarks is hereby +granted. If the Adobe trademark "Display PostScript"(tm) is used to describe +this software, its functionality or for any other purpose, such use shall be +limited to a statement that this software works in conjunction with the Display +PostScript system. Proper trademark attribution to reflect Adobe's ownership +of the trademark shall be given whenever any such reference to the Display +PostScript system is made. + +ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR ANY +PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ADOBE +DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON- +INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE TO YOU +OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,NEGLIGENCE, STRICT +LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT PROVIDE ANY TRAINING OR OTHER +SUPPORT FOR THE SOFTWARE. + +Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems +Incorporated which may be registered in certain jurisdictions. + + +Copyright 1989 Network Computing Devices, Inc., Mountain View, California. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, provided +that the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of N.C.D. not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. N.C.D. makes no representations about the +suitability of this software for any purpose. It is provided "as is" +without express or implied warranty. + + +Copyright (c) 1987 by the Regents of the University of California + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies. The University of California +makes no representations about the suitability of this +software for any purpose. It is provided "as is" without +express or implied warranty. + + +Copyright 1992, 1993 Data General Corporation; +Copyright 1992, 1993 OMRON Corporation + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that the +above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and that +neither the name OMRON or DATA GENERAL be used in advertising or publicity +pertaining to distribution of the software without specific, written prior +permission of the party whose name is to be used. Neither OMRON or +DATA GENERAL make any representation about the suitability of this software +for any purpose. It is provided "as is" without express or implied warranty. + +OMRON AND DATA GENERAL EACH DISCLAIM ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, +IN NO EVENT SHALL OMRON OR DATA GENERAL BE LIABLE FOR ANY SPECIAL, INDIRECT +OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. + + +Copyright © 1998-2004, 2006 Keith Packard +Copyright © 2000-2002 Keith Packard, member of The XFree86 Project, Inc. +Copyright (c) 2002 Apple Computer, Inc. +Copyright (c) 2003 Torrey T. Lyons. +All Rights Reserved. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Keith Packard not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Keith Packard makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright © 1999 Keith Packard +Copyright © 2000 Compaq Computer Corporation +Copyright © 2002 MontaVista Software Inc. +Copyright © 2005 OpenedHand Ltd. +Copyright © 2006 Nokia Corporation + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of the authors and/or copyright holders +not be used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. The authors and/or +copyright holders make no representations about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +THE AUTHORS AND/OR COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS, IN NO EVENT SHALL THE AUTHORS AND/OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1993 by Davor Matic + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation. Davor Matic makes no representations about +the suitability of this software for any purpose. It is provided "as +is" without express or implied warranty. + + +Copyright (C) 2001-2004 Harold L Hunt II All Rights Reserved. +Copyright (C) Colin Harrison 2005-2008 + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL HAROLD L HUNT II BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Harold L Hunt II +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +from Harold L Hunt II. + + +Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Thomas Roell not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Thomas Roell makes no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany +Copyright 1993 by David Wexelblat + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the names of Thomas Roell and David Wexelblat +not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. Thomas Roell and +David Wexelblat makes no representations about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +THOMAS ROELL AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL THOMAS ROELL OR DAVID WEXELBLAT BE LIABLE FOR +ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1990,91,92,93 by Thomas Roell, Germany. +Copyright 1991,92,93 by SGCS (Snitily Graphics Consulting Services), USA. + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and +that both that copyright notice and this permission notice appear +in supporting documentation, and that the name of Thomas Roell nor +SGCS be used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Thomas Roell nor SGCS makes no representations about the suitability +of this software for any purpose. It is provided "as is" without +express or implied warranty. + +THOMAS ROELL AND SGCS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL THOMAS ROELL OR SGCS BE LIABLE FOR ANY +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1998 by Alan Hourihane, Wigan, England. +Copyright 2000-2002 by Alan Hourihane, Flint Mountain, North Wales. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Alan Hourihane not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Alan Hourihane makes no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1995 Kaleb S. KEITHLEY + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Kaleb S. KEITHLEY +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +from Kaleb S. KEITHLEY + + +Copyright (c) 1997 Matthieu Herrb + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Matthieu Herrb not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Matthieu Herrb makes no +representations about the suitability of this software for any purpose. + It is provided "as is" without express or implied warranty. + +MATTHIEU HERRB DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL MATTHIEU HERRB BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright 2004, Egbert Eich + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +EGBERT EICH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Egbert Eich shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from Egbert Eich. + + +Copyright 1993 by David Wexelblat +Copyright 2005 by Kean Johnston +Copyright 1993 by David McCullough + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of David Wexelblat not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. David Wexelblat makes no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL DAVID WEXELBLAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1992 by Orest Zborowski +Copyright 1993 by David Wexelblat + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the names of Orest Zborowski and David Wexelblat +not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. Orest Zborowski +and David Wexelblat make no representations about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +OREST ZBOROWSKI AND DAVID WEXELBLAT DISCLAIMS ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID WEXELBLAT BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1992 by Orest Zborowski +Copyright 1993 by David Dawes + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the names of Orest Zborowski and David Dawes +not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. Orest Zborowski +and David Dawes make no representations about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +OREST ZBOROWSKI AND DAVID DAWES DISCLAIMS ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL OREST ZBOROWSKI OR DAVID DAWES BE LIABLE +FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1995-1999 by Frederic Lepied, France. + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Frederic Lepied not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Frederic Lepied makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +FREDERIC LEPIED DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL FREDERIC LEPIED BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1992 by Rich Murphey +Copyright 1993 by David Wexelblat + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the names of Rich Murphey and David Wexelblat +not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. Rich Murphey and +David Wexelblat make no representations about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +RICH MURPHEY AND DAVID WEXELBLAT DISCLAIM ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID WEXELBLAT BE LIABLE FOR +ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1992 by Rich Murphey +Copyright 1993 by David Dawes + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the names of Rich Murphey and David Dawes +not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. Rich Murphey and +David Dawes make no representations about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +RICH MURPHEY AND DAVID DAWES DISCLAIM ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL RICH MURPHEY OR DAVID DAWES BE LIABLE FOR +ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF +CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright © 2003-2004 Anders Carlsson + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Anders Carlsson not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Anders Carlsson makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +ANDERS CARLSSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL ANDERS CARLSSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright (C) 2003 Anders Carlsson +Copyright © 2003-2004 Eric Anholt +Copyright © 2004 Keith Packard + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Eric Anholt not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Eric Anholt makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +ERIC ANHOLT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL ERIC ANHOLT BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright (c) 1998 Todd C. Miller + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL +WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE +FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION +OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright © 2003-2004 Philip Blundell + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Philip Blundell not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Philip Blundell makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +PHILIP BLUNDELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL PHILIP BLUNDELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + + +Copyright (c) 1994-2003 by The XFree86 Project, Inc. +Copyright 1997 by Metro Link, Inc. +Copyright 2003 by David H. Dawes. +Copyright 2003 by X-Oz Technologies. +Copyright (c) 2004, X.Org Foundation + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the copyright holder(s) +and author(s) shall not be used in advertising or otherwise to promote +the sale, use or other dealings in this Software without prior written +authorization from the copyright holder(s) and author(s). + + +Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany +Copyright 1993 by David Wexelblat +Copyright 1999 by David Holland +Copyright © 2000 Compaq Computer Corporation +Copyright © 2002 Hewlett-Packard Company +Copyright © 2004, 2005 Red Hat, Inc. +Copyright © 2004 Nicholas Miell +Copyright © 2005 Trolltech AS +Copyright © 2006 Intel Corporation +Copyright © 2006-2007 Keith Packard +Copyright © 2008 Red Hat, Inc +Copyright © 2008 George Sapountzis + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and +that the name of the copyright holders not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. The copyright holders make no representations +about the suitability of this software for any purpose. It is provided "as +is" without express or implied warranty. + +THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING +OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. + 2005 Lars Knoll & Zack Rusin, Trolltech + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Keith Packard not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Keith Packard makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING +OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +Copyright 1987, 1998 The Open Group +Copyright © 1998-1999, 2001 The XFree86 Project, Inc. +Copyright © 2000 VA Linux Systems, Inc. +Copyright (c) 2000, 2001 Nokia Home Communications +Copyright © 2007, 2008 Red Hat, Inc. +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, provided that the above +copyright notice(s) and this permission notice appear in all copies of +the Software and that both the above copyright notice(s) and this +permission notice appear in supporting documentation. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +of the copyright holder. + + +Copyright 1996 by Thomas E. Dickey + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of the above listed +copyright holder(s) not be used in advertising or publicity pertaining +to distribution of the software without specific, written prior +permission. + +THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE +LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright (c) 2001 Andreas Monitzer. +Copyright (c) 2001-2004 Greg Parker. +Copyright (c) 2001-2004 Torrey T. Lyons +Copyright (c) 2002-2003 Apple Computer, Inc. +Copyright (c) 2004-2005 Alexander Gottwald +Copyright (c) 2002-2009 Apple Inc. +Copyright (c) 2007 Jeremy Huddleston +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name(s) of the above copyright +holders shall not be used in advertising or otherwise to promote the sale, +use or other dealings in this Software without prior written authorization. + + +Copyright (C) 1999,2000 by Eric Sunshine +Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +Copyright (C) 2005 Bogdan D. bogdand@users.sourceforge.net + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the author shall not be used in +advertising or otherwise to promote the sale, use or other dealings in this +Software without prior written authorization from the author. + + +Copyright © 2002 David Dawes + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Except as contained in this notice, the name of the author(s) shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from +the author(s). + + +Copyright (C) 1996-1999 SciTech Software, Inc. +Copyright (C) David Mosberger-Tang +Copyright (C) 1999 Egbert Eich +Copyright (C) 2008 Bart Trojanowski, Symbio Technologies, LLC + +Permission to use, copy, modify, distribute, and sell this software and +its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of the authors not be used +in advertising or publicity pertaining to distribution of the software +without specific, written prior permission. The authors makes no +representations about the suitability of this software for any purpose. +It is provided "as is" without express or implied warranty. + +THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright 2005-2006 Luc Verhaegen. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + + +Copyright 1995 by Robin Cutshaw +Copyright 2000 by Egbert Eich +Copyright 2002 by David Dawes + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the names of the above listed copyright holder(s) +not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. The above listed +copyright holder(s) make(s) no representations about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE +LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING +OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 1997-2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation, and +that the name of Marc Aurele La France not be used in advertising or +publicity pertaining to distribution of the software without specific, +written prior permission. Marc Aurele La France makes no representations +about the suitability of this software for any purpose. It is provided +"as-is" without express or implied warranty. + +MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO +EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +OF THIS SOFTWARE. + + +Copyright 1990, 1991 by Thomas Roell, Dinkelscherben, Germany +Copyright 1992 by David Dawes +Copyright 1992 by Jim Tsillas +Copyright 1992 by Rich Murphey +Copyright 1992 by Robert Baron +Copyright 1992 by Orest Zborowski +Copyright 1993 by Vrije Universiteit, The Netherlands +Copyright 1993 by David Wexelblat +Copyright 1994, 1996 by Holger Veit +Copyright 1997 by Takis Psarogiannakopoulos +Copyright 1994-2003 by The XFree86 Project, Inc + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the names of the above listed copyright holders +not be used in advertising or publicity pertaining to distribution of +the software without specific, written prior permission. The above listed +copyright holders make no representations about the suitability of this +software for any purpose. It is provided "as is" without express or +implied warranty. + +THE ABOVE LISTED COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD +TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDERS BE +LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING +OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Copyright 2001-2005 by J. Kean Johnston + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name J. Kean Johnston not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. J. Kean Johnston makes no +representations about the suitability of this software for any purpose. +It is provided "as is" without express or implied warranty. + +J. KEAN JOHNSTON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL J. KEAN JOHNSTON BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF +USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright (C) 2000 Jakub Jelinek (jakub@redhat.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +JAKUB JELINEK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Copyright 1997,1998 by UCHIYAMA Yasushi + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of UCHIYAMA Yasushi not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. UCHIYAMA Yasushi makes no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +UCHIYAMA YASUSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL UCHIYAMA YASUSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright (C) 2000 Keith Packard + 2004 Eric Anholt + 2005 Zack Rusin + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of copyright holders not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Copyright holders make no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN +AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING +OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +(C) Copyright IBM Corporation 2002-2007 +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +this permission notice appear in supporting documentation. This permission +notice shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Copyright © 2007 OpenedHand Ltd + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of OpenedHand Ltd not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. OpenedHand Ltd makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +OpenedHand Ltd DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL OpenedHand Ltd BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +Copyright (c) 1987, 1990, 1993 + The Regents of the University of California. All rights reserved. + +This code is derived from software contributed to Berkeley by +Chris Torek. + +This code is derived from software contributed to Berkeley by +Michael Rendell of Memorial University of Newfoundland. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. --- xorg-server-1.18.4.orig/debian/gbp.conf +++ xorg-server-1.18.4/debian/gbp.conf @@ -0,0 +1,7 @@ +[DEFAULT] +# the default branch for upstream sources: +upstream-branch = upstream-experimental +# the default branch for the debian patch: +debian-branch = ubuntu +# use pristine-tar: +pristine-tar = True --- xorg-server-1.18.4.orig/debian/local/10-kbd.conf +++ xorg-server-1.18.4/debian/local/10-kbd.conf @@ -0,0 +1,5 @@ +Section "InputClass" + Identifier "kbd catchall" + MatchIsKeyboard "on" + Driver "kbd" +EndSection --- xorg-server-1.18.4.orig/debian/local/10-mouse.conf +++ xorg-server-1.18.4/debian/local/10-mouse.conf @@ -0,0 +1,5 @@ +Section "InputClass" + Identifier "mouse catchall" + MatchIsPointer "on" + Driver "mouse" +EndSection --- xorg-server-1.18.4.orig/debian/local/64-xorg-xkb.rules +++ xorg-server-1.18.4/debian/local/64-xorg-xkb.rules @@ -0,0 +1,8 @@ +ACTION!="add|change", GOTO="xorg_xkb_end" +SUBSYSTEM!="input", GOTO="xorg_xkb_end" +KERNEL!="event*", GOTO="xorg_xkb_end" + +# import keyboard layout from /etc/default/keyboard +ENV{ID_INPUT_KEY}=="?*", IMPORT{file}="/etc/default/keyboard" + +LABEL="xorg_xkb_end" --- xorg-server-1.18.4.orig/debian/local/dh_xsf_substvars +++ xorg-server-1.18.4/debian/local/dh_xsf_substvars @@ -0,0 +1,53 @@ +#!/bin/sh +# © 2011 Cyril Brulebois +# +# Usage: +# Call this script from debian/rules, before dh_gencontrol is run, +# to get all needed variables computed in debian/$p.substvars for +# each package $p found through dh_listpackages. +# . +# This script has support for udebs. +set -e + +# Sanity check. All drivers build-depend on debhelper: +if ! which dh_listpackages >/dev/null 2>&1; then + echo "E: dh_listpackages not found, debhelper package missing?" + exit 1 +fi + +# Read the dependencies once: +INPUTDEP=$(cat /usr/share/xserver-xorg/xinputdep 2>/dev/null) +VIDEODEP=$(cat /usr/share/xserver-xorg/videodrvdep 2>/dev/null) + +# Iterate on the packages: +for package in $(dh_listpackages); do + case $package in + *-udeb) + # udebs depend on udebs, tweak the dependency on the server: + inputdep=$(echo "$INPUTDEP"|sed 's/xserver-xorg-core/&-udeb/') + videodep=$(echo "$VIDEODEP"|sed 's/xserver-xorg-core/&-udeb/') + ;; + *) + # just copy the dependencies read previously: + inputdep="$INPUTDEP" + videodep="$VIDEODEP" + esac + + # To avoid having "unused substitution variable" warnings from + # dpkg-gencontrol, only set variables which make sense: + case $package in + *-dbg|*-dev|*-all) + # debug, devel, or meta package, no need for Depends/Provides. + : + ;; + xserver-xorg-input-*) + # input driver: + echo "xinpdriver:Depends=$inputdep" >> debian/$package.substvars + echo "xinpdriver:Provides=xorg-driver-input" >> debian/$package.substvars + ;; + xserver-xorg-video-*) + # video driver: + echo "xviddriver:Depends=$videodep" >> debian/$package.substvars + echo "xviddriver:Provides=xorg-driver-video" >> debian/$package.substvars + esac +done --- xorg-server-1.18.4.orig/debian/local/xsf.pm +++ xorg-server-1.18.4/debian/local/xsf.pm @@ -0,0 +1,8 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Debian::Debhelper::Dh_Lib; + +insert_before("dh_gencontrol", "dh_xsf_substvars"); + +1; --- xorg-server-1.18.4.orig/debian/local/xvfb-run +++ xorg-server-1.18.4/debian/local/xvfb-run @@ -0,0 +1,191 @@ +#!/bin/sh + +# This script starts an instance of Xvfb, the "fake" X server, runs a command +# with that server available, and kills the X server when done. The return +# value of the command becomes the return value of this script, except in cases +# where this script encounters an error. +# +# If anyone is using this to build a Debian package, make sure the package +# Build-Depends on xvfb and xauth. + +set -e + +PROGNAME=xvfb-run +SERVERNUM=99 +AUTHFILE= +ERRORFILE=/dev/null +XVFBARGS="-screen 0 640x480x16" +LISTENTCP="-nolisten tcp" +XAUTHPROTO=. + +# Query the terminal to establish a default number of columns to use for +# displaying messages to the user. This is used only as a fallback in the event +# the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the +# script is running, and this cannot, only being calculated once.) +DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true +if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" >/dev/null 2>&1; then + DEFCOLUMNS=80 +fi + +# Display a message, wrapping lines at the terminal width. +message () { + echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} +} + +# Display an error message. +error () { + message "error: $*" >&2 +} + +# Display a usage message. +usage () { + if [ -n "$*" ]; then + message "usage error: $*" + fi + cat <>"$ERRORFILE" 2>&1 + fi + if [ -n "$XVFB_RUN_TMPDIR" ]; then + if ! rm -r "$XVFB_RUN_TMPDIR"; then + error "problem while cleaning up temporary directory" + exit 5 + fi + fi + if [ -n "$XVFBPID" ]; then + kill "$XVFBPID" >>"$ERRORFILE" 2>&1 + fi +} + +# Parse the command line. +ARGS=$(getopt --options +ae:f:hn:lp:s:w: \ + --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \ + --name "$PROGNAME" -- "$@") +GETOPT_STATUS=$? + +if [ $GETOPT_STATUS -ne 0 ]; then + error "internal error; getopt exited with status $GETOPT_STATUS" + exit 6 +fi + +eval set -- "$ARGS" + +while :; do + case "$1" in + -a|--auto-servernum) SERVERNUM=$(find_free_servernum); AUTONUM="yes" ;; + -e|--error-file) ERRORFILE="$2"; shift ;; + -f|--auth-file) AUTHFILE="$2"; shift ;; + -h|--help) SHOWHELP="yes" ;; + -n|--server-num) SERVERNUM="$2"; shift ;; + -l|--listen-tcp) LISTENTCP="" ;; + -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;; + -s|--server-args) XVFBARGS="$2"; shift ;; + -w|--wait) shift ;; + --) shift; break ;; + *) error "internal error; getopt permitted \"$1\" unexpectedly" + exit 6 + ;; + esac + shift +done + +if [ "$SHOWHELP" ]; then + usage + exit 0 +fi + +if [ -z "$*" ]; then + usage "need a command to run" >&2 + exit 2 +fi + +if ! which xauth >/dev/null; then + error "xauth command not found" + exit 3 +fi + +# tidy up after ourselves +trap clean_up EXIT + +# If the user did not specify an X authorization file to use, set up a temporary +# directory to house one. +if [ -z "$AUTHFILE" ]; then + XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)" + # Create empty file to avoid xauth warning + AUTHFILE=$(tempfile -n "$XVFB_RUN_TMPDIR/Xauthority") +fi + +# Start Xvfb. +MCOOKIE=$(mcookie) +tries=10 +while [ $tries -gt 0 ]; do + tries=$(( $tries - 1 )) + XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1 +add :$SERVERNUM $XAUTHPROTO $MCOOKIE +EOF + # handle SIGUSR1 so Xvfb knows to send a signal when it's ready to accept + # connections + trap : USR1 + (trap '' USR1; exec Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP -auth $AUTHFILE >>"$ERRORFILE" 2>&1) & + XVFBPID=$! + + wait || : + if kill -0 $XVFBPID 2>/dev/null; then + break + elif [ -n "$AUTONUM" ]; then + # The display is in use so try another one (if '-a' was specified). + SERVERNUM=$((SERVERNUM + 1)) + SERVERNUM=$(find_free_servernum) + continue + fi + error "Xvfb failed to start" >&2 + XVFBPID= + exit 1 +done + +# Start the command and save its exit status. +set +e +DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1 +RETVAL=$? +set -e + +# Return the executed command's exit status. +exit $RETVAL + +# vim:set ai et sts=4 sw=4 tw=80: --- xorg-server-1.18.4.orig/debian/local/xvfb-run.1 +++ xorg-server-1.18.4/debian/local/xvfb-run.1 @@ -0,0 +1,281 @@ +.\" Copyright 1998-2004 Branden Robinson . +.\" +.\" This is free software; you may redistribute it and/or modify +.\" it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2, +.\" or (at your option) any later version. +.\" +.\" This is distributed in the hope that it will be useful, but +.\" WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License with +.\" the Debian operating system, in /usr/share/common-licenses/GPL; if +.\" not, write to the Free Software Foundation, Inc., 59 Temple Place, +.\" Suite 330, Boston, MA 02111-1307 USA +.\" +.\" We need the URL macro from groff's www macro package, but also want +.\" things to work all right for people who don't have it. So we define +.\" our own URL macro and let the www macro package override it if it's +.\" available. +.de URL +\\$2 \(laURL: \\$1 \(ra\\$3 +.. +.if \n[.g] .mso www.tmac +.TH xvfb\-run 1 "2004\-11\-12" "Debian Project" +.SH NAME +xvfb\-run \- run specified X client or command in a virtual X server environment +.SH SYNOPSIS +.B xvfb\-run +[ +.I options +] +.I command +.SH DESCRIPTION +.B xvfb\-run +is a wrapper for the +.BR Xvfb (1x) +command which simplifies the task of running commands (typically an X +client, or a script containing a list of clients to be run) within a virtual +X server environment. +.PP +.B xvfb\-run +sets up an X authority file (or uses an existing user\-specified one), +writes a cookie to it (see +.BR xauth (1x)) +and then starts the +.B Xvfb +X server as a background process. +The process ID of +.B Xvfb +is stored for later use. +The specified +.I command +is then run using the X display corresponding to the +.B Xvfb +server +just started and the X authority file created earlier. +.PP +When the +.I command +exits, its status is saved, the +.B Xvfb +server is killed (using the process ID stored earlier), the X authority +cookie removed, and the authority file deleted (if the user did not specify +one to use). +.B xvfb\-run +then exits with the exit status of +.IR command , +except in error conditions (see +.SM +.B EXIT STATUS +below). +.PP +.B xvfb\-run +requires the +.B xauth +command to function. +.SH OPTIONS +.TP +.B \-a\fR,\fB \-\-auto\-servernum +Try to get a free server number, starting at 99, or the argument to +.BR \-\-server\-num . +.TP +.BI \-e\ file \fR,\fB\ \-\-error\-file= file +Store output from +.B xauth +and +.B Xvfb +in +.IR file . +The default is +.IR /dev/null . +.TP +.BI \-f\ file \fR,\fB\ \-\-auth\-file= file +Store X authentication data in +.IR file . +By default, a temporary directory called +.IR xvfb\-run. PID +(where PID is the process ID of +.B xvfb\-run +itself) is created in the directory specified by the environment variable +.B TMPDIR +(or +.I /tmp +if that variable is null or unset), and the +.BR tempfile (1) +command is used to create a file in that temporary directory called +.IR Xauthority . +.TP +.B \-h\fR,\fB \-\-help +Display a usage message and exit. +.TP +.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber +Use +.I servernumber +as the server number (but see the +.B \-a\fR,\fB \-\-auto\-servernum +option above). +The default is 99. +.TP +.B \-l\fR,\fB \-\-listen\-tcp +Enable TCP port listening in the X server. +For security reasons (to avoid denial\-of\-service attacks or exploits), +TCP port listening is disabled by default. +.TP +.BI \-p\ protocolname \fR,\fB\ \-\-xauth\-protocol= protocolname +Use +.I protocolname +as the X authority protocol to use. +The default is \(oq.\(cq, which +.B xauth +interprets as its own default protocol, which is MIT\-MAGIC\-COOKIE\-1. +.TP +.BI \-s\ arguments \fR,\fB\ \-\-server\-args= arguments +Pass +.I arguments +to the +.B Xvfb +server. +Be careful to quote any whitespace characters that may occur within +.I arguments +to prevent them from regarded as separators for +.BR xvfb\-run 's +own arguments. +Also, note that specification of \(oq\-nolisten tcp\(cq in +.I arguments +may override the function of +.BR xvfb\-run 's +own +.B \-l\fR,\fB \-\-listen\-tcp +option, and that specification of the server number (e.g., \(oq:1\(cq) may +be ignored because of the way the X server parses its argument list. +Use the +.B xvfb\-run +option +.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber +to achieve the latter function. +The default is \(oq\-screen 0 640x480x8\(cq. +.TP +.BI \-w\ delay \fR,\fB\ \-\-wait= delay +Ignored for compatibility with earlier versions. +.SH ENVIRONMENT +.TP +.B COLUMNS +indicates the width of the terminal device in character cells. +This value is used for formatting diagnostic messages. +If not set, the terminal is queried using +.BR stty (1) +to determine its width. +If that fails, a value of \(oq80\(cq is assumed. +.TP +.B TMPDIR +specifies the directory in which to place +.BR xvfb\-run 's +temporary directory for storage of the X authority file; only used if the +.B \-f +or +.B \-\-auth\-file +options are not specified. +.SH "OUTPUT FILES" +.PP +Unless the +.B \-f +or +.B \-\-auth\-file +options are specified, a temporary +directory and file within it are created (and deleted) to store the X +authority cookies used by the +.B Xvfb +server and client(s) run under it. +See +.BR tempfile (1). +If \-f or \-\-auth\-file are used, then the specified X authority file is +only written to, not created or deleted (though +.B xauth +creates an authority file itself if told to use use that does not already +exist). +.PP +An error file with a user\-specified name is also created if the +.B \-e +or +.B \-\-error\-file +options are specifed; see above. +.SH "EXIT STATUS" +.B xvfb\-run +uses its exit status as well as output to standard error to communicate +diagnostics. +.TP +0 +.B xvfb\-run +only uses this exit status if the +.B \-h\fR,\fB \-\-help +option is given. +In all other situations, this may be interpreted as success of the specified +command. +.TP +1 +.B Xvfb +did not start correctly. +.TP +2 +No command to run was specified. +.TP +3 +The +.B xauth +command is not available. +.TP +4 +The temporary directory that was going to be used already exists; since +.B xvfb\-run +produces a uniquely named directory, this may indicate an attempt by another +process on the system to exploit a temporary file race condition. +.TP +5 +A problem was encountered while cleaning up the temporary directory. +.TP +6 +A problem was encountered while using +.BR getopt (1) +to parse the command\-line arguments. +.SH EXAMPLES +.TP +.B xvfb\-run \-\-auto\-servernum \-\-server\-num=1 xlogo +runs the +.BR xlogo (1x) +demonstration client inside the +.B Xvfb +X server on the first available server number greater than or equal to 1. +.TP +.B xvfb\-run \-\-server\-args="\-screen 0 1024x768x24" ico \-faces +runs the +.BR ico (1x) +demonstration client (and passes it the +.B \-faces +argument) inside the +.B Xvfb +X server, configured with a root window of 1024 by 768 pixels and a color +depth of 24 bits. +.PP +Note that the demo X clients used in the above examples will not exit on +their own, so they will have to be killed before +.B xvfb\-run +will exit. +.SH BUGS +See +.URL "http://bugs.debian.org/xvfb" "the Debian Bug Tracking System" . +If you wish to report a bug in +.BR xvfb\-run , +please use the +.BR reportbug (1) +command. +.SH AUTHOR +.B xvfb\-run +was written by Branden Robinson and Jeff Licquia with sponsorship from +Progeny Linux Systems. +.SH "SEE ALSO" +.BR Xvfb (1x), +.BR xauth (1x) +.\" vim:set et tw=80: --- xorg-server-1.18.4.orig/debian/patches/001_fedora_extramodes.patch +++ xorg-server-1.18.4/debian/patches/001_fedora_extramodes.patch @@ -0,0 +1,83 @@ +From: Adam Jackson +Date: Sun, 28 Oct 2007 09:37:52 +0100 +Subject: [PATCH] Fedora extra modes list + +--- +--- a/hw/xfree86/common/extramodes ++++ b/hw/xfree86/common/extramodes +@@ -3,16 +3,75 @@ + // + // $XFree86: xc/programs/Xserver/hw/xfree86/etc/extramodes,v 1.5 2002/06/05 19:43:05 dawes Exp $ + // ++// NOTE: Please keep all video modes sorted in order of X res, then Y res for ++// ease of maintenance and readability. + + # 832x624 @ 75Hz (74.55Hz) (fix if the official/Apple spec is different) hsync: 49.725kHz + ModeLine "832x624" 57.284 832 864 928 1152 624 625 628 667 -Hsync -Vsync + ++# 1152x864 @ 60.00 Hz (GTF) hsync: 53.70 kHz; pclk: 81.62 MHz ++Modeline "1152x864" 81.62 1152 1216 1336 1520 864 865 868 895 -HSync +Vsync ++ ++# 1152x864 @ 70.00 Hz (GTF) hsync: 63.00 kHz; pclk: 96.77 MHz ++Modeline "1152x864" 96.77 1152 1224 1344 1536 864 865 868 900 -HSync +Vsync ++ ++# 1152x864 @ 75.00 Hz (GTF) hsync: 67.65 kHz; pclk: 104.99 MHz ++Modeline "1152x864" 104.99 1152 1224 1352 1552 864 865 868 902 -HSync +Vsync ++ ++# 1152x864 @ 85.00 Hz (GTF) hsync: 77.10 kHz; pclk: 119.65 MHz ++Modeline "1152x864" 119.65 1152 1224 1352 1552 864 865 868 907 -HSync +Vsync ++ ++# 1152x864 @ 85Hz (Red Hat custom modeline) ++ModeLine "1152x864" 121.5 1152 1216 1344 1568 864 865 868 911 +hsync -vsync ++ ++# 1152x864 @ 100.00 Hz (GTF) hsync: 91.50 kHz; pclk: 143.47 MHz ++Modeline "1152x864" 143.47 1152 1232 1360 1568 864 865 868 915 -HSync +Vsync ++ ++# 1360x768 59.96 Hz (CVT) hsync: 47.37 kHz; pclk: 72.00 MHz ++Modeline "1360x768" 72.00 1360 1408 1440 1520 768 771 781 790 +hsync -vsync ++ ++# 1360x768 59.80 Hz (CVT) hsync: 47.72 kHz; pclk: 84.75 MHz ++Modeline "1360x768" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync ++ + # 1400x1050 @ 60Hz (VESA GTF) hsync: 65.5kHz + ModeLine "1400x1050" 122.0 1400 1488 1640 1880 1050 1052 1064 1082 +hsync +vsync + ++# 1400x1050 @ 70.00 Hz (GTF) hsync: 76.51 kHz; pclk: 145.06 MHz ++Modeline "1400x1050" 145.06 1400 1496 1648 1896 1050 1051 1054 1093 -HSync +Vsync ++ + # 1400x1050 @ 75Hz (VESA GTF) hsync: 82.2kHz + ModeLine "1400x1050" 155.8 1400 1464 1784 1912 1050 1052 1064 1090 +hsync +vsync + ++# 1400x1050 @ 85.00 Hz (GTF) hsync: 93.76 kHz; pclk: 179.26 MHz ++Modeline "1400x1050" 179.26 1400 1504 1656 1912 1050 1051 1054 1103 -HSync +Vsync ++ ++# 1440x900 @ 60.00 Hz (CVT) field rate 59.89 Hz; hsync: 55.93 kHz; pclk: 106.50 MHz ++Modeline "1440x900" 106.50 1440 1520 1672 1904 900 903 909 934 -HSync +Vsync ++ ++# 1600x1024 for SGI 1600 SW ++ModeLine "1600x1024" 103.125 1600 1600 1656 1664 1024 1024 1029 1030 +Hsync +Vsync ++ ++# 1680x1050 59.88 Hz (CVT 1.76MA-R) hsync: 64.67 kHz; pclk: 119.00 MHz ++Modeline "1680x1050" 119.00 1680 1728 1760 1840 1050 1053 1059 1080 +hsync -vsync ++ ++# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz ++Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync ++ ++# 1680x1050 69.88 Hz (CVT) hsync: 76.58 kHz; pclk: 174.00 MHz ++Modeline "1680x1050" 174.00 1680 1800 1976 2272 1050 1053 1059 1096 -hsync +vsync ++ ++# 1680x1050 74.89 Hz (CVT 1.76MA) hsync: 82.31 kHz; pclk: 187.00 MHz ++Modeline "1680x1050" 187.00 1680 1800 1976 2272 1050 1053 1059 1099 -hsync +vsync ++ ++# 1680x1050 84.94 Hz (CVT 1.76MA) hsync: 93.86 kHz; pclk: 214.75 MHz ++Modeline "1680x1050" 214.75 1680 1808 1984 2288 1050 1053 1059 1105 -hsync +vsync ++ ++# 1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz ++Modeline "1920x1080" 138.50 1920 1968 2000 2080 1080 1083 1088 1111 +hsync -vsync ++ ++# 1920x1200 59.95 Hz (CVT 2.30MA-R) hsync: 74.04 kHz; pclk: 154.00 MHz ++Modeline "1920x1200" 154.00 1920 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync ++ + # 1920x1440 @ 85Hz (VESA GTF) hsync: 128.5kHz + Modeline "1920x1440" 341.35 1920 2072 2288 2656 1440 1441 1444 1512 -hsync +vsync + --- xorg-server-1.18.4.orig/debian/patches/02_kbsd-input-devd.diff +++ xorg-server-1.18.4/debian/patches/02_kbsd-input-devd.diff @@ -0,0 +1,560 @@ +>From d96e2bd2a2b48ede527ad7071d3e0eeda9861b73 Mon Sep 17 00:00:00 2001 +From: Robert Millan +Date: Mon, 24 Feb 2014 23:22:57 +0100 +Subject: [PATCH] Add devd config backend for FreeBSD (and GNU/kFreeBSD) + +Based on original code by Baptiste Daroussin, with some fixes made +by Koop Mast and myself. + +Signed-off-by: Robert Millan +--- + config/Makefile.am | 4 + + config/config-backends.h | 5 + + config/config.c | 5 + + config/devd.c | 387 +++++++++++++++++++++++++++++++++++++++ + configure.ac | 16 ++ + hw/xfree86/common/xf86Config.c | 7 +- + hw/xfree86/common/xf86Globals.c | 3 +- + include/dix-config.h.in | 3 + + 8 files changed, 427 insertions(+), 3 deletions(-) + create mode 100644 config/devd.c + +Index: xorg-server/config/Makefile.am +=================================================================== +--- xorg-server.orig/config/Makefile.am ++++ xorg-server/config/Makefile.am +@@ -34,6 +34,10 @@ if CONFIG_WSCONS + libconfig_la_SOURCES += wscons.c + endif # CONFIG_WSCONS + ++if CONFIG_DEVD ++libconfig_la_SOURCES += devd.c ++endif ++ + endif # !CONFIG_HAL + + endif # !CONFIG_UDEV +Index: xorg-server/config/config-backends.h +=================================================================== +--- xorg-server.orig/config/config-backends.h ++++ xorg-server/config/config-backends.h +@@ -44,3 +44,8 @@ void config_hal_fini(void); + int config_wscons_init(void); + void config_wscons_fini(void); + #endif ++ ++#ifdef CONFIG_DEVD ++int config_devd_init(void); ++void config_devd_fini(void); ++#endif +Index: xorg-server/config/config.c +=================================================================== +--- xorg-server.orig/config/config.c ++++ xorg-server/config/config.c +@@ -55,6 +55,9 @@ config_init(void) + #elif defined(CONFIG_WSCONS) + if (!config_wscons_init()) + ErrorF("[config] failed to initialise wscons\n"); ++#elif defined(CONFIG_DEVD) ++ if (!config_devd_init()) ++ ErrorF("[config] failed to initialise devd\n"); + #endif + } + +@@ -67,6 +70,8 @@ config_fini(void) + config_hal_fini(); + #elif defined(CONFIG_WSCONS) + config_wscons_fini(); ++#elif defined(CONFIG_DEVD) ++ config_devd_fini(); + #endif + } + +Index: xorg-server/config/devd.c +=================================================================== +--- /dev/null ++++ xorg-server/config/devd.c +@@ -0,0 +1,387 @@ ++/* ++ * Copyright © 2012 Baptiste Daroussin ++ * Copyright © 2014 Robert Millan ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ * ++ * Author: Baptiste Daroussin ++ */ ++ ++#ifdef HAVE_DIX_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "input.h" ++#include "inputstr.h" ++#include "hotplug.h" ++#include "config-backends.h" ++#include "os.h" ++ ++#define DEVD_SOCK_PATH "/var/run/devd.pipe" ++ ++#define DEVD_EVENT_ADD '+' ++#define DEVD_EVENT_REMOVE '-' ++ ++static int sock_devd = -1; ++ ++struct hw_type { ++ const char *driver; ++ int flag; ++ const char *xdriver; ++}; ++ ++static struct hw_type hw_types[] = { ++ {"ukbd", ATTR_KEYBOARD, "kbd"}, ++ {"atkbd", ATTR_KEYBOARD, "kbd"}, ++ {"ums", ATTR_POINTER, "mouse"}, ++ {"psm", ATTR_POINTER, "mouse"}, ++ {"uhid", ATTR_POINTER, "mouse"}, ++ {"joy", ATTR_JOYSTICK, NULL}, ++ {"atp", ATTR_TOUCHPAD, NULL}, ++ {"uep", ATTR_TOUCHSCREEN, NULL}, ++ {NULL, -1, NULL}, ++}; ++ ++static bool ++sysctl_exists(const char *format, ...) ++{ ++ va_list args; ++ char *name = NULL; ++ size_t len; ++ int ret; ++ ++ if (format == NULL) ++ return false; ++ ++ va_start(args, format); ++ vasprintf(&name, format, args); ++ va_end(args); ++ ++ ret = sysctlbyname(name, NULL, &len, NULL, 0); ++ ++ if (ret == -1) ++ len = 0; ++ ++ free(name); ++ return (len > 0); ++} ++ ++static char * ++sysctl_get_str(const char *format, ...) ++{ ++ va_list args; ++ char *name = NULL; ++ char *dest = NULL; ++ size_t len; ++ ++ if (format == NULL) ++ return NULL; ++ ++ va_start(args, format); ++ vasprintf(&name, format, args); ++ va_end(args); ++ ++ if (sysctlbyname(name, NULL, &len, NULL, 0) == 0) { ++ dest = malloc(len + 1); ++ if (!dest) ++ goto unwind; ++ if (sysctlbyname(name, dest, &len, NULL, 0) == 0) ++ dest[len] = '\0'; ++ else { ++ free(dest); ++ dest = NULL; ++ } ++ } ++ ++ unwind: ++ free(name); ++ return dest; ++} ++ ++static void ++device_added(char *devname) ++{ ++ char path[PATH_MAX]; ++ char *vendor; ++ char *product = NULL; ++ char *config_info = NULL; ++ char *walk; ++ InputOption *options = NULL; ++ InputAttributes attrs = { }; ++ DeviceIntPtr dev = NULL; ++ int i, rc; ++ int fd; ++ ++ for (i = 0; hw_types[i].driver != NULL; i++) { ++ if (strncmp(devname, hw_types[i].driver, ++ strlen(hw_types[i].driver)) == 0 && ++ isdigit(*(devname + strlen(hw_types[i].driver)))) { ++ attrs.flags |= hw_types[i].flag; ++ break; ++ } ++ } ++ if (hw_types[i].driver == NULL) { ++ LogMessageVerb(X_INFO, 10, "config/devd: ignoring device %s\n", ++ devname); ++ return; ++ } ++ if (hw_types[i].xdriver == NULL) { ++ LogMessageVerb(X_INFO, 10, "config/devd: ignoring device %s\n", ++ devname); ++ return; ++ } ++ snprintf(path, sizeof(path), "/dev/%s", devname); ++ ++ options = input_option_new(NULL, "_source", "server/devd"); ++ if (!options) ++ return; ++ ++ vendor = ++ sysctl_get_str("dev.%s.%s.%%desc", hw_types[i].driver, ++ devname + strlen(hw_types[i].driver)); ++ if (vendor == NULL) { ++ attrs.vendor = strdup("(unnamed)"); ++ attrs.product = strdup("(unnamed)"); ++ } ++ else { ++ if ((walk = strchr(vendor, ' ')) != NULL) { ++ walk[0] = '\0'; ++ walk++; ++ product = walk; ++ if ((walk = strchr(product, ',')) != NULL) ++ walk[0] = '\0'; ++ } ++ ++ attrs.vendor = strdup(vendor); ++ if (product) ++ attrs.product = strdup(product); ++ else ++ attrs.product = strdup("(unnamed)"); ++ ++ options = input_option_new(options, "name", xstrdup(attrs.product)); ++ ++ free(vendor); ++ } ++ attrs.usb_id = NULL; ++ attrs.device = strdup(path); ++ options = input_option_new(options, "driver", hw_types[i].xdriver); ++ if (attrs.flags & ATTR_KEYBOARD) { ++ /* ++ * Don't pass device option if keyboard is attached to console (open fails), ++ * thus activating special logic in xf86-input-keyboard. ++ */ ++ fd = open(path, O_RDONLY | O_NONBLOCK | O_EXCL); ++ if (fd > 0) { ++ close(fd); ++ options = input_option_new(options, "device", xstrdup(path)); ++ } ++ } ++ else { ++ options = input_option_new(options, "device", xstrdup(path)); ++ } ++ ++ if (asprintf(&config_info, "devd:%s", devname) == -1) { ++ config_info = NULL; ++ goto unwind; ++ } ++ ++ if (device_is_duplicate(config_info)) { ++ LogMessage(X_WARNING, "config/devd: device %s already added. " ++ "Ignoring.\n", attrs.product); ++ goto unwind; ++ } ++ ++ options = input_option_new(options, "config_info", config_info); ++ LogMessage(X_INFO, "config/devd: adding input device %s (%s)\n", ++ attrs.product, path); ++ ++ rc = NewInputDeviceRequest(options, &attrs, &dev); ++ ++ if (rc != Success) ++ goto unwind; ++ ++ unwind: ++ free(config_info); ++ input_option_free_list(&options); ++ ++ free(attrs.usb_id); ++ free(attrs.product); ++ free(attrs.device); ++ free(attrs.vendor); ++} ++ ++static void ++device_removed(char *devname) ++{ ++ char *value; ++ ++ if (asprintf(&value, "devd:%s", devname) == -1) ++ return; ++ ++ remove_devices("devd", value); ++ ++ free(value); ++} ++ ++static ssize_t ++socket_getline(int fd, char **out) ++{ ++ char *buf, *newbuf; ++ ssize_t ret, cap, sz = 0; ++ char c; ++ ++ cap = 1024; ++ buf = malloc(cap * sizeof(char)); ++ if (!buf) ++ return -1; ++ ++ for (;;) { ++ ret = read(sock_devd, &c, 1); ++ if (ret < 1) { ++ if (errno == EINTR) ++ continue; ++ free(buf); ++ return -1; ++ } ++ ++ if (c == '\n') ++ break; ++ ++ if (sz + 1 >= cap) { ++ cap *= 2; ++ newbuf = realloc(buf, cap * sizeof(char)); ++ if (!newbuf) { ++ free(buf); ++ return -1; ++ } ++ buf = newbuf; ++ } ++ buf[sz] = c; ++ sz++; ++ } ++ ++ buf[sz] = '\0'; ++ if (sz >= 0) ++ *out = buf; ++ else ++ free(buf); ++ ++ return sz; /* number of bytes in the line, not counting the line break */ ++} ++ ++static void ++wakeup_handler(void *data, int err, void *read_mask) ++{ ++ char *line = NULL; ++ char *walk; ++ ++ if (err < 0) ++ return; ++ ++ if (FD_ISSET(sock_devd, (fd_set *) read_mask)) { ++ if (socket_getline(sock_devd, &line) < 0) ++ return; ++ ++ walk = strchr(line + 1, ' '); ++ if (walk != NULL) ++ walk[0] = '\0'; ++ ++ switch (*line) { ++ case DEVD_EVENT_ADD: ++ device_added(line + 1); ++ break; ++ case DEVD_EVENT_REMOVE: ++ device_removed(line + 1); ++ break; ++ default: ++ break; ++ } ++ free(line); ++ } ++} ++ ++static void ++block_handler(void *data, struct timeval **tv, void *read_mask) ++{ ++} ++ ++int ++config_devd_init(void) ++{ ++ struct sockaddr_un devd; ++ char devicename[1024]; ++ int i, j; ++ ++ /* first scan the sysctl to determine the hardware if needed */ ++ ++ for (i = 0; hw_types[i].driver != NULL; i++) { ++ for (j = 0; sysctl_exists("dev.%s.%i.%%desc", hw_types[i].driver, j); ++ j++) { ++ snprintf(devicename, sizeof(devicename), "%s%i", hw_types[i].driver, ++ j); ++ device_added(devicename); ++ } ++ ++ } ++ sock_devd = socket(AF_UNIX, SOCK_STREAM, 0); ++ if (sock_devd < 0) { ++ ErrorF("config/devd: Fail opening stream socket"); ++ return 0; ++ } ++ ++ devd.sun_family = AF_UNIX; ++ strlcpy(devd.sun_path, DEVD_SOCK_PATH, sizeof(devd.sun_path)); ++ ++ if (connect(sock_devd, (struct sockaddr *) &devd, sizeof(devd)) < 0) { ++ close(sock_devd); ++ ErrorF("config/devd: Fail to connect to devd"); ++ return 0; ++ } ++ ++ RegisterBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL); ++ AddGeneralSocket(sock_devd); ++ ++ return 1; ++} ++ ++void ++config_devd_fini(void) ++{ ++ if (sock_devd < 0) ++ return; ++ ++ RemoveGeneralSocket(sock_devd); ++ RemoveBlockAndWakeupHandlers(block_handler, wakeup_handler, NULL); ++ close(sock_devd); ++} +Index: xorg-server/configure.ac +=================================================================== +--- xorg-server.orig/configure.ac ++++ xorg-server/configure.ac +@@ -606,6 +606,7 @@ AC_ARG_ENABLE(dpms, AS_HELP_ST + AC_ARG_ENABLE(config-udev, AS_HELP_STRING([--enable-config-udev], [Build udev support (default: auto)]), [CONFIG_UDEV=$enableval], [CONFIG_UDEV=auto]) + AC_ARG_ENABLE(config-udev-kms, AS_HELP_STRING([--enable-config-udev-kms], [Build udev kms support (default: auto)]), [CONFIG_UDEV_KMS=$enableval], [CONFIG_UDEV_KMS=auto]) + AC_ARG_ENABLE(config-hal, AS_HELP_STRING([--disable-config-hal], [Build HAL support (default: auto)]), [CONFIG_HAL=$enableval], [CONFIG_HAL=auto]) ++AC_ARG_ENABLE(config-devd, AS_HELP_STRING([--disable-config-devd], [Build devd support (default: auto)]), [CONFIG_DEVD=$enableval], [CONFIG_DEVD=auto]) + AC_ARG_ENABLE(config-wscons, AS_HELP_STRING([--enable-config-wscons], [Build wscons config support (default: auto)]), [CONFIG_WSCONS=$enableval], [CONFIG_WSCONS=auto]) + AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes]) + AC_ARG_ENABLE(vgahw, AS_HELP_STRING([--enable-vgahw], [Build Xorg with vga access (default: enabled)]), [VGAHW=$enableval], [VGAHW=yes]) +@@ -953,6 +954,21 @@ if test "x$CONFIG_WSCONS" = xyes; then + AC_DEFINE(CONFIG_WSCONS, 1, [Use wscons for input auto configuration]) + fi + ++if test "x$CONFIG_DEVD" = xauto; then ++ case $host_os in ++ freebsd* | kfreebsd*-gnu) ++ CONFIG_DEVD=yes; ++ ;; ++ *) ++ CONFIG_DEVD=no; ++ ;; ++ esac ++fi ++AM_CONDITIONAL(CONFIG_DEVD, [test "x$CONFIG_DEVD" = xyes]) ++if test "x$CONFIG_DEVD" = xyes; then ++ AC_DEFINE(CONFIG_DEVD, 1, [Use devd for input auto configuration]) ++fi ++ + if test "x$USE_SIGIO_BY_DEFAULT" = xyes; then + USE_SIGIO_BY_DEFAULT_VALUE=TRUE + else +@@ -2507,7 +2523,7 @@ AC_SUBST([prefix]) + + AC_CONFIG_COMMANDS([sdksyms], [touch hw/xfree86/sdksyms.dep]) + +-if test "x$CONFIG_HAL" = xno && test "x$CONFIG_UDEV" = xno; then ++if test "x$CONFIG_HAL" = xno && test "x$CONFIG_UDEV" = xno && test "x$CONFIG_DEVD" = xno; then + AC_MSG_WARN([ + *********************************************** + Neither HAL nor udev backend will be enabled. +Index: xorg-server/hw/xfree86/common/xf86Config.c +=================================================================== +--- xorg-server.orig/hw/xfree86/common/xf86Config.c ++++ xorg-server/hw/xfree86/common/xf86Config.c +@@ -1384,15 +1384,18 @@ checkCoreInputDevices(serverLayoutPtr se + } + + if (!xf86Info.forceInputDevices && !(foundPointer && foundKeyboard)) { +-#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) ++#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || \ ++ defined(CONFIG_DEVD) + const char *config_backend; + + #if defined(CONFIG_HAL) + config_backend = "HAL"; + #elif defined(CONFIG_UDEV) + config_backend = "udev"; +-#else ++#elif defined(CONFIG_WSCONS) + config_backend = "wscons"; ++#elif defined(CONFIG_DEVD) ++ config_backend = "devd"; + #endif + xf86Msg(X_INFO, "The server relies on %s to provide the list of " + "input devices.\n\tIf no devices become available, " +Index: xorg-server/hw/xfree86/common/xf86Globals.c +=================================================================== +--- xorg-server.orig/hw/xfree86/common/xf86Globals.c ++++ xorg-server/hw/xfree86/common/xf86Globals.c +@@ -122,7 +122,8 @@ xf86InfoRec xf86Info = { + .pmFlag = TRUE, + .disableRandR = FALSE, + .randRFrom = X_DEFAULT, +-#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) ++#if defined(CONFIG_HAL) || defined(CONFIG_UDEV) || defined(CONFIG_WSCONS) || \ ++ defined(CONFIG_DEVD) + .forceInputDevices = FALSE, + .autoAddDevices = TRUE, + .autoEnableDevices = TRUE, +Index: xorg-server/include/dix-config.h.in +=================================================================== +--- xorg-server.orig/include/dix-config.h.in ++++ xorg-server/include/dix-config.h.in +@@ -439,6 +439,9 @@ + /* Enable systemd-logind integration */ + #undef SYSTEMD_LOGIND 1 + ++/* Support devd for hotplug */ ++#undef CONFIG_DEVD ++ + /* Have a monotonic clock from clock_gettime() */ + #undef MONOTONIC_CLOCK + --- xorg-server-1.18.4.orig/debian/patches/03_static-nettle.diff +++ xorg-server-1.18.4/debian/patches/03_static-nettle.diff @@ -0,0 +1,17 @@ +Link against static libnettle + +There's no libnettle udeb. + +Index: xorg-server/configure.ac +=================================================================== +--- xorg-server.orig/configure.ac ++++ xorg-server/configure.ac +@@ -1656,7 +1656,7 @@ fi + if test "x$with_sha1" = xlibnettle; then + AC_DEFINE([HAVE_SHA1_IN_LIBNETTLE], [1], + [Use libnettle SHA1 functions]) +- SHA1_LIBS=-lnettle ++ SHA1_LIBS=-l:libnettle.a + fi + AC_CHECK_LIB([gcrypt], [gcry_md_open], [HAVE_LIBGCRYPT=yes]) + if test "x$with_sha1" = x && test "x$HAVE_LIBGCRYPT" = xyes; then --- xorg-server-1.18.4.orig/debian/patches/05_Revert-Unload-submodules.diff +++ xorg-server-1.18.4/debian/patches/05_Revert-Unload-submodules.diff @@ -0,0 +1,30 @@ +From 272537ae14a04911fcf2fec51492fa0f91c4a676 Mon Sep 17 00:00:00 2001 +From: Julien Cristau +Date: Wed, 29 Aug 2012 20:16:40 +0200 +Subject: [PATCH] Revert "Unload submodules." + +This reverts commit 0d4bb5442ceb8e8e4a8de6cfc4203cae469eee72. + +This doesn't seem to work quite well. See Debian bug#686152. +--- + hw/xfree86/common/xf86Helper.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +Index: xorg-server/hw/xfree86/common/xf86Helper.c +=================================================================== +--- xorg-server.orig/hw/xfree86/common/xf86Helper.c ++++ xorg-server/hw/xfree86/common/xf86Helper.c +@@ -1636,7 +1636,13 @@ xf86LoadOneModule(const char *name, void + void + xf86UnloadSubModule(void *mod) + { ++ /* ++ * This is disabled for now. The loader isn't smart enough yet to undo ++ * relocations. ++ */ ++#if 0 + UnloadSubModule(mod); ++#endif + } + + Bool --- xorg-server-1.18.4.orig/debian/patches/06_use-intel-only-on-pre-gen4.diff +++ xorg-server-1.18.4/debian/patches/06_use-intel-only-on-pre-gen4.diff @@ -0,0 +1,30 @@ +Description: Use intel ddx only on pre-gen4 hw, newer ones will fall back to modesetting +Author: Timo Aaltonen + +--- a/hw/xfree86/common/xf86pciBus.c ++++ b/hw/xfree86/common/xf86pciBus.c +@@ -1173,7 +1173,23 @@ xf86VideoPtrToDriverList(struct pci_devi + case 0x0bef: + /* Use fbdev/vesa driver on Oaktrail, Medfield, CDV */ + break; +- default: ++ /* Default to intel only on pre-gen4 chips */ ++ case 0x3577: ++ case 0x2562: ++ case 0x3582: ++ case 0x358e: ++ case 0x2572: ++ case 0x2582: ++ case 0x258a: ++ case 0x2592: ++ case 0x2772: ++ case 0x27a2: ++ case 0x27ae: ++ case 0x29b2: ++ case 0x29c2: ++ case 0x29d2: ++ case 0xa001: ++ case 0xa011: + driverList[0] = "intel"; + break; + } --- xorg-server-1.18.4.orig/debian/patches/105_nvidia_autodetect.patch +++ xorg-server-1.18.4/debian/patches/105_nvidia_autodetect.patch @@ -0,0 +1,42 @@ +Description: Load proprietary drivers automatically when installed. +Author: Robert Hooker + +--- a/hw/xfree86/common/xf86AutoConfig.c ++++ b/hw/xfree86/common/xf86AutoConfig.c +@@ -76,6 +76,13 @@ + "\tDevice\t" BUILTIN_DEVICE_NAME "\n" \ + "EndSection\n\n" + ++#define BUILTIN_SCREEN_SECTION_PROPRIETARY \ ++ "Section \"Screen\"\n" \ ++ "\tIdentifier\t" BUILTIN_SCREEN_NAME "\n" \ ++ "\tDevice\t" BUILTIN_DEVICE_NAME "\n" \ ++ "\tDefaultDepth\t24\n" \ ++ "EndSection\n\n" ++ + #define BUILTIN_LAYOUT_SECTION_PRE \ + "Section \"ServerLayout\"\n" \ + "\tIdentifier\t\"Builtin Default Layout\"\n" +@@ -154,7 +161,11 @@ xf86AutoConfig(void) + for (p = deviceList; *p; p++) { + snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION, *p, 0, *p); + AppendToConfig(buf); +- snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0); ++ if (strcmp(*p, "nvidia") == 0) ++ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION_PROPRIETARY, *p, ++ 0, *p, 0); ++ else ++ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0); + AppendToConfig(buf); + } + +--- a/hw/xfree86/common/xf86pciBus.c ++++ b/hw/xfree86/common/xf86pciBus.c +@@ -1189,6 +1189,7 @@ xf86VideoPtrToDriverList(struct pci_devi + { + int idx = 0; + ++ driverList[idx++] = "nvidia"; + #ifdef __linux__ + driverList[idx++] = "nouveau"; + #endif --- xorg-server-1.18.4.orig/debian/patches/111_armel-drv-fallbacks.patch +++ xorg-server-1.18.4/debian/patches/111_armel-drv-fallbacks.patch @@ -0,0 +1,70 @@ +Description: Add support for armel driver fallbacks. +Bug-Ubuntu: https://launchpad.net/bugs/550701 + +Index: xorg-server-1.17.2/hw/xfree86/common/xf86AutoConfig.c +=================================================================== +--- xorg-server-1.17.2.orig/hw/xfree86/common/xf86AutoConfig.c ++++ xorg-server-1.17.2/hw/xfree86/common/xf86AutoConfig.c +@@ -45,6 +45,12 @@ + #include "xf86sbusBus.h" + #endif + ++#if defined(__arm__) && defined(__linux__) ++#include "loaderProcs.h" ++#include /* For opendir in test_sysfs_device */ ++#include /* For opendir in test_sysfs_device */ ++#endif ++ + #ifdef sun + #include + #include +@@ -200,6 +206,27 @@ xf86AutoConfig(void) + return ret == CONFIG_OK; + } + ++#if defined(__arm__) && defined(__linux__) ++static int ++test_sysfs_device(char *device_name, char *driver_name) ++{ ++ DIR *dir = opendir("/sys/devices/platform"); ++ struct dirent *current_dir; ++ int len = strlen(device_name); ++ ++ while (current_dir = readdir(dir)) { ++ if (strlen(current_dir->d_name) >= len && ++ strncmp(device_name, current_dir->d_name, len) == 0) ++ break; ++ } ++ closedir(dir); ++ if (!current_dir) ++ return 0; ++ ++ return 1; ++} ++#endif /* defined(__arm__) && defined(__linux__) */ ++ + static void + listPossibleVideoDrivers(char *matches[], int nmatches) + { +@@ -278,6 +305,21 @@ listPossibleVideoDrivers(char *matches[] + i += xf86PciMatchDriver(&matches[i], nmatches - i); + #endif + ++#if defined(__linux__) && defined(__arm__) ++ if (i < (nmatches - 1)) { ++ if (test_sysfs_device("mxc_gpu", "imx")) ++ matches[i++] = xnfstrdup("imx"); ++ else if (test_sysfs_device("dovefb", "dovefb")) ++ matches[i++] = xnfstrdup("dovefb"); ++ else if (test_sysfs_device("omapdrm", "omap")) ++ matches[i++] = xnfstrdup("omap"); ++ else if (test_sysfs_device("omapfb", "omapfb")) ++ matches[i++] = xnfstrdup("omapfb"); ++ else if (test_sysfs_device("omap", "pvr")) ++ matches[i++] = xnfstrdup("pvr"); ++ } ++#endif /* defined(__linux__) && defined(__arm__) */ ++ + #if defined(__linux__) + matches[i++] = xnfstrdup("modesetting"); + #endif --- xorg-server-1.18.4.orig/debian/patches/122_xext_fix_card32_overflow_in_xauth.patch +++ xorg-server-1.18.4/debian/patches/122_xext_fix_card32_overflow_in_xauth.patch @@ -0,0 +1,30 @@ +Description: Prevent overflow of a CARD32 variable millis by doing bounds checking. + This is a patch currently in discussion at fdo #27134, so this patch can be dropped in favor of whatever upstream decides to include. +Author: Bryce Harrington +Bug-Ubuntu: https://launchpad.net/bugs/519049 + +Index: xorg-server-1.17.2/Xext/security.c +=================================================================== +--- xorg-server-1.17.2.orig/Xext/security.c ++++ xorg-server-1.17.2/Xext/security.c +@@ -261,9 +261,9 @@ SecurityComputeAuthorizationTimeout(Secu + /* maxSecs is the number of full seconds that can be expressed in + * 32 bits worth of milliseconds + */ +- CARD32 maxSecs = (CARD32) (~0) / (CARD32) MILLI_PER_SECOND; ++ CARD32 maxSecs = (CARD32) (MAXINT) / (CARD32) MILLI_PER_SECOND; + +- if (seconds > maxSecs) { /* only come here if we want to wait more than 49 days */ ++ if (seconds > maxSecs) { /* only come here if we want to wait more than 24 days */ + pAuth->secondsRemaining = seconds - maxSecs; + return maxSecs * MILLI_PER_SECOND; + } +@@ -297,8 +297,6 @@ SecurityAuthorizationExpired(OsTimerPtr + { + SecurityAuthorizationPtr pAuth = (SecurityAuthorizationPtr) pval; + +- assert(pAuth->timer == timer); +- + if (pAuth->secondsRemaining) { + return SecurityComputeAuthorizationTimeout(pAuth, + pAuth->secondsRemaining); --- xorg-server-1.18.4.orig/debian/patches/168_glibc_trace_to_stderr.patch +++ xorg-server-1.18.4/debian/patches/168_glibc_trace_to_stderr.patch @@ -0,0 +1,18 @@ +Description: Report abort traces to stderr instead of terminal +Author: Kees Cook +Bug-Ubuntu: https://launchpad.net/bugs/345748 + +Index: xorg-server-1.17.2/hw/xfree86/common/xf86Init.c +=================================================================== +--- xorg-server-1.17.2.orig/hw/xfree86/common/xf86Init.c ++++ xorg-server-1.17.2/hw/xfree86/common/xf86Init.c +@@ -992,6 +992,9 @@ OsVendorInit(void) + + if (!beenHere) { + umask(022); ++ /* have glibc report internal abort traces to stderr instead of ++ the controlling terminal */ ++ setenv("LIBC_FATAL_STDERR_", "1", 0); + xf86LogInit(); + } + --- xorg-server-1.18.4.orig/debian/patches/188_default_primary_to_first_busid.patch +++ xorg-server-1.18.4/debian/patches/188_default_primary_to_first_busid.patch @@ -0,0 +1,19 @@ +Description: X can abort if multiple video devices are present, and none are marked as primary. This makes X just pick the first one it sees and carry on. +Author: Bryce Harrington +Bug-Ubuntu: https://launchpad.net/bugs/459512 + +diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c +index e52f1da..462faa9 100644 +--- a/hw/xfree86/common/xf86pciBus.c ++++ b/hw/xfree86/common/xf86pciBus.c +@@ -135,8 +135,8 @@ xf86PciProbe(void) + } + else { + xf86Msg(X_NOTICE, +- "More than one possible primary device found\n"); +- primaryBus.type ^= (BusType) (-1); ++ "More than one possible primary device found. Using first one seen.\n"); ++ break; + } + } + } --- xorg-server-1.18.4.orig/debian/patches/190_cache-xkbcomp_output_for_fast_start_up.patch +++ xorg-server-1.18.4/debian/patches/190_cache-xkbcomp_output_for_fast_start_up.patch @@ -0,0 +1,469 @@ +Description: Causes the X Keyboard Compiler (xkbcomp) to create a cache file of the keyboard settings. + This will make the 2nd and later boots slightly faster. + TESTERS: Watch for issues relating to keyboard customizations not taking effect properly following boot. +Author: Bryce Harrington +Last-Update: 2013-09-19 + +--- a/configure.ac ++++ b/configure.ac +@@ -519,9 +519,9 @@ AC_MSG_RESULT([$FONTPATH]) + AC_ARG_WITH(xkb-path, AS_HELP_STRING([--with-xkb-path=PATH], [Path to XKB base dir (default: ${datadir}/X11/xkb)]), + [ XKBPATH="$withval" ], + [ XKBPATH="${datadir}/X11/xkb" ]) +-AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${datadir}/X11/xkb/compiled)]), ++AC_ARG_WITH(xkb-output, AS_HELP_STRING([--with-xkb-output=PATH], [Path to XKB output dir (default: ${localstatedir}/cache/xkb)]), + [ XKBOUTPUT="$withval" ], +- [ XKBOUTPUT="compiled" ]) ++ [ XKBOUTPUT="${localstatedir}/cache/xkb" ]) + AC_ARG_WITH(default-xkb-rules, AS_HELP_STRING([--with-default-xkb-rules=RULES], + [Keyboard ruleset (default: base/evdev)]), + [ XKB_DFLT_RULES="$withval" ], +@@ -1450,7 +1450,7 @@ AC_DEFINE_DIR(XKB_BIN_DIRECTORY, XKB_BIN + dnl Make sure XKM_OUTPUT_DIR is an absolute path + XKBOUTPUT_FIRSTCHAR=`echo $XKBOUTPUT | cut -b 1` + if [[ x$XKBOUTPUT_FIRSTCHAR != x/ -a x$XKBOUTPUT_FIRSTCHAR != 'x$' ]] ; then +- XKBOUTPUT="$XKB_BASE_DIRECTORY/$XKBOUTPUT" ++ AC_MSG_ERROR([xkb-output must be an absolute path.]) + fi + + dnl XKM_OUTPUT_DIR (used in code) must end in / or file names get hosed +--- a/xkb/README.compiled ++++ b/xkb/README.compiled +@@ -4,10 +4,10 @@ current keymap and/or any scratch keymap + or some other tool might destroy or replace the files in this directory, + so it is not a safe place to store compiled keymaps for long periods of + time. The default keymap for any server is usually stored in: +- X-default.xkm +-where is the display number of the server in question, which makes +-it possible for several servers *on the same host* to share the same +-directory. ++ server-.xkm ++ ++where is the SHA1 hash of keymap source, so that compiled ++keymap of different keymap sources are stored in different files. + + Unless the X server is modified, sharing this directory between servers on + different hosts could cause problems. +--- a/xkb/ddxLoad.c ++++ b/xkb/ddxLoad.c +@@ -30,6 +30,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. + + #include + ++#ifdef HAVE_SHA1_IN_LIBGCRYPT /* Use libgcrypt for SHA1 */ ++#include ++#else /* Use OpenSSL's libcrypto */ ++#warning "xkbcomp caching support disabled" ++#endif ++ + #include + #include + #include +@@ -43,20 +49,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. + #define XKBSRV_NEED_FILE_FUNCS + #include + #include ++#include + #include "xkb.h" + +- /* +- * If XKM_OUTPUT_DIR specifies a path without a leading slash, it is +- * relative to the top-level XKB configuration directory. +- * Making the server write to a subdirectory of that directory +- * requires some work in the general case (install procedure +- * has to create links to /var or somesuch on many machines), +- * so we just compile into /usr/tmp for now. +- */ +-#ifndef XKM_OUTPUT_DIR +-#define XKM_OUTPUT_DIR "compiled/" +-#endif +- + #define PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\"" + #define ERROR_PREFIX "\"> \"" + #define POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\"" +@@ -69,28 +64,73 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. + #endif + + static unsigned +-LoadXKM(unsigned want, unsigned need, const char *keymap, XkbDescPtr *xkbRtrn); ++LoadXKM(unsigned want, unsigned need, const char *keymap, XkbDescPtr *xkbRtrn, Bool is_private_directory); + + static void +-OutputDirectory(char *outdir, size_t size) ++OutputDirectory(char *outdir, size_t size, Bool *is_private_directory) + { + #ifndef WIN32 + /* Can we write an xkm and then open it too? */ + if (access(XKM_OUTPUT_DIR, W_OK | X_OK) == 0 && + (strlen(XKM_OUTPUT_DIR) < size)) { + (void) strcpy(outdir, XKM_OUTPUT_DIR); ++ if (is_private_directory) ++ *is_private_directory = TRUE; + } + else + #else + if (strlen(Win32TempDir()) + 1 < size) { + (void) strcpy(outdir, Win32TempDir()); + (void) strcat(outdir, "\\"); ++ if (is_private_directory) ++ *is_private_directory = FALSE; + } + else + #endif + if (strlen("/tmp/") < size) { + (void) strcpy(outdir, "/tmp/"); ++ if (is_private_directory) ++ *is_private_directory = FALSE; ++ } ++} ++ ++#ifndef SHA_DIGEST_LENGTH ++#define SHA_DIGEST_LENGTH 20 ++#endif ++ ++static Bool ++Sha1Asc(char sha1Asc[SHA_DIGEST_LENGTH * 2 + 1], const char *input) ++{ ++ int i; ++ unsigned char sha1[SHA_DIGEST_LENGTH]; ++ ++#ifdef HAVE_SHA1_IN_LIBGCRYPT /* Use libgcrypt for SHA1 */ ++ static int init; ++ gcry_md_hd_t h; ++ gcry_error_t err; ++ ++ if (!init) { ++ if (!gcry_check_version(NULL)) ++ return BadAlloc; ++ gcry_control(GCRYCTL_DISABLE_SECMEM, 0); ++ gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); ++ init = 1; ++ } ++ ++ err = gcry_md_open(&h, GCRY_MD_SHA1, 0); ++ if (err) ++ return BadAlloc; ++ gcry_md_write(h, input, strlen(input)); ++ memcpy(sha1, gcry_md_read(h, GCRY_MD_SHA1), 20); ++ gcry_md_close(h); ++#endif ++ ++ /* convert sha1 to sha1_asc */ ++ for (i = 0; i < SHA_DIGEST_LENGTH; ++i) { ++ sprintf(sha1Asc + i * 2, "%02X", sha1[i]); + } ++ ++ return Success; + } + + /** +@@ -103,10 +143,13 @@ typedef void (*xkbcomp_buffer_callback)( + * return a strdup'd copy of the file name we've written to. + */ + static char * +-RunXkbComp(xkbcomp_buffer_callback callback, void *userdata) ++RunXkbComp(xkbcomp_buffer_callback callback, void *userdata, Bool *is_private_directory) + { + FILE *out; +- char *buf = NULL, keymap[PATH_MAX], xkm_output_dir[PATH_MAX]; ++ char *buf = NULL, xkmfile[PATH_MAX], xkm_output_dir[PATH_MAX]; ++ char *tmpXkmFile = NULL; ++ char *canonicalXkmFileName = NULL; ++ char sha1Asc[SHA_DIGEST_LENGTH * 2 + 1], xkbKeyMapBuf[100 * 1024]; + + const char *emptystring = ""; + char *xkbbasedirflag = NULL; +@@ -117,14 +160,64 @@ RunXkbComp(xkbcomp_buffer_callback callb + /* WIN32 has no popen. The input must be stored in a file which is + used as input for xkbcomp. xkbcomp does not read from stdin. */ + char tmpname[PATH_MAX]; +- const char *xkmfile = tmpname; ++ const char *xkbfile = tmpname; + #else +- const char *xkmfile = "-"; ++ const char *xkbfile = "-"; + #endif + +- snprintf(keymap, sizeof(keymap), "server-%s", display); ++ /* Write keymap source (xkbfile) to memory buffer `xkbKeyMapBuf', ++ of which SHA1 is generated and used as result xkm file name */ ++ memset(xkbKeyMapBuf, 0, sizeof(xkbKeyMapBuf)); ++ out = fmemopen(xkbKeyMapBuf, sizeof(xkbKeyMapBuf), "w"); ++ if (NULL == out) { ++ ErrorF("[xkb] Open xkbKeyMapBuf for writing failed\n"); ++ return NULL; ++ } ++ callback(out, userdata); ++ if (fclose(out) != 0) { ++ ErrorF ++ ("[xkb] callback error, perhaps xkbKeyMapBuf is too small\n"); ++ return NULL; ++ } ++#ifdef DEBUG ++ if (xkbDebugFlags) { ++ ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n"); ++ fputs(xkbKeyMapBuf, stderr); ++ } ++#endif + +- OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir)); ++ DebugF("[xkb] computing SHA1 of keymap\n"); ++ if (Success == Sha1Asc(sha1Asc, xkbKeyMapBuf)) { ++ snprintf(xkmfile, sizeof(xkmfile), "server-%s", sha1Asc); ++ } ++ else { ++ ErrorF("[xkb] Computing SHA1 of keymap failed, " ++ "using display name instead as xkm file name\n"); ++ snprintf(xkmfile, sizeof(xkmfile), "server-%s", display); ++ } ++ ++ OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir), is_private_directory); ++ /* set nameRtrn, fail if it's too small */ ++ if (strlen(xkmfile) + 1 > sizeof(xkmfile)) { ++ ErrorF("[xkb] nameRtrn too small to hold xkmfile name\n"); ++ return NULL; ++ } ++ ++ /* if the xkm file already exists, reuse it */ ++ if (asprintf(&canonicalXkmFileName, "%s%s.xkm", xkm_output_dir, xkmfile) == -1) ++ canonicalXkmFileName = NULL; ++ else if (*is_private_directory && ++ (access(canonicalXkmFileName, R_OK) == 0)) { ++ /* yes, we can reuse the old xkm file */ ++ LogMessage(X_INFO, "XKB: reuse xkmfile %s\n", canonicalXkmFileName); ++ return canonicalXkmFileName; ++ } ++ ++ LogMessage(X_INFO, "XKB: generating xkmfile %s\n", canonicalXkmFileName); ++ ++ /* continue to call xkbcomp to compile the keymap. to avoid race ++ condition, we compile it to a tmpfile then rename it to ++ xkmfile */ + + #ifdef WIN32 + strcpy(tmpname, Win32TempDir()); +@@ -148,15 +241,20 @@ RunXkbComp(xkbcomp_buffer_callback callb + } + } + ++ if ((tmpXkmFile = tempnam(xkm_output_dir, NULL)) == NULL) { ++ ErrorF("[xkb] Can't generate temp xkm file name"); ++ goto err; ++ } ++ + if (asprintf(&buf, + "\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" " +- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"", ++ "-em1 %s -emp %s -eml %s \"%s\"", + xkbbindir, xkbbindirsep, + ((xkbDebugFlags < 2) ? 1 : + ((xkbDebugFlags > 10) ? 10 : (int) xkbDebugFlags)), +- xkbbasedirflag ? xkbbasedirflag : "", xkmfile, ++ xkbbasedirflag ? xkbbasedirflag : "", xkbfile, + PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1, +- xkm_output_dir, keymap) == -1) ++ tmpXkmFile) == -1) + buf = NULL; + + free(xkbbasedirflag); +@@ -164,9 +262,14 @@ RunXkbComp(xkbcomp_buffer_callback callb + if (!buf) { + LogMessage(X_ERROR, + "XKB: Could not invoke xkbcomp: not enough memory\n"); +- return NULL; ++ goto err; + } + ++ /* there's a potential race condition between calling tempnam() ++ and invoking xkbcomp to write the result file (potential temp ++ file name conflicts), but since xkbcomp is a standalone ++ program, we have to live with this */ ++ + #ifndef WIN32 + out = Popen(buf, "w"); + #else +@@ -175,7 +278,10 @@ RunXkbComp(xkbcomp_buffer_callback callb + + if (out != NULL) { + /* Now write to xkbcomp */ +- (*callback)(out, userdata); ++ if (EOF == fputs(xkbKeyMapBuf, out)) { ++ ErrorF("[xkb] Sending keymap to xkbcomp failed\n"); ++ goto err; ++ } + + #ifndef WIN32 + if (Pclose(out) == 0) +@@ -183,16 +289,31 @@ RunXkbComp(xkbcomp_buffer_callback callb + if (fclose(out) == 0 && System(buf) >= 0) + #endif + { ++ /* xkbcomp success */ + if (xkbDebugFlags) + DebugF("[xkb] xkb executes: %s\n", buf); ++ ++ /* if canonicalXkmFileName already exists now, we simply ++ overwrite it, this is OK */ ++ if (rename(tmpXkmFile, canonicalXkmFileName) < 0) { ++ ErrorF("[xkb] Can't rename %s to %s, error: %s\n", ++ tmpXkmFile, canonicalXkmFileName, strerror(errno)); ++ ++ /* in case of error, don't unlink tmpXkmFile, leave i ++ for debugging */ ++ ++ goto err; ++ } ++ + free(buf); ++ free(tmpXkmFile); + #ifdef WIN32 + unlink(tmpname); + #endif +- return xnfstrdup(keymap); ++ return canonicalXkmFileName; + } + else +- LogMessage(X_ERROR, "Error compiling keymap (%s)\n", keymap); ++ LogMessage(X_ERROR, "Error compiling keymap (%s)\n", xkmfile); + #ifdef WIN32 + /* remove the temporary file */ + unlink(tmpname); +@@ -205,6 +326,10 @@ RunXkbComp(xkbcomp_buffer_callback callb + LogMessage(X_ERROR, "Could not open file %s\n", tmpname); + #endif + } ++ ++err: ++ free(canonicalXkmFileName); ++ free(tmpXkmFile); + free(buf); + return NULL; + } +@@ -233,7 +358,8 @@ static Bool + XkbDDXCompileKeymapByNames(XkbDescPtr xkb, + XkbComponentNamesPtr names, + unsigned want, +- unsigned need, char *nameRtrn, int nameRtrnLen) ++ unsigned need, char *nameRtrn, int nameRtrnLen, ++ Bool *is_private_directory) + { + char *keymap; + Bool rc = FALSE; +@@ -244,7 +370,7 @@ XkbDDXCompileKeymapByNames(XkbDescPtr xk + .need = need + }; + +- keymap = RunXkbComp(xkb_write_keymap_for_names_cb, &ctx); ++ keymap = RunXkbComp(xkb_write_keymap_for_names_cb, &ctx, is_private_directory); + + if (keymap) { + if(nameRtrn) +@@ -279,6 +405,7 @@ XkbDDXLoadKeymapFromString(DeviceIntPtr + { + unsigned int have; + char *map_name; ++ Bool is_private_directory; + XkbKeymapString map = { + .keymap = keymap, + .len = keymap_length +@@ -286,62 +413,25 @@ XkbDDXLoadKeymapFromString(DeviceIntPtr + + *xkbRtrn = NULL; + +- map_name = RunXkbComp(xkb_write_keymap_string_cb, &map); ++ map_name = RunXkbComp(xkb_write_keymap_string_cb, &map, &is_private_directory); + if (!map_name) { + LogMessage(X_ERROR, "XKB: Couldn't compile keymap\n"); + return 0; + } + +- have = LoadXKM(want, need, map_name, xkbRtrn); ++ have = LoadXKM(want, need, map_name, xkbRtrn, is_private_directory); + free(map_name); + + return have; + } + +-static FILE * +-XkbDDXOpenConfigFile(const char *mapName, char *fileNameRtrn, int fileNameRtrnLen) +-{ +- char buf[PATH_MAX], xkm_output_dir[PATH_MAX]; +- FILE *file; +- +- buf[0] = '\0'; +- if (mapName != NULL) { +- OutputDirectory(xkm_output_dir, sizeof(xkm_output_dir)); +- if ((XkbBaseDirectory != NULL) && (xkm_output_dir[0] != '/') +-#ifdef WIN32 +- && (!isalpha(xkm_output_dir[0]) || xkm_output_dir[1] != ':') +-#endif +- ) { +- if (snprintf(buf, PATH_MAX, "%s/%s%s.xkm", XkbBaseDirectory, +- xkm_output_dir, mapName) >= PATH_MAX) +- buf[0] = '\0'; +- } +- else { +- if (snprintf(buf, PATH_MAX, "%s%s.xkm", xkm_output_dir, mapName) +- >= PATH_MAX) +- buf[0] = '\0'; +- } +- if (buf[0] != '\0') +- file = fopen(buf, "rb"); +- else +- file = NULL; +- } +- else +- file = NULL; +- if ((fileNameRtrn != NULL) && (fileNameRtrnLen > 0)) { +- strlcpy(fileNameRtrn, buf, fileNameRtrnLen); +- } +- return file; +-} +- + static unsigned +-LoadXKM(unsigned want, unsigned need, const char *keymap, XkbDescPtr *xkbRtrn) ++LoadXKM(unsigned want, unsigned need, const char *fileName, XkbDescPtr *xkbRtrn, Bool is_private_directory) + { + FILE *file; +- char fileName[PATH_MAX]; + unsigned missing; + +- file = XkbDDXOpenConfigFile(keymap, fileName, PATH_MAX); ++ file = fopen(fileName, "rb"); + if (file == NULL) { + LogMessage(X_ERROR, "Couldn't open compiled keymap file %s\n", + fileName); +@@ -359,7 +449,8 @@ LoadXKM(unsigned want, unsigned need, co + (*xkbRtrn)->defined); + } + fclose(file); +- (void) unlink(fileName); ++ if (!is_private_directory) ++ (void) unlink(fileName); + return (need | want) & (~missing); + } + +@@ -371,6 +462,7 @@ XkbDDXLoadKeymapByNames(DeviceIntPtr key + XkbDescPtr *xkbRtrn, char *nameRtrn, int nameRtrnLen) + { + XkbDescPtr xkb; ++ Bool is_private_directory; + + *xkbRtrn = NULL; + if ((keybd == NULL) || (keybd->key == NULL) || +@@ -386,12 +478,13 @@ XkbDDXLoadKeymapByNames(DeviceIntPtr key + return 0; + } + else if (!XkbDDXCompileKeymapByNames(xkb, names, want, need, +- nameRtrn, nameRtrnLen)) { ++ nameRtrn, nameRtrnLen, ++ &is_private_directory)) { + LogMessage(X_ERROR, "XKB: Couldn't compile keymap\n"); + return 0; + } + +- return LoadXKM(want, need, nameRtrn, xkbRtrn); ++ return LoadXKM(want, need, nameRtrn, xkbRtrn, is_private_directory); + } + + Bool --- xorg-server-1.18.4.orig/debian/patches/191-Xorg-add-an-extra-module-path.patch +++ xorg-server-1.18.4/debian/patches/191-Xorg-add-an-extra-module-path.patch @@ -0,0 +1,82 @@ +Description: Patch from Mandriva to allow the use of an extra-modules-dir so that the modules installed in this dir will override the ones in the default directory. + +--- a/configure.ac ++++ b/configure.ac +@@ -464,6 +464,10 @@ AC_ARG_WITH(module-dir, AS_HELP_STR + [Directory where modules are installed (default: $libdir/xorg/modules)]), + [ moduledir="$withval" ], + [ moduledir="${libdir}/xorg/modules" ]) ++AC_ARG_WITH(extra-module-dir,AS_HELP_STRING([--with-extra-module-dir=DIR], ++ [Extra module directory to search for modules before the default one (default: empty)]), ++ [ extra_moduledir="$withval" ], ++ [ extra_moduledir="" ]) + AC_ARG_WITH(log-dir, AS_HELP_STRING([--with-log-dir=DIR], + [Directory where log files are kept (default: $localstatedir/log)]), + [ logdir="$withval" ], +@@ -2077,6 +2081,7 @@ if test "x$XORG" = xyes; then + AC_DEFINE_DIR(XF86CONFIGFILE, XF86CONFIGFILE, [Name of configuration file]) + AC_DEFINE_DIR(__XCONFIGDIR__, XF86CONFIGDIR, [Name of configuration directory]) + AC_DEFINE_DIR(DEFAULT_MODULE_PATH, moduledir, [Default module search path]) ++ AC_DEFINE_DIR(EXTRA_MODULE_PATH, extra_moduledir, [Extra module search path, searched before the default one]) + AC_DEFINE_DIR(DEFAULT_LIBRARY_PATH, libdir, [Default library install path]) + AC_DEFINE_DIR(DEFAULT_LOGDIR, logdir, [Default log location]) + AC_DEFINE_DIR(DEFAULT_LOGPREFIX, LOGPREFIX, [Default logfile prefix]) +--- a/hw/xfree86/common/xf86Config.c ++++ b/hw/xfree86/common/xf86Config.c +@@ -641,11 +641,22 @@ configFiles(XF86ConfFilesPtr fileconf) + + /* ModulePath */ + +- if (fileconf) { +- if (xf86ModPathFrom != X_CMDLINE && fileconf->file_modulepath) { ++ if (xf86ModPathFrom != X_CMDLINE) { ++ if (fileconf && fileconf->file_modulepath) { + xf86ModulePath = fileconf->file_modulepath; + xf86ModPathFrom = X_CONFIG; + } ++ else if (strcmp(xf86ExtraModulePath, "") != 0) { ++ char *newpath = malloc(strlen(xf86ExtraModulePath) ++ + strlen(xf86ModulePath) ++ + 2); ++ ++ strcpy(newpath, xf86ExtraModulePath); ++ strcat(newpath, ","); ++ strcat(newpath, xf86ModulePath); ++ ++ xf86ModulePath = newpath; ++ } + } + + xf86Msg(xf86ModPathFrom, "ModulePath set to \"%s\"\n", xf86ModulePath); +--- a/hw/xfree86/common/xf86Globals.c ++++ b/hw/xfree86/common/xf86Globals.c +@@ -142,6 +142,7 @@ xf86InfoRec xf86Info = { + const char *xf86ConfigFile = NULL; + const char *xf86ConfigDir = NULL; + const char *xf86ModulePath = DEFAULT_MODULE_PATH; ++const char *xf86ExtraModulePath = EXTRA_MODULE_PATH; + MessageType xf86ModPathFrom = X_DEFAULT; + const char *xf86LogFile = DEFAULT_LOGDIR "/" DEFAULT_LOGPREFIX; + MessageType xf86LogFileFrom = X_DEFAULT; +--- a/hw/xfree86/common/xf86Priv.h ++++ b/hw/xfree86/common/xf86Priv.h +@@ -77,6 +77,7 @@ extern _X_EXPORT const char *xf86ServerN + + extern _X_EXPORT xf86InfoRec xf86Info; + extern _X_EXPORT const char *xf86ModulePath; ++extern _X_EXPORT const char *xf86ExtraModulePath; + extern _X_EXPORT MessageType xf86ModPathFrom; + extern _X_EXPORT const char *xf86LogFile; + extern _X_EXPORT MessageType xf86LogFileFrom; +--- a/include/xorg-config.h.in ++++ b/include/xorg-config.h.in +@@ -42,6 +42,9 @@ + /* Path to loadable modules. */ + #undef DEFAULT_MODULE_PATH + ++/* Path to extra loadable modules. */ ++#undef EXTRA_MODULE_PATH ++ + /* Path to installed libraries. */ + #undef DEFAULT_LIBRARY_PATH + --- xorg-server-1.18.4.orig/debian/patches/208_switch_on_release.diff +++ xorg-server-1.18.4/debian/patches/208_switch_on_release.diff @@ -0,0 +1,118 @@ +Description: Perform keyboard layout switches on key-release rather than key-press events. + This solves a very long-standing issue where e.g. ++ fails when ctrl+shift is configured for layout switching. +Author: Bryce Harrington +Bug-Ubuntu: https://launchpad.net/bugs/36812 +Bug-Ubuntu: https://launchpad.net/bugs/711842 +Bug: https://bugs.freedesktop.org/show_bug.cgi?id=865 + +--- a/xkb/xkbActions.c ++++ b/xkb/xkbActions.c +@@ -352,25 +352,86 @@ _XkbFilterLatchState(XkbSrvInfoPtr xkbi, + } + + static int +-_XkbFilterLockState(XkbSrvInfoPtr xkbi, ++xkbSwitchGroupOnRelease(void) ++{ ++ /* TODO: user configuring */ ++ return TRUE; ++} ++ ++static void ++xkbUpdateLockedGroup(XkbSrvInfoPtr xkbi, XkbAction *pAction) ++{ ++ XkbGroupAction ga = pAction->group; ++ ++ if (ga.flags & XkbSA_GroupAbsolute) ++ xkbi->state.locked_group = XkbSAGroup(&ga); ++ else ++ xkbi->state.locked_group += XkbSAGroup(&ga); ++} ++ ++static XkbFilterPtr _XkbNextFreeFilter(XkbSrvInfoPtr xkbi); ++ ++static int ++_XkbFilterLockGroup(XkbSrvInfoPtr xkbi, + XkbFilterPtr filter, unsigned keycode, XkbAction *pAction) + { + if (filter->keycode == 0) /* initial press */ + AccessXCancelRepeatKey(xkbi, keycode); + +- if (pAction && (pAction->type == XkbSA_LockGroup)) { +- if (pAction->group.flags & XkbSA_GroupAbsolute) +- xkbi->state.locked_group = XkbSAGroup(&pAction->group); +- else +- xkbi->state.locked_group += XkbSAGroup(&pAction->group); +- return 1; ++ int sendEvent = 1; ++ ++ if (!xkbSwitchGroupOnRelease()) { ++ xkbUpdateLockedGroup(xkbi, pAction); ++ return sendEvent; + } ++ ++ /* Delay switch till button release */ ++ if (filter->keycode == 0) { /* initial press */ ++ filter->keycode = keycode; ++ filter->active = 1; ++ filter->filterOthers = 0; /* for what? */ ++ filter->filter = _XkbFilterLockGroup; ++ ++ /* filter->priv = 0; */ ++ filter->upAction = *pAction; ++ ++ /* Ok, now we need to simulate the action which would go if this action didn't block it. ++ XkbSA_SetMods is the one: it is to set modifier' flag up. */ ++ { ++ XkbStateRec fake_state = xkbi->state; ++ XkbAction act; ++ ++ fake_state.mods = 0; ++ act = XkbGetKeyAction(xkbi, &fake_state, keycode); ++ ++ /* KLUDGE: XkbSA_SetMods only? */ ++ if (act.type == XkbSA_SetMods) { ++ XkbFilterPtr filter = _XkbNextFreeFilter(xkbi); ++ ++ sendEvent = _XkbFilterSetState(xkbi, filter, keycode, &act); ++ } ++ } ++ } ++ else { ++ /* do nothing if some button else is pressed */ ++ if (!pAction) ++ xkbUpdateLockedGroup(xkbi, &filter->upAction); ++ filter->active = 0; ++ } ++ ++ return sendEvent; ++} ++ ++static int ++_XkbFilterLockMods(XkbSrvInfoPtr xkbi, ++ XkbFilterPtr filter, unsigned keycode, XkbAction *pAction) ++{ + if (filter->keycode == 0) { /* initial press */ + filter->keycode = keycode; + filter->active = 1; + filter->filterOthers = 0; + filter->priv = xkbi->state.locked_mods & pAction->mods.mask; +- filter->filter = _XkbFilterLockState; ++ filter->filter = _XkbFilterLockMods; + filter->upAction = *pAction; + if (!(filter->upAction.mods.flags & XkbSA_LockNoLock)) + xkbi->state.locked_mods |= pAction->mods.mask; +@@ -1250,9 +1311,12 @@ XkbHandleActions(DeviceIntPtr dev, Devic + sendEvent = _XkbFilterLatchState(xkbi, filter, key, &act); + break; + case XkbSA_LockMods: ++ filter = _XkbNextFreeFilter(xkbi); ++ sendEvent = _XkbFilterLockMods(xkbi, filter, key, &act); ++ break; + case XkbSA_LockGroup: + filter = _XkbNextFreeFilter(xkbi); +- sendEvent = _XkbFilterLockState(xkbi, filter, key, &act); ++ sendEvent = _XkbFilterLockGroup(xkbi, filter, key, &act); + break; + case XkbSA_ISOLock: + filter = _XkbNextFreeFilter(xkbi); --- xorg-server-1.18.4.orig/debian/patches/226_fall_back_to_autoconfiguration.patch +++ xorg-server-1.18.4/debian/patches/226_fall_back_to_autoconfiguration.patch @@ -0,0 +1,87 @@ +Description: Fall back to autoconfiguration for graphics drivers in some cases instead of letting X fail when configuration files are available. +Author: Alberto Milone + +Index: xorg-server-1.17.2/hw/xfree86/common/xf86Globals.c +=================================================================== +--- xorg-server-1.17.2.orig/hw/xfree86/common/xf86Globals.c ++++ xorg-server-1.17.2/hw/xfree86/common/xf86Globals.c +@@ -161,6 +161,7 @@ InputDriverPtr *xf86InputDriverList = NU + int xf86NumInputDrivers = 0; + int xf86NumScreens = 0; + int xf86NumGPUScreens = 0; ++Bool xf86AttemptedFallback = FALSE; + + const char *xf86VisualNames[] = { + "StaticGray", +Index: xorg-server-1.17.2/hw/xfree86/common/xf86Init.c +=================================================================== +--- xorg-server-1.17.2.orig/hw/xfree86/common/xf86Init.c ++++ xorg-server-1.17.2/hw/xfree86/common/xf86Init.c +@@ -469,20 +469,34 @@ InitOutput(ScreenInfo * pScreenInfo, int + free(optionlist); + } + ++ Fallback: + /* Load all driver modules specified in the config file */ + /* If there aren't any specified in the config file, autoconfig them */ + /* FIXME: Does not handle multiple active screen sections, but I'm not + * sure if we really want to handle that case*/ + configured_device = xf86ConfigLayout.screens->screen->device; +- if ((!configured_device) || (!configured_device->driver)) { ++ if (xf86AttemptedFallback) { ++ configured_device->driver = NULL; ++ if (!autoConfigDevice(configured_device)) { ++ xf86Msg(X_ERROR, "Auto configuration on fallback failed\n"); ++ return; ++ } ++ } ++ else if ((!configured_device) || (!configured_device->driver)) { + if (!autoConfigDevice(configured_device)) { + xf86Msg(X_ERROR, "Automatic driver configuration failed\n"); + return; + } + } + if ((modulelist = xf86DriverlistFromConfig())) { +- xf86LoadModules(modulelist, NULL); +- free(modulelist); ++ if (!xf86LoadModules(modulelist, NULL) && !xf86AttemptedFallback) { ++ free(modulelist); ++ xf86AttemptedFallback = TRUE; ++ goto Fallback; ++ } ++ else { ++ free(modulelist); ++ } + } + + /* Load all input driver modules specified in the config file. */ +@@ -545,8 +559,15 @@ InitOutput(ScreenInfo * pScreenInfo, int + if (want_hw_access) + xorgHWAccess = xf86EnableIO(); + +- if (xf86BusConfig() == FALSE) +- return; ++ if (xf86BusConfig() == FALSE) { ++ if (!xf86AttemptedFallback) { ++ xf86AttemptedFallback = TRUE; ++ goto Fallback; ++ } ++ else { ++ return; ++ } ++ } + + xf86PostProbe(); + +Index: xorg-server-1.17.2/hw/xfree86/common/xf86Priv.h +=================================================================== +--- xorg-server-1.17.2.orig/hw/xfree86/common/xf86Priv.h ++++ xorg-server-1.17.2/hw/xfree86/common/xf86Priv.h +@@ -89,6 +89,7 @@ extern _X_EXPORT int xf86NumDrivers; + extern _X_EXPORT Bool xf86Resetting; + extern _X_EXPORT Bool xf86Initialising; + extern _X_EXPORT int xf86NumScreens; ++extern _X_EXPORT Bool xf86AttemptedFallback; + extern _X_EXPORT const char *xf86VisualNames[]; + extern _X_EXPORT int xf86Verbose; /* verbosity level */ + extern _X_EXPORT int xf86LogVerbose; /* log file verbosity level */ --- xorg-server-1.18.4.orig/debian/patches/227_null_ptr_midispcur.patch +++ xorg-server-1.18.4/debian/patches/227_null_ptr_midispcur.patch @@ -0,0 +1,18 @@ +Description: Check for NULL pointer before dereferencing pointer from miGetDCDevice. + Fixes crash after connecting a bluetooth keyboard. +Author: Bryce Harrington +Bug-Ubuntu: https://launchpad.net/bugs/930936 + +--- a/mi/midispcur.c ++++ b/mi/midispcur.c +@@ -421,6 +421,10 @@ miDCRestoreUnderCursor(DeviceIntPtr pDev + GCPtr pGC; + + pBuffer = miGetDCDevice(pDev, pScreen); ++ ++ if (!pBuffer) ++ return FALSE; ++ + pSave = pBuffer->pSave; + + pWin = pScreen->root; --- xorg-server-1.18.4.orig/debian/patches/228_autobind_gpu.patch +++ xorg-server-1.18.4/debian/patches/228_autobind_gpu.patch @@ -0,0 +1,106 @@ +From 37d51acb3b6a38af1717bfaa7925043c35bfb447 Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Fri, 17 Aug 2012 09:49:24 +1000 +Subject: [PATCH] autobind GPUs to the screen, (v3) + +this is racy and really not what we want for hotplug going forward, +but until DE support is in GNOME its probably for the best. + +v2: fix if config or slave config is NULL +v3: fix multi useful slaves +DO NOT UPSTREAM. +--- + hw/xfree86/common/xf86Init.c | 12 ++++++++++++ + hw/xfree86/common/xf86platformBus.c | 3 +++ + hw/xfree86/modes/xf86Crtc.c | 32 ++++++++++++++++++++++++++++++++ + 3 files changed, 47 insertions(+), 0 deletions(-) + +--- a/hw/xfree86/common/xf86Init.c ++++ b/hw/xfree86/common/xf86Init.c +@@ -340,6 +340,16 @@ xf86CreateRootWindow(WindowPtr pWin) + return ret; + } + ++extern void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master); ++static void ++xf86AutoConfigOutputDevices(void) ++{ ++ int i; ++ ++ for (i = 0; i < xf86NumGPUScreens; i++) ++ xf86AutoConfigOutputDevice(xf86GPUScreens[i], xf86Screens[0]); ++} ++ + static void + InstallSignalHandlers(void) + { +@@ -950,6 +960,8 @@ InitOutput(ScreenInfo * pScreenInfo, int + for (i = 0; i < xf86NumGPUScreens; i++) + AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); + ++ xf86AutoConfigOutputDevices(); ++ + xf86VGAarbiterWrapFunctions(); + if (sigio_blocked) + OsReleaseSIGIO(); +--- a/hw/xfree86/common/xf86platformBus.c ++++ b/hw/xfree86/common/xf86platformBus.c +@@ -466,9 +466,12 @@ xf86platformProbeDev(DriverPtr drvp) + } + } + ++ free(devList); + return foundScreen; + } + ++extern void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master); ++ + int + xf86platformAddDevice(int index) + { +@@ -540,6 +543,7 @@ xf86platformAddDevice(int index) + } + /* attach unbound to 0 protocol screen */ + AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); ++ xf86AutoConfigOutputDevice(xf86GPUScreens[i], xf86Screens[0]); + + RRResourcesChanged(xf86Screens[0]->pScreen); + RRTellChanged(xf86Screens[0]->pScreen); +--- a/hw/xfree86/modes/xf86Crtc.c ++++ b/hw/xfree86/modes/xf86Crtc.c +@@ -3562,3 +3562,35 @@ xf86DetachAllCrtc(ScrnInfoPtr scrn) + crtc->x = crtc->y = 0; + } + } ++ ++ ++void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master) ++{ ++ RRProviderPtr master_provider; ++ xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(master); ++ xf86CrtcConfigPtr slave_config = XF86_CRTC_CONFIG_PTR(pScrn); ++ Bool unbound = FALSE; ++ ++ if (!config || !slave_config) ++ return; ++ ++ master_provider = config->randr_provider; ++ ++ if ((master->capabilities & RR_Capability_SinkOffload) && ++ pScrn->capabilities & RR_Capability_SourceOffload) { ++ /* source offload */ ++ ++ DetachUnboundGPU(pScrn->pScreen); ++ unbound = TRUE; ++ AttachOffloadGPU(master->pScreen, pScrn->pScreen); ++ slave_config->randr_provider->offload_sink = master_provider; ++ } ++ if ((master->capabilities & RR_Capability_SourceOutput) && ++ pScrn->capabilities & RR_Capability_SinkOutput) { ++ /* sink offload */ ++ if (!unbound) ++ DetachUnboundGPU(pScrn->pScreen); ++ AttachOutputGPU(master->pScreen, pScrn->pScreen); ++ slave_config->randr_provider->output_source = master_provider; ++ } ++} --- xorg-server-1.18.4.orig/debian/patches/232-xf86compatoutput-valgrind.patch +++ xorg-server-1.18.4/debian/patches/232-xf86compatoutput-valgrind.patch @@ -0,0 +1,16 @@ +Description: Silence a valgrind error +Author: Maarten Lankhorst + +Index: xorg-server-1.17.2/hw/xfree86/modes/xf86Crtc.h +=================================================================== +--- xorg-server-1.17.2.orig/hw/xfree86/modes/xf86Crtc.h ++++ xorg-server-1.17.2/hw/xfree86/modes/xf86Crtc.h +@@ -731,6 +731,8 @@ static _X_INLINE xf86OutputPtr + xf86CompatOutput(ScrnInfoPtr pScrn) + { + xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); ++ if (config->compat_output < 0) ++ return NULL; + + if (config->compat_output < 0) + return NULL; --- xorg-server-1.18.4.orig/debian/patches/config-add-no-removal.patch +++ xorg-server-1.18.4/debian/patches/config-add-no-removal.patch @@ -0,0 +1,33 @@ +Description: Do not call device_remove when a device is hotplugged. +Author: Maarten Lankhorst +Bug-Ubuntu: https://launchpad.net/bugs/1157614 + +Index: xorg-server-1.17.2/config/udev.c +=================================================================== +--- xorg-server-1.17.2.orig/config/udev.c ++++ xorg-server-1.17.2/config/udev.c +@@ -347,10 +347,9 @@ wakeup_handler(void *data, int err, void + return; + action = udev_device_get_action(udev_device); + if (action) { +- if (!strcmp(action, "add")) { +- device_removed(udev_device); ++ if (!strcmp(action, "add")) + device_added(udev_device); +- } else if (!strcmp(action, "change")) { ++ else if (!strcmp(action, "change")) { + /* ignore change for the drm devices */ + if (strcmp(udev_device_get_subsystem(udev_device), "drm")) { + device_removed(udev_device); +Index: xorg-server-1.17.2/hw/xfree86/os-support/linux/lnx_platform.c +=================================================================== +--- xorg-server-1.17.2.orig/hw/xfree86/os-support/linux/lnx_platform.c ++++ xorg-server-1.17.2/hw/xfree86/os-support/linux/lnx_platform.c +@@ -177,6 +177,7 @@ xf86PlatformDeviceProbe(struct OdevAttri + return; + + out_free: ++ LogMessage(X_INFO, "config/udev: Ignoring already known drm device (%s)\n", path); + config_odev_free_attributes(attribs); + } + --- xorg-server-1.18.4.orig/debian/patches/disable-rotation-transform-gpuscreens.patch +++ xorg-server-1.18.4/debian/patches/disable-rotation-transform-gpuscreens.patch @@ -0,0 +1,28 @@ +Description: Disable support for rotations and transforms on gpu screens. +Author: Maarten Lankhorst +Bug-Ubuntu: https://launchpad.net/bugs/1386620 +Bug-Ubuntu: https://launchpad.net/bugs/1308515 +Bug-Ubuntu: https://launchpad.net/bugs/1489696 + +--- a/hw/xfree86/modes/xf86RandR12.c ++++ b/hw/xfree86/modes/xf86RandR12.c +@@ -922,6 +922,9 @@ xf86RandR12SetRotations(ScreenPtr pScree + if (xf86RandR12Key == NULL) + return; + ++ if (pScreen->isGPU) ++ rotations = RR_Rotate_0; ++ + randrp = XF86RANDRINFO(pScreen); + #if RANDR_12_INTERFACE + for (c = 0; c < config->num_crtc; c++) { +@@ -942,6 +945,9 @@ xf86RandR12SetTransformSupport(ScreenPtr + xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); + #endif + ++ if (pScreen->isGPU) ++ transforms = FALSE; ++ + if (xf86RandR12Key == NULL) + return; + --- xorg-server-1.18.4.orig/debian/patches/fix-detach-gpu.patch +++ xorg-server-1.18.4/debian/patches/fix-detach-gpu.patch @@ -0,0 +1,93 @@ +Description: Fix crash in RRCrtcDetachScanoutPixmap. +Author: Maarten Lankhorst +Bug-Ubuntu: https://launchpad.net/bugs/1280743 + +--- a/hw/xfree86/modes/xf86RandR12.c ++++ b/hw/xfree86/modes/xf86RandR12.c +@@ -1845,7 +1845,8 @@ xf86RandR14ProviderSetOutputSource(Scree + ScreenPtr cmScreen = pScreen->current_master; + + xf86DetachOutputGPU(pScreen); +- AttachUnboundGPU(cmScreen, pScreen); ++ if (!pScreen->current_master) ++ AttachUnboundGPU(cmScreen, pScreen); + } + provider->output_source = NULL; + return TRUE; +@@ -1856,7 +1857,8 @@ xf86RandR14ProviderSetOutputSource(Scree + + SetRootClip(source_provider->pScreen, FALSE); + +- DetachUnboundGPU(pScreen); ++ if (!pScreen->current_master) ++ DetachUnboundGPU(pScreen); + AttachOutputGPU(source_provider->pScreen, pScreen); + + provider->output_source = source_provider; +@@ -1873,7 +1875,8 @@ xf86RandR14ProviderSetOffloadSink(Screen + if (provider->offload_sink) { + ScreenPtr cmScreen = pScreen->current_master; + xf86DetachOutputGPU(pScreen); +- AttachUnboundGPU(cmScreen, pScreen); ++ if (!pScreen->current_master) ++ AttachUnboundGPU(cmScreen, pScreen); + } + + provider->offload_sink = NULL; +@@ -1883,7 +1886,8 @@ xf86RandR14ProviderSetOffloadSink(Screen + if (provider->offload_sink == sink_provider) + return TRUE; + +- DetachUnboundGPU(pScreen); ++ if (!pScreen->current_master) ++ DetachUnboundGPU(pScreen); + AttachOffloadGPU(sink_provider->pScreen, pScreen); + + provider->offload_sink = sink_provider; +@@ -1962,12 +1966,14 @@ xf86RandR14ProviderDestroy(ScreenPtr scr + config->randr_provider->offload_sink = NULL; + RRSetChanged(screen); + } +- else if (config->randr_provider->output_source) { ++ ++ if (config->randr_provider->output_source) { + xf86DetachOutputGPU(screen); + config->randr_provider->output_source = NULL; + RRSetChanged(screen); + } +- else if (screen->current_master) ++ ++ if (screen->current_master) + DetachUnboundGPU(screen); + } + config->randr_provider = NULL; +--- a/dix/dispatch.c ++++ b/dix/dispatch.c +@@ -3952,6 +3952,8 @@ AttachUnboundGPU(ScreenPtr pScreen, Scre + assert(new->isGPU); + assert(!new->current_master); + xorg_list_add(&new->unattached_head, &pScreen->unattached_list); ++ xorg_list_init(&new->offload_head); ++ xorg_list_init(&new->output_head); + new->current_master = pScreen; + } + +@@ -3976,7 +3978,8 @@ DetachOutputGPU(ScreenPtr slave) + { + assert(slave->isGPU); + xorg_list_del(&slave->output_head); +- slave->current_master = NULL; ++ if (xorg_list_is_empty(&slave->offload_head)) ++ slave->current_master = NULL; + } + + void +@@ -3992,6 +3995,7 @@ DetachOffloadGPU(ScreenPtr slave) + { + assert(slave->isGPU); + xorg_list_del(&slave->offload_head); +- slave->current_master = NULL; ++ if (xorg_list_is_empty(&slave->output_head)) ++ slave->current_master = NULL; + } + --- xorg-server-1.18.4.orig/debian/patches/modesetting-unifdef-slave-support.diff +++ xorg-server-1.18.4/debian/patches/modesetting-unifdef-slave-support.diff @@ -0,0 +1,27 @@ +Subject: [PATCH xserver] modesetting: unifdef MODESETTING_OUTPUT_SLAVE_SUPPORT +From: Nikhil Mahale +Date: 22.10.2016 15:10 + +Commit c7e8d4a6ee9542f56cd241cf7a960fb8223a6b22 had already +unifdef MODESETTING_OUTPUT_SLAVE_SUPPORT but commit +9257b1252da9092ddc676fec9aabe2b33dfad272 didn't +notice that. + +Signed-off-by: Nikhil Mahale +--- + hw/xfree86/drivers/modesetting/drmmode_display.c | 2 -- + 1 file changed, 2 deletions(-) + +--- a/hw/xfree86/drivers/modesetting/drmmode_display.c ++++ b/hw/xfree86/drivers/modesetting/drmmode_display.c +@@ -1401,10 +1401,8 @@ drmmode_create_name(ScrnInfoPtr pScrn, d + fallback: + if (koutput->connector_type >= MS_ARRAY_SIZE(output_names)) + snprintf(name, 32, "Unknown%d-%d", koutput->connector_type, koutput->connector_type_id); +-#ifdef MODESETTING_OUTPUT_SLAVE_SUPPORT + else if (pScrn->is_gpu) + snprintf(name, 32, "%s-%d-%d", output_names[koutput->connector_type], pScrn->scrnIndex - GPU_SCREEN_OFFSET + 1, koutput->connector_type_id); +-#endif + else + snprintf(name, 32, "%s-%d", output_names[koutput->connector_type], koutput->connector_type_id); + } --- xorg-server-1.18.4.orig/debian/patches/no-nv.patch +++ xorg-server-1.18.4/debian/patches/no-nv.patch @@ -0,0 +1,22 @@ +commit b770266fa9c3fab5374bdf109676e0b129ac4546 +Author: Bryce Harrington +Date: Wed Apr 3 13:36:20 2013 -0700 + + Don't bother probing -nv on linux. + + For linux this driver is long obsolete now. It may have some relevance + on non-linux systems. + +--- a/hw/xfree86/common/xf86pciBus.c ++++ b/hw/xfree86/common/xf86pciBus.c +@@ -1193,8 +1193,9 @@ xf86VideoPtrToDriverList(struct pci_devi + driverList[idx++] = "nvidia"; + #ifdef __linux__ + driverList[idx++] = "nouveau"; +-#endif ++#else + driverList[idx++] = "nv"; ++#endif + break; + } + case 0x1106: --- xorg-server-1.18.4.orig/debian/patches/randr-adjust-masters-last-set-time.diff +++ xorg-server-1.18.4/debian/patches/randr-adjust-masters-last-set-time.diff @@ -0,0 +1,39 @@ +Subject: [PATCH xserver] randr: Adjust master's last set time with slaves +From: Nikhil Mahale +Date: 20.05.2016 08:01 +To: +CC: Nikhil Mahale + +In prime configurations master's last set time may not be latest +and greatest, adjust it with slaves last set time, pick up greatest +one. Otherwise xserver may end with events which has +lastSetTime < lastConfigTime even if that's not +the case and confuse xrandr client. + +Signed-off-by: Nikhil Mahale +--- + randr/randr.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/randr/randr.c b/randr/randr.c +index 3aabb19..c07def1 100644 +--- a/randr/randr.c ++++ b/randr/randr.c +@@ -584,6 +585,15 @@ RRTellChanged(ScreenPtr pScreen) + mastersp = pScrPriv; + } + ++ xorg_list_for_each_entry(iter, &master->output_slave_list, output_head) { ++ pSlaveScrPriv = rrGetScrPriv(iter); ++ ++ if (CompareTimeStamps(mastersp->lastSetTime, ++ pSlaveScrPriv->lastSetTime) == EARLIER) { ++ mastersp->lastSetTime = pSlaveScrPriv->lastSetTime; ++ } ++ } ++ + if (mastersp->changed) { + UpdateCurrentTimeIf(); + if (mastersp->configChanged) { +-- 2.8.2 ----------------------------------------------------------------------------------- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. ----------------------------------------------------------------------------------- _______________________________________________ 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 + --- xorg-server-1.18.4.orig/debian/patches/randr-do-not-check-the-screen-size.diff +++ xorg-server-1.18.4/debian/patches/randr-do-not-check-the-screen-size.diff @@ -0,0 +1,87 @@ +Subject: [PATCH xserver] randr: Do not check the screen size bound for gpu screens +From: Nikhil Mahale +Date: 20.05.2016 08:00 +To: +CC: Nikhil Mahale + +For gpu screen, CrtcSet set/adjust the master screen size along +mode in following callstack - + + ProcRRSetCrtcConfig() + | + -> RRCrtcSet() + | + -> rrCheckPixmapBounding() + | + -> pScrPriv->rrScreenSetSize() + +Checking screen size bound for gpus screen cause some configurations +to fails, e.g + + $ xrandr --output eDP --mode 1920x1080 --pos 0x0 --output HDMI \ + --mode 2560x1440 --pos 0x0 + + Here xrandr utility first sets screen size to 2560x1440 which + gets resized to 1920x1080 on RRSetCrtcConfig request for eDP, + and then RRSetCrtcConfig request for HDMI fails because + of failure of screen bound check. + +Signed-off-by: Nikhil Mahale +--- + randr/rrcrtc.c | 19 ++++++------------- + 1 file changed, 6 insertions(+), 13 deletions(-) + +diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c +index 566a3db..82db9a8 100644 +--- a/randr/rrcrtc.c ++++ b/randr/rrcrtc.c +@@ -1176,27 +1176,20 @@ ProcRRSetCrtcConfig(ClientPtr client) + + #ifdef RANDR_12_INTERFACE + /* ++ * For gpu screen, CrtcSet set/adjust the master screen size along ++ * with mode. ++ * + * Check screen size bounds if the DDX provides a 1.2 interface + * for setting screen size. Else, assume the CrtcSet sets + * the size along with the mode. If the driver supports transforms, + * then it must allow crtcs to display a subset of the screen, so + * only do this check for drivers without transform support. + */ +- if (pScrPriv->rrScreenSetSize && !crtc->transforms) { ++ if (!pScreen->isGPU && pScrPriv->rrScreenSetSize && !crtc->transforms) { + int source_width; + int source_height; + PictTransform transform; + struct pixman_f_transform f_transform, f_inverse; +- int width, height; +- +- if (pScreen->isGPU) { +- width = pScreen->current_master->width; +- height = pScreen->current_master->height; +- } +- else { +- width = pScreen->width; +- height = pScreen->height; +- } + + RRTransformCompute(stuff->x, stuff->y, + mode->mode.width, mode->mode.height, +@@ -1206,13 +1199,13 @@ ProcRRSetCrtcConfig(ClientPtr client) + + RRModeGetScanoutSize(mode, &transform, &source_width, + &source_height); +- if (stuff->x + source_width > width) { ++ if (stuff->x + source_width > pScreen->width) { + client->errorValue = stuff->x; + free(outputs); + return BadValue; + } + +- if (stuff->y + source_height > height) { ++ if (stuff->y + source_height > pScreen->height) { + client->errorValue = stuff->y; + free(outputs); + return BadValue; +-- 2.8.2 ----------------------------------------------------------------------------------- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. ----------------------------------------------------------------------------------- _______________________________________________ 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 + --- xorg-server-1.18.4.orig/debian/patches/series +++ xorg-server-1.18.4/debian/patches/series @@ -0,0 +1,55 @@ +## Patches with a number < 100 are applied in debian. +## Ubuntu patches start with 100. +001_fedora_extramodes.patch +02_kbsd-input-devd.diff +03_static-nettle.diff +05_Revert-Unload-submodules.diff +06_use-intel-only-on-pre-gen4.diff + + + + +## Ubuntu patches, not upstreamable +105_nvidia_autodetect.patch +168_glibc_trace_to_stderr.patch +188_default_primary_to_first_busid.patch +#190_cache-xkbcomp_output_for_fast_start_up.patch +191-Xorg-add-an-extra-module-path.patch +226_fall_back_to_autoconfiguration.patch + +## send upstream +232-xf86compatoutput-valgrind.patch +xfree86-no-xv-for-gpuscreens.patch +no-nv.patch + +## waiting for review by upstream +111_armel-drv-fallbacks.patch +122_xext_fix_card32_overflow_in_xauth.patch +# https://bugs.freedesktop.org/show_bug.cgi?id=27134 +# http://lists.x.org/archives/xorg-devel/2010-April/007777.html +# Resent to mailing list, Feb 2013 +208_switch_on_release.diff +# https://bugs.freedesktop.org/show_bug.cgi?id=865 +# - Violates XKB spec: Section 6.3, SA_LockGroup +# http://lists.freedesktop.org/archives/xorg-devel/2013-January/035046.html +# - Different implementation proposed on fdo mailing list +227_null_ptr_midispcur.patch +# https://bugs.freedesktop.org/show_bug.cgi?id=24181 +# Probably is just papering over issue; needs further analysis + +## upstream patches + +# hybrid graphics fixes +228_autobind_gpu.patch +xf86-inactive-gpuscreen.patch +config-add-no-removal.patch +xf86-ignore-conflicting-rr-caps.patch +fix-detach-gpu.patch +disable-rotation-transform-gpuscreens.patch + +xmir.patch +xmir-desktop-file-hint-flag.patch +xi2-resize-touch.patch +randr-adjust-masters-last-set-time.diff +randr-do-not-check-the-screen-size.diff +modesetting-unifdef-slave-support.diff --- xorg-server-1.18.4.orig/debian/patches/xf86-ignore-conflicting-rr-caps.patch +++ xorg-server-1.18.4/debian/patches/xf86-ignore-conflicting-rr-caps.patch @@ -0,0 +1,24 @@ +Description: Only set RR caps that are appropriate to main/gpu screen. +Author: Maarten Lankhorst +Bug-Ubuntu: https://launchpad.net/bugs/1277014 + +--- a/hw/xfree86/modes/xf86RandR12.c ++++ b/hw/xfree86/modes/xf86RandR12.c +@@ -1548,10 +1548,16 @@ xf86RandR12CreateObjects12(ScreenPtr pSc + } + + if (config->name) { ++ uint32_t caps = pScrn->capabilities; + config->randr_provider = RRProviderCreate(pScreen, config->name, + strlen(config->name)); + +- RRProviderSetCapabilities(config->randr_provider, pScrn->capabilities); ++ if (!pScreen->isGPU) ++ caps &= RR_Capability_SinkOffload | RR_Capability_SourceOutput; ++ else ++ caps &= RR_Capability_SourceOffload | RR_Capability_SinkOutput; ++ ++ RRProviderSetCapabilities(config->randr_provider, caps); + } + + return TRUE; --- xorg-server-1.18.4.orig/debian/patches/xf86-inactive-gpuscreen.patch +++ xorg-server-1.18.4/debian/patches/xf86-inactive-gpuscreen.patch @@ -0,0 +1,29 @@ +Description: Fix nvidia regression +Author: Maarten Lankhorst + +Index: xorg-server-1.17.2/hw/xfree86/common/xf86platformBus.c +=================================================================== +--- xorg-server-1.17.2.orig/hw/xfree86/common/xf86platformBus.c ++++ xorg-server-1.17.2/hw/xfree86/common/xf86platformBus.c +@@ -424,7 +424,7 @@ xf86platformProbeDev(DriverPtr drvp) + Bool foundScreen = FALSE; + GDevPtr *devList; + const unsigned numDevs = xf86MatchDevice(drvp->driverName, &devList); +- int i, j; ++ int i, j, flags; + + /* find the main device or any device specificed in xorg.conf */ + for (i = 0; i < numDevs; i++) { +@@ -450,7 +450,11 @@ xf86platformProbeDev(DriverPtr drvp) + if (j == xf86_num_platform_devices) + continue; + +- foundScreen = probeSingleDevice(&xf86_platform_devices[j], drvp, devList[i], 0); ++ flags = 0; ++ if (!devList[i]->active) ++ flags |= PLATFORM_PROBE_GPU_SCREEN; ++ ++ foundScreen = probeSingleDevice(&xf86_platform_devices[j], drvp, devList[i], flags); + if (!foundScreen) + continue; + } --- xorg-server-1.18.4.orig/debian/patches/xfree86-no-xv-for-gpuscreens.patch +++ xorg-server-1.18.4/debian/patches/xfree86-no-xv-for-gpuscreens.patch @@ -0,0 +1,36 @@ +Description: Do not bother registering xv/xvmc on gpu screens. +Author: Maarten Lankhorst +Bug-Ubuntu: https://launchpad.net/bugs/1079096 + +--- a/hw/xfree86/common/xf86xv.c ++++ b/hw/xfree86/common/xf86xv.c +@@ -230,7 +230,7 @@ xf86XVScreenInit(ScreenPtr pScreen, XF86 + ScrnInfoPtr pScrn; + XF86XVScreenPtr ScreenPriv; + +- if (num <= 0 || noXvExtension) ++ if (num <= 0 || noXvExtension || pScreen->isGPU) + return FALSE; + + if (Success != XvScreenInit(pScreen)) +--- a/hw/xfree86/common/xf86xvmc.c ++++ b/hw/xfree86/common/xf86xvmc.c +@@ -148,11 +148,15 @@ xf86XvMCScreenInit(ScreenPtr pScreen, + { + XvMCAdaptorPtr pAdapt; + xf86XvMCScreenPtr pScreenPriv; +- XvScreenPtr pxvs = (XvScreenPtr) dixLookupPrivate(&pScreen->devPrivates, +- XF86XvScreenKey); ++ XvScreenPtr pxvs; + int i, j; + +- if (noXvExtension) ++ if (noXvExtension || pScreen->isGPU || !XF86XvScreenKey) ++ return FALSE; ++ ++ pxvs = (XvScreenPtr) dixLookupPrivate(&pScreen->devPrivates, ++ XF86XvScreenKey); ++ if (!pxvs) + return FALSE; + + if (!(pAdapt = xallocarray(num_adaptors, sizeof(XvMCAdaptorRec)))) --- xorg-server-1.18.4.orig/debian/patches/xi2-resize-touch.patch +++ xorg-server-1.18.4/debian/patches/xi2-resize-touch.patch @@ -0,0 +1,33 @@ +Description: Resize touch event history if the array is filled up. +Author: Maarten Lankhorst + +--- a/dix/touch.c ++++ b/dix/touch.c +@@ -460,11 +460,25 @@ TouchEventHistoryPush(TouchPointInfoPtr + if (ev->flags & (TOUCH_CLIENT_ID | TOUCH_REPLAYING)) + return; + ++ if (ti->history_elements == ti->history_size - 1) { ++ DeviceEvent *hist = NULL; ++ size_t sz = ti->history_size * 2; ++ ++ if (sz < 10000) { ++ hist = realloc(ti->history, sz * sizeof(*hist)); ++ ++ if (hist) { ++ ti->history = hist; ++ ti->history_size = sz; ++ memset(&hist[sz/2], 0, sizeof(*hist)*sz/2); ++ } ++ } ++ } ++ + ti->history[ti->history_elements++] = *ev; +- /* FIXME: proper overflow fixes */ + if (ti->history_elements > ti->history_size - 1) { + ti->history_elements = ti->history_size - 1; +- DebugF("source device %d: history size %zu overflowing for touch %u\n", ++ ErrorF("source device %d: history size %zu overflowing for touch %u\n", + ti->sourceid, ti->history_size, ti->client_id); + } + } --- xorg-server-1.18.4.orig/debian/patches/xmir-desktop-file-hint-flag.patch +++ xorg-server-1.18.4/debian/patches/xmir-desktop-file-hint-flag.patch @@ -0,0 +1,27 @@ +From de9e6e1d66680e717471df2c4032e590fd1b9ae0 Mon Sep 17 00:00:00 2001 +From: Robert Ancell +Date: Fri, 29 Apr 2016 14:58:28 +0200 +Subject: [PATCH xserver 2/3] xmir: Ignore --desktop_file_hint flag required by + Unity8 to decide which application is starting + +--- + hw/xmir/xmir.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/hw/xmir/xmir.c b/hw/xmir/xmir.c +index 5526958..ea85f1a 100644 +--- a/hw/xmir/xmir.c ++++ b/hw/xmir/xmir.c +@@ -172,6 +172,9 @@ ddxProcessArgument(int argc, char *argv[], int i) + } else if (!strcmp(argv[i], "-novtswitch") || + !strncmp(argv[i], "vt", 2)) { + return 1; ++ /* Bypass unity8 "security" */ ++ } else if (!strncmp(argv[i], "--desktop_file_hint=", strlen("--desktop_file_hint="))) { ++ return 1; + } else if (!strcmp(argv[i], "-fd")) { + if (!seen_shared) + NoListenAll = 1; +-- +2.7.4 + --- xorg-server-1.18.4.orig/debian/patches/xmir.patch +++ xorg-server-1.18.4/debian/patches/xmir.patch @@ -0,0 +1,8172 @@ +From 8467ede06b3b40fae1d362d73cfa313737e0defc Mon Sep 17 00:00:00 2001 +From: Robert Ancell +Date: Fri, 29 Apr 2016 14:57:53 +0200 +Subject: [PATCH xserver 1/3] XMir DDX + +Contributions from: + Maarten Lankhorst + Christopher James Halse Rogers + Robert Ancell + Andreas Pokorny + Daniel van Vugt + Chris Townsend +--- + configure.ac | 25 + + hw/Makefile.am | 9 +- + hw/xmir/.gitignore | 1 + + hw/xmir/Makefile.am | 61 ++ + hw/xmir/dri2/Makefile.am | 14 + + hw/xmir/dri2/dri2.c | 1398 ++++++++++++++++++++++++++++++++++ + hw/xmir/dri2/dri2.h | 364 +++++++++ + hw/xmir/dri2/dri2ext.c | 683 +++++++++++++++++ + hw/xmir/dri2/dri2int.h | 26 + + hw/xmir/xmir-cursor.c | 210 ++++++ + hw/xmir/xmir-cvt.c | 304 ++++++++ + hw/xmir/xmir-dri2.c | 551 ++++++++++++++ + hw/xmir/xmir-glamor.c | 1164 +++++++++++++++++++++++++++++ + hw/xmir/xmir-input.c | 611 +++++++++++++++ + hw/xmir/xmir-output.c | 476 ++++++++++++ + hw/xmir/xmir-thread-proxy.c | 115 +++ + hw/xmir/xmir.c | 1729 +++++++++++++++++++++++++++++++++++++++++++ + hw/xmir/xmir.h | 232 ++++++ + 18 files changed, 7971 insertions(+), 2 deletions(-) + create mode 100644 hw/xmir/.gitignore + create mode 100644 hw/xmir/Makefile.am + create mode 100644 hw/xmir/dri2/Makefile.am + create mode 100644 hw/xmir/dri2/dri2.c + create mode 100644 hw/xmir/dri2/dri2.h + create mode 100644 hw/xmir/dri2/dri2ext.c + create mode 100644 hw/xmir/dri2/dri2int.h + create mode 100644 hw/xmir/xmir-cursor.c + create mode 100644 hw/xmir/xmir-cvt.c + create mode 100644 hw/xmir/xmir-dri2.c + create mode 100644 hw/xmir/xmir-glamor.c + create mode 100644 hw/xmir/xmir-input.c + create mode 100644 hw/xmir/xmir-output.c + create mode 100644 hw/xmir/xmir-thread-proxy.c + create mode 100644 hw/xmir/xmir.c + create mode 100644 hw/xmir/xmir.h + +diff --git a/configure.ac b/configure.ac +index 868e859..dac8887 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -638,6 +638,7 @@ AC_ARG_ENABLE(xvfb, AS_HELP_STRING([--enable-xvfb], [Build Xvfb server + AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest server (default: auto)]), [XNEST=$enableval], [XNEST=auto]) + AC_ARG_ENABLE(xquartz, AS_HELP_STRING([--enable-xquartz], [Build Xquartz server for OS-X (default: auto)]), [XQUARTZ=$enableval], [XQUARTZ=auto]) + AC_ARG_ENABLE(xwayland, AS_HELP_STRING([--enable-xwayland], [Build Xwayland server (default: auto)]), [XWAYLAND=$enableval], [XWAYLAND=auto]) ++AC_ARG_ENABLE(xmir, AS_HELP_STRING([--enable-xmir], [Build Xmir server (default: auto)]), [XMIR=$enableval], [XMIR=auto]) + AC_ARG_ENABLE(standalone-xpbproxy, AS_HELP_STRING([--enable-standalone-xpbproxy], [Build a standalone xpbproxy (in addition to the one integrated into Xquartz as a separate thread) (default: no)]), [STANDALONE_XPBPROXY=$enableval], [STANDALONE_XPBPROXY=no]) + AC_ARG_ENABLE(xwin, AS_HELP_STRING([--enable-xwin], [Build XWin server (default: auto)]), [XWIN=$enableval], [XWIN=auto]) + AC_ARG_ENABLE(glamor, AS_HELP_STRING([--enable-glamor], [Build glamor dix module (default: no)]), [GLAMOR=$enableval], [GLAMOR=no]) +@@ -756,6 +757,7 @@ case $host_os in + XVFB=no + XNEST=no + XWAYLAND=no ++ XMIR=no + + COMPOSITE=no + DGA=no +@@ -2492,6 +2494,27 @@ if test "x$XWAYLAND" = xyes; then + [${WAYLAND_PREFIX}/bin$PATH_SEPARATOR$PATH]) + fi + ++dnl Xmir DDX ++ ++PKG_CHECK_MODULES(XMIRMODULES, [mirclient >= 0.13.1 mir-client-platform-mesa libdrm epoxy], [have_xmir=yes], [have_xmir=no]) ++AC_MSG_CHECKING([whether to build Xmir DDX]) ++if test "x$XMIR" = xauto; then ++ XMIR="$have_xmir" ++fi ++AC_MSG_RESULT([$XMIR]) ++AM_CONDITIONAL(XMIR, [test "x$XMIR" = xyes]) ++ ++if test "x$XMIR" = xyes; then ++ if test "x$have_xmir" = xno; then ++ AC_MSG_ERROR([Xmir build explicitly requested, but required modules not found.]) ++ fi ++ ++ XMIR_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB $DIX_LIB $OS_LIB" ++ XMIR_SYS_LIBS="$XMIRMODULES_LIBS $GLX_SYS_LIBS" ++ AC_SUBST([XMIR_LIBS]) ++ AC_SUBST([XMIR_SYS_LIBS]) ++fi ++ + + dnl and the rest of these are generic, so they're in config.h + dnl +@@ -2640,6 +2663,8 @@ hw/kdrive/fbdev/Makefile + hw/kdrive/linux/Makefile + hw/kdrive/src/Makefile + hw/xwayland/Makefile ++hw/xmir/Makefile ++hw/xmir/dri2/Makefile + test/Makefile + test/xi1/Makefile + test/xi2/Makefile +diff --git a/hw/Makefile.am b/hw/Makefile.am +index 19895dc..b7b958c 100644 +--- a/hw/Makefile.am ++++ b/hw/Makefile.am +@@ -30,6 +30,10 @@ if XWAYLAND + XWAYLAND_SUBDIRS = xwayland + endif + ++if XMIR ++XMIR_SUBDIRS = xmir ++endif ++ + SUBDIRS = \ + $(XORG_SUBDIRS) \ + $(XWIN_SUBDIRS) \ +@@ -38,9 +42,10 @@ SUBDIRS = \ + $(DMX_SUBDIRS) \ + $(KDRIVE_SUBDIRS) \ + $(XQUARTZ_SUBDIRS) \ +- $(XWAYLAND_SUBDIRS) ++ $(XWAYLAND_SUBDIRS) \ ++ $(XMIR_SUBDIRS) + +-DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xwayland ++DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xwayland xmir + + relink: + $(AM_V_at)for i in $(SUBDIRS) ; do $(MAKE) -C $$i relink || exit 1 ; done +diff --git a/hw/xmir/.gitignore b/hw/xmir/.gitignore +new file mode 100644 +index 0000000..b6a16d4 +--- /dev/null ++++ b/hw/xmir/.gitignore +@@ -0,0 +1 @@ ++Xmir +diff --git a/hw/xmir/Makefile.am b/hw/xmir/Makefile.am +new file mode 100644 +index 0000000..be5225e +--- /dev/null ++++ b/hw/xmir/Makefile.am +@@ -0,0 +1,61 @@ ++bin_PROGRAMS = Xmir ++ ++if DRI2 ++SUBDIRS = dri2 ++endif ++ ++Xmir_CFLAGS = \ ++ -I$(top_srcdir)/glamor \ ++ -I$(srcdir)/dri2 \ ++ -I$(top_srcdir)/glx \ ++ -I$(top_srcdir)/hw/xfree86/common \ ++ -DHAVE_DIX_CONFIG_H \ ++ $(XMIRMODULES_CFLAGS) \ ++ $(DIX_CFLAGS) \ ++ $(GLAMOR_CFLAGS) \ ++ $(GBM_CFLAGS) ++ ++Xmir_SOURCES = \ ++ xmir.c \ ++ xmir-cursor.c \ ++ xmir-input.c \ ++ xmir-output.c \ ++ xmir-cvt.c \ ++ xmir-thread-proxy.c \ ++ xmir.h \ ++ $(top_srcdir)/Xi/stubs.c \ ++ $(top_srcdir)/mi/miinitext.c ++ ++Xmir_LDADD = \ ++ $(glamor_lib) \ ++ $(aiglx_lib) \ ++ $(XMIR_LIBS) \ ++ $(XMIR_SYS_LIBS) \ ++ $(XSERVER_SYS_LIBS) ++Xmir_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG) ++ ++if GLAMOR_EGL ++Xmir_SOURCES += xmir-glamor.c ++ ++glamor_lib = $(top_builddir)/glamor/libglamor.la ++ ++if DRI2 ++Xmir_SOURCES += xmir-dri2.c ++endif ++ ++Xmir_LDADD += $(GLAMOR_LIBS) $(GBM_LIBS) -lEGL -lGL ++endif ++ ++if DRI2 ++Xmir_LDADD += dri2/libdri2.la ++endif ++ ++if AIGLX_DRI_LOADER ++aiglx_lib = $(top_builddir)/glx/libglxdri.la ++if NO_UNDEFINED ++aiglx_lib += $(LIBDRM_LIBS) $(PIXMAN_LIBS) ++endif ++endif ++ ++relink: ++ $(AM_V_at)rm -f Xmir$(EXEEXT) && $(MAKE) Xmir$(EXEEXT) +diff --git a/hw/xmir/dri2/Makefile.am b/hw/xmir/dri2/Makefile.am +new file mode 100644 +index 0000000..696240c +--- /dev/null ++++ b/hw/xmir/dri2/Makefile.am +@@ -0,0 +1,14 @@ ++noinst_LTLIBRARIES = libdri2.la ++ ++AM_CFLAGS = \ ++ -DHAVE_DIX_CONFIG_H \ ++ -I$(top_srcdir)/hw/xmir \ ++ $(DIX_CFLAGS) \ ++ $(XMIRMODULES_CFLAGS) ++ ++libdri2_la_SOURCES = \ ++ dri2.c \ ++ dri2.h \ ++ dri2ext.c \ ++ dri2int.h ++ +diff --git a/hw/xmir/dri2/dri2.c b/hw/xmir/dri2/dri2.c +new file mode 100644 +index 0000000..6aa19ba +--- /dev/null ++++ b/hw/xmir/dri2/dri2.c +@@ -0,0 +1,1398 @@ ++/* ++ * Copyright © 2007, 2008 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Soft- ++ * ware"), to deal in the Software without restriction, including without ++ * limitation the rights to use, copy, modify, merge, publish, distribute, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, provided that the above copyright ++ * notice(s) and this permission notice appear in all copies of the Soft- ++ * ware and that both the above copyright notice(s) and this permission ++ * notice appear in supporting documentation. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- ++ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY ++ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN ++ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE- ++ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR- ++ * MANCE OF THIS SOFTWARE. ++ * ++ * Except as contained in this notice, the name of a copyright holder shall ++ * not be used in advertising or otherwise to promote the sale, use or ++ * other dealings in this Software without prior written authorization of ++ * the copyright holder. ++ * ++ * Authors: ++ * Kristian Høgsberg (krh@redhat.com) ++ */ ++ ++#include ++ ++#include ++#include "list.h" ++#include "scrnintstr.h" ++#include "windowstr.h" ++#include "dixstruct.h" ++#include "dri2.h" ++#include "dri2int.h" ++#include "damage.h" ++ ++CARD8 dri2_major; /* version of DRI2 supported by DDX */ ++CARD8 dri2_minor; ++ ++static DevPrivateKeyRec dri2ScreenPrivateKeyRec; ++ ++#define dri2ScreenPrivateKey (&dri2ScreenPrivateKeyRec) ++ ++static DevPrivateKeyRec dri2WindowPrivateKeyRec; ++ ++#define dri2WindowPrivateKey (&dri2WindowPrivateKeyRec) ++ ++static DevPrivateKeyRec dri2PixmapPrivateKeyRec; ++ ++#define dri2PixmapPrivateKey (&dri2PixmapPrivateKeyRec) ++ ++static RESTYPE dri2DrawableRes; ++ ++typedef struct _DRI2Screen *DRI2ScreenPtr; ++ ++typedef struct _DRI2Drawable { ++ DRI2ScreenPtr dri2_screen; ++ DrawablePtr drawable; ++ struct xorg_list reference_list; ++ int width; ++ int height; ++ DRI2BufferPtr *buffers; ++ int bufferCount; ++ unsigned int swapsPending; ++ ClientPtr blockedClient; ++ Bool blockedOnMsc; ++ int swap_interval; ++ CARD64 swap_count; ++ int64_t target_sbc; /* -1 means no SBC wait outstanding */ ++ CARD64 last_swap_target; /* most recently queued swap target */ ++ CARD64 last_swap_msc; /* msc at completion of most recent swap */ ++ CARD64 last_swap_ust; /* ust at completion of most recent swap */ ++ int swap_limit; /* for N-buffering */ ++ Bool needInvalidate; ++} DRI2DrawableRec, *DRI2DrawablePtr; ++ ++typedef struct _DRI2Screen { ++ ScreenPtr screen; ++ int refcnt; ++ unsigned int numDrivers; ++ const char **driverNames; ++ const char *deviceName; ++ int fd; ++ unsigned int lastSequence; ++ ++ DRI2CreateBufferProcPtr CreateBuffer; ++ DRI2DestroyBufferProcPtr DestroyBuffer; ++ DRI2CopyRegionProcPtr CopyRegion; ++ DRI2ScheduleSwapProcPtr ScheduleSwap; ++ DRI2GetMSCProcPtr GetMSC; ++ DRI2ScheduleWaitMSCProcPtr ScheduleWaitMSC; ++ DRI2AuthMagic2ProcPtr AuthMagic; ++ DRI2AuthMagicProcPtr LegacyAuthMagic; ++ DRI2ReuseBufferNotifyProcPtr ReuseBufferNotify; ++ DRI2SwapLimitValidateProcPtr SwapLimitValidate; ++ DRI2GetParamProcPtr GetParam; ++ ++ ConfigNotifyProcPtr ConfigNotify; ++ SetWindowPixmapProcPtr SetWindowPixmap; ++ DRI2CreateBuffer2ProcPtr CreateBuffer2; ++ DRI2DestroyBuffer2ProcPtr DestroyBuffer2; ++ DRI2CopyRegion2ProcPtr CopyRegion2; ++} DRI2ScreenRec; ++ ++static void ++destroy_buffer(DrawablePtr pDraw, DRI2BufferPtr buffer); ++ ++static DRI2ScreenPtr ++DRI2GetScreen(ScreenPtr pScreen) ++{ ++ return dixLookupPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey); ++} ++ ++static DRI2DrawablePtr ++DRI2GetDrawable(DrawablePtr pDraw) ++{ ++ WindowPtr pWin; ++ PixmapPtr pPixmap; ++ ++ switch (pDraw->type) { ++ case DRAWABLE_WINDOW: ++ pWin = (WindowPtr) pDraw; ++ return dixLookupPrivate(&pWin->devPrivates, dri2WindowPrivateKey); ++ case DRAWABLE_PIXMAP: ++ pPixmap = (PixmapPtr) pDraw; ++ return dixLookupPrivate(&pPixmap->devPrivates, dri2PixmapPrivateKey); ++ default: ++ return NULL; ++ } ++} ++ ++static DRI2DrawablePtr ++DRI2AllocateDrawable(DrawablePtr pDraw) ++{ ++ DRI2ScreenPtr ds = DRI2GetScreen(pDraw->pScreen); ++ DRI2DrawablePtr pPriv; ++ CARD64 ust; ++ WindowPtr pWin; ++ PixmapPtr pPixmap; ++ ++ pPriv = malloc(sizeof *pPriv); ++ if (pPriv == NULL) ++ return NULL; ++ ++ pPriv->dri2_screen = ds; ++ pPriv->drawable = pDraw; ++ pPriv->width = pDraw->width; ++ pPriv->height = pDraw->height; ++ pPriv->buffers = NULL; ++ pPriv->bufferCount = 0; ++ pPriv->swapsPending = 0; ++ pPriv->blockedClient = NULL; ++ pPriv->blockedOnMsc = FALSE; ++ pPriv->swap_count = 0; ++ pPriv->target_sbc = -1; ++ pPriv->swap_interval = 1; ++ /* Initialize last swap target from DDX if possible */ ++ if (!ds->GetMSC || !(*ds->GetMSC) (pDraw, &ust, &pPriv->last_swap_target)) ++ pPriv->last_swap_target = 0; ++ ++ pPriv->swap_limit = 1; /* default to double buffering */ ++ pPriv->last_swap_msc = 0; ++ pPriv->last_swap_ust = 0; ++ xorg_list_init(&pPriv->reference_list); ++ pPriv->needInvalidate = FALSE; ++ if (pDraw->type == DRAWABLE_WINDOW) { ++ pWin = (WindowPtr) pDraw; ++ dixSetPrivate(&pWin->devPrivates, dri2WindowPrivateKey, pPriv); ++ } ++ else { ++ pPixmap = (PixmapPtr) pDraw; ++ dixSetPrivate(&pPixmap->devPrivates, dri2PixmapPrivateKey, pPriv); ++ } ++ ++ return pPriv; ++} ++ ++Bool ++DRI2SwapLimit(DrawablePtr pDraw, int swap_limit) ++{ ++ DRI2DrawablePtr pPriv = DRI2GetDrawable(pDraw); ++ DRI2ScreenPtr ds; ++ ++ if (!pPriv) ++ return FALSE; ++ ++ ds = pPriv->dri2_screen; ++ ++ if (!ds->SwapLimitValidate || !ds->SwapLimitValidate(pDraw, swap_limit)) ++ return FALSE; ++ ++ pPriv->swap_limit = swap_limit; ++ ++ /* Check throttling */ ++ if (pPriv->swapsPending >= pPriv->swap_limit) ++ return TRUE; ++ ++ if (pPriv->target_sbc == -1 && !pPriv->blockedOnMsc) { ++ if (pPriv->blockedClient) { ++ AttendClient(pPriv->blockedClient); ++ pPriv->blockedClient = NULL; ++ } ++ } ++ ++ return TRUE; ++} ++ ++typedef struct DRI2DrawableRefRec { ++ XID id; ++ XID dri2_id; ++ DRI2InvalidateProcPtr invalidate; ++ void *priv; ++ struct xorg_list link; ++} DRI2DrawableRefRec, *DRI2DrawableRefPtr; ++ ++static DRI2DrawableRefPtr ++DRI2LookupDrawableRef(DRI2DrawablePtr pPriv, XID id) ++{ ++ DRI2DrawableRefPtr ref; ++ ++ xorg_list_for_each_entry(ref, &pPriv->reference_list, link) { ++ if (ref->id == id) ++ return ref; ++ } ++ ++ return NULL; ++} ++ ++static int ++DRI2AddDrawableRef(DRI2DrawablePtr pPriv, XID id, XID dri2_id, ++ DRI2InvalidateProcPtr invalidate, void *priv) ++{ ++ DRI2DrawableRefPtr ref; ++ ++ ref = malloc(sizeof *ref); ++ if (ref == NULL) ++ return BadAlloc; ++ ++ if (!AddResource(dri2_id, dri2DrawableRes, pPriv)) { ++ free(ref); ++ return BadAlloc; ++ } ++ if (!DRI2LookupDrawableRef(pPriv, id)) ++ if (!AddResource(id, dri2DrawableRes, pPriv)) { ++ FreeResourceByType(dri2_id, dri2DrawableRes, TRUE); ++ free(ref); ++ return BadAlloc; ++ } ++ ++ ref->id = id; ++ ref->dri2_id = dri2_id; ++ ref->invalidate = invalidate; ++ ref->priv = priv; ++ xorg_list_add(&ref->link, &pPriv->reference_list); ++ ++ return Success; ++} ++ ++int ++DRI2CreateDrawable2(ClientPtr client, DrawablePtr pDraw, XID id, ++ DRI2InvalidateProcPtr invalidate, void *priv, ++ XID *dri2_id_out) ++{ ++ DRI2DrawablePtr pPriv; ++ XID dri2_id; ++ int rc; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) ++ pPriv = DRI2AllocateDrawable(pDraw); ++ if (pPriv == NULL) ++ return BadAlloc; ++ ++ dri2_id = FakeClientID(client->index); ++ rc = DRI2AddDrawableRef(pPriv, id, dri2_id, invalidate, priv); ++ if (rc != Success) ++ return rc; ++ ++ if (dri2_id_out) ++ *dri2_id_out = dri2_id; ++ ++ return Success; ++} ++ ++int ++DRI2CreateDrawable(ClientPtr client, DrawablePtr pDraw, XID id, ++ DRI2InvalidateProcPtr invalidate, void *priv) ++{ ++ return DRI2CreateDrawable2(client, pDraw, id, invalidate, priv, NULL); ++} ++ ++static int ++DRI2DrawableGone(void *p, XID id) ++{ ++ DRI2DrawablePtr pPriv = p; ++ DRI2DrawableRefPtr ref, next; ++ WindowPtr pWin; ++ PixmapPtr pPixmap; ++ DrawablePtr pDraw; ++ int i; ++ ++ xorg_list_for_each_entry_safe(ref, next, &pPriv->reference_list, link) { ++ if (ref->dri2_id == id) { ++ xorg_list_del(&ref->link); ++ /* If this was the last ref under this X drawable XID, ++ * unregister the X drawable resource. */ ++ if (!DRI2LookupDrawableRef(pPriv, ref->id)) ++ FreeResourceByType(ref->id, dri2DrawableRes, TRUE); ++ free(ref); ++ break; ++ } ++ ++ if (ref->id == id) { ++ xorg_list_del(&ref->link); ++ FreeResourceByType(ref->dri2_id, dri2DrawableRes, TRUE); ++ free(ref); ++ } ++ } ++ ++ if (!xorg_list_is_empty(&pPriv->reference_list)) ++ return Success; ++ ++ pDraw = pPriv->drawable; ++ if (pDraw->type == DRAWABLE_WINDOW) { ++ pWin = (WindowPtr) pDraw; ++ dixSetPrivate(&pWin->devPrivates, dri2WindowPrivateKey, NULL); ++ } ++ else { ++ pPixmap = (PixmapPtr) pDraw; ++ dixSetPrivate(&pPixmap->devPrivates, dri2PixmapPrivateKey, NULL); ++ } ++ ++ if (pPriv->buffers != NULL) { ++ for (i = 0; i < pPriv->bufferCount; i++) ++ destroy_buffer(pDraw, pPriv->buffers[i]); ++ ++ free(pPriv->buffers); ++ } ++ ++ free(pPriv); ++ ++ return Success; ++} ++ ++static DRI2BufferPtr ++create_buffer(DRI2ScreenPtr ds, DrawablePtr pDraw, ++ unsigned int attachment, unsigned int format) ++{ ++ DRI2BufferPtr buffer; ++ if (ds->CreateBuffer2) ++ buffer = (*ds->CreateBuffer2)(pDraw->pScreen, pDraw, attachment, format); ++ else ++ buffer = (*ds->CreateBuffer)(pDraw, attachment, format); ++ return buffer; ++} ++ ++static void ++destroy_buffer(DrawablePtr pDraw, DRI2BufferPtr buffer) ++{ ++ ScreenPtr pScreen = pDraw->pScreen; ++ DRI2ScreenPtr ds = DRI2GetScreen(pScreen); ++ if (ds->DestroyBuffer2) ++ (*ds->DestroyBuffer2)(pScreen, pDraw, buffer); ++ else ++ (*ds->DestroyBuffer)(pDraw, buffer); ++} ++ ++static int ++find_attachment(DRI2DrawablePtr pPriv, unsigned attachment) ++{ ++ int i; ++ ++ if (pPriv->buffers == NULL) { ++ return -1; ++ } ++ ++ for (i = 0; i < pPriv->bufferCount; i++) { ++ if ((pPriv->buffers[i] != NULL) ++ && (pPriv->buffers[i]->attachment == attachment)) { ++ return i; ++ } ++ } ++ ++ return -1; ++} ++ ++static Bool ++allocate_or_reuse_buffer(DrawablePtr pDraw, DRI2ScreenPtr ds, ++ DRI2DrawablePtr pPriv, ++ unsigned int attachment, unsigned int format, ++ int dimensions_match, DRI2BufferPtr * buffer) ++{ ++ int old_buf = find_attachment(pPriv, attachment); ++ ++ if ((old_buf < 0) ++ || attachment == DRI2BufferFrontLeft ++ || !dimensions_match || (pPriv->buffers[old_buf]->format != format)) { ++ *buffer = create_buffer(ds, pDraw, attachment, format); ++ return TRUE; ++ ++ } ++ else { ++ *buffer = pPriv->buffers[old_buf]; ++ ++ if (ds->ReuseBufferNotify) ++ (*ds->ReuseBufferNotify) (pDraw, *buffer); ++ ++ pPriv->buffers[old_buf] = NULL; ++ return FALSE; ++ } ++} ++ ++static void ++update_dri2_drawable_buffers(DRI2DrawablePtr pPriv, DrawablePtr pDraw, ++ DRI2BufferPtr * buffers, int out_count, int *width, ++ int *height) ++{ ++ int i; ++ ++ if (pPriv->buffers != NULL) { ++ for (i = 0; i < pPriv->bufferCount; i++) { ++ if (pPriv->buffers[i] != NULL) { ++ destroy_buffer(pDraw, pPriv->buffers[i]); ++ } ++ } ++ ++ free(pPriv->buffers); ++ } ++ ++ pPriv->buffers = buffers; ++ pPriv->bufferCount = out_count; ++ pPriv->width = pDraw->width; ++ pPriv->height = pDraw->height; ++ *width = pPriv->width; ++ *height = pPriv->height; ++} ++ ++static DRI2BufferPtr * ++do_get_buffers(DrawablePtr pDraw, int *width, int *height, ++ unsigned int *attachments, int count, int *out_count, ++ int has_format) ++{ ++ DRI2DrawablePtr pPriv = DRI2GetDrawable(pDraw); ++ DRI2ScreenPtr ds = DRI2GetScreen(pDraw->pScreen); ++ DRI2BufferPtr *buffers; ++ int need_real_front = 0; ++ int need_fake_front = 0; ++ int have_fake_front = 0; ++ int front_format = 0; ++ int dimensions_match; ++ int buffers_changed = 0; ++ int i; ++ ++ if (!pPriv) { ++ *width = pDraw->width; ++ *height = pDraw->height; ++ *out_count = 0; ++ return NULL; ++ } ++ ++ dimensions_match = (pDraw->width == pPriv->width) ++ && (pDraw->height == pPriv->height); ++ ++ buffers = calloc((count + 1), sizeof(buffers[0])); ++ if (!buffers) ++ goto err_out; ++ ++ for (i = 0; i < count; i++) { ++ const unsigned attachment = *(attachments++); ++ const unsigned format = (has_format) ? *(attachments++) : 0; ++ ++ if (allocate_or_reuse_buffer(pDraw, ds, pPriv, attachment, ++ format, dimensions_match, &buffers[i])) ++ buffers_changed = 1; ++ ++ if (buffers[i] == NULL) ++ goto err_out; ++ ++ /* If the drawable is a window and the front-buffer is requested, ++ * silently add the fake front-buffer to the list of requested ++ * attachments. The counting logic in the loop accounts for the case ++ * where the client requests both the fake and real front-buffer. ++ */ ++ if (attachment == DRI2BufferBackLeft) { ++ need_real_front++; ++ front_format = format; ++ } ++ ++ if (attachment == DRI2BufferFrontLeft) { ++ need_real_front--; ++ front_format = format; ++ ++ if (pDraw->type == DRAWABLE_WINDOW) { ++ need_fake_front++; ++ } ++ } ++ ++ if (pDraw->type == DRAWABLE_WINDOW) { ++ if (attachment == DRI2BufferFakeFrontLeft) { ++ need_fake_front--; ++ have_fake_front = 1; ++ } ++ } ++ } ++ ++ if (need_real_front > 0) { ++ if (allocate_or_reuse_buffer(pDraw, ds, pPriv, DRI2BufferFrontLeft, ++ front_format, dimensions_match, ++ &buffers[i])) ++ buffers_changed = 1; ++ ++ if (buffers[i] == NULL) ++ goto err_out; ++ i++; ++ } ++ ++ if (need_fake_front > 0) { ++ if (allocate_or_reuse_buffer(pDraw, ds, pPriv, DRI2BufferFakeFrontLeft, ++ front_format, dimensions_match, ++ &buffers[i])) ++ buffers_changed = 1; ++ ++ if (buffers[i] == NULL) ++ goto err_out; ++ ++ i++; ++ have_fake_front = 1; ++ } ++ ++ *out_count = i; ++ ++ update_dri2_drawable_buffers(pPriv, pDraw, buffers, *out_count, width, ++ height); ++ ++ /* If the client is getting a fake front-buffer, pre-fill it with the ++ * contents of the real front-buffer. This ensures correct operation of ++ * applications that call glXWaitX before calling glDrawBuffer. ++ */ ++ if (have_fake_front && buffers_changed) { ++ BoxRec box; ++ RegionRec region; ++ ++ box.x1 = 0; ++ box.y1 = 0; ++ box.x2 = pPriv->width; ++ box.y2 = pPriv->height; ++ RegionInit(®ion, &box, 0); ++ ++ DRI2CopyRegion(pDraw, ®ion, DRI2BufferFakeFrontLeft, ++ DRI2BufferFrontLeft); ++ } ++ ++ pPriv->needInvalidate = TRUE; ++ ++ return pPriv->buffers; ++ ++ err_out: ++ ++ *out_count = 0; ++ ++ if (buffers) { ++ for (i = 0; i < count; i++) { ++ if (buffers[i] != NULL) ++ destroy_buffer(pDraw, buffers[i]); ++ } ++ ++ free(buffers); ++ buffers = NULL; ++ } ++ ++ update_dri2_drawable_buffers(pPriv, pDraw, buffers, *out_count, width, ++ height); ++ ++ return buffers; ++} ++ ++DRI2BufferPtr * ++DRI2GetBuffers(DrawablePtr pDraw, int *width, int *height, ++ unsigned int *attachments, int count, int *out_count) ++{ ++ return do_get_buffers(pDraw, width, height, attachments, count, ++ out_count, FALSE); ++} ++ ++DRI2BufferPtr * ++DRI2GetBuffersWithFormat(DrawablePtr pDraw, int *width, int *height, ++ unsigned int *attachments, int count, int *out_count) ++{ ++ return do_get_buffers(pDraw, width, height, attachments, count, ++ out_count, TRUE); ++} ++ ++static void ++DRI2InvalidateDrawable(DrawablePtr pDraw) ++{ ++ DRI2DrawablePtr pPriv = DRI2GetDrawable(pDraw); ++ DRI2DrawableRefPtr ref; ++ ++ if (!pPriv || !pPriv->needInvalidate) ++ return; ++ ++ pPriv->needInvalidate = FALSE; ++ ++ xorg_list_for_each_entry(ref, &pPriv->reference_list, link) ++ ref->invalidate(pDraw, ref->priv, ref->id); ++} ++ ++/* ++ * In the direct rendered case, we throttle the clients that have more ++ * than their share of outstanding swaps (and thus busy buffers) when a ++ * new GetBuffers request is received. In the AIGLX case, we allow the ++ * client to get the new buffers, but throttle when the next GLX request ++ * comes in (see __glXDRIcontextWait()). ++ */ ++Bool ++DRI2ThrottleClient(ClientPtr client, DrawablePtr pDraw) ++{ ++ DRI2DrawablePtr pPriv; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) ++ return FALSE; ++ ++ /* Throttle to swap limit */ ++ if ((pPriv->swapsPending >= pPriv->swap_limit) && !pPriv->blockedClient) { ++ ResetCurrentRequest(client); ++ client->sequence--; ++ IgnoreClient(client); ++ pPriv->blockedClient = client; ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++static void ++__DRI2BlockClient(ClientPtr client, DRI2DrawablePtr pPriv) ++{ ++ if (pPriv->blockedClient == NULL) { ++ IgnoreClient(client); ++ pPriv->blockedClient = client; ++ } ++} ++ ++void ++DRI2BlockClient(ClientPtr client, DrawablePtr pDraw) ++{ ++ DRI2DrawablePtr pPriv; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) ++ return; ++ ++ __DRI2BlockClient(client, pPriv); ++ pPriv->blockedOnMsc = TRUE; ++} ++ ++static inline PixmapPtr GetDrawablePixmap(DrawablePtr drawable) ++{ ++ if (drawable->type == DRAWABLE_PIXMAP) ++ return (PixmapPtr)drawable; ++ else { ++ struct _Window *pWin = (struct _Window *)drawable; ++ return drawable->pScreen->GetWindowPixmap(pWin); ++ } ++} ++ ++/* ++ * A TraverseTree callback to invalidate all windows using the same ++ * pixmap ++ */ ++static int ++DRI2InvalidateWalk(WindowPtr pWin, void *data) ++{ ++ if (pWin->drawable.pScreen->GetWindowPixmap(pWin) != data) ++ return WT_DONTWALKCHILDREN; ++ DRI2InvalidateDrawable(&pWin->drawable); ++ return WT_WALKCHILDREN; ++} ++ ++static void ++DRI2InvalidateDrawableAll(DrawablePtr pDraw) ++{ ++ if (pDraw->type == DRAWABLE_WINDOW) { ++ WindowPtr pWin = (WindowPtr) pDraw; ++ PixmapPtr pPixmap = pDraw->pScreen->GetWindowPixmap(pWin); ++ ++ /* ++ * Find the top-most window using this pixmap ++ */ ++ while (pWin->parent && ++ pDraw->pScreen->GetWindowPixmap(pWin->parent) == pPixmap) ++ pWin = pWin->parent; ++ ++ /* ++ * Walk the sub-tree to invalidate all of the ++ * windows using the same pixmap ++ */ ++ TraverseTree(pWin, DRI2InvalidateWalk, pPixmap); ++ DRI2InvalidateDrawable(&pPixmap->drawable); ++ } ++ else ++ DRI2InvalidateDrawable(pDraw); ++} ++ ++static void dri2_copy_region(DrawablePtr pDraw, RegionPtr pRegion, ++ DRI2BufferPtr pDest, DRI2BufferPtr pSrc) ++{ ++ ScreenPtr pScreen = pDraw->pScreen; ++ DRI2ScreenPtr ds = DRI2GetScreen(pScreen); ++ ++ if (ds->CopyRegion2) ++ (*ds->CopyRegion2)(pScreen, pDraw, pRegion, pDest, pSrc); ++ else ++ (*ds->CopyRegion) (pDraw, pRegion, pDest, pSrc); ++} ++ ++int ++DRI2CopyRegion(DrawablePtr pDraw, RegionPtr pRegion, ++ unsigned int dest, unsigned int src) ++{ ++ DRI2DrawablePtr pPriv; ++ DRI2BufferPtr pDestBuffer, pSrcBuffer; ++ int i; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) ++ return BadDrawable; ++ ++ pDestBuffer = NULL; ++ pSrcBuffer = NULL; ++ for (i = 0; i < pPriv->bufferCount; i++) { ++ if (pPriv->buffers[i]->attachment == dest) ++ pDestBuffer = (DRI2BufferPtr) pPriv->buffers[i]; ++ if (pPriv->buffers[i]->attachment == src) ++ pSrcBuffer = (DRI2BufferPtr) pPriv->buffers[i]; ++ } ++ if (pSrcBuffer == NULL || pDestBuffer == NULL) ++ return BadValue; ++ ++ dri2_copy_region(pDraw, pRegion, pDestBuffer, pSrcBuffer); ++ ++ return Success; ++} ++ ++/* Can this drawable be page flipped? */ ++Bool ++DRI2CanFlip(DrawablePtr pDraw) ++{ ++ ScreenPtr pScreen = pDraw->pScreen; ++ WindowPtr pWin, pRoot; ++ PixmapPtr pWinPixmap, pRootPixmap; ++ ++ if (pDraw->type == DRAWABLE_PIXMAP) ++ return TRUE; ++ ++ pRoot = pScreen->root; ++ pRootPixmap = pScreen->GetWindowPixmap(pRoot); ++ ++ pWin = (WindowPtr) pDraw; ++ pWinPixmap = pScreen->GetWindowPixmap(pWin); ++ if (pRootPixmap != pWinPixmap) ++ return FALSE; ++ if (!RegionEqual(&pWin->clipList, &pRoot->winSize)) ++ return FALSE; ++ ++ /* Does the window match the pixmap exactly? */ ++ if (pDraw->x != 0 || pDraw->y != 0 || ++#ifdef COMPOSITE ++ pDraw->x != pWinPixmap->screen_x || pDraw->y != pWinPixmap->screen_y || ++#endif ++ pDraw->width != pWinPixmap->drawable.width || ++ pDraw->height != pWinPixmap->drawable.height) ++ return FALSE; ++ ++ return TRUE; ++} ++ ++/* Can we do a pixmap exchange instead of a blit? */ ++Bool ++DRI2CanExchange(DrawablePtr pDraw) ++{ ++ return FALSE; ++} ++ ++void ++DRI2WaitMSCComplete(ClientPtr client, DrawablePtr pDraw, int frame, ++ unsigned int tv_sec, unsigned int tv_usec) ++{ ++ DRI2DrawablePtr pPriv; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) ++ return; ++ ++ ProcDRI2WaitMSCReply(client, ((CARD64) tv_sec * 1000000) + tv_usec, ++ frame, pPriv->swap_count); ++ ++ if (pPriv->blockedClient) ++ AttendClient(pPriv->blockedClient); ++ ++ pPriv->blockedClient = NULL; ++ pPriv->blockedOnMsc = FALSE; ++} ++ ++static void ++DRI2WakeClient(ClientPtr client, DrawablePtr pDraw, int frame, ++ unsigned int tv_sec, unsigned int tv_usec) ++{ ++ DRI2DrawablePtr pPriv; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) { ++ ErrorF("[DRI2] %s: bad drawable\n", __func__); ++ return; ++ } ++ ++ /* ++ * Swap completed. ++ * Wake the client iff: ++ * - it was waiting on SBC ++ * - was blocked due to GLX make current ++ * - was blocked due to swap throttling ++ * - is not blocked due to an MSC wait ++ */ ++ if (pPriv->target_sbc != -1 && pPriv->target_sbc <= pPriv->swap_count) { ++ ProcDRI2WaitMSCReply(client, ((CARD64) tv_sec * 1000000) + tv_usec, ++ frame, pPriv->swap_count); ++ pPriv->target_sbc = -1; ++ ++ AttendClient(pPriv->blockedClient); ++ pPriv->blockedClient = NULL; ++ } ++ else if (pPriv->target_sbc == -1 && !pPriv->blockedOnMsc) { ++ if (pPriv->blockedClient) { ++ AttendClient(pPriv->blockedClient); ++ pPriv->blockedClient = NULL; ++ } ++ } ++} ++ ++void ++DRI2SwapComplete(ClientPtr client, DrawablePtr pDraw, int frame, ++ unsigned int tv_sec, unsigned int tv_usec, int type, ++ DRI2SwapEventPtr swap_complete, void *swap_data) ++{ ++ DRI2DrawablePtr pPriv; ++ CARD64 ust = 0; ++ BoxRec box; ++ RegionRec region; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) { ++ ErrorF("[DRI2] %s: bad drawable\n", __func__); ++ return; ++ } ++ ++ pPriv->swapsPending--; ++ pPriv->swap_count++; ++ ++ box.x1 = 0; ++ box.y1 = 0; ++ box.x2 = pDraw->width; ++ box.y2 = pDraw->height; ++ RegionInit(®ion, &box, 0); ++ DRI2CopyRegion(pDraw, ®ion, DRI2BufferFakeFrontLeft, ++ DRI2BufferFrontLeft); ++ ++ ust = ((CARD64) tv_sec * 1000000) + tv_usec; ++ if (swap_complete) ++ swap_complete(client, swap_data, type, ust, frame, pPriv->swap_count); ++ ++ pPriv->last_swap_msc = frame; ++ pPriv->last_swap_ust = ust; ++ ++ DRI2WakeClient(client, pDraw, frame, tv_sec, tv_usec); ++} ++ ++Bool ++DRI2WaitSwap(ClientPtr client, DrawablePtr pDrawable) ++{ ++ DRI2DrawablePtr pPriv = DRI2GetDrawable(pDrawable); ++ ++ /* If we're currently waiting for a swap on this drawable, reset ++ * the request and suspend the client. We only support one ++ * blocked client per drawable. */ ++ if (pPriv && pPriv->swapsPending && pPriv->blockedClient == NULL) { ++ ResetCurrentRequest(client); ++ client->sequence--; ++ __DRI2BlockClient(client, pPriv); ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++ ++ ++int ++DRI2SwapBuffers(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc, ++ CARD64 divisor, CARD64 remainder, CARD64 * swap_target, ++ DRI2SwapEventPtr func, void *data) ++{ ++ DRI2ScreenPtr ds = DRI2GetScreen(pDraw->pScreen); ++ DRI2DrawablePtr pPriv; ++ DRI2BufferPtr pDestBuffer = NULL, pSrcBuffer = NULL; ++ int ret, i; ++ CARD64 ust, current_msc; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) { ++ ErrorF("[DRI2] %s: bad drawable\n", __func__); ++ return BadDrawable; ++ } ++ ++ /* According to spec, return expected swapbuffers count SBC after this swap ++ * will complete. This is ignored unless we return Success, but it must be ++ * initialized on every path where we return Success or the caller will send ++ * an uninitialized value off the stack to the client. So let's initialize ++ * it as early as possible, just to be sure. ++ */ ++ *swap_target = pPriv->swap_count + pPriv->swapsPending + 1; ++ ++ for (i = 0; i < pPriv->bufferCount; i++) { ++ if (pPriv->buffers[i]->attachment == DRI2BufferFrontLeft) ++ pDestBuffer = (DRI2BufferPtr) pPriv->buffers[i]; ++ if (pPriv->buffers[i]->attachment == DRI2BufferBackLeft) ++ pSrcBuffer = (DRI2BufferPtr) pPriv->buffers[i]; ++ } ++ if (pSrcBuffer == NULL || pDestBuffer == NULL) { ++ ErrorF("[DRI2] %s: drawable has no back or front?\n", __func__); ++ return BadDrawable; ++ } ++ ++ /* Old DDX or no swap interval, just blit */ ++ if (!ds->ScheduleSwap || !pPriv->swap_interval) { ++ BoxRec box; ++ RegionRec region; ++ ++ box.x1 = 0; ++ box.y1 = 0; ++ box.x2 = pDraw->width; ++ box.y2 = pDraw->height; ++ RegionInit(®ion, &box, 0); ++ ++ pPriv->swapsPending++; ++ ++ dri2_copy_region(pDraw, ®ion, pDestBuffer, pSrcBuffer); ++ DRI2SwapComplete(client, pDraw, target_msc, 0, 0, DRI2_BLIT_COMPLETE, ++ func, data); ++ return Success; ++ } ++ ++ /* ++ * In the simple glXSwapBuffers case, all params will be 0, and we just ++ * need to schedule a swap for the last swap target + the swap interval. ++ */ ++ if (target_msc == 0 && divisor == 0 && remainder == 0) { ++ /* If the current vblank count of the drawable's crtc is lower ++ * than the count stored in last_swap_target from a previous swap ++ * then reinitialize last_swap_target to the current crtc's msc, ++ * otherwise the swap will hang. This will happen if the drawable ++ * is moved to a crtc with a lower refresh rate, or a crtc that just ++ * got enabled. ++ */ ++ if (ds->GetMSC) { ++ if (!(*ds->GetMSC) (pDraw, &ust, ¤t_msc)) ++ pPriv->last_swap_target = 0; ++ ++ if (current_msc < pPriv->last_swap_target) ++ pPriv->last_swap_target = current_msc; ++ ++ } ++ ++ /* ++ * Swap target for this swap is last swap target + swap interval since ++ * we have to account for the current swap count, interval, and the ++ * number of pending swaps. ++ */ ++ target_msc = pPriv->last_swap_target + pPriv->swap_interval; ++ ++ } ++ ++ pPriv->swapsPending++; ++ ret = (*ds->ScheduleSwap) (client, pDraw, pDestBuffer, pSrcBuffer, ++ &target_msc, divisor, remainder, func, data); ++ if (!ret) { ++ pPriv->swapsPending--; /* didn't schedule */ ++ ErrorF("[DRI2] %s: driver failed to schedule swap\n", __func__); ++ return BadDrawable; ++ } ++ ++ pPriv->last_swap_target = target_msc; ++ ++ DRI2InvalidateDrawableAll(pDraw); ++ ++ return Success; ++} ++ ++void ++DRI2SwapInterval(DrawablePtr pDrawable, int interval) ++{ ++ DRI2DrawablePtr pPriv = DRI2GetDrawable(pDrawable); ++ ++ if (pPriv == NULL) { ++ ErrorF("[DRI2] %s: bad drawable\n", __func__); ++ return; ++ } ++ ++ /* fixme: check against arbitrary max? */ ++ pPriv->swap_interval = interval; ++} ++ ++int ++DRI2GetMSC(DrawablePtr pDraw, CARD64 * ust, CARD64 * msc, CARD64 * sbc) ++{ ++ DRI2ScreenPtr ds = DRI2GetScreen(pDraw->pScreen); ++ DRI2DrawablePtr pPriv; ++ Bool ret; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) { ++ ErrorF("[DRI2] %s: bad drawable\n", __func__); ++ return BadDrawable; ++ } ++ ++ if (!ds->GetMSC) { ++ *ust = 0; ++ *msc = 0; ++ *sbc = pPriv->swap_count; ++ return Success; ++ } ++ ++ /* ++ * Spec needs to be updated to include unmapped or redirected ++ * drawables ++ */ ++ ++ ret = (*ds->GetMSC) (pDraw, ust, msc); ++ if (!ret) ++ return BadDrawable; ++ ++ *sbc = pPriv->swap_count; ++ ++ return Success; ++} ++ ++int ++DRI2WaitMSC(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc, ++ CARD64 divisor, CARD64 remainder) ++{ ++ DRI2ScreenPtr ds = DRI2GetScreen(pDraw->pScreen); ++ DRI2DrawablePtr pPriv; ++ Bool ret; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) ++ return BadDrawable; ++ ++ /* Old DDX just completes immediately */ ++ if (!ds->ScheduleWaitMSC) { ++ DRI2WaitMSCComplete(client, pDraw, target_msc, 0, 0); ++ ++ return Success; ++ } ++ ++ ret = ++ (*ds->ScheduleWaitMSC) (client, pDraw, target_msc, divisor, remainder); ++ if (!ret) ++ return BadDrawable; ++ ++ return Success; ++} ++ ++int ++DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc) ++{ ++ DRI2DrawablePtr pPriv; ++ ++ pPriv = DRI2GetDrawable(pDraw); ++ if (pPriv == NULL) ++ return BadDrawable; ++ ++ /* target_sbc == 0 means to block until all pending swaps are ++ * finished. Recalculate target_sbc to get that behaviour. ++ */ ++ if (target_sbc == 0) ++ target_sbc = pPriv->swap_count + pPriv->swapsPending; ++ ++ /* If current swap count already >= target_sbc, reply and ++ * return immediately with (ust, msc, sbc) triplet of ++ * most recent completed swap. ++ */ ++ if (pPriv->swap_count >= target_sbc) { ++ ProcDRI2WaitMSCReply(client, pPriv->last_swap_ust, ++ pPriv->last_swap_msc, pPriv->swap_count); ++ return Success; ++ } ++ ++ pPriv->target_sbc = target_sbc; ++ __DRI2BlockClient(client, pPriv); ++ ++ return Success; ++} ++ ++Bool ++DRI2HasSwapControl(ScreenPtr pScreen) ++{ ++ DRI2ScreenPtr ds = DRI2GetScreen(pScreen); ++ ++ return ds->ScheduleSwap && ds->GetMSC; ++} ++ ++Bool ++DRI2Connect(ClientPtr client, ScreenPtr pScreen, ++ unsigned int driverType, int *fd, ++ const char **driverName, const char **deviceName) ++{ ++ DRI2ScreenPtr ds; ++ uint32_t driver_id = driverType & 0xffff; ++ ++ if (!dixPrivateKeyRegistered(dri2ScreenPrivateKey) || ++ !(ds = DRI2GetScreen(pScreen))) ++ return FALSE; ++ ++ if (driver_id) ++ ErrorF("Add support for driver id when requested!\n"); ++ ++ if (driver_id >= ds->numDrivers || ++ !ds->driverNames[driver_id]) ++ return FALSE; ++ ++ *driverName = ds->driverNames[driver_id]; ++ *deviceName = ds->deviceName; ++ *fd = ds->fd; ++ ++ return TRUE; ++} ++ ++static int ++DRI2AuthMagic (ScreenPtr pScreen, uint32_t magic) ++{ ++ DRI2ScreenPtr ds = DRI2GetScreen(pScreen); ++ if (ds == NULL) ++ return -EINVAL; ++ ++ return (*ds->LegacyAuthMagic) (ds->fd, magic); ++} ++ ++Bool ++DRI2Authenticate(ClientPtr client, ScreenPtr pScreen, uint32_t magic) ++{ ++ DRI2ScreenPtr ds; ++ ++ ds = DRI2GetScreen(pScreen); ++ if (ds == NULL) ++ return FALSE; ++ ++ if ((*ds->AuthMagic)(pScreen, magic)) ++ return FALSE; ++ return TRUE; ++} ++ ++static int ++DRI2ConfigNotify(WindowPtr pWin, int x, int y, int w, int h, int bw, ++ WindowPtr pSib) ++{ ++ DrawablePtr pDraw = (DrawablePtr) pWin; ++ ScreenPtr pScreen = pDraw->pScreen; ++ DRI2ScreenPtr ds = DRI2GetScreen(pScreen); ++ DRI2DrawablePtr dd = DRI2GetDrawable(pDraw); ++ int ret; ++ ++ if (ds->ConfigNotify) { ++ pScreen->ConfigNotify = ds->ConfigNotify; ++ ++ ret = (*pScreen->ConfigNotify) (pWin, x, y, w, h, bw, pSib); ++ ++ ds->ConfigNotify = pScreen->ConfigNotify; ++ pScreen->ConfigNotify = DRI2ConfigNotify; ++ if (ret) ++ return ret; ++ } ++ ++ if (!dd || (dd->width == w && dd->height == h)) ++ return Success; ++ ++ DRI2InvalidateDrawable(pDraw); ++ return Success; ++} ++ ++static void ++DRI2SetWindowPixmap(WindowPtr pWin, PixmapPtr pPix) ++{ ++ DrawablePtr pDraw = (DrawablePtr) pWin; ++ ScreenPtr pScreen = pDraw->pScreen; ++ DRI2ScreenPtr ds = DRI2GetScreen(pScreen); ++ ++ pScreen->SetWindowPixmap = ds->SetWindowPixmap; ++ (*pScreen->SetWindowPixmap) (pWin, pPix); ++ ds->SetWindowPixmap = pScreen->SetWindowPixmap; ++ pScreen->SetWindowPixmap = DRI2SetWindowPixmap; ++ ++ DRI2InvalidateDrawableAll(pDraw); ++} ++ ++Bool ++DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info) ++{ ++ DRI2ScreenPtr ds; ++ ++ const char *driverTypeNames[] = { ++ "DRI", /* DRI2DriverDRI */ ++ "VDPAU", /* DRI2DriverVDPAU */ ++ }; ++ unsigned int i; ++ CARD8 cur_minor; ++ ++ if (info->version < 3) ++ return FALSE; ++ ++ if (!dixRegisterPrivateKey(&dri2ScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) ++ return FALSE; ++ ++ if (!dixRegisterPrivateKey(&dri2WindowPrivateKeyRec, PRIVATE_WINDOW, 0)) ++ return FALSE; ++ ++ if (!dixRegisterPrivateKey(&dri2PixmapPrivateKeyRec, PRIVATE_PIXMAP, 0)) ++ return FALSE; ++ ++ ds = calloc(1, sizeof *ds); ++ if (!ds) ++ return FALSE; ++ ++ ds->screen = pScreen; ++ ds->fd = info->fd; ++ ds->deviceName = info->deviceName; ++ dri2_major = 1; ++ ++ ds->CreateBuffer = info->CreateBuffer; ++ ds->DestroyBuffer = info->DestroyBuffer; ++ ds->CopyRegion = info->CopyRegion; ++ ++ if (info->version >= 4) { ++ ds->ScheduleSwap = info->ScheduleSwap; ++ ds->ScheduleWaitMSC = info->ScheduleWaitMSC; ++ ds->GetMSC = info->GetMSC; ++ cur_minor = 3; ++ } ++ else { ++ cur_minor = 1; ++ } ++ ++ if (info->version >= 8) { ++ ds->AuthMagic = info->AuthMagic2; ++ } ++ if (info->version >= 5) { ++ ds->LegacyAuthMagic = info->AuthMagic; ++ } ++ ++ if (info->version >= 6) { ++ ds->ReuseBufferNotify = info->ReuseBufferNotify; ++ ds->SwapLimitValidate = info->SwapLimitValidate; ++ } ++ ++ if (info->version >= 7) { ++ ds->GetParam = info->GetParam; ++ cur_minor = 4; ++ } ++ ++ if (info->version >= 9) { ++ ds->CreateBuffer2 = info->CreateBuffer2; ++ ds->DestroyBuffer2 = info->DestroyBuffer2; ++ ds->CopyRegion2 = info->CopyRegion2; ++ } ++ ++ /* ++ * if the driver doesn't provide an AuthMagic function or the info struct ++ * version is too low, call through LegacyAuthMagic ++ */ ++ if (!ds->AuthMagic) { ++ ds->AuthMagic = DRI2AuthMagic; ++ } ++ ++ /* Initialize minor if needed and set to minimum provied by DDX */ ++ if (!dri2_minor || dri2_minor > cur_minor) ++ dri2_minor = cur_minor; ++ ++ if (info->version == 3 || info->numDrivers == 0) { ++ /* Driver too old: use the old-style driverName field */ ++ ds->numDrivers = 1; ++ ds->driverNames = malloc(sizeof(*ds->driverNames)); ++ if (!ds->driverNames) ++ goto err_out; ++ ds->driverNames[0] = info->driverName; ++ } ++ else { ++ ds->numDrivers = info->numDrivers; ++ ds->driverNames = malloc(info->numDrivers * sizeof(*ds->driverNames)); ++ if (!ds->driverNames) ++ goto err_out; ++ memcpy(ds->driverNames, info->driverNames, ++ info->numDrivers * sizeof(*ds->driverNames)); ++ } ++ ++ dixSetPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey, ds); ++ ++ ds->ConfigNotify = pScreen->ConfigNotify; ++ pScreen->ConfigNotify = DRI2ConfigNotify; ++ ++ ds->SetWindowPixmap = pScreen->SetWindowPixmap; ++ pScreen->SetWindowPixmap = DRI2SetWindowPixmap; ++ ++ ErrorF("[DRI2] Setup complete\n"); ++ for (i = 0; i < sizeof(driverTypeNames) / sizeof(driverTypeNames[0]); i++) { ++ if (i < ds->numDrivers && ds->driverNames[i]) { ++ ErrorF("[DRI2] %s driver: %s\n", driverTypeNames[i], ds->driverNames[i]); ++ } ++ } ++ ++ return TRUE; ++ ++ err_out: ++ ErrorF("[DRI2] Initialization failed for info version %d.\n", info->version); ++ free(ds); ++ return FALSE; ++} ++ ++void ++DRI2CloseScreen(ScreenPtr pScreen) ++{ ++ DRI2ScreenPtr ds = DRI2GetScreen(pScreen); ++ ++ pScreen->ConfigNotify = ds->ConfigNotify; ++ pScreen->SetWindowPixmap = ds->SetWindowPixmap; ++ ++ free(ds->driverNames); ++ free(ds); ++ dixSetPrivate(&pScreen->devPrivates, dri2ScreenPrivateKey, NULL); ++} ++ ++/* Called by InitExtensions() */ ++Bool ++DRI2ModuleSetup(void) ++{ ++ dri2DrawableRes = CreateNewResourceType(DRI2DrawableGone, "DRI2Drawable"); ++ if (!dri2DrawableRes) ++ return FALSE; ++ ++ return TRUE; ++} ++ ++void ++DRI2Version(int *major, int *minor) ++{ ++ if (major != NULL) ++ *major = 1; ++ ++ if (minor != NULL) ++ *minor = 2; ++} ++ ++int ++DRI2GetParam(ClientPtr client, ++ DrawablePtr drawable, ++ CARD64 param, ++ BOOL *is_param_recognized, ++ CARD64 *value) ++{ ++ char high_byte = (param >> 24); ++ ++ switch (high_byte) { ++ case 0: ++ /* Parameter names whose high_byte is 0 are reserved for the X ++ * server. The server currently recognizes no parameters. ++ */ ++ goto not_recognized; ++ case 1: ++ /* Parameter names whose high byte is 1 are reserved for the DDX. */ ++ goto not_recognized; ++ default: ++ /* Other parameter names are reserved for future use. They are never ++ * recognized. ++ */ ++ goto not_recognized; ++ } ++ ++not_recognized: ++ *is_param_recognized = FALSE; ++ return Success; ++} +diff --git a/hw/xmir/dri2/dri2.h b/hw/xmir/dri2/dri2.h +new file mode 100644 +index 0000000..318898b +--- /dev/null ++++ b/hw/xmir/dri2/dri2.h +@@ -0,0 +1,364 @@ ++/* ++ * Copyright © 2007 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Soft- ++ * ware"), to deal in the Software without restriction, including without ++ * limitation the rights to use, copy, modify, merge, publish, distribute, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, provided that the above copyright ++ * notice(s) and this permission notice appear in all copies of the Soft- ++ * ware and that both the above copyright notice(s) and this permission ++ * notice appear in supporting documentation. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- ++ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY ++ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN ++ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE- ++ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR- ++ * MANCE OF THIS SOFTWARE. ++ * ++ * Except as contained in this notice, the name of a copyright holder shall ++ * not be used in advertising or otherwise to promote the sale, use or ++ * other dealings in this Software without prior written authorization of ++ * the copyright holder. ++ * ++ * Authors: ++ * Kristian Høgsberg (krh@redhat.com) ++ */ ++ ++#ifndef _DRI2_H_ ++#define _DRI2_H_ ++ ++#include ++ ++/* Version 2 structure (with format at the end) */ ++typedef struct { ++ unsigned int attachment; ++ unsigned int name; ++ unsigned int pitch; ++ unsigned int cpp; ++ unsigned int flags; ++ unsigned int format; ++ void *driverPrivate; ++} DRI2BufferRec, *DRI2BufferPtr; ++ ++extern CARD8 dri2_major; /* version of DRI2 supported by DDX */ ++extern CARD8 dri2_minor; ++ ++typedef DRI2BufferRec DRI2Buffer2Rec, *DRI2Buffer2Ptr; ++typedef void (*DRI2SwapEventPtr) (ClientPtr client, void *data, int type, ++ CARD64 ust, CARD64 msc, CARD32 sbc); ++ ++typedef DRI2BufferPtr(*DRI2CreateBuffersProcPtr) (DrawablePtr pDraw, ++ unsigned int *attachments, ++ int count); ++typedef void (*DRI2DestroyBuffersProcPtr) (DrawablePtr pDraw, ++ DRI2BufferPtr buffers, int count); ++typedef void (*DRI2CopyRegionProcPtr) (DrawablePtr pDraw, ++ RegionPtr pRegion, ++ DRI2BufferPtr pDestBuffer, ++ DRI2BufferPtr pSrcBuffer); ++typedef void (*DRI2WaitProcPtr) (WindowPtr pWin, unsigned int sequence); ++typedef int (*DRI2AuthMagicProcPtr) (int fd, uint32_t magic); ++typedef int (*DRI2AuthMagic2ProcPtr) (ScreenPtr pScreen, uint32_t magic); ++ ++/** ++ * Schedule a buffer swap ++ * ++ * This callback is used to support glXSwapBuffers and the OML_sync_control ++ * extension (see it for a description of the params). ++ * ++ * Drivers should queue an event for the frame count that satisfies the ++ * parameters passed in. If the event is in the future (i.e. the conditions ++ * aren't currently satisfied), the server may block the client at the next ++ * GLX request using DRI2WaitSwap. When the event arrives, drivers should call ++ * \c DRI2SwapComplete, which will handle waking the client and returning ++ * the appropriate data. ++ * ++ * The DDX is responsible for doing a flip, exchange, or blit of the swap ++ * when the corresponding event arrives. The \c DRI2CanFlip and ++ * \c DRI2CanExchange functions can be used as helpers for this purpose. ++ * ++ * \param client client pointer (used for block/unblock) ++ * \param pDraw drawable whose count we want ++ * \param pDestBuffer current front buffer ++ * \param pSrcBuffer current back buffer ++ * \param target_msc frame count to wait for ++ * \param divisor divisor for condition equation ++ * \param remainder remainder for division equation ++ * \param func function to call when the swap completes ++ * \param data data for the callback \p func. ++ */ ++typedef int (*DRI2ScheduleSwapProcPtr) (ClientPtr client, ++ DrawablePtr pDraw, ++ DRI2BufferPtr pDestBuffer, ++ DRI2BufferPtr pSrcBuffer, ++ CARD64 * target_msc, ++ CARD64 divisor, ++ CARD64 remainder, ++ DRI2SwapEventPtr func, void *data); ++typedef DRI2BufferPtr(*DRI2CreateBufferProcPtr) (DrawablePtr pDraw, ++ unsigned int attachment, ++ unsigned int format); ++typedef void (*DRI2DestroyBufferProcPtr) (DrawablePtr pDraw, ++ DRI2BufferPtr buffer); ++/** ++ * Notifies driver when DRI2GetBuffers reuses a dri2 buffer. ++ * ++ * Driver may rename the dri2 buffer in this notify if it is required. ++ * ++ * \param pDraw drawable whose count we want ++ * \param buffer buffer that will be returned to client ++ */ ++typedef void (*DRI2ReuseBufferNotifyProcPtr) (DrawablePtr pDraw, ++ DRI2BufferPtr buffer); ++/** ++ * Get current media stamp counter values ++ * ++ * This callback is used to support the SGI_video_sync and OML_sync_control ++ * extensions. ++ * ++ * Drivers should return the current frame counter and the timestamp from ++ * when the returned frame count was last incremented. ++ * ++ * The count should correspond to the screen where the drawable is currently ++ * visible. If the drawable isn't visible (e.g. redirected), the server ++ * should return BadDrawable to the client, pending GLX spec updates to ++ * define this behavior. ++ * ++ * \param pDraw drawable whose count we want ++ * \param ust timestamp from when the count was last incremented. ++ * \param mst current frame count ++ */ ++typedef int (*DRI2GetMSCProcPtr) (DrawablePtr pDraw, CARD64 * ust, ++ CARD64 * msc); ++/** ++ * Schedule a frame count related wait ++ * ++ * This callback is used to support the SGI_video_sync and OML_sync_control ++ * extensions. See those specifications for details on how to handle ++ * the divisor and remainder parameters. ++ * ++ * Drivers should queue an event for the frame count that satisfies the ++ * parameters passed in. If the event is in the future (i.e. the conditions ++ * aren't currently satisfied), the driver should block the client using ++ * \c DRI2BlockClient. When the event arrives, drivers should call ++ * \c DRI2WaitMSCComplete, which will handle waking the client and returning ++ * the appropriate data. ++ * ++ * \param client client pointer (used for block/unblock) ++ * \param pDraw drawable whose count we want ++ * \param target_msc frame count to wait for ++ * \param divisor divisor for condition equation ++ * \param remainder remainder for division equation ++ */ ++typedef int (*DRI2ScheduleWaitMSCProcPtr) (ClientPtr client, ++ DrawablePtr pDraw, ++ CARD64 target_msc, ++ CARD64 divisor, CARD64 remainder); ++ ++typedef void (*DRI2InvalidateProcPtr) (DrawablePtr pDraw, void *data, XID id); ++ ++/** ++ * DRI2 calls this hook when ever swap_limit is going to be changed. Default ++ * implementation for the hook only accepts one as swap_limit. If driver can ++ * support other swap_limits it has to implement supported limits with this ++ * callback. ++ * ++ * \param pDraw drawable whos swap_limit is going to be changed ++ * \param swap_limit new swap_limit that going to be set ++ * \return TRUE if limit is support, FALSE if not. ++ */ ++typedef Bool (*DRI2SwapLimitValidateProcPtr) (DrawablePtr pDraw, ++ int swap_limit); ++ ++typedef DRI2BufferPtr(*DRI2CreateBuffer2ProcPtr) (ScreenPtr pScreen, ++ DrawablePtr pDraw, ++ unsigned int attachment, ++ unsigned int format); ++typedef void (*DRI2DestroyBuffer2ProcPtr) (ScreenPtr pScreen, DrawablePtr pDraw, ++ DRI2BufferPtr buffer); ++ ++typedef void (*DRI2CopyRegion2ProcPtr) (ScreenPtr pScreen, DrawablePtr pDraw, ++ RegionPtr pRegion, ++ DRI2BufferPtr pDestBuffer, ++ DRI2BufferPtr pSrcBuffer); ++ ++/** ++ * \brief Get the value of a parameter. ++ * ++ * The parameter's \a value is looked up on the screen associated with ++ * \a pDrawable. ++ * ++ * \return \c Success or error code. ++ */ ++typedef int (*DRI2GetParamProcPtr) (ClientPtr client, ++ DrawablePtr pDrawable, ++ CARD64 param, ++ BOOL *is_param_recognized, ++ CARD64 *value); ++ ++/** ++ * Version of the DRI2InfoRec structure defined in this header ++ */ ++#define DRI2INFOREC_VERSION 9 ++ ++typedef struct { ++ unsigned int version; /**< Version of this struct */ ++ int fd; ++ const char *driverName; ++ const char *deviceName; ++ ++ DRI2CreateBufferProcPtr CreateBuffer; ++ DRI2DestroyBufferProcPtr DestroyBuffer; ++ DRI2CopyRegionProcPtr CopyRegion; ++ DRI2WaitProcPtr Wait; ++ ++ /* added in version 4 */ ++ ++ DRI2ScheduleSwapProcPtr ScheduleSwap; ++ DRI2GetMSCProcPtr GetMSC; ++ DRI2ScheduleWaitMSCProcPtr ScheduleWaitMSC; ++ ++ /* number of drivers in the driverNames array */ ++ unsigned int numDrivers; ++ /* array of driver names, indexed by DRI2Driver* driver types */ ++ /* a name of NULL means that driver is not supported */ ++ const char *const *driverNames; ++ ++ /* added in version 5 */ ++ ++ DRI2AuthMagicProcPtr AuthMagic; ++ ++ /* added in version 6 */ ++ ++ DRI2ReuseBufferNotifyProcPtr ReuseBufferNotify; ++ DRI2SwapLimitValidateProcPtr SwapLimitValidate; ++ ++ /* added in version 7 */ ++ DRI2GetParamProcPtr GetParam; ++ ++ /* added in version 8 */ ++ /* AuthMagic callback which passes extra context */ ++ /* If this is NULL the AuthMagic callback is used */ ++ /* If this is non-NULL the AuthMagic callback is ignored */ ++ DRI2AuthMagic2ProcPtr AuthMagic2; ++ ++ /* added in version 9 */ ++ DRI2CreateBuffer2ProcPtr CreateBuffer2; ++ DRI2DestroyBuffer2ProcPtr DestroyBuffer2; ++ DRI2CopyRegion2ProcPtr CopyRegion2; ++} DRI2InfoRec, *DRI2InfoPtr; ++ ++Bool DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info); ++ ++void DRI2CloseScreen(ScreenPtr pScreen); ++ ++Bool DRI2HasSwapControl(ScreenPtr pScreen); ++ ++Bool DRI2Connect(ClientPtr client, ScreenPtr pScreen, ++ unsigned int driverType, ++ int *fd, ++ const char **driverName, ++ const char **deviceName); ++ ++Bool DRI2Authenticate(ClientPtr client, ScreenPtr pScreen, uint32_t magic); ++ ++int DRI2CreateDrawable(ClientPtr client, ++ DrawablePtr pDraw, ++ XID id, ++ DRI2InvalidateProcPtr invalidate, ++ void *priv); ++ ++int DRI2CreateDrawable2(ClientPtr client, ++ DrawablePtr pDraw, ++ XID id, ++ DRI2InvalidateProcPtr invalidate, ++ void *priv, ++ XID *dri2_id_out); ++ ++DRI2BufferPtr *DRI2GetBuffers(DrawablePtr pDraw, ++ int *width, ++ int *height, ++ unsigned int *attachments, ++ int count, int *out_count); ++ ++int DRI2CopyRegion(DrawablePtr pDraw, ++ RegionPtr pRegion, ++ unsigned int dest, unsigned int src); ++ ++/** ++ * Determine the major and minor version of the DRI2 extension. ++ * ++ * Provides a mechanism to other modules (e.g., 2D drivers) to determine the ++ * version of the DRI2 extension. While it is possible to peek directly at ++ * the \c XF86ModuleData from a layered module, such a module will fail to ++ * load (due to an unresolved symbol) if the DRI2 extension is not loaded. ++ * ++ * \param major Location to store the major verion of the DRI2 extension ++ * \param minor Location to store the minor verion of the DRI2 extension ++ * ++ * \note ++ * This interface was added some time after the initial release of the DRI2 ++ * module. Layered modules that wish to use this interface must first test ++ * its existance by calling \c xf86LoaderCheckSymbol. ++ */ ++void DRI2Version(int *major, int *minor); ++ ++DRI2BufferPtr *DRI2GetBuffersWithFormat(DrawablePtr pDraw, ++ int *width, ++ int *height, ++ unsigned int ++ *attachments, ++ int count, ++ int *out_count); ++ ++void DRI2SwapInterval(DrawablePtr pDrawable, int interval); ++Bool DRI2SwapLimit(DrawablePtr pDraw, int swap_limit); ++int DRI2SwapBuffers(ClientPtr client, DrawablePtr pDrawable, ++ CARD64 target_msc, CARD64 divisor, ++ CARD64 remainder, CARD64 * swap_target, ++ DRI2SwapEventPtr func, void *data); ++Bool DRI2WaitSwap(ClientPtr client, DrawablePtr pDrawable); ++ ++int DRI2GetMSC(DrawablePtr pDrawable, CARD64 * ust, ++ CARD64 * msc, CARD64 * sbc); ++int DRI2WaitMSC(ClientPtr client, DrawablePtr pDrawable, ++ CARD64 target_msc, CARD64 divisor, ++ CARD64 remainder); ++int ProcDRI2WaitMSCReply(ClientPtr client, CARD64 ust, ++ CARD64 msc, CARD64 sbc); ++int DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, ++ CARD64 target_sbc); ++Bool DRI2ThrottleClient(ClientPtr client, DrawablePtr pDraw); ++ ++Bool DRI2CanFlip(DrawablePtr pDraw); ++ ++Bool DRI2CanExchange(DrawablePtr pDraw); ++ ++/* Note: use *only* for MSC related waits */ ++void DRI2BlockClient(ClientPtr client, DrawablePtr pDraw); ++ ++void DRI2SwapComplete(ClientPtr client, DrawablePtr pDraw, ++ int frame, unsigned int tv_sec, ++ unsigned int tv_usec, int type, ++ DRI2SwapEventPtr swap_complete, ++ void *swap_data); ++void DRI2WaitMSCComplete(ClientPtr client, DrawablePtr pDraw, ++ int frame, unsigned int tv_sec, ++ unsigned int tv_usec); ++ ++int DRI2GetParam(ClientPtr client, ++ DrawablePtr pDrawable, ++ CARD64 param, ++ BOOL *is_param_recognized, ++ CARD64 *value); ++ ++void DRI2ExtensionInit(void); ++extern Bool noDRI2Extension; ++ ++#endif +diff --git a/hw/xmir/dri2/dri2ext.c b/hw/xmir/dri2/dri2ext.c +new file mode 100644 +index 0000000..befbb82 +--- /dev/null ++++ b/hw/xmir/dri2/dri2ext.c +@@ -0,0 +1,683 @@ ++/* ++ * Copyright © 2008 Red Hat, Inc. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Soft- ++ * ware"), to deal in the Software without restriction, including without ++ * limitation the rights to use, copy, modify, merge, publish, distribute, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, provided that the above copyright ++ * notice(s) and this permission notice appear in all copies of the Soft- ++ * ware and that both the above copyright notice(s) and this permission ++ * notice appear in supporting documentation. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- ++ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY ++ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN ++ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE- ++ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR- ++ * MANCE OF THIS SOFTWARE. ++ * ++ * Except as contained in this notice, the name of a copyright holder shall ++ * not be used in advertising or otherwise to promote the sale, use or ++ * other dealings in this Software without prior written authorization of ++ * the copyright holder. ++ * ++ * Authors: ++ * Kristian Høgsberg (krh@redhat.com) ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include "dixstruct.h" ++#include "scrnintstr.h" ++#include "pixmapstr.h" ++#include "extnsionst.h" ++#include "xfixes.h" ++#include "dri2.h" ++#include "dri2int.h" ++#include "protocol-versions.h" ++ ++static int DRI2EventBase; ++ ++ ++static Bool ++validDrawable(ClientPtr client, XID drawable, Mask access_mode, ++ DrawablePtr *pDrawable, int *status) ++{ ++ *status = dixLookupDrawable(pDrawable, drawable, client, ++ M_DRAWABLE_WINDOW | M_DRAWABLE_PIXMAP, ++ access_mode); ++ if (*status != Success) { ++ client->errorValue = drawable; ++ return FALSE; ++ } ++ ++ return TRUE; ++} ++ ++static int ++ProcDRI2QueryVersion(ClientPtr client) ++{ ++ REQUEST(xDRI2QueryVersionReq); ++ xDRI2QueryVersionReply rep = { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = 0, ++ .majorVersion = dri2_major, ++ .minorVersion = dri2_minor ++ }; ++ ++ if (client->swapped) ++ swaps(&stuff->length); ++ ++ REQUEST_SIZE_MATCH(xDRI2QueryVersionReq); ++ ++ if (client->swapped) { ++ swaps(&rep.sequenceNumber); ++ swapl(&rep.length); ++ swapl(&rep.majorVersion); ++ swapl(&rep.minorVersion); ++ } ++ ++ WriteToClient(client, sizeof(xDRI2QueryVersionReply), &rep); ++ ++ return Success; ++} ++ ++static int ++ProcDRI2Connect(ClientPtr client) ++{ ++ REQUEST(xDRI2ConnectReq); ++ xDRI2ConnectReply rep = { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = 0, ++ .driverNameLength = 0, ++ .deviceNameLength = 0 ++ }; ++ DrawablePtr pDraw; ++ int fd, status; ++ const char *driverName; ++ const char *deviceName; ++ ++ REQUEST_SIZE_MATCH(xDRI2ConnectReq); ++ if (!validDrawable(client, stuff->window, DixGetAttrAccess, ++ &pDraw, &status)) ++ return status; ++ ++ if (!DRI2Connect(client, pDraw->pScreen, ++ stuff->driverType, &fd, &driverName, &deviceName)) ++ goto fail; ++ ++ rep.driverNameLength = strlen(driverName); ++ rep.deviceNameLength = strlen(deviceName); ++ rep.length = (rep.driverNameLength + 3) / 4 + ++ (rep.deviceNameLength + 3) / 4; ++ ++ fail: ++ WriteToClient(client, sizeof(xDRI2ConnectReply), &rep); ++ WriteToClient(client, rep.driverNameLength, driverName); ++ WriteToClient(client, rep.deviceNameLength, deviceName); ++ ++ return Success; ++} ++ ++static int ++ProcDRI2Authenticate(ClientPtr client) ++{ ++ REQUEST(xDRI2AuthenticateReq); ++ xDRI2AuthenticateReply rep; ++ DrawablePtr pDraw; ++ int status; ++ ++ REQUEST_SIZE_MATCH(xDRI2AuthenticateReq); ++ if (!validDrawable(client, stuff->window, DixGetAttrAccess, ++ &pDraw, &status)) ++ return status; ++ ++ rep = (xDRI2AuthenticateReply) { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = 0, ++ .authenticated = DRI2Authenticate(client, pDraw->pScreen, stuff->magic) ++ }; ++ WriteToClient(client, sizeof(xDRI2AuthenticateReply), &rep); ++ ++ return Success; ++} ++ ++static void ++DRI2InvalidateBuffersEvent(DrawablePtr pDraw, void *priv, XID id) ++{ ++ ClientPtr client = priv; ++ xDRI2InvalidateBuffers event = { ++ .type = DRI2EventBase + DRI2_InvalidateBuffers, ++ .drawable = id ++ }; ++ ++ WriteEventsToClient(client, 1, (xEvent *) &event); ++} ++ ++static int ++ProcDRI2CreateDrawable(ClientPtr client) ++{ ++ REQUEST(xDRI2CreateDrawableReq); ++ DrawablePtr pDrawable; ++ int status; ++ ++ REQUEST_SIZE_MATCH(xDRI2CreateDrawableReq); ++ ++ if (!validDrawable(client, stuff->drawable, DixAddAccess, ++ &pDrawable, &status)) ++ return status; ++ ++ status = DRI2CreateDrawable(client, pDrawable, stuff->drawable, ++ DRI2InvalidateBuffersEvent, client); ++ if (status != Success) ++ return status; ++ ++ return Success; ++} ++ ++static int ++ProcDRI2DestroyDrawable(ClientPtr client) ++{ ++ REQUEST(xDRI2DestroyDrawableReq); ++ DrawablePtr pDrawable; ++ int status; ++ ++ REQUEST_SIZE_MATCH(xDRI2DestroyDrawableReq); ++ if (!validDrawable(client, stuff->drawable, DixRemoveAccess, ++ &pDrawable, &status)) ++ return status; ++ ++ return Success; ++} ++ ++static int ++send_buffers_reply(ClientPtr client, DrawablePtr pDrawable, ++ DRI2BufferPtr * buffers, int count, int width, int height) ++{ ++ xDRI2GetBuffersReply rep; ++ int skip = 0; ++ int i; ++ ++ if (buffers == NULL) ++ return BadAlloc; ++ ++ if (pDrawable->type == DRAWABLE_WINDOW) { ++ for (i = 0; i < count; i++) { ++ /* Do not send the real front buffer of a window to the client. ++ */ ++ if (buffers[i]->attachment == DRI2BufferFrontLeft) { ++ skip++; ++ continue; ++ } ++ } ++ } ++ ++ rep = (xDRI2GetBuffersReply) { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = (count - skip) * sizeof(xDRI2Buffer) / 4, ++ .width = width, ++ .height = height, ++ .count = count - skip ++ }; ++ WriteToClient(client, sizeof(xDRI2GetBuffersReply), &rep); ++ ++ for (i = 0; i < count; i++) { ++ xDRI2Buffer buffer; ++ ++ /* Do not send the real front buffer of a window to the client. ++ */ ++ if ((pDrawable->type == DRAWABLE_WINDOW) ++ && (buffers[i]->attachment == DRI2BufferFrontLeft)) { ++ continue; ++ } ++ ++ buffer.attachment = buffers[i]->attachment; ++ buffer.name = buffers[i]->name; ++ buffer.pitch = buffers[i]->pitch; ++ buffer.cpp = buffers[i]->cpp; ++ buffer.flags = buffers[i]->flags; ++ WriteToClient(client, sizeof(xDRI2Buffer), &buffer); ++ } ++ return Success; ++} ++ ++static int ++ProcDRI2GetBuffers(ClientPtr client) ++{ ++ REQUEST(xDRI2GetBuffersReq); ++ DrawablePtr pDrawable; ++ DRI2BufferPtr *buffers; ++ int status, width, height, count; ++ unsigned int *attachments; ++ ++ REQUEST_FIXED_SIZE(xDRI2GetBuffersReq, stuff->count * 4); ++ if (!validDrawable(client, stuff->drawable, DixReadAccess | DixWriteAccess, ++ &pDrawable, &status)) ++ return status; ++ ++ if (DRI2ThrottleClient(client, pDrawable)) ++ return Success; ++ ++ attachments = (unsigned int *) &stuff[1]; ++ buffers = DRI2GetBuffers(pDrawable, &width, &height, ++ attachments, stuff->count, &count); ++ ++ return send_buffers_reply(client, pDrawable, buffers, count, width, height); ++ ++} ++ ++static int ++ProcDRI2GetBuffersWithFormat(ClientPtr client) ++{ ++ REQUEST(xDRI2GetBuffersReq); ++ DrawablePtr pDrawable; ++ DRI2BufferPtr *buffers; ++ int status, width, height, count; ++ unsigned int *attachments; ++ ++ REQUEST_FIXED_SIZE(xDRI2GetBuffersReq, stuff->count * (2 * 4)); ++ if (!validDrawable(client, stuff->drawable, DixReadAccess | DixWriteAccess, ++ &pDrawable, &status)) ++ return status; ++ ++ if (DRI2ThrottleClient(client, pDrawable)) ++ return Success; ++ ++ attachments = (unsigned int *) &stuff[1]; ++ buffers = DRI2GetBuffersWithFormat(pDrawable, &width, &height, ++ attachments, stuff->count, &count); ++ ++ return send_buffers_reply(client, pDrawable, buffers, count, width, height); ++} ++ ++static int ++ProcDRI2CopyRegion(ClientPtr client) ++{ ++ REQUEST(xDRI2CopyRegionReq); ++ xDRI2CopyRegionReply rep; ++ DrawablePtr pDrawable; ++ int status; ++ RegionPtr pRegion; ++ ++ REQUEST_SIZE_MATCH(xDRI2CopyRegionReq); ++ ++ if (!validDrawable(client, stuff->drawable, DixWriteAccess, ++ &pDrawable, &status)) ++ return status; ++ ++ VERIFY_REGION(pRegion, stuff->region, client, DixReadAccess); ++ ++ status = DRI2CopyRegion(pDrawable, pRegion, stuff->dest, stuff->src); ++ if (status != Success) ++ return status; ++ ++ /* CopyRegion needs to be a round trip to make sure the X server ++ * queues the swap buffer rendering commands before the DRI client ++ * continues rendering. The reply has a bitmask to signal the ++ * presense of optional return values as well, but we're not using ++ * that yet. ++ */ ++ ++ rep = (xDRI2CopyRegionReply) { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = 0 ++ }; ++ ++ WriteToClient(client, sizeof(xDRI2CopyRegionReply), &rep); ++ ++ return Success; ++} ++ ++static void ++load_swap_reply(xDRI2SwapBuffersReply * rep, CARD64 sbc) ++{ ++ rep->swap_hi = sbc >> 32; ++ rep->swap_lo = sbc & 0xffffffff; ++} ++ ++static CARD64 ++vals_to_card64(CARD32 lo, CARD32 hi) ++{ ++ return (CARD64) hi << 32 | lo; ++} ++ ++static void ++DRI2SwapEvent(ClientPtr client, void *data, int type, CARD64 ust, CARD64 msc, ++ CARD32 sbc) ++{ ++ DrawablePtr pDrawable = data; ++ xDRI2BufferSwapComplete2 event = { ++ .type = DRI2EventBase + DRI2_BufferSwapComplete, ++ .event_type = type, ++ .drawable = pDrawable->id, ++ .ust_hi = (CARD64) ust >> 32, ++ .ust_lo = ust & 0xffffffff, ++ .msc_hi = (CARD64) msc >> 32, ++ .msc_lo = msc & 0xffffffff, ++ .sbc = sbc ++ }; ++ ++ WriteEventsToClient(client, 1, (xEvent *) &event); ++} ++ ++static int ++ProcDRI2SwapBuffers(ClientPtr client) ++{ ++ REQUEST(xDRI2SwapBuffersReq); ++ xDRI2SwapBuffersReply rep = { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = 0 ++ }; ++ DrawablePtr pDrawable; ++ CARD64 target_msc, divisor, remainder, swap_target; ++ int status; ++ ++ REQUEST_SIZE_MATCH(xDRI2SwapBuffersReq); ++ ++ if (!validDrawable(client, stuff->drawable, ++ DixReadAccess | DixWriteAccess, &pDrawable, &status)) ++ return status; ++ ++ /* ++ * Ensures an out of control client can't exhaust our swap queue, and ++ * also orders swaps. ++ */ ++ if (DRI2ThrottleClient(client, pDrawable)) ++ return Success; ++ ++ target_msc = vals_to_card64(stuff->target_msc_lo, stuff->target_msc_hi); ++ divisor = vals_to_card64(stuff->divisor_lo, stuff->divisor_hi); ++ remainder = vals_to_card64(stuff->remainder_lo, stuff->remainder_hi); ++ ++ status = DRI2SwapBuffers(client, pDrawable, target_msc, divisor, remainder, ++ &swap_target, DRI2SwapEvent, pDrawable); ++ if (status != Success) ++ return BadDrawable; ++ ++ load_swap_reply(&rep, swap_target); ++ ++ WriteToClient(client, sizeof(xDRI2SwapBuffersReply), &rep); ++ ++ return Success; ++} ++ ++static void ++load_msc_reply(xDRI2MSCReply * rep, CARD64 ust, CARD64 msc, CARD64 sbc) ++{ ++ rep->ust_hi = ust >> 32; ++ rep->ust_lo = ust & 0xffffffff; ++ rep->msc_hi = msc >> 32; ++ rep->msc_lo = msc & 0xffffffff; ++ rep->sbc_hi = sbc >> 32; ++ rep->sbc_lo = sbc & 0xffffffff; ++} ++ ++static int ++ProcDRI2GetMSC(ClientPtr client) ++{ ++ REQUEST(xDRI2GetMSCReq); ++ xDRI2MSCReply rep = { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = 0 ++ }; ++ DrawablePtr pDrawable; ++ CARD64 ust, msc, sbc; ++ int status; ++ ++ REQUEST_SIZE_MATCH(xDRI2GetMSCReq); ++ ++ if (!validDrawable(client, stuff->drawable, DixReadAccess, &pDrawable, ++ &status)) ++ return status; ++ ++ status = DRI2GetMSC(pDrawable, &ust, &msc, &sbc); ++ if (status != Success) ++ return status; ++ ++ load_msc_reply(&rep, ust, msc, sbc); ++ ++ WriteToClient(client, sizeof(xDRI2MSCReply), &rep); ++ ++ return Success; ++} ++ ++static int ++ProcDRI2WaitMSC(ClientPtr client) ++{ ++ REQUEST(xDRI2WaitMSCReq); ++ DrawablePtr pDrawable; ++ CARD64 target, divisor, remainder; ++ int status; ++ ++ /* FIXME: in restart case, client may be gone at this point */ ++ ++ REQUEST_SIZE_MATCH(xDRI2WaitMSCReq); ++ ++ if (!validDrawable(client, stuff->drawable, DixReadAccess, &pDrawable, ++ &status)) ++ return status; ++ ++ target = vals_to_card64(stuff->target_msc_lo, stuff->target_msc_hi); ++ divisor = vals_to_card64(stuff->divisor_lo, stuff->divisor_hi); ++ remainder = vals_to_card64(stuff->remainder_lo, stuff->remainder_hi); ++ ++ status = DRI2WaitMSC(client, pDrawable, target, divisor, remainder); ++ if (status != Success) ++ return status; ++ ++ return Success; ++} ++ ++int ++ProcDRI2WaitMSCReply(ClientPtr client, CARD64 ust, CARD64 msc, CARD64 sbc) ++{ ++ xDRI2MSCReply rep = { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = 0 ++ }; ++ ++ load_msc_reply(&rep, ust, msc, sbc); ++ ++ WriteToClient(client, sizeof(xDRI2MSCReply), &rep); ++ ++ return Success; ++} ++ ++static int ++ProcDRI2SwapInterval(ClientPtr client) ++{ ++ REQUEST(xDRI2SwapIntervalReq); ++ DrawablePtr pDrawable; ++ int status; ++ ++ /* FIXME: in restart case, client may be gone at this point */ ++ ++ REQUEST_SIZE_MATCH(xDRI2SwapIntervalReq); ++ ++ if (!validDrawable(client, stuff->drawable, DixReadAccess | DixWriteAccess, ++ &pDrawable, &status)) ++ return status; ++ ++ DRI2SwapInterval(pDrawable, stuff->interval); ++ ++ return Success; ++} ++ ++static int ++ProcDRI2WaitSBC(ClientPtr client) ++{ ++ REQUEST(xDRI2WaitSBCReq); ++ DrawablePtr pDrawable; ++ CARD64 target; ++ int status; ++ ++ REQUEST_SIZE_MATCH(xDRI2WaitSBCReq); ++ ++ if (!validDrawable(client, stuff->drawable, DixReadAccess, &pDrawable, ++ &status)) ++ return status; ++ ++ target = vals_to_card64(stuff->target_sbc_lo, stuff->target_sbc_hi); ++ status = DRI2WaitSBC(client, pDrawable, target); ++ ++ return status; ++} ++ ++static int ++ProcDRI2GetParam(ClientPtr client) ++{ ++ REQUEST(xDRI2GetParamReq); ++ xDRI2GetParamReply rep = { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = 0 ++ }; ++ DrawablePtr pDrawable; ++ CARD64 value; ++ int status; ++ ++ REQUEST_SIZE_MATCH(xDRI2GetParamReq); ++ ++ if (!validDrawable(client, stuff->drawable, DixReadAccess, ++ &pDrawable, &status)) ++ return status; ++ ++ status = DRI2GetParam(client, pDrawable, stuff->param, ++ &rep.is_param_recognized, &value); ++ rep.value_hi = value >> 32; ++ rep.value_lo = value & 0xffffffff; ++ ++ if (status != Success) ++ return status; ++ ++ WriteToClient(client, sizeof(xDRI2GetParamReply), &rep); ++ ++ return status; ++} ++ ++static int ++ProcDRI2Dispatch(ClientPtr client) ++{ ++ REQUEST(xReq); ++ ++ switch (stuff->data) { ++ case X_DRI2QueryVersion: ++ return ProcDRI2QueryVersion(client); ++ } ++ ++ if (!client->local) ++ return BadRequest; ++ ++ switch (stuff->data) { ++ case X_DRI2Connect: ++ return ProcDRI2Connect(client); ++ case X_DRI2Authenticate: ++ return ProcDRI2Authenticate(client); ++ case X_DRI2CreateDrawable: ++ return ProcDRI2CreateDrawable(client); ++ case X_DRI2DestroyDrawable: ++ return ProcDRI2DestroyDrawable(client); ++ case X_DRI2GetBuffers: ++ return ProcDRI2GetBuffers(client); ++ case X_DRI2CopyRegion: ++ return ProcDRI2CopyRegion(client); ++ case X_DRI2GetBuffersWithFormat: ++ return ProcDRI2GetBuffersWithFormat(client); ++ case X_DRI2SwapBuffers: ++ return ProcDRI2SwapBuffers(client); ++ case X_DRI2GetMSC: ++ return ProcDRI2GetMSC(client); ++ case X_DRI2WaitMSC: ++ return ProcDRI2WaitMSC(client); ++ case X_DRI2WaitSBC: ++ return ProcDRI2WaitSBC(client); ++ case X_DRI2SwapInterval: ++ return ProcDRI2SwapInterval(client); ++ case X_DRI2GetParam: ++ return ProcDRI2GetParam(client); ++ default: ++ return BadRequest; ++ } ++} ++ ++static int ++SProcDRI2Connect(ClientPtr client) ++{ ++ REQUEST(xDRI2ConnectReq); ++ xDRI2ConnectReply rep = { ++ .type = X_Reply, ++ .sequenceNumber = client->sequence, ++ .length = 0, ++ .driverNameLength = 0, ++ .deviceNameLength = 0 ++ }; ++ ++ /* If the client is swapped, it's not local. Talk to the hand. */ ++ ++ swaps(&stuff->length); ++ if (sizeof(*stuff) / 4 != client->req_len) ++ return BadLength; ++ ++ swaps(&rep.sequenceNumber); ++ ++ WriteToClient(client, sizeof(xDRI2ConnectReply), &rep); ++ ++ return Success; ++} ++ ++static int ++SProcDRI2Dispatch(ClientPtr client) ++{ ++ REQUEST(xReq); ++ ++ /* ++ * Only local clients are allowed DRI access, but remote clients ++ * still need these requests to find out cleanly. ++ */ ++ switch (stuff->data) { ++ case X_DRI2QueryVersion: ++ return ProcDRI2QueryVersion(client); ++ case X_DRI2Connect: ++ return SProcDRI2Connect(client); ++ default: ++ return BadRequest; ++ } ++} ++ ++void ++DRI2ExtensionInit(void) ++{ ++ ExtensionEntry *dri2Extension; ++ ++#ifdef PANORAMIX ++ if (!noPanoramiXExtension) ++ return; ++#endif ++ ++ dri2Extension = AddExtension(DRI2_NAME, ++ DRI2NumberEvents, ++ DRI2NumberErrors, ++ ProcDRI2Dispatch, ++ SProcDRI2Dispatch, NULL, StandardMinorOpcode); ++ ++ DRI2EventBase = dri2Extension->eventBase; ++ ++ DRI2ModuleSetup(); ++} +diff --git a/hw/xmir/dri2/dri2int.h b/hw/xmir/dri2/dri2int.h +new file mode 100644 +index 0000000..7f53eba +--- /dev/null ++++ b/hw/xmir/dri2/dri2int.h +@@ -0,0 +1,26 @@ ++/* ++ * Copyright © 2011 Daniel Stone ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ * ++ * Author: Daniel Stone ++ */ ++ ++extern Bool DRI2ModuleSetup(void); +diff --git a/hw/xmir/xmir-cursor.c b/hw/xmir/xmir-cursor.c +new file mode 100644 +index 0000000..81873a4 +--- /dev/null ++++ b/hw/xmir/xmir-cursor.c +@@ -0,0 +1,210 @@ ++/* ++ * Copyright © 2015 Canonical Ltd ++ * ++ * Permission to use, copy, modify, distribute, and sell this software ++ * and its documentation for any purpose is hereby granted without ++ * fee, provided that the above copyright notice appear in all copies ++ * and that both that copyright notice and this permission notice ++ * appear in supporting documentation, and that the name of the ++ * copyright holders not be used in advertising or publicity ++ * pertaining to distribution of the software without specific, ++ * written prior permission. The copyright holders make no ++ * representations about the suitability of this software for any ++ * purpose. It is provided "as is" without express or implied ++ * warranty. ++ * ++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS ++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND ++ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++#include "xmir.h" ++ ++#include ++ ++static DevPrivateKeyRec xmir_cursor_private_key; ++ ++static void ++expand_source_and_mask(CursorPtr cursor, void *data) ++{ ++ CARD32 *p, d, fg, bg; ++ CursorBitsPtr bits = cursor->bits; ++ int x, y, stride, i, bit; ++ ++ p = data; ++ fg = ((cursor->foreRed & 0xff00) << 8) | ++ (cursor->foreGreen & 0xff00) | (cursor->foreGreen >> 8); ++ bg = ((cursor->backRed & 0xff00) << 8) | ++ (cursor->backGreen & 0xff00) | (cursor->backGreen >> 8); ++ stride = (bits->width / 8 + 3) & ~3; ++ for (y = 0; y < bits->height; y++) ++ for (x = 0; x < bits->width; x++) { ++ i = y * stride + x / 8; ++ bit = 1 << (x & 7); ++ if (bits->source[i] & bit) ++ d = fg; ++ else ++ d = bg; ++ if (bits->mask[i] & bit) ++ d |= 0xff000000; ++ else ++ d = 0x00000000; ++ ++ *p++ = d; ++ } ++} ++ ++static Bool ++xmir_realize_cursor(DeviceIntPtr device, ScreenPtr screen, CursorPtr cursor) ++{ ++ return TRUE; ++} ++ ++static void xmir_input_set_cursor(struct xmir_input *xmir_input, CursorPtr cursor); ++ ++static Bool ++xmir_unrealize_cursor(DeviceIntPtr device, ScreenPtr screen, CursorPtr cursor) ++{ ++ struct xmir_input *xmir_input = device ? device->public.devicePrivate : NULL; ++ MirBufferStream *stream; ++ ++ stream = dixGetPrivate(&cursor->devPrivates, &xmir_cursor_private_key); ++ dixSetPrivate(&cursor->devPrivates, &xmir_cursor_private_key, NULL); ++ ++ if (xmir_input) ++ xmir_input_set_cursor(xmir_input, rootCursor); ++ ++ if (stream) ++ mir_buffer_stream_release_sync(stream); ++ ++ return TRUE; ++} ++ ++static void ++xmir_input_set_cursor(struct xmir_input *xmir_input, CursorPtr cursor) ++{ ++ MirGraphicsRegion region; ++ MirCursorConfiguration *config; ++ MirBufferStream *stream; ++ ++ if (!cursor) { ++ config = mir_cursor_configuration_from_name(mir_disabled_cursor_name); ++ goto apply; ++ } else if (cursor == rootCursor) { ++ /* Avoid using the old style X default black cross cursor */ ++ config = mir_cursor_configuration_from_name(mir_arrow_cursor_name); ++ goto apply; ++ } ++ ++ stream = dixGetPrivate(&cursor->devPrivates, &xmir_cursor_private_key); ++ if (stream) { ++ mir_buffer_stream_get_graphics_region(stream, ®ion); ++ if (region.width != cursor->bits->width || region.height != cursor->bits->height) { ++ mir_buffer_stream_release_sync(stream); ++ stream = NULL; ++ } ++ } ++ ++ if (!stream) { ++ stream = mir_connection_create_buffer_stream_sync(xmir_input->xmir_screen->conn, cursor->bits->width, cursor->bits->height, mir_pixel_format_argb_8888, mir_buffer_usage_software); ++ dixSetPrivate(&cursor->devPrivates, &xmir_cursor_private_key, stream); ++ mir_buffer_stream_get_graphics_region(stream, ®ion); ++ } ++ ++ if (cursor->bits->argb) { ++ int y, stride; ++ ++ stride = cursor->bits->width * 4; ++ for (y = 0; y < cursor->bits->height; y++) ++ memcpy(region.vaddr + y * region.stride, ++ (char*)cursor->bits->argb + y * stride, stride); ++ } ++ else ++ expand_source_and_mask(cursor, region.vaddr); ++ ++ mir_buffer_stream_swap_buffers(stream, NULL, NULL); ++ config = mir_cursor_configuration_from_buffer_stream(stream, cursor->bits->xhot, cursor->bits->yhot); ++ ++apply: ++ if (!xmir_input->xmir_screen->rootless) ++ mir_wait_for(mir_surface_configure_cursor(xmir_window_get(xmir_input->xmir_screen->screen->root)->surface, config)); ++ else if (xmir_input->focus_window) ++ mir_wait_for(mir_surface_configure_cursor(xmir_input->focus_window->surface, config)); ++ mir_cursor_configuration_destroy(config); ++} ++ ++static void ++xmir_set_cursor(DeviceIntPtr device, ++ ScreenPtr screen, CursorPtr cursor, int x, int y) ++{ ++ struct xmir_input *xmir_input; ++ ++ xmir_input = device->public.devicePrivate; ++ if (xmir_input == NULL) ++ return; ++ ++ xmir_input_set_cursor(xmir_input, cursor); ++} ++ ++static void ++xmir_move_cursor(DeviceIntPtr device, ScreenPtr screen, int x, int y) ++{ ++} ++ ++static Bool ++xmir_device_cursor_initialize(DeviceIntPtr device, ScreenPtr screen) ++{ ++ return TRUE; ++} ++ ++static void ++xmir_device_cursor_cleanup(DeviceIntPtr device, ScreenPtr screen) ++{ ++} ++ ++static miPointerSpriteFuncRec xmir_pointer_sprite_funcs = { ++ xmir_realize_cursor, ++ xmir_unrealize_cursor, ++ xmir_set_cursor, ++ xmir_move_cursor, ++ xmir_device_cursor_initialize, ++ xmir_device_cursor_cleanup ++}; ++ ++static Bool ++xmir_cursor_off_screen(ScreenPtr *ppScreen, int *x, int *y) ++{ ++ return FALSE; ++} ++ ++static void ++xmir_cross_screen(ScreenPtr pScreen, Bool entering) ++{ ++} ++ ++static void ++xmir_pointer_warp_cursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) ++{ ++} ++ ++static miPointerScreenFuncRec xmir_pointer_screen_funcs = { ++ xmir_cursor_off_screen, ++ xmir_cross_screen, ++ xmir_pointer_warp_cursor ++}; ++ ++Bool ++xmir_screen_init_cursor(struct xmir_screen *xmir_screen) ++{ ++ if (!dixRegisterPrivateKey(&xmir_cursor_private_key, PRIVATE_CURSOR_BITS, 0)) ++ return FALSE; ++ ++ return miPointerInitialize(xmir_screen->screen, ++ &xmir_pointer_sprite_funcs, ++ &xmir_pointer_screen_funcs, TRUE); ++} +diff --git a/hw/xmir/xmir-cvt.c b/hw/xmir/xmir-cvt.c +new file mode 100644 +index 0000000..6070d77 +--- /dev/null ++++ b/hw/xmir/xmir-cvt.c +@@ -0,0 +1,304 @@ ++/* Copied from hw/xfree86/modes/xf86cvt.c into xmir DDX and ++ * changed to generate an RRMode */ ++ ++/* ++ * Copyright 2005-2006 Luc Verhaegen. ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice shall be included in ++ * all copies or substantial portions of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR ++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ */ ++ ++/* ++ * The reason for having this function in a file of its own is ++ * so that ../utils/cvt/cvt can link to it, and that xf86CVTMode ++ * code is shared directly. ++ */ ++ ++#ifdef HAVE_DIX_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include "xmir.h" ++ ++/* ++ * Generate a CVT standard mode from HDisplay, VDisplay and VRefresh. ++ * ++ * These calculations are stolen from the CVT calculation spreadsheet written ++ * by Graham Loveridge. He seems to be claiming no copyright and there seems to ++ * be no license attached to this. He apparently just wants to see his name ++ * mentioned. ++ * ++ * This file can be found at http://www.vesa.org/Public/CVT/CVTd6r1.xls ++ * ++ * Comments and structure corresponds to the comments and structure of the xls. ++ * This should ease importing of future changes to the standard (not very ++ * likely though). ++ * ++ * About margins; i'm sure that they are to be the bit between HDisplay and ++ * HBlankStart, HBlankEnd and HTotal, VDisplay and VBlankStart, VBlankEnd and ++ * VTotal, where the overscan colour is shown. FB seems to call _all_ blanking ++ * outside sync "margin" for some reason. Since we prefer seeing proper ++ * blanking instead of the overscan colour, and since the Crtc* values will ++ * probably get altered after us, we will disable margins altogether. With ++ * these calculations, Margins will plainly expand H/VDisplay, and we don't ++ * want that. -- libv ++ * ++ */ ++RRModePtr ++xmir_cvt(int HDisplay, int VDisplay, float VRefresh, Bool Reduced, ++ Bool Interlaced) ++{ ++ /* 1) top/bottom margin size (% of height) - default: 1.8 */ ++#define CVT_MARGIN_PERCENTAGE 1.8 ++ ++ /* 2) character cell horizontal granularity (pixels) - default 8 */ ++#define CVT_H_GRANULARITY 8 ++ ++ /* 4) Minimum vertical porch (lines) - default 3 */ ++#define CVT_MIN_V_PORCH 3 ++ ++ /* 4) Minimum number of vertical back porch lines - default 6 */ ++#define CVT_MIN_V_BPORCH 6 ++ ++ /* Pixel Clock step (kHz) */ ++#define CVT_CLOCK_STEP 250 ++ ++ Bool Margins = FALSE; ++ float VFieldRate, HPeriod; ++ int HDisplayRnd, HMargin; ++ int VDisplayRnd, VMargin, VSync; ++ float Interlace; /* Please rename this */ ++ char name[128]; ++ xRRModeInfo modeinfo; ++ ++ memset(&modeinfo, 0, sizeof modeinfo); ++ ++ /* CVT default is 60.0Hz */ ++ if (!VRefresh) ++ VRefresh = 60.0; ++ ++ /* 1. Required field rate */ ++ if (Interlaced) ++ VFieldRate = VRefresh * 2; ++ else ++ VFieldRate = VRefresh; ++ ++ /* 2. Horizontal pixels */ ++ HDisplayRnd = HDisplay - (HDisplay % CVT_H_GRANULARITY); ++ ++ /* 3. Determine left and right borders */ ++ if (Margins) { ++ /* right margin is actually exactly the same as left */ ++ HMargin = (((float) HDisplayRnd) * CVT_MARGIN_PERCENTAGE / 100.0); ++ HMargin -= HMargin % CVT_H_GRANULARITY; ++ } ++ else ++ HMargin = 0; ++ ++ /* 4. Find total active pixels */ ++ modeinfo.width = HDisplayRnd + 2 * HMargin; ++ ++ /* 5. Find number of lines per field */ ++ if (Interlaced) ++ VDisplayRnd = VDisplay / 2; ++ else ++ VDisplayRnd = VDisplay; ++ ++ /* 6. Find top and bottom margins */ ++ /* nope. */ ++ if (Margins) ++ /* top and bottom margins are equal again. */ ++ VMargin = (((float) VDisplayRnd) * CVT_MARGIN_PERCENTAGE / 100.0); ++ else ++ VMargin = 0; ++ ++ modeinfo.height = VDisplay + 2 * VMargin; ++ ++ /* 7. Interlace */ ++ if (Interlaced) ++ Interlace = 0.5; ++ else ++ Interlace = 0.0; ++ ++ /* Determine VSync Width from aspect ratio */ ++ if (!(VDisplay % 3) && ((VDisplay * 4 / 3) == HDisplay)) ++ VSync = 4; ++ else if (!(VDisplay % 9) && ((VDisplay * 16 / 9) == HDisplay)) ++ VSync = 5; ++ else if (!(VDisplay % 10) && ((VDisplay * 16 / 10) == HDisplay)) ++ VSync = 6; ++ else if (!(VDisplay % 4) && ((VDisplay * 5 / 4) == HDisplay)) ++ VSync = 7; ++ else if (!(VDisplay % 9) && ((VDisplay * 15 / 9) == HDisplay)) ++ VSync = 7; ++ else /* Custom */ ++ VSync = 10; ++ ++ if (!Reduced) { /* simplified GTF calculation */ ++ ++ /* 4) Minimum time of vertical sync + back porch interval (µs) ++ * default 550.0 */ ++#define CVT_MIN_VSYNC_BP 550.0 ++ ++ /* 3) Nominal HSync width (% of line period) - default 8 */ ++#define CVT_HSYNC_PERCENTAGE 8 ++ ++ float HBlankPercentage; ++ int VSyncAndBackPorch, VBackPorch; ++ int HBlank; ++ ++ /* 8. Estimated Horizontal period */ ++ HPeriod = ((float) (1000000.0 / VFieldRate - CVT_MIN_VSYNC_BP)) / ++ (VDisplayRnd + 2 * VMargin + CVT_MIN_V_PORCH + Interlace); ++ ++ /* 9. Find number of lines in sync + backporch */ ++ if (((int) (CVT_MIN_VSYNC_BP / HPeriod) + 1) < ++ (VSync + CVT_MIN_V_PORCH)) ++ VSyncAndBackPorch = VSync + CVT_MIN_V_PORCH; ++ else ++ VSyncAndBackPorch = (int) (CVT_MIN_VSYNC_BP / HPeriod) + 1; ++ ++ /* 10. Find number of lines in back porch */ ++ VBackPorch = VSyncAndBackPorch - VSync; ++ (void) VBackPorch; ++ ++ /* 11. Find total number of lines in vertical field */ ++ modeinfo.vTotal = ++ VDisplayRnd + 2 * VMargin + VSyncAndBackPorch + Interlace + ++ CVT_MIN_V_PORCH; ++ ++ /* 5) Definition of Horizontal blanking time limitation */ ++ /* Gradient (%/kHz) - default 600 */ ++#define CVT_M_FACTOR 600 ++ ++ /* Offset (%) - default 40 */ ++#define CVT_C_FACTOR 40 ++ ++ /* Blanking time scaling factor - default 128 */ ++#define CVT_K_FACTOR 128 ++ ++ /* Scaling factor weighting - default 20 */ ++#define CVT_J_FACTOR 20 ++ ++#define CVT_M_PRIME CVT_M_FACTOR * CVT_K_FACTOR / 256 ++#define CVT_C_PRIME (CVT_C_FACTOR - CVT_J_FACTOR) * CVT_K_FACTOR / 256 + \ ++ CVT_J_FACTOR ++ ++ /* 12. Find ideal blanking duty cycle from formula */ ++ HBlankPercentage = CVT_C_PRIME - CVT_M_PRIME * HPeriod / 1000.0; ++ ++ /* 13. Blanking time */ ++ if (HBlankPercentage < 20) ++ HBlankPercentage = 20; ++ ++ HBlank = modeinfo.width * HBlankPercentage / (100.0 - HBlankPercentage); ++ HBlank -= HBlank % (2 * CVT_H_GRANULARITY); ++ ++ /* 14. Find total number of pixels in a line. */ ++ modeinfo.hTotal = modeinfo.width + HBlank; ++ ++ /* Fill in HSync values */ ++ modeinfo.hSyncEnd = modeinfo.width + HBlank / 2; ++ ++ modeinfo.hSyncStart = modeinfo.hSyncEnd - ++ (modeinfo.hTotal * CVT_HSYNC_PERCENTAGE) / 100; ++ modeinfo.hSyncStart += CVT_H_GRANULARITY - ++ modeinfo.hSyncStart % CVT_H_GRANULARITY; ++ ++ /* Fill in VSync values */ ++ modeinfo.vSyncStart = modeinfo.height + CVT_MIN_V_PORCH; ++ modeinfo.vSyncEnd = modeinfo.vSyncStart + VSync; ++ ++ } ++ else { /* Reduced blanking */ ++ /* Minimum vertical blanking interval time (µs) - default 460 */ ++#define CVT_RB_MIN_VBLANK 460.0 ++ ++ /* Fixed number of clocks for horizontal sync */ ++#define CVT_RB_H_SYNC 32.0 ++ ++ /* Fixed number of clocks for horizontal blanking */ ++#define CVT_RB_H_BLANK 160.0 ++ ++ /* Fixed number of lines for vertical front porch - default 3 */ ++#define CVT_RB_VFPORCH 3 ++ ++ int VBILines; ++ ++ /* 8. Estimate Horizontal period. */ ++ HPeriod = ((float) (1000000.0 / VFieldRate - CVT_RB_MIN_VBLANK)) / ++ (VDisplayRnd + 2 * VMargin); ++ ++ /* 9. Find number of lines in vertical blanking */ ++ VBILines = ((float) CVT_RB_MIN_VBLANK) / HPeriod + 1; ++ ++ /* 10. Check if vertical blanking is sufficient */ ++ if (VBILines < (CVT_RB_VFPORCH + VSync + CVT_MIN_V_BPORCH)) ++ VBILines = CVT_RB_VFPORCH + VSync + CVT_MIN_V_BPORCH; ++ ++ /* 11. Find total number of lines in vertical field */ ++ modeinfo.vTotal = VDisplayRnd + 2 * VMargin + Interlace + VBILines; ++ ++ /* 12. Find total number of pixels in a line */ ++ modeinfo.hTotal = modeinfo.width + CVT_RB_H_BLANK; ++ ++ /* Fill in HSync values */ ++ modeinfo.hSyncEnd = modeinfo.width + CVT_RB_H_BLANK / 2; ++ modeinfo.hSyncStart = modeinfo.hSyncEnd - CVT_RB_H_SYNC; ++ ++ /* Fill in VSync values */ ++ modeinfo.vSyncStart = modeinfo.height + CVT_RB_VFPORCH; ++ modeinfo.vSyncEnd = modeinfo.vSyncStart + VSync; ++ } ++ ++ /* 15/13. Find pixel clock frequency (kHz for xf86) */ ++ modeinfo.dotClock = modeinfo.hTotal * 1000.0 / HPeriod; ++ modeinfo.dotClock -= modeinfo.dotClock % CVT_CLOCK_STEP; ++ modeinfo.dotClock *= 1000.0; ++#if 0 ++ /* 16/14. Find actual Horizontal Frequency (kHz) */ ++ modeinfo.hSync = ((float) modeinfo.dotClock) / ((float) modeinfo.hTotal); ++#endif ++ ++#if 0 ++ /* 17/15. Find actual Field rate */ ++ modeinfo.vRefresh = (1000.0 * ((float) modeinfo.dotClock)) / ++ ((float) (modeinfo.hTotal * modeinfo.vTotal)); ++#endif ++ ++ /* 18/16. Find actual vertical frame frequency */ ++ /* ignore - just set the mode flag for interlaced */ ++ if (Interlaced) ++ modeinfo.vTotal *= 2; ++ ++ if (Reduced) ++ modeinfo.modeFlags |= RR_HSyncPositive | RR_VSyncNegative; ++ else ++ modeinfo.modeFlags |= RR_HSyncNegative | RR_VSyncPositive; ++ ++ if (Interlaced) ++ modeinfo.modeFlags |= RR_Interlace; ++ ++ snprintf(name, sizeof name, "%dx%d@%.1fHz", ++ modeinfo.width, modeinfo.height, VRefresh); ++ modeinfo.nameLength = strlen(name); ++ ++ return RRModeGet(&modeinfo, name); ++} +diff --git a/hw/xmir/xmir-dri2.c b/hw/xmir/xmir-dri2.c +new file mode 100644 +index 0000000..e1d02f0 +--- /dev/null ++++ b/hw/xmir/xmir-dri2.c +@@ -0,0 +1,551 @@ ++/* ++ * Copyright © 2015 Canonical Ltd ++ * ++ * Permission to use, copy, modify, distribute, and sell this software ++ * and its documentation for any purpose is hereby granted without ++ * fee, provided that the above copyright notice appear in all copies ++ * and that both that copyright notice and this permission notice ++ * appear in supporting documentation, and that the name of the ++ * copyright holders not be used in advertising or publicity ++ * pertaining to distribution of the software without specific, ++ * written prior permission. The copyright holders make no ++ * representations about the suitability of this software for any ++ * purpose. It is provided "as is" without express or implied ++ * warranty. ++ * ++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS ++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND ++ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++#include "glamor_priv.h" ++#include "glamor_transform.h" ++#include "xmir.h" ++ ++#include ++#include ++#include ++#include ++ ++#define MESA_EGL_NO_X11_HEADERS ++#include ++#include ++#include ++#include ++/* FIXME: This should not be mandatory, especially on Android (LP: #1502794) */ ++#include ++ ++/* XMir dri2 support: ++ * ++ * Pixmaps: ++ * DRI2BufferFrontLeft: glamor pixmap ++ * DRI2BufferFakeFrontLeft: last page flipped bo ++ * DRI2BufferBackLeft: MirNativeBuffer ++ * ++ * Swap support: ++ * Page will get flipped from BackLeft to FrontLeft, ++ * but what happens is that we call mir_surface_swap_buffers ++ * ++ * There is no guarantee X and DRI2 is serialized, unless the ++ * glXWaitGL and glXWaitX calls are used. These calls are implemented ++ * by copying FakeFront to Front for glXWaitGL, and ++ * Front to FakeFront for glXwaitX ++ * ++ * TODO: ++ * - Make xmir_dri2_copy_region do something. ++ */ ++ ++static char ++is_fd_render_node(int fd) ++{ ++ struct stat render; ++ ++ if (fstat(fd, &render)) ++ return 0; ++ if (!S_ISCHR(render.st_mode)) ++ return 0; ++ if (render.st_rdev & 0x80) ++ return 1; ++ ++ return 0; ++} ++ ++static Bool ++xmir_dri2_flink(int drm_fd, unsigned int handle, unsigned int *name) ++{ ++ struct drm_gem_flink flink; ++ ++ flink.handle = handle; ++ if (ioctl(drm_fd, DRM_IOCTL_GEM_FLINK, &flink) < 0) ++ return 0; ++ *name = flink.name; ++ return 1; ++} ++ ++static struct xmir_window * ++xmir_window_swappable_parent(WindowPtr win) ++{ ++ ScreenPtr screen = win->drawable.pScreen; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ PixmapPtr root, pixmap; ++ ++ if (xmir_screen->rootless) ++ return NULL; ++ ++ root = screen->GetScreenPixmap(screen); ++ pixmap = screen->GetWindowPixmap(win); ++ ++ if (root == pixmap && ++ win->drawable.depth == pixmap->drawable.depth && ++ win->drawable.height == pixmap->drawable.height && ++ win->drawable.width == pixmap->drawable.width) ++ return xmir_window_get(screen->root); ++ ++ return NULL; ++} ++ ++static void ++xmir_dri2_reusebuffer_notify(DrawablePtr draw, DRI2BufferPtr buf) ++{ ++ struct xmir_window *xmir_window; ++ struct xmir_screen *xmir_screen; ++ struct xmir_pixmap *xmir_pixmap; ++ struct gbm_bo *bo; ++ ++ if (buf->attachment != DRI2BufferBackLeft || draw->type != DRAWABLE_WINDOW) ++ return; ++ ++ xmir_window = xmir_window_get((WindowPtr)draw); ++ if (!xmir_window) ++ return; ++ ++ xmir_screen = xmir_screen_get(draw->pScreen); ++ if (xmir_window->back_pixmap) ++ FatalError("Returned before swapping?\n"); ++ ++ if (xmir_window->surface) { ++ buf->driverPrivate = xmir_glamor_win_get_back(xmir_screen, xmir_window, &xmir_window->window->drawable); ++ xmir_pixmap = xmir_pixmap_get(buf->driverPrivate); ++ } else { ++ struct xmir_window *xmir_window_parent = xmir_window_swappable_parent((WindowPtr)draw); ++ ++ if (xmir_window_parent && xmir_window_parent->back_pixmap) ++ FatalError("Returned before swapping?!\n"); ++ ++ if (buf->driverPrivate) { ++ xmir_pixmap = xmir_pixmap_get(buf->driverPrivate); ++ ++ if (xmir_pixmap->fake_back && !xmir_window_parent) ++ return; ++ ++ draw->pScreen->DestroyPixmap(buf->driverPrivate); ++ } ++ ++ buf->driverPrivate = xmir_glamor_win_get_back(xmir_screen, xmir_window_parent ?: xmir_window, &xmir_window->window->drawable); ++ xmir_pixmap = xmir_pixmap_get(buf->driverPrivate); ++ } ++ bo = xmir_pixmap->bo; ++ if (!bo) ++ FatalError("Uh oh!\n"); ++ ++ buf->pitch = gbm_bo_get_stride(bo); ++ xmir_dri2_flink(xmir_screen->drm_fd, gbm_bo_get_handle(bo).u32, &buf->name); ++} ++ ++static void ++xmir_dri2_auth_magic_reply(MirConnection* con, MirPlatformMessage* reply, Bool* ret) ++{ ++ struct MirMesaAuthMagicResponse const* response; ++ unsigned int opcode = mir_platform_message_get_opcode(reply); ++ MirPlatformMessageData data = mir_platform_message_get_data(reply); ++ ++ *ret = 0; ++ response = data.data; ++ ++ if (auth_magic != opcode || ++ data.size != sizeof response || ++ response == NULL) ++ { ++ mir_platform_message_release(reply); ++ return; ++ } ++ ++ /* status == 0 indciates success */ ++ if (response->status == 0) ++ *ret = 1; ++ mir_platform_message_release(reply); ++} ++ ++static Bool ++xmir_dri2_auth_magic(ScreenPtr screen, uint32_t magic) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ Bool ret = 0; ++ MirPlatformMessage *msg = NULL; ++ ++ if (!is_fd_render_node(xmir_screen->drm_fd)) { ++ struct MirMesaAuthMagicRequest req = { ++ .magic = magic ++ }; ++ msg = mir_platform_message_create(auth_magic); ++ ++ if (msg == NULL) ++ return ret; ++ ++ mir_platform_message_set_data(msg, &req, sizeof req); ++/* FIXME: This should not be mandatory, especially on Android (LP: #1502794) */ ++ mir_wait_for(mir_connection_platform_operation( ++ xmir_screen->conn, ++ msg, ++ (mir_platform_operation_callback)&xmir_dri2_auth_magic_reply, ++ &ret)); ++ mir_platform_message_release(msg); ++ } ++ ++ return ret; ++} ++ ++static DRI2BufferPtr ++xmir_dri2_create_buffer(ScreenPtr screen, DrawablePtr pDraw, ++ unsigned int attachment, unsigned int format) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ struct xmir_pixmap *xmir_pixmap; ++ struct xmir_window *xmir_window = NULL; ++ PixmapPtr pixmap; ++ DRI2BufferPtr ret = malloc(sizeof(*ret)); ++ struct gbm_bo *bo = NULL; ++ unsigned int bpp = max(format, pDraw->bitsPerPixel); ++ ++ if (format && format < pDraw->bitsPerPixel && format < 24) { ++ ErrorF("Format %u must match bpp %u for window\n", format, pDraw->bitsPerPixel); ++ return NULL; ++ } ++ ++ if (pDraw->type == DRAWABLE_WINDOW) { ++ struct xmir_window *xmir_window_parent; ++ ++ xmir_window = xmir_window_get((WindowPtr)pDraw); ++ xmir_window_parent = xmir_window_swappable_parent((WindowPtr)pDraw); ++ ++ if (xmir_window_parent) ++ xmir_window = xmir_window_parent; ++ ++ pixmap = screen->GetWindowPixmap((WindowPtr)pDraw); ++ } else ++ pixmap = (PixmapPtr)pDraw; ++ ++ ret->attachment = attachment; ++ ret->format = format; ++ ret->driverPrivate = NULL; ++ ret->flags = 0; ++ ret->cpp = bpp / 8; ++ ++ ret->name = 0; ++ ret->pitch = 0; ++ ++ switch (attachment) { ++ case DRI2BufferFakeFrontLeft: ++ if (xmir_window && xmir_window->front_pixmap) { ++ xmir_pixmap = xmir_pixmap_get(xmir_window->front_pixmap); ++ bo = xmir_pixmap->bo; ++ break; ++ } ++ /* Fall-through */ ++ case DRI2BufferFrontLeft: ++ xmir_pixmap = xmir_pixmap_get(pixmap); ++ ++ if (!xmir_pixmap) { ++ CARD16 pitch; ++ CARD32 size; ++ ++ ret->name = glamor_name_from_pixmap(pixmap, &pitch, &size); ++ ret->pitch = pitch; ++ return ret; ++ } ++ bo = xmir_pixmap->bo; ++ ++ if (!bo) { ++ ErrorF("Window doesn't have a mir backing?\n"); ++ break; ++ } ++ break; ++ case DRI2BufferBackLeft: { ++ ret->driverPrivate = pixmap = xmir_glamor_win_get_back(xmir_screen, xmir_window, pDraw); ++ bo = xmir_pixmap_get(pixmap)->bo; ++ break; ++ } ++ default: ++ ErrorF("Unsupported attachment %i\n", attachment); ++ return NULL; ++ } ++ ++ if (!bo) { ++ ErrorF("Cannot create a %u attachment for a %u\n", attachment, pDraw->type); ++ free(ret); ++ return NULL; ++ } ++ DebugF("Allocated a %u attachment for %p/%u\n", attachment, pDraw, pDraw->type); ++ ret->pitch = gbm_bo_get_stride(bo); ++ xmir_dri2_flink(xmir_screen->drm_fd, gbm_bo_get_handle(bo).u32, &ret->name); ++ return ret; ++} ++ ++static void ++xmir_dri2_destroy_buffer(ScreenPtr screen, DrawablePtr pDraw, DRI2BufferPtr buf) ++{ ++ DebugF("DestroyBuffer %p/%u\n", buf, buf->attachment); ++ ++ if (buf->driverPrivate) ++ screen->DestroyPixmap(buf->driverPrivate); ++ free(buf); ++} ++ ++static void ++xmir_dri2_copy_region(ScreenPtr pScreen, DrawablePtr draw, RegionPtr region, ++ DRI2BufferPtr dest, DRI2BufferPtr src) ++{ ++ struct xmir_window *xmir_window = NULL; ++ ScreenPtr screen = draw->pScreen; ++ ++ if (draw->type != DRAWABLE_WINDOW) ++ FatalError("Can't copy :-(\n"); ++ ++ if (src->attachment == DRI2BufferFakeFrontLeft && dest->attachment == DRI2BufferFrontLeft) ++ ErrorF("glXWaitGL\n"); ++ else if (src->attachment == DRI2BufferFrontLeft && dest->attachment == DRI2BufferFakeFrontLeft) ++ ErrorF("glXWaitX\n"); ++ else { ++ /* No swap interval, copy to front */ ++ int dx, dy; ++ PixmapPtr dsrc = src->driverPrivate; ++ PixmapPtr pixmap; ++ ++ if (draw->type == DRAWABLE_WINDOW) { ++ pixmap = screen->GetWindowPixmap((WindowPtr)draw); ++ xmir_window = xmir_window_get((WindowPtr)draw); ++ } else ++ pixmap = (PixmapPtr)draw; ++ ++ dx = draw->x - pixmap->screen_x; ++ dy = draw->y - pixmap->screen_y; ++ ++ DebugF("Copying region! from %p/%u to %p/%u on %p/%u\n", ++ src, src->attachment, dest, dest->attachment, draw, draw->type); ++ ++ glamor_set_destination_pixmap(pixmap); ++ xmir_glamor_copy_egl_common(&dsrc->drawable, dsrc, glamor_get_pixmap_private(dsrc), ++ RegionExtents(region), dsrc->drawable.width, dsrc->drawable.height, ++ dx, dy, xmir_window ? xmir_window->orientation : 0); ++ ++ RegionTranslate(region, draw->x, draw->y); ++ DamageDamageRegion(draw, region); ++ } ++} ++ ++static int ++xmir_dri2_schedule_swap(ClientPtr client, DrawablePtr draw, DRI2BufferPtr dest, DRI2BufferPtr src, ++ CARD64 *target_msc, CARD64 divisor, CARD64 remainder, ++ DRI2SwapEventPtr func, void *data) ++{ ++ ScreenPtr screen = draw->pScreen; ++ struct xmir_pixmap *xmir_pixmap; ++ struct xmir_window *xmir_window = NULL; ++ PixmapPtr pixmap; ++ int type; ++ RegionRec region; ++ int ret = 1; ++ ++ /* Noop on a glxpixmap */ ++ if (draw->type == DRAWABLE_WINDOW) { ++ xmir_window = xmir_window_get((WindowPtr)draw); ++ pixmap = screen->GetWindowPixmap((WindowPtr)draw); ++ ++ /* Make sure DRI2GetBuffers blocks, there is no updated buffer until the next flip */ ++ DRI2SwapLimit(draw, 1); ++ } else { ++ pixmap = (PixmapPtr)draw; ++ memset(target_msc, 0, sizeof(*target_msc)); ++ } ++ ++ xmir_pixmap = xmir_pixmap_get(pixmap); ++ if ((!xmir_pixmap || xmir_pixmap->fake_back) && (!xmir_window || !xmir_window->surface)) { ++ PixmapRegionInit(®ion, src->driverPrivate); ++ ++ if (draw->width == pixmap->drawable.width && draw->height == pixmap->drawable.height) { ++ glamor_pixmap_fbo *glamor_front, *glamor_back; ++ struct xmir_pixmap swap_pix; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ ++ /* Exchange pixmap data with the front glamor pixmap, and update src name/pitch */ ++ DebugF("%s: Exchanging glamor pixmap from %ux%u to %ux%u\n", ++ GetClientCmdName(client), draw->width, draw->height, ++ pixmap->drawable.width, pixmap->drawable.height); ++ type = DRI2_EXCHANGE_COMPLETE; ++ ++ src->pitch = gbm_bo_get_stride(xmir_pixmap->bo); ++ xmir_dri2_flink(xmir_screen->drm_fd, gbm_bo_get_handle(xmir_pixmap->bo).u32, &src->name); ++ ++ glamor_front = glamor_pixmap_detach_fbo(glamor_get_pixmap_private(pixmap)); ++ glamor_back = glamor_pixmap_detach_fbo(glamor_get_pixmap_private(src->driverPrivate)); ++ ++ glamor_pixmap_attach_fbo(pixmap, glamor_back); ++ glamor_pixmap_attach_fbo(src->driverPrivate, glamor_front); ++ ++ swap_pix = *xmir_pixmap; ++ *xmir_pixmap = *xmir_pixmap_get(src->driverPrivate); ++ *xmir_pixmap_get(src->driverPrivate) = swap_pix; ++ } else { ++ PixmapPtr dsrc = src->driverPrivate; ++ int dx = draw->x - pixmap->screen_x, dy = draw->y - pixmap->screen_y; ++ ++ type = DRI2_BLIT_COMPLETE; ++ glamor_set_destination_pixmap(pixmap); ++ ++ DebugF("%s: Blitting into glamor pixmap from src %u,%u %ux%u@%u draw %u,%u %ux%u@%u to %u,%u %ux%u@%u\n", ++ GetClientCmdName(client), dsrc->drawable.x, dsrc->drawable.y, ++ dsrc->drawable.width, dsrc->drawable.height, dsrc->drawable.depth, ++ draw->x, draw->y, draw->width, draw->height, draw->depth, ++ pixmap->drawable.x, pixmap->drawable.y, ++ pixmap->drawable.width, pixmap->drawable.height, pixmap->drawable.depth); ++ ++ xmir_glamor_copy_egl_common(&dsrc->drawable, dsrc, glamor_get_pixmap_private(dsrc), ++ RegionExtents(®ion), dsrc->drawable.width, dsrc->drawable.height, ++ dx, dy, xmir_window ? xmir_window->orientation : 0); ++ } ++ RegionTranslate(®ion, draw->x, draw->y); ++ } else { ++ if (!xmir_window->surface) ++ xmir_window = xmir_window_get(screen->root); ++ ++ if (xmir_window->back_pixmap) ++ FatalError("Swapping twice?\n"); ++ ++ /* Fastest case, no pixels need to be copied! */ ++ type = DRI2_FLIP_COMPLETE; ++ ++ xmir_window->back_pixmap = src->driverPrivate; ++ src->driverPrivate = NULL; ++ ++ DebugF("%s: Queuing flip on %p\n", GetClientCmdName(client), draw); ++ } ++ ++ if (!xmir_window) { ++ DebugF("%s: No window, completing immediately\n", GetClientCmdName(client)); ++ ++ DRI2SwapComplete(client, draw, 0, 0, 0, type, func, data); ++ goto err; ++ } ++ ++ xmir_window->flip = (typeof(xmir_window->flip)){ client, type, draw, func, data, xmir_window->flip.entry }; ++ ++ if (!xmir_window->surface) { ++ struct xorg_list *entry = &xmir_window->flip.entry; ++ ++ if (!xorg_list_is_empty(&xmir_window->flip.entry)) ++ FatalError("%s: Flipping child window repeatedly!\n", GetClientCmdName(client)); ++ ++ while (!xmir_window->surface) { ++ WindowPtr window = xmir_window->window->parent; ++ if (!window) { ++ ErrorF("%s: Could not find mir surface for swapping!\n", GetClientCmdName(client)); ++ ret = 0; ++ goto err; ++ } ++ ++ xmir_window = xmir_window_get(window); ++ } ++ xorg_list_add(entry, &xmir_window->flip.entry); ++ } ++ ++ /* Must report damage after adding flip entry, in case flip completes immediately */ ++ if (type != DRI2_FLIP_COMPLETE) { ++ DamageDamageRegion(draw, ®ion); ++ RegionUninit(®ion); ++ } else ++ DamageReportDamage(xmir_window->damage, &xmir_window->region); ++ ++ return 1; ++ ++err: ++ RegionUninit(®ion); ++ DRI2SwapLimit(draw, 2); ++ return ret; ++} ++ ++static Bool ++xmir_dri2_swap_limit_validate(DrawablePtr draw, int swap_limit) ++{ ++ if ((swap_limit < 1) || (swap_limit > 2)) ++ return FALSE; ++ ++ return TRUE; ++} ++ ++static int xmir_dri_get_msc(DrawablePtr draw, CARD64 *ust, CARD64 *msc) ++{ ++ /* TODO: Implement this properly after Mir implements it. */ ++ const uint64_t now_us = GetTimeInMicros(); ++ const uint64_t fake_frame_rate_hz = 60; ++ const uint64_t fake_frame_time_us = 1000000 / fake_frame_rate_hz; ++ const uint64_t fake_msc = now_us / fake_frame_time_us; ++ const uint64_t fake_ust = fake_msc * fake_frame_time_us; ++ if (ust) ++ *(uint64_t*)ust = fake_ust; ++ if (msc) ++ *(uint64_t*)msc = fake_msc; ++ return Success; ++} ++ ++Bool ++xmir_dri2_screen_init(struct xmir_screen *xmir_screen) ++{ ++ const char *driverNames[2]; ++ Bool ret; ++ drmVersion *vers = drmGetVersion(xmir_screen->drm_fd); ++ const char *driver; ++ ++ if (!vers) ++ return FALSE; ++ ++ xmir_screen->dri2.version = 9; ++ ++ /* Abuse the megablob ability to load all needed drivers */ ++ if (!strcmp(vers->name, "radeon")) ++ driver = "r600"; ++ else ++ driver = vers->name; ++ ++ driverNames[0] = driverNames[1] = xmir_screen->driver_name = strdup(driver); ++ drmFreeVersion(vers); ++ ++ /* As far as I can tell, only legacy AuthMagic has a use for the fd.. oh well */ ++ xmir_screen->dri2.fd = xmir_screen->drm_fd; ++ xmir_screen->dri2.driverName = driverNames[0]; ++ xmir_screen->dri2.deviceName = xmir_screen->device_name; ++ ++ xmir_screen->dri2.numDrivers = 2; ++ xmir_screen->dri2.driverNames = driverNames; ++ ++ /* 6 */ ++ xmir_screen->dri2.ReuseBufferNotify = xmir_dri2_reusebuffer_notify; ++ xmir_screen->dri2.SwapLimitValidate = xmir_dri2_swap_limit_validate; ++ xmir_screen->dri2.ScheduleSwap = xmir_dri2_schedule_swap; ++ xmir_screen->dri2.GetMSC = xmir_dri_get_msc; ++ ++ /* 8 */ ++ xmir_screen->dri2.AuthMagic2 = xmir_dri2_auth_magic; ++ ++ /* 9 */ ++ xmir_screen->dri2.CreateBuffer2 = xmir_dri2_create_buffer; ++ xmir_screen->dri2.DestroyBuffer2 = xmir_dri2_destroy_buffer; ++ xmir_screen->dri2.CopyRegion2 = xmir_dri2_copy_region; ++ ++ ret = DRI2ScreenInit(xmir_screen->screen, &xmir_screen->dri2); ++ return ret; ++} +diff --git a/hw/xmir/xmir-glamor.c b/hw/xmir/xmir-glamor.c +new file mode 100644 +index 0000000..61d4c10 +--- /dev/null ++++ b/hw/xmir/xmir-glamor.c +@@ -0,0 +1,1164 @@ ++/* ++ * Copyright © 2015 Canonical Ltd ++ * ++ * Permission to use, copy, modify, distribute, and sell this software ++ * and its documentation for any purpose is hereby granted without ++ * fee, provided that the above copyright notice appear in all copies ++ * and that both that copyright notice and this permission notice ++ * appear in supporting documentation, and that the name of the ++ * copyright holders not be used in advertising or publicity ++ * pertaining to distribution of the software without specific, ++ * written prior permission. The copyright holders make no ++ * representations about the suitability of this software for any ++ * purpose. It is provided "as is" without express or implied ++ * warranty. ++ * ++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS ++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND ++ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++/* include glamor_priv instead of the public headers to get the prototype for glamor_copy_n_to_n */ ++#include "glamor_priv.h" ++#include "xmir.h" ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++#define MESA_EGL_NO_X11_HEADERS ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static void ++xmir_glamor_egl_make_current(struct glamor_context *glamor_ctx) ++{ ++ if (!glamor_ctx->drawable) ++ eglMakeCurrent(glamor_ctx->display, EGL_NO_SURFACE, ++ EGL_NO_SURFACE, EGL_NO_CONTEXT); ++ ++ if (!eglMakeCurrent(glamor_ctx->display, ++ glamor_ctx->drawable, glamor_ctx->drawable, ++ glamor_ctx->ctx)) ++ FatalError("Failed to make EGL context current\n"); ++} ++ ++void ++glamor_egl_screen_init(ScreenPtr screen, struct glamor_context *glamor_ctx) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ ++ glamor_ctx->ctx = xmir_screen->egl_context; ++ glamor_ctx->display = xmir_screen->egl_display; ++ ++ glamor_ctx->make_current = xmir_glamor_egl_make_current; ++ glamor_ctx->drawable = xmir_screen->egl_surface; ++ ++ xmir_screen->glamor_ctx = glamor_ctx; ++} ++ ++static PixmapPtr ++xmir_glamor_win_reuse_pixmap(struct xmir_screen *xmir_screen, struct xmir_window *xmir_win, DrawablePtr draw) ++{ ++ struct xmir_pixmap *xmir_pixmap; ++ PixmapPtr ret; ++ ++ if (!xmir_win->reuse_pixmap) ++ return NULL; ++ ++ ret = xmir_win->reuse_pixmap; ++ xmir_win->reuse_pixmap = NULL; ++ ++ xmir_pixmap = xmir_pixmap_get(ret); ++ eglDestroyImageKHR(xmir_screen->egl_display, xmir_pixmap->image); ++ gbm_bo_destroy(xmir_pixmap->bo); ++ memset(xmir_pixmap, 0, sizeof(*xmir_pixmap)); ++ return ret; ++} ++ ++PixmapPtr ++xmir_glamor_win_get_back(struct xmir_screen *xmir_screen, struct xmir_window *xmir_win, DrawablePtr draw) ++{ ++ ScreenPtr screen = xmir_screen->screen; ++ struct xmir_pixmap *xmir_pixmap; ++ PixmapPtr ret = NULL; ++ struct gbm_bo *bo; ++ unsigned int tex; ++ ++ if (xmir_win) { ++ if (xmir_win->back_pixmap) { ++ ErrorF("Uh oh!\n"); ++ return xmir_win->back_pixmap; ++ } ++ ++ ret = xmir_glamor_win_reuse_pixmap(xmir_screen, xmir_win, draw); ++ } ++ ++ if (!ret) ++ ret = screen->CreatePixmap(screen, ++ draw->width, draw->height, draw->depth, ++ XMIR_CREATE_PIXMAP_USAGE_FLIP); ++ ++ xmir_pixmap = xmir_pixmap_get(ret); ++ ++ if (xmir_win && xmir_win->surface) { ++ MirNativeBuffer *buffer; ++ struct gbm_import_fd_data gbm_data; ++ ++ mir_buffer_stream_get_current_buffer(mir_surface_get_buffer_stream(xmir_win->surface), &buffer); ++ ++ gbm_data.fd = buffer->fd[0]; ++ gbm_data.width = buffer->width; ++ gbm_data.height = buffer->height; ++ gbm_data.stride = buffer->stride; ++ gbm_data.format = GBM_FORMAT_ARGB8888; /* TODO: detect this properly */ ++ ++ bo = gbm_bo_import(xmir_screen->gbm, GBM_BO_IMPORT_FD, &gbm_data, GBM_BO_USE_RENDERING); ++ xmir_pixmap->fake_back = false; ++ } else { ++ bo = gbm_bo_create(xmir_screen->gbm, draw->width, draw->height, ++ GBM_FORMAT_ARGB8888, ++ GBM_BO_USE_RENDERING); ++ xmir_pixmap->fake_back = true; ++ } ++ if (!bo) ++ FatalError("Failed to allocate bo\n"); ++ ++ ret->devKind = gbm_bo_get_stride(bo); ++ xmir_pixmap->bo = bo; ++ xmir_pixmap->image = eglCreateImageKHR(xmir_screen->egl_display, xmir_screen->egl_context, EGL_NATIVE_PIXMAP_KHR, bo, NULL); ++ ++ glGenTextures(1, &tex); ++ glBindTexture(GL_TEXTURE_2D, tex); ++ glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, xmir_pixmap->image); ++ glBindTexture(GL_TEXTURE_2D, 0); ++ glamor_set_pixmap_texture(ret, tex); ++ ++ return ret; ++} ++ ++static void ++complete_flips(struct xmir_window *xmir_win) ++{ ++ if (xmir_win->flip.client) { ++ DebugF("Flipping on %p\n", xmir_win->window); ++ ++ DRI2SwapComplete(xmir_win->flip.client, xmir_win->flip.draw, 0, 0, 0, xmir_win->flip.type, xmir_win->flip.func, xmir_win->flip.data); ++ DRI2SwapLimit(xmir_win->flip.draw, 2); ++ xmir_win->flip.client = NULL; ++ } ++ ++ if (!xmir_win->surface) { ++ xorg_list_del(&xmir_win->flip.entry); ++ return; ++ } ++ ++ while (!xorg_list_is_empty(&xmir_win->flip.entry)) { ++ struct xmir_window *xwin = xorg_list_first_entry(&xmir_win->flip.entry, struct xmir_window, flip.entry); ++ struct xmir_flip *flip = &xwin->flip; ++ ++ DebugF("Flipping child %p\n", xwin->window); ++ ++ DRI2SwapComplete(flip->client, flip->draw, 0, 0, 0, flip->type, flip->func, flip->data); ++ DRI2SwapLimit(flip->draw, 2); ++ flip->client = NULL; ++ xorg_list_del(&flip->entry); ++ } ++} ++ ++static void ++xmir_glamor_copy_egl_tex(int fbo, DrawablePtr src, PixmapPtr src_pixmap, glamor_pixmap_private *src_pixmap_priv, BoxPtr box, EGLint width, EGLint height, int dstx, int dsty, int orientation) ++{ ++ glamor_screen_private *glamor_priv = glamor_get_screen_private(src->pScreen); ++ struct xmir_screen *xmir_screen = xmir_screen_get(src->pScreen); ++ float vertices[8], texcoords[8]; ++ GLfloat src_xscale, src_yscale, dst_xscale = 1.0 / width, dst_yscale = 1.0 / height; ++ int dx, dy; ++ ++ bool reflect_x = false; ++ bool reflect_y = false; ++ bool swap_xy = false; ++ BoxRec dbox; ++ ++ /* reflection test parameters */ ++ bool magic_x_invert = false, magic_y_invert = false; ++ ++ if (xmir_screen->doubled) { ++ dst_xscale /= (1. + xmir_screen->doubled); ++ dst_yscale /= (1. + xmir_screen->doubled); ++ } ++ ++ if (magic_x_invert) ++ reflect_x = !reflect_x; ++ ++ if (magic_y_invert) ++ reflect_y = !reflect_y; ++ ++ switch (orientation) { ++ case 90: ++ reflect_y = !reflect_y; reflect_x = !reflect_x; swap_xy = true; break; ++ case 180: ++ reflect_x = !reflect_x; reflect_y = !reflect_y; break; ++ case 270: ++ swap_xy = true; break; ++ } ++ ++ glamor_get_drawable_deltas(src, src_pixmap, &dx, &dy); ++ ++ pixmap_priv_get_scale(src_pixmap_priv, &src_xscale, &src_yscale); ++ ++ if (src_pixmap_priv->gl_fbo == GLAMOR_FBO_UNATTACHED) ++ FatalError("aeiou\n"); ++ ++ glViewport(dx, dy, width + dx, height + dy); ++ ++ glVertexAttribPointer(GLAMOR_VERTEX_POS, 2, GL_FLOAT, ++ GL_FALSE, 2 * sizeof(float), vertices); ++ glEnableVertexAttribArray(GLAMOR_VERTEX_POS); ++ ++ if (!fbo) { ++ glActiveTexture(GL_TEXTURE0); ++ glBindTexture(GL_TEXTURE_2D, src_pixmap_priv->fbo->tex); ++ ++ if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) { ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); ++ } ++ } ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); ++ ++ glVertexAttribPointer(GLAMOR_VERTEX_SOURCE, 2, GL_FLOAT, GL_FALSE, ++ 2 * sizeof(float), texcoords); ++ glEnableVertexAttribArray(GLAMOR_VERTEX_SOURCE); ++ if (!fbo) { ++ glUseProgram(glamor_priv->finish_access_prog[0]); ++ glUniform1i(glamor_priv->finish_access_revert[0], REVERT_NONE); ++ glUniform1i(glamor_priv->finish_access_swap_rb[0], SWAP_NONE_UPLOADING); ++ } ++ ++ if (!swap_xy) { ++ float _tx1, _tx2, _ty1, _ty2; ++ ++ if (reflect_x) { ++ dbox.x1 = box->x2 + dstx; ++ dbox.x2 = box->x1 + dstx; ++ } else { ++ dbox.x1 = box->x1 + dstx; ++ dbox.x2 = box->x2 + dstx; ++ } ++ ++ if (reflect_y) { ++ dbox.y1 = box->y2 + dsty; ++ dbox.y2 = box->y1 + dsty; ++ } else { ++ dbox.y1 = box->y1 + dsty; ++ dbox.y2 = box->y2 + dsty; ++ } ++ ++ _tx1 = v_from_x_coord_x(dst_xscale, dbox.x1); ++ _tx2 = v_from_x_coord_x(dst_xscale, dbox.x2); ++ ++ _ty1 = v_from_x_coord_y(dst_yscale, dbox.y1); ++ _ty2 = v_from_x_coord_y(dst_yscale, dbox.y2); ++ ++ /* upper left */ ++ vertices[0] = _tx1; ++ vertices[1] = _ty1; ++ ++ /* upper right */ ++ vertices[2] = _tx2; ++ vertices[3] = _ty1; ++ ++ /* bottom right */ ++ vertices[4] = _tx2; ++ vertices[5] = _ty2; ++ ++ /* bottom left */ ++ vertices[6] = _tx1; ++ vertices[7] = _ty2; ++ } else { ++ float _tx1, _tx2, _ty1, _ty2; ++ ++ if (reflect_x) { ++ dbox.y1 = box->x2 + dstx; ++ dbox.y2 = box->x1 + dstx; ++ } else { ++ dbox.y1 = box->x1 + dstx; ++ dbox.y2 = box->x2 + dstx; ++ } ++ ++ if (reflect_y) { ++ dbox.x1 = box->y2 + dsty; ++ dbox.x2 = box->y1 + dsty; ++ } else { ++ dbox.x1 = box->y1 + dsty; ++ dbox.x2 = box->y2 + dsty; ++ } ++ ++ _tx1 = v_from_x_coord_x(dst_xscale, dbox.x1); ++ _tx2 = v_from_x_coord_x(dst_xscale, dbox.x2); ++ ++ _ty1 = v_from_x_coord_y(dst_yscale, dbox.y1); ++ _ty2 = v_from_x_coord_y(dst_yscale, dbox.y2); ++ ++ /* upper right */ ++ vertices[0] = _tx2; ++ vertices[1] = _ty1; ++ ++ /* bottom right */ ++ vertices[2] = _tx2; ++ vertices[3] = _ty2; ++ ++ /* bottom left */ ++ vertices[4] = _tx1; ++ vertices[5] = _ty2; ++ ++ /* upper left */ ++ vertices[6] = _tx1; ++ vertices[7] = _ty1; ++ } ++ ++ if (orientation) ++ DebugF("(%u,%u)(%u,%u) -> (%u,%u)(%u,%u) with %u orientation\n", ++ box->x1 + dx, box->y1 + dy, box->x2 + dx, box->y2 + dy, ++ dbox.x1, dbox.y1, dbox.x2, dbox.y2, orientation); ++ ++ glamor_set_normalize_tcoords_ext(src_pixmap_priv, ++ src_xscale, src_yscale, ++ box->x1 + dx, box->y1 + dy, ++ box->x2 + dx, box->y2 + dy, ++ texcoords, 2); ++ glDrawArrays(GL_TRIANGLE_FAN, 0, 4); ++ ++ glDisableVertexAttribArray(GLAMOR_VERTEX_POS); ++ glDisableVertexAttribArray(GLAMOR_VERTEX_SOURCE); ++} ++ ++void ++xmir_glamor_copy_egl_common(DrawablePtr src, PixmapPtr src_pixmap, ++ glamor_pixmap_private *src_pixmap_priv, ++ BoxPtr ext, int width, int height, int dx, int dy, ++ int orientation) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(src->pScreen); ++ DebugF("Box: (%i,%i)->(%i,%i)\n", ext->x1, ext->y1, ext->x2, ext->y2); ++ ++ if (xmir_screen->glamor_has_GL_EXT_framebuffer_blit && ++ !xmir_screen->doubled && !orientation) { ++ glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, src_pixmap_priv->fbo->fb); ++ ++ glBlitFramebuffer(ext->x1, ext->y2, ext->x2, ext->y1, ++ ext->x1 + dx, ext->y2 + dy, ext->x2 + dx, ext->y1 + dy, ++ GL_COLOR_BUFFER_BIT, GL_LINEAR); ++ } else ++ xmir_glamor_copy_egl_tex(0, src, src_pixmap, src_pixmap_priv, ext, width, height, dx, dy, orientation); ++} ++ ++static void ++xmir_glamor_copy_gbm(struct xmir_screen *xmir_screen, struct xmir_window *xmir_win, RegionPtr dirty) ++{ ++ ScreenPtr screen = xmir_screen->screen; ++ WindowPtr window = xmir_win->window; ++ ++ if (lastGLContext != xmir_screen->egl_context) { ++ lastGLContext = xmir_screen->egl_context; ++ xmir_glamor_egl_make_current(xmir_screen->glamor_ctx); ++ } ++ ++ complete_flips(xmir_win); ++ ++ if (xmir_win->front_pixmap) { ++ if (xmir_win->reuse_pixmap) { ++ ErrorF("Got too many buffers!\n"); ++ screen->DestroyPixmap(xmir_win->reuse_pixmap); ++ } ++ ++ xmir_win->reuse_pixmap = xmir_win->front_pixmap; ++ } ++ ++ if (!xmir_win->back_pixmap) { ++ PixmapPtr back = xmir_glamor_win_get_back(xmir_screen, xmir_win, &window->drawable); ++ PixmapPtr from = screen->GetWindowPixmap(window); ++ glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(back); ++ ++ glBindFramebuffer(GL_FRAMEBUFFER, pixmap_priv->fbo->fb); ++ xmir_glamor_copy_egl_common(&window->drawable, from, glamor_get_pixmap_private(from), ++ RegionExtents(dirty), ++ back->drawable.width, back->drawable.height, 0, 0, xmir_win->orientation); ++ ++ xmir_win->front_pixmap = back; ++ glBindFramebuffer(GL_FRAMEBUFFER, 0); ++ } else { ++ xmir_win->front_pixmap = xmir_win->back_pixmap; ++ xmir_win->back_pixmap = NULL; ++ } ++} ++ ++static GLint xmir_glamor_passthrough_prog(ScreenPtr screen) ++{ ++ const char *vs_source = ++ "attribute vec4 v_position;\n" ++ "attribute vec4 v_texcoord0;\n" ++ "varying vec2 source_texture;\n" ++ "void main()\n" ++ "{\n" ++ " gl_Position = v_position;\n" ++ " source_texture = v_texcoord0.xy;\n" ++ "}\n"; ++ ++ const char *fs_source = ++ GLAMOR_DEFAULT_PRECISION ++ "varying vec2 source_texture;\n" ++ "uniform sampler2D sampler;\n" ++ "void main()\n" ++ "{\n" ++ " gl_FragColor = texture2D(sampler, source_texture);\n" ++ "}\n"; ++ ++ ++ GLint fs_prog, vs_prog; ++ GLint sampler_uniform_location; ++ GLint passthrough_prog = glCreateProgram(); ++ ++ vs_prog = glamor_compile_glsl_prog(GL_VERTEX_SHADER, vs_source); ++ ++ fs_prog = glamor_compile_glsl_prog(GL_FRAGMENT_SHADER, fs_source); ++ ++ glAttachShader(passthrough_prog, vs_prog); ++ glAttachShader(passthrough_prog, fs_prog); ++ ++ glBindAttribLocation(passthrough_prog, ++ GLAMOR_VERTEX_POS, "v_position"); ++ glBindAttribLocation(passthrough_prog, ++ GLAMOR_VERTEX_SOURCE, "v_texcoord0"); ++ glamor_link_glsl_prog(screen, passthrough_prog, ++ "finish swap through blit"); ++ ++ sampler_uniform_location = ++ glGetUniformLocation(passthrough_prog, "sampler"); ++ glUseProgram(passthrough_prog); ++ glUniform1i(sampler_uniform_location, 0); ++ ++ return passthrough_prog; ++} ++ ++static void * ++xmir_glamor_flip(void *data) ++{ ++ struct xmir_screen *xmir_screen = data; ++ struct glamor_screen_private *glamor_priv = ++ glamor_get_screen_private(xmir_screen->screen); ++ int passthrough_prog; ++ GLuint tex; ++ ++ pthread_mutex_lock(&xmir_screen->mutex); ++ if (xmir_screen->alive < 0) ++ pthread_exit(NULL); ++ ++ if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) ++ eglBindAPI(EGL_OPENGL_API); ++ ++ xmir_screen->alive = 1; ++ if (!eglMakeCurrent(xmir_screen->egl_display, xmir_screen->swap_surface, xmir_screen->swap_surface, xmir_screen->swap_context)) ++ ErrorF("eglMakeCurrent failed: %x\n", eglGetError()); ++ passthrough_prog = xmir_glamor_passthrough_prog(xmir_screen->screen); ++ ++ glGenTextures(1, &tex); ++ glBindTexture(GL_TEXTURE_2D, tex); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); ++ ++ if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) { ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); ++ } ++ ++ while (xmir_screen->alive >= 0) { ++ if (xorg_list_is_empty(&xmir_screen->swap_list)) ++ pthread_cond_wait(&xmir_screen->cond, &xmir_screen->mutex); ++ ++ while (!xorg_list_is_empty(&xmir_screen->swap_list)) { ++ struct xmir_window *xmir_win; ++ Bool ret; ++ EGLint val, width, height; ++ PixmapPtr src_pixmap; ++ ++ xmir_win = xorg_list_first_entry(&xmir_screen->swap_list, struct xmir_window, flip.entry); ++ ++ DebugF("Handling %p\n", xmir_win); ++ if (xmir_win->flip.data) { ++ val = eglClientWaitSync(xmir_screen->egl_display, xmir_win->flip.data, 0, 1000000000); ++ if (val != EGL_CONDITION_SATISFIED_KHR) ++ ErrorF("eglClientWaitSync failed: %x/%x\n", val, eglGetError()); ++ eglDestroySync(xmir_screen->egl_display, xmir_win->flip.data); ++ } ++ ++ ret = eglMakeCurrent(xmir_screen->egl_display, xmir_win->egl_surface, xmir_win->egl_surface, xmir_screen->swap_context); ++ if (!ret) ++ ErrorF("eglMakeCurrent failed: %x\n", eglGetError()); ++ ++ glClearColor(0., 1., 0., 1.); ++ glClear(GL_COLOR_BUFFER_BIT); ++ ++ glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, ++ (GLeglImageOES)xmir_win->image); ++ ++ eglQuerySurface(xmir_screen->egl_display, xmir_win->egl_surface, EGL_HEIGHT, &height); ++ eglQuerySurface(xmir_screen->egl_display, xmir_win->egl_surface, EGL_WIDTH, &width); ++ src_pixmap = xmir_screen->screen->GetWindowPixmap(xmir_win->window); ++ xmir_glamor_copy_egl_tex(1, &xmir_win->window->drawable, src_pixmap, glamor_get_pixmap_private(src_pixmap), RegionExtents(&xmir_win->region), width, height, 0, 0, xmir_win->orientation); ++ ++ ret = eglSwapBuffers(xmir_screen->egl_display, xmir_win->egl_surface); ++ if (!ret) ++ ErrorF("eglSwapBuffers failed: %x\n", eglGetError()); ++ ret = eglMakeCurrent(xmir_screen->egl_display, xmir_screen->swap_surface, xmir_screen->swap_surface, xmir_screen->swap_context); ++ if (!ret) ++ ErrorF("eglMakeCurrent failed: %x\n", eglGetError()); ++ ++ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL); ++ xorg_list_del(&xmir_win->flip.entry); ++ xmir_post_to_eventloop(xmir_handle_buffer_available, xmir_screen, ++ xmir_win, 0); ++ } ++ } ++ glDeleteTextures(1, &tex); ++ glDeleteProgram(passthrough_prog); ++ if (!eglMakeCurrent(xmir_screen->egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)) ++ ErrorF("eglMakeCurrent failed: %x\n", eglGetError()); ++ pthread_mutex_unlock(&xmir_screen->mutex); ++ ++ return NULL; ++} ++ ++static void ++xmir_glamor_copy_egl_direct(struct xmir_screen *xmir_screen, struct xmir_window *xmir_win, RegionPtr dirty) ++{ ++ ScreenPtr screen = xmir_screen->screen; ++ WindowPtr window = xmir_win->window; ++ PixmapPtr src_pixmap = screen->GetWindowPixmap(window); ++ glamor_pixmap_private *src_pixmap_priv = glamor_get_pixmap_private(src_pixmap); ++ ++ BoxPtr ext = RegionExtents(dirty); ++ EGLint width, height; ++ ++ lastGLContext = xmir_screen->egl_context; ++ ++ if (!eglMakeCurrent(xmir_screen->egl_display, xmir_win->egl_surface, xmir_win->egl_surface, xmir_screen->egl_context)) ++ ErrorF("Failed to make current!\n"); ++ ++ if (epoxy_is_desktop_gl()) ++ glDrawBuffer(GL_BACK); ++ ++ glBindFramebuffer(GL_FRAMEBUFFER, 0); ++ ++ eglQuerySurface(xmir_screen->egl_display, xmir_win->egl_surface, EGL_HEIGHT, &height); ++ eglQuerySurface(xmir_screen->egl_display, xmir_win->egl_surface, EGL_WIDTH, &width); ++ xmir_glamor_copy_egl_common(&window->drawable, src_pixmap, src_pixmap_priv, ext, width, height, 0, 0, xmir_win->orientation); ++ eglSwapBuffers(xmir_screen->egl_display, xmir_win->egl_surface); ++} ++ ++static void ++xmir_glamor_copy_egl_queue(struct xmir_screen *xmir_screen, struct xmir_window *xmir_win, RegionPtr dirty) ++{ ++ void *sync_fd = NULL; ++ ScreenPtr screen = xmir_screen->screen; ++ WindowPtr window = xmir_win->window; ++ PixmapPtr src_pixmap = screen->GetWindowPixmap(window); ++ glamor_pixmap_private *src_pixmap_priv = glamor_get_pixmap_private(src_pixmap); ++ ++ if (lastGLContext != xmir_screen->egl_context) { ++ lastGLContext = xmir_screen->egl_context; ++ xmir_glamor_egl_make_current(xmir_screen->glamor_ctx); ++ } ++ ++ if (!xmir_win->image) { ++ EGLint attribs[] = { ++ EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, ++ EGL_GL_TEXTURE_LEVEL_KHR, 0, ++ EGL_NONE ++ }; ++ ++ /* Keep the image around until resizing is done, and mark image as ++ * external so it won't re-enter the FBO cache. This texture has to ++ * be deleted to allow followup eglCreateImageKHR's to succeed after ++ * rotating back and forth. ++ */ ++ glamor_set_pixmap_type(src_pixmap, GLAMOR_TEXTURE_DRM); ++ src_pixmap_priv->fbo->external = TRUE; ++ ++ xmir_win->image = eglCreateImageKHR(xmir_screen->egl_display, xmir_screen->egl_context, EGL_GL_TEXTURE_2D_KHR, (EGLClientBuffer)(intptr_t)src_pixmap_priv->fbo->tex, attribs); ++ if (!xmir_win->image) { ++ GLint error; ++ ErrorF("eglCreateImageKHR failed with %x\n", eglGetError()); ++ ++ while ((error = eglGetError()) != EGL_SUCCESS) ++ ErrorF("Error stack: %x\n", error); ++ ++ xmir_glamor_copy_egl_direct(xmir_screen, xmir_win, dirty); ++ return; ++ } ++ } ++ ++ if (epoxy_has_gl_extension("GL_OES_EGL_sync")) ++ sync_fd = eglCreateSyncKHR(xmir_screen->egl_display, EGL_SYNC_FENCE_KHR, NULL); ++ ++ /* Flush work, and the sync_fd if created */ ++ glFlush(); ++ ++ DebugF("Queueing on %p with %p\n", xmir_win, xmir_win->image); ++ ++ pthread_mutex_lock(&xmir_screen->mutex); ++ xmir_win->flip.data = sync_fd; ++ xorg_list_add(&xmir_win->flip.entry, &xmir_screen->swap_list); ++ pthread_mutex_unlock(&xmir_screen->mutex); ++ ++ pthread_cond_signal(&xmir_screen->cond); ++ ++ xmir_win->has_free_buffer = FALSE; ++} ++ ++void ++xmir_glamor_copy(struct xmir_screen *xmir_screen, struct xmir_window *xmir_win, RegionPtr dirty) ++{ ++ if (xmir_screen->gbm) ++ xmir_glamor_copy_gbm(xmir_screen, xmir_win, dirty); ++ else { ++ xorg_list_del(&xmir_win->link_damage); ++ ++ if (!xmir_screen->swap_context) ++ xmir_glamor_copy_egl_direct(xmir_screen, xmir_win, dirty); ++ else ++ xmir_glamor_copy_egl_queue(xmir_screen, xmir_win, dirty); ++ ++ RegionEmpty(dirty); ++ } ++} ++ ++static EGLConfig ++xmir_glamor_get_egl_config(struct xmir_screen *xmir_screen) ++{ ++ EGLConfig eglconfig; ++ EGLint neglconfigs; ++ ++ EGLint attribs[] = { ++ EGL_SURFACE_TYPE, EGL_WINDOW_BIT, ++ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, ++ EGL_COLOR_BUFFER_TYPE, EGL_RGB_BUFFER, ++ EGL_BUFFER_SIZE, 32, ++ EGL_NONE ++ }; ++ ++ if (!epoxy_has_egl_extension(xmir_screen->egl_display, "EGL_KHR_surfaceless_context")) ++ attribs[1] |= EGL_PBUFFER_BIT; ++ ++ if (!eglChooseConfig(xmir_screen->egl_display, attribs, &eglconfig, 1, &neglconfigs) || ++ !neglconfigs) ++ FatalError("Could not create a compatible config!\n"); ++ ++ return eglconfig; ++} ++ ++void ++xmir_glamor_realize_window(struct xmir_screen *xmir_screen, struct xmir_window *xmir_window, WindowPtr window) ++{ ++ EGLConfig eglconfig = xmir_glamor_get_egl_config(xmir_screen); ++ MirEGLNativeWindowType egl_win; ++ ++ if (xmir_screen->gbm) ++ return; ++ ++ egl_win = mir_buffer_stream_get_egl_native_window(mir_surface_get_buffer_stream(xmir_window->surface)); ++ ++ xmir_window->egl_surface = eglCreateWindowSurface(xmir_screen->egl_display, eglconfig, (EGLNativeWindowType)egl_win, NULL); ++} ++ ++void ++xmir_glamor_unrealize_window(struct xmir_screen *xmir_screen, struct xmir_window *xmir_window, WindowPtr window) ++{ ++ ScreenPtr screen = xmir_screen->screen; ++ ++ if (xmir_window->egl_surface) { ++ lastGLContext = NULL; ++ if (!eglMakeCurrent(xmir_screen->egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)) ++ ErrorF("eglMakeCurrent failed: %x\n", eglGetError()); ++ ++ if (!xmir_window->has_free_buffer) { ++ Bool flush = TRUE; ++ ++ pthread_mutex_lock(&xmir_screen->mutex); ++ if (!xorg_list_is_empty(&xmir_window->flip.entry)) { ++ if (xmir_window->flip.data) ++ eglDestroySync(xmir_screen->egl_display, xmir_window->flip.data); ++ xorg_list_del(&xmir_window->flip.entry); ++ flush = FALSE; ++ } ++ pthread_mutex_unlock(&xmir_screen->mutex); ++ ++ if (flush) ++ xmir_process_from_eventloop(); ++ } ++ ++ if (xmir_window->image) ++ eglDestroyImageKHR(xmir_screen->egl_display, xmir_window->image); ++ ++ eglDestroySurface(xmir_screen->egl_display, xmir_window->egl_surface); ++ } ++ ++ complete_flips(xmir_window); ++ ++ if (xmir_window->reuse_pixmap) { ++ screen->DestroyPixmap(xmir_window->reuse_pixmap); ++ xmir_window->reuse_pixmap = NULL; ++ } ++ ++ if (xmir_window->front_pixmap) { ++ screen->DestroyPixmap(xmir_window->front_pixmap); ++ xmir_window->front_pixmap = NULL; ++ } ++ ++ if (xmir_window->back_pixmap) { ++ screen->DestroyPixmap(xmir_window->back_pixmap); ++ xmir_window->back_pixmap = NULL; ++ } ++} ++ ++static void ++xmir_drm_set_gbm_device_response(MirConnection *con, MirPlatformMessage* reply, void* context) ++{ ++ mir_platform_message_release(reply); ++} ++ ++static Bool ++xmir_drm_init_egl(struct xmir_screen *xmir_screen) ++{ ++ EGLint major, minor; ++ const char *version; ++ EGLConfig egl_config; ++ ++ EGLint gles2_attribs[] = { ++ EGL_CONTEXT_CLIENT_VERSION, 2, ++ EGL_CONTEXT_FLAGS_KHR, 0, ++ EGL_NONE ++ }; ++ ++ EGLint pbuffer_attribs[] = { ++ EGL_HEIGHT, 1, ++ EGL_WIDTH, 1, ++ EGL_NONE ++ }; ++ ++ ++ if (xmir_screen->drm_fd > 0) { ++ struct MirMesaSetGBMDeviceRequest req = { ++ .device = gbm_create_device(xmir_screen->drm_fd) ++ }; ++ MirPlatformMessage* msg = mir_platform_message_create(set_gbm_device); ++ ++ xmir_screen->gbm = req.device; ++ if (xmir_screen->gbm == NULL) { ++ ErrorF("couldn't get display device\n"); ++ mir_platform_message_release(msg); ++ return FALSE; ++ } ++ ++ mir_platform_message_set_data(msg, &req, sizeof req); ++ ++ mir_wait_for(mir_connection_platform_operation( ++ xmir_screen->conn, ++ msg, ++ &xmir_drm_set_gbm_device_response, ++ NULL)); ++ mir_platform_message_release(msg); ++ /* In GBM mode no mir functions are used in any way. ++ * This means using the GBM device directly is safe.. */ ++ xmir_screen->egl_display = eglGetDisplay(xmir_screen->gbm); ++ } else ++ xmir_screen->egl_display = eglGetDisplay(mir_connection_get_egl_native_display(xmir_screen->conn)); ++ ++ if (xmir_screen->egl_display == EGL_NO_DISPLAY) { ++ ErrorF("eglGetDisplay() failed\n"); ++ return FALSE; ++ } ++ ++ eglBindAPI(!xmir_screen->gbm ? EGL_OPENGL_ES_API : EGL_OPENGL_API); ++ ++ if (!eglInitialize(xmir_screen->egl_display, &major, &minor)) { ++ ErrorF("eglInitialize() failed\n"); ++ return FALSE; ++ } ++ ++ version = eglQueryString(xmir_screen->egl_display, EGL_VERSION); ++ ErrorF("glamor EGL version: %s\n", version); ++ ErrorF("glamor EGL extensions: %s\n", eglQueryString(xmir_screen->egl_display, EGL_EXTENSIONS)); ++ ++ egl_config = xmir_glamor_get_egl_config(xmir_screen); ++ ++ xmir_screen->egl_context = eglCreateContext(xmir_screen->egl_display, ++ egl_config, EGL_NO_CONTEXT, ++ !xmir_screen->gbm ? gles2_attribs : NULL); ++ if (xmir_screen->egl_context == EGL_NO_CONTEXT) { ++ ErrorF("Failed to create EGL context: %i/%x\n", eglGetError(), eglGetError()); ++ return FALSE; ++ } ++ ++ if (!epoxy_has_egl_extension(xmir_screen->egl_display, "EGL_KHR_surfaceless_context")) { ++ xmir_screen->egl_surface = eglCreatePbufferSurface(xmir_screen->egl_display, egl_config, pbuffer_attribs); ++ } else ++ xmir_screen->egl_surface = EGL_NO_SURFACE; ++ ++ if (!eglMakeCurrent(xmir_screen->egl_display, ++ xmir_screen->egl_surface, xmir_screen->egl_surface, ++ xmir_screen->egl_context)) { ++ ErrorF("Failed to make EGL context current: %i/%x\n", eglGetError(), eglGetError()); ++ return FALSE; ++ } ++ lastGLContext = xmir_screen->egl_context; ++ ++ ErrorF("glamor GL version: %s\n", glGetString(GL_VERSION)); ++ ErrorF("glamor GL extensions: %s\n", glGetString(GL_EXTENSIONS)); ++ ErrorF("glamor GLSL version: %s\n", glGetString(GL_SHADING_LANGUAGE_VERSION)); ++ ++ if (!epoxy_has_gl_extension("GL_OES_EGL_image")) { ++ ErrorF("GL_OES_EGL_image not available\n"); ++ return FALSE; ++ } ++ ++ xmir_screen->glamor_has_GL_EXT_framebuffer_blit = ++ epoxy_has_gl_extension("GL_EXT_framebuffer_blit"); ++ ++ if (!xmir_screen->gbm && xmir_screen->glamor != glamor_egl_sync) { ++ xmir_screen->swap_context = eglCreateContext(xmir_screen->egl_display, egl_config, EGL_NO_CONTEXT, gles2_attribs); ++ if (!xmir_screen->swap_context) { ++ ErrorF("Failed to create EGL context: %i/%x\n", eglGetError(), eglGetError()); ++ return FALSE; ++ } ++ ++ if (xmir_screen->egl_surface) ++ xmir_screen->swap_surface = eglCreatePbufferSurface(xmir_screen->egl_display, egl_config, pbuffer_attribs); ++ ++ xorg_list_init(&xmir_screen->swap_list); ++ } ++ ++ return TRUE; ++} ++ ++static Bool ++xmir_screen_init_glamor_drm(struct xmir_screen *xmir_screen) ++{ ++ xmir_screen->drm_fd = xmir_screen->platform.fd[0]; ++ ++ xmir_screen->device_name = drmGetDeviceNameFromFd(xmir_screen->drm_fd); ++ if (!xmir_screen->device_name) ++ return FALSE; ++ ++ return TRUE; ++} ++ ++Bool ++xmir_screen_init_glamor(struct xmir_screen *xmir_screen) ++{ ++ if (xmir_screen->platform.fd_items >= 1 && ++ xmir_screen->doubled) ++ ErrorF("Disabling DRI2 support because of -2x\n"); ++ ++ if (xmir_screen->platform.fd_items >= 1 && ++ !xmir_screen->doubled && ++ xmir_screen->glamor == glamor_dri && ++ !xmir_screen_init_glamor_drm(xmir_screen)) ++ return FALSE; ++ ++ return xmir_drm_init_egl(xmir_screen); ++} ++ ++void ++xmir_glamor_fini(struct xmir_screen *xmir_screen) ++{ ++ if (xmir_screen->thread) { ++ xmir_screen->alive = -1; ++ ++ pthread_cond_signal(&xmir_screen->cond); ++ pthread_join(xmir_screen->thread, NULL); ++ pthread_cond_destroy(&xmir_screen->cond); ++ pthread_mutex_destroy(&xmir_screen->mutex); ++ } ++ ++ if (xmir_screen->swap_context) ++ eglDestroyContext(xmir_screen->egl_display, xmir_screen->swap_context); ++ ++ if (xmir_screen->swap_surface) ++ eglDestroySurface(xmir_screen->egl_display, xmir_screen->swap_surface); ++ ++ lastGLContext = NULL; ++ if (!eglMakeCurrent(xmir_screen->egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)) ++ ErrorF("eglMakeCurrent failed: %x\n", eglGetError()); ++ if (xmir_screen->egl_surface) ++ eglDestroySurface(xmir_screen->egl_display, xmir_screen->egl_surface); ++ eglDestroyContext(xmir_screen->egl_display, xmir_screen->egl_context); ++ eglTerminate(xmir_screen->egl_display); ++ ++ if (xmir_screen->gbm) ++ gbm_device_destroy(xmir_screen->gbm); ++ free(xmir_screen->device_name); ++} ++ ++void ++glamor_egl_destroy_textured_pixmap(PixmapPtr pixmap) ++{ ++ glamor_destroy_textured_pixmap(pixmap); ++} ++ ++static void ++xmir_glamor_get_name_from_bo(int drm_fd, struct gbm_bo *bo, int *name) ++{ ++ struct drm_gem_flink flink; ++ unsigned handle = gbm_bo_get_handle(bo).u32; ++ ++ flink.handle = handle; ++ if (ioctl(drm_fd, DRM_IOCTL_GEM_FLINK, &flink) < 0) ++ *name = -1; ++ else ++ *name = flink.name; ++} ++ ++static int ++xmir_glamor_get_fd_from_bo(int gbm_fd, struct gbm_bo *bo, int *fd) ++{ ++ union gbm_bo_handle handle; ++ struct drm_prime_handle args; ++ ++ handle = gbm_bo_get_handle(bo); ++ args.handle = handle.u32; ++ args.flags = DRM_CLOEXEC; ++ if (ioctl(gbm_fd, DRM_IOCTL_PRIME_HANDLE_TO_FD, &args)) ++ return FALSE; ++ *fd = args.fd; ++ return TRUE; ++} ++ ++int ++glamor_egl_dri3_fd_name_from_tex(ScreenPtr screen, ++ PixmapPtr pixmap, ++ unsigned int tex, ++ Bool want_name, CARD16 *stride, CARD32 *size) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ struct xmir_pixmap *xmir_pixmap = xmir_pixmap_get(pixmap); ++ struct glamor_screen_private *glamor_priv = ++ glamor_get_screen_private(screen); ++ struct gbm_bo *bo; ++ int fd = -1; ++ ++ EGLint attribs[] = { ++ EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, ++ EGL_GL_TEXTURE_LEVEL_KHR, 0, ++ EGL_NONE ++ }; ++ ++ glamor_make_current(glamor_priv); ++ ++ if (!xmir_pixmap) { ++ void *image; ++ ++ xmir_pixmap = calloc(sizeof(*xmir_pixmap), 1); ++ xmir_pixmap_set(pixmap, xmir_pixmap); ++ ++ xmir_pixmap->fake_back = true; ++ ++ image = eglCreateImageKHR(xmir_screen->egl_display, ++ xmir_screen->egl_context, ++ EGL_GL_TEXTURE_2D_KHR, ++ (EGLClientBuffer) (uintptr_t) ++ tex, attribs); ++ if (image == EGL_NO_IMAGE_KHR) ++ goto failure; ++ xmir_pixmap->image = image; ++ ++ glamor_set_pixmap_type(pixmap, GLAMOR_TEXTURE_DRM); ++ xmir_pixmap->bo = gbm_bo_import(xmir_screen->gbm, GBM_BO_IMPORT_EGL_IMAGE, image, 0); ++ } ++ bo = xmir_pixmap->bo; ++ ++ if (!bo) ++ goto failure; ++ ++ pixmap->devKind = gbm_bo_get_stride(bo); ++ ++ if (want_name) ++ xmir_glamor_get_name_from_bo(xmir_screen->drm_fd, bo, &fd); ++ else ++ xmir_glamor_get_fd_from_bo(xmir_screen->drm_fd, bo, &fd); ++ ++ *stride = pixmap->devKind; ++ *size = pixmap->devKind * gbm_bo_get_height(bo); ++ ++ failure: ++ return fd; ++} ++ ++unsigned int ++glamor_egl_create_argb8888_based_texture(ScreenPtr screen, int w, int h, Bool linear) ++{ ++ return 0; ++} ++ ++static PixmapPtr ++xmir_glamor_create_pixmap(ScreenPtr screen, ++ int width, int height, int depth, unsigned int hint) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ ++ if (width > 0 && height > 0 && depth >= 24 && ++ (hint == 0 || ++ hint == CREATE_PIXMAP_USAGE_BACKING_PIXMAP || ++ hint == CREATE_PIXMAP_USAGE_SHARED || ++ hint == XMIR_CREATE_PIXMAP_USAGE_FLIP)) { ++ struct xmir_pixmap *xmir_pixmap = malloc(sizeof(*xmir_pixmap)); ++ PixmapPtr pixmap = NULL; ++ struct gbm_bo *bo = NULL; ++ void *image = NULL; ++ unsigned int tex = 0; ++ ++ if (!xmir_pixmap) ++ goto free; ++ ++ pixmap = glamor_create_pixmap(screen, width, height, depth, GLAMOR_CREATE_PIXMAP_NO_TEXTURE); ++ if (!pixmap) ++ goto free; ++ ++ glamor_set_pixmap_type(pixmap, GLAMOR_TEXTURE_DRM); ++ ++ if (hint != XMIR_CREATE_PIXMAP_USAGE_FLIP) { ++ bo = gbm_bo_create(xmir_screen->gbm, width, height, ++ GBM_FORMAT_ARGB8888, ++ GBM_BO_USE_RENDERING); ++ ++ if (!bo) ++ goto free; ++ ++ image = eglCreateImageKHR(xmir_screen->egl_display, xmir_screen->egl_context, EGL_NATIVE_PIXMAP_KHR, bo, NULL); ++ if (!image) ++ goto free; ++ ++ glGenTextures(1, &tex); ++ glBindTexture(GL_TEXTURE_2D, tex); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); ++ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); ++ ++ glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, image); ++ glBindTexture(GL_TEXTURE_2D, 0); ++ glamor_set_pixmap_texture(pixmap, tex); ++ } ++ ++ xmir_pixmap->image = image; ++ xmir_pixmap->bo = bo; ++ xmir_pixmap_set(pixmap, xmir_pixmap); ++ xmir_pixmap->fake_back = true; ++ if (bo) ++ pixmap->devKind = gbm_bo_get_stride(bo); ++ ++ if (!glGetError()) ++ return pixmap; ++ ++ ErrorF("Failed to allocate pixmap - a opengl error occured!\n"); ++ ++free: ++ if (tex) ++ glDeleteTextures(1, &tex); ++ ++ if (image) ++ eglDestroyImageKHR(xmir_screen->egl_display, image); ++ ++ if (pixmap) ++ glamor_destroy_pixmap(pixmap); ++ ++ if (bo) ++ gbm_bo_destroy(bo); ++ ++ free(xmir_pixmap); ++ return NULL; ++ } ++ ++ return glamor_create_pixmap(screen, width, height, depth, hint); ++} ++ ++void ++glamor_egl_destroy_pixmap_image(PixmapPtr pixmap) ++{ ++ /* XXX: Unused */ ++} ++ ++static Bool ++xmir_glamor_destroy_pixmap(PixmapPtr pixmap) ++{ ++ struct xmir_pixmap *xmir_pixmap; ++ ++ if (pixmap->refcnt == 1 && (xmir_pixmap = xmir_pixmap_get(pixmap))) { ++ ScreenPtr screen = pixmap->drawable.pScreen; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ Bool ret; ++ ++ ret = glamor_destroy_pixmap(pixmap); ++ if (!ret) ++ return ret; ++ glamor_block_handler(screen); ++ ++ if (xmir_pixmap->image) ++ eglDestroyImageKHR(xmir_screen->egl_display, xmir_pixmap->image); ++ if (xmir_pixmap->bo) ++ gbm_bo_destroy(xmir_pixmap->bo); ++ free(xmir_pixmap); ++ return ret; ++ } ++ ++ return glamor_destroy_pixmap(pixmap); ++} ++ ++Bool ++xmir_glamor_init(struct xmir_screen *xmir_screen) ++{ ++ ScreenPtr screen = xmir_screen->screen; ++ ++ if (xmir_screen->egl_context == EGL_NO_CONTEXT) { ++ ErrorF("Disabling glamor and dri2, EGL setup failed\n"); ++ return FALSE; ++ } ++ ++ if (!glamor_init(screen, ++ GLAMOR_USE_EGL_SCREEN | ++ GLAMOR_NO_DRI3)) { ++ ErrorF("Failed to initialize glamor\n"); ++ return FALSE; ++ } ++ ++ if (xmir_screen->swap_context) { ++ pthread_mutex_init(&xmir_screen->mutex, NULL); ++ pthread_cond_init(&xmir_screen->cond, NULL); ++ pthread_create(&xmir_screen->thread, NULL, xmir_glamor_flip, xmir_screen); ++ } ++ ++ if (xmir_screen->gbm) { ++ screen->CreatePixmap = xmir_glamor_create_pixmap; ++ screen->DestroyPixmap = xmir_glamor_destroy_pixmap; ++ ++ /* Tell the core that we have the interfaces for import/export ++ * of pixmaps. ++ */ ++ glamor_enable_dri3(screen); ++ } ++ ++ return TRUE; ++} +diff --git a/hw/xmir/xmir-input.c b/hw/xmir/xmir-input.c +new file mode 100644 +index 0000000..f9887ea +--- /dev/null ++++ b/hw/xmir/xmir-input.c +@@ -0,0 +1,611 @@ ++/* ++ * Copyright © 2015 Canonical Ltd ++ * ++ * Permission to use, copy, modify, distribute, and sell this software ++ * and its documentation for any purpose is hereby granted without ++ * fee, provided that the above copyright notice appear in all copies ++ * and that both that copyright notice and this permission notice ++ * appear in supporting documentation, and that the name of the ++ * copyright holders not be used in advertising or publicity ++ * pertaining to distribution of the software without specific, ++ * written prior permission. The copyright holders make no ++ * representations about the suitability of this software for any ++ * purpose. It is provided "as is" without express or implied ++ * warranty. ++ * ++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS ++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND ++ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++#include "xmir.h" ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++static void ++xmir_pointer_control(DeviceIntPtr device, PtrCtrl *ctrl) ++{ ++ /* Nothing to do, dix handles all settings */ ++} ++ ++static int ++xmir_pointer_proc(DeviceIntPtr device, int what) ++{ ++#define NBUTTONS 10 ++#define NAXES 4 ++ BYTE map[NBUTTONS + 1]; ++ int i = 0; ++ Atom btn_labels[NBUTTONS] = { 0 }; ++ Atom axes_labels[NAXES] = { 0 }; ++ ++ switch (what) { ++ case DEVICE_INIT: ++ device->public.on = FALSE; ++ ++ for (i = 1; i <= NBUTTONS; i++) ++ map[i] = i; ++ ++ btn_labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT); ++ btn_labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE); ++ btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT); ++ btn_labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP); ++ btn_labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN); ++ btn_labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT); ++ btn_labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT); ++ /* Don't know about the rest */ ++ ++ axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_X); ++ axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_ABS_Y); ++ axes_labels[2] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_HWHEEL); ++ axes_labels[3] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_WHEEL); ++ ++ if (!InitValuatorClassDeviceStruct(device, NAXES, btn_labels, ++ GetMotionHistorySize(), Absolute)) ++ return BadValue; ++ ++ /* Valuators */ ++ InitValuatorAxisStruct(device, 0, axes_labels[0], ++ 0, 0xFFFF, 10000, 0, 10000, Absolute); ++ InitValuatorAxisStruct(device, 1, axes_labels[1], ++ 0, 0xFFFF, 10000, 0, 10000, Absolute); ++ InitValuatorAxisStruct(device, 2, axes_labels[2], ++ NO_AXIS_LIMITS, NO_AXIS_LIMITS, 0, 0, 0, Relative); ++ InitValuatorAxisStruct(device, 3, axes_labels[3], ++ NO_AXIS_LIMITS, NO_AXIS_LIMITS, 0, 0, 0, Relative); ++ ++ SetScrollValuator(device, 2, SCROLL_TYPE_HORIZONTAL, 1.0, SCROLL_FLAG_NONE); ++ SetScrollValuator(device, 3, SCROLL_TYPE_VERTICAL, 1.0, SCROLL_FLAG_PREFERRED); ++ ++ if (!InitPtrFeedbackClassDeviceStruct(device, xmir_pointer_control)) ++ return BadValue; ++ ++ if (!InitButtonClassDeviceStruct(device, 3, btn_labels, map)) ++ return BadValue; ++ ++ return Success; ++ ++ case DEVICE_ON: ++ device->public.on = TRUE; ++ return Success; ++ ++ case DEVICE_OFF: ++ case DEVICE_CLOSE: ++ device->public.on = FALSE; ++ return Success; ++ } ++ ++ return BadMatch; ++ ++#undef NBUTTONS ++#undef NAXES ++} ++ ++static void ++xmir_keyboard_control(DeviceIntPtr device, KeybdCtrl *ctrl) ++{ ++} ++ ++static int ++xmir_keyboard_proc(DeviceIntPtr device, int what) ++{ ++ switch (what) { ++ case DEVICE_INIT: ++ device->public.on = FALSE; ++ if (!InitKeyboardDeviceStructFromString(device, ++ NULL /*xmir_input->keymap*/, 0, ++ NULL, xmir_keyboard_control)) ++ return BadValue; ++ ++ return Success; ++ case DEVICE_ON: ++ device->public.on = TRUE; ++ return Success; ++ ++ case DEVICE_OFF: ++ case DEVICE_CLOSE: ++ device->public.on = FALSE; ++ return Success; ++ } ++ ++ return BadMatch; ++} ++ ++static void ++pointer_convert_xy(struct xmir_input *xmir_input, ++ struct xmir_window *xmir_window, ++ int *x, int *y) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(xmir_window->window->drawable.pScreen); ++ bool reflect_x = false; ++ bool reflect_y = false; ++ bool swap_xy = false; ++ int dx = xmir_window->window->drawable.x; ++ int dy = xmir_window->window->drawable.y; ++ int sx = *x, sy = *y; ++ int scale = 1 + xmir_screen->doubled; ++ int w = xmir_window->window->drawable.width; ++ int h = xmir_window->window->drawable.height; ++ ++ /* reflection test parameters */ ++ bool magic_x_invert = false, magic_y_invert = false; ++ ++ DebugF("Raw input %i,%i in window (%i,%i)->(%i,%i) orientation %i and scale %i\n", *x, *y, dx, dy, dx + w, dy + h, xmir_window->orientation, scale); ++ ++ if (magic_x_invert) ++ reflect_x = !reflect_x; ++ ++ if (magic_y_invert) ++ reflect_y = !reflect_y; ++ ++ switch (xmir_window->orientation) { ++ case 90: ++ reflect_x = !reflect_x; swap_xy = true; break; ++ case 180: ++ reflect_x = !reflect_x; reflect_y = !reflect_y; break; ++ case 270: ++ reflect_y = !reflect_y; swap_xy = true; break; ++ } ++ ++ if (!swap_xy) { ++ sx = *x; ++ sy = *y; ++ } else { ++ sx = *y; ++ sy = *x; ++ } ++ ++ if (!reflect_x) ++ *x = (sx * scale) + dx; ++ else ++ *x = w + dx - (sx * scale); ++ ++ if (!reflect_y) ++ *y = (sy * scale) + dy; ++ else ++ *y = h + dy - (sy * scale); ++ ++ DebugF("Converted to %i, %i\n", *x, *y); ++} ++ ++static Bool ++pointer_ensure_focus(struct xmir_input *xmir_input, ++ struct xmir_window *xmir_window, ++ DeviceIntPtr dev, int sx, int sy) ++{ ++ ScreenPtr screen = xmir_window->window->drawable.pScreen; ++ ++ if (xmir_input->focus_window == xmir_window) ++ return FALSE; ++ ++ if (xmir_input->focus_window) { ++ xmir_input->focus_window = NULL; ++ CheckMotion(NULL, GetMaster(dev, MASTER_POINTER)); ++ } ++ ++ xmir_input->focus_window = xmir_window; ++ ++ pointer_convert_xy(xmir_input, xmir_window, &sx, &sy); ++ ++ (screen->SetCursorPosition) (dev, screen, sx, sy, TRUE); ++ CheckMotion(NULL, GetMaster(dev, MASTER_POINTER)); ++ ++ return TRUE; ++} ++ ++static void ++pointer_handle_motion(struct xmir_input *xmir_input, ++ struct xmir_window *xmir_window, ++ MirPointerEvent const *pev) ++{ ++ int sx = mir_pointer_event_axis_value(pev, mir_pointer_axis_x); ++ int sy = mir_pointer_event_axis_value(pev, mir_pointer_axis_y); ++ float vscroll, hscroll; ++ ValuatorMask mask; ++ ++ pointer_ensure_focus(xmir_input, xmir_window, xmir_input->pointer, sx, sy); ++ ++ pointer_convert_xy(xmir_input, xmir_window, &sx, &sy); ++ ++ valuator_mask_zero(&mask); ++ valuator_mask_set(&mask, 0, sx); ++ valuator_mask_set(&mask, 1, sy); ++ QueuePointerEvents(xmir_input->pointer, MotionNotify, 0, ++ POINTER_ABSOLUTE | POINTER_SCREEN, &mask); ++ ++ vscroll = mir_pointer_event_axis_value(pev, mir_pointer_axis_vscroll); ++ hscroll = mir_pointer_event_axis_value(pev, mir_pointer_axis_hscroll); ++ if (vscroll || hscroll) { ++ valuator_mask_zero(&mask); ++ valuator_mask_set_double(&mask, 3, -vscroll); ++ valuator_mask_set_double(&mask, 2, hscroll); ++ QueuePointerEvents(xmir_input->pointer, MotionNotify, 0, ++ POINTER_RELATIVE, &mask); ++ } ++} ++ ++static void ++pointer_handle_button(struct xmir_input *xmir_input, ++ struct xmir_window *xmir_window, ++ MirPointerEvent const *pev) ++{ ++ DeviceIntPtr dev = xmir_input->pointer; ++ struct {MirPointerButton mir_button; int x_button;} map[3] = ++ { ++ {mir_pointer_button_primary, 1}, /* Usually left button */ ++ {mir_pointer_button_secondary, 3}, /* Middle button */ ++ {mir_pointer_button_tertiary, 2}, /* Right button */ ++ }; ++ int i; ++ ValuatorMask mask; ++ valuator_mask_zero(&mask); ++ ++ for (i = 0; i < 3; ++i) { ++ MirPointerButton mir_button = map[i].mir_button; ++ int x_button = map[i].x_button; ++ int oldstate = BitIsOn(dev->button->down, x_button) ? ++ ButtonPress : ButtonRelease; ++ int newstate = mir_pointer_event_button_state(pev, mir_button) ? ++ ButtonPress : ButtonRelease; ++ ++ if (oldstate != newstate) ++ QueuePointerEvents(dev, newstate, x_button, 0, &mask); ++ } ++ ++ /* XXX: Map rest of input buttons too! */ ++} ++ ++static DeviceIntPtr ++add_device(struct xmir_input *xmir_input, ++ const char *driver, DeviceProc device_proc) ++{ ++ DeviceIntPtr dev = NULL; ++ static Atom type_atom; ++ char name[32]; ++ ++ dev = AddInputDevice(serverClient, device_proc, TRUE); ++ if (dev == NULL) ++ return NULL; ++ ++ if (type_atom == None) ++ type_atom = MakeAtom(driver, strlen(driver), TRUE); ++ snprintf(name, sizeof name, "%s:%d", driver, xmir_input->id); ++ AssignTypeAndName(dev, type_atom, name); ++ dev->public.devicePrivate = xmir_input; ++ dev->type = SLAVE; ++ dev->spriteInfo->spriteOwner = FALSE; ++ ++ return dev; ++} ++ ++static void ++xmir_input_destroy(struct xmir_input *xmir_input) ++{ ++ RemoveDevice(xmir_input->pointer, FALSE); ++ RemoveDevice(xmir_input->keyboard, FALSE); ++ free(xmir_input); ++} ++ ++Bool ++LegalModifier(unsigned int key, DeviceIntPtr pDev) ++{ ++ return TRUE; ++} ++ ++void ++ProcessInputEvents(void) ++{ ++ mieqProcessInputEvents(); ++} ++ ++void ++DDXRingBell(int volume, int pitch, int duration) ++{ ++} ++ ++static WindowPtr ++xmir_xy_to_window(ScreenPtr screen, SpritePtr sprite, int x, int y) ++{ ++ struct xmir_input *xmir_input = NULL; ++ DeviceIntPtr device; ++ ++ for (device = inputInfo.devices; device; device = device->next) { ++ if (device->deviceProc == xmir_pointer_proc && ++ device->spriteInfo->sprite == sprite) { ++ xmir_input = device->public.devicePrivate; ++ break; ++ } ++ } ++ ++ if (xmir_input == NULL) { ++ /* XTEST device */ ++ sprite->spriteTraceGood = 1; ++ return sprite->spriteTrace[0]; ++ } ++ ++ if (xmir_input->focus_window) { ++ sprite->spriteTraceGood = 2; ++ sprite->spriteTrace[1] = xmir_input->focus_window->window; ++ return miSpriteTrace(sprite, x, y); ++ } ++ else { ++ sprite->spriteTraceGood = 1; ++ return sprite->spriteTrace[0]; ++ } ++} ++ ++static void ++fake_touch_move(struct xmir_input *xmir_input, struct xmir_window *xmir_window, int sx, int sy) ++{ ++ ValuatorMask mask; ++ ++ pointer_convert_xy(xmir_input, xmir_window, &sx, &sy); ++ ++ valuator_mask_zero(&mask); ++ valuator_mask_set(&mask, 0, sx); ++ valuator_mask_set(&mask, 1, sy); ++ ++ QueuePointerEvents(xmir_input->touch, MotionNotify, 0, ++ POINTER_ABSOLUTE | POINTER_SCREEN, &mask); ++} ++ ++static void ++xmir_window_handle_input_event(struct xmir_input *xmir_input, ++ struct xmir_window *xmir_window, ++ MirInputEvent const* ev) ++{ ++ switch (mir_input_event_get_type(ev)) { ++ case mir_input_event_type_key: { ++ MirKeyboardEvent const *kev = mir_input_event_get_keyboard_event(ev); ++ MirKeyboardAction action = mir_keyboard_event_action(kev); ++ int code = mir_keyboard_event_scan_code(kev) + 8; ++ ++ /* ++ * Note: mir_keyboard_action_repeat must KeyRelease then KeyPress ++ * because it is already preceded by mir_keyboard_action_down and will ++ * be followed by mir_keyboard_action_up. ++ */ ++ if (action == mir_keyboard_action_up || ++ action == mir_keyboard_action_repeat) { ++ QueueKeyboardEvents(xmir_input->keyboard, KeyRelease, code); ++ } ++ if (action == mir_keyboard_action_down || ++ action == mir_keyboard_action_repeat) { ++ QueueKeyboardEvents(xmir_input->keyboard, KeyPress, code); ++ } ++ break; ++ } ++ case mir_input_event_type_touch: { ++ MirTouchEvent const *tev; ++ int i = 0, count, sx, sy; ++ ValuatorMask mask; ++ ++ tev = mir_input_event_get_touch_event(ev); ++ count = mir_touch_event_point_count(tev); ++ ++ /* Do we really need this multifinger tracking at all?... */ ++ if (count < 1) { ++ xmir_input->touch_id = -1; ++ break; ++ } ++ ++ if (xmir_input->touch_id != -1) { ++ for (i = 0; i < count; ++i) ++ if (mir_touch_event_id(tev, i) == xmir_input->touch_id) ++ break; ++ } ++ if (i >= count) { ++ for (i = 0; i < count; ++i) ++ if (mir_touch_event_action(tev, i) == mir_touch_action_down) ++ break; ++ } ++ ++ if (i >= count) ++ break; ++ ++ sx = mir_touch_event_axis_value(tev, i, mir_touch_axis_x); ++ sy = mir_touch_event_axis_value(tev, i, mir_touch_axis_y); ++ valuator_mask_zero(&mask); ++ ++ switch (mir_touch_event_action(tev, i)) { ++ case mir_touch_action_up: ++ fake_touch_move(xmir_input, xmir_window, sx, sy); ++ QueuePointerEvents(xmir_input->touch, ButtonRelease, 1, 0, &mask); ++ xmir_input->touch_id = -1; ++ break; ++ case mir_touch_action_down: ++ xmir_input->touch_id = mir_touch_event_id(tev, i); ++ if (!pointer_ensure_focus(xmir_input, xmir_window, xmir_input->touch, sx, sy)) ++ fake_touch_move(xmir_input, xmir_window, sx, sy); ++ QueuePointerEvents(xmir_input->touch, ButtonPress, 1, 0, &mask); ++ break; ++ case mir_touch_action_change: ++ fake_touch_move(xmir_input, xmir_window, sx, sy); ++ break; ++ } ++ break; ++ ++ ++ } ++ case mir_input_event_type_pointer: { ++ MirPointerEvent const *pev; ++ ++ pev = mir_input_event_get_pointer_event(ev); ++ switch (mir_pointer_event_action(pev)) { ++ case mir_pointer_action_button_up: ++ case mir_pointer_action_button_down: ++ pointer_handle_motion(xmir_input, xmir_window, pev); ++ pointer_handle_button(xmir_input, xmir_window, pev); ++ break; ++ case mir_pointer_action_motion: ++ pointer_handle_motion(xmir_input, xmir_window, pev); ++ break; ++ default: ++ ErrorF("Unknown action: %u\n", mir_pointer_event_action(pev)); ++ case mir_pointer_action_enter: ++ case mir_pointer_action_leave: ++ break; ++ } ++ break; ++ } ++ default: ErrorF("Unknown input type: %u\n", mir_input_event_get_type(ev)); ++ } ++} ++ ++static void ++xmir_handle_keymap_event(struct xmir_input *xmir_input, ++ MirKeymapEvent const* ev) ++{ ++ char * buffer = NULL; ++ size_t length = 0; ++ DeviceIntPtr master; ++ XkbDescPtr xkb; ++ XkbChangesRec changes = { 0 }; ++ ++ mir_keymap_event_get_keymap_buffer(ev, (char const **)&buffer, &length); ++ ++ xkb = XkbCompileKeymapFromString(xmir_input->keyboard, buffer, length); ++ ++ XkbUpdateDescActions(xkb, xkb->min_key_code, XkbNumKeys(xkb), &changes); ++ ++ XkbDeviceApplyKeymap(xmir_input->keyboard, xkb); ++ ++ master = GetMaster(xmir_input->keyboard, MASTER_KEYBOARD); ++ if (master && master->lastSlave == xmir_input->keyboard) ++ XkbDeviceApplyKeymap(master, xkb); ++ ++ XkbFreeKeyboard(xkb, XkbAllComponentsMask, TRUE); ++} ++ ++static void ++xmir_handle_surface_event_in_main_thread(struct xmir_screen *xmir_screen, ++ struct xmir_window *xmir_window, ++ void *arg) ++{ ++ const MirEvent *ev = arg; ++ struct xmir_input *xmir_input = xorg_list_first_entry(&xmir_screen->input_list, struct xmir_input, link); ++ ++ switch (mir_event_get_type(ev)) ++ { ++ case mir_event_type_input: ++ xmir_window_handle_input_event(xmir_input, xmir_window, mir_event_get_input_event(ev)); ++ break; ++ case mir_event_type_surface: ++ xmir_handle_surface_event(xmir_window, mir_surface_event_get_attribute(mir_event_get_surface_event(ev)), mir_surface_event_get_attribute_value(mir_event_get_surface_event(ev))); ++ break; ++ case mir_event_type_resize: { ++ WindowPtr window = xmir_window->window; ++ const MirResizeEvent *resize = mir_event_get_resize_event(ev); ++ unsigned future_width = mir_resize_event_get_width(resize); ++ unsigned future_height = mir_resize_event_get_height(resize); ++ XMIR_DEBUG(("Mir surface for win %p resized to %ux%u (buffers arriving soon)\n", ++ window, future_width, future_height)); ++ xmir_window->surface_width = future_width; ++ xmir_window->surface_height = future_height; ++ if (xmir_window->damage) ++ DamageDamageRegion(&window->drawable, &xmir_window->region); ++ } ++ break; ++ case mir_event_type_prompt_session_state_change: ++ ErrorF("No idea about prompt_session_state_change\n"); ++ break; ++ case mir_event_type_orientation: ++ xmir_output_handle_orientation(xmir_window, mir_orientation_event_get_direction(mir_event_get_orientation_event(ev))); ++ break; ++ case mir_event_type_close_surface: ++ xmir_close_surface(xmir_window); ++ break; ++ case mir_event_type_surface_output: ++ break; ++ case mir_event_type_keymap: ++ xmir_handle_keymap_event(xmir_input, mir_event_get_keymap_event(ev)); ++ break; ++ case mir_event_type_input_device_state: ++ break; ++ default: ++ ErrorF("Received an unknown %u event\n", mir_event_get_type(ev)); ++ break; ++ } ++ mir_event_unref(ev); ++} ++ ++void ++xmir_surface_handle_event(MirSurface *surface, MirEvent const* ev, ++ void *context) ++{ ++ struct xmir_window *xmir_window = context; ++ struct xmir_screen *xmir_screen = xmir_window->xmir_screen; ++ ++ /* We are in a Mir event thread, so unsafe to do X things. Post the event ++ * to the X event loop thread... ++ */ ++ xmir_post_to_eventloop(&xmir_handle_surface_event_in_main_thread, ++ xmir_screen, xmir_window, (void*)mir_event_ref(ev)); ++} ++ ++void ++InitInput(int argc, char *argv[]) ++{ ++ ScreenPtr pScreen = screenInfo.screens[0]; ++ struct xmir_screen *xmir_screen = xmir_screen_get(pScreen); ++ struct xmir_input *xmir_input; ++ ++ if (xmir_screen->rootless) ++ pScreen->XYToWindow = xmir_xy_to_window; ++ ++ mieqInit(); ++ ++ xmir_input = calloc(1, sizeof(*xmir_input)); ++ if (!xmir_input) ++ FatalError("Failed to allocate input\n"); ++ ++ xmir_input->xmir_screen = xmir_screen; ++ xorg_list_add(&xmir_input->link, &xmir_screen->input_list); ++ xmir_input->touch_id = -1; ++ xmir_input->pointer = add_device(xmir_input, "xmir-pointer", xmir_pointer_proc); ++ xmir_input->touch = add_device(xmir_input, "xmir-fake-touch-pointer", xmir_pointer_proc); ++ xmir_input->keyboard = add_device(xmir_input, "xmir-keyboard", xmir_keyboard_proc); ++} ++ ++void ++CloseInput(void) ++{ ++ ScreenPtr pScreen = screenInfo.screens[0]; ++ struct xmir_screen *xmir_screen = xmir_screen_get(pScreen); ++ struct xmir_input *xmir_input, *next_xmir_input; ++ ++ xorg_list_for_each_entry_safe(xmir_input, next_xmir_input, ++ &xmir_screen->input_list, link) ++ xmir_input_destroy(xmir_input); ++ ++ mieqFini(); ++} +diff --git a/hw/xmir/xmir-output.c b/hw/xmir/xmir-output.c +new file mode 100644 +index 0000000..860e89b +--- /dev/null ++++ b/hw/xmir/xmir-output.c +@@ -0,0 +1,476 @@ ++/* ++ * Copyright © 2015 Canonical Ltd ++ * ++ * Permission to use, copy, modify, distribute, and sell this software ++ * and its documentation for any purpose is hereby granted without ++ * fee, provided that the above copyright notice appear in all copies ++ * and that both that copyright notice and this permission notice ++ * appear in supporting documentation, and that the name of the ++ * copyright holders not be used in advertising or publicity ++ * pertaining to distribution of the software without specific, ++ * written prior permission. The copyright holders make no ++ * representations about the suitability of this software for any ++ * purpose. It is provided "as is" without express or implied ++ * warranty. ++ * ++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS ++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND ++ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++#ifdef HAVE_DIX_CONFIG_H ++#include ++#endif ++ ++#include "xmir.h" ++#include ++#include "glamor_priv.h" ++#include "mipointer.h" ++ ++static const char* ++xmir_get_output_type_str(MirDisplayOutput *mir_output) ++{ ++ const char *str = "Invalid"; ++ ++ switch(mir_output->type) ++ { ++ case mir_display_output_type_vga: str = "VGA"; break; ++ case mir_display_output_type_dvii: str = "DVI"; break; ++ case mir_display_output_type_dvid: str = "DVI"; break; ++ case mir_display_output_type_dvia: str = "DVI"; break; ++ case mir_display_output_type_composite: str = "Composite"; break; ++ case mir_display_output_type_svideo: str = "TV"; break; ++ case mir_display_output_type_lvds: str = "LVDS"; break; ++ case mir_display_output_type_component: str = "CTV"; break; ++ case mir_display_output_type_ninepindin: str = "DIN"; break; ++ case mir_display_output_type_displayport: str = "DP"; break; ++ case mir_display_output_type_hdmia: str = "HDMI"; break; ++ case mir_display_output_type_hdmib: str = "HDMI"; break; ++ case mir_display_output_type_tv: str = "TV"; break; ++ case mir_display_output_type_edp: str = "eDP"; break; ++ case mir_display_output_type_unknown: str = "None"; break; ++ default: break; ++ } ++ ++ return str; ++} ++ ++static Rotation ++to_rr_rotation(MirOrientation orient) ++{ ++ switch (orient) { ++ default: return RR_Rotate_0; ++ case mir_orientation_left: return RR_Rotate_90; ++ case mir_orientation_inverted: return RR_Rotate_180; ++ case mir_orientation_right: return RR_Rotate_270; ++ } ++} ++ ++Bool ++xmir_output_dpms(struct xmir_screen *xmir_screen, int mode) ++{ ++ MirDisplayConfiguration *display_config = xmir_screen->display; ++ MirPowerMode mir_mode = mir_power_mode_on; ++ Bool unchanged = TRUE; ++ ++ if (xmir_screen->rootless) ++ return FALSE; ++ ++ switch (mode) { ++ case DPMSModeOn: mir_mode = mir_power_mode_on; break; ++ case DPMSModeStandby: mir_mode = mir_power_mode_standby; break; ++ case DPMSModeSuspend: mir_mode = mir_power_mode_suspend; break; ++ case DPMSModeOff: mir_mode = mir_power_mode_off; break; ++ } ++ ++ DebugF("Setting DPMS mode to %d\n", mode); ++ ++ for (int i = 0; i < display_config->num_outputs; i++) { ++ if (display_config->outputs[i].power_mode != mir_mode) { ++ display_config->outputs[i].power_mode = mir_mode; ++ unchanged = FALSE; ++ } ++ } ++ ++ if (!unchanged) ++ mir_wait_for(mir_connection_apply_display_config(xmir_screen->conn, xmir_screen->display)); ++ ++ return TRUE; ++} ++ ++static void ++xmir_output_update(struct xmir_output *xmir_output, MirDisplayOutput *mir_output) ++{ ++ RROutputSetConnection(xmir_output->randr_output, mir_output->connected ? RR_Connected : RR_Disconnected); ++ RROutputSetSubpixelOrder(xmir_output->randr_output, SubPixelUnknown); ++ ++ if (mir_output->connected && mir_output->used) { ++ MirDisplayMode *mode = &mir_output->modes[mir_output->current_mode]; ++ RRModePtr randr_mode; ++ ++ xmir_output->width = mode->horizontal_resolution; ++ xmir_output->height = mode->vertical_resolution; ++ xmir_output->x = mir_output->position_x; ++ xmir_output->y = mir_output->position_y; ++ ++ randr_mode = xmir_cvt(xmir_output->width, xmir_output->height, mode->refresh_rate, 0, 0); ++ /* Odd resolutions like 1366x768 don't show correctly otherwise */ ++ randr_mode->mode.width = mode->horizontal_resolution; ++ randr_mode->mode.height = mode->vertical_resolution; ++ sprintf(randr_mode->name, "%dx%d", ++ randr_mode->mode.width, randr_mode->mode.height); ++ ++ RROutputSetPhysicalSize(xmir_output->randr_output, mir_output->physical_width_mm, mir_output->physical_height_mm); ++ RROutputSetModes(xmir_output->randr_output, &randr_mode, 1, 1); ++ ++ /* TODO: Hook up subpixel order when available (LP: #1393578) */ ++ RRCrtcNotify(xmir_output->randr_crtc, randr_mode, ++ xmir_output->x, xmir_output->y, ++ to_rr_rotation(mir_output->orientation), NULL, 1, &xmir_output->randr_output); ++ } else { ++ xmir_output->width = xmir_output->height = xmir_output->x = xmir_output->y = 0; ++ ++ RROutputSetPhysicalSize(xmir_output->randr_output, 0, 0); ++ RROutputSetModes(xmir_output->randr_output, NULL, 0, 0); ++ ++ RRCrtcNotify(xmir_output->randr_crtc, NULL, ++ 0, 0, RR_Rotate_0, NULL, 1, &xmir_output->randr_output); ++ } ++} ++ ++static void ++xmir_screen_update_windowed_output(struct xmir_screen *xmir_screen) ++{ ++ struct xmir_output *xmir_output = xmir_screen->windowed; ++ RRModePtr randr_mode; ++ ++ RROutputSetConnection(xmir_output->randr_output, RR_Connected); ++ RROutputSetSubpixelOrder(xmir_output->randr_output, SubPixelUnknown); ++ ++ xmir_output->width = xmir_screen->screen->width; ++ xmir_output->height = xmir_screen->screen->height; ++ xmir_output->x = 0; ++ xmir_output->y = 0; ++ ++ randr_mode = xmir_cvt(xmir_output->width, xmir_output->height, 60, 0, 0); ++ randr_mode->mode.width = xmir_output->width; ++ randr_mode->mode.height = xmir_output->height; ++ sprintf(randr_mode->name, "%dx%d", ++ randr_mode->mode.width, randr_mode->mode.height); ++ ++ RROutputSetPhysicalSize(xmir_output->randr_output, 0, 0); ++ RROutputSetModes(xmir_output->randr_output, &randr_mode, 1, 1); ++ RRCrtcNotify(xmir_output->randr_crtc, randr_mode, ++ xmir_output->x, xmir_output->y, ++ RR_Rotate_0, NULL, 1, &xmir_output->randr_output); ++} ++ ++static void ++xmir_output_screen_resized(struct xmir_screen *xmir_screen) ++{ ++ ScreenPtr screen = xmir_screen->screen; ++ struct xmir_output *xmir_output; ++ int width, height; ++ ++ width = 0; ++ height = 0; ++ xorg_list_for_each_entry(xmir_output, &xmir_screen->output_list, link) { ++ if (width < xmir_output->x + xmir_output->width) ++ width = xmir_output->x + xmir_output->width; ++ if (height < xmir_output->y + xmir_output->height) ++ height = xmir_output->y + xmir_output->height; ++ } ++ ++ screen->width = width; ++ screen->height = height; ++ if (ConnectionInfo) ++ RRScreenSizeNotify(xmir_screen->screen); ++ update_desktop_dimensions(); ++} ++ ++static struct xmir_output* ++xmir_output_create(struct xmir_screen *xmir_screen, const char *name) ++{ ++ struct xmir_output *xmir_output; ++ ++ xmir_output = calloc(sizeof *xmir_output, 1); ++ if (xmir_output == NULL) { ++ FatalError("No memory for creating output\n"); ++ return NULL; ++ } ++ ++ xmir_output->xmir_screen = xmir_screen; ++ xmir_output->randr_crtc = RRCrtcCreate(xmir_screen->screen, xmir_output); ++ xmir_output->randr_output = RROutputCreate(xmir_screen->screen, name, strlen(name), xmir_output); ++ ++ RRCrtcGammaSetSize(xmir_output->randr_crtc, 256); ++ RROutputSetCrtcs(xmir_output->randr_output, &xmir_output->randr_crtc, 1); ++ xorg_list_append(&xmir_output->link, &xmir_screen->output_list); ++ return xmir_output; ++} ++ ++void ++xmir_output_destroy(struct xmir_output *xmir_output) ++{ ++ xorg_list_del(&xmir_output->link); ++ free(xmir_output); ++} ++ ++static Bool ++xmir_randr_get_info(ScreenPtr pScreen, Rotation * rotations) ++{ ++ *rotations = 0; ++ ++ return TRUE; ++} ++ ++static Bool ++xmir_randr_set_config(ScreenPtr pScreen, ++ Rotation rotation, int rate, RRScreenSizePtr pSize) ++{ ++ return FALSE; ++} ++ ++static void ++xmir_update_config(struct xmir_screen *xmir_screen) ++{ ++ MirDisplayConfiguration *new_config; ++ MirDisplayOutput **mir_output; ++ struct xmir_output *xmir_output; ++ ++ if (xmir_screen->windowed) ++ return; ++ ++ new_config = mir_connection_create_display_config(xmir_screen->conn); ++ if (new_config->num_outputs != xmir_screen->display->num_outputs) ++ FatalError("Number of outputs changed on update.\n"); ++ ++ mir_display_config_destroy(xmir_screen->display); ++ xmir_screen->display = new_config; ++ ++ mir_output = &new_config->outputs; ++ xorg_list_for_each_entry(xmir_output, &xmir_screen->output_list, link) { ++ xmir_output_update(xmir_output, *mir_output); ++ mir_output++; ++ } ++ xmir_output_screen_resized(xmir_screen); ++} ++ ++void ++xmir_output_handle_orientation(struct xmir_window *xmir_window, MirOrientation dir) ++{ ++ XMIR_DEBUG(("Orientation: %i\n", dir)); ++ ++ xmir_output_handle_resize(xmir_window, -1, -1); ++} ++ ++void ++xmir_output_handle_resize(struct xmir_window *xmir_window, int width, int height) ++{ ++ WindowPtr window = xmir_window->window; ++ ScreenPtr screen = window->drawable.pScreen; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ PixmapPtr pixmap; ++ DrawablePtr oldroot = &screen->root->drawable; ++ BoxRec box; ++ BoxRec copy_box; ++ ++ int window_width, window_height; ++ DeviceIntPtr pDev; ++ ++ MirOrientation old = xmir_window->orientation; ++ xmir_window->orientation = mir_surface_get_orientation(xmir_window->surface); ++ ++ if (width < 0 && height < 0) { ++ if (old % 180 == xmir_window->orientation % 180) { ++ window_width = window->drawable.width; ++ window_height = window->drawable.height; ++ } else { ++ window_width = window->drawable.height; ++ window_height = window->drawable.width; ++ } ++ } else if (xmir_window->orientation == 0 || xmir_window->orientation == 180) { ++ window_width = width * (1 + xmir_screen->doubled); ++ window_height = height * (1 + xmir_screen->doubled); ++ } else { ++ window_width = height * (1 + xmir_screen->doubled); ++ window_height = width * (1 + xmir_screen->doubled); ++ } ++ ++ if (window_width == window->drawable.width && ++ window_height == window->drawable.height) { ++ /* Damage window if rotated */ ++ if (old != xmir_window->orientation) ++ DamageDamageRegion(&window->drawable, &xmir_window->region); ++ return; ++ } ++ ++ /* In case of async EGL, destroy the image after swap has finished */ ++ if (xmir_window->image) { ++ if (!xmir_window->has_free_buffer) { ++ while (1) { ++ xmir_process_from_eventloop(); ++ if (xmir_window->has_free_buffer) ++ break; ++ usleep(1000); ++ } ++ } ++ ++ eglDestroyImageKHR(xmir_screen->egl_display, xmir_window->image); ++ xmir_window->image = NULL; ++ } ++ ++ if (xmir_screen->rootless) ++ return; ++ ++ if (!xmir_screen->windowed) { ++ XMIR_DEBUG(("Root resized, removing all outputs and inserting fake output\n")); ++ ++ while (!xorg_list_is_empty(&xmir_screen->output_list)) { ++ struct xmir_output *xmir_output = xorg_list_first_entry(&xmir_screen->output_list, typeof(*xmir_output), link); ++ ++ RRCrtcDestroy(xmir_output->randr_crtc); ++ RROutputDestroy(xmir_output->randr_output); ++ xmir_output_destroy(xmir_output); ++ } ++ ++ xmir_screen->windowed = xmir_output_create(xmir_screen, "Windowed"); ++ } ++ ++ XMIR_DEBUG(("Output resized %ix%i with rotation %i\n", ++ width, height, xmir_window->orientation)); ++ ++ pixmap = screen->CreatePixmap(screen, window_width, window_height, screen->rootDepth, CREATE_PIXMAP_USAGE_BACKING_PIXMAP); ++ ++ copy_box.x1 = copy_box.y1 = 0; ++ copy_box.x2 = min(window_width, oldroot->width); ++ copy_box.y2 = min(window_height, oldroot->height); ++ ++ if (xmir_screen->glamor) { ++ glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap); ++ glBindFramebuffer(GL_FRAMEBUFFER, pixmap_priv->fbo->fb); ++ glClearColor(0., 0., 0., 1.); ++ glClear(GL_COLOR_BUFFER_BIT); ++ glamor_copy(&screen->root->drawable, &pixmap->drawable, ++ NULL, ©_box, 1, 0, 0, FALSE, FALSE, 0, NULL); ++ glBindFramebuffer(GL_FRAMEBUFFER, 0); ++ } else { ++ PixmapPtr old_pixmap = screen->GetWindowPixmap(window); ++ int src_stride = old_pixmap->devKind; ++ int dst_stride = pixmap->devKind; ++ int bpp = oldroot->bitsPerPixel >> 3; ++ const char *src = (char*)old_pixmap->devPrivate.ptr + ++ src_stride * copy_box.y1 + ++ copy_box.x1 * bpp; ++ char *dst = (char*)pixmap->devPrivate.ptr + ++ dst_stride * copy_box.y1 + ++ copy_box.x1 * bpp; ++ int line_len = (copy_box.x2 - copy_box.x1) * bpp; ++ int y; ++ for (y = copy_box.y1; y < copy_box.y2; ++y) { ++ memcpy(dst, src, line_len); ++ memset(dst+line_len, 0, dst_stride-line_len); ++ src += src_stride; ++ dst += dst_stride; ++ } ++ if (y < window_height) ++ memset(dst, 0, (window_height - y) * dst_stride); ++ } ++ ++ screen->width = window_width; ++ screen->height = window_height; ++ screen->mmWidth = screen->width * 254 / (10 * xmir_screen->dpi); ++ screen->mmHeight = screen->height * 254 / (10 * xmir_screen->dpi); ++ ++ screen->SetScreenPixmap(pixmap); ++ ++ SetRootClip(screen, ROOT_CLIP_FULL); ++ ++ box.x1 = box.y1 = 0; ++ box.x2 = window_width; ++ box.y2 = window_height; ++ RegionReset(&xmir_window->region, &box); ++ DamageDamageRegion(&window->drawable, &xmir_window->region); ++ ++ /* Update cursor info too */ ++ for (pDev = inputInfo.devices; pDev; pDev = pDev->next) { ++ int x, y; ++ ++ if (!IsPointerDevice(pDev)) ++ continue; ++ ++ miPointerGetPosition(pDev, &x, &y); ++ UpdateSpriteForScreen(pDev, screen); ++ miPointerSetScreen(pDev, 0, x, y); ++ } ++ ++ xmir_screen_update_windowed_output(xmir_screen); ++ if (ConnectionInfo) ++ RRScreenSizeNotify(xmir_screen->screen); ++ update_desktop_dimensions(); ++} ++ ++static void ++xmir_handle_hotplug(struct xmir_screen *xmir_screen, ++ struct xmir_window *unused1, ++ void *unused2) ++{ ++ xmir_update_config(xmir_screen); ++ ++ /* Trigger RANDR refresh */ ++ RRGetInfo(screenInfo.screens[0], TRUE); ++} ++ ++static void ++xmir_display_config_callback(MirConnection *conn, void *ctx) ++{ ++ struct xmir_screen *xmir_screen = ctx; ++ xmir_post_to_eventloop(xmir_handle_hotplug, xmir_screen, 0, 0); ++} ++ ++Bool ++xmir_screen_init_output(struct xmir_screen *xmir_screen) ++{ ++ rrScrPrivPtr rp; ++ int i; ++ MirDisplayConfiguration *display_config = xmir_screen->display; ++ int output_type_count[mir_display_output_type_edp + 1] = {}; ++ ++ if (!RRScreenInit(xmir_screen->screen)) ++ return FALSE; ++ ++ mir_connection_set_display_config_change_callback(xmir_screen->conn, &xmir_display_config_callback, xmir_screen); ++ ++ for (i = 0; i < display_config->num_outputs; i++) { ++ char name[32]; ++ MirDisplayOutput *mir_output = &display_config->outputs[i]; ++ struct xmir_output *xmir_output; ++ const char* output_type_str = xmir_get_output_type_str(mir_output); ++ int type_count = i; ++ ++ if (mir_output->type >= 0 && mir_output->type <= mir_display_output_type_edp) ++ type_count = output_type_count[mir_output->type]++; ++ ++ snprintf(name, sizeof name, "%s-%d", output_type_str, type_count); ++ xmir_output = xmir_output_create(xmir_screen, name); ++ if (!xmir_output) ++ return FALSE; ++ xmir_output_update(xmir_output, mir_output); ++ } ++ ++ RRScreenSetSizeRange(xmir_screen->screen, 320, 200, INT16_MAX, INT16_MAX); ++ ++ xmir_output_screen_resized(xmir_screen); ++ ++ rp = rrGetScrPriv(xmir_screen->screen); ++ rp->rrGetInfo = xmir_randr_get_info; ++ rp->rrSetConfig = xmir_randr_set_config; ++ // TODO: rp->rrCrtcSet = xmir_randr_set_crtc; ++ ++ return TRUE; ++} +diff --git a/hw/xmir/xmir-thread-proxy.c b/hw/xmir/xmir-thread-proxy.c +new file mode 100644 +index 0000000..bfe64f0 +--- /dev/null ++++ b/hw/xmir/xmir-thread-proxy.c +@@ -0,0 +1,115 @@ ++/* ++ * Copyright © 2012-2015 Canonical Ltd ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Soft- ++ * ware"), to deal in the Software without restriction, including without ++ * limitation the rights to use, copy, modify, merge, publish, distribute, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, provided that the above copyright ++ * notice(s) and this permission notice appear in all copies of the Soft- ++ * ware and that both the above copyright notice(s) and this permission ++ * notice appear in supporting documentation. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- ++ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY ++ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN ++ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE- ++ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR- ++ * MANCE OF THIS SOFTWARE. ++ * ++ * Except as contained in this notice, the name of a copyright holder shall ++ * not be used in advertising or otherwise to promote the sale, use or ++ * other dealings in this Software without prior written authorization of ++ * the copyright holder. ++ * ++ * Authors: ++ * Christopher James Halse Rogers (christopher.halse.rogers@canonical.com) ++ * Later rewritten, simplified and optimized by: ++ * Daniel van Vugt ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "xmir.h" ++ ++struct message { ++ xmir_event_callback *callback; ++ struct xmir_screen *xmir_screen; ++ struct xmir_window *xmir_window; ++ void *arg; ++}; ++ ++static int pipefds[2]; ++ ++static void ++xmir_wakeup_handler(void* data, int err, void* read_mask) ++{ ++ if (err >= 0 && FD_ISSET(pipefds[0], (fd_set *)read_mask)) ++ xmir_process_from_eventloop(); ++} ++ ++void ++xmir_init_thread_to_eventloop(void) ++{ ++ int err = pipe(pipefds); ++ if (err == -1) ++ FatalError("[XMIR] Failed to create thread-proxy pipes: %s\n", strerror(errno)); ++ ++ /* Set the read end to not block; we'll pull from this in the event loop ++ * We don't need to care about the write end, as that'll be written to ++ * from its own thread ++ */ ++ fcntl(pipefds[0], F_SETFL, O_NONBLOCK); ++ ++ AddGeneralSocket(pipefds[0]); ++ RegisterBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA, ++ xmir_wakeup_handler, ++ NULL); ++} ++ ++void ++xmir_fini_thread_to_eventloop(void) ++{ ++ RemoveBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA, ++ xmir_wakeup_handler, NULL); ++ RemoveGeneralSocket(pipefds[0]); ++ close(pipefds[1]); ++ close(pipefds[0]); ++} ++ ++void ++xmir_post_to_eventloop(xmir_event_callback *cb, ++ struct xmir_screen *s, struct xmir_window *w, void *a) ++{ ++ struct message msg = {cb, s, w, a}; ++ ssize_t written = write(pipefds[1], &msg, sizeof msg); ++ if (written != sizeof(msg)) ++ ErrorF("[XMIR] Failed to proxy message to mainloop\n"); ++} ++ ++void ++xmir_process_from_eventloop_except(const struct xmir_window *w) ++{ ++ for (;;) { ++ struct message msg; ++ ssize_t got = read(pipefds[0], &msg, sizeof msg); ++ if (got < 0) ++ return; ++ if (got == sizeof(msg) && w != msg.xmir_window) ++ msg.callback(msg.xmir_screen, msg.xmir_window, msg.arg); ++ } ++} ++ ++void ++xmir_process_from_eventloop(void) ++{ ++ xmir_process_from_eventloop_except(NULL); ++} +diff --git a/hw/xmir/xmir.c b/hw/xmir/xmir.c +new file mode 100644 +index 0000000..f53eda6 +--- /dev/null ++++ b/hw/xmir/xmir.c +@@ -0,0 +1,1729 @@ ++/* ++ * Copyright © 2015 Canonical Ltd ++ * ++ * Permission to use, copy, modify, distribute, and sell this software ++ * and its documentation for any purpose is hereby granted without ++ * fee, provided that the above copyright notice appear in all copies ++ * and that both that copyright notice and this permission notice ++ * appear in supporting documentation, and that the name of the ++ * copyright holders not be used in advertising or publicity ++ * pertaining to distribution of the software without specific, ++ * written prior permission. The copyright holders make no ++ * representations about the suitability of this software for any ++ * purpose. It is provided "as is" without express or implied ++ * warranty. ++ * ++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS ++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND ++ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++#include "xf86.h" ++ ++#include "xmir.h" ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "compint.h" ++#include "dri2.h" ++#include "glxserver.h" ++#include "glamor_priv.h" ++#include "dpmsproc.h" ++ ++static struct { ++ Atom UTF8_STRING; ++ Atom _NET_WM_NAME; ++ Atom WM_PROTOCOLS; ++ Atom WM_DELETE_WINDOW; ++ Atom _NET_WM_WINDOW_TYPE; ++ Atom _NET_WM_WINDOW_TYPE_DESKTOP; ++ Atom _NET_WM_WINDOW_TYPE_DOCK; ++ Atom _NET_WM_WINDOW_TYPE_TOOLBAR; ++ Atom _NET_WM_WINDOW_TYPE_MENU; ++ Atom _NET_WM_WINDOW_TYPE_UTILITY; ++ Atom _NET_WM_WINDOW_TYPE_SPLASH; ++ Atom _NET_WM_WINDOW_TYPE_DIALOG; ++ Atom _NET_WM_WINDOW_TYPE_DROPDOWN_MENU; ++ Atom _NET_WM_WINDOW_TYPE_POPUP_MENU; ++ Atom _NET_WM_WINDOW_TYPE_TOOLTIP; ++ Atom _NET_WM_WINDOW_TYPE_NOTIFICATION; ++ Atom _NET_WM_WINDOW_TYPE_COMBO; ++ Atom _NET_WM_WINDOW_TYPE_DND; ++ Atom _NET_WM_WINDOW_TYPE_NORMAL; ++ Atom _MIR_WM_PERSISTENT_ID; ++} known_atom; ++ ++static Atom get_atom(const char *name, Atom *cache, Bool create) ++{ ++ if (!*cache) { ++ *cache = MakeAtom(name, strlen(name), create); ++ if (*cache) ++ XMIR_DEBUG(("Atom %s = %lu\n", name, (unsigned long)*cache)); ++ } ++ return *cache; ++} ++ ++#define GET_ATOM(_a) get_atom(#_a, &known_atom._a, False) ++#define MAKE_ATOM(_a) get_atom(#_a, &known_atom._a, True) ++ ++extern __GLXprovider __glXDRI2Provider; ++ ++Bool xmir_debug_logging = False; ++ ++static const char get_title_from_top_window[] = "@"; ++ ++struct xmir_swap { ++ int server_generation; ++ struct xmir_screen *xmir_screen; ++ struct xmir_window *xmir_window; ++}; ++ ++static void xmir_handle_buffer_received(MirBufferStream *stream, void *ctx); ++ ++/* Required by GLX module */ ++ScreenPtr xf86ScrnToScreen(ScrnInfoPtr pScrn) ++{ ++ return NULL; ++} ++ ++/* Required by GLX module */ ++ScrnInfoPtr xf86ScreenToScrn(ScreenPtr pScreen) ++{ ++ static ScrnInfoRec rec; ++ return &rec; ++} ++ ++void ++ddxGiveUp(enum ExitCode error) ++{ ++} ++ ++void ++AbortDDX(enum ExitCode error) ++{ ++ ddxGiveUp(error); ++} ++ ++void ++OsVendorInit(void) ++{ ++} ++ ++void ++OsVendorFatalError(const char *f, va_list args) ++{ ++} ++ ++#if defined(DDXBEFORERESET) ++void ++ddxBeforeReset(void) ++{ ++ return; ++} ++#endif ++ ++void ++ddxUseMsg(void) ++{ ++ ErrorF("-rootless Run rootless\n"); ++ ErrorF(" -flatten Flatten rootless X windows into a single surface\n"); ++ ErrorF(" -neverclose Never close the flattened rootless window\n"); ++ ErrorF("-title Set window title (@ = automatic)\n"); ++ ErrorF("-sw disable glamor rendering\n"); ++ ErrorF("-egl force use of EGL calls, disables DRI2 pass-through\n"); ++ ErrorF("-egl_sync same as -egl, but with synchronous page flips.\n"); ++ ErrorF("-damage copy the entire frame on damage, always enabled in egl mode\n"); ++ ErrorF("-fd force client connection on only fd\n"); ++ ErrorF("-shared open default listening sockets even when -fd is passed\n"); ++ ErrorF("-mir set mir's application id.\n"); ++ ErrorF("-mirSocket use the specified socket for mir\n"); ++ ErrorF("-2x double the fun (2x resolution compared to onscreen)\n"); ++ ErrorF("-debug Log everything Xmir is doing\n"); ++} ++ ++int ++ddxProcessArgument(int argc, char *argv[], int i) ++{ ++ static int seen_shared; ++ ++ if (strcmp(argv[i], "-rootless") == 0 || ++ strcmp(argv[i], "-flatten") == 0 || ++ strcmp(argv[i], "-neverclose") == 0 || ++ strcmp(argv[i], "-sw") == 0 || ++ strcmp(argv[i], "-egl") == 0 || ++ strcmp(argv[i], "-egl_sync") == 0 || ++ strcmp(argv[i], "-2x") == 0 || ++ strcmp(argv[i], "-debug") == 0 || ++ strcmp(argv[i], "-damage") == 0) { ++ return 1; ++ } ++ else if (strcmp(argv[i], "-mirSocket") == 0 || ++ strcmp(argv[i], "-title") == 0 || ++ strcmp(argv[i], "-mir") == 0) { ++ return 2; ++ } else if (!strcmp(argv[i], "-novtswitch") || ++ !strncmp(argv[i], "vt", 2)) { ++ return 1; ++ } else if (!strcmp(argv[i], "-fd")) { ++ if (!seen_shared) ++ NoListenAll = 1; ++ ++ return 2; ++ } else if (!strcmp(argv[i], "-shared")) { ++ seen_shared = 1; ++ NoListenAll = 0; ++ return 1; ++ } else if (!strcmp(argv[i], "-listen")) { ++ seen_shared = 1; ++ NoListenAll = 0; ++ return 0; ++ } ++ ++ return 0; ++} ++ ++static DevPrivateKeyRec xmir_window_private_key; ++static DevPrivateKeyRec xmir_screen_private_key; ++static DevPrivateKeyRec xmir_pixmap_private_key; ++ ++struct xmir_screen * ++xmir_screen_get(ScreenPtr screen) ++{ ++ return dixLookupPrivate(&screen->devPrivates, &xmir_screen_private_key); ++} ++ ++struct xmir_pixmap * ++xmir_pixmap_get(PixmapPtr pixmap) ++{ ++ return dixLookupPrivate(&pixmap->devPrivates, &xmir_pixmap_private_key); ++} ++ ++struct xmir_window * ++xmir_window_get(WindowPtr window) ++{ ++ return dixLookupPrivate(&window->devPrivates, &xmir_window_private_key); ++} ++ ++void ++xmir_pixmap_set(PixmapPtr pixmap, struct xmir_pixmap *xmir_pixmap) ++{ ++ return dixSetPrivate(&pixmap->devPrivates, &xmir_pixmap_private_key, xmir_pixmap); ++} ++ ++static Bool ++xmir_get_window_prop_string8(WindowPtr window, ATOM atom, ++ char *buf, size_t bufsize) ++{ ++ if (window->optional) { ++ PropertyPtr p = window->optional->userProps; ++ while (p) { ++ if (p->propertyName == atom) { ++ if (( p->type == XA_STRING ++ || p->type == GET_ATOM(UTF8_STRING) ++ ) && ++ p->format == 8 && p->data) { ++ size_t len = p->size >= bufsize ? bufsize - 1 : p->size; ++ memcpy(buf, p->data, len); ++ buf[len] = '\0'; ++ return True; ++ } else { ++ ErrorF("xmir_get_window_prop_string8: Atom %d is not " ++ "an 8-bit string as expected\n", atom); ++ break; ++ } ++ } ++ p = p->next; ++ } ++ } ++ ++ if (bufsize) ++ buf[0] = '\0'; ++ return False; ++} ++ ++static Bool ++xmir_get_window_name(WindowPtr window, char *buf, size_t bufsize) ++{ ++ return xmir_get_window_prop_string8(window, GET_ATOM(_NET_WM_NAME), ++ buf, bufsize) ++ || xmir_get_window_prop_string8(window, XA_WM_NAME, buf, bufsize); ++} ++ ++static WindowPtr ++xmir_get_window_prop_window(WindowPtr window, ATOM atom) ++{ ++ if (window->optional) { ++ PropertyPtr p = window->optional->userProps; ++ while (p) { ++ if (p->propertyName == atom) { ++ if (p->type == XA_WINDOW) { ++ WindowPtr ptr; ++ XID id = *(XID*)p->data; ++ if (dixLookupWindow(&ptr, id, serverClient, ++ DixReadAccess) != Success) ++ ptr = NULL; ++ return ptr; ++ } else { ++ ErrorF("xmir_get_window_prop_window: Atom %d is not " ++ "a Window as expected\n", atom); ++ return NULL; ++ } ++ } ++ p = p->next; ++ } ++ } ++ return NULL; ++} ++ ++static Atom ++xmir_get_window_prop_atom(WindowPtr window, ATOM name) ++{ ++ if (window->optional) { ++ PropertyPtr p = window->optional->userProps; ++ while (p) { ++ if (p->propertyName == name) { ++ if (p->type == XA_ATOM) { ++ return *(Atom*)p->data; ++ } else { ++ ErrorF("xmir_get_window_prop_atom: Atom %d is not " ++ "an Atom as expected\n", name); ++ return 0; ++ } ++ } ++ p = p->next; ++ } ++ } ++ return 0; ++} ++ ++enum XWMHints_flag { ++ InputHint = 1 ++ /* There are more but not yet required */ ++}; ++ ++typedef struct { ++ long flags; /* marks which fields in this structure are defined */ ++ Bool input; /* does this application rely on the window manager to ++ get keyboard input? */ ++ int initial_state; /* see below */ ++ Pixmap icon_pixmap; /* pixmap to be used as icon */ ++ Window icon_window; /* window to be used as icon */ ++ int icon_x, icon_y; /* initial position of icon */ ++ Pixmap icon_mask; /* icon mask bitmap */ ++ XID window_group; /* id of related window group */ ++ /* this structure may be extended in the future */ ++} XWMHints; ++ ++static XWMHints* ++xmir_get_window_prop_hints(WindowPtr window) ++{ ++ if (window->optional) { ++ PropertyPtr p = window->optional->userProps; ++ while (p) { ++ if (p->propertyName == XA_WM_HINTS) ++ return (XWMHints*)p->data; ++ p = p->next; ++ } ++ } ++ return NULL; ++} ++ ++static void ++damage_report(DamagePtr pDamage, RegionPtr pRegion, void *data) ++{ ++ struct xmir_window *xmir_window = data; ++ struct xmir_screen *xmir_screen = xmir_window->xmir_screen; ++ ++ xorg_list_add(&xmir_window->link_damage, &xmir_screen->damage_window_list); ++} ++ ++static void ++damage_destroy(DamagePtr pDamage, void *data) ++{ ++} ++ ++static void ++xmir_window_enable_damage_tracking(struct xmir_window *xmir_win) ++{ ++ WindowPtr win = xmir_win->window; ++ ++ if (xmir_win->damage != NULL) ++ return; ++ ++ xmir_win->damage = DamageCreate(damage_report, damage_destroy, ++ DamageReportNonEmpty, FALSE, ++ win->drawable.pScreen, xmir_win); ++ DamageRegister(&win->drawable, xmir_win->damage); ++ DamageSetReportAfterOp(xmir_win->damage, TRUE); ++} ++ ++static void ++xmir_window_disable_damage_tracking(struct xmir_window *xmir_win) ++{ ++ if (xmir_win->damage != NULL) { ++ DamageUnregister(xmir_win->damage); ++ DamageDestroy(xmir_win->damage); ++ xmir_win->damage = NULL; ++ } ++} ++ ++static void ++xmir_sw_copy(struct xmir_screen *xmir_screen, struct xmir_window *xmir_win, RegionPtr dirty) ++{ ++ PixmapPtr pix = xmir_screen->screen->GetWindowPixmap(xmir_win->window); ++ int x1 = dirty->extents.x1, y1 = dirty->extents.y1; ++ int x2 = dirty->extents.x2, y2 = dirty->extents.y2; ++ int y, line_len, src_stride = pix->devKind; ++ int bpp = pix->drawable.bitsPerPixel >> 3; ++ char *src, *dst; ++ MirGraphicsRegion region; ++ ++ mir_buffer_stream_get_graphics_region( ++ mir_surface_get_buffer_stream(xmir_win->surface), ®ion); ++ ++ /* ++ * Our window region (and hence damage region) might be a little ahead of ++ * the current buffer in terms of size, during a resize. So we must accept ++ * that their dimensions might not match and take the safe intersection... ++ */ ++ if (x1 < 0) x1 = 0; ++ if (y1 < 0) y1 = 0; ++ if (x2 > region.width) x2 = region.width; ++ if (y2 > region.height) y2 = region.height; ++ if (x2 > pix->drawable.width) x2 = pix->drawable.width; ++ if (y2 > pix->drawable.height) y2 = pix->drawable.height; ++ if (x2 <= x1 || y2 <= y1) return; ++ ++ src = (char*)pix->devPrivate.ptr + src_stride*y1 + x1*bpp; ++ dst = region.vaddr + y1*region.stride + x1*bpp; ++ ++ line_len = (x2 - x1) * bpp; ++ for (y = y1; y < y2; ++y) { ++ memcpy(dst, src, line_len); ++ if (x2 < region.width) ++ memset(dst+x2*bpp, 0, (region.width - x2)*bpp); ++ src += src_stride; ++ dst += region.stride; ++ } ++ ++ if (y2 < region.height) ++ memset(dst, 0, (region.height - y2)*region.stride); ++} ++ ++static void ++xmir_get_current_buffer_dimensions( ++ struct xmir_screen *xmir_screen, struct xmir_window *xmir_win, ++ int *width, int *height) ++{ ++ MirBufferPackage *package; ++ MirGraphicsRegion reg; ++ MirBufferStream *stream = mir_surface_get_buffer_stream(xmir_win->surface); ++ ++ switch (xmir_screen->glamor) { ++ case glamor_off: ++ mir_buffer_stream_get_graphics_region(stream, ®); ++ *width = reg.width; ++ *height = reg.height; ++ break; ++ case glamor_dri: ++ mir_buffer_stream_get_current_buffer(stream, &package); ++ *width = package->width; ++ *height = package->height; ++ break; ++ case glamor_egl: ++ case glamor_egl_sync: ++ eglQuerySurface(xmir_screen->egl_display, xmir_win->egl_surface, ++ EGL_WIDTH, width); ++ eglQuerySurface(xmir_screen->egl_display, xmir_win->egl_surface, ++ EGL_HEIGHT, height); ++ break; ++ default: ++ break; ++ } ++} ++ ++static void ++xmir_swap(struct xmir_screen *xmir_screen, struct xmir_window *xmir_win) ++{ ++ MirBufferStream *stream = mir_surface_get_buffer_stream(xmir_win->surface); ++ struct xmir_swap *swap = calloc(sizeof(struct xmir_swap), 1); ++ swap->server_generation = serverGeneration; ++ swap->xmir_screen = xmir_screen; ++ swap->xmir_window = xmir_win; ++ mir_buffer_stream_swap_buffers(stream, xmir_handle_buffer_received, swap); ++} ++ ++void xmir_repaint(struct xmir_window *xmir_win) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(xmir_win->window->drawable.pScreen); ++ RegionPtr dirty = &xmir_win->region; ++ char wm_name[256]; ++ WindowPtr named = NULL; ++ ++ if (!xmir_win->has_free_buffer) ++ ErrorF("ERROR: xmir_repaint requested without a buffer to paint to\n"); ++ ++ if (strcmp(xmir_screen->title, get_title_from_top_window)) { ++ /* Fixed title mode. Never change it. */ ++ named = NULL; ++ } else if (xmir_screen->rootless) { ++ named = xmir_win->window; ++ } else { /* Try and guess from the most relevant app window */ ++ WindowPtr top = xmir_screen->screen->root->firstChild; ++ WindowPtr top_named = NULL; ++ WindowPtr top_normal = NULL; ++ ++ while (top) { ++ Atom wm_type; ++ WindowPtr app_window; ++ if (!top->viewable) { ++ top = top->nextSib; ++ continue; ++ } ++ app_window = xmir_get_window_prop_window(top, XA_WM_TRANSIENT_FOR); ++ if (app_window) { ++ named = app_window; ++ break; ++ } ++ wm_type = xmir_get_window_prop_atom(top, ++ GET_ATOM(_NET_WM_WINDOW_TYPE)); ++ if (wm_type && wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_NORMAL)) ++ top_normal = top; ++ if (xmir_get_window_name(top, wm_name, sizeof wm_name)) ++ top_named = top; ++ ++ top = top->firstChild; ++ } ++ if (!named) ++ named = top_normal ? top_normal : top_named; ++ } ++ ++ if (named && ++ xmir_get_window_name(named, wm_name, sizeof wm_name) && ++ strcmp(wm_name, xmir_win->wm_name)) { ++ MirSurfaceSpec *rename = ++ mir_connection_create_spec_for_changes(xmir_screen->conn); ++ mir_surface_spec_set_name(rename, wm_name); ++ mir_surface_apply_spec(xmir_win->surface, rename); ++ mir_surface_spec_release(rename); ++ strncpy(xmir_win->wm_name, wm_name, sizeof(xmir_win->wm_name)); ++ } ++ ++ switch (xmir_screen->glamor) { ++ case glamor_off: ++ xmir_sw_copy(xmir_screen, xmir_win, dirty); ++ xmir_win->has_free_buffer = FALSE; ++ xmir_swap(xmir_screen, xmir_win); ++ break; ++ case glamor_dri: ++ xmir_glamor_copy(xmir_screen, xmir_win, dirty); ++ xmir_win->has_free_buffer = FALSE; ++ xmir_swap(xmir_screen, xmir_win); ++ break; ++ case glamor_egl: ++ case glamor_egl_sync: ++ xmir_glamor_copy(xmir_screen, xmir_win, dirty); ++ xmir_win->has_free_buffer = TRUE; ++ /* Will eglSwapBuffers (?) */ ++ break; ++ default: ++ break; ++ } ++ ++ DamageEmpty(xmir_win->damage); ++ xorg_list_del(&xmir_win->link_damage); ++} ++ ++void ++xmir_handle_buffer_available(struct xmir_screen *xmir_screen, ++ struct xmir_window *xmir_win, ++ void *unused) ++{ ++ int buf_width, buf_height; ++ Bool xserver_lagging, xclient_lagging; ++ ++ if (!xmir_win->damage || !mir_surface_is_valid(xmir_win->surface)) { ++ if (xmir_win->damage) ++ ErrorF("Buffer-available recieved for invalid surface?\n"); ++ return; ++ } ++ ++ DebugF("Buffer-available on %p\n", xmir_win); ++ xmir_get_current_buffer_dimensions(xmir_screen, xmir_win, ++ &buf_width, &buf_height); ++ ++ xmir_win->has_free_buffer = TRUE; ++ xmir_win->buf_width = buf_width; ++ xmir_win->buf_height = buf_height; ++ ++ xserver_lagging = buf_width != xmir_win->surface_width || ++ buf_height != xmir_win->surface_height; ++ ++ xclient_lagging = buf_width != xmir_win->window->drawable.width || ++ buf_height != xmir_win->window->drawable.height; ++ ++ if (xserver_lagging || !xorg_list_is_empty(&xmir_win->link_damage)) ++ xmir_repaint(xmir_win); ++ ++ if (xclient_lagging) { ++ if (xmir_screen->rootless) { ++ XID vlist[2] = {buf_width, buf_height}; ++ ConfigureWindow(xmir_win->window, CWWidth|CWHeight, vlist, ++ serverClient); ++ } else { ++ /* Output resizing takes time, so start it going and let it ++ * finish next frame or so... ++ */ ++ xmir_output_handle_resize(xmir_win, buf_width, buf_height); ++ } ++ /* Admittedly the client won't have time to redraw itself in the ++ * new size before the below repaint, but the important bit is that ++ * the X server is using the correct buffer dimensions immediately. ++ */ ++ } ++ ++ if (xserver_lagging) ++ DamageDamageRegion(&xmir_win->window->drawable, &xmir_win->region); ++} ++ ++static void ++xmir_handle_buffer_received(MirBufferStream *stream, void *ctx) ++{ ++ struct xmir_swap *swap = ctx; ++ struct xmir_screen *xmir_screen = swap->xmir_screen; ++ ++ if (swap->server_generation == serverGeneration && !xmir_screen->closing) { ++ xmir_post_to_eventloop(xmir_handle_buffer_available, xmir_screen, ++ swap->xmir_window, 0); ++ } ++ ++ free(swap); ++} ++ ++static Bool ++xmir_create_window(WindowPtr window) ++{ ++ ScreenPtr screen = window->drawable.pScreen; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ struct xmir_window *xmir_window = calloc(sizeof(*xmir_window), 1); ++ Bool ret; ++ ++ if (!xmir_window) ++ return FALSE; ++ ++ xmir_window->xmir_screen = xmir_screen; ++ xmir_window->window = window; ++ xorg_list_init(&xmir_window->link_damage); ++ xorg_list_init(&xmir_window->flip.entry); ++ xorg_list_init(&xmir_window->link_flattened); ++ ++ screen->CreateWindow = xmir_screen->CreateWindow; ++ ret = (*screen->CreateWindow) (window); ++ xmir_screen->CreateWindow = screen->CreateWindow; ++ screen->CreateWindow = xmir_create_window; ++ ++ if (ret) ++ dixSetPrivate(&window->devPrivates, &xmir_window_private_key, xmir_window); ++ else ++ free(xmir_window); ++ ++ return ret; ++} ++ ++static void ++xmir_window_update_region(struct xmir_window *xmir_window) ++{ ++ WindowPtr window = xmir_window->window; ++ BoxRec box = {0, 0, window->drawable.width, window->drawable.height}; ++ RegionReset(&xmir_window->region, &box); ++} ++ ++static Bool ++xmir_realize_window(WindowPtr window) ++{ ++ ScreenPtr screen = window->drawable.pScreen; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ struct xmir_window *xmir_window = xmir_window_get(window); ++ Bool ret; ++ MirPixelFormat pixel_format = mir_pixel_format_invalid; ++ Atom wm_type = 0; ++ int mir_width = window->drawable.width / (1 + xmir_screen->doubled); ++ int mir_height = window->drawable.height / (1 + xmir_screen->doubled); ++ MirSurfaceSpec* spec = NULL; ++ WindowPtr wm_transient_for = NULL, positioning_parent = NULL; ++ MirPersistentId *persistent_id = NULL; ++ XWMHints *wm_hints = NULL; ++ char wm_name[1024]; ++ ++ screen->RealizeWindow = xmir_screen->RealizeWindow; ++ ret = (*screen->RealizeWindow) (window); ++ xmir_screen->RealizeWindow = screen->RealizeWindow; ++ screen->RealizeWindow = xmir_realize_window; ++ ++ if (xmir_screen->rootless && !window->parent) { ++ RegionNull(&window->clipList); ++ RegionNull(&window->borderClip); ++ RegionNull(&window->winSize); ++ } ++ xmir_window_update_region(xmir_window); ++ ++ xmir_get_window_name(window, wm_name, sizeof wm_name); ++ wm_type = xmir_get_window_prop_atom(window, GET_ATOM(_NET_WM_WINDOW_TYPE)); ++ wm_transient_for = xmir_get_window_prop_window(window, XA_WM_TRANSIENT_FOR); ++ ++ XMIR_DEBUG(("Realize %swindow %p id=0x%x \"%s\": %dx%d %+d%+d parent=%p\n" ++ "\tdepth=%d redir=%u type=%hu class=%u visibility=%u viewable=%u\n" ++ "\toverride=%d _NET_WM_WINDOW_TYPE=%lu(%s)\n" ++ "\tWM_TRANSIENT_FOR=%p\n", ++ window == screen->root ? "ROOT " : "", ++ window, (int)window->drawable.id, wm_name, mir_width, mir_height, ++ window->drawable.x, window->drawable.y, ++ window->parent, ++ window->drawable.depth, ++ window->redirectDraw, window->drawable.type, ++ window->drawable.class, window->visibility, window->viewable, ++ window->overrideRedirect, ++ (unsigned long)wm_type, NameForAtom(wm_type)?:"", ++ wm_transient_for)); ++ ++ wm_hints = xmir_get_window_prop_hints(window); ++ if (wm_hints) { ++ XMIR_DEBUG(("\tWM_HINTS={flags=0x%lx,input=%s}\n", ++ wm_hints->flags, wm_hints->input?"True":"False")); ++ } else { ++ XMIR_DEBUG(("\tWM_HINTS=\n")); ++ } ++ ++ if (!window->viewable) { ++ return ret; ++ } else if (xmir_screen->rootless) { ++ if (!window->parent || window->parent == screen->root) { ++ compRedirectWindow(serverClient, window, ++ CompositeRedirectManual); ++ compRedirectSubwindows(serverClient, window, ++ CompositeRedirectAutomatic); ++ } ++ if (window->redirectDraw != RedirectDrawManual) ++ return ret; ++ } else if (window->parent) { ++ return ret; ++ } ++ ++ if (window->drawable.depth == 32) ++ pixel_format = xmir_screen->depth32_pixel_format; ++ else if (window->drawable.depth == 24) ++ pixel_format = xmir_screen->depth24_pixel_format; ++ else { ++ ErrorF("No pixel format available for depth %d\n", ++ (int)window->drawable.depth); ++ return FALSE; ++ } ++ ++ /* TODO: Replace pixel_format with the actual right answer from the ++ * graphics driver when using EGL: ++ * mir_connection_get_egl_pixel_format() ++ */ ++ ++ if (!wm_type) /* Avoid spurious matches with undetected types */ ++ wm_type = -1; ++ ++ positioning_parent = wm_transient_for; ++ if (!positioning_parent) { ++ /* The toolkit has not provided a definite positioning parent so the ++ * next best option is to guess. But we can only reasonably guess for ++ * window types that are typically subordinate to normal windows... ++ */ ++ Bool is_subordinate = wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_DROPDOWN_MENU) ++ || wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_POPUP_MENU) ++ || wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_MENU) ++ || wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_COMBO) ++ || wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_TOOLBAR) ++ || wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_UTILITY) ++ || wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_TOOLTIP) ++ || (wm_type == -1 && window->overrideRedirect); ++ ++ if (is_subordinate) ++ positioning_parent = xmir_screen->last_focus; ++ } ++ ++ if (xmir_screen->flatten && xmir_screen->flatten_top) { ++ WindowPtr top = xmir_screen->flatten_top->window; ++ int dx = window->drawable.x - top->drawable.x; ++ int dy = window->drawable.y - top->drawable.y; ++ xorg_list_append(&xmir_window->link_flattened, ++ &xmir_screen->flattened_list); ++ ReparentWindow(window, top, dx, dy, serverClient); ++ XMIR_DEBUG(("Flattened window %p (reparented under %p %+d%+d)\n", ++ window, top, dx, dy)); ++ /* And thanks to the X Composite extension, window will now be ++ * automatically composited into the existing flatten_top surface ++ * so we retain only a single Mir surface, as Unity8 likes to see. ++ */ ++ return ret; ++ } ++ ++ if (xmir_screen->neverclosed) { ++ spec = mir_connection_create_spec_for_changes(xmir_screen->conn); ++ } else if (positioning_parent) { ++ struct xmir_window *rel = xmir_window_get(positioning_parent); ++ if (rel && rel->surface) { ++ short dx = window->drawable.x - rel->window->drawable.x; ++ short dy = window->drawable.y - rel->window->drawable.y; ++ MirRectangle placement = {dx, dy, 0, 0}; ++ ++ if (wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_TOOLTIP)) { ++ spec = mir_connection_create_spec_for_tooltip( ++ xmir_screen->conn, mir_width, mir_height, pixel_format, ++ rel->surface, &placement); ++ } else if (wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_DIALOG)) { ++ spec = mir_connection_create_spec_for_modal_dialog( ++ xmir_screen->conn, mir_width, mir_height, pixel_format, ++ rel->surface); ++ } else { /* Probably a menu. If not, still close enough... */ ++ MirEdgeAttachment edge = mir_edge_attachment_any; ++ if (wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_DROPDOWN_MENU)) ++ edge = mir_edge_attachment_vertical; ++ spec = mir_connection_create_spec_for_menu( ++ xmir_screen->conn, ++ mir_width, mir_height, pixel_format, rel->surface, ++ &placement, edge); ++ } ++ } ++ } ++ ++ if (!spec) { ++ if (wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_DIALOG)) { ++ spec = mir_connection_create_spec_for_dialog( ++ xmir_screen->conn, mir_width, mir_height, pixel_format); ++ } else { ++ spec = mir_connection_create_spec_for_normal_surface( ++ xmir_screen->conn, mir_width, mir_height, pixel_format); ++ } ++ } ++ ++ if (strcmp(xmir_screen->title, get_title_from_top_window)) ++ mir_surface_spec_set_name(spec, xmir_screen->title); ++ else if (xmir_screen->rootless) ++ mir_surface_spec_set_name(spec, wm_name); ++ ++ xmir_window->surface_width = mir_width; ++ xmir_window->surface_height = mir_height; ++ xmir_window->buf_width = mir_width; ++ xmir_window->buf_height = mir_height; ++ ++ if (xmir_screen->neverclosed) { ++ mir_surface_spec_set_width(spec, mir_width); ++ mir_surface_spec_set_height(spec, mir_height); ++ mir_surface_spec_set_pixel_format(spec, pixel_format); ++ ++ xmir_window->surface = xmir_screen->neverclosed; ++ mir_surface_apply_spec(xmir_window->surface, spec); ++ } else { ++ mir_surface_spec_set_buffer_usage(spec, ++ xmir_screen->glamor ++ ? mir_buffer_usage_hardware ++ : mir_buffer_usage_software); ++ xmir_window->surface = mir_surface_create_sync(spec); ++ } ++ mir_surface_spec_release(spec); ++ ++ persistent_id = ++ mir_surface_request_persistent_id_sync(xmir_window->surface); ++ if (mir_persistent_id_is_valid(persistent_id)) { ++ const char *str = mir_persistent_id_as_string(persistent_id); ++ dixChangeWindowProperty(serverClient, window, ++ MAKE_ATOM(_MIR_WM_PERSISTENT_ID), ++ XA_STRING, 8, PropModeReplace, ++ strlen(str), (void*)str, FALSE); ++ } ++ mir_persistent_id_release(persistent_id); ++ ++ xmir_window->has_free_buffer = TRUE; ++ if (!mir_surface_is_valid(xmir_window->surface)) { ++ ErrorF("failed to create a surface: %s\n", mir_surface_get_error_message(xmir_window->surface)); ++ return FALSE; ++ } ++ if (!xmir_screen->flatten_top) ++ xmir_screen->flatten_top = xmir_window; ++ mir_surface_set_event_handler(xmir_window->surface, xmir_surface_handle_event, xmir_window); ++ ++ xmir_window_enable_damage_tracking(xmir_window); ++ ++ if (xmir_screen->glamor) ++ xmir_glamor_realize_window(xmir_screen, xmir_window, window); ++ ++ return ret; ++} ++ ++static const char * ++xmir_surface_type_str(MirSurfaceType type) ++{ ++ return "unk"; ++} ++ ++static const char * ++xmir_surface_state_str(MirSurfaceState state) ++{ ++ switch (state) { ++ case mir_surface_state_unknown: return "unknown"; ++ case mir_surface_state_restored: return "restored"; ++ case mir_surface_state_minimized: return "minimized"; ++ case mir_surface_state_maximized: return "maximized"; ++ case mir_surface_state_vertmaximized: return "vert maximized"; ++ case mir_surface_state_fullscreen: return "fullscreen"; ++ default: return "???"; ++ } ++} ++ ++static const char * ++xmir_surface_focus_str(MirSurfaceFocusState focus) ++{ ++ switch (focus) { ++ case mir_surface_unfocused: return "unfocused"; ++ case mir_surface_focused: return "focused"; ++ default: return "???"; ++ } ++} ++ ++static const char * ++xmir_surface_vis_str(MirSurfaceVisibility vis) ++{ ++ switch (vis) { ++ case mir_surface_visibility_occluded: return "hidden"; ++ case mir_surface_visibility_exposed: return "visible"; ++ default: return "???"; ++ } ++} ++ ++static Window ++xmir_get_current_input_focus(DeviceIntPtr kbd) ++{ ++ Window id = None; ++ FocusClassPtr focus = kbd->focus; ++ if (focus->win == NoneWin) ++ id = None; ++ else if (focus->win == PointerRootWin) ++ id = PointerRoot; ++ else ++ id = focus->win->drawable.id; ++ return id; ++} ++ ++static void ++xmir_handle_focus_event(struct xmir_window *xmir_window, ++ MirSurfaceFocusState state) ++{ ++ struct xmir_screen *xmir_screen = xmir_window->xmir_screen; ++ DeviceIntPtr keyboard = inputInfo.keyboard; /*PickKeyboard(serverClient);*/ ++ ++ if (xmir_screen->destroying_root) ++ return; ++ ++ if (xmir_window->surface) { /* It's a real Mir window */ ++ xmir_screen->last_focus = (state == mir_surface_focused) ? ++ xmir_window->window : NULL; ++ } ++ ++ if (xmir_screen->rootless) { ++ WindowPtr window = xmir_window->window; ++ const XWMHints *hints = xmir_get_window_prop_hints(window); ++ Bool refuse_focus = window->overrideRedirect || ++ (hints && (hints->flags & InputHint) && !hints->input); ++ if (!refuse_focus) { ++ Window id = (state == mir_surface_focused) ? ++ window->drawable.id : None; ++ SetInputFocus(serverClient, keyboard, id, RevertToParent, ++ CurrentTime, False); ++ } ++ } else if (!strcmp(xmir_screen->title, get_title_from_top_window)) { ++ /* ++ * So as to not break default behaviour, we only hack focus within ++ * the root window when in Unity8 invasive mode (-title @). ++ */ ++ Window id = None; ++ if (state == mir_surface_focused) { ++ id = xmir_screen->saved_focus; ++ if (id == None) ++ id = PointerRoot; ++ } else { ++ xmir_screen->saved_focus = xmir_get_current_input_focus(keyboard); ++ id = None; ++ } ++ SetInputFocus(serverClient, keyboard, id, RevertToNone, CurrentTime, ++ False); ++ } ++ /* else normal root window mode -- Xmir does not interfere in focus */ ++} ++ ++void ++xmir_handle_surface_event(struct xmir_window *xmir_window, MirSurfaceAttrib attr, int val) ++{ ++ switch (attr) { ++ case mir_surface_attrib_type: ++ XMIR_DEBUG(("Type: %s\n", xmir_surface_type_str(val))); ++ break; ++ case mir_surface_attrib_state: ++ XMIR_DEBUG(("State: %s\n", xmir_surface_state_str(val))); ++ break; ++ case mir_surface_attrib_swapinterval: ++ XMIR_DEBUG(("Swap interval: %i\n", val)); ++ break; ++ case mir_surface_attrib_focus: ++ XMIR_DEBUG(("Focus: %s\n", xmir_surface_focus_str(val))); ++ xmir_handle_focus_event(xmir_window, (MirSurfaceFocusState)val); ++ break; ++ case mir_surface_attrib_dpi: ++ XMIR_DEBUG(("DPI: %i\n", val)); ++ break; ++ case mir_surface_attrib_visibility: ++ XMIR_DEBUG(("Visibility: %s\n", xmir_surface_vis_str(val))); ++ break; ++ default: ++ XMIR_DEBUG(("Unhandled attribute %i\n", attr)); ++ break; ++ } ++} ++ ++void ++xmir_close_surface(struct xmir_window *xmir_window) ++{ ++ WindowPtr window = xmir_window->window; ++ struct xmir_screen *xmir_screen = xmir_screen_get(window->drawable.pScreen); ++ ++ if (xmir_screen->rootless) { ++ xEvent event; ++ event.u.u.type = ClientMessage; ++ event.u.u.detail = 32; ++ event.u.clientMessage.window = window->drawable.id; ++ event.u.clientMessage.u.l.type = GET_ATOM(WM_PROTOCOLS); ++ event.u.clientMessage.u.l.longs0 = GET_ATOM(WM_DELETE_WINDOW); ++ event.u.clientMessage.u.l.longs1 = CurrentTime; ++ DeliverEvents(window, &event, 1, NullWindow); ++ } else { ++ ErrorF("Root window closed, shutting down Xmir\n"); ++ GiveUp(0); ++ /*DeleteWindow(window, 1); ? */ ++ } ++} ++ ++static void ++xmir_unmap_input(struct xmir_screen *xmir_screen, WindowPtr window) ++{ ++ struct xmir_input *xmir_input; ++ ++ xorg_list_for_each_entry(xmir_input, &xmir_screen->input_list, link) { ++ if (xmir_input->focus_window && xmir_input->focus_window->window == window) ++ xmir_input->focus_window = NULL; ++ } ++} ++ ++static void ++xmir_bequeath_surface(struct xmir_window *dying, struct xmir_window *benef) ++{ ++ struct xmir_screen *xmir_screen = benef->xmir_screen; ++ struct xmir_window *other; ++ ++ XMIR_DEBUG(("flatten bequeath: %p --> %p\n", ++ dying->window, benef->window)); ++ ++ assert(!benef->surface); ++ benef->surface = dying->surface; ++ dying->surface = NULL; ++ ++ ReparentWindow(benef->window, xmir_screen->screen->root, ++ 0, 0, serverClient); ++ compRedirectWindow(serverClient, benef->window, CompositeRedirectManual); ++ compRedirectSubwindows(serverClient, benef->window, CompositeRedirectAutomatic); ++ ++ xorg_list_for_each_entry(other, &xmir_screen->flattened_list, ++ link_flattened) { ++ ReparentWindow(other->window, benef->window, 0, 0, serverClient); ++ } ++ ++ mir_surface_set_event_handler(benef->surface, xmir_surface_handle_event, ++ benef); ++ ++ xmir_window_enable_damage_tracking(benef); ++ ++ if (xmir_screen->glamor) ++ xmir_glamor_realize_window(xmir_screen, benef, benef->window); ++} ++ ++static void ++xmir_clear_to_black(MirSurface *surface) ++{ /* Admittedly, this will only work for software surfaces */ ++ MirBufferStream *stream = mir_surface_get_buffer_stream(surface); ++ MirGraphicsRegion region; ++ ++ /* On error mir_buffer_stream_get_graphics_region leaves us uninitialized */ ++ region.pixel_format = mir_pixel_format_invalid; ++ mir_buffer_stream_get_graphics_region(stream, ®ion); ++ ++ switch (region.pixel_format) { ++ case mir_pixel_format_invalid: return; /* Probably hardware surface */ ++ case mir_pixel_format_abgr_8888: ++ case mir_pixel_format_xbgr_8888: ++ case mir_pixel_format_argb_8888: ++ case mir_pixel_format_xrgb_8888: { ++ int y; ++ uint32_t *dest = (uint32_t*)region.vaddr; ++ for (y = 0; y < region.height; ++y) { ++ int x; ++ for (x = 0; x < region.width; ++x) ++ dest[x] = 0xff000000; ++ dest = (uint32_t*)((char*)dest + region.stride); ++ } ++ break; ++ } ++ case mir_pixel_format_bgr_888: ++ case mir_pixel_format_rgb_888: { ++ int y; ++ char *dest = region.vaddr; ++ for (y = 0; y < region.height; ++y) { ++ memset(dest, 0, region.width*3); ++ dest += region.stride; ++ } ++ break; ++ } ++ case mir_pixel_format_rgb_565: ++ case mir_pixel_format_rgba_5551: ++ case mir_pixel_format_rgba_4444: { ++ uint16_t fill = 0; ++ int y; ++ uint16_t *dest = (uint16_t*)region.vaddr; ++ switch (region.pixel_format) { ++ case mir_pixel_format_rgb_565: fill = 0x0000; break; ++ case mir_pixel_format_rgba_5551: fill = 0x0001; break; ++ case mir_pixel_format_rgba_4444: fill = 0x000f; break; ++ default: fill = 0; ++ } ++ for (y = 0; y < region.height; ++y) { ++ int x; ++ for (x = 0; x < region.width; ++x) ++ dest[x] = fill; ++ dest = (uint16_t*)((char*)dest + region.stride); ++ } ++ break; ++ } ++ default: ++ return; ++ } ++ mir_buffer_stream_swap_buffers(stream, NULL, NULL); ++} ++ ++static void ++xmir_unmap_surface(struct xmir_screen *xmir_screen, WindowPtr window, BOOL destroyed) ++{ ++ struct xmir_window *xmir_window = ++ dixLookupPrivate(&window->devPrivates, &xmir_window_private_key); ++ ++ if (!xmir_window) ++ return; ++ ++ XMIR_DEBUG(("Unmap/unrealize window %p\n", window)); ++ ++ if (!destroyed) ++ xmir_window_disable_damage_tracking(xmir_window); ++ else ++ xmir_window->damage = NULL; ++ ++ xorg_list_del(&xmir_window->link_damage); ++ ++ if (xmir_screen->glamor) ++ xmir_glamor_unrealize_window(xmir_screen, xmir_window, window); ++ ++ xorg_list_del(&xmir_window->link_flattened); ++ ++ if (!xmir_window->surface) ++ return; ++ ++ mir_surface_set_event_handler(xmir_window->surface, NULL, NULL); ++ ++ if (xmir_screen->flatten && xmir_screen->flatten_top == xmir_window) { ++ xmir_screen->flatten_top = NULL; ++ if (!xorg_list_is_empty(&xmir_screen->flattened_list)) { ++ xmir_screen->flatten_top = ++ xorg_list_first_entry(&xmir_screen->flattened_list, ++ struct xmir_window, ++ link_flattened); ++ xorg_list_del(&xmir_screen->flatten_top->link_flattened); ++ xmir_bequeath_surface(xmir_window, xmir_screen->flatten_top); ++ } ++ } ++ ++ if (xmir_window->surface) { ++ if (xmir_screen->neverclose) { ++ xmir_screen->neverclosed = xmir_window->surface; ++ xmir_clear_to_black(xmir_screen->neverclosed); ++ } else { ++ mir_surface_release_sync(xmir_window->surface); ++ } ++ ++ xmir_window->surface = NULL; ++ } ++ ++ xmir_process_from_eventloop_except(xmir_window); ++ ++ RegionUninit(&xmir_window->region); ++} ++ ++static Bool ++xmir_unrealize_window(WindowPtr window) ++{ ++ ScreenPtr screen = window->drawable.pScreen; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ Bool ret; ++ ++ if (window == xmir_screen->last_focus) ++ xmir_screen->last_focus = NULL; ++ ++ xmir_unmap_input(xmir_screen, window); ++ ++ screen->UnrealizeWindow = xmir_screen->UnrealizeWindow; ++ ret = (*screen->UnrealizeWindow) (window); ++ xmir_screen->UnrealizeWindow = screen->UnrealizeWindow; ++ screen->UnrealizeWindow = xmir_unrealize_window; ++ ++ xmir_unmap_surface(xmir_screen, window, FALSE); ++ ++ return ret; ++} ++ ++static Bool ++xmir_destroy_window(WindowPtr window) ++{ ++ ScreenPtr screen = window->drawable.pScreen; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ Bool ret; ++ ++ if (!window->parent) ++ xmir_screen->destroying_root = TRUE; ++ ++ xmir_unmap_input(xmir_screen, window); ++ xmir_unmap_surface(xmir_screen, window, TRUE); ++ ++ screen->DestroyWindow = xmir_screen->DestroyWindow; ++ ret = (*screen->DestroyWindow) (window); ++ xmir_screen->DestroyWindow = screen->DestroyWindow; ++ screen->DestroyWindow = xmir_destroy_window; ++ ++ return ret; ++} ++ ++static void ++xmir_resize_window(WindowPtr window, int x, int y, ++ unsigned int w, unsigned int h, WindowPtr sib) ++{ ++ ScreenPtr screen = window->drawable.pScreen; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ struct xmir_window *xmir_window = xmir_window_get(window); ++ ++ screen->ResizeWindow = xmir_screen->ResizeWindow; ++ (*screen->ResizeWindow) (window, x, y, w, h, sib); ++ xmir_screen->ResizeWindow = screen->ResizeWindow; ++ screen->ResizeWindow = xmir_resize_window; ++ ++ if (xmir_window->surface) { ++ /* This is correct in theory but most Mir shells don't do it yet */ ++ MirSurfaceSpec *changes = ++ mir_connection_create_spec_for_changes(xmir_screen->conn); ++ mir_surface_spec_set_width(changes, w); ++ mir_surface_spec_set_height(changes, h); ++ mir_surface_apply_spec(xmir_window->surface, changes); ++ mir_surface_spec_release(changes); ++ ++ XMIR_DEBUG(("X window %p resized to %ux%u %+d%+d with sibling %p\n", ++ window, w, h, x, y, sib)); ++ } ++ ++ xmir_window_update_region(xmir_window); ++} ++ ++static Bool ++xmir_close_screen(ScreenPtr screen) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ struct xmir_output *xmir_output, *next_xmir_output; ++ Bool ret; ++ ++ xmir_screen->closing = TRUE; ++ ++ if (xmir_screen->glamor && xmir_screen->gbm) ++ DRI2CloseScreen(screen); ++ ++ screen->CloseScreen = xmir_screen->CloseScreen; ++ ret = screen->CloseScreen(screen); ++ ++ xorg_list_for_each_entry_safe(xmir_output, next_xmir_output, ++ &xmir_screen->output_list, link) ++ xmir_output_destroy(xmir_output); ++ ++ if (xmir_screen->glamor) ++ xmir_glamor_fini(xmir_screen); ++ mir_display_config_destroy(xmir_screen->display); ++ mir_connection_release(xmir_screen->conn); ++ ++ xmir_fini_thread_to_eventloop(); ++ free(xmir_screen->driver_name); ++ free(xmir_screen); ++ ++ return ret; ++} ++ ++static Bool ++xmir_is_unblank(int mode) ++{ ++ switch (mode) { ++ case SCREEN_SAVER_OFF: ++ case SCREEN_SAVER_FORCER: ++ return TRUE; ++ case SCREEN_SAVER_ON: ++ case SCREEN_SAVER_CYCLE: ++ return FALSE; ++ default: ++ ErrorF("Unexpected save screen mode: %d\n", mode); ++ return TRUE; ++ } ++} ++ ++Bool ++DPMSSupported(void) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screenInfo.screens[0]); ++ return !xmir_screen->rootless; ++} ++ ++int ++DPMSSet(ClientPtr client, int level) ++{ ++ int rc = Success; ++ struct xmir_screen *xmir_screen = xmir_screen_get(screenInfo.screens[0]); ++ ++ DPMSPowerLevel = level; ++ ++ if (level != DPMSModeOn) { ++ if (xmir_is_unblank(screenIsSaved)) ++ rc = dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverActive); ++ } else { ++ if (!xmir_is_unblank(screenIsSaved)) ++ rc = dixSaveScreens(client, SCREEN_SAVER_OFF, ScreenSaverReset); ++ } ++ ++ if (rc != Success) ++ return rc; ++ ++ xmir_output_dpms(xmir_screen, level); ++ ++ return Success; ++} ++ ++static Bool ++xmir_save_screen(ScreenPtr screen, int mode) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ ++ if (xmir_is_unblank(mode)) ++ return xmir_output_dpms(xmir_screen, DPMSModeOn); ++ else ++ return xmir_output_dpms(xmir_screen, DPMSModeOff); ++} ++ ++static void ++xmir_block_handler(ScreenPtr screen, void *ptv, void *read_mask) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ struct xmir_window *xmir_window, *next; ++ ++ xorg_list_for_each_entry_safe(xmir_window, next, ++ &xmir_screen->damage_window_list, ++ link_damage) { ++ if (xmir_window->has_free_buffer) { ++ xmir_repaint(xmir_window); ++ } ++ } ++} ++ ++static Bool ++xmir_create_screen_resources(ScreenPtr screen) ++{ ++ struct xmir_screen *xmir_screen = xmir_screen_get(screen); ++ int ret; ++ ++ screen->CreateScreenResources = xmir_screen->CreateScreenResources; ++ ret = (*screen->CreateScreenResources) (screen); ++ xmir_screen->CreateScreenResources = screen->CreateScreenResources; ++ screen->CreateScreenResources = xmir_create_screen_resources; ++ ++ if (!ret) ++ return ret; ++ ++ if (!xmir_screen->rootless) ++ screen->devPrivate = screen->CreatePixmap(screen, screen->width, screen->height, screen->rootDepth, CREATE_PIXMAP_USAGE_BACKING_PIXMAP); ++ else ++ screen->devPrivate = fbCreatePixmap(screen, 0, 0, screen->rootDepth, 0); ++ ++ if (!screen->devPrivate) ++ return FALSE; ++ ++#ifdef GLAMOR_HAS_GBM ++ if (xmir_screen->glamor && !xmir_screen->rootless) { ++ glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(screen->devPrivate); ++ ++ glBindFramebuffer(GL_FRAMEBUFFER, pixmap_priv->fbo->fb); ++ glClear(GL_COLOR_BUFFER_BIT); ++ glBindFramebuffer(GL_FRAMEBUFFER, 0); ++ ++ glamor_set_screen_pixmap(screen->devPrivate, NULL); ++ } ++#endif ++ ++ return TRUE; ++} ++ ++struct xmir_visit_set_pixmap_window { ++ PixmapPtr old, new; ++}; ++ ++static int ++xmir_visit_set_window_pixmap(WindowPtr window, void *data) ++{ ++ struct xmir_visit_set_pixmap_window *visit = data; ++ ++ if (fbGetWindowPixmap(window) == visit->old) { ++ window->drawable.pScreen->SetWindowPixmap(window, visit->new); ++ return WT_WALKCHILDREN; ++ } ++ ++ return WT_DONTWALKCHILDREN; ++} ++ ++static void ++xmir_set_screen_pixmap(PixmapPtr pixmap) ++{ ++ ScreenPtr screen = pixmap->drawable.pScreen; ++ PixmapPtr old_front = screen->devPrivate; ++ WindowPtr root; ++ ++ root = screen->root; ++ if (root) { ++ struct xmir_visit_set_pixmap_window visit = { old_front, pixmap }; ++ assert(fbGetWindowPixmap(root) == old_front); ++ TraverseTree(root, xmir_visit_set_window_pixmap, &visit); ++ assert(fbGetWindowPixmap(root) == pixmap); ++ } ++ ++ screen->devPrivate = pixmap; ++ ++ if (old_front) ++ screen->DestroyPixmap(old_front); ++} ++ ++static Bool ++xmir_screen_init(ScreenPtr pScreen, int argc, char **argv) ++{ ++ struct xmir_screen *xmir_screen; ++ MirConnection *conn; ++ Pixel red_mask, blue_mask, green_mask; ++ int ret, bpc, i; ++ int client_fd = -1; ++ char *socket = NULL; ++ const char *appid = "XMIR"; ++ unsigned int formats, f; ++ MirPixelFormat format[1024]; ++ ++ if (!dixRegisterPrivateKey(&xmir_screen_private_key, PRIVATE_SCREEN, 0) || ++ !dixRegisterPrivateKey(&xmir_window_private_key, PRIVATE_WINDOW, 0) || ++ !dixRegisterPrivateKey(&xmir_pixmap_private_key, PRIVATE_PIXMAP, 0)) ++ return FALSE; ++ ++ memset(&known_atom, 0, sizeof known_atom); ++ ++ xmir_screen = calloc(sizeof *xmir_screen, 1); ++ if (!xmir_screen) ++ return FALSE; ++ ++ xmir_screen->conn = NULL; ++ ++ xmir_init_thread_to_eventloop(); ++ dixSetPrivate(&pScreen->devPrivates, &xmir_screen_private_key, xmir_screen); ++ xmir_screen->screen = pScreen; ++ xmir_screen->glamor = glamor_dri; ++ ++ for (i = 1; i < argc; i++) { ++ if (strcmp(argv[i], "-rootless") == 0) { ++ xmir_screen->rootless = 1; ++ } else if (strcmp(argv[i], "-flatten") == 0) { ++ xmir_screen->flatten = True; ++ } else if (strcmp(argv[i], "-neverclose") == 0) { ++ xmir_screen->neverclose = True; ++ } else if (strcmp(argv[i], "-title") == 0) { ++ xmir_screen->title = argv[++i]; ++ } else if (strcmp(argv[i], "-mir") == 0) { ++ appid = argv[++i]; ++ } else if (strcmp(argv[i], "-mirSocket") == 0) { ++ socket = argv[++i]; ++ } else if (strcmp(argv[i], "-sw") == 0) { ++ xmir_screen->glamor = glamor_off; ++ } else if (strcmp(argv[i], "-egl") == 0) { ++ if (xmir_screen->glamor != glamor_egl_sync) ++ xmir_screen->glamor = glamor_egl; ++ } else if (strcmp(argv[i], "-2x") == 0) { ++ xmir_screen->doubled = 1; ++ } else if (strcmp(argv[i], "-debug") == 0) { ++ xmir_debug_logging = True; ++ } else if (strcmp(argv[i], "-damage") == 0) { ++ /* Ignored. Damage-all is now the default and only option. */ ++ } else if (strcmp(argv[i], "-egl_sync") == 0) { ++ xmir_screen->glamor = glamor_egl_sync; ++ } else if (strcmp(argv[i], "-fd") == 0) { ++ client_fd = (int)strtol(argv[++i], (char **)NULL, 0); ++ } ++ } ++ ++ if (xmir_screen->flatten && !xmir_screen->rootless) { ++ FatalError("-flatten is not valid without -rootless\n"); ++ return FALSE; ++ } ++ if (xmir_screen->neverclose && !xmir_screen->flatten) { ++ FatalError("-neverclose is not valid without -rootless -flatten\n"); ++ return FALSE; ++ } ++ ++ if (!xmir_screen->title) ++ xmir_screen->title = xmir_screen->rootless ? get_title_from_top_window ++ : "Xmir root window"; ++ ++#ifdef __arm__ ++ if (xmir_screen->glamor == glamor_dri) { ++ XMIR_DEBUG(("ARM architecture: Defaulting to software mode because " ++ "glamor is not stable\n")); ++ /* Hide the ARM glamor bugs for now so we can have working phones */ ++ xmir_screen->glamor = glamor_off; ++ } ++#endif ++ ++ if (client_fd != -1) { ++ if (!AddClientOnOpenFD(client_fd)) { ++ FatalError("failed to connect to client fd %d\n", client_fd); ++ return FALSE; ++ } ++ } ++ ++ conn = mir_connect_sync(socket, appid); ++ if (!mir_connection_is_valid(conn)) { ++ FatalError("Failed to connect to Mir: %s\n", ++ mir_connection_get_error_message(conn)); ++ return FALSE; ++ } ++ xmir_screen->conn = conn; ++ mir_connection_get_platform(xmir_screen->conn, &xmir_screen->platform); ++ ++ xorg_list_init(&xmir_screen->output_list); ++ xorg_list_init(&xmir_screen->input_list); ++ xorg_list_init(&xmir_screen->damage_window_list); ++ xorg_list_init(&xmir_screen->flattened_list); ++ xmir_screen->depth = 24; ++ ++ mir_connection_get_available_surface_formats(xmir_screen->conn, ++ format, sizeof(format)/sizeof(format[0]), &formats); ++ ++#if 0 /* Emulate the Mir Android graphics platform for LP: #1573470 */ ++ format[0] = mir_pixel_format_abgr_8888; ++ format[1] = mir_pixel_format_xbgr_8888; ++ formats = 2; ++#endif ++ ++ for (f = 0; f < formats; ++f) { ++ switch (format[f]) { ++ case mir_pixel_format_argb_8888: ++ case mir_pixel_format_abgr_8888: ++ xmir_screen->depth32_pixel_format = format[f]; ++ break; ++ case mir_pixel_format_xrgb_8888: ++ case mir_pixel_format_xbgr_8888: ++ case mir_pixel_format_bgr_888: ++ xmir_screen->depth24_pixel_format = format[f]; ++ break; ++ default: ++ /* Other/new pixel formats don't need mentioning. We only ++ care about Xorg-compatible formats */ ++ break; ++ } ++ } ++ ++ xmir_screen->display = mir_connection_create_display_config(conn); ++ if (xmir_screen->display == NULL) { ++ FatalError("could not create display config\n"); ++ return FALSE; ++ } ++ ++ /* ++ * Core DPI cannot report correct values (it's one value and we might have ++ * multiple displays). Use the value from the -dpi command line if set, or ++ * 96 otherwise. ++ * ++ * This matches the behaviour of all the desktop Xorg drivers. Clients ++ * which care can use the XRandR extension to get correct per-output DPI ++ * information. ++ */ ++ xmir_screen->dpi = monitorResolution > 0 ? monitorResolution : 96; ++ ++ if (!xmir_screen_init_output(xmir_screen)) ++ return FALSE; ++ ++ if (xmir_screen->glamor) ++ xmir_screen_init_glamor(xmir_screen); ++ ++ bpc = 8; ++ green_mask = 0x00ff00; ++ switch (xmir_screen->depth24_pixel_format) ++ { ++ case mir_pixel_format_xrgb_8888: ++ case mir_pixel_format_bgr_888: /* Little endian: Note the reversal */ ++ red_mask = 0xff0000; ++ blue_mask = 0x0000ff; ++ break; ++ case mir_pixel_format_xbgr_8888: ++ red_mask = 0x0000ff; ++ blue_mask = 0xff0000; ++ break; ++ default: ++ ErrorF("No Mir-compatible TrueColor formats\n"); ++ return FALSE; ++ } ++ ++ miSetVisualTypesAndMasks(xmir_screen->depth, ++ ((1 << TrueColor) | (1 << DirectColor)), ++ bpc, TrueColor, ++ red_mask, green_mask, blue_mask); ++ ++ miSetPixmapDepths(); ++ ++ ret = fbScreenInit(pScreen, NULL, ++ pScreen->width, pScreen->height, ++ xmir_screen->dpi, xmir_screen->dpi, 0, ++ BitsPerPixel(xmir_screen->depth)); ++ if (!ret) ++ return FALSE; ++ ++ fbPictureInit(pScreen, 0, 0); ++ ++ pScreen->blackPixel = 0; ++ pScreen->whitePixel = 1; ++ ++ ret = fbCreateDefColormap(pScreen); ++ ++ if (!xmir_screen_init_cursor(xmir_screen)) ++ return FALSE; ++ ++ pScreen->SaveScreen = xmir_save_screen; ++ pScreen->BlockHandler = xmir_block_handler; ++ pScreen->SetScreenPixmap = xmir_set_screen_pixmap; ++ ++ xmir_screen->CreateScreenResources = pScreen->CreateScreenResources; ++ pScreen->CreateScreenResources = xmir_create_screen_resources; ++ ++#ifdef GLAMOR_HAS_GBM ++ if (xmir_screen->glamor && !xmir_glamor_init(xmir_screen)) { ++ if (xmir_screen->glamor >= glamor_egl) ++ FatalError("EGL requested, but not available\n"); ++ xmir_screen->glamor = glamor_off; ++ } ++ ++ if (xmir_screen->glamor && xmir_screen->gbm && !xmir_dri2_screen_init(xmir_screen)) ++ ErrorF("Failed to initialize DRI2.\n"); ++#endif ++ ++ if (!xmir_screen->glamor && xmir_screen->doubled) ++ FatalError("-2x requires EGL support\n"); ++ ++ xmir_screen->CreateWindow = pScreen->CreateWindow; ++ pScreen->CreateWindow = xmir_create_window; ++ ++ xmir_screen->RealizeWindow = pScreen->RealizeWindow; ++ pScreen->RealizeWindow = xmir_realize_window; ++ ++ xmir_screen->DestroyWindow = pScreen->DestroyWindow; ++ pScreen->DestroyWindow = xmir_destroy_window; ++ ++ xmir_screen->ResizeWindow = pScreen->ResizeWindow; ++ pScreen->ResizeWindow = xmir_resize_window; ++ ++ xmir_screen->UnrealizeWindow = pScreen->UnrealizeWindow; ++ pScreen->UnrealizeWindow = xmir_unrealize_window; ++ ++ xmir_screen->CloseScreen = pScreen->CloseScreen; ++ pScreen->CloseScreen = xmir_close_screen; ++ ++ { ++ int v; ++ XMIR_DEBUG(("XMir initialized with %hd visuals:\n", ++ pScreen->numVisuals)); ++ for (v = 0; v < pScreen->numVisuals; ++v) { ++ VisualPtr visual = pScreen->visuals + v; ++ XMIR_DEBUG(("\tVisual id 0x%x: %lx %lx %lx, %hd planes\n", ++ (int)visual->vid, ++ (long)visual->redMask, ++ (long)visual->greenMask, ++ (long)visual->blueMask, ++ visual->nplanes)); ++ } ++ } ++ ++ return ret; ++} ++ ++static const ExtensionModule xmir_extensions[] = { ++#ifdef DRI2 ++ { DRI2ExtensionInit, "DRI2", &noDRI2Extension }, ++#endif ++#ifdef GLXEXT ++ { GlxExtensionInit, "GLX", &noGlxExtension }, ++#endif ++}; ++ ++void ++InitOutput(ScreenInfo *screen_info, int argc, char **argv) ++{ ++ int depths[] = { 1, 4, 8, 15, 16, 24, 32 }; ++ int bpp[] = { 1, 8, 8, 16, 16, 32, 32 }; ++ int i; ++ ++ for (i = 0; i < ARRAY_SIZE(depths); i++) { ++ screen_info->formats[i].depth = depths[i]; ++ screen_info->formats[i].bitsPerPixel = bpp[i]; ++ screen_info->formats[i].scanlinePad = BITMAP_SCANLINE_PAD; ++ } ++ ++ screen_info->imageByteOrder = IMAGE_BYTE_ORDER; ++ screen_info->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT; ++ screen_info->bitmapScanlinePad = BITMAP_SCANLINE_PAD; ++ screen_info->bitmapBitOrder = BITMAP_BIT_ORDER; ++ screen_info->numPixmapFormats = ARRAY_SIZE(depths); ++ ++ if (serverGeneration == 1) { ++#ifdef GLXEXT ++ GlxPushProvider(&__glXDRI2Provider); ++#endif ++ LoadExtensionList(xmir_extensions, ++ ARRAY_SIZE(xmir_extensions), TRUE); ++ } ++ ++ if (AddScreen(xmir_screen_init, argc, argv) == -1) { ++ FatalError("Couldn't add screen\n"); ++ } ++} +diff --git a/hw/xmir/xmir.h b/hw/xmir/xmir.h +new file mode 100644 +index 0000000..771027a +--- /dev/null ++++ b/hw/xmir/xmir.h +@@ -0,0 +1,232 @@ ++/* ++ * Copyright © 2015 Canonical Ltd ++ * ++ * Permission to use, copy, modify, distribute, and sell this software ++ * and its documentation for any purpose is hereby granted without ++ * fee, provided that the above copyright notice appear in all copies ++ * and that both that copyright notice and this permission notice ++ * appear in supporting documentation, and that the name of the ++ * copyright holders not be used in advertising or publicity ++ * pertaining to distribution of the software without specific, ++ * written prior permission. The copyright holders make no ++ * representations about the suitability of this software for any ++ * purpose. It is provided "as is" without express or implied ++ * warranty. ++ * ++ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS ++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND ++ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++#ifndef XMIR_H ++#define XMIR_H ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define MESA_EGL_NO_X11_HEADERS ++#include ++#include ++ ++struct xmir_window; ++struct xmir_output; ++ ++struct xmir_screen { ++ ScreenPtr screen; ++ ++ int depth, rootless, doubled; ++ enum {glamor_off=0, glamor_dri, glamor_egl, glamor_egl_sync} glamor; ++ ++ CreateScreenResourcesProcPtr CreateScreenResources; ++ CloseScreenProcPtr CloseScreen; ++ CreateWindowProcPtr CreateWindow; ++ DestroyWindowProcPtr DestroyWindow; ++ RealizeWindowProcPtr RealizeWindow; ++ UnrealizeWindowProcPtr UnrealizeWindow; ++ ResizeWindowProcPtr ResizeWindow; ++ ++ struct xorg_list output_list; ++ struct xorg_list input_list; ++ struct xorg_list damage_window_list; ++ ++ MirConnection *conn; ++ MirDisplayConfiguration *display; ++ MirPlatformPackage platform; ++ ++ /* Bookkeeping for eglSwapBuffers */ ++ pthread_mutex_t mutex; ++ pthread_cond_t cond; ++ pthread_t thread; ++ int alive; ++ struct xorg_list swap_list; ++ void *swap_surface; ++ ++ char *device_name, *driver_name; ++ int drm_fd; ++ void *egl_display, *egl_context, *swap_context; ++ struct gbm_device *gbm; ++ struct glamor_context *glamor_ctx; ++ void *egl_surface; ++ ++ MirPixelFormat depth24_pixel_format, depth32_pixel_format; ++ Bool flatten; ++ Bool neverclose; ++ Bool destroying_root; ++ Bool closing; ++ const char *title; ++ MirSurface *neverclosed; ++ struct xorg_list flattened_list; ++ struct xmir_window *flatten_top; ++ WindowPtr last_focus; ++ Window saved_focus; ++ ++ int dpi; ++ ++ DRI2InfoRec dri2; ++ ++ struct xmir_output *windowed; ++ Bool glamor_has_GL_EXT_framebuffer_blit; ++}; ++ ++struct xmir_pixmap { ++ unsigned int fake_back; ++ struct gbm_bo *bo; ++ void *image; ++}; ++ ++struct xmir_window { ++ struct xmir_screen *xmir_screen; ++ MirSurface *surface; ++ WindowPtr window; ++ DamagePtr damage; ++ RegionRec region; ++ ++ int surface_width, surface_height; ++ int buf_width, buf_height; ++ ++ struct xorg_list link_damage; ++ int orientation; ++ unsigned int has_free_buffer:1; ++ ++ struct xorg_list link_flattened; ++ ++ void *egl_surface, *image; ++ PixmapPtr back_pixmap, front_pixmap, reuse_pixmap; ++ ++ struct xmir_flip { ++ ClientPtr client; ++ int type; ++ DrawablePtr draw; ++ DRI2SwapEventPtr func; ++ void *data; ++ struct xorg_list entry; ++ } flip; ++ ++ char wm_name[256]; ++}; ++ ++struct xmir_input { ++ DeviceIntPtr pointer; ++ DeviceIntPtr keyboard; ++ DeviceIntPtr touch; ++ struct xmir_screen *xmir_screen; ++ struct xmir_window *focus_window; ++ uint32_t id; ++ int touch_id; ++ struct xorg_list link; ++}; ++ ++struct xmir_output { ++ struct xorg_list link; ++ struct xmir_screen *xmir_screen; ++ RROutputPtr randr_output; ++ RRCrtcPtr randr_crtc; ++ int32_t x, y, width, height; ++}; ++ ++extern Bool xmir_debug_logging; ++#define XMIR_DEBUG(_args) {if (xmir_debug_logging) ErrorF _args;} ++ ++struct xmir_window *xmir_window_get(WindowPtr window); ++struct xmir_screen *xmir_screen_get(ScreenPtr screen); ++struct xmir_pixmap *xmir_pixmap_get(PixmapPtr pixmap); ++void xmir_pixmap_set(PixmapPtr pixmap, struct xmir_pixmap *xmir_pixmap); ++ ++void xmir_handle_surface_event(struct xmir_window *, MirSurfaceAttrib, int); ++void xmir_handle_buffer_available(struct xmir_screen *xmir_screen, ++ struct xmir_window *xmir_win, ++ void *unused); ++void xmir_close_surface(struct xmir_window *); ++ ++void xmir_repaint(struct xmir_window *); ++ ++/* xmir-input.c */ ++Bool xmir_screen_init_cursor(struct xmir_screen *xmir_screen); ++ ++/* xmir-output.c */ ++Bool xmir_screen_init_output(struct xmir_screen *xmir_screen); ++void xmir_output_destroy(struct xmir_output *xmir_output); ++Bool xmir_output_dpms(struct xmir_screen *xmir_screen, int dpms); ++void xmir_output_handle_resize(struct xmir_window *, int, int); ++void xmir_output_handle_orientation(struct xmir_window *, MirOrientation); ++ ++/* xmir-cvt.c */ ++RRModePtr xmir_cvt(int HDisplay, int VDisplay, float VRefresh, Bool Reduced, Bool Interlaced); ++ ++/* xmir-dri2.c */ ++Bool xmir_dri2_screen_init(struct xmir_screen *xmir_screen); ++ ++/* xmir-glamor.c */ ++Bool xmir_glamor_init(struct xmir_screen *xmir_screen); ++Bool xmir_screen_init_glamor(struct xmir_screen *xmir_screen); ++void xmir_glamor_fini(struct xmir_screen *xmir_screen); ++ ++PixmapPtr xmir_glamor_win_get_back(struct xmir_screen *, struct xmir_window *, DrawablePtr); ++void xmir_glamor_copy(struct xmir_screen *, struct xmir_window *, RegionPtr); ++void xmir_glamor_realize_window(struct xmir_screen *, struct xmir_window *, WindowPtr); ++void xmir_glamor_unrealize_window(struct xmir_screen *, struct xmir_window *, WindowPtr); ++ ++struct glamor_pixmap_private; ++void xmir_glamor_copy_egl_common(DrawablePtr, PixmapPtr src, struct glamor_pixmap_private *, ++ BoxPtr, int width, int height, int dx, int dy, int orientation); ++ ++/* xmir-thread-proxy.c */ ++void xmir_init_thread_to_eventloop(void); ++void xmir_fini_thread_to_eventloop(void); ++ ++typedef void (xmir_event_callback)(struct xmir_screen*, struct xmir_window*, ++ void *arg); ++void xmir_post_to_eventloop(xmir_event_callback *cb, ++ struct xmir_screen*, struct xmir_window*, void*); ++void xmir_process_from_eventloop(void); ++void xmir_process_from_eventloop_except(const struct xmir_window*); ++ ++/* xmir-input.c */ ++void xmir_surface_handle_event(MirSurface *surface, MirEvent const* ev, void *context); ++ ++#define XMIR_CREATE_PIXMAP_USAGE_FLIP 0x10000000 ++ ++#define XORG_VERSION_NUMERIC(major,minor,patch,snap,dummy) \ ++ (((major) * 10000000) + ((minor) * 100000) + ((patch) * 1000) + snap) ++ ++#endif +-- +2.9.3 + --- xorg-server-1.18.4.orig/debian/po/POTFILES.in +++ xorg-server-1.18.4/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] xserver-xorg-legacy.templates --- xorg-server-1.18.4.orig/debian/po/ar.po +++ xorg-server-1.18.4/debian/po/ar.po @@ -0,0 +1,62 @@ +# translation of ar.po to Arabic +# xserver-xorg translation +# Copyright (C) 2006 The Arabeyes Project +# This file is distributed under the same license as the xserver-xorg package. +# +# Ossama M. Khayat , 2006, 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: ar\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-12 03:41+0300\n" +"Last-Translator: Ossama M. Khayat \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=4; plural=n%100==1 || n==0 ? 0 : n%100==2 ? 2 : n" +"%100>=3 && n%100<=10 ? 2 : 3;\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "المستخدم root فقط" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "مستخدمي الطرفية فقط" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "أي أحد" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "المستخدمين المسموح لهم تشغيل خادم X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"لأن خادم X يعمل بصلاحية المستخدم الخارق، فقد لا يكون من الحكمة السماح لأي " +"مستخدم بتشغيله، لأسباب أمنية. من ناحية أخرى، فليس من الحكمة أيضاً تشغيل برامج " +"X العامة كمستخدم root، والذي قد يحدث إن كان المستخدم root هو الوحيد الذي " +"يمكنه تشغيل خادم X. لذا، فإن الحل الأمثل لهذه المعضلة هو السماح فقط لمستخدمي " +"النظام عبر أحد الطرفيات الوهمية." --- xorg-server-1.18.4.orig/debian/po/ast.po +++ xorg-server-1.18.4/debian/po/ast.po @@ -0,0 +1,64 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg_po\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2009-01-12 08:33+0100\n" +"Last-Translator: Marcos Alvarez Costales \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Asturian\n" +"X-Poedit-Country: SPAIN\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Namái root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Namái usuarios de consola" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Cualesquiera" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Usuarios a los que se-yos permite arrancar el sirvidor de X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Darréu que'l servidor X execútase con privilexos de superusuariu, pue nun " +"ser enforma prudente dexar que cualesquier usuariu lu arranque, por sides de " +"seguridá. Per otru llau, ye entá más imprudente executar programes veceru de " +"X de forma xeneral como root, lo cual pue asoceder si namái se permite a " +"root aniciar el sirvidor X. Un compromisu ente dambos casos ye permitir " +"que'l sirvidor X lu anicien namái usuarios que tengan entrao per una de les " +"consoles virtuales." --- xorg-server-1.18.4.orig/debian/po/be.po +++ xorg-server-1.18.4/debian/po/be.po @@ -0,0 +1,58 @@ +# translation of xorg_be.po to Belarusian +# Pavel Piatruk , 2008. +# Version xorg 1:7.3+12 +msgid "" +msgstr "" +"Project-Id-Version: xorg_be\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-09 12:18+0300\n" +"Last-Translator: Pavel Piatruk \n" +"Language-Team: Belarusian \n" +"Language: be\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Толькі Root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Толькі карыстальнікі кансолі" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Усе" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Карыстальнікі, якім дазволена запускаць X-сервер:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"X-сервер працуе з прывілеямі супер-карыстальніка, таму з прычын бяспекі лепш " +"не дазваляць запускаць яго любому карыстальніку. З іншага боку, яшчэ горш " +"сітуацыя, калі ўсе кліенцкія X-праграмы працуюць з прывілеямі супер-" +"карыстальніка - так будзе, калі толькі супер-карыстальніку будзе дазволена " +"стартаваць X-сервер. Найлепшае выйсце - дазволіць запуск X-сервера толькі " +"тым карыстальнікам, што зайшлі ў адну з віртуальных кансоляў." --- xorg-server-1.18.4.orig/debian/po/bg.po +++ xorg-server-1.18.4/debian/po/bg.po @@ -0,0 +1,80 @@ +# translation of bg.po to Bulgarian +# debconf templates for xorg-x11 package +# Bulgarian translation +# +# $Id$ +# +# Copyrights: +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Damyan Ivanov , 2006, 2007. +# Damyan Ivanov , 2008. +msgid "" +msgstr "" +"Project-Id-Version: xserver-xorg_debian_po_bg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-09 09:47+0300\n" +"Last-Translator: Damyan Ivanov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Само root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Само потребители на конзолата" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Всички потребители на системата" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Потребители, на които им е разрешено да стартират X-сървъра:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Понеже X-сървърът се изпълнява с администраторски привилегии, идеята всеки " +"потребител да може да го стартира не е много добра от гледна точка на " +"сигурността. От друга страна, вършенето на ежедневната работа като " +"администратор е още по-лоша идея. Добър компромис е да се разреши " +"стартирането на X-сървъра само на потребители, които работят на системната " +"конзола." --- xorg-server-1.18.4.orig/debian/po/bn.po +++ xorg-server-1.18.4/debian/po/bn.po @@ -0,0 +1,60 @@ +# Bengali translation of xorg. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Md. Rezwan Shahid , 2009. +msgid "" +msgstr "" +"Project-Id-Version: xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2009-04-15 12:27+0600\n" +"Last-Translator: Md. Rezwan Shahid \n" +"Language-Team: Bengali \n" +"Language: bn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: WordForge 0.5-beta1\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "শুধুমাত্র রুট" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "শুধুমাত্র কনসোল ব্যবহারকারী" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "যেকেউ" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "যেসকল ব্যবহারকারী X সার্ভার চালু করতে অনুমতিপ্রাপ্ত:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"যেহেতু X সার্ভার সুপারইউজার সুবিধাসহ রান করে, যেকোনো ব্যবহারকারীকে এটি চালু করতে " +"দেয়া বুদ্ধিমানের কাজ হবে না (নিরাপত্তার জন্য)। আবার, সাধারন কারনে X ক্লায়েন্ট " +"প্রোগ্রাম চালানোর জন্য রুট হিসেবে লগ-ইন করা ঠিক নয় (যদি শুধুমাত্র রুটের অনুমতি থাকে X " +"সার্ভার চালু করার তখন এটি ঘটে)। একটি ভালো সমাধান হতে পারে, X সার্ভার শুধুমাত্র সেই " +"ব্যবহারকারীদের দ্বারা চালু করা যাবে যারা যেকোনো একটি ভার্চুয়াল কনসোলে লগ-ইন করা " +"আছে।" --- xorg-server-1.18.4.orig/debian/po/bs.po +++ xorg-server-1.18.4/debian/po/bs.po @@ -0,0 +1,70 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2006-11-01 01:17+0100\n" +"Last-Translator: Safir Secerovic \n" +"Language-Team: Bosnian \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: 3\n" +"X-Poedit-Country: BOSNIA AND HERZEGOVINA\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Samo root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Samo konzolni korisnici" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Svako" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Korisnici kojima je dopušteno pokretanje X severa:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Zbog činjenice što X server radi s privilegijama administratorskog " +"korisnika, nije pametno dopustiti svakom korisniku da ga pokreće iz " +"sigurnosnih razloga. S druge strane, još manje je pametno pokretati X " +"klijentske programe opšte namjene kao root, a što se može dogoditi ako samo " +"root korisniku dopustite pokretanje X servera. Dobar kompromis je dozvoliti " +"pokretanje X servera samo korisnicima koji su ulogirani na jednu od " +"virtuelnih konzola." --- xorg-server-1.18.4.orig/debian/po/ca.po +++ xorg-server-1.18.4/debian/po/ca.po @@ -0,0 +1,79 @@ +# debconf templates for xorg-x11 package +# Catalan translation +# +# $Id: ca.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# Ivan Vilata i Balaguer , 2002-2006 +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg 1:7.3+12\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-09 09:35+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Només root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Només usuaris de la consola" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Qualsevol" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Usuaris que poden iniciar el servidor X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Com que el servidor X corre amb privilegis de superusuari, podria no ser " +"assenyat que qualsevol usuari l’iniciara, per motius de seguretat. D’altra " +"banda, encara té menys seny emprar programes client X de propòsit general " +"com a root, cosa que ocorreria si només root puguera iniciar el servidor X. " +"Un bon compromís és deixar iniciar el servidor X només a aquells usuaris que " +"hagen entrat al sistema per una de les consoles virtuals." + --- xorg-server-1.18.4.orig/debian/po/cs.po +++ xorg-server-1.18.4/debian/po/cs.po @@ -0,0 +1,79 @@ +# debconf templates for xorg package +# Czech translation +# +# $Id: cs.po 490 2005-08-03 09:59:07Z ender $ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# Miroslav Kure , 2004-2008 +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-14 14:41+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Pouze root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Pouze konzoloví uživatelé" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Kdokoliv" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Uživatelé, kteří mohou spustit X server:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Protože X server běží se superuživatelskými právy, z bezpečnostního hlediska " +"není rozumné dát uživatelům možnost jej spouštět. Na druhou stranu, ještě " +"nebezpečnější je spouštět obecného X klienta jako root, což by se mohlo " +"stát, kdybyste start X serveru povolili pouze rootovi. Rozumným kompromisem " +"je povolit spouštění X serveru pouze uživatelům přihlášeným na virtuální " +"konzoli." + --- xorg-server-1.18.4.orig/debian/po/da.po +++ xorg-server-1.18.4/debian/po/da.po @@ -0,0 +1,98 @@ +# #-#-#-#-# xorg-da.po (xfree86_4.3.0-3_da) #-#-#-#-# +# Branden Robinson, 2000--2004. +# Dennis Haney, 2002. +# Morten Brix Pedersen , 2003. +# Claus Hindsgaul , 2004. +# Claus Hindsgaul , 2006. +# debconf templates for xfree86 package +# Danish translation +# $Id: da.po 1763M 2004-10-11 07:13:16Z (local) $# +# Copyrights:# +# This file is distributed under the same license as the xfree86 package. +# Please see debian/copyright.# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry'# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files.# +# #-#-#-#-# da.po (xfree86_4.3.0-3_da) #-#-#-#-# +# debconf templates for xfree86 package +# Danish translation# +# $Id: da.po 1763M 2004-10-11 07:13:16Z (local) $# +# Copyrights:# +# This file is distributed under the same license as the xfree86 package. +# Please see debian/copyright.# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry'# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files.# +msgid "" +msgstr "" +"Project-Id-Version: xfree86_4.3.0-3_da\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2006-07-04 13:46+0200\n" +"Last-Translator: Claus Hindsgaul \n" +"Language-Team: Danish\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"#-#-#-#-# xorg-da.po (xfree86_4.3.0-3_da) #-#-#-#-#\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"#-#-#-#-# da.po (xfree86_4.3.0-3_da) #-#-#-#-#\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Kun root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Kun konsolbrugere" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Alle" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Brugere, der m starte X-serveren:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Da X-serveren krer med superbruger-rettigheder kan det af sikkerhedsgrunde " +"vre en drlig id at tillade enhver at starte den. P den anden side er det " +"endnu drligere at kre normale X-programmer som root, hvilket netop er, " +"hvad der kan blive resultatet, hvis kun root m starte X-serveren. Et godt " +"kompromis er at kun tillade brugere der er logget ind p en virtuel konsol " +"at starte X-serveren." + --- xorg-server-1.18.4.orig/debian/po/de.po +++ xorg-server-1.18.4/debian/po/de.po @@ -0,0 +1,78 @@ +# debconf templates for xorg-x11 package +# German translation +# +# $Id: de.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# Martin Schuster, 2001 +# Sebastian Rittau, 2001 +# Erich Schubert, 2001 +# Knut Suebert, 2001 +# Sebastian Feltel, 2001 +# Philipp Matthias Hahn, 2001 +# Veit Waltemath, 2002 +# Andreas Metzler, 2002 +# Alwin Meschede , 2004, 2005. +# Jens Seidel , 2006, 2007. +# Helge Kreutzmann , 2008. +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg 1:7.3+12\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-09 18:54+0200\n" +"Last-Translator: Helge Kreutzmann \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Nur Superuser" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Nur Konsolenbenutzer" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Jeder" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Benutzer, die den X-Server starten dürfen:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Weil der X-Server mit Superuser-Rechten läuft, kann es unter " +"Sicherheitsaspekten unklug sein, jedem Benutzer das Starten zu erlauben. " +"Andererseits ist es noch unklüger, allgemeine X-Programme als Superuser " +"auszuführen, was passieren könnte, wenn nur der Superuser den X-Server " +"starten darf. Ein guter Kompromiss kann sein, nur den Personen das Starten " +"des X-Servers zu erlauben, die auf einer der virtuellen Konsolen angemeldet " +"sind." + --- xorg-server-1.18.4.orig/debian/po/dz.po +++ xorg-server-1.18.4/debian/po/dz.po @@ -0,0 +1,73 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg.pot\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-30 09:48+0530\n" +"Last-Translator: Jurmey Rabgay(Bongop) (DIT,BHUTAN) \n" +"Language-Team: dzongkha \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2;plural=(n!=1)\n" +"X-Poedit-Country: bhutan\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Bookmarks: -1,-1,-1,95,-1,-1,-1,-1,-1,-1\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "རྩ་བ་རྐྱངམ་ཅིག་" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "མ་སྒྲོམ་ལག་ལེན་པ་ཚུ་རྐྱངམ་ཅིག" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "ག་འབད་རུང་།" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "ལག་ལེན་པ་ཚུ་ཨེགསི་སར་བར་འགོ་བཙུགས་ཆོག:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"ཨེགསི་སར་བར་འདི་ ལག་ལེན་པ་གཙོ་བོའི་ཁེ་དབང་ཚུ་གི་ཐོག་ལས་ གཡོག་བཀོལཝ་ཨིནམ་ལས་ སྲུང་སྐྱོབས་ཀྱི་རྒྱུ་མཚན་" +"ལུ་བརྟེན་ཏེ་ འགོ་བཙུགས་ནིའི་དོན་ལས་ ལག་ལེན་པ་གང་རུང་ཅིག་ལུ་གནང་བ་བྱིན་ནིའི་དོན་ལུ་ འདི་ལེགས་ཤོམ་མེན་" +"འོང་། གཅིག་ལས་འབད་བ་ཅིན་ འདི་ཡོངས་ཁྱབ་དགོས་དོན་ ཨེགསི་ཞབས་ཏོག་སྤྱོད་མིའི་ལས་རིམ་འདི་ རྩ་བ་སྦེ་གཡོག་" +"བཀོལ་ནིའི་དོན་ལུ་ ཧེང་བཀལ་རང་ལེགས་ཤོམ་མེེདཔ་ཨིན་ དེ་ཡང་ ཨེགསི་སར་བར་འགོ་བཙུགས་ནིའི་དོན་ལུ་ རྩ་བ་" +"རྐྱངམ་ཅིག་ལུ་གནང་བ་བྱིན་ཏེ་ཡོད་པ་ཅིན་ ག་ཅི་འབད་འོང་། ནང་འགྲིགས་ལེགས་ཤོམ་འདི་ཡང་ བར་ཅུ་ཡལ་མ་སྒྲོམ་" +"གཅིག་ལུ་ ནང་བསྐྱོད་འབད་ཡོད་པའི་ལག་ལེན་པ་གིས་རྐྱངམ་ཅིག་འགོ་བཙུགས་ནི་ལུ་ ཨེགསི་སར་བར་ལུ་གནང་བ་བྱིན་" +"ནི་འདི་ཨིན།" + --- xorg-server-1.18.4.orig/debian/po/el.po +++ xorg-server-1.18.4/debian/po/el.po @@ -0,0 +1,84 @@ +# translation of xorg_po_el.po to +# debconf templates for xorg-x11 package +# Greek translation +# +# $Id: el.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyrights: +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Branden Robinson, 2000-2004. +# Konstantinos Margaritis , 2004. +# QUAD-nrg.net , 2006. +msgid "" +msgstr "" +"Project-Id-Version: xorg_po_el\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-08-24 17:39+0300\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Μόνο ο χρήστης root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Μόνο από την κονσόλα" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Οποιοσδήποτε" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Χρήστες που επιτρέπεται να ξεκινούν τον εξυπηρετητή Χ:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Λόγω του ότι ο εξυπηρετητής X τρέχει ως χρήστης root, με τα αντίστοιχα " +"δικαιώματα, για λόγους ασφαλείας δε συνιστάται η εκκίνησή του από άπλό " +"χρήστη. Ωστόσο, ακόμη πιο επικίνδυνο για την ασφάλεια είναι η εκτέλεση " +"απλών προγραμμάτων στα X ως χρήστης root, το οποίο μπορεί να συμβεί αν ο " +"χρήστης root επιτρέπεται να εκκινήσει τον εξυπηρετητή X. Μια μέση οδός " +"είναι να επιτρέπεται η εκκίνηση του εξυπηρετητή X μόνο από τους χρήστες που " +"έχουν συνδεθεί στο σύστημα σε μία από τις εικονικές κονσόλες." + --- xorg-server-1.18.4.orig/debian/po/eo.po +++ xorg-server-1.18.4/debian/po/eo.po @@ -0,0 +1,61 @@ +# debconf templates for the xorg package +# Esperanto translation. +# Copyright (C) 2008 FSF +# This file is distributed under the same license as the xorg package. +# Felipe Castro , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-10-19 20:00-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Nur 'Root'" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Nur Konzol-Uzantoj" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Iu ajn" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Uzantoj permesitaj ekigi la X-servilon:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Ĉar la X-servilo funkcias kun superaj privilegioj, eble estas malprudente " +"permesi ke iu ajn uzanto ekigu ĝin, pro sekurecaj kialoj. Tamen, estas eĉ " +"pli malprudente lanĉi ĝeneralajn klient-programojn per 'root', kio ĝuste " +"povas okazi kiam nur 'root' estas permesata ekigi la X-servilon. Bona " +"ekvilibro oni atingas permesante ke la X-servilo estu ekigebla nur por " +"uzantoj ensalutitaj en unu el la virtualaj konzoloj." + --- xorg-server-1.18.4.orig/debian/po/es.po +++ xorg-server-1.18.4/debian/po/es.po @@ -0,0 +1,88 @@ +# debconf templates for xorg-x11 package +# Spanish translation +# +# $Id: es.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyrights: +# Branden Robinson 2000-2004 +# Carlos Valdivia Yague, 2001 +# Javier Fernandez-Sanguino Pena, 2003, 2008 +# David Martinez Moreno, 2001, 2002, 2005, 2006 +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg 7.0.24\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-09-10 02:11+0200\n" +"Last-Translator: Javier Fernandez-Sanguino \n" +"Language-Team: ES \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POFile-SpellExtra: Bloq Mays nocaps macintoshold share dead symbols\n" +"X-POFile-SpellExtra: Window PCI metawin conf logo Type autodetectar AGP\n" +"X-POFile-SpellExtra: BusID xserver xkb keys Express multitarjeta Caps pc\n" +"X-POFile-SpellExtra: usr Xorg nodeadkeys lspci type nice bin fr ctrl XKB\n" +"X-POFile-SpellExtra: AT xorg not framebuffer sintase Lock swapcaps us\n" +"X-POFile-SpellExtra: PowerPC slamente altwin root macintosh\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Slo root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Slo usuarios de consola" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Cualquiera" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Usuarios a los que se permite arrancar el servidor de X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Debido a que el servidor X se ejecuta con privilegios de superusuario, puede " +"no ser muy prudente permitir que cualquier usuario lo arranque, por razones " +"de seguridad. Por otra parte, es an ms imprudente ejecutar programas " +"cliente de X de forma general como root, lo cual puede suceder si slamente " +"se permite a root iniciar el servidor X. Un compromiso entre ambos casos es " +"permitir que el servidor X lo inicien slo usuarios que hayan entrado por " +"una de las consolas virtuales." + --- xorg-server-1.18.4.orig/debian/po/eu.po +++ xorg-server-1.18.4/debian/po/eu.po @@ -0,0 +1,82 @@ +# translation of xorg-eu.po to Euskara +# debconf templates for xorg-x11 package +# Euskara translation +# +# $Id: eu.po 490 2005-08-03 09:59:07Z ender $ +# +# Copyright: +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf is available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Branden Robinson, 2000-2004. +# Piarres Beobide , 2005, 2006, 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: xorg-eu\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-08 22:57+0200\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: Euskara \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Root bakarrik" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Kontsola erabiltzaileak bakarrik" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Edozein" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "X zerbitzaria abiarazteko gaitasuna duten erabiltzaileak:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"X zerbitzaria supererabiltzaile baimenez abiarazten denez, segurtasun " +"arrazoiak direla eta ez da zentzuzkoa edozeini abiarazteko baimena ematea. " +"Beste aldetik ez da zentzuzkoa ere X bezero programa arruntak root bezala " +"abiaraztea, root-ek bakarrik X zerbitzari abiarazteko baimena duenean " +"gertatzen dena. Gomendagarriena X zerbitzaria kontsola birtual batetan " +"saioa abiarazirik duen edozeini abiarazten uztea da." + --- xorg-server-1.18.4.orig/debian/po/fi.po +++ xorg-server-1.18.4/debian/po/fi.po @@ -0,0 +1,62 @@ +# Debian Installer xserver-xorg. +# Translation to Finnish. +# Copyright (C) 2006 Tapio Lehtonen +# This file is distributed under the same license as the xserver-xorg package. +# Tapio Lehtonen , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-07-18 18:15-0000\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Country: FINLAND\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Vain pääkäyttäjä" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Vain konsolikäyttäjät" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Kaikki" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Käyttäjät, jotka saavat käynnistää X-palvelimen:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Tietoturvasyistä on huono ajatus antaa kaikille oikeudet X-palvelimen " +"käynnistämiseen, koska sitä ajetaan pääkäyttäjän oikeuksilla. Toisaalta on " +"vielä huonompi ajatus suorittaa yleiskäyttöisiä X:n asiakasohjelmia " +"pääkäyttäjänä, mikä on tilanne, jos vain pääkäyttäjä saa käynnistää X-" +"palvelimen. Hyvä ratkaisu on sallia X-palvelimen käynnistys ainoastaan " +"käyttäjille, jotka ovat kirjautuneet jollekin virtuaalikonsolille." + --- xorg-server-1.18.4.orig/debian/po/fr.po +++ xorg-server-1.18.4/debian/po/fr.po @@ -0,0 +1,87 @@ +# translation of fr.po to French +# debconf templates for xfree86 package +# French translation +# +# $Id: fr.po 1763M 2004-10-11 07:13:17Z (local) $ +# +# Copyrights: +# +# This file is distributed under the same license as the xfree86 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Branden Robinson, 2000--2004. +# Thomas Morin, 2001. +# Patrice Karatchentzeff, 2001. +# Jrme Schell, 2001. +# Jean-Christophe Dubacq, 2002. +# Christian Perrier , 2003, 2004, 2006, 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-08 22:26+0200\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: Plural-Forms: nplurals=2; plural=n>1;\n" +"\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Superutilisateur seulement" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Depuis la console" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "N'importe qui" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Utilisateurs autoriss lancer un serveur X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Le serveur X tant lanc avec des droits privilgis, il n'est pas trs " +"prudent pour des raisons de scurit de permettre n'importe qui de le " +"lancer. D'un autre ct, il est encore moins prudent de lancer les logiciels " +"clients X en tant que superutilisateur, ce qui risque d'arriver si seul le " +"superutilisateur est autoris lancer un serveur X. Un bon compromis est " +"que seuls les utilisateurs connects sur une des consoles virtuelles " +"puissent lancer un serveur X." --- xorg-server-1.18.4.orig/debian/po/gl.po +++ xorg-server-1.18.4/debian/po/gl.po @@ -0,0 +1,68 @@ +# debconf templates for xorg-x11 package +# Galician translation +# +# $Id: gl.po 1080 2006-01-14 02:15:39Z ender $ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# Jacobo Tarrio, 2001, 2006, 2008 +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-08 22:17+0100\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Só o administrador" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Só os usuarios da consola" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Todos" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Usuarios aos que se lles permite iniciar o servidor X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Como o servidor X se executa con privilexios de superusuario, pode non ser " +"unha boa idea permitir que calquera usuario o inicie, por motivos de " +"seguridade. Por outro lado, pode ser aínda unha peor idea executar programas " +"cliente X de propósito xeral coma administrador, que é o que podería ocorrer " +"se só root pode iniciar o servidor X. Un bo compromiso consiste en permitir " +"que o servidor X o inicien só os usuarios que traballen nunha consola " +"virtual." + --- xorg-server-1.18.4.orig/debian/po/gu.po +++ xorg-server-1.18.4/debian/po/gu.po @@ -0,0 +1,59 @@ +# Gujarati translation of xorg. +# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Kartik Mistry , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg-gu\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-07-23 23:40+0530\n" +"Last-Translator: Kartik Mistry \n" +"Language-Team: Gujarati \n" +"Language: gu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "ફક્ત રૂટ" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "ફક્ત કોન્સોલ વપરાશકર્તાઓ" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "કોઇપણ" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "X સર્વર શરૂ કરવા માટે માન્ય વપરાશકર્તાઓ:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"X સર્વર સુપરયુઝર હક સાથે ચાલવાનાં કારણે, કોઇપણ વપરાશકર્તા તેને ચાલુ કરી શકે તે, સલામતીનાં " +"કારણોસર સલાહ ભર્યું નથી. બીજી બાજુ, સામાન્ય-વપરાશનાં X ક્લાયન્ટ કાર્યક્રમો રૂટ તરીકે " +"ચલાવવા એ પણ ડહ્યાપણભર્યું નથી, જે મોટાભાગે રૂટને X સર્વર શરૂ કરવાની પરવાનગી આપવામાં આવે " +"ત્યારે થાય છે. સારી સમજૂતી એ છે કે માત્ર પ્રવેશ કરેલ વપરાશકર્તાઓને તેમનાં વર્ચ્યુઅલ કોન્સોલ્સ " +"વડે X સર્વર શરૂ કરવાની પરવાનગી આપવામાં આવે." + --- xorg-server-1.18.4.orig/debian/po/he.po +++ xorg-server-1.18.4/debian/po/he.po @@ -0,0 +1,61 @@ +# translation of he.po to Hebrew +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Amit Dovev , 2007. +# Lior Kaplan , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: he\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-09 09:13+0300\n" +"Last-Translator: Lior Kaplan \n" +"Language-Team: Hebrew \n" +"Language: he\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "משתמש-על בלבד" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "משתמשי מסוף בלבד" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "כל המשתמשים" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "משתמשים הרשאים לאתחל את שרת ה-X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"מכיוון ששרת ה-X רץ עם הרשאות משתמש-על, זה כנראה יהיה לא חכם להרשות לכל משתמש " +"לאתחל אותו, מסיבות אבטחה. מצד שני, יהיה זה לא חכם להריץ תוכניות לקוח X " +"כמשתמש-על, שזה מה שעלול לקרות אם רק משתמש-העל יהיה מורשה לאתחל את שרת ה-X. " +"פשרה טובה תהיה להרשות לשרת ה-X להיות מאותחל רק ע\"י משתמשים שמחוברים לאחד " +"מהמסופים הווירטואליים." + --- xorg-server-1.18.4.orig/debian/po/hr.po +++ xorg-server-1.18.4/debian/po/hr.po @@ -0,0 +1,56 @@ +msgid "" +msgstr "" +"Project-Id-Version: Debian installer HR\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-09-06 19:15+0200\n" +"Last-Translator: Josip Rodin \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Samo root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Samo konzolni korisnici" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Bilo tko" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Korisnici koji smiju pokrenuti X server:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Zbog injenice to X server radi s privilegijama administratorskog " +"korisnika, vjerojatno nije pametno dopustiti svakom korisniku da ga pokree, " +"iz sigurnosnih razloga. S druge strane, jo manje je pametno pokretati X " +"klijentske programe ope namjene kao root, a to se moe dogoditi ako samo " +"root korisniku dopustite pokretanje X servera. Dobar kompromis je dozvoliti " +"pokretanje X servera samo korisnicima koji su ulogirani na jednu od " +"virtualnih konzola." + --- xorg-server-1.18.4.orig/debian/po/hu.po +++ xorg-server-1.18.4/debian/po/hu.po @@ -0,0 +1,56 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-14 08:43+0100\n" +"Last-Translator: SZERVÁC Attila \n" +"Language-Team: hu\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Country: HUNGARY\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Csak rendszergazda" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Csak konzol felhasználók" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Bárki" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Az X kiszolgáló indítására jogosult felhasználók:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Mivel az X kiszolgáló rendszergazda kiváltságokkal fut, nem biztonságos " +"bármilyen felhasználónak engedélyezni a futtatását, de szintén nem " +"biztonságos általános-célú X kliens programokat rendszergazdaként futtatni, " +"pedig ez történik, ha csak a rendszergazdának van joga az X kiszolgáló " +"indításához. Megfelelő középút az X kiszolgáló indítását csak konzolról " +"bejelentkezett felhasználóknak engedélyezni." + --- xorg-server-1.18.4.orig/debian/po/id.po +++ xorg-server-1.18.4/debian/po/id.po @@ -0,0 +1,74 @@ +# translation of xorg_po-id.po to Bahasa Indonesia +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Arief S Fitrianto , 2008. +msgid "" +msgstr "" +"Project-Id-Version: xorg_po-id\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-11 14:33+0700\n" +"Last-Translator: Arief S Fitrianto \n" +"Language-Team: Bahasa Indonesia \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplural=1, plural>1\n" +"X-Poedit-Language: Indonesian\n" +"X-Poedit-Country: INDONESIA\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Hanya Root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Hanya pengguna Konsol" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Siapa saja" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Pengguna yang boleh menjalankan server X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Oleh karena server X berjalan dengan kewenangan superuser, sangat riskan " +"bila membolehkan siapa saja menjalankannya. Di sisi lain, teramat sangat " +"riskan menjalankan program client X sebagai root, yang akan terjadi bila " +"hanya root yang boleh menjalankan server X. Kompromi yang baik adalah " +"menjalankan server X hanya oleh pengguna yang masuk ke salah satu konsol " +"virtual." + --- xorg-server-1.18.4.orig/debian/po/it.po +++ xorg-server-1.18.4/debian/po/it.po @@ -0,0 +1,85 @@ +# debconf templates for xorg-x11 package +# Italian translation +# +# $Id: it.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# Matteo Dell'Amico, 2002 +# Emanuele Aina, 2002 +# Luca Monducci, 2004 +# Danilo Piazzalunga, 2004-2005 +# Stefano Canepa, 2006, 2007 +# Milo Casagrande, 2008 +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg-x11 6.8.2.dfsg.1-10\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-17 22:22+0200\n" +"Last-Translator: Milo Casagrande \n" +"Language-Team: debian-l10n-italian \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Solo root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Solo gli utenti della console" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Chiunque" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Utenti con il permesso di avviare il server X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Dato che il server X viene eseguito con i privilegi di super utente, può " +"essere poco consigliabile, per ragioni di sicurezza, permettere a qualsiasi " +"utente di eseguirlo. D'altra parte, se solo a root fosse permesso di avviare " +"il server X, sarebbe necessario eseguire come root i programmi client X (e " +"ciò sarebbe ancora peggio). Un buon compromesso consiste nel permettere che " +"il server X possa essere avviato solo dagli utenti collegati a una delle " +"console virtuali." + --- xorg-server-1.18.4.orig/debian/po/ja.po +++ xorg-server-1.18.4/debian/po/ja.po @@ -0,0 +1,81 @@ +# debconf templates for xorg-x11 package +# Japanese translation +# +# $Id: ja.po 1763M 2004-10-11 07:13:17Z (local) $ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# ISHIKAWA Mutsumi, 2001, 2005, 2006 +# Tomohiro KUBOTA, 2001, 2002 +# Kenshi Muto, 2001-2006 +# Takeo Nakano, 2001, 2003, 2005 +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg 7.3\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-15 07:33+0900\n" +"Last-Translator: Kenshi Muto \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Root のみ" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "コンソールユーザのみ" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "だれでも" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "X サーバの起動を許可するユーザ:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"X サーバはスーパーユーザ権限で動作するため、任意のユーザからの実行を許可する" +"のはセキュリティ上好ましくないでしょう。一方 X サーバの起動許可を root に限る" +"と、一般的な用途の X クライアントプログラムを実行する場合でも root が必要とな" +"り、これも好ましくありません。よりよい妥協点は、 仮想コンソールのうちの 1 つ" +"にログインしたユーザにのみ X サーバの起動を許可することでしょう。" + --- xorg-server-1.18.4.orig/debian/po/kk.po +++ xorg-server-1.18.4/debian/po/kk.po @@ -0,0 +1,55 @@ +# Dauren Sarsenov , 2009 +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2009-03-24 14:50+0600\n" +"Last-Translator: Dauren Sarsenov \n" +"Language-Team: Kazakh \n" +"Language: kk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Root қана" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Консольдік пайдаланушылар ғана" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Әркім" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "X серверін бастай алатындар:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"X Сервер суперпайдаланушы құқықтарымен жұмыс істейтіндіктен, жүйені әркім " +"жүктей алмауы керек. Сонымен қатар жалпы мақсаттардағы X клиент " +"бағдарламасын root атынан жүктеуге де болмайды. Сондықтан X серверін виртуал " +"консольдің біреуіне кірген пайдаланушылар ғана бастай алуы керек." + --- xorg-server-1.18.4.orig/debian/po/km.po +++ xorg-server-1.18.4/debian/po/km.po @@ -0,0 +1,70 @@ +# translation of km.po to +# translation of xserver-xorg_debian_po_km.po to +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Khoem Sokhem , 2006. +# auk piseth , 2006. +msgid "" +msgstr "" +"Project-Id-Version: km\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2006-10-03 08:13+0700\n" +"Last-Translator: Khoem Sokhem \n" +"Language-Team: KhmerOS \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "បាន​តែ Root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "បាន​តែ​អ្នក​ប្រើ​កុងសូល​" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "ផ្សេងទៀត" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "អ្នក​ប្រើ​បាន​អនុញ្ញាត​ឲ្យ​ចាប់​ផ្តើម​ម៉ាស៊ីន​បម្រើ​ X ៖" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"ដោយសារ​ម៉ាស៊ីន​បម្រើ​ X រត់ជាមួយ​​សិទ្ធ​អ្នក​ប្រើ​ជាន់​ខ្ពស់​, ​ចំពោះ​មូលហេតុ​ដែលមាន​សុវត្ថិភាព វា​ប្រហែល​ជា​​មិន​" +"អនុញ្ញាត​ឲ្យ​អ្នក​ប្រើ​ណាមួយ​​ចាប់​ផ្តើម​វា​ទេ ​។ មួយ​វិញ​ទៀត​ គោលបំណង​ទូទៅ​នៃ​កម្មវិធី​ម៉ាស៊ីន​ភ្ញៀវ​ X មាន​សិទ្ធ​ជា " +"root ដែល​នឹង​មាន​អ្វីអាចនឹង​កើត​ឡើង​ ប្រសិនបើ មានតែ​ root ដែល​អាច​អនុញ្ញាត​ឲ្យ​ចាប់ផ្តើ​ម​ម៉ាស៊ីន​បម្រើ​ X " +"បាននោះ ។ ការព្រមព្រៀង​​ល្អ​បានអនុញ្ញាត​ឲ្យ​ម៉ាស៊ីន​បម្រើ X ត្រូវបាន​ចាប់​ផ្តើម​តាម​​អ្នក​ប្រើ​ដែល​បាន​ចូល​ក្នុង​" +"កុងសូល​និម្មិត​មួយ​ ។" + --- xorg-server-1.18.4.orig/debian/po/ko.po +++ xorg-server-1.18.4/debian/po/ko.po @@ -0,0 +1,58 @@ +# Sunjae Park , 2006. +# Changwoo Ryu , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: xserver-xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-07-20 12:34+0900\n" +"Last-Translator: Changwoo Ryu \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "루트 사용자만" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "콘솔 사용자만" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "아무나" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "X 서버를 띄울 권한이 있는 사용자:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"X 서버는 수퍼유저 권한을 가진 채로 실행되기 때문에 보안상 아무 사용자나 X 서" +"버를 실행시킬 수 있도록 하는 것이 안 좋을 수 있습니다. 반면, 루트 사용자만 X " +"서버를 실행시킬 수 있을 경우 일반적인 X 클라이언트 프로그램도 루트 사용자로 " +"실행되기 때문에 더 안 좋을 수 있습니다. 버추얼 콘솔로 로그인된 사용자만 X 서" +"버를 실행시킬 수 있도록 하는 것이 적당할 수 있습니다." + --- xorg-server-1.18.4.orig/debian/po/ku.po +++ xorg-server-1.18.4/debian/po/ku.po @@ -0,0 +1,56 @@ +# translation of xorg-ku.po to Kurdish +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Erdal Ronahi , 2008. +msgid "" +msgstr "" +"Project-Id-Version: xorg-ku\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-04-23 15:49+0200\n" +"Last-Translator: Erdal Ronahi \n" +"Language-Team: Kurdish \n" +"Language: ku\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural= n != 1;\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Tenê Root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Tenê Bikarhênerên Konsoleyê" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Her Kes" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Bikarhênerên bi destûra destpêkirina pêşkêşkara X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" + --- xorg-server-1.18.4.orig/debian/po/lt.po +++ xorg-server-1.18.4/debian/po/lt.po @@ -0,0 +1,71 @@ +# translation of lt.po to Lithuanian +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Gintautas Miliauskas , 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: lt\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-08-31 23:09+0300\n" +"Last-Translator: Gintautas Miliauskas \n" +"Language-Team: Lithuanian \n" +"Language: lt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" +"%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Tik administratorius" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Tik konsolės naudotojai" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Visi" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Naudotojai, kuriems leidžiama įkrauti X serverį:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Kadangi X serveris veikia administratoriaus teisėmis, saugumo sumetimais " +"gali būti neprotinga leisti jį įkrauti bet kuriam naudotojui. Iš kitos " +"pusės, dar blogiau yra vykdyti standartines X programas administratoriaus " +"teisėmis (tai gali atsitikti, jei tik administratoriui leidžiama įkrauti X " +"serverį). Neblogas kompromisas yra leisti įkrauti X serverį tik tiems " +"naudotojams, kurie prisijungę prie vienos iš virtualių konsolių." + --- xorg-server-1.18.4.orig/debian/po/ml.po +++ xorg-server-1.18.4/debian/po/ml.po @@ -0,0 +1,70 @@ +# xserver-xorg translation to Malayalam +# Copyright (c) 2006 xorg package's copyright holder +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Praveen|പ്രവീണ്‍ A|എ , 2006. +msgid "" +msgstr "" +"Project-Id-Version: xserver-xorg_ml\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-18 17:59+0530\n" +"Last-Translator: Praveen|പ്രവീണ്‍ A|എ \n" +"Language-Team: Swathanthra|സ്വതന്ത്ര Malayalam|മലയാളം Computing|കമ്പ്യൂട്ടിങ്ങ് \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "റൂട്ട് മാത്രം" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "കണ്‍സോള്‍ ഉപയോക്താക്കള്‍ മാത്രം" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "ആരും" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "എക്സ് സേവകന്‍ തുടങ്ങാന്‍ അനുമതിയുള്ള ഉപയോക്താക്കള്‍:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"എക്സ് സേവകന്‍ സൂപര്‍ ഉപയോക്താവിന്റെ പദവികളോടെയാണ് ഓടുന്നത് എന്നതിനാല്‍ സുരക്ഷാ കാരണങ്ങളാല്‍ ഏത് " +"ഉപയോക്താവിനും ഇത് തുടങ്ങാന്‍ അനുമതി നല്കുന്നത് ബുദ്ധിശുന്യമായേക്കാം. എന്നാല്‍ പൊതുവായുള്ള-" +"കാര്യങ്ങള്‍ക്കുള്ള എക്സ് ക്ലയന്റ് പ്രോഗ്രാമുകള്‍ റൂട്ടായി ഓടിക്കുന്നത് ഇതിലധികം ബുദ്ധിശുന്യമാണ്, അതാണ് " +"റൂട്ടിന് മാത്രം എക്സ് സേവകന്‍ തുടങ്ങാന്‍ അനുമതി നല്കിയാല്‍ സംഭവിക്കാന്‍ പോകുന്നത്. ഒരു നല്ല വിട്ടുവീഴ്ച " +"വിര്‍ച്വല്‍ കണ്‍സോളിലേതെങ്കിലുമൊന്നില്‍ ലോഗിന്‍ ചെയ്തിട്ടുള്ള ഉപയോക്താക്കള്‍ക്ക് മാത്രം എക്സ് സേവകന്‍ " +"തുടങ്ങാന്‍ അനുമതി നല്കുക എന്നത്." + --- xorg-server-1.18.4.orig/debian/po/mr.po +++ xorg-server-1.18.4/debian/po/mr.po @@ -0,0 +1,60 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2006-08-14 11:05+0200\n" +"Last-Translator: Priti Patil \n" +"Language-Team: Marathi \n" +"Language: mr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "फक्त मूल" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "फक्त कन्सोल वापरकर्ते" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "कोणीही" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "वापरकर्त्यांना एक्स परिसेवक सुरू करता येईल:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"एक्स परिसेवक सुपरयुझरचे हक्क असणारा कोणीही सुरू करू शकत असल्याने, सर्वच वापरकर्त्यांना तो " +"सुरू करण्याची अनुमती देणे सुरक्षिततेच्या दृष्टीकोनातून उचित होणार नाही. तथापी, सामान्य " +"वापराचे एक्स अशील प्रोग्राम मूल असताना चालवणे अधिकच अनुचित होईल, जे एक्स परिसेवक सुरू " +"करण्याची परवानगी फक्त मूल लाच दिल्यास घडू शकेल. अाभासी कन्सोलांपैकी एकावर सत्रारंभ " +"केलेल्या वापरकर्त्यांनाच एक्स परिसेवक सुरू करण्याची अनुमती देणे ही यातील चांगली तडजोड ठरू " +"शकेल." + --- xorg-server-1.18.4.orig/debian/po/nb.po +++ xorg-server-1.18.4/debian/po/nb.po @@ -0,0 +1,63 @@ +# translation of xserver-xorg_debian.po to Norwegian Bokmål +# +# This file is distributed under the same license as the package. +# +# Bjørn Steensrud , 2006. +# Hans Fredrik Nordhaug , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: xserver-xorg_debian_nb\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-08-31 22:50+0200\n" +"Last-Translator: Hans Fredrik Nordhaug \n" +"Language-Team: Norwegian Bokmål \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Bare root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Bare konsoll-brukere" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Alle" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Brukere som har lov til å starte X-tjeneren:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Fordi X-tjeneren kjører med priviliegier som superbruker, er det kanskje " +"uklokt av sikkerhetsgrunner å la alle starte den. På den annen side er det " +"enda mer uklokt å kjøre alminnelige X klientprogrammer som root, og det kan " +"skje dersom bare root får lov til å starte X-tjeneren. En god middelvei er å " +"tillate bare brukere som er logget inn på et av de virtuelle konsollene å " +"starte X-tjeneren." + --- xorg-server-1.18.4.orig/debian/po/ne.po +++ xorg-server-1.18.4/debian/po/ne.po @@ -0,0 +1,63 @@ +# translation of ne.po to Nepali +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Mahesh subedi , 2006. +# Shiva Prasad Pokharel , 2006. +# Shiva Pokharel , 2007. +msgid "" +msgstr "" +"Project-Id-Version: ne\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2007-04-06 05:41+0545\n" +"Last-Translator: Shiva Pokharel \n" +"Language-Team: Nepali \n" +"Language: ne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; nplural(n!=1)\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "मूल मात्र" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "कन्सोल प्रयोगकर्ता मात्र" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "कोहि" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "प्रयोगकर्तालाई एक्स सर्भर सुरू गर्न अनुमति दिइयो:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"किनभने एक्स सर्भर सुपर प्रयोगकर्ताको बिशेषाधिकारमा चल्दछ, यदि यसलाई कुनै प्रयोगकर्ताले सुरू " +"गर्न अनुमति दिन नचाहेमा, सुरक्षाको कारणले । अर्को तर्फ, अझ यो एक्स ग्राहक कार्यक्रमको " +"रुपमा साधारण-उद्देश्य चलाउन अनिच्छुक छ, यदि मूललाई मात्र एक्स सर्भर सुरू गर्न अनुमति दिइयो " +"भने के होला जुन चाहि । एउटा राम्रो सम्झौता चाहि एक्स सर्भर केबल अवास्तविक कन्सोलहरुमा " +"एक प्रयोगकर्ता लगइन द्धारा सुरू हुने हुन्छ ।" + --- xorg-server-1.18.4.orig/debian/po/nl.po +++ xorg-server-1.18.4/debian/po/nl.po @@ -0,0 +1,82 @@ +# debconf templates for xorg-x11 package +# Dutch translation +# +# $Id$ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# Wouter Verhelst, 2002 +# Bart Cornelis, 2003 +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-16 10:58+0100\n" +"Last-Translator: Bart Cornelis \n" +"Language-Team: debian-l10n-dutch \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Enkel root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Enkel console-gebruikers" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Iedereen" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Gebruikers die de X-server mogen starten:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Omdat de X-server met de rechten van de supergebruiker draait is het, voor " +"beveiligingsredenen, dikwijls onverstandig om deze te laten opstarten door " +"eender welke gebruiker. Daar staat tegenover dat het nog onverstandiger is " +"om de algemene grafische programma's te gebruiken als root, wat mogelijk het " +"gevolg is wanneer enkel de root gebruiker de X-server kan opstarten. Een " +"goed compromis is om de X-server alleen te laten opstarten door gebruikers " +"die aangemeld zijn via één van de virtuele consoles." + --- xorg-server-1.18.4.orig/debian/po/nn.po +++ xorg-server-1.18.4/debian/po/nn.po @@ -0,0 +1,70 @@ +# translation of xserver-xorg_nn.po to Norwegian nynorsk +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Håvard Korsvoll , 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: xserver-xorg_nn\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2007-03-11 10:07+0100\n" +"Last-Translator: Håvard Korsvoll \n" +"Language-Team: Norwegian nynorsk \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Berre root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Berre konsollbrukarar" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Alle" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Brukarar som har lov til å starte X-tenaren:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Sidan X-tenaren køyrer med priviliegiar som superbrukar, er det kanskje " +"uklokt av tryggingsgrunner å la alle starte han. På den andre sida er det " +"endå meir uklokt å køyre alminnelege X klientprogram som root, og det kan " +"skje dersom berre root får lov til å starte X-tenaren. Ein god middelveg er " +"å tillate berre brukarar som er logga inn på eit av dei virituelle konsolla " +"å starte X-tenaren." + --- xorg-server-1.18.4.orig/debian/po/pl.po +++ xorg-server-1.18.4/debian/po/pl.po @@ -0,0 +1,66 @@ +# debconf templates for xorg-x11 package +# +# $Id: xorg.po,v 1.26 2006/02/15 09:47:09 arteek Exp $ +# +# Copyright: +# 2006 Bartosz Feski +# 2006 Artur Szymaski +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +msgid "" +msgstr "" +"Project-Id-Version: 6.9.0.dfsg.1-2+SVN\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-08-31 22:49+0200\n" +"Last-Translator: Bartosz Fenski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Tylko root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Tylko uytkownicy konsoli" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Kady uytkownik" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Uytkownicy mogcy uruchamia serwer X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Poniewa serwer X dziaa z przywilejami speruytkownika, ze wzgldu na " +"bezpieczestwo systemu nierozsdnie jest dawa prawa jego uruchamiania " +"kademu uytkownikowi. Z drugiej za strony, jeszcze mniej rozsdnie jest " +"uruchamianie programw klienckich X oglnego przeznaczenia jako uytkownik " +"root, co moe si zdarzy jeli tylko root bdzie mg uruchomi serwer X. " +"Dobrym kompromisem jest zezwolenie na uruchamianie serwera X tylko " +"uytkownikom zalogowanym na jednej z wirtualnych konsol (uytkownik konsoli)." + --- xorg-server-1.18.4.orig/debian/po/pothead.in +++ xorg-server-1.18.4/debian/po/pothead.in @@ -0,0 +1,30 @@ +# debconf templates for xfree86 package +# +# $Id: pothead.in 1695 2004-07-29 07:22:25Z branden $ +# +# Copyright: +# Branden Robinson, 2000--2004 +# +# This file is distributed under the same license as the xfree86 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf is available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: SOURCE_VERSION\n" +"Report-Msgid-Bugs-To: debian-x@lists.debian.org\n" +"POT-Creation-Date: DATE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" --- xorg-server-1.18.4.orig/debian/po/pt.po +++ xorg-server-1.18.4/debian/po/pt.po @@ -0,0 +1,67 @@ +# debconf templates for xorg-x11 package +# Portuguese translation +# +# $Id: pt.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyright: +# Branden Robinson, 2000-2004 +# Eduardo Silva , 2005 +# Miguel Figueiredo , 2006-2008 +# +msgid "" +msgstr "" +"Project-Id-Version: xserver-xorg_debian_po\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-09 21:23+0100\n" +"Last-Translator: Miguel Figueiredo \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Apenas Root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Apenas Utilizadores de Consola" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Todos" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Utilizadores autorizados a iniciar o servidor X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Como o servidor X corre com privilégios de super-utilizador, por razões de " +"segurança, pode ser imprudente permitir que qualquer utilizador o inicie. " +"Por outro lado, é ainda mais imprudente correr programas clientes de X de " +"carácter geral como root, que é o que poderá acontecer se apenas o root " +"tiver permissões para iniciar o servidor X. Um bom compromisso é permitir " +"que o servidor X seja iniciado apenas por utilizadores que tenham iniciado " +"uma sessão numa das consolas virtuais." + --- xorg-server-1.18.4.orig/debian/po/pt_BR.po +++ xorg-server-1.18.4/debian/po/pt_BR.po @@ -0,0 +1,85 @@ +# debconf templates for xorg-x11 package +# Portuguese (Brazil) translation +# +# $Id: pt_BR.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# Gustavo Noronha Silva, 2001 +# Henrique de Moraes Holschuh, 2001 +# André Luís Lopes , 2001-2005 +# Felipe Augusto van de Wiel (faw) , 2007-2008. +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg-x11\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-14 21:44-0300\n" +"Last-Translator: Felipe Augusto van de Wiel (faw) \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"pt_BR utf-8\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Somente Root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Somente Usuários de Console" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Qualquer Um" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Usuários que podem iniciar o servidor X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Devido ao servidor X ser executado com privilégios de superusuário, pode não " +"ser muito sábio permitir que qualquer usuário o inicie, por questões de " +"segurança. Por outro lado, é menos sábio ainda executar programas clientes X " +"de propósito geral como root, que é o que pode acontecer se somente o root " +"tiver permissão de iniciar o servidor X. Um bom compromisso é permitir o " +"servidor X ser iniciado somente por usuários logados em um dos consoles " +"virtuais." + --- xorg-server-1.18.4.orig/debian/po/ro.po +++ xorg-server-1.18.4/debian/po/ro.po @@ -0,0 +1,84 @@ +# translation of ro.po to Română +# Romanian translation +# debconf templates for xorg-x11 package +# +# $Id: pothead.in 189 2005-06-11 00:04:27Z branden $ +# +# Copyright: +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf is available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Branden Robinson, 2000--2004. +# Ruset Zeno , 2005. +# Eddy Petrișor , 2005,2006,2008. +msgid "" +msgstr "" +"Project-Id-Version: ro\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-17 14:03+0300\n" +"Last-Translator: Eddy Petrișor \n" +"Language-Team: Română \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1))\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Doar root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Doar utilizatorii de consolă" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Oricine" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Utilizatori cărora le este permis să pornească serverul X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Deoarece serverul X rulează cu privilegii de superutilizator, nu este " +"probabil înțelept să i se permită oricărui utilizator să-l pornească, din " +"motive de securitate. Pe de altă parte, este și mai puțin înțelept să se " +"ruleze clienții X de uz general ca și root, lucru probabil dacă se permite " +"doar ca root să pornească serverul X. Un bun compromis este permiterea " +"pornirii pentru utilizatorii autentificați la una din consolele virtuale." + --- xorg-server-1.18.4.orig/debian/po/ru.po +++ xorg-server-1.18.4/debian/po/ru.po @@ -0,0 +1,87 @@ +# translation of xorg-debconf-ru.po to Russian +# debconf templates for xorg-x11 package +# Russian translation +# +# $Id: ru.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyrights: +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Branden Robinson, 2000-2004. +# Ilgiz Kalmetev, 2002, 2003. +# Serge Winitzki, 2003. +# Yuri Kozlov , 2005, 2006. +# Sergey Alyoshin , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: xserver-xorg-1:7.1.0-15_debian_po_ru\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-12 22:32+0400\n" +"Last-Translator: Sergey Alyoshin \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Только суперпользователь" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Только пользователи из консоли" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Кто угодно" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Пользователи, которым разрешено запускать X сервер:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Поскольку X сервер запускается с привилегиями суперпользователя, то из " +"соображений безопасности, вероятно, не очень хорошо позволять любым " +"пользователям запускать его. С другой стороны, ещё хуже запускать клиентские " +"X-программы общего назначения от имени суперпользователя; это может " +"случиться, если право запускать сервер X имеет только суперпользователь. " +"Наилучшее решение заключается в том, чтобы позволять запускать сервер X " +"только пользователям, зарегистрированным на одной из виртуальных консолей." + --- xorg-server-1.18.4.orig/debian/po/sk.po +++ xorg-server-1.18.4/debian/po/sk.po @@ -0,0 +1,65 @@ +# debconf templates for xorg-x11 package +# Slovak translation +# $Id: sk.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# Miroslav Kure , 2004. +# Peter Mann , 2005, 2008. +# Ivan Masár , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg-x11\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2009-04-10 12:53+0100\n" +"Last-Translator: Ivan Masár \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Len root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Len konzoloví používatelia" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Ktokoľvek" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Používatelia,ktorí môžu spustiť X server:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Pretože X server je spustený s právami superpoužívateľa, nie je z hľadiska " +"bezpečnosti veľmi rozumné dať možnosť jeho spustenia používateľom. Na druhej " +"strane ešte horšie je spustenie všeobecného X klienta ako používateľ root, " +"čo sa stane vtedy, ak povolíte spustenie X servera iba používateľovi root. " +"Rozumným kompromisom je teda povolenie spustenia X servera iba používateľom " +"prihláseným na virtuálnej konzole." + --- xorg-server-1.18.4.orig/debian/po/sq.po +++ xorg-server-1.18.4/debian/po/sq.po @@ -0,0 +1,66 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +# +# +msgid "" +msgstr "" +"Project-Id-Version: xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2007-04-09 23:45+0200\n" +"Last-Translator: Elian Myftiu \n" +"Language-Team: Albanian\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Vetëm Root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Vetëm Përdorues Konsoli" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Çdokush" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Përdorues të lejuar të nisin shërbyesin X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Meqë shërbyesi X xhiron me pronësi administruesi, mund të jetë mendjelehtësi " +"të lejosh çdo përdorues ta nisë atë, për arsye sigurie. Nga ana tjetër, " +"është ende më mendjelehtësi të xhirosh programe klientë nën X si root, gjë " +"që ndodh nëse vetëm root lejohet të nisë shërbyesin X. Një marrëveshje e " +"mirë është të lejosh shërbyesin X të niset vetëm nga përdorues të kyçur në " +"një nga konsolet virtuale." + --- xorg-server-1.18.4.orig/debian/po/sr.po +++ xorg-server-1.18.4/debian/po/sr.po @@ -0,0 +1,60 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2011 +# This file is distributed under the same license as the xorg package. +# Zlatan Todoric , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Zlatan Todoric \n" +"Language-Team: LANGUAGE \n" +"Language: Serbian cyrillic\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Само главни корисник" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Само за кориснике конзоле" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Свако" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Корисници којима је дозвољено покретање Х сервера:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Због покретања Х сервера са суперкорисничким привилегијам, није " +"препоручљиводозволити корисницима да га покрену, из сигурносних разлога. С " +"друге стране, јошмање је препоручљиво покренути Х клијента опште намјене као " +"главни корисник, што се може десити ако је само главном кориснику дозвољено " +"да покрене Х сервер.Компромис би био дозволити покретање Х сервера од стране " +"корисника који су самоулоговани на једну од виртуелних конзола." --- xorg-server-1.18.4.orig/debian/po/sr@latin.po +++ xorg-server-1.18.4/debian/po/sr@latin.po @@ -0,0 +1,61 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2011 +# This file is distributed under the same license as the PACKAGE package. +# Zlatan Todoric , 2011. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Zlatan Todoric \n" +"Language-Team: LANGUAGE \n" +"Language: Serbian latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Samo glavni korisnik" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Samo za korisnike konzole" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Svako" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Korisnici kojima je dozvoljeno pokretanje X servera:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Zbog pokretanja X servera sa superkorisničkim privilegijam, nije " +"preporučljivodozvoliti korisnicima da ga pokrenu, iz sigurnosnih razloga. S " +"druge strane, jošmanje je preporučljivo pokrenuti X klijenta opšte namjene " +"kao glavni korisnik, štose može desiti ako je samo glavnom korisniku " +"dozvoljeno da pokrene X server.Kompromis bi bio dozvoliti pokretanje X " +"servera od strane korisnika koji su samoulogovani na jednu od virtuelnih " +"konzola." --- xorg-server-1.18.4.orig/debian/po/sv.po +++ xorg-server-1.18.4/debian/po/sv.po @@ -0,0 +1,88 @@ +# translation of xorg_po_sv.po to swedish +# debconf templates for xorg-x11 package +# Swedish translation +# +# $Id: sv.po 1042 2006-01-09 07:55:08Z ender $ +# +# Copyrights: +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Branden Robinson, 2000-2004. +# Andr Dahlqvist, 2001. +# Peter Toneby, 2002. +# Mikael Hedin, 2002. +# Daniel Nylander, 2006. +# Martin Bagge , 2008. +msgid "" +msgstr "" +"Project-Id-Version: xorg_po_sv\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-29 15:56+0200\n" +"Last-Translator: Martin Bagge \n" +"Language-Team: swedish \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-Country: SWEDEN\n" +"X-Poedit-SourceCharset: iso-8859-1\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Endast root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Endast konsollanvndare" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Alla" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Anvndare som r behriga att starta X-servern:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"D X-servern krs med superanvndarens rttigheter kan det vara otillbrligt " +"att, ur skerhetssynpunkt, lta vilken anvndare som helst starta den. " +"andra sidan r det nnu vrre att kra de flesta X-program som root, vilket " +"r det som kan hnda om endast root tillts starta X-servern. A bra " +"kompromiss r att endast tillta anvndare som r inloggade p en av de " +"virtuella konsollerna." + --- xorg-server-1.18.4.orig/debian/po/ta.po +++ xorg-server-1.18.4/debian/po/ta.po @@ -0,0 +1,70 @@ +# translation of ta.po to TAMIL +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# drtvasudevan , 2006, 2007. +# Dr.T.Vasudevan , 2007. +# Dr.T.Vasudevan , 2008. +msgid "" +msgstr "" +"Project-Id-Version: ta\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2007-04-06 15:48+0530\n" +"Last-Translator: Dr.T.Vasudevan \n" +"Language-Team: TAMIL \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "மூலம் (ரூட்) மட்டும்" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "முனைய பயனாளர்களுக்கு மட்டும்" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "எல்லாருக்கும்" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "எக்ஸ் சேவையகத்தை துவக்க அனுமதியுள்ள பயனாளர்கள்:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"எக்ஸ் சேவையகம் சூப்பர் பயனர் அனுமதிகளுடன் இயங்குவதால் பாதுகாப்பு கருதி எல்லா பயனர்களையும் " +"அதை இயக்க அனுமதிப்பது உசிதமில்லை. அதே சமயம் பொதுவான எக்ஸ் கிளையன் நிரல்களை ரூட்டாக " +"இயக்குவது அதை விட உசிதமில்லாதது. ரூட்டை மட்டும் எக்ஸ் சேவையகத்தை இயக்க அனுமதித்தால் " +"அப்படித்தான் நடக்கும். ஆகவே ஒரு நல்ல வழி பயனர்களால் துவக்கப் பட்ட மெய்நிகர் முனையங்களில் " +"ஒன்றில் எக்ஸ் சேவையகத்தை துவக்க அனுமதிப்பதுதான்." + --- xorg-server-1.18.4.orig/debian/po/templates.pot +++ xorg-server-1.18.4/debian/po/templates.pot @@ -0,0 +1,53 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" --- xorg-server-1.18.4.orig/debian/po/th.po +++ xorg-server-1.18.4/debian/po/th.po @@ -0,0 +1,59 @@ +# Thai translation of xserver-xorg. +# Copyright (C) 2006-2008 Software in the Public Interest, Inc. +# This file is distributed under the same license as the xserver-xorg package. +# Theppitak Karoonboonyanan , 2006-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: xserver-xorg\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-09 12:09+0700\n" +"Last-Translator: Theppitak Karoonboonyanan \n" +"Language-Team: Thai \n" +"Language: th\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "root เท่านั้น" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "ผู้ใช้คอนโซลเท่านั้น" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "ใครก็ได้" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "ผู้ใช้ที่อนุญาตให้เรียกเซิร์ฟเวอร์เอ็กซ์ขึ้นมาทำงานได้:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"เนื่องจากเซิร์ฟเวอร์เอ็กซ์ทำงานด้วยอภิสิทธิ์ผู้ดูแลระบบ จึงอาจไม่ฉลาดนักที่จะให้ใครก็ได้เรียกใช้งาน " +"ด้วยเหตุผลเรื่องการรักษาความปลอดภัย แต่ในทางกลับกัน อาจจะไม่ฉลาดยิ่งกว่า " +"ที่จะเรียกโปรแกรมไคลเอนต์ของเอ็กซ์วินโดว์ด้วยผู้ใช้ root ซึ่งเป็นสิ่งที่อาจเกิดขึ้นถ้าอนุญาตให้ root " +"เท่านั้นที่เรียกเซิร์ฟเวอร์เอ็กซ์ได้ การประนีประนอมที่ดีที่สุด " +"คืออนุญาตให้เฉพาะผู้ใช้ที่เข้าระบบที่คอนโซลเท่านั้นเรียกเซิร์ฟเวอร์เอ็กซ์ได้" + --- xorg-server-1.18.4.orig/debian/po/tr.po +++ xorg-server-1.18.4/debian/po/tr.po @@ -0,0 +1,83 @@ +# translation of xorg-tr.po to Turkish +# debconf templates for xorg-x11 package +# Turkish translation +# +# $Id: tr.po 1061 2006-01-11 10:19:43Z ender $ +# +# Copyrights: +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Branden Robinson, 2000-2004. +# Osman Yüksel , 2004, 2006. +# Recai Oktaş , 2004. +# Mert Dirik , 2008. +msgid "" +msgstr "" +"Project-Id-Version: xorg-x11\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-15 18:21+0200\n" +"Last-Translator: Mert Dirik \n" +"Language-Team: Debian L10n Turkish \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"X-Poedit-Language: Turkish\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Sadece Root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Sadece Konsol Kullanıcıları" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Herhangi Birisi" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "X sunucuyu çalıştırabilecek kullanıcılar:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"X sunucusu süper-kullanıcı haklarıyla çalıştırıldığından herhangi bir " +"kullanıcının sunucuyu başlatmasına izin vermek güvenlik gerekçeleriyle " +"tavsiye edilmez. Öte yandan X uygulamalarını root olarak çalıştırmak daha " +"da yanlış olacaktır. Makul bir seçim, X sunucusunu sadece sanal konsollara " +"giriş yapmış kullanıcılar tarafından kullanılacak şekilde ayarlamaktır." + --- xorg-server-1.18.4.orig/debian/po/vi.po +++ xorg-server-1.18.4/debian/po/vi.po @@ -0,0 +1,62 @@ +# Vietnamese translation for Xorg. +# Copyright © Branden Robinson, 2000-2004 +# Clytie Siddall , 2005-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: xorg 1:7.3+12\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-09 18:47+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b3\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Chỉ người chủ" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Chỉ người dùng bàn giáo tiếp" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Bất kỳ ai" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Người dùng có quyền khởi chạy trình phục vụ X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Vì trình phục vụ X chạy với quyền của người siêu dùng (superuser), có thể " +"không phải là ý kiến tốt nếu bạn cho phép bất cứ người dùng nào khởi chạy " +"nó, vì lý do bảo mật. Mặt khác, cũng là nguy hiểm khi chạy chương trình " +"khách X thường dụng dưới người chủ — kết quả nếu chỉ người chủ có quyền khởi " +"chạy trình phục vụ X. Một sự nhân nhượng hợp lý là cho phép trình phục vụ X " +"được khởi chạy chỉ bởi người dùng đã đăng nhập vào một của những bàn giao " +"tiếp ảo." + --- xorg-server-1.18.4.orig/debian/po/wo.po +++ xorg-server-1.18.4/debian/po/wo.po @@ -0,0 +1,61 @@ +# translation of xorg_po_wo.po to Wolof +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Mouhamadou Mamoune Mbacke , 2006, 2008. +msgid "" +msgstr "" +"Project-Id-Version: xorg_po_wo\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-09-30 13:25+0200\n" +"Last-Translator: Mouhamadou Mamoune Mbacke \n" +"Language-Team: Wolof \n" +"Language: wo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "Root Rekk" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "Jëfandikukat yu Konsol Rekk" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "Kumu mana doon" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "Jëfandikukat yiñu may ñu tambule serwóor X:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"Binga xamee ne serwóor X dafay dox ak sañsañu superuser, doonul lu xellu di " +"may ñéppu ñukoy mana tambule, ngir kaaraangey sistem bi. Ba tay doonul yit " +"lu xellu rugge root ba noppi di doxal prograam kiliyaŋ yu X, ta loolu mooy " +"am bu fekkee dangaa def ne root rekk mooy mana tambule serwóor X. Jubna lool " +"nak nga def ne serwóor X kikoy mana tambule day doon ku duggee ci benn ci " +"konsol wirtuwel yi." + --- xorg-server-1.18.4.orig/debian/po/zh_CN.po +++ xorg-server-1.18.4/debian/po/zh_CN.po @@ -0,0 +1,81 @@ +# debconf templates for xorg-x11 package +# Simplified Chinese translation +# +# $Id: zh_CN.po 490 2005-08-03 09:59:07Z ender $ +# +# Copyrights: +# Branden Robinson, 2000-2004 +# Kov Chai , 2008 +# Carlos Z.F. Liu , 2005, 2006 +# Haifeng Chen , 2006 +# Ming Hua , 2005 +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: 6.8.2.dfsg.1-4+SVN\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2008-06-09 13:20+0800\n" +"Last-Translator: Kov Chai \n" +"Language-Team: Debian Chinese [GB] \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "仅根(root)用户" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "仅控制台(console)用户" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "任何用户" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "允许启动 X 服务器的用户:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"因为 X 服务器是以超级用户权限运行,所以从安全角度来说,允许任何用户启动它不是" +"一个明智的选择。在另一方面,以根(root)用户身份运行一般用途的 X 客户端程序则是" +"更加愚蠢的做法,这在仅允许根(root)用户启动 X 服务器时可能会发生。较好的解决办" +"法是允许那些能登录到虚拟控制台的用户启动 X 服务器。" + --- xorg-server-1.18.4.orig/debian/po/zh_TW.po +++ xorg-server-1.18.4/debian/po/zh_TW.po @@ -0,0 +1,74 @@ +# debconf templates for xorg-x11 package +# Traditional Chinese translation +# +# This file is distributed under the same license as the xorg-x11 package. +# Please see debian/copyright. +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: 6.8.2.dfsg.1-4+SVN\n" +"Report-Msgid-Bugs-To: xorg@packages.debian.org\n" +"POT-Creation-Date: 2009-06-02 20:32+0200\n" +"PO-Revision-Date: 2006-09-20 22:54+0800\n" +"Last-Translator: Tetralet \n" +"Language-Team: Debian-user in Chinese [Big5] \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Root Only" +msgstr "僅限 Root" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Console Users Only" +msgstr "僅限 Console 使用者" + +#. Type: select +#. Choices +#: ../xserver-xorg-legacy.templates:2001 +msgid "Anybody" +msgstr "無限制" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "Users allowed to start the X server:" +msgstr "可以啟動 X Server 的使用者:" + +#. Type: select +#. Description +#: ../xserver-xorg-legacy.templates:2002 +msgid "" +"Because the X server runs with superuser privileges, it may be unwise to " +"permit any user to start it, for security reasons. On the other hand, it is " +"even more unwise to run general-purpose X client programs as root, which is " +"what may happen if only root is permitted to start the X server. A good " +"compromise is to permit the X server to be started only by users logged in " +"to one of the virtual consoles." +msgstr "" +"因為 X Server 是以管理者的權限在運行的,所以從安全角度而言,允許任何使用者啟" +"動它並非明智之舉。但從另一角度而言,若在此設定為只有 root 才能啟動 X Server," +"那麼將會導致所有一般用途的 X 用戶端程式都會是以 root 身份執行,而這可是更為不" +"智的做法。折衷的方案是只允許那些能登入到虛擬主控台 (Virtual console) 的使用者" +"才能啟動 X Server。" + --- xorg-server-1.18.4.orig/debian/rules +++ xorg-server-1.18.4/debian/rules @@ -0,0 +1,443 @@ +#!/usr/bin/make -f +# debian/rules for the Debian xorg-server package. +# Copyright © 2004 Scott James Remnant +# Copyright © 2005 Daniel Stone +# Copyright © 2005 David Nusinow + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# Set up the $(STAMP_DIR) directory, and use it for quilt' stamp: +STAMP_DIR := stampdir +QUILT_STAMPFN := $(STAMP_DIR)/patch +$(STAMP_DIR)/stampdir: + mkdir $(STAMP_DIR) + >$@ + +include /usr/share/quilt/quilt.make + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + MAKEFLAGS += -j$(NUMJOBS) +endif + +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --build=$(DEB_HOST_GNU_TYPE) +else + confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif + +# udeb is arch-dependent... +ifneq (, $(filter %-udeb, $(shell dh_listpackages -s))) + udeb = yes +endif + +# ...but let's support disabling it to speed up debug builds: +ifneq (,$(filter noudeb,$(DEB_BUILD_OPTIONS))) + udeb = + DH_INSTALL_OPTIONS = -Nxserver-xorg-core-udeb +endif + + +ifeq ($(DEB_HOST_ARCH_OS), linux) + selinux = --enable-xselinux + wayland = --enable-xwayland + logind = --enable-systemd-logind + systemd-daemon = --with-systemd-daemon + build_xmir = --enable-xmir +else + selinux = --disable-xselinux + wayland = --disable-xwayland + logind = --disable-systemd-logind + systemd-daemon = --without-systemd-daemon +endif + +# Mir isn't built on PPC +ifneq (,$(filter $(DEB_HOST_ARCH), powerpc ppc64el s390x)) + build_xmir = --disable-xmir +endif + +ifeq ($(DEB_HOST_ARCH_OS), hurd) + dri = --disable-dri --disable-dri2 + xshmfence = --disable-xshmfence +else + dri = --enable-dri --enable-dri2 + dri += --enable-glamor + xshmfence = --enable-xshmfence +endif + +ifeq ($(DEB_HOST_ARCH_OS), linux) + dri += --enable-dri3 +else + dri += --disable-dri3 +endif + +config_backend = --disable-config-hal +ifeq ($(DEB_HOST_ARCH_OS), linux) + config_backend += --enable-config-udev +else ifeq ($(DEB_HOST_ARCH_OS), kfreebsd) + config_backend += --disable-config-udev --enable-config-devd + libs = $(shell pkg-config --libs libbsd-overlay) + cppflags = $(shell pkg-config --cflags libbsd-overlay) +else # hurd + config_backend += --disable-config-udev +endif + +# linux: libdrm needed for kms (hw/xfree86/os-support/linux/lnx_platform.c) +# even in udeb +# kfreebsd: libdrm for dri in main build +# hurd: no libdrm +ifeq ($(DEB_HOST_ARCH_OS), linux) + libdrm_main = --enable-libdrm + libdrm_udeb = --enable-libdrm +else ifeq ($(DEB_HOST_ARCH_OS), kfreebsd) + libdrm_main = --enable-libdrm + libdrm_udeb = --disable-libdrm +else # hurd + libdrm_main = --disable-libdrm + libdrm_udeb = --disable-libdrm +endif + +vars = $(shell DEB_BUILD_MAINT_OPTIONS="hardening=+pie" DEB_LDFLAGS_MAINT_APPEND="-Wl,-Bsymbolic" DEB_CPPFLAGS_MAINT_APPEND="-DPRE_RELEASE=0 $(cppflags)" dpkg-buildflags --export=configure) LIBS="$(libs)" + +ifneq (,$(filter nocheck, $(DEB_BUILD_OPTIONS))) + config_tests = --disable-unit-tests +else + config_tests = --enable-unit-tests +endif + +INSTALL=/usr/bin/install + +VENDOR = $(shell lsb_release -i -s) +SUPPORT = For technical support please see http://www.ubuntu.com/support + +SOURCE_NAME := xorg-server +SOURCE_VERSION := $(shell dpkg-parsechangelog | awk -F': ' '/^Version: / {print $$2}') + +# Add a workaround for LP: #1266492 +confflags += lt_cv_prog_compiler_static_works=no + +# disable-static is so we don't get libfoo.a for modules. now if only we could +# kill the .las. +confflags += \ + --disable-silent-rules \ + --disable-static \ + --without-dtrace \ + --disable-strict-compilation \ + --disable-debug \ + $(config_tests) \ + --with-int10=x86emu \ + --with-extra-module-dir="/usr/lib/${DEB_HOST_MULTIARCH}/xorg/extra-modules,/usr/lib/xorg/extra-modules" \ + --with-os-vendor="$(VENDOR)" \ + --with-builderstring="$(SOURCE_NAME) $(SOURCE_VERSION) ($(SUPPORT))" \ + --with-xkb-path=/usr/share/X11/xkb \ + --with-xkb-output=/var/lib/xkb \ + --with-shared-memory-dir=/dev/shm \ + --enable-mitshm \ + --enable-xres \ + --disable-xcsecurity \ + --disable-tslib \ + --enable-dbe \ + --disable-xf86bigfont \ + --enable-dpms \ + $(xshmfence) \ + $(config_backend) \ + --enable-xorg \ + --disable-linux-acpi \ + --disable-linux-apm \ + --disable-xquartz \ + --disable-xwin \ + --disable-xfake \ + --disable-xfbdev \ + --disable-install-setuid + +confflags_main = \ + --with-default-font-path="/usr/share/fonts/X11/misc,/usr/share/fonts/X11/cyrillic,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,built-ins" \ + --enable-aiglx \ + --enable-composite \ + --enable-record \ + --enable-xv \ + --enable-xvmc \ + --enable-dga \ + --enable-screensaver \ + --enable-xdmcp \ + --enable-xdm-auth-1 \ + --enable-glx \ + $(dri) \ + $(libdrm_main) \ + --enable-present \ + --enable-xinerama \ + --enable-xf86vidmode \ + --enable-xace \ + $(selinux) \ + --enable-xfree86-utils \ + $(wayland) \ + $(logind) \ + $(systemd-daemon) \ + --enable-suid-wrapper \ + --enable-dmx \ + --enable-xvfb \ + --enable-xnest \ + --enable-kdrive \ + --enable-xephyr \ + $(build_xmir) \ + --with-sha1=libgcrypt \ + --enable-xcsecurity \ + $(config_backend_main) \ + $(void) + +confflags_udeb = \ + --with-default-font-path="built-ins" \ + --disable-aiglx \ + --disable-composite \ + --disable-record \ + --disable-xv \ + --disable-xvmc \ + --enable-dga \ + --disable-screensaver \ + --disable-xdmcp \ + --disable-xdm-auth-1 \ + --disable-glx \ + --disable-dri \ + --disable-dri2 \ + $(libdrm_udeb) \ + --disable-xinerama \ + --disable-xf86vidmode \ + --disable-xace \ + --disable-xselinux \ + --disable-xfree86-utils \ + --disable-xwayland \ + --disable-systemd-logind \ + --without-systemd-daemon \ + --disable-suid-wrapper \ + --disable-dmx \ + --disable-xvfb \ + --disable-xnest \ + --disable-kdrive \ + --disable-xephyr \ + --disable-xmir \ + --with-sha1=libnettle \ + $(config_backend_udeb) \ + $(void) + +$(QUILT_STAMPFN): $(STAMP_DIR)/stampdir + +$(STAMP_DIR)/autoreconf: $(STAMP_DIR)/stampdir $(QUILT_STAMPFN) + dh_testdir + autoreconf -vfi + >$@ + +$(STAMP_DIR)/build-source: $(STAMP_DIR)/autoreconf + mkdir -p build-source + tar \ + --owner=0 --group=0 \ + --transform 's,^,xorg-server/,' \ + --exclude=stampdir --exclude=debian \ + --exclude=build-* --exclude=autom4te.cache \ + -cf - * | xz > build-source/xorg-server.tar.xz + >$@ + +$(STAMP_DIR)/configure-%: $(STAMP_DIR)/autoreconf + dh_testdir + mkdir -p build-$* + cd build-$* && \ + ../configure \ + --prefix=/usr \ + --libdir=\$${exec_prefix}/lib \ + --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libexecdir=\$${libdir}/xorg \ + $(confflags) \ + $(confflags_$*) \ + $(vars) + >$@ + +$(STAMP_DIR)/build-%: $(STAMP_DIR)/configure-% + dh_testdir + cd build-$* && $(MAKE) + >$@ + +$(STAMP_DIR)/tests-%: $(STAMP_DIR)/build-% + cd build-$* && $(MAKE) -j1 check VERBOSE=1 + >$@ + +build: abibumpcheck +build: $(STAMP_DIR)/build-main +build: $(STAMP_DIR)/tests-main +ifeq ($(udeb), yes) +build: $(STAMP_DIR)/build-udeb +build: $(STAMP_DIR)/tests-udeb +endif +build-arch: build +build-indep: $(STAMP_DIR)/build-source build + +clean: unpatch + dh_testdir + rm -rf $(STAMP_DIR) + rm -f config.cache config.log config.status + rm -f */config.cache */config.log */config.status + rm -f conftest* */conftest* + rm -rf autom4te.cache */autom4te.cache + rm -rf build-* + rm -f compile config.guess config.sub configure depcomp install-sh + rm -f ltmain.sh missing INSTALL aclocal.m4 ylwrap + rm -f include/do-not-use-config.h.in + rm -f m4/lt*.m4 m4/libtool.m4 + find -name Makefile.in -delete + rm -f test-driver + dh_clean + +install: build + dh_testdir + dh_testroot + dh_prep + dh_installdirs + + cd build-main && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp/main install +ifeq ($(udeb), yes) + cd build-udeb && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp/udeb install +endif + + # oh, yuck. + find debian/tmp/*/usr/lib/xorg -type f -name '*.la' | \ + xargs rm -f + + # remove modules not needed in d-i + rm -rf debian/tmp/udeb/usr/lib/xorg/modules/multimedia + rm -f debian/tmp/udeb/usr/lib/xorg/modules/libxaa.so + rm -f debian/tmp/udeb/usr/lib/xorg/modules/libexa.so + rm -f debian/tmp/udeb/usr/lib/xorg/modules/libwfb.so + rm -f debian/tmp/udeb/usr/lib/xorg/modules/libxf8_16bpp.so + + # we don't ship these from the udeb build, reduce noise from dh_install + # --list-missing + rm -rf debian/tmp/udeb/usr/include + rm -rf debian/tmp/udeb/usr/share/aclocal + rm -rf debian/tmp/udeb/usr/share/man + rm -rf debian/tmp/udeb/usr/lib/pkgconfig + + install -m 755 debian/local/xvfb-run debian/tmp/main/usr/bin + # Make sure Xvfb at least starts up + PATH=debian/tmp/main/usr/bin/:/bin:/usr/bin \ + debian/tmp/main/usr/bin/xvfb-run -s "-screen 0 1280x1024x24 -nolisten tcp -noreset" true + + install debian/local/xvfb-run.1 debian/tmp/main/usr/share/man/man1 +ifneq ($(DEB_HOST_ARCH_OS), linux) + install -d debian/tmp/main/usr/share/X11/xorg.conf.d + install -m 644 debian/local/10-*.conf debian/tmp/main/usr/share/X11/xorg.conf.d +ifeq ($(udeb), yes) + install -d debian/tmp/udeb/usr/share/X11/xorg.conf.d + install -m 644 debian/local/10-*.conf debian/tmp/udeb/usr/share/X11/xorg.conf.d +endif +endif + +# stub to start building deb files, used by binary-indep and binary-arch +binary-initial: + dh_testdir + dh_testroot + +# stub to build deb files, used by binary-indep and binary-arch +binary-deb: + dh_lintian + dh_compress + dh_fixperms + -chown root:root $(CURDIR)/debian/xserver-xorg-legacy/usr/lib/xorg/Xorg.wrap + -chmod ug+s $(CURDIR)/debian/xserver-xorg-legacy/usr/lib/xorg/Xorg.wrap + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +# Only read the first line, the rest of the file is used to determine +# when the minimal version as to be bumped: +SERVERMINVER = debian/serverminver +serverminver = $(shell head -1 $(SERVERMINVER)) + +.PHONY: abibumpcheck +abibumpcheck: debian/serverminver $(QUILT_STAMPFN) + @echo Checking for the need of an ABI bump + # Build an updated version of the file: + head -1 $(SERVERMINVER) > $(SERVERMINVER).new + perl -ne 'print "$$1:$$2.$$3\n" if /^#define\s+(ABI_(?:VIDEODRV|XINPUT)_VERSION)\s+SET_ABI_VERSION\(\s*(\d+)\s*,\s*(\d+)\s*\)/' hw/xfree86/common/xf86Module.h|sort >> $(SERVERMINVER).new + # Compare both files: + @if ! cmp --quiet $(SERVERMINVER) $(SERVERMINVER).new; then \ + echo "serverminver bump required, ABI changed!";\ + echo "When bumping major or minor, always bump required xorg-server minimum";\ + echo "version too, the newly built drivers are not backwards compatible!";\ + diff -u $(SERVERMINVER) $(SERVERMINVER).new; \ + exit 1; \ + else \ + echo "ABI unchanged"; \ + rm -f $(SERVERMINVER).new; \ + fi + +# Build architecture-dependent files here. +binary-arch: build install + $(MAKE) -f debian/rules DH_OPTIONS=-s binary-initial + + dh_installdocs -s + dh_installchangelogs -s + dh_install $(DH_INSTALL_OPTIONS) -s --list-missing + $(INSTALL) -d $(CURDIR)/debian/xserver-xorg-dev/usr/share/xserver-xorg + # Extract only the major ABI version: + abi_videodrv=`PKG_CONFIG_PATH=debian/tmp/main/usr/lib/pkgconfig pkg-config --variable=abi_videodrv xorg-server|cut -d . -f 1`; \ + echo videoabi=xorg-video-abi-$$abi_videodrv > debian/xserver-xorg-core.substvars && \ + echo "xorg-video-abi-$$abi_videodrv, xserver-xorg-core (>= $(serverminver))" > debian/xserver-xorg-dev/usr/share/xserver-xorg/videodrvdep + abi_xinput=`PKG_CONFIG_PATH=debian/tmp/main/usr/lib/pkgconfig pkg-config --variable=abi_xinput xorg-server|cut -d . -f 1`; \ + echo inputabi=xorg-input-abi-$$abi_xinput >> debian/xserver-xorg-core.substvars && \ + echo "xorg-input-abi-$$abi_xinput, xserver-xorg-core (>= $(serverminver))" > debian/xserver-xorg-dev/usr/share/xserver-xorg/xinputdep + + # save the configure flags so that packages like vnc, tightvnc, tigervnc + # know how the package was built. + ( \ + echo 'xserver_confflags = $(confflags)'; \ + echo 'xserver_confflags_main = $(confflags_main)'; \ + echo 'xserver_confflags_udeb = $(confflags_udeb)'; \ + echo 'xserver_vars = $(vars)'; \ + ) > debian/xserver-xorg-dev/usr/share/xserver-xorg/configure_flags.mk + + # The udeb uses the same substvars: + cp debian/xserver-xorg-core.substvars debian/xserver-xorg-core-udeb.substvars + + # save the configure flags so that packages like vnc, tightvnc, tigervnc + # know how the package was built. + echo 'xserver_confflags = $(confflags) $(confflags_main)' \ + > debian/xserver-xorg-dev/usr/share/xserver-xorg/configure_flags.mk + + $(INSTALL) -m 755 -d debian/xserver-xorg-core/usr/share/bug/xserver-xorg-core + $(INSTALL) -m 755 debian/xserver-xorg-core.bug.script debian/xserver-xorg-core/usr/share/bug/xserver-xorg-core/script +ifeq ($(DEB_HOST_ARCH_OS), linux) + install -d debian/xserver-xorg-core/lib/udev/rules.d + install -m 644 debian/local/64-xorg-xkb.rules debian/xserver-xorg-core/lib/udev/rules.d +ifeq ($(udeb), yes) + install -d debian/xserver-xorg-core-udeb/lib/udev/rules.d + install -m 644 debian/local/64-xorg-xkb.rules debian/xserver-xorg-core-udeb/lib/udev/rules.d +endif +endif + dh_installdebconf -s + dh_installman -s + dh_link -s + dh_strip -pxserver-xorg-core --dbg-package=xserver-xorg-core-dbg + dh_strip -s -Nxserver-xorg-core -Nxserver-xorg-core-dbg + $(MAKE) -f debian/rules DH_OPTIONS=-s binary-deb + + +# Build architecture-independent files here +binary-indep: build-indep install + $(MAKE) -f debian/rules DH_OPTIONS=-i binary-initial + dh_install -i + dh_installdocs -i + dh_installchangelogs -i ChangeLog + + $(MAKE) -f debian/rules DH_OPTIONS=-i binary-deb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install --- xorg-server-1.18.4.orig/debian/serverminver +++ xorg-server-1.18.4/debian/serverminver @@ -0,0 +1,3 @@ +2:1.17.99.902 +ABI_VIDEODRV_VERSION:20.0 +ABI_XINPUT_VERSION:22.1 --- xorg-server-1.18.4.orig/debian/upstream/signing-key.asc +++ xorg-server-1.18.4/debian/upstream/signing-key.asc @@ -0,0 +1,322 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQINBE9iNskBEAC4ZlqFgnzmpGeN2MOk6dvxs3UQFEHycoNVxCb+KPF3R0q4ZTt/ +Qdmjg5ut3I6D+LshJoPPIajOp3Csm8Jjue8xWNY0HVN7/d+Nhok+6FAtD+H22hUz +rGxWfUTCmga1oLwxRjptSZeAUb/EFRzvaALB9JUt///VerzDUuuMttJ6gPNMo7+f +EOknT8fmRuxTT8Fa9o8/XJ0nDVKnEZfXMq+kaxFwRl7D/PfFSxzjOVvLDZYJ5gNT +qW/2e4YJCTAQWhWAOWYpUjuG+UsYc2m1xyt8Xoe1JOz0uD9sVypQgNt6iRKGG4QZ +R43SlKvJnp5LJVemiQAJydxb3Yh3aU64GT5p/nV9lU26+iycFVwpxWEpH4z/3lUj +HaaI2dM9JvTrcjeBmsLRUC32SwI2MjFiLwKa22Kzfp02w02s2XSw9m8jYkwUzHln +UAesFIwYXivckAf6ULSaMe8x22XtvXRmHdOy/q/uTC7i2JR33VEm0zNxSZRWTsX/ +sv0BETjNE525iz9sLAGmt60vThkO6zt8ke0A6lCekLUsi3rzok21oFqSnasJNXUY +eVOAW3LisGRrPBXHUPoztyB9n7OpC2xbBep2ce/Y4zBjHZZUngBZXxXj92X2CRSo +qezlP2cZfnXk0C7exUr4aTC44IjkZYEsFwQSNiJhzIoN5blVn1QU45J4RQARAQAB +tCFLZWl0aCBQYWNrYXJkIDxrZWl0aHBAZGViaWFuLm9yZz6JAjgEEwEIACIFAlBT +0bwCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJENsiGmkAAAARyYMP/jC3 +uOmE25bvnTKmyYPDGk7wyCgkLNlFzsAYGuesiOnyw4T1FGM+ogIX2G7gYj9J/hdT +nX/WwEU8zfVkVRxNd9kb/BbJ+zcS28saSLG/6IsYcdtuBBw/1tvB7sR5cRZgEBij +NGoa8VvIY6cJozmw6zgXQqqS4el1jKZTtdQNpmwK95EV6TvmdAjmMqj4s5n742ou +bdD+lx5HQlGC+a20vosoX9kxrCtw3utQngXcgr6k75ZB22Uc15zQIQc9P78NnXnI +GyliT3z5SEYVoThpmAkexHUr9uK/rP3bBeMTTk88wzq7CYqMoxpTz4HzM+RdKLUA +pFZ7f181s/JP7PTksHVxTJtWQx+l09VAWLg1Gj2/F8j20xjEHSkywklPL0gg4g9o +dTPVbaSHJDS7xlNAhwHw4/7vupORU16Xiwt9wgAWvJ4k4dTrcXkd+HJ6FLJlAKBl +sQU+/G5e8oxTnmksfJcpbHaWT2quW+oDe3qadsXjKDGfZn0b1ocvGUjg5mTzN95B +PlGZ6pBmZgrgv3wWeFgjXScVnhQQeKHCF+G76c5c52H8jjOWFAv+RkpXD/J5N3I9 +QWR7DVVfvwPqLgwZ+SaAXPR4hQ0b3kanyaNHJgDNZWAG7hHA3EbnaVyVyyRmR+1M +2jXuzKVlbJp8/+ts3hrBeZ17bgu+xw6FydKN+ODJtCFLZWl0aCBQYWNrYXJkIDxr +ZWl0aHBAa2VpdGhwLmNvbT6JAjsEEwEIACUCGy8GCwkIBwMCBhUIAgkKCwQWAgMB +Ah4BAheABQJQU9N6AhkBAAoJENsiGmkAAAARpFsQALbybdFI85DE/NDfzNxGroru +pO96ecH7bLK1o4VjjIsBbybvlcF89FVHI4o+5w9SQRF+a+4Da9YWVXsrFAeRRVMV +iDRgW/GdXHYV+vRSVHzFeJGpsGV/IYApctwcS8y/aWzEJXjp5ARGK7lpBG4zZVOk +jjphTPFHF7Y8W2Yu5HoEjqG1t4PzcNN7sOrt6Nxkv5DWKjnzN+fB63SgfBsIk7NG +/ufWncrxa/eQl6zKu42LHlDnDgLm9HI9y/iPBwEStfoIM9tNyDuvtsxU6RXIBeuB +JgGMjkht6f97aK9Zv8vOXlk3mhaF4SbIXKHvyQDNJ4ZoZmzlZSsWBTLH/+eYNI6n +jUQHK5X4bscmUobFDbU2JNqaKA8gVtLAmE/nPOIuSk0Y7je5nVx4+HsQ+FC9ntFe +1aYKmn1S04QSS/bvmH52qSx7U+nnLnwGvtDhomQ5Q63ZIXwLsT+PBUb7XkECpJNI +B8lXWmCLxABrUTuEsUa1k6yGnYWCAWI/LX5MW1VZOg51rgKWNNsSQ2O1QI+7VG1S +85K3/HU70jUEDdWvr6ZCkr8VORLXehkbP0Mr4iOQCHUgljpul9wTINQw6FIO57H4 +85vwXiP4NdC5HKHy/BoUzcbg6HzX6ji+UlatiqOgxbrdWhpS3pQgzVUcwV90UWpe +o74gEp0cDIja3cCrDJDJtCZLZWl0aCBQYWNrYXJkIDxrZWl0aHBAZnJlZWRlc2t0 +b3Aub3JnPokCOAQTAQgAIgUCUFPRlgIbLwYLCQgHAwIGFQgCCQoLBBYCAwECHgEC +F4AACgkQ2yIaaQAAABHGNQ/9FoQfqNvPsyj/CII5y7Fyi6cSPDeTVBdxkB++2gJ9 +kDKsjL5ylr0MhNly37uu38cVGkgiEf5WJEbJqQGuLlvU6dbo75RIGUsDi+FLee7X +uwtEwY+WuMQTbxGyqEFbbOL3EuylqqD+7+Mh3iEMdleJfJhKUGScyDz4VwAvIzgS +LwKk1tyOl5io9f3QA0tKnohScV0X6ruVnS5/X7FG3boFxuN9d1W10uG1LOHDQMsC +a1rA2euBbYsDATM0DWCR4TOCz7RcBn6BnRV5U/UNmMgkgX6ZKrJRLk1oIZZYnBZF +5J2f+g3BhQ0t5lOkvFO1H2tWK38Ch1DzieKFjLodB4vW1XMV0C3Bjx3jGMYBMclR +jseyDvgt9G1QLA+O4/gGCZW/+AHorSDKJwJeR/5YpbfHPIQi/6W21gaqbJwAdoHO +xynzprPCUAPiTXJqv0tOUs5trteoj83+7Jn9hGFiFkr6uluILPeFurKvxuP63EaS +RNrYKjk3qAQq5EdJm9W+o2vBw5naN8M9I65I5uaXs3sz+MY/+fTJGHEsG3bQokTa +XppoE7rG+7GJwMX+s88ALU8lz4FzY3ZTWXxqnRFbDSzpxPq7eOMx7ovHjTXbyEE8 +v4STT6wWHllaYUMeR/0BqYDGoH03vm4vMJoBNdFPeM92skcdbZFITl9MaLriHlvk +qKO0J0tlaXRoIFBhY2thcmQgPGtlaXRoLnBhY2thcmRAaW50ZWwuY29tPokCOAQT +AQgAIgIbLwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlBT03oACgkQ2yIaaQAA +ABGQshAAoi3ek8jWeD97QIOyr4JfCCL5ajZPxfCtjp0j2tWNy0QHZCesCXIZ0eOF +7cCGsBrAdCExlqlRWvjB7FiCTCg/0vS1MLjhT6GuxiyfeF/qfTdxswcXKs/BafBP +XdTfTdVVUX7IsECxihWlL8XO56T24mEUlcERDNcmB0rdsCLUy5+hUw2w5tTkI4bX +NNHcg727NhqbfMRKNbk5pdsmCJBwwPkKIJNKCy4LfO1UhvTYQNPAkiBY/1HXoiR3 +ZF+n5sYHkH8sR7AGoUJxiLINsCAcs2D6kf4zL2MXRbCrgE08/0ABNriqe7My6Ocn +hZWq76POx8ETyEZj1ZVIWpbrEw/TwDVlI0oI/1WMqclVC9TasmW9vtXG+FLzEMM/ +5cXHpFS4Ffr2twWADaGKA+kzpyvn3LFvMzxLtZXV0U7lzGvanHfEvJ7Wp/r3ZZM2 +IzhNn2yM2wmm6yDm0rt8ilBIkzGbIwWC+GYXgUE9jatkIDBS3rzDqrUOQbfNOutZ +ARdVeUJTj0xpLj1WbTrA16AvTzXk7UraE2JmveCyLUk5LY2jG6CZM9Ez2D4uIcpM +mSfXlPqRv3eKYBdTXRINmaIUAFXNxuNa7EaCiZJ7uyo8Kbo1KBOkyqNuCWj4Z/66 +UrYA/aV1zxe3nkDdiRq9GYH4bVyjJl/H8goLblcIkgeLhDczwS3R1NnU1wEQAAEB +AAAAAAAAAAAAAAAA/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYH +BwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0o +MCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo +KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCADgAJYDASIAAhEBAxEB/8QA +HAAAAQUBAQEAAAAAAAAAAAAABQACAwQGBwEI/8QANRAAAQQBBAAFAgQGAgIDAAAA +AQACAxEEBRIhMRMiQVFhBnEUMoGRByNCUqGxFcHR4TND8f/EABkBAAIDAQAAAAAA +AAAAAAAAAAECAAMEBf/EACIRAAICAwEAAgMBAQAAAAAAAAABAhEDEiExBEETIlEy +Yf/aAAwDAQACEQMRAD8A+eMPEja3cDud7q3bg3hxA+ENjkdE/wAh4+VdikEgHNKq +SdmiLRM1zuye0r3hwNpg/KCD0pI2l916lIPYMzMFpJewfsqTIHtINkc8gLUeDYDa +BJ9lPi6WZHElpr7VasUq9K3BN8M7DFI+6a4Ec/dSmCRoJp4IPC1sGmO4DABXHSv/ +APDPc3kc/ZTYdQaMjj5shb4WUXEA+V47arrcmSxucRzw6+HIhmaNI0WI91eyFnGL +CQbZR5a8f6VUoRZdHJKPGXY8p7R5Sa+6smfxGdkOBQokxO2u8zPQ+qnY6nAuHHpQ +WbJiRpjOwnHkFzfCyCXA+riqksB8R/hvto65XglobSSD71StY0TgHPYS410Vnr8f +UXL9ge2AxuL2k2ikAmYwAyO74IKfiujmIbIQTV/IKhmmjxXECqPSSWRzetdJVEeW +S8B/iG+rKr083TzY/ZP/ABDJHiwOTRT4Ggizz7BP2C6KRHKezyuc5zR0kopzbzZ2 +v9QkrVBNWHZozAaHE2aPzyvLc1x7Xt0TxaimlDbs89LpnHbVFqGYk+Y99Uj+lYT5 +Ghxbwer4QT6fx3ZWQHPFsZyQV0fScIcGqA/KEsnRZjjfSrhaW0UXDzjnjpHsXTLa +LoDrgIhjY7Qbr4RbEx+twr1VZbQMw9LayiBRV0YTB6ItFAD6KYQg38fCg6Rn5NNZ +ZNX8INqOiQzN5YAR0QtyYBzwqs+P2Nt/KgGjlGfo/gk8bggOSx+E4+UmI+nsus6j +gB4JDeVj9X0xsjXNLRZBpD3jF7HqMljZDDdmz2Cr8eQWt8p9OVnM2OXT8nZIDXoT +0ienzeK0Oa674pV5cKqy7Dm2dP0vusS72ki/UKfJImiO4N3VVHj/ACrcGMyXHFNo +jilTzYXRMO4mv7VgU4uSX2aq4C4wN4YODfCLQO8MEm9w4CpwwCRwIB3ehVvwnMAM +oJo1dK3LJPjBGLRXkY6XkmPv1CS9mYS/m0kU+BoxmQ/aTVqvtLvT16VtkLprLBYH +Nq7p2nPnlhJadrjyf1XV8OEk5M1f0Rp1Yhkc024Lf6dj7Y22OaVHQsVkGMxjQBwA +VoYWgN/wqZdNkeLg6KKwOObRTHiscg2VXhbZFBFIWkVQCFliHxxfHCnjg475TmNp +vJU8bWgXzZ9lCMrGNzXUK5VfIiPwipbuBIB+FTyG0LN+3KjIBMiDu0A1PD3AnatV +LXNg2hWYwO3AcIBa4cu+qdJGRjOJHmAJBCx2kSHFmeyYcejvZdd1TH3B3HNLm+t6 +c2PJLmgVZ3AJlUlqyiVxlsg1pWS17SDRs8Ef1K5qEBewAgjj9lhMLUZMKYsBtl9e +y1+LnNy8Uujfvrkn1H/lcr5Px5Y57x8N2LNGaKM8fgXsJIvs+iIafI18dOG6+Sqz +sd0ryXeXcLBCVmBhB4d8eqE0pxr7LlzpNlthD/LyElF45cTxX60kjFOKoIA0aCJ2 +I9rnbZHGhfoi+lzMdkMw8dpLGnlyxzZXy5BDSQxx9ult/pSNsLBLtPJoH3XakcOB +0HDYGRtr0CvwPDnCzwSqWI64wOORyrEXGQylUzVEOYrTdi+UTiBH+1Tw2+QV3SIx +N59kpYTws6sq0xrWmgLUEbSRyVNVVZ5UI+j3NAIIA/RRzsDmGmq3FTgBVFJ7WuBH +RpMRGczWbbIaUKm2vceq/wBLR50Ng10gkmPtebFX2kYzQDzYA4O9/RYXWYTE6R4a +CWHdXwuj5UVAk30sZrbKdI6uCKNoxfSnIuHJs5rPxLzH+UmwPZLDzJ8R+6J7vZLV +mGPKe5grm1Vjka888H1VzVrplUqfDa6bqcORA0WWv/qBRMwtma2QPa4erR6Bc7je +6N4cw7XWtDpWrE+Vx2uPRPS52b4jT2xnQw/I2/WQWzIWiSxe3ocJKeGVkzaeOe0l +n3ceM1GE02IPnBcQGe63Ohyglm1vlY7hYmNxY0Brfi1p/phzjOxrtwPa7UvDjYzp +OIAI7PPHoiMQ/mRm+UOw7MYHpXCvQmgHONEC1Uaoo0WGRwOuETY+McFwv7rEza9D +CPDEgMh491JiZeblmsZjtx5BeKQDsjoUBY6hYP3KsBkfbquvdc/fh/UA8zpWxi/6 +TaK6W/UITWXKXiu6pEGzs1uxt2BaZK4BvBFqnj5DtgJ7P+FDPI4l3JKg6JJHBxNu ++6FZuRjRPIdKwEelr3Oe4x7YybKzc/02/Jl3y5Ja098pRW39F/IzcWS2tlYXH0BW +Q12MHxQORRIRHN+mcbEbvxcmQTD1c7/2svk5WXBlCHN2ua7hrwUUVtvw55qjS58n +HmY4hApLD76NrV5+I7/kcpmwkGyPj5Qz8JFK000X6EK7ZJdM+jb4DI5b4caKma6q +o0ocvFfju5oju1DHIWmijx+C24+h/B1V0LS2XcR6EdpISx4SVMsUG7aNEfkTSo3O +rfR2ZpeWI2uZNjEkb/6gPkKvgzDF1cCZoiaKbbbcAup6rp02RhzugO7zFoH9vKwm +Dgvx9Qd47CCXc2O06d+glFKXDY6W9ksFscHD3BUucJXMMMXbuLCqQaTC9pkg8THl +r/5ITt/ceq806PXMTInklkjzscMdsFbXNcOrVd9Le0SYmPj6bJtlY6bId1Ys/wDp +X59ckxYWmB0eORe4kbkInfkOi3htTPFuPpZ/6S0zT5akdO7xi/jkdIxabpkknXCx +L9R52QAGahOGnhp8GgT60rOHrupR8STxzezXsq/sQvYsPIihxxJJJLj47t0cTvyt +s8pTw/j9SdOaiceC1jeCpNJeAxbP/SNfomrxZrKkb4cja3Ncf9KfVMzGgiLjKwNP +Fk8LF5xx49UwW5LHhriWNcDTevX4Wry4YJcAsMbCK4BA7SfRaA8zWPAYJI2lxedr +B/2gepZOVmh5/EuuNu5zXzeHf2HZTcGXGy9Vmw3slDsZnFniyfRFJ4oCwiSMiQdO +74Tw1XpTOMpeMzGU0YmLFlZMA8OT+sPLq+6o5WIzKY6aFx2NAePMtLnYjZ4dji6R +tcNA6Qj8AdPxZGi2tcOj6ISavgaaXQA6IQznMkcwtmhexu8d0P8AayuBE5rbce/l +anWsrxdOw8V/LI97uuRfys5iNa2OyWqSlwCj0c+DxW7XAEIJqGmuiO5nLfhaHdxw +R7JslOFOopYzaDOCkZAOLCf9eySM5mnxyPLo+LKS0KSZleOS4fTen4Lqmd2GvcK/ +VZL6wwX4mRjZBcCJHGwOKHotpiZbYnZTSfL4hduHVE/5WZ+u5BkQCRjtwa5vXsqj +XP8ApBgva2Ln2CvwSMfbXNtjvL+iB4EodA0e4HKL41EjnsJWh0SNgi3uYG+QcBSn +Eha7y7m/ZTsaDTgCa7RGCBszbb38KUMkDW42O5tPke4eylix4m8RMAb/AJKJDADX +hzxQSklx8cHa0Egd2pQ1JAPL0x2TmwZBADIegT2UXA/k0CSQFVly3yABrAG3xQV7 +FbbDVX62FGFRMnLhNdqpnj8srG7aHqEVaJCxpczcKUeqxPx8pk7O754RfBMeRjtc +W2HD05UAooGMjslzGNH3CF/UGKH47yALpaqRjI++fXpCdTb4sTmtaSK9UUgSXDif +1ATFDk1dDgGkCwslgaGyj7Faz65kihxZYS0eI99NI9AFh49rGDslPSaMbk1LgbBj +obf3SIZ2BQr3Qxk9NptppmfaT8Y/5VQS8u4+aikhpcUkyiRzOufw8+o26xo7MTIe +fx+P5TZ/OFrvqeJmRocgaypWsv70vnnTs+bRNWZkYrtsrDdej/j7LrmifWumavgS +fj5248pbtMcjq9PT4TSV9BGeypjNNePw4I9OEfxJP5YJ/wDxZfSHtcwhhDm2QPml +oYGu8IlnN+irZZFmhwSQR3yjuM2Lg0P0NLN4pcAAQiQySGGiVLLk1Rb1HIqwHEgf +KrtwzkYby78xHCqNk8SUukNNHoiLMsPYAzgAILodkCGSjHIZMxwkb2AOES0rUMR5 +ka9oJI4vhNkIkBsWfVUcjCbK8u5a7+9vFo0Daz36jy4XbIcdu6Rx6HNKxpkckGGw +O/N3QQhkBxXEjlx7JPKmGpmANDjz6BRol11miMttomzXsg+ryARv+ykwnSZtuB2i +lR1hhbG7cSSlTA5cOLfxGeW5bD6EnhY/xfZh/dbL+JTSMqADskrF7ZG/0Eq+Pisw +T/0yRsrweGL0ySE3TR+qiuQHhiR8XrwympC2yRzpb7ASUNzf2pKUSwt9Q44jle9t +Dm+EJhmLHAEXf+FrNWx25QftsOtZR8Do5SHggBJjdqhsiqVnSvpbIqNjS7ggELf6 +a5rgCe1zD6efePA8f2roGjZLAWgnkpJLpogzUsi20QOFciAI8zfuq+NI18Y5FKwX +FjTRq1WxrKU0DpJZDG8No8D0Q+WXNxJCJI3OF/mai7Xhji339U5gDgQ/sdKJtFkQ +ZBrO7h0LweuipHayG2HwuvvootGyON24saD30EsqZkhNsBr2Cf0baK+jLZeoTyuJ +jgdbvjpe6biunmL8sbnDpvoEZymNI8oDSe6CqNuIk2BaVv6I2mFsOoIXhtDjhCdQ +t556FqVmVuidyeOAg2v6hHhafNK9wbtaT36oJFEpUcq/iFlNn10RtIIYOa91nXgG +v+1FlZT83UJsh/b3EqS7IPYWiqKIuzw0TwF67zELwjnhNBoHnlGg39DzXskvAOTw +kiSzXS7It57FmkHyRFM51tFjhFMokzBvlFlB3XE97XDkc/dTBjWuzKM+RqWqND9P +R1hRV0CWlaXGeYi1w7B90B+jv5+FKAOGuWohiB7ApVz4zRHxBvSs/e0AlHhJvZYL +bHSxMe6CTc29rjyFo8LLGxvIvvlVyQ6Zeeey49J0Mx4t3PaqzP3kkVRPSTCL54NJ +aHjLoSGRuHJH2TXNJ6dQI5UMbA5ocSA8n9lfi28Cwb7TU6LNgRNK+MkHn9EOzcgl +t8rQ57IgzjseyxutztYTzV+iFdFlPhaxckbeXGu1zb+JmveNJ+Bhf8vr/SOazq7d +N06RwP8ANo0FyXIlfkZD5JXbnudZKthH7MuSd8H445Br/wBK2T2U2GMBl+6lDQbA +TtkimkMuknAHpeub+6btP6/dQj/guvhJOdfokiSjSzu8TJPmvaeFX1DHfK1j4Ruk +JqlYoNeTXN+6UUmyYA1X3WlQ1jqjC57T2Df0DjvgjljlBBJv7rath8/YKAfThDpN +zXEn1H/hbOOBrgCDzSwz4+nSg04qgVPCaIpQRSOgdRJrpaE4wI65KH5uBYJA8yFg +aPGZN9kFq9/FOaDVGukNdHLC6qLrHKZ4rxwevshQUwu3UQ38/STtapp27gP8oOJi +eXBeGYi6dR+yNAsuZmtvIO0O6WZzsh75HSSnzE8Ac0rmSZJHEBVhh8ufIRfdI0K2 +2Yj6vlk8Jm7cd5/ZZrFxnzfl/S1staiZmmdrhYYaH3QWBjYjQYGkd2r9JVwz7x26 +DAXwO2yA0FPG8dojPGydha9rb+DyhORjSY5JbbmIOMvtDqav9WPlkpxCZv55I/RR +2JeSaJTpYnR+t3yhQW2+npLvcJKHlvYSRFs2koBe8j3Ub28cqaQFrnHg8/uoyQbD +uPZbDDZc0bUX4eQ145o8ivRdW0HNg1CBr4nDrkHsLjFbTYq0U0LWJtNy2yQvo+x6 +Kpy4lNc9NGLNpx+HbWRbqJSkxmkFDPp/6gw9VY1viNjyBW6Nxok/C0DWXyDuBFig +sLi48ZvjJS6gNPgh4uuVTdgRk3t5+y0zowe6UEkAq+FAsAf8TG70Fpn/ABELLujw +jhaWXRVaW3X6ogM/PjMaaY0WhOqDwYXf3VwtRNGGgn1WZ1anSnf+VvJ/RFeiy4jE +ZEW1+QCKc4WhWTECPEA5rlFnTePkTuIqyaHwqFeZzD10FuiuI5zlcmUQN1OHf2U1 +xllSCr+LUfMb69ipQGuB6tNQLBuVpgsuhNKH8NLtpxaSOuUW5jPHmavZIw8bm1fd +JHjTHWRrgBfG5ppzaSRQx7jy02kk/H/0tWVfYTxshrvK93IPBKfI0g+YX7KpJFtc +Sw8WnRZTo6bIA4D0ctFsy1/CQ2DVhwUbw67BrhWgGSxmSO+Oxf5V4IyOQ2/hQF0N +iyZoq2uO4dEcUulfSn1qWMih1ZxLTVTVz+q5uISewB8K0wbPypZ41NdGhlcOo+hc +XIiyIRJFI2WNw4c02CnSAHgf6XDdK1jP0lwdg5D4wf8A6zy0/p0tv9O/xCgyiY9X +DYHAcSt/K5ZJ4JR8N2P5MZcfDZSRlx4AUBh5O6yptP1DC1Bu7CyIZvXyFWXNa323 +dqpqi+0+oCZ8RZEeK46XP/qScY++z5ncNC6DrmW3GA8UENNkuA4C49rOoN1HUpng +kMaaarcMNmZ889VSKIpzw4HkcFV5C05BAJLe1JM4RNc57trQLPyUI/5Bs0j244N+ +rulsboxJNk+RsdJbDx68KPlp4TmjyhKh2gEfe7teRu2O2kgBNH+elKGhza9UQMlL +Gnkn9klC0vaD7JKWCh9EONn1qk4xhw5rlJzvMSffuk9rq+/omBZ5jbsaS2Cwe2/C +mOW2PlsDueyeUwH59KTqHYq1KJ6M/GMJoRSNv2UoyWDzBshPtSjdE03Y5KcGBtjk +j7KE4eyzPlFEVGe2jsqN8jRCWMh8xPEgKfsLa2Hn/C86/M2/shREx2lapnaVmx5G +LI5kjT+hHz7rqegfX+LqLBFntbjzkUHD8p/VcnaLJFAjtPfGCLI57FJJY1JdLcea +UDp38QNWbFpzMaJwMk1En2C5jFt3H55tSPyJp2N8aR8ha2huVLPlMUDy38xFEqQj +ogTl+SQM1zM8V/gRn+W3s+6i0pt7nfPCoOs2T2jGmRDwGk1buVXH9pWWP9Yl2htb +7lNLeeSp3M4HHXSQaLsq+iiyHZzYNqWMcX0nhtEUvXd16qURs92js0kldjsgJKAP +/9mJAjgEEwEIACIFAlBT0lYCGy8GCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJ +ENsiGmkAAAARySEQAKsOl4Si5Ud2dev330FSp7n0Xoe6ac6c2s7mdsfVzRabddlp ++8sbo0r5nM4IgyAcTbizyA1u6a18ESKBWszbwUAe/sm2EDL7zwsDm8HUZLEHbUX6 +tgd/bPjkAnFaskJhYKDFnYsW+0D8toz4/aquuQN98a7RUnbbWjwe8c9miEuctn3/ +I8cBCbgMtA9T8HDzP38dlb5tGMAdkCWcAqBn6fxMVy7NXFsgKerd6dnkVlZbJcRo +TRFRCn1cbWW3sTpKFtN3GB4x8/0dbaaG/UbaAxZhVEcfdy++PLud2qXf1Hyi1/kD +kIMctegHljRJPou5BHOSPdDlgtjcOSJxR9VP6oIQrGiNkZY/gMTJHurO/etEznfq +87nshweR3P+WP8I/S5QnE+w4aSL2sQpgYt1/ErVHlir/7ZpAd15uWcEqTHA1Q3Ad +jGCB9Ny1PmCIzStdj2NjMd98cKLVj3xxUnUG6V4Mjc0OIMErseRDMv0FndcHcyZZ +u/84qqIujhQCmnoH3Mdhi80+Hn7b5Xuw6G4Skbk9Ko5wVXyAfTmATirfe64odZEb +tqgJX2dkQBHzpMqrL8Tr5S6UY/ofBxqVcZZvP6UlnuuzJ67nfllIZEhcvlUOT8rb +i4PUo/XWKqb43SFis50slwzKd9xEnV7j0o6wxkhkT3KR7GXzz7TeQuAygluruQIN +BFBT04gBEACyRYUzdRvlCkr2WrB7kYIQr9xUwUboTJhHnqtUgzgny2rfHThmc/bl +GpuiRXrLtnarjbrxBnsfyYnBHCrX1oRU1pfI8eGXLkrLF698PzuGvnuVn11ZMlFo +gHpx+pw3aTtExpDhzWDsxaYCPNMgkEMGrkZQGEQ6XzFkvgcMfVTT1uQj1CGj419s +rASZ+m0BXG3S7nFL9mVcKSABnSAPVptFxZUr9UPnQ7X17LLkVNmCpstP1Gri4LOh +V53AT61sWPUtdUj4jKm1hYBKF5EmJrf6IF50qlUt5ehreMJ7TvHDKpu43t/8zOtQ +jElEJL5fEBbpGJX9YVYH+pYxDWJsNVmSkLNYosrJTRDruPUKlYm/naPDqFvR035o +tkTPrFiVkkqvDUvLgZl4it+DTRir9cuBfTwb8NYa2jJFesrXm2xYbrzmKaVg4AXc +u43kQg/Rk1lW3OQYt0/a5AdfMFYGk+Qa1lIvbibONYkASgeSxkDHQ6CfK5vxjp1j +eweEphoT193SCCx3nK7ip6WhX9dzPs0JKmCa1tMkTnYxe/xPRRsezd93S4E2vTOP +bN2uKPEUbctZFX1apRwWDoxRFuNDRSjqikzyEsVEiLRJ0jp99vcX3dpVVGqeZK68 +QYGFF/UK8nXn1S2QZxB/i9YksZNx6Px95ZIFL2SgmnaosqScm9qUewARAQABiQIf +BBgBCAAJBQJQU9OIAhsMAAoJENsiGmkAAAAR2uAP/RQilUyBaiFUvOjV0t6pzLgZ +8xuWLqK+51SHRfH92xxV53hOcPchFbl4aM5t6uM7INo8tV6fBDSQGxbpL7/HtZzS +JyHVLX24L3dOs0ryseZSI0uKlWHfODTF/Wu0IUYe0sSe4QtkT2bnJHGfa02O1yfU +gX+jMTAyrt/hcbExJZ0ykeXPbLHtp7ms+eRjnHTY3DiZMNPqK4xPlWEc+DvrKyq3 +yKnH2wKgrMUL+dKr9lLv7/Es24sxsnAhwRwJUsP5WYmD0Be/r8AmSibI7FkO0OI3 +DjUUKDE35Omm+mwEgXuaoK+5hStM213XNzSrEEt5wAw21Adppin+38VVLYALNosF +tCdDIh6WHlmA2iSFhYH8oUnrESxsF2Nni60MMfWvpKAWLOhnTMSCjwxFUjnqltwD +hgHktnxi6GUJT+mhits0OqKP/zJtiUM15bLF2mlWVxiCj9R/o+h4/pO2WcImNKAU +OgMQfsLPOH1oasEEzRHlxCPXiaD8KocyFxdRxuz7CZqA9XfC8lGFyld43lKIOSzJ +j+9rmqBB8XuDu+eX4WbObGSbGUCv9LfBeKbjfXyg94stLxxsZvPysv2gOR7dclzt +iF4iAeqQsCgsHVxWnPP5TO8tysNWZi818nu7irxldNL6VoionLQ4YDtm5QS/Eh7b +gZp+x8Yi4yc+nrIcmbB1 +=SX54 +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQINBEoIZDEBEAD5MrFJC9Hi4mXZ97HlFotHIrkMURIFkvl17XEuJ8Jh3hlzJD/q +K1ByzQGHozzVcfbg4lP4lzqfdps6WCbusqtVYcTF61jjFhYo398lBgpKHUBbsEPC +SfYp5WkoICa824zcmWO9qYizGqkpd1C6gdQtK6ZaGjLx3xt08M9oVZqj+E2SsPHz +WaYLugCwCKhlbVTaP28OGy7tBRY6hcLtiZc2CNpr0YjZ53B7Ubs0BVYQutYxho7l +u0ChE9zNesy4KaIOumXZjTUrMCLpxF/01M1tfzXArMMLAqx3F1M6QIuy18F1zJ2W +LlkRwJi47NTiJ6jwLUYKBTN9T3nmy0oNAvv5v4B8nWgZAOjjDC2pFoVJa1O3K8Ab +vSRA3L/N+80MxM9VK5bw451pDqNhxn5q0yeS+RBagmOb2PZSMIuw9adooMurAfDJ +hsxqp3KaCTdYX5p+mCczNkoKMRUQiVUi250426o69IAmtpVi1q+MV0qWLl2tSvx4 +I4iph9XAhho7ycb4jziWf46ZljnhoGn54EU5GEqH0huakYcXK7XoNxU0XzS/eQuD +qVy2NH2C945h3LAtMo4zr49VZXjNnFn++zZqCUHASDX6Y3h8uMpzIY6Eslu2S85W +gpb+V4M5RvKPeuEJTuzxJOOW/B3nyoWFQfN6SXWGVW618dLEmFmQnyLBwwARAQAB +tCxKdWxpZW4gQ3Jpc3RhdSA8anVsaWVuLmNyaXN0YXVAZW5zLWx5b24ub3JnPokC +PAQTAQgAJgIbAwIeAQIXgAYLCQgHAwIGFQoJCAsCBRYCAwEABQJK4Fj7AhkBAAoJ +EDEBgAUJBeQMu/wP/jmGDVXrXZXtNJ7Ov94iDBwcEBlLoNHUyH4FWQG05eW3CqT0 +w9ZOvZEQ/kKlSjpdZzPiYMjgunl7D78aoL4Il2qKyirlT+trt+v79rl5VkD2xJx/ +gi7iN34VJQ50iGBxyxPicUjkXUO17kpJ2/uw/7/pNG0buBDbLGPwYPQFyV3UVOv7 +R8chvmAqtujck1961gRffKPihiv6sj4zjGs8ukmLCO3EgLzpz3shBfJyq6GNMNmy +aVX7hAcwhErKCrPeGVlzFpCLbtqIxpq6uPfxrDI20LhQkQ9NPD/4t1qkvenRCY77 +wqoiUBSYlpsKND2I2mywOE2FVMj34aBKvn96YsZWlj3Rkc++JvzdZQy09WQIUXt5 +fqEoQI6J+3l4gaQaFHCt0EWZhSCN/uNDP4sEXmX+MQP6sybU7UU18cEDFy/Op0z0 +2+2Csf3ewVPPcP8Dw6JZJjbiFH6+rQmHgBdz2kValcWwoEgD2oESyibGxI08XrJL +nonfZSDdhrfJ31q7F+qUnX+ukxVGo8Z+VdlZCyqacNrFbKPWSeM82vXucvgxeWIK +kjMiJsLVtitK117u3p5FkStKkzwqjmg6DM7NTyNExA/AyPmeFeGZU1iWwcIsT/UI +Sn7A8IWQk7lPJ5aJs7c+FCTl169FOkyhK4Xu8dWcXdyXg8ReeWt5qsynnukRtCRK +dWxpZW4gQ3Jpc3RhdSA8amNyaXN0YXVAZGViaWFuLm9yZz6JAjYEEwEIACAFAkos +Iv4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAxAYAFCQXkDIxHEACa0xs8 +cH59Q8MpHuWu+c2CVksTDw0O4t88inhtc9Ut66eN8uSEf/DZM/VgCyj5kYbGHIdA +cSAQHOWXa9GLeI/ZJ+LuQ53I4xw5xT5fAf8vIPbYJ+4fsHouTVY4pp59HQPs87d3 +VdGcOcPsTw3p5mypZfNX8tq6DD9i3pZpK7t2wzvSgQkJs0f4IliUsurxG2aiDNwS +Og1pUBQWdcuriLZRV7aBWJaLO7lCWEpxMiTFRODsMzjI28kRxU7MLlSwL0PlhhJc +XMTxQJVRJnLMW92btoRL5LBn8FHCFCj3yFj1GX1yZVgmzCUOrHu4xpRBR/cRtxgQ +Znh/aG9EttjQsB5byvSuzC2vZ9O+/l6mLi9zmhtIxxRGRn+ATYpXr/kddff9k8AH +WPE3N/jrXnIEC9+2HKolyRdK6mxfwOrq5Je3C+C+0vFtbZFxpP76LI7O9p+t4T77 +KuufxDNMix9LvPxQpAuUJkbWwiIO8T4ygYMzlIDZswi5Tyl7BMQ4IheJtKEyzuFp +DN6FvLpwh5gj6RM+i/IvCIExStcW+ySUZcuMItIELTsQlSycatO0OQi+3rXbBTsC +QidP/uL6cmxxTvBAs/XPK7XYdhl7P/9LvBSSNb1ZhHN2D3qfDXTwYWt8sZe3G7cj +2IrPvxBROvaoJCF1OriG4cXUTbsCWwe28rAbUbkCDQRKCGXUEAgAvfSSNQmYedmB +2KL6LqTHmt98Vs2fC6cJQ+uZtRf9lfQWYm5ssSTHN53czQNqMTlEL1vRILJb+uDk +B1nAFT5zy6JX/JmD6QXpUonx+YzTvL9ZI0qIF91hb4qPcNt4Nh+6bRfA7KLT7lWE +Rudr2MzkD3lb0Nubkq4+QmYhog8UhvUxfWUA/ubwktakKiYgveVKRb/ONTOIpZa+ +TAeZOsfMeDggTFMqOaFTxISV63O8p8mi8a7O/qM+rsPqlTjEVf/0Y3tILhEIoEfC +n2L4mU4vhVrXG6/lZ7sM+O8WoqlhQH5gVpjPFR66G0mQdGbvY0jdWS+wtVDGImkO +MIExpGAlkwADBggAioH1Z7OjuZNBb2Pf/ik3l68ouYqMu3qaxZhp2wYJGR6ndxKh +/0oTJbMrnYuHMc10PBiniqG6l/m/m2/ULyHl4yixZAHaG5tilfG6k1BgUMEfNvof +v9mHTm+iHrwU58PiZYaKlIfqPcnLc7oxsCiO/7oAn/NCUkB8EfFXqvsrgF6/DWF1 +LgIAvO9CvGuoBDGo7VU8w2YoB3ach5+nljdoQPb23K4TyE1zbpFQ8niEd8ULv4Gn +gQGrYWHS5O5RNsT8/Z2Rgk6I6lTssX8eizmVH9nRK/MlU3ulHG+uCd1JSZWVM6cD +E6NlTBMTZ9dA39c8GCQmctMKm1vmgIXm8OVI/4kCHwQYAQgACQUCSghl1AIbDAAK +CRAxAYAFCQXkDIA9D/9VLt9q9k71Z+mtpuVJUpVAnxWTuHjUmQ54dl7PFMeAU9KP +qAdBgoeE0NsZEC7aq/xZ17IH+fjbvLi40mMjqlv35fFjf9hlSHfPT6G4iOZqBCzn +egU1uqkrTj7Pm2STCgSWyM9jnRlfueQFSr7QdbJwklXlnhPY2XpBs0Wzbqp9dbTS +R47hR3CkjS3AUbsULb/ea+gP3mzCAytGExcGKghFipLQR5QLUDaJqxHDQBZK9K7N ++hccUdWArFycsoczS8IkrQ9+0qErjT8CdGm/laiaWvINYetlrRVrogI4YyuqUHyy +HjppPl6ypPX/zZdX32jFXvM4UmjlUlCojyIWh/WVNaZwSm6CC5M28w7iq5RzRw5f +0rdXGr8pQHgXKOTQgFOFs73SkmnQFK4sFNsTgTkSvyLlHsqAiXOXFhqYw1w4ozGT +sEcIdFCQuzEDHn57VRxWQhRd1npwUzlyFBszOGnbDLgXey1gMqzbpnupSU39FeWZ +Lka+Fmt9fn79alEg9K3xaCMfiIrQRSLqVlhr57S1OdJOy1z4jRbT2hjt5LKXTAUJ +gksZFyWOfV82jHBeu+O0xJNU/9xvZsJF4TORrRWRO1o1gkF7x/oBk7yilh+mSq1P +DNOWZJQhmuWMtbOUL2WMkKRPDwJrcbwpt3bc6aZCeAH1SSRLEe9Y+2uLeneTMA== +=+xMJ +-----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +mQGiBEDLnMIRBACNlsJkPRfH7RMOn7nirvYN5StKVvwdJa2MFUM3sjoaA11nW+Zw +Yxion4GkbIOtz25R29TcwuAaK1UWhy1Rz6aIOOMOzBeUNGGCvRXF76rKHBHOdSJw +AXEvNa/9rKOIaPL7PBN7Lb4CmrjEbA9gKYtZQD9qQSKcAwyyxszkW1e7TwCg7MbV +Bq5MWlATjOAzXLoSpgyENwMD/jPz53KmwUobbqri2pFhozacl5N93cy7b3pwpTZY +fM50cXVSSshYpqdCr5AoWG/DXNGRixv1DnBKOI2Cv6YAQLntcATHxR8ssemOZHRv +7D0hvWwC3o6GSKdg0rSOtRHfDhEL4IFVmPLZaXIRDZ0/ancrCuQPdZ9mzCi/LQmV +noTeA/kB73zJMYH7Z0TSKv490AMWQHbKVvos8+tXxATlq0Otib+s55LXQocSPjgp +GR5qKzqTn9elg2dyo4GYeAYvGBmhQtBdeYo1rVq2pC6HCzMG79zozL9O25SnDLpj +WoqJB6qHBAd9tlTHzkRxv1Fqr4jfIupNborXbhR25tiYOm72irQcQWRhbSBKYWNr +c29uIDxhamF4QG53bmsubmV0PohhBBMRAgAhAhsDBgsJCAcDAgMVAgMDFgIBAh4B +AheABQJEZNYGAhkBAAoJEFuKLVCg7NDTlj8AoL9RgTs++HaD5w5lYARcE+OB+0Jg +AKDZBhJhVgOsEjeg7atMglFR7s36mrQeQWRhbSBKYWNrc29uIDxhamF4QHJlZGhh +dC5jb20+iGAEExECACAFAkfENSICGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAK +CRBbii1QoOzQ0x6CAJ0fevUkaaBcTzKa0lTgfNFQ0E+JwgCfaWy44eNKttn4WWEZ +CTGF+e+zraS0IEFkYW0gSmFja3NvbiA8YWpheEBlbmdyLnNnaS5jb20+iF4EExEC +AB4FAkHB1gECGwMGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQW4otUKDs0NNTOgCg +lu1MOCbysvn68WReXz+v02+y2VkAoL12gktA0TFZnPBk3cweEAwCkUlXtCZBZGFt +IEphY2tzb24gPGFqYXhAd2lsZG9wZW5zb3VyY2UuY29tPoheBBMRAgAeBQJBriSn +AhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEFuKLVCg7NDTOe4AnRUJ6FqQLaoY +XWCToQdl/Gry4UNZAJ97YYHMt1FIo1TLCWWozSiG+VtTq7QnQWRhbSBKYWNrc29u +IDxhamF4QGJlbnplZHJpbmUubnduay5uZXQ+iF4EExECAB4FAkRk1eACGwMGCwkI +BwMCAxUCAwMWAgECHgECF4AACgkQW4otUKDs0NN+fwCg2cPLDbAb07gMWBETKTRm +sj34FsAAn0SQ4kuqs9Ms0ZRKDqNQ1YTMwyEHuQINBEDLnNAQCACrbu13VZsigsM6 +8MzfdGQ4x/acO4Vd+Dg/aFj3EhPfXZHRauuJ7gQtWc9Mk2ghTjbqEXj0JILbif95 +IyShdC/fxEYiFybRODR6FHlXj6BFCxZFfqi4mOuaGQ4BeB57g/gW+FSoIPzYU4IY +85KD62qeS37zQEBAAK+mCEboUGfPT0wHrkFtkTObjOg7UTjpBp5/HknUREYo8mLo +WBv7CDlApicmXoqnKfAcFaNY2YLMjklwFHh2i2+6dPbkdWSEpuZhkxIQ/8JlYS6A +2g5DMKcNdmqr4Z6xjk8Fj1SO7ILc9EtR+ACqkqkmlU3m4AUHjdR/4kk7tEJ5DytP +c95JcuJnAAMFB/9KWUqJbdeHs47LJBksZ6tnHArcSG653e9uejtNt5xquJIz2wxb +exMV9Bkzwu9v/A8Vo7px7Bkhh++sBrgpGD4z5Jr+PaWOsw5qrO9OVVgzXkUf2QoD +gw4Hh8m9jpx1s6tNasPsy12OGMJ4a5a1GCGg8F7sPlWLBd491viavDyOWYkKozLH +hXwKlGOec0sCRGeHTiqPinxs29PXaTE7Dl/f2dYgiNzTSWetSx7Sv1H9EX4qxPgc +smdRuGV7k7dIw/J02rcI/Ol4OUORRMY2cgJnb5mNxIxTgTGJysm+MjfPrZnOeDVK +TroAYtas/uirqiNzk7fdIdUdgbOhsAl9n3QZiEYEGBECAAYFAkDLnNAACgkQW4ot +UKDs0NP3CACfS1DKwgN/rB7Ib+RJiuK0F/BQoEYAoOhr0VXCT5dP0Yr1kIad7njC +GBF1 +=bYOv +-----END PGP PUBLIC KEY BLOCK----- --- xorg-server-1.18.4.orig/debian/watch +++ xorg-server-1.18.4/debian/watch @@ -0,0 +1,4 @@ +#git=git://anongit.freedesktop.org/xorg/xserver +version=3 +opts="pgpsigurlmangle=s/$/.sig/" \ +http://xorg.freedesktop.org/releases/individual/xserver/ xorg-server-(.*)\.tar\.gz --- xorg-server-1.18.4.orig/debian/xdmx-tools.install +++ xorg-server-1.18.4/debian/xdmx-tools.install @@ -0,0 +1,6 @@ +main/usr/bin/dmx* usr/bin +main/usr/bin/vdltodmx usr/bin +main/usr/bin/xdmxconfig usr/bin +main/usr/share/man/man1/vdltodmx.1 usr/share/man/man1 +main/usr/share/man/man1/dmxtodmx.1 usr/share/man/man1 +main/usr/share/man/man1/xdmxconfig.1 usr/share/man/man1 --- xorg-server-1.18.4.orig/debian/xdmx.install +++ xorg-server-1.18.4/debian/xdmx.install @@ -0,0 +1,2 @@ +main/usr/bin/Xdmx usr/bin +main/usr/share/man/man1/Xdmx.1 usr/share/man/man1 --- xorg-server-1.18.4.orig/debian/xmir.install +++ xorg-server-1.18.4/debian/xmir.install @@ -0,0 +1 @@ +main/usr/bin/Xmir usr/bin --- xorg-server-1.18.4.orig/debian/xnest.install +++ xorg-server-1.18.4/debian/xnest.install @@ -0,0 +1,2 @@ +main/usr/bin/Xnest usr/bin +main/usr/share/man/man1/Xnest.1 usr/share/man/man1 --- xorg-server-1.18.4.orig/debian/xorg-server-source.install +++ xorg-server-1.18.4/debian/xorg-server-source.install @@ -0,0 +1 @@ +build-source/xorg-server.tar.* usr/src --- xorg-server-1.18.4.orig/debian/xserver-common.install +++ xorg-server-1.18.4/debian/xserver-common.install @@ -0,0 +1,3 @@ +main/usr/lib/xorg/protocol.txt usr/lib/xorg +main/usr/share/man/man1/Xserver.1 usr/share/man/man1 +main/var/lib/xkb/README.compiled var/lib/xkb --- xorg-server-1.18.4.orig/debian/xserver-xephyr.docs +++ xorg-server-1.18.4/debian/xserver-xephyr.docs @@ -0,0 +1 @@ +hw/kdrive/ephyr/README --- xorg-server-1.18.4.orig/debian/xserver-xephyr.install +++ xorg-server-1.18.4/debian/xserver-xephyr.install @@ -0,0 +1,2 @@ +main/usr/bin/Xephyr usr/bin +main/usr/share/man/man1/Xephyr.1 usr/share/man/man1 --- xorg-server-1.18.4.orig/debian/xserver-xorg-core-udeb.install +++ xorg-server-1.18.4/debian/xserver-xorg-core-udeb.install @@ -0,0 +1,7 @@ +# from xserver-common: +udeb/usr/lib/xorg/protocol.txt usr/lib/xorg + +# from xserver-xorg-core: +udeb/usr/lib/xorg/modules usr/lib/xorg +udeb/usr/bin/Xorg usr/bin +udeb/usr/share/X11/xorg.conf.d usr/share/X11/ --- xorg-server-1.18.4.orig/debian/xserver-xorg-core.NEWS +++ xorg-server-1.18.4/debian/xserver-xorg-core.NEWS @@ -0,0 +1,31 @@ +xorg-server (2:1.18.3-2) unstable; urgency=medium + + X now defaults to using built-in modesetting video driver on Intel + hardware which is "4th gen GMA" and newer, so roughly speaking on hardware + from 2007 and up. If this triggers new bugs on your hw, please file them + against the xserver. + + Continuing to use the -intel driver is possible by dropping the template + xorg.conf to /etc/X11: + + # cp /usr/share/doc/xserver-xorg-video-intel/xorg.conf /etc/X11 + + -- Timo Aaltonen Tue, 19 Jul 2016 04:28:05 +0300 + +xorg-server (2:1.17.3-1) unstable; urgency=medium + + The Xorg server is no longer setuid root by default. This change reduces the + risk of privilege escalation due to X server bugs, but has some side effects: + + * it relies on logind and libpam-systemd + * it relies on a kernel video driver (so the userspace component doesn't + touch the hardware directly) + * it needs X to run on the virtual console (VT) it was started from + * it changes the location for storing the Xorg log from /var/log/ to + ~/.local/share/xorg/ + + On systems where those are not available, the new xserver-xorg-legacy package + is needed to allow X to run with elevated privileges. See the + Xwrapper.config(5) manual page for configuration details. + + -- Julien Cristau Tue, 27 Oct 2015 22:54:11 +0000 --- xorg-server-1.18.4.orig/debian/xserver-xorg-core.bug.script +++ xorg-server-1.18.4/debian/xserver-xorg-core.bug.script @@ -0,0 +1,146 @@ +#!/bin/sh + +PATH="/sbin:$PATH" +CONFIG_DIR=/etc/X11 +SERVER_BINARY=/usr/bin/Xorg +SERVER_SYMLINK="$CONFIG_DIR/X" +XORGCONFIG="$CONFIG_DIR/xorg.conf" +XORGCONFIG_DIR="$CONFIG_DIR/xorg.conf.d" +CONFIG_AUX_DIR=/var/lib/x11 +X11R6_LIBS=/usr/X11R6/lib +LOCAL_LIBS=/usr/local/lib + +# Pretty echo, underline the specified string: +pecho() { + echo "$@" + echo "$@"|sed 's/./-/g' +} + +exec >&3 + +if [ -e "$SERVER_SYMLINK" ]; then + pecho "X server symlink status:" + ls -dl "$SERVER_SYMLINK" + ls -dl "$(readlink "$SERVER_SYMLINK")" +else + echo "$SERVER_SYMLINK does not exist." +fi + +if ! [ -L "$SERVER_SYMLINK" ]; then + echo "$SERVER_SYMLINK is not a symlink." +fi + +if ! [ -x "$SERVER_SYMLINK" ]; then + echo "$SERVER_SYMLINK is not executable." +fi + +echo + +if ldd "$SERVER_BINARY" | grep -qs "$LOCAL_LIBS"; then + pecho "The server is using local libraries!" + ldd "$SERVER_BINARY" | grep "$LOCAL_LIBS" + echo +fi + +if ldd "$SERVER_BINARY" | grep -qs "$X11R6_LIBS"; then + pecho "The server is using obsolete libraries!" + ldd "$SERVER_BINARY" | grep "$X11R6_LIBS" + echo +fi + +if dpkg-divert --list | grep -qs -i libgl; then + pecho "Diversions concerning libGL are in place" + dpkg-divert --list | grep -i libgl + echo +fi + +if which lspci > /dev/null 2>&1; then + pecho "VGA-compatible devices on PCI bus:" + LC_ALL=C lspci -nn | grep 'VGA compatible controller' +else + echo "The lspci command was not found; not including PCI data." +fi + +echo + +if [ -e "$XORGCONFIG" ]; then + pecho "Xorg X server configuration file status:" + ls -dl "$XORGCONFIG" + echo + pecho "Contents of $XORGCONFIG:" + iconv -c -t ascii "$XORGCONFIG" +else + echo "$XORGCONFIG does not exist." +fi + +echo + +if [ -d "$XORGCONFIG_DIR" ]; then + pecho "Contents of $XORGCONFIG_DIR:" + ls -l "$XORGCONFIG_DIR" +else + echo "$XORGCONFIG_DIR does not exist." +fi + +echo + +KMS_CONFS_DIR=/etc/modprobe.d +KMS_CONFS=$(ls $KMS_CONFS_DIR/*-kms.conf 2>/dev/null) + +if [ -n "$KMS_CONFS" ]; then + pecho "KMS configuration files:" + for CONF in $KMS_CONFS; do + echo "$CONF:" + # Indent, and get rid of empty lines: + sed 's/^/ /' < "$CONF"|egrep -v '^\s*$' + done +else + echo "$KMS_CONFS_DIR contains no KMS configuration files." +fi + +echo + +KERNEL_VERSION=/proc/version + +if [ -e "$KERNEL_VERSION" ]; then + pecho "Kernel version ($KERNEL_VERSION):" + cat /proc/version +else + echo "No kernel version found (missing $KERNEL_VERSION)." +fi + +echo + +XORG_LOGS=$(ls -dt /var/log/Xorg.*.log 2>/dev/null) + +if [ -n "$XORG_LOGS" ]; then + pecho "Xorg X server log files on system:" + ls -dlrt /var/log/Xorg.*.log 2>/dev/null + echo + for LOG in $XORG_LOGS; do + if [ -f "$LOG" ]; then + pecho "Contents of most recent Xorg X server log file ($LOG):" + cat "$LOG" + # the log files are large; only show the most recent + break + fi + done +else + echo "No Xorg X server log files found." +fi + +echo + +if [ -x /sbin/udevadm ]; then + pecho "udev information:" + /sbin/udevadm info --export-db | awk -F '\n' -v RS='\n\n' '/E: ID_INPUT/ { print; print "" }' + echo +fi + +if [ -x /bin/dmesg ]; then + pecho "DRM Information from dmesg:" + dmesg | egrep -i 'drm|agp' + echo +fi + +# vim:set ai et sts=4 sw=4 tw=0: --- xorg-server-1.18.4.orig/debian/xserver-xorg-core.install +++ xorg-server-1.18.4/debian/xserver-xorg-core.install @@ -0,0 +1,13 @@ +main/usr/lib/xorg/modules usr/lib/xorg +main/usr/bin/Xorg usr/bin +main/usr/bin/X usr/bin +main/usr/share/man/man1/Xorg.1 usr/share/man/man1 +main/usr/share/man/man4 usr/share/man/ +main/usr/share/man/man5/xorg.conf.5 usr/share/man/man5 +main/usr/share/man/man5/xorg.conf.d.5 usr/share/man/man5 +main/usr/bin/cvt usr/bin +main/usr/bin/gtf usr/bin +main/usr/share/man/man1/cvt.1 usr/share/man/man1 +main/usr/share/man/man1/gtf.1 usr/share/man/man1 +main/usr/share/X11/xorg.conf.d usr/share/X11/ +main/usr/lib/xorg/Xorg usr/lib/xorg --- xorg-server-1.18.4.orig/debian/xserver-xorg-core.lintian-overrides +++ xorg-server-1.18.4/debian/xserver-xorg-core.lintian-overrides @@ -0,0 +1,3 @@ +# That's OK, they were virtual packages: +breaks-without-version xserver-xorg-input-7 +breaks-without-version xserver-xorg-video-6 --- xorg-server-1.18.4.orig/debian/xserver-xorg-core.postrm +++ xorg-server-1.18.4/debian/xserver-xorg-core.postrm @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +case "$1" in +purge) + rm /var/log/Xorg.*.log || true + rm /var/log/Xorg.*.log.old || true + ;; +esac + +#DEBHELPER# + +# vim:set ai et sts=2 sw=2 tw=0: --- xorg-server-1.18.4.orig/debian/xserver-xorg-dev.install +++ xorg-server-1.18.4/debian/xserver-xorg-dev.install @@ -0,0 +1,6 @@ +main/usr/include/xorg usr/include +main/usr/lib/pkgconfig/xorg-server.pc usr/lib/pkgconfig +main/usr/share/aclocal usr/share + +../../debian/local/dh_xsf_substvars usr/bin +../../debian/local/xsf.pm /usr/share/perl5/Debian/Debhelper/Sequence/ --- xorg-server-1.18.4.orig/debian/xserver-xorg-legacy.config +++ xorg-server-1.18.4/debian/xserver-xorg-legacy.config @@ -0,0 +1,87 @@ +#!/bin/sh +# Debian x11-common package configuration script +# Copyright 2000--2003 Branden Robinson. +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . + +set -e + +# source debconf library +. /usr/share/debconf/confmodule + +THIS_PACKAGE=xserver-xorg-legacy +THIS_SCRIPT=config + +CONFIG_DIR=/etc/X11 +XWRAPPER_CONFIG="$CONFIG_DIR/Xwrapper.config" + +allowed_users_english_to_actual () { + case "$1" in + "Root Only") + echo "rootonly" + ;; + "Console Users Only") + echo "console" + ;; + "Anybody") + echo "anybody" + ;; + *) + # garbage input; return default + echo "allowed_users_english_to_actual(): unrecognized input \"$1\";" \ + "using default" >&2 + echo "console" + ;; + esac +} + +allowed_users_actual_to_english () { + case "$1" in + "rootonly") + echo "Root Only" + ;; + "console") + echo "Console Users Only" + ;; + "anybody") + echo "Anybody" + ;; + *) + # garbage input; return default + echo "allowed_users_actual_to_english(): unrecognized input \"$1\";" \ + "using default" >&2 + echo "Console Users Only" + ;; + esac +} + +CURRENT_ALLOWED_USERS= + +# scan the X wrapper config file for existing settings, if it exists +if [ -e "$XWRAPPER_CONFIG" ]; then + if MATCHES=$(grep "^allowed_users=.\+" "$XWRAPPER_CONFIG"); then + CURRENT_ALLOWED_USERS=$(echo "${MATCHES##*=}" | head -n 1) + fi +fi + +if [ -n "$CURRENT_ALLOWED_USERS" ]; then + echo "setting xserver-xorg-legacy/xwrapper/allowed_users from configuration" \ + "file" >&2 + db_set xserver-xorg-legacy/xwrapper/allowed_users \ + $(allowed_users_actual_to_english \ + "$CURRENT_ALLOWED_USERS") +fi + +db_input low xserver-xorg-legacy/xwrapper/allowed_users || test $? = 30 +db_go + +RET= +if db_get xserver-xorg-legacy/xwrapper/allowed_users; then + if [ -n "$RET" ]; then + db_set xserver-xorg-legacy/xwrapper/actual_allowed_users \ + $(allowed_users_english_to_actual "$RET") + fi +fi +exit 0 + +# vim:set ai et sts=2 sw=2 tw=0: --- xorg-server-1.18.4.orig/debian/xserver-xorg-legacy.install +++ xorg-server-1.18.4/debian/xserver-xorg-legacy.install @@ -0,0 +1,3 @@ +main/usr/lib/xorg/Xorg.wrap usr/lib/xorg +main/usr/share/man/man1/Xorg.wrap.1 usr/share/man/man1 +main/usr/share/man/man5/Xwrapper.config.5 usr/share/man/man5 --- xorg-server-1.18.4.orig/debian/xserver-xorg-legacy.postinst +++ xorg-server-1.18.4/debian/xserver-xorg-legacy.postinst @@ -0,0 +1,77 @@ +#!/bin/sh +# Debian xserver-xorg-legacy package post-installation script +# Copyright 1998--2001, 2003 Branden Robinson. +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . +# Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava. + +set -e + +. /usr/share/debconf/confmodule + +THIS_PACKAGE=xserver-xorg-legacy +THIS_SCRIPT=postinst +CONFIG_DIR=/etc/X11 +XWRAPPER_CONFIG="$CONFIG_DIR/Xwrapper.config" +CONFIG_AUX_DIR=/var/lib/x11 +XWRAPPER_CONFIG_CHECKSUM_BASE="${XWRAPPER_CONFIG##*/}.md5sum" +XWRAPPER_CONFIG_CHECKSUM="$CONFIG_AUX_DIR/$XWRAPPER_CONFIG_CHECKSUM_BASE" +XWRAPPER_CONFIG_ROSTER_BASE="${XWRAPPER_CONFIG##*/}.roster" +XWRAPPER_CONFIG_ROSTER="$CONFIG_AUX_DIR/$XWRAPPER_CONFIG_ROSTER_BASE" + +# only mess with config file it exists; otherwise, assume that's the way the +# user wants it, but only if upgrading +if [ -e "$XWRAPPER_CONFIG" ] || [ -z "$UPGRADE" ]; then + ALLOWED_USERS= + if db_get xserver-xorg-legacy/xwrapper/actual_allowed_users; then + ALLOWED_USERS="$RET" + fi + if [ -n "$ALLOWED_USERS" ]; then + NEW_XWRAPPER_CONFIG=$(tempfile -m 644) + if ! [ -e "$XWRAPPER_CONFIG" ]; then + cat >>"$NEW_XWRAPPER_CONFIG" << EOF +# Xwrapper.config (Debian X Window System server wrapper configuration file) +# +# This file was generated by the post-installation script of the +# xserver-xorg-legacy package using values from the debconf database. +# +# See the Xwrapper.config(5) manual page for more information. +# +# This file is automatically updated on upgrades of the xserver-xorg-legacy +# package *only* if it has not been modified since the last upgrade of that +# package. +# +# If you have edited this file but would like it to be automatically updated +# again, run the following command as root: +# dpkg-reconfigure xserver-xorg-legacy +allowed_users=$ALLOWED_USERS +EOF + else + sed -e '/^allowed_users.*/d' < "$XWRAPPER_CONFIG" > "$NEW_XWRAPPER_CONFIG" + echo "allowed_users=$ALLOWED_USERS" >> "$NEW_XWRAPPER_CONFIG" + fi + if ! cmp -s "$XWRAPPER_CONFIG" "$NEW_XWRAPPER_CONFIG"; then + cp "$NEW_XWRAPPER_CONFIG" "$XWRAPPER_CONFIG.dpkg-new" + mv "$XWRAPPER_CONFIG.dpkg-new" "$XWRAPPER_CONFIG" + fi + rm -f "$NEW_XWRAPPER_CONFIG" + else + echo "not updating $XWRAPPER_CONFIG; problems communicating" \ + "with debconf database" >&2 + fi +else + echo "not updating $XWRAPPER_CONFIG; file does not exist" >&2 +fi + +# get rid of obsolete X server wrapper config roster and checksum +if dpkg --compare-versions "$2" lt-nl 1:7.6~3; then + rm -f "$XWRAPPER_CONFIG_ROSTER" + rm -f "$XWRAPPER_CONFIG_CHECKSUM" + rmdir "$CONFIG_AUX_DIR" 2>/dev/null || : +fi + +#DEBHELPER# + +exit 0 + +# vim:set ai et sts=2 sw=2 tw=80: --- xorg-server-1.18.4.orig/debian/xserver-xorg-legacy.postrm +++ xorg-server-1.18.4/debian/xserver-xorg-legacy.postrm @@ -0,0 +1,36 @@ +#!/bin/sh +# Debian xserver-xorg-legacy package post-removal script +# Copyright 1998--2001, 2003 Branden Robinson. +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . +# Acknowlegements to Stephen Early, Mark Eichin, and Manoj Srivastava. + + +set -e + +THIS_PACKAGE=xserver-xorg-legacy +THIS_SCRIPT=postrm +CONFIG_DIR=/etc/X11 +XWRAPPER_CONFIG="$CONFIG_DIR/Xwrapper.config" +CONFIG_AUX_DIR=/var/lib/x11 +XWRAPPER_CONFIG_CHECKSUM="$CONFIG_AUX_DIR/${XWRAPPER_CONFIG##*/}.md5sum" +XWRAPPER_CONFIG_ROSTER="$CONFIG_AUX_DIR/${XWRAPPER_CONFIG##*/}.roster" + +#INCLUDE_SHELL_LIB# + +# clean up non-conffile configuration files and related materials on purge +if [ "$1" = "purge" ]; then + rm -f "$XWRAPPER_CONFIG_ROSTER" + rm -f "$XWRAPPER_CONFIG" + rm -f "$XWRAPPER_CONFIG_CHECKSUM" + + for DIR in "$CONFIG_DIR" "$CONFIG_AUX_DIR"; do + rmdir "$DIR" 2> /dev/null || true + done +fi + +#DEBHELPER# + +exit 0 + +# vim:set ai et sts=2 sw=2 tw=80: --- xorg-server-1.18.4.orig/debian/xserver-xorg-legacy.templates +++ xorg-server-1.18.4/debian/xserver-xorg-legacy.templates @@ -0,0 +1,22 @@ +# These debconf templates have been proofread by the debian-l10n-english +# team. +# +# Please consider interacting with the team if you intend +# to modify the templates or add new templates + +Template: xserver-xorg-legacy/xwrapper/allowed_users +Type: select +__Choices: Root Only, Console Users Only, Anybody +Default: Console Users Only +_Description: Users allowed to start the X server: + Because the X server runs with superuser privileges, it may be unwise to + permit any user to start it, for security reasons. On the other hand, it is + even more unwise to run general-purpose X client programs as root, which is + what may happen if only root is permitted to start the X server. A good + compromise is to permit the X server to be started only by users logged in to + one of the virtual consoles. + +Template: xserver-xorg-legacy/xwrapper/actual_allowed_users +Type: string +Description: for internal use + This template is never shown to the user and does not require translation. --- xorg-server-1.18.4.orig/debian/xvfb.install +++ xorg-server-1.18.4/debian/xvfb.install @@ -0,0 +1,4 @@ +main/usr/bin/Xvfb usr/bin +main/usr/bin/xvfb-run usr/bin +main/usr/share/man/man1/xvfb-run.1 usr/share/man/man1 +main/usr/share/man/man1/Xvfb.1 usr/share/man/man1 --- xorg-server-1.18.4.orig/debian/xwayland.install +++ xorg-server-1.18.4/debian/xwayland.install @@ -0,0 +1 @@ +main/usr/bin/Xwayland usr/bin --- xorg-server-1.18.4.orig/doc/c-extensions +++ xorg-server-1.18.4/doc/c-extensions @@ -0,0 +1,68 @@ +First of all: C89 or better. If you don't have that, port gcc first. + +Use of C language extensions throughout the X server tree +--------------------------------------------------------- + +Optional extensions: +The server will still build if your toolchain does not support these +extensions, although the results may not be optimal. + + * _X_SENTINEL(x): member x of the passed structure must be NULL, e.g.: + void parseOptions(Option *options _X_SENTINEL(0)); + parseOptions("foo", "bar", NULL); /* this is OK */ + parseOptions("foo", "bar", "baz"); /* this is not */ + This definition comes from Xfuncproto.h in the core + protocol headers. + * _X_ATTRIBUTE_PRINTF(x, y): This function has printf-like semantics; + check the format string when built with + -Wformat (gcc) or similar. + * _X_EXPORT: this function should appear in symbol tables. + * _X_HIDDEN: this function should not appear in the _dynamic_ symbol + table. + * _X_INTERNAL: like _X_HIDDEN, but attempt to ensure that this function + is never called from another module. + * _X_INLINE: inline this function if possible (generally obeyed unless + disabling optimisations). + * _X_DEPRECATED: warn on use of this function. + +Mandatory extensions: +The server will not build if your toolchain does not support these extensions. + + * named initialisers: explicitly initialising structure members, e.g.: + struct foo bar = { .baz = quux, .brian = "dog" }; + * variadic macros: macros with a variable number of arguments, e.g.: + #define DebugF(x, ...) /**/ + * interleaved code and declarations: { foo = TRUE; int bar; do_stuff(); } + + +Use of library facilities throughout the X server tree +------------------------------------------------------------- + +Non-OS-dependent code can assume facilities at least as good as +the non-OS-facility parts of POSIX-1.2001. Ideally this would +be C99, but even gcc+glibc doesn't implement that yet. + +Unix-like systems are assumed to be at least as good as UNIX03. + +Note that there are two Windows ports, Cygwin and MinGW: +- Cygwin is more or less like Linux. +- MinGW is more restrictive. Windows does not provide the required +POSIX facilities, so some non-OS-dependent code is stubbed out or +has an alternate implementation if WIN32 is defined. Code that +needs to be portable to Windows should be careful to, well, be portable. + + +Required OS facilities +------------------------------------------------------------- + +Linux systems must be at least 2.4 or later. As a practical matter +though, 2.4 kernels never receive any testing. Use 2.6 already. + +TODO: Solaris. + +TODO: *BSD. + +Windows-dependent code assumes at least NT 5.1. + +OSX support is generally limited to the most recent version. Currently +that means 10.5. --- xorg-server-1.18.4.orig/dri3/dri3int.h +++ xorg-server-1.18.4/dri3/dri3int.h @@ -0,0 +1,26 @@ +/* + * Copyright © 2011 Daniel Stone + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +extern Bool DRI2ModuleSetup(void); --- xorg-server-1.18.4.orig/fix-miregion +++ xorg-server-1.18.4/fix-miregion @@ -0,0 +1,29 @@ +#!/bin/sh +sed -i \ +-e 's/miRegionCreate\b/RegionCreate/g' \ +-e 's/miRegionInit\b/RegionInit/g' \ +-e 's/miRegionDestroy\b/RegionDestroy/g' \ +-e 's/miRegionUninit\b/RegionUninit/g' \ +-e 's/miRegionCopy\b/RegionCopy/g' \ +-e 's/miIntersect\b/RegionIntersect/g' \ +-e 's/miUnion\b/RegionUnion/g' \ +-e 's/miRegionAppend\b/RegionAppend/g' \ +-e 's/miRegionValidate\b/RegionValidate/g' \ +-e 's/miRectsToRegion\b/RegionFromRects/g' \ +-e 's/miSubtract\b/RegionSubtract/g' \ +-e 's/miInverse\b/RegionInverse/g' \ +-e 's/miRectIn\b/RegionContainsRect/g' \ +-e 's/miTranslateRegion\b/RegionTranslate/g' \ +-e 's/miRegionReset\b/RegionReset/g' \ +-e 's/miRegionBreak\b/RegionBreak/g' \ +-e 's/miPointInRegion\b/RegionContainsPoint/g' \ +-e 's/miRegionEqual\b/RegionEqual/g' \ +-e 's/miRegionNotEmpty\b/RegionNotEmpty/g' \ +-e 's/miRegionEmpty\b/RegionEmpty/g' \ +-e 's/miRegionExtents\b/RegionExtents/g' \ +-e 's/miPrintRegion\b/RegionPrint/g' \ +-e 's/miRectAlloc\b/RegionRectAlloc/g' \ +-e 's/miValidRegion\b/RegionIsValid/g' \ +-e 's/miRegionBroken\b/RegionBroken/g' \ +-e 's/miClipSpans\b/RegionClipSpans/g' \ +"$@" --- xorg-server-1.18.4.orig/fix-miregion-private +++ xorg-server-1.18.4/fix-miregion-private @@ -0,0 +1,14 @@ +#!/bin/sh +sed -i \ +-e 's/miEmptyBox\b/RegionEmptyBox/g' \ +-e 's/miEmptyData\b/RegionEmptyData/g' \ +-e 's/miBrokenData\b/RegionBrokenData/g' \ +-e 's/miBrokenRegion\b/RegionBrokenRegion/g' \ +-e 's/miCoalesce\b/RegionCoalesce/g' \ +-e 's/miAppendNonO\b/RegionAppendNonO/g' \ +-e 's/miRegionOp\b/RegionOp/g' \ +-e 's/miSetExtents\b/RegionSetExtents/g' \ +-e 's/miIntersectO\b/RegionIntersectO/g' \ +-e 's/miUnionO\b/RegionUnionO/g' \ +-e 's/miSubtractO\b/RegionSubtractO/g' \ +"$@" --- xorg-server-1.18.4.orig/fix-patch-whitespace +++ xorg-server-1.18.4/fix-patch-whitespace @@ -0,0 +1,4 @@ +#!/bin/sh +git diff --check | +sed -n 's!^\([^:]*\):\([^:]*\):.*!sed -i "\2 s/[ \t]*$//; \2 s/ *\t/\t/g" \1!p' | +sh --- xorg-server-1.18.4.orig/fix-region +++ xorg-server-1.18.4/fix-region @@ -0,0 +1,38 @@ +#!/bin/sh +sed -i \ + -e 's/REGION_NIL\b/RegionNil/g' \ + -e 's/REGION_NAR\b/RegionNar/g' \ + -e 's/REGION_NUM_RECTS\b/RegionNumRects/g' \ + -e 's/REGION_SIZE\b/RegionSize/g' \ + -e 's/REGION_RECTS\b/RegionRects/g' \ + -e 's/REGION_BOXPTR\b/RegionBoxptr/g' \ + -e 's/REGION_BOX\b/RegionBox/g' \ + -e 's/REGION_TOP\b/RegionTop/g' \ + -e 's/REGION_END\b/RegionEnd/g' \ + -e 's/REGION_SZOF\b/RegionSizeof/g' \ + -e 's/REGION_CREATE *([^,]*, */RegionCreate(/g' \ + -e 's/REGION_COPY *([^,]*, */RegionCopy(/g' \ + -e 's/REGION_DESTROY *([^,]*, */RegionDestroy(/g' \ + -e 's/REGION_INTERSECT *([^,]*, */RegionIntersect(/g' \ + -e 's/REGION_UNION *([^,]*, */RegionUnion(/g' \ + -e 's/REGION_SUBTRACT *([^,]*, */RegionSubtract(/g' \ + -e 's/REGION_INVERSE *([^,]*, */RegionInverse(/g' \ + -e 's/REGION_TRANSLATE *([^,]*, */RegionTranslate(/g' \ + -e 's/RECT_IN_REGION *([^,]*, */RegionContainsRect(/g' \ + -e 's/POINT_IN_REGION *([^,]*, */RegionContainsPoint(/g' \ + -e 's/REGION_EQUAL *([^,]*, */RegionEqual(/g' \ + -e 's/REGION_APPEND *([^,]*, */RegionAppend(/g' \ + -e 's/REGION_VALIDATE *([^,]*, */RegionValidate(/g' \ + -e 's/BITMAP_TO_REGION\b/BitmapToRegion/g' \ + -e 's/RECTS_TO_REGION *([^,]*, */RegionFromRects(/g' \ + -e 's/REGION_BREAK *([^,]*, */RegionBreak(/g' \ + -e 's/REGION_INIT *([^,]*, */RegionInit(/g' \ + -e 's/REGION_UNINIT *([^,]*, */RegionUninit(/g' \ + -e 's/REGION_RESET *([^,]*, */RegionReset(/g' \ + -e 's/REGION_NOTEMPTY *([^,]*, */RegionNotEmpty(/g' \ + -e 's/REGION_BROKEN *([^,]*, */RegionBroken(/g' \ + -e 's/REGION_EMPTY *([^,]*, */RegionEmpty(/g' \ + -e 's/REGION_EXTENTS *([^,]*, */RegionExtents(/g' \ + -e 's/REGION_NULL *([^,]*, */RegionNull(/g' \ + -e 's/REGION_NULL$/RegionNull/g' \ + "$@" --- xorg-server-1.18.4.orig/hw/kdrive/Xkdrive.man +++ xorg-server-1.18.4/hw/kdrive/Xkdrive.man @@ -0,0 +1,50 @@ +.\" $RCSId: xc/programs/Xserver/hw/kdrive/Xkdrive.man,v 1.3 2001/01/24 00:06:10 dawes Exp $ +.\" +.TH Xkdrive 1 __vendorversion__ +.SH NAME +Xkdrive \- tiny X server +.SH SYNOPSIS +.B Xfbdev +.RI [ :display ] +.RI [ option ...] +.SH DESCRIPTION +.B Xkdrive +is a family of X servers designed to be particularly small. This +manual page describes the common functionality of the +.B Xkdrive +servers; for information on a specific X server, please refer to the +relevant manual page. +.SH OPTIONS +In addition to the standard options accepted by all X servers (see +Xserver(1)), all the +.B Xkdrive +servers accept the following options: +.TP 8 +.B -dumb +disable hardware acceleration. +.TP 8 +.B -origin \fIX\fP,\fIY\fP +Locates the next screen in the Xinerama virtual screen. +.TP 8 +.B -screen \fIwidth\fBx\fIheight\fR[\fBx\fIdepth\fR[\fBx\fIfreq\fR]]\fR[\fB@\fIrotation\fR]\fB +use a screen of the specified \fIwidth\fP, \fIheight\fP, screen \fIdepth\fP, \fIfrequency\fP, and \fIrotation\fP (0, 90, 180 and 270 are legal values). +.TP 8 +.B -softCursor +disable the hardware cursor. +.TP 8 +.B -videoTest +start the server, pause momentarily, and exit. +.TP 8 +.B -zaphod +disable switching screens by moving the pointer across a screen boundary. +.TP 8 +.B -2button +enable emulation of a middle mouse button by chording. +.TP 8 +.B -3button +disable emulation of a middle mouse button by chording. +.SH SEE ALSO +X(__miscmansuffix__), Xserver(1), xdm(1), xinit(1), Xvesa(1), Xfbdev(1). +.SH AUTHORS +The Xkdrive common core was written by Keith Packard, +and is based on the Sample Implementation of X. --- xorg-server-1.18.4.orig/hw/kdrive/fbdev/Xfbdev.man +++ xorg-server-1.18.4/hw/kdrive/fbdev/Xfbdev.man @@ -0,0 +1,28 @@ +.\" $RCSId: xc/programs/Xserver/hw/kdrive/fbdev/Xfbdev.man,v 1.4 2001/01/27 18:20:40 dawes Exp $ +.\" +.TH Xfbdev 1 __vendorversion__ +.SH NAME +Xfbdev \- Linux framebuffer device tiny X server +.SH SYNOPSIS +.B Xfbdev +.RI [ :display ] +.RI [ option ...] +.SH DESCRIPTION +.B Xfbdev +is a generic X server for Linux. +.B Xfbdev +doesn't know about any particular hardware, and uses the framebuffer +provided by the Linux framebuffer device. +.SH OPTIONS +.B Xfbdev +accepts the common options of the Xkdrive family of servers. Please +see Xkdrive(1). +.SH KEYBOARD +To be written. +.SH SEE ALSO +X(__miscmansuffix__), Xserver(1), Xkdrive(1), xdm(1), xinit(1). +.SH AUTHORS +The +.B Xfbdev +server was written by Keith Packard. + --- xorg-server-1.18.4.orig/hw/xfree86/os-support/shared/platform_noop.c +++ xorg-server-1.18.4/hw/xfree86/os-support/shared/platform_noop.c @@ -0,0 +1,23 @@ + +#ifdef HAVE_XORG_CONFIG_H +#include +#endif + +#ifdef XSERVER_PLATFORM_BUS +/* noop platform device support */ +#include "xf86_OSproc.h" + +#include "xf86.h" +#include "xf86platformBus.h" + +Bool +xf86PlatformDeviceCheckBusID(struct xf86_platform_device *device, const char *busid) +{ + return FALSE; +} + +void xf86PlatformDeviceProbe(struct OdevAttributes *attribs) +{ + +} +#endif --- xorg-server-1.18.4.orig/hw/xquartz/GL/glcontextmodes.c +++ xorg-server-1.18.4/hw/xquartz/GL/glcontextmodes.c @@ -0,0 +1,586 @@ +/* + * (C) Copyright IBM Corporation 2003 + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, and/or sell copies of the Software, and to permit persons to whom + * the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/** + * \file glcontextmodes.c + * Utility routines for working with \c __GLcontextModes structures. At + * some point most or all of these functions will be moved to the Mesa + * code base. + * + * \author Ian Romanick + */ + +#if defined(IN_MINI_GLX) +#include +#else +#if defined(HAVE_DIX_CONFIG_H) +#include +#endif +#include +#include +#include "GL/glxint.h" +#endif + +/* Memory macros */ +#if defined(IN_MINI_GLX) +#include +#include +#define _mesa_malloc(b) malloc(b) +#define _mesa_free(m) free(m) +#define _mesa_memset memset +#else +#ifdef XFree86Server +#include +#include +#define _mesa_malloc(b) malloc(b) +#define _mesa_free(m) free(m) +#define _mesa_memset memset +#else +#include +#define _mesa_memset memset +#define _mesa_malloc(b) Xmalloc(b) +#define _mesa_free(m) free(m) +#endif /* XFree86Server */ +#endif /* !defined(IN_MINI_GLX) */ + +#include "glcontextmodes.h" + +#if !defined(IN_MINI_GLX) +#define NUM_VISUAL_TYPES 6 + +/** + * Convert an X visual type to a GLX visual type. + * + * \param visualType X visual type (i.e., \c TrueColor, \c StaticGray, etc.) + * to be converted. + * \return If \c visualType is a valid X visual type, a GLX visual type will + * be returned. Otherwise \c GLX_NONE will be returned. + */ +GLint +_gl_convert_from_x_visual_type(int visualType) +{ + static const int glx_visual_types[NUM_VISUAL_TYPES] = { + GLX_STATIC_GRAY, GLX_GRAY_SCALE, + GLX_STATIC_COLOR, GLX_PSEUDO_COLOR, + GLX_TRUE_COLOR, GLX_DIRECT_COLOR + }; + + return ((unsigned)visualType < NUM_VISUAL_TYPES) + ? glx_visual_types[visualType] : GLX_NONE; +} + +/** + * Convert a GLX visual type to an X visual type. + * + * \param visualType GLX visual type (i.e., \c GLX_TRUE_COLOR, + * \c GLX_STATIC_GRAY, etc.) to be converted. + * \return If \c visualType is a valid GLX visual type, an X visual type will + * be returned. Otherwise -1 will be returned. + */ +GLint +_gl_convert_to_x_visual_type(int visualType) +{ + static const int x_visual_types[NUM_VISUAL_TYPES] = { + TrueColor, DirectColor, + PseudoColor, StaticColor, + GrayScale, StaticGray + }; + + return ((unsigned)(visualType - GLX_TRUE_COLOR) < NUM_VISUAL_TYPES) + ? x_visual_types[visualType - GLX_TRUE_COLOR] : -1; +} + +/** + * Copy a GLX visual config structure to a GL context mode structure. All + * of the fields in \c config are copied to \c mode. Additional fields in + * \c mode that can be derrived from the fields of \c config (i.e., + * \c haveDepthBuffer) are also filled in. The remaining fields in \c mode + * that cannot be derived are set to default values. + * + * \param mode Destination GL context mode. + * \param config Source GLX visual config. + * + * \note + * The \c fbconfigID and \c visualID fields of the \c __GLcontextModes + * structure will be set to the \c vid of the \c __GLXvisualConfig structure. + */ +void +_gl_copy_visual_to_context_mode(__GLcontextModes * mode, + const __GLXvisualConfig * config) +{ + __GLcontextModes * const next = mode->next; + + (void)_mesa_memset(mode, 0, sizeof(__GLcontextModes)); + mode->next = next; + + mode->visualID = config->vid; + mode->visualType = _gl_convert_from_x_visual_type(config->class); + mode->xRenderable = GL_TRUE; + mode->fbconfigID = config->vid; + mode->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT; + + mode->rgbMode = (config->rgba != 0); + mode->renderType = (mode->rgbMode) ? GLX_RGBA_BIT : GLX_COLOR_INDEX_BIT; + + mode->colorIndexMode = !(mode->rgbMode); + mode->doubleBufferMode = (config->doubleBuffer != 0); + mode->stereoMode = (config->stereo != 0); + + mode->haveAccumBuffer = ((config->accumRedSize + + config->accumGreenSize + + config->accumBlueSize + + config->accumAlphaSize) > 0); + mode->haveDepthBuffer = (config->depthSize > 0); + mode->haveStencilBuffer = (config->stencilSize > 0); + + mode->redBits = config->redSize; + mode->greenBits = config->greenSize; + mode->blueBits = config->blueSize; + mode->alphaBits = config->alphaSize; + mode->redMask = config->redMask; + mode->greenMask = config->greenMask; + mode->blueMask = config->blueMask; + mode->alphaMask = config->alphaMask; + mode->rgbBits = mode->rgbMode ? config->bufferSize : 0; + mode->indexBits = mode->colorIndexMode ? config->bufferSize : 0; + + mode->accumRedBits = config->accumRedSize; + mode->accumGreenBits = config->accumGreenSize; + mode->accumBlueBits = config->accumBlueSize; + mode->accumAlphaBits = config->accumAlphaSize; + mode->depthBits = config->depthSize; + mode->stencilBits = config->stencilSize; + + mode->numAuxBuffers = config->auxBuffers; + mode->level = config->level; + + mode->visualRating = config->visualRating; + mode->transparentPixel = config->transparentPixel; + mode->transparentRed = config->transparentRed; + mode->transparentGreen = config->transparentGreen; + mode->transparentBlue = config->transparentBlue; + mode->transparentAlpha = config->transparentAlpha; + mode->transparentIndex = config->transparentIndex; + mode->samples = config->multiSampleSize; + mode->sampleBuffers = config->nMultiSampleBuffers; + /* mode->visualSelectGroup = config->visualSelectGroup; ? */ + + mode->swapMethod = GLX_SWAP_UNDEFINED_OML; + + mode->bindToTextureRgb = (mode->rgbMode) ? GL_TRUE : GL_FALSE; + mode->bindToTextureRgba = (mode->rgbMode && mode->alphaBits) ? + GL_TRUE : GL_FALSE; + mode->bindToMipmapTexture = mode->rgbMode ? GL_TRUE : GL_FALSE; + mode->bindToTextureTargets = mode->rgbMode ? + GLX_TEXTURE_1D_BIT_EXT | + GLX_TEXTURE_2D_BIT_EXT | + GLX_TEXTURE_RECTANGLE_BIT_EXT : 0; + mode->yInverted = GL_FALSE; +} + +/** + * Get data from a GL context mode. + * + * \param mode GL context mode whose data is to be returned. + * \param attribute Attribute of \c mode that is to be returned. + * \param value_return Location to store the data member of \c mode. + * \return If \c attribute is a valid attribute of \c mode, zero is + * returned. Otherwise \c GLX_BAD_ATTRIBUTE is returned. + */ +int +_gl_get_context_mode_data(const __GLcontextModes *mode, int attribute, + int *value_return) +{ + switch (attribute) { + case GLX_USE_GL: + *value_return = GL_TRUE; + return 0; + + case GLX_BUFFER_SIZE: + *value_return = mode->rgbBits; + return 0; + + case GLX_RGBA: + *value_return = mode->rgbMode; + return 0; + + case GLX_RED_SIZE: + *value_return = mode->redBits; + return 0; + + case GLX_GREEN_SIZE: + *value_return = mode->greenBits; + return 0; + + case GLX_BLUE_SIZE: + *value_return = mode->blueBits; + return 0; + + case GLX_ALPHA_SIZE: + *value_return = mode->alphaBits; + return 0; + + case GLX_DOUBLEBUFFER: + *value_return = mode->doubleBufferMode; + return 0; + + case GLX_STEREO: + *value_return = mode->stereoMode; + return 0; + + case GLX_AUX_BUFFERS: + *value_return = mode->numAuxBuffers; + return 0; + + case GLX_DEPTH_SIZE: + *value_return = mode->depthBits; + return 0; + + case GLX_STENCIL_SIZE: + *value_return = mode->stencilBits; + return 0; + + case GLX_ACCUM_RED_SIZE: + *value_return = mode->accumRedBits; + return 0; + + case GLX_ACCUM_GREEN_SIZE: + *value_return = mode->accumGreenBits; + return 0; + + case GLX_ACCUM_BLUE_SIZE: + *value_return = mode->accumBlueBits; + return 0; + + case GLX_ACCUM_ALPHA_SIZE: + *value_return = mode->accumAlphaBits; + return 0; + + case GLX_LEVEL: + *value_return = mode->level; + return 0; + + case GLX_TRANSPARENT_TYPE_EXT: + *value_return = mode->transparentPixel; + return 0; + + case GLX_TRANSPARENT_RED_VALUE: + *value_return = mode->transparentRed; + return 0; + + case GLX_TRANSPARENT_GREEN_VALUE: + *value_return = mode->transparentGreen; + return 0; + + case GLX_TRANSPARENT_BLUE_VALUE: + *value_return = mode->transparentBlue; + return 0; + + case GLX_TRANSPARENT_ALPHA_VALUE: + *value_return = mode->transparentAlpha; + return 0; + + case GLX_TRANSPARENT_INDEX_VALUE: + *value_return = mode->transparentIndex; + return 0; + + case GLX_X_VISUAL_TYPE: + *value_return = mode->visualType; + return 0; + + case GLX_CONFIG_CAVEAT: + *value_return = mode->visualRating; + return 0; + + case GLX_VISUAL_ID: + *value_return = mode->visualID; + return 0; + + case GLX_DRAWABLE_TYPE: + *value_return = mode->drawableType; + return 0; + + case GLX_RENDER_TYPE: + *value_return = mode->renderType; + return 0; + + case GLX_X_RENDERABLE: + *value_return = mode->xRenderable; + return 0; + + case GLX_FBCONFIG_ID: + *value_return = mode->fbconfigID; + return 0; + + case GLX_MAX_PBUFFER_WIDTH: + *value_return = mode->maxPbufferWidth; + return 0; + + case GLX_MAX_PBUFFER_HEIGHT: + *value_return = mode->maxPbufferHeight; + return 0; + + case GLX_MAX_PBUFFER_PIXELS: + *value_return = mode->maxPbufferPixels; + return 0; + + case GLX_OPTIMAL_PBUFFER_WIDTH_SGIX: + *value_return = mode->optimalPbufferWidth; + return 0; + + case GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX: + *value_return = mode->optimalPbufferHeight; + return 0; + + case GLX_SWAP_METHOD_OML: + *value_return = mode->swapMethod; + return 0; + + case GLX_SAMPLE_BUFFERS_SGIS: + *value_return = mode->sampleBuffers; + return 0; + + case GLX_SAMPLES_SGIS: + *value_return = mode->samples; + return 0; + + case GLX_BIND_TO_TEXTURE_RGB_EXT: + *value_return = mode->bindToTextureRgb; + return 0; + + case GLX_BIND_TO_TEXTURE_RGBA_EXT: + *value_return = mode->bindToTextureRgba; + return 0; + + case GLX_BIND_TO_MIPMAP_TEXTURE_EXT: + *value_return = mode->bindToMipmapTexture == GL_TRUE ? GL_TRUE : + GL_FALSE; + return 0; + + case GLX_BIND_TO_TEXTURE_TARGETS_EXT: + *value_return = mode->bindToTextureTargets; + return 0; + + case GLX_Y_INVERTED_EXT: + *value_return = mode->yInverted; + return 0; + + /* Applications are NOT allowed to query GLX_VISUAL_SELECT_GROUP_SGIX. + * It is ONLY for communication between the GLX client and the GLX + * server. + */ + case GLX_VISUAL_SELECT_GROUP_SGIX: + default: + return GLX_BAD_ATTRIBUTE; + } +} +#endif /* !defined(IN_MINI_GLX) */ + +/** + * Allocate a linked list of \c __GLcontextModes structures. The fields of + * each structure will be initialized to "reasonable" default values. In + * most cases this is the default value defined by table 3.4 of the GLX + * 1.3 specification. This means that most values are either initialized to + * zero or \c GLX_DONT_CARE (which is -1). As support for additional + * extensions is added, the new values will be initialized to appropriate + * values from the extension specification. + * + * \param count Number of structures to allocate. + * \param minimum_size Minimum size of a structure to allocate. This allows + * for differences in the version of the + * \c __GLcontextModes stucture used in libGL and in a + * DRI-based driver. + * \returns A pointer to the first element in a linked list of \c count + * stuctures on success, or \c NULL on failure. + * + * \warning Use of \c minimum_size does \b not guarantee binary compatibility. + * The fundamental assumption is that if the \c minimum_size + * specified by the driver and the size of the \c __GLcontextModes + * structure in libGL is the same, then the meaning of each byte in + * the structure is the same in both places. \b Be \b careful! + * Basically this means that fields have to be added in libGL and + * then propagated to drivers. Drivers should \b never arbitrarilly + * extend the \c __GLcontextModes data-structure. + */ +__GLcontextModes * +_gl_context_modes_create(unsigned count, size_t minimum_size) +{ + const size_t size = (minimum_size > sizeof(__GLcontextModes)) + ? minimum_size : sizeof(__GLcontextModes); + __GLcontextModes * base = NULL; + __GLcontextModes ** next; + unsigned i; + + next = &base; + for (i = 0; i < count; i++) { + *next = (__GLcontextModes *)_mesa_malloc(size); + if (*next == NULL) { + _gl_context_modes_destroy(base); + base = NULL; + break; + } + + (void)_mesa_memset(*next, 0, size); + (*next)->visualID = GLX_DONT_CARE; + (*next)->visualType = GLX_DONT_CARE; + (*next)->visualRating = GLX_NONE; + (*next)->transparentPixel = GLX_NONE; + (*next)->transparentRed = GLX_DONT_CARE; + (*next)->transparentGreen = GLX_DONT_CARE; + (*next)->transparentBlue = GLX_DONT_CARE; + (*next)->transparentAlpha = GLX_DONT_CARE; + (*next)->transparentIndex = GLX_DONT_CARE; + (*next)->xRenderable = GLX_DONT_CARE; + (*next)->fbconfigID = GLX_DONT_CARE; + (*next)->swapMethod = GLX_SWAP_UNDEFINED_OML; + (*next)->bindToTextureRgb = GLX_DONT_CARE; + (*next)->bindToTextureRgba = GLX_DONT_CARE; + (*next)->bindToMipmapTexture = GLX_DONT_CARE; + (*next)->bindToTextureTargets = GLX_DONT_CARE; + (*next)->yInverted = GLX_DONT_CARE; + + next = &((*next)->next); + } + + return base; +} + +/** + * Destroy a linked list of \c __GLcontextModes structures created by + * \c _gl_context_modes_create. + * + * \param modes Linked list of structures to be destroyed. All structres + * in the list will be freed. + */ +void +_gl_context_modes_destroy(__GLcontextModes * modes) +{ + while (modes != NULL) { + __GLcontextModes * const next = modes->next; + + _mesa_free(modes); + modes = next; + } +} + +/** + * Find a context mode matching a Visual ID. + * + * \param modes List list of context-mode structures to be searched. + * \param vid Visual ID to be found. + * \returns A pointer to a context-mode in \c modes if \c vid was found in + * the list, or \c NULL if it was not. + */ + +__GLcontextModes * +_gl_context_modes_find_visual(__GLcontextModes *modes, int vid) +{ + __GLcontextModes *m; + + for (m = modes; m != NULL; m = m->next) + if (m->visualID == vid) + return m; + + return NULL; +} + +__GLcontextModes * +_gl_context_modes_find_fbconfig(__GLcontextModes *modes, int fbid) +{ + __GLcontextModes *m; + + for (m = modes; m != NULL; m = m->next) + if (m->fbconfigID == fbid) + return m; + + return NULL; +} + +/** + * Determine if two context-modes are the same. This is intended to be used + * by libGL implementations to compare to sets of driver generated FBconfigs. + * + * \param a Context-mode to be compared. + * \param b Context-mode to be compared. + * \returns \c GL_TRUE if the two context-modes are the same. \c GL_FALSE is + * returned otherwise. + */ +GLboolean +_gl_context_modes_are_same(const __GLcontextModes * a, + const __GLcontextModes * b) +{ + return ((a->rgbMode == b->rgbMode) && + (a->floatMode == b->floatMode) && + (a->colorIndexMode == b->colorIndexMode) && + (a->doubleBufferMode == b->doubleBufferMode) && + (a->stereoMode == b->stereoMode) && + (a->redBits == b->redBits) && + (a->greenBits == b->greenBits) && + (a->blueBits == b->blueBits) && + (a->alphaBits == b->alphaBits) && +#if 0 /* For some reason these don't get set on the client-side in libGL. */ + (a->redMask == b->redMask) && + (a->greenMask == b->greenMask) && + (a->blueMask == b->blueMask) && + (a->alphaMask == b->alphaMask) && +#endif + (a->rgbBits == b->rgbBits) && + (a->indexBits == b->indexBits) && + (a->accumRedBits == b->accumRedBits) && + (a->accumGreenBits == b->accumGreenBits) && + (a->accumBlueBits == b->accumBlueBits) && + (a->accumAlphaBits == b->accumAlphaBits) && + (a->depthBits == b->depthBits) && + (a->stencilBits == b->stencilBits) && + (a->numAuxBuffers == b->numAuxBuffers) && + (a->level == b->level) && + (a->visualRating == b->visualRating) && + + (a->transparentPixel == b->transparentPixel) && + + ((a->transparentPixel != GLX_TRANSPARENT_RGB) || + ((a->transparentRed == b->transparentRed) && + (a->transparentGreen == b->transparentGreen) && + (a->transparentBlue == b->transparentBlue) && + (a->transparentAlpha == b->transparentAlpha))) && + + ((a->transparentPixel != GLX_TRANSPARENT_INDEX) || + (a->transparentIndex == b->transparentIndex)) && + + (a->sampleBuffers == b->sampleBuffers) && + (a->samples == b->samples) && + ((a->drawableType & b->drawableType) != 0) && + (a->renderType == b->renderType) && + (a->maxPbufferWidth == b->maxPbufferWidth) && + (a->maxPbufferHeight == b->maxPbufferHeight) && + (a->maxPbufferPixels == b->maxPbufferPixels) && + (a->optimalPbufferWidth == b->optimalPbufferWidth) && + (a->optimalPbufferHeight == b->optimalPbufferHeight) && + (a->swapMethod == b->swapMethod) && + (a->bindToTextureRgb == b->bindToTextureRgb) && + (a->bindToTextureRgba == b->bindToTextureRgba) && + (a->bindToMipmapTexture == b->bindToMipmapTexture) && + (a->bindToTextureTargets == b->bindToTextureTargets) && + (a->yInverted == b->yInverted)); +} --- xorg-server-1.18.4.orig/hw/xquartz/GL/glcontextmodes.h +++ xorg-server-1.18.4/hw/xquartz/GL/glcontextmodes.h @@ -0,0 +1,60 @@ +/* + * (C) Copyright IBM Corporation 2003 + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, and/or sell copies of the Software, and to permit persons to whom + * the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEM, IBM AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/** + * \file glcontextmodes.h + * \author Ian Romanick + */ + +#ifndef GLCONTEXTMODES_H +#define GLCONTEXTMODES_H + +#include "GL/internal/glcore.h" + +#if !defined(IN_MINI_GLX) +extern GLint +_gl_convert_from_x_visual_type(int visualType); +extern GLint +_gl_convert_to_x_visual_type(int visualType); +extern void +_gl_copy_visual_to_context_mode(__GLcontextModes * mode, + const __GLXvisualConfig * config); +extern int +_gl_get_context_mode_data(const __GLcontextModes *mode, int attribute, + int *value_return); +#endif /* !defined(IN_MINI_GLX) */ + +extern __GLcontextModes * +_gl_context_modes_create(unsigned count, size_t minimum_size); +extern void +_gl_context_modes_destroy(__GLcontextModes * modes); +extern __GLcontextModes * +_gl_context_modes_find_visual(__GLcontextModes *modes, int vid); +extern __GLcontextModes * +_gl_context_modes_find_fbconfig(__GLcontextModes *modes, int fbid); +extern GLboolean +_gl_context_modes_are_same(const __GLcontextModes * a, + const __GLcontextModes * b); + +#endif /* GLCONTEXTMODES_H */ --- xorg-server-1.18.4.orig/hw/xwin/winclipboard/internal.h +++ xorg-server-1.18.4/hw/xwin/winclipboard/internal.h @@ -0,0 +1,125 @@ + +/* + *Copyright (C) 2003-2004 Harold L Hunt II All Rights Reserved. + * + *Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + *"Software"), to deal in the Software without restriction, including + *without limitation the rights to use, copy, modify, merge, publish, + *distribute, sublicense, and/or sell copies of the Software, and to + *permit persons to whom the Software is furnished to do so, subject to + *the following conditions: + * + *The above copyright notice and this permission notice shall be + *included in all copies or substantial portions of the Software. + * + *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + *NONINFRINGEMENT. IN NO EVENT SHALL HAROLD L HUNT II BE LIABLE FOR + *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + *Except as contained in this notice, the name of Harold L Hunt II + *shall not be used in advertising or otherwise to promote the sale, use + *or other dealings in this Software without prior written authorization + *from Harold L Hunt II. + * + * Authors: Harold L Hunt II + */ + +#ifndef WINCLIPBOARD_INTERNAL_H +#define WINCLIPBOARD_INTERNAL_H + +/* X headers */ +#include + +/* Windows headers */ +#include + +#define WIN_XEVENTS_SUCCESS 0 +#define WIN_XEVENTS_FAILED 1 +#define WIN_XEVENTS_NOTIFY_DATA 3 +#define WIN_XEVENTS_NOTIFY_TARGETS 4 + +#define WM_WM_REINIT (WM_USER + 1) +#define WM_WM_QUIT (WM_USER + 2) + +/* + * References to external symbols + */ + +extern void winDebug(const char *format, ...) _X_ATTRIBUTE_PRINTF(1, 2); +extern void ErrorF(const char *format, ...) _X_ATTRIBUTE_PRINTF(1, 2); + +/* + * winclipboardtextconv.c + */ + +void + winClipboardDOStoUNIX(char *pszData, int iLength); + +void + winClipboardUNIXtoDOS(char **ppszData, int iLength); + +/* + * winclipboardthread.c + */ + + +typedef struct +{ + Atom atomClipboard; + Atom atomLocalProperty; + Atom atomUTF8String; + Atom atomCompoundText; + Atom atomTargets; +} ClipboardAtoms; + +/* Modern clipboard API functions */ +typedef wBOOL WINAPI (*ADDCLIPBOARDFORMATLISTENERPROC)(HWND hwnd); +typedef wBOOL WINAPI (*REMOVECLIPBOARDFORMATLISTENERPROC)(HWND hwnd); + +extern Bool g_fHasModernClipboardApi; +extern ADDCLIPBOARDFORMATLISTENERPROC g_fpAddClipboardFormatListener; +extern REMOVECLIPBOARDFORMATLISTENERPROC g_fpRemoveClipboardFormatListener; + +/* + * winclipboardwndproc.c + */ + +Bool winClipboardFlushWindowsMessageQueue(HWND hwnd); + +LRESULT CALLBACK +winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); + +typedef struct +{ + Display *pClipboardDisplay; + Window iClipboardWindow; + ClipboardAtoms *atoms; +} ClipboardWindowCreationParams; + +/* + * winclipboardxevents.c + */ + +typedef struct +{ + Bool fUseUnicode; + Atom *targetList; +} ClipboardConversionData; + +int +winClipboardFlushXEvents(HWND hwnd, + Window iWindow, Display * pDisplay, ClipboardConversionData *data, ClipboardAtoms *atom); + + +Atom +winClipboardGetLastOwnedSelectionAtom(ClipboardAtoms *atoms); + +void +winClipboardInitMonitoredSelections(void); + +#endif --- xorg-server-1.18.4.orig/xkb/XKM_file_format.txt +++ xorg-server-1.18.4/xkb/XKM_file_format.txt @@ -0,0 +1,684 @@ + XKM File Format Description + Version 15 + +1. Introduction + +The XKM file format is the exchange format for XKB keyboard descriptions +between the server and xkbcomp. Usually, the server forks off xkbcomp, +xkbcomp compiles the XKM format from the given parameters. +The resulting XKM file is put into a directory readable by the server and +then parsed. + +The XKM format is little more than a binary dump of various XKB-specific +structures and hence tied to the ABI of the server. + + ❧❧❧❧❧❧❧❧❧❧❧ + +1.1 About this file format description + +This description was produced by analyzing the XKM parsing code. Parts of +the file description present in the original format specification may be +missing. This description thus cannot be a reference document for XKM +implementations. + +No description of the meaning of the various fields is given here. Refer to +the XKB protocol specification for more details. + ❧❧❧❧❧❧❧❧❧❧❧ + +2. Notations used in this document + +Notation for structures: + +┌─── + Name of struct + name of field: type or fixed value of field + name of field: type or fixed value of field +└─── + +Data types are identical to those used in the X Protocol specification +except where noted otherwise. Structs specific to XKM are prefixed with XKM, +defines specific to the XKB protocol specification are prefixed with Xkb and +their value is equivalent to that in the protocol specification. + +Multiple instances of a given type are denoted in the following form: + name of field: LISTofFIELDTYPE + +Length specifiers for such fields are usually prefixed with num_. For +example, a struct containing a num_foo of 8 and a 'foo' field contains 8 +structures of type 'foo'. + +Variable length padding is specified as pad(x), where x is the length of the +data to be padded out to a multiple of 4 bytes. For example, given an x of +10, pad(x) would be the remaining 2 bytes to pad the whole struct to 12 +bytes. + +A special notation is a variable content struct. In this case, the contents +of the struct depend on the value of one or more specific fields. +┌─── + Name of struct + field: type or fixed value of field + field: type or fixed value of field + ─── + field ⇒ value 1 + ⇒ + specific field: type + specific field: type + ─── + field ⇒ value 2 + ⇒ + specific field: type + specific field: type +└─── +This notation denotes that if field is of value 1, this struct contains the +specific fields listed underneath value 1. + + ❧❧❧❧❧❧❧❧❧❧❧ + +3. XKM Format + +The XKM format is a binary format with structs usually being padded to a +multiple of 4 bytes. No provisions for endianess are provided, the parser is +left to guess the endianess of the XKM file. + + ❧❧❧❧❧❧❧❧❧❧❧ +3.1 Common data types + +┌─── + XKMCountedString + count: CARD16 + string: count * CHAR + pad: pad(count + 2) +└─── + +XKMCountedString is used for user-readable identifiers. Prime example are +the level names and the section names ("complete", "evdev(inet)", etc.) + +┌─── + XKMGroupBits: CARD8 + group1 0x1 + group2 0x2 + group3 0x4 + group4 0x8 +└─── + + ❧❧❧❧❧❧❧❧❧❧❧ + +3.2 Header and Table of Contents + +┌─── + XKMHeader + version: CARD8 + identifier1: 'm' + identifier2: 'k' + idenfifier3: 'x' +└─── + +The XKM file format has a 4 byte header identifying the file and the XKM +version. The header is followed by the table of contents indicating the +sections present in this file. + +┌─── + XKMFileInfo + type: CARD8 + min_keycode: CARD8 + max_keycode: CARD8 + num_sectioninfo: CARD8 + present: CARD16 + pad: CARD16 + sectioninfo: LISTofXKMSectionInfo +└─── + +min_keycode and max_keycode specify the keycode range for this keyboard +descriptions. The core protocol requires min_keycode always be equal to or +greater than 8. + +┌─── + XKMSectionInfo + type: CARD16 + XkmTypesIndex 0 + XkmCompatMapIndex 1 + XkmSymbolsIndex 2 + XkmIndicatorsIndex 3 + XkmKeyNamesIndex 4 + XkmGeometryIndex 5 + XkmVirtualModsIndex 6 + format: CARD16 + size: CARD16 + offset: CARD16 +└─── + +Describes the section found in a chunk of a file. This struct is found +_twice_ in the file per section, once as part of the XKMFileInfo, once at +the beginning of the actual section (see offset). +The type specifies the type of the section, the section is to be parsed +according to this type. +Size and offset specify the size in bytes and the offset into the file in +bytes, respectively. + +3.3 Sections + +Each section resides at the offset specified in the XKMFileInfo sectioninfo. + + ❧❧❧❧❧❧❧❧❧❧❧ + +3.3.1 XKMTypes + +An XKMTypes section describes the key types defined in a layout. Roughly +speaking, a key type defines how many levels a given key has and which +modifiers change to a particular level. + +┌─── + XKMTypesSection + section_info: XKMSectionInfo + name: XKMCountedString + num_types: CARD16 + pad: CARD16 + types: LISTofXKMKeyType +└─── + +┌─── + XKMKeyType + real_mods: CARD8 + num_levels: CARD8 + virt_mods: CARD16 + num_map_entries: CARD8 + num_level_names: CARD8 + perserve: CARD8 + pad: CARD8 + map_entries: LISTofXKMKTMapEntry + name: XKMCountedString + mods: LISTofXKMModsDesc + level_names: LISXTofXKMCountedString +└─── + +The num_map_entries specifies the number of structs in both map_entries and mods. mods is only present if preserve is TRUE. + +┌─── + XKMKTMapEntry + level: CARD8 + real_mods: CARD8 + virt_mods: CARD16 +└─── + +┌─── + XKMModsDesc + real_mods: CARD8 + pad: CARD8 + virt_mods: CARD16 +└─── + + ❧❧❧❧❧❧❧❧❧❧❧ +3.3.2 XKMCompatMap + +An XKMCompatMap section describes the actions a keyboard may trigger. This +ranges from the TerminateServer action to simple modifier bits. + +┌─── + XKMCompatMap + section_info: XKMSectionInfo + name: XKMCountedString + num_si: CARD16 + group_mask: XKMGroupBits + pad: CARD8 + si: LISTofXKMSymInterpreterDesc + groups: LISTofXKMModsDesc +└─── + +One XKMModsDesc is present for each bit set in group_mask. + +┌─── + XKMSymInterpretDesc + sym: CARD32 + mods: CARD8 + match: CARD8 + virtual_mod: CARD8 + flags: CARD8 + action_type: CARD8 + action_data: XKMActionData +└─── + +Where the action is 7 bytes of CARD8 whose content is determined by +action_type. + +┌─── + XKMActionData: + pad0: CARD8 + pad1: CARD16 + pad2: CARD32 + ─── + action_type ⇒ XkbSA_SetMods || + action_type ⇒ XkbSA_LatchMods || + action_type ⇒ XkbSA_LockMods + ⇒ + flags: CARD8 + mask: CARD8 + real_mods: CARD8 + vmods1: CARD8 + vmods2: CARD8 + pad: CARD16 + ─── + action_type ⇒ XkbSA_SetGroup || + action_type ⇒ XkbSA_LatchGroup || + action_type ⇒ XkbSA_LockGroup + ⇒ + flags: CARD8 + group_XXX: CARD8 + pad0: CARD8 + pad1: CARD32 + ─── + action_type ⇒ XkbSA_MovePtr + ⇒ + flags: CARD8 + high_XXX: CARD8 + low_XXX: CARD8 + high_YYY: CARD8 + low_YYY: CARD8 + pad: CARD16 + ─── + action_type ⇒ XkbSA_PtrBtn || + action_type ⇒ XkbSA_LockPtrBtn + ⇒ + flags: CARD8 + count: CARD8 + button: CARD8 + pad: CARD32 + ─── + action_type ⇒ XkbSA_DeviceBtn || + action_type ⇒ XkbSA_LockLockPtrBtn + ⇒ + flags: CARD8 + count: CARD8 + button: CARD8 + device: CARD8 + pad0: CARD8 + pad1: CARD16 + ─── + action_type ⇒ XkbSA_SetPtrDflt + ⇒ + flags: CARD8 + affect: CARD8 + valueXXX: CARD8 + pad0: CARD32 + ─── + action_type ⇒ XkbSA_ISOLock + ⇒ + flags: CARD8 + mask: CARD8 + real_mods: CARD8 + group_XXX: CARD8 + affect: CARD8 + vmods1: CARD8 + vmods1: CARD8 + ─── + action_type ⇒ XkbSA_SwitchScreen + ⇒ + flags: CARD8 + screenXXX: CARD8 + pad0: CARD8 + pad1: CARD32 + ─── + action_type ⇒ XkbSA_SetControls || + action_type ⇒ XkbSA_LockControls + ⇒ + flags: CARD8 + ctrls3: CARD8 + ctrls2: CARD8 + ctrls1: CARD8 + ctrls0: CARD8 + pad: CARD16 + ─── + action_type ⇒ XkbSA_RedirectKey + ⇒ + new_key: CARD8 + mods_mask: CARD8 + mods: CARD8 + vmods_mask0: CARD8 + vmods_mask1: CARD8 + vmods0: CARD8 + vmods1: CARD8 + ─── + action_type ⇒ XkbSA_DeviceValuator + ⇒ + device: CARD8 + v1_what: CARD8 + v1_idx: CARD8 + v1_value: CARD8 + v2_what: CARD8 + v2_idx: CARD8 + v2_value: CARD8 + pad: CARD8 + ─── + action_type ⇒ XkbSA_XFree86Private || + action_type ⇒ XkbSA_Terminate + ⇒ + pad0: CARD8 + pad1: CARD16 + pad2: CARD32 + ─── + action_type ⇒ XkbSA_ActionMessage + ⇒ + press_msg: BOOL + release_msg: BOOL + gen_event: BOOL + message: 4 * CHAR +└─── + +Note: XkbSA_ActionMessage is currently unsupported and the contents are +ignored. + + ❧❧❧❧❧❧❧❧❧❧❧ +3.3.3 XkmSymbols + +The symbols in a keymap define the actual keysyms each key may produce. + +┌─── + XKMSymbols + section_info: XKMSectionInfo + name: XKMCountedString + min_keycode: CARD8 + max_keycode: CARD8 + group_names_mask: XKMGroupBits + num_vmod_maps: CARD8 + group_names: LISTofXKMCountedString + keysyms: XKMKeysymMapDesc + vmod_maps: XKMVModMapDesc +└─── +One group_name is present for each bit set in group_names_mask. +The number of keysyms present is max_keycode - min_keycode + 1. + +┌─── + XKMKeysymMapDesc + width: CARD8 + num_groups: CARD8 + modifier_map: CARD8 + flags: CARD8 + names: LISTofXKMCountedString + syms: LISTofCARD32 + behavior: XKMBehaviorDesc +└─── + +Presence of names is conditional on the XkmKeyHasTypes flag. The number of +strings is equal to the number of group bits in group_names_mask in the +preceeding XKMSymbols section. +The number of elements in syms is equal to width * num_groups. +Presence of behavior is conditional on the XkmKeyHasBehavior flag. + +┌─── + XKMKeyBehaviorDesc + type: CARD8 + data: CARD8 + pad: CARD16 +└─── + +┌─── + XKMVModMapDesc + key: CARD8 + pad: CARD8 + vmods: CARD16 +└─── + + ❧❧❧❧❧❧❧❧❧❧❧ + +3.3.4 XKMIndicators + +┌─── + XKMIndicators + section_info: XKMSectionInfo + name: XKMCountedString + num_indicators: CARD8 + pad0: CARD8 + pad1: CARD16 + indicators: LISTofXKMIndicatorMapDesc +└─── + +┌─── + XKMIndicatorMapDesc + name: XKMCountedString + indicator: CARD8 + flags: CARD8 + which_mods: CARD8 + real_mods: CARD8 + vmods: CARD16 + which_groups: CARD8 + groups: CARD8 + ctrls: CARD32 +└─── + ❧❧❧❧❧❧❧❧❧❧❧ + +3.3.5 XKMKeyNames + +┌─── + XKMKeyNames + section_info: XKMSectionInfo + name: XKMCountedString + min_keycode: CARD8 + max_keycode: CARD8 + num_aliases: CARD8 + pad: CARD8 + keynames: LISTofXKMKeyname + aliases: LISTofXKMKeyAlias +└─── + +keynames contains max_keycode - min_keycode + 1 entries. + +┌─── + XkmKeyname + name: 4 * CHAR8 +└─── + +┌─── + XkmKeyAlias + real: XkmKeyname + alias: XkmKeyname +└─── + + ❧❧❧❧❧❧❧❧❧❧❧ + +3.3.5 XKMGeometry + +┌─── + XKMGeometry + section_info: XKMSectionInfo + name: XKMCountedString + width_mm: CARD16 + height_mm: CARD16 + base_color_ndx: CARD8 + label_color_ndx: CARD8 + num_properties: CARD16 + num_colors: CARD16 + num_shapes: CARD16 + num_sections: CARD16 + num_doodads: CARD16 + num_key_aliases: CARD16 + pad: CARD16 + label_font: XKMCountedString + properties: LISTofXKMGeomProperty + colors: LISTofXKMCountedString + shapes: LISTofXKMGeomShape + sections: LISTofXKMGeomSection + doodads: LISTofXKMGeomDoodad + key_aliases: LISTofXKMKeyAlias +└─── + +┌─── + XKMGeomProperty + name: XKMCountedString + value: XKMCountedString + +└─── + +┌─── + XKMGeomShape + name: XKMCountedString + num_outlines: CARD8 + primary_idx: CARD8 + approx_idx: CARD8 + pad: CARD8 + outlines: LISTofXKMOutlineDesc +└─── + +┌─── + XKMOutlineDesc + num_points: CARD8 + corner_radius: CARD8 + pad: CARD16 + points: LISTofXKMPointDesc +└─── + +┌─── + XKMPointDesc + x: INT16 + y: INT16 +└─── + +┌─── + XKMGeomSection + name: XKMCountedString + top: INT16 + left: INT16 + width: CARD16 + height: CARD16 + angle: INT16 + priority: CARD8 + num_rows: CARD8 + num_doodads: CARD8 + num_overlays: CARD8 + pad: CARD16 + rows: LISTofXKMRowDesc + doodads: LISTofXKMGeomDoodad + overlays: LISTofXKMGeomOverlay +└─── + +┌─── + XKMRowDesc + top: INT16 + left: INT16 + num_keys: CARD8 + vertical: BOOL + pad: CARD16 + keys: XKMKeyDesc +└─── + +┌─── + XKMKeyDesc + name: XKMKeyname + gap: INT16 + shape_idx: CARD8 + color_idx: CARD8 +└─── + +┌─── + XKMGeomDoodad + name: XKMCountedString + type: CARD8 + priority: CARD8 + top: INT16 + left: INT16 + pad1: CARD16 + pad2: CARD32 + pad3: CARD32 + ─── + type ⇒ XkbOutlineDoodad || + type ⇒ XkbSolideDoodad + ⇒ + type: CARD8 + priority: CARD8 + top: INT16 + left: INT16 + angle: INT16 + color_idx: CARD8 + shape_idx: CARD8 + pad0: CARD16 + pad1: CARD32 + ─── + type ⇒ XkbTextDoodad + ⇒ + type: CARD8 + priority: CARD8 + top: INT16 + left: INT16 + angle: INT16 + width: CARD16 + height: CARD16 + color_idx: CARD8 + pad0: CARD8 + pad1: CARD16 + text: XKMCountedString + font: XKMCountedString + ─── + type ⇒ XkbIndicatorDoodad + ⇒ + type: CARD8 + priority: CARD8 + top: INT16 + left: INT16 + shape_idx: CARD8 + on_color_idx: CARD8 + off_color_idx: CARD8 + pad0: CARD8 + pad1: CARD16 + pad2: CARD32 + ─── + type ⇒ XkbLogoDoodad + ⇒ + type: CARD8 + priority: CARD8 + top: INT16 + left: INT16 + angle: INT16 + color_idx: CARD8 + shape_idx: CARD8 + pad0: CARD16 + pad1: CARD32 + logo_name: XKMCountedString +└─── + +WARNING: XKMGeomDoodad has variable length depending on the type. +NOTE: The current server implementation does not use all fields of all +structures. + +┌─── + XKMOverlayDesc + name: XKMCountedString + num_rows: CARD8 + pad0: CARD8 + pad1: CARD16 + rows: LISTofXKMOverlayRowDesc +└─── + +┌─── + XKMOverlayRowDesc + name: XKMCountedString + row_under: CARD8 + num_keys: CARD8 + pad: CARD16 + keys: LISTofXKMOverlayKeyDesc +└─── + +┌─── + XKMOverlayKeyDesc + over: XKMKeyname + under: XKMKeyname +└─── + + ❧❧❧❧❧❧❧❧❧❧❧ + +3.3.6 XKMVirtualMods + +┌─── + XKMOverlayRowDesc + section_info: XKMSectionInfo + name: XKMCountedString + bound_mask: SETofVMODBITS + named_mask: SETofVMODBITS + vmods: LISTofCARD8 + pad: pad(vmods) + names: LISTofXKMCountedString +└─── + + VMODBITS: CARD16 + +Number of elements in vmods is equal to the number of bits set in +bound_mask. The padding completes vmods to a multiple of 4 byte units. +Number of elements in names is equal to the number of bits set in +named_mask.