Re: [List] pkg debendency override

From: Frank Leonhardt <freebsd-doc_at_fjl.co.uk>
Date: Thu, 27 Nov 2025 12:39:38 UTC
On 23/11/2025 13:28, Markus Graf wrote:
>
> Hi,
>
> I do want to solve upgrading mu, but I also want to learn how pkg works.
>
> I am on emacs-30.2,3 and mu-1.8.13_4.
> I use the emacs window manager exwm as window manager, so I do not 
> want to uninstall emacs.
>
> # pkg upgrade
>
> The following 7 package(s) will be affected (of 0 checked):
>
> New packages to be INSTALLED:
>        emacs-nox: 30.2,3 [FreeBSD]
>
> Installed packages to be UPGRADED:
>        mu: 1.8.13_4 -> 1.12.13 [FreeBSD]
>
> Installed packages to be REMOVED:
>        emacs: 30.2,3
>        mu4e: 1.8.13_12
>        pdf-tools: 1.1.0_14
>        tablist: 1.0.13_11
>        yaml.el: 1.2.1
>
> Number of packages to be removed: 5
> Number of packages to be installed: 1
> Number of packages to be upgraded: 1
>
> $ pkg rquery %do mu
> databases/xapian-core
> devel/readline
> devel/libfmt
> mail/gmime30
> devel/glib20
> devel/gettext-runtime
> editors/emacs
>
> $ pkg rquery %ro emacs-nox
> ...
> mail/mu
> ...
>
> My main questions are:
>
> How do I tell pkg that emacs should be ok, no emacs-nox needed?  I 
> tried pkg set -o editors/emacs-nox:editors/emacs
>
> The last commit on mail/mu did not update the DISTVERSION or 
> PORTREVISION, so how do I tell which version made it into pkg?
>
> If the last commit made it into pkg, where does the runtime dependency 
> on emacs-nox come from?  As I read 
> https://cgit.freebsd.org/ports/tree/mail/mu/Makefile emacs@nox is only 
> a manpages build dependency.
>
> Best regards
>
> Markus

Hi Markus,

I am no expert on the FreeBSD pkg system, but as no actual expert has 
answered for three days I've had a dig.

What I think is happening is this...

Stuff in a binary package is compiled with the default options you'd get 
if you compiled the port (I believe this is always the case). You can't 
change that, unless YOU compile from the port. So compiling from the 
port is your best plan.

But why is this happening?

mu requires emac-nox because that was the default option when it was 
compiled (it builds the man pages using them). I think the full emacs 
would also work, but it wasn't specified when the package was built

pkg set -o editors/emacs-nox:editors/emacs does NOT work because it 
doesn't overrode declared dependencies INSIDE a package and you're also 
creating a conflict (the two packages would try to install conflicting 
files).

I've had a look-see at the Makefile in /usr/ports/mail/mu/

The current version has the line:

MANPAGES_BUILD_DEPENDS= emacs:editors/emacs@nox

This, I think, is where your problem lies. It's not there in older 
versions (I'm comparing 1.8.13 and 1.12.13 as I happen to have them 
online). Turning off the MANPAGES option should kill the need for the 
dependency, or try just removing the @nox, perhaps? This is why I'm not 
an expert.

Regards, Frank.






>
>