about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/x11/xorg
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/x11/xorg')
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/.gitignore1
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/builder.sh40
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/darwin/dri/GL/internal/dri_interface.h1409
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/default.nix2915
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/dont-create-logdir-during-build.patch32
-rwxr-xr-xnixpkgs/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl322
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/imake-cc-wrapper-uberhack.patch13
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/imake-setup-hook.sh19
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/imake.patch37
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/imake.sh6
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/overrides.nix923
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/tarballs.list221
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/xcb-util-xrm.nix23
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/xwayland.nix40
14 files changed, 6001 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/x11/xorg/.gitignore b/nixpkgs/pkgs/servers/x11/xorg/.gitignore
new file mode 100644
index 000000000000..1bf88f244e80
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/.gitignore
@@ -0,0 +1 @@
+download-cache/
diff --git a/nixpkgs/pkgs/servers/x11/xorg/builder.sh b/nixpkgs/pkgs/servers/x11/xorg/builder.sh
new file mode 100644
index 000000000000..5a832cb14d53
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/builder.sh
@@ -0,0 +1,40 @@
+# This is the builder for all X.org components.
+source $stdenv/setup
+
+
+# After installation, automatically add all "Requires" fields in the
+# pkgconfig files (*.pc) to the propagated build inputs.
+origPostInstall=$postInstall
+postInstall() {
+    if test -n "$origPostInstall"; then eval "$origPostInstall"; fi
+
+    local r p requires
+    set +o pipefail
+    requires=$(grep "Requires:" ${!outputDev}/lib/pkgconfig/*.pc | \
+        sed "s/Requires://" | sed "s/,/ /g")
+    set -o pipefail
+
+    echo "propagating requisites $requires"
+
+    for r in $requires; do
+        for p in "${pkgsHostHost[@]}" "${pkgsHostTarget[@]}"; do
+            if test -e $p/lib/pkgconfig/$r.pc; then
+                echo "  found requisite $r in $p"
+                propagatedBuildInputs+=" $p"
+            fi
+        done
+    done
+}
+
+
+installFlags="appdefaultdir=$out/share/X11/app-defaults $installFlags"
+
+
+if test -n "$x11BuildHook"; then
+    source $x11BuildHook
+fi
+
+
+enableParallelBuilding=1
+
+genericBuild
diff --git a/nixpkgs/pkgs/servers/x11/xorg/darwin/dri/GL/internal/dri_interface.h b/nixpkgs/pkgs/servers/x11/xorg/darwin/dri/GL/internal/dri_interface.h
new file mode 100644
index 000000000000..b012570ae133
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/darwin/dri/GL/internal/dri_interface.h
@@ -0,0 +1,1409 @@
+/*
+ * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2007-2008 Red Hat, Inc.
+ * (C) Copyright IBM Corporation 2004
+ * 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.
+ */
+
+/**
+ * \file dri_interface.h
+ *
+ * This file contains all the types and functions that define the interface
+ * between a DRI driver and driver loader.  Currently, the most common driver
+ * loader is the XFree86 libGL.so.  However, other loaders do exist, and in
+ * the future the server-side libglx.a will also be a loader.
+ * 
+ * \author Kevin E. Martin <kevin@precisioninsight.com>
+ * \author Ian Romanick <idr@us.ibm.com>
+ * \author Kristian Høgsberg <krh@redhat.com>
+ */
+
+#ifndef DRI_INTERFACE_H
+#define DRI_INTERFACE_H
+
+/* For archs with no drm.h */
+#if defined(__APPLE__) || defined(__CYGWIN__) || defined(__GNU__)
+#ifndef __NOT_HAVE_DRM_H
+#define __NOT_HAVE_DRM_H
+#endif
+#endif
+
+#ifndef __NOT_HAVE_DRM_H
+#include <drm.h>
+#else
+typedef unsigned int drm_context_t;
+typedef unsigned int drm_drawable_t;
+typedef struct drm_clip_rect drm_clip_rect_t;
+#endif
+
+/**
+ * \name DRI interface structures
+ *
+ * The following structures define the interface between the GLX client
+ * side library and the DRI (direct rendering infrastructure).
+ */
+/*@{*/
+typedef struct __DRIdisplayRec		__DRIdisplay;
+typedef struct __DRIscreenRec		__DRIscreen;
+typedef struct __DRIcontextRec		__DRIcontext;
+typedef struct __DRIdrawableRec		__DRIdrawable;
+typedef struct __DRIconfigRec		__DRIconfig;
+typedef struct __DRIframebufferRec	__DRIframebuffer;
+typedef struct __DRIversionRec		__DRIversion;
+
+typedef struct __DRIcoreExtensionRec		__DRIcoreExtension;
+typedef struct __DRIextensionRec		__DRIextension;
+typedef struct __DRIcopySubBufferExtensionRec	__DRIcopySubBufferExtension;
+typedef struct __DRIswapControlExtensionRec	__DRIswapControlExtension;
+typedef struct __DRIframeTrackingExtensionRec	__DRIframeTrackingExtension;
+typedef struct __DRImediaStreamCounterExtensionRec	__DRImediaStreamCounterExtension;
+typedef struct __DRItexOffsetExtensionRec	__DRItexOffsetExtension;
+typedef struct __DRItexBufferExtensionRec	__DRItexBufferExtension;
+typedef struct __DRIlegacyExtensionRec		__DRIlegacyExtension;
+typedef struct __DRIswrastExtensionRec		__DRIswrastExtension;
+typedef struct __DRIbufferRec			__DRIbuffer;
+typedef struct __DRIdri2ExtensionRec		__DRIdri2Extension;
+typedef struct __DRIdri2LoaderExtensionRec	__DRIdri2LoaderExtension;
+typedef struct __DRI2flushExtensionRec	__DRI2flushExtension;
+typedef struct __DRI2throttleExtensionRec	__DRI2throttleExtension;
+
+
+typedef struct __DRIimageLoaderExtensionRec     __DRIimageLoaderExtension;
+typedef struct __DRIimageDriverExtensionRec     __DRIimageDriverExtension;
+
+/*@}*/
+
+
+/**
+ * Extension struct.  Drivers 'inherit' from this struct by embedding
+ * it as the first element in the extension struct.
+ *
+ * We never break API in for a DRI extension.  If we need to change
+ * the way things work in a non-backwards compatible manner, we
+ * introduce a new extension.  During a transition period, we can
+ * leave both the old and the new extension in the driver, which
+ * allows us to move to the new interface without having to update the
+ * loader(s) in lock step.
+ *
+ * However, we can add entry points to an extension over time as long
+ * as we don't break the old ones.  As we add entry points to an
+ * extension, we increase the version number.  The corresponding
+ * #define can be used to guard code that accesses the new entry
+ * points at compile time and the version field in the extension
+ * struct can be used at run-time to determine how to use the
+ * extension.
+ */
+struct __DRIextensionRec {
+    const char *name;
+    int version;
+};
+
+/**
+ * The first set of extension are the screen extensions, returned by
+ * __DRIcore::getExtensions().  This entry point will return a list of
+ * extensions and the loader can use the ones it knows about by
+ * casting them to more specific extensions and advertising any GLX
+ * extensions the DRI extensions enables.
+ */
+
+/**
+ * Used by drivers to indicate support for setting the read drawable.
+ */
+#define __DRI_READ_DRAWABLE "DRI_ReadDrawable"
+#define __DRI_READ_DRAWABLE_VERSION 1
+
+/**
+ * Used by drivers that implement the GLX_MESA_copy_sub_buffer extension.
+ */
+#define __DRI_COPY_SUB_BUFFER "DRI_CopySubBuffer"
+#define __DRI_COPY_SUB_BUFFER_VERSION 1
+struct __DRIcopySubBufferExtensionRec {
+    __DRIextension base;
+    void (*copySubBuffer)(__DRIdrawable *drawable, int x, int y, int w, int h);
+};
+
+/**
+ * Used by drivers that implement the GLX_SGI_swap_control or
+ * GLX_MESA_swap_control extension.
+ */
+#define __DRI_SWAP_CONTROL "DRI_SwapControl"
+#define __DRI_SWAP_CONTROL_VERSION 1
+struct __DRIswapControlExtensionRec {
+    __DRIextension base;
+    void (*setSwapInterval)(__DRIdrawable *drawable, unsigned int inteval);
+    unsigned int (*getSwapInterval)(__DRIdrawable *drawable);
+};
+
+/**
+ * Used by drivers that implement the GLX_MESA_swap_frame_usage extension.
+ */
+#define __DRI_FRAME_TRACKING "DRI_FrameTracking"
+#define __DRI_FRAME_TRACKING_VERSION 1
+struct __DRIframeTrackingExtensionRec {
+    __DRIextension base;
+
+    /**
+     * Enable or disable frame usage tracking.
+     * 
+     * \since Internal API version 20030317.
+     */
+    int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable);
+
+    /**
+     * Retrieve frame usage information.
+     * 
+     * \since Internal API version 20030317.
+     */
+    int (*queryFrameTracking)(__DRIdrawable *drawable,
+			      int64_t * sbc, int64_t * missedFrames,
+			      float * lastMissedUsage, float * usage);
+};
+
+
+/**
+ * Used by drivers that implement the GLX_SGI_video_sync extension.
+ */
+#define __DRI_MEDIA_STREAM_COUNTER "DRI_MediaStreamCounter"
+#define __DRI_MEDIA_STREAM_COUNTER_VERSION 1
+struct __DRImediaStreamCounterExtensionRec {
+    __DRIextension base;
+
+    /**
+     * Wait for the MSC to equal target_msc, or, if that has already passed,
+     * the next time (MSC % divisor) is equal to remainder.  If divisor is
+     * zero, the function will return as soon as MSC is greater than or equal
+     * to target_msc.
+     */
+    int (*waitForMSC)(__DRIdrawable *drawable,
+		      int64_t target_msc, int64_t divisor, int64_t remainder,
+		      int64_t * msc, int64_t * sbc);
+
+    /**
+     * Get the number of vertical refreshes since some point in time before
+     * this function was first called (i.e., system start up).
+     */
+    int (*getDrawableMSC)(__DRIscreen *screen, __DRIdrawable *drawable,
+			  int64_t *msc);
+};
+
+
+#define __DRI_TEX_OFFSET "DRI_TexOffset"
+#define __DRI_TEX_OFFSET_VERSION 1
+struct __DRItexOffsetExtensionRec {
+    __DRIextension base;
+
+    /**
+     * Method to override base texture image with a driver specific 'offset'.
+     * The depth passed in allows e.g. to ignore the alpha channel of texture
+     * images where the non-alpha components don't occupy a whole texel.
+     *
+     * For GLX_EXT_texture_from_pixmap with AIGLX.
+     */
+    void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname,
+			 unsigned long long offset, GLint depth, GLuint pitch);
+};
+
+
+/* Valid values for format in the setTexBuffer2 function below.  These
+ * values match the GLX tokens for compatibility reasons, but we
+ * define them here since the DRI interface can't depend on GLX. */
+#define __DRI_TEXTURE_FORMAT_NONE        0x20D8
+#define __DRI_TEXTURE_FORMAT_RGB         0x20D9
+#define __DRI_TEXTURE_FORMAT_RGBA        0x20DA
+
+#define __DRI_TEX_BUFFER "DRI_TexBuffer"
+#define __DRI_TEX_BUFFER_VERSION 2
+struct __DRItexBufferExtensionRec {
+    __DRIextension base;
+
+    /**
+     * Method to override base texture image with the contents of a
+     * __DRIdrawable. 
+     *
+     * For GLX_EXT_texture_from_pixmap with AIGLX.  Deprecated in favor of
+     * setTexBuffer2 in version 2 of this interface
+     */
+    void (*setTexBuffer)(__DRIcontext *pDRICtx,
+			 GLint target,
+			 __DRIdrawable *pDraw);
+
+    /**
+     * Method to override base texture image with the contents of a
+     * __DRIdrawable, including the required texture format attribute.
+     *
+     * For GLX_EXT_texture_from_pixmap with AIGLX.
+     */
+    void (*setTexBuffer2)(__DRIcontext *pDRICtx,
+			  GLint target,
+			  GLint format,
+			  __DRIdrawable *pDraw);
+    /**
+     * Method to release texture buffer in case some special platform
+     * need this.
+     *
+     * For GLX_EXT_texture_from_pixmap with AIGLX.
+     */
+    void (*releaseTexBuffer)(__DRIcontext *pDRICtx,
+			GLint target,
+			__DRIdrawable *pDraw);
+};
+
+/**
+ * Used by drivers that implement DRI2
+ */
+#define __DRI2_FLUSH "DRI2_Flush"
+#define __DRI2_FLUSH_VERSION 4
+
+#define __DRI2_FLUSH_DRAWABLE (1 << 0) /* the drawable should be flushed. */
+#define __DRI2_FLUSH_CONTEXT  (1 << 1) /* glFlush should be called */
+
+enum __DRI2throttleReason {
+   __DRI2_THROTTLE_SWAPBUFFER,
+   __DRI2_THROTTLE_COPYSUBBUFFER,
+   __DRI2_THROTTLE_FLUSHFRONT
+};
+
+struct __DRI2flushExtensionRec {
+    __DRIextension base;
+    void (*flush)(__DRIdrawable *drawable);
+
+    /**
+     * Ask the driver to call getBuffers/getBuffersWithFormat before
+     * it starts rendering again.
+     *
+     * \param drawable the drawable to invalidate
+     *
+     * \since 3
+     */
+    void (*invalidate)(__DRIdrawable *drawable);
+
+    /**
+     * This function reduces the number of flushes in the driver by combining
+     * several operations into one call.
+     *
+     * It can:
+     * - throttle
+     * - flush a drawable
+     * - flush a context
+     *
+     * \param context           the context
+     * \param drawable          the drawable to flush
+     * \param flags             a combination of _DRI2_FLUSH_xxx flags
+     * \param throttle_reason   the reason for throttling, 0 = no throttling
+     *
+     * \since 4
+     */
+    void (*flush_with_flags)(__DRIcontext *ctx,
+                             __DRIdrawable *drawable,
+                             unsigned flags,
+                             enum __DRI2throttleReason throttle_reason);
+};
+
+
+/**
+ * Extension that the driver uses to request
+ * throttle callbacks.
+ */
+
+#define __DRI2_THROTTLE "DRI2_Throttle"
+#define __DRI2_THROTTLE_VERSION 1
+
+struct __DRI2throttleExtensionRec {
+   __DRIextension base;
+   void (*throttle)(__DRIcontext *ctx,
+		    __DRIdrawable *drawable,
+		    enum __DRI2throttleReason reason);
+};
+
+/*@}*/
+
+/**
+ * The following extensions describe loader features that the DRI
+ * driver can make use of.  Some of these are mandatory, such as the
+ * getDrawableInfo extension for DRI and the DRI Loader extensions for
+ * DRI2, while others are optional, and if present allow the driver to
+ * expose certain features.  The loader pass in a NULL terminated
+ * array of these extensions to the driver in the createNewScreen
+ * constructor.
+ */
+
+typedef struct __DRIgetDrawableInfoExtensionRec __DRIgetDrawableInfoExtension;
+typedef struct __DRIsystemTimeExtensionRec __DRIsystemTimeExtension;
+typedef struct __DRIdamageExtensionRec __DRIdamageExtension;
+typedef struct __DRIloaderExtensionRec __DRIloaderExtension;
+typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension;
+
+
+/**
+ * Callback to getDrawableInfo protocol
+ */
+#define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo"
+#define __DRI_GET_DRAWABLE_INFO_VERSION 1
+struct __DRIgetDrawableInfoExtensionRec {
+    __DRIextension base;
+
+    /**
+     * This function is used to get information about the position, size, and
+     * clip rects of a drawable.
+     */
+    GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable,
+	unsigned int * index, unsigned int * stamp,
+        int * x, int * y, int * width, int * height,
+        int * numClipRects, drm_clip_rect_t ** pClipRects,
+        int * backX, int * backY,
+	int * numBackClipRects, drm_clip_rect_t ** pBackClipRects,
+	void *loaderPrivate);
+};
+
+/**
+ * Callback to get system time for media stream counter extensions.
+ */
+#define __DRI_SYSTEM_TIME "DRI_SystemTime"
+#define __DRI_SYSTEM_TIME_VERSION 1
+struct __DRIsystemTimeExtensionRec {
+    __DRIextension base;
+
+    /**
+     * Get the 64-bit unadjusted system time (UST).
+     */
+    int (*getUST)(int64_t * ust);
+
+    /**
+     * Get the media stream counter (MSC) rate.
+     * 
+     * Matching the definition in GLX_OML_sync_control, this function returns
+     * the rate of the "media stream counter".  In practical terms, this is
+     * the frame refresh rate of the display.
+     */
+    GLboolean (*getMSCRate)(__DRIdrawable *draw,
+			    int32_t * numerator, int32_t * denominator,
+			    void *loaderPrivate);
+};
+
+/**
+ * Damage reporting
+ */
+#define __DRI_DAMAGE "DRI_Damage"
+#define __DRI_DAMAGE_VERSION 1
+struct __DRIdamageExtensionRec {
+    __DRIextension base;
+
+    /**
+     * Reports areas of the given drawable which have been modified by the
+     * driver.
+     *
+     * \param drawable which the drawing was done to.
+     * \param rects rectangles affected, with the drawable origin as the
+     *	      origin.
+     * \param x X offset of the drawable within the screen (used in the
+     *	      front_buffer case)
+     * \param y Y offset of the drawable within the screen.
+     * \param front_buffer boolean flag for whether the drawing to the
+     * 	      drawable was actually done directly to the front buffer (instead
+     *	      of backing storage, for example)
+     * \param loaderPrivate the data passed in at createNewDrawable time
+     */
+    void (*reportDamage)(__DRIdrawable *draw,
+			 int x, int y,
+			 drm_clip_rect_t *rects, int num_rects,
+			 GLboolean front_buffer,
+			 void *loaderPrivate);
+};
+
+#define __DRI_SWRAST_IMAGE_OP_DRAW	1
+#define __DRI_SWRAST_IMAGE_OP_CLEAR	2
+#define __DRI_SWRAST_IMAGE_OP_SWAP	3
+
+/**
+ * SWRast Loader extension.
+ */
+#define __DRI_SWRAST_LOADER "DRI_SWRastLoader"
+#define __DRI_SWRAST_LOADER_VERSION 1
+struct __DRIswrastLoaderExtensionRec {
+    __DRIextension base;
+
+    /*
+     * Drawable position and size
+     */
+    void (*getDrawableInfo)(__DRIdrawable *drawable,
+			    int *x, int *y, int *width, int *height,
+			    void *loaderPrivate);
+
+    /**
+     * Put image to drawable
+     */
+    void (*putImage)(__DRIdrawable *drawable, int op,
+		     int x, int y, int width, int height,
+		     char *data, void *loaderPrivate);
+
+    /**
+     * Get image from readable
+     */
+    void (*getImage)(__DRIdrawable *readable,
+		     int x, int y, int width, int height,
+		     char *data, void *loaderPrivate);
+};
+
+/**
+ * Invalidate loader extension.  The presence of this extension
+ * indicates to the DRI driver that the loader will call invalidate in
+ * the __DRI2_FLUSH extension, whenever the needs to query for new
+ * buffers.  This means that the DRI driver can drop the polling in
+ * glViewport().
+ *
+ * The extension doesn't provide any functionality, it's only use to
+ * indicate to the driver that it can use the new semantics.  A DRI
+ * driver can use this to switch between the different semantics or
+ * just refuse to initialize if this extension isn't present.
+ */
+#define __DRI_USE_INVALIDATE "DRI_UseInvalidate"
+#define __DRI_USE_INVALIDATE_VERSION 1
+
+typedef struct __DRIuseInvalidateExtensionRec __DRIuseInvalidateExtension;
+struct __DRIuseInvalidateExtensionRec {
+   __DRIextension base;
+};
+
+/**
+ * The remaining extensions describe driver extensions, immediately
+ * available interfaces provided by the driver.  To start using the
+ * driver, dlsym() for the __DRI_DRIVER_EXTENSIONS symbol and look for
+ * the extension you need in the array.
+ */
+#define __DRI_DRIVER_EXTENSIONS "__driDriverExtensions"
+
+/**
+ * This symbol replaces the __DRI_DRIVER_EXTENSIONS symbol, and will be
+ * suffixed by "_drivername", allowing multiple drivers to be built into one
+ * library, and also giving the driver the chance to return a variable driver
+ * extensions struct depending on the driver name being loaded or any other
+ * system state.
+ *
+ * The function prototype is:
+ *
+ * const __DRIextension **__driDriverGetExtensions_drivername(void);
+ */
+#define __DRI_DRIVER_GET_EXTENSIONS "__driDriverGetExtensions"
+
+/**
+ * Tokens for __DRIconfig attribs.  A number of attributes defined by
+ * GLX or EGL standards are not in the table, as they must be provided
+ * by the loader.  For example, FBConfig ID or visual ID, drawable type.
+ */
+
+#define __DRI_ATTRIB_BUFFER_SIZE		 1
+#define __DRI_ATTRIB_LEVEL			 2
+#define __DRI_ATTRIB_RED_SIZE			 3
+#define __DRI_ATTRIB_GREEN_SIZE			 4
+#define __DRI_ATTRIB_BLUE_SIZE			 5
+#define __DRI_ATTRIB_LUMINANCE_SIZE		 6
+#define __DRI_ATTRIB_ALPHA_SIZE			 7
+#define __DRI_ATTRIB_ALPHA_MASK_SIZE		 8
+#define __DRI_ATTRIB_DEPTH_SIZE			 9
+#define __DRI_ATTRIB_STENCIL_SIZE		10
+#define __DRI_ATTRIB_ACCUM_RED_SIZE		11
+#define __DRI_ATTRIB_ACCUM_GREEN_SIZE		12
+#define __DRI_ATTRIB_ACCUM_BLUE_SIZE		13
+#define __DRI_ATTRIB_ACCUM_ALPHA_SIZE		14
+#define __DRI_ATTRIB_SAMPLE_BUFFERS		15
+#define __DRI_ATTRIB_SAMPLES			16
+#define __DRI_ATTRIB_RENDER_TYPE		17
+#define __DRI_ATTRIB_CONFIG_CAVEAT		18
+#define __DRI_ATTRIB_CONFORMANT			19
+#define __DRI_ATTRIB_DOUBLE_BUFFER		20
+#define __DRI_ATTRIB_STEREO			21
+#define __DRI_ATTRIB_AUX_BUFFERS		22
+#define __DRI_ATTRIB_TRANSPARENT_TYPE		23
+#define __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE	24
+#define __DRI_ATTRIB_TRANSPARENT_RED_VALUE	25
+#define __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE	26
+#define __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE	27
+#define __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE	28
+#define __DRI_ATTRIB_FLOAT_MODE			29
+#define __DRI_ATTRIB_RED_MASK			30
+#define __DRI_ATTRIB_GREEN_MASK			31
+#define __DRI_ATTRIB_BLUE_MASK			32
+#define __DRI_ATTRIB_ALPHA_MASK			33
+#define __DRI_ATTRIB_MAX_PBUFFER_WIDTH		34
+#define __DRI_ATTRIB_MAX_PBUFFER_HEIGHT		35
+#define __DRI_ATTRIB_MAX_PBUFFER_PIXELS		36
+#define __DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH	37
+#define __DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT	38
+#define __DRI_ATTRIB_VISUAL_SELECT_GROUP	39
+#define __DRI_ATTRIB_SWAP_METHOD		40
+#define __DRI_ATTRIB_MAX_SWAP_INTERVAL		41
+#define __DRI_ATTRIB_MIN_SWAP_INTERVAL		42
+#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGB	43
+#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGBA	44
+#define __DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE	45
+#define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS	46
+#define __DRI_ATTRIB_YINVERTED			47
+#define __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE	48
+
+/* __DRI_ATTRIB_RENDER_TYPE */
+#define __DRI_ATTRIB_RGBA_BIT			0x01	
+#define __DRI_ATTRIB_COLOR_INDEX_BIT		0x02
+#define __DRI_ATTRIB_LUMINANCE_BIT		0x04
+#define __DRI_ATTRIB_FLOAT_BIT			0x08
+#define __DRI_ATTRIB_UNSIGNED_FLOAT_BIT		0x10
+
+/* __DRI_ATTRIB_CONFIG_CAVEAT */
+#define __DRI_ATTRIB_SLOW_BIT			0x01
+#define __DRI_ATTRIB_NON_CONFORMANT_CONFIG	0x02
+
+/* __DRI_ATTRIB_TRANSPARENT_TYPE */
+#define __DRI_ATTRIB_TRANSPARENT_RGB		0x00
+#define __DRI_ATTRIB_TRANSPARENT_INDEX		0x01
+
+/* __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS	 */
+#define __DRI_ATTRIB_TEXTURE_1D_BIT		0x01
+#define __DRI_ATTRIB_TEXTURE_2D_BIT		0x02
+#define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT	0x04
+
+/**
+ * This extension defines the core DRI functionality.
+ */
+#define __DRI_CORE "DRI_Core"
+#define __DRI_CORE_VERSION 1
+
+struct __DRIcoreExtensionRec {
+    __DRIextension base;
+
+    __DRIscreen *(*createNewScreen)(int screen, int fd,
+				    unsigned int sarea_handle,
+				    const __DRIextension **extensions,
+				    const __DRIconfig ***driverConfigs,
+				    void *loaderPrivate);
+
+    void (*destroyScreen)(__DRIscreen *screen);
+
+    const __DRIextension **(*getExtensions)(__DRIscreen *screen);
+
+    int (*getConfigAttrib)(const __DRIconfig *config,
+			   unsigned int attrib,
+			   unsigned int *value);
+
+    int (*indexConfigAttrib)(const __DRIconfig *config, int index,
+			     unsigned int *attrib, unsigned int *value);
+
+    __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,
+					const __DRIconfig *config,
+					unsigned int drawable_id,
+					unsigned int head,
+					void *loaderPrivate);
+
+    void (*destroyDrawable)(__DRIdrawable *drawable);
+
+    void (*swapBuffers)(__DRIdrawable *drawable);
+
+    __DRIcontext *(*createNewContext)(__DRIscreen *screen,
+				      const __DRIconfig *config,
+				      __DRIcontext *shared,
+				      void *loaderPrivate);
+
+    int (*copyContext)(__DRIcontext *dest,
+		       __DRIcontext *src,
+		       unsigned long mask);
+
+    void (*destroyContext)(__DRIcontext *context);
+
+    int (*bindContext)(__DRIcontext *ctx,
+		       __DRIdrawable *pdraw,
+		       __DRIdrawable *pread);
+
+    int (*unbindContext)(__DRIcontext *ctx);
+};
+
+/**
+ * Stored version of some component (i.e., server-side DRI module, kernel-side
+ * DRM, etc.).
+ * 
+ * \todo
+ * There are several data structures that explicitly store a major version,
+ * minor version, and patch level.  These structures should be modified to
+ * have a \c __DRIversionRec instead.
+ */
+struct __DRIversionRec {
+    int    major;        /**< Major version number. */
+    int    minor;        /**< Minor version number. */
+    int    patch;        /**< Patch-level. */
+};
+
+/**
+ * Framebuffer information record.  Used by libGL to communicate information
+ * about the framebuffer to the driver's \c __driCreateNewScreen function.
+ * 
+ * In XFree86, most of this information is derrived from data returned by
+ * calling \c XF86DRIGetDeviceInfo.
+ *
+ * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen
+ *     __driUtilCreateNewScreen CallCreateNewScreen
+ *
+ * \bug This structure could be better named.
+ */
+struct __DRIframebufferRec {
+    unsigned char *base;    /**< Framebuffer base address in the CPU's
+			     * address space.  This value is calculated by
+			     * calling \c drmMap on the framebuffer handle
+			     * returned by \c XF86DRIGetDeviceInfo (or a
+			     * similar function).
+			     */
+    int size;               /**< Framebuffer size, in bytes. */
+    int stride;             /**< Number of bytes from one line to the next. */
+    int width;              /**< Pixel width of the framebuffer. */
+    int height;             /**< Pixel height of the framebuffer. */
+    int dev_priv_size;      /**< Size of the driver's dev-priv structure. */
+    void *dev_priv;         /**< Pointer to the driver's dev-priv structure. */
+};
+
+
+/**
+ * This extension provides alternative screen, drawable and context
+ * constructors for legacy DRI functionality.  This is used in
+ * conjunction with the core extension.
+ */
+#define __DRI_LEGACY "DRI_Legacy"
+#define __DRI_LEGACY_VERSION 1
+
+struct __DRIlegacyExtensionRec {
+    __DRIextension base;
+
+    __DRIscreen *(*createNewScreen)(int screen,
+				    const __DRIversion *ddx_version,
+				    const __DRIversion *dri_version,
+				    const __DRIversion *drm_version,
+				    const __DRIframebuffer *frame_buffer,
+				    void *pSAREA, int fd, 
+				    const __DRIextension **extensions,
+				    const __DRIconfig ***driver_configs,
+				    void *loaderPrivate);
+
+    __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,
+					const __DRIconfig *config,
+					drm_drawable_t hwDrawable,
+					int renderType, const int *attrs,
+					void *loaderPrivate);
+
+    __DRIcontext *(*createNewContext)(__DRIscreen *screen,
+				      const __DRIconfig *config,
+				      int render_type,
+				      __DRIcontext *shared,
+				      drm_context_t hwContext,
+				      void *loaderPrivate);
+};
+
+/**
+ * This extension provides alternative screen, drawable and context
+ * constructors for swrast DRI functionality.  This is used in
+ * conjunction with the core extension.
+ */
+#define __DRI_SWRAST "DRI_SWRast"
+#define __DRI_SWRAST_VERSION 4
+
+struct __DRIswrastExtensionRec {
+    __DRIextension base;
+
+    __DRIscreen *(*createNewScreen)(int screen,
+				    const __DRIextension **extensions,
+				    const __DRIconfig ***driver_configs,
+				    void *loaderPrivate);
+
+    __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen,
+					const __DRIconfig *config,
+					void *loaderPrivate);
+
+   /* Since version 2 */
+   __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen,
+                                           int api,
+                                           const __DRIconfig *config,
+                                           __DRIcontext *shared,
+                                           void *data);
+
+   /**
+    * Create a context for a particular API with a set of attributes
+    *
+    * \since version 3
+    *
+    * \sa __DRIdri2ExtensionRec::createContextAttribs
+    */
+   __DRIcontext *(*createContextAttribs)(__DRIscreen *screen,
+					 int api,
+					 const __DRIconfig *config,
+					 __DRIcontext *shared,
+					 unsigned num_attribs,
+					 const uint32_t *attribs,
+					 unsigned *error,
+					 void *loaderPrivate);
+
+   /**
+    * createNewScreen() with the driver extensions passed in.
+    *
+    * \since version 4
+    */
+   __DRIscreen *(*createNewScreen2)(int screen,
+                                    const __DRIextension **loader_extensions,
+                                    const __DRIextension **driver_extensions,
+                                    const __DRIconfig ***driver_configs,
+                                    void *loaderPrivate);
+
+};
+
+/** Common DRI function definitions, shared among DRI2 and Image extensions
+ */
+
+typedef __DRIscreen *
+(*__DRIcreateNewScreen2Func)(int screen, int fd,
+                             const __DRIextension **extensions,
+                             const __DRIextension **driver_extensions,
+                             const __DRIconfig ***driver_configs,
+                             void *loaderPrivate);
+
+typedef __DRIdrawable *
+(*__DRIcreateNewDrawableFunc)(__DRIscreen *screen,
+                              const __DRIconfig *config,
+                              void *loaderPrivate);
+
+typedef __DRIcontext *
+(*__DRIcreateContextAttribsFunc)(__DRIscreen *screen,
+                                 int api,
+                                 const __DRIconfig *config,
+                                 __DRIcontext *shared,
+                                 unsigned num_attribs,
+                                 const uint32_t *attribs,
+                                 unsigned *error,
+                                 void *loaderPrivate);
+
+typedef unsigned int
+(*__DRIgetAPIMaskFunc)(__DRIscreen *screen);
+
+/**
+ * DRI2 Loader extension.
+ */
+#define __DRI_BUFFER_FRONT_LEFT		0
+#define __DRI_BUFFER_BACK_LEFT		1
+#define __DRI_BUFFER_FRONT_RIGHT	2
+#define __DRI_BUFFER_BACK_RIGHT		3
+#define __DRI_BUFFER_DEPTH		4
+#define __DRI_BUFFER_STENCIL		5
+#define __DRI_BUFFER_ACCUM		6
+#define __DRI_BUFFER_FAKE_FRONT_LEFT	7
+#define __DRI_BUFFER_FAKE_FRONT_RIGHT	8
+#define __DRI_BUFFER_DEPTH_STENCIL	9  /**< Only available with DRI2 1.1 */
+#define __DRI_BUFFER_HIZ		10
+
+/* Inofficial and for internal use. Increase when adding a new buffer token. */
+#define __DRI_BUFFER_COUNT		11
+
+struct __DRIbufferRec {
+    unsigned int attachment;
+    unsigned int name;
+    unsigned int pitch;
+    unsigned int cpp;
+    unsigned int flags;
+};
+
+#define __DRI_DRI2_LOADER "DRI_DRI2Loader"
+#define __DRI_DRI2_LOADER_VERSION 3
+struct __DRIdri2LoaderExtensionRec {
+    __DRIextension base;
+
+    __DRIbuffer *(*getBuffers)(__DRIdrawable *driDrawable,
+			       int *width, int *height,
+			       unsigned int *attachments, int count,
+			       int *out_count, void *loaderPrivate);
+
+    /**
+     * Flush pending front-buffer rendering
+     *
+     * Any rendering that has been performed to the
+     * \c __DRI_BUFFER_FAKE_FRONT_LEFT will be flushed to the
+     * \c __DRI_BUFFER_FRONT_LEFT.
+     *
+     * \param driDrawable    Drawable whose front-buffer is to be flushed
+     * \param loaderPrivate  Loader's private data that was previously passed
+     *                       into __DRIdri2ExtensionRec::createNewDrawable
+     */
+    void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);
+
+
+    /**
+     * Get list of buffers from the server
+     *
+     * Gets a list of buffer for the specified set of attachments.  Unlike
+     * \c ::getBuffers, this function takes a list of attachments paired with
+     * opaque \c unsigned \c int value describing the format of the buffer.
+     * It is the responsibility of the caller to know what the service that
+     * allocates the buffers will expect to receive for the format.
+     *
+     * \param driDrawable    Drawable whose buffers are being queried.
+     * \param width          Output where the width of the buffers is stored.
+     * \param height         Output where the height of the buffers is stored.
+     * \param attachments    List of pairs of attachment ID and opaque format
+     *                       requested for the drawable.
+     * \param count          Number of attachment / format pairs stored in
+     *                       \c attachments.
+     * \param loaderPrivate  Loader's private data that was previously passed
+     *                       into __DRIdri2ExtensionRec::createNewDrawable.
+     */
+    __DRIbuffer *(*getBuffersWithFormat)(__DRIdrawable *driDrawable,
+					 int *width, int *height,
+					 unsigned int *attachments, int count,
+					 int *out_count, void *loaderPrivate);
+};
+
+/**
+ * This extension provides alternative screen, drawable and context
+ * constructors for DRI2.
+ */
+#define __DRI_DRI2 "DRI_DRI2"
+#define __DRI_DRI2_VERSION 4
+
+#define __DRI_API_OPENGL	0	/**< OpenGL compatibility profile */
+#define __DRI_API_GLES		1	/**< OpenGL ES 1.x */
+#define __DRI_API_GLES2		2	/**< OpenGL ES 2.x */
+#define __DRI_API_OPENGL_CORE	3	/**< OpenGL 3.2+ core profile */
+#define __DRI_API_GLES3		4	/**< OpenGL ES 3.x */
+
+#define __DRI_CTX_ATTRIB_MAJOR_VERSION		0
+#define __DRI_CTX_ATTRIB_MINOR_VERSION		1
+#define __DRI_CTX_ATTRIB_FLAGS			2
+
+/**
+ * \requires __DRI2_ROBUSTNESS.
+ */
+#define __DRI_CTX_ATTRIB_RESET_STRATEGY		3
+
+#define __DRI_CTX_FLAG_DEBUG			0x00000001
+#define __DRI_CTX_FLAG_FORWARD_COMPATIBLE	0x00000002
+
+/**
+ * \requires __DRI2_ROBUSTNESS.
+ */
+#define __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS	0x00000004
+
+/**
+ * \name Context reset strategies.
+ */
+/*@{*/
+#define __DRI_CTX_RESET_NO_NOTIFICATION		0
+#define __DRI_CTX_RESET_LOSE_CONTEXT		1
+/*@}*/
+
+/**
+ * \name Reasons that __DRIdri2Extension::createContextAttribs might fail
+ */
+/*@{*/
+/** Success! */
+#define __DRI_CTX_ERROR_SUCCESS			0
+
+/** Memory allocation failure */
+#define __DRI_CTX_ERROR_NO_MEMORY		1
+
+/** Client requested an API (e.g., OpenGL ES 2.0) that the driver can't do. */
+#define __DRI_CTX_ERROR_BAD_API			2
+
+/** Client requested an API version that the driver can't do. */
+#define __DRI_CTX_ERROR_BAD_VERSION		3
+
+/** Client requested a flag or combination of flags the driver can't do. */
+#define __DRI_CTX_ERROR_BAD_FLAG		4
+
+/** Client requested an attribute the driver doesn't understand. */
+#define __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE	5
+
+/** Client requested a flag the driver doesn't understand. */
+#define __DRI_CTX_ERROR_UNKNOWN_FLAG		6
+/*@}*/
+
+struct __DRIdri2ExtensionRec {
+    __DRIextension base;
+
+    __DRIscreen *(*createNewScreen)(int screen, int fd,
+				    const __DRIextension **extensions,
+				    const __DRIconfig ***driver_configs,
+				    void *loaderPrivate);
+
+   __DRIcreateNewDrawableFunc   createNewDrawable;
+   __DRIcontext *(*createNewContext)(__DRIscreen *screen,
+                                     const __DRIconfig *config,
+                                     __DRIcontext *shared,
+                                     void *loaderPrivate);
+
+   /* Since version 2 */
+   __DRIgetAPIMaskFunc          getAPIMask;
+
+   __DRIcontext *(*createNewContextForAPI)(__DRIscreen *screen,
+					   int api,
+					   const __DRIconfig *config,
+					   __DRIcontext *shared,
+					   void *data);
+
+   __DRIbuffer *(*allocateBuffer)(__DRIscreen *screen,
+				  unsigned int attachment,
+				  unsigned int format,
+				  int width,
+				  int height);
+   void (*releaseBuffer)(__DRIscreen *screen,
+			 __DRIbuffer *buffer);
+
+   /**
+    * Create a context for a particular API with a set of attributes
+    *
+    * \since version 3
+    *
+    * \sa __DRIswrastExtensionRec::createContextAttribs
+    */
+   __DRIcreateContextAttribsFunc        createContextAttribs;
+
+   /**
+    * createNewScreen with the driver's extension list passed in.
+    *
+    * \since version 4
+    */
+   __DRIcreateNewScreen2Func            createNewScreen2;
+};
+
+
+/**
+ * This extension provides functionality to enable various EGLImage
+ * extensions.
+ */
+#define __DRI_IMAGE "DRI_IMAGE"
+#define __DRI_IMAGE_VERSION 8
+
+/**
+ * These formats correspond to the similarly named MESA_FORMAT_*
+ * tokens, except in the native endian of the CPU.  For example, on
+ * little endian __DRI_IMAGE_FORMAT_XRGB8888 corresponds to
+ * MESA_FORMAT_XRGB8888, but MESA_FORMAT_XRGB8888_REV on big endian.
+ *
+ * __DRI_IMAGE_FORMAT_NONE is for images that aren't directly usable
+ * by the driver (YUV planar formats) but serve as a base image for
+ * creating sub-images for the different planes within the image.
+ *
+ * R8, GR88 and NONE should not be used with createImageFormName or
+ * createImage, and are returned by query from sub images created with
+ * createImageFromNames (NONE, see above) and fromPlane (R8 & GR88).
+ */
+#define __DRI_IMAGE_FORMAT_RGB565       0x1001
+#define __DRI_IMAGE_FORMAT_XRGB8888     0x1002
+#define __DRI_IMAGE_FORMAT_ARGB8888     0x1003
+#define __DRI_IMAGE_FORMAT_ABGR8888     0x1004
+#define __DRI_IMAGE_FORMAT_XBGR8888     0x1005
+#define __DRI_IMAGE_FORMAT_R8           0x1006 /* Since version 5 */
+#define __DRI_IMAGE_FORMAT_GR88         0x1007
+#define __DRI_IMAGE_FORMAT_NONE         0x1008
+#define __DRI_IMAGE_FORMAT_XRGB2101010  0x1009
+#define __DRI_IMAGE_FORMAT_ARGB2101010  0x100a
+#define __DRI_IMAGE_FORMAT_SARGB8       0x100b
+
+#define __DRI_IMAGE_USE_SHARE		0x0001
+#define __DRI_IMAGE_USE_SCANOUT		0x0002
+#define __DRI_IMAGE_USE_CURSOR		0x0004 /* Depricated */
+#define __DRI_IMAGE_USE_LINEAR		0x0008
+
+
+/**
+ * Four CC formats that matches with WL_DRM_FORMAT_* from wayland_drm.h
+ * and GBM_FORMAT_* from gbm.h, used with createImageFromNames.
+ *
+ * \since 5
+ */
+
+#define __DRI_IMAGE_FOURCC_RGB565	0x36314752
+#define __DRI_IMAGE_FOURCC_ARGB8888	0x34325241
+#define __DRI_IMAGE_FOURCC_XRGB8888	0x34325258
+#define __DRI_IMAGE_FOURCC_ABGR8888	0x34324241
+#define __DRI_IMAGE_FOURCC_XBGR8888	0x34324258
+#define __DRI_IMAGE_FOURCC_YUV410	0x39565559
+#define __DRI_IMAGE_FOURCC_YUV411	0x31315559
+#define __DRI_IMAGE_FOURCC_YUV420	0x32315559
+#define __DRI_IMAGE_FOURCC_YUV422	0x36315559
+#define __DRI_IMAGE_FOURCC_YUV444	0x34325559
+#define __DRI_IMAGE_FOURCC_NV12		0x3231564e
+#define __DRI_IMAGE_FOURCC_NV16		0x3631564e
+#define __DRI_IMAGE_FOURCC_YUYV		0x56595559
+
+
+/**
+ * Queryable on images created by createImageFromNames.
+ *
+ * RGB and RGBA are may be usable directly as images but its still
+ * recommended to call fromPlanar with plane == 0.
+ *
+ * Y_U_V, Y_UV and Y_XUXV all requires call to fromPlanar to create
+ * usable sub-images, sampling from images return raw YUV data and
+ * color conversion needs to be done in the shader.
+ *
+ * \since 5
+ */
+
+#define __DRI_IMAGE_COMPONENTS_RGB	0x3001
+#define __DRI_IMAGE_COMPONENTS_RGBA	0x3002
+#define __DRI_IMAGE_COMPONENTS_Y_U_V	0x3003
+#define __DRI_IMAGE_COMPONENTS_Y_UV	0x3004
+#define __DRI_IMAGE_COMPONENTS_Y_XUXV	0x3005
+
+
+/**
+ * queryImage attributes
+ */
+
+#define __DRI_IMAGE_ATTRIB_STRIDE	0x2000
+#define __DRI_IMAGE_ATTRIB_HANDLE	0x2001
+#define __DRI_IMAGE_ATTRIB_NAME		0x2002
+#define __DRI_IMAGE_ATTRIB_FORMAT	0x2003 /* available in versions 3+ */
+#define __DRI_IMAGE_ATTRIB_WIDTH	0x2004 /* available in versions 4+ */
+#define __DRI_IMAGE_ATTRIB_HEIGHT	0x2005
+#define __DRI_IMAGE_ATTRIB_COMPONENTS	0x2006 /* available in versions 5+ */
+#define __DRI_IMAGE_ATTRIB_FD           0x2007 /* available in versions
+                                                * 7+. Each query will return a
+                                                * new fd. */
+
+enum __DRIYUVColorSpace {
+   __DRI_YUV_COLOR_SPACE_UNDEFINED = 0,
+   __DRI_YUV_COLOR_SPACE_ITU_REC601 = 0x327F,
+   __DRI_YUV_COLOR_SPACE_ITU_REC709 = 0x3280,
+   __DRI_YUV_COLOR_SPACE_ITU_REC2020 = 0x3281
+};
+
+enum __DRISampleRange {
+   __DRI_YUV_RANGE_UNDEFINED = 0,
+   __DRI_YUV_FULL_RANGE = 0x3282,
+   __DRI_YUV_NARROW_RANGE = 0x3283
+};
+
+enum __DRIChromaSiting {
+   __DRI_YUV_CHROMA_SITING_UNDEFINED = 0,
+   __DRI_YUV_CHROMA_SITING_0 = 0x3284,
+   __DRI_YUV_CHROMA_SITING_0_5 = 0x3285
+};
+
+/**
+ * \name Reasons that __DRIimageExtensionRec::createImageFromTexture might fail
+ */
+/*@{*/
+/** Success! */
+#define __DRI_IMAGE_ERROR_SUCCESS       0
+
+/** Memory allocation failure */
+#define __DRI_IMAGE_ERROR_BAD_ALLOC     1
+
+/** Client requested an invalid attribute for a texture object  */
+#define __DRI_IMAGE_ERROR_BAD_MATCH     2
+
+/** Client requested an invalid texture object */
+#define __DRI_IMAGE_ERROR_BAD_PARAMETER 3
+/*@}*/
+
+typedef struct __DRIimageRec          __DRIimage;
+typedef struct __DRIimageExtensionRec __DRIimageExtension;
+struct __DRIimageExtensionRec {
+    __DRIextension base;
+
+    __DRIimage *(*createImageFromName)(__DRIscreen *screen,
+				       int width, int height, int format,
+				       int name, int pitch,
+				       void *loaderPrivate);
+
+    __DRIimage *(*createImageFromRenderbuffer)(__DRIcontext *context,
+					       int renderbuffer,
+					       void *loaderPrivate);
+
+    void (*destroyImage)(__DRIimage *image);
+
+    __DRIimage *(*createImage)(__DRIscreen *screen,
+			       int width, int height, int format,
+			       unsigned int use,
+			       void *loaderPrivate);
+
+   GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value);
+
+   /**
+    * The new __DRIimage will share the content with the old one, see dup(2).
+    */
+   __DRIimage *(*dupImage)(__DRIimage *image, void *loaderPrivate);
+
+   /**
+    * Validate that a __DRIimage can be used a certain way.
+    *
+    * \since 2
+    */
+   GLboolean (*validateUsage)(__DRIimage *image, unsigned int use);
+
+   /**
+    * Unlike createImageFromName __DRI_IMAGE_FORMAT is not but instead
+    * __DRI_IMAGE_FOURCC and strides are in bytes not pixels. Stride is
+    * also per block and not per pixel (for non-RGB, see gallium blocks).
+    *
+    * \since 5
+    */
+   __DRIimage *(*createImageFromNames)(__DRIscreen *screen,
+                                       int width, int height, int fourcc,
+                                       int *names, int num_names,
+                                       int *strides, int *offsets,
+                                       void *loaderPrivate);
+
+   /**
+    * Create an image out of a sub-region of a parent image.  This
+    * entry point lets us create individual __DRIimages for different
+    * planes in a planar buffer (typically yuv), for example.  While a
+    * sub-image shares the underlying buffer object with the parent
+    * image and other sibling sub-images, the life times of parent and
+    * sub-images are not dependent.  Destroying the parent or a
+    * sub-image doesn't affect other images.  The underlying buffer
+    * object is free when no __DRIimage remains that references it.
+    *
+    * Sub-images may overlap, but rendering to overlapping sub-images
+    * is undefined.
+    *
+    * \since 5
+    */
+    __DRIimage *(*fromPlanar)(__DRIimage *image, int plane,
+                              void *loaderPrivate);
+
+    /**
+     * Create image from texture.
+     *
+     * \since 6
+     */
+   __DRIimage *(*createImageFromTexture)(__DRIcontext *context,
+                                         int target,
+                                         unsigned texture,
+                                         int depth,
+                                         int level,
+                                         unsigned *error,
+                                         void *loaderPrivate);
+   /**
+    * Like createImageFromNames, but takes a prime fd instead.
+    *
+    * \since 7
+    */
+   __DRIimage *(*createImageFromFds)(__DRIscreen *screen,
+                                     int width, int height, int fourcc,
+                                     int *fds, int num_fds,
+                                     int *strides, int *offsets,
+                                     void *loaderPrivate);
+
+   /**
+    * Like createImageFromFds, but takes additional attributes.
+    *
+    * For EGL_EXT_image_dma_buf_import.
+    *
+    * \since 8
+    */
+   __DRIimage *(*createImageFromDmaBufs)(__DRIscreen *screen,
+                                         int width, int height, int fourcc,
+                                         int *fds, int num_fds,
+                                         int *strides, int *offsets,
+                                         enum __DRIYUVColorSpace color_space,
+                                         enum __DRISampleRange sample_range,
+                                         enum __DRIChromaSiting horiz_siting,
+                                         enum __DRIChromaSiting vert_siting,
+                                         unsigned *error,
+                                         void *loaderPrivate);
+};
+
+
+/**
+ * This extension must be implemented by the loader and passed to the
+ * driver at screen creation time.  The EGLImage entry points in the
+ * various client APIs take opaque EGLImage handles and use this
+ * extension to map them to a __DRIimage.  At version 1, this
+ * extensions allows mapping EGLImage pointers to __DRIimage pointers,
+ * but future versions could support other EGLImage-like, opaque types
+ * with new lookup functions.
+ */
+#define __DRI_IMAGE_LOOKUP "DRI_IMAGE_LOOKUP"
+#define __DRI_IMAGE_LOOKUP_VERSION 1
+
+typedef struct __DRIimageLookupExtensionRec __DRIimageLookupExtension;
+struct __DRIimageLookupExtensionRec {
+    __DRIextension base;
+
+    __DRIimage *(*lookupEGLImage)(__DRIscreen *screen, void *image,
+				  void *loaderPrivate);
+};
+
+/**
+ * This extension allows for common DRI2 options
+ */
+#define __DRI2_CONFIG_QUERY "DRI_CONFIG_QUERY"
+#define __DRI2_CONFIG_QUERY_VERSION 1
+
+typedef struct __DRI2configQueryExtensionRec __DRI2configQueryExtension;
+struct __DRI2configQueryExtensionRec {
+   __DRIextension base;
+
+   int (*configQueryb)(__DRIscreen *screen, const char *var, GLboolean *val);
+   int (*configQueryi)(__DRIscreen *screen, const char *var, GLint *val);
+   int (*configQueryf)(__DRIscreen *screen, const char *var, GLfloat *val);
+};
+
+/**
+ * Robust context driver extension.
+ *
+ * Existence of this extension means the driver can accept the
+ * \c __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS flag and the
+ * \c __DRI_CTX_ATTRIB_RESET_STRATEGY attribute in
+ * \c __DRIdri2ExtensionRec::createContextAttribs.
+ */
+#define __DRI2_ROBUSTNESS "DRI_Robustness"
+#define __DRI2_ROBUSTNESS_VERSION 1
+
+typedef struct __DRIrobustnessExtensionRec __DRIrobustnessExtension;
+struct __DRIrobustnessExtensionRec {
+   __DRIextension base;
+};
+
+/**
+ * DRI config options extension.
+ *
+ * This extension provides the XML string containing driver options for use by
+ * the loader in supporting the driconf application.
+ */
+#define __DRI_CONFIG_OPTIONS "DRI_ConfigOptions"
+#define __DRI_CONFIG_OPTIONS_VERSION 1
+
+typedef struct __DRIconfigOptionsExtensionRec {
+   __DRIextension base;
+   const char *xml;
+} __DRIconfigOptionsExtension;
+
+/**
+ * This extension provides a driver vtable to a set of common driver helper
+ * functions (driCoreExtension, driDRI2Extension) within the driver
+ * implementation, as opposed to having to pass them through a global
+ * variable.
+ *
+ * It is not intended to be public API to the actual loader, and the vtable
+ * layout may change at any time.
+ */
+#define __DRI_DRIVER_VTABLE "DRI_DriverVtable"
+#define __DRI_DRIVER_VTABLE_VERSION 1
+
+typedef struct __DRIDriverVtableExtensionRec {
+    __DRIextension base;
+    const struct __DriverAPIRec *vtable;
+} __DRIDriverVtableExtension;
+
+/**
+ * Query renderer driver extension
+ *
+ * This allows the window system layer (either EGL or GLX) to query aspects of
+ * hardware and driver support without creating a context.
+ */
+#define __DRI2_RENDERER_QUERY "DRI_RENDERER_QUERY"
+#define __DRI2_RENDERER_QUERY_VERSION 1
+
+#define __DRI2_RENDERER_VENDOR_ID                             0x0000
+#define __DRI2_RENDERER_DEVICE_ID                             0x0001
+#define __DRI2_RENDERER_VERSION                               0x0002
+#define __DRI2_RENDERER_ACCELERATED                           0x0003
+#define __DRI2_RENDERER_VIDEO_MEMORY                          0x0004
+#define __DRI2_RENDERER_UNIFIED_MEMORY_ARCHITECTURE           0x0005
+#define __DRI2_RENDERER_PREFERRED_PROFILE                     0x0006
+#define __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION           0x0007
+#define __DRI2_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION  0x0008
+#define __DRI2_RENDERER_OPENGL_ES_PROFILE_VERSION             0x0009
+#define __DRI2_RENDERER_OPENGL_ES2_PROFILE_VERSION            0x000a
+
+typedef struct __DRI2rendererQueryExtensionRec __DRI2rendererQueryExtension;
+struct __DRI2rendererQueryExtensionRec {
+   __DRIextension base;
+
+   int (*queryInteger)(__DRIscreen *screen, int attribute, unsigned int *val);
+   int (*queryString)(__DRIscreen *screen, int attribute, const char **val);
+};
+
+/**
+ * Image Loader extension. Drivers use this to allocate color buffers
+ */
+
+enum __DRIimageBufferMask {
+   __DRI_IMAGE_BUFFER_BACK = (1 << 0),
+   __DRI_IMAGE_BUFFER_FRONT = (1 << 1)
+};
+
+struct __DRIimageList {
+   uint32_t image_mask;
+   __DRIimage *back;
+   __DRIimage *front;
+};
+
+#define __DRI_IMAGE_LOADER "DRI_IMAGE_LOADER"
+#define __DRI_IMAGE_LOADER_VERSION 1
+
+struct __DRIimageLoaderExtensionRec {
+    __DRIextension base;
+
+   /**
+    * Allocate color buffers.
+    *
+    * \param driDrawable
+    * \param width              Width of allocated buffers
+    * \param height             Height of allocated buffers
+    * \param format             one of __DRI_IMAGE_FORMAT_*
+    * \param stamp              Address of variable to be updated when
+    *                           getBuffers must be called again
+    * \param loaderPrivate      The loaderPrivate for driDrawable
+    * \param buffer_mask        Set of buffers to allocate
+    * \param buffers            Returned buffers
+    */
+   int (*getBuffers)(__DRIdrawable *driDrawable,
+                     unsigned int format,
+                     uint32_t *stamp,
+                     void *loaderPrivate,
+                     uint32_t buffer_mask,
+                     struct __DRIimageList *buffers);
+
+    /**
+     * Flush pending front-buffer rendering
+     *
+     * Any rendering that has been performed to the
+     * fake front will be flushed to the front
+     *
+     * \param driDrawable    Drawable whose front-buffer is to be flushed
+     * \param loaderPrivate  Loader's private data that was previously passed
+     *                       into __DRIdri2ExtensionRec::createNewDrawable
+     */
+    void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);
+};
+
+/**
+ * DRI extension.
+ */
+
+#define __DRI_IMAGE_DRIVER           "DRI_IMAGE_DRIVER"
+#define __DRI_IMAGE_DRIVER_VERSION   1
+
+struct __DRIimageDriverExtensionRec {
+   __DRIextension               base;
+
+   /* Common DRI functions, shared with DRI2 */
+   __DRIcreateNewScreen2Func            createNewScreen2;
+   __DRIcreateNewDrawableFunc           createNewDrawable;
+   __DRIcreateContextAttribsFunc        createContextAttribs;
+   __DRIgetAPIMaskFunc                  getAPIMask;
+};
+
+#endif
diff --git a/nixpkgs/pkgs/servers/x11/xorg/default.nix b/nixpkgs/pkgs/servers/x11/xorg/default.nix
new file mode 100644
index 000000000000..441d8834e086
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/default.nix
@@ -0,0 +1,2915 @@
+# THIS IS A GENERATED FILE.  DO NOT EDIT!
+{ lib, newScope, pixman }:
+
+lib.makeScope newScope (self: with self; {
+
+  inherit pixman;
+
+  appres = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXt }: stdenv.mkDerivation {
+    name = "appres-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/appres-1.0.5.tar.bz2";
+      sha256 = "0a2r4sxky3k7b3kdb5pbv709q9b5zi3gxjz336wl66f828vqkbgz";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  bdftopcf = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "bdftopcf-1.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/bdftopcf-1.1.tar.bz2";
+      sha256 = "18hiscgljrz10zjcws25bis32nyrg3hzgmiq6scrh7izqmgz0kab";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  bitmap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, xbitmaps, libXmu, xorgproto, libXt }: stdenv.mkDerivation {
+    name = "bitmap-1.0.9";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/bitmap-1.0.9.tar.gz";
+      sha256 = "0kzbv5wh02798l77y9y8d8sjkmzm9cvsn3rjh8a86v5waj50apsb";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXaw xbitmaps libXmu xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  editres = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, xorgproto, libXt }: stdenv.mkDerivation {
+    name = "editres-1.0.7";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/editres-1.0.7.tar.bz2";
+      sha256 = "04awfwmy3f9f0bchidc4ssbgrbicn5gzasg3jydpfnp5513d76h8";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXaw libXmu xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  encodings = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "encodings-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/encodings-1.0.5.tar.bz2";
+      sha256 = "0caafx0yqqnqyvbalxhh3mb0r9v36xmcy5zjhygb2i508dhy35mx";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontadobe100dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-adobe-100dpi-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-adobe-100dpi-1.0.3.tar.bz2";
+      sha256 = "0m60f5bd0caambrk8ksknb5dks7wzsg7g7xaf0j21jxmx8rq9h5j";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontadobe75dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-adobe-75dpi-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-adobe-75dpi-1.0.3.tar.bz2";
+      sha256 = "02advcv9lyxpvrjv8bjh1b797lzg6jvhipclz49z8r8y98g4l0n6";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontadobeutopia100dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-adobe-utopia-100dpi-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-adobe-utopia-100dpi-1.0.4.tar.bz2";
+      sha256 = "19dd9znam1ah72jmdh7i6ny2ss2r6m21z9v0l43xvikw48zmwvyi";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontadobeutopia75dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-adobe-utopia-75dpi-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-adobe-utopia-75dpi-1.0.4.tar.bz2";
+      sha256 = "152wigpph5wvl4k9m3l4mchxxisgsnzlx033mn5iqrpkc6f72cl7";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontadobeutopiatype1 = callPackage ({ stdenv, pkg-config, fetchurl, mkfontscale }: stdenv.mkDerivation {
+    name = "font-adobe-utopia-type1-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-adobe-utopia-type1-1.0.4.tar.bz2";
+      sha256 = "0xw0pdnzj5jljsbbhakc6q9ha2qnca1jr81zk7w70yl9bw83b54p";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontalias = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "font-alias-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-alias-1.0.3.tar.bz2";
+      sha256 = "16ic8wfwwr3jicaml7b5a0sk6plcgc1kg84w02881yhwmqm3nicb";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontarabicmisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-arabic-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-arabic-misc-1.0.3.tar.bz2";
+      sha256 = "1x246dfnxnmflzf0qzy62k8jdpkb6jkgspcjgbk8jcq9lw99npah";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontbh100dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-bh-100dpi-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-bh-100dpi-1.0.3.tar.bz2";
+      sha256 = "10cl4gm38dw68jzln99ijix730y7cbx8np096gmpjjwff1i73h13";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontbh75dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-bh-75dpi-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-bh-75dpi-1.0.3.tar.bz2";
+      sha256 = "073jmhf0sr2j1l8da97pzsqj805f7mf9r2gy92j4diljmi8sm1il";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontbhlucidatypewriter100dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-bh-lucidatypewriter-100dpi-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2";
+      sha256 = "1fqzckxdzjv4802iad2fdrkpaxl4w0hhs9lxlkyraq2kq9ik7a32";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontbhlucidatypewriter75dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-bh-lucidatypewriter-75dpi-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2";
+      sha256 = "0cfbxdp5m12cm7jsh3my0lym9328cgm7fa9faz2hqj05wbxnmhaa";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontbhttf = callPackage ({ stdenv, pkg-config, fetchurl, mkfontscale }: stdenv.mkDerivation {
+    name = "font-bh-ttf-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-bh-ttf-1.0.3.tar.bz2";
+      sha256 = "0pyjmc0ha288d4i4j0si4dh3ncf3jiwwjljvddrb0k8v4xiyljqv";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontbhtype1 = callPackage ({ stdenv, pkg-config, fetchurl, mkfontscale }: stdenv.mkDerivation {
+    name = "font-bh-type1-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-bh-type1-1.0.3.tar.bz2";
+      sha256 = "1hb3iav089albp4sdgnlh50k47cdjif9p4axm0kkjvs8jyi5a53n";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontbitstream100dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-bitstream-100dpi-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-bitstream-100dpi-1.0.3.tar.bz2";
+      sha256 = "1kmn9jbck3vghz6rj3bhc3h0w6gh0qiaqm90cjkqsz1x9r2dgq7b";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontbitstream75dpi = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-bitstream-75dpi-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-bitstream-75dpi-1.0.3.tar.bz2";
+      sha256 = "13plbifkvfvdfym6gjbgy9wx2xbdxi9hfrl1k22xayy02135wgxs";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontbitstreamtype1 = callPackage ({ stdenv, pkg-config, fetchurl, mkfontscale }: stdenv.mkDerivation {
+    name = "font-bitstream-type1-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-bitstream-type1-1.0.3.tar.bz2";
+      sha256 = "1256z0jhcf5gbh1d03593qdwnag708rxqa032izmfb5dmmlhbsn6";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontcronyxcyrillic = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-cronyx-cyrillic-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-cronyx-cyrillic-1.0.3.tar.bz2";
+      sha256 = "0ai1v4n61k8j9x2a1knvfbl2xjxk3xxmqaq3p9vpqrspc69k31kf";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontcursormisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-cursor-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-cursor-misc-1.0.3.tar.bz2";
+      sha256 = "0dd6vfiagjc4zmvlskrbjz85jfqhf060cpys8j0y1qpcbsrkwdhp";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontdaewoomisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-daewoo-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-daewoo-misc-1.0.3.tar.bz2";
+      sha256 = "1s2bbhizzgbbbn5wqs3vw53n619cclxksljvm759h9p1prqdwrdw";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontdecmisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-dec-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-dec-misc-1.0.3.tar.bz2";
+      sha256 = "0yzza0l4zwyy7accr1s8ab7fjqkpwggqydbm2vc19scdby5xz7g1";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontibmtype1 = callPackage ({ stdenv, pkg-config, fetchurl, mkfontscale }: stdenv.mkDerivation {
+    name = "font-ibm-type1-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-ibm-type1-1.0.3.tar.bz2";
+      sha256 = "1pyjll4adch3z5cg663s6vhi02k8m6488f0mrasg81ssvg9jinzx";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontisasmisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-isas-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-isas-misc-1.0.3.tar.bz2";
+      sha256 = "0rx8q02rkx673a7skkpnvfkg28i8gmqzgf25s9yi0lar915sn92q";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontjismisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-jis-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-jis-misc-1.0.3.tar.bz2";
+      sha256 = "0rdc3xdz12pnv951538q6wilx8mrdndpkphpbblszsv7nc8cw61b";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontmicromisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-micro-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-micro-misc-1.0.3.tar.bz2";
+      sha256 = "1dldxlh54zq1yzfnrh83j5vm0k4ijprrs5yl18gm3n9j1z0q2cws";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontmisccyrillic = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-misc-cyrillic-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-misc-cyrillic-1.0.3.tar.bz2";
+      sha256 = "0q2ybxs8wvylvw95j6x9i800rismsmx4b587alwbfqiw6biy63z4";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontmiscethiopic = callPackage ({ stdenv, pkg-config, fetchurl, mkfontscale }: stdenv.mkDerivation {
+    name = "font-misc-ethiopic-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-misc-ethiopic-1.0.3.tar.bz2";
+      sha256 = "19cq7iq0pfad0nc2v28n681fdq3fcw1l1hzaq0wpkgpx7bc1zjsk";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontmiscmeltho = callPackage ({ stdenv, pkg-config, fetchurl, mkfontscale }: stdenv.mkDerivation {
+    name = "font-misc-meltho-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-misc-meltho-1.0.3.tar.bz2";
+      sha256 = "148793fqwzrc3bmh2vlw5fdiwjc2n7vs25cic35gfp452czk489p";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontmiscmisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-misc-misc-1.1.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-misc-misc-1.1.2.tar.bz2";
+      sha256 = "150pq6n8n984fah34n3k133kggn9v0c5k07igv29sxp1wi07krxq";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontmuttmisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-mutt-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-mutt-misc-1.0.3.tar.bz2";
+      sha256 = "13qghgr1zzpv64m0p42195k1kc77pksiv059fdvijz1n6kdplpxx";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontschumachermisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, fontutil, mkfontscale }: stdenv.mkDerivation {
+    name = "font-schumacher-misc-1.1.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-schumacher-misc-1.1.2.tar.bz2";
+      sha256 = "0nkym3n48b4v36y4s927bbkjnsmicajarnf6vlp7wxp0as304i74";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf fontutil mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontscreencyrillic = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-screen-cyrillic-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-screen-cyrillic-1.0.4.tar.bz2";
+      sha256 = "0yayf1qlv7irf58nngddz2f1q04qkpr5jwp4aja2j5gyvzl32hl2";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontsonymisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-sony-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-sony-misc-1.0.3.tar.bz2";
+      sha256 = "1xfgcx4gsgik5mkgkca31fj3w72jw9iw76qyrajrsz1lp8ka6hr0";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontsunmisc = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-sun-misc-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-sun-misc-1.0.3.tar.bz2";
+      sha256 = "1q6jcqrffg9q5f5raivzwx9ffvf7r11g6g0b125na1bhpz5ly7s8";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fonttosfnt = callPackage ({ stdenv, pkg-config, fetchurl, libfontenc, freetype, xorgproto }: stdenv.mkDerivation {
+    name = "fonttosfnt-1.2.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/fonttosfnt-1.2.1.tar.bz2";
+      sha256 = "16r51h5wfy85wnbq3q8v8a184hb25c3ksjgix0mlcywdz7qkbj07";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libfontenc freetype xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontutil = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "font-util-1.3.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-util-1.3.1.tar.bz2";
+      sha256 = "08drjb6cf84pf5ysghjpb4i7xkd2p86k3wl2a0jxs1jif6qbszma";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontwinitzkicyrillic = callPackage ({ stdenv, pkg-config, fetchurl, bdftopcf, mkfontscale }: stdenv.mkDerivation {
+    name = "font-winitzki-cyrillic-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-winitzki-cyrillic-1.0.3.tar.bz2";
+      sha256 = "181n1bgq8vxfxqicmy1jpm1hnr6gwn1kdhl6hr4frjigs1ikpldb";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config bdftopcf mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  fontxfree86type1 = callPackage ({ stdenv, pkg-config, fetchurl, mkfontscale }: stdenv.mkDerivation {
+    name = "font-xfree86-type1-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/font/font-xfree86-type1-1.0.4.tar.bz2";
+      sha256 = "0jp3zc0qfdaqfkgzrb44vi9vi0a8ygb35wp082yz7rvvxhmg9sya";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config mkfontscale ];
+    buildInputs = [ ];
+    configureFlags = [ "--with-fontrootdir=$(out)/lib/X11/fonts" ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  gccmakedep = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "gccmakedep-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2";
+      sha256 = "1r1fpy5ni8chbgx7j5sz0008fpb6vbazpy1nifgdhgijyzqxqxdj";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  iceauth = callPackage ({ stdenv, pkg-config, fetchurl, libICE, xorgproto }: stdenv.mkDerivation {
+    name = "iceauth-1.0.8";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/iceauth-1.0.8.tar.bz2";
+      sha256 = "1ik0mdidmyvy48hn8p2hwvf3535rf3m96hhf0mvcqrbj44x23vp6";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libICE xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  ico = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "ico-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/ico-1.0.5.tar.bz2";
+      sha256 = "0gvpwfk9kvlfn631dgizc45qc2qqjn9pavdp2q7qb3drkvr64fyp";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  imake = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto }: stdenv.mkDerivation {
+    name = "imake-1.0.8";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/util/imake-1.0.8.tar.bz2";
+      sha256 = "00m7l90ws72k1qm101sd2rx92ckd50cszyng5d4dd77jncbf9lmq";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libAppleWM = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext }: stdenv.mkDerivation {
+    name = "libAppleWM-1.4.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libAppleWM-1.4.1.tar.bz2";
+      sha256 = "0r8x28n45q89x91mz8mv0zkkcxi8wazkac886fyvflhiv2y8ap2y";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libFS = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xtrans }: stdenv.mkDerivation {
+    name = "libFS-1.0.8";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libFS-1.0.8.tar.bz2";
+      sha256 = "03xxyvpfa3rhqcld4p2chkil482jn9cp80hj17jdybcv2hkkgqf8";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xtrans ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libICE = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xtrans }: stdenv.mkDerivation {
+    name = "libICE-1.0.10";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libICE-1.0.10.tar.bz2";
+      sha256 = "0j638yvmyna2k4mz465jywgdybgdchdqppfx6xfazg7l5khxr1kg";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xtrans ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libSM = callPackage ({ stdenv, pkg-config, fetchurl, libICE, libuuid, xorgproto, xtrans }: stdenv.mkDerivation {
+    name = "libSM-1.2.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libSM-1.2.3.tar.bz2";
+      sha256 = "1fwwfq9v3sqmpzpscymswxn76xhxnysa24pfim1mcpxhvjcl89id";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libICE libuuid xorgproto xtrans ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libWindowsWM = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext }: stdenv.mkDerivation {
+    name = "libWindowsWM-1.0.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libWindowsWM-1.0.1.tar.bz2";
+      sha256 = "1p0flwb67xawyv6yhri9w17m1i4lji5qnd0gq8v1vsfb8zw7rw15";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libX11 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libxcb, xtrans }: stdenv.mkDerivation {
+    name = "libX11-1.7.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libX11-1.7.0.tar.bz2";
+      sha256 = "0m6bfwllr3pq2c00l51y62yiq15kphc8dw69zf67qhwmclxzkj1n";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libxcb xtrans ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXScrnSaver = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext }: stdenv.mkDerivation {
+    name = "libXScrnSaver-1.2.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXScrnSaver-1.2.3.tar.bz2";
+      sha256 = "1y4vx1vabg7j9hamp0vrfrax5b0lmgm3h0lbgbb3hnkv3dd0f5zr";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXTrap = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXt }: stdenv.mkDerivation {
+    name = "libXTrap-1.0.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXTrap-1.0.1.tar.bz2";
+      sha256 = "0bi5wxj6avim61yidh9fd3j4n8czxias5m8vss9vhxjnk1aksdwg";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXau = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto }: stdenv.mkDerivation {
+    name = "libXau-1.0.9";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXau-1.0.9.tar.bz2";
+      sha256 = "1v3krc6x0zliaa66qq1bf9j60x5nqfy68v8axaiglxpnvgqcpy6c";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXaw = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, libXmu, libXpm, libXt }: stdenv.mkDerivation {
+    name = "libXaw-1.0.14";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXaw-1.0.14.tar.bz2";
+      sha256 = "13kg59r3086383g1dyhnwxanhp2frssh9062mrgn34nzlf7gkbkn";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext xorgproto libXmu libXpm libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXaw3d = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, libXmu, libXpm, xorgproto, libXt }: stdenv.mkDerivation {
+    name = "libXaw3d-1.6.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXaw3d-1.6.3.tar.bz2";
+      sha256 = "0i653s8g25cc0mimkwid9366bqkbyhdyjhckx7bw77j20hzrkfid";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext libXmu libXpm xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXcomposite = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXfixes }: stdenv.mkDerivation {
+    name = "libXcomposite-0.4.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXcomposite-0.4.5.tar.bz2";
+      sha256 = "13sfcglvz87vl58hd9rszwr73z0z4nwga3c12rfh7f5s2ln8l8dk";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXfixes ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXcursor = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXfixes, libXrender }: stdenv.mkDerivation {
+    name = "libXcursor-1.2.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXcursor-1.2.0.tar.bz2";
+      sha256 = "10l7c9fm0jmpkm9ab9dz8r6m1pr87vvgqjnbx1psz50h4pwfklrs";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXfixes libXrender ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXdamage = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXfixes }: stdenv.mkDerivation {
+    name = "libXdamage-1.1.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXdamage-1.1.5.tar.bz2";
+      sha256 = "0igaw2akjf712y3rv7lx473jigxmcv9rs9y8sbrvbhya8f30cd5p";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXfixes ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXdmcp = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto }: stdenv.mkDerivation {
+    name = "libXdmcp-1.1.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXdmcp-1.1.3.tar.bz2";
+      sha256 = "0ab53h0rkq721ihk5hi469x500f3pgbkm1wy01yf24x5m923nli0";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXext = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "libXext-1.3.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXext-1.3.4.tar.bz2";
+      sha256 = "0azqxllcsfxc3ilhz6kwc6x7m8wc477p59ir9p0yrsldx766zbar";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXfixes = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11 }: stdenv.mkDerivation {
+    name = "libXfixes-5.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXfixes-5.0.3.tar.bz2";
+      sha256 = "1miana3y4hwdqdparsccmygqr3ic3hs5jrqfzp70hvi2zwxd676y";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXfont = callPackage ({ stdenv, pkg-config, fetchurl, libfontenc, xorgproto, freetype, xtrans, zlib }: stdenv.mkDerivation {
+    name = "libXfont-1.5.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXfont-1.5.4.tar.bz2";
+      sha256 = "0hiji1bvpl78aj3a3141hkk353aich71wv8l5l2z51scfy878zqs";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libfontenc xorgproto freetype xtrans zlib ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXfont2 = callPackage ({ stdenv, pkg-config, fetchurl, libfontenc, xorgproto, freetype, xtrans, zlib }: stdenv.mkDerivation {
+    name = "libXfont2-2.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXfont2-2.0.4.tar.bz2";
+      sha256 = "1rk9pjxcm01lbr1dxhnvk4f2qrn6zp068qjbvvz5w0z5d0rin5bd";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libfontenc xorgproto freetype xtrans zlib ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXft = callPackage ({ stdenv, pkg-config, fetchurl, fontconfig, freetype, libX11, xorgproto, libXrender }: stdenv.mkDerivation {
+    name = "libXft-2.3.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXft-2.3.3.tar.bz2";
+      sha256 = "05lja9s54090xwh31r0bqms4v3pimng5xr09g2rdnafx2vk6hp12";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ fontconfig freetype libX11 xorgproto libXrender ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXi = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXfixes }: stdenv.mkDerivation {
+    name = "libXi-1.7.10";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXi-1.7.10.tar.bz2";
+      sha256 = "0q8hz3slga3w3ch8wp0k7ay9ilhz315qnab0w1y2x9w3cf7hv8rn";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext libXfixes ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXinerama = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto }: stdenv.mkDerivation {
+    name = "libXinerama-1.1.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXinerama-1.1.4.tar.bz2";
+      sha256 = "086p0axqj57nvkaqa6r00dnr9kyrn1m8blgf0zjy25zpxkbxn200";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXmu = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, libXt }: stdenv.mkDerivation {
+    name = "libXmu-1.1.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXmu-1.1.3.tar.bz2";
+      sha256 = "0cdpqnx6258i4l6qhphvkdiyspysg0i5caqjy820kp63wwjk4d4w";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXp = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXau, libXext }: stdenv.mkDerivation {
+    name = "libXp-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXp-1.0.3.tar.bz2";
+      sha256 = "0mwc2jwmq03b1m9ihax5c6gw2ln8rc70zz4fsj3kb7440nchqdkz";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXau libXext ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXpm = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto, libXt, gettext }: stdenv.mkDerivation {
+    name = "libXpm-3.5.13";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXpm-3.5.13.tar.bz2";
+      sha256 = "09dc6nwlb2122h02vl64k9x56mxnyqz2gwpga0abfv4bb1bxmlcw";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config gettext ];
+    buildInputs = [ libX11 libXext xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXpresent = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11 }: stdenv.mkDerivation {
+    name = "libXpresent-1.0.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXpresent-1.0.0.tar.bz2";
+      sha256 = "12kvvar3ihf6sw49h6ywfdiwmb8i1gh8wasg1zhzp6hs2hay06n1";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXrandr = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXrender }: stdenv.mkDerivation {
+    name = "libXrandr-1.5.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXrandr-1.5.2.tar.bz2";
+      sha256 = "08z0mqywrm7ij8bxlfrx0d2wy6kladdmkva1nw5k6qix82z0xsla";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext libXrender ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXrender = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11 }: stdenv.mkDerivation {
+    name = "libXrender-0.9.10";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXrender-0.9.10.tar.bz2";
+      sha256 = "0j89cnb06g8x79wmmnwzykgkkfdhin9j7hjpvsxwlr3fz1wmjvf0";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXres = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext }: stdenv.mkDerivation {
+    name = "libXres-1.2.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXres-1.2.1.tar.bz2";
+      sha256 = "049b7dk6hx47161hg47ryjrm6pwsp27r5pby05b0wqb1pcggprmn";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXt = callPackage ({ stdenv, pkg-config, fetchurl, libICE, xorgproto, libSM, libX11 }: stdenv.mkDerivation {
+    name = "libXt-1.2.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXt-1.2.1.tar.bz2";
+      sha256 = "0q1x7842r8rcn2m0q4q9f69h4qa097fyizs8brzx5ns62s7w1737";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libICE xorgproto libSM libX11 ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXtst = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXi }: stdenv.mkDerivation {
+    name = "libXtst-1.2.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXtst-1.2.3.tar.bz2";
+      sha256 = "012jpyj7xfm653a9jcfqbzxyywdmwb2b5wr1dwylx14f3f54jma6";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext libXi ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXv = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext }: stdenv.mkDerivation {
+    name = "libXv-1.0.11";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXv-1.0.11.tar.bz2";
+      sha256 = "125hn06bd3d8y97hm2pbf5j55gg4r2hpd3ifad651i4sr7m16v6j";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXvMC = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXv }: stdenv.mkDerivation {
+    name = "libXvMC-1.0.12";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXvMC-1.0.12.tar.bz2";
+      sha256 = "1kbdjsvkm5l7axv7g477qj18sab2wnqhliy6197syzizgfbsfgbb";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext libXv ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXxf86dga = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto }: stdenv.mkDerivation {
+    name = "libXxf86dga-1.1.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXxf86dga-1.1.5.tar.bz2";
+      sha256 = "00vjvcdlc1sga251jkxn6gkxmx9h5n290ffxxpa40qbca1gvr61b";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXxf86misc = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto }: stdenv.mkDerivation {
+    name = "libXxf86misc-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXxf86misc-1.0.4.tar.bz2";
+      sha256 = "107k593sx27vjz3v7gbb223add9i7w0bjc90gbb3jqpin3i07758";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libXxf86vm = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, xorgproto }: stdenv.mkDerivation {
+    name = "libXxf86vm-1.1.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libXxf86vm-1.1.4.tar.bz2";
+      sha256 = "0mydhlyn72i7brjwypsqrpkls3nm6vxw0li8b2nw0caz7kwjgvmg";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libdmx = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext }: stdenv.mkDerivation {
+    name = "libdmx-1.1.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libdmx-1.1.4.tar.bz2";
+      sha256 = "0hvjfhrcym770cr0zpqajdy3cda30aiwbjzv16iafkqkbl090gr5";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libfontenc = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, zlib }: stdenv.mkDerivation {
+    name = "libfontenc-1.1.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libfontenc-1.1.4.tar.bz2";
+      sha256 = "0y90170dp8wsidr1dzza0grxr1lfh30ji3b5vkjz4j6x1n0wxz1c";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto zlib ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libpciaccess = callPackage ({ stdenv, pkg-config, fetchurl, zlib }: stdenv.mkDerivation {
+    name = "libpciaccess-0.16";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libpciaccess-0.16.tar.bz2";
+      sha256 = "12glp4w1kgvmqn89lk19cgr6jccd3awxra4dxisp7pagi06rsk11";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ zlib ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libpthreadstubs = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "libpthread-stubs-0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "https://xcb.freedesktop.org/dist/libpthread-stubs-0.4.tar.bz2";
+      sha256 = "0cz7s9w8lqgzinicd4g36rjg08zhsbyngh0w68c3np8nlc8mkl74";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libxcb = callPackage ({ stdenv, pkg-config, fetchurl, libxslt, libpthreadstubs, libXau, xcbproto, libXdmcp, python3 }: stdenv.mkDerivation {
+    name = "libxcb-1.14";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libxcb-1.14.tar.xz";
+      sha256 = "0d2chjgyn5lr9sfhacfvqgnj9l9faz11vn322a06jd6lk3dxcpm5";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config python3 ];
+    buildInputs = [ libxslt libpthreadstubs libXau xcbproto libXdmcp ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libxkbfile = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11 }: stdenv.mkDerivation {
+    name = "libxkbfile-1.1.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libxkbfile-1.1.0.tar.bz2";
+      sha256 = "1irq9crvscd3yb8sr802dhvvfr35jdy1n2yz094xplmd42mbv3bm";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  libxshmfence = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto }: stdenv.mkDerivation {
+    name = "libxshmfence-1.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libxshmfence-1.3.tar.bz2";
+      sha256 = "1ir0j92mnd1nk37mrv9bz5swnccqldicgszvfsh62jd14q6k115q";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  listres = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, libXmu, xorgproto, libXt }: stdenv.mkDerivation {
+    name = "listres-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/listres-1.0.4.tar.bz2";
+      sha256 = "041bxkvv6f92sm3hhm977c4gdqdv5r1jyxjqcqfi8vkrg3s2j4ka";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libXaw libXmu xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  lndir = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto }: stdenv.mkDerivation {
+    name = "lndir-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/util/lndir-1.0.3.tar.bz2";
+      sha256 = "0pdngiy8zdhsiqx2am75yfcl36l7kd7d7nl0rss8shcdvsqgmx29";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  luit = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "luit-20190106";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "https://invisible-mirror.net/archives/luit/luit-20190106.tgz";
+      sha256 = "081rrajj5hpgx3pvm43grqzscnq5kl320q0wq6zzhf6wrijhz41b";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  makedepend = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto }: stdenv.mkDerivation {
+    name = "makedepend-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/util/makedepend-1.0.6.tar.bz2";
+      sha256 = "072h9nzh8s5vqfz35dli4fba36fnr219asjrb7p89n8ph0paan6m";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  mkfontscale = callPackage ({ stdenv, pkg-config, fetchurl, libfontenc, freetype, xorgproto, zlib }: stdenv.mkDerivation {
+    name = "mkfontscale-1.2.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/mkfontscale-1.2.1.tar.bz2";
+      sha256 = "1ixsnsm2mn0zy9ksdid0lj6irnhvasfik9mz8bbrs5sajzmra16a";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libfontenc freetype xorgproto zlib ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  oclock = callPackage ({ stdenv, pkg-config, fetchurl, libxkbfile, libX11, libXext, libXmu, libXt }: stdenv.mkDerivation {
+    name = "oclock-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/oclock-1.0.4.tar.bz2";
+      sha256 = "1zmfzfmdp42nvapf0qz1bc3i3waq5sjrpkgfw64qs4nmq30wy86c";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libxkbfile libX11 libXext libXmu libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  sessreg = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto }: stdenv.mkDerivation {
+    name = "sessreg-1.1.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/sessreg-1.1.2.tar.bz2";
+      sha256 = "0crczl25zynkrslmm8sjaxszhrh4i33m7h5fg4wfdb3k8aarxjyz";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  setxkbmap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxkbfile }: stdenv.mkDerivation {
+    name = "setxkbmap-1.3.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/setxkbmap-1.3.2.tar.bz2";
+      sha256 = "1xdrxs65v7d0rw1yaz0vsz55w4hxym99216p085ya9978j379wlg";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libxkbfile ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  smproxy = callPackage ({ stdenv, pkg-config, fetchurl, libICE, libSM, libXmu, libXt }: stdenv.mkDerivation {
+    name = "smproxy-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/smproxy-1.0.6.tar.bz2";
+      sha256 = "0rkjyzmsdqmlrkx8gy2j4q6iksk58hcc92xzdprkf8kml9ar3wbc";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libICE libSM libXmu libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  transset = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "transset-1.0.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/transset-1.0.2.tar.bz2";
+      sha256 = "088v8p0yfn4r3azabp6662hqikfs2gjb9xmjjd45gnngwwp19b2b";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  twm = callPackage ({ stdenv, pkg-config, fetchurl, libICE, libSM, libX11, libXext, libXmu, xorgproto, libXt }: stdenv.mkDerivation {
+    name = "twm-1.0.10";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/twm-1.0.10.tar.bz2";
+      sha256 = "1ms5cj1w3g26zg6bxdv1j9hl0pxr4300qnv003cz1q3cl7ffljb4";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libICE libSM libX11 libXext libXmu xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  utilmacros = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "util-macros-1.19.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/util/util-macros-1.19.3.tar.bz2";
+      sha256 = "0w8ryfqylprz37zj9grl4jzdsqq67ibfwq5raj7vm1i7kmp2x08g";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  viewres = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, libXmu, libXt }: stdenv.mkDerivation {
+    name = "viewres-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/viewres-1.0.5.tar.bz2";
+      sha256 = "1mz319kfmvcrdpi22dmdr91mif1j0j3ck1f8mmnz5g1r9kl1in2y";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libXaw libXmu libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  x11perf = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, libXft, libXmu, xorgproto, libXrender }: stdenv.mkDerivation {
+    name = "x11perf-1.6.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/x11perf-1.6.1.tar.bz2";
+      sha256 = "0d3wh6z6znwhfdiv0zaggfj0xgish98xa10yy76b9517zj7hnzhw";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext libXft libXmu xorgproto libXrender ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xauth = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXau, libXext, libXmu, xorgproto }: stdenv.mkDerivation {
+    name = "xauth-1.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xauth-1.1.tar.bz2";
+      sha256 = "032klzzw8r09z36x1272ssd79bcisz8j5p8gbdy111fiknvx27bd";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXau libXext libXmu xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xbacklight = callPackage ({ stdenv, pkg-config, fetchurl, libxcb, xcbutil }: stdenv.mkDerivation {
+    name = "xbacklight-1.2.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xbacklight-1.2.3.tar.bz2";
+      sha256 = "1plssg0s3pbslg6rfzxp9sx8ryvn8l32zyvc8zp9zsbsfwjg69rs";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libxcb xcbutil ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xbitmaps = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "xbitmaps-1.1.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/data/xbitmaps-1.1.2.tar.bz2";
+      sha256 = "1vh73sc13s7w5r6gnc6irca56s7998bja7wgdivkfn8jccawgw5r";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcalc = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, xorgproto, libXt }: stdenv.mkDerivation {
+    name = "xcalc-1.1.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xcalc-1.1.0.tar.bz2";
+      sha256 = "1sxmlcb0sb3h4z05kl5l0kxnhrc0h8c74p9m3zdc7bv58jaldmym";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXaw xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcbproto = callPackage ({ stdenv, pkg-config, fetchurl, python3 }: stdenv.mkDerivation {
+    name = "xcb-proto-1.14.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/proto/xcb-proto-1.14.1.tar.xz";
+      sha256 = "1hzwazgyywd9mz4mjj1yv8ski27qqx7ypmyr27m39hrajyddsjph";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config python3 ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcbutil = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xorgproto, m4 }: stdenv.mkDerivation {
+    name = "xcb-util-0.4.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "https://xcb.freedesktop.org/dist/xcb-util-0.4.0.tar.bz2";
+      sha256 = "1sahmrgbpyki4bb72hxym0zvxwnycmswsxiisgqlln9vrdlr9r26";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config m4 ];
+    buildInputs = [ gperf libxcb xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcbutilcursor = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xcbutilimage, xcbutilrenderutil, xorgproto, m4 }: stdenv.mkDerivation {
+    name = "xcb-util-cursor-0.1.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "https://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.3.tar.bz2";
+      sha256 = "0krr4rcw6r42cncinzvzzdqnmxk3nrgpnadyg2h8k9x10q3hm885";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config m4 ];
+    buildInputs = [ gperf libxcb xcbutilimage xcbutilrenderutil xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcbutilerrors = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xcbproto, xorgproto, m4 }: stdenv.mkDerivation {
+    name = "xcb-util-errors-1.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "https://xcb.freedesktop.org/dist/xcb-util-errors-1.0.tar.bz2";
+      sha256 = "158rm913dg3hxrrhyvvxr8bcm0pjy5jws70dhy2s12w1krv829k8";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config m4 ];
+    buildInputs = [ gperf libxcb xcbproto xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcbutilimage = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xcbutil, xorgproto, m4 }: stdenv.mkDerivation {
+    name = "xcb-util-image-0.4.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "https://xcb.freedesktop.org/dist/xcb-util-image-0.4.0.tar.bz2";
+      sha256 = "1z1gxacg7q4cw6jrd26gvi5y04npsyavblcdad1xccc8swvnmf9d";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config m4 ];
+    buildInputs = [ gperf libxcb xcbutil xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcbutilkeysyms = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xorgproto, m4 }: stdenv.mkDerivation {
+    name = "xcb-util-keysyms-0.4.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "https://xcb.freedesktop.org/dist/xcb-util-keysyms-0.4.0.tar.bz2";
+      sha256 = "1nbd45pzc1wm6v5drr5338j4nicbgxa5hcakvsvm5pnyy47lky0f";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config m4 ];
+    buildInputs = [ gperf libxcb xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcbutilrenderutil = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xorgproto, m4 }: stdenv.mkDerivation {
+    name = "xcb-util-renderutil-0.3.9";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "https://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.9.tar.bz2";
+      sha256 = "0nza1csdvvxbmk8vgv8vpmq7q8h05xrw3cfx9lwxd1hjzd47xsf6";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config m4 ];
+    buildInputs = [ gperf libxcb xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcbutilwm = callPackage ({ stdenv, pkg-config, fetchurl, gperf, libxcb, xorgproto, m4 }: stdenv.mkDerivation {
+    name = "xcb-util-wm-0.4.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "https://xcb.freedesktop.org/dist/xcb-util-wm-0.4.1.tar.bz2";
+      sha256 = "0gra7hfyxajic4mjd63cpqvd20si53j1q3rbdlkqkahfciwq3gr8";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config m4 ];
+    buildInputs = [ gperf libxcb xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xclock = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXft, libxkbfile, libXmu, xorgproto, libXrender, libXt }: stdenv.mkDerivation {
+    name = "xclock-1.0.9";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xclock-1.0.9.tar.bz2";
+      sha256 = "1fr3q4rszgx7x2zxy2ip592a3fgx20hfwac49p2l5b7jqsr1ying";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXaw libXft libxkbfile libXmu xorgproto libXrender libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcmsdb = callPackage ({ stdenv, pkg-config, fetchurl, libX11 }: stdenv.mkDerivation {
+    name = "xcmsdb-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xcmsdb-1.0.5.tar.bz2";
+      sha256 = "1ik7gzlp2igz183x70883000ygp99r20x3aah6xhaslbpdhm6n75";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcompmgr = callPackage ({ stdenv, pkg-config, fetchurl, libXcomposite, libXdamage, libXext, libXfixes, libXrender }: stdenv.mkDerivation {
+    name = "xcompmgr-1.1.8";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xcompmgr-1.1.8.tar.bz2";
+      sha256 = "0hvjkanrdlvk3ln5a1jx3c9ggziism2jr1na7jl3zyk0y3sdm28b";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libXcomposite libXdamage libXext libXfixes libXrender ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xconsole = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, xorgproto, libXt }: stdenv.mkDerivation {
+    name = "xconsole-1.0.7";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xconsole-1.0.7.tar.bz2";
+      sha256 = "1q2ib1626i5da0nda09sp3vzppjrcn82fff83cw7hwr0vy14h56i";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXaw libXmu xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcursorgen = callPackage ({ stdenv, pkg-config, fetchurl, libpng, libX11, libXcursor }: stdenv.mkDerivation {
+    name = "xcursorgen-1.0.7";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xcursorgen-1.0.7.tar.bz2";
+      sha256 = "0ggbv084cavp52hjgcz3vdj0g018axs0m23c03lpc5sgn92gidim";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libpng libX11 libXcursor ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xcursorthemes = callPackage ({ stdenv, pkg-config, fetchurl, libXcursor }: stdenv.mkDerivation {
+    name = "xcursor-themes-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/data/xcursor-themes-1.0.6.tar.bz2";
+      sha256 = "16a96li0s0ggg60v7f6ywxmsrmxdfizcw55ccv7sp4qjfisca7pf";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libXcursor ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xdm = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXau, libXaw, libXdmcp, libXext, libXft, libXinerama, libXmu, libXpm, xorgproto, libXrender, libXt }: stdenv.mkDerivation {
+    name = "xdm-1.1.12";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xdm-1.1.12.tar.bz2";
+      sha256 = "1x17hdymf6rd8jmh4n1sd4g5a8ayr5w94nwjw84qs2fs5pvq7lhd";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm xorgproto libXrender libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xdpyinfo = callPackage ({ stdenv, pkg-config, fetchurl, libdmx, libX11, libxcb, libXcomposite, libXext, libXi, libXinerama, xorgproto, libXrender, libXtst, libXxf86dga, libXxf86misc, libXxf86vm }: stdenv.mkDerivation {
+    name = "xdpyinfo-1.3.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xdpyinfo-1.3.2.tar.bz2";
+      sha256 = "0ldgrj4w2fa8jng4b3f3biaj0wyn8zvya88pnk70d7k12pcqw8rh";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libdmx libX11 libxcb libXcomposite libXext libXi libXinerama xorgproto libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xdriinfo = callPackage ({ stdenv, pkg-config, fetchurl, libGL, xorgproto, libX11 }: stdenv.mkDerivation {
+    name = "xdriinfo-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xdriinfo-1.0.6.tar.bz2";
+      sha256 = "0lcx8h3zd11m4w8wf7dyp89826d437iz78cyrix436bqx31x5k6r";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libGL xorgproto libX11 ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xev = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXrandr }: stdenv.mkDerivation {
+    name = "xev-1.2.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xev-1.2.3.tar.bz2";
+      sha256 = "02ddsdx138g7szhwklpbzi0cxr34871iay3k28kdcihrz8f4zg36";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto libXrandr ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xeyes = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, libXmu, xorgproto, libXrender, libXt }: stdenv.mkDerivation {
+    name = "xeyes-1.1.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xeyes-1.1.2.tar.bz2";
+      sha256 = "0lq5j7fryx1wn998jq6h3icz1h6pqrsbs3adskjzjyhn5l6yrg2p";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext libXmu xorgproto libXrender libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86inputevdev = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libevdev, udev, mtdev, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-input-evdev-2.10.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2";
+      sha256 = "1h1y0fwnawlp4yc5llr1l7hwfcxxpln2fxhy6arcf6w6h4z0f9l7";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libevdev udev mtdev xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86inputjoystick = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-input-joystick-1.6.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-input-joystick-1.6.3.tar.bz2";
+      sha256 = "1awfq496d082brgjbr60lhm6jvr9537rflwxqdfqwfzjy3n6jxly";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86inputkeyboard = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-input-keyboard-1.9.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-input-keyboard-1.9.0.tar.bz2";
+      sha256 = "12032yg412kyvnmc5fha1in7mpi651d8sa1bk4138s2j2zr01jgp";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86inputlibinput = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libinput, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-input-libinput-1.0.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-input-libinput-1.0.1.tar.bz2";
+      sha256 = "0nr4r9x8c7y1l0ipivjch5zps093mxmg2nqmfn2934am26fc9ppx";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libinput xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86inputmouse = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-input-mouse-1.9.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-input-mouse-1.9.3.tar.bz2";
+      sha256 = "1iawr1wyl2qch1mqszcs0s84i92mh4xxprflnycbw1adc18b7v4k";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86inputsynaptics = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libevdev, libX11, libXi, xorgserver, libXtst }: stdenv.mkDerivation {
+    name = "xf86-input-synaptics-1.9.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-input-synaptics-1.9.1.tar.bz2";
+      sha256 = "0xhm03qywwfgkpfl904d08lx00y28m1b6lqmks5nxizixwk3by3s";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libevdev libX11 libXi xorgserver libXtst ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86inputvmmouse = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, udev, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-input-vmmouse-13.1.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2";
+      sha256 = "06ckn4hlkpig5vnivl0zj8a7ykcgvrsj8b3iccl1pgn1gaamix8a";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto udev xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86inputvoid = callPackage ({ stdenv, pkg-config, fetchurl, xorgserver, xorgproto }: stdenv.mkDerivation {
+    name = "xf86-input-void-1.4.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-input-void-1.4.1.tar.bz2";
+      sha256 = "171k8b8s42s3w73l7ln9jqwk88w4l7r1km2blx1vy898c854yvpr";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgserver xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoamdgpu = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, mesa, libGL, libdrm, udev, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-amdgpu-19.1.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-amdgpu-19.1.0.tar.bz2";
+      sha256 = "0pgy4ihnja0vm8504qw7qxh3pdpa3p9k6967nz15m6b1mvha83jg";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto mesa libGL libdrm udev xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoapm = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-apm-1.3.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-apm-1.3.0.tar.bz2";
+      sha256 = "0znwqfc8abkiha98an8hxsngnz96z6cd976bc4bsvz1km6wqk0c0";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoark = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-ark-0.7.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2";
+      sha256 = "07p5vdsj2ckxb6wh02s61akcv4qfg6s1d5ld3jn3lfaayd3f1466";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoast = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-ast-1.1.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-ast-1.1.5.tar.bz2";
+      sha256 = "1pm2cy81ma7ldsw0yfk28b33h9z2hcj5rccrxhfxfgvxsiavrnqy";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoati = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, mesa, libGL, libdrm, udev, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-ati-19.1.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-ati-19.1.0.tar.bz2";
+      sha256 = "0j9w4axsqlycv4v14g53xyhkm9h7d27b2fcv9lrzb9gf54b5m7v5";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto mesa libGL libdrm udev libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videochips = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-chips-1.4.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-chips-1.4.0.tar.bz2";
+      sha256 = "1gqzy7q9v824m7hqkbbmncxg082zm0d4mafgc97c4skyiwgf9wq7";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videocirrus = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-cirrus-1.5.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-cirrus-1.5.3.tar.bz2";
+      sha256 = "1asifc6ld2g9kap15vfhvsvyl69lj7pw3d9ra9mi4najllh7pj7d";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videodummy = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-dummy-0.3.8";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-dummy-0.3.8.tar.bz2";
+      sha256 = "1fcm9vwgv8wnffbvkzddk4yxrh3kc0np6w65wj8k88q7jf3bn4ip";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videofbdev = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-fbdev-0.5.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-fbdev-0.5.0.tar.bz2";
+      sha256 = "16a66zr0l1lmssa07i3rzy07djxnb45c17ks8c71h8l06xgxihyw";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videogeode = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-geode-2.11.19";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-geode-2.11.19.tar.bz2";
+      sha256 = "0zn9gb49grds5mcs1dlrx241k2w1sgqmx4i5x7v6159xxqhlqsf6";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoglide = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-glide-1.2.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-glide-1.2.2.tar.bz2";
+      sha256 = "1vaav6kx4n00q4fawgqnjmbdkppl0dir2dkrj4ad372mxrvl9c4y";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoglint = callPackage ({ stdenv, pkg-config, fetchurl, libpciaccess, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-glint-1.2.9";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-glint-1.2.9.tar.bz2";
+      sha256 = "1lkpspvrvrp9s539bhfdjfh4andaqyk63l6zjn8m3km95smk6a45";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libpciaccess xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoi128 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-i128-1.4.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-i128-1.4.0.tar.bz2";
+      sha256 = "1snhpv1igrhifcls3r498kjd14ml6x2xvih7zk9xlsd1ymmhlb4g";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoi740 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-i740-1.4.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-i740-1.4.0.tar.bz2";
+      sha256 = "0l3s1m95bdsg4gki943qipq8agswbb84dzcflpxa3vlckwhh3r26";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videointel = callPackage ({ stdenv, pkg-config, fetchurl, cairo, xorgproto, libdrm, libpng, udev, libpciaccess, libX11, xcbutil, libxcb, libXcursor, libXdamage, libXext, libXfixes, xorgserver, libXrandr, libXrender, libxshmfence, libXtst, libXvMC }: stdenv.mkDerivation {
+    name = "xf86-video-intel-2.99.917";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-intel-2.99.917.tar.bz2";
+      sha256 = "1jb7jspmzidfixbc0gghyjmnmpqv85i7pi13l4h2hn2ml3p83dq0";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ cairo xorgproto libdrm libpng udev libpciaccess libX11 xcbutil libxcb libXcursor libXdamage libXext libXfixes xorgserver libXrandr libXrender libxshmfence libXtst libXvMC ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videomach64 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-mach64-6.9.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-mach64-6.9.6.tar.bz2";
+      sha256 = "171wg8r6py1l138s58rlapin3rlpwsg9spmvhc7l68mm3g3hf1vs";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videomga = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-mga-2.0.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-mga-2.0.0.tar.bz2";
+      sha256 = "0yaxpgyyj9398nzzr5vnsfxcis76z46p9814yzj8179yl7hld296";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoneomagic = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-neomagic-1.3.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-neomagic-1.3.0.tar.bz2";
+      sha256 = "0r4h673kw8fl7afc30anwbjlbhp82mg15fvaxf470xg7z983k0wk";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videonewport = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-newport-0.2.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-newport-0.2.4.tar.bz2";
+      sha256 = "1yafmp23jrfdmc094i6a4dsizapsc9v0pl65cpc8w1kvn7343k4i";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videonouveau = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, udev, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-nouveau-1.0.17";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-nouveau-1.0.17.tar.bz2";
+      sha256 = "0sqm1jwjg15sp8v7039y2hsbhph8gpjd2bdzcqqiij2mgbi254s9";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm udev libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videonv = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-nv-2.1.21";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-nv-2.1.21.tar.bz2";
+      sha256 = "0bdk3pc5y0n7p53q4gc2ff7bw16hy5hwdjjxkm5j3s7hdyg6960z";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoomap = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-omap-0.4.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-omap-0.4.5.tar.bz2";
+      sha256 = "0nmbrx6913dc724y8wj2p6vqfbj5zdjfmsl037v627jj0whx9rwk";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoopenchrome = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, udev, libpciaccess, libX11, libXext, xorgserver, libXvMC }: stdenv.mkDerivation {
+    name = "xf86-video-openchrome-0.6.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-openchrome-0.6.0.tar.bz2";
+      sha256 = "0x9gq3hw6k661k82ikd1y2kkk4dmgv310xr5q59dwn4k6z37aafs";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm udev libpciaccess libX11 libXext xorgserver libXvMC ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoqxl = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, udev, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-qxl-0.1.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-qxl-0.1.5.tar.bz2";
+      sha256 = "14jc24znnahhmz4kqalafmllsg8awlz0y6gpgdpk5ih38ph851mi";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm udev libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videor128 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-r128-6.11.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-r128-6.11.0.tar.bz2";
+      sha256 = "0snvwmrh8dqyyaq7ggicym6yrsg4brygkx9156r0m095m7fp3rav";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videorendition = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-rendition-4.2.7";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-rendition-4.2.7.tar.bz2";
+      sha256 = "0yzqcdfrnnyaaaa76d4hpwycpq4x2j8qvg9m4q19lj4xbicwc4cm";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videos3virge = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-s3virge-1.11.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-s3virge-1.11.0.tar.bz2";
+      sha256 = "06d1v5s7xf00y18x12cz11sk00rgn0yq95w66kmgzy465pzxvj84";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videosavage = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-savage-2.3.9";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-savage-2.3.9.tar.bz2";
+      sha256 = "11pcrsdpdrwk0mrgv83s5nsx8a9i4lhmivnal3fjbrvi3zdw94rc";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videosiliconmotion = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-siliconmotion-1.7.9";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.9.tar.bz2";
+      sha256 = "1g2r6gxqrmjdff95d42msxdw6vmkg2zn5sqv0rxd420iwy8wdwyh";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videosis = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-sis-0.11.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-sis-0.11.0.tar.bz2";
+      sha256 = "0srvrhydjnynfb7b1s145rgmsk4f71iz0ag4icpmb05944d90xr1";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videosisusb = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-sisusb-0.9.7";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-sisusb-0.9.7.tar.bz2";
+      sha256 = "090lfs3hjz3cjd016v5dybmcsigj6ffvjdhdsqv13k90p4b08h7l";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videosuncg6 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-suncg6-1.1.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-suncg6-1.1.2.tar.bz2";
+      sha256 = "04fgwgk02m4nimlv67rrg1wnyahgymrn6rb2cjj1l8bmzkii4glr";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videosunffb = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-sunffb-1.2.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-sunffb-1.2.2.tar.bz2";
+      sha256 = "07z3ngifwg2d4jgq8pms47n5lr2yn0ai72g86xxjnb3k20n5ym7s";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videosunleo = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-sunleo-1.2.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-sunleo-1.2.2.tar.bz2";
+      sha256 = "1gacm0s6rii4x5sx9py5bhvs50jd4vs3nnbwjdjymyf31kpdirl3";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videotdfx = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-tdfx-1.5.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-tdfx-1.5.0.tar.bz2";
+      sha256 = "0qc5wzwf1n65si9rc37bh224pzahh7gp67vfimbxs0b9yvhq0i9g";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videotga = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-tga-1.2.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2";
+      sha256 = "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videotrident = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-trident-1.3.8";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-trident-1.3.8.tar.bz2";
+      sha256 = "0gxcar434kx813fxdpb93126lhmkl3ikabaljhcj5qn3fkcijlcy";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videov4l = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-v4l-0.3.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-v4l-0.3.0.tar.bz2";
+      sha256 = "084x4p4avy72mgm2vnnvkicw3419i6pp3wxik8zqh7gmq4xv5z75";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videovboxvideo = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-vboxvideo-1.0.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-vboxvideo-1.0.0.tar.bz2";
+      sha256 = "195z1js3i51qgxvhfw4bxb4dw3jcrrx2ynpm2y3475dypjzs7dkz";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videovesa = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-vesa-2.5.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-vesa-2.5.0.tar.bz2";
+      sha256 = "0nf6ai74c60xk96kgr8q9mx6lrxm5id3765ws4d801irqzrj85hz";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videovmware = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, udev, libpciaccess, libX11, libXext, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-vmware-13.3.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-vmware-13.3.0.tar.bz2";
+      sha256 = "0v06qhm059klq40m2yx4wypzb7h53aaassbjfmm6clcyclj1k5s7";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm udev libpciaccess libX11 libXext xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videovoodoo = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-voodoo-1.2.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2";
+      sha256 = "1s6p7yxmi12q4y05va53rljwyzd6ry492r1pgi7wwq6cznivhgly";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videowsfb = callPackage ({ stdenv, pkg-config, fetchurl, xorgserver, xorgproto }: stdenv.mkDerivation {
+    name = "xf86-video-wsfb-0.4.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-wsfb-0.4.0.tar.bz2";
+      sha256 = "0hr8397wpd0by1hc47fqqrnaw3qdqd8aqgwgzv38w5k3l3jy6p4p";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgserver xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xf86videoxgi = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver }: stdenv.mkDerivation {
+    name = "xf86-video-xgi-1.6.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/driver/xf86-video-xgi-1.6.1.tar.bz2";
+      sha256 = "10xd2vah0pnpw5spn40n4p95mpmgvdkly4i1cz51imnlfsw7g8si";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libdrm libpciaccess xorgserver ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xfd = callPackage ({ stdenv, pkg-config, fetchurl, libxkbfile, fontconfig, libXaw, libXft, libXmu, xorgproto, libXrender, libXt, gettext }: stdenv.mkDerivation {
+    name = "xfd-1.1.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xfd-1.1.3.tar.bz2";
+      sha256 = "0n6r1v8sm0z0ycqch035xpm46nv5v4mav3kxh36883l3ln5r6bqr";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config gettext ];
+    buildInputs = [ libxkbfile fontconfig libXaw libXft libXmu xorgproto libXrender libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xfontsel = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, libXt }: stdenv.mkDerivation {
+    name = "xfontsel-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xfontsel-1.0.6.tar.bz2";
+      sha256 = "0700lf6hx7dg88wq1yll7zjvf9gbwh06xff20yffkxb289y0pai5";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXaw libXmu libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xfs = callPackage ({ stdenv, pkg-config, fetchurl, libXfont2, xorgproto, xtrans }: stdenv.mkDerivation {
+    name = "xfs-1.2.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xfs-1.2.0.tar.bz2";
+      sha256 = "0q4q4rbzx159sfn2n52y039fki6nc6a39qdfxa78yjc3aw8i48nv";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libXfont2 xorgproto xtrans ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xfsinfo = callPackage ({ stdenv, pkg-config, fetchurl, libFS, xorgproto }: stdenv.mkDerivation {
+    name = "xfsinfo-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xfsinfo-1.0.6.tar.bz2";
+      sha256 = "1mmir5i7gm71xc0ba8vnizi4744vsd31hknhi4cmgvg6kadqngla";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libFS xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xgamma = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXxf86vm }: stdenv.mkDerivation {
+    name = "xgamma-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xgamma-1.0.6.tar.bz2";
+      sha256 = "1lr2nb1fhg5fk2fchqxdxyl739602ggwhmgl2wiv5c8qbidw7w8f";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto libXxf86vm ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xgc = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, libXt }: stdenv.mkDerivation {
+    name = "xgc-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xgc-1.0.5.tar.bz2";
+      sha256 = "0pigvjd3i9fchmj1inqy151aafz3dr0vq1h2zizdb2imvadqv0hl";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libXaw libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xhost = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXau, libXmu, xorgproto }: stdenv.mkDerivation {
+    name = "xhost-1.0.8";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xhost-1.0.8.tar.bz2";
+      sha256 = "15n3mnd4i5kh4z32qv11580qjgvnng0wry2y753ljrqkkrbkrp52";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXau libXmu xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xinit = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "xinit-1.4.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xinit-1.4.1.tar.bz2";
+      sha256 = "1fdbakx59vyh474skjydj1bbglpby3y03nl7mxn0z9v8gdhqz6yy";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xinput = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXext, libXi, libXinerama, libXrandr }: stdenv.mkDerivation {
+    name = "xinput-1.6.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xinput-1.6.3.tar.bz2";
+      sha256 = "1vb6xdd1xmk5f7pwc5zcbxfray5sf1vbnscqwf2yl8lv7gfq38im";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXext libXi libXinerama libXrandr ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xkbcomp = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxkbfile, xorgproto }: stdenv.mkDerivation {
+    name = "xkbcomp-1.4.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xkbcomp-1.4.5.tar.bz2";
+      sha256 = "0pmhshqinwqh5rip670l3szjpywky67hv232ql6gvdj489n0hlb8";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libxkbfile xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xkbevd = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxkbfile }: stdenv.mkDerivation {
+    name = "xkbevd-1.1.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xkbevd-1.1.4.tar.bz2";
+      sha256 = "0sprjx8i86ljk0l7ldzbz2xlk8916z5zh78cafjv8k1a63js4c14";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libxkbfile ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xkbprint = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxkbfile, xorgproto }: stdenv.mkDerivation {
+    name = "xkbprint-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xkbprint-1.0.4.tar.bz2";
+      sha256 = "04iyv5z8aqhabv7wcpvbvq0ji0jrz1666vw6gvxkvl7szswalgqb";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libxkbfile xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xkbutils = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libX11, libXaw, libXt }: stdenv.mkDerivation {
+    name = "xkbutils-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xkbutils-1.0.4.tar.bz2";
+      sha256 = "0c412isxl65wplhl7nsk12vxlri29lk48g3p52hbrs3m0awqm8fj";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto libX11 libXaw libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xkeyboardconfig = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, python3 }: stdenv.mkDerivation {
+    name = "xkeyboard-config-2.31";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.31.tar.bz2";
+      sha256 = "18xddaxh83zm698syh50w983jg6b7b8zgv0dfaf7ha485hgihi6s";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config python3 ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xkill = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXmu, xorgproto }: stdenv.mkDerivation {
+    name = "xkill-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xkill-1.0.5.tar.bz2";
+      sha256 = "0szzd9nzn0ybkhnfyizb876irwnjsnb78rcaxx6prb71jmmbpw65";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXmu xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xload = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, xorgproto, libXt, gettext }: stdenv.mkDerivation {
+    name = "xload-1.1.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xload-1.1.3.tar.bz2";
+      sha256 = "01sr6yd6yhyyfgn88l867w6h9dn5ikcynaz5rwji6xqxhw1lhkpk";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config gettext ];
+    buildInputs = [ libX11 libXaw libXmu xorgproto libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xlsatoms = callPackage ({ stdenv, pkg-config, fetchurl, libxcb }: stdenv.mkDerivation {
+    name = "xlsatoms-1.1.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xlsatoms-1.1.3.tar.bz2";
+      sha256 = "10m3a046jvaw5ywx4y65kl84lsxqan70gww1g1r7cf96ijaqz1jp";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libxcb ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xlsclients = callPackage ({ stdenv, pkg-config, fetchurl, libxcb }: stdenv.mkDerivation {
+    name = "xlsclients-1.1.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xlsclients-1.1.4.tar.bz2";
+      sha256 = "1h8931sn34mcip6vpi4v7hdmr1r58gkbw4s2p97w98kykks2lgvp";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libxcb ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xlsfonts = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "xlsfonts-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xlsfonts-1.0.6.tar.bz2";
+      sha256 = "0s6kxgv78chkwsqmhw929f4pf91gq63f4yvixxnan1h00cx0pf49";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xmag = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXaw, libXmu, libXt }: stdenv.mkDerivation {
+    name = "xmag-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xmag-1.0.6.tar.bz2";
+      sha256 = "0qg12ifbbk9n8fh4jmyb625cknn8ssj86chd6zwdiqjin8ivr8l7";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXaw libXmu libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xmessage = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, libXt }: stdenv.mkDerivation {
+    name = "xmessage-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xmessage-1.0.5.tar.bz2";
+      sha256 = "0a90kfm0qz8cn2pbpqfyqrc5s9bfvvy14nj848ynvw56wy0zng9p";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libXaw libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xmodmap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "xmodmap-1.0.10";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xmodmap-1.0.10.tar.bz2";
+      sha256 = "0z28331i2pm16x671fa9qwsfqdmr6a43bzwmp0dm17a3sx0hjgs7";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xmore = callPackage ({ stdenv, pkg-config, fetchurl, libXaw, libXt }: stdenv.mkDerivation {
+    name = "xmore-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xmore-1.0.3.tar.bz2";
+      sha256 = "06r514p30v87vx00ddlck9mwazaqk9bx08ip866p1mw2a46iwjk4";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libXaw libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xorgcffiles = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "xorg-cf-files-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/util/xorg-cf-files-1.0.6.tar.bz2";
+      sha256 = "0kckng0zs1viz0nr84rdl6dswgip7ndn4pnh5nfwnviwpsfmmksd";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xorgdocs = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "xorg-docs-1.7.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/doc/xorg-docs-1.7.1.tar.bz2";
+      sha256 = "0jrc4jmb4raqawx0j9jmhgasr0k6sxv0bm2hrxjh9hb26iy6gf14";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xorgproto = callPackage ({ stdenv, pkg-config, fetchurl, libXt }: stdenv.mkDerivation {
+    name = "xorgproto-2021.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/proto/xorgproto-2021.3.tar.bz2";
+      sha256 = "0dypp7cvjf0rvwa7cn1zp7djw5ynhs1rwk9p0r1vczbwzha2nwsc";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xorgserver = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, openssl, libX11, libXau, libXaw, libxcb, xcbutil, xcbutilwm, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, libXdmcp, libXfixes, libxkbfile, libXmu, libXpm, libXrender, libXres, libXt }: stdenv.mkDerivation {
+    name = "xorg-server-1.20.11";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/xserver/xorg-server-1.20.11.tar.bz2";
+      sha256 = "0jacqgin8kcyy8fyv0lhgb4if8g9hp60rm3ih3s1mgps7xp7jk4i";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ xorgproto openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xorgsgmldoctools = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "xorg-sgml-doctools-1.11";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/doc/xorg-sgml-doctools-1.11.tar.bz2";
+      sha256 = "0k5pffyi5bx8dmfn033cyhgd3gf6viqj3x769fqixifwhbgy2777";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xpr = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXmu, xorgproto }: stdenv.mkDerivation {
+    name = "xpr-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xpr-1.0.5.tar.bz2";
+      sha256 = "07qy9lwjvxighcmg6qvjkgagad3wwvidrfx0jz85lgynz3qy0dmr";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXmu xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xprop = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "xprop-1.2.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xprop-1.2.5.tar.bz2";
+      sha256 = "18ckr8g1z50zkc01hprkpm1npwbq32yqib4b3l98c95z2q1yv4lv";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xrandr = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXrandr, libXrender }: stdenv.mkDerivation {
+    name = "xrandr-1.5.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xrandr-1.5.1.tar.xz";
+      sha256 = "0ql75s1n3dm2m3g1ilb9l6hqh15r0v709bgghpwazy3jknpnvivv";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto libXrandr libXrender ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xrdb = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXmu, xorgproto }: stdenv.mkDerivation {
+    name = "xrdb-1.2.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xrdb-1.2.0.tar.bz2";
+      sha256 = "0ik9gh6363c47pr0dp7q22nfs8vmavjg2v4bsr0604ppl77nafpj";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXmu xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xrefresh = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "xrefresh-1.0.6";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xrefresh-1.0.6.tar.bz2";
+      sha256 = "0lv3rlshh7s0z3aqx5ahnnf8cl082m934bk7gv881mz8nydznz98";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xset = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXext, libXmu, xorgproto, libXxf86misc }: stdenv.mkDerivation {
+    name = "xset-1.2.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xset-1.2.4.tar.bz2";
+      sha256 = "0my987wjvra7l92ry6q44ky383yg3phzxhdbn3lqhapm1ll9bzg4";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXext libXmu xorgproto libXxf86misc ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xsetroot = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xbitmaps, libXcursor, libXmu, xorgproto }: stdenv.mkDerivation {
+    name = "xsetroot-1.1.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xsetroot-1.1.2.tar.bz2";
+      sha256 = "0z21mqvmdl6rl63q77479wgkfygnll57liza1i3va7sr4fx45i0h";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xbitmaps libXcursor libXmu xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xsm = callPackage ({ stdenv, pkg-config, fetchurl, libICE, libSM, libX11, libXaw, libXt }: stdenv.mkDerivation {
+    name = "xsm-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xsm-1.0.4.tar.bz2";
+      sha256 = "09a4ss1fnrh1sgm21r4n5pivawf34paci3rn6mscyljf7a4vcd4r";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libICE libSM libX11 libXaw libXt ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xstdcmap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXmu, xorgproto }: stdenv.mkDerivation {
+    name = "xstdcmap-1.0.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xstdcmap-1.0.4.tar.bz2";
+      sha256 = "12vgzsxv4rw25frkgjyli6w6hy10lgpvsx9wzw2v5l5a3qzqp286";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXmu xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xtrans = callPackage ({ stdenv, pkg-config, fetchurl }: stdenv.mkDerivation {
+    name = "xtrans-1.4.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/xtrans-1.4.0.tar.bz2";
+      sha256 = "0wyp0yc6gi72hwc3kjmvm3vkj9p6s407cb6dxx37jh9wb68l8z1p";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xtrap = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libXt, libXTrap }: stdenv.mkDerivation {
+    name = "xtrap-1.0.3";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xtrap-1.0.3.tar.bz2";
+      sha256 = "0sqm4j1zflk1s94iq4waa70hna1xcys88v9a70w0vdw66czhvj2j";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libXt libXTrap ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xvinfo = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto, libXv }: stdenv.mkDerivation {
+    name = "xvinfo-1.1.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xvinfo-1.1.4.tar.bz2";
+      sha256 = "0gz7fvxavqlrqynpfbrm2nc9yx8h0ksnbnv34fj7n1q6cq6j4lq3";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto libXv ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xwd = callPackage ({ stdenv, pkg-config, fetchurl, libxkbfile, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "xwd-1.0.7";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xwd-1.0.7.tar.bz2";
+      sha256 = "1537i8q8pgf0sjklakzfvjwrq5b246qjywrx9ll8xfg0p6w1as6d";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libxkbfile libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xwininfo = callPackage ({ stdenv, pkg-config, fetchurl, libX11, libxcb, xorgproto }: stdenv.mkDerivation {
+    name = "xwininfo-1.1.4";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xwininfo-1.1.4.tar.bz2";
+      sha256 = "00avrpw4h5mr1klp41lv2j4dmq465v6l5kb5bhm4k5ml8sm9i543";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 libxcb xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+  xwud = callPackage ({ stdenv, pkg-config, fetchurl, libX11, xorgproto }: stdenv.mkDerivation {
+    name = "xwud-1.0.5";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "mirror://xorg/individual/app/xwud-1.0.5.tar.bz2";
+      sha256 = "1a8hdgy40smvblnh3s9f0vkqckl68nmivx7d48zk34m8z18p16cr";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ libX11 xorgproto ];
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+})
diff --git a/nixpkgs/pkgs/servers/x11/xorg/dont-create-logdir-during-build.patch b/nixpkgs/pkgs/servers/x11/xorg/dont-create-logdir-during-build.patch
new file mode 100644
index 000000000000..3675292f9c99
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/dont-create-logdir-during-build.patch
@@ -0,0 +1,32 @@
+---
+ hw/xfree86/Makefile.am | 1 -
+ hw/xfree86/Makefile.in | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
+index 9aeaea1..dcca3b8 100644
+--- a/hw/xfree86/Makefile.am
++++ b/hw/xfree86/Makefile.am
+@@ -100,7 +100,6 @@ EXTRA_DIST = xorgconf.cpp
+ 
+ # Without logdir, X will post an error on the terminal and will not start
+ install-data-local:
+-	$(AM_V_GEN)$(MKDIR_P) $(DESTDIR)$(logdir)
+ if CYGWIN
+ 	$(INSTALL_DATA) libXorg.exe.a $(DESTDIR)$(libdir)/libXorg.exe.a
+ endif
+diff --git a/hw/xfree86/Makefile.in b/hw/xfree86/Makefile.in
+index c4fceee..74da8f1 100644
+--- a/hw/xfree86/Makefile.in
++++ b/hw/xfree86/Makefile.in
+@@ -1161,7 +1161,6 @@ uninstall-am: uninstall-binPROGRAMS uninstall-local \
+ 
+ # Without logdir, X will post an error on the terminal and will not start
+ install-data-local:
+-	$(AM_V_GEN)$(MKDIR_P) $(DESTDIR)$(logdir)
+ @CYGWIN_TRUE@	$(INSTALL_DATA) libXorg.exe.a $(DESTDIR)$(libdir)/libXorg.exe.a
+ 
+ install-exec-hook:
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/nixpkgs/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
new file mode 100755
index 000000000000..b50f3f33a310
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
@@ -0,0 +1,322 @@
+#! /usr/bin/env perl
+
+# Usage:
+#
+# manually update tarballs.list
+# then run: cat tarballs.list | perl ./generate-expr-from-tarballs.pl
+
+
+use strict;
+use warnings;
+
+use File::Basename;
+use File::Spec::Functions;
+use File::Temp;
+
+
+my %pkgURLs;
+my %pkgHashes;
+my %pkgNames;
+my %pkgRequires;
+my %pkgNativeRequires;
+
+my %pcMap;
+
+my %extraAttrs;
+
+
+my @missingPCs = ("fontconfig", "libdrm", "libXaw", "zlib", "perl", "python3", "mkfontscale", "bdftopcf", "libxslt", "openssl", "gperf", "m4", "libinput", "libevdev", "mtdev", "xorgproto", "cairo", "gettext" );
+$pcMap{$_} = $_ foreach @missingPCs;
+$pcMap{"freetype2"} = "freetype";
+$pcMap{"libpng12"} = "libpng";
+$pcMap{"libpng"} = "libpng";
+$pcMap{"dbus-1"} = "dbus";
+$pcMap{"uuid"} = "libuuid";
+$pcMap{"libudev"} = "udev";
+$pcMap{"gl"} = "libGL";
+$pcMap{"GL"} = "libGL";
+$pcMap{"gbm"} = "mesa";
+$pcMap{"\$PIXMAN"} = "pixman";
+$pcMap{"\$RENDERPROTO"} = "xorgproto";
+$pcMap{"\$DRI3PROTO"} = "xorgproto";
+$pcMap{"\$DRI2PROTO"} = "xorgproto";
+$pcMap{"\${XKBMODULE}"} = "libxkbfile";
+
+
+my $downloadCache = "./download-cache";
+mkdir $downloadCache, 0755;
+
+
+while (<>) {
+    chomp;
+    my $tarball = "$_";
+    print "\nDOING TARBALL $tarball\n";
+
+    my $pkg;
+    if ($tarball =~ s/:([a-zA-Z0-9_]+)$//) {
+      $pkg = $1;
+    } else {
+      $tarball =~ /\/((?:(?:[A-Za-z0-9]|(?:-[^0-9])|(?:-[0-9]*[a-z]))+))[^\/]*$/;
+      die unless defined $1;
+      $pkg = $1;
+      $pkg =~ s/-//g;
+      #next unless $pkg eq "xcbutil";
+    }
+
+    $tarball =~ /\/([^\/]*)\.(tar\.(bz2|gz|xz)|tgz)$/;
+    my $pkgName = $1;
+
+    print "  $pkg $pkgName\n";
+
+    if (defined $pkgNames{$pkg}) {
+        print "  SKIPPING\n";
+        next;
+    }
+
+    $pkgURLs{$pkg} = $tarball;
+    $pkgNames{$pkg} = $pkgName;
+
+    my $cachePath = catdir($downloadCache, basename($tarball));
+    my $hash;
+    my $path;
+    if (-e $cachePath) {
+        $path = readlink($cachePath);
+        $hash = `nix-hash --type sha256 --base32 --flat $cachePath`;
+    }
+    else {
+        ($hash, $path) = `PRINT_PATH=1 QUIET=1 nix-prefetch-url '$tarball'`;
+        `nix-store --realise --add-root $cachePath --indirect $path`;
+    }
+    chomp $hash;
+    chomp $path;
+    $pkgHashes{$pkg} = $hash;
+
+    print "\nunpacking $path\n";
+    my $tmpDir = File::Temp->newdir();
+    system "cd '$tmpDir' && tar xf '$path'";
+    die "cannot unpack `$path'" if $? != 0;
+    print "\n";
+
+    my $pkgDir = `echo $tmpDir/*`;
+    chomp $pkgDir;
+
+    my $provides = `find $pkgDir -name "*.pc.in"`;
+    my @provides2 = split '\n', $provides;
+    my @requires = ();
+    my @nativeRequires = ();
+
+    foreach my $pcFile (@provides2) {
+        my $pc = $pcFile;
+        $pc =~ s/.*\///;
+        $pc =~ s/.pc.in//;
+        print "PROVIDES $pc\n";
+        die "collision with $pcMap{$pc}" if defined $pcMap{$pc};
+        $pcMap{$pc} = $pkg;
+
+        open FOO, "<$pcFile" or die;
+        while (<FOO>) {
+            if (/Requires:(.*)/) {
+                my @reqs = split ' ', $1;
+                foreach my $req (@reqs) {
+                    next unless $req =~ /^[a-z]+$/;
+                    print "REQUIRE (from $pc): $req\n";
+                    push @requires, $req;
+                }
+            }
+        }
+        close FOO;
+
+    }
+
+    my $file;
+    {
+        local $/;
+        open FOO, "cd '$tmpDir'/* && grep -v '^ *#' configure.ac |";
+        $file = <FOO>;
+        close FOO;
+    }
+
+    if ($file =~ /XAW_CHECK_XPRINT_SUPPORT/) {
+        push @requires, "libXaw";
+    }
+
+    if ($file =~ /zlib is required/ || $file =~ /AC_CHECK_LIB\(z\,/) {
+        push @requires, "zlib";
+    }
+
+    if ($file =~ /Perl is required/) {
+        push @requires, "perl";
+    }
+
+    if ($file =~ /AC_PATH_PROG\(BDFTOPCF/) {
+        push @nativeRequires, "bdftopcf";
+    }
+
+    if ($file =~ /AC_PATH_PROG\(MKFONTSCALE/) {
+        push @nativeRequires, "mkfontscale";
+    }
+
+    if ($file =~ /AC_PATH_PROG\(MKFONTDIR/) {
+        push @nativeRequires, "mkfontscale";
+    }
+
+    if ($file =~ /AM_PATH_PYTHON/) {
+        push @nativeRequires, "python3";
+    }
+
+    if ($file =~ /AC_PATH_PROG\(FCCACHE/) {
+        # Don't run fc-cache.
+        die if defined $extraAttrs{$pkg};
+        push @{$extraAttrs{$pkg}}, "preInstall = \"installFlags=(FCCACHE=true)\";";
+    }
+
+    my $isFont;
+
+    if ($file =~ /XORG_FONT_BDF_UTILS/) {
+        push @nativeRequires, "bdftopcf", "mkfontscale";
+        $isFont = 1;
+    }
+
+    if ($file =~ /XORG_FONT_SCALED_UTILS/) {
+        push @nativeRequires, "mkfontscale";
+        $isFont = 1;
+    }
+
+    if ($file =~ /XORG_FONT_UCS2ANY/) {
+        push @nativeRequires, "fontutil", "mkfontscale";
+        $isFont = 1;
+    }
+
+    if ($isFont) {
+        push @{$extraAttrs{$pkg}}, "configureFlags = [ \"--with-fontrootdir=\$(out)/lib/X11/fonts\" ];";
+    }
+
+    sub process {
+        my $requires = shift;
+        my $s = shift;
+        $s =~ s/\[/\ /g;
+        $s =~ s/\]/\ /g;
+        $s =~ s/\,/\ /g;
+        foreach my $req (split / /, $s) {
+            next if $req eq ">=";
+            #next if $req =~ /^\$/;
+            next if $req =~ /^[0-9]/;
+            next if $req =~ /^\s*$/;
+            next if $req eq '$REQUIRED_MODULES';
+            next if $req eq '$REQUIRED_LIBS';
+            next if $req eq '$XDMCP_MODULES';
+            next if $req eq '$XORG_MODULES';
+            print "REQUIRE: $req\n";
+            push @{$requires}, $req;
+        }
+    }
+
+    #process \@requires, $1 while $file =~ /PKG_CHECK_MODULES\([^,]*,\s*[\[]?([^\)\[]*)/g;
+    process \@requires, $1 while $file =~ /PKG_CHECK_MODULES\([^,]*,([^\)\,]*)/g;
+    process \@requires, $1 while $file =~ /AC_SEARCH_LIBS\([^,]*,([^\)\,]*)/g;
+    process \@requires, $1 while $file =~ /MODULES=\"(.*)\"/g;
+    process \@requires, $1 while $file =~ /REQUIRED_LIBS=\"(.*)\"/g;
+    process \@requires, $1 while $file =~ /REQUIRED_MODULES=\"(.*)\"/g;
+    process \@requires, $1 while $file =~ /REQUIRES=\"(.*)\"/g;
+    process \@requires, $1 while $file =~ /X11_REQUIRES=\'(.*)\'/g;
+    process \@requires, $1 while $file =~ /XDMCP_MODULES=\"(.*)\"/g;
+    process \@requires, $1 while $file =~ /XORG_MODULES=\"(.*)\"/g;
+    process \@requires, $1 while $file =~ /NEEDED=\"(.*)\"/g;
+    process \@requires, $1 while $file =~ /ivo_requires=\"(.*)\"/g;
+    process \@requires, $1 while $file =~ /XORG_DRIVER_CHECK_EXT\([^,]*,([^\)]*)\)/g;
+
+    push @nativeRequires, "gettext" if $file =~ /USE_GETTEXT/;
+    push @requires, "libxslt" if $pkg =~ /libxcb/;
+    push @nativeRequires, "m4" if $pkg =~ /xcbutil/;
+    push @requires, "gperf", "xorgproto" if $pkg =~ /xcbutil/;
+
+    print "REQUIRES $pkg => @requires\n";
+    print "NATIVE_REQUIRES $pkg => @nativeRequires\n";
+    $pkgRequires{$pkg} = \@requires;
+    $pkgNativeRequires{$pkg} = \@nativeRequires;
+
+    print "done\n";
+}
+
+
+print "\nWRITE OUT\n";
+
+open OUT, ">default.nix";
+
+print OUT "";
+print OUT <<EOF;
+# THIS IS A GENERATED FILE.  DO NOT EDIT!
+{ lib, newScope, pixman }:
+
+lib.makeScope newScope (self: with self; {
+
+  inherit pixman;
+
+EOF
+
+
+foreach my $pkg (sort (keys %pkgURLs)) {
+    print "$pkg\n";
+
+    my %nativeRequires = ();
+    my @nativeBuildInputs;
+    foreach my $req (sort @{$pkgNativeRequires{$pkg}}) {
+        if (defined $pcMap{$req}) {
+            # Some packages have .pc that depends on itself.
+            next if $pcMap{$req} eq $pkg;
+            if (!defined $nativeRequires{$pcMap{$req}}) {
+                push @nativeBuildInputs, $pcMap{$req};
+                $nativeRequires{$pcMap{$req}} = 1;
+            }
+        } else {
+            print "  NOT FOUND: $req\n";
+        }
+    }
+    my %requires = ();
+    my @buildInputs;
+    foreach my $req (sort @{$pkgRequires{$pkg}}) {
+        if (defined $pcMap{$req}) {
+            # Some packages have .pc that depends on itself.
+            next if $pcMap{$req} eq $pkg;
+            if (!defined $requires{$pcMap{$req}}) {
+                push @buildInputs, $pcMap{$req};
+                $requires{$pcMap{$req}} = 1;
+            }
+        } else {
+            print "  NOT FOUND: $req\n";
+        }
+    }
+
+    my $nativeBuildInputsStr = join "", map { $_ . " " } @nativeBuildInputs;
+    my $buildInputsStr = join "", map { $_ . " " } @buildInputs;
+
+    my @arguments = @buildInputs;
+    push @arguments, @nativeBuildInputs;
+    unshift @arguments, "stdenv", "pkg-config", "fetchurl";
+    my $argumentsStr = join ", ", @arguments;
+
+    my $extraAttrsStr = "";
+    if (defined $extraAttrs{$pkg}) {
+      $extraAttrsStr = join "", map { "\n    " . $_ } @{$extraAttrs{$pkg}};
+    }
+
+    print OUT <<EOF
+  $pkg = callPackage ({ $argumentsStr }: stdenv.mkDerivation {
+    name = "$pkgNames{$pkg}";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = "$pkgURLs{$pkg}";
+      sha256 = "$pkgHashes{$pkg}";
+    };
+    hardeningDisable = [ "bindnow" "relro" ];
+    nativeBuildInputs = [ pkg-config $nativeBuildInputsStr];
+    buildInputs = [ $buildInputsStr];$extraAttrsStr
+    meta.platforms = lib.platforms.unix;
+  }) {};
+
+EOF
+}
+
+print OUT "})\n";
+
+close OUT;
diff --git a/nixpkgs/pkgs/servers/x11/xorg/imake-cc-wrapper-uberhack.patch b/nixpkgs/pkgs/servers/x11/xorg/imake-cc-wrapper-uberhack.patch
new file mode 100644
index 000000000000..fe079eeb42a7
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/imake-cc-wrapper-uberhack.patch
@@ -0,0 +1,13 @@
+diff --git a/imake.c b/imake.c
+index c20cd4a..ec2589b 100644
+--- a/imake.c
++++ b/imake.c
+@@ -959,7 +959,7 @@ get_libc_version(FILE *inFile)
+ {
+   char aout[4096], *tmpdir;
+   FILE *fp;
+-  const char *format = "%s -o %s -x c -";
++  const char *format = "f=$(mktemp imakeXXXXXX.c); cat > $f; %s $f -o %s";
+   char *cc;
+   int len;
+   char *command;
diff --git a/nixpkgs/pkgs/servers/x11/xorg/imake-setup-hook.sh b/nixpkgs/pkgs/servers/x11/xorg/imake-setup-hook.sh
new file mode 100644
index 000000000000..351ffab34d0f
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/imake-setup-hook.sh
@@ -0,0 +1,19 @@
+export IMAKECPP="@tradcpp@/bin/tradcpp"
+
+imakeConfigurePhase() {
+    runHook preConfigure
+
+    echoCmd 'configuring with imake'
+
+    if [ -z "${imakefile:-}" -a ! -e Imakefile ]; then
+        echo "no Imakefile, doing nothing"
+    else
+        xmkmf -a
+    fi
+
+    runHook postConfigure
+}
+
+if [ -z "${dontUseImakeConfigure-}" -a -z "${configurePhase-}" ]; then
+    configurePhase=imakeConfigurePhase
+fi
diff --git a/nixpkgs/pkgs/servers/x11/xorg/imake.patch b/nixpkgs/pkgs/servers/x11/xorg/imake.patch
new file mode 100644
index 000000000000..1d0ec88761d4
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/imake.patch
@@ -0,0 +1,37 @@
+diff -Naur imake-1.0.7-orig/imake.c imake-1.0.7/imake.c
+--- imake-1.0.7-orig/imake.c	2013-08-17 10:11:50.000000000 +0000
++++ imake-1.0.7/imake.c	2015-02-04 09:41:59.000000000 +0000
+@@ -1045,6 +1045,7 @@
+ static void
+ get_distrib(FILE *inFile)
+ {
++#if 0
+   struct stat sb;
+ 
+   static const char*   suse = "/etc/SuSE-release";
+@@ -1090,6 +1091,7 @@
+      * at the content of /etc/debian_version */
+     return;
+   }
++#endif  
+   /* what's the definitive way to tell what any particular distribution is? */
+ 
+   fprintf (inFile, "%s\n", "#define DefaultLinuxDistribution LinuxUnknown");
+@@ -1337,6 +1339,7 @@
+ static boolean
+ get_gcc(char *cmd)
+ {
++#if 0
+   struct stat sb;
+     static const char* gcc_path[] = {
+ #if defined(linux) || \
+@@ -1385,6 +1388,9 @@
+ 	}
+       }
+     return FALSE;
++#endif
++    strcpy (cmd, IMAKE_COMPILETIME_CPP);
++    return TRUE;
+ }
+ 
+ #ifdef CROSSCOMPILE
diff --git a/nixpkgs/pkgs/servers/x11/xorg/imake.sh b/nixpkgs/pkgs/servers/x11/xorg/imake.sh
new file mode 100644
index 000000000000..4ab5e2ae160b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/imake.sh
@@ -0,0 +1,6 @@
+preInstall() {
+    mkdir -p $out/lib/X11/config
+    ln -s $xorgcffiles/lib/X11/config/* $out/lib/X11/config
+    #touch $out/lib/X11/config/host.def # !!! hack
+    #touch $out/lib/X11/config/date.def # !!! hack
+}
diff --git a/nixpkgs/pkgs/servers/x11/xorg/overrides.nix b/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
new file mode 100644
index 000000000000..6ab9f8ed8dd1
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
@@ -0,0 +1,923 @@
+{ abiCompat ? null,
+  lib, stdenv, makeWrapper, fetchurl, fetchpatch, fetchFromGitLab, buildPackages,
+  automake, autoconf, gettext, libiconv, libtool, intltool,
+  freetype, tradcpp, fontconfig, meson, ninja, ed, fontforge,
+  libGL, spice-protocol, zlib, libGLU, dbus, libunwind, libdrm,
+  mesa, udev, bootstrap_cmds, bison, flex, clangStdenv, autoreconfHook,
+  mcpp, epoxy, openssl, pkg-config, llvm, libxslt,
+  ApplicationServices, Carbon, Cocoa, Xplugin
+}:
+
+let
+  inherit (stdenv) isDarwin;
+  inherit (lib) overrideDerivation;
+
+  malloc0ReturnsNullCrossFlag = lib.optional
+    (stdenv.hostPlatform != stdenv.buildPlatform)
+    "--enable-malloc0returnsnull";
+in
+self: super:
+{
+  bdftopcf = super.bdftopcf.overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ [ self.xorgproto ];
+  });
+
+  bitmap = super.bitmap.overrideAttrs (attrs: {
+    nativeBuildInputs = attrs.nativeBuildInputs ++ [ makeWrapper ];
+    postInstall = ''
+      paths=(
+        "$out/share/X11/%T/%N"
+        "$out/include/X11/%T/%N"
+        "${self.xbitmaps}/include/X11/%T/%N"
+      )
+      wrapProgram "$out/bin/bitmap" \
+        --suffix XFILESEARCHPATH : $(IFS=:; echo "''${paths[*]}")
+      makeWrapper "$out/bin/bitmap" "$out/bin/bitmap-color" \
+        --suffix XFILESEARCHPATH : "$out/share/X11/%T/%N-color"
+    '';
+  });
+
+  encodings = super.encodings.overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ [ self.mkfontscale ];
+  });
+
+  editres = super.editres.overrideAttrs (attrs: {
+    hardeningDisable = [ "format" ];
+  });
+
+  fontmiscmisc = super.fontmiscmisc.overrideAttrs (attrs: {
+    postInstall =
+      ''
+        ALIASFILE=${self.fontalias}/share/fonts/X11/misc/fonts.alias
+        test -f $ALIASFILE
+        cp $ALIASFILE $out/lib/X11/fonts/misc/fonts.alias
+      '';
+  });
+
+  imake = super.imake.overrideAttrs (attrs: {
+    inherit (self) xorgcffiles;
+    x11BuildHook = ./imake.sh;
+    patches = [./imake.patch ./imake-cc-wrapper-uberhack.patch];
+    setupHook = ./imake-setup-hook.sh;
+    CFLAGS = "-DIMAKE_COMPILETIME_CPP='\"${if stdenv.isDarwin
+      then "${tradcpp}/bin/cpp"
+      else "gcc"}\"'";
+
+    inherit tradcpp;
+  });
+
+  mkfontdir = self.mkfontscale;
+
+  libxcb = super.libxcb.overrideAttrs (attrs: {
+    configureFlags = [ "--enable-xkb" "--enable-xinput" ]
+      ++ lib.optional stdenv.hostPlatform.isStatic "--disable-shared";
+    outputs = [ "out" "dev" "man" "doc" ];
+  });
+
+  libX11 = super.libX11.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "man" ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+    depsBuildBuild = [
+      buildPackages.stdenv.cc
+    ] ++ lib.optionals stdenv.hostPlatform.isStatic [
+      (self.buildPackages.stdenv.cc.libc.static or null)
+    ];
+    preConfigure = ''
+      sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
+    '';
+    postInstall = ''
+      # Remove useless DocBook XML files.
+      rm -rf $out/share/doc
+    '';
+    CPP = lib.optionalString stdenv.isDarwin "clang -E -";
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
+  });
+
+  libAppleWM = super.libAppleWM.overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ [ ApplicationServices ];
+    preConfigure = ''
+      substituteInPlace src/Makefile.in --replace -F/System -F${ApplicationServices}
+    '';
+  });
+
+  libXau = super.libXau.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
+  });
+
+  libXdmcp = super.libXdmcp.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "doc" ];
+  });
+
+  libXfont = super.libXfont.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ freetype ]; # propagate link reqs. like bzip2
+    # prevents "misaligned_stack_error_entering_dyld_stub_binder"
+    configureFlags = lib.optional isDarwin "CFLAGS=-O0";
+  });
+
+  libXxf86vm = super.libXxf86vm.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  libXxf86dga = super.libXxf86dga.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  libXxf86misc = super.libXxf86misc.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  libdmx = super.libdmx.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  xdpyinfo = super.xdpyinfo.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+    preConfigure = attrs.preConfigure or ""
+    # missing transitive dependencies
+    + lib.optionalString stdenv.hostPlatform.isStatic ''
+      export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lXau -lXdmcp"
+    '';
+  });
+
+  # Propagate some build inputs because of header file dependencies.
+  # Note: most of these are in Requires.private, so maybe builder.sh
+  # should propagate them automatically.
+  libXt = super.libXt.overrideAttrs (attrs: {
+    preConfigure = ''
+      sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
+    '';
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libSM ];
+    depsBuildBuild = [ buildPackages.stdenv.cc ];
+    CPP = if stdenv.isDarwin then "clang -E -" else "${stdenv.cc.targetPrefix}cc -E -";
+    outputs = [ "out" "dev" "devdoc" ];
+  });
+
+  luit = super.luit.overrideAttrs (attrs: {
+    # See https://bugs.freedesktop.org/show_bug.cgi?id=47792
+    # Once the bug is fixed upstream, this can be removed.
+    configureFlags = [ "--disable-selective-werror" ];
+
+    buildInputs = attrs.buildInputs ++ [libiconv];
+  });
+
+  libICE = super.libICE.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "doc" ];
+  });
+
+  libXcomposite = super.libXcomposite.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXfixes ];
+  });
+
+  libXaw = super.libXaw.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "devdoc" ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXmu ];
+  });
+
+  libXcursor = super.libXcursor.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+  });
+
+  libXdamage = super.libXdamage.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+  });
+
+  libXft = super.libXft.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXrender freetype fontconfig ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+
+    patches = [
+      # Adds color emoji rendering support.
+      # https://gitlab.freedesktop.org/xorg/lib/libxft/merge_requests/1
+      (fetchpatch {
+        url = "https://gitlab.freedesktop.org/xorg/lib/libxft/commit/fe41537b5714a2301808eed2d76b2e7631176573.patch";
+        sha256 = "045lp1q50i2wlwvpsq6ycxdc6p3asm2r3bk2nbad1dwkqw2xf9jc";
+      })
+    ];
+
+    # the include files need ft2build.h, and Requires.private isn't enough for us
+    postInstall = ''
+      sed "/^Requires:/s/$/, freetype2/" -i "$dev/lib/pkgconfig/xft.pc"
+    '';
+    passthru = {
+      inherit freetype fontconfig;
+    };
+  });
+
+  libXext = super.libXext.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "man" "doc" ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto self.libXau ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+
+  libXfixes = super.libXfixes.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+  });
+
+  libXi = super.libXi.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "man" "doc" ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXfixes ];
+    configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "xorg_cv_malloc0_returns_null=no"
+    ] ++ lib.optional stdenv.hostPlatform.isStatic "--disable-shared";
+  });
+
+  libXinerama = super.libXinerama.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+
+  libXmu = super.libXmu.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "doc" ];
+    buildFlags = [ "BITMAP_DEFINES='-DBITMAPDIR=\"/no-such-path\"'" ];
+  });
+
+  libXrandr = super.libXrandr.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXrender ];
+  });
+
+  libSM = super.libSM.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "doc" ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libICE ];
+  });
+
+  libXrender = super.libXrender.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "doc" ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
+  });
+
+  libXres = super.libXres.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "devdoc" ];
+    buildInputs = with self; attrs.buildInputs ++ [ utilmacros ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+
+  libXScrnSaver = super.libXScrnSaver.overrideAttrs (attrs: {
+    buildInputs = with self; attrs.buildInputs ++ [ utilmacros ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+
+  libXv = super.libXv.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "devdoc" ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+
+  libXvMC = super.libXvMC.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" "doc" ];
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+    buildInputs = attrs.buildInputs ++ [self.xorgproto];
+  });
+
+  libXp = super.libXp.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+  });
+
+  libXpm = super.libXpm.overrideAttrs (attrs: {
+    outputs = [ "bin" "dev" "out" ]; # tiny man in $bin
+    patchPhase = "sed -i '/USE_GETTEXT_TRUE/d' sxpm/Makefile.in cxpm/Makefile.in";
+  });
+
+  libXpresent = super.libXpresent.overrideAttrs (attrs: {
+    buildInputs = with self; attrs.buildInputs ++ [ libXext libXfixes libXrandr ];
+  });
+
+  libxkbfile = super.libxkbfile.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ]; # mainly to avoid propagation
+  });
+
+  libxshmfence = super.libxshmfence.overrideAttrs (attrs: {
+    name = "libxshmfence-1.3";
+    src = fetchurl {
+      url = "mirror://xorg/individual/lib/libxshmfence-1.3.tar.bz2";
+      sha256 = "1ir0j92mnd1nk37mrv9bz5swnccqldicgszvfsh62jd14q6k115q";
+    };
+    outputs = [ "out" "dev" ]; # mainly to avoid propagation
+  });
+
+  libpciaccess = super.libpciaccess.overrideAttrs (attrs: {
+    meta = attrs.meta // { platforms = lib.platforms.linux; };
+  });
+
+  setxkbmap = super.setxkbmap.overrideAttrs (attrs: {
+    postInstall =
+      ''
+        mkdir -p $out/share/man/man7
+        ln -sfn ${self.xkeyboardconfig}/etc/X11 $out/share/X11
+        ln -sfn ${self.xkeyboardconfig}/share/man/man7/xkeyboard-config.7.gz $out/share/man/man7
+      '';
+  });
+
+  utilmacros = super.utilmacros.overrideAttrs (attrs: { # not needed for releases, we propagate the needed tools
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ automake autoconf libtool ];
+  });
+
+  x11perf = super.x11perf.overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ [ freetype fontconfig ];
+  });
+
+  xcbutil = super.xcbutil.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+  });
+
+  xcbutilcursor = super.xcbutilcursor.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+    meta = attrs.meta // { maintainers = [ lib.maintainers.lovek323 ]; };
+  });
+
+  xcbutilimage = super.xcbutilimage.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ]; # mainly to get rid of propagating others
+  });
+
+  xcbutilkeysyms = super.xcbutilkeysyms.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ]; # mainly to get rid of propagating others
+  });
+
+  xcbutilrenderutil = super.xcbutilrenderutil.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ]; # mainly to get rid of propagating others
+  });
+
+  xcbutilwm = super.xcbutilwm.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ]; # mainly to get rid of propagating others
+  });
+
+  xf86inputevdev = super.xf86inputevdev.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ]; # to get rid of xorgserver.dev; man is tiny
+    preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c";
+    installFlags = [
+      "sdkdir=${placeholder "out"}/include/xorg"
+    ];
+  });
+
+  xf86inputmouse = super.xf86inputmouse.overrideAttrs (attrs: {
+    installFlags = [
+      "sdkdir=${placeholder "out"}/include/xorg"
+    ];
+  });
+
+  xf86inputjoystick = super.xf86inputjoystick.overrideAttrs (attrs: {
+    installFlags = [
+      "sdkdir=${placeholder "out"}/include/xorg"
+    ];
+  });
+
+  xf86inputlibinput = super.xf86inputlibinput.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ];
+    installFlags = [
+      "sdkdir=${placeholder "dev"}/include/xorg"
+    ];
+  });
+
+  xf86inputsynaptics = super.xf86inputsynaptics.overrideAttrs (attrs: {
+    outputs = [ "out" "dev" ]; # *.pc pulls xorgserver.dev
+    installFlags = [
+      "sdkdir=${placeholder "out"}/include/xorg"
+      "configdir=${placeholder "out"}/share/X11/xorg.conf.d"
+    ];
+  });
+
+  xf86inputvmmouse = super.xf86inputvmmouse.overrideAttrs (attrs: {
+    configureFlags = [
+      "--sysconfdir=${placeholder "out"}/etc"
+      "--with-xorg-conf-dir=${placeholder "out"}/share/X11/xorg.conf.d"
+      "--with-udev-rules-dir=${placeholder "out"}/lib/udev/rules.d"
+    ];
+
+    meta = attrs.meta // {
+      platforms = ["i686-linux" "x86_64-linux"];
+    };
+  });
+
+  # Obsolete drivers that don't compile anymore.
+  xf86videoark     = super.xf86videoark.overrideAttrs     (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videogeode   = super.xf86videogeode.overrideAttrs   (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videoglide   = super.xf86videoglide.overrideAttrs   (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videoi128    = super.xf86videoi128.overrideAttrs    (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videonewport = super.xf86videonewport.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videos3virge = super.xf86videos3virge.overrideAttrs (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videosavage  = super.xf86videosavage.overrideAttrs  (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videotga     = super.xf86videotga.overrideAttrs     (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videov4l     = super.xf86videov4l.overrideAttrs     (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videovoodoo  = super.xf86videovoodoo.overrideAttrs  (attrs: { meta = attrs.meta // { broken = true; }; });
+  xf86videowsfb    = super.xf86videowsfb.overrideAttrs    (attrs: { meta = attrs.meta // { broken = true; }; });
+
+  xf86videoomap    = super.xf86videoomap.overrideAttrs (attrs: {
+    NIX_CFLAGS_COMPILE = [ "-Wno-error=format-overflow" ];
+  });
+
+  xf86videoamdgpu = super.xf86videoamdgpu.overrideAttrs (attrs: {
+    configureFlags = [ "--with-xorg-conf-dir=$(out)/share/X11/xorg.conf.d" ];
+  });
+
+  xf86videoati = super.xf86videoati.overrideAttrs (attrs: {
+    NIX_CFLAGS_COMPILE = "-I${self.xorgserver.dev or self.xorgserver}/include/xorg";
+  });
+
+  xf86videovmware = super.xf86videovmware.overrideAttrs (attrs: {
+    buildInputs =  attrs.buildInputs ++ [ mesa mesa.driversdev llvm ]; # for libxatracker
+    meta = attrs.meta // {
+      platforms = ["i686-linux" "x86_64-linux"];
+    };
+  });
+
+  xf86videoqxl = super.xf86videoqxl.overrideAttrs (attrs: {
+    buildInputs =  attrs.buildInputs ++ [ spice-protocol ];
+  });
+
+  xf86videosiliconmotion = super.xf86videosiliconmotion.overrideAttrs (attrs: {
+    meta = attrs.meta // {
+      platforms = ["i686-linux" "x86_64-linux"];
+    };
+  });
+
+  xdriinfo = super.xdriinfo.overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ [libGL];
+  });
+
+  xvinfo = super.xvinfo.overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ [self.libXext];
+  });
+
+  xkbcomp = super.xkbcomp.overrideAttrs (attrs: {
+    configureFlags = [ "--with-xkb-config-root=${self.xkeyboardconfig}/share/X11/xkb" ];
+  });
+
+  xkeyboardconfig = super.xkeyboardconfig.overrideAttrs (attrs: {
+    prePatch = "patchShebangs rules/merge.py";
+    nativeBuildInputs = attrs.nativeBuildInputs ++ [ intltool libxslt ];
+    configureFlags = [ "--with-xkb-rules-symlink=xorg" ];
+
+    # 1: compatibility for X11/xkb location
+    # 2: I think pkg-config/ is supposed to be in /lib/
+    postInstall = ''
+      ln -s share "$out/etc"
+      mkdir -p "$out/lib" && ln -s ../share/pkgconfig "$out/lib/"
+    '';
+  });
+
+  # xkeyboardconfig variant extensible with custom layouts.
+  # See nixos/modules/services/x11/extra-layouts.nix
+  xkeyboardconfig_custom = { layouts ? { } }:
+  let
+    patchIn = name: layout:
+    with layout;
+    with lib;
+    ''
+        # install layout files
+        ${optionalString (compatFile   != null) "cp '${compatFile}'   'compat/${name}'"}
+        ${optionalString (geometryFile != null) "cp '${geometryFile}' 'geometry/${name}'"}
+        ${optionalString (keycodesFile != null) "cp '${keycodesFile}' 'keycodes/${name}'"}
+        ${optionalString (symbolsFile  != null) "cp '${symbolsFile}'  'symbols/${name}'"}
+        ${optionalString (typesFile    != null) "cp '${typesFile}'    'types/${name}'"}
+
+        # patch makefiles
+        for type in compat geometry keycodes symbols types; do
+          if ! test -f "$type/${name}"; then
+            continue
+          fi
+          test "$type" = geometry && type_name=geom || type_name=$type
+          ${ed}/bin/ed -v $type/Makefile.am <<EOF
+        /''${type_name}_DATA =
+        a
+        ${name} \\
+        .
+        w
+        EOF
+          ${ed}/bin/ed -v $type/Makefile.in <<EOF
+        /''${type_name}_DATA =
+        a
+        ${name} \\
+        .
+        w
+        EOF
+        done
+
+        # add model description
+        ${ed}/bin/ed -v rules/base.xml <<EOF
+        /<\/modelList>
+        -
+        a
+        <model>
+          <configItem>
+            <name>${name}</name>
+            <description>${layout.description}</description>
+            <vendor>${layout.description}</vendor>
+          </configItem>
+        </model>
+        .
+        w
+        EOF
+
+        # add layout description
+        ${ed}/bin/ed -v rules/base.xml <<EOF
+        /<\/layoutList>
+        -
+        a
+        <layout>
+          <configItem>
+            <name>${name}</name>
+            <shortDescription>${name}</shortDescription>
+            <description>${layout.description}</description>
+            <languageList>
+              ${concatMapStrings (lang: "<iso639Id>${lang}</iso639Id>\n") layout.languages}
+            </languageList>
+          </configItem>
+          <variantList/>
+        </layout>
+        .
+        w
+        EOF
+    '';
+  in
+    self.xkeyboardconfig.overrideAttrs (old: {
+      buildInputs = old.buildInputs ++ [ automake ];
+      postPatch   = with lib; concatStrings (mapAttrsToList patchIn layouts);
+    });
+
+  xload = super.xload.overrideAttrs (attrs: {
+    nativeBuildInputs = attrs.nativeBuildInputs ++ [ gettext ];
+  });
+
+  xlsfonts = super.xlsfonts.overrideAttrs (attrs: {
+    meta = attrs.meta // { license = lib.licenses.mit; };
+  });
+
+  xorgproto = super.xorgproto.overrideAttrs (attrs: {
+    buildInputs = [];
+    propagatedBuildInputs = [];
+    nativeBuildInputs = attrs.nativeBuildInputs ++ [ meson ninja ];
+    # adds support for printproto needed for libXp
+    mesonFlags = [ "-Dlegacy=true" ];
+  });
+
+  xorgserver = with self; super.xorgserver.overrideAttrs (attrs_passed:
+    # exchange attrs if abiCompat is set
+    let
+      version = lib.getVersion attrs_passed;
+      attrs =
+        if (abiCompat == null || lib.hasPrefix abiCompat version) then
+          attrs_passed // {
+            buildInputs = attrs_passed.buildInputs ++ [ libdrm.dev ]; postPatch = ''
+            for i in dri3/*.c
+            do
+              sed -i -e "s|#include <drm_fourcc.h>|#include <libdrm/drm_fourcc.h>|" $i
+            done
+          '';}
+        else if (abiCompat == "1.17") then {
+          name = "xorg-server-1.17.4";
+          builder = ./builder.sh;
+          src = fetchurl {
+            url = "mirror://xorg/individual/xserver/xorg-server-1.17.4.tar.bz2";
+            sha256 = "0mv4ilpqi5hpg182mzqn766frhi6rw48aba3xfbaj4m82v0lajqc";
+          };
+          nativeBuildInputs = [ pkg-config ];
+          buildInputs = [ xorgproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
+          meta.platforms = lib.platforms.unix;
+        } else if (abiCompat == "1.18") then {
+            name = "xorg-server-1.18.4";
+            builder = ./builder.sh;
+            src = fetchurl {
+              url = "mirror://xorg/individual/xserver/xorg-server-1.18.4.tar.bz2";
+              sha256 = "1j1i3n5xy1wawhk95kxqdc54h34kg7xp4nnramba2q8xqfr5k117";
+            };
+            nativeBuildInputs = [ pkg-config ];
+            buildInputs = [ xorgproto libdrm openssl libX11 libXau libXaw libxcb xcbutil xcbutilwm xcbutilimage xcbutilkeysyms xcbutilrenderutil libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt ];
+            postPatch = lib.optionalString stdenv.isLinux "sed '1i#include <malloc.h>' -i include/os.h";
+            meta.platforms = lib.platforms.unix;
+        } else throw "unsupported xorg abiCompat ${abiCompat} for ${attrs_passed.name}";
+
+    in attrs //
+    (let
+      version = lib.getVersion attrs;
+      commonBuildInputs = attrs.buildInputs ++ [ xtrans ];
+      commonPropagatedBuildInputs = [
+        zlib libGL libGLU dbus
+        xorgproto
+        libXext pixman libXfont libxshmfence libunwind
+        libXfont2
+      ];
+      # XQuartz requires two compilations: the first to get X / XQuartz,
+      # and the second to get Xvfb, Xnest, etc.
+      darwinOtherX = overrideDerivation xorgserver (oldAttrs: {
+        configureFlags = oldAttrs.configureFlags ++ [
+          "--disable-xquartz"
+          "--enable-xorg"
+          "--enable-xvfb"
+          "--enable-xnest"
+          "--enable-kdrive"
+        ];
+        postInstall = ":"; # prevent infinite recursion
+      });
+    in
+      if (!isDarwin)
+      then {
+        outputs = [ "out" "dev" ];
+        patches = [
+          # The build process tries to create the specified logdir when building.
+          #
+          # We set it to /var/log which can't be touched from inside the sandbox causing the build to hard-fail
+          ./dont-create-logdir-during-build.patch
+        ];
+        buildInputs = commonBuildInputs ++ [ libdrm mesa ];
+        propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ libpciaccess epoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
+          udev
+        ];
+        prePatch = lib.optionalString stdenv.hostPlatform.isMusl ''
+          export CFLAGS+=" -D__uid_t=uid_t -D__gid_t=gid_t"
+        '';
+        configureFlags = [
+          "--enable-kdrive"             # not built by default
+          "--enable-xephyr"
+          "--enable-xcsecurity"         # enable SECURITY extension
+          "--with-default-font-path="   # there were only paths containing "${prefix}",
+                                        # and there are no fonts in this package anyway
+          "--with-xkb-bin-directory=${self.xkbcomp}/bin"
+          "--with-xkb-path=${self.xkeyboardconfig}/share/X11/xkb"
+          "--with-xkb-output=$out/share/X11/xkb/compiled"
+          "--with-log-dir=/var/log"
+          "--enable-glamor"
+        ] ++ lib.optionals stdenv.hostPlatform.isMusl [
+          "--disable-tls"
+        ];
+
+        postInstall = ''
+          rm -fr $out/share/X11/xkb/compiled # otherwise X will try to write in it
+          ( # assert() keeps runtime reference xorgserver-dev in xf86-video-intel and others
+            cd "$dev"
+            for f in include/xorg/*.h; do
+              sed "1i#line 1 \"${attrs.name}/$f\"" -i "$f"
+            done
+          )
+        '';
+        passthru.version = version; # needed by virtualbox guest additions
+      } else {
+        nativeBuildInputs = attrs.nativeBuildInputs ++ [ autoreconfHook self.utilmacros self.fontutil ];
+        buildInputs = commonBuildInputs ++ [
+          bootstrap_cmds automake autoconf
+          Xplugin Carbon Cocoa
+        ];
+        propagatedBuildInputs = commonPropagatedBuildInputs ++ [
+          libAppleWM xorgproto
+        ];
+
+        patches = [
+          # XQuartz patchset
+          (fetchpatch {
+            url = "https://github.com/XQuartz/xorg-server/commit/e88fd6d785d5be477d5598e70d105ffb804771aa.patch";
+            sha256 = "1q0a30m1qj6ai924afz490xhack7rg4q3iig2gxsjjh98snikr1k";
+            name = "use-cppflags-not-cflags.patch";
+          })
+          (fetchpatch {
+            url = "https://github.com/XQuartz/xorg-server/commit/75ee9649bcfe937ac08e03e82fd45d9e18110ef4.patch";
+            sha256 = "1vlfylm011y00j8mig9zy6gk9bw2b4ilw2qlsc6la49zi3k0i9fg";
+            name = "use-old-mitrapezoids-and-mitriangles-routines.patch";
+          })
+          (fetchpatch {
+            url = "https://github.com/XQuartz/xorg-server/commit/c58f47415be79a6564a9b1b2a62c2bf866141e73.patch";
+            sha256 = "19sisqzw8x2ml4lfrwfvavc2jfyq2bj5xcf83z89jdxg8g1gdd1i";
+            name = "revert-fb-changes-1.patch";
+          })
+          (fetchpatch {
+            url = "https://github.com/XQuartz/xorg-server/commit/56e6f1f099d2821e5002b9b05b715e7b251c0c97.patch";
+            sha256 = "0zm9g0g1jvy79sgkvy0rjm6ywrdba2xjd1nsnjbxjccckbr6i396";
+            name = "revert-fb-changes-2.patch";
+          })
+        ];
+
+        configureFlags = [
+          # note: --enable-xquartz is auto
+          "CPPFLAGS=-I${./darwin/dri}"
+          "--with-default-font-path="
+          "--with-apple-application-name=XQuartz"
+          "--with-apple-applications-dir=\${out}/Applications"
+          "--with-bundle-id-prefix=org.nixos.xquartz"
+          "--with-sha1=CommonCrypto"
+        ];
+        preConfigure = ''
+          mkdir -p $out/Applications
+          export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error"
+          substituteInPlace hw/xquartz/pbproxy/Makefile.in --replace -F/System -F${ApplicationServices}
+        '';
+        postInstall = ''
+          rm -fr $out/share/X11/xkb/compiled
+
+          cp -rT ${darwinOtherX}/bin $out/bin
+          rm -f $out/bin/X
+          ln -s Xquartz $out/bin/X
+
+          cp ${darwinOtherX}/share/man -rT $out/share/man
+        '' ;
+        passthru.version = version;
+      }));
+
+  lndir = super.lndir.overrideAttrs (attrs: {
+    buildInputs = [];
+    preConfigure = ''
+      export XPROTO_CFLAGS=" "
+      export XPROTO_LIBS=" "
+      substituteInPlace lndir.c \
+        --replace '<X11/Xos.h>' '<string.h>' \
+        --replace '<X11/Xfuncproto.h>' '<unistd.h>' \
+        --replace '_X_ATTRIBUTE_PRINTF(1,2)' '__attribute__((__format__(__printf__,1,2)))' \
+        --replace '_X_ATTRIBUTE_PRINTF(2,3)' '__attribute__((__format__(__printf__,2,3)))' \
+        --replace '_X_NORETURN' '__attribute__((noreturn))' \
+        --replace 'n_dirs--;' ""
+    '';
+  });
+
+  twm = super.twm.overrideAttrs (attrs: {
+    nativeBuildInputs = attrs.nativeBuildInputs ++ [bison flex];
+  });
+
+  xauth = super.xauth.overrideAttrs (attrs: {
+    doCheck = false; # fails
+    preConfigure = attrs.preConfigure or ""
+    # missing transitive dependencies
+    + lib.optionalString stdenv.hostPlatform.isStatic ''
+      export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lxcb -lXau -lXdmcp"
+    '';
+  });
+
+  xcursorthemes = super.xcursorthemes.overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ [ self.xcursorgen self.xorgproto ];
+    configureFlags = [ "--with-cursordir=$(out)/share/icons" ];
+  });
+
+  xinit = (super.xinit.override {
+    stdenv = if isDarwin then clangStdenv else stdenv;
+  }).overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ lib.optional isDarwin bootstrap_cmds;
+    configureFlags = [
+      "--with-xserver=${self.xorgserver.out}/bin/X"
+    ] ++ lib.optionals isDarwin [
+      "--with-bundle-id-prefix=org.nixos.xquartz"
+      "--with-launchdaemons-dir=\${out}/LaunchDaemons"
+      "--with-launchagents-dir=\${out}/LaunchAgents"
+    ];
+    patches = [
+      # don't unset DBUS_SESSION_BUS_ADDRESS in startx
+      (fetchpatch {
+        name = "dont-unset-DBUS_SESSION_BUS_ADDRESS.patch";
+        url = "https://git.archlinux.org/svntogit/packages.git/plain/repos/extra-x86_64/fs46369.patch?h=packages/xorg-xinit&id=40f3ac0a31336d871c76065270d3f10e922d06f3";
+        sha256 = "18kb88i3s9nbq2jxl7l2hyj6p56c993hivk8mzxg811iqbbawkp7";
+      })
+    ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xauth ]
+                         ++ lib.optionals isDarwin [ self.libX11 self.xorgproto ];
+    postFixup = ''
+      substituteInPlace $out/bin/startx --replace $out/etc/X11/xinit/xserverrc /etc/X11/xinit/xserverrc
+    '';
+  });
+
+  xf86videointel = super.xf86videointel.overrideAttrs (attrs: {
+    # the update script only works with released tarballs :-/
+    name = "xf86-video-intel-2019-12-09";
+    src = fetchFromGitLab {
+      domain = "gitlab.freedesktop.org";
+      group = "xorg";
+      owner = "driver";
+      repo = "xf86-video-intel";
+      rev = "f66d39544bb8339130c96d282a80f87ca1606caf";
+      sha256 = "14rwbbn06l8qpx7s5crxghn80vgcx8jmfc7qvivh72d81r0kvywl";
+    };
+    buildInputs = attrs.buildInputs ++ [ self.libXScrnSaver self.libXfixes self.libXv self.pixman ];
+    nativeBuildInputs = attrs.nativeBuildInputs ++ [autoreconfHook self.utilmacros];
+    configureFlags = [ "--with-default-dri=3" "--enable-tools" ];
+
+    meta = attrs.meta // {
+      platforms = ["i686-linux" "x86_64-linux"];
+    };
+  });
+
+  xf86videoopenchrome = super.xf86videoopenchrome.overrideAttrs (attrs: {
+    buildInputs = attrs.buildInputs ++ [ self.libXv ];
+  });
+
+  xf86videoxgi = super.xf86videoxgi.overrideAttrs (attrs: {
+    patches = [
+      # fixes invalid open mode
+      # https://cgit.freedesktop.org/xorg/driver/xf86-video-xgi/commit/?id=bd94c475035739b42294477cff108e0c5f15ef67
+      (fetchpatch {
+        url = "https://cgit.freedesktop.org/xorg/driver/xf86-video-xgi/patch/?id=bd94c475035739b42294477cff108e0c5f15ef67";
+        sha256 = "0myfry07655adhrpypa9rqigd6rfx57pqagcwibxw7ab3wjay9f6";
+      })
+      (fetchpatch {
+        url = "https://cgit.freedesktop.org/xorg/driver/xf86-video-xgi/patch/?id=78d1138dd6e214a200ca66fa9e439ee3c9270ec8";
+        sha256 = "0z3643afgrync280zrp531ija0hqxc5mrwjif9nh9lcnzgnz2d6d";
+      })
+    ];
+  });
+
+  xorgcffiles = super.xorgcffiles.overrideAttrs (attrs: {
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      substituteInPlace $out/lib/X11/config/darwin.cf --replace "/usr/bin/" ""
+    '';
+  });
+
+  xwd = super.xwd.overrideAttrs (attrs: {
+    buildInputs = with self; attrs.buildInputs ++ [libXt];
+  });
+
+  xrdb = super.xrdb.overrideAttrs (attrs: {
+    configureFlags = [ "--with-cpp=${mcpp}/bin/mcpp" ];
+  });
+
+  sessreg = super.sessreg.overrideAttrs (attrs: {
+    preBuild = "sed -i 's|gcc -E|gcc -E -P|' man/Makefile";
+  });
+
+  xrandr = super.xrandr.overrideAttrs (attrs: {
+    postInstall = ''
+      rm $out/bin/xkeystone
+    '';
+  });
+
+  xcalc = super.xcalc.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or [] ++ [
+      "--with-appdefaultdir=${placeholder "out"}/share/X11/app-defaults"
+    ];
+    nativeBuildInputs = attrs.nativeBuildInputs or [] ++ [ makeWrapper ];
+    postInstall = ''
+      wrapProgram $out/bin/xcalc \
+        --set XAPPLRESDIR ${placeholder "out"}/share/X11/app-defaults
+    '';
+  });
+
+  # convert Type1 vector fonts to OpenType fonts
+  fontbitstreamtype1 = super.fontbitstreamtype1.overrideAttrs (attrs: {
+    nativeBuildInputs = attrs.nativeBuildInputs ++ [ fontforge ];
+
+    postBuild = ''
+      # convert Postscript (Type 1) font to otf
+      for i in $(find -type f -name '*.pfa' -o -name '*.pfb'); do
+          name=$(basename $i | cut -d. -f1)
+          fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$name.otf\")"
+      done
+    '';
+
+    postInstall = ''
+      # install the otf fonts
+      fontDir="$out/lib/X11/fonts/misc/"
+      install -D -m 644 -t "$fontDir" *.otf
+      mkfontscale "$fontDir"
+    '';
+  });
+
+}
+
+# mark some packages as unfree
+// (
+  let
+    # unfree but redistributable
+    redist = [
+      "fontadobeutopiatype1"
+      "fontadobeutopia100dpi"
+      "fontadobeutopia75dpi"
+      "fontbhtype1"
+      "fontibmtype1"
+      "fontbhttf"
+      "fontbh100dpi"
+      "fontbh75dpi"
+    ];
+
+    # unfree, possibly not redistributable
+    unfree = [
+      # no license, just a copyright notice
+      "fontbhlucidatypewriter100dpi"
+      "fontbhlucidatypewriter75dpi"
+      "fontdaewoomisc"
+
+      # unclear license, "permission to use"?
+      "fontjismisc"
+    ];
+
+    setLicense = license: name:
+      super.${name}.overrideAttrs (attrs: {
+        meta = attrs.meta // { inherit license; };
+      });
+    mapNamesToAttrs = f: names: with lib;
+      listToAttrs (zipListsWith nameValuePair names (map f names));
+
+  in
+    mapNamesToAttrs (setLicense lib.licenses.unfreeRedistributable) redist //
+    mapNamesToAttrs (setLicense lib.licenses.unfree) unfree
+)
diff --git a/nixpkgs/pkgs/servers/x11/xorg/tarballs.list b/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
new file mode 100644
index 000000000000..093aba26f639
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
@@ -0,0 +1,221 @@
+https://invisible-mirror.net/archives/luit/luit-20190106.tgz
+https://xcb.freedesktop.org/dist/libpthread-stubs-0.4.tar.bz2
+https://xcb.freedesktop.org/dist/xcb-util-0.4.0.tar.bz2
+https://xcb.freedesktop.org/dist/xcb-util-cursor-0.1.3.tar.bz2
+https://xcb.freedesktop.org/dist/xcb-util-errors-1.0.tar.bz2
+https://xcb.freedesktop.org/dist/xcb-util-image-0.4.0.tar.bz2
+https://xcb.freedesktop.org/dist/xcb-util-keysyms-0.4.0.tar.bz2
+https://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.9.tar.bz2
+https://xcb.freedesktop.org/dist/xcb-util-wm-0.4.1.tar.bz2
+mirror://xorg/individual/app/appres-1.0.5.tar.bz2
+mirror://xorg/individual/app/bdftopcf-1.1.tar.bz2
+mirror://xorg/individual/app/bitmap-1.0.9.tar.gz
+mirror://xorg/individual/app/editres-1.0.7.tar.bz2
+mirror://xorg/individual/app/fonttosfnt-1.2.1.tar.bz2
+mirror://xorg/individual/app/iceauth-1.0.8.tar.bz2
+mirror://xorg/individual/app/ico-1.0.5.tar.bz2
+mirror://xorg/individual/app/listres-1.0.4.tar.bz2
+mirror://xorg/individual/app/mkfontscale-1.2.1.tar.bz2
+mirror://xorg/individual/app/oclock-1.0.4.tar.bz2
+mirror://xorg/individual/app/sessreg-1.1.2.tar.bz2
+mirror://xorg/individual/app/setxkbmap-1.3.2.tar.bz2
+mirror://xorg/individual/app/smproxy-1.0.6.tar.bz2
+mirror://xorg/individual/app/transset-1.0.2.tar.bz2
+mirror://xorg/individual/app/twm-1.0.10.tar.bz2
+mirror://xorg/individual/app/viewres-1.0.5.tar.bz2
+mirror://xorg/individual/app/x11perf-1.6.1.tar.bz2
+mirror://xorg/individual/app/xauth-1.1.tar.bz2
+mirror://xorg/individual/app/xbacklight-1.2.3.tar.bz2
+mirror://xorg/individual/app/xcalc-1.1.0.tar.bz2
+mirror://xorg/individual/app/xclock-1.0.9.tar.bz2
+mirror://xorg/individual/app/xcmsdb-1.0.5.tar.bz2
+mirror://xorg/individual/app/xcompmgr-1.1.8.tar.bz2
+mirror://xorg/individual/app/xconsole-1.0.7.tar.bz2
+mirror://xorg/individual/app/xcursorgen-1.0.7.tar.bz2
+mirror://xorg/individual/app/xdm-1.1.12.tar.bz2
+mirror://xorg/individual/app/xdpyinfo-1.3.2.tar.bz2
+mirror://xorg/individual/app/xdriinfo-1.0.6.tar.bz2
+mirror://xorg/individual/app/xev-1.2.3.tar.bz2
+mirror://xorg/individual/app/xeyes-1.1.2.tar.bz2
+mirror://xorg/individual/app/xfd-1.1.3.tar.bz2
+mirror://xorg/individual/app/xfontsel-1.0.6.tar.bz2
+mirror://xorg/individual/app/xfs-1.2.0.tar.bz2
+mirror://xorg/individual/app/xfsinfo-1.0.6.tar.bz2
+mirror://xorg/individual/app/xgamma-1.0.6.tar.bz2
+mirror://xorg/individual/app/xgc-1.0.5.tar.bz2
+mirror://xorg/individual/app/xhost-1.0.8.tar.bz2
+mirror://xorg/individual/app/xinit-1.4.1.tar.bz2
+mirror://xorg/individual/app/xinput-1.6.3.tar.bz2
+mirror://xorg/individual/app/xkbcomp-1.4.5.tar.bz2
+mirror://xorg/individual/app/xkbevd-1.1.4.tar.bz2
+mirror://xorg/individual/app/xkbprint-1.0.4.tar.bz2
+mirror://xorg/individual/app/xkbutils-1.0.4.tar.bz2
+mirror://xorg/individual/app/xkill-1.0.5.tar.bz2
+mirror://xorg/individual/app/xload-1.1.3.tar.bz2
+mirror://xorg/individual/app/xlsatoms-1.1.3.tar.bz2
+mirror://xorg/individual/app/xlsclients-1.1.4.tar.bz2
+mirror://xorg/individual/app/xlsfonts-1.0.6.tar.bz2
+mirror://xorg/individual/app/xmag-1.0.6.tar.bz2
+mirror://xorg/individual/app/xmessage-1.0.5.tar.bz2
+mirror://xorg/individual/app/xmodmap-1.0.10.tar.bz2
+mirror://xorg/individual/app/xmore-1.0.3.tar.bz2
+mirror://xorg/individual/app/xpr-1.0.5.tar.bz2
+mirror://xorg/individual/app/xprop-1.2.5.tar.bz2
+mirror://xorg/individual/app/xrandr-1.5.1.tar.xz
+mirror://xorg/individual/app/xrdb-1.2.0.tar.bz2
+mirror://xorg/individual/app/xrefresh-1.0.6.tar.bz2
+mirror://xorg/individual/app/xset-1.2.4.tar.bz2
+mirror://xorg/individual/app/xsetroot-1.1.2.tar.bz2
+mirror://xorg/individual/app/xsm-1.0.4.tar.bz2
+mirror://xorg/individual/app/xstdcmap-1.0.4.tar.bz2
+mirror://xorg/individual/app/xtrap-1.0.3.tar.bz2
+mirror://xorg/individual/app/xvinfo-1.1.4.tar.bz2
+mirror://xorg/individual/app/xwd-1.0.7.tar.bz2
+mirror://xorg/individual/app/xwininfo-1.1.4.tar.bz2
+mirror://xorg/individual/app/xwud-1.0.5.tar.bz2
+mirror://xorg/individual/data/xbitmaps-1.1.2.tar.bz2
+mirror://xorg/individual/data/xcursor-themes-1.0.6.tar.bz2
+mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.31.tar.bz2
+mirror://xorg/individual/doc/xorg-docs-1.7.1.tar.bz2
+mirror://xorg/individual/doc/xorg-sgml-doctools-1.11.tar.bz2
+mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2
+mirror://xorg/individual/driver/xf86-input-joystick-1.6.3.tar.bz2
+mirror://xorg/individual/driver/xf86-input-keyboard-1.9.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-libinput-1.0.1.tar.bz2
+mirror://xorg/individual/driver/xf86-input-mouse-1.9.3.tar.bz2
+mirror://xorg/individual/driver/xf86-input-synaptics-1.9.1.tar.bz2
+mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-void-1.4.1.tar.bz2
+mirror://xorg/individual/driver/xf86-video-amdgpu-19.1.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-apm-1.3.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ast-1.1.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ati-19.1.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-chips-1.4.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-cirrus-1.5.3.tar.bz2
+mirror://xorg/individual/driver/xf86-video-dummy-0.3.8.tar.bz2
+mirror://xorg/individual/driver/xf86-video-fbdev-0.5.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-geode-2.11.19.tar.bz2
+mirror://xorg/individual/driver/xf86-video-glide-1.2.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-glint-1.2.9.tar.bz2
+mirror://xorg/individual/driver/xf86-video-i128-1.4.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-i740-1.4.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-intel-2.99.917.tar.bz2
+mirror://xorg/individual/driver/xf86-video-mach64-6.9.6.tar.bz2
+mirror://xorg/individual/driver/xf86-video-mga-2.0.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-neomagic-1.3.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-newport-0.2.4.tar.bz2
+mirror://xorg/individual/driver/xf86-video-nouveau-1.0.17.tar.bz2
+mirror://xorg/individual/driver/xf86-video-nv-2.1.21.tar.bz2
+mirror://xorg/individual/driver/xf86-video-omap-0.4.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-openchrome-0.6.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-qxl-0.1.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-r128-6.11.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-rendition-4.2.7.tar.bz2
+mirror://xorg/individual/driver/xf86-video-s3virge-1.11.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-savage-2.3.9.tar.bz2
+mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.9.tar.bz2
+mirror://xorg/individual/driver/xf86-video-sis-0.11.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-sisusb-0.9.7.tar.bz2
+mirror://xorg/individual/driver/xf86-video-suncg6-1.1.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-sunffb-1.2.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-sunleo-1.2.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-tdfx-1.5.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-trident-1.3.8.tar.bz2
+mirror://xorg/individual/driver/xf86-video-v4l-0.3.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-vboxvideo-1.0.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-vesa-2.5.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-vmware-13.3.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-wsfb-0.4.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-xgi-1.6.1.tar.bz2
+mirror://xorg/individual/font/encodings-1.0.5.tar.bz2
+mirror://xorg/individual/font/font-adobe-100dpi-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-adobe-75dpi-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-adobe-utopia-100dpi-1.0.4.tar.bz2
+mirror://xorg/individual/font/font-adobe-utopia-75dpi-1.0.4.tar.bz2
+mirror://xorg/individual/font/font-adobe-utopia-type1-1.0.4.tar.bz2
+mirror://xorg/individual/font/font-alias-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-arabic-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-bh-100dpi-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-bh-75dpi-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-bh-ttf-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-bh-type1-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-bitstream-100dpi-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-bitstream-75dpi-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-bitstream-type1-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-cronyx-cyrillic-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-cursor-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-daewoo-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-dec-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-ibm-type1-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-isas-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-jis-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-micro-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-misc-cyrillic-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-misc-ethiopic-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-misc-meltho-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-misc-misc-1.1.2.tar.bz2
+mirror://xorg/individual/font/font-mutt-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-schumacher-misc-1.1.2.tar.bz2
+mirror://xorg/individual/font/font-screen-cyrillic-1.0.4.tar.bz2
+mirror://xorg/individual/font/font-sony-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-sun-misc-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-util-1.3.1.tar.bz2
+mirror://xorg/individual/font/font-winitzki-cyrillic-1.0.3.tar.bz2
+mirror://xorg/individual/font/font-xfree86-type1-1.0.4.tar.bz2
+mirror://xorg/individual/lib/libAppleWM-1.4.1.tar.bz2
+mirror://xorg/individual/lib/libdmx-1.1.4.tar.bz2
+mirror://xorg/individual/lib/libfontenc-1.1.4.tar.bz2
+mirror://xorg/individual/lib/libFS-1.0.8.tar.bz2
+mirror://xorg/individual/lib/libICE-1.0.10.tar.bz2
+mirror://xorg/individual/lib/libpciaccess-0.16.tar.bz2
+mirror://xorg/individual/lib/libSM-1.2.3.tar.bz2
+mirror://xorg/individual/lib/libWindowsWM-1.0.1.tar.bz2
+mirror://xorg/individual/lib/libX11-1.7.0.tar.bz2
+mirror://xorg/individual/lib/libXau-1.0.9.tar.bz2
+mirror://xorg/individual/lib/libXaw-1.0.14.tar.bz2
+mirror://xorg/individual/lib/libXaw3d-1.6.3.tar.bz2
+mirror://xorg/individual/lib/libxcb-1.14.tar.xz
+mirror://xorg/individual/lib/libXcomposite-0.4.5.tar.bz2
+mirror://xorg/individual/lib/libXcursor-1.2.0.tar.bz2
+mirror://xorg/individual/lib/libXdamage-1.1.5.tar.bz2
+mirror://xorg/individual/lib/libXdmcp-1.1.3.tar.bz2
+mirror://xorg/individual/lib/libXext-1.3.4.tar.bz2
+mirror://xorg/individual/lib/libXfixes-5.0.3.tar.bz2
+mirror://xorg/individual/lib/libXfont-1.5.4.tar.bz2
+mirror://xorg/individual/lib/libXfont2-2.0.4.tar.bz2
+mirror://xorg/individual/lib/libXft-2.3.3.tar.bz2
+mirror://xorg/individual/lib/libXi-1.7.10.tar.bz2
+mirror://xorg/individual/lib/libXinerama-1.1.4.tar.bz2
+mirror://xorg/individual/lib/libxkbfile-1.1.0.tar.bz2
+mirror://xorg/individual/lib/libXmu-1.1.3.tar.bz2
+mirror://xorg/individual/lib/libXp-1.0.3.tar.bz2
+mirror://xorg/individual/lib/libXpm-3.5.13.tar.bz2
+mirror://xorg/individual/lib/libXpresent-1.0.0.tar.bz2
+mirror://xorg/individual/lib/libXrandr-1.5.2.tar.bz2
+mirror://xorg/individual/lib/libXrender-0.9.10.tar.bz2
+mirror://xorg/individual/lib/libXres-1.2.1.tar.bz2
+mirror://xorg/individual/lib/libXScrnSaver-1.2.3.tar.bz2
+mirror://xorg/individual/lib/libxshmfence-1.3.tar.bz2
+mirror://xorg/individual/lib/libXTrap-1.0.1.tar.bz2
+mirror://xorg/individual/lib/libXt-1.2.1.tar.bz2
+mirror://xorg/individual/lib/libXtst-1.2.3.tar.bz2
+mirror://xorg/individual/lib/libXv-1.0.11.tar.bz2
+mirror://xorg/individual/lib/libXvMC-1.0.12.tar.bz2
+mirror://xorg/individual/lib/libXxf86dga-1.1.5.tar.bz2
+mirror://xorg/individual/lib/libXxf86misc-1.0.4.tar.bz2
+mirror://xorg/individual/lib/libXxf86vm-1.1.4.tar.bz2
+mirror://xorg/individual/lib/xtrans-1.4.0.tar.bz2
+mirror://xorg/individual/proto/xcb-proto-1.14.1.tar.xz
+mirror://xorg/individual/proto/xorgproto-2021.3.tar.bz2
+mirror://xorg/individual/util/gccmakedep-1.0.3.tar.bz2
+mirror://xorg/individual/util/imake-1.0.8.tar.bz2
+mirror://xorg/individual/util/lndir-1.0.3.tar.bz2
+mirror://xorg/individual/util/makedepend-1.0.6.tar.bz2
+mirror://xorg/individual/util/util-macros-1.19.3.tar.bz2
+mirror://xorg/individual/util/xorg-cf-files-1.0.6.tar.bz2
+mirror://xorg/individual/xserver/xorg-server-1.20.11.tar.bz2
diff --git a/nixpkgs/pkgs/servers/x11/xorg/xcb-util-xrm.nix b/nixpkgs/pkgs/servers/x11/xorg/xcb-util-xrm.nix
new file mode 100644
index 000000000000..ee870f071256
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/xcb-util-xrm.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchurl, pkg-config, m4, libxcb, xcbutil, libX11 }:
+
+stdenv.mkDerivation rec {
+  version = "1.3";
+  pname = "xcb-util-xrm";
+
+  src = fetchurl {
+    url = "https://github.com/Airblader/xcb-util-xrm/releases/download/v${version}/${pname}-${version}.tar.bz2";
+    sha256 = "118cj1ybw86pgw0l5whn9vbg5n5b0ijcpx295mwahzi004vz671h";
+  };
+
+  nativeBuildInputs = [ pkg-config m4 ];
+  doCheck = true;
+  buildInputs = [ libxcb xcbutil ];
+  checkInputs = [ libX11 ];
+
+  meta = with lib; {
+    description = "XCB utility functions for the X resource manager";
+    homepage = "https://github.com/Airblader/xcb-util-xrm";
+    license = licenses.mit; # X11 variant
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/x11/xorg/xwayland.nix b/nixpkgs/pkgs/servers/x11/xorg/xwayland.nix
new file mode 100644
index 000000000000..e3d2698e8303
--- /dev/null
+++ b/nixpkgs/pkgs/servers/x11/xorg/xwayland.nix
@@ -0,0 +1,40 @@
+{ lib, wayland, wayland-protocols, xorgserver, xkbcomp, xkeyboard_config
+, epoxy, libxslt, libunwind, makeWrapper, egl-wayland
+, defaultFontPath ? "" }:
+
+with lib;
+
+xorgserver.overrideAttrs (oldAttrs: {
+
+  name = "xwayland-${xorgserver.version}";
+  buildInputs = oldAttrs.buildInputs ++ [ egl-wayland ];
+  propagatedBuildInputs = oldAttrs.propagatedBuildInputs
+    ++ [wayland wayland-protocols epoxy libxslt makeWrapper libunwind];
+  configureFlags = [
+    "--disable-docs"
+    "--disable-devel-docs"
+    "--enable-xwayland"
+    "--enable-xwayland-eglstream"
+    "--disable-xorg"
+    "--disable-xvfb"
+    "--disable-xnest"
+    "--disable-xquartz"
+    "--disable-xwin"
+    "--enable-glamor"
+    "--with-default-font-path=${defaultFontPath}"
+    "--with-xkb-bin-directory=${xkbcomp}/bin"
+    "--with-xkb-path=${xkeyboard_config}/etc/X11/xkb"
+    "--with-xkb-output=$(out)/share/X11/xkb/compiled"
+  ];
+
+  postInstall = ''
+    rm -fr $out/share/X11/xkb/compiled
+  '';
+
+  meta = {
+    description = "An X server for interfacing X11 apps with the Wayland protocol";
+    homepage = "https://wayland.freedesktop.org/xserver.html";
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+})