Jguer / yay

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

yay tries to upgrade normal packages and AUR packages at the same time despite --nocombinedupgrade #2078

Closed darkbasic closed 1 year ago

darkbasic commented 1 year ago

Affected Version

yay v12.0.3.r0.g5a3f277 - libalpm v13.0.2

Describe the bug

With --nocombinedupgrade I expect yay to not mix AUR with normal packages:

$ yay -Syu --nocombinedupgrade --noupgrademenu
:: Sincronizzazione dei database in corso...
 core è aggiornato
 extra è aggiornato
 community è aggiornato
 multilib è aggiornato
:: Ricerca degli aggiornamenti su AUR in corso...
:: Ricerca di aggiornamenti nei database in corso...
:: 25 Pacchetti da aggiornare.
25  core/coreutils                     9.2-2                      -> 9.2-3
24  core/libnghttp2                    1.52.0-1                   -> 1.52.0-2
23  core/man-pages                     6.03-1                     -> 6.04-1
22  core/systemd                       253.2-1                    -> 253.3-1
[...]
==> Pacchetti da escludere: (es: "1 2 3", "1-3", "^4" o il nome del repo)
 -> Excluding packages may cause partial upgrades and break systems

Reproduction Steps

  1. yay -Syu --nocombinedupgrade

Expected behavior

First pacman -Syu then AUR

Output

$ yay -Syu --nocombinedupgrade --debug
[DEBUG:runner] running /bin/sudo pacman --debug -S -y --config /etc/pacman.conf --
debug: pacman v6.0.2 - libalpm v13.0.2
debug: config: attempting to read file /etc/pacman.conf
debug: config: new section 'options'
debug: config: HoldPkg: pacman
debug: config: HoldPkg: glibc
debug: config: Architecture: auto
debug: config: arch: x86_64
debug: config: SigLevel: Required
debug: config: SigLevel: DatabaseOptional
debug: config: LocalFileSigLevel: Optional
debug: config: new section 'core'
debug: config file /etc/pacman.conf, line 76: including /etc/pacman.d/mirrorlist
debug: config: new section 'extra'
debug: config file /etc/pacman.conf, line 79: including /etc/pacman.d/mirrorlist
debug: config: new section 'community'
debug: config file /etc/pacman.conf, line 85: including /etc/pacman.d/mirrorlist
debug: config: new section 'multilib'
debug: config file /etc/pacman.conf, line 94: including /etc/pacman.d/mirrorlist
debug: config: finished parsing /etc/pacman.conf
debug: setup_libalpm called
debug: option 'logfile' = /var/log/pacman.log
debug: option 'gpgdir' = /etc/pacman.d/gnupg/
debug: option 'hookdir' = /etc/pacman.d/hooks/
debug: option 'cachedir' = /var/cache/pacman/pkg/
debug: registering sync database 'core'
debug: database path for tree core set to /var/lib/pacman/sync/core.db
debug: "/var/lib/pacman/sync/core.db.sig" is not readable: File o directory non esistente
debug: sig path /var/lib/pacman/sync/core.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 603) : manca la firma PGP
debug: missing optional signature
debug: setting usage of 15 for core repository
debug: adding new server URL to database 'core': https://mirror.osbeck.com/archlinux/core/os/x86_64
debug: adding new server URL to database 'core': https://mirror.f4st.host/archlinux/core/os/x86_64
debug: adding new server URL to database 'core': https://mirror.theo546.fr/archlinux/core/os/x86_64
debug: adding new server URL to database 'core': https://ftp.halifax.rwth-aachen.de/archlinux/core/os/x86_64
debug: adding new server URL to database 'core': https://mirror.telepoint.bg/archlinux/core/os/x86_64
debug: adding new server URL to database 'core': https://archlinux.thaller.ws/core/os/x86_64
debug: adding new server URL to database 'core': https://seoul.mirror.pkgbuild.com/core/os/x86_64
debug: adding new server URL to database 'core': https://sydney.mirror.pkgbuild.com/core/os/x86_64
debug: adding new server URL to database 'core': https://mirrors.neusoft.edu.cn/archlinux/core/os/x86_64
debug: adding new server URL to database 'core': https://mirror.theash.xyz/arch/core/os/x86_64
debug: registering sync database 'extra'
debug: database path for tree extra set to /var/lib/pacman/sync/extra.db
debug: "/var/lib/pacman/sync/extra.db.sig" is not readable: File o directory non esistente
debug: sig path /var/lib/pacman/sync/extra.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 603) : manca la firma PGP
debug: missing optional signature
debug: setting usage of 15 for extra repository
debug: adding new server URL to database 'extra': https://mirror.osbeck.com/archlinux/extra/os/x86_64
debug: adding new server URL to database 'extra': https://mirror.f4st.host/archlinux/extra/os/x86_64
debug: adding new server URL to database 'extra': https://mirror.theo546.fr/archlinux/extra/os/x86_64
debug: adding new server URL to database 'extra': https://ftp.halifax.rwth-aachen.de/archlinux/extra/os/x86_64
debug: adding new server URL to database 'extra': https://mirror.telepoint.bg/archlinux/extra/os/x86_64
debug: adding new server URL to database 'extra': https://archlinux.thaller.ws/extra/os/x86_64
debug: adding new server URL to database 'extra': https://seoul.mirror.pkgbuild.com/extra/os/x86_64
debug: adding new server URL to database 'extra': https://sydney.mirror.pkgbuild.com/extra/os/x86_64
debug: adding new server URL to database 'extra': https://mirrors.neusoft.edu.cn/archlinux/extra/os/x86_64
debug: adding new server URL to database 'extra': https://mirror.theash.xyz/arch/extra/os/x86_64
debug: registering sync database 'community'
debug: database path for tree community set to /var/lib/pacman/sync/community.db
debug: "/var/lib/pacman/sync/community.db.sig" is not readable: File o directory non esistente
debug: sig path /var/lib/pacman/sync/community.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 603) : manca la firma PGP
debug: missing optional signature
debug: setting usage of 15 for community repository
debug: adding new server URL to database 'community': https://mirror.osbeck.com/archlinux/community/os/x86_64
debug: adding new server URL to database 'community': https://mirror.f4st.host/archlinux/community/os/x86_64
debug: adding new server URL to database 'community': https://mirror.theo546.fr/archlinux/community/os/x86_64
debug: adding new server URL to database 'community': https://ftp.halifax.rwth-aachen.de/archlinux/community/os/x86_64
debug: adding new server URL to database 'community': https://mirror.telepoint.bg/archlinux/community/os/x86_64
debug: adding new server URL to database 'community': https://archlinux.thaller.ws/community/os/x86_64
debug: adding new server URL to database 'community': https://seoul.mirror.pkgbuild.com/community/os/x86_64
debug: adding new server URL to database 'community': https://sydney.mirror.pkgbuild.com/community/os/x86_64
debug: adding new server URL to database 'community': https://mirrors.neusoft.edu.cn/archlinux/community/os/x86_64
debug: adding new server URL to database 'community': https://mirror.theash.xyz/arch/community/os/x86_64
debug: registering sync database 'multilib'
debug: database path for tree multilib set to /var/lib/pacman/sync/multilib.db
debug: "/var/lib/pacman/sync/multilib.db.sig" is not readable: File o directory non esistente
debug: sig path /var/lib/pacman/sync/multilib.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 603) : manca la firma PGP
debug: missing optional signature
debug: setting usage of 15 for multilib repository
debug: adding new server URL to database 'multilib': https://mirror.osbeck.com/archlinux/multilib/os/x86_64
debug: adding new server URL to database 'multilib': https://mirror.f4st.host/archlinux/multilib/os/x86_64
debug: adding new server URL to database 'multilib': https://mirror.theo546.fr/archlinux/multilib/os/x86_64
debug: adding new server URL to database 'multilib': https://ftp.halifax.rwth-aachen.de/archlinux/multilib/os/x86_64
debug: adding new server URL to database 'multilib': https://mirror.telepoint.bg/archlinux/multilib/os/x86_64
debug: adding new server URL to database 'multilib': https://archlinux.thaller.ws/multilib/os/x86_64
debug: adding new server URL to database 'multilib': https://seoul.mirror.pkgbuild.com/multilib/os/x86_64
debug: adding new server URL to database 'multilib': https://sydney.mirror.pkgbuild.com/multilib/os/x86_64
debug: adding new server URL to database 'multilib': https://mirrors.neusoft.edu.cn/archlinux/multilib/os/x86_64
debug: adding new server URL to database 'multilib': https://mirror.theash.xyz/arch/multilib/os/x86_64
:: Sincronizzazione dei database in corso...
download di core in corso...
download di extra in corso...
download di community in corso...
download di multilib in corso...
debug: core.db: url is https://mirror.osbeck.com/archlinux/core/os/x86_64/core.db
debug: core.db: maxsize 134217728
debug: core.db: using time condition 1680708346
debug: core.db: opened tempfile for download: /var/lib/pacman/sync/core.db.part (wb)
debug: core.db: curl returned result 0 from transfer
debug: core.db: response code 304
debug: core.db.sig: url is https://mirror.osbeck.com/archlinux/core/os/x86_64/core.db.sig
debug: core.db.sig: maxsize 16384
debug: core.db.sig: opened tempfile for download: /var/lib/pacman/sync/core.db.sig.part (wb)
debug: core.db: file met time condition
debug: core.db.sig: curl returned result 0 from transfer
debug: core.db.sig: response code 404
debug: core.db.sig: no more servers to retry
debug: extra.db: url is https://mirror.osbeck.com/archlinux/extra/os/x86_64/extra.db
debug: extra.db: maxsize 134217728
debug: extra.db: using time condition 1680699249
debug: extra.db: opened tempfile for download: /var/lib/pacman/sync/extra.db.part (wb)
debug: extra.db: curl returned result 0 from transfer
debug: extra.db: response code 304
debug: extra.db.sig: url is https://mirror.osbeck.com/archlinux/extra/os/x86_64/extra.db.sig
debug: extra.db.sig: maxsize 16384
debug: extra.db.sig: opened tempfile for download: /var/lib/pacman/sync/extra.db.sig.part (wb)
debug: extra.db: file met time condition
debug: extra.db.sig: curl returned result 0 from transfer
debug: extra.db.sig: response code 404
debug: extra.db.sig: no more servers to retry
debug: community.db: url is https://mirror.osbeck.com/archlinux/community/os/x86_64/community.db
debug: community.db: maxsize 134217728
debug: community.db: using time condition 1680709857
debug: community.db: opened tempfile for download: /var/lib/pacman/sync/community.db.part (wb)
debug: community.db: curl returned result 0 from transfer
debug: community.db: response code 304
debug: community.db.sig: url is https://mirror.osbeck.com/archlinux/community/os/x86_64/community.db.sig
debug: community.db.sig: maxsize 16384
debug: community.db.sig: opened tempfile for download: /var/lib/pacman/sync/community.db.sig.part (wb)
debug: community.db: file met time condition
debug: community.db.sig: curl returned result 0 from transfer
debug: community.db.sig: response code 404
debug: community.db.sig: no more servers to retry
debug: multilib.db: url is https://mirror.osbeck.com/archlinux/multilib/os/x86_64/multilib.db
debug: multilib.db: maxsize 134217728
debug: multilib.db: using time condition 1680708359
debug: multilib.db: opened tempfile for download: /var/lib/pacman/sync/multilib.db.part (wb)
debug: multilib.db: curl returned result 0 from transfer
debug: multilib.db: response code 304
debug: multilib.db.sig: url is https://mirror.osbeck.com/archlinux/multilib/os/x86_64/multilib.db.sig
debug: multilib.db.sig: maxsize 16384
debug: multilib.db.sig: opened tempfile for download: /var/lib/pacman/sync/multilib.db.sig.part (wb)
debug: multilib.db: file met time condition
debug: multilib.db.sig: curl returned result 0 from transfer
debug: multilib.db.sig: response code 404
debug: multilib.db.sig: no more servers to retry
debug: curl_download_internal return code is 0
debug: "/var/lib/pacman/sync/core.db.sig" is not readable: File o directory non esistente
debug: sig path /var/lib/pacman/sync/core.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 603) : manca la firma PGP
debug: missing optional signature
debug: "/var/lib/pacman/sync/extra.db.sig" is not readable: File o directory non esistente
debug: sig path /var/lib/pacman/sync/extra.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 603) : manca la firma PGP
debug: missing optional signature
debug: "/var/lib/pacman/sync/community.db.sig" is not readable: File o directory non esistente
debug: sig path /var/lib/pacman/sync/community.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 603) : manca la firma PGP
debug: missing optional signature
debug: "/var/lib/pacman/sync/multilib.db.sig" is not readable: File o directory non esistente
debug: sig path /var/lib/pacman/sync/multilib.db.sig could not be opened
debug: got error 43 at _alpm_gpgme_checksig (../lib/libalpm/signing.c: 603) : manca la firma PGP
debug: missing optional signature
debug: unregistering database 'local'
debug: unregistering database 'core'
debug: unregistering database 'extra'
debug: unregistering database 'community'
debug: unregistering database 'multilib'
[DEBUG:db] populating db executor package caches. sync_len 2012 remote_len 64
:: Ricerca degli aggiornamenti su AUR in corso...
[DEBUG:runtime] packages to query [android-studio bcompare chromium-widevine code-features code-icons code-marketplace cpulimit domoticz-git duperemove-git etcher-bin fing flipper gconf gimp-devel gksu google-chrome google-earth-pro icu55 insomnia-bin krop lcms libgksu libinput-gestures memtest86-efi mongodb-bin mongosh-bin mp4joiner netdiscover nvm obs-gstreamer obs-vkcapture openmw-git openssl-1.0 openzwave-git osinfo-db-git phoronix-test-suite plasma5-applets-eventcalendar pnpm python-pypdf2 qt5-webkit recastnavigation-openmw robo3t-bin secure-delete sedutil servicectl simplescreenrecorder skypeforlinux-stable-bin slack-electron snap-pac-grub spotify systemd-kcm teamviewer tor-browser trojita-git unetbootin watchman webstorm webstorm-eap webstorm-jre xiccd yay-git zenmap-python3-git zoom zram-swap-git]
[DEBUG:runtime] rpc request https://aur.archlinux.org/rpc?arg%5B%5D=android-studio&arg%5B%5D=bcompare&arg%5B%5D=chromium-widevine&arg%5B%5D=code-features&arg%5B%5D=code-icons&arg%5B%5D=code-marketplace&arg%5B%5D=cpulimit&arg%5B%5D=domoticz-git&arg%5B%5D=duperemove-git&arg%5B%5D=etcher-bin&arg%5B%5D=fing&arg%5B%5D=flipper&arg%5B%5D=gconf&arg%5B%5D=gimp-devel&arg%5B%5D=gksu&arg%5B%5D=google-chrome&arg%5B%5D=google-earth-pro&arg%5B%5D=icu55&arg%5B%5D=insomnia-bin&arg%5B%5D=krop&arg%5B%5D=lcms&arg%5B%5D=libgksu&arg%5B%5D=libinput-gestures&arg%5B%5D=memtest86-efi&arg%5B%5D=mongodb-bin&arg%5B%5D=mongosh-bin&arg%5B%5D=mp4joiner&arg%5B%5D=netdiscover&arg%5B%5D=nvm&arg%5B%5D=obs-gstreamer&arg%5B%5D=obs-vkcapture&arg%5B%5D=openmw-git&arg%5B%5D=openssl-1.0&arg%5B%5D=openzwave-git&arg%5B%5D=osinfo-db-git&arg%5B%5D=phoronix-test-suite&arg%5B%5D=plasma5-applets-eventcalendar&arg%5B%5D=pnpm&arg%5B%5D=python-pypdf2&arg%5B%5D=qt5-webkit&arg%5B%5D=recastnavigation-openmw&arg%5B%5D=robo3t-bin&arg%5B%5D=secure-delete&arg%5B%5D=sedutil&arg%5B%5D=servicectl&arg%5B%5D=simplescreenrecorder&arg%5B%5D=skypeforlinux-stable-bin&arg%5B%5D=slack-electron&arg%5B%5D=snap-pac-grub&arg%5B%5D=spotify&arg%5B%5D=systemd-kcm&arg%5B%5D=teamviewer&arg%5B%5D=tor-browser&arg%5B%5D=trojita-git&arg%5B%5D=unetbootin&arg%5B%5D=watchman&arg%5B%5D=webstorm&arg%5B%5D=webstorm-eap&arg%5B%5D=webstorm-jre&arg%5B%5D=xiccd&arg%5B%5D=yay-git&arg%5B%5D=zenmap-python3-git&arg%5B%5D=zoom&arg%5B%5D=zram-swap-git&type=info&v=5
:: Ricerca di aggiornamenti nei database in corso...
:: 25 Pacchetti da aggiornare.
25  core/coreutils                     9.2-2                      -> 9.2-3
24  core/libnghttp2                    1.52.0-1                   -> 1.52.0-2
23  core/man-pages                     6.03-1                     -> 6.04-1
22  core/systemd                       253.2-1                    -> 253.3-1
21  core/systemd-libs                  253.2-1                    -> 253.3-1
20  core/systemd-sysvcompat            253.2-1                    -> 253.3-1
19  extra/adobe-source-code-pro-fonts  2.038ro+1.058it+1.018var-1 -> 2.040u+1.060i+1.024vf-1
18  extra/chromium                     111.0.5563.146-1           -> 112.0.5615.49-1
17  extra/libatomic_ops                7.6.14-1                   -> 7.8.0-1
16  extra/mesa                         23.0.1-1                   -> 23.0.1-2
15  extra/opencl-mesa                  23.0.1-1                   -> 23.0.1-2
14  extra/texlive-core                 2023.66587-1               -> 2023.66587-2
13  extra/vulkan-intel                 23.0.1-1                   -> 23.0.1-2
12  extra/xf86-input-libinput          1.2.1-1                    -> 1.3.0-1
11  community/docker                   1:23.0.2-1                 -> 1:23.0.3-1
10  community/libvirt                  1:9.1.0-1                  -> 1:9.2.0-1
 9  community/libvirt-python           1:9.1.0-1                  -> 1:9.2.0-1
 8  community/python-psycopg2          2.9.5-1                    -> 2.9.6-1
 7  community/tesseract                5.3.0-4                    -> 5.3.1-1
 6  multilib/lib32-mesa                23.0.1-1                   -> 23.0.1-2
 5  multilib/lib32-systemd             253.2-1                    -> 253.3-1
 4  multilib/lib32-vulkan-intel        23.0.1-1                   -> 23.0.1-2
 3  aur/google-chrome                  111.0.5563.146-1           -> 112.0.5615.49-1
 2  aur/obs-vkcapture                  1.3.1-1                    -> 1.3.2-1
 1  aur/spotify                        1:1.1.84.716-13            -> 1:1.2.8.923-1
==> Pacchetti da escludere: (es: "1 2 3", "1-3", "^4" o il nome del repo)
 -> Excluding packages may cause partial upgrades and break systems
precla commented 1 year ago

Definitely want yay to behave as it did <12.. with not mixing up AUR and normal packages and without having to use any additional flag.

yay -Syu --devel worked fine for years. Rather implement such a change with an additional flag that has to be passed.

edit: https://jguer.space/posts/yay-v12/

As a result of these changes, you may notice subtle differences in default options, question order, and confirm prompts. Additionally, some flags, such as --nocombinedupgrade and --nobatchinstall, no longer work in the new engine.

    --nocombinedupgrade – The new engine always performs combined upgrades (unlike the legacy engine the upgrade is always run with -Syu avoiding partial upgrades)
    --nobatchinstall – The new engine will always try to batch install packages.
Jguer commented 1 year ago

Since there's some requests for --nocombinedupgrade to work on the new engine, there might be a way to keep it while not making it hard to maintain as in the legacy engine.

With #2083, yay -Syu --nocombinedupgrade will upgrade repo packages first and only after update AUR packages and any extra installs.

@uffejakobsen , @precla , @darkbasic could you test it in yay-git?

darkbasic commented 1 year ago

@Jguer I confirm it works, thanks!