summaryrefslogtreecommitdiff
path: root/sys-libs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-02-25 11:40:32 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-02-25 11:40:32 +0000
commit4215622c05ed14d30fdad5a4d0feba6d94b0d046 (patch)
tree2e7c452f4b9f4b13bf11bf37ea05bdcf1bc7d73e /sys-libs
parentd117dce29795dfc5a9824d31a128decaa37f73d2 (diff)
gentoo auto-resync : 25:02:2024 - 11:40:31
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/Manifest.gzbin14740 -> 14730 bytes
-rw-r--r--sys-libs/libhx/Manifest2
-rw-r--r--sys-libs/libhx/libhx-4.23.ebuild27
-rw-r--r--sys-libs/snapd-glib/Manifest2
-rw-r--r--sys-libs/snapd-glib/files/snapd-glib-1.64-qt6.patch286
-rw-r--r--sys-libs/snapd-glib/snapd-glib-1.64-r100.ebuild65
6 files changed, 382 insertions, 0 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz
index b53d8250750a..6863f573d086 100644
--- a/sys-libs/Manifest.gz
+++ b/sys-libs/Manifest.gz
Binary files differ
diff --git a/sys-libs/libhx/Manifest b/sys-libs/libhx/Manifest
index a7b39431a068..b87896f170e6 100644
--- a/sys-libs/libhx/Manifest
+++ b/sys-libs/libhx/Manifest
@@ -2,7 +2,9 @@ AUX libhx-3.22-no-lyx.patch 495 BLAKE2B ae31b2ada8230a223413e4f7470b7743592191e8
DIST libHX-3.24.tar.xz 876992 BLAKE2B 518b99e78acc0cb412f444c0dacaae830a853294a0ee549facfbe65a423a9f32d0388e30e255c87c3f5325102bea45e5e9d72d3fce5b89139b689fddcb299f93 SHA512 faf7af53b628efe1531568ccb2b7e9910db833b14583ab1487eb6a554b407a7546bc75348f7d2344c29ab53fd2df061f6f8de8db634bbd62c3672dc4347d27e4
DIST libHX-3.25.tar.xz 890576 BLAKE2B d8e13a7fb0ea2cd033edc6b179ef3d4b30c37f522b1e90aea0de96d225655b654d1a7cb133834ef2f10044ccbe60e7559b2280ecbc136a458fd3a2237b8f83ab SHA512 221000fddd1316b6c452babbcb7e234683e3bad559a4b1a608936a086143ad8f17cec489606f8d50ea66775b9f8305ec52c7401d568f01b33372388f75bdea94
DIST libHX-4.21.tar.xz 359760 BLAKE2B cda2c5e29ede3e0d7ab575983b8443326f9e5aa49ccc3e64826e306c80a86fd7dd7a120d9c6ac82f790c1a9690666d1a54039240669abd1a88c0189d1af7bc80 SHA512 cf3c5fd7b1137c9f56b56abe52886a47ec21256cfa393bd31339f1f9f4683cfeca2107f46ac0fc5571962f5daeb9c5c060c6db442667cc99380f6e55183a6ab5
+DIST libHX-4.23.tar.xz 359608 BLAKE2B f14d7be69d3bedb78758e5705b196c0179a00f77e768802a3e19fd5b1bbbdc1d117c907718eb6d63e1aba33d2bc872b64a6dd550c9bf29c6ba47b09682829d69 SHA512 c19a2e8a2f84a81552258a58f47a55fd3f5c81a19d12cf7511c12a3a97bef051977f18cd82a004a825c20d4fd3b2c48f23ddbf9364a46b24faabcb94aa0167ff
EBUILD libhx-3.24-r1.ebuild 708 BLAKE2B 63537cbdd638a3a4244498ee6785a92058c1dc91b4df4fb1dbc369f3bae7cbe86471eae9f5bab9f838b6e19f132ea8ab14026eaa1254d5d302171119d8209e27 SHA512 5adfeb03eb3dca845f9116b90ef6e1a19196ab0dd6058e252c10f7cebfa8570c5e03d631d6fd1bb55318d8e069286239e3878bfb328610b36f2cc279d90a08e7
EBUILD libhx-3.25.ebuild 729 BLAKE2B 729b113a5b455a53fb66773d4ead5a0689420427059bbba9f91629b14037b0d4f35e5eaf0c410f0034fecfdaea230aab117a3ee3f615dce760b285ab9a29e97b SHA512 75cbda30c6b583d641dc9ee68cdbb8173ce1c2ee913500c86b9f42e7cb6d1c97a93232c8c7b2d992a183052cc07669d20dd8e428cc182cdc0b0d900b0380bf0d
EBUILD libhx-4.21.ebuild 553 BLAKE2B 8d7e9e207560a8f241c1d1fa52cd54f7fe8e528532a6fcfddfdd6e8949862675291550d3067d19b17c7bfd5cbf113a1c4c1dbbcceefd08d9aa9155ecdaf75074 SHA512 5c6be406debb974854f5bf5d8e3f4cd16d64af2df9780f2f5d13662e174de785a11968e9be4abb17b8f96030a48b421cc6e45c2b6a7a9b871ecb5575e1a39f17
+EBUILD libhx-4.23.ebuild 553 BLAKE2B 8d7e9e207560a8f241c1d1fa52cd54f7fe8e528532a6fcfddfdd6e8949862675291550d3067d19b17c7bfd5cbf113a1c4c1dbbcceefd08d9aa9155ecdaf75074 SHA512 5c6be406debb974854f5bf5d8e3f4cd16d64af2df9780f2f5d13662e174de785a11968e9be4abb17b8f96030a48b421cc6e45c2b6a7a9b871ecb5575e1a39f17
MISC metadata.xml 292 BLAKE2B 80ae162496d1307717df1a2ac26eaea506ad800a7ea11281775d3d21ceca425392dc3ded3a0712cb260170a1f125ae0dfc0a73ad2771b0d90fae6b1e2623f9a1 SHA512 6e235fcc8087a7db7bf9d6e0b1c47a56a731796ba3e4e85d39eb277f518b23ba5d187603a5b2c3b36880b6f48e4222f72d9ca1debe141c1a2d12b68d997e34ca
diff --git a/sys-libs/libhx/libhx-4.23.ebuild b/sys-libs/libhx/libhx-4.23.ebuild
new file mode 100644
index 000000000000..9126c9cafb8e
--- /dev/null
+++ b/sys-libs/libhx/libhx-4.23.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Platform independent library providing basic system functions"
+HOMEPAGE="https://inai.de/projects/libhx/"
+SRC_URI="https://inai.de/files/${PN}/libHX-${PV}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0/32" # soname version
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="doc"
+
+BDEPEND="app-arch/xz-utils"
+
+S="${WORKDIR}/libHX-${PV}"
+
+src_install() {
+ default
+
+ if use doc; then
+ dodoc doc/*.txt doc/*.rst
+ fi
+
+ find "${ED}" -name "*.la" -delete || die
+}
diff --git a/sys-libs/snapd-glib/Manifest b/sys-libs/snapd-glib/Manifest
index f40a9ccb8921..c52477f57851 100644
--- a/sys-libs/snapd-glib/Manifest
+++ b/sys-libs/snapd-glib/Manifest
@@ -1,5 +1,7 @@
+AUX snapd-glib-1.64-qt6.patch 17595 BLAKE2B c6718840e33ad2c1b5aca2f38f9508bcfe49e083892eecfe1987b17f9c87b313309575d90996eb514cc6008e173a0a37d0263d695850ea4feff0a7cc5c0344f1 SHA512 a325ef62d0294643204826c3cb244e21fba65e23dd5dc17bd7197637f01fde8a32bb82921f7b5d7cf8422d60d98fb268eb9d6c79585ffbadf8e21d6b5209b45c
DIST snapd-glib-1.63.tar.xz 187676 BLAKE2B a212f826ee35ef5458b716ce64d8f4b32474f991938bc314fcdb0feb5c803f93880a517fe5e1550bc82bc4992bee7467dc0d8cf5cb260712e83b8a1fe6b75743 SHA512 94a2f46e4e066270ea5492cb00fd44da247686a354cbe6766fe3e8974e6bb51f4cf1ca95027533417ec8c8117fc9d3866cb173a113b89d789b6ba518489a314f
DIST snapd-glib-1.64.tar.xz 195580 BLAKE2B 1c6e958033c2b98dd72b5bfb6f1a44739a79d5d9a289fded9756cf3031a1fe62cccbf3ba4ce4c4f34d3c7e48b945b481ff6c3ae245d205a49e37845dd3efbb27 SHA512 a3fa101bcc64b750c170ccd433dbbfaa306354dc6c66d5ab62911c866b7e65f6aefc7e9c82f84f5d16b8b96174edf4bef771a4839ef6e5acd15399a84b93aec4
EBUILD snapd-glib-1.63.ebuild 1149 BLAKE2B dd24a67001aad8070a2d59d74b7c6631f81f887d098379a59cbd8cbca79fec6af48e72494f44d382d195b889df4734216eb1a99a7d38a070d3f08a9d2c0c0ee1 SHA512 6767b4e61361089372012b35c8cfc57bf622b66d2a0a52fdffbacd81bdc3704696a69676dddda2d029c8ce8fc1988d2646be249e09e8a72d9bd847407063ab08
+EBUILD snapd-glib-1.64-r100.ebuild 1171 BLAKE2B 4a043007a275d01c4ebc24eed4a1812b7a3eeaabcee88f1fa5d544d60b7a57cf814ee81a6bb12296069ba3fa3c8c3b510cc0cd6ecfb853c872108da1285c9f23 SHA512 4b55af754777aeea131c963c3cf6837645088258894c4c69ab3d838973ad7a28ed5425390ba26332cd7a649e97c7816117c411a061ea54625c079b0b03cfdaae
EBUILD snapd-glib-1.64.ebuild 1150 BLAKE2B d766bca4abdb1fc8913e483159e6831e060a148bdc51ae60144072671b83b27ea6be416f0fec150bf148742f570a0d70d817b0fbfc3bb9d440e4ce20a6437031 SHA512 b883fd6d734203d4ed35f1c9a98331236f7d74ffacb77d20985f114a63eb73f9f91ca9aba8da4784782bb62b9393668e5dcf56cd34cb861ef64e6fffd53cbb57
MISC metadata.xml 406 BLAKE2B ee1d1cdc33311cea7a3bcc4288fb8ec0148327eaa6fc59fd7c18ff3b34d9624a9e42a85f47254205a3d078651012d52ddc5f2dbf693f0250afc4194e389ba4be SHA512 1331657e9efe50b9901b2acc60694edf2c9f518a37f2a0d346969b78ceffe75d88a0503bb43fdac9a75eb81706440d99d8ce3eb6b9b112163438474b823338e1
diff --git a/sys-libs/snapd-glib/files/snapd-glib-1.64-qt6.patch b/sys-libs/snapd-glib/files/snapd-glib-1.64-qt6.patch
new file mode 100644
index 000000000000..de6b4bbdec5c
--- /dev/null
+++ b/sys-libs/snapd-glib/files/snapd-glib-1.64-qt6.patch
@@ -0,0 +1,286 @@
+From 5377f5d01adce209b9a148018cab100d5d5a1d4c Mon Sep 17 00:00:00 2001
+From: Aleix Pol <aleixpol@kde.org>
+Date: Tue, 13 Feb 2024 01:25:39 +0100
+Subject: [PATCH] qt: Port to Qt 6
+
+It's what we are using in Discover now.
+diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
+index 8a8668f2..58700c2f 100644
+--- a/.github/workflows/test.yaml
++++ b/.github/workflows/test.yaml
+@@ -55,7 +55,7 @@ jobs:
+ - name: Install dependencies (Fedora)
+ if: startsWith(matrix.image, 'fedora:')
+ run: |
+- dnf install -y gcc gcc-c++ gobject-introspection-devel glib2-devel gtk-doc json-glib-devel libsoup3-devel ninja-build python3-pip qt5-qtbase-devel qt5-qtdeclarative-devel redhat-rpm-config vala
++ dnf install -y gcc gcc-c++ gobject-introspection-devel glib2-devel gtk-doc json-glib-devel libsoup3-devel ninja-build python3-pip qt6-qtbase-devel qt6-qtdeclarative-devel redhat-rpm-config vala
+
+ - name: Install meson
+ if: matrix.image != 'ubuntu:rolling'
+diff --git a/meson.build b/meson.build
+index b9f98d37..26951e9c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1,7 +1,7 @@
+ project ('snapd-glib', [ 'c', 'cpp' ],
+ version: '1.64',
+- meson_version: '>= 0.43.0',
+- default_options : [ 'c_std=c11', 'cpp_std=c++11' ])
++ meson_version: '>= 0.57.0',
++ default_options : [ 'c_std=c11' ])
+
+ glib_dep = dependency ('glib-2.0', version: '>= 2.46')
+ gio_dep = dependency ('gio-2.0', version: '>= 2.46')
+@@ -14,9 +14,9 @@ endif
+ json_glib_dep = dependency ('json-glib-1.0', version: '>= 1.1.2')
+
+ if get_option ('qt-bindings')
+- qt5_core_dep = dependency ('qt5', modules: [ 'Core' ])
+- qt5_network_dep = dependency ('qt5', modules: [ 'Network' ])
+- qml_dep = dependency ('qt5', modules: [ 'Qml' ])
++ qt6_core_dep = dependency ('qt6', modules: [ 'Core' ])
++ qt6_network_dep = dependency ('qt6', modules: [ 'Network' ])
++ qml_dep = dependency ('qt6', modules: [ 'Qml' ])
+ endif
+
+ datadir = join_paths (get_option ('prefix'), get_option ('datadir'))
+diff --git a/snapd-qt/markdown-node.cpp b/snapd-qt/markdown-node.cpp
+index 2be1751e..2e87707b 100644
+--- a/snapd-qt/markdown-node.cpp
++++ b/snapd-qt/markdown-node.cpp
+@@ -62,3 +62,14 @@ QSnapdMarkdownNode *QSnapdMarkdownNode::child (int n) const
+ return NULL;
+ return new QSnapdMarkdownNode (children->pdata[n]);
+ }
++
++QSnapdMarkdownNode & QSnapdMarkdownNode::operator=(const QSnapdMarkdownNode& node)
++{
++ if (&node == this) {
++ return *this;
++ }
++ g_object_unref(wrapped_object);
++ wrapped_object = node.wrapped_object;
++ g_object_ref(wrapped_object);
++ return *this;
++}
+diff --git a/snapd-qt/markdown-parser.cpp b/snapd-qt/markdown-parser.cpp
+index 751592c3..1a305ad9 100644
+--- a/snapd-qt/markdown-parser.cpp
++++ b/snapd-qt/markdown-parser.cpp
+@@ -56,7 +56,7 @@ bool QSnapdMarkdownParser::preserveWhitespace () const
+ QList<QSnapdMarkdownNode> QSnapdMarkdownParser::parse (const QString &text) const
+ {
+ Q_D(const QSnapdMarkdownParser);
+- g_autoptr(GPtrArray) nodes = snapd_markdown_parser_parse (d->parser, text.toStdString ().c_str ());
++ g_autoptr(GPtrArray) nodes = snapd_markdown_parser_parse (d->parser, text.toUtf8().constData());
+ QList<QSnapdMarkdownNode> nodes_list;
+ for (uint i = 0; i < nodes->len; i++) {
+ SnapdMarkdownNode *node = (SnapdMarkdownNode *) g_ptr_array_index (nodes, i);
+diff --git a/snapd-qt/meson.build b/snapd-qt/meson.build
+index 74687852..48fe650c 100644
+--- a/snapd-qt/meson.build
++++ b/snapd-qt/meson.build
+@@ -9,7 +9,7 @@ if not get_option('soup2')
+ endif
+
+ install_header_dir = join_paths (includedir, library_name, 'Snapd')
+-qml_dir = join_paths (libdir, 'qt5', 'qml', qt_name)
++qml_dir = join_paths (libdir, 'qt6', 'qml', qt_name)
+ cmake_dir = join_paths (libdir, 'cmake', qt_name)
+
+ source_cpp = [
+@@ -114,19 +114,19 @@ source_private_h = [
+ ]
+
+ if get_option ('qt-bindings')
+- qt5 = import ('qt5')
+- moc_files = qt5.preprocess (moc_headers: [ source_h, source_private_h ],
+- dependencies: [ qt5_core_dep, qt5_network_dep ])
++ qt6 = import ('qt6')
++ moc_files = qt6.preprocess (moc_headers: [ source_h, source_private_h ],
++ dependencies: [ qt6_core_dep, qt6_network_dep ])
+
+ snapd_qt_lib = library (library_name,
+ source_cpp, moc_files,
+ version: '1.0.0',
+- dependencies: [ qt5_core_dep, qt5_network_dep, glib_dep, gio_dep, snapd_glib_dep ],
++ dependencies: [ qt6_core_dep, qt6_network_dep, glib_dep, gio_dep, snapd_glib_dep ],
+ cpp_args: [ '-DQT_NO_SIGNALS_SLOTS_KEYWORDS' ],
+ install: true)
+
+ snapd_qt_dep = declare_dependency (link_with: snapd_qt_lib,
+- dependencies: [ qt5_network_dep ],
++ dependencies: [ qt6_network_dep ],
+ include_directories: include_directories ('.'))
+
+ install_headers (source_h + source_alias_h,
+@@ -160,7 +160,7 @@ if get_option ('qt-bindings')
+ install_data ('qmldir',
+ install_dir: qml_dir)
+
+- qml_moc_files = qt5.preprocess (moc_headers: 'qml-plugin.h',
++ qml_moc_files = qt6.preprocess (moc_headers: 'qml-plugin.h',
+ dependencies: qml_dep)
+ library (qt_name,
+ 'qml-plugin.cpp', qml_moc_files,
+diff --git a/tests/meson.build b/tests/meson.build
+index dd4ac7ef..4207244b 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -39,7 +39,7 @@ test_file = configure_file (input: 'test-markdown-glib.test.in',
+ install_data (test_file, install_dir: installed_tests_data_dir)
+
+ if get_option ('qt-bindings')
+- moc_files = qt5.preprocess (moc_headers: [ 'test-qt.h' ])
++ moc_files = qt6.preprocess (moc_headers: [ 'test-qt.h' ])
+
+ test_executable = executable ('test-qt',
+ 'test-qt.cpp', moc_files,
+diff --git a/tests/test-qt.cpp b/tests/test-qt.cpp
+index 04243a51..2bd225cf 100644
+--- a/tests/test-qt.cpp
++++ b/tests/test-qt.cpp
+@@ -2918,32 +2918,32 @@ test_get_connections_attributes ()
+
+ check_names_match (connection->plugAttributeNames (), QStringList () << "plug-string-key" << "plug-int-key" << "plug-bool-key" << "plug-number-key");
+ g_assert_true (connection->hasPlugAttribute ("plug-string-key"));
+- g_assert_true (connection->plugAttribute ("plug-string-key").type () == (QVariant::Type) QMetaType::QString);
++ g_assert_true (connection->plugAttribute ("plug-string-key").metaType().id () == QMetaType::QString);
+ g_assert_true (connection->plugAttribute ("plug-string-key").toString () == "value");
+ g_assert_true (connection->hasPlugAttribute ("plug-int-key"));
+- g_assert_true (connection->plugAttribute ("plug-int-key").type () == (QVariant::Type) QMetaType::LongLong);
++ g_assert_true (connection->plugAttribute ("plug-int-key").metaType().id () == QMetaType::LongLong);
+ g_assert_cmpint (connection->plugAttribute ("plug-int-key").toLongLong (), ==, 42);
+ g_assert_true (connection->hasPlugAttribute ("plug-bool-key"));
+- g_assert_true (connection->plugAttribute ("plug-bool-key").type () == (QVariant::Type) QMetaType::Bool);
++ g_assert_true (connection->plugAttribute ("plug-bool-key").metaType().id () == QMetaType::Bool);
+ g_assert_true (connection->plugAttribute ("plug-bool-key").toBool ());
+ g_assert_true (connection->hasPlugAttribute ("plug-number-key"));
+- g_assert_true (connection->plugAttribute ("plug-number-key").type () == (QVariant::Type) QMetaType::Double);
++ g_assert_true (connection->plugAttribute ("plug-number-key").metaType().id () == QMetaType::Double);
+ g_assert_cmpfloat (connection->plugAttribute ("plug-number-key").toDouble (), ==, 1.25);
+ g_assert_false (connection->hasPlugAttribute ("plug-invalid-key"));
+ g_assert_false (connection->plugAttribute ("plug-invalid-key").isValid ());
+
+ check_names_match (connection->slotAttributeNames (), QStringList () << "slot-string-key" << "slot-int-key" << "slot-bool-key" << "slot-number-key");
+ g_assert_true (connection->hasSlotAttribute ("slot-string-key"));
+- g_assert_true (connection->slotAttribute ("slot-string-key").type () == (QVariant::Type) QMetaType::QString);
++ g_assert_true (connection->slotAttribute ("slot-string-key").metaType().id () == QMetaType::QString);
+ g_assert_true (connection->slotAttribute ("slot-string-key").toString () == "value");
+ g_assert_true (connection->hasSlotAttribute ("slot-int-key"));
+- g_assert_true (connection->slotAttribute ("slot-int-key").type () == (QVariant::Type) QMetaType::LongLong);
++ g_assert_true (connection->slotAttribute ("slot-int-key").metaType().id () == QMetaType::LongLong);
+ g_assert_cmpint (connection->slotAttribute ("slot-int-key").toLongLong (), ==, 42);
+ g_assert_true (connection->hasSlotAttribute ("slot-bool-key"));
+- g_assert_true (connection->slotAttribute ("slot-bool-key").type () == (QVariant::Type) QMetaType::Bool);
++ g_assert_true (connection->slotAttribute ("slot-bool-key").metaType().id () == QMetaType::Bool);
+ g_assert_true (connection->slotAttribute ("slot-bool-key").toBool ());
+ g_assert_true (connection->hasSlotAttribute ("slot-number-key"));
+- g_assert_true (connection->slotAttribute ("slot-number-key").type () == (QVariant::Type) QMetaType::Double);
++ g_assert_true (connection->slotAttribute ("slot-number-key").metaType().id () == QMetaType::Double);
+ g_assert_cmpfloat (connection->slotAttribute ("slot-number-key").toDouble (), ==, 1.25);
+ g_assert_false (connection->hasSlotAttribute ("slot-invalid-key"));
+ g_assert_false (connection->slotAttribute ("slot-invalid-key").isValid ());
+@@ -2952,16 +2952,16 @@ test_get_connections_attributes ()
+ QScopedPointer<QSnapdPlug> plug (getConnectionsRequest->plug (0));
+ check_names_match (plug->attributeNames (), QStringList () << "plug-string-key" << "plug-int-key" << "plug-bool-key" << "plug-number-key");
+ g_assert_true (plug->hasAttribute ("plug-string-key"));
+- g_assert_true (plug->attribute ("plug-string-key").type () == (QVariant::Type) QMetaType::QString);
++ g_assert_true (plug->attribute ("plug-string-key").metaType().id () == QMetaType::QString);
+ g_assert_true (plug->attribute ("plug-string-key").toString () == "value");
+ g_assert_true (plug->hasAttribute ("plug-int-key"));
+- g_assert_true (plug->attribute ("plug-int-key").type () == (QVariant::Type) QMetaType::LongLong);
++ g_assert_true (plug->attribute ("plug-int-key").metaType().id () == QMetaType::LongLong);
+ g_assert_cmpint (plug->attribute ("plug-int-key").toLongLong (), ==, 42);
+ g_assert_true (plug->hasAttribute ("plug-bool-key"));
+- g_assert_true (plug->attribute ("plug-bool-key").type () == (QVariant::Type) QMetaType::Bool);
++ g_assert_true (plug->attribute ("plug-bool-key").metaType().id () == QMetaType::Bool);
+ g_assert_true (plug->attribute ("plug-bool-key").toBool ());
+ g_assert_true (plug->hasAttribute ("plug-number-key"));
+- g_assert_true (plug->attribute ("plug-number-key").type () == (QVariant::Type) QMetaType::Double);
++ g_assert_true (plug->attribute ("plug-number-key").metaType().id () == QMetaType::Double);
+ g_assert_cmpfloat (plug->attribute ("plug-number-key").toDouble (), ==, 1.25);
+ g_assert_false (plug->hasAttribute ("plug-invalid-key"));
+ g_assert_false (plug->attribute ("plug-invalid-key").isValid ());
+@@ -2970,16 +2970,16 @@ test_get_connections_attributes ()
+ QScopedPointer<QSnapdSlot> slot (getConnectionsRequest->slot (0));
+ check_names_match (slot->attributeNames (), QStringList () << "slot-string-key" << "slot-int-key" << "slot-bool-key" << "slot-number-key");
+ g_assert_true (slot->hasAttribute ("slot-string-key"));
+- g_assert_true (slot->attribute ("slot-string-key").type () == (QVariant::Type) QMetaType::QString);
++ g_assert_true (slot->attribute ("slot-string-key").metaType().id () == QMetaType::QString);
+ g_assert_true (slot->attribute ("slot-string-key").toString () == "value");
+ g_assert_true (slot->hasAttribute ("slot-int-key"));
+- g_assert_true (slot->attribute ("slot-int-key").type () == (QVariant::Type) QMetaType::LongLong);
++ g_assert_true (slot->attribute ("slot-int-key").metaType().id () == QMetaType::LongLong);
+ g_assert_cmpint (slot->attribute ("slot-int-key").toLongLong (), ==, 42);
+ g_assert_true (slot->hasAttribute ("slot-bool-key"));
+- g_assert_true (slot->attribute ("slot-bool-key").type () == (QVariant::Type) QMetaType::Bool);
++ g_assert_true (slot->attribute ("slot-bool-key").metaType().id () == QMetaType::Bool);
+ g_assert_true (slot->attribute ("slot-bool-key").toBool ());
+ g_assert_true (slot->hasAttribute ("slot-number-key"));
+- g_assert_true (slot->attribute ("slot-number-key").type () == (QVariant::Type) QMetaType::Double);
++ g_assert_true (slot->attribute ("slot-number-key").metaType().id () == QMetaType::Double);
+ g_assert_cmpfloat (slot->attribute ("slot-number-key").toDouble (), ==, 1.25);
+ g_assert_false (slot->hasAttribute ("slot-invalid-key"));
+ g_assert_false (slot->attribute ("slot-invalid-key").isValid ());
+@@ -3123,13 +3123,13 @@ test_get_interfaces_attributes ()
+ QScopedPointer<QSnapdPlug> plug (getInterfacesRequest->plug (0));
+ check_names_match (plug->attributeNames (), QStringList () << "plug-string-key" << "plug-int-key" << "plug-bool-key");
+ g_assert_true (plug->hasAttribute ("plug-string-key"));
+- g_assert_true (plug->attribute ("plug-string-key").type () == (QVariant::Type) QMetaType::QString);
++ g_assert_true (plug->attribute ("plug-string-key").metaType().id () == QMetaType::QString);
+ g_assert_true (plug->attribute ("plug-string-key").toString () == "value");
+ g_assert_true (plug->hasAttribute ("plug-int-key"));
+- g_assert_true (plug->attribute ("plug-int-key").type () == (QVariant::Type) QMetaType::LongLong);
++ g_assert_true (plug->attribute ("plug-int-key").metaType().id () == QMetaType::LongLong);
+ g_assert_cmpint (plug->attribute ("plug-int-key").toLongLong (), ==, 42);
+ g_assert_true (plug->hasAttribute ("plug-bool-key"));
+- g_assert_true (plug->attribute ("plug-bool-key").type () == (QVariant::Type) QMetaType::Bool);
++ g_assert_true (plug->attribute ("plug-bool-key").metaType().id () == QMetaType::Bool);
+ g_assert_true (plug->attribute ("plug-bool-key").toBool ());
+ g_assert_false (plug->hasAttribute ("plug-invalid-key"));
+ g_assert_false (plug->attribute ("plug-invalid-key").isValid ());
+@@ -3138,13 +3138,13 @@ test_get_interfaces_attributes ()
+ QScopedPointer<QSnapdSlot> slot (getInterfacesRequest->slot (0));
+ check_names_match (slot->attributeNames (), QStringList () << "slot-string-key" << "slot-int-key" << "slot-bool-key");
+ g_assert_true (slot->hasAttribute ("slot-string-key"));
+- g_assert_true (slot->attribute ("slot-string-key").type () == (QVariant::Type) QMetaType::QString);
++ g_assert_true (slot->attribute ("slot-string-key").metaType().id () == QMetaType::QString);
+ g_assert_true (slot->attribute ("slot-string-key").toString () == "value");
+ g_assert_true (slot->hasAttribute ("slot-int-key"));
+- g_assert_true (slot->attribute ("slot-int-key").type () == (QVariant::Type) QMetaType::LongLong);
++ g_assert_true (slot->attribute ("slot-int-key").metaType().id () == QMetaType::LongLong);
+ g_assert_cmpint (slot->attribute ("slot-int-key").toLongLong (), ==, 42);
+ g_assert_true (slot->hasAttribute ("slot-bool-key"));
+- g_assert_true (slot->attribute ("slot-bool-key").type () == (QVariant::Type) QMetaType::Bool);
++ g_assert_true (slot->attribute ("slot-bool-key").metaType().id () == QMetaType::Bool);
+ g_assert_true (slot->attribute ("slot-bool-key").toBool ());
+ g_assert_false (slot->hasAttribute ("slot-invalid-key"));
+ g_assert_false (slot->attribute ("slot-invalid-key").isValid ());
+@@ -3894,7 +3894,7 @@ test_find_channels ()
+ if (channel->name () == "stable") {
+ g_assert_true (channel->track () == "latest");
+ g_assert_true (channel->risk () == "stable");
+- g_assert_true (channel->branch () == NULL);
++ g_assert_true (channel->branch ().isEmpty());
+ g_assert_true (channel->revision () == "REVISION");
+ g_assert_true (channel->version () == "VERSION");
+ g_assert_true (channel->epoch () == "0");
+@@ -3907,7 +3907,7 @@ test_find_channels ()
+ g_assert_true (channel->name () == "beta");
+ g_assert_true (channel->track () == "latest");
+ g_assert_true (channel->risk () == "beta");
+- g_assert_true (channel->branch () == NULL);
++ g_assert_true (channel->branch ().isEmpty());
+ g_assert_true (channel->revision () == "BETA-REVISION");
+ g_assert_true (channel->version () == "BETA-VERSION");
+ g_assert_true (channel->epoch () == "1");
+@@ -3926,7 +3926,7 @@ test_find_channels ()
+ if (channel->name () == "insider/stable") {
+ g_assert_true (channel->track () == "insider");
+ g_assert_true (channel->risk () == "stable");
+- g_assert_true (channel->branch () == NULL);
++ g_assert_true (channel->branch ().isEmpty());
+ g_assert_true (channel->releasedAt ().isNull ());
+ matched_track = TRUE;
+ }
diff --git a/sys-libs/snapd-glib/snapd-glib-1.64-r100.ebuild b/sys-libs/snapd-glib/snapd-glib-1.64-r100.ebuild
new file mode 100644
index 000000000000..ca2dc1ebc3ed
--- /dev/null
+++ b/sys-libs/snapd-glib/snapd-glib-1.64-r100.ebuild
@@ -0,0 +1,65 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson vala
+
+DESCRIPTION="glib library for communicating with snapd"
+HOMEPAGE="https://snapcraft.io/"
+SRC_URI="https://github.com/snapcore/snapd-glib/releases/download/${PV}/${P}.tar.xz"
+
+LICENSE="LGPL-3"
+SLOT="0/1"
+KEYWORDS="~amd64"
+
+IUSE="doc introspection qml qt6 vala"
+REQUIRED_USE="
+ qml? ( qt6 )
+ vala? ( introspection )
+"
+
+BDEPEND="
+ virtual/pkgconfig
+ sys-devel/gettext
+ qt6? ( dev-qt/qttools:6[linguist] )
+"
+
+DEPEND="
+ dev-libs/json-glib
+ dev-libs/glib:2
+ dev-util/glib-utils
+ net-libs/libsoup:3.0
+ doc? ( dev-util/gtk-doc )
+ introspection? ( dev-libs/gobject-introspection )
+ qml? ( dev-qt/qtdeclarative:6 )
+ qt6? (
+ dev-qt/qtbase:6[network,widgets]
+ )
+ vala? ( $(vala_depend) )
+"
+
+RDEPEND="${DEPEND}
+ app-containers/snapd
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-qt6.patch"
+)
+
+pkg_setup() {
+ vala_setup
+}
+
+src_configure() {
+ local emesonargs=(
+ "$(meson_use doc docs)"
+ "$(meson_use introspection)"
+ "$(meson_use qml qml-bindings)"
+ "$(meson_use qt6 qt-bindings)"
+ "$(meson_use vala vala-bindings)"
+ -Dsoup2=false
+ )
+
+ meson_src_configure
+}