Subject: Sequoia OpenPGP (libsequoia) build fails

From: Philip McGrath <[email-masked]>
Date: Tue, 15 Nov 2022 23:20:03 -0500

The Sequoia OpenPGP packages are failing to build due to an error while
building libsequoia. Here's the tail of the build log; I've attached the full
log:

---8<---------------cut here---------------start------------->8---
   Compiling openssl-macros v0.1.0
   Compiling sequoia-ffi-macros v0.22.0 (/tmp/guix-build-libsequoia-0.22.0.drv-0/source/ffi-macros)
error[E0659]: `parse_quote_spanned` is ambiguous
   --> /tmp/guix-build-libsequoia-0.22.0.drv-0/source/guix-vendor/rust-pin-project-internal-0.4.22.tar.gz/src/pin_project/derive.rs:859:67
    |
859 |                 proj_generics.make_where_clause().predicates.push(parse_quote_spanned! { span =>
    |                                                                   ^^^^^^^^^^^^^^^^^^^ ambiguous name
    |
    = note: ambiguous because of a conflict between a `macro_rules` name and a non-`macro_rules` name from another module
note: `parse_quote_spanned` could refer to the macro defined here
   --> /tmp/guix-build-libsequoia-0.22.0.drv-0/source/guix-vendor/rust-pin-project-internal-0.4.22.tar.gz/src/utils.rs:22:1
    |
22  | / macro_rules! parse_quote_spanned {
23  | |     ($span:expr => $($tt:tt)*) => {
24  | |         syn::parse2(quote::quote_spanned!($span => $($tt)*)).unwrap_or_else(|e| panic!("{}", e))
25  | |     };
26  | | }
    | |_^
note: `parse_quote_spanned` could also refer to the macro imported here
   --> /tmp/guix-build-libsequoia-0.22.0.drv-0/source/guix-vendor/rust-pin-project-internal-0.4.22.tar.gz/src/pin_project/derive.rs:7:5
    |
7   |     *,
    |     ^
    = help: use `self::parse_quote_spanned` to refer to this macro unambiguously

error[E0659]: `parse_quote_spanned` is ambiguous
   --> /tmp/guix-build-libsequoia-0.22.0.drv-0/source/guix-vendor/rust-pin-project-internal-0.4.22.tar.gz/src/pinned_drop.rs:108:21
    |
108 |             *path = parse_quote_spanned! { path.span() =>
    |                     ^^^^^^^^^^^^^^^^^^^ ambiguous name
    |
    = note: ambiguous because of a conflict between a `macro_rules` name and a non-`macro_rules` name from another module
note: `parse_quote_spanned` could refer to the macro defined here
   --> /tmp/guix-build-libsequoia-0.22.0.drv-0/source/guix-vendor/rust-pin-project-internal-0.4.22.tar.gz/src/utils.rs:22:1
    |
22  | / macro_rules! parse_quote_spanned {
23  | |     ($span:expr => $($tt:tt)*) => {
24  | |         syn::parse2(quote::quote_spanned!($span => $($tt)*)).unwrap_or_else(|e| panic!("{}", e))
25  | |     };
26  | | }
    | |_^
note: `parse_quote_spanned` could also refer to the macro imported here
   --> /tmp/guix-build-libsequoia-0.22.0.drv-0/source/guix-vendor/rust-pin-project-internal-0.4.22.tar.gz/src/pinned_drop.rs:3:50
    |
3   | use syn::{spanned::Spanned, visit_mut::VisitMut, *};
    |                                                  ^
    = help: use `self::parse_quote_spanned` to refer to this macro unambiguously

For more information about this error, try `rustc --explain E0659`.
error: could not compile `pin-project-internal` due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
error: build failed
make: *** [Makefile:61: build-release] Error 101
make: Leaving directory '/tmp/guix-build-libsequoia-0.22.0.drv-0/source/ffi'
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-C" "ffi" "build-release") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `build' failed after 181.5 seconds
command "make" "-C" "ffi" "build-release" failed with status 2
builder for `/gnu/store/lsj2mq9lbfs60f6wfi9ixrbajfvr7p9s-libsequoia-0.22.0.drv' failed with exit code 1
build of /gnu/store/lsj2mq9lbfs60f6wfi9ixrbajfvr7p9s-libsequoia-0.22.0.drv failed
View build log at '/var/log/guix/drvs/ls/j2mq9lbfs60f6wfi9ixrbajfvr7p9s-libsequoia-0.22.0.drv.bz2'.
cannot build derivation `/gnu/store/bcvm7b85cdqv68dx843mrs782a1s03ij-sequoia-1.6.0.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/bcvm7b85cdqv68dx843mrs782a1s03ij-sequoia-1.6.0.drv' failed
---8<---------------cut here---------------end--------------->8---

If I understand https://ci.guix.gnu.org/build/1330033/details correctly, it
seems like the build has been failing for this reason since at least
September 5, though it succeeded September 1. I encountered the error using:

---8<---------------cut here---------------start------------->8---
philip@bastet:~$ guix describe --format=channels
(list (channel
        (name 'guix)
        (url "https://git.savannah.gnu.org/git/guix.git")
        (branch "master")
        (commit
          "5512915c3bd62e061bd47d440da02e0826c1d0e7")
        (introduction
          (make-channel-introduction
            "9edb3f66fd807b096b48283debdcddccfea34bad"
            (openpgp-fingerprint
              "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA")))))
---8<---------------cut here---------------end--------------->8---

-Philip