Gentoo Archives: gentoo-commits

From: Mike Gilbert <floppym@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/dbus-broker/, sys-apps/dbus-broker/files/
Date: Thu, 12 May 2022 02:37:15
Message-Id: 1652322878.5ebd24e8a995df10e7873a8a81e78b0ae594347f.floppym@gentoo
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 +