1 |
commit: 5ebd24e8a995df10e7873a8a81e78b0ae594347f |
2 |
Author: Jack Todaro <solpeth <AT> posteo <DOT> org> |
3 |
AuthorDate: Thu May 12 00:04:21 2022 +0000 |
4 |
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu May 12 02:34:38 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5ebd24e8 |
7 |
|
8 |
sys-apps/dbus-broker: bump up to 30 |
9 |
|
10 |
Also include upstream patch for runtime crash, |
11 |
https://github.com/bus1/dbus-broker/commit/608b259e25ef1348b9e4a8e022c35b5c68d3df98 |
12 |
|
13 |
Package-Manager: Portage-3.0.30, Repoman-3.0.3 |
14 |
Closes: https://github.com/gentoo/gentoo/pull/25450 |
15 |
Signed-off-by: Jack Todaro <solpeth <AT> posteo.org> |
16 |
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org> |
17 |
|
18 |
sys-apps/dbus-broker/Manifest | 1 + |
19 |
sys-apps/dbus-broker/dbus-broker-30.ebuild | 45 +++++++++++++++ |
20 |
.../files/dbus-broker-30-user-free-assertion.patch | 64 ++++++++++++++++++++++ |
21 |
3 files changed, 110 insertions(+) |
22 |
|
23 |
diff --git a/sys-apps/dbus-broker/Manifest b/sys-apps/dbus-broker/Manifest |
24 |
index 70747487a192..385f62db8178 100644 |
25 |
--- a/sys-apps/dbus-broker/Manifest |
26 |
+++ b/sys-apps/dbus-broker/Manifest |
27 |
@@ -6,3 +6,4 @@ DIST c-shquote-83ccc2893385fcca1424b188f0f6c45a62f2b38d.tar.gz 10622 BLAKE2B 1c7 |
28 |
DIST c-stdaux-8652c488b8f1c29629a5179d4551d0a691ae5901.tar.gz 13075 BLAKE2B ef08451574ea695151cbfdad2060324423c8abcf46ac8a86b3216b85017c9b4dd8399d0561cb4f2c731e9eb2883481db59292769560cbcbfc3e96823ceb70e9a SHA512 bb669b659955ea62734f401c9745059349b23e6ddbca56e72437929b9527647ff7ac6bba4bb06506e4d8d35f3a1e7c4eacd2d5b1e7cb21098faa144c932f2bb0 |
29 |
DIST c-utf8-0837214a9780b7d771a3b3ce9a49196ac0a9d52f.tar.gz 9340 BLAKE2B 4bfa39c39aa8db8b7d797d78081b5f3104c659e2ceefef65aa2d3c03ffb5889d772cb78328473e3557c943b2487b7bcb7b68d7dc7f2b95940b0448b3479f1b23 SHA512 2df368af5023fac6c7f2e018c0cbfd73225bf1c4e0d0387931352909323175652bcd3739e9e6b76a099aea5d3f0290198aa70c69ecc5e9ef22df214f8c75da79 |
30 |
DIST dbus-broker-29.tar.gz 216639 BLAKE2B 94c8b7ea01367eae176d9411af064a960a054d6fbeb2bdebe9ba983d0938443abeb521f32e0eb9ae28155d5c5ebcf461317223387ccfad624ddd24e6bc8e227b SHA512 4c31b8c15f5d1ada0eb9c63c905c9fc9b3b8336beb533974b9c2b2a6a89c306b77d029d1ddbccbad873f62cc0d02cc373a090907dd19eae1a8a7fc2e3a4c2113 |
31 |
+DIST dbus-broker-30.tar.xz 238688 BLAKE2B 716bdeac726e0168e09a5893f1906888c0dc63e4c5f377f2d5ba100f1a07da17bb0379053ac079e7c55e7af09c3d382368dd317df52e04eb0fe96af03aba7441 SHA512 8b7f614e18d15baa558de2c77fc65526011e75f9592d06ddb3cafa211ec9a1c45aa42a0e32122cb16bdfce8bc34407241080f37891fe5ccb6c4577f1cd4bc66c |
32 |
|
33 |
diff --git a/sys-apps/dbus-broker/dbus-broker-30.ebuild b/sys-apps/dbus-broker/dbus-broker-30.ebuild |
34 |
new file mode 100644 |
35 |
index 000000000000..6f7873290392 |
36 |
--- /dev/null |
37 |
+++ b/sys-apps/dbus-broker/dbus-broker-30.ebuild |
38 |
@@ -0,0 +1,45 @@ |
39 |
+# Copyright 2017-2022 Gentoo Authors |
40 |
+# Distributed under the terms of the GNU General Public License v2 |
41 |
+ |
42 |
+EAPI=8 |
43 |
+ |
44 |
+inherit meson |
45 |
+ |
46 |
+SRC_URI="https://github.com/bus1/${PN}/releases/download/v${PV}/${P}.tar.xz" |
47 |
+DESCRIPTION="Linux D-Bus Message Broker" |
48 |
+HOMEPAGE="https://github.com/bus1/dbus-broker/wiki" |
49 |
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" |
50 |
+ |
51 |
+LICENSE="Apache-2.0" |
52 |
+SLOT="0" |
53 |
+IUSE="audit doc +launcher selinux" |
54 |
+ |
55 |
+DEPEND=" |
56 |
+ audit? ( |
57 |
+ >=sys-process/audit-3.0 |
58 |
+ >=sys-libs/libcap-ng-0.6 |
59 |
+ ) |
60 |
+ launcher? ( |
61 |
+ >=dev-libs/expat-2.2 |
62 |
+ >=sys-apps/systemd-230:0= |
63 |
+ ) |
64 |
+ selinux? ( >=sys-libs/libselinux-3.2 ) |
65 |
+" |
66 |
+RDEPEND="${DEPEND} |
67 |
+ launcher? ( sys-apps/dbus )" |
68 |
+BDEPEND=" |
69 |
+ doc? ( dev-python/docutils ) |
70 |
+ virtual/pkgconfig |
71 |
+" |
72 |
+ |
73 |
+PATCHES=( "${FILESDIR}"/${P}-user-free-assertion.patch ) |
74 |
+ |
75 |
+src_configure() { |
76 |
+ local emesonargs=( |
77 |
+ -Daudit=$(usex audit true false) |
78 |
+ -Ddocs=$(usex doc true false) |
79 |
+ -Dlauncher=$(usex launcher true false) |
80 |
+ -Dselinux=$(usex selinux true false) |
81 |
+ ) |
82 |
+ meson_src_configure |
83 |
+} |
84 |
|
85 |
diff --git a/sys-apps/dbus-broker/files/dbus-broker-30-user-free-assertion.patch b/sys-apps/dbus-broker/files/dbus-broker-30-user-free-assertion.patch |
86 |
new file mode 100644 |
87 |
index 000000000000..278de1821b87 |
88 |
--- /dev/null |
89 |
+++ b/sys-apps/dbus-broker/files/dbus-broker-30-user-free-assertion.patch |
90 |
@@ -0,0 +1,64 @@ |
91 |
+From 608b259e25ef1348b9e4a8e022c35b5c68d3df98 Mon Sep 17 00:00:00 2001 |
92 |
+From: David Rheinsberg <david.rheinsberg@×××××.com> |
93 |
+Date: Wed, 11 May 2022 08:41:48 +0200 |
94 |
+Subject: [PATCH] util/user: keep reference to user in each usage table |
95 |
+ |
96 |
+Keep a reference to an owning user in each usage table. We want to allow |
97 |
+callers to hold charges without holding on to any user references. |
98 |
+ |
99 |
+Also fix the peer-deinitialization to be ordered correctly and free the |
100 |
+user references last (in particular, after the charges). This is not |
101 |
+strictly necessary, but now follows our coding style and would have |
102 |
+avoided possible failures. |
103 |
+ |
104 |
+This fixes an assertion failure when disconnecting entire groups of |
105 |
+peers of the same user, due to the recent fix that actually made |
106 |
+peer-accounting do something. |
107 |
+ |
108 |
+Reported-by: Torge Matthies |
109 |
+Reported-by: Mel34 |
110 |
+Signed-off-by: David Rheinsberg <david.rheinsberg@×××××.com> |
111 |
+--- |
112 |
+ src/bus/peer.c | 2 +- |
113 |
+ src/util/user.c | 3 ++- |
114 |
+ 2 files changed, 3 insertions(+), 2 deletions(-) |
115 |
+ |
116 |
+diff --git a/src/bus/peer.c b/src/bus/peer.c |
117 |
+index 18bd1947..69ed0fde 100644 |
118 |
+--- a/src/bus/peer.c |
119 |
++++ b/src/bus/peer.c |
120 |
+@@ -358,12 +358,12 @@ Peer *peer_free(Peer *peer) { |
121 |
+ name_owner_deinit(&peer->owned_names); |
122 |
+ policy_snapshot_free(peer->policy); |
123 |
+ connection_deinit(&peer->connection); |
124 |
+- user_unref(peer->user); |
125 |
+ user_charge_deinit(&peer->charges[2]); |
126 |
+ user_charge_deinit(&peer->charges[1]); |
127 |
+ user_charge_deinit(&peer->charges[0]); |
128 |
+ free(peer->seclabel); |
129 |
+ free(peer->gids); |
130 |
++ user_unref(peer->user); |
131 |
+ free(peer); |
132 |
+ |
133 |
+ close(fd); |
134 |
+diff --git a/src/util/user.c b/src/util/user.c |
135 |
+index 7856b768..d0edb5e8 100644 |
136 |
+--- a/src/util/user.c |
137 |
++++ b/src/util/user.c |
138 |
+@@ -48,7 +48,7 @@ static int user_usage_new(UserUsage **usagep, User *user, uid_t uid) { |
139 |
+ return error_origin(-ENOMEM); |
140 |
+ |
141 |
+ usage->n_refs = REF_INIT; |
142 |
+- usage->user = user; |
143 |
++ usage->user = user_ref(user); |
144 |
+ usage->uid = uid; |
145 |
+ usage->user_node = (CRBNode)C_RBNODE_INIT(usage->user_node); |
146 |
+ |
147 |
+@@ -64,6 +64,7 @@ static void user_usage_free(_Atomic unsigned long *n_refs, void *userdata) { |
148 |
+ c_assert(!usage->slots[i]); |
149 |
+ |
150 |
+ user_usage_unlink(usage); |
151 |
++ user_unref(usage->user); |
152 |
+ free(usage); |
153 |
+ } |
154 |
+ |