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
I'll take it, and then assign all the relevant portmaster PRs to you
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
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.
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.
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....
As far as I know, Torsten is on vacation. Talking about timing...
Small point, mat reverted not me.
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
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.
(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
"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.
(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.
(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.
Torsten do you plan on responding to comment #13 or should I close this PR?
Created attachment 167712 [details] patch to make completions default
(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. :)
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
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!