Jguer / yay

Yet another Yogurt - An AUR Helper written in Go
GNU General Public License v3.0
10.93k stars 357 forks source link

Yay skips past pacman's final "Proceed with instalation?" prompt #1773

Open beeaniebee opened 2 years ago

beeaniebee commented 2 years ago

Affected Version

yay v11.2.0 - libalpm v13.0.1

Describe the bug

Yay skips the final pacman "Proceed with installation?" prompt even when "--confirm" flag is set.

*This happens whether the package is previously installed or not, and if the package has dependencies or not (pacman will ask for confirmation to install the dependencies, but not the final package)

Reproduction Steps

  1. install any package

Expected behavior

I would expect the "--confirm" option to make sure that the final installation of the package was confirmed by the user. Yay skips past the user prompt to cancel the installation during the final install.

*I don't want yay to ask me about Clean Build, Edit, or Diff

Output

arch@arch $ yay -S pinecil-firmware-updater-git :: Checking for conflicts... :: Checking for inner conflicts... [Repo:1] dfu-util-0.11-2 [Aur:1] pinecil-firmware-updater-git-r21.1b111e0-1

:: PKGBUILD up to date, Skipping (1/0): pinecil-firmware-updater-git :: (1/1) Parsing SRCINFO: pinecil-firmware-updater-git doas (arch@arch) password: resolving dependencies... looking for conflicting packages...

Packages (1) dfu-util-0.11-2

Total Installed Size: 0.11 MiB

:: Proceed with installation? [Y/n] y (1/1) checking keys in keyring [##############################################] 100% (1/1) checking package integrity [##############################################] 100% (1/1) loading package files [##############################################] 100% (1/1) checking for file conflicts [##############################################] 100% (1/1) checking available disk space [##############################################] 100% :: Processing package changes... (1/1) installing dfu-util [##############################################] 100% Optional dependencies for dfu-util python: dfuse-pack tool support [installed] python-intelhex: Intel HEX file format support :: Running post-transaction hooks... (1/2) Reloading device manager configuration... (2/2) Arming ConditionNeedsUpdate... ==> Making package: pinecil-firmware-updater-git r21.1b111e0-1 (Tue 12 Jul 2022 11:34:24 AM EDT) ==> Retrieving sources... -> Updating pine64_updater git repo... ==> Validating source files with md5sums... pine64_updater ... Skipped -> dfu-util not satisfied, flushing install queue ==> Making package: pinecil-firmware-updater-git r21.1b111e0-1 (Tue 12 Jul 2022 11:34:25 AM EDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources... -> Updating pine64_updater git repo... ==> Validating source files with md5sums... pine64_updater ... Skipped ==> Removing existing $srcdir/ directory... ==> Extracting sources... -> Creating working copy of pine64_updater git repo... Cloning into 'pine64_updater'... done. Switched to a new branch 'makepkg' ==> Starting pkgver()... ==> Sources are ready. ==> Making package: pinecil-firmware-updater-git r21.1b111e0-1 (Tue 12 Jul 2022 11:34:29 AM EDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> WARNING: Using existing $srcdir/ tree ==> Starting pkgver()... ==> Sources are ready. -> pinecil-firmware-updater-git-r21.1b111e0-1 already made -- skipping build -> Found git repo: github.com/pine64/pine64_updater.git loading packages... resolving dependencies... looking for conflicting packages...

Packages (1) pinecil-firmware-updater-git-r21.1b111e0-1

Total Installed Size: 0.11 MiB

:: Proceed with installation? [Y/n] (1/1) checking keys in keyring [##############################################] 100% (1/1) checking package integrity [##############################################] 100% (1/1) loading package files [##############################################] 100% (1/1) checking for file conflicts [##############################################] 100% (1/1) checking available disk space [##############################################] 100% :: Processing package changes... (1/1) installing pinecil-firmware-updater-git [##############################################] 100% :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate...

arch@arch $

arch@arch $ yay -S --confirm pinecil-firmware-updater-git :: Checking for conflicts... :: Checking for inner conflicts... [Aur:1] pinecil-firmware-updater-git-r21.1b111e0-1

:: PKGBUILD up to date, Skipping (1/0): pinecil-firmware-updater-git :: (1/1) Parsing SRCINFO: pinecil-firmware-updater-git ==> Making package: pinecil-firmware-updater-git r21.1b111e0-1 (Tue 12 Jul 2022 11:29:55 AM EDT) ==> Retrieving sources... -> Updating pine64_updater git repo... ==> Validating source files with md5sums... pine64_updater ... Skipped ==> Making package: pinecil-firmware-updater-git r21.1b111e0-1 (Tue 12 Jul 2022 11:29:56 AM EDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources... -> Updating pine64_updater git repo... ==> Validating source files with md5sums... pine64_updater ... Skipped ==> Removing existing $srcdir/ directory... ==> Extracting sources... -> Creating working copy of pine64_updater git repo... Cloning into 'pine64_updater'... done. Switched to a new branch 'makepkg' ==> Starting pkgver()... ==> Sources are ready. ==> Making package: pinecil-firmware-updater-git r21.1b111e0-1 (Tue 12 Jul 2022 11:30:00 AM EDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> WARNING: Using existing $srcdir/ tree ==> Starting pkgver()... ==> Sources are ready. -> pinecil-firmware-updater-git-r21.1b111e0-1 already made -- skipping build -> Found git repo: github.com/pine64/pine64_updater.git doas (arch@arch) password: loading packages... warning: pinecil-firmware-updater-git-r21.1b111e0-1 is up to date -- reinstalling resolving dependencies... looking for conflicting packages...

Packages (1) pinecil-firmware-updater-git-r21.1b111e0-1

Total Installed Size: 0.11 MiB Net Upgrade Size: 0.00 MiB

:: Proceed with installation? [Y/n] (1/1) checking keys in keyring [##############################################] 100% (1/1) checking package integrity [##############################################] 100% (1/1) loading package files [##############################################] 100% (1/1) checking for file conflicts [##############################################] 100% (1/1) checking available disk space [##############################################] 100% :: Processing package changes... (1/1) reinstalling pinecil-firmware-updater-git [##############################################] 100% :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... arch@arch $

arch@arch $ yay -S --nocombinedupgrade --confirm pinecil-firmware-updater-git :: Checking for conflicts... :: Checking for inner conflicts... [Aur:1] pinecil-firmware-updater-git-r21.1b111e0-1

:: PKGBUILD up to date, Skipping (1/0): pinecil-firmware-updater-git :: (1/1) Parsing SRCINFO: pinecil-firmware-updater-git ==> Making package: pinecil-firmware-updater-git r21.1b111e0-1 (Tue 12 Jul 2022 11:28:43 AM EDT) ==> Retrieving sources... -> Updating pine64_updater git repo... ==> Validating source files with md5sums... pine64_updater ... Skipped ==> Making package: pinecil-firmware-updater-git r21.1b111e0-1 (Tue 12 Jul 2022 11:28:44 AM EDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources... -> Updating pine64_updater git repo... ==> Validating source files with md5sums... pine64_updater ... Skipped ==> Removing existing $srcdir/ directory... ==> Extracting sources... -> Creating working copy of pine64_updater git repo... Cloning into 'pine64_updater'... done. Switched to a new branch 'makepkg' ==> Starting pkgver()... ==> Sources are ready. ==> Making package: pinecil-firmware-updater-git r21.1b111e0-1 (Tue 12 Jul 2022 11:28:47 AM EDT) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> WARNING: Using existing $srcdir/ tree ==> Starting pkgver()... ==> Sources are ready. -> pinecil-firmware-updater-git-r21.1b111e0-1 already made -- skipping build -> Found git repo: github.com/pine64/pine64_updater.git doas (arch@arch) password: loading packages... warning: pinecil-firmware-updater-git-r21.1b111e0-1 is up to date -- reinstalling resolving dependencies... looking for conflicting packages...

Packages (1) pinecil-firmware-updater-git-r21.1b111e0-1

Total Installed Size: 0.11 MiB Net Upgrade Size: 0.00 MiB

:: Proceed with installation? [Y/n] (1/1) checking keys in keyring [##############################################] 100% (1/1) checking package integrity [##############################################] 100% (1/1) loading package files [##############################################] 100% (1/1) checking for file conflicts [##############################################] 100% (1/1) checking available disk space [##############################################] 100% :: Processing package changes... (1/1) reinstalling pinecil-firmware-updater-git [##############################################] 100% :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... arch@arch $

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

Morganamilo commented 2 years ago

You were asked for confirmation by yay and hit yes.

beeaniebee commented 2 years ago

You were asked for confirmation by yay and hit yes.

I was asked for confirmation on pacman's installation of the dependency, but it completely skips past the prompt when installing the actual package. You can see I type "y" and hit enter the first time, however there is no stdin input available to hit "Y/N" when it installs the final package

beeaniebee commented 2 years ago

You were asked for confirmation by yay and hit yes.

I was asked for confirmation on pacman's installation of the dependency, but it completely skips past the prompt when installing the actual package. You can see I type "y" and hit enter the first time, however there is no stdin input available to hit "Y/N" when it installs the final package

To clarify, the text prompt appears, but doesn't wait for user input before continuing to install the package

Morganamilo commented 2 years ago

Yay uses pacman internally to do stuff. Pacman is basically an implementation detail in this situation. The --confirm applies to yay.

beeaniebee commented 2 years ago

Then there is no way to make pacman confirm before installing the package?

starquake commented 1 year ago

I think I have a similar problem. It asks me about a package conflict but I'm unable to answer yes. Somehow it skips the prompt.

EDIT: Somehow this also happens with paru. So maybe it's something with my system, or pacman. I'll look into it further. EDIT2: It's not happening anymore after a reboot. Maybe I had a stuck or something... Pretty weird... Still leaving this here just in case.

yay icaclient

3 aur/icaclient-2109 21.9.0.25-1 (+3 0.21) 
    Citrix Workspace App version 2109 (ICAClient, Citrix Receiver)
2 aur/icaclient-old 13.4-1 (+8 0.00) 
    Citrix Receiver for x86_64 (64bit) Linux (ICAClient) Version 13.4
1 aur/icaclient 22.9.0.21-1 (+164 1.48) (Installed)
    Citrix Workspace App (a.k.a. ICAClient, Citrix Receiver)
==> Packages to install (eg: 1 2 3, 1-3 or ^4)
==> 3
:: Checking for conflicts...
:: Checking for inner conflicts...
[Aur:1]  icaclient-2109-21.9.0.25-1

  1 icaclient-2109                   (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> 
:: PKGBUILD up to date, Skipping (1/0): icaclient-2109
  1 icaclient-2109                   (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> 
:: (1/1) Parsing SRCINFO: icaclient-2109
==> Making package: icaclient-2109 21.9.0.25-1 (Fri 28 Oct 2022 08:23:32 CEST)
==> Retrieving sources...
  -> Found configmgr.desktop
  -> Found conncenter.desktop
  -> Found selfservice.desktop
  -> Found wfica.desktop
  -> Found wfica.sh
  -> Found wfica_assoc.sh
  -> Found icaclient-2109-x64-21.9.0.25.tar.gz
==> Validating source files with sha256sums...
    configmgr.desktop ... Passed
    conncenter.desktop ... Passed
    selfservice.desktop ... Passed
    wfica.desktop ... Passed
    wfica.sh ... Passed
    wfica_assoc.sh ... Passed
==> Validating source_x86_64 files with sha256sums...
    icaclient-2109-x64-21.9.0.25.tar.gz ... Passed
==> Making package: icaclient-2109 21.9.0.25-1 (Fri 28 Oct 2022 08:23:34 CEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found configmgr.desktop
  -> Found conncenter.desktop
  -> Found selfservice.desktop
  -> Found wfica.desktop
  -> Found wfica.sh
  -> Found wfica_assoc.sh
  -> Found icaclient-2109-x64-21.9.0.25.tar.gz
==> Validating source files with sha256sums...
    configmgr.desktop ... Passed
    conncenter.desktop ... Passed
    selfservice.desktop ... Passed
    wfica.desktop ... Passed
    wfica.sh ... Passed
    wfica_assoc.sh ... Passed
==> Validating source_x86_64 files with sha256sums...
    icaclient-2109-x64-21.9.0.25.tar.gz ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Extracting icaclient-2109-x64-21.9.0.25.tar.gz with bsdtar
==> Sources are ready.
==> Making package: icaclient-2109 21.9.0.25-1 (Fri 28 Oct 2022 08:23:40 CEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Sources are ready.
 -> icaclient-2109-21.9.0.25-1 already made -- skipping build
loading packages...
resolving dependencies...
looking for conflicting packages...
:: icaclient-2109 and icaclient are in conflict. Remove icaclient? [y/N] 
error: unresolvable package conflicts detected
error: failed to prepare transaction (conflicting dependencies)
:: icaclient-2109 and icaclient are in conflict
 -> exit status 1
AlexFolland commented 1 year ago

I have the opposite problem. Before a recent update this week or last week, installations using yay would finish without any further interaction after I'd confirmed which packages I'd like to install before building them. This is my preferred behavior. Now, after that recent update this week or last week, I am asked "Proceed with installation?" at the end of the build.

I'm posting this here because this seems to mean that the issue described in this ticket is resolved.

That being said, I prefer the previous behavior, where I was not asked an extra time whether I'd like to install the software I'd already confirmed in the list at the beginning of the process. If this behavior is optional, how do I change my local preference?

Jguer commented 1 year ago

I don't think there's a right and wrong answer here. This branch restores yay overriding the command to add --noconfirm when the user has already gone through a yay confirmation menu (-Y or -Su) if you want to test it

The branch doesn't have a CLI flag but overriding can be disabled from the config file with the doubleconfirm key.

AlexFolland commented 1 year ago

Using --noconfirm worked for my command that builds some specific packages, which is very helpful. Thank you!

However, --noconfirm skips all questions in my typical usage of yay for updates. I would like a specific --answerproceed y option or something like that which can be saved, so that I can confirm which packages I want at the beginning of the command, then not have to come back to confirm again later. This would restore the previous behavior, which was more comfortable. I personally do not see the benefit of confirming installation of the same package twice.