yay icon indicating copy to clipboard operation
yay copied to clipboard

[config] yay --answer configs dependant on --xxxxmenu been true. No install confirmation prompt

Open DrKittens opened this issue 2 years ago • 0 comments

Affected Version

yay v11.1.2 - libalpm v13.0.1

Describe the bug

Below config should reproduce from a vanilla yay & unaltered pacman install

part 1:
yay -G --save --editor vim
yay -G --save --noeditmenu
yay -G --save --answeredit All
yay -G --save --nodiffmenu
yay -G --save --answerdiff All
yay -S <package>

part 2: - perform after part 1
yay -G --save --editmenu
yay -G --save --diffmenu
yay -S <package>

What happens:

Part 1:

  • yay does not prompt or show diffs even though --answerdiff is set to All

  • yay does not prompt or open the editor to alter the pkgbuild even thought --answeredit is set to all

  • yay proceeds to immediately install the package after yay -S without prompting the user to confirm as if --noconfirm has been passed in the config or commandline when it has not. The user expectation is to view the pkgbuild diffs and edit it, an unconfirmed build and install is nearly as wrong as wrong can get

part 2:

  • now that --diffmenu is true yay respects --answerdiff all and now shows the diffs
  • yay then prompts me to confirm i want to proceed after viewing diffs
  • now that --editmenu is true yay respects --answeredit all and now opens the pkgbuild in the editor
  • after closing vim yay once again prompts to confirm i want to proceed even though it asked earlier.
  • yay installs the package successfully

Reproduction Steps

part 1:
yay -G --save --editor vim
yay -G --save --noeditmenu
yay -G --save --answeredit All
yay -G --save --nodiffmenu
yay -G --save --answerdiff All
yay -S protontricks-git

part 2: - perform after part 1
yay -G --save --editmenu
yay -G --save --diffmenu
yay -S protontricks-git

installation of any package should reproduce, it additionally doesnt have to be the same one from part 1 in part 2.

Expected behavior

yay's configurations for --answeredit / --answerclean / --answerdiff etc should work without needing the associated menu flag set to true.

I want to perform the action, i dont want to be asked to do it.

yay should not ask me more than once per package if i want to proceed with the install, it should ask me a single time after i've viewed the diff and the pkgbuild not after each occurrance.

Output

`` This config does not display diffs / editmenu or ask at all to confirm install, it just does it. reproduces part 1. yay -Pg { "aururl": "https://aur.archlinux.org", "buildDir": "/home/username/.cache/yay", "editor": "vim", "editorflags": "", "makepkgbin": "makepkg", "makepkgconf": "", "pacmanbin": "pacman", "pacmanconf": "/etc/pacman.conf", "redownload": "no", "rebuild": "no", "answerclean": "All", "answerdiff": "All", "answeredit": "All", "answerupgrade": "", "gitbin": "git", "gpgbin": "gpg", "gpgflags": "", "mflags": "", "sortby": "popularity", "searchby": "name-desc", "gitflags": "", "removemake": "ask", "sudobin": "sudo", "sudoflags": "", "requestsplitn": 150, "completionrefreshtime": 7, "bottomup": false, "sudoloop": true, "timeupdate": false, "devel": false, "cleanAfter": true, "provides": true, "pgpfetch": true, "upgrademenu": true, "cleanmenu": false, "diffmenu": false, "editmenu": false, "combinedupgrade": true, "useask": false, "batchinstall": true, "singlelineresults": true, "version": "11.1.2" }

Output showing no user confirmation, not showing the diff and not opening the pkgbuild in the editor for editing and instead just performing confirmation-less build and install aka bug from part 1: https://pastebin.com/zpYgNwgR

This yay config reproduces part 2 (asks user proceed after diff then after edit for a single package) demonstrating reliance / buggy behaviour

yay -Pg { "aururl": "https://aur.archlinux.org", "buildDir": "/home/username/.cache/yay", "editor": "vim", "editorflags": "", "makepkgbin": "makepkg", "makepkgconf": "", "pacmanbin": "pacman", "pacmanconf": "/etc/pacman.conf", "redownload": "no", "rebuild": "no", "answerclean": "All", "answerdiff": "All", "answeredit": "All", "answerupgrade": "", "gitbin": "git", "gpgbin": "gpg", "gpgflags": "", "mflags": "", "sortby": "popularity", "searchby": "name-desc", "gitflags": "", "removemake": "ask", "sudobin": "sudo", "sudoflags": "", "requestsplitn": 150, "completionrefreshtime": 7, "bottomup": false, "sudoloop": true, "timeupdate": false, "devel": false, "cleanAfter": true, "provides": true, "pgpfetch": true, "upgrademenu": true, "cleanmenu": false, "diffmenu": true, "editmenu": true, "combinedupgrade": true, "useask": false, "batchinstall": true, "singlelineresults": true, "version": "11.1.2" }

Output showing a double confirm with config above ex part 2. $ yay -S protontricks-git :: Checking for conflicts... :: Checking for inner conflicts... [Aur:1] protontricks-git-1.6.0-1

:: PKGBUILD up to date, Skipping (1/0): protontricks-git 1 protontricks-git (Installed) (Build Files Exist) ==> Diffs to show? ==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4) ==> All -> protontricks-git: No changes -- skipping

==> Proceed with install? [Y/n] y :: (1/1) Parsing SRCINFO: protontricks-git 1 protontricks-git (Installed) (Build Files Exist) ==> PKGBUILDs to edit? ==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4) ==> All

==> Proceed with install? [Y/n] n

if answer y it proceeds as normal

``

DrKittens avatar Mar 10 '22 09:03 DrKittens