Yay: Weird behaviour with --ignore

Created on 18 Dec 2018  ยท  13Comments  ยท  Source: Jguer/yay

Affected Version

yay v9.0.1 - libalpm v11.0.1

Issue

These commands were run in a sequence:

 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Starting full system upgrade...
warning: linux: ignoring package upgrade (4.19.8.arch1-1 => 4.19.9.arch1-1)
resolving dependencies...
looking for conflicting packages...

Package (10)          Old Version         New Version          Net Change  Download Size

core/dbus             1.12.10-2           1.12.12-1             -0.01 MiB       0.28 MiB
core/gnupg            2.2.11-1            2.2.12-1               0.15 MiB       2.10 MiB
core/libassuan        2.5.1-1             2.5.2-1                0.01 MiB       0.08 MiB
core/libnghttp2       1.34.0-1            1.35.1-1               0.04 MiB       0.08 MiB
core/linux-firmware   20181026.1cb4e51-1  20181216.211de16-1     9.17 MiB      75.65 MiB
core/linux-headers    4.19.8.arch1-1      4.19.9.arch1-1         0.00 MiB      17.01 MiB
extra/polkit          0.115+3+g8638ec5-1  0.115+24+g5230646-1    0.02 MiB       0.37 MiB
extra/python-six      1.11.0-3            1.12.0-1               0.00 MiB       0.02 MiB
extra/python2-six     1.11.0-3            1.12.0-1               0.00 MiB       0.02 MiB
community/youtube-dl  2018.12.09-1        2018.12.17-1           0.01 MiB       2.12 MiB

Total Download Size:    97.75 MiB
Total Installed Size:  544.84 MiB
Net Upgrade Size:        9.40 MiB

:: Proceed with installation? [Y/n] ^C
Interrupt signal received


 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Starting full system upgrade...
warning: linux: ignoring package upgrade (4.19.8.arch1-1 => 4.19.9.arch1-1)
resolving dependencies...
looking for conflicting packages...

Package (10)          Old Version         New Version          Net Change  Download Size

core/dbus             1.12.10-2           1.12.12-1             -0.01 MiB       0.28 MiB
core/gnupg            2.2.11-1            2.2.12-1               0.15 MiB       2.10 MiB
core/libassuan        2.5.1-1             2.5.2-1                0.01 MiB       0.08 MiB
core/libnghttp2       1.34.0-1            1.35.1-1               0.04 MiB       0.08 MiB
core/linux-firmware   20181026.1cb4e51-1  20181216.211de16-1     9.17 MiB      75.65 MiB
core/linux-headers    4.19.8.arch1-1      4.19.9.arch1-1         0.00 MiB      17.01 MiB
extra/polkit          0.115+3+g8638ec5-1  0.115+24+g5230646-1    0.02 MiB       0.37 MiB
extra/python-six      1.11.0-3            1.12.0-1               0.00 MiB       0.02 MiB
extra/python2-six     1.11.0-3            1.12.0-1               0.00 MiB       0.02 MiB
community/youtube-dl  2018.12.09-1        2018.12.17-1           0.01 MiB       2.12 MiB

Total Download Size:    97.75 MiB
Total Installed Size:  544.84 MiB
Net Upgrade Size:        9.40 MiB

:: Proceed with installation? [Y/n] 

Notice how

  • there's a random error about pacman.conf, but not on every run
  • linux-headers isn't ignored
  • the sync isn't performed every time
Bug

Most helpful comment

The explanation is this. The options are stored in a map:

type arguments struct {
        op      string
        options map[string]string
        globals map[string]string
        doubles types.StringSet // Tracks args passed twice such as -yy and -dd
        targets []string
}

And iteration over maps is nondeterministic in go (even between multiple iterations with range in the same program!):

https://nathanleclaire.com/blog/2014/04/27/a-surprising-feature-of-golang-that-colored-me-impressed/

All 13 comments

Another instance:

 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Starting full system upgrade...
 there is nothing to do
:: Searching databases for updates...
:: Searching AUR for updates...
 -> Missing AUR Packages:  pacaur
 there is nothing to do
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Synchronising package databases...
 core is up to date
 extra                                                                                               1697.2 KiB  4.60M/s 00:00 [#############################################################################] 100%
 community                                                                                              4.7 MiB  14.1M/s 00:00 [#############################################################################] 100%
 archzfs is up to date
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Package (2)        Old Version  New Version  Net Change  Download Size

extra/imagemagick  7.0.8.16-1   7.0.8.17-1     0.00 MiB       0.14 MiB
extra/libmagick    7.0.8.16-1   7.0.8.17-1     0.00 MiB       2.20 MiB

Total Download Size:    2.34 MiB
Total Installed Size:  10.20 MiB
Net Upgrade Size:       0.00 MiB

:: Proceed with installation? [Y/n] n
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Package (2)        Old Version  New Version  Net Change  Download Size

extra/imagemagick  7.0.8.16-1   7.0.8.17-1     0.00 MiB       0.14 MiB
extra/libmagick    7.0.8.16-1   7.0.8.17-1     0.00 MiB       2.20 MiB

Total Download Size:    2.34 MiB
Total Installed Size:  10.20 MiB
Net Upgrade Size:       0.00 MiB

:: Proceed with installation? [Y/n] n
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Syu --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Package (2)        Old Version  New Version  Net Change  Download Size

extra/imagemagick  7.0.8.16-1   7.0.8.17-1     0.00 MiB       0.14 MiB
extra/libmagick    7.0.8.16-1   7.0.8.17-1     0.00 MiB       2.20 MiB

Total Download Size:    2.34 MiB
Total Installed Size:  10.20 MiB
Net Upgrade Size:       0.00 MiB

:: Proceed with installation? [Y/n] n
Error installing repo packages

Compare:

 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Sy                                                                                            
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Sy
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Sy
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Sy
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Sy
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Sy
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Sy
:: Synchronising package databases...
 core is up to date
 extra is up to date
 community is up to date
 archzfs is up to date

The issue seems to be with yay -Su --ignore foo:

 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git
error: no targets specified (use -h for help)
Error installing repo packages

In the meanwhile, sudo pacman -Su --ignore linux --ignore linux-headers --ignore zfs-linux-git --ignore zfs-utils-common-git works fine, of course. So does yay -Su (without --ignore).

I know that multiple --ignores are not supported yet until the new configuration system is added, so that's the first problem, the error: target not found: /etc/pacman.conf is more worrisome to me which indicates that the multiple ignores seem to be breaking the command passed to pacman (maybe).

There are 3 issues in this one issue report :sweat_smile:

  • multiple --ignore don't work (confirmed)
  • yay -Syu doesn't always display is up to date (can't reproduce)
  • pacman command is misformed (need extra info)

can you post your yay -Pg?

{
    "aururl": "https://aur.archlinux.org",
    "buildDir": "/home/grayshade/.cache/yay",
    "editor": "",
    "editorflags": "",
    "makepkgbin": "makepkg",
    "makepkgconf": "",
    "pacmanbin": "pacman",
    "pacmanconf": "/etc/pacman.conf",
    "tarbin": "bsdtar",
    "redownload": "no",
    "rebuild": "no",
    "answerclean": "",
    "answerdiff": "",
    "answeredit": "",
    "answerupgrade": "",
    "gitbin": "git",
    "gpgbin": "gpg",
    "gpgflags": "",
    "mflags": "",
    "sortby": "votes",
    "gitflags": "",
    "removemake": "ask",
    "requestsplitn": 150,
    "sortmode": 0,
    "completionrefreshtime": 7,
    "sudoloop": false,
    "timeupdate": false,
    "devel": false,
    "cleanAfter": false,
    "gitclone": true,
    "provides": true,
    "pgpfetch": true,
    "upgrademenu": true,
    "cleanmenu": true,
    "diffmenu": true,
    "editmenu": false,
    "combinedupgrade": false,
    "useask": false
}

I guess I could try running it under strace to see the pacman invocation? But could it be a race condition? I haven't looked at the code.

Umm, I think the other one or two problems only occur with multiple --ignore parameters:

 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux                                                                            
:: Starting full system upgrade...
 there is nothing to do
:: Searching databases for updates...
:: Searching AUR for updates...
 -> Missing AUR Packages:  pacaur
 there is nothing to do
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux
:: Starting full system upgrade...
 there is nothing to do
:: Searching databases for updates...
:: Searching AUR for updates...
 -> Missing AUR Packages:  pacaur
 there is nothing to do
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux
:: Starting full system upgrade...
 there is nothing to do
:: Searching databases for updates...
:: Searching AUR for updates...
 -> Missing AUR Packages:  pacaur
 there is nothing to do
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux
:: Starting full system upgrade...
 there is nothing to do
:: Searching databases for updates...
:: Searching AUR for updates...
^[[A -> Missing AUR Packages:  pacaur
 there is nothing to do
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux
:: Starting full system upgrade...
 there is nothing to do
:: Searching databases for updates...
:: Searching AUR for updates...
 -> Missing AUR Packages:  pacaur
 there is nothing to do
 grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux --ignore linux-headers                                                     
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux --ignore linux-headers
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux --ignore linux-headers
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages
 โœ˜ grayshade@ubik ๎‚ฐ ~ ๎‚ฐ yay -Su --ignore linux --ignore linux-headers
error: no targets specified (use -h for help)
Error installing repo packages

I also get these, and all but the first ignore don't seem to have any effect. Also, the command then fails as above while there is still work to do.

--ignore "pkg1,pk2,..." seems to work

(Commands run in succession)

$ yay -Su --devel --confirm --timeupdate --builddir ~/tmp/yay --ignore alice-vision-git --ignore tesseract-data-git --ignore tesseract-data-deu-git --ignore tesseract-data-eng-git --ignore tesseract-data-osd-git
:: Searching databases for updates...
:: Searching AUR for updates...
:: Checking development packages...
 -> alice-vision-git: ignoring package upgrade (2.1.0.r31.ge60c7670-1 => latest-commit)
 -> colmap: local (3.6.dev.2-1) is newer than AUR (3.6dev2-1)
 -> hdrmerge: local (5.0-2) is newer than AUR (5.0-1)
 -> Missing AUR Packages:  config-concat  freetube  fuse-concat-git  google-cloud-sdk-minimal  maison-neue-fonts  my-audio  my-devel  my-essential  my-laptop  my-network  my-sshd_config  my-sshd_config-allowusers-hrehfeld  my-sshd_config-x11forwarding  pdfshuffler  python-json-rpc  python2-cssutils  python2-keyring  python2-pypdf  qt-assistant-compat  reaper  xfce-theme-orion-git
 -> Orphaned AUR Packages:  emacs-all-the-icons  emacs-memoize  filmic-blender-git  glsof  libtcod-151  python2-crcmod  python2-poppler  thrust  ttf-all-the-icons  ttf-atom-file-icons
 -> Out Of Date AUR Packages:  chromium-vaapi-bin  thrust
:: 9 Packages to upgrade.
9  aur/gnome-alsamixer           0.9.7-4      -> 0.9.7-4
8  aur/idnkit                    2.3-1        -> 2.3-4
7  aur/lcms                      1.19-7       -> 1.19-7
6  aur/openblas-lapack           0.3.6-2      -> 0.3.6-2
5  devel/ccls                    0.20190314-2 -> latest-commit
4  devel/filmic-blender-git      20170301-3   -> latest-commit
3  devel/tesseract-data-deu-git  33.590567f-1 -> latest-commit
2  devel/tesseract-data-eng-git  33.590567f-1 -> latest-commit
1  devel/tesseract-data-osd-git  33.590567f-1 -> latest-commit
==> Packages to not upgrade: (eg: 1 2 3, 1-3, ^4 or repo name)
==> None
:: Checking for conflicts...
:: Checking for inner conflicts...
[Aur: 9]  gnome-alsamixer-0.9.7-4  idnkit-2.3-4  lcms-1.19-7  ccls-0.20190314-2  filmic-blender-git-20170301-3  tesseract-data-git-3.074c372-1 (tesseract-data-osd-git tesseract-data-deu-git tesseract-data-eng-git)  openblas-lapack-0.3.6-2

  7 gnome-alsamixer                  (Installed) (Build Files Exist)
  6 idnkit                           (Installed) (Build Files Exist)
  5 lcms                             (Installed) (Build Files Exist)
  4 ccls                             (Installed) (Build Files Exist)
  3 filmic-blender-git               (Installed) (Build Files Exist)
  2 tesseract-data-git (tesseract-data-osd-git tesseract-data-deu-git tesseract-data-eng-git) (Installed) (Build Files Exist)
  1 openblas-lapack                  (Installed) (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> None
:: PKGBUILD up to date, Skipping (1/7): openblas-lapack
:: PKGBUILD up to date, Skipping (2/7): gnome-alsamixer
:: PKGBUILD up to date, Skipping (3/7): filmic-blender-git
:: PKGBUILD up to date, Skipping (4/7): tesseract-data-git (tesseract-data-osd-git tesseract-data-deu-git tesseract-data-eng-git)
:: PKGBUILD up to date, Skipping (5/7): lcms
:: PKGBUILD up to date, Skipping (6/7): ccls
:: PKGBUILD up to date, Skipping (7/7): idnkit
  7 gnome-alsamixer                  (Installed) (Build Files Exist)
  6 idnkit                           (Installed) (Build Files Exist)
  5 lcms                             (Installed) (Build Files Exist)
  4 ccls                             (Installed) (Build Files Exist)
  3 filmic-blender-git               (Installed) (Build Files Exist)
  2 tesseract-data-git (tesseract-data-osd-git tesseract-data-deu-git tesseract-data-eng-git) (Installed) (Build Files Exist)
  1 openblas-lapack                  (Installed) (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> None
:: Parsing SRCINFO (1/7): gnome-alsamixer
:: Parsing SRCINFO (2/7): idnkit
:: Parsing SRCINFO (3/7): lcms
:: Parsing SRCINFO (4/7): ccls
:: Parsing SRCINFO (5/7): filmic-blender-git
:: Parsing SRCINFO (6/7): tesseract-data-git (tesseract-data-osd-git tesseract-data-deu-git tesseract-data-eng-git)
:: Parsing SRCINFO (7/7): openblas-lapack
error: no targets specified (use -h for help)
Error installing repo packages
$ yay -Su --devel --confirm --timeupdate --builddir ~/tmp/yay --ignore alice-vision-git --ignore tesseract-data-git --ignore tesseract-data-deu-git --ignore tesseract-data-eng-git --ignore tesseract-data-osd-git
:: Searching databases for updates...
:: Searching AUR for updates...
:: Checking development packages...
 -> alice-vision-git: ignoring package upgrade (2.1.0.r31.ge60c7670-1 => latest-commit)
 -> colmap: local (3.6.dev.2-1) is newer than AUR (3.6dev2-1)
 -> hdrmerge: local (5.0-2) is newer than AUR (5.0-1)
 -> Missing AUR Packages:  config-concat  freetube  fuse-concat-git  google-cloud-sdk-minimal  maison-neue-fonts  my-audio  my-devel  my-essential  my-laptop  my-network  my-sshd_config  my-sshd_config-allowusers-hrehfeld  my-sshd_config-x11forwarding  pdfshuffler  python-json-rpc  python2-cssutils  python2-keyring  python2-pypdf  qt-assistant-compat  reaper  xfce-theme-orion-git
 -> Orphaned AUR Packages:  emacs-all-the-icons  emacs-memoize  filmic-blender-git  glsof  libtcod-151  python2-crcmod  python2-poppler  thrust  ttf-all-the-icons  ttf-atom-file-icons
 -> Out Of Date AUR Packages:  chromium-vaapi-bin  thrust
:: 9 Packages to upgrade.
9  aur/gnome-alsamixer           0.9.7-4      -> 0.9.7-4
8  aur/idnkit                    2.3-1        -> 2.3-4
7  aur/lcms                      1.19-7       -> 1.19-7
6  aur/openblas-lapack           0.3.6-2      -> 0.3.6-2
5  devel/ccls                    0.20190314-2 -> latest-commit
4  devel/filmic-blender-git      20170301-3   -> latest-commit
3  devel/tesseract-data-deu-git  33.590567f-1 -> latest-commit
2  devel/tesseract-data-eng-git  33.590567f-1 -> latest-commit
1  devel/tesseract-data-osd-git  33.590567f-1 -> latest-commit
==> Packages to not upgrade: (eg: 1 2 3, 1-3, ^4 or repo name)
==> None
:: Checking for conflicts...
:: Checking for inner conflicts...
[Aur: 9]  gnome-alsamixer-0.9.7-4  ccls-0.20190314-2  filmic-blender-git-20170301-3  tesseract-data-git-3.074c372-1 (tesseract-data-deu-git tesseract-data-eng-git tesseract-data-osd-git)  idnkit-2.3-4  lcms-1.19-7  openblas-lapack-0.3.6-2

  7 gnome-alsamixer                  (Installed) (Build Files Exist)
  6 ccls                             (Installed) (Build Files Exist)
  5 filmic-blender-git               (Installed) (Build Files Exist)
  4 tesseract-data-git (tesseract-data-deu-git tesseract-data-eng-git tesseract-data-osd-git) (Installed) (Build Files Exist)
  3 idnkit                           (Installed) (Build Files Exist)
  2 lcms                             (Installed) (Build Files Exist)
  1 openblas-lapack                  (Installed) (Build Files Exist)
==> Packages to cleanBuild?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> None
:: PKGBUILD up to date, Skipping (1/7): openblas-lapack
:: PKGBUILD up to date, Skipping (2/7): tesseract-data-git (tesseract-data-deu-git tesseract-data-eng-git tesseract-data-osd-git)
:: PKGBUILD up to date, Skipping (3/7): idnkit
:: PKGBUILD up to date, Skipping (4/7): filmic-blender-git
:: PKGBUILD up to date, Skipping (5/7): gnome-alsamixer
:: PKGBUILD up to date, Skipping (6/7): ccls
:: PKGBUILD up to date, Skipping (7/7): lcms
  7 gnome-alsamixer                  (Installed) (Build Files Exist)
  6 ccls                             (Installed) (Build Files Exist)
  5 filmic-blender-git               (Installed) (Build Files Exist)
  4 tesseract-data-git (tesseract-data-deu-git tesseract-data-eng-git tesseract-data-osd-git) (Installed) (Build Files Exist)
  3 idnkit                           (Installed) (Build Files Exist)
  2 lcms                             (Installed) (Build Files Exist)
  1 openblas-lapack                  (Installed) (Build Files Exist)
==> Diffs to show?
==> [N]one [A]ll [Ab]ort [I]nstalled [No]tInstalled or (1 2 3, 1-3, ^4)
==> None
:: Parsing SRCINFO (1/7): gnome-alsamixer
:: Parsing SRCINFO (2/7): ccls
:: Parsing SRCINFO (3/7): filmic-blender-git
:: Parsing SRCINFO (4/7): tesseract-data-git (tesseract-data-deu-git tesseract-data-eng-git tesseract-data-osd-git)
:: Parsing SRCINFO (5/7): idnkit
:: Parsing SRCINFO (6/7): lcms
:: Parsing SRCINFO (7/7): openblas-lapack
error: target not found: /etc/pacman.conf
warning: '/etc/pacman.conf' is a file, did you mean -U/--upgrade instead of -S/--sync?
Error installing repo packages

According to strace, calling

yay -Syu --ignore=linux --ignore=linux-lts

results in this:

[pid 887205] execve("/usr/bin/sudo", ["sudo", "pacman", "-S", "-y", "-u", "--ignore", "linux", "--ignore", "--config", "/etc/pacman.conf", "--"], 0xc000152200 /* 61 vars */ <unfinished ...>

Is that deterministic?

No, it is the same for me that it sometimes works, and sometimes it doesn't. But it is mostly it works once after cleaning everything up with

yay -Sc

but all subsequent tries fail like this.

Then does it sometimes do pacman -S -y -u --ignore linux --ignore linux-lts --config /etc/pacman.conf and sometimes pacman -S -y -u --ignore linux --ignore --config /etc/pacman.conf? ๐Ÿ™€

What it apparently does, is to randomize the order of the options to pacman. It always seems to drop the argument to the second --ignore. I go both this

[pid 946936] execve("/usr/bin/pacman", ["/usr/bin/pacman", "-S", "--ignore", "linux", "--ignore", "-y", "-u", "--config", "/etc/pacman.conf", "--"], 0x561fedf0a5e0 /* 19 vars */) = 0

and this

[pid 947572] execve("/usr/bin/pacman", ["/usr/bin/pacman", "-S", "-y", "-u", "--ignore", "linux", "--ignore", "--config", "/etc/pacman.conf", "--"], 0x55eaaddba5e0 /* 19 vars */) = 0

with reruns of the above command.

The explanation is this. The options are stored in a map:

type arguments struct {
        op      string
        options map[string]string
        globals map[string]string
        doubles types.StringSet // Tracks args passed twice such as -yy and -dd
        targets []string
}

And iteration over maps is nondeterministic in go (even between multiple iterations with range in the same program!):

https://nathanleclaire.com/blog/2014/04/27/a-surprising-feature-of-golang-that-colored-me-impressed/

multiple --ignore should be fixed in 2f88858ce636df25d67c7380826a6e08ff281e45

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mmirate picture mmirate  ยท  3Comments

x70b1 picture x70b1  ยท  4Comments

ricochet1k picture ricochet1k  ยท  4Comments

nivaca picture nivaca  ยท  4Comments

bazeeel picture bazeeel  ยท  4Comments