Package Details: dbus-broker 9-1

Git Clone URL: https://aur.archlinux.org/dbus-broker.git (read-only)
Package Base: dbus-broker
Description: Linux D-Bus Message Broker
Upstream URL: https://github.com/bus1/dbus-broker
Keywords: bus1 D-Bus dbus ipc
Licenses: Apache
Submitter: dvdhrm
Maintainer: dvdhrm (heftig)
Last Packager: dvdhrm
Votes: 15
Popularity: 2.326064
First Submitted: 2017-07-05 10:21
Last Updated: 2017-12-01 10:32

Latest Comments

dvdhrm commented on 2017-12-01 10:39

@heftig: I definitely see the advantages in 'git am/patch/merge' for packaging. So please don't hesitate to revert the changes. My arguing was based on false assumptions, so no reason to keep the tarball-builds. We will keep releasing tarballs, though, since other distros really need it.

heftig commented on 2017-11-07 19:53

Yes, theoretically this could be an issue since the clone we're configuring as the submodule URL only exports the master branch. Practically, however, the local clone copies all objects, and since the original clone (in SRCDEST or startdir) is a complete mirror, we shouldn't be missing anything. I don't think this will be a problem.

I general I prefer using git sources because it 1) is definitely a clean tree (e.g. no old or unreproducible autotools, gtk-doc or vala products, which also makes patching easier), 2) allows building from commits between releases, and 3) has git cherry-pick and git revert. I won't insist on it, though.

dvdhrm commented on 2017-11-07 19:39

@heftig, right, the late `submodule update` changes HEAD to the correct revision. However, if that commit is not an ancestor of `master`, then it will still fail, right? Your `sources` only fetch master, so there is no guarantee the commit in question is there. And even if it fetches the commit from the default-remote, it means you need internet access in prepare().

Mhh, do you actually prefer the git-clone method over the archive? We talked to quite a bunch of packagers now, and git-submodule support across distros is less than ideal. I admit, the way we did it in this PKGBUILD was the nicest. However, most distros require "source packages", as well as sources to be fetched without any scripts. Hence, I thought the proper archive is the easiest way to go.

heftig commented on 2017-11-07 19:26

Before you attempt to change the dbus-broker-git package, too; in commit a758107 you said:

Note that so far we actually did fetch -master, which is not the right
way to do it. The submodules might break ABI at any point in time, so
we should fetch the commits that were pinned in the master project. This
seems rather cumbersome, though, so we now just use the official
tarballs.

This is incorrect; the code used (submodule init, then reconfigure, then update) ensures that the right commits get checked out. The commits for the submodule clones that makepkg checks out when creating the srcdir do not matter. You still need to keep track of which submodules are where, just not their commits.

dvdhrm commented on 2017-11-07 15:57

@Terence, Ugh, sorry, I missed a hunk. Will push in a minute:

diff --git a/PKGBUILD b/PKGBUILD
index cb0c08e..cfb22a7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -24,7 +24,7 @@ build() {
cd build
CFLAGS="$CFLAGS -Wno-unused-parameter"
CFLAGS="$CFLAGS -Wno-maybe-uninitialized"
- arch-meson ../$pkgname
+ arch-meson ../$pkgname-$pkgver
ninja
}

Terence commented on 2017-11-07 15:51

Error during basic setup:

Neither directory contains a build file meson.build.

dvdhrm commented on 2017-10-17 08:47

@zfkerr Yeah, the dependency is optional. But we should really drop the auto-detection and make it explicit, like we did with all other deps so far. I put it on the TODO.

dvdhrm commented on 2017-10-17 08:45

@heftig: Just one of a dozen of examples:

../src/bus/name.c: In function ‘name_registry_request_name’:
../src/bus/name.c:345:24: warning: ‘ownership’ may be used uninitialized in this function [-Wmaybe-uninitialized]
NameOwnership *ownership;
^~~~~~~~~

This stems from gcc being unaware that 'errno' is never 0 on failure. So if we return '-errno' from a constructor with output-argument, the caller uses the constructed object if the return value is non-zero. gcc thinks it may be uninitialized, in the case that errno was 0.

systemd has an inline function called `negative_errno()` which circumvents that issue. I prefer disabling -Wmaybe-uninitialized.

heftig commented on 2017-10-15 13:47

The use of that dependency is optional; it's only needed for one more test to be built. You can ignore the error.

@dvdhrm Why did you add -Wno-maybe-uninitialized? I don't get any maybe-uninitialized warnings on LTO builds, and it looks like a useful warning.

zfkerr commented on 2017-10-15 10:48

@dvdhrm, please add the missing dependency dbus-typenum-git.
During compilation, I see a such an error message. Installation of dbus-typenum-git solves it.

Executing subproject c-dvar.
Project name: c-dvar
Native C compiler: cc (gcc 7.2.0)
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Dependency libdbus-typenum found: NO
Build targets in project: 7
Subproject c-dvar finished.

All comments