tiffany352 / rink-rs

Unit conversion tool and library written in rust
https://rinkcalc.app/about
GNU General Public License v3.0
408 stars 28 forks source link

rink-rs build fails with OpenSSL 3.0 #121

Closed loqs closed 2 years ago

loqs commented 2 years ago

rink-rs f10a39c01e8332948f1be367c559904f4ffb70f3 OpenSSL 3.0.2 I attempted to build the package as below:

$ cargo fetch --locked --target "x86_64-unknown-linux-gnu"
    Updating crates.io index
 Downloading crates ...
  Downloaded thiserror-impl v1.0.25
  Downloaded event-listener v2.5.1
  Downloaded async-channel v1.6.1
  Downloaded async-task v4.0.3
  Downloaded num v0.4.0
  Downloaded syn v1.0.68
  Downloaded wasm-bindgen-futures v0.4.23
  Downloaded concurrent-queue v1.2.2
  Downloaded textwrap v0.11.0
  Downloaded serde_derive v1.0.125
  Downloaded remove_dir_all v0.5.3
  Downloaded quote v1.0.9
  Downloaded tempfile v3.2.0
  Downloaded proc-macro2 v1.0.26
  Downloaded utf8parse v0.2.0
  Downloaded serde_json v1.0.64
  Downloaded smallvec v1.6.1
  Downloaded ryu v1.0.5
  Downloaded bitflags v1.2.1
  Downloaded indenter v0.3.3
  Downloaded dirs-next v2.0.0
  Downloaded memchr v2.3.4
  Downloaded futures-core v0.3.13
  Downloaded version_check v0.9.3
  Downloaded unicode-xid v0.2.1
  Downloaded unicode-width v0.1.8
  Downloaded ubyte v0.10.1
  Downloaded native-tls v0.2.7
  Downloaded serde_urlencoded v0.7.0
  Downloaded form_urlencoded v1.0.1
  Downloaded hyper-tls v0.5.0
  Downloaded tracing-error v0.1.2
  Downloaded crossbeam-utils v0.8.3
  Downloaded blocking v1.0.2
  Downloaded owo-colors v1.3.0
  Downloaded thiserror v1.0.25
  Downloaded dirs-sys-next v0.1.2
  Downloaded async-std v1.9.0
  Downloaded unicode-bidi v0.3.4
  Downloaded ctor v0.1.20
  Downloaded cfg-if v1.0.0
  Downloaded getrandom v0.2.2
  Downloaded lazy_static v1.4.0
  Downloaded unicode-segmentation v1.7.1
  Downloaded toml v0.5.8
  Downloaded rand_core v0.6.2
  Downloaded autocfg v1.0.1
  Downloaded sharded-slab v0.1.1
  Downloaded log v0.4.14
  Downloaded ipnet v2.3.0
  Downloaded httparse v1.3.5
  Downloaded miniz_oxide v0.4.4
  Downloaded fnv v1.0.7
  Downloaded displaydoc v0.2.1
  Downloaded indexmap v1.6.2
  Downloaded tracing v0.1.25
  Downloaded tracing-core v0.1.17
  Downloaded backtrace v0.3.56
  Downloaded hashbrown v0.9.1
  Downloaded color-spantrace v0.1.6
  Downloaded rustc-demangle v0.1.18
  Downloaded eyre v0.6.5
  Downloaded rand_chacha v0.3.0
  Downloaded tracing-attributes v0.1.15
  Downloaded nibble_vec v0.1.0
  Downloaded adler v1.0.2
  Downloaded fs2 v0.4.3
  Downloaded async-global-executor v2.0.2
  Downloaded signal-hook v0.3.8
  Downloaded pin-project-lite v0.2.6
  Downloaded polling v2.0.3
  Downloaded pin-utils v0.1.0
  Downloaded async-lock v2.4.0
  Downloaded byteorder v1.4.3
  Downloaded num_cpus v1.13.0
  Downloaded serde v1.0.125
  Downloaded futures-lite v1.11.3
  Downloaded atomic-waker v1.0.0
  Downloaded strsim v0.10.0
  Downloaded kv-log-macro v1.0.7
  Downloaded signal-hook-registry v1.3.0
  Downloaded slab v0.4.2
  Downloaded async-executor v1.4.1
  Downloaded parking v2.0.0
  Downloaded chrono v0.4.19
  Downloaded async-io v1.4.1
  Downloaded ctrlc v3.1.9
  Downloaded fastrand v1.4.1
  Downloaded thread_local v1.1.3
  Downloaded hyper v0.14.5
  Downloaded humantime v2.1.0
  Downloaded foreign-types-shared v0.1.1
  Downloaded dirs v3.0.1
  Downloaded similar-asserts v1.1.0
  Downloaded async-mutex v1.4.0
  Downloaded waker-fn v1.1.0
  Downloaded addr2line v0.14.1
  Downloaded ansi_term v0.11.0
  Downloaded wasm-bindgen-shared v0.2.73
  Downloaded wasm-bindgen-macro-support v0.2.73
  Downloaded wasm-bindgen-macro v0.2.73
  Downloaded http-body v0.4.1
  Downloaded cfg-if v0.1.10
  Downloaded pin-project-internal v1.0.6
  Downloaded ppv-lite86 v0.2.10
  Downloaded socket2 v0.4.0
  Downloaded console v0.14.1
  Downloaded pin-project v1.0.6
  Downloaded num-integer v0.1.44
  Downloaded terminal_size v0.1.16
  Downloaded async-ctrlc v1.2.0
  Downloaded num-traits v0.2.14
  Downloaded rand v0.8.3
  Downloaded rustyline v8.0.0
  Downloaded wasm-bindgen-backend v0.2.73
  Downloaded once_cell v1.7.2
  Downloaded js-sys v0.3.50
  Downloaded futures-channel v0.3.13
  Downloaded humantime-serde v1.0.1
  Downloaded time v0.1.43
  Downloaded dirs-sys v0.3.5
  Downloaded bincode v1.3.3
  Downloaded tracing-subscriber v0.2.18
  Downloaded object v0.23.0
  Downloaded nix v0.20.0
  Downloaded async-process v1.1.0
  Downloaded async-attributes v1.1.2
  Downloaded regex-automata v0.1.9
  Downloaded tinyvec_macros v0.1.0
  Downloaded radix_trie v0.2.1
  Downloaded num-rational v0.4.0
  Downloaded http v0.2.3
  Downloaded httpdate v0.3.2
  Downloaded url v2.2.1
  Downloaded wasm-bindgen v0.2.73
  Downloaded strsim v0.8.0
  Downloaded tokio-native-tls v0.3.0
  Downloaded atty v0.2.14
  Downloaded futures-util v0.3.13
  Downloaded pkg-config v0.3.19
  Downloaded wasm-bindgen-test-macro v0.3.23
  Downloaded foreign-types v0.3.2
  Downloaded openssl-sys v0.9.61
  Downloaded regex v1.4.5
  Downloaded bumpalo v3.6.1
  Downloaded futures-sink v0.3.13
  Downloaded value-bag v1.0.0-alpha.7
  Downloaded itoa v0.4.7
  Downloaded mime v0.3.16
  Downloaded try-lock v0.2.3
  Downloaded tower-service v0.3.1
  Downloaded endian-type v0.1.2
  Downloaded cc v1.0.67
  Downloaded libc v0.2.92
  Downloaded memory_units v0.4.0
  Downloaded assert-json-diff v2.0.1
  Downloaded num-complex v0.4.0
  Downloaded num-iter v0.1.42
  Downloaded bstr v0.2.15
  Downloaded similar v1.3.0
  Downloaded wasm-bindgen-test v0.3.23
  Downloaded base64 v0.13.0
  Downloaded tinyvec v1.1.1
  Downloaded want v0.3.0
  Downloaded openssl-probe v0.1.2
  Downloaded unicode-normalization v0.1.17
  Downloaded matches v0.1.8
  Downloaded bytes v1.0.1
  Downloaded tokio v1.4.0
  Downloaded chrono-tz v0.5.3
  Downloaded color-eyre v0.5.10
  Downloaded gimli v0.23.0
  Downloaded ansi_term v0.12.1
  Downloaded openssl v0.10.33
  Downloaded cache-padded v1.1.1
  Downloaded mio v0.7.11
  Downloaded num-bigint v0.4.0
  Downloaded wee_alloc v0.4.5
  Downloaded parse-zoneinfo v0.3.0
  Downloaded scoped-tls v1.0.0
  Downloaded reqwest v0.11.2
  Downloaded clap v2.33.3
  Downloaded futures-task v0.3.13
  Downloaded tokio-util v0.6.5
  Downloaded h2 v0.3.2
  Downloaded chrono-humanize v0.1.2
  Downloaded percent-encoding v2.1.0
  Downloaded console_error_panic_hook v0.1.6
  Downloaded idna v0.2.2
  Downloaded regex-syntax v0.6.23
  Downloaded encoding_rs v0.8.28
  Downloaded futures-io v0.3.13
  Downloaded vec_map v0.8.2
$ cargo build --release --locked --offline
   Compiling autocfg v1.0.1
   Compiling proc-macro2 v1.0.26
   Compiling unicode-xid v0.2.1
   Compiling syn v1.0.68
   Compiling libc v0.2.92
   Compiling cfg-if v1.0.0
   Compiling version_check v0.9.3
   Compiling pin-project-lite v0.2.6
   Compiling log v0.4.14
   Compiling memchr v2.3.4
   Compiling once_cell v1.7.2
   Compiling futures-core v0.3.13
   Compiling serde_derive v1.0.125
   Compiling serde v1.0.125
   Compiling lazy_static v1.4.0
   Compiling futures-io v0.3.13
   Compiling bitflags v1.2.1
   Compiling slab v0.4.2
   Compiling cc v1.0.67
   Compiling pkg-config v0.3.19
   Compiling cache-padded v1.1.1
   Compiling bytes v1.0.1
   Compiling itoa v0.4.7
   Compiling waker-fn v1.1.0
   Compiling fastrand v1.4.1
   Compiling parking v2.0.0
   Compiling event-listener v2.5.1
   Compiling pin-utils v0.1.0
   Compiling fnv v1.0.7
   Compiling regex-syntax v0.6.23
   Compiling openssl v0.10.33
   Compiling getrandom v0.2.2
   Compiling matches v0.1.8
   Compiling foreign-types-shared v0.1.1
   Compiling tinyvec_macros v0.1.0
   Compiling async-task v4.0.3
   Compiling hashbrown v0.9.1
   Compiling native-tls v0.2.7
   Compiling signal-hook v0.3.8
   Compiling httparse v1.3.5
   Compiling ryu v1.0.5
   Compiling futures-sink v0.3.13
   Compiling futures-task v0.3.13
   Compiling atomic-waker v1.0.0
   Compiling eyre v0.6.5
   Compiling openssl-probe v0.1.2
   Compiling adler v1.0.2
   Compiling try-lock v0.2.3
   Compiling percent-encoding v2.1.0
   Compiling gimli v0.23.0
   Compiling rustc-demangle v0.1.18
   Compiling indenter v0.3.3
   Compiling tower-service v0.3.1
   Compiling encoding_rs v0.8.28
   Compiling ppv-lite86 v0.2.10
   Compiling smallvec v1.6.1
   Compiling object v0.23.0
   Compiling unicode-width v0.1.8
   Compiling httpdate v0.3.2
   Compiling owo-colors v1.3.0
   Compiling endian-type v0.1.2
   Compiling serde_json v1.0.64
   Compiling base64 v0.13.0
   Compiling strsim v0.10.0
   Compiling humantime v2.1.0
   Compiling ipnet v2.3.0
   Compiling ansi_term v0.11.0
   Compiling remove_dir_all v0.5.3
   Compiling unicode-segmentation v1.7.1
   Compiling mime v0.3.16
   Compiling strsim v0.8.0
   Compiling vec_map v0.8.2
   Compiling byteorder v1.4.3
   Compiling utf8parse v0.2.0
   Compiling ansi_term v0.12.1
   Compiling tracing-core v0.1.17
   Compiling sharded-slab v0.1.1
   Compiling concurrent-queue v1.2.2
   Compiling unicode-bidi v0.3.4
   Compiling futures-channel v0.3.13
   Compiling foreign-types v0.3.2
   Compiling tinyvec v1.1.1
   Compiling async-mutex v1.4.0
   Compiling async-lock v2.4.0
   Compiling thread_local v1.1.3
   Compiling form_urlencoded v1.0.1
   Compiling textwrap v0.11.0
   Compiling value-bag v1.0.0-alpha.7
   Compiling http v0.2.3
   Compiling num-traits v0.2.14
   Compiling num-integer v0.1.44
   Compiling tokio v1.4.0
   Compiling indexmap v1.6.2
   Compiling miniz_oxide v0.4.4
   Compiling num-bigint v0.4.0
   Compiling crossbeam-utils v0.8.3
   Compiling num-iter v0.1.42
   Compiling num-rational v0.4.0
   Compiling nibble_vec v0.1.0
   Compiling async-channel v1.6.1
   Compiling radix_trie v0.2.1
   Compiling futures-lite v1.11.3
   Compiling futures-util v0.3.13
   Compiling quote v1.0.9
   Compiling unicode-normalization v0.1.17
   Compiling openssl-sys v0.9.61
   Compiling tracing-subscriber v0.2.18
   Compiling regex v1.4.5
The following warnings were emitted during compilation:

warning: build/expando.c:4:24: error: pasting "RUST_VERSION_OPENSSL_" and "(" does not give a valid preprocessing token
warning:     4 | #define VERSION2(n, v) RUST_VERSION_##n##_##v
warning:       |                        ^~~~~~~~~~~~~
warning: build/expando.c:5:23: note: in expansion of macro ‘VERSION2’
warning:     5 | #define VERSION(n, v) VERSION2(n, v)
warning:       |                       ^~~~~~~~
warning: build/expando.c:10:1: note: in expansion of macro ‘VERSION’
warning:    10 | VERSION(OPENSSL, OPENSSL_VERSION_NUMBER)
warning:       | ^~~~~~~

error: failed to run custom build command for `openssl-sys v0.9.61`

Caused by:
  process didn't exit successfully: `/build/rink/src/rink-rs/target/release/build/openssl-sys-fce2bb4974561600/build-script-main` (exit status: 101)
  --- stdout
  cargo:rustc-cfg=const_fn
  cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR
  X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
  OPENSSL_LIB_DIR unset
  cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR
  X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
  OPENSSL_INCLUDE_DIR unset
  cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR
  X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_DIR
  OPENSSL_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_NO_PKG_CONFIG
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=OPENSSL_STATIC
  cargo:rerun-if-env-changed=OPENSSL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=SYSROOT
  cargo:rerun-if-env-changed=OPENSSL_STATIC
  cargo:rerun-if-env-changed=OPENSSL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rustc-link-lib=ssl
  cargo:rustc-link-lib=crypto
  cargo:rerun-if-env-changed=PKG_CONFIG
  cargo:rerun-if-env-changed=OPENSSL_STATIC
  cargo:rerun-if-env-changed=OPENSSL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
  cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_PATH
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
  cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
  cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
  OPT_LEVEL = Some("3")
  TARGET = Some("x86_64-unknown-linux-gnu")
  HOST = Some("x86_64-unknown-linux-gnu")
  CC_x86_64-unknown-linux-gnu = None
  CC_x86_64_unknown_linux_gnu = None
  HOST_CC = None
  CC = None
  CFLAGS_x86_64-unknown-linux-gnu = None
  CFLAGS_x86_64_unknown_linux_gnu = None
  HOST_CFLAGS = None
  CFLAGS = Some("-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -flto=auto")
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-march=x86-64" "-mtune=generic" "-O2" "-pipe" "-fno-plt" "-fexceptions" "-Wp,-D_FORTIFY_SOURCE=2" "-Wformat" "-Werror=format-security" "-fstack-clash-protection" "-fcf-protection" "-flto=auto" "-I" "/usr/include" "-E" "build/expando.c"
  cargo:warning=build/expando.c:4:24: error: pasting "RUST_VERSION_OPENSSL_" and "(" does not give a valid preprocessing token
  cargo:warning=    4 | #define VERSION2(n, v) RUST_VERSION_##n##_##v
  cargo:warning=      |                        ^~~~~~~~~~~~~
  cargo:warning=build/expando.c:5:23: note: in expansion of macro ‘VERSION2’
  cargo:warning=    5 | #define VERSION(n, v) VERSION2(n, v)
  cargo:warning=      |                       ^~~~~~~~
  cargo:warning=build/expando.c:10:1: note: in expansion of macro ‘VERSION’
  cargo:warning=   10 | VERSION(OPENSSL, OPENSSL_VERSION_NUMBER)
  cargo:warning=      | ^~~~~~~
  exit status: 1

  --- stderr
  thread 'main' panicked at '
  Header expansion error:
  Error { kind: ToolExecError, message: "Command \"cc\" \"-O3\" \"-ffunction-sections\" \"-fdata-sections\" \"-fPIC\" \"-m64\" \"-march=x86-64\" \"-mtune=generic\" \"-O2\" \"-pipe\" \"-fno-plt\" \"-fexceptions\" \"-Wp,-D_FORTIFY_SOURCE=2\" \"-Wformat\" \"-Werror=format-security\" \"-fstack-clash-protection\" \"-fcf-protection\" \"-flto=auto\" \"-I\" \"/usr/include\" \"-E\" \"build/expando.c\" with args \"cc\" did not execute successfully (status code exit status: 1)." }

  Failed to find OpenSSL development headers.

  You can try fixing this setting the `OPENSSL_DIR` environment variable
  pointing to your OpenSSL installation or installing OpenSSL headers package
  specific to your distribution:

      # On Ubuntu
      sudo apt-get install libssl-dev
      # On Arch Linux
      sudo pacman -S openssl
      # On Fedora
      sudo dnf install openssl-devel

  See rust-openssl README for more information:

      https://github.com/sfackler/rust-openssl#linux
  ', /build/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.61/build/main.rs:147:13
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

Updating the crates openssl to 0.10.38 and openssl-sys to 0.9.72 allowed the build to complete and check to pass.