diff --git a/.gitignore b/.gitignore
index 54924c7..60e7707 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/glib-2.70.1.tar.xz
+SOURCES/glib-2.78.0.tar.xz
diff --git a/.mingw-glib2.metadata b/.mingw-glib2.metadata
index fc1ceb4..d9c02a7 100644
--- a/.mingw-glib2.metadata
+++ b/.mingw-glib2.metadata
@@ -1 +1 @@
-4704b98b3635950e69b86f8dedc01b0e2a7232b9 SOURCES/glib-2.70.1.tar.xz
+664e2498cffb55016abfc3a4a0158ee2586d05d1 SOURCES/glib-2.78.0.tar.xz
diff --git a/SOURCES/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch b/SOURCES/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch
index 1679956..9e5aab5 100644
--- a/SOURCES/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch
+++ b/SOURCES/0001-Use-CreateFile-on-Win32-to-make-sure-g_unlink-always.patch
@@ -1,13 +1,13 @@
-diff -rupN --no-dereference glib-2.66.7/gio/tests/org.gtk.test.gschema.override.orig glib-2.66.7-new/gio/tests/org.gtk.test.gschema.override.orig
---- glib-2.66.7/gio/tests/org.gtk.test.gschema.override.orig 2021-02-11 13:24:55.208942400 +0100
-+++ glib-2.66.7-new/gio/tests/org.gtk.test.gschema.override.orig 1970-01-01 01:00:00.000000000 +0100
+diff -rupN --no-dereference glib-2.78.0/gio/tests/org.gtk.test.gschema.override.orig glib-2.78.0-new/gio/tests/org.gtk.test.gschema.override.orig
+--- glib-2.78.0/gio/tests/org.gtk.test.gschema.override.orig 2023-09-08 15:42:18.000000000 +0200
++++ glib-2.78.0-new/gio/tests/org.gtk.test.gschema.override.orig 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-[org.gtk.test.per-desktop:GNOME-Classic]
-desktop = "GNOME Classic"
-diff -rupN --no-dereference glib-2.66.7/gio/tests/org.gtk.test.gschema.xml.orig glib-2.66.7-new/gio/tests/org.gtk.test.gschema.xml.orig
---- glib-2.66.7/gio/tests/org.gtk.test.gschema.xml.orig 2021-02-11 13:24:55.208942400 +0100
-+++ glib-2.66.7-new/gio/tests/org.gtk.test.gschema.xml.orig 1970-01-01 01:00:00.000000000 +0100
-@@ -1,222 +0,0 @@
+diff -rupN --no-dereference glib-2.78.0/gio/tests/org.gtk.test.gschema.xml.orig glib-2.78.0-new/gio/tests/org.gtk.test.gschema.xml.orig
+--- glib-2.78.0/gio/tests/org.gtk.test.gschema.xml.orig 2023-09-08 15:42:18.000000000 +0200
++++ glib-2.78.0-new/gio/tests/org.gtk.test.gschema.xml.orig 1970-01-01 01:00:00.000000000 +0100
+@@ -1,225 +0,0 @@
-
-
-
@@ -93,6 +93,9 @@ diff -rupN --no-dereference glib-2.66.7/gio/tests/org.gtk.test.gschema.xml.orig
-
- "BackSpace"
-
+-
+- "12:00 AM"
+-
-
-
-
@@ -230,10 +233,10 @@ diff -rupN --no-dereference glib-2.66.7/gio/tests/org.gtk.test.gschema.xml.orig
-
-
-
-diff -rupN --no-dereference glib-2.66.7/glib/gstdio.c glib-2.66.7-new/glib/gstdio.c
---- glib-2.66.7/glib/gstdio.c 2021-02-11 13:24:55.239942800 +0100
-+++ glib-2.66.7-new/glib/gstdio.c 2021-03-05 23:02:21.918877448 +0100
-@@ -1045,6 +1045,11 @@ g_open (const gchar *filename,
+diff -rupN --no-dereference glib-2.78.0/glib/gstdio.c glib-2.78.0-new/glib/gstdio.c
+--- glib-2.78.0/glib/gstdio.c 2023-09-08 15:42:18.000000000 +0200
++++ glib-2.78.0-new/glib/gstdio.c 2023-09-19 11:45:02.396539056 +0200
+@@ -1052,6 +1052,11 @@ g_open (const gchar *filename,
int mode)
{
#ifdef G_OS_WIN32
@@ -245,7 +248,7 @@ diff -rupN --no-dereference glib-2.66.7/glib/gstdio.c glib-2.66.7-new/glib/gstdi
wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
int retval;
int save_errno;
-@@ -1055,12 +1060,114 @@ g_open (const gchar *filename,
+@@ -1062,12 +1067,114 @@ g_open (const gchar *filename,
return -1;
}
@@ -363,7 +366,7 @@ diff -rupN --no-dereference glib-2.66.7/glib/gstdio.c glib-2.66.7-new/glib/gstdi
return retval;
#else
int fd;
-@@ -1108,6 +1215,8 @@ g_creat (const gchar *filename,
+@@ -1115,6 +1222,8 @@ g_creat (const gchar *filename,
int mode)
{
#ifdef G_OS_WIN32
@@ -372,7 +375,7 @@ diff -rupN --no-dereference glib-2.66.7/glib/gstdio.c glib-2.66.7-new/glib/gstdi
wchar_t *wfilename = g_utf8_to_utf16 (filename, -1, NULL, NULL, NULL);
int retval;
int save_errno;
-@@ -1118,12 +1227,41 @@ g_creat (const gchar *filename,
+@@ -1125,12 +1234,41 @@ g_creat (const gchar *filename,
return -1;
}
@@ -417,7 +420,7 @@ diff -rupN --no-dereference glib-2.66.7/glib/gstdio.c glib-2.66.7-new/glib/gstdi
return retval;
#else
return creat (filename, mode);
-@@ -1565,34 +1703,102 @@ g_fopen (const gchar *filename,
+@@ -1572,34 +1710,102 @@ g_fopen (const gchar *filename,
const gchar *mode)
{
#ifdef G_OS_WIN32
diff --git a/SPECS/mingw-glib2.spec b/SPECS/mingw-glib2.spec
index 96b128e..3af939f 100644
--- a/SPECS/mingw-glib2.spec
+++ b/SPECS/mingw-glib2.spec
@@ -1,8 +1,8 @@
%{?mingw_package_header}
Name: mingw-glib2
-Version: 2.70.1
-Release: 4%{?dist}
+Version: 2.78.0
+Release: 1%{?dist}
Summary: MinGW Windows GLib2 library
License: LGPL-2.0-or-later
@@ -19,23 +19,21 @@ BuildRequires: gcc-c++
BuildRequires: mingw32-filesystem >= 107
BuildRequires: mingw32-gcc
-BuildRequires: mingw32-gcc-c++
BuildRequires: mingw32-binutils
BuildRequires: mingw32-win-iconv
BuildRequires: mingw32-gettext
BuildRequires: mingw32-libffi
-BuildRequires: mingw32-pcre
-BuildRequires: mingw32-zlib
+BuildRequires: mingw32-pcre2
+BuildRequires: mingw32-zlib >= 1.2.13
BuildRequires: mingw64-filesystem >= 107
BuildRequires: mingw64-gcc
-BuildRequires: mingw64-gcc-c++
BuildRequires: mingw64-binutils
BuildRequires: mingw64-win-iconv
BuildRequires: mingw64-gettext
BuildRequires: mingw64-libffi
-BuildRequires: mingw64-pcre
-BuildRequires: mingw64-zlib
+BuildRequires: mingw64-pcre2
+BuildRequires: mingw64-zlib >= 1.2.13
# Native version required for msgfmt use in build
BuildRequires: gettext
@@ -98,10 +96,17 @@ Static version of the MinGW Windows GLib2 library.
%autosetup -p1 -n glib-%{version}
%build
-%mingw_meson --default-library=both
+export MINGW_BUILDDIR_SUFFIX=static
+%mingw_meson --default-library=static
+%mingw_ninja
+export MINGW_BUILDDIR_SUFFIX=shared
+%mingw_meson --default-library=shared
%mingw_ninja
%install
+export MINGW_BUILDDIR_SUFFIX=static
+%mingw_ninja_install
+export MINGW_BUILDDIR_SUFFIX=shared
%mingw_ninja_install
# There's a small difference in the file glibconfig.h between the
@@ -151,9 +156,11 @@ rm -f %{buildroot}%{mingw64_libdir}/*.def
# The gdbus-codegen pieces are already in the native glib2 package
rm -f %{buildroot}%{mingw32_bindir}/gdbus-codegen
rm -rf %{buildroot}%{mingw32_libdir}/gdbus-2.0
+sed -i 's|gdbus_codegen=.*|gdbus_codegen=%{_bindir}/gdbus-codegen|g' %{buildroot}%{mingw32_libdir}/pkgconfig/gio-2.0.pc
rm -f %{buildroot}%{mingw64_bindir}/gdbus-codegen
rm -rf %{buildroot}%{mingw64_libdir}/gdbus-2.0
+sed -i 's|gdbus_codegen=.*|gdbus_codegen=%{_bindir}/gdbus-codegen|g' %{buildroot}%{mingw64_libdir}/pkgconfig/gio-2.0.pc
# Drop all .la files
find %{buildroot} -name "*.la" -delete
@@ -272,6 +279,16 @@ find %{buildroot} -name "*.la" -delete
%changelog
+* Thu Oct 26 2023 Konstantin Kostiuk - 2.78.0-1
+- Bump glib2 version 2.78.0
+- Drop DesktopQE gating
+- Fix CVEs: CVE-2023-32636, CVE-2023-29499, CVE-2023-32611, CVE-2023-32665, DoS
+- Resolves: RHEL-5019
+- Resolves: RHEL-5020
+- Resolves: RHEL-5092
+- Resolves: RHEL-5093
+- Resolves: RHEL-5094
+
* Mon Aug 7 2023 Konstantin Kostiuk - 2.70.1-4
- Fix Glib2 build
- Resolves: RHEL-1056