diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index c8839a3038ae9fa6896866468278307fd7511e4f..0000000000000000000000000000000000000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-SOURCES/mingw-w64-v10.0.0.tar.bz2
diff --git a/.mingw-w64-tools.checksum b/.mingw-w64-tools.checksum
new file mode 100644
index 0000000000000000000000000000000000000000..22cf0fdc30cb2bc45749ef53e9dfcbf0db94ad26
--- /dev/null
+++ b/.mingw-w64-tools.checksum
@@ -0,0 +1 @@
+96f4a3217a4d559de1f4db4185abc42b6717d6d5d561664d672172baf32e5dee
diff --git a/.mingw-w64-tools.metadata b/.mingw-w64-tools.metadata
index 90d2c482ddd27e0dcffaa7cd0495f5cb67ef2a54..6c7364207c85fc8a8a6f6571e2b09b92e830c67d 100644
--- a/.mingw-w64-tools.metadata
+++ b/.mingw-w64-tools.metadata
@@ -1 +1 @@
-56143558d81dae7628a232ca7582b947e65392b1 SOURCES/mingw-w64-v10.0.0.tar.bz2
+bd0ea1633bd830204cc23a696889335e9d4a32b8619439ee17f22188695fcc5f  SOURCES/mingw-w64-v11.0.0.tar.bz2
diff --git a/SOURCES/mingw-w64-tools-riscv64-on-s390x-ppc66le.patch b/SOURCES/mingw-w64-tools-riscv64-on-s390x-ppc66le.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8537e953931d1cac958ccfc00d8d6b7c4c5ef668
--- /dev/null
+++ b/SOURCES/mingw-w64-tools-riscv64-on-s390x-ppc66le.patch
@@ -0,0 +1,108 @@
+diff -rupN --no-dereference mingw-w64-v11.0.0/mingw-w64-tools/widl/include/basetsd.h mingw-w64-v11.0.0-new/mingw-w64-tools/widl/include/basetsd.h
+--- mingw-w64-v11.0.0/mingw-w64-tools/widl/include/basetsd.h	2023-04-30 18:49:11.973859774 +0200
++++ mingw-w64-v11.0.0-new/mingw-w64-tools/widl/include/basetsd.h	2023-04-30 18:49:11.979859770 +0200
+@@ -36,7 +36,7 @@ extern "C" {
+  * 64-bit.
+  */
+ 
+-#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__) || defined(__s390x__)) && !defined(_WIN64)
++#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__aarch64__) || defined(__s390x__) || (defined(__riscv) && (__riscv_xlen == 64))) && !defined(_WIN64)
+ #define _WIN64
+ #endif
+ 
+@@ -327,6 +327,8 @@ typedef ULONG_PTR KAFFINITY, *PKAFFINITY
+ # undef  WORDS_BIGENDIAN
+ #elif defined(__s390__)
+ # define WORDS_BIGENDIAN
++#elif defined(__riscv) && (__riscv_xlen == 64)
++# undef  WORDS_BIGENDIAN
+ #elif !defined(RC_INVOKED) && !defined(__WIDL__) && !defined(__midl)
+ # error Unknown CPU architecture!
+ #endif
+diff -rupN --no-dereference mingw-w64-v11.0.0/mingw-w64-tools/widl/include/winnt.h mingw-w64-v11.0.0-new/mingw-w64-tools/widl/include/winnt.h
+--- mingw-w64-v11.0.0/mingw-w64-tools/widl/include/winnt.h	2023-04-30 18:49:11.974859773 +0200
++++ mingw-w64-v11.0.0-new/mingw-w64-tools/widl/include/winnt.h	2023-04-30 18:49:11.981859769 +0200
+@@ -1809,6 +1809,36 @@ typedef struct _CONTEXT
+ 
+ #endif  /* __PPC64__ */
+ 
++#if (defined(__riscv) && (__riscv_xlen == 64))
++
++/*
++ * FIXME:
++ *
++ * There is no official CONTEXT structure defined for the riscv64
++ * architecture, so I just made one up, too.
++ *
++ * This structure is completely dummy, made just to build widl.
++ *
++ */
++
++#define CONTEXT_RISCV64           0x10000000
++
++#define CONTEXT_CONTROL         (CONTEXT_RISCV64 | 0x00000001)
++#define CONTEXT_FLOATING_POINT  (CONTEXT_RISCV64 | 0x00000002)
++#define CONTEXT_INTEGER         (CONTEXT_RISCV64 | 0x00000004)
++
++#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
++
++#define EXCEPTION_READ_FAULT    0
++#define EXCEPTION_WRITE_FAULT   1
++#define EXCEPTION_EXECUTE_FAULT 8
++
++typedef struct _CONTEXT
++{
++} CONTEXT, *PCONTEXT;
++
++#endif  /* __riscv64 */
++
+ #if !defined(CONTEXT_FULL) && !defined(RC_INVOKED)
+ #error You need to define a CONTEXT for your CPU
+ #endif
+diff -rupN --no-dereference mingw-w64-v11.0.0/mingw-w64-tools/widl/tools.h mingw-w64-v11.0.0-new/mingw-w64-tools/widl/tools.h
+--- mingw-w64-v11.0.0/mingw-w64-tools/widl/tools.h	2023-04-30 18:49:11.975859773 +0200
++++ mingw-w64-v11.0.0-new/mingw-w64-tools/widl/tools.h	2023-04-30 18:49:11.981859769 +0200
+@@ -88,7 +88,7 @@
+ 
+ struct target
+ {
+-    enum { CPU_i386, CPU_x86_64, CPU_ARM, CPU_ARM64, CPU_S390X, CPU_PPC64 } cpu;
++    enum { CPU_i386, CPU_x86_64, CPU_ARM, CPU_ARM64, CPU_S390X, CPU_PPC64, CPU_RISCV64 } cpu;
+ 
+     enum
+     {
+@@ -453,6 +453,8 @@ static inline struct target get_default_
+     target.cpu = CPU_S390X;
+ #elif defined(__PPC64__)
+     target.cpu = CPU_PPC64;
++#elif (defined(__riscv) && (__riscv_xlen == 64))
++    target.cpu = CPU_RISCV64;
+ #else
+ #error Unsupported CPU
+ #endif
+@@ -489,6 +491,7 @@ static inline unsigned int get_target_pt
+         [CPU_ARM64]     = 8,
+         [CPU_S390X]     = 8,
+         [CPU_PPC64]     = 8,
++        [CPU_RISCV64]   = 8,
+     };
+     return sizes[target.cpu];
+ }
+@@ -533,7 +536,8 @@ static inline int get_cpu_from_name( con
+         { "arm64",     CPU_ARM64 },
+         { "arm",       CPU_ARM },
+         { "s390x",     CPU_S390X },
+-        { "ppc64",     CPU_PPC64 }
++        { "ppc64",     CPU_PPC64 },
++        { "riscv64",   CPU_RISCV64 }
+     };
+     unsigned int i;
+ 
+@@ -582,6 +586,7 @@ static inline const char *get_arch_dir(
+         [CPU_ARM64]  = "aarch64",
+         [CPU_S390X]  = "s390x",
+         [CPU_PPC64]  = "ppc64",
++        [CPU_RISCV64]= "riscv64"
+     };
+ 
+     if (!cpu_names[target.cpu]) return "";
diff --git a/SOURCES/mingw-w64-tools-s390x-ppc66le.patch b/SOURCES/mingw-w64-tools-s390x-ppc66le.patch
index c97c38f07ce5fc3c83e15495fe2b4fe86756f219..715bac781f1a16a3450327e7bf0aee22b826365b 100644
--- a/SOURCES/mingw-w64-tools-s390x-ppc66le.patch
+++ b/SOURCES/mingw-w64-tools-s390x-ppc66le.patch
@@ -1,6 +1,6 @@
-diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/include/basetsd.h mingw-w64-v10.0.0-new/mingw-w64-tools/widl/include/basetsd.h
---- mingw-w64-v10.0.0/mingw-w64-tools/widl/include/basetsd.h	2022-04-03 17:08:58.000000000 +0200
-+++ mingw-w64-v10.0.0-new/mingw-w64-tools/widl/include/basetsd.h	2022-04-27 15:04:23.665492767 +0200
+diff -rupN --no-dereference mingw-w64-v11.0.0/mingw-w64-tools/widl/include/basetsd.h mingw-w64-v11.0.0-new/mingw-w64-tools/widl/include/basetsd.h
+--- mingw-w64-v11.0.0/mingw-w64-tools/widl/include/basetsd.h	2023-04-27 17:12:39.000000000 +0200
++++ mingw-w64-v11.0.0-new/mingw-w64-tools/widl/include/basetsd.h	2023-04-30 18:49:11.600860037 +0200
 @@ -36,7 +36,7 @@ extern "C" {
   * 64-bit.
   */
@@ -10,7 +10,7 @@ diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/include/basetsd.h mingw-w64-v1
  #define _WIN64
  #endif
  
-@@ -295,6 +295,8 @@ typedef ULONG_PTR KAFFINITY, *PKAFFINITY
+@@ -325,6 +325,8 @@ typedef ULONG_PTR KAFFINITY, *PKAFFINITY
  # define WORDS_BIGENDIAN
  #elif defined(__MIPSEL__)
  # undef  WORDS_BIGENDIAN
@@ -19,10 +19,10 @@ diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/include/basetsd.h mingw-w64-v1
  #elif !defined(RC_INVOKED) && !defined(__WIDL__) && !defined(__midl)
  # error Unknown CPU architecture!
  #endif
-diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/include/winnt.h mingw-w64-v10.0.0-new/mingw-w64-tools/widl/include/winnt.h
---- mingw-w64-v10.0.0/mingw-w64-tools/widl/include/winnt.h	2022-04-03 17:08:58.000000000 +0200
-+++ mingw-w64-v10.0.0-new/mingw-w64-tools/widl/include/winnt.h	2022-04-27 17:04:51.719200013 +0200
-@@ -1651,6 +1651,66 @@ typedef struct _KNONVOLATILE_CONTEXT_POI
+diff -rupN --no-dereference mingw-w64-v11.0.0/mingw-w64-tools/widl/include/winnt.h mingw-w64-v11.0.0-new/mingw-w64-tools/widl/include/winnt.h
+--- mingw-w64-v11.0.0/mingw-w64-tools/widl/include/winnt.h	2023-04-27 17:12:39.000000000 +0200
++++ mingw-w64-v11.0.0-new/mingw-w64-tools/widl/include/winnt.h	2023-04-30 18:49:11.601860036 +0200
+@@ -1749,6 +1749,66 @@ typedef struct _KNONVOLATILE_CONTEXT_POI
  
  #endif /* __aarch64__ */
  
@@ -89,10 +89,10 @@ diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/include/winnt.h mingw-w64-v10.
  #if !defined(CONTEXT_FULL) && !defined(RC_INVOKED)
  #error You need to define a CONTEXT for your CPU
  #endif
-diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/tools.h mingw-w64-v10.0.0-new/mingw-w64-tools/widl/tools.h
---- mingw-w64-v10.0.0/mingw-w64-tools/widl/tools.h	2022-04-03 17:08:58.000000000 +0200
-+++ mingw-w64-v10.0.0-new/mingw-w64-tools/widl/tools.h	2022-04-27 16:55:48.675315988 +0200
-@@ -79,7 +79,7 @@
+diff -rupN --no-dereference mingw-w64-v11.0.0/mingw-w64-tools/widl/tools.h mingw-w64-v11.0.0-new/mingw-w64-tools/widl/tools.h
+--- mingw-w64-v11.0.0/mingw-w64-tools/widl/tools.h	2023-04-27 17:12:39.000000000 +0200
++++ mingw-w64-v11.0.0-new/mingw-w64-tools/widl/tools.h	2023-04-30 18:49:11.601860036 +0200
+@@ -88,7 +88,7 @@
  
  struct target
  {
@@ -101,7 +101,7 @@ diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/tools.h mingw-w64-v10.0.0-new/
  
      enum
      {
-@@ -383,6 +383,10 @@ static inline struct target get_default_
+@@ -449,6 +449,10 @@ static inline struct target get_default_
      target.cpu = CPU_ARM;
  #elif defined(__aarch64__)
      target.cpu = CPU_ARM64;
@@ -112,7 +112,7 @@ diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/tools.h mingw-w64-v10.0.0-new/
  #else
  #error Unsupported CPU
  #endif
-@@ -417,6 +421,8 @@ static inline unsigned int get_target_pt
+@@ -483,6 +487,8 @@ static inline unsigned int get_target_pt
          [CPU_x86_64]    = 8,
          [CPU_ARM]       = 4,
          [CPU_ARM64]     = 8,
@@ -121,7 +121,7 @@ diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/tools.h mingw-w64-v10.0.0-new/
      };
      return sizes[target.cpu];
  }
-@@ -460,6 +466,8 @@ static inline int get_cpu_from_name( con
+@@ -526,6 +532,8 @@ static inline int get_cpu_from_name( con
          { "aarch64",   CPU_ARM64 },
          { "arm64",     CPU_ARM64 },
          { "arm",       CPU_ARM },
@@ -130,7 +130,7 @@ diff -rupN mingw-w64-v10.0.0/mingw-w64-tools/widl/tools.h mingw-w64-v10.0.0-new/
      };
      unsigned int i;
  
-@@ -505,7 +513,9 @@ static inline const char *get_arch_dir(
+@@ -571,7 +579,9 @@ static inline const char *get_arch_dir(
          [CPU_i386]   = "i386",
          [CPU_x86_64] = "x86_64",
          [CPU_ARM]    = "arm",
diff --git a/SPECS/mingw-w64-tools.spec b/SPECS/mingw-w64-tools.spec
index aadd681626e5a6bb70973cb29cb87133c62027b6..db449451c25cce6871c67bb760b1ff240dcd6fd8 100644
--- a/SPECS/mingw-w64-tools.spec
+++ b/SPECS/mingw-w64-tools.spec
@@ -4,15 +4,17 @@
 #%%global branch trunk
 
 Name:           mingw-w64-tools
-Version:        10.0.0
+Version:        11.0.0
 Release:        2%{?dist}
 Summary:        Supplementary tools which are part of the mingw-w64 toolchain
 # Fix build on s390x and ppc64le
 Patch0:         mingw-w64-tools-s390x-ppc66le.patch
+# Fix build on riscv64, this patch can only be applied after mingw-w64-tools-s390x-ppc66le.patch
+Patch1:         mingw-w64-tools-riscv64-on-s390x-ppc66le.patch
 
 # http://sourceforge.net/mailarchive/forum.php?thread_name=5157C0FC.1010309%40users.sourceforge.net&forum_name=mingw-w64-public
 # The tools gendef and genidl are GPLv3+, widl is LGPLv2+
-License:        GPLv3+ and LGPLv2+
+License:        GPL-3.0-or-later AND LGPL-2.0-or-later
 
 URL:            http://mingw-w64.sourceforge.net/
 %if 0%{?snapshot_date}
@@ -106,6 +108,19 @@ popd
 
 
 %changelog
+* Mon Aug 7 2023 Konstantin Kostiuk <kkostiuk@redhat.com> - 11.0.0-2
+- Update license to SPDX format
+- Resolves: RHEL-1045
+
+* Sun Apr 30 2023 Sandro Mani <manisandro@gmail.com> - 11.0.0-1
+- Update to 11.0.0
+
+* Sun Feb 05 2023 Nianqing Yao <imbearchild@outlook.com> - 10.0.0-4
+- Fix build on riscv64.
+
+* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
 * Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 10.0.0-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild