[Bug 291447] ports-mgmt/synth: "www/apache24: has more dependencies than the port requires"

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 11 Dec 2025 12:23:52 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291447

--- Comment #13 from John Marino <freebsd@marino.st> ---
Mattias, cmh articulated the problem pretty well.  You should reread his
comment.

To your comment, the package built by Synth is correct (because even though it
didn't request GDBM be preinstalled by LID_DEPENDS values, it gets installed
via APR anyway).  However, it's not expecting GDBM to be a dependency because
it made package dependency list determination on a clean system.  This is
exactly what cmh is talking about.

This is not a synth problem.  This is a port problem.
The author used a method to solve a problem, and that method caused a different
problem.

Alternative solutions are:
1) Determine option settings of APR-1 and base logic off that (I do not like
this, it has significant performance hit on evaluating the makefile)
2) Add GDBM to LIB_DEPENDS unconditional without modifying APR1 (This will work
for probably 99%+ of users who accept APR1 defaults, but perhaps add
unnecessary dependency for those that modify APR1)
3) modify APR-1 remove GDBM as an option and make it a required.  Then apache24
can add it unconditionally as well.

The only thing I wonder about is what happens if someone picks a different
database backend for APR1?  Does that means the apache build will detect it
like it did GDBM and link against it directly too?  If so, the solution got
much much worse.

This is not about "builder wars" (oh, poudriere doesn't complain and portmaster
works took, so it's clearly a synth bug).  Some people here agree it's a
mistake that the determine dependency list changes based on what's installed on
the system.  For the ones that fail to see why that is a problem, get somebody
from the portmgr group to confirm that apache2 is doing the wrong thing.

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