Re: Adding functionality to a port

From: Rob LA LAU <freebsd_at_ohreally.nl>
Date: Mon, 15 Nov 2021 08:42:16 UTC
Hi,

On 14/11/2021 20:49, Guido Falsi wrote:
> You talk about "adding a periodic script". That is not even a real 
> modification to the upstream software IMHO. Just adding some glue code 
> for FreeBSD. If the script does what it advertises, and has no malicious 
> intent I see nothing wrong with it. If it is broken fixing it is the 
> logical thing to do.

Imagine a daemon, an rc script and a periodic script.
And imagine that we decided to separate all 3 into separate ports.
When fitting these ports into the ports tree, we would make the daemon 
depend on the rc script, because the daemon needs the rc script to start 
and stop (and starting and stopping could be considered core functionality).
But we would make the periodic script depend on the daemon, because the 
daemon runs fine without the periodic script, but the periodic script is 
useless without the daemon.
To me this would mean that the daemon and the rc script should be 
published together as a single port, making the rc script an acceptable 
FreeBSD-specific addition. (Which does not mean that the addition should 
not be reported to upstream; the goal should also be to have the rc 
script included in the upstream project, just like the systemd unit that 
is already included.)
The periodic script, however, should be considered new functionality, 
and published in a separate port.

And to contradict the above, one could now plead that external libraries 
that the daemon depends on should also be packaged together with the 
daemon, but the difference obviously is that no other package will ever 
depend on the daemon's rc script, while those libraries have been 
created to allow multiple applications to use them.

And there will always be exceptions. Things are not always black and 
white, and they shouldn't be.

And obviously, I'm the outsider here. I'm not trying to tell anyone what 
to do and how to do it. I'm just making sure that this subject has not 
been overlooked.

> Being a son of two lawyers, and having a lot of friends who are lawyers, 
> and also clients who are law firms, my informed (by having had a lot of 
> arguments with all these people about this very subject) opinion is that 
> there is no such thing in the world as a "clear and simple" set of rules.

Nobody is trying to write a legal document here.
The goal is just to assure that the ports in the ports collection still 
function as intended by the upstream developers, preferably with no 
functionality removed, and definitely with no functionality added.

Rob

-- 

  https://www.librobert.net/
  https://www.ohreally.nl/category/nerd-stuff/
  https://github.com/ohreally/