From 9f323d84acd055a4665461bf6f057303a1a2e144 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 14 Sep 2021 18:43:28 +0200 Subject: [PATCH] Initial build of the new parallel installable glibmm-2.68 ABI version --- .gitignore | 1 + glibmm2.68.spec | 100 +++++++++++++++++++++++++++++++++++++++++++ glibmm24-gcc11.patch | 80 ++++++++++++++++++++++++++++++++++ sources | 1 + 4 files changed, 182 insertions(+) create mode 100644 .gitignore create mode 100644 glibmm2.68.spec create mode 100644 glibmm24-gcc11.patch create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4ac7676 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/glibmm-2.68.1.tar.xz diff --git a/glibmm2.68.spec b/glibmm2.68.spec new file mode 100644 index 0000000..0768ae2 --- /dev/null +++ b/glibmm2.68.spec @@ -0,0 +1,100 @@ +%global apiver 2.68 +# first two digits of version +%define release_version %(echo %{version} | awk -F. '{print $1"."$2}') + +%global libsigc_version 3.0.0 +%global glib2_version 2.63.0 + +Name: glibmm2.68 +Version: 2.68.1 +Release: %autorelease +Summary: C++ interface for the GLib library + +License: LGPLv2+ +URL: http://www.gtkmm.org/ +Source0: http://ftp.gnome.org/pub/GNOME/sources/glibmm/%{release_version}/glibmm-%{version}.tar.xz + +Patch0: glibmm24-gcc11.patch + +BuildRequires: doxygen +BuildRequires: gcc-c++ +BuildRequires: glib2-devel >= %{glib2_version} +BuildRequires: libsigc++30-devel >= %{libsigc_version} +BuildRequires: libxslt +BuildRequires: m4 +BuildRequires: meson +BuildRequires: mm-common +BuildRequires: perl-generators +BuildRequires: perl-interpreter +BuildRequires: perl(Getopt::Long) + +Requires: glib2%{?_isa} >= %{glib2_version} +Requires: libsigc++30%{?_isa} >= %{libsigc_version} + +# Do not export private Perl modules +%global __provides_exclude %{?__provides_exclude:%{__provides_exclude}|}^perl\\( +%global __requires_exclude %{?__requires_exclude:%{__requires_exclude}|}^perl\\((DocsParser|Enum|Function|FunctionBase|GtkDefs|Object|Output|Property|Util|WrapParser)\\) + +%description +glibmm is the official C++ interface for the popular cross-platform +library GLib. It provides non-UI API that is not available in standard +C++ and makes it possible for gtkmm to wrap GObject-based APIs. + + +%package devel +Summary: Headers for developing programs that will use %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +This package contains the static libraries and header files needed for +developing glibmm applications. + + +%package doc +Summary: Documentation for %{name}, includes full API docs +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Requires: libsigc++20-doc + +%description doc +This package contains the full API documentation for %{name}. + + +%prep +%autosetup -p1 -n glibmm-%{version} + + +%build +%meson -Dbuild-documentation=true +%meson_build + + +%install +%meson_install + +chmod +x $RPM_BUILD_ROOT%{_libdir}/glibmm-%{apiver}/proc/generate_wrap_init.pl +chmod +x $RPM_BUILD_ROOT%{_libdir}/glibmm-%{apiver}/proc/gmmproc + + +%files +%license COPYING +%doc AUTHORS NEWS README +%{_libdir}/libgiomm-%{apiver}.so.1* +%{_libdir}/libglibmm-%{apiver}.so.1* +%{_libdir}/libglibmm_generate_extra_defs-%{apiver}.so.1* + +%files devel +%{_includedir}/glibmm-%{apiver}/ +%{_includedir}/giomm-%{apiver}/ +%{_libdir}/*.so +%{_libdir}/glibmm-%{apiver}/ +%{_libdir}/giomm-%{apiver}/ +%{_libdir}/pkgconfig/*.pc + +%files doc +%doc %{_datadir}/devhelp/ +%doc %{_docdir}/glibmm-%{apiver}/ + + +%changelog +%autochangelog diff --git a/glibmm24-gcc11.patch b/glibmm24-gcc11.patch new file mode 100644 index 0000000..e00e189 --- /dev/null +++ b/glibmm24-gcc11.patch @@ -0,0 +1,80 @@ +diff --git a/untracked/gio/giomm/dbusconnection.cc b/untracked/gio/giomm/dbusconnection.cc +index 9ddeeb4..9701106 100644 +--- a/untracked/gio/giomm/dbusconnection.cc ++++ b/untracked/gio/giomm/dbusconnection.cc +@@ -494,7 +494,7 @@ Connection::send_message_with_reply(const Glib::RefPtr& message, int ti + const SlotAsyncReady& slot, const Glib::RefPtr& cancellable) + { + auto slot_copy = new SlotAsyncReady(slot); +- volatile guint32 out_serial = 0; ++ guint32 out_serial = 0; + g_dbus_connection_send_message_with_reply(gobj(), Glib::unwrap(message), + static_cast(message->get_flags()), timeout_msec, &out_serial, + Glib::unwrap(cancellable), &SignalProxy_async_callback, slot_copy); +@@ -506,7 +506,7 @@ Connection::send_message_with_reply( + const Glib::RefPtr& message, int timeout_msec, const SlotAsyncReady& slot) + { + auto slot_copy = new SlotAsyncReady(slot); +- volatile guint32 out_serial = 0; ++ guint32 out_serial = 0; + g_dbus_connection_send_message_with_reply(gobj(), Glib::unwrap(message), + static_cast(message->get_flags()), timeout_msec, &out_serial, nullptr, + &SignalProxy_async_callback, slot_copy); +@@ -517,7 +517,7 @@ Glib::RefPtr + Connection::send_message_with_reply_sync(const Glib::RefPtr& message, + const Glib::RefPtr& cancellable, gint timeout_msec) + { +- volatile guint32 out_serial = 0; ++ guint32 out_serial = 0; + GError* gerror = nullptr; + + GDBusMessage* result = g_dbus_connection_send_message_with_reply_sync(gobj(), +@@ -533,7 +533,7 @@ Connection::send_message_with_reply_sync(const Glib::RefPtr& message, + Glib::RefPtr + Connection::send_message_with_reply_sync(const Glib::RefPtr& message, gint timeout_msec) + { +- volatile guint32 out_serial = 0; ++ guint32 out_serial = 0; + GError* gerror = nullptr; + + GDBusMessage* result = g_dbus_connection_send_message_with_reply_sync(gobj(), +diff --git a/gio/src/dbusconnection.ccg b/gio/src/dbusconnection.ccg +index e28e7b4..3d9860a 100644 +--- a/gio/src/dbusconnection.ccg ++++ b/gio/src/dbusconnection.ccg +@@ -477,7 +477,7 @@ Connection::send_message_with_reply(const Glib::RefPtr& message, int ti + const SlotAsyncReady& slot, const Glib::RefPtr& cancellable) + { + auto slot_copy = new SlotAsyncReady(slot); +- volatile guint32 out_serial = 0; ++ guint32 out_serial = 0; + g_dbus_connection_send_message_with_reply(gobj(), Glib::unwrap(message), + static_cast(message->get_flags()), timeout_msec, &out_serial, + Glib::unwrap(cancellable), &SignalProxy_async_callback, slot_copy); +@@ -489,7 +489,7 @@ Connection::send_message_with_reply( + const Glib::RefPtr& message, int timeout_msec, const SlotAsyncReady& slot) + { + auto slot_copy = new SlotAsyncReady(slot); +- volatile guint32 out_serial = 0; ++ guint32 out_serial = 0; + g_dbus_connection_send_message_with_reply(gobj(), Glib::unwrap(message), + static_cast(message->get_flags()), timeout_msec, &out_serial, nullptr, + &SignalProxy_async_callback, slot_copy); +@@ -500,7 +500,7 @@ Glib::RefPtr + Connection::send_message_with_reply_sync(const Glib::RefPtr& message, + const Glib::RefPtr& cancellable, gint timeout_msec) + { +- volatile guint32 out_serial = 0; ++ guint32 out_serial = 0; + GError* gerror = nullptr; + + GDBusMessage* result = g_dbus_connection_send_message_with_reply_sync(gobj(), +@@ -516,7 +516,7 @@ Connection::send_message_with_reply_sync(const Glib::RefPtr& message, + Glib::RefPtr + Connection::send_message_with_reply_sync(const Glib::RefPtr& message, gint timeout_msec) + { +- volatile guint32 out_serial = 0; ++ guint32 out_serial = 0; + GError* gerror = nullptr; + + GDBusMessage* result = g_dbus_connection_send_message_with_reply_sync(gobj(), diff --git a/sources b/sources new file mode 100644 index 0000000..acb6fa4 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (glibmm-2.68.1.tar.xz) = ca164f986da651e66bb5b98a760853e73d57ff84e035809d4c3b2c0a1b6ddf8ca68ffc49a71d0e0b2e14eca1c00e2e727e3bf3821e0b2b3a808397c3d33c6d5c