[Bug 285253] devel/dbus: upgrade without bumping dependent ports breaks ... everything

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 08 Mar 2025 19:06:09 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285253

--- Comment #12 from Gleb Popov <arrowd@FreeBSD.org> ---
(In reply to Martin Birgmeier from comment #10)
> - I reran portmaster (on the build machine), it only rebuilt dbus.
> - I reran pkg repo to publish the new package.

Ooof, what an outrageos way to use portmaster as a Poudriere replacement. You
should've mentioned that from the beginning.

To be able to create a package built on one machine and install it on another,
both these machine has to have **identical environment**. This can be easily
achieved with Poudriere but almost impossible if you have two physical running
systems.

The dbus package you compiled has probably pulled in something from the build
machine environment, which was not present on the laptop. And this is a real
example of what I was talking about - Poudriere saves you from such mistakes.

> I guess I am now forced to use poudriere.

Yes, please. It will make your life easier (and consequently, life of other
committers too).

> in fact it's there already i'd simply have a policy decision to make regarding how cautious (DSO abi major+minor on just LIB_DEPENDS) and how deep (1 level).

Just after my explanations that all this stuff is complex and you shouldn't
reinvent the wheel, you just go ahead and create another one. Really, it brings
me to tears.

LIB_DEPENDS can't be source of truth, because the software may decide to link
to whatever is really available in the system. And this uncertainty gets
multiplied by building in an unclean environment. The correct solution is to
scan STAGEDIR and parse ELF metadata to get a list of used libraries. I
strongly advise you to reuse machinery we have in the framework (make stage-qa
and scripts in Mk/) rather adding rolling your own logic.

-- 
You are receiving this mail because:
You are the assignee for the bug.