Package: rustc
Version: 1.79.0+dfsg1-2
X-Debbugs-Cc: mips6...@buildd.debian.org, rust-sequoia-...@packages.debian.org
Control: affects -1 src:rust-sequoia-sop

Hey mips64el builders--

https://buildd.debian.org/status/fetch.php?pkg=rust-sequoia-sop&arch=mips64el&ver=0.35.0-3&stamp=1721479018&raw=0
shows that rust-sequoia-sop 0.35.0-3 fails to build from source on mips64el.

It builds fine on all the other debian platforms.

I've copied what appear to the the relevant error messages, with a
little bit of context, at the end of this message.

0.35.0-1 build successfully on mips64el -- but there are two significant
differences between the versions:

 - 0.35.0-3 is building one additional binary, "sqopv", which was not
   being built by 0.35.0-1

 - 0.35.0-3 add "-C codegen-units=1" to RUSTFLAGS, in an attempt to
   reduce the size of the sqop and sqopv binaries.

Given that this error is happening in dh_auto_test, before sqopv is
getting built, i tend to think it's the RUSTFLAGS change.

I'm going to try removing the RUSTFLAGS change on mips64el to see
whether it can build successfully, but this suggests that there may be
some platform-specific bugs in rustc that put mips64el at risk.

I welcome any suggestions or pointers for other ways to resolve this!

Thanks for maintaining rustc in debian!

         --dkg


```
     Running `CARGO=/usr/bin/cargo CARGO_CRATE_NAME=sequoia_sop 
CARGO_MANIFEST_DIR=/<<PKGBUILDDIR>> CARGO_PKG_AUTHORS='Justus Winter 
<jus...@sequoia-pgp.org>' CARGO_PKG_DESCRIPTION='An implementation of the 
Stateless OpenPGP Interface using Sequoia' 
CARGO_PKG_HOMEPAGE='https://sequoia-pgp.org/' 
CARGO_PKG_LICENSE=GPL-2.0-or-later CARGO_PKG_LICENSE_FILE='' 
CARGO_PKG_NAME=sequoia-sop CARGO_PKG_README=README.md 
CARGO_PKG_REPOSITORY='https://gitlab.com/sequoia-pgp/sequoia-sop' 
CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.35.0 CARGO_PKG_VERSION_MAJOR=0 
CARGO_PKG_VERSION_MINOR=35 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' 
CARGO_PRIMARY_PACKAGE=1 CARGO_RUSTC_CURRENT_DIR=/<<PKGBUILDDIR>> 
LD_LIBRARY_PATH=/<<PKGBUILDDIR>>/target/debug/deps 
OUT_DIR=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/build/sequoia-sop-f5bc5e9e498cf4f4/out
 rustc --crate-name sequoia_sop --edition=2021 src/lib.rs --error-format=json 
--json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib 
--emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 
'feature="default"' -C metadata=5eb83a1627594449 -C 
extra-filename=-5eb83a1627594449 --out-dir 
/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps --target 
mips64el-unknown-linux-gnuabi64 -C 
incremental=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/incremental
 -L 
dependency=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps 
-L dependency=/<<PKGBUILDDIR>>/target/debug/deps --extern 
anyhow=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libanyhow-6b4ca0a2ff29fed5.rmeta
 --extern 
sequoia_openpgp=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsequoia_openpgp-c8df2195a74c1140.rmeta
 --extern 
sop=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsop-4d091cf357cb81c2.rmeta
 -C debuginfo=2 -C strip=none --cap-lints warn -C 
linker=mips64el-linux-gnuabi64-gcc -C link-arg=-Wl,-z,relro --remap-path-prefix 
/<<PKGBUILDDIR>>=/usr/share/cargo/registry/sequoia-sop-0.35.0 
--remap-path-prefix 
/<<PKGBUILDDIR>>/debian/cargo_registry=/usr/share/cargo/registry -C 
codegen-units=1 -L native=/usr/lib/mips64el-linux-gnuabi64 -L 
native=/usr/lib/mips64el-linux-gnuabi64 -L 
native=/usr/lib/mips64el-linux-gnuabi64`
warning: `sequoia-openpgp` (lib) generated 5 warnings
     Running `CARGO=/usr/bin/cargo CARGO_CRATE_NAME=sequoia_sop 
CARGO_MANIFEST_DIR=/<<PKGBUILDDIR>> CARGO_PKG_AUTHORS='Justus Winter 
<jus...@sequoia-pgp.org>' CARGO_PKG_DESCRIPTION='An implementation of the 
Stateless OpenPGP Interface using Sequoia' 
CARGO_PKG_HOMEPAGE='https://sequoia-pgp.org/' 
CARGO_PKG_LICENSE=GPL-2.0-or-later CARGO_PKG_LICENSE_FILE='' 
CARGO_PKG_NAME=sequoia-sop CARGO_PKG_README=README.md 
CARGO_PKG_REPOSITORY='https://gitlab.com/sequoia-pgp/sequoia-sop' 
CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.35.0 CARGO_PKG_VERSION_MAJOR=0 
CARGO_PKG_VERSION_MINOR=35 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' 
CARGO_PRIMARY_PACKAGE=1 CARGO_RUSTC_CURRENT_DIR=/<<PKGBUILDDIR>> 
LD_LIBRARY_PATH=/<<PKGBUILDDIR>>/target/debug/deps 
OUT_DIR=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/build/sequoia-sop-f5bc5e9e498cf4f4/out
 rustc --crate-name sequoia_sop --edition=2021 src/lib.rs --error-format=json 
--json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,link 
-C embed-bitcode=no -C debuginfo=2 --test --cfg 'feature="default"' -C 
metadata=07411ef21101d0bf -C extra-filename=-07411ef21101d0bf --out-dir 
/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps --target 
mips64el-unknown-linux-gnuabi64 -C 
incremental=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/incremental
 -L 
dependency=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps 
-L dependency=/<<PKGBUILDDIR>>/target/debug/deps --extern 
anyhow=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libanyhow-6b4ca0a2ff29fed5.rlib
 --extern 
sequoia_openpgp=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsequoia_openpgp-c8df2195a74c1140.rlib
 --extern 
sop=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsop-4d091cf357cb81c2.rlib
 -C debuginfo=2 -C strip=none --cap-lints warn -C 
linker=mips64el-linux-gnuabi64-gcc -C link-arg=-Wl,-z,relro --remap-path-prefix 
/<<PKGBUILDDIR>>=/usr/share/cargo/registry/sequoia-sop-0.35.0 
--remap-path-prefix 
/<<PKGBUILDDIR>>/debian/cargo_registry=/usr/share/cargo/registry -C 
codegen-units=1 -L native=/usr/lib/mips64el-linux-gnuabi64 -L 
native=/usr/lib/mips64el-linux-gnuabi64 -L 
native=/usr/lib/mips64el-linux-gnuabi64`
error: linking with `mips64el-linux-gnuabi64-gcc` failed: exit status: 1
  |
  = note: LC_ALL="C" 
PATH="/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
 VSLANG="1033" "mips64el-linux-gnuabi64-gcc" "/tmp/rustcjUBVf6/symbols.o" 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/sequoia_sop-07411ef21101d0bf.29bjw53pvz5f8pn4.rcgu.o"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/sequoia_sop-07411ef21101d0bf.59usifvhtj9e4ku5.rcgu.o"
 "-Wl,--as-needed" "-L" 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps" "-L" 
"/<<PKGBUILDDIR>>/target/debug/deps" "-L" "/usr/lib/mips64el-linux-gnuabi64" 
"-L" "/usr/lib/mips64el-linux-gnuabi64" "-L" "/usr/lib/mips64el-linux-gnuabi64" 
"-L" "/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib" "-Wl,-Bstatic" 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libtest-63a21879fa25737f.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libgetopts-ba9f480d9a6253e5.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libunicode_width-e287ea0dee2c051f.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/librustc_std_workspace_std-3cd4b6df24fc3a31.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsop-4d091cf357cb81c2.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsequoia_openpgp-c8df2195a74c1140.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libidna-f4c5895443cd9e40.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libunicode_normalization-a6087741adbd8357.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsmallvec-0187479aec1140bf.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libunicode_bidi-6d87bbfde144f8d1.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libmemsec-8990a5536f60611d.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsha1collisiondetection-5deab74664e09602.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libgeneric_array-9ad02e5fed487439.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/liblalrpop_util-cdb431b4b3ca69d3.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libanyhow-6b4ca0a2ff29fed5.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libregex-c89aaf2337fca270.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libregex_automata-859d2ac1d67a1c1b.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libaho_corasick-e13fda371625013d.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libmemchr-386394a4debfc879.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libregex_syntax-424fa046c2e564fe.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libonce_cell-bcbd0a538d1f0600.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libxxhash_rust-31e4c49dba0d44a8.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libdyn_clone-8b0a373f58ab5d11.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libnettle-5d3c65328cf0618a.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libthiserror-be675a9aa0345310.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libtypenum-271a9325283e0f5a.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libgetrandom-6753e3ad5ab21085.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libnettle_sys-67c00b4b5b29f269.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libbase64-7d88e7bba5dc21c9.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libbuffered_reader-fe116d014e9460ea.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/liblazy_static-b98f061fd3a9ef72.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libbzip2-bb4d802b571d05e2.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libbzip2_sys-12167a022fd890a7.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/liblibc-58e7a87cc266a4c1.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libflate2-3aee4485c7e8c2b5.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libminiz_oxide-89350b78ec0d8105.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libadler-c83a785111fbcb44.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libcrc32fast-14bb1e3ce076f11d.rlib"
 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libcfg_if-3448a7abd9fba448.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libstd-0bf33bbef1d64495.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libpanic_unwind-fd2f451f66c81b28.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libobject-0a91403957faab21.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libmemchr-34e66d3fbecea3a8.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libaddr2line-4183730635a0ad2f.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libgimli-21b56ab587c84631.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/librustc_demangle-3b49d319be0bf8e8.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libstd_detect-0e273e30a24ee100.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libhashbrown-8726328bc837e5b2.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/librustc_std_workspace_alloc-76d3ae0444851546.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libminiz_oxide-d0f00db485d8ad96.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libadler-f70e36fcd5c9d2ec.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libunwind-4549c3f7450083b2.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libcfg_if-3c98766a17817f59.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/liblibc-395533def0514ad5.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/liballoc-94e63d8c71c2b7a9.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/librustc_std_workspace_core-1df00174bc6eb4c5.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libcore-af4bafbfd00d09f8.rlib"
 
"/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib/libcompiler_builtins-08e298af9df458c5.rlib"
 "-Wl,-Bdynamic" "-lnettle" "-lhogweed" "-lgmp" "-lbz2" "-lgcc_s" "-lutil" 
"-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" 
"-L" "/usr/lib/rustlib/mips64el-unknown-linux-gnuabi64/lib" "-o" 
"/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/sequoia_sop-07411ef21101d0bf"
 "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" 
"-Wl,-z,relro"
  = note: 
/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsequoia_openpgp-c8df2195a74c1140.rlib(sequoia_openpgp-c8df2195a74c1140.sequoia_openpgp.f45313a004cdb216-cgu.0.rcgu.o):
 in function `std::hash::random::RandomState::new::KEYS::__getit':
          
/usr/src/rustc-1.79.0/library/std/src/sys/thread_local/fast_local.rs:93:(.text._ZN3std4hash6random11RandomState3new4KEYS7__getit17hf1d4ca09b6309bdaE+0x38):
 relocation truncated to fit: R_MIPS_TLS_GD against 
`std::hash::random::RandomState::new::KEYS::__getit::__KEY'
          collect2: error: ld returned 1 exit status
          

error: could not compile `sequoia-sop` (lib test) due to 1 previous error

Caused by:
  process didn't exit successfully: `CARGO=/usr/bin/cargo 
CARGO_CRATE_NAME=sequoia_sop CARGO_MANIFEST_DIR=/<<PKGBUILDDIR>> 
CARGO_PKG_AUTHORS='Justus Winter <jus...@sequoia-pgp.org>' 
CARGO_PKG_DESCRIPTION='An implementation of the Stateless OpenPGP Interface 
using Sequoia' CARGO_PKG_HOMEPAGE='https://sequoia-pgp.org/' 
CARGO_PKG_LICENSE=GPL-2.0-or-later CARGO_PKG_LICENSE_FILE='' 
CARGO_PKG_NAME=sequoia-sop CARGO_PKG_README=README.md 
CARGO_PKG_REPOSITORY='https://gitlab.com/sequoia-pgp/sequoia-sop' 
CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.35.0 CARGO_PKG_VERSION_MAJOR=0 
CARGO_PKG_VERSION_MINOR=35 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' 
CARGO_PRIMARY_PACKAGE=1 CARGO_RUSTC_CURRENT_DIR=/<<PKGBUILDDIR>> 
LD_LIBRARY_PATH=/<<PKGBUILDDIR>>/target/debug/deps 
OUT_DIR=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/build/sequoia-sop-f5bc5e9e498cf4f4/out
 rustc --crate-name sequoia_sop --edition=2021 src/lib.rs --error-format=json 
--json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,link 
-C embed-bitcode=no -C debuginfo=2 --test --cfg 'feature="default"' -C 
metadata=07411ef21101d0bf -C extra-filename=-07411ef21101d0bf --out-dir 
/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps --target 
mips64el-unknown-linux-gnuabi64 -C 
incremental=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/incremental
 -L 
dependency=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps 
-L dependency=/<<PKGBUILDDIR>>/target/debug/deps --extern 
anyhow=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libanyhow-6b4ca0a2ff29fed5.rlib
 --extern 
sequoia_openpgp=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsequoia_openpgp-c8df2195a74c1140.rlib
 --extern 
sop=/<<PKGBUILDDIR>>/target/mips64el-unknown-linux-gnuabi64/debug/deps/libsop-4d091cf357cb81c2.rlib
 -C debuginfo=2 -C strip=none --cap-lints warn -C 
linker=mips64el-linux-gnuabi64-gcc -C link-arg=-Wl,-z,relro --remap-path-prefix 
/<<PKGBUILDDIR>>=/usr/share/cargo/registry/sequoia-sop-0.35.0 
--remap-path-prefix 
/<<PKGBUILDDIR>>/debian/cargo_registry=/usr/share/cargo/registry -C 
codegen-units=1 -L native=/usr/lib/mips64el-linux-gnuabi64 -L 
native=/usr/lib/mips64el-linux-gnuabi64 -L 
native=/usr/lib/mips64el-linux-gnuabi64` (exit status: 1)
dh_auto_test: error: /usr/share/cargo/bin/cargo test --all returned exit code 
101
make[1]: *** [debian/rules:29: override_dh_auto_test] Error 25
```

Attachment: signature.asc
Description: PGP signature

Reply via email to