signalapp / libsignal

Home to the Signal Protocol as well as other cryptographic primitives which make Signal possible.
GNU Affero General Public License v3.0
3.06k stars 362 forks source link

does not build with rust 1.69 #519

Closed selfisekai closed 1 year ago

selfisekai commented 1 year ago
error[E0507]: cannot move out of `self.version` which is behind a shared reference
   --> rust/attest/src/dcap/endorsements.rs:276:5
    |
270 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
276 |     version: UInt32LE,
    |     ^^^^^^^^^^^^^^^^^ move occurs because `self.version` has type `endian::UInt32LE`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.enclave_type` which is behind a shared reference
   --> rust/attest/src/dcap/endorsements.rs:279:5
    |
270 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
279 |     enclave_type: UInt32LE,
    |     ^^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.enclave_type` has type `endian::UInt32LE`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.buffer_size` which is behind a shared reference
   --> rust/attest/src/dcap/endorsements.rs:282:5
    |
270 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
282 |     buffer_size: UInt32LE,
    |     ^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.buffer_size` has type `endian::UInt32LE`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.num_elements` which is behind a shared reference
   --> rust/attest/src/dcap/endorsements.rs:285:5
    |
270 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
285 |     num_elements: UInt32LE,
    |     ^^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.num_elements` has type `endian::UInt32LE`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.version` which is behind a shared reference
   --> rust/attest/src/dcap/sgx_quote.rs:105:5
    |
100 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
105 |     version: UInt16LE,
    |     ^^^^^^^^^^^^^^^^^ move occurs because `self.version` has type `endian::UInt16LE`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.sign_type` which is behind a shared reference
   --> rust/attest/src/dcap/sgx_quote.rs:109:5
    |
100 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
109 |     sign_type: UInt16LE,
    |     ^^^^^^^^^^^^^^^^^^^ move occurs because `self.sign_type` has type `endian::UInt16LE`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.qe_svn` which is behind a shared reference
   --> rust/attest/src/dcap/sgx_quote.rs:117:5
    |
100 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
117 |     qe_svn: UInt16LE,
    |     ^^^^^^^^^^^^^^^^ move occurs because `self.qe_svn` has type `endian::UInt16LE`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.pce_svn` which is behind a shared reference
   --> rust/attest/src/dcap/sgx_quote.rs:121:5
    |
100 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
121 |     pce_svn: UInt16LE,
    |     ^^^^^^^^^^^^^^^^^ move occurs because `self.pce_svn` has type `endian::UInt16LE`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.report_body` which is behind a shared reference
   --> rust/attest/src/dcap/sgx_quote.rs:133:5
    |
100 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
133 |     pub report_body: SgxReportBody,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.report_body` has type `SgxReportBody`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.qe_report_body` which is behind a shared reference
   --> rust/attest/src/dcap/sgx_quote.rs:333:5
    |
328 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
333 |     qe_report_body: SgxReportBody,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.qe_report_body` has type `SgxReportBody`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.auth_data_size` which is behind a shared reference
   --> rust/attest/src/dcap/sgx_quote.rs:335:5
    |
328 | #[derive(Debug)]
    |          ----- in this derive macro expansion
...
335 |     auth_data_size: UInt16LE,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.auth_data_size` has type `endian::UInt16LE`, which does not implement the `Copy` trait
    |
    = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.miscselect` which is behind a shared reference
  --> rust/attest/src/dcap/sgx_report_body.rs:33:5
   |
23 | #[derive(Debug)]
   |          ----- in this derive macro expansion
...
33 |     pub miscselect: UInt32LE,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.miscselect` has type `endian::UInt32LE`, which does not implement the `Copy` trait
   |
   = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.isvprodid` which is behind a shared reference
  --> rust/attest/src/dcap/sgx_report_body.rs:72:5
   |
23 | #[derive(Debug)]
   |          ----- in this derive macro expansion
...
72 |     pub isvprodid: UInt16LE,
   |     ^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `self.isvprodid` has type `endian::UInt16LE`, which does not implement the `Copy` trait
   |
   = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self.isvsvn` which is behind a shared reference
  --> rust/attest/src/dcap/sgx_report_body.rs:76:5
   |
23 | #[derive(Debug)]
   |          ----- in this derive macro expansion
...
76 |     pub isvsvn: UInt16LE,
   |     ^^^^^^^^^^^^^^^^^^^^ move occurs because `self.isvsvn` has type `endian::UInt16LE`, which does not implement the `Copy` trait
   |
   = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0507]: cannot move out of `self._configsvn` which is behind a shared reference
  --> rust/attest/src/dcap/sgx_report_body.rs:80:5
   |
23 | #[derive(Debug)]
   |          ----- in this derive macro expansion
...
80 |     _configsvn: UInt16LE,
   |     ^^^^^^^^^^^^^^^^^^^^ move occurs because `self._configsvn` has type `endian::UInt16LE`, which does not implement the `Copy` trait
   |
   = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)

For more information about this error, try `rustc --explain E0507`.
warning: `attest` (lib) generated 2 warnings
error: could not compile `attest` due to 15 previous errors; 2 warnings emitted
bratkartoffel commented 1 year ago

Got another error on my alpine linux builder for the latest release (0.22.2):

error: failed to run custom build command for `boring-sys v2.1.0 (https://github.com/signalapp/boring?branch=libsignal#25e1dd8f)`
note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation.

Caused by:
  process didn't exit successfully: `/home/john/aports/testing/java-libsignal-client/src/libsignal-0.22.2/target/release/build/boring-sys-bb85006e4540c594/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=BORING_BSSL_PATH
  CMAKE_TOOLCHAIN_FILE_x86_64-alpine-linux-musl = None
  CMAKE_TOOLCHAIN_FILE_x86_64_alpine_linux_musl = None
  HOST_CMAKE_TOOLCHAIN_FILE = None
  CMAKE_TOOLCHAIN_FILE = None
  CMAKE_GENERATOR_x86_64-alpine-linux-musl = None
  CMAKE_GENERATOR_x86_64_alpine_linux_musl = None
  HOST_CMAKE_GENERATOR = None
  CMAKE_GENERATOR = None
  CMAKE_PREFIX_PATH_x86_64-alpine-linux-musl = None
  CMAKE_PREFIX_PATH_x86_64_alpine_linux_musl = None
  HOST_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_x86_64-alpine-linux-musl = None
  CMAKE_x86_64_alpine_linux_musl = None
  HOST_CMAKE = None
  CMAKE = None
  running: cd "/home/john/aports/testing/java-libsignal-client/src/libsignal-0.22.2/target/release/build/boring-sys-352acf116d954e26/out/build" && CMAKE_PREFIX_PATH="" "cmake" "/home/john/.cargo/git/checkouts/boring-b37daebd62069023/25e1dd8/boring-sys/deps/boringssl" "-DCMAKE_INSTALL_PREFIX=/home/john/aports/testing/java-libsignal-client/src/libsignal-0.22.2/target/release/build/boring-sys-352acf116d954e26/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64 -fomit-frame-pointer" "-DCMAKE_C_COMPILER=/usr/bin/gcc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64 -fomit-frame-pointer" "-DCMAKE_CXX_COMPILER=/usr/bin/g++" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64 -fomit-frame-pointer" "-DCMAKE_ASM_COMPILER=/usr/bin/gcc" "-DCMAKE_BUILD_TYPE=MinSizeRel"
  -- The C compiler identification is GNU 12.2.1
  -- The CXX compiler identification is GNU 12.2.1
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /usr/bin/gcc - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: /usr/bin/g++ - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- The ASM compiler identification is GNU
  -- Found assembler: /usr/bin/gcc
  -- Configuring done (1.2s)
  -- Generating done (0.0s)
  -- Build files have been written to: /home/john/aports/testing/java-libsignal-client/src/libsignal-0.22.2/target/release/build/boring-sys-352acf116d954e26/out/build
  running: cd "/home/john/aports/testing/java-libsignal-client/src/libsignal-0.22.2/target/release/build/boring-sys-352acf116d954e26/out/build" && MAKEFLAGS="-j --jobserver-fds=11,16 --jobserver-auth=11,16" "cmake" "--build" "." "--target" "crypto" "--config" "MinSizeRel" "--parallel" "20"
  [  0%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S.o
  [  1%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/chacha/chacha-x86_64.S.o
  [  0%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S.o
  [  1%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S.o
  [  2%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S.o
  [  3%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S.o
  [  3%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S.o
  [  3%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/md5-x86_64.S.o
  [  3%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S.o
  [  4%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S.o
  [  4%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S.o
  [  4%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S.o
  [  6%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S.o
  [  6%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S.o
  [  6%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S.o
  [  7%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S.o
  [  7%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/x86_64-mont.S.o
  [  7%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S.o
  [  8%] Building ASM object CMakeFiles/crypto.dir/linux-x86_64/crypto/test/trampoline-x86_64.S.o
  [  8%] Building ASM object CMakeFiles/crypto.dir/src/crypto/hrss/asm/poly_rq_mul.S.o
  [  8%] Building C object CMakeFiles/crypto.dir/err_data.c.o
  [  9%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_bitstr.c.o
  [  9%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_bool.c.o
  [  9%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_d2i_fp.c.o
  [  9%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_dup.c.o
  [ 10%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_enum.c.o
  [ 12%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_gentm.c.o
  [ 12%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_int.c.o
  [ 12%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_i2d_fp.c.o
  [ 12%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_mbstr.c.o
  [ 12%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_object.c.o
  [ 13%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_octet.c.o
  [ 13%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_print.c.o
  [ 14%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_strnid.c.o
  [ 14%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_strex.c.o
  [ 14%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_time.c.o
  [ 14%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_type.c.o
  [ 15%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_utctm.c.o
  [ 15%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/a_utf8.c.o
  [ 15%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/asn1_lib.c.o
  [ 17%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/asn1_par.c.o
  [ 17%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/f_enum.c.o
  [ 18%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/asn_pack.c.o
  [ 18%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/f_int.c.o
  [ 18%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/f_string.c.o
  [ 18%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/tasn_dec.c.o
  [ 19%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/tasn_enc.c.o
  [ 19%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/tasn_fre.c.o
  [ 19%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/tasn_new.c.o
  [ 20%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/tasn_typ.c.o
  [ 20%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/tasn_utl.c.o
  [ 20%] Building C object CMakeFiles/crypto.dir/src/crypto/asn1/time_support.c.o
  [ 21%] Building C object CMakeFiles/crypto.dir/src/crypto/base64/base64.c.o
  [ 21%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/bio.c.o
  [ 23%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/connect.c.o
  [ 23%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/bio_mem.c.o
  [ 23%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/fd.c.o
  [ 23%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/file.c.o
  [ 24%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/hexdump.c.o
  [ 24%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/pair.c.o
  [ 24%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/printf.c.o
  [ 24%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/socket.c.o
  [ 25%] Building C object CMakeFiles/crypto.dir/src/crypto/bio/socket_helper.c.o
  [ 25%] Building C object CMakeFiles/crypto.dir/src/crypto/bn_extra/bn_asn1.c.o
  [ 25%] Building C object CMakeFiles/crypto.dir/src/crypto/blake2/blake2.c.o
  [ 26%] Building C object CMakeFiles/crypto.dir/src/crypto/bn_extra/convert.c.o
  [ 26%] Building C object CMakeFiles/crypto.dir/src/crypto/buf/buf.c.o
  [ 26%] Building C object CMakeFiles/crypto.dir/src/crypto/bytestring/asn1_compat.c.o
  [ 26%] Building C object CMakeFiles/crypto.dir/src/crypto/bytestring/cbb.c.o
  [ 28%] Building C object CMakeFiles/crypto.dir/src/crypto/bytestring/ber.c.o
  [ 28%] Building C object CMakeFiles/crypto.dir/src/crypto/bytestring/cbs.c.o
  [ 29%] Building C object CMakeFiles/crypto.dir/src/crypto/bytestring/unicode.c.o
  [ 29%] Building C object CMakeFiles/crypto.dir/src/crypto/chacha/chacha.c.o
  [ 29%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/cipher_extra.c.o
  [ 30%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/derive_key.c.o
  [ 30%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/e_aesccm.c.o
  [ 30%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/e_aesctrhmac.c.o
  [ 31%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/e_aesgcmsiv.c.o
  [ 31%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/e_chacha20poly1305.c.o
  [ 31%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/e_null.c.o
  [ 32%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/e_rc2.c.o
  [ 32%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/e_rc4.c.o
  [ 32%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/e_tls.c.o
  [ 34%] Building C object CMakeFiles/crypto.dir/src/crypto/cipher_extra/tls_cbc.c.o
  [ 35%] Building C object CMakeFiles/crypto.dir/src/crypto/cmac/cmac.c.o
  [ 35%] Building C object CMakeFiles/crypto.dir/src/crypto/cpu-aarch64-fuchsia.c.o
  [ 35%] Building C object CMakeFiles/crypto.dir/src/crypto/cpu-aarch64-linux.c.o
  [ 35%] Building C object CMakeFiles/crypto.dir/src/crypto/conf/conf.c.o
  [ 35%] Building C object CMakeFiles/crypto.dir/src/crypto/cpu-aarch64-win.c.o
  [ 36%] Building C object CMakeFiles/crypto.dir/src/crypto/cpu-arm.c.o
  [ 36%] Building C object CMakeFiles/crypto.dir/src/crypto/cpu-arm-linux.c.o
  [ 36%] Building C object CMakeFiles/crypto.dir/src/crypto/cpu-intel.c.o
  [ 37%] Building C object CMakeFiles/crypto.dir/src/crypto/cpu-ppc64le.c.o
  [ 37%] Building C object CMakeFiles/crypto.dir/src/crypto/curve25519/curve25519.c.o
  [ 37%] Building C object CMakeFiles/crypto.dir/src/crypto/crypto.c.o
  [ 39%] Building C object CMakeFiles/crypto.dir/src/crypto/curve25519/spake25519.c.o
  [ 39%] Building C object CMakeFiles/crypto.dir/src/crypto/dh_extra/dh_asn1.c.o
  [ 39%] Building C object CMakeFiles/crypto.dir/src/crypto/dh_extra/params.c.o
  [ 39%] Building C object CMakeFiles/crypto.dir/src/crypto/digest_extra/digest_extra.c.o
  [ 40%] Building C object CMakeFiles/crypto.dir/src/crypto/dsa/dsa.c.o
  [ 40%] Building C object CMakeFiles/crypto.dir/src/crypto/dsa/dsa_asn1.c.o
  [ 40%] Building C object CMakeFiles/crypto.dir/src/crypto/ec_extra/ec_asn1.c.o
  [ 41%] Building C object CMakeFiles/crypto.dir/src/crypto/ec_extra/ec_derive.c.o
  [ 41%] Building C object CMakeFiles/crypto.dir/src/crypto/ec_extra/hash_to_curve.c.o
  [ 41%] Building C object CMakeFiles/crypto.dir/src/crypto/ecdh_extra/ecdh_extra.c.o
  [ 42%] Building C object CMakeFiles/crypto.dir/src/crypto/ecdsa_extra/ecdsa_asn1.c.o
  [ 42%] Building C object CMakeFiles/crypto.dir/src/crypto/engine/engine.c.o
  [ 42%] Building C object CMakeFiles/crypto.dir/src/crypto/err/err.c.o
  [ 43%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/digestsign.c.o
  [ 43%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/evp.c.o
  [ 43%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/evp_asn1.c.o
  [ 45%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/evp_ctx.c.o
  [ 45%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/p_dsa_asn1.c.o
  [ 45%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/p_ec.c.o
  [ 45%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/p_ed25519.c.o
  [ 46%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/p_ec_asn1.c.o
  [ 46%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/p_ed25519_asn1.c.o
  [ 47%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/p_rsa_asn1.c.o
  [ 47%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/p_rsa.c.o
  [ 47%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/p_x25519.c.o
  [ 48%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/p_x25519_asn1.c.o
  [ 48%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/pbkdf.c.o
  [ 48%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/print.c.o
  [ 50%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/scrypt.c.o
  [ 50%] Building C object CMakeFiles/crypto.dir/src/crypto/evp/sign.c.o
  [ 50%] Building C object CMakeFiles/crypto.dir/src/crypto/ex_data.c.o
  [ 51%] Building C object CMakeFiles/crypto.dir/src/crypto/fipsmodule/bcm.c.o
  [ 51%] Building C object CMakeFiles/crypto.dir/src/crypto/hkdf/hkdf.c.o
  [ 52%] Building C object CMakeFiles/crypto.dir/src/crypto/hpke/hpke.c.o
  [ 52%] Building C object CMakeFiles/crypto.dir/src/crypto/fipsmodule/fips_shared_support.c.o
  [ 52%] Building C object CMakeFiles/crypto.dir/src/crypto/hrss/hrss.c.o
  [ 52%] Building C object CMakeFiles/crypto.dir/src/crypto/lhash/lhash.c.o
  [ 53%] Building C object CMakeFiles/crypto.dir/src/crypto/mem.c.o
  [ 53%] Building C object CMakeFiles/crypto.dir/src/crypto/obj/obj.c.o
  [ 53%] Building C object CMakeFiles/crypto.dir/src/crypto/obj/obj_xref.c.o
  [ 54%] Building C object CMakeFiles/crypto.dir/src/crypto/pem/pem_all.c.o
  [ 54%] Building C object CMakeFiles/crypto.dir/src/crypto/pem/pem_info.c.o
  [ 54%] Building C object CMakeFiles/crypto.dir/src/crypto/pem/pem_lib.c.o
  [ 54%] Building C object CMakeFiles/crypto.dir/src/crypto/pem/pem_oth.c.o
  [ 56%] Building C object CMakeFiles/crypto.dir/src/crypto/pem/pem_pk8.c.o
  [ 56%] Building C object CMakeFiles/crypto.dir/src/crypto/pem/pem_pkey.c.o
  [ 56%] Building C object CMakeFiles/crypto.dir/src/crypto/pem/pem_x509.c.o
  [ 57%] Building C object CMakeFiles/crypto.dir/src/crypto/pem/pem_xaux.c.o
  [ 57%] Building C object CMakeFiles/crypto.dir/src/crypto/pkcs7/pkcs7.c.o
  [ 57%] Building C object CMakeFiles/crypto.dir/src/crypto/pkcs7/pkcs7_x509.c.o
  [ 58%] Building C object CMakeFiles/crypto.dir/src/crypto/pkcs8/p5_pbev2.c.o
  [ 58%] Building C object CMakeFiles/crypto.dir/src/crypto/pkcs8/pkcs8_x509.c.o
  [ 58%] Building C object CMakeFiles/crypto.dir/src/crypto/pkcs8/pkcs8.c.o
  [ 59%] Building C object CMakeFiles/crypto.dir/src/crypto/poly1305/poly1305.c.o
  [ 59%] Building C object CMakeFiles/crypto.dir/src/crypto/poly1305/poly1305_arm.c.o
  [ 59%] Building C object CMakeFiles/crypto.dir/src/crypto/poly1305/poly1305_vec.c.o
  [ 60%] Building C object CMakeFiles/crypto.dir/src/crypto/pool/pool.c.o
  [ 60%] Building C object CMakeFiles/crypto.dir/src/crypto/rand_extra/deterministic.c.o
  [ 60%] Building C object CMakeFiles/crypto.dir/src/crypto/rand_extra/forkunsafe.c.o
  [ 62%] Building C object CMakeFiles/crypto.dir/src/crypto/rand_extra/fuchsia.c.o
  [ 62%] Building C object CMakeFiles/crypto.dir/src/crypto/rand_extra/passive.c.o
  [ 62%] Building C object CMakeFiles/crypto.dir/src/crypto/rand_extra/rand_extra.c.o
  [ 63%] Building C object CMakeFiles/crypto.dir/src/crypto/rand_extra/windows.c.o
  [ 63%] Building C object CMakeFiles/crypto.dir/src/crypto/rc4/rc4.c.o
  [ 63%] Building C object CMakeFiles/crypto.dir/src/crypto/refcount_c11.c.o
  [ 64%] Building C object CMakeFiles/crypto.dir/src/crypto/refcount_lock.c.o
  [ 64%] Building C object CMakeFiles/crypto.dir/src/crypto/rsa_extra/rsa_asn1.c.o
  [ 64%] Building C object CMakeFiles/crypto.dir/src/crypto/rsa_extra/rsa_print.c.o
  [ 65%] Building C object CMakeFiles/crypto.dir/src/crypto/siphash/siphash.c.o
  [ 65%] Building C object CMakeFiles/crypto.dir/src/crypto/stack/stack.c.o
  [ 65%] Building C object CMakeFiles/crypto.dir/src/crypto/thread.c.o
  [ 67%] Building C object CMakeFiles/crypto.dir/src/crypto/thread_none.c.o
  [ 67%] Building C object CMakeFiles/crypto.dir/src/crypto/thread_pthread.c.o
  [ 67%] Building C object CMakeFiles/crypto.dir/src/crypto/thread_win.c.o
  [ 68%] Building C object CMakeFiles/crypto.dir/src/crypto/trust_token/pmbtoken.c.o
  [ 68%] Building C object CMakeFiles/crypto.dir/src/crypto/trust_token/trust_token.c.o
  [ 68%] Building C object CMakeFiles/crypto.dir/src/crypto/trust_token/voprf.c.o
  [ 69%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/a_digest.c.o
  [ 69%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/a_verify.c.o
  [ 69%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/a_sign.c.o
  [ 69%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/by_file.c.o
  [ 70%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/algorithm.c.o
  [ 70%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/asn1_gen.c.o
  [ 70%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/by_dir.c.o
  [ 70%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/name_print.c.o
  [ 71%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/i2d_pr.c.o
  [ 71%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/rsa_pss.c.o
  [ 73%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/t_crl.c.o
  [ 73%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/t_req.c.o
  [ 73%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/t_x509.c.o
  [ 74%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/t_x509a.c.o
  [ 74%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509.c.o
  [ 74%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_att.c.o
  [ 75%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_d2.c.o
  [ 75%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_cmp.c.o
  [ 75%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_def.c.o
  [ 76%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_ext.c.o
  [ 76%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_lu.c.o
  [ 76%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_obj.c.o
  [ 78%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_req.c.o
  [ 78%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_set.c.o
  [ 78%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_trs.c.o
  [ 79%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_txt.c.o
  [ 79%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_v3.c.o
  [ 79%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_vfy.c.o
  [ 80%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509_vpm.c.o
  [ 80%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509cset.c.o
  [ 80%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509name.c.o
  [ 81%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509rset.c.o
  [ 81%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x509spki.c.o
  [ 81%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_algor.c.o
  [ 82%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_all.c.o
  [ 82%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_attrib.c.o
  [ 82%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_crl.c.o
  [ 84%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_exten.c.o
  [ 84%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_info.c.o
  [ 84%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_name.c.o
  [ 85%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_pkey.c.o
  [ 85%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_pubkey.c.o
  [ 85%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_req.c.o
  [ 85%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_sig.c.o
  [ 86%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_val.c.o
  [ 86%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_x509.c.o
  [ 86%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_spki.c.o
  [ 87%] Building C object CMakeFiles/crypto.dir/src/crypto/x509/x_x509a.c.o
  [ 87%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/pcy_cache.c.o
  [ 87%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/pcy_data.c.o
  [ 89%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/pcy_lib.c.o
  [ 89%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/pcy_map.c.o
  [ 89%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/pcy_node.c.o
  [ 90%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/pcy_tree.c.o
  [ 90%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_akey.c.o
  [ 90%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_akeya.c.o
  [ 91%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_alt.c.o
  [ 91%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_bcons.c.o
  [ 91%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_bitst.c.o
  [ 92%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_conf.c.o
  [ 92%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_cpols.c.o
  [ 92%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_crld.c.o
  [ 93%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_enum.c.o
  [ 93%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_extku.c.o
  [ 93%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_genn.c.o
  [ 95%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_ia5.c.o
  [ 95%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_info.c.o
  [ 95%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_int.c.o
  [ 96%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_ncons.c.o
  [ 96%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_lib.c.o
  [ 96%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_ocsp.c.o
  [ 97%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_pci.c.o
  [ 97%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_pcia.c.o
  [ 97%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_pcons.c.o
  [ 98%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_pmaps.c.o
  [ 98%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_prn.c.o
  [ 98%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_purp.c.o
  [100%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_skey.c.o
  [100%] Building C object CMakeFiles/crypto.dir/src/crypto/x509v3/v3_utl.c.o
  [100%] Linking C static library libcrypto.a
  [100%] Built target crypto
  cargo:root=/home/john/aports/testing/java-libsignal-client/src/libsignal-0.22.2/target/release/build/boring-sys-352acf116d954e26/out
  cargo:rustc-link-search=native=/home/john/aports/testing/java-libsignal-client/src/libsignal-0.22.2/target/release/build/boring-sys-352acf116d954e26/out/build/
  cargo:rustc-link-lib=static=crypto
  cargo:rerun-if-env-changed=BORING_BSSL_INCLUDE_PATH

  --- stderr
  make: warning: -j20 forced in submake: resetting jobserver mode.
  thread 'main' panicked at '"pthread_attr_t_union_(unnamed_at_/usr/include/bits/alltypes_h_378_18)" is not a valid Ident', /home/john/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.29/src/fallback.rs:702:9
  stack backtrace:
     0: rust_begin_unwind
     1: core::panicking::panic_fmt
     2: proc_macro2::fallback::validate_ident
     3: proc_macro2::fallback::Ident::_new
     4: proc_macro2::fallback::Ident::new
     5: proc_macro2::imp::Ident::new
     6: proc_macro2::Ident::new
     7: bindgen::ir::context::BindgenContext::rust_ident_raw
     8: bindgen::ir::context::BindgenContext::rust_ident
     9: <bindgen::ir::comp::CompInfo as bindgen::codegen::CodeGenerator>::codegen
    10: <bindgen::ir::ty::Type as bindgen::codegen::CodeGenerator>::codegen
    11: <bindgen::ir::item::Item as bindgen::codegen::CodeGenerator>::codegen
    12: <bindgen::ir::comp::CompInfo as bindgen::codegen::CodeGenerator>::codegen
    13: <bindgen::ir::ty::Type as bindgen::codegen::CodeGenerator>::codegen
    14: <bindgen::ir::item::Item as bindgen::codegen::CodeGenerator>::codegen
    15: <bindgen::ir::module::Module as bindgen::codegen::CodeGenerator>::codegen::{{closure}}
    16: <bindgen::ir::module::Module as bindgen::codegen::CodeGenerator>::codegen
    17: <bindgen::ir::item::Item as bindgen::codegen::CodeGenerator>::codegen
    18: bindgen::codegen::codegen::{{closure}}
    19: bindgen::ir::context::BindgenContext::gen
    20: bindgen::codegen::codegen
    21: bindgen::Bindings::generate
    22: bindgen::Builder::generate
    23: build_script_build::main
    24: core::ops::function::FnOnce::call_once
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

> Task :makeJniLibrariesDesktop FAILED

Installed toolchain:

apk info -v | egrep '(rust|gcc|make|musl|jdk)'
cmake-3.26.3-r1
cmake-bash-completion-3.26.3-r1
gcc-12.2.1_git20220924-r10
libgcc-12.2.1_git20220924-r10
make-4.4.1-r1
musl-1.2.3_git20230411-r0
openjdk11-jdk-11.0.19_p7-r0
openjdk11-jmods-11.0.19_p7-r0
openjdk11-jre-11.0.19_p7-r0
openjdk11-jre-headless-11.0.19_p7-r0
p11-kit-trust-0.24.1-r2
rust-1.69.0-r2
selfisekai commented 1 year ago

@bratkartoffel this is https://github.com/signalapp/boring/issues/18 fixed by https://github.com/signalapp/boring/pull/19, currently you can use this patch:

--- ./Cargo.toml.orig
+++ ./Cargo.toml
@@ -25,3 +25,6 @@
 # Use our fork of curve25519-dalek for eventual zkgroup support.
 curve25519-dalek = { git = 'https://github.com/signalapp/curve25519-dalek', branch = 'lizard2' }
 boring = { git = 'https://github.com/signalapp/boring', branch = 'libsignal'}
+
+[patch.'https://github.com/signalapp/boring']
+boring-sys = { git = 'https://github.com/selfisekai/boring-cf', branch = 'i109-signal', package = 'boring-sys' }
--- ./Cargo.lock.orig
+++ ./Cargo.lock
@@ -206,9 +206,9 @@

 [[package]]
 name = "bindgen"
-version = "0.60.1"
+version = "0.62.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6"
+checksum = "c6720a8b7b2d39dd533285ed438d458f65b31b5c257e6ac7bb3d7e82844dd722"
 dependencies = [
  "bitflags",
  "cexpr",
@@ -221,6 +221,7 @@
  "regex",
  "rustc-hash",
  "shlex",
+ "syn",
 ]

 [[package]]
@@ -295,7 +296,7 @@
 [[package]]
 name = "boring-sys"
 version = "2.1.0"
-source = "git+https://github.com/signalapp/boring?branch=libsignal#25e1dd8fa519ae90772008fbd4a284582096fece"
+source = "git+https://github.com/selfisekai/boring-cf?branch=i109-signal#5c13f5c357c8b33c9978f2e447de2d6caf825d13"
 dependencies = [
  "bindgen",
  "cmake",
@@ -1398,11 +1399,11 @@

 [[package]]
 name = "proc-macro2"
-version = "1.0.29"
+version = "1.0.54"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d"
+checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534"
 dependencies = [
- "unicode-xid",
+ "unicode-ident",
 ]

 [[package]]
@@ -1868,13 +1869,13 @@

 [[package]]
 name = "syn"
-version = "1.0.80"
+version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-xid",
+ "unicode-ident",
 ]

 [[package]]
@@ -1981,6 +1982,12 @@
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"

 [[package]]
 name = "unicode-segmentation"
bratkartoffel commented 1 year ago

Thanks @selfisekai, now I'm facing the same issues as in the initial issue description

selfisekai commented 1 year ago

take a look at https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/testing/signal-desktop/libsignal-fix-build-rust-1.69.patch

bratkartoffel commented 1 year ago

Thanks, the compilation works fine with the two patches and rust 1.69

jrose-signal commented 1 year ago

This one I'm less sure about. Debug shouldn't require Copy; that seems like an issue in Rust itself.

jrose-signal commented 1 year ago

Oh, I forgot that these are repr(C, packed) structs, so Rust can't form references to the fields. Okay, thanks, let me take a closer look at your patch.

jrose-signal commented 1 year ago

Filed https://github.com/rust-lang/rust/issues/110777 and commented https://github.com/rust-lang/rust/issues/82523#issuecomment-1520567009.

jrose-signal commented 1 year ago

Should be fixed (though a bit differently) in v0.23.0!