yay icon indicating copy to clipboard operation
yay copied to clipboard

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

Open beeaniebee opened this issue 2 years ago • 9 comments

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 $


beeaniebee avatar Jul 13 '22 13:07 beeaniebee

You were asked for confirmation by yay and hit yes.

Morganamilo avatar Jul 13 '22 13:07 Morganamilo

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 avatar Jul 13 '22 16:07 beeaniebee

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

beeaniebee avatar Jul 13 '22 16:07 beeaniebee

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

Morganamilo avatar Jul 13 '22 16:07 Morganamilo

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

beeaniebee avatar Jul 13 '22 17:07 beeaniebee

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

starquake avatar Oct 28 '22 06:10 starquake

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?

AlexFolland avatar Apr 06 '23 17:04 AlexFolland

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.

Jguer avatar Apr 08 '23 16:04 Jguer

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.

AlexFolland avatar Jun 04 '23 20:06 AlexFolland