File project.diff of Package gtk3

--- _service.orig
+++ _service
@@ -1,6 +1,15 @@
 <?xml version="1.0"?>
 <services>
   <service name="obs_scm" mode="manual">
+    <param name="url">https://github.com/lah7/gtk3-classic.git</param>
+    <param name="scm">git</param>
+    <!-- <param name="revision">3.24.42</param> -->
+    <!-- <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> -->
+    <!-- <param name="versionrewrite-pattern">(.*)\+0</param> -->
+    <!-- <param name="versionrewrite-replacement">\1</param> -->
+    <!-- <param name="changesgenerate">disable</param> -->
+  </service>
+  <service name="obs_scm" mode="manual">
     <param name="url">https://gitlab.gnome.org/GNOME/gtk.git</param>
     <param name="scm">git</param>
     <param name="revision">3.24.42</param>
--- gtk3.spec.orig
+++ gtk3.spec
@@ -22,6 +22,9 @@
 %bcond_with    tests
 
 %define _name gtk
+
+%global flavor @BUILD_FLAVOR@%nil
+
 # When updating the binary version, please do not forget to also update the
 # baselibs.conf file accordingly.
 %define binary_version 3.0.0
@@ -29,7 +32,19 @@
 # Filter out provides for private modules
 %define __provides_exclude_from ^%{_libdir}/gtk-3.0
 
+%define gtk_classic_ver 1718533858.63abea1
+%define my_builddir %_builddir/%{name}-%{version}
+
+%if "%{flavor}" == "classic"
+%(chmod +x %_sourcedir/apply-patches)
+%endif
+
+%if "%{flavor}" != ""
+Name:           gtk3%{?flavor:-}%{?flavor}
+Provides:       gtk3 = %{version}-%{release}
+%else
 Name:           gtk3
+%endif
 Version:        3.24.42
 Release:        0
 Summary:        The GTK+ toolkit library (version 3)
@@ -40,6 +55,11 @@ Source0:        %{_name}-%{version}.tar.
 Source1:        README.SUSE
 Source2:        settings.ini
 Source3:        macros.gtk3
+%if "%flavor" == "classic"
+Source50:       gtk3-classic-%{gtk_classic_ver}.tar.xz
+Source51:       apply-patches
+Source52:       series.conf
+%endif
 Source99:       baselibs.conf
 # PATCH-FIX-OPENSUSE gtk3-GTK_PATH64.patch sbrabec@novell.com - 64-bit dual install. Use GTK_PATH64 environment variable instead of GTK_PATH
 Patch0:         gtk3-GTK_PATH64.patch
@@ -98,7 +118,7 @@ GTK+ is a multi-platform toolkit for cre
 Offering a complete set of widgets, GTK+ is suitable for projects
 ranging from small one-off projects to complete application suites.
 
-%package -n libgtk-3-0
+%package -n libgtk%{?flavor:-}%{?flavor}-3-0
 Summary:        The GTK+ toolkit library (version 3)
 Group:          System/Libraries
 Requires:       %{name}-data >= %{version}
@@ -126,12 +146,16 @@ Recommends:     adwaita-icon-theme
 Recommends:     gvfs
 # Provide %%{name} to make the lang and immodules packages installable
 Provides:       %{name} = %{version}
+%if "%flavor" != ""
+Provides:       libgtk-3-0 = %{version}
+Conflicts:      libgtk-3-0
+%endif
 # Before 3.0, the package was actually libgtk-3_0-0 and files might
 # conflict
 Provides:       libgtk-3_0-0 = %{version}
 Obsoletes:      libgtk-3_0-0 < %{version}
 
-%description -n libgtk-3-0
+%description -n libgtk%{?flavor:-}%{?flavor}-3-0
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
 Offering a complete set of widgets, GTK+ is suitable for projects
 ranging from small one-off projects to complete application suites.
@@ -158,6 +182,10 @@ Requires:       %{name} = %{version}
 Requires(post): %{name}-tools
 Requires(postun): %{name}-tools
 Provides:       locale(%{name}:am)
+%if "%flavor" != ""
+Provides:       locale(gtk3:am)
+Conflicts:      gtk3-immodule-amharic
+%endif
 
 %description immodule-amharic
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -172,6 +200,12 @@ Group:          System/Libraries
 Requires:       %{name} = %{version}
 Requires(post): %{name}-tools
 Requires(postun): %{name}-tools
+%if "%flavor" != ""
+Requires:       gtk3 = %{version}
+Requires(post): gtk3-tools
+Requires(postun): gtk3-tools
+Conflicts:      gtk3-tools
+%endif
 
 %description immodule-broadway
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -187,6 +221,13 @@ Requires:       %{name} = %{version}
 Requires(post): %{name}-tools
 Requires(postun): %{name}-tools
 Provides:       locale(%{name}:iu)
+%if "%flavor" != ""
+Requires:       gtk3 = %{version}
+Requires(post): gtk3-tools
+Requires(postun): gtk3-tools
+Provides:       locale(gtk3:iu)
+Conflicts:      gtk3-immodule-inuktitut
+%endif
 
 %description immodule-inuktitut
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -201,6 +242,13 @@ Group:          System/Libraries
 Requires:       %{name} = %{version}
 Requires(post): %{name}-tools
 Requires(postun): %{name}-tools
+%if "%flavor" != ""
+Requires:       gtk3 = %{version}
+Requires(post): gtk3-tools
+Requires(postun): gtk3-tools
+Provides:       locale(gtk3:iu)
+Conflicts:      gtk3-immodule-multipress
+%endif
 
 %description immodule-multipress
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -218,6 +266,14 @@ Requires(post): %{name}-tools
 Requires(postun): %{name}-tools
 Provides:       locale(%{name}:lo)
 Provides:       locale(%{name}:th)
+%if "%flavor" != ""
+Requires:       gtk3 = %{version}
+Requires(post): gtk3-tools
+Requires(postun): gtk3-tools
+Provides:       locale(gtk3:lo)
+Provides:       locale(gtk3:th)
+Conflicts:      gtk3-immodule-thai
+%endif
 
 %description immodule-thai
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -235,6 +291,15 @@ Requires(postun): %{name}-tools
 Provides:       %{name}-immodules-tigrigna = %{version}
 Provides:       locale(%{name}:ti)
 Obsoletes:      %{name}-immodules-tigrigna < %{version}
+%if "%flavor" != ""
+Requires:       gtk3 = %{version}
+Requires(post): gtk3-tools
+Requires(postun): gtk3-tools
+Provides:       gtk3-immodules-tigrigna = %{version}
+Provides:       locale(gtk3:ti)
+Obsoletes:      gtk3-immodules-tigrigna < %{version}
+Conflicts:      gtk3-immodule-tigrigna
+%endif
 
 %description immodule-tigrigna
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -250,6 +315,13 @@ Requires:       %{name} = %{version}
 Requires(post): %{name}-tools
 Requires(postun): %{name}-tools
 Provides:       locale(%{name}:vi)
+%if "%flavor" != ""
+Requires:       gtk3 = %{version}
+Requires(post): gtk3-tools
+Requires(postun): gtk3-tools
+Provides:       locale(gtk3:vi)
+Conflicts:      gtk3-immodule-vietnamese
+%endif
 
 %description immodule-vietnamese
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -264,6 +336,12 @@ Group:          System/Libraries
 Requires:       %{name} = %{version}
 Requires(post): %{name}-tools
 Requires(postun): %{name}-tools
+%if "%flavor" != ""
+Requires:       gtk3 = %{version}
+Requires(post): gtk3-tools
+Requires(postun): gtk3-tools
+Conflicts:      gtk3-immodule-wayland
+%endif
 
 %description immodule-wayland
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -283,6 +361,16 @@ Provides:       locale(%{name}:ja)
 Provides:       locale(%{name}:ko)
 Provides:       locale(%{name}:th)
 Provides:       locale(%{name}:zh)
+%if "%flavor" != ""
+Requires:       gtk3 = %{version}
+Requires(post): gtk3-tools
+Requires(postun): gtk3-tools
+Provides:       locale(gtk3:ja)
+Provides:       locale(gtk3:ko)
+Provides:       locale(gtk3:th)
+Provides:       locale(gtk3:zh)
+Conflicts:      gtk3-immodule-xim
+%endif
 
 %description immodule-xim
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -329,6 +417,11 @@ Requires:       libgtk-3-0 = %{version}
 Supplements:    (%{name} and branding-upstream)
 Conflicts:      %{name}-branding
 Provides:       %{name}-branding = %{version}
+%if "%flavor" != ""
+Supplements:    (gtk3 and branding-upstream)
+Conflicts:      gtk3-branding
+Provides:       gtk3-branding = %{version}
+%endif
 BuildArch:      noarch
 #BRAND: Provides /etc/gtk-3.0/settings.ini, to define default theme and icon
 #BRAND: theme.
@@ -349,6 +442,9 @@ Group:          Development/Libraries/X1
 Requires:       gettext-its-%{name} >= %{version}
 Requires:       libgtk-3-0 = %{version}
 Requires:       typelib-1_0-Gtk-3_0 = %{version}
+%if "%flavor" != ""
+Provides:       gtk3-devel
+%endif
 
 %description devel
 GTK+ is a multi-platform toolkit for creating graphical user interfaces.
@@ -380,7 +476,12 @@ ranging from small one-off projects to c
 This package contains the API documentation for GTK+ 3.x.
 
 %prep
+%if "%flavor" == "classic"
+%autosetup -N -n %{_name}-%{version} -a50
+%else
 %autosetup -N -n %{_name}-%{version}
+%endif
+
 %if "%{_lib}" == "lib64"
 cp -a %{SOURCE1} .
 %if !0%{?sle_version}
@@ -397,6 +498,12 @@ cp -a %{SOURCE1} .
 %patch -P 1 -p1
 %endif
 
+%if "%flavor" == "classic"
+
+%_sourcedir/apply-patches %_sourcedir/series.conf gtk3-classic-%{gtk_classic_ver}
+
+%endif
+
 %build
 %meson \
     -D broadway_backend=%{?with_broadway:true}%{!?with_broadway:false} \
@@ -406,6 +513,12 @@ cp -a %{SOURCE1} .
     -D tests=%{?with_tests:true}%{!?with_tests:false} \
     -D builtin_immodules=wayland,waylandgtk \
     ;
+
+%if "%flavor" != ""
+    sed -e 's/libgtk-3-0/libgtk-%flavor-3-0\n provides "libgtk-3-0"/' -i %SOURCE99
+    cat %SOURCE99
+%endif
+
 %meson_build
 
 %install
@@ -478,7 +591,7 @@ cp %{SOURCE3} %{buildroot}%{_rpmmacrodir
 
 # Until RPM (trans)filetriggers gets implemented for ldconfig calls, use
 # whatever we got.
-%ldconfig_scriptlets -n libgtk-3-0
+%ldconfig_scriptlets -n libgtk%{?flavor:-}%{?flavor}-3-0
 
 %filetriggerin tools -- %{_immoduledir}
 %__gtk_query_immodules --update-cache \
@@ -524,7 +637,7 @@ if [ ! -f %__update_iconcache3 ]; then
   %__update_alternatives --remove gtk-update-icon-cache %__update_iconcache3
 fi
 
-%files -n libgtk-3-0
+%files -n libgtk%{?flavor:-}%{?flavor}-3-0
 %license COPYING
 %if "%{_lib}" == "lib64"
 %doc README.SUSE
openSUSE Build Service is sponsored by