diff --git a/0001-Xext-shm-Refuse-to-work-for-remote-clients.patch b/0001-Xext-shm-Refuse-to-work-for-remote-clients.patch
deleted file mode 100644
index 59f53bd8eeb3f9c2b22720bb68f26c6b5784c8af..0000000000000000000000000000000000000000
--- a/0001-Xext-shm-Refuse-to-work-for-remote-clients.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From ec7e2b54c5b4a34b2a077082967bc3ead30e227e Mon Sep 17 00:00:00 2001
-From: Alexander Volkov <a.volkov@rusbitech.ru>
-Date: Tue, 5 Jun 2018 13:05:39 +0300
-Subject: [PATCH] Xext/shm: Refuse to work for remote clients
-
-Avoid access to System V shared memory segment on the X server side
-for clients forwarded via SSH. Also prevent them from hanging while
-waiting for the reply from the ShmCreateSegment request.
-
-v2: Allow ShmQueryVersion request even for remote clients
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=11080
-Signed-off-by: Alexander Volkov <a.volkov@rusbitech.ru>
-Reviewed-by: Adam Jackson <ajax@redhat.com>
-Signed-off-by: Laurent Carlier <lordheavym@gmail.com>
----
- Xext/shm.c | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/Xext/shm.c b/Xext/shm.c
-index fc8441c..896a966 100644
---- a/Xext/shm.c
-+++ b/Xext/shm.c
-@@ -1302,9 +1302,14 @@ static int
- ProcShmDispatch(ClientPtr client)
- {
-     REQUEST(xReq);
--    switch (stuff->data) {
--    case X_ShmQueryVersion:
-+
-+    if (stuff->data == X_ShmQueryVersion)
-         return ProcShmQueryVersion(client);
-+
-+    if (!client->local)
-+        return BadRequest;
-+
-+    switch (stuff->data) {
-     case X_ShmAttach:
-         return ProcShmAttach(client);
-     case X_ShmDetach:
-@@ -1461,9 +1466,14 @@ static int _X_COLD
- SProcShmDispatch(ClientPtr client)
- {
-     REQUEST(xReq);
--    switch (stuff->data) {
--    case X_ShmQueryVersion:
-+
-+    if (stuff->data == X_ShmQueryVersion)
-         return SProcShmQueryVersion(client);
-+
-+    if (!client->local)
-+        return BadRequest;
-+
-+    switch (stuff->data) {
-     case X_ShmAttach:
-         return SProcShmAttach(client);
-     case X_ShmDetach:
--- 
-2.17.1
diff --git a/0003_Use_PictureMatchFormat_for_source-only_picture_format.diff b/0003_Use_PictureMatchFormat_for_source-only_picture_format.diff
deleted file mode 100644
index b9f92e29b9b18aff53b96c575bc3ecc68845dce6..0000000000000000000000000000000000000000
--- a/0003_Use_PictureMatchFormat_for_source-only_picture_format.diff
+++ /dev/null
@@ -1,32 +0,0 @@
-From 3ebef6ab850675e1091df2125ebdfbb147436e6c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
-Date: Fri, 1 Jun 2018 11:57:15 +0200
-Subject: exa: Use PictureMatchFormat for source-only picture format
- description
-
-Their pFormat member is NULL, which resulted in a crash in
-miRenderColorToPixel.
-
-Fixes: 8171d4c2d67b "render: Store and use all 16bpc of precision for
-                     solid pixels (v2.1)"
-Reviewed-by: Adam Jackson <ajax@redhat.com>
----
- exa/exa_render.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/exa/exa_render.c b/exa/exa_render.c
-index 50a9a65..9fbfdfc 100644
---- a/exa/exa_render.c
-+++ b/exa/exa_render.c
-@@ -291,7 +291,8 @@ exaTryDriverSolidFill(PicturePtr pSrc,
-         pixel = exaGetPixmapFirstPixel(pSrcPix);
-     }
-     else
--        miRenderColorToPixel(pSrc->pFormat,
-+        miRenderColorToPixel(PictureMatchFormat(pDst->pDrawable->pScreen, 32,
-+                                                pSrc->format),
-                              &pSrc->pSourcePict->solidFill.fullcolor,
-                              &pixel);
- 
--- 
-cgit v1.1
diff --git a/PKGBUILD b/PKGBUILD
index bcd6f7d3261d56692457309057fc38d6af6afa65..49929402c007e045738ce3b4a11a6677f0e735df 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,8 +6,8 @@
 pkgbase=xorg-server
 pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 
          'xorg-server-xwayland' 'xorg-server-common' 'xorg-server-devel')
-pkgver=1.20.0
-pkgrel=10
+pkgver=1.20.1
+pkgrel=2
 arch=('x86_64')
 license=('custom')
 groups=('xorg')
@@ -26,28 +26,19 @@ source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pk
         xserver-autobind-hotplug.patch
         xvfb-run # with updates from FC master
         xvfb-run.1
-        xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch
-        xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch
         0001-v2-FS-58644.patch
-        0002-fix-libshadow-2.patch
-        0003_Use_PictureMatchFormat_for_source-only_picture_format.diff
-        0001-Xext-shm-Refuse-to-work-for-remote-clients.patch
-        meson-Add-configuration-of-listening-on-tcp-unix-and-local.patch
-        xserver-modesetting-use-drmmode_bo_import-for-rotate_fb.patch)
+        0002-fix-libshadow-2.patch)
 validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
               'C383B778255613DFDB409D91DB221A6900000011'
               'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3'
               '995ED5C8A6138EB0961F18474C09DD83CAAA50B2')
-sha512sums=('1489e8511c9da682ef0460182dfeeddd241c72d4ef4d206d9706f1e39572c09953df851fab18cefb65a1ee4c6710c6ba13c63c9c9fc0bc1b5f12c50780412cde'
+sha512sums=('ef2b93a61683c8ca8d1f14b771e70db65ba119a73db8a46e7cdbf2ac2243e3f4b2732068eb5aa5d7b76f460db995a3c04390870198a5210ec30df4360ad9f94b'
             'd707e0870367de2665c3b82f09564d17ed3f62c9e8b4bd471c11af1fb1e9249e306e92c7961a04e355756eec9f5271bc8e66999e56c73c31bc9da4127ff30a8e'
             'd84f4d63a502b7af76ea49944d1b21e2030dfd250ac1e82878935cf631973310ac9ba1f0dfedf10980ec6c7431d61b7daa4b7bbaae9ee477b2c19812c1661a22'
             '55bbf520333f6e818b0125b37179a7039b69a0d3d2242b80a08da003d94cbf6c1fb912d880abcce318a85d7947e3eff8fbc4cdf57d7118572e8ebc56c4569af6'
             'de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22'
-            'a8f65ca23ae52865147bdc1bc059b1265ba4bc61527992cf054fe76a0396ef5dfd2386782be371e926184a63def3be7333bb37fc429627d4e6fa159d263f40f7'
-            'fc259a0a4acb7b70209fc599b0f4bc94942316bbc8c6995f783026b7cd455900bcb7527615d76c99bd2e0155e0035cbd619939a1f7ddf3af32ed854afe45b631'
             'f05c18354a3cf5b5b0fa97c4a887cfd688297e39d7ddc93b5900357119a689a060321019aeec9ca9c1366ea4b65b7875b2a9cadb84e46d2c193c15e6df22fcd8'
-            '9cb9a979dfc2de4fac384a1044b368bb97c8b0b524523aa2a96ef55c673ab5350c50cc79ad103655f40c2e0002cdcc2e1646fade3ac78641616d182e7c500be7'
-            'b85a109e8bdfad04d1ba9a9dce3607bb12f014b63d24b95b2659658b1547b5391efdf816a74f36591a23c28fb75773edcc270a379b5b4032c1baa98aa5e890d2')
+            '9cb9a979dfc2de4fac384a1044b368bb97c8b0b524523aa2a96ef55c673ab5350c50cc79ad103655f40c2e0002cdcc2e1646fade3ac78641616d182e7c500be7')
 
 prepare() {
   cp xwayland-config.h.meson.in ${pkgbase}-${pkgver}/include/
@@ -61,26 +52,10 @@ prepare() {
   # https://bugs.freedesktop.org/show_bug.cgi?id=106588
   patch -Np1 -i ../0001-v2-FS-58644.patch
   
-  # Fix XWayland hangs - FS#58705
-  # https://patchwork.freedesktop.org/series/43618/
-  patch -Np1 -i ../xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch
-  patch -Np1 -i ../xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch
-	
   # Fix libshadow.so: libfb.so => not found - FS#58731
   # https://bugs.freedesktop.org/show_bug.cgi?id=106656
   patch -Np1 -i ../0002-fix-libshadow-2.patch
   
-  # FS#i58662
-  patch -Np1 -i ../0003_Use_PictureMatchFormat_for_source-only_picture_format.diff
-  
-  # Display incorrect when rotated 90 degree - FS#58637
-  patch -Np1 -i ../xserver-modesetting-use-drmmode_bo_import-for-rotate_fb.patch
-
-  # xserver by default listens on tcp sockets - FS#59025
-  patch -Np1 -i ../meson-Add-configuration-of-listening-on-tcp-unix-and-local.patch
-
-  # SSH X11 forwarding no longer works for Qt apps - FS#58962
-  patch -Np1 -i ../0001-Xext-shm-Refuse-to-work-for-remote-clients.patch
 }
 
 build() {
diff --git a/meson-Add-configuration-of-listening-on-tcp-unix-and-local.patch b/meson-Add-configuration-of-listening-on-tcp-unix-and-local.patch
deleted file mode 100644
index f6999e9780dbe60e661353ef59c2a1dfbdef970d..0000000000000000000000000000000000000000
--- a/meson-Add-configuration-of-listening-on-tcp-unix-and-local.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/include/meson.build b/include/meson.build
-index f76f557..dfca3c3 100644
---- a/include/meson.build
-+++ b/include/meson.build
-@@ -153,10 +153,10 @@ conf_data.set('BUSFAULT', conf_data.get('HAVE_SIGACTION'))
- conf_data.set('_XTYPEDEF_POINTER', '1')
- conf_data.set('_XITYPEDEF_POINTER', '1')
- 
-+conf_data.set('LISTEN_TCP', get_option('listen_tcp'))
-+conf_data.set('LISTEN_UNIX', get_option('listen_unix'))
-+conf_data.set('LISTEN_LOCAL', get_option('listen_local'))
- # XXX: Configurable?
--conf_data.set('LISTEN_TCP', '1')
--conf_data.set('LISTEN_UNIX', '1')
--conf_data.set('LISTEN_LOCAL', '1')
- conf_data.set('XTRANS_SEND_FDS', '1')
- 
- conf_data.set('TCPCONN', '1')
-diff --git a/meson_options.txt b/meson_options.txt
-index 86fca46..3453b8d 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -45,6 +45,13 @@ option('vendor_name_short', type: 'string', value: 'X.Org')
- option('vendor_web', type: 'string', value: 'http://wiki.x.org')
- option('os_vendor', type: 'string', value: '')
- 
-+option('listen_tcp', type: 'boolean', value: false,
-+       description: 'Listen on TCP by default')
-+option('listen_unix', type: 'boolean', value: true,
-+       description: 'Listen on Unix by default')
-+option('listen_local', type: 'boolean', value: true,
-+       description: 'Listen on local by default')
-+
- option('int10', type: 'combo', choices: ['stub', 'x86emu', 'vm86', 'auto', 'false'],
-        value: 'auto',
-        description: 'Xorg int10 backend (default: usually x86emu)')
diff --git a/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch b/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch
deleted file mode 100644
index 604af0f8d3e1e7db8a10cc1a628a94a0c65a401f..0000000000000000000000000000000000000000
--- a/xserver-1-2-glamor-Always-return-0-from-glamor_fds_from_pixmap-on-error.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/glamor/glamor.c b/glamor/glamor.c
-index d984d20f3..e2c74d17a 100644
---- a/glamor/glamor.c
-+++ b/glamor/glamor.c
-@@ -836,20 +836,20 @@ glamor_fds_from_pixmap(ScreenPtr screen, PixmapPtr pixmap, int *fds,
-         glamor_get_screen_private(pixmap->drawable.pScreen);
- 
-     if (!glamor_priv->dri3_enabled)
--        return -1;
-+        return 0;
-     switch (pixmap_priv->type) {
-     case GLAMOR_TEXTURE_DRM:
-     case GLAMOR_TEXTURE_ONLY:
-         if (!glamor_pixmap_ensure_fbo(pixmap, pixmap->drawable.depth == 30 ?
-                                       GL_RGB10_A2 : GL_RGBA, 0))
--            return -1;
-+            return 0;
-         return glamor_egl_fds_from_pixmap(screen, pixmap, fds,
-                                           strides, offsets,
-                                           modifier);
-     default:
-         break;
-     }
--    return -1;
-+    return 0;
- }
- 
- _X_EXPORT int
diff --git a/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch b/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch
deleted file mode 100644
index beea2e4206f5650af4e8a3d81e970007a24e4735..0000000000000000000000000000000000000000
--- a/xserver-2-2-glamor-Propagate-glamor_fds_from_pixmap-error-in-glamor_fd_from_pixmap.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/glamor/glamor.c b/glamor/glamor.c
-index e2c74d17a..63f0947fa 100644
---- a/glamor/glamor.c
-+++ b/glamor/glamor.c
-@@ -865,17 +865,15 @@ glamor_fd_from_pixmap(ScreenPtr screen,
-                                  &modifier);
- 
-     /* Pixmaps with multi-planes/modifier are not supported in this interface */
--    if (ret > 1) {
--        while (ret > 0)
--            close(fds[--ret]);
--        return -1;
-+    if (ret == 1 && offsets[0] == 0) {
-+        *stride = strides[0];
-+        *size = pixmap->drawable.height * *stride;
-+        return fds[0];
-     }
- 
--    ret = fds[0];
--    *stride = strides[0];
--    *size = pixmap->drawable.height * *stride;
--
--    return ret;
-+    while (ret > 0)
-+        close(fds[--ret]);
-+    return -1;
- }
- 
- _X_EXPORT int
diff --git a/xserver-modesetting-use-drmmode_bo_import-for-rotate_fb.patch b/xserver-modesetting-use-drmmode_bo_import-for-rotate_fb.patch
deleted file mode 100644
index 5913e449643b9cf9cb818284129a4584dba66a5f..0000000000000000000000000000000000000000
--- a/xserver-modesetting-use-drmmode_bo_import-for-rotate_fb.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
-index 859a21a9d..ec11b3f56 100644
---- a/hw/xfree86/drivers/modesetting/drmmode_display.c
-+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
-@@ -1794,11 +1794,8 @@ drmmode_shadow_allocate(xf86CrtcPtr crtc, int width, int height)
-         return NULL;
-     }
- 
--    ret = drmModeAddFB(drmmode->fd, width, height, crtc->scrn->depth,
--                       drmmode->kbpp,
--                       drmmode_bo_get_pitch(&drmmode_crtc->rotate_bo),
--                       drmmode_bo_get_handle(&drmmode_crtc->rotate_bo),
--                       &drmmode_crtc->rotate_fb_id);
-+    ret = drmmode_bo_import(drmmode, &drmmode_crtc->rotate_bo,
-+                            &drmmode_crtc->rotate_fb_id);
- 
-     if (ret) {
-         ErrorF("failed to add rotate fb\n");