Bug 207075 - ports-mgmt/portmaster: take maintainer-ship, adjust RUN_DEPENDS
Summary: ports-mgmt/portmaster: take maintainer-ship, adjust RUN_DEPENDS
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Adam Weinberger
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-02-10 11:59 UTC by Torsten Zühlsdorff
Modified: 2016-03-04 16:53 UTC (History)
5 users (show)

See Also:


Attachments
patch to take maintainership (823 bytes, patch)
2016-02-10 11:59 UTC, Torsten Zühlsdorff
no flags Details | Diff
patch to make completions default (562 bytes, patch)
2016-03-04 12:43 UTC, Torsten Zühlsdorff
ports: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Torsten Zühlsdorff 2016-02-10 11:59:21 UTC
Created attachment 166827 [details]
patch to take maintainership

Hello,

i would like to take the maintainer-ship like discussed at ports@.

Attached a patch to take it.

I've also removed the unneeded PORTREVISION-flag and fixed a little tab/whitespace mix in the MASTER_SITES.

Also i added bash and zsh RUN_DEPENDS if either option is chosen. It does not make any sense to install the completions without having the shell available. 

poudriere build fine for:
9.3 amd + i386
10.1 amd + i386
10.2 amd + i386
11-current r293820 amd + i386

portlint is also fine.

A short runtime test with "portmaster -av" was also successfully.

Greetings,
Torsten
Comment 1 John Marino freebsd_committer freebsd_triage 2016-02-10 18:35:25 UTC
I'll take it, and then assign all the relevant portmaster PRs to you
Comment 2 commit-hook freebsd_committer freebsd_triage 2016-02-10 18:41:45 UTC
A commit references this bug:

Author: marino
Date: Wed Feb 10 18:41:02 UTC 2016
New revision: 408642
URL: https://svnweb.freebsd.org/changeset/ports/408642

Log:
  ports-mgmt/portmaster: Assign maintainership to Torsten Z.

  Torsten has accepted the challenge of whipping portmaster back into
  shape.  In addition to changing MAINTAINER, he's starting with fixing
  both non-default options by providing their necessary RUN_DEPENDS.

  PR:	207075

Changes:
  head/ports-mgmt/portmaster/Makefile
Comment 3 Adam Weinberger freebsd_committer freebsd_triage 2016-02-11 00:54:12 UTC
I'd suggest handling the bash and zsh completions differently.

portmaster requires neither of those shells to function. The completions aren't used unless the associated shell is installed. But when somebody installs either of those shells, the completions automatically work.

You should consider doing what ports-mgmt/pkg does: remove the BASH and ZSH options/dependencies and always install the completions. That way anybody who uses the shell will get the completions automatically, without needing to reinstall portmaster with different options.
Comment 4 Bryan Drewery freebsd_committer freebsd_triage 2016-02-11 18:17:55 UTC
This is not right. Portmaster does not have a run dependency on bash nor ZSH. It should not be installing them or trying to upgrade them when portmaster is installed. Adam's suggestion is best, or defaulting the options to on for the package and not adding a dependency.
Comment 5 John Marino freebsd_committer freebsd_triage 2016-02-17 15:22:57 UTC
Torsten,
The next time you get immediate feedback that something isn't right, please provide a patch to fix it.

Bryan ended up reverting it himself because you didn't respond.  I probably should have played closer attention to the original patch but as you can imagine I was pretty sick of the discussion by that point.

http://www.freshports.org/commit.php?category=ports-mgmt&port=portmaster&files=yes&message_id=201602121546.u1CFk4fB037748@repo.freebsd.org


closing again, nothing to do....
Comment 6 Kurt Jaeger freebsd_committer freebsd_triage 2016-02-17 15:33:42 UTC
As far as I know, Torsten is on vacation. Talking about timing...
Comment 7 Bryan Drewery freebsd_committer freebsd_triage 2016-02-17 18:45:44 UTC
Small point, mat reverted not me.
Comment 8 Torsten Zühlsdorff 2016-02-22 16:10:35 UTC
Sorry,

as Kurt already mentioned i was on vacation. I tried to reply before its start, but i didn't get a chance.

At least i would had this further discussed and not just reverted. I got the point and - yes, my change was not correct. But the current behavior isn't this better. I would prefer a solution like shell/bash-completion. With this you do not install trash (like now) and did not invent unneeded RUN_DEPENDS like with my solution.

Greetings,
Torsten
Comment 9 John Marino freebsd_committer freebsd_triage 2016-02-22 16:21:33 UTC
I'm not following that.  Your patch *was* like bash-completion, and that's what people said was wrong.

I also don't get the reference to "trash".

All it's doing is pre-installing the completion scripts so that if the shells (and completion functionality) are installed later, the installed programs work immediately.  There's nothing wrong with that.
Comment 10 Torsten Zühlsdorff 2016-02-22 16:33:03 UTC
(In reply to John Marino from comment #9)

> I'm not following that.  Your patch *was* like bash-completion, 
> and that's what people said was wrong.

No, it was not. There is a port shells/bash and a port/bash-completion. The second one installs completions for bash and has a RUN_DEPENDS to bash. The first one comes without completions.

> I also don't get the reference to "trash".

> All it's doing is pre-installing the completion scripts so that 
> if the shells (and completion functionality) are installed later, 
> the installed programs work immediately.  There's nothing wrong with that.

The big point is the *if*. If the shells are not installed later, the files are useless. Therefore the reference to trash in the meaning of "no use".

I could install the completions but never use them. After installation they are not usable. I need to install the software which uses them in another step, which is nowhere mentioned. This works, but is not a nice nor a good workflow.

I wrote the patch initially, because i could not image a use-case where i would like to install the completions without having the shells relying at the completions. And nobody explained the reasons for such a use-case. 

Adam and Bryan come with an explanation why my patch is wrong. Thanks for that! But nobody comes with an explanation why the current behavior is right. And i really doubt this. After a week of thoughts i come to the conclusion that the bash and bash-completion ports do it right and would offer to implement this for portmaster.

Greetings,
Torsten
Comment 11 John Marino freebsd_committer freebsd_triage 2016-02-22 16:43:47 UTC
"The second one installs completions for bash and has a RUN_DEPENDS to bash. The first one comes without completions."

Correct.  That's what I said.  That's what your patch added.  That's what caused multiple people to immediately say, "THAT'S WRONG".  I'm not sure why there is confusion on this point.


Now let's look at this point where you say you're way is right even though everyone else disagrees.

Your way:  portmaster installs bash and zsh unconditionally for anyone using binary packages, regardless if they want it or not.  If they don't want it, they have to build from source.

Current way:  If somebody decides later they want bash completions, they don't have to rebuild the port.

The completion scripts are *tiny*.  There's a trade-off, and the cost of hosting tiny files is far outweighed by the cost of both rebuilding and getting unwanted packages installed.  There's not even a discussion there IMO. 

Based on the immediate negative feedback you received, if you try to revert the reversion, I think it will not go well.  Run it by somebody else because I'm not involved anymore.
Comment 12 Torsten Zühlsdorff 2016-02-22 16:48:57 UTC
(In reply to John Marino from comment #11)

> "The second one installs completions for bash and has a RUN_DEPENDS to bash. > The first one comes without completions."

> Correct.  That's what I said.  That's what your patch added.  
> That's what caused multiple people to immediately say, "THAT'S WRONG".  
> I'm not sure why there is confusion on this point.

This is *not* what my patch added! bash and bash-completions are *two* ports. My patch was a *one* port solution. 

> Now let's look at this point where you say you're way is right even though 
> everyone else disagrees.

You misread me. I do not say i'm right in the point. I support the persons which disagrees with my patch, because they are right.

> Your way:  portmaster installs bash and zsh unconditionally for anyone 
> using binary packages, regardless if they want it or not.  
> If they don't want it, they have to build from source.

This is what the patch did, but is wrong. This is *not* what i suggest now ;)

> Based on the immediate negative feedback you received, 
> if you try to revert the reversion, I think it will not go well.  
> Run it by somebody else because I'm not involved anymore.

I do not want to revert the reversion. I offered another solution.
Comment 13 Adam Weinberger freebsd_committer freebsd_triage 2016-02-22 22:27:09 UTC
(In reply to Torsten Zühlsdorff from comment #12)

[I'm reopening this PR until Torsten is comfortable with the solution, and I'm assigning this PR to myself.]

Hi Torsten. Can you clarify what solution you're proposing? Are you proposing creating a separate port to manage the completions for portmaster?

bash-completion has a slightly different relationship to bash than the completions do to portmaster. bash-completion is a completely separate distribution, by different people, with different sources.

Bash completions coming in a separate port is out of necessity. Different sources, different license, not released together, etc. zsh bundles all the completions with the shell.

I don't think the current situation is "right," because it still requires one to manually reconfigure portmaster by hand, and can no longer install it from the default binary package provided by FreeBSD.

Once the ZSH and BASH options become default, I will posit that exactly nobody will install portmaster and then wonder why the zsh completions don't work without the zsh port installed.

I sympathize with not wanting to install unnecessary stuff. I loathe ports installing cruft with no discretion, or registering avoidable dependencies. My idea of the "right" solution would be to install the two completion files by default, make it possible to disable them, and if you're concerned about people being confused then add a sentence to pkg-message telling people how to install the zsh and/or bash-completion ports.
Comment 14 Adam Weinberger freebsd_committer freebsd_triage 2016-03-03 19:47:05 UTC
Torsten do you plan on responding to comment #13 or should I close this PR?
Comment 15 Torsten Zühlsdorff 2016-03-04 12:43:04 UTC
Created attachment 167712 [details]
patch to make completions default
Comment 16 Torsten Zühlsdorff 2016-03-04 12:47:32 UTC
(In reply to Adam Weinberger from comment #14)

> Torsten do you plan on responding to comment #13 or should I close this PR?

Sorry, this PR slipped through my currently tight time for PRs. :( 

Yes, i want to respond to your comment. My first propose was the creation of a second port for the completions, but your comment about the different history of bash and bash-completion is completely right.

In the end i would tend to support the idea, that the completions should be the default option. I don't believe that any of the ideas mentioned is the "right" one, but i think this is the best achievable solutions under the given circumstances.

So: attached a patch to change the default options. :)
Comment 17 commit-hook freebsd_committer freebsd_triage 2016-03-04 16:51:14 UTC
A commit references this bug:

Author: adamw
Date: Fri Mar  4 16:50:48 UTC 2016
New revision: 410136
URL: https://svnweb.freebsd.org/changeset/ports/410136

Log:
  Enable BASH and ZSH options (install their completions) by default.
  Also, add NO_ARCH. PORTREVISION bump for pkg change.

  PR:		207075
  Submitted by:	maintainer

Changes:
  head/ports-mgmt/portmaster/Makefile
Comment 18 Adam Weinberger freebsd_committer freebsd_triage 2016-03-04 16:53:08 UTC
Committed, along with NO_ARCH=yes (it's a shell script, so there's no need to generate multiple architecture-specific pkgs).

Thank you for being so willing to see multiple perspectives here, Torsten!