trofi / nix-guix-gentoo

Gentoo overlay for nix and guix functional package managers.
110 stars 9 forks source link

1.3.0-r2 guix upgrade fails with channel substitutes enabled #14

Closed Gooberpatrol66 closed 2 years ago

Gooberpatrol66 commented 2 years ago

I followed this to enable substitutes for nonguix https://guix.gnu.org/manual/en/html_node/Substitute-Server-Authorization.html When https://substitutes.nonguix.org is added to --substitute-urls, guix pull as non-root user fails with this error:

substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
substitute: Backtrace:
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 17 (with-exception-handler _ _ #:unwind? _ # _)
substitute: In unknown file:
substitute:           16 (apply-smob/0 #<thunk 7f417ce7af60>)
substitute: In ice-9/boot-9.scm:
substitute:     724:2 15 (call-with-prompt _ _ #<procedure default-prompt-handle?>)
substitute: In ice-9/eval.scm:
substitute:     619:8 14 (_ #(#(#<directory (guile-user) 7f417ce73c80>)))
substitute: In guix/ui.scm:
substitute:   2166:12 13 (run-guix-command _ . _)
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 12 (with-exception-handler _ _ #:unwind? _ # _)
substitute:   1752:10 11 (with-exception-handler _ _ #:unwind? _ # _)
substitute:   1747:15 10 (with-exception-handler #<procedure 7f417a7c7c00 at ic?> ?)
substitute: In guix/scripts/substitute.scm:
substitute:    751:18  9 (_)
substitute:     350:7  8 (process-query #<output: file 4> _ #:cache-urls _ #:acl _)
substitute: In srfi/srfi-1.scm:
substitute:     634:9  7 (for-each #<procedure 7f417bc4b0a0 at guix/scripts/sub?> ?)
substitute: In guix/scripts/substitute.scm:
substitute:    295:16  6 (_ #<<narinfo> path: "/gnu/store/q81h9lqm7xj2x3nhiixxnc?>)
substitute: In guix/narinfo.scm:
substitute:     343:2  5 (narinfo-best-uri _ #:fast-decompression? _)
substitute: In ice-9/boot-9.scm:
substitute:   1685:16  4 (raise-exception _ #:continuable? _)
substitute:   1685:16  3 (raise-exception _ #:continuable? _)
substitute:   1780:13  2 (_ #<&compound-exception components: (#<&error> #<&orig?>)
substitute:   1685:16  1 (raise-exception _ #:continuable? _)
substitute:   1685:16  0 (raise-exception _ #:continuable? _)
substitute: 
substitute: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
substitute: Throw to key `match-error' with args `("match" "no matching pattern" ())'.
guix upgrade: error: `/usr/bin/guix substitute' died unexpectedly
trofi commented 2 years ago

It's not very clear to me what exactly you ran to get an error.

  1. Did you run just guix pull? Or guix pull --substitute-urls https://substitutes.nonguix.org? Or you reconfigured the daemon?
  2. Where did you get public key for https://substitutes.nonguix.org? It's main page 403s for me.
  3. Where does which guix point for you? Is it /usr/bin/guix?

The backtrace suggests it's a guix bug in failure to interpret the response from server.

Gooberpatrol66 commented 2 years ago
  1. guix pull --fallback, daemon run with /usr/bin/guix-daemon --build-users-group=guixbuild --substitute-urls='https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org'
  2. https://substitutes.nonguix.org/signing-key.pub
  3. /usr/bin/guix
trofi commented 2 years ago

Aha, your setup looks reasonable. And also works for me as is:

# systemctl status guix-daemon
● guix-daemon.service - Build daemon for GNU Guix
     Loaded: loaded (/lib/systemd/system/guix-daemon.service; enabled; vendor preset: disabled)
     Active: active (running) since Sun 2022-01-30 17:22:47 GMT; 4s ago
   Main PID: 116 (guix-daemon)
      Tasks: 1 (limit: 8192)
     Memory: 440.0K
        CPU: 1ms
     CGroup: /system.slice/guix-daemon.service
             └─116 /usr/bin/guix-daemon --build-users-group=guixbuild "--substitute-urls=https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://substitutes.nonguix.org"

Jan 30 17:22:47 gentoo-amd64-unstable-nomultilib systemd[1]: Started Build daemon for GNU Guix.
# guix pull --fallback
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix', commits 9edb3f6 to 43dd34c (15 new commits)...
Building from this channel:
  guix      https://git.savannah.gnu.org/git/guix.git   43dd34c
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
building /gnu/store/nqj0yvdypkissnfx1izdg9gxq21rwkqi-compute-guix-derivation.drv...
Computing Guix derivation for 'x86_64-linux'... |
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
The following derivations will be built:
   /gnu/store/znymq47ilk3dzf60c6iwfa7d55nc3w4s-profile.drv
   /gnu/store/231s8mn6xavs9s5hv7gb2arkykga829d-guix-daemon.drv
   /gnu/store/f9jp0y5pnmjjxsm40qvbpag3hsx8zq9i-guix-command.drv
   /gnu/store/3n7999qp2mn9ydf0cb51zy1s61wf1a8x-guix-system-tests-modules.drv
   /gnu/store/6walknmlbgv52r61v2rj7gb4dspvmrhb-guix-extra-modules.drv
   /gnu/store/73hvgjhvasw52y7pbr26a94zzf8li98m-guix-cli-modules.drv
   /gnu/store/9gv65i3nsbpj99fsazax22lk48zm94pp-guix-system-modules.drv
   /gnu/store/d25k5j7j7fy8lc11hfc7cdw902jldvdv-guix-home-modules.drv
   /gnu/store/kvsykh41pbapvnxyzhh3g20yrlwgai8y-guix-packages-base-modules.drv
   /gnu/store/ph8mbv3z74kkix55ix05f6r8gfx4nq6z-guix-cli-core-modules.drv
   /gnu/store/3i3zlifv6qsvl54czxrzyqjqjbkinj5g-inferior-script.scm.drv
   /gnu/store/9hz08d5ylz1rx2hmyw9i05hz8bv2iilg-profile.drv

59.2 MB will be downloaded
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
 guix-manual                                                                                                                                                                      2.1MiB/s 00:04 | 8.1MiB transferred
 expat-2.4.4  99KiB                                                                                                                                                        1.4MiB/s 00:00 [##################] 100.0%
 guix-cli  261KiB                                                                                                                                                          1.4MiB/s 00:00 [##################] 100.0%
 dbus-1.12.20  266KiB                                                                                                                                                      1.9MiB/s 00:00 [##################] 100.0%
 guix-cli-core                                                                                                                                                                    2.1MiB/s 00:01 | 1.2MiB transferred
 avahi-0.8  349KiB                                                                                                                                                         1.7MiB/s 00:00 [##################] 100.0%
 guix-cli-core-modules  271B                                                                                                                                               225KiB/s 00:00 [##################] 100.0%
 guile-avahi-0.4.0-1.6d43caf  51KiB                                                                                                                                        2.4MiB/s 00:00 [##################] 100.0%
 guix-cli-modules  268B                                                                                                                                                    696KiB/s 00:00 [##################] 100.0%
 guix-extra                                                                                                                                                                       2.0MiB/s 00:02 | 3.2MiB transferred
 guix-home  271KiB                                                                                                                                                         1.7MiB/s 00:00 [##################] 100.0%
 guix-extra-modules  270B                                                                                                                                                  467KiB/s 00:00 [##################] 100.0%
 guix-home-modules  270B                                                                                                                                                   400KiB/s 00:00 [##################] 100.0%
 guix-packages-base  13.5MiB                                                                                                                                               2.1MiB/s 00:07 [##################] 100.0%
 guix-system  5.7MiB                                                                                                                                                       2.1MiB/s 00:03 [##################] 100.0%
 guix-packages-base-modules  274B                                                                                                                                          306KiB/s 00:00 [##################] 100.0%
 guix-system-modules  269B                                                                                                                                                 380KiB/s 00:00 [##################] 100.0%
 guix-system-tests  456KiB                                                                                                                                                 2.1MiB/s 00:00 [##################] 100.0%
 guix-system-tests-modules  275B                                                                                                                                           481KiB/s 00:00 [##################] 100.0%
 guix-43dd34c77-modules  24.9MiB                                                                                                                                           2.0MiB/s 00:12 [##################] 100.0%
 guix-module-union  3KiB                                                                                                                                                   375KiB/s 00:00 [##################] 100.0%
 guix-command  634B                                                                                                                                                        1.9MiB/s 00:00 [##################] 100.0%
 guix-daemon  392B                                                                                                                                                         488KiB/s 00:00 [##################] 100.0%
 guix-43dd34c77  14KiB                                                                                                                                                     4.8MiB/s 00:00 [##################] 100.0%
building CA certificate bundle...
building fonts directory...
building directory of Info manuals...
building database for manual pages...
building profile with 1 package...
building /gnu/store/3i3zlifv6qsvl54czxrzyqjqjbkinj5g-inferior-script.scm.drv...
building package cache...
building profile with 1 package...
hint: Consider setting the necessary environment variables by running:

     GUIX_PROFILE="/root/.config/guix/current"
     . "$GUIX_PROFILE/etc/profile"

Alternately, see `guix package --search-paths -p "/root/.config/guix/current"'.

New in this revision:
  3110 new packages: a2jmidid, abjad, abjad-ext-ipython, abjad-ext-nauert, abjad-ext-rmakers, adcli, alembic, alfis, alsa-topology-conf, alsa-ucm-conf, android-platform-frameworks-native-headers,
    ansible-core, …
  4647 packages upgraded: 0ad-data@0.0.25b-alpha, 0ad@0.0.25b-alpha, 0xffff@0.9, 389-ds-base@1.4.4.17, abiword@3.0.5, ableton-link@3.0.3, abseil-cpp@20210324.2, accountsservice@0.6.55, acl@2.3.1,
    acpi-call-linux-module@1.2.2, acpica@20211217, acpid@2.0.33, …

hint: Run `guix pull --news' to read all the news.

hint: After setting `PATH', run `hash guix' to make sure your shell refers to `/root/.config/guix/current/bin/guix'.
trofi commented 2 years ago

Can you also post $ emerge --info guix guile? I wonder if there is anything special there we could flip on and off to locate where our systems differ.

Gooberpatrol66 commented 2 years ago
WARNING: One or more repositories have missing repo_name entries:

    /var/lib/layman/arcan-overlay/profiles/repo_name

NOTE: Each repo_name entry should be a plain text file containing a
unique name for the repository on the first line.

Portage 3.0.28 (python 3.9.9-final-0, default/linux/amd64/17.1/desktop/plasma/systemd, gcc-11.2.0, glibc-2.33-r7, 5.15.11-gentoo-x86_64 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-5.15.11-gentoo-x86_64-x86_64-AMD_Ryzen_5_3600_6-Core_Processor-with-glibc2.33
KiB Mem:    32778928 total,   1607328 free
KiB Swap:   33519612 total,  32650748 free
Timestamp of repository gentoo: Sat, 22 Jan 2022 22:51:55 +0000
Head commit of repository gentoo: 0c22593c8c7f5155d9f4c05c16e60a6982b1d5e8

sh bash 5.1_p8
ld GNU ld (Gentoo 2.37_p1 p0) 2.37
ccache version 4.5.1 [disabled]
app-misc/pax-utils:        1.3.3::gentoo
app-shells/bash:           5.1_p8::gentoo
dev-java/java-config:      2.3.1::gentoo
dev-lang/perl:             5.34.0-r6::gentoo
dev-lang/python:           2.7.18_p13::gentoo, 3.8.12_p1-r1::gentoo, 3.9.9-r1::gentoo, 3.10.0_p1-r1::gentoo
dev-lang/rust:             1.58.1::gentoo
dev-util/ccache:           4.5.1::gentoo
dev-util/cmake:            3.21.4::gentoo
dev-util/meson:            0.60.3::gentoo
sys-apps/baselayout:       2.7-r3::gentoo
sys-apps/sandbox:          2.25::gentoo
sys-apps/systemd:          249.9::gentoo
sys-devel/autoconf:        2.13-r1::gentoo, 2.71-r1::gentoo
sys-devel/automake:        1.11.6-r3::gentoo, 1.16.4::gentoo
sys-devel/binutils:        2.37_p1::gentoo
sys-devel/binutils-config: 5.4::gentoo
sys-devel/clang:           13.0.0::gentoo
sys-devel/gcc:             11.2.0::gentoo
sys-devel/gcc-config:      2.5-r1::gentoo
sys-devel/libtool:         2.4.6-r6::gentoo
sys-devel/llvm:            13.0.0::gentoo
sys-devel/make:            4.3::gentoo
sys-kernel/linux-headers:  5.15-r3::gentoo (virtual/os-headers)
sys-libs/glibc:            2.33-r7::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/gentoo.git
    priority: -1000

aeon-gentoo-overlay
    location: /var/lib/layman/aeon-gentoo-overlay
    sync-type: laymansync
    sync-uri: https://github.com/aeon-engine/aeon-gentoo-overlay.git
    masters: gentoo
    priority: 50

arcan-overlay
    location: /var/lib/layman/arcan-overlay
    sync-type: laymansync
    sync-uri: https://github.com/vquicksilver/arcan-overlay.git
    masters: gentoo
    priority: 50

audio-overlay
    location: /var/lib/layman/audio-overlay
    sync-type: laymansync
    sync-uri: https://github.com/gentoo-audio/audio-overlay.git
    masters: gentoo
    priority: 50

darthgandalf-overlay
    location: /var/lib/layman/darthgandalf-overlay
    sync-type: laymansync
    sync-uri: https://github.com/DarthGandalf/gentoo-overlay.git
    masters: gentoo
    priority: 50

deadbeef-overlay
    location: /var/lib/layman/deadbeef-overlay
    sync-type: laymansync
    sync-uri: https://github.com/damex/deadbeef-overlay.git
    masters: gentoo
    priority: 50

dev1990-overlay
    location: /var/lib/layman/dev1990-overlay
    sync-type: laymansync
    sync-uri: https://github.com/dev-0x7C6/dev1990-overlay.git
    masters: gentoo
    priority: 50

dmchurch
    location: /var/lib/layman/dmchurch
    sync-type: laymansync
    sync-uri: https://github.com/dmchurch/portage-overlay.git
    masters: gentoo
    priority: 50

dotnet
    location: /var/lib/layman/dotnet
    sync-type: laymansync
    sync-uri: https://github.com/gentoo/dotnet.git
    masters: gentoo
    priority: 50

gooby-overlay
    location: /var/lib/layman/gooby-overlay
    sync-type: laymansync
    sync-uri: https://gentooserver.dehnel.info/gitea/nathan/gooby-overlay.git
    masters: gentoo dotnet
    priority: 50

guru
    location: /var/lib/layman/guru
    sync-type: laymansync
    sync-uri: https://anongit.gentoo.org/git/repo/proj/guru.git
    masters: gentoo
    priority: 50

interactive-fiction
    location: /var/lib/layman/interactive-fiction
    sync-type: laymansync
    sync-uri: git://repo.or.cz/gentoo-interactive-fiction.git
    masters: gentoo
    priority: 50

lmiphay
    location: /var/lib/layman/lmiphay
    sync-type: laymansync
    sync-uri: git://anongit.gentoo.org/user/lmiphay.git
    masters: gentoo
    priority: 50

lto-overlay
    location: /var/lib/layman/lto-overlay
    sync-type: laymansync
    sync-uri: https://github.com/InBetweenNames/gentooLTO.git
    masters: gentoo mv
    priority: 50

mv
    location: /var/lib/layman/mv
    sync-type: laymansync
    sync-uri: https://anongit.gentoo.org/git/user/mv.git
    masters: gentoo
    priority: 50

nix-guix
    location: /var/lib/layman/nix-guix
    sync-type: laymansync
    sync-uri: https://github.com/trofi/nix-guix-gentoo.git
    masters: gentoo
    priority: 50

reagentoo
    location: /var/lib/layman/reagentoo
    sync-type: laymansync
    sync-uri: https://gitlab.com/reagentoo/gentoo-overlay.git
    masters: gentoo
    priority: 50

sabayon
    location: /var/lib/layman/sabayon
    sync-type: laymansync
    sync-uri: git://github.com/Sabayon/for-gentoo.git
    masters: gentoo
    priority: 50

src_prepare-overlay
    location: /var/lib/layman/src_prepare-overlay
    sync-type: laymansync
    sync-uri: https://gitlab.com/src_prepare/src_prepare-overlay.git
    masters: gentoo
    priority: 50

steam-overlay
    location: /var/lib/layman/steam-overlay
    sync-type: laymansync
    sync-uri: https://github.com/anyc/steam-overlay.git
    masters: gentoo
    priority: 50

torbrowser
    location: /var/lib/layman/torbrowser
    sync-type: laymansync
    sync-uri: https://github.com/MeisterP/torbrowser-overlay.git
    masters: gentoo
    priority: 50

unity-gentoo
    location: /var/lib/layman/unity-gentoo
    sync-type: laymansync
    sync-uri: https://github.com/shiznix/unity-gentoo
    masters: gentoo
    priority: 50

vapoursynth
    location: /var/lib/layman/vapoursynth
    sync-type: laymansync
    sync-uri: https://github.com/4re/vapoursynth-portage.git
    masters: gentoo
    priority: 50

voyageur
    location: /var/lib/layman/voyageur
    sync-type: laymansync
    sync-uri: https://cafarelli.fr/git/voyageur-overlay/
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php8.0/ext-active/ /etc/php/cgi-php8.0/ext-active/ /etc/php/cli-php8.0/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--jobs 12 --autounmask"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
MAKEOPTS="-j12"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
RUSTFLAGS="-C opt-level=3 -C target-cpu=native -C codegen-units=1"
SHELL="/bin/bash"
USE="X a52 aac acl acpi activities alsa amd64 bluetooth bluray branding bzip2 cairo caps cdda cdr cli crypt cups dbus declarative dri dts dvd dvdr encode eselect-ldso exif flac fortran gdbm gif gpm gtk gui hwaccel iconv icu infinality ipv6 jack jit jpeg kde kipi kwallet lcms libglvnd libnotify libtirpc lto mad mng mp3 mp4 mpeg multilib ncurses nfs nls nptl ogg opencl opengl openmp pam pango pcre pdf pgo plasma png policykit ppds qml qt5 readline realtime sdl seccomp semantic-desktop spell split-usr ssl startup-notification svg systemd threads tiff truetype udev udisks unicode upower usb vaapi vdpau verify-sig vorbis vulkan widgets wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2020" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" CURL_SSL="gnutls" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput wacom evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-4 php8-0" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby26 ruby27" USERLAND="GNU" VIDEO_CARDS="amdgpu radeonsi" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LANG, LC_ALL, LD, LEX, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RANLIB, READELF, SIZE, STRINGS, STRIP, YACC, YFLAGS

=================================================================
                        Package Settings
=================================================================

sys-apps/guix-1.3.0-r2::nix-guix was built with the following:
USE="" ABI_X86="(64)"
CFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
CXXFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe"

dev-scheme/guile-3.0.7-r1::gentoo was built with the following:
USE="deprecated jit networking nls regex threads -debug -debug-malloc" ABI_X86="(64)"
CFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fuse-linker-plugin -pipe -fno-finite-math-only -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
CXXFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -fuse-linker-plugin -pipe -fno-finite-math-only -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
Gooberpatrol66 commented 2 years ago

It looks like you tried running it as root. Try running it as non-root?

trofi commented 2 years ago

CFLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe"

I suspect that might have miscompiled one of the dependencies (possibly guile).

trofi commented 2 years ago

It looks like you tried running it as root. Try running it as non-root?

Works for me as user as well. This time on a system rebuilt with

COMMON_FLAGS="-march=native -O3 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition -flto=12 -fuse-linker-plugin -pipe"
  CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
 FCFLAGS="${COMMON_FLAGS}"
  FFLAGS="${COMMON_FLAGS}"
$ guix pull --fallback
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
  guix      https://git.savannah.gnu.org/git/guix.git   43dd34c
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
 gmp-6.2.0  583KiB                                                                                                                                                         1.6MiB/s 00:00 [##################] 100.0%
 libffi-3.3  54KiB                                                                                                                                                         1.3MiB/s 00:00 [##################] 100.0%
 libgc-8.0.4  224KiB                                                                                                                                                       960KiB/s 00:00 [##################] 100.0%
 libgpg-error-1.37  206KiB                                                                                                                                                 1.6MiB/s 00:00 [##################] 100.0%
 libltdl-2.4.6  37KiB                                                                                                                                                      688KiB/s 00:00 [##################] 100.0%
 libgcrypt-1.8.5  515KiB                                                                                                                                                   1.9MiB/s 00:00 [##################] 100.0%
 libunistring-0.9.10  500KiB                                                                                                                                               1.2MiB/s 00:00 [##################] 100.0%
 guile-gcrypt-0.3.0  149KiB                                                                                                                                                923KiB/s 00:00 [##################] 100.0%
 pkg-config-0.29.2  201KiB                                                                                                                                                 1.5MiB/s 00:00 [##################] 100.0%
 guile-3.0.2  6.9MiB                                                                                                                                                       918KiB/s 00:08 [##################] 100.0%
building /gnu/store/sflmgcfcdwizj7iyd3pfksdvrkc3pskb-config.scm.drv...
building /gnu/store/7k17dvmcrdicjsdxmpvhss4p3i3d70j5-git.scm.drv...
building /gnu/store/j9s3n7iqvh8pqkxkwy91nq3qynr1nby7-hash.scm.drv...
...
hint: Consider setting the necessary environment variables by running:

     GUIX_PROFILE="/home/test/.config/guix/current"
     . "$GUIX_PROFILE/etc/profile"

Alternately, see `guix package --search-paths -p "/home/test/.config/guix/current"'.

hint: After setting `PATH', run `hash guix' to make sure your shell refers to `/home/test/.config/guix/current/bin/guix'.

Can you expand your -march=native? https://wiki.gentoo.org/wiki/Gcc-ICE-reporting-guide#Expand_-march.3Dnative.2C_exact_gcc_version_and_other_system-specific_options has the rough command.

Gooberpatrol66 commented 2 years ago
--- /dev/fd/63  2022-01-30 18:01:14.257073951 -0600
+++ /dev/fd/62  2022-01-30 18:01:14.258073958 -0600
@@ -21 +21 @@
-  --param=avoid-fma-max-bits=<0,512>       0
+  --param=avoid-fma-max-bits=<0,512>       256
@@ -85 +85 @@
-  --param=l1-cache-size=           64
+  --param=l1-cache-size=           32
@@ -223 +223 @@
-  --param=simultaneous-prefetches=     6
+  --param=simultaneous-prefetches=     100
--- /dev/fd/63  2022-01-30 18:01:14.321074403 -0600
+++ /dev/fd/62  2022-01-30 18:01:14.321074403 -0600
@@ -12 +12 @@
-  -mabm                            [disabled]
+  -mabm                            [enabled]
@@ -15,2 +15,2 @@
-  -madx                            [disabled]
-  -maes                            [disabled]
+  -madx                            [enabled]
+  -maes                            [enabled]
@@ -27 +27 @@
-  -march=                          sandybridge
+  -march=                          znver2
@@ -30,3 +30,3 @@
-  -mavx2                           [disabled]
-  -mavx256-split-unaligned-load    [enabled]
-  -mavx256-split-unaligned-store   [enabled]
+  -mavx2                           [enabled]
+  -mavx256-split-unaligned-load    [disabled]
+  -mavx256-split-unaligned-store   [disabled]
@@ -52,2 +52,2 @@
-  -mbmi                            [disabled]
-  -mbmi2                           [disabled]
+  -mbmi                            [enabled]
+  -mbmi2                           [enabled]
@@ -59,3 +59,3 @@
-  -mclflushopt                     [disabled]
-  -mclwb                           [disabled]
-  -mclzero                         [disabled]
+  -mclflushopt                     [enabled]
+  -mclwb                           [enabled]
+  -mclzero                         [enabled]
@@ -69 +69 @@
-  -mf16c                           [disabled]
+  -mf16c                           [enabled]
@@ -74 +74 @@
-  -mfma                            [disabled]
+  -mfma                            [enabled]
@@ -80 +80 @@
-  -mfsgsbase                       [disabled]
+  -mfsgsbase                       [enabled]
@@ -105 +105 @@
-  -mlzcnt                          [disabled]
+  -mlzcnt                          [enabled]
@@ -111 +111 @@
-  -mmovbe                          [disabled]
+  -mmovbe                          [enabled]
@@ -117 +117 @@
-  -mmwaitx                         [disabled]
+  -mmwaitx                         [enabled]
@@ -139 +139 @@
-  -mprfchw                         [disabled]
+  -mprfchw                         [enabled]
@@ -142,3 +142,3 @@
-  -mrdpid                          [disabled]
-  -mrdrnd                          [disabled]
-  -mrdseed                         [disabled]
+  -mrdpid                          [enabled]
+  -mrdrnd                          [enabled]
+  -mrdseed                         [enabled]
@@ -156 +156 @@
-  -msha                            [disabled]
+  -msha                            [enabled]
@@ -167 +167 @@
-  -msse4a                          [disabled]
+  -msse4a                          [enabled]
@@ -184 +184 @@
-  -mtune=                          sandybridge
+  -mtune=                          znver2
@@ -193 +193 @@
-  -mwbnoinvd                       [disabled]
+  -mwbnoinvd                       [enabled]
@@ -198 +198 @@
-  -mxsavec                         [disabled]
+  -mxsavec                         [enabled]
@@ -200 +200 @@
-  -mxsaves                         [disabled]
+  -mxsaves                         [enabled]
trofi commented 2 years ago

Can you run the script with znver2 as a baseline instead of the default? It should generate shorter diff.

-  -mtune=                            sandybridge
+  -mtune=                            znver2
Gooberpatrol66 commented 2 years ago

arch=znver2; for t in param target; do cmd="gcc -Q -O2 -march=$arch --help=$t"; diff -U0 <(LANG=C $cmd) <(LANG=C $cmd -march=native); done This returns nothing.

Gooberpatrol66 commented 2 years ago

I tried running it again and it ran for quite a while before erroring again.

nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
nongnu/packages/steam-client.scm:546:7: warning: importing module (ice-9 getopt-long) from the host
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
substitute: Backtrace:
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 17 (with-exception-handler _ _ #:unwind? _ # _)
substitute: In unknown file:
substitute:           16 (apply-smob/0 #<thunk 7f7515c35f60>)
substitute: In ice-9/boot-9.scm:
substitute:     724:2 15 (call-with-prompt _ _ #<procedure default-prompt-handle?>)
substitute: In ice-9/eval.scm:
substitute:     619:8 14 (_ #(#(#<directory (guile-user) 7f7515c2ec80>)))
substitute: In guix/ui.scm:
substitute:   2166:12 13 (run-guix-command _ . _)
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 12 (with-exception-handler _ _ #:unwind? _ # _)
substitute:   1752:10 11 (with-exception-handler _ _ #:unwind? _ # _)
substitute:   1747:15 10 (with-exception-handler #<procedure 7f75136049c0 at ic?> ?)
substitute: In guix/scripts/substitute.scm:
substitute:    751:18  9 (_)
substitute:     350:7  8 (process-query #<output: file 4> _ #:cache-urls _ #:acl _)
substitute: In srfi/srfi-1.scm:
substitute:     634:9  7 (for-each #<procedure 7f750b451ec0 at guix/scripts/sub?> ?)
substitute: In guix/scripts/substitute.scm:
substitute:    295:16  6 (_ #<<narinfo> path: "/gnu/store/q81h9lqm7xj2x3nhiixxnc?>)
substitute: In guix/narinfo.scm:
substitute:     343:2  5 (narinfo-best-uri _ #:fast-decompression? _)
substitute: In ice-9/boot-9.scm:
substitute:   1685:16  4 (raise-exception _ #:continuable? _)
substitute:   1685:16  3 (raise-exception _ #:continuable? _)
substitute:   1780:13  2 (_ #<&compound-exception components: (#<&error> #<&orig?>)
substitute:   1685:16  1 (raise-exception _ #:continuable? _)
substitute:   1685:16  0 (raise-exception _ #:continuable? _)
substitute: 
substitute: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
substitute: Throw to key `match-error' with args `("match" "no matching pattern" ())'.
guix upgrade: error: `/usr/bin/guix substitute' died unexpectedly

Makes me think the error only triggers when the install process tries to install a nonguix package. Have you tried running upgrade with out of date packages from nonguix in your profile?

trofi commented 2 years ago

I have an empty profile in this chroot. Can you give me exact sequence of commands for me to try?

trofi commented 2 years ago

It looks like there is a missing match fallback in narinfo-best-uri somewhere around https://git.savannah.gnu.org/cgit/guix.git/tree/guix/narinfo.scm#n311 and available compression methods. Maybe older released guix does not handle some newer nar features.

If you are familiar with guile you can add a bit of debugging there to find out what is an input to that function to make it fail for you.

trofi commented 2 years ago

I wonder if the below does not handle zero-length arrays:

  ; ...
  (match (sort choices (if fast-decompression? (negate speed<?) file-size<?))
    (((uri compression file-size) _ ...)
     (values uri compression file-size))))
Gooberpatrol66 commented 2 years ago

I have an empty profile in this chroot. Can you give me exact sequence of commands for me to try?

I guess "guix install firefox" (or whatever updates the most frequently) then wait for a new version to hit the substitute server, then "guix pull" + "guix upgrade".

trofi commented 2 years ago

I don't think it works as is if your guix us /usr/bin/guix. It does not include channels:

$ guix install firefox
guix install: error: firefox: unknown package

But the good news is ... install crashes on vanilla ~arch system \o/:

# ~/.config/guix/current/bin/guix install firefox
hint: Consider installing the `glibc-locales' package and defining `GUIX_LOCPATH', along these lines:

     guix install glibc-locales
     export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

See the "Application Setup" section in the manual, for more info.

The following package will be installed:
   firefox 96.0.2

substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
substitute: Backtrace:
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 17 (with-exception-handler _ _ #:unwind? _ # _)
substitute: In unknown file:
substitute:           16 (apply-smob/0 #<thunk 7f9c9d181f60>)
substitute: In ice-9/boot-9.scm:
substitute:     724:2 15 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
substitute: In ice-9/eval.scm:
substitute:     619:8 14 (_ #(#(#<directory (guile-user) 7f9c9d17ac80>)))
substitute: In guix/ui.scm:
substitute:   2166:12 13 (run-guix-command _ . _)
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 12 (with-exception-handler _ _ #:unwind? _ # _)
substitute:   1752:10 11 (with-exception-handler _ _ #:unwind? _ # _)
substitute:   1747:15 10 (with-exception-handler #<procedure 7f9c99edac60 at ic…> …)
substitute: In guix/scripts/substitute.scm:
substitute:    751:18  9 (_)
substitute:     350:7  8 (process-query #<output: file 4> _ #:cache-urls _ #:acl _)
substitute: In srfi/srfi-1.scm:
substitute:     634:9  7 (for-each #<procedure 7f9c9bf64a40 at guix/scripts/sub…> …)
substitute: In guix/scripts/substitute.scm:
substitute:    295:16  6 (_ #<<narinfo> path: "/gnu/store/wil1553pi7k7p50kygcw2d…>)
substitute: In guix/narinfo.scm:
substitute:     343:2  5 (narinfo-best-uri _ #:fast-decompression? _)
substitute: In ice-9/boot-9.scm:
substitute:   1685:16  4 (raise-exception _ #:continuable? _)
substitute:   1685:16  3 (raise-exception _ #:continuable? _)
substitute:   1780:13  2 (_ #<&compound-exception components: (#<&error> #<&orig…>)
substitute:   1685:16  1 (raise-exception _ #:continuable? _)
substitute:   1685:16  0 (raise-exception _ #:continuable? _)
substitute:
substitute: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
substitute: Throw to key `match-error' with args `("match" "no matching pattern" ())'.
guix install: error: `/usr/bin/guix substitute' died unexpectedly

I'll poke at it a bit more.

trofi commented 2 years ago

I debugged it a bit and I think there are 3 problems:

  1. Missing zstd compression support in guix-daemon (because daemon is from ebuild, not most recent guix pull, uses ebuild's configuration)
  2. ebuild does not provide zstd compression support at all.
  3. guix does not handle missing zstd support with grace. instead of nicely falling back to substituition or explanation message it just crashes on failed pattern match.

I'll try to fix at least [2.] so ebuild's guix would be good enough to for zstd

Gooberpatrol66 commented 2 years ago

I don't think it works as is if your guix us /usr/bin/guix. It does not include channels:

?

You're right, but then I don't know how I installed firefox in the first place. What controls which guix is used?

trofi commented 2 years ago

I don't think it works as is if your guix us /usr/bin/guix. It does not include channels:

?

You're right, but then I don't know how I installed firefox in the first place. What controls which guix is used?

Maybe you had PATH= that pointed to your profile previously? (or similar) Normally you are expected to have PATH= to be able to use installed programs.

If you install dev-scheme/guile-zstd it should be enough to repair already installed daemon. I did not have to rebuild it andnly had to restart. I managed to fetch firefox.

I hope it will be enough to unblock you.

I'll have a look at more robust error handling in guix-daemon.

trofi commented 2 years ago

I hope this error message is slightly more informative:

# ~/.config/guix/current/bin/guix install firefox
hint: Consider installing the `glibc-locales' package and defining `GUIX_LOCPATH', along these lines:

     guix install glibc-locales
     export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

See the "Application Setup" section in the manual, for more info.

The following package will be installed:
   firefox 96.0.2

substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://substitutes.nonguix.org'... 100.0%
substitute: guix substitute: error: unsupported compression methods '(zstd)' at 'https://substitutes.nonguix.org'
guix install: error: `/usr/bin/guix substitute' died unexpectedly

With dev-scheme/guile-zstd installed firefox install succeeds on guix-1.3.0-r4.

Gooberpatrol66 commented 2 years ago

Thank you, it works now. What is the correct way to use ~/.config/guix/current/bin/guix? I put

export GUIX_PROFILE="${HOME}/.guix-profile"
export GUIX_LOCPATH="${GUIX_PROFILE}/lib/locale"
source "${GUIX_PROFILE}/etc/profile"
hash guix

in bashrc and profile and I get /usr/bin/guix.

trofi commented 2 years ago

Good question. I usually don't change PATH as I use Gentoo-provided tools most of the time.

From what I understand in addition to what you already have you need to also source guix/current profile. guix pull itself suggests:

     GUIX_PROFILE="${HOME}/.config/guix/current"
     . "$GUIX_PROFILE/etc/profile"

Alternately, see `guix package --search-paths -p "${HOME}/.config/guix/current"'.

Note that it's slightly different from ${HOME}/.guix-profile and neither implies another:

$ ls ~/.guix-profile/bin/
re2c  re2go
$ ls ~/.config/guix/current/bin/
guix  guix-daemon

https://guix.gnu.org/manual/en/html_node/Invoking-guix-pull.html also suggests adding

export PATH="$HOME/.config/guix/current/bin:$PATH"
export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"

to get that fresh guix available.

Gooberpatrol66 commented 2 years ago

That worked, thank you.

trofi commented 2 years ago

Added the suggestion to doc as https://github.com/trofi/nix-guix-gentoo/commit/a93ef994e939b128030a0310a2aa4b5ea5c17ced